@bizdoc/core 2.3.15 → 2.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/node.component.mjs +4 -4
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +2 -2
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +9 -7
- package/esm2022/lib/browse/filter/filter.component.mjs +2 -3
- package/esm2022/lib/compose/action/assign-action.component.mjs +4 -4
- package/esm2022/lib/compose/action/moveto-action.component.mjs +8 -8
- package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
- package/esm2022/lib/core/models.mjs +1 -1
- package/esm2022/lib/options/options.component.mjs +6 -4
- package/fesm2022/bizdoc-core.mjs +32 -29
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/profiler/outofoffice.component.d.ts +2 -0
- package/lib/options/options.component.d.ts +2 -0
- package/package.json +1 -1
@@ -36,7 +36,7 @@ let ReturnActionComponent = class ReturnActionComponent {
|
|
36
36
|
}
|
37
37
|
}
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ReturnActionComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ActionRef }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: ReturnActionComponent, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-select formControlName=\"recipientId\" cdkFocusInitial [placeholder]=\"'User'|translate\" required>\r\n <mat-option *ngFor=\"let r of recipients\" [value]=\"r.id\">{{r.userId | userName | async }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.controls.recipientId.hasError('required')\">{{'Required'|translate:('User'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: ReturnActionComponent, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-select formControlName=\"recipientId\" cdkFocusInitial [placeholder]=\"'User'|translate\" required>\r\n <mat-option *ngFor=\"let r of recipients\" [value]=\"r.id\">{{r.userId | userName | async }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.controls.recipientId.hasError('required')\">{{'Required'|translate:('User'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i7.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"] }, { kind: "directive", type: i8.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"] }, { kind: "directive", type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.UserNamePipe, name: "userName" }] }); }
|
40
40
|
};
|
41
41
|
ReturnActionComponent = __decorate([
|
42
42
|
BizDoc({
|
@@ -46,6 +46,6 @@ ReturnActionComponent = __decorate([
|
|
46
46
|
export { ReturnActionComponent };
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ReturnActionComponent, decorators: [{
|
48
48
|
type: Component,
|
49
|
-
args: [{ template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-select formControlName=\"recipientId\" cdkFocusInitial [placeholder]=\"'User'|translate\" required>\r\n <mat-option *ngFor=\"let r of recipients\" [value]=\"r.id\">{{r.userId | userName | async }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.controls.recipientId.hasError('required')\">{{'Required'|translate:('User'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls
|
49
|
+
args: [{ template: "<form autocomplete=\"off\" class=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-select formControlName=\"recipientId\" cdkFocusInitial [placeholder]=\"'User'|translate\" required>\r\n <mat-option *ngFor=\"let r of recipients\" [value]=\"r.id\">{{r.userId | userName | async }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.controls.recipientId.hasError('required')\">{{'Required'|translate:('User'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls.note.value?.length || 0}} / {{200}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n" }]
|
50
50
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ActionRef }, { type: i3.SessionService }] });
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJuLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvYWN0aW9uL3JldHVybi1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2FjdGlvbi9yZXR1cm4tYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFZeEMsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUFFaEMsWUFBb0IsR0FBZ0IsRUFBRSxTQUE2QixFQUFFLE9BQXVCO1FBQXhFLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFEM0IsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFpQjdCLFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDeEQsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hELENBQUMsQ0FBQztRQWxCRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEYsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPO2VBQ3ZFLENBQUMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQzVFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ3hCLENBQUM7SUFDTixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzs4R0FqQlUscUJBQXFCO2tHQUFyQixxQkFBcUIsb0RDZGxDLHF4QkFhQTs7QURDYSxxQkFBcUI7SUFIakMsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLHNCQUFzQjtLQUNqQyxDQUFDO0dBQ1cscUJBQXFCLENBc0JqQzs7MkZBdEJZLHFCQUFxQjtrQkFOakMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBBcmd1bWVudHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEFjdGlvblJlZiB9IGZyb20gJy4vYWN0aW9uLXJlZic7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JldHVybi1hY3Rpb24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWFjdGlvbi1yZXR1cm4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXR1cm5BY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBBcmd1bWVudHNDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgcmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsIGFjdGlvblJlZjogQWN0aW9uUmVmPE9wdGlvbnM+LCBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgY29uc3QgcmVjaXBpZW50ID0gYWN0aW9uUmVmLml0ZW0ucmVjaXBpZW50cy5maW5kKHIgPT4gci5pZCA9PT0gYWN0aW9uUmVmLml0ZW0uaWQpO1xyXG4gICAgYWN0aW9uUmVmLml0ZW0ucmVjaXBpZW50cy5zbGljZSgxKS5cclxuICAgICAgZmlsdGVyKHIgPT4gci51c2VySWQgIT09IHNlc3Npb24ucHJvZmlsZS51c2VySWQgJiYgIXIuZXN0aW1hdGUgJiYgIXIucGVuZGluZ1xyXG4gICAgICAgICYmIHIucmVjZWl2ZWQgPj0gYWN0aW9uUmVmLml0ZW0uaXNzdWVkICYmIHIucmVjZWl2ZWQgPCByZWNpcGllbnQucmVjZWl2ZWQpLlxyXG4gICAgICByZXZlcnNlKCkuZm9yRWFjaChyID0+XHJcbiAgICAgICAgdGhpcy5yZWNpcGllbnRzLmZpbmRJbmRleChpID0+IGkudXNlcklkID09PSByLnVzZXJJZCkgPCAwICYmXHJcbiAgICAgICAgdGhpcy5yZWNpcGllbnRzLnB1c2gocilcclxuICAgICAgKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZWNpcGllbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHJlY2lwaWVudElkOiB0aGlzLnJlY2lwaWVudHNbMF0uaWQgfSk7XHJcbiAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICByZWNpcGllbnRJZDogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIG5vdGU6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKSlcclxuICB9KTtcclxufVxyXG5pbnRlcmZhY2UgT3B0aW9ucyB7XHJcbn1cclxuIiwiPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJjb2x1bW5cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJyZWNpcGllbnRJZFwiIGNka0ZvY3VzSW5pdGlhbCBbcGxhY2Vob2xkZXJdPVwiJ1VzZXInfHRyYW5zbGF0ZVwiIHJlcXVpcmVkPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiByZWNpcGllbnRzXCIgW3ZhbHVlXT1cInIuaWRcIj57e3IudXNlcklkIHwgdXNlck5hbWUgfCBhc3luYyB9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnJlY2lwaWVudElkLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3snUmVxdWlyZWQnfHRyYW5zbGF0ZTooJ1VzZXInfHRyYW5zbGF0ZSl9fTwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPHRleHRhcmVhIG1hdElucHV0IGNka1RleHRhcmVhQXV0b3NpemUgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XHJcbiAgICA8L3RleHRhcmVhPlxyXG4gICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCI+e3tmb3JtLmNvbnRyb2xzLm5vdGUudmFsdWU/Lmxlbmd0aCB8fCAwfX0gLyB7ezIwMH19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
@@ -21,4 +21,4 @@ export var FieldKind;
|
|
21
21
|
FieldKind["Url"] = "Url";
|
22
22
|
})(FieldKind || (FieldKind = {}));
|
23
23
|
;
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUEyWHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLDBDQUE2QixDQUFBO0lBQzdCLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQix3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBb0ZBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwsIENvbm5lY3Rvck1vZGVsLCBTaGFwZU1vZGVsLCBGbG93U2hhcGVNb2RlbCwgQmFzaWNTaGFwZU1vZGVsLCBJbWFnZU1vZGVsLCBQYXRoTW9kZWwsIFRleHRNb2RlbCwgQnBtblNoYXBlTW9kZWwsIE5hdGl2ZU1vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSU5CT1ggPSAnaWInLCBEUkFGVCA9ICdkZic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vZGVsPFQgPSBhbnk+IHtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIG93bmVySWQ6IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcmVhZDogYm9vbGVhbjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHNlbmRlcklkPzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBtb2RlbD86IFQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1vZGVsPFQgPSBhbnk+IHtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIG93bmVyQnlJZD86IHN0cmluZztcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjb21wbGV0ZWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgY29tbWVudHM6IENvbW1lbnRbXTtcclxuICB1bnJlYWRDb21tZW50czogbnVtYmVyO1xyXG4gIGlzc3VlZD86IERhdGU7XHJcbiAgd29ya2Zsb3c/OiBXb3JrZmxvd0luZm87XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbiAgY3ViZXM6IEN1YmVFbnRyeVtdO1xyXG4gIGV2ZW50czogU2NoZWR1bGVkRXZlbnRbXTtcclxuICBsb2NhdGlvbnM6IE1hcFBpbltdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgcnVsZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW4ge1xyXG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcclxuICBldmVudHM/OiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0luZm8ge1xyXG4gIG5vZGVzOiBOb2RlSW5mb1tdO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3RvckluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudE1vZGVsPFQgPSBhbnk+IGV4dGVuZHMgSGVhZGVyTW9kZWw8VD4sIERvY3VtZW50TW9kZWw8VD4ge1xyXG4gIGV4dHJhPzogYW55O1xyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBmeWk6IGJvb2xlYW47XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbiAgYnlJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RvckluZm8ge1xyXG4gIC8vIHJlY2lwaWVudCBpZFxyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGVzdGltYXRlOiBib29sZWFuO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIHNvdXJjZUlkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIG5vZGUgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgLyoqIHNlY29uZHMgKi9cclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2cge1xyXG4gIHJlY2lwaWVudElkPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG4gIHR5cGU6IExvZ1R5cGU7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIGZpbGVJZD86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvZ1R5cGUgPSAnU3VibWl0JyB8ICdEb3dubG9hZCcgfCAnU3RhdGVDaGFuZ2UnIHwgJ0FjdGlvblRha2VuJyB8ICdDaGVja0luJyB8ICdDaGVja091dCcgfFxyXG4gICdNb2RlbENoYW5nZScgfCAnTm9kZScgfCAnVmlydHVhbE5vZGUnIHwgJ05vZGVKdW1wJyB8ICdDb25uZWN0b3InIHwgJ1ZpcnR1YWxDb25uZWN0b3InIHwgJ0VzY2FsYXRpb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIHN1YnN0aXR1dGVJZD86IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBwZW5kaW5nOiBib29sZWFuO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICByZWNlaXZlZDogRGF0ZTtcclxuICByZXBsaWVkPzogRGF0ZTtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nPzogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBsb2NhdGlvbj86IExhdExuZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcFBpbiB7XHJcbiAgbG9jYXRpb246IExhdExuZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGF0TG5nID1cclxubnVtYmVyW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVFbnRyeSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBjaGVja2VkT3V0PzogYm9vbGVhbjtcclxuICBwcml2YXRlPzogYm9vbGVhbjtcclxuICBob2xkaW5nSWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBiYXNlNjQgKi9cclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgcGFyZW50SWQ/OiBudW1iZXI7XHJcbiAgdm90ZWQ/OiBudW1iZXI7XHJcbiAgdm90ZXM/OiBudW1iZXI7XHJcbiAgZWRpdGVkPzogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICB2b3RlZD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnRWZXJzaW9uIHtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlZD86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVhZD86IGJvb2xlYW47XHJcbiAgc2VudDogRGF0ZTtcclxuICByZWNpcGllbnRJZD86IG51bWJlcjtcclxuICBkb2N1bWVudElkPzogbnVtYmVyO1xyXG4gIGZvcm1JZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBOb3RpZmljYXRpb25UeXBlID1cclxuICAnQ29tbWVudGVkJyB8XHJcbiAgJ0N1YmVBbm9tYWx5JyB8XHJcbiAgJ0VzY2FsYXRlZCcgfFxyXG4gICdMaWtlZCcgfFxyXG4gICdTdGF0ZUNoYW5nZWQnIHxcclxuICAnTnVkZ2UnIHxcclxuICAnSW52aXRlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xyXG4gIGhvbGlkYXlzOiBhbnk7XHJcbiAgdXRpbGl0aWVzOiBVdGlsaXR5W107XHJcbiAgZ3VpZGVzPzogR3VpZGVbXTtcclxuICB2aWV3czogVmlld1tdO1xyXG4gIHBob3RvPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgYnlOYW1lPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpbXBlcnNvbmF0aW5nPzogc3RyaW5nO1xyXG4gIGF2YWlsYWJsZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBieUdlbmRlcj86IEdlbmRlcjtcclxuICBzeXN0ZW06IGJvb2xlYW47XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXTtcclxuICBzdGF0ZXM6IFN0YXRlW107XHJcbiAgZm9sZGVyczogRm9sZGVyW107XHJcbiAgcmVwb3J0czogUmVwb3J0W107XHJcbiAgdHlwZXM6IFR5cGVbXTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIG5vZGVzOiBGbG93Tm9kZVtdO1xyXG4gIGNvbnRyb2xzOiBDb250cm9sW107XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuICBzb3VyY2VzOiBTb3VyY2VbXTtcclxuICB3aWRnZXRzOiBXaWRnZXRbXTtcclxuICBvcHRpb25zOiBPcHRpb25zO1xyXG4gIGluYm94OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGluYm94Q291bnQ/OiBudW1iZXI7XHJcbiAgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uW107XHJcbiAgbm90aWZpY2F0aW9uc0NvdW50PzogbnVtYmVyO1xyXG4gIHJlY2VudHM/OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGNvbnRhY3RzOiBDb250YWN0W107XHJcbiAgY29udmVyc2F0aW9uc0NvdW50OiBudW1iZXI7XHJcbiAgbGljZW5zZT86IExpY2Vuc2U7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZWxlbWVudFRlbXBsYXRlOiBzdHJpbmc7XHJcbiAga2V5czogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb2x1bW5zPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXRpbGl0eSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcclxuICB2aXNpdGVkPzogRGF0ZTtcclxuICB3YXRlcm1hcms/OiBEYXRlO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbiAgZm9yZ290dGVuPzogYm9vbGVhbjtcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICAvKiogYmFzZTY0ICovXHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEluZm8ge1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBraW5kPzogRmllbGRLaW5kO1xyXG4gIHZhbGlkYXRpb25zPzogeyBbdHlwZTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgY29udHJvbHM/OiBGaWVsZEluZm9bXTtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgZGF0YVR5cGU/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGZsYWdzPzogc3RyaW5nW107XHJcbiAgaGludD86IHN0cmluZztcclxuICBvcHRpb25zPzogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uIHtcclxuICB0eXBlOiBWYWxpZGF0aW9uVHlwZTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIGV4cHJlc3Npb24/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBNaW4gPSAnTWluJyxcclxuICBNYXggPSAnTWF4JyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBQYXR0ZXJuID0gJ1BhdHRlcm4nLFxyXG4gIFJhbmdlID0gJ1JhbmdlJyxcclxuICBFbWFpbCA9ICdFbWFpbCdcclxufVxyXG5leHBvcnQgZW51bSBGaWVsZEtpbmQge1xyXG4gIE51bWJlciA9ICdOdW1iZXInLFxyXG4gIEN1cnJlbmN5ID0gJ0N1cnJlbmN5JyxcclxuICBFbWFpbEFkZHJlc3MgPSAnRW1haWxBZGRyZXNzJyxcclxuICBUZXh0ID0gJ1RleHQnLFxyXG4gIFBhc3N3b3JkID0gJ1Bhc3N3b3JkJyxcclxuICBQaG9uZU51bWJlciA9ICdQaG9uZU51bWJlcicsXHJcbiAgVXJsID0gJ1VybCcsXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGNvbHM/OiBudW1iZXI7XHJcbiAgcm93cz86IG51bWJlcjtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMaWNlbnNlIHtcclxuICBtb2RlOiBMaWNlbnNlTW9kZTtcclxuICBleHBpcmF0aW9uPzogRGF0ZTtcclxuICBjb21wYW55TmFtZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUZpbHRlciB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBheGVzOiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlciB7XHJcbiAgZmlsdGVycz86IEN1YmVGaWx0ZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGdyb3VwPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb3VudD86IG51bWJlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb2xkZXJDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZyB8ICdudW1iZXInIHwgJ3N1YmplY3QnIHwgJ3ZhbHVlJyB8ICdvd25lcicgfCAnc2VuZGVyJyB8ICdyZWNlaXZlZCcgfCAncmVjZWl2ZWRBZ28nIHwgJ3JlcGxpZWQnIHwgJ3N0YXRlJyB8ICdpc3N1ZWQnIHwgJ2lzc3VlZEFnbyc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlPzogJ0Jvb2xlYW4nIHwgJ0RhdGUnIHwgJ0RlY2ltYWwnIHwgJ1N0cmluZyc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExpY2Vuc2VNb2RlID1cclxuICAnRXZhbHVhdGlvbicgfFxyXG4gICdWYWxpZCcgfFxyXG4gICdHcmFjZScgfFxyXG4gICdJbnZhbGlkJyB8XHJcbiAgJ0xpbWl0JyB8XHJcbiAgJ0V4cGlyZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHZlcmI/OiBzdHJpbmc7XHJcbiAgeW91Pzogc3RyaW5nO1xyXG4gIHlvdU1hbGU/OiBzdHJpbmc7XHJcbiAgeW91RmVtYWxlPzogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgcGFzdE1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdEZlbWFsZT86IHN0cmluZztcclxuICBhZGplY3RpdmU/OiBzdHJpbmc7XHJcbiAgbG9nZ2FibGU/OiBib29sZWFuO1xyXG4gIGFkamVjdGl2ZVBsdXJhbD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBncm91cD86IG51bWJlcjtcclxuICBzaGFwZT86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIG91dE9mT2ZmaWNlPzogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBub3RpZmljYXRpb25zPzogTm90aWZpY2F0aW9uc1NldHRpbmdzO1xyXG4gIGVtYWlscz86IEVtYWlsU2V0dGluZ3M7XHJcbiAgZ3VpZGVzPzogc3RyaW5nW107XHJcbiAgaW5ib3hWaWV3PzogRGF0ZTtcclxuICBub3RpZmljYXRpb25zVmlldz86IERhdGU7XHJcbiAgdGFncz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTZXR0aW5ncyB7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHVzZXJzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGltZW50aW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydFxyXG4gIGludGVyZmFjZSBSZXBvcnQge1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICBpdGVtVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNyZWF0YWJsZTogYm9vbGVhbjtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiBQb3NpdGlvblBvbGljeTtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93O1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB0eXBlIFBvc2l0aW9uUG9saWN5ID0gJ1JlcXVpcmUnIHwgJ0FzaycgfCAnTm9uZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3cge1xyXG4gIHZlcnNpb246IG51bWJlcjtcclxuICBjb25uZWN0b3JzOiBDb25uZWN0b3JNb2RlbFtdO1xyXG4gIG5vZGVzOiBOb2RlTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBwaWN0dXJlVXJsPzogc3RyaW5nO1xyXG4gIG5pY2s/OiBzdHJpbmc7XHJcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgbGFzdEFjdGl2ZT86IERhdGU7XHJcbiAgbW9kZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEd1aWRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgbW9kZT86ICdNZW51JyB8ICdFYWdlcicgfCAnUHJpdmF0ZSc7XHJcbiAgc3RlcHM6IEd1aWRlU3RlcFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGVTdGVwIHtcclxuICBleGVjdXRlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rvcj86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgbmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiAnQWJvdmUnIHwgJ0VuZCcgfCAnU3RhcnQnIHwgJ0JlbG93JztcclxufVxyXG4vL2VudW0gR3VpZGVTdGVwUG9saWN5IHsgfVxyXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dOb2RlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdHlsZT86IHN0cmluZztcclxuICBwYWxldHRlPzogc3RyaW5nO1xyXG4gIHNoYXBlOiBTaGFwZU1vZGVsIHwgRmxvd1NoYXBlTW9kZWwgfCBCYXNpY1NoYXBlTW9kZWwgfCBJbWFnZU1vZGVsIHwgUGF0aE1vZGVsIHwgVGV4dE1vZGVsIHwgQnBtblNoYXBlTW9kZWwgfCBOYXRpdmVNb2RlbDtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEF2YWlsYWJpbGl0eVN0YXRlID1cclxuICAnT2ZmbGluZScgfFxyXG4gICdPbmxpbmUnIHxcclxuICAnT3V0T2ZPZmZpY2UnIHxcclxuICAnVmFjYXRpb24nIHwgJ1dvcmtpbmdIb21lJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2aWV3czogQ3ViZVZpZXdbXTtcclxuICBheGVzOiBDdWJlQXhpc1tdO1xyXG4gIGluZGljZXM/OiBDdWJlSW5kZXhbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFlBeGlzIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0eXBlPzogJ0NvdW50JyB8ICdOdW1iZXInIHwgJ0N1cnJlbmN5JztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmRleCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBjb21iaW5hdGlvbj86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBeGlzU2VsZWN0aW9uTW9kZSA9XHJcbiAgJ05vbmUnIHxcclxuICAnU2luZ2xlJyB8XHJcbiAgJ011bHRpcGxlJyB8XHJcbiAgJ1NlYXJjaCcgfFxyXG4gICdQYXR0ZXJuJztcclxuXHJcbmV4cG9ydCB0eXBlIEF4aXNWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcclxuICBmcm9tOiBEYXRlO1xyXG4gIHRvOiBEYXRlO1xyXG59XHJcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHsgW2N1bHR1cmU6IHN0cmluZ106IHN0cmluZyB9IHwgc3RyaW5nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGVzTWFwIHtcclxuICBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZVZpZXcge1xyXG4gIHhBeGlzOiBzdHJpbmdbXTtcclxuICBzZXJpZXM/OiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBpbmRpY2VzPzogc3RyaW5nW107XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBWaWV3VHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFZpZXdUeXBlID0gJ1NwcmVhZHNoZWV0JyB8XHJcbiAgJ0NoYXJ0JyB8ICdQaXZvdCcgfCAnR3JpZCc7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ2hhcnRUeXBlID1cclxuICAnUGllJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIGxpbmUgc2VyaWVzLiAqL1xyXG4gICdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIENvbHVtbiBzZXJpZXMuICovXHJcbiAgJ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBBcmVhIHNlcmllcy4gKi9cclxuICAnQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBCYXIgc2VyaWVzLiAqL1xyXG4gICdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdDb2x1bW4gc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0FyZWEgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0FyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdMaW5lIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQmFyIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGVwTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwYXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3BsaW5lQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTY2F0dGVyIHNlcmllcy4gKi9cclxuICAnU2NhdHRlcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdDb2x1bW4xMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0JhcjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdCYXIxMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUxMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nTGluZTEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdBcmVhMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUmFuZ2VDb2x1bW4gU2VyaWVzICovXHJcbiAgJ1JhbmdlQ29sdW1uJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgV2F0ZXJmYWxsIFNlcmllcyAqL1xyXG4gICdXYXRlcmZhbGwnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUFyZWEgU2VyaWVzICovXHJcbiAgJ1JhbmdlQXJlYScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIEJ1YmJsZSBTZXJpZXMgKi9cclxuICAnQnViYmxlJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQ2FuZGxlIFNlcmllcyAqL1xyXG4gICdQb2xhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIHJhZGFyIHNlcmllcyAqL1xyXG4gICdSYWRhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFBhcmV0byBzZXJpZXMgKi9cclxuICAnUGFyZXRvJyB8ICdEb3VnaG51dCcgfCAnSGFsZkRvdWdobnV0JyB8XHJcbiAgJ0Z1bm5lbCcgfCAnUHlyYW1pZCcgfFxyXG4gICdTdGFja2luZ1N0ZXBBcmVhJztcclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZVNldHRpbmdzIHtcclxuICBmcm9tPzogRGF0ZTtcclxuICB0bz86IERhdGU7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHN1YnN0aXR1ZUlkPzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBOb3RpZmljYXRpb25zU2V0dGluZ3Mge1xyXG4gIHNvdW5kPzogYm9vbGVhbjtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIG15U3RhdGVDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBhbnlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueUNvbW1lbnQ/OiBib29sZWFuO1xyXG4gIG15Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbGlrZWQ/OiBib29sZWFuO1xyXG4gIGN1YmVBbm9tYWx5PzogYm9vbGVhbjtcclxuICB1cGNvbWluZ0V2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuaW50ZXJmYWNlIEVtYWlsU2V0dGluZ3Mge1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbWFpbHM/OiBib29sZWFuO1xyXG4gIGNvbnZlcnNhdGlvbnM/OiBib29sZWFuO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xyXG4gIGV2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuIl19
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUEwWHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLDBDQUE2QixDQUFBO0lBQzdCLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQix3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBb0ZBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwsIENvbm5lY3Rvck1vZGVsLCBTaGFwZU1vZGVsLCBGbG93U2hhcGVNb2RlbCwgQmFzaWNTaGFwZU1vZGVsLCBJbWFnZU1vZGVsLCBQYXRoTW9kZWwsIFRleHRNb2RlbCwgQnBtblNoYXBlTW9kZWwsIE5hdGl2ZU1vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSU5CT1ggPSAnaWInLCBEUkFGVCA9ICdkZic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vZGVsPFQgPSBhbnk+IHtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIG93bmVySWQ6IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcmVhZDogYm9vbGVhbjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHNlbmRlcklkPzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBtb2RlbD86IFQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1vZGVsPFQgPSBhbnk+IHtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIG93bmVyQnlJZD86IHN0cmluZztcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjb21wbGV0ZWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgY29tbWVudHM6IENvbW1lbnRbXTtcclxuICB1bnJlYWRDb21tZW50czogbnVtYmVyO1xyXG4gIGlzc3VlZD86IERhdGU7XHJcbiAgd29ya2Zsb3c/OiBXb3JrZmxvd0luZm87XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbiAgY3ViZXM6IEN1YmVFbnRyeVtdO1xyXG4gIGV2ZW50czogU2NoZWR1bGVkRXZlbnRbXTtcclxuICBsb2NhdGlvbnM6IE1hcFBpbltdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgcnVsZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW4ge1xyXG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcclxuICBldmVudHM/OiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0luZm8ge1xyXG4gIG5vZGVzOiBOb2RlSW5mb1tdO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3RvckluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudE1vZGVsPFQgPSBhbnk+IGV4dGVuZHMgSGVhZGVyTW9kZWw8VD4sIERvY3VtZW50TW9kZWw8VD4ge1xyXG4gIGV4dHJhPzogYW55O1xyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBmeWk6IGJvb2xlYW47XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbiAgYnlJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RvckluZm8ge1xyXG4gIC8vIHJlY2lwaWVudCBpZFxyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGVzdGltYXRlOiBib29sZWFuO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIHNvdXJjZUlkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIG5vZGUgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgLyoqIHNlY29uZHMgKi9cclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2cge1xyXG4gIHJlY2lwaWVudElkPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG4gIHR5cGU6IExvZ1R5cGU7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIGZpbGVJZD86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvZ1R5cGUgPSAnU3VibWl0JyB8ICdEb3dubG9hZCcgfCAnU3RhdGVDaGFuZ2UnIHwgJ0FjdGlvblRha2VuJyB8ICdDaGVja0luJyB8ICdDaGVja091dCcgfFxyXG4gICdNb2RlbENoYW5nZScgfCAnTm9kZScgfCAnVmlydHVhbE5vZGUnIHwgJ05vZGVKdW1wJyB8ICdDb25uZWN0b3InIHwgJ1ZpcnR1YWxDb25uZWN0b3InIHwgJ0VzY2FsYXRpb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIHN1YnN0aXR1dGVJZD86IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBwZW5kaW5nOiBib29sZWFuO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICByZWNlaXZlZDogRGF0ZTtcclxuICByZXBsaWVkPzogRGF0ZTtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nPzogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBsb2NhdGlvbj86IExhdExuZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcFBpbiB7XHJcbiAgbG9jYXRpb246IExhdExuZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGF0TG5nID0gbnVtYmVyW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVFbnRyeSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBjaGVja2VkT3V0PzogYm9vbGVhbjtcclxuICBwcml2YXRlPzogYm9vbGVhbjtcclxuICBob2xkaW5nSWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBiYXNlNjQgKi9cclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgcGFyZW50SWQ/OiBudW1iZXI7XHJcbiAgdm90ZWQ/OiBudW1iZXI7XHJcbiAgdm90ZXM/OiBudW1iZXI7XHJcbiAgZWRpdGVkPzogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICB2b3RlZD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnRWZXJzaW9uIHtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlZD86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVhZD86IGJvb2xlYW47XHJcbiAgc2VudDogRGF0ZTtcclxuICByZWNpcGllbnRJZD86IG51bWJlcjtcclxuICBkb2N1bWVudElkPzogbnVtYmVyO1xyXG4gIGZvcm1JZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBOb3RpZmljYXRpb25UeXBlID1cclxuICAnQ29tbWVudGVkJyB8XHJcbiAgJ0N1YmVBbm9tYWx5JyB8XHJcbiAgJ0VzY2FsYXRlZCcgfFxyXG4gICdMaWtlZCcgfFxyXG4gICdTdGF0ZUNoYW5nZWQnIHxcclxuICAnTnVkZ2UnIHxcclxuICAnSW52aXRlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xyXG4gIGhvbGlkYXlzOiBhbnk7XHJcbiAgdXRpbGl0aWVzOiBVdGlsaXR5W107XHJcbiAgZ3VpZGVzPzogR3VpZGVbXTtcclxuICB2aWV3czogVmlld1tdO1xyXG4gIHBob3RvPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgYnlOYW1lPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpbXBlcnNvbmF0aW5nPzogc3RyaW5nO1xyXG4gIGF2YWlsYWJsZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBieUdlbmRlcj86IEdlbmRlcjtcclxuICBzeXN0ZW06IGJvb2xlYW47XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXTtcclxuICBzdGF0ZXM6IFN0YXRlW107XHJcbiAgZm9sZGVyczogRm9sZGVyW107XHJcbiAgcmVwb3J0czogUmVwb3J0W107XHJcbiAgdHlwZXM6IFR5cGVbXTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIG5vZGVzOiBGbG93Tm9kZVtdO1xyXG4gIGNvbnRyb2xzOiBDb250cm9sW107XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuICBzb3VyY2VzOiBTb3VyY2VbXTtcclxuICB3aWRnZXRzOiBXaWRnZXRbXTtcclxuICBvcHRpb25zOiBPcHRpb25zO1xyXG4gIGluYm94OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGluYm94Q291bnQ/OiBudW1iZXI7XHJcbiAgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uW107XHJcbiAgbm90aWZpY2F0aW9uc0NvdW50PzogbnVtYmVyO1xyXG4gIHJlY2VudHM/OiBIZWFkZXJNb2RlbFtdO1xyXG4gIGNvbnRhY3RzOiBDb250YWN0W107XHJcbiAgY29udmVyc2F0aW9uc0NvdW50OiBudW1iZXI7XHJcbiAgbGljZW5zZT86IExpY2Vuc2U7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgZWxlbWVudFRlbXBsYXRlOiBzdHJpbmc7XHJcbiAga2V5czogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb2x1bW5zPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXRpbGl0eSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcclxuICB2aXNpdGVkPzogRGF0ZTtcclxuICB3YXRlcm1hcms/OiBEYXRlO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbiAgZm9yZ290dGVuPzogYm9vbGVhbjtcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICAvKiogYmFzZTY0ICovXHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEluZm8ge1xyXG4gIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBraW5kPzogRmllbGRLaW5kO1xyXG4gIHZhbGlkYXRpb25zPzogeyBbdHlwZTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgY29udHJvbHM/OiBGaWVsZEluZm9bXTtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgZGF0YVR5cGU/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGZsYWdzPzogc3RyaW5nW107XHJcbiAgaGludD86IHN0cmluZztcclxuICBvcHRpb25zPzogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uIHtcclxuICB0eXBlOiBWYWxpZGF0aW9uVHlwZTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgbWluPzogbnVtYmVyO1xyXG4gIG1heD86IG51bWJlcjtcclxuICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIGV4cHJlc3Npb24/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBNaW4gPSAnTWluJyxcclxuICBNYXggPSAnTWF4JyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBQYXR0ZXJuID0gJ1BhdHRlcm4nLFxyXG4gIFJhbmdlID0gJ1JhbmdlJyxcclxuICBFbWFpbCA9ICdFbWFpbCdcclxufVxyXG5leHBvcnQgZW51bSBGaWVsZEtpbmQge1xyXG4gIE51bWJlciA9ICdOdW1iZXInLFxyXG4gIEN1cnJlbmN5ID0gJ0N1cnJlbmN5JyxcclxuICBFbWFpbEFkZHJlc3MgPSAnRW1haWxBZGRyZXNzJyxcclxuICBUZXh0ID0gJ1RleHQnLFxyXG4gIFBhc3N3b3JkID0gJ1Bhc3N3b3JkJyxcclxuICBQaG9uZU51bWJlciA9ICdQaG9uZU51bWJlcicsXHJcbiAgVXJsID0gJ1VybCcsXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXaWRnZXQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGNvbHM/OiBudW1iZXI7XHJcbiAgcm93cz86IG51bWJlcjtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxuICBvcHRpb25zOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMaWNlbnNlIHtcclxuICBtb2RlOiBMaWNlbnNlTW9kZTtcclxuICBleHBpcmF0aW9uPzogRGF0ZTtcclxuICBjb21wYW55TmFtZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUZpbHRlciB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBheGVzOiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlciB7XHJcbiAgZmlsdGVycz86IEN1YmVGaWx0ZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGdyb3VwPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb3VudD86IG51bWJlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb2xkZXJDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZyB8ICdudW1iZXInIHwgJ3N1YmplY3QnIHwgJ3ZhbHVlJyB8ICdvd25lcicgfCAnc2VuZGVyJyB8ICdyZWNlaXZlZCcgfCAncmVjZWl2ZWRBZ28nIHwgJ3JlcGxpZWQnIHwgJ3N0YXRlJyB8ICdpc3N1ZWQnIHwgJ2lzc3VlZEFnbyc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlPzogJ0Jvb2xlYW4nIHwgJ0RhdGUnIHwgJ0RlY2ltYWwnIHwgJ1N0cmluZyc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExpY2Vuc2VNb2RlID1cclxuICAnRXZhbHVhdGlvbicgfFxyXG4gICdWYWxpZCcgfFxyXG4gICdHcmFjZScgfFxyXG4gICdJbnZhbGlkJyB8XHJcbiAgJ0xpbWl0JyB8XHJcbiAgJ0V4cGlyZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHZlcmI/OiBzdHJpbmc7XHJcbiAgeW91Pzogc3RyaW5nO1xyXG4gIHlvdU1hbGU/OiBzdHJpbmc7XHJcbiAgeW91RmVtYWxlPzogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgcGFzdE1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdEZlbWFsZT86IHN0cmluZztcclxuICBhZGplY3RpdmU/OiBzdHJpbmc7XHJcbiAgbG9nZ2FibGU/OiBib29sZWFuO1xyXG4gIGFkamVjdGl2ZVBsdXJhbD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBncm91cD86IG51bWJlcjtcclxuICBzaGFwZT86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIG91dE9mT2ZmaWNlPzogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBub3RpZmljYXRpb25zPzogTm90aWZpY2F0aW9uc1NldHRpbmdzO1xyXG4gIGVtYWlscz86IEVtYWlsU2V0dGluZ3M7XHJcbiAgZ3VpZGVzPzogc3RyaW5nW107XHJcbiAgaW5ib3hWaWV3PzogRGF0ZTtcclxuICBub3RpZmljYXRpb25zVmlldz86IERhdGU7XHJcbiAgdGFncz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTZXR0aW5ncyB7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHVzZXJzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGltZW50aW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydFxyXG4gIGludGVyZmFjZSBSZXBvcnQge1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICBpdGVtVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNyZWF0YWJsZTogYm9vbGVhbjtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiBQb3NpdGlvblBvbGljeTtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93O1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB0eXBlIFBvc2l0aW9uUG9saWN5ID0gJ1JlcXVpcmUnIHwgJ0FzaycgfCAnTm9uZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3cge1xyXG4gIHZlcnNpb246IG51bWJlcjtcclxuICBjb25uZWN0b3JzOiBDb25uZWN0b3JNb2RlbFtdO1xyXG4gIG5vZGVzOiBOb2RlTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBwaWN0dXJlVXJsPzogc3RyaW5nO1xyXG4gIG5pY2s/OiBzdHJpbmc7XHJcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgbGFzdEFjdGl2ZT86IERhdGU7XHJcbiAgbW9kZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEd1aWRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgbW9kZT86ICdNZW51JyB8ICdFYWdlcicgfCAnUHJpdmF0ZSc7XHJcbiAgc3RlcHM6IEd1aWRlU3RlcFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGVTdGVwIHtcclxuICBleGVjdXRlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rvcj86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgbmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiAnQWJvdmUnIHwgJ0VuZCcgfCAnU3RhcnQnIHwgJ0JlbG93JztcclxufVxyXG4vL2VudW0gR3VpZGVTdGVwUG9saWN5IHsgfVxyXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dOb2RlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdHlsZT86IHN0cmluZztcclxuICBwYWxldHRlPzogc3RyaW5nO1xyXG4gIHNoYXBlOiBTaGFwZU1vZGVsIHwgRmxvd1NoYXBlTW9kZWwgfCBCYXNpY1NoYXBlTW9kZWwgfCBJbWFnZU1vZGVsIHwgUGF0aE1vZGVsIHwgVGV4dE1vZGVsIHwgQnBtblNoYXBlTW9kZWwgfCBOYXRpdmVNb2RlbDtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEF2YWlsYWJpbGl0eVN0YXRlID1cclxuICAnT2ZmbGluZScgfFxyXG4gICdPbmxpbmUnIHxcclxuICAnT3V0T2ZPZmZpY2UnIHxcclxuICAnVmFjYXRpb24nIHwgJ1dvcmtpbmdIb21lJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2aWV3czogQ3ViZVZpZXdbXTtcclxuICBheGVzOiBDdWJlQXhpc1tdO1xyXG4gIGluZGljZXM/OiBDdWJlSW5kZXhbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFlBeGlzIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0eXBlPzogJ0NvdW50JyB8ICdOdW1iZXInIHwgJ0N1cnJlbmN5JztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmRleCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBjb21iaW5hdGlvbj86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBeGlzU2VsZWN0aW9uTW9kZSA9XHJcbiAgJ05vbmUnIHxcclxuICAnU2luZ2xlJyB8XHJcbiAgJ011bHRpcGxlJyB8XHJcbiAgJ1NlYXJjaCcgfFxyXG4gICdQYXR0ZXJuJztcclxuXHJcbmV4cG9ydCB0eXBlIEF4aXNWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcclxuICBmcm9tOiBEYXRlO1xyXG4gIHRvOiBEYXRlO1xyXG59XHJcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHsgW2N1bHR1cmU6IHN0cmluZ106IHN0cmluZyB9IHwgc3RyaW5nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGVzTWFwIHtcclxuICBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZVZpZXcge1xyXG4gIHhBeGlzOiBzdHJpbmdbXTtcclxuICBzZXJpZXM/OiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBpbmRpY2VzPzogc3RyaW5nW107XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBWaWV3VHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFZpZXdUeXBlID0gJ1NwcmVhZHNoZWV0JyB8XHJcbiAgJ0NoYXJ0JyB8ICdQaXZvdCcgfCAnR3JpZCc7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ2hhcnRUeXBlID1cclxuICAnUGllJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIGxpbmUgc2VyaWVzLiAqL1xyXG4gICdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIENvbHVtbiBzZXJpZXMuICovXHJcbiAgJ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBBcmVhIHNlcmllcy4gKi9cclxuICAnQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBCYXIgc2VyaWVzLiAqL1xyXG4gICdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdDb2x1bW4gc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0FyZWEgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0FyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdMaW5lIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQmFyIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGVwTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwYXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3BsaW5lQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTY2F0dGVyIHNlcmllcy4gKi9cclxuICAnU2NhdHRlcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdDb2x1bW4xMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0JhcjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdCYXIxMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUxMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nTGluZTEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdBcmVhMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUmFuZ2VDb2x1bW4gU2VyaWVzICovXHJcbiAgJ1JhbmdlQ29sdW1uJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgV2F0ZXJmYWxsIFNlcmllcyAqL1xyXG4gICdXYXRlcmZhbGwnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUFyZWEgU2VyaWVzICovXHJcbiAgJ1JhbmdlQXJlYScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIEJ1YmJsZSBTZXJpZXMgKi9cclxuICAnQnViYmxlJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQ2FuZGxlIFNlcmllcyAqL1xyXG4gICdQb2xhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIHJhZGFyIHNlcmllcyAqL1xyXG4gICdSYWRhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFBhcmV0byBzZXJpZXMgKi9cclxuICAnUGFyZXRvJyB8ICdEb3VnaG51dCcgfCAnSGFsZkRvdWdobnV0JyB8XHJcbiAgJ0Z1bm5lbCcgfCAnUHlyYW1pZCcgfFxyXG4gICdTdGFja2luZ1N0ZXBBcmVhJztcclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZVNldHRpbmdzIHtcclxuICBmcm9tPzogRGF0ZTtcclxuICB0bz86IERhdGU7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHN1YnN0aXR1ZUlkPzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBOb3RpZmljYXRpb25zU2V0dGluZ3Mge1xyXG4gIHNvdW5kPzogYm9vbGVhbjtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIG15U3RhdGVDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBhbnlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueUNvbW1lbnQ/OiBib29sZWFuO1xyXG4gIG15Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbGlrZWQ/OiBib29sZWFuO1xyXG4gIGN1YmVBbm9tYWx5PzogYm9vbGVhbjtcclxuICB1cGNvbWluZ0V2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuaW50ZXJmYWNlIEVtYWlsU2V0dGluZ3Mge1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbWFpbHM/OiBib29sZWFuO1xyXG4gIGNvbnZlcnNhdGlvbnM/OiBib29sZWFuO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xyXG4gIGV2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuIl19
|
@@ -6,7 +6,7 @@ import { MatChipInput } from '@angular/material/chips';
|
|
6
6
|
import { COMMA, ENTER, SEMICOLON } from '@angular/cdk/keycodes';
|
7
7
|
import { MatInput } from '@angular/material/input';
|
8
8
|
import { BIZDOC_CONFIG } from '../core/configuration';
|
9
|
-
import { isString } from '../core/functions';
|
9
|
+
import { isMobile, isString } from '../core/functions';
|
10
10
|
import * as i0 from "@angular/core";
|
11
11
|
import * as i1 from "@angular/cdk/overlay";
|
12
12
|
import * as i2 from "@angular/forms";
|
@@ -38,6 +38,8 @@ export class OptionsComponent {
|
|
38
38
|
this._sb = _sb;
|
39
39
|
this._session = _session;
|
40
40
|
this._destroy = new Subject();
|
41
|
+
this.today = new Date();
|
42
|
+
this.isMobile = isMobile();
|
41
43
|
this._requiredValidator = (control) => {
|
42
44
|
const parent = control.parent;
|
43
45
|
if (parent && parent.controls.active.value && !control.value)
|
@@ -217,11 +219,11 @@ export class OptionsComponent {
|
|
217
219
|
this._destroy.complete();
|
218
220
|
}
|
219
221
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OptionsComponent, deps: [{ token: OPTION_PANEL }, { token: i1.OverlayRef }, { token: i2.FormBuilder }, { token: i3.AccountService }, { token: i4.PromptService }, { token: i5.SessionService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
220
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: OptionsComponent, selector: "bizdoc-options", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "outOfOffice", first: true, predicate: ["outOfOffice"], descendants: true, read: MatExpansionPanel, static: true }, { propertyName: "notifications", first: true, predicate: ["notifications"], descendants: true, read: MatExpansionPanel, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value.outOfOffice?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip-row *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips>\r\n <mat-chip-row *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"], dependencies: [{ 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: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i10.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i10.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i15.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"] }, { kind: "component", type: i16.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i17.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.UserNamePipe, name: "userName" }] }); }
|
222
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: OptionsComponent, selector: "bizdoc-options", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "outOfOffice", first: true, predicate: ["outOfOffice"], descendants: true, read: MatExpansionPanel, static: true }, { propertyName: "notifications", first: true, predicate: ["notifications"], descendants: true, read: MatExpansionPanel, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\" required>\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip-row *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips>\r\n <mat-chip-row *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"], dependencies: [{ 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: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i9.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i9.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i9.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i9.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i10.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i10.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i15.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"] }, { kind: "component", type: i16.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i17.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.UserNamePipe, name: "userName" }] }); }
|
221
223
|
}
|
222
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OptionsComponent, decorators: [{
|
223
225
|
type: Component,
|
224
|
-
args: [{ selector: 'bizdoc-options', template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <
|
226
|
+
args: [{ selector: 'bizdoc-options', template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\" required>\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip-row *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips>\r\n <mat-chip-row *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"] }]
|
225
227
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
226
228
|
type: Inject,
|
227
229
|
args: [OPTION_PANEL]
|
@@ -241,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
241
243
|
type: ViewChild,
|
242
244
|
args: ['notifications', { read: MatExpansionPanel, static: true }]
|
243
245
|
}] } });
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsT0FBTyxFQUFjLEtBQUssRUFBTSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBYSxTQUFTLENBQUMsQ0FBQztBQVd0RSx1QkFBdUI7QUFDdkIsTUFBTSxPQUFPLGdCQUFnQjtJQXNEM0IsbUJBQW1CO0lBQ25CLFlBQTBDLE9BQW1CLEVBQUUsVUFBc0IsRUFBVSxHQUFn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dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIEluamVjdGlvblRva2VuLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXQsIE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBDT01NQSwgRU5URVIsIFNFTUlDT0xPTiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IE9wdGlvbnMsIFVzZXJJbmZvIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIE9wdGlvblR5cGUgPSAnbm90aWZpY2F0aW9ucycgfCAnb3V0b2ZvZmZpY2UnIHwgJ2VtYWlscycgfCAnZ3JhbnRhY2Nlc3MnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QVElPTl9QQU5FTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPcHRpb25EYXRhPignb3B0aW9ucycpO1xyXG5cclxuaW50ZXJmYWNlIE9wdGlvbkRhdGEge1xyXG4gIG9wZW46IE9wdGlvblR5cGU7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcHRpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIG9wdGlvbnMgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWRWYWxpZGF0b3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgcGFyZW50ID0gKGNvbnRyb2wucGFyZW50IGFzIEZvcm1Hcm91cCk7XHJcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5jb250cm9scy5hY3RpdmUudmFsdWUgJiYgIWNvbnRyb2wudmFsdWUpIHJldHVybiB7XHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3N1YnN0aXR1ZUlucHV0JywgeyByZWFkOiBNYXRJbnB1dCB9KSBzdWJzdGl0dWVJbnB1dDogTWF0SW5wdXQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JhbnRJbnB1dCcsIHsgcmVhZDogTWF0Q2hpcElucHV0IH0pIGdyYW50SW5wdXQ6IE1hdENoaXBJbnB1dDtcclxuICByZWFkb25seSBsYW5ndWFnZSA9IHRoaXMuX2ZiLmNvbnRyb2wodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSk7XHJcbiAgcmVhZG9ubHkgYVJJQSA9IHRoaXMuX2ZiLmNvbnRyb2wodGhpcy5fc2Vzc2lvbi5hcmlhKTtcclxuICByZWFkb25seSBsYW5ndWFnZXMgPSB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlcztcclxuICByZWFkb25seSBndXNlcnMgPSB0aGlzLl9mYi5jb250cm9sKFtdKTtcclxuICByZWFkb25seSBzdWJzdGl0dWVJZCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIG5vdGlmaWNhdGlvbnM6IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbGlrZXM6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBjb21tZW50TXlEb2N1bWVudDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGNvbW1lbnRBbnlEb2N1bWVudDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIHVwY29taW5nRXZlbnRzOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgdGFnZ2VkOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgYW55RG9jdW1lbnRTdGF0ZUNoYW5nZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIG15RG9jdW1lbnRTdGF0ZUNoYW5nZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGN1YmVBbm9tYWx5OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgc291bmQ6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgfSksXHJcbiAgICB0YWdzOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxyXG4gICAgZW1haWxzOiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIG1haWw6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBjaGF0OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbm90aWZpY2F0aW9uczogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGV2ZW50czogdGhpcy5fZmIuY29udHJvbChmYWxzZSlcclxuICAgIH0pLFxyXG4gICAgb3V0T2ZPZmZpY2U6IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgc3Vic3RpdHVlSWQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgdGhpcy5fcmVxdWlyZWRWYWxpZGF0b3IpLFxyXG4gICAgICBmcm9tOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxyXG4gICAgICB0bzogdGhpcy5fZmIuY29udHJvbChudWxsKVxyXG4gICAgfSksXHJcbiAgICBncmFudEFjY2VzczogdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICB1c2VyczogdGhpcy5fZmIuY29udHJvbChudWxsLCB0aGlzLl9yZXF1aXJlZFZhbGlkYXRvcilcclxuICAgIH0pXHJcbiAgfSk7XHJcbiAgc3VzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBndXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIHZvYXRpbmc6IGJvb2xlYW47XHJcbiAgb3B0aW9uczogT3B0aW9ucztcclxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQSwgU0VNSUNPTE9OXTtcclxuICBAVmlld0NoaWxkKCdvdXRPZk9mZmljZScsIHsgcmVhZDogTWF0RXhwYW5zaW9uUGFuZWwsIHN0YXRpYzogdHJ1ZSB9KSBvdXRPZk9mZmljZTogTWF0RXhwYW5zaW9uUGFuZWw7XHJcbiAgQFZpZXdDaGlsZCgnbm90aWZpY2F0aW9ucycsIHsgcmVhZDogTWF0RXhwYW5zaW9uUGFuZWwsIHN0YXRpYzogdHJ1ZSB9KSBub3RpZmljYXRpb25zOiBNYXRFeHBhbnNpb25QYW5lbDtcclxuICAvKiogb3B0aW9ucyBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChPUFRJT05fUEFORUwpIHByaXZhdGUgX29wdGlvbjogT3B0aW9uRGF0YSwgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLCBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy52b2F0aW5nID0gIWNvbmZpZy5jb21tZW50cyB8fCBjb25maWcuY29tbWVudHMudm90aW5nICE9PSBmYWxzZTtcclxuICAgIG1lcmdlKG92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnBpcGUoZmlsdGVyKGsgPT4gay5rZXkgPT09ICdFc2NhcGUnKSksIG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IG92ZXJsYXlSZWYuZGlzcG9zZSgpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFSSUEudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4gdGhpcy5fc2Vzc2lvbi5hcmlhID0gdik7XHJcbiAgICB0aGlzLmxhbmd1YWdlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlID0gdik7XHJcbiAgICBjb25zdCBvdXRPZk9mZmljZSA9IHRoaXMuZm9ybS5jb250cm9scy5vdXRPZk9mZmljZTtcclxuICAgIGNvbnN0IGdyYW50QWNjZXNzID0gdGhpcy5mb3JtLmNvbnRyb2xzLmdyYW50QWNjZXNzO1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9ucyA9IHRoaXMuZm9ybS5jb250cm9scy5ub3RpZmljYXRpb25zO1xyXG4gICAgY29uc3QgZW1haWxzID0gdGhpcy5mb3JtLmNvbnRyb2xzLmVtYWlscztcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucztcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG9wdGlvbnMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIGlmICghb3B0aW9ucy5ub3RpZmljYXRpb25zLmFjdGl2ZSlcclxuICAgICAgdGhpcy5fdG9nZ2xlKG5vdGlmaWNhdGlvbnMsIGZhbHNlLCAnbGlrZXMnLFxyXG4gICAgICAgICdjb21tZW50TXlEb2N1bWVudCcsXHJcbiAgICAgICAgJ2NvbW1lbnRBbnlEb2N1bWVudCcsXHJcbiAgICAgICAgJ3VwY29taW5nRXZlbnRzJyxcclxuICAgICAgICAndGFnZ2VkJyxcclxuICAgICAgICAnYW55RG9jdW1lbnRTdGF0ZUNoYW5nZScsXHJcbiAgICAgICAgJ215RG9jdW1lbnRTdGF0ZUNoYW5nZScsXHJcbiAgICAgICAgJ2N1YmVBbm9tYWx5Jyk7XHJcbiAgICBpZiAoIW9wdGlvbnMuZW1haWxzLmFjdGl2ZSlcclxuICAgICAgdGhpcy5fdG9nZ2xlKGVtYWlscywgZmFsc2UsICdtYWlsJyxcclxuICAgICAgICAnY2hhdCcsXHJcbiAgICAgICAgJ25vdGlmaWNhdGlvbnMnLFxyXG4gICAgICAgICdldmVudHMnKTtcclxuICAgIGlmICghb3B0aW9ucy5ncmFudEFjY2Vzcy5hY3RpdmUpXHJcbiAgICAgIHRoaXMuZ3VzZXJzLmRpc2FibGUoKTtcclxuICAgIGlmICghb3B0aW9ucy5vdXRPZk9mZmljZS5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5zdWJzdGl0dWVJZC5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuX3RvZ2dsZShvdXRPZk9mZmljZSwgZmFsc2UsICdmcm9tJywgJ3RvJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghb3B0aW9ucy5vdXRPZk9mZmljZS5mcm9tKVxyXG4gICAgICB0aGlzLl90b2dnbGUob3V0T2ZPZmZpY2UsIGZhbHNlLCAndG8nKTtcclxuICAgIC8vIGNoYW5nZVxyXG4gICAgbm90aWZpY2F0aW9ucy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PlxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZShub3RpZmljYXRpb25zLCBhY3RpdmUsICdsaWtlcycsXHJcbiAgICAgICAgICAnY29tbWVudE15RG9jdW1lbnQnLFxyXG4gICAgICAgICAgJ2NvbW1lbnRBbnlEb2N1bWVudCcsXHJcbiAgICAgICAgICAndXBjb21pbmdFdmVudHMnLFxyXG4gICAgICAgICAgJ3RhZ2dlZCcsXHJcbiAgICAgICAgICAnYW55RG9jdW1lbnRTdGF0ZUNoYW5nZScsXHJcbiAgICAgICAgICAnbXlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAgICdjdWJlQW5vbWFseScpKTtcclxuICAgIGVtYWlscy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB0aGlzLl90b2dnbGUoZW1haWxzLCBhY3RpdmUsICdtYWlsJyxcclxuICAgICAgICAnY2hhdCcsXHJcbiAgICAgICAgJ25vdGlmaWNhdGlvbnMnLFxyXG4gICAgICAgICdldmVudHMnKSk7XHJcbiAgICBncmFudEFjY2Vzcy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgICAgdGhpcy5ndXNlcnMuZW5hYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLmdyYW50SW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB0aGlzLmd1c2Vycy5lbmFibGUoKTtcclxuICAgICAgfSk7XHJcbiAgICBvdXRPZk9mZmljZS5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJZC5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHVlSW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJZC5kaXNhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBhY3RpdmUsICdmcm9tJyk7XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBhY3RpdmUgJiYgb3V0T2ZPZmZpY2UuY29udHJvbHMuZnJvbS52YWx1ZSwgJ3RvJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgb3V0T2ZPZmZpY2UuY29udHJvbHMuZnJvbS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoZnJvbSA9PlxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZShvdXRPZk9mZmljZSwgZnJvbSAhPT0gbnVsbCwgJ3RvJykpO1xyXG4gICAgdGhpcy5ndXNlcnMkID0gdGhpcy5ndXNlcnMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBmaWx0ZXIodiA9PiBpc1N0cmluZyh2KSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYgYXMgYW55KSksXHJcbiAgICAgIG1hcChyID0+IHtcclxuICAgICAgICBjb25zdCBleGNsdWRlID0gKGdyYW50QWNjZXNzLnZhbHVlLnVzZXJzIGFzIHN0cmluZ1tdKT8uc2xpY2UoKSB8fCBbXTtcclxuICAgICAgICBleGNsdWRlLnB1c2godGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCk7XHJcbiAgICAgICAgcmV0dXJuIHIuZmlsdGVyKHUgPT4gZXhjbHVkZS5pbmRleE9mKHUuaWQpIDwgMCk7XHJcbiAgICAgIH0pKTtcclxuICAgIHRoaXMuc3VzZXJzJCA9IHRoaXMuc3Vic3RpdHVlSWQudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICB0YXAodiA9PlxyXG4gICAgICAgICF2ICYmIG91dE9mT2ZmaWNlLmNvbnRyb2xzLnN1YnN0aXR1ZUlkLnNldFZhbHVlKG51bGwpXHJcbiAgICAgICksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT4gdGhpcy5fYWNjb3VudHMuZmluZEFsbCh2KSksXHJcbiAgICAgIG1hcChyID0+IHIuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkpKTtcclxuICAgIGlmIChvcHRpb25zLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkKVxyXG4gICAgICB0aGlzLl9hY2NvdW50cy5nZXQob3B0aW9ucy5vdXRPZk9mZmljZS5zdWJzdGl0dWVJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICB0aGlzLnN1YnN0aXR1ZUlkLnNldFZhbHVlKHUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICBpZiAodGhpcy5fb3B0aW9uKVxyXG4gICAgICBzd2l0Y2ggKHRoaXMuX29wdGlvbi5vcGVuKSB7XHJcbiAgICAgICAgY2FzZSAnb3V0b2ZvZmZpY2UnOlxyXG4gICAgICAgICAgdGhpcy5vdXRPZk9mZmljZS5vcGVuKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9wZW4oKTtcclxuICAgICAgfVxyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLmZvcm0udmFsaWQgJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi51cGRhdGUodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSh7IGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpIH0pKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdG9nZ2xlKGdyb3VwOiBGb3JtR3JvdXAsIGFjdGl2ZTogYm9vbGVhbiwgLi4uY29udHJvbHM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKG5hbWUgPT4ge1xyXG4gICAgICBpZiAoIWFjdGl2ZSkgZ3JvdXAuY29udHJvbHNbbmFtZV0uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIGVsc2UgZ3JvdXAuY29udHJvbHNbbmFtZV0uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICB0b2dnbGVTb3VuZCgpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9scy5ub3RpZmljYXRpb25zLmNvbnRyb2xzLnNvdW5kLnNldFZhbHVlKCF0aGlzLm9wdGlvbnMubm90aWZpY2F0aW9ucy5zb3VuZCk7XHJcbiAgfVxyXG4gIGRpc3BsYXkgPSAoaXRlbTogVXNlckluZm8pID0+IHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGFkZFRhZyhldmVudDogTWF0Q2hpcElucHV0RXZlbnQpIHtcclxuICAgIGNvbnN0IHsgY2hpcElucHV0LCB2YWx1ZSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgLy8gQWRkIG91ciBmcnVpdFxyXG4gICAgaWYgKCh2YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy50YWdzLnB1c2godmFsdWUudHJpbSgpKTtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZSBcclxuICAgIGNoaXBJbnB1dD8uY2xlYXIoKTtcclxuICB9XHJcbiAgcmVtb3ZlVGFnKHRhZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMudGFncy5yZW1vdmUodGFnKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlR3JhbnQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3MudXNlcnMgYXMgc3RyaW5nW107XHJcbiAgICBjb25zdCBpbmRleCA9IHVzZXJzLmluZGV4T2YoaWQpO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgYWRkR3JhbnQoaW5wOiBIVE1MSW5wdXRFbGVtZW50LCBldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3MudXNlcnMgYXMgc3RyaW5nW107XHJcbiAgICBjb25zdCBpZCA9IGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoIXVzZXJzKVxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzLmdyYW50QWNjZXNzKS5jb250cm9scy51c2Vycy5zZXRWYWx1ZShbaWRdKTtcclxuICAgIGVsc2VcclxuICAgICAgdXNlcnMucHVzaChpZCk7XHJcbiAgICBpbnAudmFsdWUgPSAnJztcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgc2V0U3Vic3RpdHV0ZShldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgKHRoaXMuZm9ybS5jb250cm9scy5vdXRPZk9mZmljZSkuY29udHJvbHMuc3Vic3RpdHVlSWQuc2V0VmFsdWUoKGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBVc2VySW5mbykuaWQpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8bWF0LWFjY29yZGlvbj5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNub3RpZmljYXRpb25zPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7J05vdGlmaWNhdGlvbnMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5ub3RpZmljYXRpb25zPC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwibm90aWZpY2F0aW9uc1wiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVNvdW5kKClcIiBbYml6ZG9jVG9vbHRpcF09XCInU291bmQnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj57e29wdGlvbnMubm90aWZpY2F0aW9ucy5zb3VuZCA/ICd2b2x1bWVfdXAnIDogJ3ZvbHVtZV9vZmYnfX08L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cIm15RG9jdW1lbnRTdGF0ZUNoYW5nZVwiPnt7J015U3RhdGVDaGFuZ2UnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYW55RG9jdW1lbnRTdGF0ZUNoYW5nZVwiPnt7J0FueVN0YXRlQ2hhbmdlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRNeURvY3VtZW50XCI+e3snQ29tbWVudE15RG9jdW1lbnQnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudEFueURvY3VtZW50XCI+e3snQ29tbWVudEFueURvY3VtZW50JyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImxpa2VzXCIgW3N0eWxlLmRpc3BsYXldPVwidm9hdGluZz8nJzonbm9uZSdcIj57eydMaWtlZENvbW1lbnQnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwidGFnZ2VkXCI+e3snVGFnZ2VkSW5Db21tZW50cycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJ1cGNvbWluZ0V2ZW50c1wiPnt7J1VwY29taW5nRXZlbnRzJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImN1YmVBbm9tYWx5XCI+e3snQ3ViZUFub21hbHknIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgI2VtYWlscz5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICB7eydFbWFpbHMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5hbHRlcm5hdGVfZW1haWw8L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJlbWFpbHNcIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImFjdGl2ZVwiPnt7J0FjdGl2ZScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJtYWlsXCI+e3snTWFpbHMnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY2hhdFwiPnt7J0NvbnZlcnNhdGlvbnMnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibm90aWZpY2F0aW9uc1wiPnt7J0VtYWlsTm90aWZpY2F0aW9ucycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJldmVudHNcIj57eydBbGFybUV2ZW50cycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjb3V0T2ZPZmZpY2U+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snT3V0T2ZPZmZpY2UnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj50cmVuZGluZ19mbGF0PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICAgIDwhLS17eydPdXRPZk9mZmljZVRpcCcgfCB0cmFuc2xhdGV9fS0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJvdXRPZk9mZmljZVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwic3Vic3RpdHVlSWRcIiB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJzYXV0b1wiICNzdWJzdGl0dWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQXNzb2NpYXRlJyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJmb3JtLnZhbHVlLm91dE9mT2ZmaWNlLmFjdGl2ZVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwic2V0U3Vic3RpdHV0ZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHN1c2VycyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ1XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgICAgPG1hdC1oaW50Pnt7J091dE9mT2ZmaWNlVGlwJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJmcm9tXCIgZm9ybUNvbnRyb2xOYW1lPVwiZnJvbVwiIHBsYWNlaG9sZGVyPVwie3snRnJvbSd8IHRyYW5zbGF0ZX19XCIgLz5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImZyb21cIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwidG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ0b1wiIFttaW5dPVwiZm9ybS52YWx1ZS5vdXRPZk9mZmljZT8uZnJvbVwiIHBsYWNlaG9sZGVyPVwie3snVG8nfCB0cmFuc2xhdGV9fVwiIC8+XHJcbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgW2Zvcl09XCJ0b1wiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICN0bz48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjZ3JhbnRBY2Nlc3M+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snR3JhbnRBY2Nlc3MnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5hY2NvdW50X2NpcmNsZTwvbWF0LWljb24+LS0+XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImdyYW50QWNjZXNzXCIgY2xhc3M9XCJncmFudC1zZWN0aW9uXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtY2hpcC1ncmlkICNncmFudExpc3QgW2F0dHIuYXJpYS1sYWJlbF09XCJcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsdWUuZ3JhbnRBY2Nlc3MuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IHUgb2YgZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy51c2VycyB8fCBbXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlR3JhbnQodSlcIj5cclxuICAgICAgICAgICAgICB7e3UgfCB1c2VyTmFtZSB8IGFzeW5jfX1cclxuICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiZ3VzZXJzXCIgcGxhY2Vob2xkZXI9XCJ7eydVc2Vycyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAjZ3JhbnRJbnB1dFxyXG4gICAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiZ3JhbnRBdXRvXCJcclxuICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImdyYW50TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiPlxyXG4gICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2dyYW50QXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJhZGRHcmFudChncmFudElucHV0LCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIGd1c2VycyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ1LmlkXCI+XHJcbiAgICAgICAgICAgICAge3t1Lm5hbWV9fVxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidS5lbWFpbFwiPiZuYnNwOyAtIHt7dS5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3snR3JhbnRUaXAnIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgI3ByZWZlcmVuY2VzPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7J1ByZWZlcmVuY2VzJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgICAgIDwhLS08bWF0LWljb24+PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwcz5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb3JtLnZhbHVlLnRhZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChyZW1vdmVkKT1cInJlbW92ZVRhZyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIHt7aXRlbX19XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9tYXQtY2hpcC1yb3c+XHJcbiAgICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cIidUYWdzJ3x0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImFkZFRhZygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbZm9ybUNvbnRyb2xdPVwiYVJJQVwiPnt7J0FSSUEnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gIDwvbWF0LWFjY29yZGlvbj5cclxuPC9mb3JtPlxyXG4iXX0=
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsT0FBTyxFQUFjLEtBQUssRUFBTSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF2RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWEsU0FBUyxDQUFDLENBQUM7QUFXdEUsdUJBQXVCO0FBQ3ZCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3RDNCLG1CQUFtQjtJQUNuQixZQUEwQyxPQUFtQixFQUFFLFVBQXNC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YSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0ksYUFBYTtzQkFBbkYsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25QYW5lbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdENoaXBJbnB1dCwgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiwgU0VNSUNPTE9OIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBCSVpET0NfQ09ORklHLCBCaXpEb2NDb25maWcgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBpc01vYmlsZSwgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IE9wdGlvbnMsIFVzZXJJbmZvIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIE9wdGlvblR5cGUgPSAnbm90aWZpY2F0aW9ucycgfCAnb3V0b2ZvZmZpY2UnIHwgJ2VtYWlscycgfCAnZ3JhbnRhY2Nlc3MnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QVElPTl9QQU5FTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPcHRpb25EYXRhPignb3B0aW9ucycpO1xyXG5cclxuaW50ZXJmYWNlIE9wdGlvbkRhdGEge1xyXG4gIG9wZW46IE9wdGlvblR5cGU7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcHRpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIG9wdGlvbnMgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcmVhZG9ubHkgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcclxuICBwcml2YXRlIF9yZXF1aXJlZFZhbGlkYXRvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICBjb25zdCBwYXJlbnQgPSAoY29udHJvbC5wYXJlbnQgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LmNvbnRyb2xzLmFjdGl2ZS52YWx1ZSAmJiAhY29udHJvbC52YWx1ZSkgcmV0dXJuIHtcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxuICB9XHJcbiAgQFZpZXdDaGlsZCgnc3Vic3RpdHVlSW5wdXQnLCB7IHJlYWQ6IE1hdElucHV0IH0pIHN1YnN0aXR1ZUlucHV0OiBNYXRJbnB1dDtcclxuICBAVmlld0NoaWxkKCdncmFudElucHV0JywgeyByZWFkOiBNYXRDaGlwSW5wdXQgfSkgZ3JhbnRJbnB1dDogTWF0Q2hpcElucHV0O1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlKTtcclxuICByZWFkb25seSBhUklBID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLl9zZXNzaW9uLmFyaWEpO1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlcyA9IHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2VzO1xyXG4gIHJlYWRvbmx5IGd1c2VycyA9IHRoaXMuX2ZiLmNvbnRyb2woW10pO1xyXG4gIHJlYWRvbmx5IHN1YnN0aXR1ZUlkID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgbm90aWZpY2F0aW9uczogdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBsaWtlczogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGNvbW1lbnRNeURvY3VtZW50OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgY29tbWVudEFueURvY3VtZW50OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgdXBjb21pbmdFdmVudHM6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICB0YWdnZWQ6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBhbnlEb2N1bWVudFN0YXRlQ2hhbmdlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbXlEb2N1bWVudFN0YXRlQ2hhbmdlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgY3ViZUFub21hbHk6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBzb3VuZDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICB9KSxcclxuICAgIHRhZ3M6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXHJcbiAgICBlbWFpbHM6IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbWFpbDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGNoYXQ6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBub3RpZmljYXRpb25zOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgZXZlbnRzOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKVxyXG4gICAgfSksXHJcbiAgICBvdXRPZk9mZmljZTogdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBzdWJzdGl0dWVJZDogdGhpcy5fZmIuY29udHJvbChudWxsLCB0aGlzLl9yZXF1aXJlZFZhbGlkYXRvciksXHJcbiAgICAgIGZyb206IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXHJcbiAgICAgIHRvOiB0aGlzLl9mYi5jb250cm9sKG51bGwpXHJcbiAgICB9KSxcclxuICAgIGdyYW50QWNjZXNzOiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIHVzZXJzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIHRoaXMuX3JlcXVpcmVkVmFsaWRhdG9yKVxyXG4gICAgfSlcclxuICB9KTtcclxuICBzdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIGd1c2VycyQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgdm9hdGluZzogYm9vbGVhbjtcclxuICBvcHRpb25zOiBPcHRpb25zO1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT05dO1xyXG4gIEBWaWV3Q2hpbGQoJ291dE9mT2ZmaWNlJywgeyByZWFkOiBNYXRFeHBhbnNpb25QYW5lbCwgc3RhdGljOiB0cnVlIH0pIG91dE9mT2ZmaWNlOiBNYXRFeHBhbnNpb25QYW5lbDtcclxuICBAVmlld0NoaWxkKCdub3RpZmljYXRpb25zJywgeyByZWFkOiBNYXRFeHBhbnNpb25QYW5lbCwgc3RhdGljOiB0cnVlIH0pIG5vdGlmaWNhdGlvbnM6IE1hdEV4cGFuc2lvblBhbmVsO1xyXG4gIC8qKiBvcHRpb25zIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE9QVElPTl9QQU5FTCkgcHJpdmF0ZSBfb3B0aW9uOiBPcHRpb25EYXRhLCBvdmVybGF5UmVmOiBPdmVybGF5UmVmLCBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIGNvbmZpZzogQml6RG9jQ29uZmlnKSB7XHJcbiAgICB0aGlzLnZvYXRpbmcgPSAhY29uZmlnLmNvbW1lbnRzIHx8IGNvbmZpZy5jb21tZW50cy52b3RpbmcgIT09IGZhbHNlO1xyXG4gICAgbWVyZ2Uob3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShmaWx0ZXIoayA9PiBrLmtleSA9PT0gJ0VzY2FwZScpKSwgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gb3ZlcmxheVJlZi5kaXNwb3NlKCkpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYVJJQS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PiB0aGlzLl9zZXNzaW9uLmFyaWEgPSB2KTtcclxuICAgIHRoaXMubGFuZ3VhZ2UudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UgPSB2KTtcclxuICAgIGNvbnN0IG91dE9mT2ZmaWNlID0gdGhpcy5mb3JtLmNvbnRyb2xzLm91dE9mT2ZmaWNlO1xyXG4gICAgY29uc3QgZ3JhbnRBY2Nlc3MgPSB0aGlzLmZvcm0uY29udHJvbHMuZ3JhbnRBY2Nlc3M7XHJcbiAgICBjb25zdCBub3RpZmljYXRpb25zID0gdGhpcy5mb3JtLmNvbnRyb2xzLm5vdGlmaWNhdGlvbnM7XHJcbiAgICBjb25zdCBlbWFpbHMgPSB0aGlzLmZvcm0uY29udHJvbHMuZW1haWxzO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUob3B0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgaWYgKCFvcHRpb25zLm5vdGlmaWNhdGlvbnMuYWN0aXZlKVxyXG4gICAgICB0aGlzLl90b2dnbGUobm90aWZpY2F0aW9ucywgZmFsc2UsICdsaWtlcycsXHJcbiAgICAgICAgJ2NvbW1lbnRNeURvY3VtZW50JyxcclxuICAgICAgICAnY29tbWVudEFueURvY3VtZW50JyxcclxuICAgICAgICAndXBjb21pbmdFdmVudHMnLFxyXG4gICAgICAgICd0YWdnZWQnLFxyXG4gICAgICAgICdhbnlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAnbXlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAnY3ViZUFub21hbHknKTtcclxuICAgIGlmICghb3B0aW9ucy5lbWFpbHMuYWN0aXZlKVxyXG4gICAgICB0aGlzLl90b2dnbGUoZW1haWxzLCBmYWxzZSwgJ21haWwnLFxyXG4gICAgICAgICdjaGF0JyxcclxuICAgICAgICAnbm90aWZpY2F0aW9ucycsXHJcbiAgICAgICAgJ2V2ZW50cycpO1xyXG4gICAgaWYgKCFvcHRpb25zLmdyYW50QWNjZXNzLmFjdGl2ZSlcclxuICAgICAgdGhpcy5ndXNlcnMuZGlzYWJsZSgpO1xyXG4gICAgaWYgKCFvcHRpb25zLm91dE9mT2ZmaWNlLmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLnN1YnN0aXR1ZUlkLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBmYWxzZSwgJ2Zyb20nLCAndG8nKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCFvcHRpb25zLm91dE9mT2ZmaWNlLmZyb20pXHJcbiAgICAgIHRoaXMuX3RvZ2dsZShvdXRPZk9mZmljZSwgZmFsc2UsICd0bycpO1xyXG4gICAgLy8gY2hhbmdlXHJcbiAgICBub3RpZmljYXRpb25zLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG5vdGlmaWNhdGlvbnMsIGFjdGl2ZSwgJ2xpa2VzJyxcclxuICAgICAgICAgICdjb21tZW50TXlEb2N1bWVudCcsXHJcbiAgICAgICAgICAnY29tbWVudEFueURvY3VtZW50JyxcclxuICAgICAgICAgICd1cGNvbWluZ0V2ZW50cycsXHJcbiAgICAgICAgICAndGFnZ2VkJyxcclxuICAgICAgICAgICdhbnlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAgICdteURvY3VtZW50U3RhdGVDaGFuZ2UnLFxyXG4gICAgICAgICAgJ2N1YmVBbm9tYWx5JykpO1xyXG4gICAgZW1haWxzLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHRoaXMuX3RvZ2dsZShlbWFpbHMsIGFjdGl2ZSwgJ21haWwnLFxyXG4gICAgICAgICdjaGF0JyxcclxuICAgICAgICAnbm90aWZpY2F0aW9ucycsXHJcbiAgICAgICAgJ2V2ZW50cycpKTtcclxuICAgIGdyYW50QWNjZXNzLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHtcclxuICAgICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgICB0aGlzLmd1c2Vycy5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuZ3JhbnRJbnB1dC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHRoaXMuZ3VzZXJzLmVuYWJsZSgpO1xyXG4gICAgICB9KTtcclxuICAgIG91dE9mT2ZmaWNlLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHtcclxuICAgICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1ZUlkLmVuYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJbnB1dC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1ZUlkLmRpc2FibGUoKTtcclxuICAgICAgICB0aGlzLl90b2dnbGUob3V0T2ZPZmZpY2UsIGFjdGl2ZSwgJ2Zyb20nKTtcclxuICAgICAgICB0aGlzLl90b2dnbGUob3V0T2ZPZmZpY2UsIGFjdGl2ZSAmJiBvdXRPZk9mZmljZS5jb250cm9scy5mcm9tLnZhbHVlLCAndG8nKTtcclxuICAgICAgfSk7XHJcbiAgICBvdXRPZk9mZmljZS5jb250cm9scy5mcm9tLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZShmcm9tID0+XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBmcm9tICE9PSBudWxsLCAndG8nKSk7XHJcbiAgICB0aGlzLmd1c2VycyQgPSB0aGlzLmd1c2Vycy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX2FjY291bnRzLmZpbmRBbGwodiBhcyBhbnkpKSxcclxuICAgICAgbWFwKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGV4Y2x1ZGUgPSAoZ3JhbnRBY2Nlc3MudmFsdWUudXNlcnMgYXMgc3RyaW5nW10pPy5zbGljZSgpIHx8IFtdO1xyXG4gICAgICAgIGV4Y2x1ZGUucHVzaCh0aGlzLl9zZXNzaW9uLnByb2ZpbGUudXNlcklkKTtcclxuICAgICAgICByZXR1cm4gci5maWx0ZXIodSA9PiBleGNsdWRlLmluZGV4T2YodS5pZCkgPCAwKTtcclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5zdXNlcnMkID0gdGhpcy5zdWJzdGl0dWVJZC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIHRhcCh2ID0+XHJcbiAgICAgICAgIXYgJiYgb3V0T2ZPZmZpY2UuY29udHJvbHMuc3Vic3RpdHVlSWQuc2V0VmFsdWUobnVsbClcclxuICAgICAgKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYpKSxcclxuICAgICAgbWFwKHIgPT4gci5maWx0ZXIodSA9PiB1LmlkICE9PSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUudXNlcklkKSkpO1xyXG4gICAgaWYgKG9wdGlvbnMub3V0T2ZPZmZpY2Uuc3Vic3RpdHVlSWQpXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldChvcHRpb25zLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHRoaXMuc3Vic3RpdHVlSWQuc2V0VmFsdWUodSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgIGlmICh0aGlzLl9vcHRpb24pXHJcbiAgICAgIHN3aXRjaCAodGhpcy5fb3B0aW9uLm9wZW4pIHtcclxuICAgICAgICBjYXNlICdvdXRvZm9mZmljZSc6XHJcbiAgICAgICAgICB0aGlzLm91dE9mT2ZmaWNlLm9wZW4oKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMub3BlbigpO1xyXG4gICAgICB9XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMuZm9ybS52YWxpZCAmJlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnVwZGF0ZSh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSkuc3Vic2NyaWJlKHsgZXJyb3I6ICgpID0+IHRoaXMuX3NiLmVycm9yKCkgfSkpO1xyXG4gIH1cclxuICBwcml2YXRlIF90b2dnbGUoZ3JvdXA6IEZvcm1Hcm91cCwgYWN0aXZlOiBib29sZWFuLCAuLi5jb250cm9sczogc3RyaW5nW10pIHtcclxuICAgIGNvbnRyb2xzLmZvckVhY2gobmFtZSA9PiB7XHJcbiAgICAgIGlmICghYWN0aXZlKSBncm91cC5jb250cm9sc1tuYW1lXS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgZWxzZSBncm91cC5jb250cm9sc1tuYW1lXS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZVNvdW5kKCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLm5vdGlmaWNhdGlvbnMuY29udHJvbHMuc291bmQuc2V0VmFsdWUoIXRoaXMub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kKTtcclxuICB9XHJcbiAgZGlzcGxheSA9IChpdGVtOiBVc2VySW5mbykgPT4ge1xyXG4gICAgcmV0dXJuIGl0ZW0gPyBpdGVtLm5hbWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgYWRkVGFnKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xyXG4gICAgY29uc3QgeyBjaGlwSW5wdXQsIHZhbHVlIH0gPSBldmVudDtcclxuXHJcbiAgICAvLyBBZGQgb3VyIGZydWl0XHJcbiAgICBpZiAoKHZhbHVlIHx8ICcnKS50cmltKCkpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnRhZ3MucHVzaCh2YWx1ZS50cmltKCkpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzZXQgdGhlIGlucHV0IHZhbHVlIFxyXG4gICAgY2hpcElucHV0Py5jbGVhcigpO1xyXG4gIH1cclxuICByZW1vdmVUYWcodGFnOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9ucy50YWdzLnJlbW92ZSh0YWcpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWRcclxuICAgKi9cclxuICByZW1vdmVHcmFudChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB1c2VycyA9IHRoaXMuZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy51c2VycyBhcyBzdHJpbmdbXTtcclxuICAgIGNvbnN0IGluZGV4ID0gdXNlcnMuaW5kZXhPZihpZCk7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApXHJcbiAgICAgIHVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpbnBcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBhZGRHcmFudChpbnA6IEhUTUxJbnB1dEVsZW1lbnQsIGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB1c2VycyA9IHRoaXMuZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy51c2VycyBhcyBzdHJpbmdbXTtcclxuICAgIGNvbnN0IGlkID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIHN0cmluZztcclxuICAgIGlmICghdXNlcnMpXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHMuZ3JhbnRBY2Nlc3MpLmNvbnRyb2xzLnVzZXJzLnNldFZhbHVlKFtpZF0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB1c2Vycy5wdXNoKGlkKTtcclxuICAgIGlucC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICBzZXRTdWJzdGl0dXRlKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICAodGhpcy5mb3JtLmNvbnRyb2xzLm91dE9mT2ZmaWNlKS5jb250cm9scy5zdWJzdGl0dWVJZC5zZXRWYWx1ZSgoZXZlbnQub3B0aW9uLnZhbHVlIGFzIFVzZXJJbmZvKS5pZCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gIDxtYXQtYWNjb3JkaW9uPlxyXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgI25vdGlmaWNhdGlvbnM+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snTm90aWZpY2F0aW9ucycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPm5vdGlmaWNhdGlvbnM8L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJub3RpZmljYXRpb25zXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU291bmQoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidTb3VuZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnt7b3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kID8gJ3ZvbHVtZV91cCcgOiAndm9sdW1lX29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibXlEb2N1bWVudFN0YXRlQ2hhbmdlXCI+e3snTXlTdGF0ZUNoYW5nZScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhbnlEb2N1bWVudFN0YXRlQ2hhbmdlXCI+e3snQW55U3RhdGVDaGFuZ2UnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudE15RG9jdW1lbnRcIj57eydDb21tZW50TXlEb2N1bWVudCcgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50QW55RG9jdW1lbnRcIj57eydDb21tZW50QW55RG9jdW1lbnQnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibGlrZXNcIiBbc3R5bGUuZGlzcGxheV09XCJ2b2F0aW5nPycnOidub25lJ1wiPnt7J0xpa2VkQ29tbWVudCcgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJ0YWdnZWRcIj57eydUYWdnZWRJbkNvbW1lbnRzJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cInVwY29taW5nRXZlbnRzXCI+e3snVXBjb21pbmdFdmVudHMnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZUFub21hbHlcIj57eydDdWJlQW5vbWFseScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjZW1haWxzPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7J0VtYWlscycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPmFsdGVybmF0ZV9lbWFpbDwvbWF0LWljb24+LS0+XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImVtYWlsc1wiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cIm1haWxcIj57eydNYWlscycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJjaGF0XCI+e3snQ29udmVyc2F0aW9ucycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJub3RpZmljYXRpb25zXCI+e3snRW1haWxOb3RpZmljYXRpb25zJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImV2ZW50c1wiPnt7J0FsYXJtRXZlbnRzJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNvdXRPZk9mZmljZT5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICB7eydPdXRPZk9mZmljZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPnRyZW5kaW5nX2ZsYXQ8L21hdC1pY29uPi0tPlxyXG4gICAgICAgICAgPCEtLXt7J091dE9mT2ZmaWNlVGlwJyB8IHRyYW5zbGF0ZX19LS0+XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cIm91dE9mT2ZmaWNlXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJzdWJzdGl0dWVJZFwiIHR5cGU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cInNhdXRvXCIgI3N1YnN0aXR1ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBc3NvY2lhdGUnIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cImZvcm0udmFsdWUub3V0T2ZPZmZpY2UuYWN0aXZlXCIgLz5cclxuICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJzZXRTdWJzdGl0dXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2Ygc3VzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInVcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3snT3V0T2ZPZmZpY2VUaXAnIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydEYXRlcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwiZGF0ZXNcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJmcm9tXCIgW3BsYWNlaG9sZGVyXT1cIidGcm9tJ3x0cmFuc2xhdGVcIiBbbWluXT1cInRvZGF5XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cInRvXCIgW3BsYWNlaG9sZGVyXT1cIidUbyd8dHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkYXRlc1wiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjZGF0ZXMgW3RvdWNoVWldPVwiaXNNb2JpbGVcIj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNncmFudEFjY2Vzcz5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICB7eydHcmFudEFjY2VzcycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPmFjY291bnRfY2lyY2xlPC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiZ3JhbnRBY2Nlc3NcIiBjbGFzcz1cImdyYW50LXNlY3Rpb25cIj5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1jaGlwLWdyaWQgI2dyYW50TGlzdCBbYXR0ci5hcmlhLWxhYmVsXT1cIlwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgdSBvZiBmb3JtLnZhbHVlLmdyYW50QWNjZXNzLnVzZXJzIHx8IFtdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVHcmFudCh1KVwiPlxyXG4gICAgICAgICAgICAgIHt7dSB8IHVzZXJOYW1lIHwgYXN5bmN9fVxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJndXNlcnNcIiBwbGFjZWhvbGRlcj1cInt7J1VzZXJzJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICNncmFudElucHV0XHJcbiAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJncmFudEF1dG9cIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiZ3JhbnRMaXN0XCJcclxuICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjZ3JhbnRBdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImFkZEdyYW50KGdyYW50SW5wdXQsICRldmVudClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgZ3VzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj5cclxuICAgICAgICAgICAgICB7e3UubmFtZX19XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1LmVtYWlsXCI+Jm5ic3A7IC0ge3t1LmVtYWlsfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICAgIDxtYXQtaGludD57eydHcmFudFRpcCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjcHJlZmVyZW5jZXM+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snUHJlZmVyZW5jZXMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj48L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzPlxyXG4gICAgICAgICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm0udmFsdWUudGFnc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCIgKHJlbW92ZWQpPVwicmVtb3ZlVGFnKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ1RhZ3MnfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkVGFnKCRldmVudClcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFtmb3JtQ29udHJvbF09XCJhUklBXCI+e3snQVJJQScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgPC9tYXQtYWNjb3JkaW9uPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|