@bizdoc/core 1.16.27 → 1.16.29
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/assets/system/google.svg +13 -0
- package/assets/themes/brown.min.css +8 -8
- package/assets/themes/dark.min.css +8 -8
- package/assets/themes/deep-purple-light-blue.min.css +8 -8
- package/assets/themes/deep-purple-teal.min.css +8 -8
- package/assets/themes/default.min.css +8 -8
- package/assets/themes/green.min.css +8 -8
- package/assets/themes/indigo.min.css +8 -8
- package/esm2020/lib/admin/configuration-designer/declarations.mjs +2 -1
- package/esm2020/lib/admin/configuration-designer/designer.component.mjs +5 -3
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/node.component.mjs +18 -0
- package/esm2020/lib/admin/localized-string.component.mjs +52 -0
- package/esm2020/lib/core/controls/signature.input.mjs +149 -0
- package/esm2020/lib/core/mailbox.service.mjs +11 -2
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/pipes/localized-string.pipe.mjs +24 -0
- package/esm2020/lib/core/slots/pane-ref.mjs +3 -2
- package/esm2020/lib/core/translations.mjs +49 -4
- package/esm2020/lib/reports/report-ref.mjs +1 -1
- package/esm2020/lib/reports/report-viewer.component.mjs +5 -2
- package/esm2020/lib/shared.module.mjs +11 -8
- package/esm2020/lib/system.module.mjs +11 -13
- package/esm2020/public-api.mjs +3 -2
- package/fesm2015/bizdoc-core.mjs +369 -327
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +369 -324
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/configuration-designer/declarations.d.ts +4 -0
- package/lib/admin/configuration-designer/designer-element.component.d.ts +1 -0
- package/lib/admin/configuration-designer/elements/node.component.d.ts +7 -0
- package/lib/admin/localized-string.component.d.ts +20 -0
- package/lib/core/controls/signature.input.d.ts +53 -0
- package/lib/core/mailbox.service.d.ts +2 -1
- package/lib/core/models.d.ts +7 -0
- package/lib/core/pipes/localized-string.pipe.d.ts +11 -0
- package/lib/core/slots/pane-ref.d.ts +10 -9
- package/lib/core/translations.d.ts +45 -0
- package/lib/reports/report-ref.d.ts +2 -0
- package/lib/shared.module.d.ts +137 -136
- package/lib/system.module.d.ts +59 -59
- package/package.json +11 -9
- package/public-api.d.ts +3 -2
- package/esm2020/lib/admin/configuration-designer/elements/survey-form.component.mjs +0 -44
- package/esm2020/lib/admin/form/survey/survey.component.mjs +0 -180
- package/esm2020/lib/compose/survey/survey.component.mjs +0 -73
- package/lib/admin/configuration-designer/elements/survey-form.component.d.ts +0 -18
- package/lib/admin/form/survey/survey.component.d.ts +0 -123
- package/lib/compose/survey/survey.component.d.ts +0 -17
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Component } from "@angular/core";
|
2
|
+
import { DesignerTypeElementComponent } from "../designer.base";
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/forms";
|
5
|
+
import * as i2 from "../designer-element.component";
|
6
|
+
export class NodeDesignerComponent extends DesignerTypeElementComponent {
|
7
|
+
constructor() {
|
8
|
+
super(...arguments);
|
9
|
+
this.form = this._fb.group({});
|
10
|
+
}
|
11
|
+
}
|
12
|
+
NodeDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NodeDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
13
|
+
NodeDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: NodeDesignerComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n </form>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: i2.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form"], outputs: ["continue", "save"] }] });
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NodeDesignerComponent, decorators: [{
|
15
|
+
type: Component,
|
16
|
+
args: [{ template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n </form>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
|
17
|
+
}] });
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBR2hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSw0QkFBNEI7SUFEdkU7O1FBRUUsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQ3JCLENBQUMsQ0FBQztLQUNKOztrSEFIWSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwyRUNKbEMsOE5BTUE7MkZERmEscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdub2RlLmNvbXBvbmVudC5odG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgTm9kZURlc2lnbmVyQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB7XHJcbiAgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICB9KTtcclxufVxyXG4iLCI8Yml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQgW2Zvcm1dPVwiZm9ybVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NFZGl0Q29udGVudD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9iaXpkb2MtZGVzaWduZXItZWxlbWVudD5cclxuIl19
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { Component, Input, Host } from "@angular/core";
|
2
|
+
import { Validators } from "@angular/forms";
|
3
|
+
import { isString } from "../core/functions";
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/forms";
|
6
|
+
import * as i2 from "../core/session.service";
|
7
|
+
import * as i3 from "@angular/common";
|
8
|
+
import * as i4 from "@angular/material/form-field";
|
9
|
+
import * as i5 from "@angular/material/input";
|
10
|
+
import * as i6 from "../core/pipes/translate.pipe";
|
11
|
+
/** */
|
12
|
+
export class LocalizedStringComponent {
|
13
|
+
constructor(_form, _session, _fb) {
|
14
|
+
this._form = _form;
|
15
|
+
this._session = _session;
|
16
|
+
this._fb = _fb;
|
17
|
+
this.languages = _session.languages;
|
18
|
+
}
|
19
|
+
ngOnInit() {
|
20
|
+
const up = this._form.get(this.formControlName), value = up.value;
|
21
|
+
if (isString(value) || !value) {
|
22
|
+
this.control = control(value);
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
const group = this._fb.group({});
|
26
|
+
for (let lang of this._session.languages)
|
27
|
+
group.addControl(lang, control(value[lang]));
|
28
|
+
this.control = group;
|
29
|
+
this.localized = true;
|
30
|
+
}
|
31
|
+
this.control.valueChanges.subscribe(v => up.setValue(v));
|
32
|
+
function control(value) {
|
33
|
+
const control = this._fb.control(value, this.required ? Validators.required : null);
|
34
|
+
return control;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
LocalizedStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LocalizedStringComponent, deps: [{ token: i1.FormGroup, host: true }, { token: i2.SessionService }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
39
|
+
LocalizedStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: { formControlName: "formControlName", label: "label", required: "required" }, ngImport: i0, template: "<div *ngIf=\"localized; else string\" [formGroup]=\"control\" class=\"column\">\r\n <mat-form-field *ngFor=\"let lang of languages; index as index\">\r\n <mat-label>{{label|translate}} / {{lang|translate}}</mat-label>\r\n <input matInput [formControlName]=\"lang\" />\r\n </mat-form-field>\r\n</div>\r\n<ng-template #string>\r\n <mat-form-field>\r\n <mat-label>{{label|translate}}</mat-label>\r\n <input matInput [formControl]=\"control\" />\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:label\"></mat-error>\r\n </mat-form-field>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LocalizedStringComponent, decorators: [{
|
41
|
+
type: Component,
|
42
|
+
args: [{ selector: 'bizdoc-localized-string', template: "<div *ngIf=\"localized; else string\" [formGroup]=\"control\" class=\"column\">\r\n <mat-form-field *ngFor=\"let lang of languages; index as index\">\r\n <mat-label>{{label|translate}} / {{lang|translate}}</mat-label>\r\n <input matInput [formControlName]=\"lang\" />\r\n </mat-form-field>\r\n</div>\r\n<ng-template #string>\r\n <mat-form-field>\r\n <mat-label>{{label|translate}}</mat-label>\r\n <input matInput [formControl]=\"control\" />\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:label\"></mat-error>\r\n </mat-form-field>\r\n</ng-template>\r\n" }]
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.FormGroup, decorators: [{
|
44
|
+
type: Host
|
45
|
+
}] }, { type: i2.SessionService }, { type: i1.FormBuilder }]; }, propDecorators: { formControlName: [{
|
46
|
+
type: Input
|
47
|
+
}], label: [{
|
48
|
+
type: Input
|
49
|
+
}], required: [{
|
50
|
+
type: Input
|
51
|
+
}] } });
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLXN0cmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2xvY2FsaXplZC1zdHJpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9sb2NhbGl6ZWQtc3RyaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7QUFJN0MsTUFBTTtBQUtOLE1BQU0sT0FBTyx3QkFBd0I7SUFPbkMsWUFDa0IsS0FBZ0IsRUFDeEIsUUFBd0IsRUFDeEIsR0FBZ0I7UUFGUixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRO1FBQ04sTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUM3QyxLQUFLLEdBQW9CLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBZSxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUN0QyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxTQUFTLE9BQU8sQ0FBQyxLQUFhO1lBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQzs7cUhBOUJVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHFKQ1hyQywybUJBYUE7MkZERmEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHlCQUF5Qjs7MEJBV2hDLElBQUk7bUdBUEUsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IExvY2FsaXplZFN0cmluZyB9IGZyb20gXCIuLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5cclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWxvY2FsaXplZC1zdHJpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnbG9jYWxpemVkLXN0cmluZy5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZWRTdHJpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgY29udHJvbDogRm9ybUNvbnRyb2wgfCBGb3JtR3JvdXA7XHJcbiAgbG9jYWxpemVkOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlczogc3RyaW5nW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIHByaXZhdGUgX2Zvcm06IEZvcm1Hcm91cCxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlcyA9IF9zZXNzaW9uLmxhbmd1YWdlcztcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB1cCA9IHRoaXMuX2Zvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKSxcclxuICAgICAgdmFsdWU6IExvY2FsaXplZFN0cmluZyA9IHVwLnZhbHVlO1xyXG4gICAgaWYgKGlzU3RyaW5nKHZhbHVlKSB8fCAhdmFsdWUpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gY29udHJvbCh2YWx1ZSBhcyBzdHJpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLl9mYi5ncm91cCh7fSk7XHJcbiAgICAgIGZvciAobGV0IGxhbmcgb2YgdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZXMpXHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbChsYW5nLCBjb250cm9sKHZhbHVlW2xhbmddKSk7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IGdyb3VwO1xyXG4gICAgICB0aGlzLmxvY2FsaXplZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHVwLnNldFZhbHVlKHYpKTtcclxuICAgIGZ1bmN0aW9uIGNvbnRyb2wodmFsdWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mYi5jb250cm9sKHZhbHVlLCB0aGlzLnJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IG51bGwpO1xyXG4gICAgICByZXR1cm4gY29udHJvbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImxvY2FsaXplZDsgZWxzZSBzdHJpbmdcIiBbZm9ybUdyb3VwXT1cImNvbnRyb2xcIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZXM7IGluZGV4IGFzIGluZGV4XCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7bGFiZWx8dHJhbnNsYXRlfX0gLyB7e2xhbmd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImxhbmdcIiAvPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI3N0cmluZz5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWxhYmVsPnt7bGFiZWx8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIC8+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6bGFiZWxcIj48L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
@@ -0,0 +1,149 @@
|
|
1
|
+
import { Component, Input, HostBinding, Optional, Self, ViewChild } from '@angular/core';
|
2
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
4
|
+
import { Subject } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/forms";
|
7
|
+
import * as i2 from "@angular/cdk/a11y";
|
8
|
+
export class Signature {
|
9
|
+
constructor(ngControl, _fm, _elementRef) {
|
10
|
+
this.ngControl = ngControl;
|
11
|
+
this._fm = _fm;
|
12
|
+
this._elementRef = _elementRef;
|
13
|
+
this._required = false;
|
14
|
+
this._disabled = false;
|
15
|
+
this.stateChanges = new Subject();
|
16
|
+
this.id = `signature-${Signature.nextId++}`;
|
17
|
+
this.focused = false;
|
18
|
+
this.controlType = 'bizdoc-type-select';
|
19
|
+
this.describedBy = '';
|
20
|
+
if (this.ngControl != null) {
|
21
|
+
this.ngControl.valueAccessor = this;
|
22
|
+
}
|
23
|
+
_fm.monitor(_elementRef.nativeElement, true).subscribe(origin => {
|
24
|
+
this.focused = !!origin;
|
25
|
+
this.stateChanges.next();
|
26
|
+
});
|
27
|
+
}
|
28
|
+
get placeholder() {
|
29
|
+
return this._placeholder;
|
30
|
+
}
|
31
|
+
set placeholder(plh) {
|
32
|
+
this._placeholder = plh;
|
33
|
+
this.stateChanges.next();
|
34
|
+
}
|
35
|
+
get empty() { return !this._value; }
|
36
|
+
get shouldLabelFloat() {
|
37
|
+
return this.focused || !this.empty;
|
38
|
+
}
|
39
|
+
get required() {
|
40
|
+
return this._required;
|
41
|
+
}
|
42
|
+
set required(req) {
|
43
|
+
this._required = coerceBooleanProperty(req);
|
44
|
+
this.stateChanges.next();
|
45
|
+
}
|
46
|
+
get disabled() { return this._disabled; }
|
47
|
+
set disabled(val) {
|
48
|
+
this._disabled = coerceBooleanProperty(val);
|
49
|
+
this._control.isReadOnly = this._disabled;
|
50
|
+
this.stateChanges.next();
|
51
|
+
}
|
52
|
+
get errorState() {
|
53
|
+
return false;
|
54
|
+
}
|
55
|
+
setDescribedByIds(ids) {
|
56
|
+
this.describedBy = ids.join(' ');
|
57
|
+
}
|
58
|
+
onContainerClick() {
|
59
|
+
}
|
60
|
+
writeValue(val) {
|
61
|
+
this._control.load(val);
|
62
|
+
}
|
63
|
+
registerOnChange(fn) {
|
64
|
+
this._onChange = fn;
|
65
|
+
}
|
66
|
+
registerOnTouched(fn) {
|
67
|
+
this._onTouched = fn;
|
68
|
+
}
|
69
|
+
setDisabledState(isDisabled) {
|
70
|
+
this.disabled = isDisabled;
|
71
|
+
}
|
72
|
+
get value() {
|
73
|
+
return this._control.getSignature();
|
74
|
+
}
|
75
|
+
set value(val) {
|
76
|
+
this._control.load(val);
|
77
|
+
this.stateChanges.next();
|
78
|
+
}
|
79
|
+
_onFocus() {
|
80
|
+
if (!this.focused) {
|
81
|
+
this.focused = true;
|
82
|
+
this._onTouched && this._onTouched();
|
83
|
+
this.stateChanges.next();
|
84
|
+
}
|
85
|
+
}
|
86
|
+
_onBlur() {
|
87
|
+
this.touched = true;
|
88
|
+
this.focused = false;
|
89
|
+
this.stateChanges.next();
|
90
|
+
}
|
91
|
+
_change(evt) {
|
92
|
+
const val = this._control.getSignature();
|
93
|
+
this._onChange && this._onChange(val);
|
94
|
+
this.stateChanges.next();
|
95
|
+
}
|
96
|
+
ngOnDestroy() {
|
97
|
+
this._fm.stopMonitoring(this._elementRef.nativeElement);
|
98
|
+
this.stateChanges.complete();
|
99
|
+
}
|
100
|
+
}
|
101
|
+
Signature.nextId = 0;
|
102
|
+
Signature.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: Signature, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
103
|
+
Signature.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: Signature, selector: "bizdoc-signature", inputs: { width: "width", height: "height", velocity: "velocity", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: Signature }], viewQueries: [{ propertyName: "_control", first: true, predicate: ["signature"], descendants: true }], ngImport: i0, template: `
|
104
|
+
<canvas ejs-signature #signature (change)="_change($event)"></canvas>
|
105
|
+
`, isInline: true });
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: Signature, decorators: [{
|
107
|
+
type: Component,
|
108
|
+
args: [{
|
109
|
+
selector: 'bizdoc-signature',
|
110
|
+
providers: [{ provide: MatFormFieldControl, useExisting: Signature }],
|
111
|
+
template: `
|
112
|
+
<canvas ejs-signature #signature (change)="_change($event)"></canvas>
|
113
|
+
`,
|
114
|
+
host: {
|
115
|
+
'[class.floating]': 'shouldLabelFloat',
|
116
|
+
'[attr.aria-describedby]': 'describedBy'
|
117
|
+
}
|
118
|
+
}]
|
119
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
120
|
+
type: Optional
|
121
|
+
}, {
|
122
|
+
type: Self
|
123
|
+
}] }, { type: i2.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { width: [{
|
124
|
+
type: Input
|
125
|
+
}], height: [{
|
126
|
+
type: Input
|
127
|
+
}], velocity: [{
|
128
|
+
type: Input
|
129
|
+
}], _control: [{
|
130
|
+
type: ViewChild,
|
131
|
+
args: ['signature']
|
132
|
+
}], id: [{
|
133
|
+
type: HostBinding
|
134
|
+
}], placeholder: [{
|
135
|
+
type: Input
|
136
|
+
}], shouldLabelFloat: [{
|
137
|
+
type: HostBinding,
|
138
|
+
args: ['class.floating']
|
139
|
+
}], required: [{
|
140
|
+
type: Input
|
141
|
+
}], disabled: [{
|
142
|
+
type: Input
|
143
|
+
}], describedBy: [{
|
144
|
+
type: HostBinding,
|
145
|
+
args: ['attr.aria-describedby']
|
146
|
+
}], value: [{
|
147
|
+
type: Input
|
148
|
+
}] } });
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbnRyb2xzL3NpZ25hdHVyZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWEvQixNQUFNLE9BQ0UsU0FBUztJQXNGZixZQUF1QyxTQUFvQixFQUNqRCxHQUFpQixFQUNqQixXQUFvQztRQUZQLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDakQsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFyRnRDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVFqQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDN0IsT0FBRSxHQUFHLGFBQWEsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFTdEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQXdCaEIsZ0JBQVcsR0FBWSxvQkFBb0IsQ0FBQztRQUNOLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBMENyRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNyQztRQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJ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LFdBQVc7c0JBQXZCLEtBQUs7Z0JBVUYsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFLekIsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFXZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBb0J2QixLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgT3B0aW9uYWwsIFNlbGYsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaWduYXR1cmUgYXMgU3luY2Z1c2lvblNpZ25hdHVyZSwgU2lnbmF0dXJlQ2hhbmdlRXZlbnRBcmdzIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItaW5wdXRzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2Mtc2lnbmF0dXJlJyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBTaWduYXR1cmUgfV0sXHJcbiAgdGVtcGxhdGU6IGBcclxuPGNhbnZhcyBlanMtc2lnbmF0dXJlICNzaWduYXR1cmUgKGNoYW5nZSk9XCJfY2hhbmdlKCRldmVudClcIj48L2NhbnZhcz5cclxuYCxcclxuICBob3N0OiB7XHJcbiAgICAnW2NsYXNzLmZsb2F0aW5nXSc6ICdzaG91bGRMYWJlbEZsb2F0JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFNpZ25hdHVyZSBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF92YWx1ZT86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcclxuICBASW5wdXQoKSB2ZWxvY2l0eTogbnVtYmVyO1xyXG4gIEBWaWV3Q2hpbGQoJ3NpZ25hdHVyZScpIF9jb250cm9sOiBTeW5jZnVzaW9uU2lnbmF0dXJlO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQEhvc3RCaW5kaW5nKCkgaWQgPSBgc2lnbmF0dXJlLSR7U2lnbmF0dXJlLm5leHRJZCsrfWA7XHJcbiAgdG91Y2hlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGgpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuX3ZhbHVlOyB9XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcbiAgc2V0IHJlcXVpcmVkKHJlcTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCk7XHJcbiAgICB0aGlzLl9jb250cm9sLmlzUmVhZE9ubHkgPSB0aGlzLl9kaXNhYmxlZDtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZ2V0IGVycm9yU3RhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnRyb2xUeXBlPzogc3RyaW5nID0gJ2JpemRvYy10eXBlLXNlbGVjdCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29udHJvbC5sb2FkKHZhbCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbiAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbC5nZXRTaWduYXR1cmUoKTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb250cm9sLmxvYWQodmFsKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgX29uRm9jdXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9jdXNlZCkge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWQgJiYgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgX29uQmx1cigpIHtcclxuICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgX2NoYW5nZShldnQ6IFNpZ25hdHVyZUNoYW5nZUV2ZW50QXJncykge1xyXG4gICAgY29uc3QgdmFsID0gdGhpcy5fY29udHJvbC5nZXRTaWduYXR1cmUoKTtcclxuICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKHZhbCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZm0uc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -290,7 +290,16 @@ export class MailboxService {
|
|
290
290
|
removecomment(id) {
|
291
291
|
return this._http.delete(`/api/comments/${id}`);
|
292
292
|
}
|
293
|
-
|
293
|
+
post(form, model) {
|
294
|
+
return this._geoLocation(form).pipe(switchMap(p => this._http.post('/api/mail', model, {
|
295
|
+
params: {
|
296
|
+
go: true,
|
297
|
+
form,
|
298
|
+
...p
|
299
|
+
}
|
300
|
+
})), this._notify());
|
301
|
+
}
|
302
|
+
submit(id, version, form, model) {
|
294
303
|
return this._geoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&go=true`, model, { params }))).pipe(this._notify());
|
295
304
|
}
|
296
305
|
send(id, version, form, model, action, actionArgs, read, folderId, received) {
|
@@ -403,4 +412,4 @@ export function reportProgress(attachment) {
|
|
403
412
|
}
|
404
413
|
export class PositionError {
|
405
414
|
}
|
406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBRUwsYUFBYSxFQUNNLFdBQVcsRUFBRSxZQUFZLEVBQzdDLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBSy9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsT0FBTyxDQUFDLENBQUM7QUFTOUUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBb0IsUUFBd0IsRUFDbEMsS0FBeUIsRUFDakMsU0FBcUIsRUFDYixLQUFpQjtRQUhQLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRXpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFSVixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDbEQsTUFBTTtRQUNVLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBdVZ2RDtXQUNHO1FBQ0ssWUFBTyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ3BFLE9B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QUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU0sT0FBTyxhQUFhO0NBTXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsXHJcbiAgSHR0cEV2ZW50VHlwZSxcclxuICBIdHRwUHJvZ3Jlc3NFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tbWVudCwgVXNlckluZm8sIFJlY2lwaWVudE1vZGVsLCBBdHRhY2htZW50LCBTY2hlZHVsZWRFdmVudCwgSGVhZGVyTW9kZWwsIERvY3VtZW50TW9kZWwsIFZvdGUsIENvbW1lbnRWZXJzaW9uLCBDaGFpbiB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgY2xlYW51cCwgaXNBcnJheSB9IGZyb20gJy4vZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4vaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkltcGwgfSBmcm9tICcuL2F1dGhlbnRpY2F0aW9uJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuZXhwb3J0IGNvbnN0IERPQ1VNRU5UX01PREVMID0gbmV3IEluamVjdGlvblRva2VuPERvY3VtZW50TW9kZWw8YW55Pj4oJ21vZGVsJyk7XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ3JlY2VudCcgfCAndW5yZWFkJyB8ICdmbGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlRXZlbnQ8VD4ge1xyXG4gIG1vZGVsOiBSZWNpcGllbnRNb2RlbDxUPjtcclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE1haWxib3hTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2UkID0gbmV3IFN1YmplY3Q8UmVjaXBpZW50TW9kZWw8YW55Pj4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWxldGUkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG4gIC8qKiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VkID0gdGhpcy5fY2hhbmdlJC5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlZCA9IHRoaXMuX2RlbGV0ZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hdXRoOiBBdXRoZW50aWNhdGlvbkltcGwsXHJcbiAgICBtZXNzYWdpbmc6IEh1YlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBtZXNzYWdpbmcubmV3JC5cclxuICAgICAgc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICAgIGlmIChtLnVzZXJJZCAhPT0gX3Nlc3Npb24ucHJvZmlsZS51c2VySWQpIHJldHVybjtcclxuICAgICAgICBfc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQrKztcclxuICAgICAgICBjb25zdCBmb2xkZXIgPSBfc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gbS5tb2RlbC5mb2xkZXJJZCk7XHJcbiAgICAgICAgZm9sZGVyLmNvdW50Kys7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBmb3JtYXREb3dubG9hZFVybChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyLCBpbmxpbmU/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5fYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgcmV0dXJuIGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9P2FjY2Vzc190b2tlbj0ke3Rva2VufSZpbmxpbmU9JHtpbmxpbmUgPyB0cnVlIDogZmFsc2V9YDtcclxuICB9XHJcbiAgZG93bmxvYWQoZG9jdW1lbnRJZDogbnVtYmVyLCBmaWxlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvL25ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAvLyAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgIC8vICByZXR1cm4ge1xyXG4gICAgLy8gICAgdW5zdWJzY3JpYmUoKSB7IH1cclxuICAgIC8vICB9XHJcbiAgICAvL30pO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0KGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9YCwge1xyXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXHJcbiAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVtb3ZlYXR0YWNobWVudChyZWNpcGllbnRJZDogbnVtYmVyLCBmaWxlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGUoYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0vJHtmaWxlSWR9YCk7XHJcbiAgfVxyXG4gIHJlYWQoaWQ6IG51bWJlciwgcmVhZDogYm9vbGVhbiwgZm9sZGVySWQ/OiBzdHJpbmcsIHJlY2VpdmVkPzogRGF0ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9yZWFkLyR7aWR9YCwgdW5kZWZpbmVkLCB7IHBhcmFtczogeyByZWFkIH0gYXMgYW55IH0pLnBpcGUodGFwKCgpID0+XHJcbiAgICAgIGZvbGRlcklkICYmIHRoaXMuX3VwZGF0ZXVucmVhZGNvdW50ZXIocmVjZWl2ZWQsIGZvbGRlcklkLCByZWFkID8gMSA6IC0xKVxyXG4gICAgKSk7XHJcbiAgfVxyXG4gIGNvbW1lbnRzKGlkOiBudW1iZXIsIGJlZm9yZTogRGF0ZSk6IE9ic2VydmFibGU8Q29tbWVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFtdPihgL2FwaS9jb21tZW50cy8ke2lkfWAsIHsgcGFyYW1zOiB7IGJlZm9yZTogbmV3IERhdGUoYmVmb3JlKS50b0pTT04oKSB9IH0pO1xyXG4gIH1cclxuICB0YWdzKGlkOiBudW1iZXIsIHRhZ3M6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3RhZy8ke2lkfWAsIHsgdGFncyB9KS5waXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB0YWdzIH0gYXMgYW55KTtcclxuICAgIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWRcclxuICAgKiBAcGFyYW0gc3RhdGVJZFxyXG4gICAqIEBwYXJhbSB1c2VySWQgc3Vic3RpdHV0ZVxyXG4gICAqL1xyXG4gIGNoYW5nZVN0YXRlKGRvY3VtZW50SWQ6IG51bWJlciwgc3RhdGVJZDogc3RyaW5nLCB1c2VySWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvY2hhbmdlc3RhdGUvJHtkb2N1bWVudElkfWAsIHsgc3RhdGVJZCwgdXNlcklkIH0pO1xyXG4gIH1cclxuICBtb3ZlKGlkOiBudW1iZXIsIGZvbGRlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvbW92ZS8ke2lkfT9mb2xkZXJJZD0ke2ZvbGRlcklkfWAsIHt9KS5waXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZSQubmV4dCh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgZm9sZGVySWRcclxuICAgICAgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICBjaGVja091dChyZWNpcGllbnRJZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIGF0dGFjaG1lbnRJZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8QXR0YWNobWVudD4oYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0vJHthdHRhY2htZW50SWR9L2NoZWNrb3V0YCwgbnVsbCwgeyBwYXJhbXM6IHsgdmVyc2lvbiB9IH0pO1xyXG4gIH1cclxuICBjaGVja0luKHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQ+IHtcclxuICAgIGNvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmZC5hcHBlbmQoZmlsZS5uYW1lLCBmaWxlKTtcclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUFVUJyxcclxuICAgICAgYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0vJHthdHRhY2htZW50SWR9L2NoZWNraW4/dmVyc2lvbj0ke3ZlcnNpb259YCwgZmQsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIC8vY29uc3QgaW5pdGlhbFN0YXRlOiBVcGxvYWRFdmVudCA9IHsgc3RhdGU6ICdQRU5ESU5HJywgcHJvZ3Jlc3M6IDAgfVxyXG4gICAgLy9jb25zdCBjYWxjdWxhdGVTdGF0ZSA9IChcclxuICAgIC8vICB1cGxvYWQ6IFVwbG9hZEV2ZW50LFxyXG4gICAgLy8gIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj5cclxuICAgIC8vKTogVXBsb2FkRXZlbnQgPT4ge1xyXG4gICAgLy8gIC8vIGltcGxlbWVudGF0aW9uXHJcbiAgICAvL31cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9odHRwLnJlcXVlc3QocmVxKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpIHtcclxuICAgICAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAgICAgLy8gICAgZmlsZS5uYW1lLFxyXG4gICAgICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLmxvYWRlZCxcclxuICAgICAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAgICAgLy8gICkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGNvbnN0IHJlcyA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIEF0dGFjaG1lbnQ7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChtb2RlbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoeyBzdGF0dXM6IHJlcy5zdGF0dXMsIGVycm9yOiByZXMuYm9keSB9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZSk7XHJcbiAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB1bnN1YnNjcmliZSgpIHtcclxuICAgICAgICAgIC8vcmVxLlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlOiBGaWxlLCBvcHRpb25zPzogeyBpc1ByaXZhdGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQ+O1xyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlczogRmlsZVtdLCBvcHRpb25zPzogeyBpc1ByaXZhdGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnRbXT47XHJcbiAgdXBsb2FkKHJlY2lwaWVudElkOiBudW1iZXIsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIGZpbGVzOiBGaWxlIHwgRmlsZVtdLCBvcHRpb25zPzogeyBpc1ByaXZhdGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQgfCBBdHRhY2htZW50W10+IHtcclxuICAgIGNvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBpZiAoaXNBcnJheShmaWxlcykpIGZpbGVzLmZvckVhY2goZiA9PlxyXG4gICAgICBmZC5hcHBlbmQoZi5uYW1lLCBmKSk7XHJcbiAgICBlbHNlIGZkLmFwcGVuZChmaWxlcy5uYW1lLCBmaWxlcyk7XHJcbiAgICAvL2NvbnN0IGJ5dGVzUGVyQ2h1bmsgPSAyMCAqIDEwMjQgKiAxMDI0O1xyXG4gICAgLy8gYXF1aXJlIHRoZSBsb2NhdGlvbiBwcmlvciB0byBzZW5kaW5nIHRoZSByZXF1ZXN0XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybUlkKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgICBsZXQgdXJsID0gYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0/dmVyc2lvbj0ke3ZlcnNpb259YDtcclxuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2gocCA9PiB1cmwgKz0gYCYke3B9PSR7cGFyYW1zW3BdfWApO1xyXG4gICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICBpZiAob3B0aW9ucy5pc1ByaXZhdGUpIHVybCArPSAnJmlzcHJpdmF0ZT10cnVlJ1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB1cmwsIGZkLCB7XHJcbiAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9odHRwLnJlcXVlc3QocmVxKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGFuIHVwbG9hZCBwcm9ncmVzcyBldmVudC4gQ29tcHV0ZSBhbmQgc2hvdyB0aGUgJSBkb25lOlxyXG4gICAgICAgICAgICAvL2NvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coYEZpbGUgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmApO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudFtdO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dChpc0FycmF5KGZpbGVzKSA/IG1vZGVsIDogbW9kZWxbMF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgIG9ic2VydmUuZXJyb3IoZSk7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0cmlldmUgc2VuZGVyc1xyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgc2VuZGVycyhuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9tYWlsYm94L3NlbmRlcnMvJywge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmbGFnKGlkOiBudW1iZXIsIGZsYWc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvZmxhZy8ke2lkfT9mbGFnPSR7ZmxhZ31gLCBudWxsKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9jaGFuZ2UkLm5leHQoeyBpZCwgZmxhZyB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdmlld2VkY29tbWVudHMoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8eyB0aW1lOiBEYXRlIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRpbWU6IERhdGUgfT4oYC9hcGkvY29tbWVudHMvdmlld2VkLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcCgoZTogeyB0aW1lOiBEYXRlIH0pID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB2aWV3ZWQ6IGUudGltZSB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdHlwaW5nKGlkOiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2NvbW1lbnRzL3R5cGluZy8ke2lkfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG4gIGVkaXRpbmcoaWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9lZGl0aW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS50b1Byb21pc2UoKTtcclxuICB9XHJcbiAgY29weShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWxib3gvY29weS8ke2lkfWAsIHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50IGlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHBhcmVudElkPzogbnVtYmVyXHJcbiAgfSk6IE9ic2VydmFibGU8Q29tbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxDb21tZW50PihgL2FwaS9jb21tZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjb21tZW50dXBkYXRlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCBvcHRpb25zOiB7XHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgaW1hZ2U/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8Q29tbWVudD4oYC9hcGkvY29tbWVudHMvZWRpdC8ke2lkfS8ke2NvbW1lbnRJZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgaW5mbzxUID0gYW55Pihkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsYm94L2luZm8vJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB0aW1lbGluZShkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYWluPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q2hhaW4+KGAvYXBpL21haWxib3gvdGltZWxpbmUvJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB2b3RlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvY29tbWVudHMvdm90ZS8ke2lkfS8ke2NvbW1lbnRJZH1gLCB7fSwgeyBwYXJhbXM6IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9KTtcclxuICB9XHJcbiAgdm90ZXMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFZvdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFZvdGVbXT4oYC9hcGkvY29tbWVudHMvdm90ZXMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGVkaXRzKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21tZW50VmVyc2lvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFZlcnNpb25bXT4oYC9hcGkvY29tbWVudHMvZWRpdHMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGZpbmRBbGwoZmlsdGVyOiB7IHR5cGU/OiBGaWx0ZXJUeXBlOyBjb250YWlucz86IHN0cmluZzsgc3RhdGU/OiBzdHJpbmc7IGZvcm0/OiBzdHJpbmc7IGZvbGRlcklkPzogc3RyaW5nOyBzZW5kZXJJZD86IHN0cmluZzsgfSxcclxuICAgIG9wdGlvbnM/OiB7IHNraXA/OiBudW1iZXI7IHRha2U/OiBudW1iZXI7IG9yZGVyQnk/OiAndmFsdWUnIHwgJ3ZpZXdlZCcgfCAnZGF0ZScgfSk6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7IC4uLmZpbHRlciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgY2xlYW51cChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEhlYWRlck1vZGVsW10+KCcvYXBpL21haWwnLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgY3JlYXRlPFQgPSBhbnk+KGZvcm06IHN0cmluZywgbW9kZWw/OiBUKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gIH1cclxuICBnZXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgcmVhZD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UmVjaXBpZW50TW9kZWw8VD4+KGAvYXBpL21haWwvJHtpZH1gKS5waXBlKFxyXG4gICAgICB0YXAoKG06IFJlY2lwaWVudE1vZGVsKSA9PlxyXG4gICAgICAgIHJlYWQgPT09IGZhbHNlICYmIG0ucmVhZCA9PT0gdHJ1ZSAmJlxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZXVucmVhZGNvdW50ZXIobS5yZWNlaXZlZCwgbS5mb2xkZXJJZCwgLTEpXHJcbiAgICAgICkpO1xyXG4gIH1cclxuICBwcml2YXRlIF91cGRhdGV1bnJlYWRjb3VudGVyKGRhdGU6IERhdGUsIGZvbGRlcklkOiBzdHJpbmcsIHZhbDogbnVtYmVyKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIC8vIGRhdGUgaXMgYWJvdmUgd2F0ZXJtYXJrXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLmluYm94VmlldyAmJlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgPCBkYXRlXHJcbiAgICApXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5pbmJveENvdW50ICs9IHZhbDtcclxuICAgIC8vIGRlY3JlYXNlXHJcbiAgICBjb25zdCBmb2xkZXIgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5cclxuICAgICAgZmluZChmID0+IGYubmFtZSA9PT0gZm9sZGVySWQpO1xyXG4gICAgZm9sZGVyLmNvdW50ID0gTWF0aC5tYXgoMCwgZm9sZGVyLmNvdW50ICsgdmFsKTtcclxuICB9XHJcblxyXG4gIHNhdmU8VCA9IGFueT4oaWQ6IG51bWJlciwgZm9ybTogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIG1vZGVsOiB7fSwgZmlsZXM/OiBGaWxlW10gfCBGaWxlTGlzdCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIC8vY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIC8vY29uc3QgbW9kZWxCbG9iID0gbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KG1vZGVsKV0sIHtcclxuICAgIC8vICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAvL30pO1xyXG4gICAgLy9mZC5hcHBlbmQoJ2Zvcm0tZGF0YScsIG1vZGVsQmxvYik7XHJcbiAgICAvL2lmIChmaWxlcykge1xyXG4gICAgLy8gIGlmIChpc0FycmF5KGZpbGVzKSkgZmlsZXMuZm9yRWFjaChmID0+XHJcbiAgICAvLyAgICBmZC5hcHBlbmQoZi5uYW1lLCBmKSk7XHJcbiAgICAvLyAgZWxzZSBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAvLyAgICBsZXQgZmlsZSA9IGZpbGVzLml0ZW0oaSk7XHJcbiAgICAvLyAgICBmZC5hcHBlbmQoZmlsZS5uYW1lLCBmaWxlKTtcclxuICAgIC8vICB9XHJcbiAgICAvL31cclxuICAgIC8vICByZXR1cm4gdGhpcy5fd2l0aEdlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHBhcmFtcyA9PiB7XHJcbiAgICAvLyAgICBsZXQgdXJsID0gYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn1gO1xyXG4gICAgLy8gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKHAgPT4gdXJsICs9IGAmJHtwfT0ke3BhcmFtc1twXX1gKTtcclxuICAgIC8vICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUFVUJywgdXJsLCBmZCwge1xyXG4gICAgLy8gICAgfSk7XHJcbiAgICAvLyAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkucGlwZShtYXAoZXZlbnQgPT4ge1xyXG4gICAgLy8gICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgIC8vICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgLy8gICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICAgIC8vICAgICAgICByZXR1cm4gbW9kZWw7XHJcbiAgICAvLyAgICAgIH1cclxuICAgIC8vICAgICAgZWxzZVxyXG4gICAgLy8gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAvLyAgICB9KSlcclxuICAgIC8vICB9KSwgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT50aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn1gLCBtb2RlbCwgeyBwYXJhbXMgfSkpLFxyXG4gICAgICB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9tYWlsLyR7aWR9YCkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgdGhpcy5fZGVsZXRlJC5uZXh0KGlkKSkpO1xyXG4gIH1cclxuICByZW1vdmVjb21tZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL2NvbW1lbnRzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHN1Ym1pdDxUID0gYW55PihpZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIGZvcm06IHN0cmluZywgbW9kZWw/OiBhbnksIHJlYWQ/OiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICB0aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxhbnk+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZnbz10cnVlYCwgbW9kZWwsIHsgcGFyYW1zIH0pKSkucGlwZShcclxuICAgICAgICB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgfVxyXG4gIHNlbmQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsOiBhbnksIGFjdGlvbjogc3RyaW5nLCBhY3Rpb25BcmdzOiB7fSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZhY3Rpb249JHthY3Rpb259YCwgbW9kZWwsIHsgcGFyYW1zOiB7IC4uLnBhcmFtcywgLi4uYWN0aW9uQXJncyB9IH0pKSkucGlwZShcclxuICAgICAgICB0YXAoKCkgPT5cclxuICAgICAgICAgIHJlYWQgPT09IGZhbHNlICYmIHRoaXMuX3VwZGF0ZXVucmVhZGNvdW50ZXIocmVjZWl2ZWQsIGZvbGRlcklkLCAtMSlcclxuICAgICAgICApLFxyXG4gICAgICAgIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICB9XHJcbiAgZXZlbnRzKHN0YXJ0aW5nOiBEYXRlLCBlbmRpbmc/OiBEYXRlLCBjb250YWlucz86IHN0cmluZyk6IE9ic2VydmFibGU8U2NoZWR1bGVkRXZlbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFNjaGVkdWxlZEV2ZW50W10+KGAvYXBpL2V2ZW50c2AsIHtcclxuICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgc3RhcnRpbmc6IHN0YXJ0aW5nLnRvSlNPTigpLFxyXG4gICAgICAgIGVuZGluZzogZW5kaW5nLnRvSlNPTigpLFxyXG4gICAgICAgIGNvbnRhaW5zOiBjb250YWlucyB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhbmdlRXZlbnQoaWQ6IG51bWJlciwgb3B0aW9uczogeyBzdGFydGluZzogRGF0ZTsgZW5kaW5nPzogRGF0ZTsgY29tcGxldGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2V2ZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgZ2VvIGxvY2F0aW9uIGlmIGZvcm0gc2V0dGluZ3MgcmVxdWllc1xyXG4gICAqIEBwYXJhbSBmb3JtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2VvTG9jYXRpb24oZm9ybTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGxuZz86IHN0cmluZzsgbGF0Pzogc3RyaW5nIH0+IHtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gZm9ybSk7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnUmVxdWlyZSc6XHJcbiAgICAgICAgY2FzZSAnQXNrJzpcclxuICAgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24ociA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dCh7XHJcbiAgICAgICAgICAgICAgbG5nOiByLmNvb3Jkcy5sb25naXR1ZGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICBsYXQ6IHIuY29vcmRzLmxhdGl0dWRlLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5wb3NpdGlvbiA9PT0gJ0FzaycpXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoJ25vIHBvc2l0aW9uJyk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIG9ic2VydmUubmV4dCh7fSk7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKi9cclxuICBwcml2YXRlIF9ub3RpZnkgPSA8VD4oKSA9PiAob2JzZXJ2ZTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4pID0+IHtcclxuICAgIHJldHVybiBvYnNlcnZlLnBpcGUodGFwKG0gPT4ge1xyXG4gICAgICAobSBhcyBJdGVtRXh0cmEpLmxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2NoYW5nZSQubmV4dChtKTtcclxuICAgIH0pKTtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUV4dHJhIHtcclxuICBsb2FkaW5nPzogYm9vbGVhbjtcclxuICBsb2FkZWQ/OiBib29sZWFuO1xyXG4gIHdvcmtpbmc/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudEV4dHJhIGV4dGVuZHMgQXR0YWNobWVudCB7XHJcbiAgdXJsOiBTYWZlVXJsO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmlsZUV4dDogc3RyaW5nO1xyXG4gIGlzSW1hZ2U6IGJvb2xlYW47XHJcbiAgcHJvZ3Jlc3M/OiBudW1iZXI7XHJcbiAgdmlld2VkPzogRGF0ZTtcclxuICBmYWlsZWQ/OiBib29sZWFuO1xyXG59XHJcbmZ1bmN0aW9uIGlzSHR0cFJlc3BvbnNlPFQ+KGV2ZW50OiBIdHRwRXZlbnQ8VD4pOiBldmVudCBpcyBIdHRwUmVzcG9uc2U8VD4ge1xyXG4gIHJldHVybiBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSHR0cFByb2dyZXNzRXZlbnQoXHJcbiAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4pOiBldmVudCBpcyBIdHRwUHJvZ3Jlc3NFdmVudCB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzcyB8fFxyXG4gICAgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzc1xyXG4gIClcclxufVxyXG4vL2Z1bmN0aW9uIGNhbGN1bGF0ZVN0YXRlKHVwbG9hZDogVXBsb2FkRXZlbnQsIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj4pIHtcclxuLy8gIGlmIChpc0h0dHBQcm9ncmVzc0V2ZW50KGV2ZW50KSkge1xyXG4vLyAgICByZXR1cm4gbmV3IFVwbG9hZEV2ZW50KHtcclxuLy8gICAgICBwcm9ncmVzczogZXZlbnQudG90YWxcclxuLy8gICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxyXG4vLyAgICAgICAgOiB1cGxvYWQucHJvZ3Jlc3MsXHJcbi8vICAgICAgc3RhdGU6ICdwcm9ncmVzcycsXHJcbi8vICAgIH0pO1xyXG4vLyAgfVxyXG4vLyAgaWYgKGlzSHR0cFJlc3BvbnNlKGV2ZW50KSkge1xyXG4vLyAgICByZXR1cm4gbmV3IFVwbG9hZEV2ZW50KHtcclxuLy8gICAgICBwcm9ncmVzczogMTAwLFxyXG4vLyAgICAgIHN0YXRlOiAnZG9uZScsXHJcbi8vICAgIH0pXHJcbi8vICB9XHJcbi8vfVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRXZlbnQge1xyXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgcHJvZ3Jlc3M6IG51bWJlcjtcclxuICAvLyBieXRlc1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbiAgc3RhdGU6ICdwZW5kaW5nJyB8ICdwcm9ncmVzcycgfCAnZG9uZSc7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXBvcnRQcm9ncmVzcyhhdHRhY2htZW50OiBBdHRhY2htZW50RXh0cmEpIHtcclxuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PikgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAvL1RPRE8gcHJvZ3Jlc3NcclxuICAgICAgLy9pZiAoZXZlbnQgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSB7XHJcbiAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAvLyAgICBmaWxlLm5hbWUsXHJcbiAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS5sb2FkZWQsXHJcbiAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAvLyAgKSk7XHJcbiAgICAgIC8vfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAvLyAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgIC8vICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgIC8vICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgLy8gICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgLy8gIH1cclxuICAgICAgLy8gIGVsc2VcclxuICAgICAgLy8gICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAvLyAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgLy9pZiAoYSBpbnN0YW5jZW9mIFVwbG9hZEV2ZW50KSB7XHJcbiAgICAgICAgICAvLyAgT2JqZWN0LmFzc2lnbihpdGVtLCB7XHJcbiAgICAgICAgICAvLyAgICBwcm9ncmVzczogYS5sb2FkZWQgLyBhLnRvdGFsXHJcbiAgICAgICAgICAvLyAgfSk7XHJcbiAgICAgICAgICAvLyAgcmV0dXJuO1xyXG4gICAgICAgICAgLy99XHJcbiAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgfSk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uRXJyb3Ige1xyXG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcclxuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgUEVSTUlTU0lPTl9ERU5JRUQ6IG51bWJlcjtcclxuICByZWFkb25seSBQT1NJVElPTl9VTkFWQUlMQUJMRTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFRJTUVPVVQ6IG51bWJlcjtcclxufVxyXG4iXX0=
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBRUwsYUFBYSxFQUNNLFdBQVcsRUFBRSxZQUFZLEVBQzdDLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBSy9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsT0FBTyxDQUFDLENBQUM7QUFTOUUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBb0IsUUFBd0IsRUFDbEMsS0FBeUIsRUFDakMsU0FBcUIsRUFDYixLQUFpQjtRQUhQLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRXpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFSVixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDbEQsTUFBTTtRQUNVLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBaVd2RDtXQUNHO1FBQ0ssWUFBTyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ3BFLE9B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QkFBNkI7WUFDN0IsMkNBQTJDO1lBQzNDLDBCQUEwQjtZQUMxQixLQUFLO1lBQ0wsUUFBUTtZQUNSLDZEQUE2RDtZQUM3RCx1QkFBdUI7WUFDbkIsaUNBQWlDO1lBQ2pDLHlCQUF5QjtZQUN6QixrQ0FBa0M7WUFDbEMsT0FBTztZQUNQLFdBQVc7WUFDWCxHQUFHO1lBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU0sT0FBTyxhQUFhO0NBTXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsXHJcbiAgSHR0cEV2ZW50VHlwZSxcclxuICBIdHRwUHJvZ3Jlc3NFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tbWVudCwgVXNlckluZm8sIFJlY2lwaWVudE1vZGVsLCBBdHRhY2htZW50LCBTY2hlZHVsZWRFdmVudCwgSGVhZGVyTW9kZWwsIERvY3VtZW50TW9kZWwsIFZvdGUsIENvbW1lbnRWZXJzaW9uLCBDaGFpbiB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgY2xlYW51cCwgaXNBcnJheSB9IGZyb20gJy4vZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4vaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkltcGwgfSBmcm9tICcuL2F1dGhlbnRpY2F0aW9uJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuZXhwb3J0IGNvbnN0IERPQ1VNRU5UX01PREVMID0gbmV3IEluamVjdGlvblRva2VuPERvY3VtZW50TW9kZWw8YW55Pj4oJ21vZGVsJyk7XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ3JlY2VudCcgfCAndW5yZWFkJyB8ICdmbGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlRXZlbnQ8VD4ge1xyXG4gIG1vZGVsOiBSZWNpcGllbnRNb2RlbDxUPjtcclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE1haWxib3hTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2UkID0gbmV3IFN1YmplY3Q8UmVjaXBpZW50TW9kZWw8YW55Pj4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWxldGUkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG4gIC8qKiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VkID0gdGhpcy5fY2hhbmdlJC5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlZCA9IHRoaXMuX2RlbGV0ZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hdXRoOiBBdXRoZW50aWNhdGlvbkltcGwsXHJcbiAgICBtZXNzYWdpbmc6IEh1YlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBtZXNzYWdpbmcubmV3JC5cclxuICAgICAgc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICAgIGlmIChtLnVzZXJJZCAhPT0gX3Nlc3Npb24ucHJvZmlsZS51c2VySWQpIHJldHVybjtcclxuICAgICAgICBfc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQrKztcclxuICAgICAgICBjb25zdCBmb2xkZXIgPSBfc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gbS5tb2RlbC5mb2xkZXJJZCk7XHJcbiAgICAgICAgZm9sZGVyLmNvdW50Kys7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBmb3JtYXREb3dubG9hZFVybChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyLCBpbmxpbmU/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5fYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgcmV0dXJuIGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9P2FjY2Vzc190b2tlbj0ke3Rva2VufSZpbmxpbmU9JHtpbmxpbmUgPyB0cnVlIDogZmFsc2V9YDtcclxuICB9XHJcbiAgZG93bmxvYWQoZG9jdW1lbnRJZDogbnVtYmVyLCBmaWxlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvL25ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAvLyAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgIC8vICByZXR1cm4ge1xyXG4gICAgLy8gICAgdW5zdWJzY3JpYmUoKSB7IH1cclxuICAgIC8vICB9XHJcbiAgICAvL30pO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0KGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9YCwge1xyXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXHJcbiAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVtb3ZlYXR0YWNobWVudChyZWNpcGllbnRJZDogbnVtYmVyLCBmaWxlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGUoYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0vJHtmaWxlSWR9YCk7XHJcbiAgfVxyXG4gIHJlYWQoaWQ6IG51bWJlciwgcmVhZDogYm9vbGVhbiwgZm9sZGVySWQ/OiBzdHJpbmcsIHJlY2VpdmVkPzogRGF0ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9yZWFkLyR7aWR9YCwgdW5kZWZpbmVkLCB7IHBhcmFtczogeyByZWFkIH0gYXMgYW55IH0pLnBpcGUodGFwKCgpID0+XHJcbiAgICAgIGZvbGRlcklkICYmIHRoaXMuX3VwZGF0ZXVucmVhZGNvdW50ZXIocmVjZWl2ZWQsIGZvbGRlcklkLCByZWFkID8gMSA6IC0xKVxyXG4gICAgKSk7XHJcbiAgfVxyXG4gIGNvbW1lbnRzKGlkOiBudW1iZXIsIGJlZm9yZTogRGF0ZSk6IE9ic2VydmFibGU8Q29tbWVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFtdPihgL2FwaS9jb21tZW50cy8ke2lkfWAsIHsgcGFyYW1zOiB7IGJlZm9yZTogbmV3IERhdGUoYmVmb3JlKS50b0pTT04oKSB9IH0pO1xyXG4gIH1cclxuICB0YWdzKGlkOiBudW1iZXIsIHRhZ3M6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3RhZy8ke2lkfWAsIHsgdGFncyB9KS5waXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB0YWdzIH0gYXMgYW55KTtcclxuICAgIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWRcclxuICAgKiBAcGFyYW0gc3RhdGVJZFxyXG4gICAqIEBwYXJhbSB1c2VySWQgc3Vic3RpdHV0ZVxyXG4gICAqL1xyXG4gIGNoYW5nZVN0YXRlKGRvY3VtZW50SWQ6IG51bWJlciwgc3RhdGVJZDogc3RyaW5nLCB1c2VySWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvY2hhbmdlc3RhdGUvJHtkb2N1bWVudElkfWAsIHsgc3RhdGVJZCwgdXNlcklkIH0pO1xyXG4gIH1cclxuICBtb3ZlKGlkOiBudW1iZXIsIGZvbGRlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvbW92ZS8ke2lkfT9mb2xkZXJJZD0ke2ZvbGRlcklkfWAsIHt9KS5waXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZSQubmV4dCh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgZm9sZGVySWRcclxuICAgICAgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICBjaGVja091dChyZWNpcGllbnRJZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIGF0dGFjaG1lbnRJZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8QXR0YWNobWVudD4oYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0vJHthdHRhY2htZW50SWR9L2NoZWNrb3V0YCwgbnVsbCwgeyBwYXJhbXM6IHsgdmVyc2lvbiB9IH0pO1xyXG4gIH1cclxuICBjaGVja0luKHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQ+IHtcclxuICAgIGNvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmZC5hcHBlbmQoZmlsZS5uYW1lLCBmaWxlKTtcclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUFVUJyxcclxuICAgICAgYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0vJHthdHRhY2htZW50SWR9L2NoZWNraW4/dmVyc2lvbj0ke3ZlcnNpb259YCwgZmQsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIC8vY29uc3QgaW5pdGlhbFN0YXRlOiBVcGxvYWRFdmVudCA9IHsgc3RhdGU6ICdQRU5ESU5HJywgcHJvZ3Jlc3M6IDAgfVxyXG4gICAgLy9jb25zdCBjYWxjdWxhdGVTdGF0ZSA9IChcclxuICAgIC8vICB1cGxvYWQ6IFVwbG9hZEV2ZW50LFxyXG4gICAgLy8gIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj5cclxuICAgIC8vKTogVXBsb2FkRXZlbnQgPT4ge1xyXG4gICAgLy8gIC8vIGltcGxlbWVudGF0aW9uXHJcbiAgICAvL31cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9odHRwLnJlcXVlc3QocmVxKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpIHtcclxuICAgICAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAgICAgLy8gICAgZmlsZS5uYW1lLFxyXG4gICAgICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLmxvYWRlZCxcclxuICAgICAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAgICAgLy8gICkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGNvbnN0IHJlcyA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIEF0dGFjaG1lbnQ7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChtb2RlbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoeyBzdGF0dXM6IHJlcy5zdGF0dXMsIGVycm9yOiByZXMuYm9keSB9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZSk7XHJcbiAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB1bnN1YnNjcmliZSgpIHtcclxuICAgICAgICAgIC8vcmVxLlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlOiBGaWxlLCBvcHRpb25zPzogeyBpc1ByaXZhdGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQ+O1xyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlczogRmlsZVtdLCBvcHRpb25zPzogeyBpc1ByaXZhdGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnRbXT47XHJcbiAgdXBsb2FkKHJlY2lwaWVudElkOiBudW1iZXIsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIGZpbGVzOiBGaWxlIHwgRmlsZVtdLCBvcHRpb25zPzogeyBpc1ByaXZhdGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQgfCBBdHRhY2htZW50W10+IHtcclxuICAgIGNvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBpZiAoaXNBcnJheShmaWxlcykpIGZpbGVzLmZvckVhY2goZiA9PlxyXG4gICAgICBmZC5hcHBlbmQoZi5uYW1lLCBmKSk7XHJcbiAgICBlbHNlIGZkLmFwcGVuZChmaWxlcy5uYW1lLCBmaWxlcyk7XHJcbiAgICAvL2NvbnN0IGJ5dGVzUGVyQ2h1bmsgPSAyMCAqIDEwMjQgKiAxMDI0O1xyXG4gICAgLy8gYXF1aXJlIHRoZSBsb2NhdGlvbiBwcmlvciB0byBzZW5kaW5nIHRoZSByZXF1ZXN0XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybUlkKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgICBsZXQgdXJsID0gYC9hcGkvYXR0YWNobWVudHMvJHtyZWNpcGllbnRJZH0/dmVyc2lvbj0ke3ZlcnNpb259YDtcclxuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2gocCA9PiB1cmwgKz0gYCYke3B9PSR7cGFyYW1zW3BdfWApO1xyXG4gICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICBpZiAob3B0aW9ucy5pc1ByaXZhdGUpIHVybCArPSAnJmlzcHJpdmF0ZT10cnVlJ1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB1cmwsIGZkLCB7XHJcbiAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9odHRwLnJlcXVlc3QocmVxKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGFuIHVwbG9hZCBwcm9ncmVzcyBldmVudC4gQ29tcHV0ZSBhbmQgc2hvdyB0aGUgJSBkb25lOlxyXG4gICAgICAgICAgICAvL2NvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coYEZpbGUgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmApO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudFtdO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dChpc0FycmF5KGZpbGVzKSA/IG1vZGVsIDogbW9kZWxbMF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgIG9ic2VydmUuZXJyb3IoZSk7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0cmlldmUgc2VuZGVyc1xyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgc2VuZGVycyhuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9tYWlsYm94L3NlbmRlcnMvJywge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmbGFnKGlkOiBudW1iZXIsIGZsYWc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvZmxhZy8ke2lkfT9mbGFnPSR7ZmxhZ31gLCBudWxsKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9jaGFuZ2UkLm5leHQoeyBpZCwgZmxhZyB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdmlld2VkY29tbWVudHMoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8eyB0aW1lOiBEYXRlIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRpbWU6IERhdGUgfT4oYC9hcGkvY29tbWVudHMvdmlld2VkLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcCgoZTogeyB0aW1lOiBEYXRlIH0pID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB2aWV3ZWQ6IGUudGltZSB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdHlwaW5nKGlkOiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2NvbW1lbnRzL3R5cGluZy8ke2lkfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG4gIGVkaXRpbmcoaWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9lZGl0aW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS50b1Byb21pc2UoKTtcclxuICB9XHJcbiAgY29weShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWxib3gvY29weS8ke2lkfWAsIHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50IGlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHBhcmVudElkPzogbnVtYmVyXHJcbiAgfSk6IE9ic2VydmFibGU8Q29tbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxDb21tZW50PihgL2FwaS9jb21tZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjb21tZW50dXBkYXRlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCBvcHRpb25zOiB7XHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgaW1hZ2U/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8Q29tbWVudD4oYC9hcGkvY29tbWVudHMvZWRpdC8ke2lkfS8ke2NvbW1lbnRJZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgaW5mbzxUID0gYW55Pihkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsYm94L2luZm8vJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB0aW1lbGluZShkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYWluPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q2hhaW4+KGAvYXBpL21haWxib3gvdGltZWxpbmUvJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB2b3RlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvY29tbWVudHMvdm90ZS8ke2lkfS8ke2NvbW1lbnRJZH1gLCB7fSwgeyBwYXJhbXM6IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9KTtcclxuICB9XHJcbiAgdm90ZXMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFZvdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFZvdGVbXT4oYC9hcGkvY29tbWVudHMvdm90ZXMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGVkaXRzKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21tZW50VmVyc2lvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFZlcnNpb25bXT4oYC9hcGkvY29tbWVudHMvZWRpdHMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGZpbmRBbGwoZmlsdGVyOiB7IHR5cGU/OiBGaWx0ZXJUeXBlOyBjb250YWlucz86IHN0cmluZzsgc3RhdGU/OiBzdHJpbmc7IGZvcm0/OiBzdHJpbmc7IGZvbGRlcklkPzogc3RyaW5nOyBzZW5kZXJJZD86IHN0cmluZzsgfSxcclxuICAgIG9wdGlvbnM/OiB7IHNraXA/OiBudW1iZXI7IHRha2U/OiBudW1iZXI7IG9yZGVyQnk/OiAndmFsdWUnIHwgJ3ZpZXdlZCcgfCAnZGF0ZScgfSk6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7IC4uLmZpbHRlciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgY2xlYW51cChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEhlYWRlck1vZGVsW10+KCcvYXBpL21haWwnLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgY3JlYXRlPFQgPSBhbnk+KGZvcm06IHN0cmluZywgbW9kZWw/OiBUKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gIH1cclxuICBnZXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgcmVhZD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UmVjaXBpZW50TW9kZWw8VD4+KGAvYXBpL21haWwvJHtpZH1gKS5waXBlKFxyXG4gICAgICB0YXAoKG06IFJlY2lwaWVudE1vZGVsKSA9PlxyXG4gICAgICAgIHJlYWQgPT09IGZhbHNlICYmIG0ucmVhZCA9PT0gdHJ1ZSAmJlxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZXVucmVhZGNvdW50ZXIobS5yZWNlaXZlZCwgbS5mb2xkZXJJZCwgLTEpXHJcbiAgICAgICkpO1xyXG4gIH1cclxuICBwcml2YXRlIF91cGRhdGV1bnJlYWRjb3VudGVyKGRhdGU6IERhdGUsIGZvbGRlcklkOiBzdHJpbmcsIHZhbDogbnVtYmVyKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIC8vIGRhdGUgaXMgYWJvdmUgd2F0ZXJtYXJrXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLmluYm94VmlldyAmJlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgPCBkYXRlXHJcbiAgICApXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5pbmJveENvdW50ICs9IHZhbDtcclxuICAgIC8vIGRlY3JlYXNlXHJcbiAgICBjb25zdCBmb2xkZXIgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5cclxuICAgICAgZmluZChmID0+IGYubmFtZSA9PT0gZm9sZGVySWQpO1xyXG4gICAgZm9sZGVyLmNvdW50ID0gTWF0aC5tYXgoMCwgZm9sZGVyLmNvdW50ICsgdmFsKTtcclxuICB9XHJcblxyXG4gIHNhdmU8VCA9IGFueT4oaWQ6IG51bWJlciwgZm9ybTogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIG1vZGVsOiB7fSwgZmlsZXM/OiBGaWxlW10gfCBGaWxlTGlzdCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIC8vY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIC8vY29uc3QgbW9kZWxCbG9iID0gbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KG1vZGVsKV0sIHtcclxuICAgIC8vICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAvL30pO1xyXG4gICAgLy9mZC5hcHBlbmQoJ2Zvcm0tZGF0YScsIG1vZGVsQmxvYik7XHJcbiAgICAvL2lmIChmaWxlcykge1xyXG4gICAgLy8gIGlmIChpc0FycmF5KGZpbGVzKSkgZmlsZXMuZm9yRWFjaChmID0+XHJcbiAgICAvLyAgICBmZC5hcHBlbmQoZi5uYW1lLCBmKSk7XHJcbiAgICAvLyAgZWxzZSBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAvLyAgICBsZXQgZmlsZSA9IGZpbGVzLml0ZW0oaSk7XHJcbiAgICAvLyAgICBmZC5hcHBlbmQoZmlsZS5uYW1lLCBmaWxlKTtcclxuICAgIC8vICB9XHJcbiAgICAvL31cclxuICAgIC8vICByZXR1cm4gdGhpcy5fd2l0aEdlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHBhcmFtcyA9PiB7XHJcbiAgICAvLyAgICBsZXQgdXJsID0gYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn1gO1xyXG4gICAgLy8gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKHAgPT4gdXJsICs9IGAmJHtwfT0ke3BhcmFtc1twXX1gKTtcclxuICAgIC8vICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUFVUJywgdXJsLCBmZCwge1xyXG4gICAgLy8gICAgfSk7XHJcbiAgICAvLyAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkucGlwZShtYXAoZXZlbnQgPT4ge1xyXG4gICAgLy8gICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgIC8vICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgLy8gICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICAgIC8vICAgICAgICByZXR1cm4gbW9kZWw7XHJcbiAgICAvLyAgICAgIH1cclxuICAgIC8vICAgICAgZWxzZVxyXG4gICAgLy8gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAvLyAgICB9KSlcclxuICAgIC8vICB9KSwgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT50aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn1gLCBtb2RlbCwgeyBwYXJhbXMgfSkpLFxyXG4gICAgICB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9tYWlsLyR7aWR9YCkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgdGhpcy5fZGVsZXRlJC5uZXh0KGlkKSkpO1xyXG4gIH1cclxuICByZW1vdmVjb21tZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL2NvbW1lbnRzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHBvc3Q8VCA9IGFueT4oZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwID0+XHJcbiAgICAgIHRoaXMuX2h0dHAucG9zdDxSZWNpcGllbnRNb2RlbDxhbnk+PignL2FwaS9tYWlsJywgbW9kZWwsIHtcclxuICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgIGdvOiB0cnVlLFxyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gIH1cclxuICBzdWJtaXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsPzogYW55KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICB0aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxhbnk+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZnbz10cnVlYCwgbW9kZWwsIHsgcGFyYW1zIH0pKSkucGlwZShcclxuICAgICAgICB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgfVxyXG4gIHNlbmQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsOiBhbnksIGFjdGlvbjogc3RyaW5nLCBhY3Rpb25BcmdzOiB7fSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZhY3Rpb249JHthY3Rpb259YCwgbW9kZWwsIHsgcGFyYW1zOiB7IC4uLnBhcmFtcywgLi4uYWN0aW9uQXJncyB9IH0pKSkucGlwZShcclxuICAgICAgICB0YXAoKCkgPT5cclxuICAgICAgICAgIHJlYWQgPT09IGZhbHNlICYmIHRoaXMuX3VwZGF0ZXVucmVhZGNvdW50ZXIocmVjZWl2ZWQsIGZvbGRlcklkLCAtMSlcclxuICAgICAgICApLFxyXG4gICAgICAgIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICB9XHJcbiAgZXZlbnRzKHN0YXJ0aW5nOiBEYXRlLCBlbmRpbmc/OiBEYXRlLCBjb250YWlucz86IHN0cmluZyk6IE9ic2VydmFibGU8U2NoZWR1bGVkRXZlbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFNjaGVkdWxlZEV2ZW50W10+KGAvYXBpL2V2ZW50c2AsIHtcclxuICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgc3RhcnRpbmc6IHN0YXJ0aW5nLnRvSlNPTigpLFxyXG4gICAgICAgIGVuZGluZzogZW5kaW5nLnRvSlNPTigpLFxyXG4gICAgICAgIGNvbnRhaW5zOiBjb250YWlucyB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhbmdlRXZlbnQoaWQ6IG51bWJlciwgb3B0aW9uczogeyBzdGFydGluZzogRGF0ZTsgZW5kaW5nPzogRGF0ZTsgY29tcGxldGU/OiBib29sZWFuIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2V2ZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgZ2VvIGxvY2F0aW9uIGlmIGZvcm0gc2V0dGluZ3MgcmVxdWllc1xyXG4gICAqIEBwYXJhbSBmb3JtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2VvTG9jYXRpb24oZm9ybTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGxuZz86IHN0cmluZzsgbGF0Pzogc3RyaW5nIH0+IHtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gZm9ybSk7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgc3dpdGNoIChjb25maWd1cmF0aW9uLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnUmVxdWlyZSc6XHJcbiAgICAgICAgY2FzZSAnQXNrJzpcclxuICAgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24ociA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dCh7XHJcbiAgICAgICAgICAgICAgbG5nOiByLmNvb3Jkcy5sb25naXR1ZGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICBsYXQ6IHIuY29vcmRzLmxhdGl0dWRlLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5wb3NpdGlvbiA9PT0gJ0FzaycpXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoJ25vIHBvc2l0aW9uJyk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIG9ic2VydmUubmV4dCh7fSk7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKi9cclxuICBwcml2YXRlIF9ub3RpZnkgPSA8VD4oKSA9PiAob2JzZXJ2ZTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4pID0+IHtcclxuICAgIHJldHVybiBvYnNlcnZlLnBpcGUodGFwKG0gPT4ge1xyXG4gICAgICAobSBhcyBJdGVtRXh0cmEpLmxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2NoYW5nZSQubmV4dChtKTtcclxuICAgIH0pKTtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUV4dHJhIHtcclxuICBsb2FkaW5nPzogYm9vbGVhbjtcclxuICBsb2FkZWQ/OiBib29sZWFuO1xyXG4gIHdvcmtpbmc/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudEV4dHJhIGV4dGVuZHMgQXR0YWNobWVudCB7XHJcbiAgdXJsOiBTYWZlVXJsO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmlsZUV4dDogc3RyaW5nO1xyXG4gIGlzSW1hZ2U6IGJvb2xlYW47XHJcbiAgcHJvZ3Jlc3M/OiBudW1iZXI7XHJcbiAgdmlld2VkPzogRGF0ZTtcclxuICBmYWlsZWQ/OiBib29sZWFuO1xyXG59XHJcbmZ1bmN0aW9uIGlzSHR0cFJlc3BvbnNlPFQ+KGV2ZW50OiBIdHRwRXZlbnQ8VD4pOiBldmVudCBpcyBIdHRwUmVzcG9uc2U8VD4ge1xyXG4gIHJldHVybiBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSHR0cFByb2dyZXNzRXZlbnQoXHJcbiAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4pOiBldmVudCBpcyBIdHRwUHJvZ3Jlc3NFdmVudCB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzcyB8fFxyXG4gICAgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzc1xyXG4gIClcclxufVxyXG4vL2Z1bmN0aW9uIGNhbGN1bGF0ZVN0YXRlKHVwbG9hZDogVXBsb2FkRXZlbnQsIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj4pIHtcclxuLy8gIGlmIChpc0h0dHBQcm9ncmVzc0V2ZW50KGV2ZW50KSkge1xyXG4vLyAgICByZXR1cm4gbmV3IFVwbG9hZEV2ZW50KHtcclxuLy8gICAgICBwcm9ncmVzczogZXZlbnQudG90YWxcclxuLy8gICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxyXG4vLyAgICAgICAgOiB1cGxvYWQucHJvZ3Jlc3MsXHJcbi8vICAgICAgc3RhdGU6ICdwcm9ncmVzcycsXHJcbi8vICAgIH0pO1xyXG4vLyAgfVxyXG4vLyAgaWYgKGlzSHR0cFJlc3BvbnNlKGV2ZW50KSkge1xyXG4vLyAgICByZXR1cm4gbmV3IFVwbG9hZEV2ZW50KHtcclxuLy8gICAgICBwcm9ncmVzczogMTAwLFxyXG4vLyAgICAgIHN0YXRlOiAnZG9uZScsXHJcbi8vICAgIH0pXHJcbi8vICB9XHJcbi8vfVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRXZlbnQge1xyXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgcHJvZ3Jlc3M6IG51bWJlcjtcclxuICAvLyBieXRlc1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbiAgc3RhdGU6ICdwZW5kaW5nJyB8ICdwcm9ncmVzcycgfCAnZG9uZSc7XHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXBvcnRQcm9ncmVzcyhhdHRhY2htZW50OiBBdHRhY2htZW50RXh0cmEpIHtcclxuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PikgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAvL1RPRE8gcHJvZ3Jlc3NcclxuICAgICAgLy9pZiAoZXZlbnQgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSB7XHJcbiAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAvLyAgICBmaWxlLm5hbWUsXHJcbiAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS5sb2FkZWQsXHJcbiAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAvLyAgKSk7XHJcbiAgICAgIC8vfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAvLyAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgIC8vICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgIC8vICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgLy8gICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgLy8gIH1cclxuICAgICAgLy8gIGVsc2VcclxuICAgICAgLy8gICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAvLyAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgLy9pZiAoYSBpbnN0YW5jZW9mIFVwbG9hZEV2ZW50KSB7XHJcbiAgICAgICAgICAvLyAgT2JqZWN0LmFzc2lnbihpdGVtLCB7XHJcbiAgICAgICAgICAvLyAgICBwcm9ncmVzczogYS5sb2FkZWQgLyBhLnRvdGFsXHJcbiAgICAgICAgICAvLyAgfSk7XHJcbiAgICAgICAgICAvLyAgcmV0dXJuO1xyXG4gICAgICAgICAgLy99XHJcbiAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgfSk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uRXJyb3Ige1xyXG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcclxuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgUEVSTUlTU0lPTl9ERU5JRUQ6IG51bWJlcjtcclxuICByZWFkb25seSBQT1NJVElPTl9VTkFWQUlMQUJMRTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFRJTUVPVVQ6IG51bWJlcjtcclxufVxyXG4iXX0=
|
@@ -37,4 +37,4 @@ export var FieldKind;
|
|
37
37
|
FieldKind["DateRange"] = "DateRange";
|
38
38
|
})(FieldKind || (FieldKind = {}));
|
39
39
|
;
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUFzWHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQXdCWDtBQXhCRCxXQUFZLFNBQVM7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsMEJBQWEsQ0FBQTtJQUNiLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQiw4QkFBaUIsQ0FBQTtJQUNqQiwwQ0FBNkIsQ0FBQTtJQUM3QiwwQkFBYSxDQUFBO0lBQ2IsMEJBQWEsQ0FBQTtJQUNiLGtDQUFxQixDQUFBO0lBQ3JCLHdDQUEyQixDQUFBO0lBQzNCLDBCQUFhLENBQUE7SUFDYix3QkFBVyxDQUFBO0lBQ1gsOEJBQWlCLENBQUE7SUFDakIsZ0NBQW1CLENBQUE7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsc0NBQXlCLENBQUE7SUFDekIsa0NBQXFCLENBQUE7SUFDckIsMENBQTZCLENBQUE7SUFDN0IsZ0NBQW1CLENBQUE7SUFDbkIsb0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQXhCVyxTQUFTLEtBQVQsU0FBUyxRQXdCcEI7QUFvRkEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVNb2RlbCwgQ29ubmVjdG9yTW9kZWwsIFNoYXBlTW9kZWwsIEZsb3dTaGFwZU1vZGVsLCBCYXNpY1NoYXBlTW9kZWwsIEltYWdlTW9kZWwsIFBhdGhNb2RlbCwgVGV4dE1vZGVsLCBCcG1uU2hhcGVNb2RlbCwgTmF0aXZlTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBJTkJPWCA9ICdpYicsIERSQUZUID0gJ2RmJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyTW9kZWw8VCA9IGFueT4ge1xyXG4gIHBhcmVudElkPzogbnVtYmVyO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBpc3N1ZWQ/OiBEYXRlO1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICBzdWJzdGl0dXRlSWQ/OiBzdHJpbmc7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIGFjdGlvbj86IHN0cmluZztcclxuICBvd25lckJ5SWQ/OiBzdHJpbmc7XHJcbiAgaWQ6IG51bWJlcjtcclxuICB2ZXJzaW9uOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgcmVjZWl2ZWQ6IERhdGU7XHJcbiAgcmVwbGllZD86IERhdGU7XHJcbiAgZm9sZGVySWQ6IHN0cmluZztcclxuICByZWFkOiBib29sZWFuO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc2VuZGVySWQ/OiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICBmbGFnPzogYm9vbGVhbjtcclxuICBzdW1tYXJ5Pzogc3RyaW5nO1xyXG4gIHBlbmRpbmc/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50TW9kZWw8VCA9IGFueT4ge1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBleHRyYT86IGFueTtcclxuICBudW1iZXI/OiBzdHJpbmc7XHJcbiAgc3ViamVjdD86IHN0cmluZztcclxuICBzdW1tYXJ5Pzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBvd25lcklkOiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICB2ZXJzaW9uOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG4gIGNvbXBsZXRlZD86IGJvb2xlYW47XHJcbiAgbW9kZWw/OiBUO1xyXG4gIHZpZXdlZD86IERhdGU7XHJcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXTtcclxuICBjb21tZW50czogQ29tbWVudFtdO1xyXG4gIHVucmVhZENvbW1lbnRzOiBudW1iZXI7XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93SW5mbztcclxuICByZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcclxuICBjdWJlczogQ3ViZUVudHJ5W107XHJcbiAgZXZlbnRzOiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvY2F0aW9uczogTWFwUGluW107XHJcbiAgbG9nOiBMb2dbXTtcclxuICBydWxlcz86IHsgW25hbWU6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICBwYXJlbnQ/OiBDaGFpbjtcclxuICBjaGlsZHJlbj86IENoYWluW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDaGFpbiB7XHJcbiAgY29tcGxldGVkOiBib29sZWFuO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICBwYXJlbnQ/OiBDaGFpbjtcclxuICBjaGlsZHJlbj86IENoYWluW107XHJcbiAgcmVjaXBpZW50cz86IFJlY2lwaWVudFtdO1xyXG4gIGV2ZW50cz86IFNjaGVkdWxlZEV2ZW50W107XHJcbiAgbG9nOiBMb2dbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93SW5mbyB7XHJcbiAgbm9kZXM6IE5vZGVJbmZvW107XHJcbiAgY29ubmVjdG9yczogQ29ubmVjdG9ySW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBpZW50TW9kZWw8VCA9IGFueT4gZXh0ZW5kcyBIZWFkZXJNb2RlbDxUPiwgRG9jdW1lbnRNb2RlbDxUPiB7XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgYWN0aW9ucz86IHN0cmluZ1tdO1xyXG4gIGZ5aTogYm9vbGVhbjtcclxuICBvcmlnaW5JZD86IG51bWJlcjtcclxuICBlc2NhbGF0ZWQ/OiBib29sZWFuO1xyXG4gIHRhZ3M/OiBzdHJpbmdbXTtcclxuICBieUlkPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdG9ySW5mbyB7XHJcbiAgLy8gcmVjaXBpZW50IGlkXHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgdGltZT86IERhdGU7XHJcbiAgc291cmNlSWQ6IHN0cmluZztcclxuICB0YXJnZXRJZDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUluZm8ge1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgaWQ6IHN0cmluZztcclxuICAvKiogbm9kZSAqL1xyXG4gIHR5cGU6IHN0cmluZztcclxuICB0aW1lPzogRGF0ZTtcclxuICBlc3RpbWF0ZTogYm9vbGVhbjtcclxuICAvKiogc2Vjb25kcyAqL1xyXG4gIHN0YW5kYXJkVGltZT86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIExvZyB7XHJcbiAgcmVjaXBpZW50SWQ/OiBudW1iZXI7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgYnlJZD86IHN0cmluZztcclxuICBvcmlnaW5JZD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIG1vZGVsPzoge307XHJcbiAgdHlwZTogTG9nVHlwZTtcclxuICBub2RlSWQ/OiBzdHJpbmc7XHJcbiAgbm90ZT86IHN0cmluZztcclxuICBzdGF0ZT86IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICBzb3VyY2VJZD86IHN0cmluZztcclxuICB0YXJnZXRJZD86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgZmlsZUlkPzogbnVtYmVyO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTG9nVHlwZSA9ICdTdWJtaXQnIHwgJ0Rvd25sb2FkJyB8ICdTdGF0ZUNoYW5nZScgfCAnQWN0aW9uVGFrZW4nIHwgJ0NoZWNrSW4nIHwgJ0NoZWNrT3V0JyB8XHJcbiAgJ01vZGVsQ2hhbmdlJyB8ICdOb2RlJyB8ICdWaXJ0dWFsTm9kZScgfCAnTm9kZUp1bXAnIHwgJ0Nvbm5lY3RvcicgfCAnVmlydHVhbENvbm5lY3RvcicgfCAnRXNjYWxhdGlvbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudCB7XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHBlbmRpbmc6IGJvb2xlYW47XHJcbiAgZm9sZGVySWQ6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGVzdGltYXRlPzogYm9vbGVhbjtcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlZEV2ZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICBzdGFydGluZzogRGF0ZTtcclxuICBlbmRpbmc/OiBEYXRlO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGxvY2F0aW9uPzogTGF0TG5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwUGluIHtcclxuICBsb2NhdGlvbjogTGF0TG5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExhdExuZyB7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUVudHJ5IHtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgYXhlczogc3RyaW5nW107XHJcbiAgdmFsdWU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50IHtcclxuICBpZD86IG51bWJlcjtcclxuICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgYnlJZD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIGRlbGV0ZWQ/OiBib29sZWFuO1xyXG4gIGNoZWNrZWRPdXQ/OiBib29sZWFuO1xyXG4gIHByaXZhdGU/OiBib29sZWFuO1xyXG4gIGhvbGRpbmdJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnQge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgLyoqIGJhc2U2NCAqL1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICB2b3RlZD86IG51bWJlcjtcclxuICB2b3Rlcz86IG51bWJlcjtcclxuICBlZGl0ZWQ/OiBEYXRlO1xyXG4gIGRlbGV0ZWQ/OiBib29sZWFuO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVm90ZSB7XHJcbiAgYnlJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIHZvdGVkPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVudFZlcnNpb24ge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XHJcbiAgbXV0ZWQ/OiBib29sZWFuO1xyXG4gIGRlbGV0ZWQ/OiBib29sZWFuO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJlYWQ/OiBib29sZWFuO1xyXG4gIHNlbnQ6IERhdGU7XHJcbiAgcmVjaXBpZW50SWQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTm90aWZpY2F0aW9uVHlwZSA9XHJcbiAgJ0NvbW1lbnRlZCcgfFxyXG4gICdDdWJlQW5vbWFseScgfFxyXG4gICdFc2NhbGF0ZWQnIHxcclxuICAnTGlrZWQnIHxcclxuICAnU3RhdGVDaGFuZ2VkJyB8XHJcbiAgJ051ZGdlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xyXG4gIGhvbGlkYXlzOiBhbnk7XHJcbiAgdXRpbGl0aWVzOiBVdGlsaXR5W107XHJcbiAgZ3VpZGVzPzogR3VpZGVbXTtcclxuICB2aWV3czogVmlld1tdO1xyXG4gIHBob3RvPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgYnlOYW1lPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpbXBlcnNvbmF0aW5nPzogc3RyaW5nO1xyXG4gIGF2YWlsYWJsZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBieUdlbmRlcj86IEdlbmRlcjtcclxuICBzeXN0ZW06IGJvb2xlYW47XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXTtcclxuICBzdGF0ZXM6IFN0YXRlW107XHJcbiAgZm9sZGVyczogRm9sZGVyW107XHJcbiAgcmVwb3J0czogUmVwb3J0W107XHJcbiAgdHlwZXM6IFR5cGVbXTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIG5vZGVzOiBGbG93Tm9kZVtdO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgc291cmNlczogU291cmNlW107XHJcbiAgd2lkZ2V0czogV2lkZ2V0W107XHJcbiAgb3B0aW9uczogT3B0aW9ucztcclxuICBpbmJveDogSGVhZGVyTW9kZWxbXTtcclxuICBpbmJveENvdW50PzogbnVtYmVyO1xyXG4gIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdO1xyXG4gIG5vdGlmaWNhdGlvbnNDb3VudD86IG51bWJlcjtcclxuICByZWNlbnRzPzogSGVhZGVyTW9kZWxbXTtcclxuICBjb250YWN0czogQ29udGFjdFtdO1xyXG4gIGNvbnZlcnNhdGlvbnNDb3VudDogbnVtYmVyO1xyXG4gIGxpY2Vuc2U/OiBMaWNlbnNlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGVsZW1lbnRUZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGtleXM6IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZSB7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgYXNzaWduYWJsZT86IGJvb2xlYW47XHJcbiAgY29sdW1ucz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHkge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgb3B0aW9uczogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdCB7XHJcbiAgdmlzaXRlZD86IERhdGU7XHJcbiAgd2F0ZXJtYXJrPzogRGF0ZTtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBhY2NlcHRlZDogYm9vbGVhbjtcclxuICBpbWFnZT86IHN0cmluZztcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIGZvcmdvdHRlbj86IGJvb2xlYW47XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdCB7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBjb250YWN0SWQ6IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgLyoqIGJhc2U2NCAqL1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkSW5mbyB7XHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBrZXk/OiBib29sZWFuO1xyXG4gIHR5cGU/OiBGaWVsZEtpbmQ7XHJcbiAgdmFsaWRhdGlvbnM/OiBWYWxpZGF0aW9uW107XHJcbiAgZmllbGRzPzogRmllbGRJbmZvW107XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIG1pbj86IG51bWJlcjtcclxuICBzb3VyY2U/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBpc0FycmF5PzogYm9vbGVhbjtcclxuICBpc09iamVjdD86IGJvb2xlYW47XHJcbiAgZGlhZ3JhbT86IGJvb2xlYW47XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaGludD86IHN0cmluZztcclxuICBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb24ge1xyXG4gIHR5cGU6IFZhbGlkYXRpb25UeXBlO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBtaW4/OiBudW1iZXI7XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIGV4cHJlc3Npb24/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBNaW4gPSAnTWluJyxcclxuICBNYXggPSAnTWF4JyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBQYXR0ZXJuID0gJ1BhdHRlcm4nLFxyXG4gIFJhbmdlID0gJ1JhbmdlJyxcclxuICBFbWFpbCA9ICdFbWFpbCdcclxufVxyXG5leHBvcnQgZW51bSBGaWVsZEtpbmQge1xyXG4gIFN0cmluZyA9ICdTdHJpbmcnLFxyXG4gIE51bWJlciA9ICdOdW1iZXInLFxyXG4gIFRpbWUgPSAnVGltZScsXHJcbiAgRGF0ZSA9ICdEYXRlJyxcclxuICBEYXRlVGltZSA9ICdEYXRlVGltZScsXHJcbiAgQ2hlY2tib3ggPSAnQ2hlY2tib3gnLFxyXG4gIEN1cnJlbmN5ID0gJ0N1cnJlbmN5JyxcclxuICBTZWxlY3QgPSAnU2VsZWN0JyxcclxuICBFbWFpbEFkZHJlc3MgPSAnRW1haWxBZGRyZXNzJyxcclxuICBIdG1sID0gJ0h0bWwnLFxyXG4gIFRleHQgPSAnVGV4dCcsXHJcbiAgUGFzc3dvcmQgPSAnUGFzc3dvcmQnLFxyXG4gIFBob25lTnVtYmVyID0gJ1Bob25lTnVtYmVyJyxcclxuICBGaWxlID0gJ0ZpbGUnLFxyXG4gIFVybCA9ICdVcmwnLFxyXG4gIFN3aXRjaCA9ICdTd2l0Y2gnLFxyXG4gIEFkZHJlc3MgPSAnQWRkcmVzcycsXHJcbiAgT2JqZWN0ID0gJ09iamVjdCcsXHJcbiAgRXhwcmVzc2lvbiA9ICdFeHByZXNzaW9uJyxcclxuICBEdXJhdGlvbiA9ICdEdXJhdGlvbicsXHJcbiAgQXV0b2NvbXBsZXRlID0gJ0F1dG9jb21wbGV0ZScsXHJcbiAgUGVyY2VudCA9IFwiUGVyY2VudFwiLFxyXG4gIERhdGVSYW5nZSA9IFwiRGF0ZVJhbmdlXCJcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgY29scz86IG51bWJlcjtcclxuICByb3dzPzogbnVtYmVyO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIGFyZ3VtZW50c1RlbXBsYXRlPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM6IGFueTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2Uge1xyXG4gIG1vZGU6IExpY2Vuc2VNb2RlO1xyXG4gIGV4cGlyYXRpb24/OiBEYXRlO1xyXG4gIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlRmlsdGVyIHtcclxuICBjdWJlPzogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9sZGVyIHtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNvdW50PzogbnVtYmVyO1xyXG4gIGNvbHVtbnM/OiBGb2xkZXJDb2x1bW5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlckNvbHVtbiB7XHJcbiAgbmFtZTogc3RyaW5nIHwgJ251bWJlcicgfCAnc3ViamVjdCcgfCAndmFsdWUnIHwgJ293bmVyJyB8ICdzZW5kZXInIHwgJ3JlY2VpdmVkJyB8ICdyZWNlaXZlZEFnbycgfCAncmVwbGllZCcgfCAnc3RhdGUnIHwgJ2lzc3VlZCcgfCAnaXNzdWVkQWdvJztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU/OiAnQm9vbGVhbicgfCAnRGF0ZScgfCAnRGVjaW1hbCcgfCAnU3RyaW5nJztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGljZW5zZU1vZGUgPVxyXG4gICdFdmFsdWF0aW9uJyB8XHJcbiAgJ1ZhbGlkJyB8XHJcbiAgJ0dyYWNlJyB8XHJcbiAgJ0ludmFsaWQnIHxcclxuICAnTGltaXQnIHxcclxuICAnRXhwaXJlZCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcclxuICBncmFudEFjY2Vzcz86IEdyYW50U2V0dGluZ3M7XHJcbiAgb3V0T2ZPZmZpY2U/OiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBOb3RpZmljYXRpb25zU2V0dGluZ3M7XHJcbiAgZW1haWxzPzogRW1haWxTZXR0aW5ncztcclxuICBndWlkZXM/OiBzdHJpbmdbXTtcclxuICBpbmJveFZpZXc/OiBEYXRlO1xyXG4gIG5vdGlmaWNhdGlvbnNWaWV3PzogRGF0ZTtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHcmFudFNldHRpbmdzIHtcclxuICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgdXNlcnM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaW1lbnRpb25zIHtcclxuICB3aWR0aDogbnVtYmVyO1xyXG4gIGhlaWdodDogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0XHJcbiAgaW50ZXJmYWNlIFJlcG9ydCB7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGZpZWxkcz86IEZpZWxkSW5mb1tdO1xyXG4gIGl0ZW1UZW1wbGF0ZT86IHN0cmluZztcclxuICBjb2x1bW5zOiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm0ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY3JlYXRhYmxlOiBib29sZWFuO1xyXG4gIGljb246IHN0cmluZztcclxuICBwb3NpdGlvbj86IFBvc2l0aW9uUG9saWN5O1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIHN0cnVjdHVyZT86IEZpZWxkSW5mb1tdO1xyXG4gIHdvcmtmbG93PzogV29ya2Zsb3c7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgUG9zaXRpb25Qb2xpY3kgPSAnUmVxdWlyZScgfCAnQXNrJyB8ICdOb25lJztcclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvdyB7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3Rvck1vZGVsW107XHJcbiAgbm9kZXM6IE5vZGVNb2RlbFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckluZm8ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgZ2VuZGVyPzogR2VuZGVyO1xyXG4gIHBpY3R1cmVVcmw/OiBzdHJpbmc7XHJcbiAgbmljaz86IHN0cmluZztcclxuICBwaG9uZU51bWJlcj86IHN0cmluZztcclxuICBlbWFpbD86IHN0cmluZztcclxuICBsYXN0QWN0aXZlPzogRGF0ZTtcclxuICBtb2RlPzogQXZhaWxhYmlsaXR5U3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtb2RlPzogJ01lbnUnIHwgJ0VhZ2VyJyB8ICdQcml2YXRlJztcclxuICBzdGVwczogR3VpZGVTdGVwW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHdWlkZVN0ZXAge1xyXG4gIGV4ZWN1dGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdG9yPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBuYXZpZ2F0ZT86IHN0cmluZztcclxuICBwb3NpdGlvbj86ICdBYm92ZScgfCAnRW5kJyB8ICdTdGFydCcgfCAnQmVsb3cnO1xyXG59XHJcbi8vZW51bSBHdWlkZVN0ZXBQb2xpY3kgeyB9XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmxvd05vZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHN0eWxlPzogc3RyaW5nO1xyXG4gIHBhbGV0dGU/OiBzdHJpbmc7XHJcbiAgc2hhcGU6IFNoYXBlTW9kZWwgfCBGbG93U2hhcGVNb2RlbCB8IEJhc2ljU2hhcGVNb2RlbCB8IEltYWdlTW9kZWwgfCBQYXRoTW9kZWwgfCBUZXh0TW9kZWwgfCBCcG1uU2hhcGVNb2RlbCB8IE5hdGl2ZU1vZGVsO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXZhaWxhYmlsaXR5U3RhdGUgPVxyXG4gICdPZmZsaW5lJyB8XHJcbiAgJ09ubGluZScgfFxyXG4gICdPdXRPZk9mZmljZScgfFxyXG4gICdWYWNhdGlvbicgfCAnV29ya2luZ0hvbWUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIHZpZXdzOiBDdWJlVmlld1tdO1xyXG4gIGF4ZXM6IEN1YmVBeGlzW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgWUF4aXMge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiAnTm9uZScgfCAnTnVtYmVyJyB8ICdDdXJyZW5jeSc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXgge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBhY2N1bXVsYXRlPzogYm9vbGVhbjtcclxuICB0aXRsZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUF4aXMge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRhdGFUeXBlOiBzdHJpbmc7XHJcbiAgY29tYmluYXRpb24/OiBib29sZWFuO1xyXG4gIHNlbGVjdGlvbk1vZGU/OiAnU2luZ2xlJyB8ICdQYXR0ZXJuJyB8ICdNdWx0aXBsZScgfCAnU2VhcmNoJyB8ICdOb25lJztcclxuICBkZXNjZW5kZW50T2Y/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgQXhpc1NlbGVjdGlvbk1vZGUgPVxyXG4gICdOb25lJyB8XHJcbiAgJ1NpbmdsZScgfFxyXG4gICdNdWx0aXBsZScgfFxyXG4gICdTZWFyY2gnIHxcclxuICAnUGF0dGVybic7XHJcblxyXG5leHBvcnQgdHlwZSBBeGlzVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGVzTWFwIHtcclxuICBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZVZpZXcge1xyXG4gIHhBeGlzOiBzdHJpbmdbXTtcclxuICBzZXJpZXM/OiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBpbmRpY2VzPzogc3RyaW5nW107XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBWaWV3VHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFZpZXdUeXBlID0gJ1NwcmVhZHNoZWV0JyB8XHJcbiAgJ0NoYXJ0JyB8ICdQaXZvdCcgfCAnR3JpZCc7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ2hhcnRUeXBlID1cclxuICAnUGllJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIGxpbmUgc2VyaWVzLiAqL1xyXG4gICdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIENvbHVtbiBzZXJpZXMuICovXHJcbiAgJ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBBcmVhIHNlcmllcy4gKi9cclxuICAnQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBCYXIgc2VyaWVzLiAqL1xyXG4gICdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdDb2x1bW4gc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0FyZWEgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0FyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdMaW5lIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQmFyIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGVwTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwYXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3BsaW5lQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTY2F0dGVyIHNlcmllcy4gKi9cclxuICAnU2NhdHRlcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdDb2x1bW4xMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0JhcjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdCYXIxMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUxMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nTGluZTEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdBcmVhMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUmFuZ2VDb2x1bW4gU2VyaWVzICovXHJcbiAgJ1JhbmdlQ29sdW1uJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgV2F0ZXJmYWxsIFNlcmllcyAqL1xyXG4gICdXYXRlcmZhbGwnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUFyZWEgU2VyaWVzICovXHJcbiAgJ1JhbmdlQXJlYScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIEJ1YmJsZSBTZXJpZXMgKi9cclxuICAnQnViYmxlJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQ2FuZGxlIFNlcmllcyAqL1xyXG4gICdQb2xhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIHJhZGFyIHNlcmllcyAqL1xyXG4gICdSYWRhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFBhcmV0byBzZXJpZXMgKi9cclxuICAnUGFyZXRvJyB8ICdEb3VnaG51dCcgfCAnSGFsZkRvdWdobnV0JyB8XHJcbiAgJ0Z1bm5lbCcgfCAnUHlyYW1pZCcgfFxyXG4gICdTdGFja2luZ1N0ZXBBcmVhJztcclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZVNldHRpbmdzIHtcclxuICBmcm9tPzogRGF0ZTtcclxuICB0bz86IERhdGU7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHN1YnN0aXR1ZUlkPzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBOb3RpZmljYXRpb25zU2V0dGluZ3Mge1xyXG4gIHNvdW5kPzogYm9vbGVhbjtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIG15U3RhdGVDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBhbnlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueUNvbW1lbnQ/OiBib29sZWFuO1xyXG4gIG15Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbGlrZWQ/OiBib29sZWFuO1xyXG4gIGN1YmVBbm9tYWx5PzogYm9vbGVhbjtcclxuICB1cGNvbWluZ0V2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuaW50ZXJmYWNlIEVtYWlsU2V0dGluZ3Mge1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbWFpbHM/OiBib29sZWFuO1xyXG4gIGNvbnZlcnNhdGlvbnM/OiBib29sZWFuO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xyXG4gIGV2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuIl19
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUFzWHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQXdCWDtBQXhCRCxXQUFZLFNBQVM7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsMEJBQWEsQ0FBQTtJQUNiLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQiw4QkFBaUIsQ0FBQTtJQUNqQiwwQ0FBNkIsQ0FBQTtJQUM3QiwwQkFBYSxDQUFBO0lBQ2IsMEJBQWEsQ0FBQTtJQUNiLGtDQUFxQixDQUFBO0lBQ3JCLHdDQUEyQixDQUFBO0lBQzNCLDBCQUFhLENBQUE7SUFDYix3QkFBVyxDQUFBO0lBQ1gsOEJBQWlCLENBQUE7SUFDakIsZ0NBQW1CLENBQUE7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsc0NBQXlCLENBQUE7SUFDekIsa0NBQXFCLENBQUE7SUFDckIsMENBQTZCLENBQUE7SUFDN0IsZ0NBQW1CLENBQUE7SUFDbkIsb0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQXhCVyxTQUFTLEtBQVQsU0FBUyxRQXdCcEI7QUFvRkEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVNb2RlbCwgQ29ubmVjdG9yTW9kZWwsIFNoYXBlTW9kZWwsIEZsb3dTaGFwZU1vZGVsLCBCYXNpY1NoYXBlTW9kZWwsIEltYWdlTW9kZWwsIFBhdGhNb2RlbCwgVGV4dE1vZGVsLCBCcG1uU2hhcGVNb2RlbCwgTmF0aXZlTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBJTkJPWCA9ICdpYicsIERSQUZUID0gJ2RmJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyTW9kZWw8VCA9IGFueT4ge1xyXG4gIHBhcmVudElkPzogbnVtYmVyO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBpc3N1ZWQ/OiBEYXRlO1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICBzdWJzdGl0dXRlSWQ/OiBzdHJpbmc7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIGFjdGlvbj86IHN0cmluZztcclxuICBvd25lckJ5SWQ/OiBzdHJpbmc7XHJcbiAgaWQ6IG51bWJlcjtcclxuICB2ZXJzaW9uOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgcmVjZWl2ZWQ6IERhdGU7XHJcbiAgcmVwbGllZD86IERhdGU7XHJcbiAgZm9sZGVySWQ6IHN0cmluZztcclxuICByZWFkOiBib29sZWFuO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc2VuZGVySWQ/OiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICBmbGFnPzogYm9vbGVhbjtcclxuICBzdW1tYXJ5Pzogc3RyaW5nO1xyXG4gIHBlbmRpbmc/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50TW9kZWw8VCA9IGFueT4ge1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBleHRyYT86IGFueTtcclxuICBudW1iZXI/OiBzdHJpbmc7XHJcbiAgc3ViamVjdD86IHN0cmluZztcclxuICBzdW1tYXJ5Pzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBvd25lcklkOiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICB2ZXJzaW9uOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG4gIGNvbXBsZXRlZD86IGJvb2xlYW47XHJcbiAgbW9kZWw/OiBUO1xyXG4gIHZpZXdlZD86IERhdGU7XHJcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXTtcclxuICBjb21tZW50czogQ29tbWVudFtdO1xyXG4gIHVucmVhZENvbW1lbnRzOiBudW1iZXI7XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93SW5mbztcclxuICByZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcclxuICBjdWJlczogQ3ViZUVudHJ5W107XHJcbiAgZXZlbnRzOiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvY2F0aW9uczogTWFwUGluW107XHJcbiAgbG9nOiBMb2dbXTtcclxuICBydWxlcz86IHsgW25hbWU6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICBwYXJlbnQ/OiBDaGFpbjtcclxuICBjaGlsZHJlbj86IENoYWluW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDaGFpbiB7XHJcbiAgY29tcGxldGVkOiBib29sZWFuO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICBwYXJlbnQ/OiBDaGFpbjtcclxuICBjaGlsZHJlbj86IENoYWluW107XHJcbiAgcmVjaXBpZW50cz86IFJlY2lwaWVudFtdO1xyXG4gIGV2ZW50cz86IFNjaGVkdWxlZEV2ZW50W107XHJcbiAgbG9nOiBMb2dbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93SW5mbyB7XHJcbiAgbm9kZXM6IE5vZGVJbmZvW107XHJcbiAgY29ubmVjdG9yczogQ29ubmVjdG9ySW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBpZW50TW9kZWw8VCA9IGFueT4gZXh0ZW5kcyBIZWFkZXJNb2RlbDxUPiwgRG9jdW1lbnRNb2RlbDxUPiB7XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgYWN0aW9ucz86IHN0cmluZ1tdO1xyXG4gIGZ5aTogYm9vbGVhbjtcclxuICBvcmlnaW5JZD86IG51bWJlcjtcclxuICBlc2NhbGF0ZWQ/OiBib29sZWFuO1xyXG4gIHRhZ3M/OiBzdHJpbmdbXTtcclxuICBieUlkPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdG9ySW5mbyB7XHJcbiAgLy8gcmVjaXBpZW50IGlkXHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgdGltZT86IERhdGU7XHJcbiAgc291cmNlSWQ6IHN0cmluZztcclxuICB0YXJnZXRJZDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUluZm8ge1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgaWQ6IHN0cmluZztcclxuICAvKiogbm9kZSAqL1xyXG4gIHR5cGU6IHN0cmluZztcclxuICB0aW1lPzogRGF0ZTtcclxuICBlc3RpbWF0ZTogYm9vbGVhbjtcclxuICAvKiogc2Vjb25kcyAqL1xyXG4gIHN0YW5kYXJkVGltZT86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIExvZyB7XHJcbiAgcmVjaXBpZW50SWQ/OiBudW1iZXI7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgYnlJZD86IHN0cmluZztcclxuICBvcmlnaW5JZD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIG1vZGVsPzoge307XHJcbiAgdHlwZTogTG9nVHlwZTtcclxuICBub2RlSWQ/OiBzdHJpbmc7XHJcbiAgbm90ZT86IHN0cmluZztcclxuICBzdGF0ZT86IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICBzb3VyY2VJZD86IHN0cmluZztcclxuICB0YXJnZXRJZD86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgZmlsZUlkPzogbnVtYmVyO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTG9nVHlwZSA9ICdTdWJtaXQnIHwgJ0Rvd25sb2FkJyB8ICdTdGF0ZUNoYW5nZScgfCAnQWN0aW9uVGFrZW4nIHwgJ0NoZWNrSW4nIHwgJ0NoZWNrT3V0JyB8XHJcbiAgJ01vZGVsQ2hhbmdlJyB8ICdOb2RlJyB8ICdWaXJ0dWFsTm9kZScgfCAnTm9kZUp1bXAnIHwgJ0Nvbm5lY3RvcicgfCAnVmlydHVhbENvbm5lY3RvcicgfCAnRXNjYWxhdGlvbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudCB7XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHBlbmRpbmc6IGJvb2xlYW47XHJcbiAgZm9sZGVySWQ6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGVzdGltYXRlPzogYm9vbGVhbjtcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlZEV2ZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICBzdGFydGluZzogRGF0ZTtcclxuICBlbmRpbmc/OiBEYXRlO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGxvY2F0aW9uPzogTGF0TG5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwUGluIHtcclxuICBsb2NhdGlvbjogTGF0TG5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExhdExuZyB7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUVudHJ5IHtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgYXhlczogc3RyaW5nW107XHJcbiAgdmFsdWU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50IHtcclxuICBpZD86IG51bWJlcjtcclxuICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgYnlJZD86IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIGRlbGV0ZWQ/OiBib29sZWFuO1xyXG4gIGNoZWNrZWRPdXQ/OiBib29sZWFuO1xyXG4gIHByaXZhdGU/OiBib29sZWFuO1xyXG4gIGhvbGRpbmdJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnQge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgLyoqIGJhc2U2NCAqL1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICB2b3RlZD86IG51bWJlcjtcclxuICB2b3Rlcz86IG51bWJlcjtcclxuICBlZGl0ZWQ/OiBEYXRlO1xyXG4gIGRlbGV0ZWQ/OiBib29sZWFuO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVm90ZSB7XHJcbiAgYnlJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICB0aW1lOiBEYXRlO1xyXG4gIHZvdGVkPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVudFZlcnNpb24ge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XHJcbiAgbXV0ZWQ/OiBib29sZWFuO1xyXG4gIGRlbGV0ZWQ/OiBib29sZWFuO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJlYWQ/OiBib29sZWFuO1xyXG4gIHNlbnQ6IERhdGU7XHJcbiAgcmVjaXBpZW50SWQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTm90aWZpY2F0aW9uVHlwZSA9XHJcbiAgJ0NvbW1lbnRlZCcgfFxyXG4gICdDdWJlQW5vbWFseScgfFxyXG4gICdFc2NhbGF0ZWQnIHxcclxuICAnTGlrZWQnIHxcclxuICAnU3RhdGVDaGFuZ2VkJyB8XHJcbiAgJ051ZGdlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUge1xyXG4gIGhvbGlkYXlzOiBhbnk7XHJcbiAgdXRpbGl0aWVzOiBVdGlsaXR5W107XHJcbiAgZ3VpZGVzPzogR3VpZGVbXTtcclxuICB2aWV3czogVmlld1tdO1xyXG4gIHBob3RvPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgYnlOYW1lPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpbXBlcnNvbmF0aW5nPzogc3RyaW5nO1xyXG4gIGF2YWlsYWJsZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBieUdlbmRlcj86IEdlbmRlcjtcclxuICBzeXN0ZW06IGJvb2xlYW47XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXTtcclxuICBzdGF0ZXM6IFN0YXRlW107XHJcbiAgZm9sZGVyczogRm9sZGVyW107XHJcbiAgcmVwb3J0czogUmVwb3J0W107XHJcbiAgdHlwZXM6IFR5cGVbXTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIG5vZGVzOiBGbG93Tm9kZVtdO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgc291cmNlczogU291cmNlW107XHJcbiAgd2lkZ2V0czogV2lkZ2V0W107XHJcbiAgb3B0aW9uczogT3B0aW9ucztcclxuICBpbmJveDogSGVhZGVyTW9kZWxbXTtcclxuICBpbmJveENvdW50PzogbnVtYmVyO1xyXG4gIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdO1xyXG4gIG5vdGlmaWNhdGlvbnNDb3VudD86IG51bWJlcjtcclxuICByZWNlbnRzPzogSGVhZGVyTW9kZWxbXTtcclxuICBjb250YWN0czogQ29udGFjdFtdO1xyXG4gIGNvbnZlcnNhdGlvbnNDb3VudDogbnVtYmVyO1xyXG4gIGxpY2Vuc2U/OiBMaWNlbnNlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGVsZW1lbnRUZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGtleXM6IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZSB7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgYXNzaWduYWJsZT86IGJvb2xlYW47XHJcbiAgY29sdW1ucz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHkge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgb3B0aW9uczogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdCB7XHJcbiAgdmlzaXRlZD86IERhdGU7XHJcbiAgd2F0ZXJtYXJrPzogRGF0ZTtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBhY2NlcHRlZDogYm9vbGVhbjtcclxuICBpbWFnZT86IHN0cmluZztcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIGZvcmdvdHRlbj86IGJvb2xlYW47XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdCB7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBjb250YWN0SWQ6IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgLyoqIGJhc2U2NCAqL1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkSW5mbyB7XHJcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbD86IHN0cmluZztcclxuICBrZXk/OiBib29sZWFuO1xyXG4gIHR5cGU/OiBGaWVsZEtpbmQ7XHJcbiAgdmFsaWRhdGlvbnM/OiBWYWxpZGF0aW9uW107XHJcbiAgZmllbGRzPzogRmllbGRJbmZvW107XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIG1pbj86IG51bWJlcjtcclxuICBzb3VyY2U/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIHBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBpc0FycmF5PzogYm9vbGVhbjtcclxuICBpc09iamVjdD86IGJvb2xlYW47XHJcbiAgZGlhZ3JhbT86IGJvb2xlYW47XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaGludD86IHN0cmluZztcclxuICBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb24ge1xyXG4gIHR5cGU6IFZhbGlkYXRpb25UeXBlO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBtaW4/OiBudW1iZXI7XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIGV4cHJlc3Npb24/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGVudW0gVmFsaWRhdGlvblR5cGUge1xyXG4gIFJlcXVpcmVkID0gJ1JlcXVpcmVkJyxcclxuICBNaW4gPSAnTWluJyxcclxuICBNYXggPSAnTWF4JyxcclxuICBNaW5MZW5ndGggPSAnTWluTGVuZ3RoJyxcclxuICBNYXhMZW5ndGggPSAnTWF4TGVuZ3RoJyxcclxuICBQYXR0ZXJuID0gJ1BhdHRlcm4nLFxyXG4gIFJhbmdlID0gJ1JhbmdlJyxcclxuICBFbWFpbCA9ICdFbWFpbCdcclxufVxyXG5leHBvcnQgZW51bSBGaWVsZEtpbmQge1xyXG4gIFN0cmluZyA9ICdTdHJpbmcnLFxyXG4gIE51bWJlciA9ICdOdW1iZXInLFxyXG4gIFRpbWUgPSAnVGltZScsXHJcbiAgRGF0ZSA9ICdEYXRlJyxcclxuICBEYXRlVGltZSA9ICdEYXRlVGltZScsXHJcbiAgQ2hlY2tib3ggPSAnQ2hlY2tib3gnLFxyXG4gIEN1cnJlbmN5ID0gJ0N1cnJlbmN5JyxcclxuICBTZWxlY3QgPSAnU2VsZWN0JyxcclxuICBFbWFpbEFkZHJlc3MgPSAnRW1haWxBZGRyZXNzJyxcclxuICBIdG1sID0gJ0h0bWwnLFxyXG4gIFRleHQgPSAnVGV4dCcsXHJcbiAgUGFzc3dvcmQgPSAnUGFzc3dvcmQnLFxyXG4gIFBob25lTnVtYmVyID0gJ1Bob25lTnVtYmVyJyxcclxuICBGaWxlID0gJ0ZpbGUnLFxyXG4gIFVybCA9ICdVcmwnLFxyXG4gIFN3aXRjaCA9ICdTd2l0Y2gnLFxyXG4gIEFkZHJlc3MgPSAnQWRkcmVzcycsXHJcbiAgT2JqZWN0ID0gJ09iamVjdCcsXHJcbiAgRXhwcmVzc2lvbiA9ICdFeHByZXNzaW9uJyxcclxuICBEdXJhdGlvbiA9ICdEdXJhdGlvbicsXHJcbiAgQXV0b2NvbXBsZXRlID0gJ0F1dG9jb21wbGV0ZScsXHJcbiAgUGVyY2VudCA9IFwiUGVyY2VudFwiLFxyXG4gIERhdGVSYW5nZSA9IFwiRGF0ZVJhbmdlXCJcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgY29scz86IG51bWJlcjtcclxuICByb3dzPzogbnVtYmVyO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIGFyZ3VtZW50c1RlbXBsYXRlPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM6IGFueTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2Uge1xyXG4gIG1vZGU6IExpY2Vuc2VNb2RlO1xyXG4gIGV4cGlyYXRpb24/OiBEYXRlO1xyXG4gIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlRmlsdGVyIHtcclxuICBjdWJlPzogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9sZGVyIHtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNvdW50PzogbnVtYmVyO1xyXG4gIGNvbHVtbnM/OiBGb2xkZXJDb2x1bW5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlckNvbHVtbiB7XHJcbiAgbmFtZTogc3RyaW5nIHwgJ251bWJlcicgfCAnc3ViamVjdCcgfCAndmFsdWUnIHwgJ293bmVyJyB8ICdzZW5kZXInIHwgJ3JlY2VpdmVkJyB8ICdyZWNlaXZlZEFnbycgfCAncmVwbGllZCcgfCAnc3RhdGUnIHwgJ2lzc3VlZCcgfCAnaXNzdWVkQWdvJztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU/OiAnQm9vbGVhbicgfCAnRGF0ZScgfCAnRGVjaW1hbCcgfCAnU3RyaW5nJztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGljZW5zZU1vZGUgPVxyXG4gICdFdmFsdWF0aW9uJyB8XHJcbiAgJ1ZhbGlkJyB8XHJcbiAgJ0dyYWNlJyB8XHJcbiAgJ0ludmFsaWQnIHxcclxuICAnTGltaXQnIHxcclxuICAnRXhwaXJlZCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcclxuICBncmFudEFjY2Vzcz86IEdyYW50U2V0dGluZ3M7XHJcbiAgb3V0T2ZPZmZpY2U/OiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBOb3RpZmljYXRpb25zU2V0dGluZ3M7XHJcbiAgZW1haWxzPzogRW1haWxTZXR0aW5ncztcclxuICBndWlkZXM/OiBzdHJpbmdbXTtcclxuICBpbmJveFZpZXc/OiBEYXRlO1xyXG4gIG5vdGlmaWNhdGlvbnNWaWV3PzogRGF0ZTtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHcmFudFNldHRpbmdzIHtcclxuICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgdXNlcnM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaW1lbnRpb25zIHtcclxuICB3aWR0aDogbnVtYmVyO1xyXG4gIGhlaWdodDogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0XHJcbiAgaW50ZXJmYWNlIFJlcG9ydCB7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGZpZWxkcz86IEZpZWxkSW5mb1tdO1xyXG4gIGl0ZW1UZW1wbGF0ZT86IHN0cmluZztcclxuICBjb2x1bW5zOiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxuICBhcmd1bWVudHNUZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm0ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY3JlYXRhYmxlOiBib29sZWFuO1xyXG4gIGljb246IHN0cmluZztcclxuICBwb3NpdGlvbj86IFBvc2l0aW9uUG9saWN5O1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIHN0cnVjdHVyZT86IEZpZWxkSW5mb1tdO1xyXG4gIHdvcmtmbG93PzogV29ya2Zsb3c7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgUG9zaXRpb25Qb2xpY3kgPSAnUmVxdWlyZScgfCAnQXNrJyB8ICdOb25lJztcclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvdyB7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3Rvck1vZGVsW107XHJcbiAgbm9kZXM6IE5vZGVNb2RlbFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckluZm8ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgZ2VuZGVyPzogR2VuZGVyO1xyXG4gIHBpY3R1cmVVcmw/OiBzdHJpbmc7XHJcbiAgbmljaz86IHN0cmluZztcclxuICBwaG9uZU51bWJlcj86IHN0cmluZztcclxuICBlbWFpbD86IHN0cmluZztcclxuICBsYXN0QWN0aXZlPzogRGF0ZTtcclxuICBtb2RlPzogQXZhaWxhYmlsaXR5U3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtb2RlPzogJ01lbnUnIHwgJ0VhZ2VyJyB8ICdQcml2YXRlJztcclxuICBzdGVwczogR3VpZGVTdGVwW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHdWlkZVN0ZXAge1xyXG4gIGV4ZWN1dGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdG9yPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBuYXZpZ2F0ZT86IHN0cmluZztcclxuICBwb3NpdGlvbj86ICdBYm92ZScgfCAnRW5kJyB8ICdTdGFydCcgfCAnQmVsb3cnO1xyXG59XHJcbi8vZW51bSBHdWlkZVN0ZXBQb2xpY3kgeyB9XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmxvd05vZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHN0eWxlPzogc3RyaW5nO1xyXG4gIHBhbGV0dGU/OiBzdHJpbmc7XHJcbiAgc2hhcGU6IFNoYXBlTW9kZWwgfCBGbG93U2hhcGVNb2RlbCB8IEJhc2ljU2hhcGVNb2RlbCB8IEltYWdlTW9kZWwgfCBQYXRoTW9kZWwgfCBUZXh0TW9kZWwgfCBCcG1uU2hhcGVNb2RlbCB8IE5hdGl2ZU1vZGVsO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXZhaWxhYmlsaXR5U3RhdGUgPVxyXG4gICdPZmZsaW5lJyB8XHJcbiAgJ09ubGluZScgfFxyXG4gICdPdXRPZk9mZmljZScgfFxyXG4gICdWYWNhdGlvbicgfCAnV29ya2luZ0hvbWUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIHZpZXdzOiBDdWJlVmlld1tdO1xyXG4gIGF4ZXM6IEN1YmVBeGlzW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgWUF4aXMge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiAnTm9uZScgfCAnTnVtYmVyJyB8ICdDdXJyZW5jeSc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXgge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBhY2N1bXVsYXRlPzogYm9vbGVhbjtcclxuICB0aXRsZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUF4aXMge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRhdGFUeXBlOiBzdHJpbmc7XHJcbiAgY29tYmluYXRpb24/OiBib29sZWFuO1xyXG4gIHNlbGVjdGlvbk1vZGU/OiAnU2luZ2xlJyB8ICdQYXR0ZXJuJyB8ICdNdWx0aXBsZScgfCAnU2VhcmNoJyB8ICdOb25lJztcclxuICBkZXNjZW5kZW50T2Y/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgQXhpc1NlbGVjdGlvbk1vZGUgPVxyXG4gICdOb25lJyB8XHJcbiAgJ1NpbmdsZScgfFxyXG4gICdNdWx0aXBsZScgfFxyXG4gICdTZWFyY2gnIHxcclxuICAnUGF0dGVybic7XHJcblxyXG5leHBvcnQgdHlwZSBBeGlzVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG5leHBvcnQgaW50ZXJmYWNlIERhdGVSYW5nZSB7XHJcbiAgZnJvbTogRGF0ZTtcclxuICB0bzogRGF0ZTtcclxufVxyXG5leHBvcnQgdHlwZSBMb2NhbGl6ZWRTdHJpbmcgPSB7IFtjdWx0dXJlOiBzdHJpbmddOiBzdHJpbmcgfSB8IHN0cmluZztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXhlc01hcCB7XHJcbiAgW2F4aXM6IHN0cmluZ106IEF4aXNWYWx1ZTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVWaWV3IHtcclxuICB4QXhpczogc3RyaW5nW107XHJcbiAgc2VyaWVzPzogc3RyaW5nW107XHJcbiAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZTogVmlld1R5cGU7XHJcbiAgY2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIGluZGljZXNDaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBWaWV3VHlwZSA9ICdTcHJlYWRzaGVldCcgfFxyXG4gICdDaGFydCcgfCAnUGl2b3QnIHwgJ0dyaWQnO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIENoYXJ0VHlwZSA9XHJcbiAgJ1BpZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBsaW5lIHNlcmllcy4gKi9cclxuICAnTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBDb2x1bW4gc2VyaWVzLiAqL1xyXG4gICdDb2x1bW4nIHxcclxuICAvKiogIERlZmluZSB0aGUgQXJlYSBzZXJpZXMuICovXHJcbiAgJ0FyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgQmFyIHNlcmllcy4gKi9cclxuICAnQmFyJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQ29sdW1uIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdDb2x1bW4nIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdBcmVhIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nTGluZSBzZXJpZXMuICovXHJcbiAgJ1N0YWNraW5nTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0JhciBzZXJpZXMuICovXHJcbiAgJ1N0YWNraW5nQmFyJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBsaW5lIHNlcmllcy4gKi9cclxuICAnU3RlcExpbmUnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGFyZWEgc2VyaWVzLiAqL1xyXG4gICdTdGVwQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwYXJlYSBzZXJpZXMuICovXHJcbiAgJ1NwbGluZUFyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU2NhdHRlciBzZXJpZXMuICovXHJcbiAgJ1NjYXR0ZXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3BsaW5lIHNlcmllcy4gKi9cclxuICAnU3BsaW5lJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgU3RhY2tpbmdDb2x1bW4xMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nQ29sdW1uMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgU3RhY2tpbmdCYXIxMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nQmFyMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgU3RhY2tpbmdMaW5lMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0xpbmUxMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0FyZWExMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nQXJlYTEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFJhbmdlQ29sdW1uIFNlcmllcyAqL1xyXG4gICdSYW5nZUNvbHVtbicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFdhdGVyZmFsbCBTZXJpZXMgKi9cclxuICAnV2F0ZXJmYWxsJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUmFuZ2VBcmVhIFNlcmllcyAqL1xyXG4gICdSYW5nZUFyZWEnIHxcclxuICAvKiogRGVmaW5lIHRoZSBCdWJibGUgU2VyaWVzICovXHJcbiAgJ0J1YmJsZScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIENhbmRsZSBTZXJpZXMgKi9cclxuICAnUG9sYXInIHxcclxuICAvKiogRGVmaW5lIHRoZSByYWRhciBzZXJpZXMgKi9cclxuICAnUmFkYXInIHxcclxuICAvKiogRGVmaW5lIHRoZSBQYXJldG8gc2VyaWVzICovXHJcbiAgJ1BhcmV0bycgfCAnRG91Z2hudXQnIHwgJ0hhbGZEb3VnaG51dCcgfFxyXG4gICdGdW5uZWwnIHwgJ1B5cmFtaWQnIHxcclxuICAnU3RhY2tpbmdTdGVwQXJlYSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3V0T2ZPZmZpY2VTZXR0aW5ncyB7XHJcbiAgZnJvbT86IERhdGU7XHJcbiAgdG8/OiBEYXRlO1xyXG4gIGFjdGl2ZTogYm9vbGVhbjtcclxuICBzdWJzdGl0dWVJZD86IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgTm90aWZpY2F0aW9uc1NldHRpbmdzIHtcclxuICBzb3VuZD86IGJvb2xlYW47XHJcbiAgYWN0aXZlPzogYm9vbGVhbjtcclxuICBteVN0YXRlQ2hhbmdlZD86IGJvb2xlYW47XHJcbiAgYW55U3RhdGVDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBhbnlDb21tZW50PzogYm9vbGVhbjtcclxuICBteUNvbW1lbnQ/OiBib29sZWFuO1xyXG4gIGxpa2VkPzogYm9vbGVhbjtcclxuICBjdWJlQW5vbWFseT86IGJvb2xlYW47XHJcbiAgdXBjb21pbmdFdmVudHM/OiBib29sZWFuO1xyXG59XHJcbmludGVyZmFjZSBFbWFpbFNldHRpbmdzIHtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIG1haWxzPzogYm9vbGVhbjtcclxuICBjb252ZXJzYXRpb25zPzogYm9vbGVhbjtcclxuICBub3RpZmljYXRpb25zPzogYm9vbGVhbjtcclxuICBldmVudHM/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|