@bizdoc/core 1.16.13 → 1.16.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bizdoc-schema.json +6 -0
- package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +5 -7
- package/esm2020/lib/admin/configuration-designer/declarations.mjs +17 -4
- package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +31 -27
- package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +12 -9
- package/esm2020/lib/admin/configuration-designer/designer.base.mjs +55 -45
- package/esm2020/lib/admin/configuration-designer/designer.component.mjs +31 -6
- package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -5
- package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +5 -5
- package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +1 -1
- package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +13 -40
- package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +5 -4
- package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +15 -16
- package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +7 -6
- package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +11 -8
- package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +17 -18
- package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +27 -14
- package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +6 -7
- package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +5 -4
- package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +10 -7
- package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +6 -5
- package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +24 -10
- package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +3 -3
- package/esm2020/lib/admin/form/designer/designer.component.mjs +3 -4
- package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
- package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +2 -1
- package/esm2020/lib/core/functions.mjs +3 -2
- package/esm2020/lib/core/layout/layout.component.mjs +10 -12
- package/esm2020/lib/core/translations.mjs +12 -2
- package/esm2020/lib/dashboard/widget-item.component.mjs +3 -4
- package/esm2020/lib/reports/arguments-component.mjs +3 -3
- package/fesm2015/bizdoc-core.mjs +337 -280
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +333 -277
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/configuration-designer/declarations.d.ts +10 -3
- package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -3
- package/lib/admin/configuration-designer/designer.base.d.ts +17 -16
- package/lib/admin/configuration-designer/designer.component.d.ts +2 -1
- package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +1 -1
- package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +2 -2
- package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +1 -4
- package/lib/admin/configuration-designer/elements/cube.component.d.ts +2 -11
- package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +2 -3
- package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +2 -2
- package/lib/admin/configuration-designer/elements/form.component.d.ts +8 -6
- package/lib/admin/configuration-designer/elements/guide.component.d.ts +2 -3
- package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +1 -1
- package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +2 -2
- package/lib/admin/configuration-designer/elements/role.component.d.ts +2 -0
- package/lib/admin/configuration-designer/elements/type.component.d.ts +11 -0
- package/lib/admin/form/designer/designer.component.d.ts +0 -1
- package/lib/core/layout/layout.component.d.ts +3 -3
- package/lib/core/translations.d.ts +11 -1
- package/package.json +1 -1
@@ -51,6 +51,9 @@ export class DesignerCubeFilterComponent {
|
|
51
51
|
descendentOf = axis.descendentOf;
|
52
52
|
}
|
53
53
|
}
|
54
|
+
if (!this.sources[a.name] && a.selectionMode !== 'Pattern') {
|
55
|
+
this.sources[a.name] = this._service.values(this.cube.name, a.name).pipe(map(mapToArray));
|
56
|
+
}
|
54
57
|
const ctrl = this._fb.control(this);
|
55
58
|
this.form.addControl(a.name, ctrl, { emitEvent: false });
|
56
59
|
ctrl.valueChanges.pipe(filter(() => ctrl.valid), debounceTime(200), takeUntil(this._destroy)).subscribe(v => {
|
@@ -58,17 +61,12 @@ export class DesignerCubeFilterComponent {
|
|
58
61
|
for (let axis of this._decendents[a.name]) {
|
59
62
|
let deps = {};
|
60
63
|
for (let name of this._ancestors[axis])
|
61
|
-
deps[name] = this.form.get(name).
|
64
|
+
deps[name] = this.form.get(name).value;
|
62
65
|
cleanup(deps);
|
63
66
|
this.sources[axis] = this._service.values(this.cube.name, axis, deps).
|
64
67
|
pipe(map(mapToArray));
|
65
68
|
}
|
66
69
|
});
|
67
|
-
this.cube?.axes?.forEach(a => {
|
68
|
-
if (!this.sources[a.name] && a.selectionMode !== 'Pattern') {
|
69
|
-
this.sources[a.name] = this._service.values(this.cube.name, a.name).pipe(map(mapToArray));
|
70
|
-
}
|
71
|
-
});
|
72
70
|
});
|
73
71
|
this.form.updateValueAndValidity({ emitEvent: false });
|
74
72
|
}
|
@@ -93,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
93
91
|
}], form: [{
|
94
92
|
type: Input
|
95
93
|
}] } });
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVExRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLDJCQUEyQjtJQStDdEMsa0JBQWtCO0lBQ2xCLFlBQTZCLFFBQXFCLEVBQ3hDLElBQWlCLEVBQ1IsR0FBZ0I7UUFGTixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDUixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBakQxQixZQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFHN0IsWUFBTyxHQUEyRCxFQUFFLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxFQUFrQyxDQUFDO1FBQ2pELGVBQVUsR0FBRyxFQUFrQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFD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QU52QyxTQUFTOytCQUNFLDZCQUE2QjtzSkFPOUIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjbGVhbnVwLCBtYXBUb0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQVhJU19WQUxVRV9QQVRURVJOLCBDdWJlU2VydmljZSB9IGZyb20gJy4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIEVsZW1lbnRNb2RlbCB9IGZyb20gJy4vZGVjbGFyYXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWRlc2lnbmVyLWN1YmUtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiBmaWx0ZXIgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIERlc2lnbmVyQ3ViZUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICByZWFkb25seSBwYXR0ZXJuID0gQVhJU19WQUxVRV9QQVRURVJOO1xyXG4gIEBJbnB1dCgpIGN1YmUhOiBFbGVtZW50TW9kZWw7XHJcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWNlbmRlbnRzID0ge30gYXMgeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9hbmNlc3RvcnMgPSB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZvckVhY2goayA9PiB0aGlzLmZvcm0ucmVtb3ZlQ29udHJvbChrLCB7IGVtaXRFdmVudDogZmFsc2UgfSkpXHJcbiAgICB0aGlzLmN1YmUuYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBpZiAoYS5oaWRkZW4gfHwgYS5zZWxlY3Rpb25Nb2RlID09PSAnTm9uZScpIHJldHVybjtcclxuICAgICAgbGV0IHsgZGVzY2VuZGVudE9mIH0gPSBhO1xyXG4gICAgICBpZiAoZGVzY2VuZGVudE9mKSB7XHJcbiAgICAgICAgbGV0IGFuY2VzdG9ycyA9IHRoaXMuX2FuY2VzdG9yc1thLm5hbWVdID0gW107XHJcbiAgICAgICAgd2hpbGUgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgICAgbGV0IGF4aXMgPSB0aGlzLmN1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSBkZXNjZW5kZW50T2YpO1xyXG4gICAgICAgICAgYW5jZXN0b3JzLnB1c2goYXhpcy5uYW1lKTtcclxuICAgICAgICAgIGlmIChhLnNlbGVjdGlvbk1vZGUgIT09ICdQYXR0ZXJuJykge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSkgdGhpcy5fZGVjZW5kZW50c1tkZXNjZW5kZW50T2ZdID0gW2EubmFtZV07XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5fZGVjZW5kZW50c1tkZXNjZW5kZW50T2ZdLnB1c2goYS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRlc2NlbmRlbnRPZiA9IGF4aXMuZGVzY2VuZGVudE9mO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjdHJsID0gdGhpcy5fZmIuY29udHJvbCh0aGlzKTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjdHJsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIGN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKCgpID0+IGN0cmwudmFsaWQpLCBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGZvciAobGV0IGF4aXMgb2YgdGhpcy5fZGVjZW5kZW50c1thLm5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGRlcHMgPSB7fTtcclxuICAgICAgICAgICAgICBmb3IgKGxldCBuYW1lIG9mIHRoaXMuX2FuY2VzdG9yc1theGlzXSlcclxuICAgICAgICAgICAgICAgIGRlcHNbbmFtZV0gPSB0aGlzLmZvcm0uZ2V0KG5hbWUpLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgY2xlYW51cChkZXBzKTtcclxuICAgICAgICAgICAgICB0aGlzLnNvdXJjZXNbYXhpc10gPSB0aGlzLl9zZXJ2aWNlLnZhbHVlcyh0aGlzLmN1YmUubmFtZSwgYXhpcywgZGVwcykuXHJcbiAgICAgICAgICAgICAgICBwaXBlKG1hcChtYXBUb0FycmF5KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5jdWJlPy5heGVzPy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zb3VyY2VzW2EubmFtZV0gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgIHRoaXMuc291cmNlc1thLm5hbWVdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5jdWJlLm5hbWUsIGEubmFtZSkucGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgLyoqIGZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgfVxyXG4gIGRpc3BsYXkoa2V5VmFsdWUpIHtcclxuICAgIHJldHVybiBrZXlWYWx1ZSA/IGtleVZhbHVlLnZhbHVlIDogbnVsbDtcclxuICB9XHJcbiAgY2hhbmdlKGF4aXM6IHN0cmluZywgZXZ0OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbYXhpc10uc2V0VmFsdWUoZXZ0Lm9wdGlvbi52YWx1ZS5rZXkpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aDIgY2xhc3M9XCJtYXQtdGl0bGVcIj57eydGaWx0ZXJzJ3x0cmFuc2xhdGV9fTwvaDI+XHJcbjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICA8bWF0LWZvcm0tZmllbGQgKm5nRm9yPVwibGV0IGEgb2YgY3ViZS5heGVzXCIgW25nU3dpdGNoXT1cImEuc2VsZWN0aW9uTW9kZVwiIFthdHRyLmRhdGEtaGVscF09XCInYXhpcy0nK2EubmFtZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1BhdHRlcm4nXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiIFthdXRvZm9jdXNdXHJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLmludmFsaWRcIj57eydTaW1wbGVQYXR0ZXJuRXJyJyB8dHJhbnNsYXRlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NlYXJjaCdcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJzZWdtZW50XCIgI2lucFxyXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIC8+XHJcbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZWdtZW50IFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImNoYW5nZShhLm5hbWUsICRldmVudClcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiBzb3VyY2VzW2EubmFtZV0gfCBhc3luYyB8IGZpbHRlciA6ICd2YWx1ZScgOiBpbnAudmFsdWUgfCBzbGljZTowOjUwXCIgW3ZhbHVlXT1cInJcIj57e3IudmFsdWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImlucC52YWx1ZVwiIG1hdFN1ZmZpeCBhcmlhLWxhYmVsPVwiXCIgKGNsaWNrKT1cImlucC52YWx1ZSA9ICcnOyBmb3JtLmNvbnRyb2xzW2EubmFtZV0uc2V0VmFsdWUobnVsbClcIj48bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLmludmFsaWRcIj57eydTaW1wbGVQYXR0ZXJuRXJyJyB8dHJhbnNsYXRlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIiBbcGxhY2Vob2xkZXJdPVwiYS50aXRsZXx8YS5uYW1lXCIgW211bHRpcGxlXT1cImEuc2VsZWN0aW9uTW9kZSA9PT0gJ011bHRpcGxlJ1wiICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiYS5zZWxlY3Rpb25Nb2RlICE9PSAnTXVsdGlwbGUnXCI+e3snQWxsJyB8IHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiBzb3VyY2VzW2EubmFtZV0gfCBhc3luY1wiIFt2YWx1ZV09XCJyLmtleVwiPnt7ci52YWx1ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVExRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLDJCQUEyQjtJQTZDdEMsa0JBQWtCO0lBQ2xCLFlBQTZCLFFBQXFCLEVBQ3hDLElBQWlCLEVBQ1IsR0FBZ0I7UUFGTixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDUixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBL0MxQixZQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFHN0IsWUFBTyxHQUEyRCxFQUFFLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxFQUFrQyxDQUFDO1FBQ2pELGVBQVUsR0FBRyxFQUFrQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFD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ImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgY2xlYW51cCwgbWFwVG9BcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFYSVNfVkFMVUVfUEFUVEVSTiwgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwgfSBmcm9tICcuL2RlY2xhcmF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1YmUtYXhlcy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1YmUtYXhlcy1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBEZXNpZ25lckN1YmVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgcGF0dGVybiA9IEFYSVNfVkFMVUVfUEFUVEVSTjtcclxuICBASW5wdXQoKSBjdWJlITogRWxlbWVudE1vZGVsO1xyXG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbYXhpczogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVjZW5kZW50cyA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5jZXN0b3JzID0ge30gYXMgeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGsgPT4gdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woaywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKVxyXG4gICAgdGhpcy5jdWJlLmF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgaWYgKGEuaGlkZGVuIHx8IGEuc2VsZWN0aW9uTW9kZSA9PT0gJ05vbmUnKSByZXR1cm47XHJcbiAgICAgIGxldCB7IGRlc2NlbmRlbnRPZiB9ID0gYTtcclxuICAgICAgaWYgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgIGxldCBhbmNlc3RvcnMgPSB0aGlzLl9hbmNlc3RvcnNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICAgIHdoaWxlIChkZXNjZW5kZW50T2YpIHtcclxuICAgICAgICAgIGxldCBheGlzID0gdGhpcy5jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gZGVzY2VuZGVudE9mKTtcclxuICAgICAgICAgIGFuY2VzdG9ycy5wdXNoKGF4aXMubmFtZSk7XHJcbiAgICAgICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kZWNlbmRlbnRzW2Rlc2NlbmRlbnRPZl0pIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSA9IFthLm5hbWVdO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXS5wdXNoKGEubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZXNjZW5kZW50T2YgPSBheGlzLmRlc2NlbmRlbnRPZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNvdXJjZXNbYS5uYW1lXSAmJiBhLnNlbGVjdGlvbk1vZGUgIT09ICdQYXR0ZXJuJykge1xyXG4gICAgICAgIHRoaXMuc291cmNlc1thLm5hbWVdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5jdWJlLm5hbWUsIGEubmFtZSkucGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLl9mYi5jb250cm9sKHRoaXMpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhLm5hbWUsIGN0cmwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgY3RybC52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIoKCkgPT4gY3RybC52YWxpZCksIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX2RlY2VuZGVudHNbYS5uYW1lXSlcclxuICAgICAgICAgICAgZm9yIChsZXQgYXhpcyBvZiB0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pIHtcclxuICAgICAgICAgICAgICBsZXQgZGVwcyA9IHt9O1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IG5hbWUgb2YgdGhpcy5fYW5jZXN0b3JzW2F4aXNdKVxyXG4gICAgICAgICAgICAgICAgZGVwc1tuYW1lXSA9ICh0aGlzLmZvcm0uZ2V0KG5hbWUpIGFzIEZvcm1Db250cm9sKS52YWx1ZTtcclxuICAgICAgICAgICAgICBjbGVhbnVwKGRlcHMpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc291cmNlc1theGlzXSA9IHRoaXMuX3NlcnZpY2UudmFsdWVzKHRoaXMuY3ViZS5uYW1lLCBheGlzLCBkZXBzKS5cclxuICAgICAgICAgICAgICAgIHBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIC8qKiBmaWx0ZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gIH1cclxuICBkaXNwbGF5KGtleVZhbHVlKSB7XHJcbiAgICByZXR1cm4ga2V5VmFsdWUgPyBrZXlWYWx1ZS52YWx1ZSA6IG51bGw7XHJcbiAgfVxyXG4gIGNoYW5nZShheGlzOiBzdHJpbmcsIGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXNdLnNldFZhbHVlKGV2dC5vcHRpb24udmFsdWUua2V5KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGgyIGNsYXNzPVwibWF0LXRpdGxlXCI+e3snRmlsdGVycyd8dHJhbnNsYXRlfX08L2gyPlxyXG48ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIGN1YmUuYXhlc1wiIFtuZ1N3aXRjaF09XCJhLnNlbGVjdGlvbk1vZGVcIiBbYXR0ci5kYXRhLWhlbHBdPVwiJ2F4aXMtJythLm5hbWVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidQYXR0ZXJuJ1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIiBbYXV0b2ZvY3VzXVxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIiBbcGxhY2Vob2xkZXJdPVwiYS50aXRsZXx8YS5uYW1lXCIgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snU2ltcGxlUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTZWFyY2gnXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VnbWVudFwiICNpbnBcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2VnbWVudCBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoYS5uYW1lLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmMgfCBmaWx0ZXIgOiAndmFsdWUnIDogaW5wLnZhbHVlIHwgc2xpY2U6MDo1MFwiIFt2YWx1ZV09XCJyXCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbnAudmFsdWVcIiBtYXRTdWZmaXggYXJpYS1sYWJlbD1cIlwiIChjbGljayk9XCJpbnAudmFsdWUgPSAnJzsgZm9ybS5jb250cm9sc1thLm5hbWVdLnNldFZhbHVlKG51bGwpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snU2ltcGxlUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIFttdWx0aXBsZV09XCJhLnNlbGVjdGlvbk1vZGUgPT09ICdNdWx0aXBsZSdcIiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImEuc2VsZWN0aW9uTW9kZSAhPT0gJ011bHRpcGxlJ1wiPnt7J0FsbCcgfCB0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmNcIiBbdmFsdWVdPVwici5rZXlcIj57e3IudmFsdWV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj5cclxuIl19
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Injector } from "@angular/core";
|
2
2
|
import { isString } from "../../core/functions";
|
3
|
-
import { Subject } from "rxjs";
|
3
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
4
4
|
export const FAMILY_SVG = {
|
5
5
|
"Azure": `<svg width="34" height="34" viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
|
6
6
|
<defs>
|
@@ -67,6 +67,18 @@ export const FAMILY_SVG = {
|
|
67
67
|
<path d="M 215.401 75.194 C 215.429 75.258 215.456 75.322 215.48 75.388 C 215.51 75.322 215.534 75.253 215.564 75.19 C 215.589 75.124 215.618 75.066 215.65 75.004 L 216.84 72.781 C 216.855 72.752 216.868 72.73 216.884 72.717 C 216.901 72.697 216.921 72.685 216.939 72.678 C 216.956 72.669 216.98 72.668 217.003 72.665 C 217.023 72.663 217.057 72.662 217.089 72.662 L 217.653 72.662 L 217.653 76.676 L 216.994 76.676 L 216.994 74.082 C 216.994 74.033 216.995 73.98 216.999 73.926 C 217.002 73.866 217.005 73.809 217.011 73.751 L 215.799 76.026 C 215.77 76.075 215.734 76.117 215.689 76.146 C 215.646 76.175 215.594 76.187 215.534 76.187 L 215.433 76.187 C 215.373 76.187 215.319 76.175 215.275 76.146 C 215.233 76.117 215.195 76.075 215.165 76.026 L 213.941 73.742 C 213.947 73.803 213.95 73.861 213.953 73.92 C 213.957 73.978 213.958 74.032 213.958 74.082 L 213.958 76.676 L 213.299 76.676 L 213.299 72.662 L 213.866 72.662 C 213.899 72.662 213.924 72.663 213.95 72.665 C 213.974 72.668 213.992 72.669 214.015 72.678 C 214.035 72.685 214.052 72.697 214.067 72.717 C 214.089 72.73 214.103 72.752 214.116 72.781 L 215.314 75.009 C 215.348 75.068 215.375 75.133 215.401 75.194 Z" fill="#000"/>
|
68
68
|
</g>
|
69
69
|
</g>
|
70
|
+
</svg>`,
|
71
|
+
'Active Directory': `<svg viewBox="0 0 954.1 158.2" height="38" xmlns="http://www.w3.org/2000/svg">
|
72
|
+
<defs></defs>
|
73
|
+
<style>.st0{fill:#00aaf2}</style>
|
74
|
+
<g id="Layer_2_1_" transform="translate(0 -33.561)">
|
75
|
+
<g id="Layer_1-2">
|
76
|
+
<path id="path6" class="st0" d="M158.6 154.2v33.3c0 3.9-1.2 4.7-4.9 4.1-24.8-3.7-49.9-7.1-74.9-10.6-4.5-.6-6.1-2.2-6.1-7.1.4-17.7.2-35.5 0-53.4 0-3.9 1.2-5.1 5.1-5.1 25.6.2 50.8.2 75.9.2 4.1 0 5.1 1.6 5.1 5.3-.4 11.2-.2 22.2-.2 33.3z" transform="matrix(1, 0, 0, 1, 58.678164, 33.659804)"></path>
|
77
|
+
<path id="path8" class="st0" d="M116.1 109.2c-12.6 0-25.2-.2-37.8 0-3.9 0-5.5-.8-5.5-5.3.2-18.1.2-35.9 0-53.8 0-3.5 1.2-4.7 4.5-5.3 25.8-3.7 51.6-7.3 77.4-11.2 4.5-.6 3.7 2.4 3.7 4.9 0 16 .2 32.3 0 48.3 0 5.9-.2 11.8 0 17.7.2 3.7-1.2 4.7-4.7 4.7-12.4-.2-25 0-37.6 0z" transform="matrix(1, 0, 0, 1, 58.678164, 33.659804)"></path>
|
78
|
+
<path id="path10" class="st0" d="M32.7 115.9h28.2c3 0 4.3 1 4.3 4.1v55.6c0 3.2-1.4 3.5-4.3 3.2-18.7-2.8-37.4-5.5-56-8.1-3.7-.6-4.9-1.8-4.9-5.7.2-14.8.2-29.6 0-44.7 0-3.7 1-4.7 4.7-4.7 9.5.3 18.6.3 28 .3z" transform="matrix(1, 0, 0, 1, 58.678164, 33.659804)"></path>
|
79
|
+
<path id="path12" class="st0" d="M32.7 109.2H4.9c-3.5 0-4.7-1.2-4.7-4.9.2-14.6.2-29.2 0-43.9 0-3.5 1-4.7 4.7-5.3 18.7-2.4 37.4-5.1 56-8.1 4.3-.6 4.7.8 4.7 4.3v53.2c0 3.9-1.6 4.5-5.1 4.5-9.3 0-18.7.2-27.8.2z" transform="matrix(1, 0, 0, 1, 58.678164, 33.659804)"></path>
|
80
|
+
</g>
|
81
|
+
</g>
|
70
82
|
</svg>`
|
71
83
|
};
|
72
84
|
/** */
|
@@ -76,12 +88,13 @@ export class DesignerRef {
|
|
76
88
|
this._element = _element;
|
77
89
|
this.mode = mode;
|
78
90
|
this._unlock$ = new Subject();
|
79
|
-
this._state$ = new
|
91
|
+
this._state$ = new BehaviorSubject(null);
|
80
92
|
}
|
81
93
|
get designer() { return this._designer; }
|
82
94
|
get model() { return this._element; }
|
83
95
|
get unlock() { return this._unlock$.asObservable(); }
|
84
|
-
get state() { return this._state$.
|
96
|
+
get state() { return this._state$.value; }
|
97
|
+
set state(val) { this._state$.next(val); }
|
85
98
|
create(element, template) {
|
86
99
|
const ref = new DesignerRef(this._designer, element, 'widget');
|
87
100
|
const injector = Injector.create([{
|
@@ -113,4 +126,4 @@ export function programName(name) {
|
|
113
126
|
replace(NAME_CHAR, (c, i) => (i > 0 && name.charAt(i - 1) !== '-' ? '-' : '') + c.toLowerCase()).
|
114
127
|
replace(NON_NAME_CHAR, '_');
|
115
128
|
}
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixPQUFPLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQko7SUFDTCxLQUFLLEVBQUU7Ozs7Ozs7O09BUUY7SUFDTCxLQUFLLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztPQWVGO0lBQ0wsVUFBVSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCUDtDQUNOLENBQUM7QUFDRixNQUFNO0FBQ04sTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFBb0IsU0FBd0IsRUFDbEMsUUFBc0IsRUFDdkIsSUFBZ0I7UUFGTCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUp6QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNsQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUdBLENBQUM7SUFDOUIsSUFBSSxRQUFRLEtBQW1CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxLQUFLLEtBQXFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckQsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxPQUFvQixFQUFFLFFBQWlCO1FBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBdUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUc7YUFDcEMsQ0FBQyxFQUFHLElBQUksQ0FBQyxRQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLE9BQXdCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM3QyxPQUF3QixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDOUMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBUUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFxQjtJQUN6QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFDRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQXNCO0lBQzVDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDcEIsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLFNBQVMsRUFDekIsYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUM1Qjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVk7SUFDdEMsT0FBTyxJQUFJO1FBQ1QsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDakIsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBDdWJlRmlsdGVyLCBGaWVsZEluZm8sIEZvbGRlckNvbHVtbiwgR3VpZGVTdGVwLCBQb3NpdGlvblBvbGljeSwgVmlld1R5cGUgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmV4cG9ydCBjb25zdCBGQU1JTFlfU1ZHID0ge1xyXG4gIFwiQXp1cmVcIjogYDxzdmcgd2lkdGg9XCIzNFwiIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCA5NiA5NlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgIDxkZWZzPlxyXG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImUzOTljMTlmLWI2OGYtNDI5ZC1iMTc2LTE4YzIxMTdmZjczY1wiIHgxPVwiLTEwMzIuMTcyXCIgeDI9XCItMTA1OS4yMTNcIiB5MT1cIjE0NS4zMTJcIiB5Mj1cIjY1LjQyNlwiIGdyYWRpZW50VHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDEwNzUgMTU4KVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiMxMTRhOGJcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLWNvbG9yPVwiIzA2NjliY1wiLz5cclxuICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImFjMmE2ZmMyLWNhNDgtNDMyNy05YTNjLWQ0ZGNjMzI1NmUxNVwiIHgxPVwiLTEwMjMuNzI1XCIgeDI9XCItMTAyOS45OFwiIHkxPVwiMTA4LjA4M1wiIHkyPVwiMTA1Ljk2OFwiIGdyYWRpZW50VHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDEwNzUgMTU4KVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1vcGFjaXR5PVwiLjNcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIi4wNzFcIiBzdG9wLW9wYWNpdHk9XCIuMlwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiLjMyMVwiIHN0b3Atb3BhY2l0eT1cIi4xXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIuNjIzXCIgc3RvcC1vcGFjaXR5PVwiLjA1XCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1vcGFjaXR5PVwiMFwiLz5cclxuICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImE3ZmVlOTcwLWE3ODQtNGJiMS1hZjhkLTYzZDE4ZTVmN2RiOVwiIHgxPVwiLTEwMjcuMTY1XCIgeDI9XCItOTk3LjQ4MlwiIHkxPVwiMTQ3LjY0MlwiIHkyPVwiNjguNTYxXCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLWNvbG9yPVwiIzNjY2JmNFwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMjg5MmRmXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICA8L2RlZnM+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNlMzk5YzE5Zi1iNjhmLTQyOWQtYjE3Ni0xOGMyMTE3ZmY3M2MpXCIgZD1cIk0zMy4zMzggNi41NDRoMjYuMDM4bC0yNy4wMyA4MC4wODdhNC4xNTIgNC4xNTIgMCAwIDEtMy45MzMgMi44MjRIOC4xNDlhNC4xNDUgNC4xNDUgMCAwIDEtMy45MjgtNS40N0wyOS40MDQgOS4zNjhhNC4xNTIgNC4xNTIgMCAwIDEgMy45MzQtMi44MjV6XCIvPlxyXG4gICAgPHBhdGggZmlsbD1cIiMwMDc4ZDRcIiBkPVwiTTcxLjE3NSA2MC4yNjFoLTQxLjI5YTEuOTExIDEuOTExIDAgMCAwLTEuMzA1IDMuMzA5bDI2LjUzMiAyNC43NjRhNC4xNzEgNC4xNzEgMCAwIDAgMi44NDYgMS4xMjFoMjMuMzh6XCIvPlxyXG4gICAgPHBhdGggZmlsbD1cInVybCgjYWMyYTZmYzItY2E0OC00MzI3LTlhM2MtZDRkY2MzMjU2ZTE1KVwiIGQ9XCJNMzMuMzM4IDYuNTQ0YTQuMTE4IDQuMTE4IDAgMCAwLTMuOTQzIDIuODc5TDQuMjUyIDgzLjkxN2E0LjE0IDQuMTQgMCAwIDAgMy45MDggNS41MzhoMjAuNzg3YTQuNDQzIDQuNDQzIDAgMCAwIDMuNDEtMi45bDUuMDE0LTE0Ljc3NyAxNy45MSAxNi43MDVhNC4yMzcgNC4yMzcgMCAwIDAgMi42NjYuOTcySDgxLjI0TDcxLjAyNCA2MC4yNjFsLTI5Ljc4MS4wMDdMNTkuNDcgNi41NDR6XCIvPlxyXG4gICAgPHBhdGggZmlsbD1cInVybCgjYTdmZWU5NzAtYTc4NC00YmIxLWFmOGQtNjNkMThlNWY3ZGI5KVwiIGQ9XCJNNjYuNTk1IDkuMzY0YTQuMTQ1IDQuMTQ1IDAgMCAwLTMuOTI4LTIuODJIMzMuNjQ4YTQuMTQ2IDQuMTQ2IDAgMCAxIDMuOTI4IDIuODJsMjUuMTg0IDc0LjYyYTQuMTQ2IDQuMTQ2IDAgMCAxLTMuOTI4IDUuNDcyaDI5LjAyYTQuMTQ2IDQuMTQ2IDAgMCAwIDMuOTI3LTUuNDcyelwiLz5cclxuPC9zdmc+YCxcclxuICAnU0FQJzogYDxzdmcgaGVpZ2h0PVwiNDVcIiB2aWV3Qm94PVwiMCAwIDE5Mi43NTYgMTkyLjc1NlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICA8ZGVmcz48L2RlZnM+XHJcbiAgPHBhdGggZmlsbD1cIiNmZmZcIiBkPVwiTSAwIDAgTCAxOTIuNzU2IDAgTCAxOTIuNzU2IDE5Mi43NTYgTCAwIDE5Mi43NTYgTCAwIDAgWlwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCI+PC9wYXRoPlxyXG4gIDxwYXRoIGQ9XCJNIDE4My43MjcgNjYuNzc1IEMgMTg3LjAwNiA2Ni43NzUgMTg5LjkyMiA2My44NjEgMTg5LjkyMiA2MC4yMTcgQyAxODkuOTIyIDU2Ljc1NiAxODcuMDA2IDU0LjAyMyAxODMuNzI3IDU0LjAyMyBDIDE4MC4yNjYgNTQuMDIzIDE3Ny4xNyA1Ni43NTUgMTc3LjE3IDYwLjIxNyBDIDE3Ny4xNyA2My44NjEgMTgwLjI2NiA2Ni43NzUgMTgzLjcyNyA2Ni43NzUgWiBNIDE4My43MjcgNjUuODY1IEMgMTgwLjQ1IDY1Ljg2NSAxNzguMDgxIDYzLjQ5NyAxNzguMDgxIDYwLjIxOCBDIDE3OC4wODEgNTcuMzAzIDE4MC40NSA1NC45MzUgMTgzLjcyNyA1NC45MzUgQyAxODYuNjQ0IDU0LjkzNyAxODkuMDA4IDU3LjMwMSAxODkuMDEgNjAuMjE4IEMgMTg5LjAxIDYzLjQ5NyAxODYuNjQzIDY1Ljg2NSAxODMuNzI3IDY1Ljg2NSBaXCIgZmlsbD1cIiMyMzRiOGRcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuICA8cGF0aCBkPVwiTSAxODIuMDg4IDYwLjk0NiBMIDE4NC4yNzQgNjAuOTQ2IEMgMTg1LjE4NiA2MC45NDYgMTg1LjM2OCA2MS40OTIgMTg1LjM2OCA2Mi4wMzkgQyAxODUuMzY4IDYyLjIyMiAxODUuMzY4IDYzLjMxNCAxODUuNTUgNjMuODYxIEwgMTg2LjY0NCA2My44NjEgTCAxODYuNjQ0IDYzLjQ5NyBDIDE4Ni40NjIgNjMuMzE0IDE4Ni4yNzkgNjMuMzE0IDE4Ni4yNzkgNjIuOTUgTCAxODYuMjc5IDYxLjg1NyBDIDE4Ni4yNzkgNjAuOTQ2IDE4NS45MTYgNjAuNzY0IDE4NS41NSA2MC41ODIgQyAxODYuMDk3IDYwLjIxOCAxODYuNDYyIDU5Ljg1MyAxODYuNDYyIDU4Ljc2MSBDIDE4Ni40NjIgNTcuNDg2IDE4NS4zNjggNTYuOTM5IDE4NC4yNzQgNTYuOTM5IEwgMTgxLjE3OCA1Ni45MzkgTCAxODEuMTc4IDYzLjg2MiBMIDE4Mi4wODggNjMuODYyIEwgMTgyLjA4OCA2MC45NDYgTCAxODIuMDg4IDYwLjk0NiBaIE0gMTgyLjA4OCA1Ny44NSBMIDE4NC4yNzQgNTcuODUgQyAxODQuODIxIDU3Ljg1IDE4NS41NDkgNTcuODUgMTg1LjU0OSA1OC45NDMgQyAxODUuNTQ5IDU5Ljg1NCAxODQuODIgNjAuMDM2IDE4NC4wOTIgNjAuMDM2IEwgMTgyLjA4OCA2MC4wMzYgTCAxODIuMDg4IDU3Ljg1IEwgMTgyLjA4OCA1Ny44NSBaIE0gMy4zODEgNTMuODQyIEwgODcuMTc4IDUzLjg0MiBMIDg3LjE3OCAxMzcuODIxIEwgMy4zODEgMTM3LjgyMSBMIDMuMzgxIDUzLjg0MiBaIE0gMTc0LjgwMSA1My44NDIgTCA5MC44MjIgNTMuODQyIEwgOTAuODIyIDEzNy44MjEgTCAxNzQuODAxIDUzLjg0MiBaXCIgZmlsbD1cIiMyMzRiOGRcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuICA8cGF0aCBkPVwiTSA2OS41MDggMTI5LjI2IEwgNzYuMDY2IDEyOS4yNiBDIDg1LjcyMSAxMjkuMjYgODcuNTQzIDEyMS4wNjIgODcuMTc4IDExOC42OTQgQyA4Ni42MzIgMTEyLjg2NSA4Mi4yNiAxMDkuMjIxIDc2LjI0OCAxMDkuMjIxIEwgNjAuMjE3IDEwOS4yMjEgTCA2MC4yMTcgMTM4LjU1IEwgNjkuNTA4IDEzOC41NSBMIDY5LjUwOCAxMjkuMjYgWiBNIDY5LjUwOCAxMjIuMzM3IEwgNjkuNTA4IDExNS45NjEgTCA3My41MTUgMTE1Ljk2MSBDIDc2Ljc5NCAxMTUuOTYxIDc4LjA2OSAxMTYuNjkgNzguMDY5IDExOS4wNTggQyA3OC4wNjkgMTIwLjE1MSA3OC4wNjkgMTIyLjMzNyA3NC40MjYgMTIyLjMzNyBMIDY5LjUwOCAxMjIuMzM3IEwgNjkuNTA4IDEyMi4zMzcgWlwiIGZpbGw9XCIjZmZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbiAgPHBhdGggZD1cIk0gMzkuOTk3IDEzMi4zNTYgTCA0OS4yODggMTMyLjM1NiBMIDUxLjY1NiAxMzguNTQ5IEwgNjEuNDkzIDEzOC41NDkgTCA1MC4zOCAxMDkuMjIxIEwgMzkuMjY4IDEwOS4yMjEgTCAyNy45NzQgMTM4LjU1IEwgMzcuNDQ3IDEzOC41NSBMIDM5Ljk5NyAxMzIuMzU2IEwgMzkuOTk3IDEzMi4zNTYgWiBNIDQ0LjkxNiAxMTcuNDE5IEwgNDguMTk1IDEyNi4xNjIgTCA0MS44MiAxMjYuMTYyIEwgNDQuOTE2IDExNy40MTkgWlwiIGZpbGw9XCIjZmZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbiAgPHBhdGggZD1cIk0gMi44MzQgMTI5LjI2IEwgMi44MzQgMTMwLjkgQyAyLjgzNCAxMzYuNzI5IDkuOTM4IDEzOC45MTUgMTYuNjc5IDEzOC45MTUgQyAyNS43ODcgMTM4LjkxNSAzMS4yNTMgMTM1LjYzNiAzMS4yNTMgMTI5LjI2MSBDIDMxLjI1MyAxMTkuMDU5IDEzLjAzNiAxMjIuMTU2IDEzLjAzNiAxMTYuMTQ1IEMgMTMuMDM2IDExMy45NTggMTQuNjc2IDExMy4yMyAxNy4yMjYgMTEzLjIzIEMgMTguODY1IDExMy4yMyAxOS40MTIgMTEzLjU5NCAxOS45NTggMTEzLjk1OSBDIDIxLjA1MSAxMTQuNjg4IDIxLjA1MSAxMTUuNTk5IDIxLjA1MSAxMTcuMjM4IEwgMzAuNzA2IDExNy4yMzggTCAzMC43MDYgMTE2LjUwOSBDIDMwLjcwNiAxMTIuMTM3IDI2Ljg4IDEwOC40OTMgMTcuMjI2IDEwOC40OTMgQyA2LjY2IDEwOC40OTMgMy4zODEgMTEyLjUwMSAzLjM4MSAxMTcuMjM3IEMgMy4zODEgMTI3LjYyMSAyMS41OTggMTI0LjM0MSAyMS41OTggMTMwLjcxNyBDIDIxLjU5OCAxMzEuOTkyIDIwLjUwNSAxMzMuODE0IDE2LjY3OSAxMzMuODE0IEMgMTMuNTgyIDEzMy44MTQgMTIuNDg5IDEzMi4zNTcgMTIuNDg5IDEzMC4xNyBMIDEyLjQ4OSAxMjkuMjYgTCAyLjgzNCAxMjkuMjYgTCAyLjgzNCAxMjkuMjYgWlwiIGZpbGw9XCIjZmZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbjwvc3ZnPmAsXHJcbiAgJ01mZyc6IGA8c3ZnIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCAxMDAgNTBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGRlZnM+PC9kZWZzPlxyXG4gIDxyZWN0IHdpZHRoPVwiOTNcIiBoZWlnaHQ9XCIzOFwiIHN0eWxlPVwiZmlsbDogcmdiKDIxNiwgMjE2LCAyMTYpO1wiPjwvcmVjdD5cclxuICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgNSwgNilcIj5cclxuICAgIDxnPlxyXG4gICAgICA8Zz5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNNDEuMSwxLjhsMTMuMSwyMC41aC0zLjhMNDcsMTcuMUgzNS42bC0zLjEsNS4yaC0zLjhMNDEuMSwxLjh6IE0zNy4yLDE0LjVoOC4xbC00LjItNi42TDM3LjIsMTQuNXpcIj48L3BhdGg+XHJcbiAgICAgICAgPHBhdGggZmlsbD1cIiNGRkZGRkZcIiBkPVwiTTU5LjMsMi41aDkuM2M4LjgsMCwxMi43LDUuMiwxMi43LDkuOWMwLDUuMS00LjgsOS45LTEyLjYsOS45aC05LjNWMi41eiBNNjIuNywxOS43aDUuNFxyXG5cdFx0XHRcdGM3LjgsMCw5LjUtNC45LDkuNS03LjRjMC00LTMtNy40LTkuNy03LjRoLTUuM1YxOS43elwiPjwvcGF0aD5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNMjUuNywxMi4zYzAtNS44LTUuNC0xMC4xLTEyLjUtMTAuMUM1LjQsMi4yLDAsNi40LDAsMTIuNGMwLDYsNS40LDEwLjIsMTMuMSwxMC4yYzEuNCwwLDIuNi0wLjIsMy44LTAuNVxyXG5cdFx0XHRcdGwzLjMsMi42aDVsLTQuOS0zLjlDMjMuNiwxOSwyNS43LDE1LjksMjUuNywxMi4zeiBNMTMuMSwyMGMtNi40LDAtOS41LTMuNS05LjUtNy41YzAtMywyLjMtNy42LDkuNS03LjZjNS4zLDAsOS4yLDMuMyw5LjIsNy43XHJcblx0XHRcdFx0QzIyLjEsMTYuNSwxOC40LDIwLDEzLjEsMjB6XCI+PC9wYXRoPlxyXG4gICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gLFxyXG4gICdQcmlvcml0eSc6IGA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiNjBcIiB2aWV3Qm94PVwiMCAwIDI0MCAxMzNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGc+XHJcbiAgICA8cGF0aCBkPVwiTSAwIDAgTCAyNDAgMCBMIDI0MCA4MC40NyBMIDAgODAuNDcgTCAwIDAgWlwiIGZpbGw9XCIjZmZmXCIgc3R5bGU9XCJcIi8+XHJcbiAgICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgLTEyLjUyNDg0MSwgLTI0LjU5MTQ0NClcIj5cclxuICAgICAgPHBhdGggZD1cIk0gMTc3Ljc0OCA1MC42NzMgTCAxNzMuNjQyIDUwLjY3MyBMIDE3My42NDIgNTUuMDIyIEwgMTc3Ljc0OCA1NS4wMjIgTCAxNzcuNzQ4IDUwLjY3MyBaXCIgZmlsbD1cIiMwMGFlZWZcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDYyLjczNCA1Ni41NzggQyA2Mi43MzQgNTUuNDQgNjIuNDIzIDU1LjA3NyA2MS40MzcgNTUuMDI2IEwgNTkuMjYzIDU0Ljg2OSBMIDU5LjI2MyA1MC42NzQgTCA2OC4wMTkgNTAuNjc0IEwgNjguMDE5IDU0LjU1OCBDIDY5LjIxMSA1MS45NjggNzEuOTU2IDQ5Ljg5NiA3NS4zNzMgNDkuODk2IEMgNzcuMDg2IDQ5Ljg5NiA3OC42NCA1MC4yMDcgODAuMzQ4IDUxLjAzNSBMIDgwLjM0OCA1OC43NTUgTCA3NS41MzEgNTkuMTE3IEwgNzUuNTMxIDU2LjczNCBDIDc1LjUzMSA1Ni4xMTMgNzUuNDI4IDU1LjY0NyA3NS4wMTIgNTUuNDQgQyA3NC41NDQgNTUuMjMyIDc0LjE4IDU1LjE4IDczLjYxMyA1NS4xOCBDIDcwLjgxNSA1NS4xOCA2OC44OTggNTcuNDA5IDY4Ljg5OCA2MC40MTQgTCA2OC44OTggNzIuNDMxIEwgNzMuNDA4IDcyLjYzNiBMIDczLjQwOCA3Ni43MyBMIDU5LjUyIDc2LjczIEwgNTkuNTIgNzIuNzk1IEwgNjEuMjMyIDcyLjYzNiBDIDYyLjIxNyA3Mi41MzMgNjIuNzM0IDcyLjIyNCA2Mi43MzQgNzAuOTI5IEwgNjIuNzM0IDU2LjU3OCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDExNS40NjkgNjMuODMyIEMgMTE1LjQ2OSA1OC4wMzEgMTE0LjA3NCA1NC40NTYgMTA5LjkzIDU0LjQ1NiBDIDEwNS44MzMgNTQuNDU2IDEwNC4xNzcgNTcuOTc4IDEwNC4xNzcgNjIuOTUyIEMgMTA0LjE3NyA2Ny43NjggMTA0Ljg1IDcyLjk0NiAxMDkuODI1IDcyLjk0NiBDIDExMy44NjUgNzIuOTQ2IDExNS40NjkgNjkuMjIxIDExNS40NjkgNjMuODMyIFogTSAxMTAuMjM5IDQ5Ljg5NiBDIDExNC4wNzQgNDkuODk2IDEyMS43ODkgNTEuMDg1IDEyMS43ODkgNjMuMDAzIEMgMTIxLjc4OSA3Mi45NDYgMTE2LjI0NyA3Ny41MDcgMTA5LjQxIDc3LjUwNyBDIDEwMi40NjcgNzcuNTA3IDk3LjkwOSA3My4wNTMgOTcuOTA5IDYzLjY3NCBDIDk3LjkwOSA1Mi45MDIgMTA0LjkwNCA0OS44OTYgMTEwLjIzOSA0OS44OTYgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAxMjcuNTQzIDU2LjU3OCBDIDEyNy41NDMgNTUuNDQgMTI3LjIzNSA1NS4wNzcgMTI2LjI1IDU1LjAyNiBMIDEyNC4wNzIgNTQuODY5IEwgMTI0LjA3MiA1MC42NzQgTCAxMzIuODMgNTAuNjc0IEwgMTMyLjgzIDU0LjU1OCBDIDEzNC4wMTkgNTEuOTY4IDEzNi43NjYgNDkuODk2IDE0MC4xODcgNDkuODk2IEMgMTQxLjg5NCA0OS44OTYgMTQzLjQ0OSA1MC4yMDcgMTQ1LjE1OCA1MS4wMzUgTCAxNDUuMTU4IDU4Ljc1NSBMIDE0MC4zNDEgNTkuMTE3IEwgMTQwLjM0MSA1Ni43MzQgQyAxNDAuMzQxIDU2LjExMyAxNDAuMjM4IDU1LjY0NyAxMzkuODIyIDU1LjQ0IEMgMTM5LjM1NiA1NS4yMzIgMTM4Ljk5NSA1NS4xOCAxMzguNDI1IDU1LjE4IEMgMTM1LjYyNSA1NS4xOCAxMzMuNzEgNTcuNDA5IDEzMy43MSA2MC40MTQgTCAxMzMuNzEgNzIuNDMxIEwgMTM4LjIxNSA3Mi42MzYgTCAxMzguMjE1IDc2LjczIEwgMTI0LjMzMyA3Ni43MyBMIDEyNC4zMzMgNzIuNzk1IEwgMTI2LjA0MiA3Mi42MzYgQyAxMjcuMDI2IDcyLjUzMyAxMjcuNTQzIDcyLjIyNCAxMjcuNTQzIDcwLjkyOSBMIDEyNy41NDMgNTYuNTc4IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjAyLjAxNiA3MS44MTIgQyAyMDAuMjAzIDc0LjQgMTk3LjA0NiA3NS44NTEgMTkzLjYyMiA3NS44NTEgQyAxODguNDQzIDc1Ljg1MSAxODUuNTk0IDczLjAwMSAxODUuNTk0IDY2Ljg4NyBMIDE4NS41OTQgNTYuNDc3IEMgMTg1LjU5NCA1NS4zODYgMTg1LjE3OCA1NS4wNzggMTg0LjMwMSA1NS4wMjMgTCAxODIuNjM5IDU0LjkyMSBMIDE4Mi42MzkgNTAuNjczIEwgMTkxLjc1NiA1MC42NzMgTCAxOTEuNzU2IDY1LjU0MSBDIDE5MS43NTYgNjguNyAxOTIuMjc0IDcxLjA4NCAxOTUuNTkxIDcxLjA4NCBDIDE5OS4yMiA3MS4wODQgMjAxLjEzNiA2OC42NDcgMjAxLjEzNiA2NS45NTcgTCAyMDEuMTM2IDU2LjU3OCBDIDIwMS4xMzYgNTUuNDQgMjAwLjgyMiA1NS4wMjMgMTk5LjgzNyA1NS4wMjMgTCAxOTguMTgyIDU0LjkyMSBMIDE5OC4xODIgNTAuNjczIEwgMjA3LjI5NyA1MC42NzMgTCAyMDcuMjk3IDc1Ljc0NyBDIDIwNy4yOTcgODQuMjk2IDIwMyA4Ny44MTcgMTk1LjI3OCA4Ny44MTcgQyAxOTIuMDE2IDg3LjgxNyAxODcuNzE5IDg3LjE5NiAxODUuNTQ0IDg2LjEwOSBMIDE4NS41NDQgODAuNjk0IEwgMTkwLjQ2MyA4MC4yNzggTCAxOTAuNDYzIDgwLjk3OCBDIDE5MC40NjMgODEuOTYyIDE5MC43MjEgODIuNDgyIDE5MS42NTcgODIuODQzIEMgMTkyLjYzOSA4My4yMDcgMTkzLjc4MSA4My4zNjIgMTk1LjMzNCA4My4zNjIgQyAyMDAuMDk5IDgzLjM2MiAyMDIuMDE2IDgwLjQ2MSAyMDIuMDE2IDc1Ljc0NyBMIDIwMi4wMTYgNzEuODEyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMTU3LjY3MSA3Mi40MyBMIDE1Ny42NzEgNTAuNjc0IEwgMTQ4LjM5OCA1MC42NzQgTCAxNDguMzk4IDU0Ljk3MiBMIDE1MC4yMSA1NS4wNzcgQyAxNTEuMTkzIDU1LjA3NyAxNTEuNTA4IDU1LjQzOSAxNTEuNTA4IDU2LjU3NyBMIDE1MS41MzUgNzYuNzMgTCAxNjAuNjIyIDc2LjczIEwgMTYwLjYyMiA3Mi41ODYgTCAxNTcuNjcxIDcyLjQzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gOTIuODYgNzIuNDMgTCA5Mi44NiA1MC42NzQgTCA4My41ODkgNTAuNjc0IEwgODMuNTg5IDU0Ljk3MiBMIDg1LjM5OSA1NS4wNzcgQyA4Ni4zODYgNTUuMDc3IDg2LjY5NyA1NS40MzkgODYuNjk3IDU2LjU3NyBMIDg2LjY2OSA3Ni43MyBMIDk1LjgxNCA3Ni43MyBMIDk1LjgxNCA3Mi41ODYgTCA5Mi44NiA3Mi40MyBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDE3OS4xNzEgNzEuNjUzIEMgMTc4LjM0NiA3Mi4xNzMgMTc3LjA0OCA3Mi43NDEgMTc1LjY1MyA3Mi43NDEgQyAxNzMuNTI0IDcyLjc0MSAxNzIuMjgxIDcxLjgxMSAxNzIuMjgxIDY4LjY0NyBMIDE3Mi4yODEgNDUuMTgzIEwgMTY4LjkxNiA0NS4xODMgQyAxNjcuODI4IDQ4LjEzNCAxNjYuNTg2IDUwLjkzMyAxNjIuOTU4IDUxLjI0MiBMIDE2Mi40NDIgNTUuMDIzIEwgMTY2LjEyIDU1LjAyMyBMIDE2Ni4xMiA2OC44NTUgQyAxNjYuMTIgNzIuNDgxIDE2Ni4wNjYgNzcuNDU1IDE3NC4xNDQgNzcuNDU1IEMgMTc2LjU4MiA3Ny40NTUgMTc5LjE3MSA3Ni43MyAxODAuNzI4IDc1LjY0NCBMIDE3OS4xNzEgNzEuNjUzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gNDQuMzMyIDcyLjU4NyBDIDQyLjk4NiA3Mi41ODcgNDEuMTIxIDcyLjE3MyAzOS43NzUgNzEuMjkxIEwgMzkuNzc1IDU5LjM3NyBDIDM5Ljc3NSA1Ni45OTUgNDIuMDUzIDU0LjkyIDQ1LjAwNyA1NC45MiBDIDQ3Ljc1MSA1NC45MiA1MC4yNDIgNTYuNjg0IDUwLjI0MiA2My41NzIgQyA1MC4yNDIgNjguMDc3IDQ4LjczNyA3Mi41ODcgNDQuMzMyIDcyLjU4NyBaIE0gNDcuMjg5IDQ5Ljg5NiBDIDQyLjg4NCA0OS44OTYgNDAuMDM2IDUyLjI3OSAzOS4xMDMgNTQuMDQgTCAzOS4xMDMgNTAuNjc1IEwgMzAuMzQ3IDUwLjY3NSBMIDMwLjM0NyA1NC44NjggTCAzMi41MjUgNTUuMDIzIEMgMzMuNTA3IDU1LjAyMyAzMy44MTYgNTUuNDQgMzMuODE2IDU2LjU3OCBMIDMzLjc4MSA4Ny40NTUgTCA0My45NjggODcuNDU1IEwgNDMuOTY4IDgzLjM2MiBMIDM5Ljc3NSA4My4xNTMgTCAzOS43NzUgNzYuMDA1IEMgNDEuMTIxIDc2LjgzMyA0My4yOTYgNzcuNTA3IDQ1LjMxNyA3Ny41MDcgQyA1Mi4xNTggNzcuNTA3IDU2LjY2MiA3Mi41ODcgNTYuNjYyIDYzLjA1NSBDIDU2LjY2MiA1My43ODMgNTMuMDM4IDQ5Ljg5NiA0Ny4yODkgNDkuODk2IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjEyLjg4MiA3Mi42NjIgTCAyMTIuODgyIDczLjI3MiBMIDIxMS42NzQgNzMuMjcyIEwgMjExLjY3NCA3Ni42NzYgTCAyMTAuOTI3IDc2LjY3NiBMIDIxMC45MjcgNzMuMjcyIEwgMjA5LjcxNyA3My4yNzIgTCAyMDkuNzE3IDcyLjY2MiBMIDIxMi44ODIgNzIuNjYyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjE1LjQwMSA3NS4xOTQgQyAyMTUuNDI5IDc1LjI1OCAyMTUuNDU2IDc1LjMyMiAyMTUuNDggNzUuMzg4IEMgMjE1LjUxIDc1LjMyMiAyMTUuNTM0IDc1LjI1MyAyMTUuNTY0IDc1LjE5IEMgMjE1LjU4OSA3NS4xMjQgMjE1LjYxOCA3NS4wNjYgMjE1LjY1IDc1LjAwNCBMIDIxNi44NCA3Mi43ODEgQyAyMTYuODU1IDcyLjc1MiAyMTYuODY4IDcyLjczIDIxNi44ODQgNzIuNzE3IEMgMjE2LjkwMSA3Mi42OTcgMjE2LjkyMSA3Mi42ODUgMjE2LjkzOSA3Mi42NzggQyAyMTYuOTU2IDcyLjY2OSAyMTYuOTggNzIuNjY4IDIxNy4wMDMgNzIuNjY1IEMgMjE3LjAyMyA3Mi42NjMgMjE3LjA1NyA3Mi42NjIgMjE3LjA4OSA3Mi42NjIgTCAyMTcuNjUzIDcyLjY2MiBMIDIxNy42NTMgNzYuNjc2IEwgMjE2Ljk5NCA3Ni42NzYgTCAyMTYuOTk0IDc0LjA4MiBDIDIxNi45OTQgNzQuMDMzIDIxNi45OTUgNzMuOTggMjE2Ljk5OSA3My45MjYgQyAyMTcuMDAyIDczLjg2NiAyMTcuMDA1IDczLjgwOSAyMTcuMDExIDczLjc1MSBMIDIxNS43OTkgNzYuMDI2IEMgMjE1Ljc3IDc2LjA3NSAyMTUuNzM0IDc2LjExNyAyMTUuNjg5IDc2LjE0NiBDIDIxNS42NDYgNzYuMTc1IDIxNS41OTQgNzYuMTg3IDIxNS41MzQgNzYuMTg3IEwgMjE1LjQzMyA3Ni4xODcgQyAyMTUuMzczIDc2LjE4NyAyMTUuMzE5IDc2LjE3NSAyMTUuMjc1IDc2LjE0NiBDIDIxNS4yMzMgNzYuMTE3IDIxNS4xOTUgNzYuMDc1IDIxNS4xNjUgNzYuMDI2IEwgMjEzLjk0MSA3My43NDIgQyAyMTMuOTQ3IDczLjgwMyAyMTMuOTUgNzMuODYxIDIxMy45NTMgNzMuOTIgQyAyMTMuOTU3IDczLjk3OCAyMTMuOTU4IDc0LjAzMiAyMTMuOTU4IDc0LjA4MiBMIDIxMy45NTggNzYuNjc2IEwgMjEzLjI5OSA3Ni42NzYgTCAyMTMuMjk5IDcyLjY2MiBMIDIxMy44NjYgNzIuNjYyIEMgMjEzLjg5OSA3Mi42NjIgMjEzLjkyNCA3Mi42NjMgMjEzLjk1IDcyLjY2NSBDIDIxMy45NzQgNzIuNjY4IDIxMy45OTIgNzIuNjY5IDIxNC4wMTUgNzIuNjc4IEMgMjE0LjAzNSA3Mi42ODUgMjE0LjA1MiA3Mi42OTcgMjE0LjA2NyA3Mi43MTcgQyAyMTQuMDg5IDcyLjczIDIxNC4xMDMgNzIuNzUyIDIxNC4xMTYgNzIuNzgxIEwgMjE1LjMxNCA3NS4wMDkgQyAyMTUuMzQ4IDc1LjA2OCAyMTUuMzc1IDc1LjEzMyAyMTUuNDAxIDc1LjE5NCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gXHJcbn07XHJcbi8qKiAqL1xyXG5leHBvcnQgY2xhc3MgRGVzaWduZXJSZWY8TyA9IGFueT4ge1xyXG4gIF91bmxvY2skID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBfc3RhdGUkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rlc2lnbmVyOiBEZXNpZ25lck1vZGVsLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgcHVibGljIG1vZGU6IERlc2lnbk1vZGUpIHsgfVxyXG4gIGdldCBkZXNpZ25lcigpOiBEZXNpZ25lckluZm8geyByZXR1cm4gdGhpcy5fZGVzaWduZXI7IH1cclxuICBnZXQgbW9kZWwoKTogRWxlbWVudEluZm88Tz4geyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfVxyXG4gIGdldCB1bmxvY2soKSB7IHJldHVybiB0aGlzLl91bmxvY2skLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHN0YXRlKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgY3JlYXRlKGVsZW1lbnQ6IEVsZW1lbnRJbmZvLCB0ZW1wbGF0ZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVmID0gbmV3IERlc2lnbmVyUmVmKHRoaXMuX2Rlc2lnbmVyLCBlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCwgJ3dpZGdldCcpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3tcclxuICAgICAgcHJvdmlkZTogRGVzaWduZXJSZWYsIHVzZVZhbHVlOiByZWZcclxuICAgIH1dLCAodGhpcy5fZWxlbWVudCBhcyBFbGVtZW50TW9kZWwpLmluamVjdG9yKTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkuaW5qZWN0b3IgPSBpbmplY3RvcjtcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxUPiB7XHJcbiAgbW9kZWw6IEVsZW1lbnRJbmZvPFQ+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIG9uQ29udGludWU/KCk7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXNpZ25Nb2RlID0gJ2FkZCcgfCAnZWRpdCcgfCAnd2lkZ2V0JztcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGVsZW1lbnQpKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlPZih2YWw6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgaWYgKCF2YWwpIHJldHVybiBbXTtcclxuICBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIFt2YWxdO1xyXG4gIHJldHVybiB2YWw7XHJcbn1cclxuXHJcbmNvbnN0IE5BTUVfQ0hBUiA9IC9bQS1aXSsvZyxcclxuICBOT05fTkFNRV9DSEFSID0gL1teXFx3XSsvZztcclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyYW1OYW1lKG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBuYW1lLlxyXG4gICAgcmVwbGFjZSgnICcsICctJykuXHJcbiAgICByZXBsYWNlKE5BTUVfQ0hBUiwgKGMsIGkpID0+IChpID4gMCAmJiBuYW1lLmNoYXJBdChpIC0gMSkgIT09ICctJyA/ICctJyA6ICcnKSArIGMudG9Mb3dlckNhc2UoKSkuXHJcbiAgICByZXBsYWNlKE5PTl9OQU1FX0NIQVIsICdfJyk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEZXNpZ25lck1vZGVsIHtcclxuICB0eXBlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0VHlwZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGd1aWRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICByZXBvcnRzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRSZXBvcnRzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBmb3JtczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Rm9ybXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRDdWJlczogVGVtcGxhdGVJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRVdGlsaXRpZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcm9sZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcnVsZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFJ1bGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICB2aWV3czogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Vmlld3M6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFdpZGdldHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGFjdGlvbnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdEFjdGlvbnM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRNb2RlbDxUID0gYW55PiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBvcmRpbmFsPzogbnVtYmVyO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgY29uZmlndXJhdGlvbkZpbGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICByZXNvdXJjZT86IHN0cmluZztcclxuICBjb3B5T2Y/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgcHJpdmlsZWdlcz86IFByaXZpbGVnZXNNb2RlbDtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbiAgYW5vbWFseT86IEFub21hbHlQb2xpY3k7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGFzc2lnbmFibGU/OiBib29sZWFuO1xyXG4gIHBvc2l0aW9uPzogUG9zaXRpb25Qb2xpY3k7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHN0ZXBzPzogR3VpZGVTdGVwW107XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBDdWJlQXhpc01vZGVsW107XHJcbiAgdmlld3M/OiBDdWJlVmlld01vZGVsW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleE1vZGVsW107XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIHJ1bGVzPzogUGVybWlzc2lvbk1vZGVsW107XHJcbiAgcG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHBhdHRlcm5zPzogUGF0dGVybk1vZGVsW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXhNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVWaWV3TW9kZWwge1xyXG4gIHByaXZpbGVnZXM/OiBQcml2aWxlZ2VzTW9kZWw7XHJcbiAgeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFZpZXdUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybk1vZGVsIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpc01vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgY29tYmluYXRpb24/OiBib29sZWFuO1xyXG4gIGluZGV4YWJsZT86IGJvb2xlYW47XHJcbiAgc2Vuc2l0aXZlPzogYm9vbGVhbjtcclxuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBbm9tYWx5UG9saWN5ID0gJ1Bvc2l0aW9ucycgfCAnUmVjaXBpZW50cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5Nb2RlbCB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgYXhlczogQXhlc01hcDtcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJ1bGU/OiBzdHJpbmc7XHJcbiAgcm9sZXM/OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByaXZpbGVnZXNNb2RlbCB7XHJcbiAgcnVsZT86IHN0cmluZztcclxuICByb2xlcz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVzaWduZXJJbmZvIHtcclxuICB0eXBlczogRWxlbWVudEluZm9bXTtcclxuICBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcmVwb3J0czogRWxlbWVudEluZm9bXTtcclxuICB0UmVwb3J0czogVGVtcGxhdGVJbmZvW107XHJcbiAgZm9ybXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRJbmZvW107XHJcbiAgcm9sZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcnVsZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgdmlld3M6IEVsZW1lbnRJbmZvW107XHJcbiAgd2lkZ2V0czogRWxlbWVudEluZm9bXTtcclxuICBhY3Rpb25zOiBFbGVtZW50SW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRJbmZvPFQgPSBhbnk+IHtcclxuICBmYW1pbHk/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbn1cclxuIl19
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsT0FBTyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JKO0lBQ0wsS0FBSyxFQUFFOzs7Ozs7OztPQVFGO0lBQ0wsS0FBSyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7T0FlRjtJQUNMLFVBQVUsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQlA7SUFDTCxrQkFBa0IsRUFBRTs7Ozs7Ozs7Ozs7T0FXZjtDQUNOLENBQUM7QUFDRixNQUFNO0FBQ04sTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFBb0IsU0FBd0IsRUFDbEMsUUFBc0IsRUFDdkIsSUFBZ0I7UUFGTCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUp6QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNsQyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7SUFHWixDQUFDO0lBQzlCLElBQUksUUFBUSxLQUFtQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELElBQUksS0FBSyxLQUFxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3JELElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsT0FBb0IsRUFBRSxRQUFpQjtRQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQXVCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0UsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHO2FBQ3BDLENBQUMsRUFBRyxJQUFJLENBQUMsUUFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxPQUF3QixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDN0MsT0FBd0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzlDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQVNELE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBcUI7SUFDekMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFzQjtJQUM1QyxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxTQUFTLEVBQ3pCLGFBQWEsR0FBRyxTQUFTLENBQUM7QUFDNUI7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFZO0lBQ3RDLE9BQU8sSUFBSTtRQUNULE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tIFwiLi4vLi4vY29yZS9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIENoYXJ0VHlwZSwgQ3ViZUZpbHRlciwgRmllbGRJbmZvLCBGb2xkZXJDb2x1bW4sIEd1aWRlU3RlcCwgUG9zaXRpb25Qb2xpY3ksIFZpZXdUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmV4cG9ydCBjb25zdCBGQU1JTFlfU1ZHID0ge1xyXG4gIFwiQXp1cmVcIjogYDxzdmcgd2lkdGg9XCIzNFwiIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCA5NiA5NlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgIDxkZWZzPlxyXG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImUzOTljMTlmLWI2OGYtNDI5ZC1iMTc2LTE4YzIxMTdmZjczY1wiIHgxPVwiLTEwMzIuMTcyXCIgeDI9XCItMTA1OS4yMTNcIiB5MT1cIjE0NS4zMTJcIiB5Mj1cIjY1LjQyNlwiIGdyYWRpZW50VHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDEwNzUgMTU4KVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiMxMTRhOGJcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLWNvbG9yPVwiIzA2NjliY1wiLz5cclxuICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImFjMmE2ZmMyLWNhNDgtNDMyNy05YTNjLWQ0ZGNjMzI1NmUxNVwiIHgxPVwiLTEwMjMuNzI1XCIgeDI9XCItMTAyOS45OFwiIHkxPVwiMTA4LjA4M1wiIHkyPVwiMTA1Ljk2OFwiIGdyYWRpZW50VHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDEwNzUgMTU4KVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1vcGFjaXR5PVwiLjNcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIi4wNzFcIiBzdG9wLW9wYWNpdHk9XCIuMlwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiLjMyMVwiIHN0b3Atb3BhY2l0eT1cIi4xXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIuNjIzXCIgc3RvcC1vcGFjaXR5PVwiLjA1XCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1vcGFjaXR5PVwiMFwiLz5cclxuICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImE3ZmVlOTcwLWE3ODQtNGJiMS1hZjhkLTYzZDE4ZTVmN2RiOVwiIHgxPVwiLTEwMjcuMTY1XCIgeDI9XCItOTk3LjQ4MlwiIHkxPVwiMTQ3LjY0MlwiIHkyPVwiNjguNTYxXCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLWNvbG9yPVwiIzNjY2JmNFwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMjg5MmRmXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICA8L2RlZnM+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNlMzk5YzE5Zi1iNjhmLTQyOWQtYjE3Ni0xOGMyMTE3ZmY3M2MpXCIgZD1cIk0zMy4zMzggNi41NDRoMjYuMDM4bC0yNy4wMyA4MC4wODdhNC4xNTIgNC4xNTIgMCAwIDEtMy45MzMgMi44MjRIOC4xNDlhNC4xNDUgNC4xNDUgMCAwIDEtMy45MjgtNS40N0wyOS40MDQgOS4zNjhhNC4xNTIgNC4xNTIgMCAwIDEgMy45MzQtMi44MjV6XCIvPlxyXG4gICAgPHBhdGggZmlsbD1cIiMwMDc4ZDRcIiBkPVwiTTcxLjE3NSA2MC4yNjFoLTQxLjI5YTEuOTExIDEuOTExIDAgMCAwLTEuMzA1IDMuMzA5bDI2LjUzMiAyNC43NjRhNC4xNzEgNC4xNzEgMCAwIDAgMi44NDYgMS4xMjFoMjMuMzh6XCIvPlxyXG4gICAgPHBhdGggZmlsbD1cInVybCgjYWMyYTZmYzItY2E0OC00MzI3LTlhM2MtZDRkY2MzMjU2ZTE1KVwiIGQ9XCJNMzMuMzM4IDYuNTQ0YTQuMTE4IDQuMTE4IDAgMCAwLTMuOTQzIDIuODc5TDQuMjUyIDgzLjkxN2E0LjE0IDQuMTQgMCAwIDAgMy45MDggNS41MzhoMjAuNzg3YTQuNDQzIDQuNDQzIDAgMCAwIDMuNDEtMi45bDUuMDE0LTE0Ljc3NyAxNy45MSAxNi43MDVhNC4yMzcgNC4yMzcgMCAwIDAgMi42NjYuOTcySDgxLjI0TDcxLjAyNCA2MC4yNjFsLTI5Ljc4MS4wMDdMNTkuNDcgNi41NDR6XCIvPlxyXG4gICAgPHBhdGggZmlsbD1cInVybCgjYTdmZWU5NzAtYTc4NC00YmIxLWFmOGQtNjNkMThlNWY3ZGI5KVwiIGQ9XCJNNjYuNTk1IDkuMzY0YTQuMTQ1IDQuMTQ1IDAgMCAwLTMuOTI4LTIuODJIMzMuNjQ4YTQuMTQ2IDQuMTQ2IDAgMCAxIDMuOTI4IDIuODJsMjUuMTg0IDc0LjYyYTQuMTQ2IDQuMTQ2IDAgMCAxLTMuOTI4IDUuNDcyaDI5LjAyYTQuMTQ2IDQuMTQ2IDAgMCAwIDMuOTI3LTUuNDcyelwiLz5cclxuPC9zdmc+YCxcclxuICAnU0FQJzogYDxzdmcgaGVpZ2h0PVwiNDVcIiB2aWV3Qm94PVwiMCAwIDE5Mi43NTYgMTkyLjc1NlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICA8ZGVmcz48L2RlZnM+XHJcbiAgPHBhdGggZmlsbD1cIiNmZmZcIiBkPVwiTSAwIDAgTCAxOTIuNzU2IDAgTCAxOTIuNzU2IDE5Mi43NTYgTCAwIDE5Mi43NTYgTCAwIDAgWlwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCI+PC9wYXRoPlxyXG4gIDxwYXRoIGQ9XCJNIDE4My43MjcgNjYuNzc1IEMgMTg3LjAwNiA2Ni43NzUgMTg5LjkyMiA2My44NjEgMTg5LjkyMiA2MC4yMTcgQyAxODkuOTIyIDU2Ljc1NiAxODcuMDA2IDU0LjAyMyAxODMuNzI3IDU0LjAyMyBDIDE4MC4yNjYgNTQuMDIzIDE3Ny4xNyA1Ni43NTUgMTc3LjE3IDYwLjIxNyBDIDE3Ny4xNyA2My44NjEgMTgwLjI2NiA2Ni43NzUgMTgzLjcyNyA2Ni43NzUgWiBNIDE4My43MjcgNjUuODY1IEMgMTgwLjQ1IDY1Ljg2NSAxNzguMDgxIDYzLjQ5NyAxNzguMDgxIDYwLjIxOCBDIDE3OC4wODEgNTcuMzAzIDE4MC40NSA1NC45MzUgMTgzLjcyNyA1NC45MzUgQyAxODYuNjQ0IDU0LjkzNyAxODkuMDA4IDU3LjMwMSAxODkuMDEgNjAuMjE4IEMgMTg5LjAxIDYzLjQ5NyAxODYuNjQzIDY1Ljg2NSAxODMuNzI3IDY1Ljg2NSBaXCIgZmlsbD1cIiMyMzRiOGRcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuICA8cGF0aCBkPVwiTSAxODIuMDg4IDYwLjk0NiBMIDE4NC4yNzQgNjAuOTQ2IEMgMTg1LjE4NiA2MC45NDYgMTg1LjM2OCA2MS40OTIgMTg1LjM2OCA2Mi4wMzkgQyAxODUuMzY4IDYyLjIyMiAxODUuMzY4IDYzLjMxNCAxODUuNTUgNjMuODYxIEwgMTg2LjY0NCA2My44NjEgTCAxODYuNjQ0IDYzLjQ5NyBDIDE4Ni40NjIgNjMuMzE0IDE4Ni4yNzkgNjMuMzE0IDE4Ni4yNzkgNjIuOTUgTCAxODYuMjc5IDYxLjg1NyBDIDE4Ni4yNzkgNjAuOTQ2IDE4NS45MTYgNjAuNzY0IDE4NS41NSA2MC41ODIgQyAxODYuMDk3IDYwLjIxOCAxODYuNDYyIDU5Ljg1MyAxODYuNDYyIDU4Ljc2MSBDIDE4Ni40NjIgNTcuNDg2IDE4NS4zNjggNTYuOTM5IDE4NC4yNzQgNTYuOTM5IEwgMTgxLjE3OCA1Ni45MzkgTCAxODEuMTc4IDYzLjg2MiBMIDE4Mi4wODggNjMuODYyIEwgMTgyLjA4OCA2MC45NDYgTCAxODIuMDg4IDYwLjk0NiBaIE0gMTgyLjA4OCA1Ny44NSBMIDE4NC4yNzQgNTcuODUgQyAxODQuODIxIDU3Ljg1IDE4NS41NDkgNTcuODUgMTg1LjU0OSA1OC45NDMgQyAxODUuNTQ5IDU5Ljg1NCAxODQuODIgNjAuMDM2IDE4NC4wOTIgNjAuMDM2IEwgMTgyLjA4OCA2MC4wMzYgTCAxODIuMDg4IDU3Ljg1IEwgMTgyLjA4OCA1Ny44NSBaIE0gMy4zODEgNTMuODQyIEwgODcuMTc4IDUzLjg0MiBMIDg3LjE3OCAxMzcuODIxIEwgMy4zODEgMTM3LjgyMSBMIDMuMzgxIDUzLjg0MiBaIE0gMTc0LjgwMSA1My44NDIgTCA5MC44MjIgNTMuODQyIEwgOTAuODIyIDEzNy44MjEgTCAxNzQuODAxIDUzLjg0MiBaXCIgZmlsbD1cIiMyMzRiOGRcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuICA8cGF0aCBkPVwiTSA2OS41MDggMTI5LjI2IEwgNzYuMDY2IDEyOS4yNiBDIDg1LjcyMSAxMjkuMjYgODcuNTQzIDEyMS4wNjIgODcuMTc4IDExOC42OTQgQyA4Ni42MzIgMTEyLjg2NSA4Mi4yNiAxMDkuMjIxIDc2LjI0OCAxMDkuMjIxIEwgNjAuMjE3IDEwOS4yMjEgTCA2MC4yMTcgMTM4LjU1IEwgNjkuNTA4IDEzOC41NSBMIDY5LjUwOCAxMjkuMjYgWiBNIDY5LjUwOCAxMjIuMzM3IEwgNjkuNTA4IDExNS45NjEgTCA3My41MTUgMTE1Ljk2MSBDIDc2Ljc5NCAxMTUuOTYxIDc4LjA2OSAxMTYuNjkgNzguMDY5IDExOS4wNTggQyA3OC4wNjkgMTIwLjE1MSA3OC4wNjkgMTIyLjMzNyA3NC40MjYgMTIyLjMzNyBMIDY5LjUwOCAxMjIuMzM3IEwgNjkuNTA4IDEyMi4zMzcgWlwiIGZpbGw9XCIjZmZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbiAgPHBhdGggZD1cIk0gMzkuOTk3IDEzMi4zNTYgTCA0OS4yODggMTMyLjM1NiBMIDUxLjY1NiAxMzguNTQ5IEwgNjEuNDkzIDEzOC41NDkgTCA1MC4zOCAxMDkuMjIxIEwgMzkuMjY4IDEwOS4yMjEgTCAyNy45NzQgMTM4LjU1IEwgMzcuNDQ3IDEzOC41NSBMIDM5Ljk5NyAxMzIuMzU2IEwgMzkuOTk3IDEzMi4zNTYgWiBNIDQ0LjkxNiAxMTcuNDE5IEwgNDguMTk1IDEyNi4xNjIgTCA0MS44MiAxMjYuMTYyIEwgNDQuOTE2IDExNy40MTkgWlwiIGZpbGw9XCIjZmZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbiAgPHBhdGggZD1cIk0gMi44MzQgMTI5LjI2IEwgMi44MzQgMTMwLjkgQyAyLjgzNCAxMzYuNzI5IDkuOTM4IDEzOC45MTUgMTYuNjc5IDEzOC45MTUgQyAyNS43ODcgMTM4LjkxNSAzMS4yNTMgMTM1LjYzNiAzMS4yNTMgMTI5LjI2MSBDIDMxLjI1MyAxMTkuMDU5IDEzLjAzNiAxMjIuMTU2IDEzLjAzNiAxMTYuMTQ1IEMgMTMuMDM2IDExMy45NTggMTQuNjc2IDExMy4yMyAxNy4yMjYgMTEzLjIzIEMgMTguODY1IDExMy4yMyAxOS40MTIgMTEzLjU5NCAxOS45NTggMTEzLjk1OSBDIDIxLjA1MSAxMTQuNjg4IDIxLjA1MSAxMTUuNTk5IDIxLjA1MSAxMTcuMjM4IEwgMzAuNzA2IDExNy4yMzggTCAzMC43MDYgMTE2LjUwOSBDIDMwLjcwNiAxMTIuMTM3IDI2Ljg4IDEwOC40OTMgMTcuMjI2IDEwOC40OTMgQyA2LjY2IDEwOC40OTMgMy4zODEgMTEyLjUwMSAzLjM4MSAxMTcuMjM3IEMgMy4zODEgMTI3LjYyMSAyMS41OTggMTI0LjM0MSAyMS41OTggMTMwLjcxNyBDIDIxLjU5OCAxMzEuOTkyIDIwLjUwNSAxMzMuODE0IDE2LjY3OSAxMzMuODE0IEMgMTMuNTgyIDEzMy44MTQgMTIuNDg5IDEzMi4zNTcgMTIuNDg5IDEzMC4xNyBMIDEyLjQ4OSAxMjkuMjYgTCAyLjgzNCAxMjkuMjYgTCAyLjgzNCAxMjkuMjYgWlwiIGZpbGw9XCIjZmZmXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbjwvc3ZnPmAsXHJcbiAgJ01mZyc6IGA8c3ZnIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCAxMDAgNTBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGRlZnM+PC9kZWZzPlxyXG4gIDxyZWN0IHdpZHRoPVwiOTNcIiBoZWlnaHQ9XCIzOFwiIHN0eWxlPVwiZmlsbDogcmdiKDIxNiwgMjE2LCAyMTYpO1wiPjwvcmVjdD5cclxuICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgNSwgNilcIj5cclxuICAgIDxnPlxyXG4gICAgICA8Zz5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNNDEuMSwxLjhsMTMuMSwyMC41aC0zLjhMNDcsMTcuMUgzNS42bC0zLjEsNS4yaC0zLjhMNDEuMSwxLjh6IE0zNy4yLDE0LjVoOC4xbC00LjItNi42TDM3LjIsMTQuNXpcIj48L3BhdGg+XHJcbiAgICAgICAgPHBhdGggZmlsbD1cIiNGRkZGRkZcIiBkPVwiTTU5LjMsMi41aDkuM2M4LjgsMCwxMi43LDUuMiwxMi43LDkuOWMwLDUuMS00LjgsOS45LTEyLjYsOS45aC05LjNWMi41eiBNNjIuNywxOS43aDUuNFxyXG5cdFx0XHRcdGM3LjgsMCw5LjUtNC45LDkuNS03LjRjMC00LTMtNy40LTkuNy03LjRoLTUuM1YxOS43elwiPjwvcGF0aD5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNMjUuNywxMi4zYzAtNS44LTUuNC0xMC4xLTEyLjUtMTAuMUM1LjQsMi4yLDAsNi40LDAsMTIuNGMwLDYsNS40LDEwLjIsMTMuMSwxMC4yYzEuNCwwLDIuNi0wLjIsMy44LTAuNVxyXG5cdFx0XHRcdGwzLjMsMi42aDVsLTQuOS0zLjlDMjMuNiwxOSwyNS43LDE1LjksMjUuNywxMi4zeiBNMTMuMSwyMGMtNi40LDAtOS41LTMuNS05LjUtNy41YzAtMywyLjMtNy42LDkuNS03LjZjNS4zLDAsOS4yLDMuMyw5LjIsNy43XHJcblx0XHRcdFx0QzIyLjEsMTYuNSwxOC40LDIwLDEzLjEsMjB6XCI+PC9wYXRoPlxyXG4gICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gLFxyXG4gICdQcmlvcml0eSc6IGA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiNjBcIiB2aWV3Qm94PVwiMCAwIDI0MCAxMzNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGc+XHJcbiAgICA8cGF0aCBkPVwiTSAwIDAgTCAyNDAgMCBMIDI0MCA4MC40NyBMIDAgODAuNDcgTCAwIDAgWlwiIGZpbGw9XCIjZmZmXCIgc3R5bGU9XCJcIi8+XHJcbiAgICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgLTEyLjUyNDg0MSwgLTI0LjU5MTQ0NClcIj5cclxuICAgICAgPHBhdGggZD1cIk0gMTc3Ljc0OCA1MC42NzMgTCAxNzMuNjQyIDUwLjY3MyBMIDE3My42NDIgNTUuMDIyIEwgMTc3Ljc0OCA1NS4wMjIgTCAxNzcuNzQ4IDUwLjY3MyBaXCIgZmlsbD1cIiMwMGFlZWZcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDYyLjczNCA1Ni41NzggQyA2Mi43MzQgNTUuNDQgNjIuNDIzIDU1LjA3NyA2MS40MzcgNTUuMDI2IEwgNTkuMjYzIDU0Ljg2OSBMIDU5LjI2MyA1MC42NzQgTCA2OC4wMTkgNTAuNjc0IEwgNjguMDE5IDU0LjU1OCBDIDY5LjIxMSA1MS45NjggNzEuOTU2IDQ5Ljg5NiA3NS4zNzMgNDkuODk2IEMgNzcuMDg2IDQ5Ljg5NiA3OC42NCA1MC4yMDcgODAuMzQ4IDUxLjAzNSBMIDgwLjM0OCA1OC43NTUgTCA3NS41MzEgNTkuMTE3IEwgNzUuNTMxIDU2LjczNCBDIDc1LjUzMSA1Ni4xMTMgNzUuNDI4IDU1LjY0NyA3NS4wMTIgNTUuNDQgQyA3NC41NDQgNTUuMjMyIDc0LjE4IDU1LjE4IDczLjYxMyA1NS4xOCBDIDcwLjgxNSA1NS4xOCA2OC44OTggNTcuNDA5IDY4Ljg5OCA2MC40MTQgTCA2OC44OTggNzIuNDMxIEwgNzMuNDA4IDcyLjYzNiBMIDczLjQwOCA3Ni43MyBMIDU5LjUyIDc2LjczIEwgNTkuNTIgNzIuNzk1IEwgNjEuMjMyIDcyLjYzNiBDIDYyLjIxNyA3Mi41MzMgNjIuNzM0IDcyLjIyNCA2Mi43MzQgNzAuOTI5IEwgNjIuNzM0IDU2LjU3OCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDExNS40NjkgNjMuODMyIEMgMTE1LjQ2OSA1OC4wMzEgMTE0LjA3NCA1NC40NTYgMTA5LjkzIDU0LjQ1NiBDIDEwNS44MzMgNTQuNDU2IDEwNC4xNzcgNTcuOTc4IDEwNC4xNzcgNjIuOTUyIEMgMTA0LjE3NyA2Ny43NjggMTA0Ljg1IDcyLjk0NiAxMDkuODI1IDcyLjk0NiBDIDExMy44NjUgNzIuOTQ2IDExNS40NjkgNjkuMjIxIDExNS40NjkgNjMuODMyIFogTSAxMTAuMjM5IDQ5Ljg5NiBDIDExNC4wNzQgNDkuODk2IDEyMS43ODkgNTEuMDg1IDEyMS43ODkgNjMuMDAzIEMgMTIxLjc4OSA3Mi45NDYgMTE2LjI0NyA3Ny41MDcgMTA5LjQxIDc3LjUwNyBDIDEwMi40NjcgNzcuNTA3IDk3LjkwOSA3My4wNTMgOTcuOTA5IDYzLjY3NCBDIDk3LjkwOSA1Mi45MDIgMTA0LjkwNCA0OS44OTYgMTEwLjIzOSA0OS44OTYgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAxMjcuNTQzIDU2LjU3OCBDIDEyNy41NDMgNTUuNDQgMTI3LjIzNSA1NS4wNzcgMTI2LjI1IDU1LjAyNiBMIDEyNC4wNzIgNTQuODY5IEwgMTI0LjA3MiA1MC42NzQgTCAxMzIuODMgNTAuNjc0IEwgMTMyLjgzIDU0LjU1OCBDIDEzNC4wMTkgNTEuOTY4IDEzNi43NjYgNDkuODk2IDE0MC4xODcgNDkuODk2IEMgMTQxLjg5NCA0OS44OTYgMTQzLjQ0OSA1MC4yMDcgMTQ1LjE1OCA1MS4wMzUgTCAxNDUuMTU4IDU4Ljc1NSBMIDE0MC4zNDEgNTkuMTE3IEwgMTQwLjM0MSA1Ni43MzQgQyAxNDAuMzQxIDU2LjExMyAxNDAuMjM4IDU1LjY0NyAxMzkuODIyIDU1LjQ0IEMgMTM5LjM1NiA1NS4yMzIgMTM4Ljk5NSA1NS4xOCAxMzguNDI1IDU1LjE4IEMgMTM1LjYyNSA1NS4xOCAxMzMuNzEgNTcuNDA5IDEzMy43MSA2MC40MTQgTCAxMzMuNzEgNzIuNDMxIEwgMTM4LjIxNSA3Mi42MzYgTCAxMzguMjE1IDc2LjczIEwgMTI0LjMzMyA3Ni43MyBMIDEyNC4zMzMgNzIuNzk1IEwgMTI2LjA0MiA3Mi42MzYgQyAxMjcuMDI2IDcyLjUzMyAxMjcuNTQzIDcyLjIyNCAxMjcuNTQzIDcwLjkyOSBMIDEyNy41NDMgNTYuNTc4IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjAyLjAxNiA3MS44MTIgQyAyMDAuMjAzIDc0LjQgMTk3LjA0NiA3NS44NTEgMTkzLjYyMiA3NS44NTEgQyAxODguNDQzIDc1Ljg1MSAxODUuNTk0IDczLjAwMSAxODUuNTk0IDY2Ljg4NyBMIDE4NS41OTQgNTYuNDc3IEMgMTg1LjU5NCA1NS4zODYgMTg1LjE3OCA1NS4wNzggMTg0LjMwMSA1NS4wMjMgTCAxODIuNjM5IDU0LjkyMSBMIDE4Mi42MzkgNTAuNjczIEwgMTkxLjc1NiA1MC42NzMgTCAxOTEuNzU2IDY1LjU0MSBDIDE5MS43NTYgNjguNyAxOTIuMjc0IDcxLjA4NCAxOTUuNTkxIDcxLjA4NCBDIDE5OS4yMiA3MS4wODQgMjAxLjEzNiA2OC42NDcgMjAxLjEzNiA2NS45NTcgTCAyMDEuMTM2IDU2LjU3OCBDIDIwMS4xMzYgNTUuNDQgMjAwLjgyMiA1NS4wMjMgMTk5LjgzNyA1NS4wMjMgTCAxOTguMTgyIDU0LjkyMSBMIDE5OC4xODIgNTAuNjczIEwgMjA3LjI5NyA1MC42NzMgTCAyMDcuMjk3IDc1Ljc0NyBDIDIwNy4yOTcgODQuMjk2IDIwMyA4Ny44MTcgMTk1LjI3OCA4Ny44MTcgQyAxOTIuMDE2IDg3LjgxNyAxODcuNzE5IDg3LjE5NiAxODUuNTQ0IDg2LjEwOSBMIDE4NS41NDQgODAuNjk0IEwgMTkwLjQ2MyA4MC4yNzggTCAxOTAuNDYzIDgwLjk3OCBDIDE5MC40NjMgODEuOTYyIDE5MC43MjEgODIuNDgyIDE5MS42NTcgODIuODQzIEMgMTkyLjYzOSA4My4yMDcgMTkzLjc4MSA4My4zNjIgMTk1LjMzNCA4My4zNjIgQyAyMDAuMDk5IDgzLjM2MiAyMDIuMDE2IDgwLjQ2MSAyMDIuMDE2IDc1Ljc0NyBMIDIwMi4wMTYgNzEuODEyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMTU3LjY3MSA3Mi40MyBMIDE1Ny42NzEgNTAuNjc0IEwgMTQ4LjM5OCA1MC42NzQgTCAxNDguMzk4IDU0Ljk3MiBMIDE1MC4yMSA1NS4wNzcgQyAxNTEuMTkzIDU1LjA3NyAxNTEuNTA4IDU1LjQzOSAxNTEuNTA4IDU2LjU3NyBMIDE1MS41MzUgNzYuNzMgTCAxNjAuNjIyIDc2LjczIEwgMTYwLjYyMiA3Mi41ODYgTCAxNTcuNjcxIDcyLjQzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gOTIuODYgNzIuNDMgTCA5Mi44NiA1MC42NzQgTCA4My41ODkgNTAuNjc0IEwgODMuNTg5IDU0Ljk3MiBMIDg1LjM5OSA1NS4wNzcgQyA4Ni4zODYgNTUuMDc3IDg2LjY5NyA1NS40MzkgODYuNjk3IDU2LjU3NyBMIDg2LjY2OSA3Ni43MyBMIDk1LjgxNCA3Ni43MyBMIDk1LjgxNCA3Mi41ODYgTCA5Mi44NiA3Mi40MyBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDE3OS4xNzEgNzEuNjUzIEMgMTc4LjM0NiA3Mi4xNzMgMTc3LjA0OCA3Mi43NDEgMTc1LjY1MyA3Mi43NDEgQyAxNzMuNTI0IDcyLjc0MSAxNzIuMjgxIDcxLjgxMSAxNzIuMjgxIDY4LjY0NyBMIDE3Mi4yODEgNDUuMTgzIEwgMTY4LjkxNiA0NS4xODMgQyAxNjcuODI4IDQ4LjEzNCAxNjYuNTg2IDUwLjkzMyAxNjIuOTU4IDUxLjI0MiBMIDE2Mi40NDIgNTUuMDIzIEwgMTY2LjEyIDU1LjAyMyBMIDE2Ni4xMiA2OC44NTUgQyAxNjYuMTIgNzIuNDgxIDE2Ni4wNjYgNzcuNDU1IDE3NC4xNDQgNzcuNDU1IEMgMTc2LjU4MiA3Ny40NTUgMTc5LjE3MSA3Ni43MyAxODAuNzI4IDc1LjY0NCBMIDE3OS4xNzEgNzEuNjUzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gNDQuMzMyIDcyLjU4NyBDIDQyLjk4NiA3Mi41ODcgNDEuMTIxIDcyLjE3MyAzOS43NzUgNzEuMjkxIEwgMzkuNzc1IDU5LjM3NyBDIDM5Ljc3NSA1Ni45OTUgNDIuMDUzIDU0LjkyIDQ1LjAwNyA1NC45MiBDIDQ3Ljc1MSA1NC45MiA1MC4yNDIgNTYuNjg0IDUwLjI0MiA2My41NzIgQyA1MC4yNDIgNjguMDc3IDQ4LjczNyA3Mi41ODcgNDQuMzMyIDcyLjU4NyBaIE0gNDcuMjg5IDQ5Ljg5NiBDIDQyLjg4NCA0OS44OTYgNDAuMDM2IDUyLjI3OSAzOS4xMDMgNTQuMDQgTCAzOS4xMDMgNTAuNjc1IEwgMzAuMzQ3IDUwLjY3NSBMIDMwLjM0NyA1NC44NjggTCAzMi41MjUgNTUuMDIzIEMgMzMuNTA3IDU1LjAyMyAzMy44MTYgNTUuNDQgMzMuODE2IDU2LjU3OCBMIDMzLjc4MSA4Ny40NTUgTCA0My45NjggODcuNDU1IEwgNDMuOTY4IDgzLjM2MiBMIDM5Ljc3NSA4My4xNTMgTCAzOS43NzUgNzYuMDA1IEMgNDEuMTIxIDc2LjgzMyA0My4yOTYgNzcuNTA3IDQ1LjMxNyA3Ny41MDcgQyA1Mi4xNTggNzcuNTA3IDU2LjY2MiA3Mi41ODcgNTYuNjYyIDYzLjA1NSBDIDU2LjY2MiA1My43ODMgNTMuMDM4IDQ5Ljg5NiA0Ny4yODkgNDkuODk2IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjEyLjg4MiA3Mi42NjIgTCAyMTIuODgyIDczLjI3MiBMIDIxMS42NzQgNzMuMjcyIEwgMjExLjY3NCA3Ni42NzYgTCAyMTAuOTI3IDc2LjY3NiBMIDIxMC45MjcgNzMuMjcyIEwgMjA5LjcxNyA3My4yNzIgTCAyMDkuNzE3IDcyLjY2MiBMIDIxMi44ODIgNzIuNjYyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjE1LjQwMSA3NS4xOTQgQyAyMTUuNDI5IDc1LjI1OCAyMTUuNDU2IDc1LjMyMiAyMTUuNDggNzUuMzg4IEMgMjE1LjUxIDc1LjMyMiAyMTUuNTM0IDc1LjI1MyAyMTUuNTY0IDc1LjE5IEMgMjE1LjU4OSA3NS4xMjQgMjE1LjYxOCA3NS4wNjYgMjE1LjY1IDc1LjAwNCBMIDIxNi44NCA3Mi43ODEgQyAyMTYuODU1IDcyLjc1MiAyMTYuODY4IDcyLjczIDIxNi44ODQgNzIuNzE3IEMgMjE2LjkwMSA3Mi42OTcgMjE2LjkyMSA3Mi42ODUgMjE2LjkzOSA3Mi42NzggQyAyMTYuOTU2IDcyLjY2OSAyMTYuOTggNzIuNjY4IDIxNy4wMDMgNzIuNjY1IEMgMjE3LjAyMyA3Mi42NjMgMjE3LjA1NyA3Mi42NjIgMjE3LjA4OSA3Mi42NjIgTCAyMTcuNjUzIDcyLjY2MiBMIDIxNy42NTMgNzYuNjc2IEwgMjE2Ljk5NCA3Ni42NzYgTCAyMTYuOTk0IDc0LjA4MiBDIDIxNi45OTQgNzQuMDMzIDIxNi45OTUgNzMuOTggMjE2Ljk5OSA3My45MjYgQyAyMTcuMDAyIDczLjg2NiAyMTcuMDA1IDczLjgwOSAyMTcuMDExIDczLjc1MSBMIDIxNS43OTkgNzYuMDI2IEMgMjE1Ljc3IDc2LjA3NSAyMTUuNzM0IDc2LjExNyAyMTUuNjg5IDc2LjE0NiBDIDIxNS42NDYgNzYuMTc1IDIxNS41OTQgNzYuMTg3IDIxNS41MzQgNzYuMTg3IEwgMjE1LjQzMyA3Ni4xODcgQyAyMTUuMzczIDc2LjE4NyAyMTUuMzE5IDc2LjE3NSAyMTUuMjc1IDc2LjE0NiBDIDIxNS4yMzMgNzYuMTE3IDIxNS4xOTUgNzYuMDc1IDIxNS4xNjUgNzYuMDI2IEwgMjEzLjk0MSA3My43NDIgQyAyMTMuOTQ3IDczLjgwMyAyMTMuOTUgNzMuODYxIDIxMy45NTMgNzMuOTIgQyAyMTMuOTU3IDczLjk3OCAyMTMuOTU4IDc0LjAzMiAyMTMuOTU4IDc0LjA4MiBMIDIxMy45NTggNzYuNjc2IEwgMjEzLjI5OSA3Ni42NzYgTCAyMTMuMjk5IDcyLjY2MiBMIDIxMy44NjYgNzIuNjYyIEMgMjEzLjg5OSA3Mi42NjIgMjEzLjkyNCA3Mi42NjMgMjEzLjk1IDcyLjY2NSBDIDIxMy45NzQgNzIuNjY4IDIxMy45OTIgNzIuNjY5IDIxNC4wMTUgNzIuNjc4IEMgMjE0LjAzNSA3Mi42ODUgMjE0LjA1MiA3Mi42OTcgMjE0LjA2NyA3Mi43MTcgQyAyMTQuMDg5IDcyLjczIDIxNC4xMDMgNzIuNzUyIDIxNC4xMTYgNzIuNzgxIEwgMjE1LjMxNCA3NS4wMDkgQyAyMTUuMzQ4IDc1LjA2OCAyMTUuMzc1IDc1LjEzMyAyMTUuNDAxIDc1LjE5NCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gLFxyXG4gICdBY3RpdmUgRGlyZWN0b3J5JzogYDxzdmcgdmlld0JveD1cIjAgMCA5NTQuMSAxNTguMlwiIGhlaWdodD1cIjM4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gIDxkZWZzPjwvZGVmcz5cclxuICA8c3R5bGU+LnN0MHtmaWxsOiMwMGFhZjJ9PC9zdHlsZT5cclxuICA8ZyBpZD1cIkxheWVyXzJfMV9cIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAtMzMuNTYxKVwiPlxyXG4gICAgPGcgaWQ9XCJMYXllcl8xLTJcIj5cclxuICAgICAgPHBhdGggaWQ9XCJwYXRoNlwiIGNsYXNzPVwic3QwXCIgZD1cIk0xNTguNiAxNTQuMnYzMy4zYzAgMy45LTEuMiA0LjctNC45IDQuMS0yNC44LTMuNy00OS45LTcuMS03NC45LTEwLjYtNC41LS42LTYuMS0yLjItNi4xLTcuMS40LTE3LjcuMi0zNS41IDAtNTMuNCAwLTMuOSAxLjItNS4xIDUuMS01LjEgMjUuNi4yIDUwLjguMiA3NS45LjIgNC4xIDAgNS4xIDEuNiA1LjEgNS4zLS40IDExLjItLjIgMjIuMi0uMiAzMy4zelwiIHRyYW5zZm9ybT1cIm1hdHJpeCgxLCAwLCAwLCAxLCA1OC42NzgxNjQsIDMzLjY1OTgwNClcIj48L3BhdGg+XHJcbiAgICAgIDxwYXRoIGlkPVwicGF0aDhcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMTE2LjEgMTA5LjJjLTEyLjYgMC0yNS4yLS4yLTM3LjggMC0zLjkgMC01LjUtLjgtNS41LTUuMy4yLTE4LjEuMi0zNS45IDAtNTMuOCAwLTMuNSAxLjItNC43IDQuNS01LjMgMjUuOC0zLjcgNTEuNi03LjMgNzcuNC0xMS4yIDQuNS0uNiAzLjcgMi40IDMuNyA0LjkgMCAxNiAuMiAzMi4zIDAgNDguMyAwIDUuOS0uMiAxMS44IDAgMTcuNy4yIDMuNy0xLjIgNC43LTQuNyA0LjctMTIuNC0uMi0yNSAwLTM3LjYgMHpcIiB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgNTguNjc4MTY0LCAzMy42NTk4MDQpXCI+PC9wYXRoPlxyXG4gICAgICA8cGF0aCBpZD1cInBhdGgxMFwiIGNsYXNzPVwic3QwXCIgZD1cIk0zMi43IDExNS45aDI4LjJjMyAwIDQuMyAxIDQuMyA0LjF2NTUuNmMwIDMuMi0xLjQgMy41LTQuMyAzLjItMTguNy0yLjgtMzcuNC01LjUtNTYtOC4xLTMuNy0uNi00LjktMS44LTQuOS01LjcuMi0xNC44LjItMjkuNiAwLTQ0LjcgMC0zLjcgMS00LjcgNC43LTQuNyA5LjUuMyAxOC42LjMgMjggLjN6XCIgdHJhbnNmb3JtPVwibWF0cml4KDEsIDAsIDAsIDEsIDU4LjY3ODE2NCwgMzMuNjU5ODA0KVwiPjwvcGF0aD5cclxuICAgICAgPHBhdGggaWQ9XCJwYXRoMTJcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMzIuNyAxMDkuMkg0LjljLTMuNSAwLTQuNy0xLjItNC43LTQuOS4yLTE0LjYuMi0yOS4yIDAtNDMuOSAwLTMuNSAxLTQuNyA0LjctNS4zIDE4LjctMi40IDM3LjQtNS4xIDU2LTguMSA0LjMtLjYgNC43LjggNC43IDQuM3Y1My4yYzAgMy45LTEuNiA0LjUtNS4xIDQuNS05LjMgMC0xOC43LjItMjcuOC4yelwiIHRyYW5zZm9ybT1cIm1hdHJpeCgxLCAwLCAwLCAxLCA1OC42NzgxNjQsIDMzLjY1OTgwNClcIj48L3BhdGg+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gXHJcbn07XHJcbi8qKiAqL1xyXG5leHBvcnQgY2xhc3MgRGVzaWduZXJSZWY8TyA9IGFueT4ge1xyXG4gIF91bmxvY2skID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rlc2lnbmVyOiBEZXNpZ25lck1vZGVsLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgcHVibGljIG1vZGU6IERlc2lnbk1vZGUpIHsgfVxyXG4gIGdldCBkZXNpZ25lcigpOiBEZXNpZ25lckluZm8geyByZXR1cm4gdGhpcy5fZGVzaWduZXI7IH1cclxuICBnZXQgbW9kZWwoKTogRWxlbWVudEluZm88Tz4geyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfVxyXG4gIGdldCB1bmxvY2soKSB7IHJldHVybiB0aGlzLl91bmxvY2skLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHN0YXRlKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUkLnZhbHVlOyB9XHJcbiAgc2V0IHN0YXRlKHZhbCkgeyB0aGlzLl9zdGF0ZSQubmV4dCh2YWwpOyB9XHJcbiAgY3JlYXRlKGVsZW1lbnQ6IEVsZW1lbnRJbmZvLCB0ZW1wbGF0ZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVmID0gbmV3IERlc2lnbmVyUmVmKHRoaXMuX2Rlc2lnbmVyLCBlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCwgJ3dpZGdldCcpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3tcclxuICAgICAgcHJvdmlkZTogRGVzaWduZXJSZWYsIHVzZVZhbHVlOiByZWZcclxuICAgIH1dLCAodGhpcy5fZWxlbWVudCBhcyBFbGVtZW50TW9kZWwpLmluamVjdG9yKTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkuaW5qZWN0b3IgPSBpbmplY3RvcjtcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxUPiB7XHJcbiAgbW9kZWw6IEVsZW1lbnRJbmZvPFQ+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIG9uQ29udGludWU/KCk7XHJcbiAgb25GaW5pc2g/KCk7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXNpZ25Nb2RlID0gJ2FkZCcgfCAnZWRpdCcgfCAnd2lkZ2V0JztcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGVsZW1lbnQpKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlPZih2YWw6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgaWYgKCF2YWwpIHJldHVybiBbXTtcclxuICBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIFt2YWxdO1xyXG4gIHJldHVybiB2YWw7XHJcbn1cclxuXHJcbmNvbnN0IE5BTUVfQ0hBUiA9IC9bQS1aXSsvZyxcclxuICBOT05fTkFNRV9DSEFSID0gL1teXFx3XSsvZztcclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyYW1OYW1lKG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBuYW1lLlxyXG4gICAgcmVwbGFjZSgnICcsICctJykuXHJcbiAgICByZXBsYWNlKE5BTUVfQ0hBUiwgKGMsIGkpID0+IChpID4gMCAmJiBuYW1lLmNoYXJBdChpIC0gMSkgIT09ICctJyA/ICctJyA6ICcnKSArIGMudG9Mb3dlckNhc2UoKSkuXHJcbiAgICByZXBsYWNlKE5PTl9OQU1FX0NIQVIsICdfJyk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEZXNpZ25lck1vZGVsIHtcclxuICB0eXBlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0VHlwZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGd1aWRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICByZXBvcnRzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRSZXBvcnRzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBmb3JtczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Rm9ybXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRDdWJlczogVGVtcGxhdGVJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRVdGlsaXRpZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcm9sZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcnVsZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFJ1bGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICB2aWV3czogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Vmlld3M6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFdpZGdldHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGFjdGlvbnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdEFjdGlvbnM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRNb2RlbDxUID0gYW55PiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBvcmRpbmFsPzogbnVtYmVyO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgY29uZmlndXJhdGlvbkZpbGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICByZXNvdXJjZT86IHN0cmluZztcclxuICBjb3B5T2Y/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgcHJpdmlsZWdlcz86IFByaXZpbGVnZXNNb2RlbDtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbiAgYW5vbWFseT86IEFub21hbHlQb2xpY3k7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGFzc2lnbmFibGU/OiBib29sZWFuO1xyXG4gIHBvc2l0aW9uPzogUG9zaXRpb25Qb2xpY3k7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHN0ZXBzPzogR3VpZGVTdGVwW107XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBDdWJlQXhpc01vZGVsW107XHJcbiAgdmlld3M/OiBDdWJlVmlld01vZGVsW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleE1vZGVsW107XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIHJ1bGVzPzogUGVybWlzc2lvbk1vZGVsW107XHJcbiAgcG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHBhdHRlcm5zPzogUGF0dGVybk1vZGVsW107XHJcbiAgcHJpb3JpdHk/OiBudW1iZXI7XHJcbiAgY3ViZXM/OiBzdHJpbmdbXTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBzZXF1ZW5jZVBvbGljeT86ICdCb3RoJyB8ICdFaXRoZXInIHwgJ0hpZ2hlcic7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXhNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVWaWV3TW9kZWwge1xyXG4gIHByaXZpbGVnZXM/OiBQcml2aWxlZ2VzTW9kZWw7XHJcbiAgeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFZpZXdUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybk1vZGVsIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpc01vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgY29tYmluYXRpb24/OiBib29sZWFuO1xyXG4gIGluZGV4YWJsZT86IGJvb2xlYW47XHJcbiAgc2Vuc2l0aXZlPzogYm9vbGVhbjtcclxuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBbm9tYWx5UG9saWN5ID0gJ1Bvc2l0aW9ucycgfCAnUmVjaXBpZW50cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5Nb2RlbCB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgYXhlczogQXhlc01hcDtcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJ1bGU/OiBzdHJpbmc7XHJcbiAgcm9sZXM/OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByaXZpbGVnZXNNb2RlbCB7XHJcbiAgcnVsZT86IHN0cmluZztcclxuICByb2xlcz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVzaWduZXJJbmZvIHtcclxuICB0eXBlczogRWxlbWVudEluZm9bXTtcclxuICBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcmVwb3J0czogRWxlbWVudEluZm9bXTtcclxuICB0UmVwb3J0czogVGVtcGxhdGVJbmZvW107XHJcbiAgZm9ybXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRJbmZvW107XHJcbiAgcm9sZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcnVsZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgdmlld3M6IEVsZW1lbnRJbmZvW107XHJcbiAgd2lkZ2V0czogRWxlbWVudEluZm9bXTtcclxuICBhY3Rpb25zOiBFbGVtZW50SW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRJbmZvPFQgPSBhbnk+IHtcclxuICBmYW1pbHk/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbn1cclxuIl19
|
@@ -71,29 +71,30 @@ export class DesignerItemComponent {
|
|
71
71
|
this._cfr = _cfr;
|
72
72
|
this.svg = FAMILY_SVG;
|
73
73
|
this.form = new FormGroup({});
|
74
|
-
//@Input() state: string;
|
75
74
|
this.onContinue = new EventEmitter();
|
76
75
|
this.onSave = new EventEmitter();
|
77
76
|
this._destroy = new Subject();
|
78
77
|
this.mode = _ref.mode;
|
79
78
|
this.model = _ref.model;
|
80
79
|
}
|
81
|
-
|
80
|
+
optionsattached(componentRef) {
|
82
81
|
const { instance } = componentRef;
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
this.onContinue.emit();
|
90
|
-
}
|
91
|
-
this._options.mode = this.mode;
|
92
|
-
}
|
93
|
-
else {
|
94
|
-
instance.fields = this.model.arguments;
|
95
|
-
instance.formulate();
|
82
|
+
this._options = instance;
|
83
|
+
instance.model = this.model;
|
84
|
+
if (this.mode === 'add' && !this._options.onContinue) {
|
85
|
+
this.mode = 'edit';
|
86
|
+
this._addEditControls();
|
87
|
+
this.onContinue.emit();
|
96
88
|
}
|
89
|
+
this._options.mode = this.mode;
|
90
|
+
this.mode !== 'widget' &&
|
91
|
+
this.form.addControl('options', instance.form, { emitEvent: false });
|
92
|
+
}
|
93
|
+
argumentsattached(componentRef) {
|
94
|
+
const { instance } = componentRef;
|
95
|
+
instance.fields = this.model.arguments;
|
96
|
+
instance.model = this.model.options;
|
97
|
+
instance.layout();
|
97
98
|
this.mode !== 'widget' &&
|
98
99
|
this.form.addControl('options', instance.form, { emitEvent: false });
|
99
100
|
}
|
@@ -101,23 +102,23 @@ export class DesignerItemComponent {
|
|
101
102
|
if (this.model.template) {
|
102
103
|
const comp = this._cfr.component(this.model.template);
|
103
104
|
this.options = new ComponentPortal(comp);
|
104
|
-
this.mode !== 'widget' &&
|
105
|
-
this._ref.state.pipe(takeUntil(this._destroy)).subscribe(v => this.state = v);
|
106
105
|
}
|
107
106
|
else if (this.mode !== 'widget' && this.model.arguments?.length)
|
108
|
-
this.
|
107
|
+
this.arguments = new ComponentPortal(LayoutComponent);
|
109
108
|
else if (this.mode === 'add')
|
110
109
|
this.mode = 'edit';
|
111
110
|
switch (this.mode) {
|
112
111
|
case 'add':
|
113
|
-
this.form.
|
112
|
+
this.form.patchValue({});
|
114
113
|
break;
|
115
114
|
case 'edit':
|
116
|
-
this.
|
115
|
+
this._addEditControls();
|
117
116
|
break;
|
118
117
|
}
|
118
|
+
this.mode !== 'widget' &&
|
119
|
+
this._ref._state$.pipe(takeUntil(this._destroy)).subscribe(v => this.optionsstate = v);
|
119
120
|
}
|
120
|
-
|
121
|
+
_addEditControls() {
|
121
122
|
const name = this._fb.control(null, Validators.required), title = this._fb.control(null, Validators.required);
|
122
123
|
this.model.resource && title.disable();
|
123
124
|
if (this.model.draft)
|
@@ -147,13 +148,16 @@ export class DesignerItemComponent {
|
|
147
148
|
this._ref._unlock$.next(false);
|
148
149
|
}
|
149
150
|
continue() {
|
150
|
-
this._options
|
151
|
+
this._options?.onContinue && this._options.onContinue();
|
151
152
|
this.onContinue.emit();
|
152
|
-
this.
|
153
|
-
|
153
|
+
this._addEditControls();
|
154
|
+
if (this._options)
|
155
|
+
this._options.mode = 'edit';
|
156
|
+
this.mode = 'edit';
|
154
157
|
}
|
155
158
|
save() {
|
156
159
|
Object.assign(this.model, this.form.value);
|
160
|
+
this._options?.onFinish && this._options.onFinish();
|
157
161
|
this.onSave.emit(this.model);
|
158
162
|
this._pane.close();
|
159
163
|
}
|
@@ -173,10 +177,10 @@ export class DesignerItemComponent {
|
|
173
177
|
}
|
174
178
|
}
|
175
179
|
DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.SystemService }, { token: i2.FormBuilder }, { token: i3.PaneRef, optional: true }, { token: DesignerRef }, { token: i4.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
|
176
|
-
DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <ng-container *ngIf=\"options\" (attached)=\"
|
180
|
+
DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}} <mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"!optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n \r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <div [innerHTML]=\"(svg[model.family]|sanitizeHtml)||model.family\" *ngIf=\"model.family\"></div>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}.actions{margin:8px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "pipe", type: i13.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
|
177
181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerItemComponent, decorators: [{
|
178
182
|
type: Component,
|
179
|
-
args: [{ selector: 'bizdoc-designer-element', template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <ng-container *ngIf=\"options\" (attached)=\"
|
183
|
+
args: [{ selector: 'bizdoc-designer-element', template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}} <mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"!optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n \r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <div [innerHTML]=\"(svg[model.family]|sanitizeHtml)||model.family\" *ngIf=\"model.family\"></div>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}.actions{margin:8px}\n"] }]
|
180
184
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SystemService }, { type: i2.FormBuilder }, { type: i3.PaneRef, decorators: [{
|
181
185
|
type: Optional
|
182
186
|
}] }, { type: i15.DesignerRef, decorators: [{
|
@@ -197,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
197
201
|
type: ContentChild,
|
198
202
|
args: [WidgetContentDirective]
|
199
203
|
}] } });
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBSSxDQUFDOztpSEFEOUMsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFPRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdB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LFdBQVc7c0dBdEJmLHFCQUFxQix1TEFRYixvQkFBb0IsZ0ZBQ3BCLHNCQUFzQixnREMvQ3RDLHkvRUE0Q0E7MkZETlEscUJBQXFCO2tCQU41QixTQUFTOytCQUNFLHlCQUF5Qjs7MEJBMEJoQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLFdBQVc7eUZBcEJaLElBQUk7c0JBQVosS0FBSztnQkFFdUIsVUFBVTtzQkFBdEMsTUFBTTt1QkFBQyxVQUFVO2dCQUNPLE1BQU07c0JBQTlCLE1BQU07dUJBQUMsTUFBTTtnQkFHc0IsV0FBVztzQkFBOUMsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBQ0ksYUFBYTtzQkFBbEQsWUFBWTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gXCIuLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwsIHByb2dyYW1OYW1lLCBEZXNpZ25Nb2RlLCBGQU1JTFlfU1ZHLCBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvbGF5b3V0L2xheW91dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NFZGl0Q29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0Q29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jQ29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NBZGRDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcblxyXG4vKipcclxuKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZGVzaWduZXItZWxlbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBEZXNpZ25lckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHN2ZyA9IEZBTUlMWV9TVkc7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgLy9ASW5wdXQoKSBzdGF0ZTogc3RyaW5nO1xyXG4gIEBPdXRwdXQoJ2NvbnRpbnVlJykgcmVhZG9ubHkgb25Db250aW51ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCdzYXZlJykgcmVhZG9ubHkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50TW9kZWw+KCk7XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuICBmcm9sZXM6IFJvbGVbXTtcclxuICBAQ29udGVudENoaWxkKEVkaXRDb250ZW50RGlyZWN0aXZlKSBlZGl0Q29udGVudDogRWRpdENvbnRlbnREaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChXaWRnZXRDb250ZW50RGlyZWN0aXZlKSB3aWRnZXRDb250ZW50OiBXaWRnZXRDb250ZW50RGlyZWN0aXZlO1xyXG4gIG9wdGlvbnM6IFBvcnRhbDxhbnk+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgbW9kZWw6IEVsZW1lbnRNb2RlbDxhbnk+O1xyXG4gIHJvbGVzZmlsdGVyOiBGb3JtQ29udHJvbDtcclxuICBwcml2YXRlIF9vcHRpb25zOiBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55PjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBzdGF0ZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZixcclxuICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHByaXZhdGUgX3JlZjogRGVzaWduZXJSZWY8YW55PixcclxuICAgIHByaXZhdGUgX2NmcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICkge1xyXG4gICAgdGhpcy5tb2RlID0gX3JlZi5tb2RlO1xyXG4gICAgdGhpcy5tb2RlbCA9IF9yZWYubW9kZWwgYXMgRWxlbWVudE1vZGVsO1xyXG4gIH1cclxuICBhdHRhY2hlZChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4gfCBDb21wb25lbnRSZWY8TGF5b3V0Q29tcG9uZW50Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKHRoaXMubW9kZWwudGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5fb3B0aW9ucyA9IGluc3RhbmNlIGFzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+O1xyXG4gICAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdhZGQnICYmICF0aGlzLl9vcHRpb25zLm9uQ29udGludWUpIHtcclxuICAgICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgICAgICAgdGhpcy5fYWRkRm9ybSgpO1xyXG4gICAgICAgIHRoaXMub25Db250aW51ZS5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fb3B0aW9ucy5tb2RlID0gdGhpcy5tb2RlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIChpbnN0YW5jZSBhcyBMYXlvdXRDb21wb25lbnQpLmZpZWxkcyA9IHRoaXMubW9kZWwuYXJndW1lbnRzO1xyXG4gICAgICAoaW5zdGFuY2UgYXMgTGF5b3V0Q29tcG9uZW50KS5mb3JtdWxhdGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiZcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBpbnN0YW5jZS5mb3JtLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZWwudGVtcGxhdGUpIHtcclxuICAgICAgY29uc3QgY29tcCA9IHRoaXMuX2Nmci5jb21wb25lbnQodGhpcy5tb2RlbC50ZW1wbGF0ZSk7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG5ldyBDb21wb25lbnRQb3J0YWw8RGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT4+KGNvbXApO1xyXG4gICAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgICAgdGhpcy5fcmVmLnN0YXRlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB0aGlzLnN0YXRlID0gdik7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmIHRoaXMubW9kZWwuYXJndW1lbnRzPy5sZW5ndGgpXHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG5ldyBDb21wb25lbnRQb3J0YWwoTGF5b3V0Q29tcG9uZW50KTtcclxuICAgIGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ2FkZCcpXHJcbiAgICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xyXG4gICAgICBjYXNlICdhZGQnOlxyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICB0aGlzLl9hZGRGb3JtKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZEZvcm0oKSB7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdGl0bGUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSAmJiB0aXRsZS5kaXNhYmxlKCk7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5kcmFmdCkgdGl0bGUudmFsdWVDaGFuZ2VzLlxyXG4gICAgICBwaXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCh0OiBzdHJpbmcpID0+XHJcbiAgICAgICAgdCAmJiBuYW1lLnNldFZhbHVlKHByb2dyYW1OYW1lKHQpKVxyXG4gICAgICApO1xyXG4gICAgZWxzZVxyXG4gICAgICBuYW1lLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCduYW1lJywgbmFtZSk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgndGl0bGUnLCB0aXRsZSk7XHJcbiAgICB0aGlzLm1vZGVsLnByaXZpbGVnZXMgJiZcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3ByaXZpbGVnZXMnLFxyXG4gICAgICAgIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgICAgIHJ1bGU6IG51bGwsXHJcbiAgICAgICAgICByb2xlczogdGhpcy5fZmIuY29udHJvbDxzdHJpbmdbXT4obnVsbCksXHJcbiAgICAgICAgfSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwsIHsgZW1pdEV2ZW50OiAhdGhpcy5tb2RlbC5kcmFmdCB9KTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ3dpZGdldCcpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVubG9jayhldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoKGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lICE9PSAnQScpIHJldHVybjtcclxuICAgIHRoaXMubW9kZWwucmVzb3VyY2UgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLmdldCgndGl0bGUnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuX3JlZi5fdW5sb2NrJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcbiAgY29udGludWUoKSB7XHJcbiAgICB0aGlzLl9vcHRpb25zLm9uQ29udGludWUgJiYgdGhpcy5fb3B0aW9ucy5vbkNvbnRpbnVlKCk7XHJcbiAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgdGhpcy5fYWRkRm9ybSgpO1xyXG4gICAgdGhpcy5tb2RlID0gdGhpcy5fb3B0aW9ucy5tb2RlID0gJ2VkaXQnO1xyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCB0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQud2hpY2ggPT09IDgzIHx8IGV2ZW50LndoaWNoID09PSAxMTUpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS52YWxpZCAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29uYXRpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2FkZCdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cImF0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWN0aW9uc1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiIChjbGljayk9XCJjb250aW51ZSgpXCI+e3snQ29udGludWUnfHRyYW5zbGF0ZX19Jm5ic3A7PG1hdC1pY29uPmRvdWJsZV9hcnJvdzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZWRpdCdcIj5cclxuICAgIDxtYXQtdG9vbGJhcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCAhZm9ybS5kaXJ0eVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LXRvb2xiYXI+XHJcbiAgICA8cCBjbGFzcz1cImhlbHBcIj57e21vZGVsLmhlbHB9fTwvcD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCIgKm5nSWY9XCIhc3RhdGVcIlxyXG4gICAgICAgICAgKGRvY3VtZW50OmtleWRvd24pPVwiaGFuZGxlS2V5Ym9hcmRFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgcmVxdWlyZWQgI3RpdGxlIC8+XHJcbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ3RpdGxlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignVGl0bGUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ05hbWUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxwICpuZ0lmPVwibW9kZWwucmVzb3VyY2VcIiBjbGFzcz1cIm1lc3NhZ2VcIiAoY2xpY2spPVwidW5sb2NrKCRldmVudClcIiBbaW5uZXJIVE1MXT1cIidVbmxvY2snfHRyYW5zbGF0ZVwiPjwvcD5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdENvbnRlbnQ/LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uc1wiIChhdHRhY2hlZCk9XCJhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8Yml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXMgKm5nSWY9XCJmb3JtLmNvbnRhaW5zKCdwcml2aWxlZ2VzJykgJiYgIXN0YXRlXCIgW2Zvcm1dPVwiZm9ybS5nZXQoJ3ByaXZpbGVnZXMnKVwiPjwvYml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXM+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cIihzdmdbbW9kZWwuZmFtaWx5XXxzYW5pdGl6ZUh0bWwpfHxtb2RlbC5mYW1pbHlcIiAqbmdJZj1cIm1vZGVsLmZhbWlseVwiPjwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ3aWRnZXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwiYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwib3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbmF0aW5lcj5cclxuIl19
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBSSxDQUFDOztpSEFEOUMsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFPRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdB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QUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7a0hBaklLLHFCQUFxQiwySUFzQmpCLFdBQVc7c0dBdEJmLHFCQUFxQix1TEFPYixvQkFBb0IsZ0ZBQ3BCLHNCQUFzQixnREM5Q3RDLDI5RkFvREE7MkZEZFEscUJBQXFCO2tCQU41QixTQUFTOytCQUNFLHlCQUF5Qjs7MEJBMEJoQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLFdBQVc7eUZBcEJaLElBQUk7c0JBQVosS0FBSztnQkFDdUIsVUFBVTtzQkFBdEMsTUFBTTt1QkFBQyxVQUFVO2dCQUNPLE1BQU07c0JBQTlCLE1BQU07dUJBQUMsTUFBTTtnQkFHc0IsV0FBVztzQkFBOUMsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBQ0ksYUFBYTtzQkFBbEQsWUFBWTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gXCIuLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwsIHByb2dyYW1OYW1lLCBEZXNpZ25Nb2RlLCBGQU1JTFlfU1ZHLCBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvbGF5b3V0L2xheW91dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NFZGl0Q29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0Q29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jQ29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NBZGRDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcblxyXG4vKipcclxuKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZGVzaWduZXItZWxlbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBEZXNpZ25lckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHN2ZyA9IEZBTUlMWV9TVkc7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQE91dHB1dCgnY29udGludWUnKSByZWFkb25seSBvbkNvbnRpbnVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoJ3NhdmUnKSByZWFkb25seSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRNb2RlbD4oKTtcclxuICByb2xlczogUm9sZVtdO1xyXG4gIGZyb2xlczogUm9sZVtdO1xyXG4gIEBDb250ZW50Q2hpbGQoRWRpdENvbnRlbnREaXJlY3RpdmUpIGVkaXRDb250ZW50OiBFZGl0Q29udGVudERpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKFdpZGdldENvbnRlbnREaXJlY3RpdmUpIHdpZGdldENvbnRlbnQ6IFdpZGdldENvbnRlbnREaXJlY3RpdmU7XHJcbiAgb3B0aW9uczogUG9ydGFsPGFueT47XHJcbiAgYXJndW1lbnRzOiBQb3J0YWw8YW55PjtcclxuICBtb2RlOiBEZXNpZ25Nb2RlO1xyXG4gIG1vZGVsOiBFbGVtZW50TW9kZWw8YW55PjtcclxuICByb2xlc2ZpbHRlcjogRm9ybUNvbnRyb2w7XHJcbiAgcHJpdmF0ZSBfb3B0aW9uczogRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgb3B0aW9uc3N0YXRlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wYW5lOiBQYW5lUmVmLFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBfY2ZyOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1vZGUgPSBfcmVmLm1vZGU7XHJcbiAgICB0aGlzLm1vZGVsID0gX3JlZi5tb2RlbCBhcyBFbGVtZW50TW9kZWw7XHJcbiAgfVxyXG4gIG9wdGlvbnNhdHRhY2hlZChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4pIHtcclxuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGNvbXBvbmVudFJlZjtcclxuICAgIHRoaXMuX29wdGlvbnMgPSBpbnN0YW5jZSBhcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55PjtcclxuICAgIGluc3RhbmNlLm1vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdhZGQnICYmICF0aGlzLl9vcHRpb25zLm9uQ29udGludWUpIHtcclxuICAgICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG4gICAgICB0aGlzLl9hZGRFZGl0Q29udHJvbHMoKTtcclxuICAgICAgdGhpcy5vbkNvbnRpbnVlLmVtaXQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX29wdGlvbnMubW9kZSA9IHRoaXMubW9kZTtcclxuICAgIHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiZcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBpbnN0YW5jZS5mb3JtLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIGFyZ3VtZW50c2F0dGFjaGVkKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPExheW91dENvbXBvbmVudD4pIHtcclxuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGNvbXBvbmVudFJlZjtcclxuICAgIGluc3RhbmNlLmZpZWxkcyA9IHRoaXMubW9kZWwuYXJndW1lbnRzO1xyXG4gICAgaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsLm9wdGlvbnM7XHJcbiAgICBpbnN0YW5jZS5sYXlvdXQoKTtcclxuICAgIHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiZcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBpbnN0YW5jZS5mb3JtLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZWwudGVtcGxhdGUpIHtcclxuICAgICAgY29uc3QgY29tcCA9IHRoaXMuX2Nmci5jb21wb25lbnQodGhpcy5tb2RlbC50ZW1wbGF0ZSk7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG5ldyBDb21wb25lbnRQb3J0YWw8RGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT4+KGNvbXApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJiB0aGlzLm1vZGVsLmFyZ3VtZW50cz8ubGVuZ3RoKVxyXG4gICAgICB0aGlzLmFyZ3VtZW50cyA9IG5ldyBDb21wb25lbnRQb3J0YWwoTGF5b3V0Q29tcG9uZW50KTtcclxuICAgIGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ2FkZCcpXHJcbiAgICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xyXG4gICAgICBjYXNlICdhZGQnOlxyXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZWRpdCc6XHJcbiAgICAgICAgdGhpcy5fYWRkRWRpdENvbnRyb2xzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgIHRoaXMuX3JlZi5fc3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHRoaXMub3B0aW9uc3N0YXRlID0gdik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZEVkaXRDb250cm9scygpIHtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0aXRsZSA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB0aGlzLm1vZGVsLnJlc291cmNlICYmIHRpdGxlLmRpc2FibGUoKTtcclxuICAgIGlmICh0aGlzLm1vZGVsLmRyYWZ0KSB0aXRsZS52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ6IHN0cmluZykgPT5cclxuICAgICAgICB0ICYmIG5hbWUuc2V0VmFsdWUocHJvZ3JhbU5hbWUodCkpXHJcbiAgICAgICk7XHJcbiAgICBlbHNlXHJcbiAgICAgIG5hbWUuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ25hbWUnLCBuYW1lKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCd0aXRsZScsIHRpdGxlKTtcclxuICAgIHRoaXMubW9kZWwucHJpdmlsZWdlcyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgncHJpdmlsZWdlcycsXHJcbiAgICAgICAgdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgcnVsZTogbnVsbCxcclxuICAgICAgICAgIHJvbGVzOiB0aGlzLl9mYi5jb250cm9sPHN0cmluZ1tdPihudWxsKSxcclxuICAgICAgICB9KSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCwgeyBlbWl0RXZlbnQ6ICF0aGlzLm1vZGVsLmRyYWZ0IH0pO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlICE9PSAnd2lkZ2V0Jykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpKTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5sb2NrKGV2dDogRXZlbnQpIHtcclxuICAgIGlmICgoZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgIT09ICdBJykgcmV0dXJuO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSA9IG51bGw7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCd0aXRsZScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5fcmVmLl91bmxvY2skLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBjb250aW51ZSgpIHtcclxuICAgIHRoaXMuX29wdGlvbnM/Lm9uQ29udGludWUgJiYgdGhpcy5fb3B0aW9ucy5vbkNvbnRpbnVlKCk7XHJcbiAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgdGhpcy5fYWRkRWRpdENvbnRyb2xzKCk7XHJcbiAgICBpZiAodGhpcy5fb3B0aW9ucylcclxuICAgICAgdGhpcy5fb3B0aW9ucy5tb2RlID0gJ2VkaXQnO1xyXG4gICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCB0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5fb3B0aW9ucz8ub25GaW5pc2ggJiYgdGhpcy5fb3B0aW9ucy5vbkZpbmlzaCgpO1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQud2hpY2ggPT09IDgzIHx8IGV2ZW50LndoaWNoID09PSAxMTUpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS52YWxpZCAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29uYXRpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPCEtLWFkZCBtb2RlLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2FkZCdcIj5cclxuICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcmd1bWVudHNcIiAoYXR0YWNoZWQpPVwiYXJndW1lbnRzYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiYXJndW1lbnRzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tb3B0aW9ucy0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWN0aW9uc1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiIChjbGljayk9XCJjb250aW51ZSgpXCI+e3snQ29udGludWUnfHRyYW5zbGF0ZX19Jm5ic3A7PG1hdC1pY29uPmRvdWJsZV9hcnJvdzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tZWRpdCBtb2RlLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2VkaXQnXCI+XHJcbiAgICA8bWF0LXRvb2xiYXI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgIWZvcm0uZGlydHlcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gICAgPHAgY2xhc3M9XCJoZWxwXCI+e3ttb2RlbC5oZWxwfX08L3A+XHJcbiAgICA8cCAqbmdJZj1cIm1vZGVsLnJlc291cmNlXCIgY2xhc3M9XCJtZXNzYWdlXCIgKGNsaWNrKT1cInVubG9jaygkZXZlbnQpXCIgW2lubmVySFRNTF09XCInVW5sb2NrTXVsdGlsYW5nJ3x0cmFuc2xhdGVcIj48L3A+XHJcbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiXHJcbiAgICAgICAgICAoZG9jdW1lbnQ6a2V5ZG93bik9XCJoYW5kbGVLZXlib2FyZEV2ZW50KCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiIW9wdGlvbnNzdGF0ZVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snVGl0bGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAjdGl0bGUgLz5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgndGl0bGUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdUaXRsZSd8dHJhbnNsYXRlKVwiPjwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCduYW1lJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignTmFtZSd8dHJhbnNsYXRlKVwiPjwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8IS0tYXJndW1lbnRzLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcmd1bWVudHNcIiAoYXR0YWNoZWQpPVwiYXJndW1lbnRzYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiYXJndW1lbnRzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGJpemRvYy1kZXNpZ25lci1wcml2aWxlZ2VzICpuZ0lmPVwiZm9ybS5jb250YWlucygncHJpdmlsZWdlcycpICYmICFvcHRpb25zc3RhdGVcIiBbZm9ybV09XCJmb3JtLmdldCgncHJpdmlsZWdlcycpXCI+PC9iaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcz5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0td2lkZ2V0IG1vZGUgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cIihzdmdbbW9kZWwuZmFtaWx5XXxzYW5pdGl6ZUh0bWwpfHxtb2RlbC5mYW1pbHlcIiAqbmdJZj1cIm1vZGVsLmZhbWlseVwiPjwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ3aWRnZXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLW9wdGlvbnMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29uYXRpbmVyPlxyXG4iXX0=
|