@the-liberators/ngx-scrumteamsurvey-tools 2.2.83 → 2.2.85

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.
@@ -128,11 +128,11 @@ export class DialogSettingsComponent extends ComponentWithViewStateBase {
128
128
  }
129
129
  ;
130
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DialogSettingsComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.FactorService }, { token: i3.UserSettingService }, { token: i4.MatSnackBar }, { token: i5.FormBuilder }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: DialogSettingsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots (to merge focus snapshots)?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only use most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, combine and use most recent measure</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }] }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: DialogSettingsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }] }); }
132
132
  }
133
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DialogSettingsComponent, decorators: [{
134
134
  type: Component,
135
- args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots (to merge focus snapshots)?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only use most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, combine and use most recent measure</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"] }]
135
+ args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"] }]
136
136
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i2.FactorService }, { type: i3.UserSettingService }, { type: i4.MatSnackBar }, { type: i5.FormBuilder }, { type: i10.ViewModelStateBase, decorators: [{
137
137
  type: Inject,
138
138
  args: [VIEWSTATE_PROVIDER]
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
164
164
  type: HostListener,
165
165
  args: ['click']
166
166
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9yZXN1bHRzL2RpYWxvZ3MvZGlhbG9nLXNldHRpbmdzL2RpYWxvZy1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9kaWFsb2dzL2RpYWxvZy1zZXR0aW5ncy9kaWFsb2ctc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQWEsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWdDLE1BQU0saUNBQWlDLENBQUM7QUFFdkcsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRW5HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBeUM7SUE4Qm5GLFlBQW1CLFNBQWdELEVBQVUsYUFBNEIsRUFBVSxtQkFBdUMsRUFBWSxRQUFxQixFQUFVLFdBQXdCLEVBQXNDLEtBQXdDO1FBQ3hTLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFB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QUM7SUFDM0QsQ0FBQzs4R0FmUywyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDUixRQUFRLEVBQUUsa0JBQWtCO2lCQUM5Qjs4RUFFVyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VsZWN0TGlzdEl0ZW0nO1xuaW1wb3J0IHsgSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZSwgTW9kZWxGaWx0ZXIsIFVzZXJTZXR0aW5nc0R0byB9IGZyb20gJy4uLy4uLy4uL21vZGVscy91c2VyU2V0dGluZ3NEdG8nO1xuaW1wb3J0IHsgVXNlclNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdmlld01vZGVsL3VzZXJTZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFZpZXdNb2RlbFN0YXRlQmFzZSwgVklFV1NUQVRFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vLi4vdmlld01vZGVsL3ZpZXdNb2RlbFN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVJlc3VsdHNTdGF0ZSwgSVRlYW1SZXBvcnRSZXN1bHRzU3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZXN1bHRzU3RhdGUnO1xuaW1wb3J0IHsgUXVhbGlmaWVkQnlFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZhY3RvclNjb3JlRHRvJztcbmltcG9ydCB7IEZhY3RvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWN0b3JTZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgIHN0eWxlVXJsczogWycuL2RpYWxvZy1zZXR0aW5ncy5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ1NldHRpbmdzQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2U8SVJlc3VsdHNTdGF0ZT4ge1xuICAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgIHB1YmxpYyBzZW5kaW5nOiBib29sZWFuO1xuICAgcHJpdmF0ZSBzZXR0aW5nczogVXNlclNldHRpbmdzRHRvO1xuICAgcHVibGljIGZhY3RvcnM6IFNlbGVjdEl0ZW1bXTtcbiAgIHB1YmxpYyBpc1NpbmdsZVRlYW06IGJvb2xlYW47XG4gICBwdWJsaWMgaXNTdWJzY3JpYmVyOiBib29sZWFuO1xuICAgcHVibGljIG1vZGVsRmlsdGVyU2V0dGluZ3M6IE1vZGVsRmlsdGVyO1xuICAgcHVibGljIGJlbmNobWFya1R5cGVzOiBTZWxlY3RJdGVtW10gPSBbXVxuICAgcHVibGljIGRlbHRhUGVyaW9kczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJOb25lXCIsIFwiRG9uJ3QgY29tcGFyZSAoc2hvd3MgcmVzdWx0cyBmcm9tIHBhc3QgMTIgbW9udGhzKVwiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKFwiUHJldmlvdXNNb250aFwiLCBcIkNvbXBhcmUgY3VycmVudCBtb250aCB3aXRoIHByZXZpb3VzIG1vbnRoXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c1F1YXJ0ZXJcIiwgXCJDb21wYXJlIHJlY2VudCAzIG1vbnRocyB3aXRoIHByZXZpb3VzIDMgbW9udGhzXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c0hhbGZZZWFyXCIsIFwiQ29tcGFyZSByZWNlbnQgNiBtb250aHMgd2l0aCBwcmV2aW91cyA2IG1vbnRoc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKFwiUHJldmlvdXNZZWFyXCIsIFwiQ29tcGFyZSByZWNlbnQgMTIgbW9udGhzIHdpdGggcHJldmlvdXMgMTIgbW9udGhzXCIpXG4gICBdXG5cbiAgIHB1YmxpYyBpbnRlcnZlbnRpb25GaWx0ZXJUeXBlczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5BbGwudG9TdHJpbmcoKSwgXCJTaG93IGJvdGggb3BlbiB2cyBjb21wbGV0ZWQgYWN0aW9uc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuT25seU9wZW4udG9TdHJpbmcoKSwgXCJTaG93IG9ubHkgb3BlbiBhY3Rpb25zXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5Pbmx5Q29tcGxldGVkLnRvU3RyaW5nKCksIFwiU2hvdyBvbmx5IGNvbXBsZXRlZCBhY3Rpb25zXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5Ob25lLnRvU3RyaW5nKCksIFwiSGlkZSBhY3Rpb25zXCIpXG4gICBdXG5cbiAgIHB1YmxpYyBxdWFsaWZ5QnlUeXBlczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmJlbmNobWFyay50b1N0cmluZygpLCBcIkFnYWluc3QgYmVuY2htYXJrXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmRlbHRhLnRvU3RyaW5nKCksIFwiQWdhaW5zdCBwcmV2aW91cyBwZXJpb2Qgb3Igc25hcHNob3RcIiksXG4gICAgICBuZXcgU2VsZWN0SXRlbShRdWFsaWZpZWRCeUVudW0ubm9uZS50b1N0cmluZygpLCBcIk5vIGNvbXBhcmlzb25cIiksXG4gICBdXG5cbiAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEaWFsb2dTZXR0aW5nc0NvbXBvbmVudD4sIHByaXZhdGUgZmFjdG9yU2VydmljZTogRmFjdG9yU2VydmljZSwgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ1NlcnZpY2UsIHByb3RlY3RlZCBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBASW5qZWN0KFZJRVdTVEFURV9QUk9WSURFUikgcHJpdmF0ZSBzdGF0ZTogVmlld01vZGVsU3RhdGVCYXNlPElSZXN1bHRzU3RhdGU+KSB7XG4gICAgICBzdXBlcihzdGF0ZSwgc25hY2tCYXIpXG4gICB9XG5cbiAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgfVxuXG4gICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHsgcmV0dXJuOyB9XG5cbiAgICAgIHRoaXMuc2VuZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNldHRpbmdzLmdsb2JhbC5iZW5jaG1hcmsgPSB0aGlzLmZvcm0uY29udHJvbHMuYmVuY2htYXJrVHlwZS52YWx1ZTtcbiAgICAgIHRoaXMuc2V0dGluZ3MuZ2xvYmFsLmRlbHRhUGVyaW9kID0gdGhpcy5mb3JtLmNvbnRyb2xzLmRlbHRhUGVyaW9kLnZhbHVlO1xuICAgICAgdGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzID0gdGhpcy5mb3JtLmNvbnRyb2xzLm92ZXJ2aWV3RmFjdG9ycy52YWx1ZTtcbiAgICAgIHZhciBvdGhlck1vZGVsRmFjdG9ycyA9IHRoaXMuZm9ybS5jb250cm9scy5vdGhlck1vZGVsT3ZlcnZpZXdGYWN0b3JzLnZhbHVlO1xuXG4gICAgICBpZiAob3RoZXJNb2RlbEZhY3RvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgdGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzID0gdGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzLmNvbmNhdChvdGhlck1vZGVsRmFjdG9ycy5maWx0ZXIoKGl0ZW0pID0+IHRoaXMuc2V0dGluZ3MuZ2xvYmFsLm92ZXJ2aWV3RmFjdG9ycy5pbmRleE9mKGl0ZW0pIDwgMCkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldHRpbmdzLmdsb2JhbC5xdWFsaWZ5QnkgPSB0aGlzLmZvcm0uY29udHJvbHMucXVhbGlmeUJ5LnZhbHVlO1xuICAgICAgdGhpcy5zZXR0aW5ncy5nbG9iYWwuc3RhY2tpbmcgPSB0aGlzLmZvcm0uY29udHJvbHMuc3RhY2tpbmcudmFsdWUgPT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLnNldHRpbmdzLnVzZXIubW9kZWxGaWx0ZXIuaW50ZXJ2ZW50aW9uRmlsdGVyID0gdGhpcy5mb3JtLmNvbnRyb2xzLmludGVydmVudGlvbkZpbHRlclR5cGUudmFsdWU7XG4gICAgICB0aGlzLnVzZXJTZXR0aW5nc1NlcnZpY2Uuc2V0KHRoaXMuc2V0dGluZ3MpO1xuICAgICAgdGhpcy5zdGF0ZS5mb3JjZWRSZWxvYWQoKTtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICB0aGlzLnNob3dTdWNjZXNzKFwiV2UgdXBkYXRlZCB5b3VyIHNldHRpbmdzLiBXZSBhcmUgbm93IHJlbG9hZGluZyB0aGUgcmVzdWx0cy5cIik7XG4gICAgICB0aGlzLnNlbmRpbmcgPSBmYWxzZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICBkZWx0YVBlcmlvZDogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICBiZW5jaG1hcmtUeXBlOiBbeyB2YWx1ZTogXCJcIiB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHF1YWxpZnlCeTogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICBvdmVydmlld0ZhY3RvcnM6IFt7IHZhbHVlOiBudWxsIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgb3RoZXJNb2RlbE92ZXJ2aWV3RmFjdG9yczogW3sgdmFsdWU6IG51bGwgfV0sXG4gICAgICAgICBpbnRlcnZlbnRpb25GaWx0ZXJUeXBlOiBbeyB2YWx1ZTogbnVsbCB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHN0YWNraW5nOiBbeyB2YWx1ZTogXCJmYWxzZVwiIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICB9KTtcbiAgIH07XG5cbiAgIHByb3RlY3RlZCBvbkRhdGFVcGRhdGUoZGF0YTogSVJlc3VsdHNTdGF0ZSk6IHZvaWQge1xuICAgICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMudXNlclNldHRpbmdzU2VydmljZS5nZXQoKTtcbiAgICAgIHRoaXMuaXNTdWJzY3JpYmVyID0gZGF0YS5pc1N1YnNjcmliZXI7XG4gICAgICB0aGlzLmlzU2luZ2xlVGVhbSA9IGRhdGEudGVhbU1ldGFEYXRhICE9IG51bGw7XG5cbiAgICAgIGlmICh0aGlzLmlzU3Vic2NyaWJlcikge1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmJlbmNobWFya1R5cGUuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5iZW5jaG1hcmtUeXBlLmRpc2FibGUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5iZW5jaG1hcmtUeXBlcyA9IGRhdGEuZmFjdG9yU2NvcmVzLmJlbmNobWFyay5hdmFpbGFibGUubWFwKHAgPT4gbmV3IFNlbGVjdEl0ZW0ocC5rZXksIHAubmFtZSkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmRlbHRhUGVyaW9kLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZ2xvYmFsLmRlbHRhUGVyaW9kKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5iZW5jaG1hcmtUeXBlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZ2xvYmFsLmJlbmNobWFyayk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhY2tpbmcuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5nbG9iYWwuc3RhY2tpbmcgPyBcInRydWVcIiA6IFwiZmFsc2VcIik7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLnVzZXIubW9kZWxGaWx0ZXIuaW50ZXJ2ZW50aW9uRmlsdGVyKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5xdWFsaWZ5Qnkuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5nbG9iYWwucXVhbGlmeUJ5ID8/IGRhdGEuZmFjdG9yU2NvcmVzLnByb2Nlc3NpbmdEYXRhLnF1YWxpZmllZEJ5KTtcbiAgICAgIHRoaXMuZmFjdG9ycyA9IHRoaXMuZmFjdG9yU2VydmljZS50b1NlbGVjdExpc3QoZGF0YS5mYWN0b3JTY29yZXMubW9kZWxTdHJ1Y3R1cmUpO1xuXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3ZlcnZpZXdGYWN0b3JzLnNldFZhbHVlKGRhdGEuZmFjdG9yU2NvcmVzLm1vZGVsU3RydWN0dXJlLmRlZmluaXRpb24uZmFjdG9ycy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSA9PSBudWxsKS5tYXAocCA9PiBwLnB1YmxpY0tleSkpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3ZlcnZpZXdGYWN0b3JzLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZ2xvYmFsLm92ZXJ2aWV3RmFjdG9ycyk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3RoZXJNb2RlbE92ZXJ2aWV3RmFjdG9ycy5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLmdsb2JhbC5vdmVydmlld0ZhY3RvcnMuZmlsdGVyKHAgPT4gdGhpcy5mYWN0b3JzLmZpbmQoeCA9PiB4LnZhbHVlID09IHApID09IG51bGwpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kZWx0YVBlcmlvZHMgPSBbXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShcIk5vbmVcIiwgXCJEb24ndCBjb21wYXJlIChzaG93cyByZXN1bHRzIGZyb20gcGFzdCAxMiBtb250aHMpXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c01vbnRoXCIsIFwiQ29tcGFyZSBjdXJyZW50IG1vbnRoIHdpdGggcHJldmlvdXMgbW9udGhcIiksXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShcIlByZXZpb3VzUXVhcnRlclwiLCBcIkNvbXBhcmUgcmVjZW50IDMgbW9udGhzIHdpdGggcHJldmlvdXMgMyBtb250aHNcIiksXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShcIlByZXZpb3VzSGFsZlllYXJcIiwgXCJDb21wYXJlIHJlY2VudCA2IG1vbnRocyB3aXRoIHByZXZpb3VzIDYgbW9udGhzXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c1llYXJcIiwgXCJDb21wYXJlIHJlY2VudCAxMiBtb250aHMgd2l0aCBwcmV2aW91cyAxMiBtb250aHNcIilcbiAgICAgIF1cblxuICAgICAgdGhpcy5pbnRlcnZlbnRpb25GaWx0ZXJUeXBlcyA9IFtcbiAgICAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuQWxsLnRvU3RyaW5nKCksIFwiU2hvdyBib3RoIG9wZW4gdnMgY29tcGxldGVkIGFjdGlvbnNcIiksXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShJbnRlcnZlbnRpb25GaWx0ZXJUeXBlLk9ubHlPcGVuLnRvU3RyaW5nKCksIFwiU2hvdyBvbmx5IG9wZW4gYWN0aW9uc1wiKSxcbiAgICAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuT25seUNvbXBsZXRlZC50b1N0cmluZygpLCBcIlNob3cgb25seSBjb21wbGV0ZWQgYWN0aW9uc1wiKSxcbiAgICAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuTm9uZS50b1N0cmluZygpLCBcIkhpZGUgYWN0aW9uc1wiKVxuICAgICAgXVxuXG4gICAgICB0aGlzLnF1YWxpZnlCeVR5cGVzID0gW1xuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmJlbmNobWFyay50b1N0cmluZygpLCBcIkFnYWluc3QgYmVuY2htYXJrXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmRlbHRhLnRvU3RyaW5nKCksIHRoaXMuaXNTaW5nbGVUZWFtID8gXCJBZ2FpbnN0IHByZXZpb3VzIHNuYXBzaG90XCIgOiBcIkFnYWluc3QgcHJldmlvdXMgcGVyaW9kXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLm5vbmUudG9TdHJpbmcoKSwgXCJObyBjb21wYXJpc29uXCIpLFxuICAgICAgXVxuICAgfTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogJ1tzZXR0aW5nc0RpYWxvZ10nLFxufSlcbmV4cG9ydCBjbGFzcyBPcGVuU2V0dGluZ3NEaWFsb2dEaXJlY3RpdmUge1xuICAgQElucHV0KCkgc2hvd1NldHRpbmdTdGFja2luZzogYm9vbGVhbjtcblxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgZGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MgPSBbJ2RpYWxvZycsICdzZXR0aW5ncyddO1xuICAgICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IGZhbHNlO1xuICAgICAgZGlhbG9nQ29uZmlnLmVudGVyQW5pbWF0aW9uRHVyYXRpb24gPSAwO1xuICAgICAgZGlhbG9nQ29uZmlnLmV4aXRBbmltYXRpb25EdXJhdGlvbiA9IDA7XG4gICAgICBkaWFsb2dDb25maWcuZGF0YSA9IHt9O1xuICAgICAgdGhpcy5kaWFsb2cub3BlbihEaWFsb2dTZXR0aW5nc0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcbiAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICA8aDEgbWF0LWRpYWxvZy10aXRsZT5TdGF0aXN0aWNhbCBTZXR0aW5nczwvaDE+XG4gICA8ZGl2IGNsYXNzPVwiY2xvc2VcIiBtYXQtZGlhbG9nLWNsb3NlPjxpIGNsYXNzPVwicmVzcG9uc2l2ZSBpY29uIHBoLXgtYm9sZFwiID48L2k+PC9kaXY+XG48L2Rpdj5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImludGVydmVudGlvbkZpbHRlclR5cGVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPldoaWNoIGFjdGlvbiB0b3RhbHMgZG8geW91IHdhbnQgdG8gc2VlIHVuZGVyICdJbnNpZ2h0cyc/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cImludGVydmVudGlvbmZpbHRlci1kcm9wZG93blwiIGZvcm1Db250cm9sTmFtZT1cImludGVydmVudGlvbkZpbHRlclR5cGVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludGVydmVudGlvbkZpbHRlclR5cGVzXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj57e2l0ZW0ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInF1YWxpZnlCeVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+V2hhdCBzaG91bGQgd2UgY29tcGFyZSB3aXRoIChkZXRlcm1pbmVzIGNvbG9ycyk/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cInF1YWxpZnlCeS1kcm9wZG93blwiIGZvcm1Db250cm9sTmFtZT1cInF1YWxpZnlCeVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVhbGlmeUJ5VHlwZXNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPnt7aXRlbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwic3RhY2tpbmdcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgKm5nSWY9XCJpc1NpbmdsZVRlYW1cIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+Q29tYmluZSBzbmFwc2hvdHMgKHRvIG1lcmdlIGZvY3VzIHNuYXBzaG90cyk/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cInN0YWNraW5nLWRyb3Bkb3duXCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhY2tpbmdcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiIFt2YWx1ZV09XCInZmFsc2UnXCI+Tm8sIG9ubHkgdXNlIG1vc3QgcmVjZW50IHNuYXBzaG90PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgW3ZhbHVlXT1cIid0cnVlJ1wiPlllcywgY29tYmluZSBhbmQgdXNlIG1vc3QgcmVjZW50IG1lYXN1cmU8L21hdC1vcHRpb24+XG4gICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJiZW5jaG1hcmtcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPldoaWNoIGJlbmNobWFyayBzaG91bGQgd2UgdXNlPzwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJiZW5jaG1hcmstZHJvcGRvd25cIiBmb3JtQ29udHJvbE5hbWU9XCJiZW5jaG1hcmtUeXBlXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBiZW5jaG1hcmtUeXBlc1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3tpdGVtLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWlzU3Vic2NyaWJlclwiIGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICA8c3BhbiBjbGFzcz1cInBoLWluZm8tZmlsbCBpY29uXCI+PC9zcGFuPlxuICAgICAgICAgRWFnZXIgdG8gc2VlIGhvdyB5b3VyIHRlYW0gY29tcGFyZXMgdG8gb3RoZXIgYmVuY2htYXJrcz8gU3Vic2NyaWJlIHRvIHVubG9jayBkb3plbnMgb2YgYmVuY2htYXJrcywgaW5jbHVkaW5nIHRoZSAnVG9wIDEwMCBtb3N0IGVmZmVjdGl2ZSB0ZWFtcycsIGJlbmNobWFya3MgZm9yIHdvcmxkIHJlZ2lvbnMsIHNlY3RvcnMsIHNjYWxpbmcgZnJhbWV3b3JrcyBhbmQgeW91ciBvcmdhbml6YXRpb24uXG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1NpbmdsZVRlYW1cIj5cbiAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImRlbHRhUGVyaW9kXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5XaGljaCBwZXJpb2RzIHNob3VsZCB3ZSBjb21wYXJlPzwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJkZWx0YVBlcmlvZC1kcm9wZG93blwiIGZvcm1Db250cm9sTmFtZT1cImRlbHRhUGVyaW9kXCI+XG4gICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZWx0YVBlcmlvZHNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPnt7aXRlbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwib3ZlcnZpZXdGYWN0b3JzXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5XaGljaCBmYWN0b3JzIHNob3VsZCB3ZSBzaG93IGluIHRoZSBvdmVydmlldz88L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwib3ZlcnZpZXdGYWN0b3JzLWRyb3Bkb3duXCIgZm9ybUNvbnRyb2xOYW1lPVwib3ZlcnZpZXdGYWN0b3JzXCIgbXVsdGlwbGU+XG4gICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiBbbmdDbGFzc109XCJ7J2xvd2VyJyA6IGZhY3Rvci5sb3dlcn1cIiAqbmdGb3I9XCJsZXQgZmFjdG9yIG9mIGZhY3RvcnNcIiBbdmFsdWVdPVwiZmFjdG9yLnZhbHVlXCI+e3tmYWN0b3IubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmcnOiBzZW5kaW5nIH1cIj5zdWJtaXQ8L2J1dHRvbj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiBtYXQtZGlhbG9nLWNsb3NlPmNhbmNlbDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICA8L2Zvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cbiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9yZXN1bHRzL2RpYWxvZ3MvZGlhbG9nLXNldHRpbmdzL2RpYWxvZy1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9kaWFsb2dzL2RpYWxvZy1zZXR0aW5ncy9kaWFsb2ctc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQWEsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWdDLE1BQU0saUNBQWlDLENBQUM7QUFFdkcsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRW5HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwwQkFBeUM7SUE4Qm5GLFlBQW1CLFNBQWdELEVBQVUsYUFBNEIsRUFBVSxtQkFBdUMsRUFBWSxRQUFxQixFQUFVLFdBQXdCLEVBQXNDLEtBQXdDO1FBQ3hTLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFB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QUM7SUFDM0QsQ0FBQzs4R0FmUywyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDUixRQUFRLEVBQUUsa0JBQWtCO2lCQUM5Qjs4RUFFVyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VsZWN0TGlzdEl0ZW0nO1xuaW1wb3J0IHsgSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZSwgTW9kZWxGaWx0ZXIsIFVzZXJTZXR0aW5nc0R0byB9IGZyb20gJy4uLy4uLy4uL21vZGVscy91c2VyU2V0dGluZ3NEdG8nO1xuaW1wb3J0IHsgVXNlclNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdmlld01vZGVsL3VzZXJTZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFZpZXdNb2RlbFN0YXRlQmFzZSwgVklFV1NUQVRFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vLi4vdmlld01vZGVsL3ZpZXdNb2RlbFN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVJlc3VsdHNTdGF0ZSwgSVRlYW1SZXBvcnRSZXN1bHRzU3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZXN1bHRzU3RhdGUnO1xuaW1wb3J0IHsgUXVhbGlmaWVkQnlFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZhY3RvclNjb3JlRHRvJztcbmltcG9ydCB7IEZhY3RvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWN0b3JTZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgIHN0eWxlVXJsczogWycuL2RpYWxvZy1zZXR0aW5ncy5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ1NldHRpbmdzQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2U8SVJlc3VsdHNTdGF0ZT4ge1xuICAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgIHB1YmxpYyBzZW5kaW5nOiBib29sZWFuO1xuICAgcHJpdmF0ZSBzZXR0aW5nczogVXNlclNldHRpbmdzRHRvO1xuICAgcHVibGljIGZhY3RvcnM6IFNlbGVjdEl0ZW1bXTtcbiAgIHB1YmxpYyBpc1NpbmdsZVRlYW06IGJvb2xlYW47XG4gICBwdWJsaWMgaXNTdWJzY3JpYmVyOiBib29sZWFuO1xuICAgcHVibGljIG1vZGVsRmlsdGVyU2V0dGluZ3M6IE1vZGVsRmlsdGVyO1xuICAgcHVibGljIGJlbmNobWFya1R5cGVzOiBTZWxlY3RJdGVtW10gPSBbXVxuICAgcHVibGljIGRlbHRhUGVyaW9kczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJOb25lXCIsIFwiRG9uJ3QgY29tcGFyZSAoc2hvd3MgcmVzdWx0cyBmcm9tIHBhc3QgMTIgbW9udGhzKVwiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKFwiUHJldmlvdXNNb250aFwiLCBcIkNvbXBhcmUgY3VycmVudCBtb250aCB3aXRoIHByZXZpb3VzIG1vbnRoXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c1F1YXJ0ZXJcIiwgXCJDb21wYXJlIHJlY2VudCAzIG1vbnRocyB3aXRoIHByZXZpb3VzIDMgbW9udGhzXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c0hhbGZZZWFyXCIsIFwiQ29tcGFyZSByZWNlbnQgNiBtb250aHMgd2l0aCBwcmV2aW91cyA2IG1vbnRoc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKFwiUHJldmlvdXNZZWFyXCIsIFwiQ29tcGFyZSByZWNlbnQgMTIgbW9udGhzIHdpdGggcHJldmlvdXMgMTIgbW9udGhzXCIpXG4gICBdXG5cbiAgIHB1YmxpYyBpbnRlcnZlbnRpb25GaWx0ZXJUeXBlczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5BbGwudG9TdHJpbmcoKSwgXCJTaG93IGJvdGggb3BlbiB2cyBjb21wbGV0ZWQgYWN0aW9uc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuT25seU9wZW4udG9TdHJpbmcoKSwgXCJTaG93IG9ubHkgb3BlbiBhY3Rpb25zXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5Pbmx5Q29tcGxldGVkLnRvU3RyaW5nKCksIFwiU2hvdyBvbmx5IGNvbXBsZXRlZCBhY3Rpb25zXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oSW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5Ob25lLnRvU3RyaW5nKCksIFwiSGlkZSBhY3Rpb25zXCIpXG4gICBdXG5cbiAgIHB1YmxpYyBxdWFsaWZ5QnlUeXBlczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmJlbmNobWFyay50b1N0cmluZygpLCBcIkFnYWluc3QgYmVuY2htYXJrXCIpLFxuICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmRlbHRhLnRvU3RyaW5nKCksIFwiQWdhaW5zdCBwcmV2aW91cyBwZXJpb2Qgb3Igc25hcHNob3RcIiksXG4gICAgICBuZXcgU2VsZWN0SXRlbShRdWFsaWZpZWRCeUVudW0ubm9uZS50b1N0cmluZygpLCBcIk5vIGNvbXBhcmlzb25cIiksXG4gICBdXG5cbiAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEaWFsb2dTZXR0aW5nc0NvbXBvbmVudD4sIHByaXZhdGUgZmFjdG9yU2VydmljZTogRmFjdG9yU2VydmljZSwgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ1NlcnZpY2UsIHByb3RlY3RlZCBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBASW5qZWN0KFZJRVdTVEFURV9QUk9WSURFUikgcHJpdmF0ZSBzdGF0ZTogVmlld01vZGVsU3RhdGVCYXNlPElSZXN1bHRzU3RhdGU+KSB7XG4gICAgICBzdXBlcihzdGF0ZSwgc25hY2tCYXIpXG4gICB9XG5cbiAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgfVxuXG4gICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHsgcmV0dXJuOyB9XG5cbiAgICAgIHRoaXMuc2VuZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNldHRpbmdzLmdsb2JhbC5iZW5jaG1hcmsgPSB0aGlzLmZvcm0uY29udHJvbHMuYmVuY2htYXJrVHlwZS52YWx1ZTtcbiAgICAgIHRoaXMuc2V0dGluZ3MuZ2xvYmFsLmRlbHRhUGVyaW9kID0gdGhpcy5mb3JtLmNvbnRyb2xzLmRlbHRhUGVyaW9kLnZhbHVlO1xuICAgICAgdGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzID0gdGhpcy5mb3JtLmNvbnRyb2xzLm92ZXJ2aWV3RmFjdG9ycy52YWx1ZTtcbiAgICAgIHZhciBvdGhlck1vZGVsRmFjdG9ycyA9IHRoaXMuZm9ybS5jb250cm9scy5vdGhlck1vZGVsT3ZlcnZpZXdGYWN0b3JzLnZhbHVlO1xuXG4gICAgICBpZiAob3RoZXJNb2RlbEZhY3RvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgdGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzID0gdGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzLmNvbmNhdChvdGhlck1vZGVsRmFjdG9ycy5maWx0ZXIoKGl0ZW0pID0+IHRoaXMuc2V0dGluZ3MuZ2xvYmFsLm92ZXJ2aWV3RmFjdG9ycy5pbmRleE9mKGl0ZW0pIDwgMCkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldHRpbmdzLmdsb2JhbC5xdWFsaWZ5QnkgPSB0aGlzLmZvcm0uY29udHJvbHMucXVhbGlmeUJ5LnZhbHVlO1xuICAgICAgdGhpcy5zZXR0aW5ncy5nbG9iYWwuc3RhY2tpbmcgPSB0aGlzLmZvcm0uY29udHJvbHMuc3RhY2tpbmcudmFsdWUgPT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLnNldHRpbmdzLnVzZXIubW9kZWxGaWx0ZXIuaW50ZXJ2ZW50aW9uRmlsdGVyID0gdGhpcy5mb3JtLmNvbnRyb2xzLmludGVydmVudGlvbkZpbHRlclR5cGUudmFsdWU7XG4gICAgICB0aGlzLnVzZXJTZXR0aW5nc1NlcnZpY2Uuc2V0KHRoaXMuc2V0dGluZ3MpO1xuICAgICAgdGhpcy5zdGF0ZS5mb3JjZWRSZWxvYWQoKTtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICB0aGlzLnNob3dTdWNjZXNzKFwiV2UgdXBkYXRlZCB5b3VyIHNldHRpbmdzLiBXZSBhcmUgbm93IHJlbG9hZGluZyB0aGUgcmVzdWx0cy5cIik7XG4gICAgICB0aGlzLnNlbmRpbmcgPSBmYWxzZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICBkZWx0YVBlcmlvZDogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICBiZW5jaG1hcmtUeXBlOiBbeyB2YWx1ZTogXCJcIiB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHF1YWxpZnlCeTogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICBvdmVydmlld0ZhY3RvcnM6IFt7IHZhbHVlOiBudWxsIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgb3RoZXJNb2RlbE92ZXJ2aWV3RmFjdG9yczogW3sgdmFsdWU6IG51bGwgfV0sXG4gICAgICAgICBpbnRlcnZlbnRpb25GaWx0ZXJUeXBlOiBbeyB2YWx1ZTogbnVsbCB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHN0YWNraW5nOiBbeyB2YWx1ZTogXCJmYWxzZVwiIH0sIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICB9KTtcbiAgIH07XG5cbiAgIHByb3RlY3RlZCBvbkRhdGFVcGRhdGUoZGF0YTogSVJlc3VsdHNTdGF0ZSk6IHZvaWQge1xuICAgICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMudXNlclNldHRpbmdzU2VydmljZS5nZXQoKTtcbiAgICAgIHRoaXMuaXNTdWJzY3JpYmVyID0gZGF0YS5pc1N1YnNjcmliZXI7XG4gICAgICB0aGlzLmlzU2luZ2xlVGVhbSA9IGRhdGEudGVhbU1ldGFEYXRhICE9IG51bGw7XG5cbiAgICAgIGlmICh0aGlzLmlzU3Vic2NyaWJlcikge1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmJlbmNobWFya1R5cGUuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5iZW5jaG1hcmtUeXBlLmRpc2FibGUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5iZW5jaG1hcmtUeXBlcyA9IGRhdGEuZmFjdG9yU2NvcmVzLmJlbmNobWFyay5hdmFpbGFibGUubWFwKHAgPT4gbmV3IFNlbGVjdEl0ZW0ocC5rZXksIHAubmFtZSkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmRlbHRhUGVyaW9kLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZ2xvYmFsLmRlbHRhUGVyaW9kKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5iZW5jaG1hcmtUeXBlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZ2xvYmFsLmJlbmNobWFyayk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhY2tpbmcuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5nbG9iYWwuc3RhY2tpbmcgPyBcInRydWVcIiA6IFwiZmFsc2VcIik7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW50ZXJ2ZW50aW9uRmlsdGVyVHlwZS5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLnVzZXIubW9kZWxGaWx0ZXIuaW50ZXJ2ZW50aW9uRmlsdGVyKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5xdWFsaWZ5Qnkuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5nbG9iYWwucXVhbGlmeUJ5ID8/IGRhdGEuZmFjdG9yU2NvcmVzLnByb2Nlc3NpbmdEYXRhLnF1YWxpZmllZEJ5KTtcbiAgICAgIHRoaXMuZmFjdG9ycyA9IHRoaXMuZmFjdG9yU2VydmljZS50b1NlbGVjdExpc3QoZGF0YS5mYWN0b3JTY29yZXMubW9kZWxTdHJ1Y3R1cmUpO1xuXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5nbG9iYWwub3ZlcnZpZXdGYWN0b3JzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3ZlcnZpZXdGYWN0b3JzLnNldFZhbHVlKGRhdGEuZmFjdG9yU2NvcmVzLm1vZGVsU3RydWN0dXJlLmRlZmluaXRpb24uZmFjdG9ycy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSA9PSBudWxsKS5tYXAocCA9PiBwLnB1YmxpY0tleSkpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3ZlcnZpZXdGYWN0b3JzLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZ2xvYmFsLm92ZXJ2aWV3RmFjdG9ycyk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3RoZXJNb2RlbE92ZXJ2aWV3RmFjdG9ycy5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLmdsb2JhbC5vdmVydmlld0ZhY3RvcnMuZmlsdGVyKHAgPT4gdGhpcy5mYWN0b3JzLmZpbmQoeCA9PiB4LnZhbHVlID09IHApID09IG51bGwpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kZWx0YVBlcmlvZHMgPSBbXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShcIk5vbmVcIiwgXCJEb24ndCBjb21wYXJlIChzaG93cyByZXN1bHRzIGZyb20gcGFzdCAxMiBtb250aHMpXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c01vbnRoXCIsIFwiQ29tcGFyZSBjdXJyZW50IG1vbnRoIHdpdGggcHJldmlvdXMgbW9udGhcIiksXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShcIlByZXZpb3VzUXVhcnRlclwiLCBcIkNvbXBhcmUgcmVjZW50IDMgbW9udGhzIHdpdGggcHJldmlvdXMgMyBtb250aHNcIiksXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShcIlByZXZpb3VzSGFsZlllYXJcIiwgXCJDb21wYXJlIHJlY2VudCA2IG1vbnRocyB3aXRoIHByZXZpb3VzIDYgbW9udGhzXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oXCJQcmV2aW91c1llYXJcIiwgXCJDb21wYXJlIHJlY2VudCAxMiBtb250aHMgd2l0aCBwcmV2aW91cyAxMiBtb250aHNcIilcbiAgICAgIF1cblxuICAgICAgdGhpcy5pbnRlcnZlbnRpb25GaWx0ZXJUeXBlcyA9IFtcbiAgICAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuQWxsLnRvU3RyaW5nKCksIFwiU2hvdyBib3RoIG9wZW4gdnMgY29tcGxldGVkIGFjdGlvbnNcIiksXG4gICAgICAgICBuZXcgU2VsZWN0SXRlbShJbnRlcnZlbnRpb25GaWx0ZXJUeXBlLk9ubHlPcGVuLnRvU3RyaW5nKCksIFwiU2hvdyBvbmx5IG9wZW4gYWN0aW9uc1wiKSxcbiAgICAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuT25seUNvbXBsZXRlZC50b1N0cmluZygpLCBcIlNob3cgb25seSBjb21wbGV0ZWQgYWN0aW9uc1wiKSxcbiAgICAgICAgIG5ldyBTZWxlY3RJdGVtKEludGVydmVudGlvbkZpbHRlclR5cGUuTm9uZS50b1N0cmluZygpLCBcIkhpZGUgYWN0aW9uc1wiKVxuICAgICAgXVxuXG4gICAgICB0aGlzLnF1YWxpZnlCeVR5cGVzID0gW1xuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmJlbmNobWFyay50b1N0cmluZygpLCBcIkFnYWluc3QgYmVuY2htYXJrXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLmRlbHRhLnRvU3RyaW5nKCksIHRoaXMuaXNTaW5nbGVUZWFtID8gXCJBZ2FpbnN0IHByZXZpb3VzIHNuYXBzaG90XCIgOiBcIkFnYWluc3QgcHJldmlvdXMgcGVyaW9kXCIpLFxuICAgICAgICAgbmV3IFNlbGVjdEl0ZW0oUXVhbGlmaWVkQnlFbnVtLm5vbmUudG9TdHJpbmcoKSwgXCJObyBjb21wYXJpc29uXCIpLFxuICAgICAgXVxuICAgfTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogJ1tzZXR0aW5nc0RpYWxvZ10nLFxufSlcbmV4cG9ydCBjbGFzcyBPcGVuU2V0dGluZ3NEaWFsb2dEaXJlY3RpdmUge1xuICAgQElucHV0KCkgc2hvd1NldHRpbmdTdGFja2luZzogYm9vbGVhbjtcblxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgZGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MgPSBbJ2RpYWxvZycsICdzZXR0aW5ncyddO1xuICAgICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IGZhbHNlO1xuICAgICAgZGlhbG9nQ29uZmlnLmVudGVyQW5pbWF0aW9uRHVyYXRpb24gPSAwO1xuICAgICAgZGlhbG9nQ29uZmlnLmV4aXRBbmltYXRpb25EdXJhdGlvbiA9IDA7XG4gICAgICBkaWFsb2dDb25maWcuZGF0YSA9IHt9O1xuICAgICAgdGhpcy5kaWFsb2cub3BlbihEaWFsb2dTZXR0aW5nc0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcbiAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICA8aDEgbWF0LWRpYWxvZy10aXRsZT5TdGF0aXN0aWNhbCBTZXR0aW5nczwvaDE+XG4gICA8ZGl2IGNsYXNzPVwiY2xvc2VcIiBtYXQtZGlhbG9nLWNsb3NlPjxpIGNsYXNzPVwicmVzcG9uc2l2ZSBpY29uIHBoLXgtYm9sZFwiID48L2k+PC9kaXY+XG48L2Rpdj5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImludGVydmVudGlvbkZpbHRlclR5cGVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPldoaWNoIGFjdGlvbiB0b3RhbHMgZG8geW91IHdhbnQgdG8gc2VlIHVuZGVyICdJbnNpZ2h0cyc/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cImludGVydmVudGlvbmZpbHRlci1kcm9wZG93blwiIGZvcm1Db250cm9sTmFtZT1cImludGVydmVudGlvbkZpbHRlclR5cGVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludGVydmVudGlvbkZpbHRlclR5cGVzXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj57e2l0ZW0ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInF1YWxpZnlCeVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+V2hhdCBzaG91bGQgd2UgY29tcGFyZSB3aXRoIChkZXRlcm1pbmVzIGNvbG9ycyk/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cInF1YWxpZnlCeS1kcm9wZG93blwiIGZvcm1Db250cm9sTmFtZT1cInF1YWxpZnlCeVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVhbGlmeUJ5VHlwZXNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPnt7aXRlbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwic3RhY2tpbmdcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgKm5nSWY9XCJpc1NpbmdsZVRlYW1cIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+Q29tYmluZSBzbmFwc2hvdHM/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cInN0YWNraW5nLWRyb3Bkb3duXCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhY2tpbmdcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiIFt2YWx1ZV09XCInZmFsc2UnXCI+Tm8sIG9ubHkgc2hvdyBtb3N0IHJlY2VudCBzbmFwc2hvdDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiIFt2YWx1ZV09XCIndHJ1ZSdcIj5ZZXMsIGFuZCB1c2UgbW9zdCByZWNlbnQgbWVhc3VyZSAobWF4IDEyIG1vbnRocyBiYWNrKTwvbWF0LW9wdGlvbj5cbiAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImJlbmNobWFya1wiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+V2hpY2ggYmVuY2htYXJrIHNob3VsZCB3ZSB1c2U/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cImJlbmNobWFyay1kcm9wZG93blwiIGZvcm1Db250cm9sTmFtZT1cImJlbmNobWFya1R5cGVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJlbmNobWFya1R5cGVzXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj57e2l0ZW0ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNTdWJzY3JpYmVyXCIgY2xhc3M9XCJtZXNzYWdlIG1lc3NhZ2UtaW5mb3JtYXRpb25cIj5cbiAgICAgICAgIDxzcGFuIGNsYXNzPVwicGgtaW5mby1maWxsIGljb25cIj48L3NwYW4+XG4gICAgICAgICBFYWdlciB0byBzZWUgaG93IHlvdXIgdGVhbSBjb21wYXJlcyB0byBvdGhlciBiZW5jaG1hcmtzPyBTdWJzY3JpYmUgdG8gdW5sb2NrIGRvemVucyBvZiBiZW5jaG1hcmtzLCBpbmNsdWRpbmcgdGhlICdUb3AgMTAwIG1vc3QgZWZmZWN0aXZlIHRlYW1zJywgYmVuY2htYXJrcyBmb3Igd29ybGQgcmVnaW9ucywgc2VjdG9ycywgc2NhbGluZyBmcmFtZXdvcmtzIGFuZCB5b3VyIG9yZ2FuaXphdGlvbi5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2luZ2xlVGVhbVwiPlxuICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZGVsdGFQZXJpb2RcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPldoaWNoIHBlcmlvZHMgc2hvdWxkIHdlIGNvbXBhcmU/PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBjbGFzcz1cImRlbHRhUGVyaW9kLWRyb3Bkb3duXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVsdGFQZXJpb2RcIj5cbiAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRlbHRhUGVyaW9kc1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3tpdGVtLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJvdmVydmlld0ZhY3RvcnNcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPldoaWNoIGZhY3RvcnMgc2hvdWxkIHdlIHNob3cgaW4gdGhlIG92ZXJ2aWV3PzwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJvdmVydmlld0ZhY3RvcnMtZHJvcGRvd25cIiBmb3JtQ29udHJvbE5hbWU9XCJvdmVydmlld0ZhY3RvcnNcIiBtdWx0aXBsZT5cbiAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiIFtuZ0NsYXNzXT1cInsnbG93ZXInIDogZmFjdG9yLmxvd2VyfVwiICpuZ0Zvcj1cImxldCBmYWN0b3Igb2YgZmFjdG9yc1wiIFt2YWx1ZV09XCJmYWN0b3IudmFsdWVcIj57e2ZhY3Rvci5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIFtuZ0NsYXNzXT1cInsnbG9hZGluZyc6IHNlbmRpbmcgfVwiPnN1Ym1pdDwvYnV0dG9uPlxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIG1hdC1kaWFsb2ctY2xvc2U+Y2FuY2VsPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuIl19
@@ -5325,11 +5325,11 @@ class DialogSettingsComponent extends ComponentWithViewStateBase {
5325
5325
  }
5326
5326
  ;
5327
5327
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DialogSettingsComponent, deps: [{ token: i1$3.MatDialogRef }, { token: FactorService }, { token: UserSettingService }, { token: i1.MatSnackBar }, { token: i4$1.FormBuilder }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
5328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: DialogSettingsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots (to merge focus snapshots)?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only use most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, combine and use most recent measure</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }] }); }
5328
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: DialogSettingsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }] }); }
5329
5329
  }
5330
5330
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DialogSettingsComponent, decorators: [{
5331
5331
  type: Component,
5332
- args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots (to merge focus snapshots)?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only use most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, combine and use most recent measure</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"] }]
5332
+ args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\n <mat-label>Combine snapshots?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n\n <ng-container *ngIf=\"!isSingleTeam\">\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.errors{margin-bottom:15px}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"] }]
5333
5333
  }], ctorParameters: () => [{ type: i1$3.MatDialogRef }, { type: FactorService }, { type: UserSettingService }, { type: i1.MatSnackBar }, { type: i4$1.FormBuilder }, { type: ViewModelStateBase, decorators: [{
5334
5334
  type: Inject,
5335
5335
  args: [VIEWSTATE_PROVIDER]