@alauda-fe/common 1.4.10 → 1.4.12
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/core/pipes/parse-json-translate.pipe.d.ts +1 -1
- package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +8 -13
- package/esm2022/chart/common/legend/legend.component.mjs +5 -6
- package/esm2022/chart/common/tooltip/tooltip.component.mjs +6 -7
- package/esm2022/core/guards/intercept-deactivate.guard.mjs +2 -1
- package/esm2022/core/pipes/parse-json-translate.pipe.mjs +3 -4
- package/esm2022/core/utils/resources.mjs +2 -2
- package/esm2022/k8s-resource-list/footer/component.mjs +2 -2
- package/esm2022/multi-search/action-input/component.mjs +75 -47
- package/esm2022/multi-search/form/component.mjs +11 -8
- package/esm2022/multi-search/multi-search-tags/component.mjs +7 -5
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +12 -13
- package/esm2022/table/component.mjs +6 -6
- package/esm2022/translate/translate.pipe.mjs +12 -12
- package/esm2022/translate/translate.service.mjs +6 -11
- package/esm2022/view-chart/legend/legend.component.mjs +5 -6
- package/esm2022/view-chart/view-chart.component.mjs +7 -9
- package/esm2022/view-zchart/legend/legend.component.mjs +5 -6
- package/esm2022/view-zchart/view-zchart.component.mjs +8 -15
- package/multi-search/action-input/component.d.ts +3 -1
- package/multi-search/form/component.d.ts +2 -1
- package/multi-search/multi-search-tags/component.d.ts +2 -1
- package/package.json +1 -1
- package/translate/translate.pipe.d.ts +1 -1
- package/translate/translate.service.d.ts +3 -3
|
@@ -5,7 +5,6 @@ import { get } from 'lodash-es';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
const _c0 = a0 => ({ context: a0 });
|
|
7
7
|
const _c1 = a0 => [a0, "label-symbol"];
|
|
8
|
-
const _c2 = () => ({});
|
|
9
8
|
function LegendComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
10
9
|
i0.ɵɵelementStart(0, "div", 5);
|
|
11
10
|
i0.ɵɵelementContainer(1, 6);
|
|
@@ -109,13 +108,13 @@ function LegendComponent_ng_template_3_li_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
109
108
|
i0.ɵɵproperty("title", i0.ɵɵpipeBind1(1, 9, legend_r7.activate ? "click_hide" : "click_show"));
|
|
110
109
|
i0.ɵɵadvance(2);
|
|
111
110
|
i0.ɵɵstyleProp("background", legend_r7.color);
|
|
112
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
111
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c1, ctx_r0.symbolName));
|
|
113
112
|
i0.ɵɵadvance(2);
|
|
114
|
-
i0.ɵɵtextInterpolate(ctx_r0.translation ? i0.ɵɵ
|
|
113
|
+
i0.ɵɵtextInterpolate(ctx_r0.translation ? i0.ɵɵpipeBind1(5, 11, legend_r7.name) : legend_r7.name);
|
|
115
114
|
} }
|
|
116
115
|
function LegendComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
117
116
|
i0.ɵɵelementStart(0, "ul", 13);
|
|
118
|
-
i0.ɵɵtemplate(1, LegendComponent_ng_template_3_li_1_Template, 4, 4, "li", 14)(2, LegendComponent_ng_template_3_li_2_Template, 6,
|
|
117
|
+
i0.ɵɵtemplate(1, LegendComponent_ng_template_3_li_1_Template, 4, 4, "li", 14)(2, LegendComponent_ng_template_3_li_2_Template, 6, 15, "li", 15);
|
|
119
118
|
i0.ɵɵelementEnd();
|
|
120
119
|
} if (rf & 2) {
|
|
121
120
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -229,7 +228,7 @@ export class LegendComponent {
|
|
|
229
228
|
}
|
|
230
229
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendComponent, [{
|
|
231
230
|
type: Component,
|
|
232
|
-
args: [{ selector: 'acl-base-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(leftOperation)\"\n>\n <ng-container\n [ngTemplateOutlet]=\"leftOperation\"\n [ngTemplateOutletContext]=\"leftOperationContext\"\n ></ng-container>\n</div>\n\n<div\n class=\"legend-wrap operation\"\n *ngIf=\"!hideLegend\"\n>\n <ng-container *ngIf=\"!template; else custom\">\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n </ng-container>\n <ng-template #custom>\n <ng-container *ngIf=\"isTemplateRef(template); else builtinTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{ context: legendEntries }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinTemplate>\n <ng-container [ngSwitch]=\"template\">\n <acl-legend-dropdown\n class=\"legend-vertical\"\n *ngSwitchCase=\"'dropdown'\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-legend-dropdown>\n </ng-container>\n </ng-template>\n </ng-template>\n</div>\n\n<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(rightOperation)\"\n>\n <ng-container [ngTemplateOutlet]=\"rightOperation\"></ng-container>\n</div>\n\n<ng-template #legendTemplate>\n <ul class=\"legend-labels\">\n <li\n class=\"select-all\"\n *ngIf=\"!noData && selectAllOperation && template === 'dropdown'\"\n >\n <aui-checkbox\n [(ngModel)]=\"allSelected\"\n (ngModelChange)=\"allSelect($event)\"\n >\n {{ selectAllName || ('select_all' | translate) }}\n </aui-checkbox>\n </li>\n <li\n class=\"legend-label\"\n [class.disable]=\"!legend.activate || noData\"\n [class.forbid]=\"noData\"\n [title]=\"(legend.activate ? 'click_hide' : 'click_show') | translate\"\n *ngFor=\"let legend of legendEntries\"\n (click)=\"selected(legend)\"\n >\n <span\n [ngClass]=\"[symbolName, 'label-symbol']\"\n [style.background]=\"legend.color\"\n >\n </span>\n <span class=\"label-name\">{{\n translation ? (legend.name | translate
|
|
231
|
+
args: [{ selector: 'acl-base-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(leftOperation)\"\n>\n <ng-container\n [ngTemplateOutlet]=\"leftOperation\"\n [ngTemplateOutletContext]=\"leftOperationContext\"\n ></ng-container>\n</div>\n\n<div\n class=\"legend-wrap operation\"\n *ngIf=\"!hideLegend\"\n>\n <ng-container *ngIf=\"!template; else custom\">\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n </ng-container>\n <ng-template #custom>\n <ng-container *ngIf=\"isTemplateRef(template); else builtinTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{ context: legendEntries }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinTemplate>\n <ng-container [ngSwitch]=\"template\">\n <acl-legend-dropdown\n class=\"legend-vertical\"\n *ngSwitchCase=\"'dropdown'\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-legend-dropdown>\n </ng-container>\n </ng-template>\n </ng-template>\n</div>\n\n<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(rightOperation)\"\n>\n <ng-container [ngTemplateOutlet]=\"rightOperation\"></ng-container>\n</div>\n\n<ng-template #legendTemplate>\n <ul class=\"legend-labels\">\n <li\n class=\"select-all\"\n *ngIf=\"!noData && selectAllOperation && template === 'dropdown'\"\n >\n <aui-checkbox\n [(ngModel)]=\"allSelected\"\n (ngModelChange)=\"allSelect($event)\"\n >\n {{ selectAllName || ('select_all' | translate) }}\n </aui-checkbox>\n </li>\n <li\n class=\"legend-label\"\n [class.disable]=\"!legend.activate || noData\"\n [class.forbid]=\"noData\"\n [title]=\"(legend.activate ? 'click_hide' : 'click_show') | translate\"\n *ngFor=\"let legend of legendEntries\"\n (click)=\"selected(legend)\"\n >\n <span\n [ngClass]=\"[symbolName, 'label-symbol']\"\n [style.background]=\"legend.color\"\n >\n </span>\n <span class=\"label-name\">{{\n translation ? (legend.name | translate) : legend.name\n }}</span>\n </li>\n </ul>\n</ng-template>\n", styles: [":host{flex:1;display:flex;justify-content:flex-end;align-items:center}.legend-wrap{display:inline-block}.legend-wrap ul,.legend-wrap li{padding:0;margin:0;list-style:none}.legend-wrap .legend-labels{display:flex}.legend-wrap .legend-label{display:flex;align-items:center;cursor:pointer;justify-content:center}.legend-wrap .legend-label:not(:last-child){margin-right:12px}.legend-wrap .forbid{cursor:no-drop}.legend-wrap .label-name{font-size:12px;color:rgb(var(--aui-color-secondary-text))}.legend-wrap .label-symbol{margin-right:4px}.disable .label-symbol{background:rgb(var(--aui-color-n-6))!important}.disable .label-name{color:rgb(var(--aui-color-n-6))}.symbol-square{width:12px;height:12px;display:inline-block}.symbol-line{width:12px;height:2px;display:inline-block}.symbol-circle{width:6px;height:6px;border-radius:50%;display:inline-block}.operation{display:flex;justify-content:center;align-items:center;margin-left:8px}.select-all ::ng-deep .aui-checkbox{font-size:12px;line-height:16px;margin-bottom:8px}\n"] }]
|
|
233
232
|
}], () => [{ type: i0.ChangeDetectorRef }], { symbol: [{
|
|
234
233
|
type: Input
|
|
235
234
|
}], template: [{
|
|
@@ -256,4 +255,4 @@ export class LegendComponent {
|
|
|
256
255
|
type: Output
|
|
257
256
|
}] }); })();
|
|
258
257
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendComponent, { className: "LegendComponent", filePath: "view-chart/legend/legend.component.ts", lineNumber: 37 }); })();
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctY2hhcnQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxFQUdKLGFBQWEsRUFDYixVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztJQ3RCaEMsOEJBR0M7SUFDQywyQkFHZ0I7SUFDbEIsaUJBQU07OztJQUhGLGNBQWtDO0lBQ2xDLEFBREEsdURBQWtDLHdEQUNjOzs7SUFRbEQsNkJBQTZDO0lBQzNDLDJCQUFpRTs7Ozs7SUFBbkQsY0FBbUM7SUFBbkMsb0RBQW1DOzs7SUFHakQsNkJBQW9FO0lBQ2xFLDJCQUdnQjs7OztJQUZkLGNBQW1DO0lBQ25DLEFBREEsa0RBQW1DLDZFQUNtQjs7O0lBS3RELDBDQVFzQjs7OztJQUZwQixBQURBLEFBREEsQUFEQSwyQ0FBc0IseUJBQ0wscUNBQ2dCLGtDQUNQOzs7SUFQOUIsaUNBQW9DO0lBQ2xDLG1JQU9DOzs7O0lBUlcsMENBQXFCO0lBRzlCLGNBQXdCO0lBQXhCLHlDQUF3Qjs7O0lBSi9CLEFBTkEsc0dBQW9FLHdIQU10Qzs7OztJQU5nQixBQUEvQiw0REFBK0IsZ0NBQW9COzs7SUFSdEUsOEJBR0M7SUFJ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LEFBOUJBLEFBVkEsZ0VBR0MsbURBVUEsbURBOEJBLG9HQUk0Qjs7WUE3QzFCLDJEQUFrQztZQVVsQyxjQUFpQjtZQUFqQixzQ0FBaUI7WUE4QmpCLGNBQW1DO1lBQW5DLDREQUFtQzs7O2lGRE56QixlQUFlO2NBTjNCLFNBQVM7MkJBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07a0RBR3RDLE1BQU07a0JBQWQsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFFRyxJQUFJO2tCQUFaLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUVHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLGNBQWM7a0JBQXRCLEtBQUs7WUFFRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUVHLEtBQUs7a0JBQWIsS0FBSztZQUVJLFlBQVk7a0JBQXJCLE1BQU07O2tGQXZCSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVmlldyxcbiAgTGVnZW5kIGFzIENoYXJ0TGVnZW5kLFxuICBMZWdlbmRJdGVtLFxuICBMRUdFTkRfRVZFTlRTLFxuICBWSUVXX0hPT0tTLFxuICBDaGFydERhdGEsXG4gIERhdGEsXG59IGZyb20gJ0BhbGF1ZGEvY2hhcnQnO1xuaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmV4cG9ydCBjbGFzcyBMZWdlbmRQYXlsb2FkIHtcbiAgbGVnZW5kOiBMZWdlbmRJdGVtO1xuICBzb3VyY2U6IExlZ2VuZEl0ZW1bXTtcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1iYXNlLWxlZ2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sZWdlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc3ltYm9sOiAnY2lyY2xlJyB8ICdzcXVhcmUnIHwgJ2xpbmUnID0gJ2xpbmUnO1xuXG4gIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHN0cmluZyB8ICdkcm9wZG93bic7XG5cbiAgQElucHV0KCkgbW9kZTogJ2NhcmQnIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuXG4gIEBJbnB1dCgpIHRyYW5zbGF0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uQ29udGV4dDogU3RyaW5nTWFwO1xuXG4gIEBJbnB1dCgpIHJpZ2h0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBoaWRlTGVnZW5kOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNlbGVjdEFsbE9wZXJhdGlvbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNlbGVjdEFsbE5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKSBjaGFydDogVmlldztcblxuICBAT3V0cHV0KCkgY2hhbmdlTGVnZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxMZWdlbmRJdGVtW10+KCk7XG5cbiAgZ2V0IG5vRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5sZWdlbmRFbnRyaWVzPy5sZW5ndGggPT09IDAgfHwgIXRoaXMubGVnZW5kRW50cmllcztcbiAgfVxuXG4gIGdldCBsZWdlbmRJbnN0YW5jZSgpOiBDaGFydExlZ2VuZCB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnQ/LmdldENvbnRyb2xsZXIoJ2xlZ2VuZCcpO1xuICB9XG5cbiAgbGVnZW5kRW50cmllczogTGVnZW5kSXRlbVtdID0gW107XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgYWxsU2VsZWN0ZWQgPSB0cnVlO1xuXG4gIGdldCBzeW1ib2xOYW1lKCkge1xuICAgIHJldHVybiBgc3ltYm9sLSR7dGhpcy5zeW1ib2x9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcyh7IGNoYXJ0IH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhcnQuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSB0aGlzLmxlZ2VuZEluc3RhbmNlPy5sZWdlbmRJdGVtcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSB0aGlzLmxlZ2VuZEluc3RhbmNlPy5sZWdlbmRJdGVtcztcbiAgICB0aGlzLmNoYXJ0Py5vbihWSUVXX0hPT0tTLlNFVF9EQVRBLCAoZGF0YTogQ2hhcnREYXRhW10pID0+IHtcbiAgICAgIGNvbnN0IGlzQmFyID0gdGhpcy5jaGFydC5vcHRpb25zLnR5cGUgPT09ICdiYXInO1xuICAgICAgY29uc3QgdmFsdWVzID0gZGF0YS5mbGF0TWFwKGl0ZW0gPT4gaXRlbS52YWx1ZXMpIGFzIEFycmF5PFxuICAgICAgICBEYXRhPHsgeDogc3RyaW5nOyBjb2xvcjogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHk6IG51bWJlciB9PlxuICAgICAgPjtcbiAgICAgIHRoaXMubGVnZW5kRW50cmllcyA9IGlzQmFyXG4gICAgICAgID8gdmFsdWVzLnJlZHVjZTxBcnJheTxEYXRhPExlZ2VuZEl0ZW0+Pj4oXG4gICAgICAgICAgICAocHJlLCBjdXIpID0+IFtcbiAgICAgICAgICAgICAgLi4ucHJlLFxuICAgICAgICAgICAgICAuLi4ocHJlLnNvbWUoZCA9PiBkLm5hbWUgPT09IGN1ci54KVxuICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGN1ci54LFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjdXIuY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjdXIueSxcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGN1cixcbiAgICAgICAgICAgICAgICAgICAgICB1bml0OiBnZXQoY3VyLCAndW5pdCcpLFxuICAgICAgICAgICAgICAgICAgICAgIC4uLmN1cixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgIClcbiAgICAgICAgOiBkYXRhLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIGQpID0+IFtcbiAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAuLi4oZC5uYW1lXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGQuY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGU6ICF0aGlzLmxlZ2VuZEluc3RhbmNlPy5kaXNhYmxlZExlZ2VuZC5oYXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGQudmFsdWVzPy5bZC52YWx1ZXM/Lmxlbmd0aCAtIDFdPy55LFxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogZCxcbiAgICAgICAgICAgICAgICAgICAgICB1bml0OiBnZXQoZCwgJ3VuaXQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAuLi5kLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgICk7XG4gICAgICBpZiAodGhpcy5sZWdlbmRJbnN0YW5jZT8uZGlzYWJsZWRMZWdlbmQuc2l6ZSkge1xuICAgICAgICB0aGlzLmNoYW5nZUxlZ2VuZC5uZXh0KHRoaXMubGVnZW5kRW50cmllcyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQ/Lm9uKExFR0VORF9FVkVOVFMuQ0xJQ0ssIChkYXRhOiBMZWdlbmRQYXlsb2FkKSA9PiB7XG4gICAgICBjb25zdCB7IGxlZ2VuZCwgc291cmNlIH0gPSBkYXRhO1xuICAgICAgY29uc3QgbGVnZW5kSXRlbSA9IHRoaXMubGVnZW5kRW50cmllcy5maW5kKFxuICAgICAgICBpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbGVnZW5kLm5hbWUsXG4gICAgICApO1xuICAgICAgbGVnZW5kSXRlbS5hY3RpdmF0ZSA9ICFsZWdlbmQuYWN0aXZhdGU7XG4gICAgICB0aGlzLmNoYW5nZUxlZ2VuZC5uZXh0KHNvdXJjZSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RlZChsZWdlbmQ6IExlZ2VuZEl0ZW0pIHtcbiAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmNoYW5nZUxlZ2VuZChsZWdlbmQpO1xuICB9XG5cbiAgYWxsU2VsZWN0KHNlbGVjdDogYm9vbGVhbikge1xuICAgIGlmIChzZWxlY3QpIHtcbiAgICAgIHRoaXMubGVnZW5kSW5zdGFuY2UubGVnZW5kU2VsZWN0QWxsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVnZW5kSW5zdGFuY2UubGVnZW5kVW5zZWxlY3RBbGwoKTtcbiAgICB9XG4gICAgdGhpcy5sZWdlbmRJbnN0YW5jZS5jaGFuZ2VMZWdlbmQodGhpcy5sZWdlbmRFbnRyaWVzWzBdKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm9wZXJhdGlvblwiXG4gICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihsZWZ0T3BlcmF0aW9uKVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWZ0T3BlcmF0aW9uXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwibGVmdE9wZXJhdGlvbkNvbnRleHRcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImxlZ2VuZC13cmFwIG9wZXJhdGlvblwiXG4gICpuZ0lmPVwiIWhpZGVMZWdlbmRcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRlbXBsYXRlOyBlbHNlIGN1c3RvbVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVnZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHRlbXBsYXRlKTsgZWxzZSBidWlsdGluVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBjb250ZXh0OiBsZWdlbmRFbnRyaWVzIH1cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjYnVpbHRpblRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidGVtcGxhdGVcIj5cbiAgICAgICAgPGFjbC1sZWdlbmQtZHJvcGRvd25cbiAgICAgICAgICBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIlxuICAgICAgICAgIFtkYXRhXT1cImxlZ2VuZEVudHJpZXNcIlxuICAgICAgICAgIFtub0RhdGFdPVwibm9EYXRhXCJcbiAgICAgICAgICBbbGVnZW5kVGVtcGxhdGVdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgIFtpc0NhcmRdPVwibW9kZSA9PT0gJ2NhcmQnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FjbC1sZWdlbmQtZHJvcGRvd24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJvcGVyYXRpb25cIlxuICAqbmdJZj1cImlzVGVtcGxhdGVSZWYocmlnaHRPcGVyYXRpb24pXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyaWdodE9wZXJhdGlvblwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGVnZW5kVGVtcGxhdGU+XG4gIDx1bCBjbGFzcz1cImxlZ2VuZC1sYWJlbHNcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwic2VsZWN0LWFsbFwiXG4gICAgICAqbmdJZj1cIiFub0RhdGEgJiYgc2VsZWN0QWxsT3BlcmF0aW9uICYmIHRlbXBsYXRlID09PSAnZHJvcGRvd24nXCJcbiAgICA+XG4gICAgICA8YXVpLWNoZWNrYm94XG4gICAgICAgIFsobmdNb2RlbCldPVwiYWxsU2VsZWN0ZWRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhbGxTZWxlY3QoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIHt7IHNlbGVjdEFsbE5hbWUgfHwgKCdzZWxlY3RfYWxsJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvYXVpLWNoZWNrYm94PlxuICAgIDwvbGk+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cImxlZ2VuZC1sYWJlbFwiXG4gICAgICBbY2xhc3MuZGlzYWJsZV09XCIhbGVnZW5kLmFjdGl2YXRlIHx8IG5vRGF0YVwiXG4gICAgICBbY2xhc3MuZm9yYmlkXT1cIm5vRGF0YVwiXG4gICAgICBbdGl0bGVdPVwiKGxlZ2VuZC5hY3RpdmF0ZSA/ICdjbGlja19oaWRlJyA6ICdjbGlja19zaG93JykgfCB0cmFuc2xhdGVcIlxuICAgICAgKm5nRm9yPVwibGV0IGxlZ2VuZCBvZiBsZWdlbmRFbnRyaWVzXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RlZChsZWdlbmQpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbbmdDbGFzc109XCJbc3ltYm9sTmFtZSwgJ2xhYmVsLXN5bWJvbCddXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwibGVnZW5kLmNvbG9yXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtbmFtZVwiPnt7XG4gICAgICAgIHRyYW5zbGF0aW9uID8gKGxlZ2VuZC5uYW1lIHwgdHJhbnNsYXRlOiB7fTp0cnVlKSA6IGxlZ2VuZC5uYW1lXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctY2hhcnQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxFQUdKLGFBQWEsRUFDYixVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0lDdEJoQyw4QkFHQztJQUNDLDJCQUdnQjtJQUNsQixpQkFBTTs7O0lBSEYsY0FBa0M7SUFDbEMsQUFEQSx1REFBa0Msd0RBQ2M7OztJQVFsRCw2QkFBNkM7SUFDM0MsMkJBQWlFOzs7OztJQUFuRCxjQUFtQztJQUFuQyxvREFBbUM7OztJQUdqRCw2QkFBb0U7SUFDbEUsMkJBR2dCOzs7O0lBRmQsY0FBbUM7SUFDbkMsQUFEQSxrREFBbUMsNkVBQ21COzs7SUFLdEQsMENBUXNCOzs7O0lBRnBCLEFBREEsQUFEQSxBQURBLDJDQUFzQix5QkFDTCxxQ0FDZ0Isa0NBQ1A7OztJQVA5QixpQ0FBb0M7SUFDbEMsbUlBT0M7Ozs7SUFSVywwQ0FBcUI7SUFHOUIsY0FBd0I7SUFBeEIseUNBQXdCOzs7SUFKL0IsQUFOQSxzR0FBb0Usd0hBTXRDOzs7O0lBTmdCLEFBQS9CLDREQUErQixnQ0FBb0I7OztJQVJ0RSw4QkFHQztJQUlD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QUE5QkEsQUFWQSxnRUFHQyxtREFVQSxtREE4QkEsb0dBSTRCOztZQTdDMUIsMkRBQWtDO1lBVWxDLGNBQWlCO1lBQWpCLHNDQUFpQjtZQThCakIsY0FBbUM7WUFBbkMsNERBQW1DOzs7aUZETnpCLGVBQWU7Y0FOM0IsU0FBUzsyQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtrREFHdEMsTUFBTTtrQkFBZCxLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLElBQUk7a0JBQVosS0FBSztZQUVHLFdBQVc7a0JBQW5CLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsb0JBQW9CO2tCQUE1QixLQUFLO1lBRUcsY0FBYztrQkFBdEIsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsS0FBSztrQkFBYixLQUFLO1lBRUksWUFBWTtrQkFBckIsTUFBTTs7a0ZBdkJJLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBWaWV3LFxuICBMZWdlbmQgYXMgQ2hhcnRMZWdlbmQsXG4gIExlZ2VuZEl0ZW0sXG4gIExFR0VORF9FVkVOVFMsXG4gIFZJRVdfSE9PS1MsXG4gIENoYXJ0RGF0YSxcbiAgRGF0YSxcbn0gZnJvbSAnQGFsYXVkYS9jaGFydCc7XG5pbXBvcnQgeyBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcblxuZXhwb3J0IGNsYXNzIExlZ2VuZFBheWxvYWQge1xuICBsZWdlbmQ6IExlZ2VuZEl0ZW07XG4gIHNvdXJjZTogTGVnZW5kSXRlbVtdO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWJhc2UtbGVnZW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xlZ2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xlZ2VuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGVnZW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzeW1ib2w6ICdjaXJjbGUnIHwgJ3NxdWFyZScgfCAnbGluZScgPSAnbGluZSc7XG5cbiAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nIHwgJ2Ryb3Bkb3duJztcblxuICBASW5wdXQoKSBtb2RlOiAnY2FyZCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgdHJhbnNsYXRpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGxlZnRPcGVyYXRpb246IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGxlZnRPcGVyYXRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KCkgcmlnaHRPcGVyYXRpb246IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGhpZGVMZWdlbmQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2VsZWN0QWxsT3BlcmF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2VsZWN0QWxsTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGNoYXJ0OiBWaWV3O1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2VMZWdlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPExlZ2VuZEl0ZW1bXT4oKTtcblxuICBnZXQgbm9EYXRhKCkge1xuICAgIHJldHVybiB0aGlzLmxlZ2VuZEVudHJpZXM/Lmxlbmd0aCA9PT0gMCB8fCAhdGhpcy5sZWdlbmRFbnRyaWVzO1xuICB9XG5cbiAgZ2V0IGxlZ2VuZEluc3RhbmNlKCk6IENoYXJ0TGVnZW5kIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydD8uZ2V0Q29udHJvbGxlcignbGVnZW5kJyk7XG4gIH1cblxuICBsZWdlbmRFbnRyaWVzOiBMZWdlbmRJdGVtW10gPSBbXTtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcblxuICBhbGxTZWxlY3RlZCA9IHRydWU7XG5cbiAgZ2V0IHN5bWJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIGBzeW1ib2wtJHt0aGlzLnN5bWJvbH1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKHsgY2hhcnQgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFydC5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMubGVnZW5kRW50cmllcyA9IHRoaXMubGVnZW5kSW5zdGFuY2U/LmxlZ2VuZEl0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGVnZW5kRW50cmllcyA9IHRoaXMubGVnZW5kSW5zdGFuY2U/LmxlZ2VuZEl0ZW1zO1xuICAgIHRoaXMuY2hhcnQ/Lm9uKFZJRVdfSE9PS1MuU0VUX0RBVEEsIChkYXRhOiBDaGFydERhdGFbXSkgPT4ge1xuICAgICAgY29uc3QgaXNCYXIgPSB0aGlzLmNoYXJ0Lm9wdGlvbnMudHlwZSA9PT0gJ2Jhcic7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBkYXRhLmZsYXRNYXAoaXRlbSA9PiBpdGVtLnZhbHVlcykgYXMgQXJyYXk8XG4gICAgICAgIERhdGE8eyB4OiBzdHJpbmc7IGNvbG9yOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgeTogbnVtYmVyIH0+XG4gICAgICA+O1xuICAgICAgdGhpcy5sZWdlbmRFbnRyaWVzID0gaXNCYXJcbiAgICAgICAgPyB2YWx1ZXMucmVkdWNlPEFycmF5PERhdGE8TGVnZW5kSXRlbT4+PihcbiAgICAgICAgICAgIChwcmUsIGN1cikgPT4gW1xuICAgICAgICAgICAgICAuLi5wcmUsXG4gICAgICAgICAgICAgIC4uLihwcmUuc29tZShkID0+IGQubmFtZSA9PT0gY3VyLngpXG4gICAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogY3VyLngsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGN1ci5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBob3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1ci55LFxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogY3VyLFxuICAgICAgICAgICAgICAgICAgICAgIHVuaXQ6IGdldChjdXIsICd1bml0JyksXG4gICAgICAgICAgICAgICAgICAgICAgLi4uY3VyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW10sXG4gICAgICAgICAgKVxuICAgICAgICA6IGRhdGEucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgZCkgPT4gW1xuICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgIC4uLihkLm5hbWVcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZC5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZTogIXRoaXMubGVnZW5kSW5zdGFuY2U/LmRpc2FibGVkTGVnZW5kLmhhcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZC52YWx1ZXM/LltkLnZhbHVlcz8ubGVuZ3RoIC0gMV0/LnksXG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBkLFxuICAgICAgICAgICAgICAgICAgICAgIHVuaXQ6IGdldChkLCAndW5pdCcpLFxuICAgICAgICAgICAgICAgICAgICAgIC4uLmQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW10sXG4gICAgICAgICAgKTtcbiAgICAgIGlmICh0aGlzLmxlZ2VuZEluc3RhbmNlPy5kaXNhYmxlZExlZ2VuZC5zaXplKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlTGVnZW5kLm5leHQodGhpcy5sZWdlbmRFbnRyaWVzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jaGFydD8ub24oTEVHRU5EX0VWRU5UUy5DTElDSywgKGRhdGE6IExlZ2VuZFBheWxvYWQpID0+IHtcbiAgICAgIGNvbnN0IHsgbGVnZW5kLCBzb3VyY2UgfSA9IGRhdGE7XG4gICAgICBjb25zdCBsZWdlbmRJdGVtID0gdGhpcy5sZWdlbmRFbnRyaWVzLmZpbmQoXG4gICAgICAgIGl0ZW0gPT4gaXRlbS5uYW1lID09PSBsZWdlbmQubmFtZSxcbiAgICAgICk7XG4gICAgICBsZWdlbmRJdGVtLmFjdGl2YXRlID0gIWxlZ2VuZC5hY3RpdmF0ZTtcbiAgICAgIHRoaXMuY2hhbmdlTGVnZW5kLm5leHQoc291cmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdGVkKGxlZ2VuZDogTGVnZW5kSXRlbSkge1xuICAgIHRoaXMubGVnZW5kSW5zdGFuY2UuY2hhbmdlTGVnZW5kKGxlZ2VuZCk7XG4gIH1cblxuICBhbGxTZWxlY3Qoc2VsZWN0OiBib29sZWFuKSB7XG4gICAgaWYgKHNlbGVjdCkge1xuICAgICAgdGhpcy5sZWdlbmRJbnN0YW5jZS5sZWdlbmRTZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sZWdlbmRJbnN0YW5jZS5sZWdlbmRVbnNlbGVjdEFsbCgpO1xuICAgIH1cbiAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmNoYW5nZUxlZ2VuZCh0aGlzLmxlZ2VuZEVudHJpZXNbMF0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwib3BlcmF0aW9uXCJcbiAgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGxlZnRPcGVyYXRpb24pXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZnRPcGVyYXRpb25cIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJsZWZ0T3BlcmF0aW9uQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwibGVnZW5kLXdyYXAgb3BlcmF0aW9uXCJcbiAgKm5nSWY9XCIhaGlkZUxlZ2VuZFwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGVtcGxhdGU7IGVsc2UgY3VzdG9tXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWdlbmRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b20+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYodGVtcGxhdGUpOyBlbHNlIGJ1aWx0aW5UZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KHRlbXBsYXRlKVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRleHQ6IGxlZ2VuZEVudHJpZXMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNidWlsdGluVGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0ZW1wbGF0ZVwiPlxuICAgICAgICA8YWNsLWxlZ2VuZC1kcm9wZG93blxuICAgICAgICAgIGNsYXNzPVwibGVnZW5kLXZlcnRpY2FsXCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2Ryb3Bkb3duJ1wiXG4gICAgICAgICAgW2RhdGFdPVwibGVnZW5kRW50cmllc1wiXG4gICAgICAgICAgW25vRGF0YV09XCJub0RhdGFcIlxuICAgICAgICAgIFtsZWdlbmRUZW1wbGF0ZV09XCJsZWdlbmRUZW1wbGF0ZVwiXG4gICAgICAgICAgW2lzQ2FyZF09XCJtb2RlID09PSAnY2FyZCdcIlxuICAgICAgICA+XG4gICAgICAgIDwvYWNsLWxlZ2VuZC1kcm9wZG93bj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cIm9wZXJhdGlvblwiXG4gICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihyaWdodE9wZXJhdGlvbilcIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJpZ2h0T3BlcmF0aW9uXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsZWdlbmRUZW1wbGF0ZT5cbiAgPHVsIGNsYXNzPVwibGVnZW5kLWxhYmVsc1wiPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJzZWxlY3QtYWxsXCJcbiAgICAgICpuZ0lmPVwiIW5vRGF0YSAmJiBzZWxlY3RBbGxPcGVyYXRpb24gJiYgdGVtcGxhdGUgPT09ICdkcm9wZG93bidcIlxuICAgID5cbiAgICAgIDxhdWktY2hlY2tib3hcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFsbFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAge3sgc2VsZWN0QWxsTmFtZSB8fCAoJ3NlbGVjdF9hbGwnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9hdWktY2hlY2tib3g+XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwibGVnZW5kLWxhYmVsXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlXT1cIiFsZWdlbmQuYWN0aXZhdGUgfHwgbm9EYXRhXCJcbiAgICAgIFtjbGFzcy5mb3JiaWRdPVwibm9EYXRhXCJcbiAgICAgIFt0aXRsZV09XCIobGVnZW5kLmFjdGl2YXRlID8gJ2NsaWNrX2hpZGUnIDogJ2NsaWNrX3Nob3cnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAqbmdGb3I9XCJsZXQgbGVnZW5kIG9mIGxlZ2VuZEVudHJpZXNcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdGVkKGxlZ2VuZClcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIFtuZ0NsYXNzXT1cIltzeW1ib2xOYW1lLCAnbGFiZWwtc3ltYm9sJ11cIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJsZWdlbmQuY29sb3JcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1uYW1lXCI+e3tcbiAgICAgICAgdHJhbnNsYXRpb24gPyAobGVnZW5kLm5hbWUgfCB0cmFuc2xhdGUpIDogbGVnZW5kLm5hbWVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -16,7 +16,6 @@ const _c2 = ["tooltipItemVirtual"];
|
|
|
16
16
|
const _c3 = ["tooltipTitleVirtual"];
|
|
17
17
|
const _c4 = ["tooltipNameVirtual"];
|
|
18
18
|
const _c5 = ["pieLabelContainer"];
|
|
19
|
-
const _c6 = () => ({});
|
|
20
19
|
function ViewChartComponent_div_3_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
21
20
|
i0.ɵɵelementContainerStart(0);
|
|
22
21
|
i0.ɵɵelementContainer(1, 16);
|
|
@@ -145,7 +144,7 @@ function ViewChartComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
145
144
|
i0.ɵɵpipe(1, "translate");
|
|
146
145
|
} if (rf & 2) {
|
|
147
146
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
148
|
-
i0.ɵɵtextInterpolate2(" ", ctx_r0.title, " ", ctx_r0.unit ? "(" + i0.ɵɵ
|
|
147
|
+
i0.ɵɵtextInterpolate2(" ", ctx_r0.title, " ", ctx_r0.unit ? "(" + i0.ɵɵpipeBind1(1, 2, ctx_r0.unit) + ")" : "", "\n");
|
|
149
148
|
} }
|
|
150
149
|
function ViewChartComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
|
|
151
150
|
i0.ɵɵtext(0);
|
|
@@ -297,7 +296,7 @@ export class ViewChartComponent {
|
|
|
297
296
|
? this.tooltipItemVirtual.nativeElement.innerHTML
|
|
298
297
|
: this.tooltipItemContext.context;
|
|
299
298
|
},
|
|
300
|
-
nameFormatter: ({ name }) => this.tooltipTranslation ? this.translate.get(name
|
|
299
|
+
nameFormatter: ({ name }) => this.tooltipTranslation ? this.translate.get(name) : name,
|
|
301
300
|
valueFormatter: this.valueFormatter,
|
|
302
301
|
sort: this.tooltipAutoSort ? (a, b) => b.y - a.y : null,
|
|
303
302
|
},
|
|
@@ -395,8 +394,7 @@ export class ViewChartComponent {
|
|
|
395
394
|
this.titleFormatter = (context) => {
|
|
396
395
|
this.tooltipTitleContext = { context };
|
|
397
396
|
const title = this.tooltipTranslation && !this.tooltipTitleTemplate
|
|
398
|
-
? this.translate.get(context.title
|
|
399
|
-
context.title
|
|
397
|
+
? this.translate.get(context.title) || context.title
|
|
400
398
|
: context.title;
|
|
401
399
|
this.cdr.markForCheck();
|
|
402
400
|
return this.tooltipTitleTemplate
|
|
@@ -409,7 +407,7 @@ export class ViewChartComponent {
|
|
|
409
407
|
: this.defaultPointFormat(value.y);
|
|
410
408
|
return this.hideTooltipUnit && !this.unit
|
|
411
409
|
? res
|
|
412
|
-
: `${res} ${this.translate.get(this.unit
|
|
410
|
+
: `${res} ${this.translate.get(this.unit)}`;
|
|
413
411
|
};
|
|
414
412
|
}
|
|
415
413
|
ngOnChanges({ enableZoom }) {
|
|
@@ -588,7 +586,7 @@ export class ViewChartComponent {
|
|
|
588
586
|
i0.ɵɵtemplate(3, ViewChartComponent_div_3_Template, 5, 4, "div", 13);
|
|
589
587
|
i0.ɵɵpipe(4, "async");
|
|
590
588
|
i0.ɵɵelementEnd();
|
|
591
|
-
i0.ɵɵtemplate(5, ViewChartComponent_ng_template_5_Template, 2, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(7, ViewChartComponent_ng_template_7_Template, 2,
|
|
589
|
+
i0.ɵɵtemplate(5, ViewChartComponent_ng_template_5_Template, 2, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(7, ViewChartComponent_ng_template_7_Template, 2, 4, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(9, ViewChartComponent_ng_template_9_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
|
592
590
|
i0.ɵɵelementStart(11, "div", 14, 4);
|
|
593
591
|
i0.ɵɵelementContainer(13, 15);
|
|
594
592
|
i0.ɵɵelementEnd();
|
|
@@ -650,7 +648,7 @@ __decorate([
|
|
|
650
648
|
], ViewChartComponent.prototype, "chartStatus$", void 0);
|
|
651
649
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ViewChartComponent, [{
|
|
652
650
|
type: Component,
|
|
653
|
-
args: [{ selector: 'acl-view-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ac-chart\"\n [class.ac-non-chart]=\"chartType === 'pie'\"\n [class.ac-bar]=\"chartType === 'bar'\"\n [style.background]=\"background\"\n>\n <div\n #chartContainer\n class=\"ac-chart-container tw-w-full tw-h-full\"\n ></div>\n\n <div\n class=\"ac-chart-status\"\n *ngIf=\"status$ | async as status\"\n >\n <div\n *ngIf=\"status.failed && !status.loading\"\n class=\"status failed\"\n >\n <ng-container *ngIf=\"customErrorContainer; else noCustomErrorContainer\">\n <ng-container [ngTemplateOutlet]=\"customErrorContainer\"></ng-container>\n </ng-container>\n <ng-template #noCustomErrorContainer>\n <aui-icon\n icon=\"exclamation_triangle_s\"\n background=\"triangle\"\n ></aui-icon>\n {{ 'failed_load_please' | translate }}\n <button\n aui-button=\"text\"\n (click)=\"refresh()\"\n >\n {{ ('refresh' | translate).toLowerCase() }}\n </button>\n </ng-template>\n </div>\n <div\n *ngIf=\"status.loading\"\n class=\"status loading\"\n >\n <aui-icon icon=\"spinner\"></aui-icon> {{ 'loading' | translate }}\n </div>\n <div\n *ngIf=\"status.noLegend && !status.loading\"\n class=\"status no-legend\"\n >\n {{ 'no_indicator_selected' | translate }}\n </div>\n\n <div\n *ngIf=\"status.noData && !status.loading && !status.failed\"\n class=\"status no-data\"\n >\n <ng-container\n *ngIf=\"\n customNoDataTitle && isTemplateRef(customNoDataTitle);\n else noDataTitleTemplate\n \"\n >\n <ng-container [ngTemplateOutlet]=\"customNoDataTitle\"></ng-container>\n </ng-container>\n <ng-template #noDataTitleTemplate>\n {{ customNoDataTitle || ('no_data' | translate) }}\n </ng-template>\n </div>\n </div>\n</div>\n\n<!-- title Template -->\n<ng-template #titleContainer>\n <ng-container *ngIf=\"isTemplateRef(title); else TitleTemplate\">\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isTemplateRef(titleDescription); else TitleDesTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"titleDescription\"\n [ngTemplateOutletContext]=\"titleDescriptionContext\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #TitleTemplate>\n {{ title }}\n {{ unit ? '(' + (unit | translate
|
|
651
|
+
args: [{ selector: 'acl-view-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ac-chart\"\n [class.ac-non-chart]=\"chartType === 'pie'\"\n [class.ac-bar]=\"chartType === 'bar'\"\n [style.background]=\"background\"\n>\n <div\n #chartContainer\n class=\"ac-chart-container tw-w-full tw-h-full\"\n ></div>\n\n <div\n class=\"ac-chart-status\"\n *ngIf=\"status$ | async as status\"\n >\n <div\n *ngIf=\"status.failed && !status.loading\"\n class=\"status failed\"\n >\n <ng-container *ngIf=\"customErrorContainer; else noCustomErrorContainer\">\n <ng-container [ngTemplateOutlet]=\"customErrorContainer\"></ng-container>\n </ng-container>\n <ng-template #noCustomErrorContainer>\n <aui-icon\n icon=\"exclamation_triangle_s\"\n background=\"triangle\"\n ></aui-icon>\n {{ 'failed_load_please' | translate }}\n <button\n aui-button=\"text\"\n (click)=\"refresh()\"\n >\n {{ ('refresh' | translate).toLowerCase() }}\n </button>\n </ng-template>\n </div>\n <div\n *ngIf=\"status.loading\"\n class=\"status loading\"\n >\n <aui-icon icon=\"spinner\"></aui-icon> {{ 'loading' | translate }}\n </div>\n <div\n *ngIf=\"status.noLegend && !status.loading\"\n class=\"status no-legend\"\n >\n {{ 'no_indicator_selected' | translate }}\n </div>\n\n <div\n *ngIf=\"status.noData && !status.loading && !status.failed\"\n class=\"status no-data\"\n >\n <ng-container\n *ngIf=\"\n customNoDataTitle && isTemplateRef(customNoDataTitle);\n else noDataTitleTemplate\n \"\n >\n <ng-container [ngTemplateOutlet]=\"customNoDataTitle\"></ng-container>\n </ng-container>\n <ng-template #noDataTitleTemplate>\n {{ customNoDataTitle || ('no_data' | translate) }}\n </ng-template>\n </div>\n </div>\n</div>\n\n<!-- title Template -->\n<ng-template #titleContainer>\n <ng-container *ngIf=\"isTemplateRef(title); else TitleTemplate\">\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isTemplateRef(titleDescription); else TitleDesTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"titleDescription\"\n [ngTemplateOutletContext]=\"titleDescriptionContext\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #TitleTemplate>\n {{ title }}\n {{ unit ? '(' + (unit | translate) + ')' : '' }}\n</ng-template>\n\n<ng-template #TitleDesTemplate>\n {{ titleDescription }}\n</ng-template>\n\n<!-- tooltip template -->\n<div\n #tooltipItemVirtual\n class=\"hide\"\n>\n <ng-container\n [ngTemplateOutlet]=\"tooltipPointTemplate\"\n [ngTemplateOutletContext]=\"tooltipItemContext\"\n ></ng-container>\n</div>\n\n<div\n #tooltipTitleVirtual\n class=\"hide\"\n>\n <ng-container\n [ngTemplateOutlet]=\"tooltipTitleTemplate\"\n [ngTemplateOutletContext]=\"tooltipTitleContext\"\n ></ng-container>\n</div>\n\n<div\n #tooltipNameVirtual\n class=\"hide\"\n>\n <ng-container [ngTemplateOutlet]=\"tooltipPointNameTemplate\"></ng-container>\n</div>\n\n<ng-template #pieLabelContainer>\n <ng-container\n *ngIf=\"pieLabelText && isTemplateRef(pieLabelText); else stringPieLabelText\"\n >\n <ng-container [ngTemplateOutlet]=\"pieLabelText\"></ng-container>\n </ng-container>\n <ng-template #stringPieLabelText>\n {{ pieLabelText }}\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;height:100%;display:block}:host .ac-bar ::ng-deep .ac-chart-wrapper{display:flex;flex-direction:column}:host .ac-bar ::ng-deep .ac-container{flex:1;min-height:calc(100% - 20px)}div.ac-non-chart{min-height:unset;padding:0}.ac-chart{display:flex;padding:20px 16px;width:100%;position:relative;height:210px;min-height:100%;max-height:100%}.ac-chart-container{width:100%}.ac-chart-status{left:50%;position:absolute;top:50%;white-space:nowrap;transform:translate(-50%,-50%)}.ac-chart ::ng-deep .ac-title{font-weight:var(--aui-font-weight-bolder)}.status{padding:6px 16px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-4));border-radius:2px}.status aui-icon{font-size:14px;margin-right:4px}.loading aui-icon{color:rgb(var(--aui-color-primary))}.failed aui-icon{color:rgb(var(--aui-color-red))}.hide{display:none}\n"] }]
|
|
654
652
|
}], () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }, { type: i1.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }], { backgroundColor: [{
|
|
655
653
|
type: Input
|
|
656
654
|
}], hideHeader: [{
|
|
@@ -831,4 +829,4 @@ __decorate([
|
|
|
831
829
|
type: Output
|
|
832
830
|
}] }); })();
|
|
833
831
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewChartComponent, { className: "ViewChartComponent", filePath: "view-chart/view-chart.component.ts", lineNumber: 86 }); })();
|
|
834
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L3ZpZXctY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxLQUFLLEVBTUwsV0FBVyxFQUNYLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBRXhCLFVBQVUsRUFFVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFzQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsR0FBRyxFQUNILFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNYLFVBQVUsRUFFVixnQkFBZ0IsRUFDaEIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7SUNyRHRELDZCQUF3RTtJQUN0RSw0QkFBdUU7Ozs7SUFBekQsY0FBeUM7SUFBekMsOERBQXlDOzs7O0lBR3ZELCtCQUdZO0lBQ1osWUFDQTs7SUFBQSxrQ0FHQztJQURDLG1NQUFTLGdCQUFTLEtBQUM7SUFFbkIsWUFDRjs7SUFBQSxpQkFBUzs7SUFOVCxjQUNBO0lBREEsMkVBQ0E7SUFJRSxlQUNGO0lBREUsOEVBQ0Y7OztJQWxCSiwrQkFHQztJQUlDLEFBSEEsa0dBQXdFLG1IQUduQztJQWF2QyxpQkFBTTs7OztJQWhCVyxjQUE0QjtJQUFBLEFBQTVCLGtEQUE0Qix1Q0FBMkI7OztJQWlCeEUsK0JBR0M7SUFDQywrQkFBb0M7SUFBQyxZQUN2Qzs7SUFBQSxpQkFBTTs7SUFEaUMsZUFDdkM7SUFEdUMsZ0VBQ3ZDOzs7SUFDQSwrQkFHQztJQUNDLFlBQ0Y7O0lBQUEsaUJBQU07O0lBREosY0FDRjtJQURFLDhFQUNGOzs7SUFNRSw2QkFLQztJQUNDLDRCQUFvRTs7OztJQUF0RCxjQUFzQztJQUF0QywyREFBc0M7OztJQUdwRCxZQUNGOzs7O0lBREUsNEZBQ0Y7OztJQWRGLCtCQUdDO0lBU0MsQUFSQSxrR0FLQyxtSEFHaUM7SUFHcEMsaUJBQU07Ozs7SUFWRCxjQUVZO0lBQUEsQUFGWixpR0FFWSxvQ0FFckI7OztJQS9DRSwrQkFHQztJQW1DQyxBQVBBLEFBTkEsQUFyQkEsMEVBR0MsNkRBcUJBLDZEQU1BLDZEQU9BO0lBYUgsaUJBQU07OztJQWpERCxjQUFzQztJQUF0Qyw2REFBc0M7SUFxQnRDLGNBQW9CO0lBQXBCLHdDQUFvQjtJQU1wQixjQUF3QztJQUF4QywrREFBd0M7SUFPeEMsY0FBd0Q7SUFBeEQsa0ZBQXdEOzs7SUFvQjdELDZCQUErRDtJQUM3RCw0QkFBd0Q7Ozs7SUFBMUMsY0FBMEI7SUFBMUIsK0NBQTBCOzs7SUFHMUMsNkJBQTZFO0lBQzNFLDRCQUdnQjs7OztJQUZkLGNBQXFDO0lBQ3JDLEFBREEsMERBQXFDLDJEQUNjOzs7SUFIdkQsQUFKQSxvR0FBK0QsdUZBSWM7Ozs7O0lBSmxDLEFBQTVCLHlEQUE0Qiw4QkFBa0I7SUFJOUMsY0FBdUM7SUFBQSxBQUF2QyxvRUFBdUMsaUNBQXFCOzs7SUFTM0UsWUFFRjs7OztJQUZFLHVKQUVGOzs7SUFHRSxZQUNGOzs7SUFERSx5REFDRjs7O0lBK0JFLDZCQUVDO0lBQ0MsNEJBQStEOzs7O0lBQWpELGNBQWlDO0lBQWpDLHNEQUFpQzs7O0lBRy9DLFlBQ0Y7OztJQURFLG9EQUNGOzs7SUFGQSxBQUxBLHFHQUVDLHVIQUdnQzs7OztJQUpxQixBQUFuRCx1RkFBbUQsbUNBQXVCOztBRHBDL0UsTUFBTSxPQUFPLGtCQUFrQjtJQXFQN0IsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFjRCxJQUFJLGFBQWE7UUFDZixNQUFNLFNBQVMsR0FBRztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3RCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDekMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSTtZQUNyQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQztRQUVGLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxPQUFPLFNBQTRCLENBQUM7WUFDdEMsQ0FBQztZQUNELEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDWixPQUFPLFVBQThCLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDWixPQUFPLFVBQThCLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxPQUFPO29CQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjO29CQUNoQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDMUIsZUFBZSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxhQUFhO29CQUN6RCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3BCLEtBQUssRUFBRTt3QkFDTCxRQUFRLEVBQUU7NEJBQ1IsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksS0FBSzs0QkFDcEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksS0FBSzt5QkFDckM7cUJBQ0Y7b0JBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZO29CQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtpQkFDbEQsQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUN0QixHQUFHLElBQUksQ0FBQyxnQkFBZ0I7b0JBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjO2lCQUM3QixDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLFdBQVc7WUFDaEQsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksT0FBTyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxNQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsa0JBQWtCLElBQUkseUJBQXlCLENBQUM7UUFDdkQsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUs7WUFDdEMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDN0MsTUFBTSxFQUFFO2dCQUNOLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDbEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQjtZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFlO2dCQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVO2dCQUN2QyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNwQjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3JCLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7WUFDRCxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLEVBQUU7WUFDdEMsS0FBSyxFQUFFO2dCQUNMLGFBQWEsRUFDWCxJQUFJLENBQUMsa0JBQWtCO29CQUN2QixDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FDakIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQzNCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxJQUFJO2dCQUN2QyxhQUFhLEVBQUUsa0JBQWtCO2dCQUNqQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDbEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUNoQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLGFBQWEsRUFBRSxDQUFDLE9BQTZCLEVBQUUsRUFBRTtvQkFDL0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDekIsT0FBTyxJQUFJLENBQUMsb0JBQW9CO3dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxTQUFTO3dCQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxhQUFhLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUN2RSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUN4RDtZQUNELFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFhLEVBQUUsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsQ0FBYSxFQUFFLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQzNDLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO3dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzVDLENBQUM7Z0JBQ0gsQ0FBQzthQUNGO1lBQ0QsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRSxLQUFLO2FBQ2I7WUFDRCx1QkFBdUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO1NBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsY0FBYztRQUNaLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztZQUNELEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDZixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQ21CLHdCQUFrRCxFQUNsRCxRQUFrQixFQUNsQixNQUFzQixFQUN0QixTQUEyQixFQUMzQixHQUFzQixFQUN0QixnQkFBa0M7UUFMbEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF4YTVDLFNBQUksR0FBdUIsU0FBUyxDQUFDO1FBUXJDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBSTNCLE9BQU87UUFDRSxjQUFTLEdBQWdELE1BQU0sQ0FBQztRQU1oRSxjQUFTLEdBQUcsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLGNBQVMsR0FBRyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUE0Qi9DLFNBQVM7UUFDQSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBaUJuQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUF5QmpDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBc0JqQyxTQUFTO1FBQ0EsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQVFmLFlBQU8sR0FBMkIsVUFBVSxDQUFDO1FBc0J0RCxZQUFZO1FBQ0gsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUErQ3RCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFaEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUVwRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0IsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbEQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBYztZQUNoRCxPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7UUFFSCxZQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUkxQixpQkFBWSxHQUFpQjtZQUMzQixFQUFFLEVBQUUsQ0FBQztZQUNMLEVBQUUsRUFBRSxDQUFDO1lBQ0wsTUFBTSxFQUFFLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQztTQUNSLENBQUM7UUFFRixZQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3BFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLEdBQUcsT0FBTztZQUNWLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQyxFQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUN0QyxVQUFVLEVBQUUsQ0FDYixDQUFDO1FBTUYsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFROUIsdUJBQWtCLEdBQXNDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXhFLHdCQUFtQixHQUFnQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQTJWcEQsc0JBQWlCLEdBQUcsQ0FBQyxPQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUN0QyxHQUFJLElBQUksQ0FBQywyQkFBeUM7U0FDbkQsQ0FBQyxDQUFDO1FBb0JjLHVCQUFrQixHQUFHLFdBQVcsQ0FBQztRQVdqQyxtQkFBYyxHQUFHLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sS0FBSyxHQUNULElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBZSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7b0JBQ3ZELE9BQU8sQ0FBQyxLQUFLO2dCQUNmLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CO2dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxTQUFTO2dCQUNsRCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBRWUsbUJBQWMsR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRTtZQUM5RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsa0JBQWtCO2dCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQ3ZDLENBQUMsQ0FBRSxHQUFjO2dCQUNqQixDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxDQUFDLENBQUM7SUExTkMsQ0FBQztJQUVKLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBaUI7UUFDdkMsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWE7WUFDNUMsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7d0JBQ3BCLElBQUksRUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU07NEJBQzFDLENBQUMsQ0FBQyxNQUFNOzRCQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUzt3QkFDcEIsWUFBWSxFQUFFOzRCQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUzs0QkFDL0MsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3pDO3dCQUNELEtBQUssRUFBRTs0QkFDTCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSzs0QkFDckIsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRzt5QkFDMUM7cUJBQ0YsQ0FBQyxDQUFDO29CQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QixVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzVDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDckIsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsUUFBUSxFQUNOLFdBQVcsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztxQkFDbEUsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDUixJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFO1lBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7b0JBQ3pCLEdBQUcsS0FBSztvQkFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7aUJBQ3hELENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztvQkFDekIsR0FBRyxHQUFHO29CQUNOLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztpQkFDdEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLEdBQUcsQ0FBQztZQUNKLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQztnQkFDSixDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNyQixDQUFDLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBZ0I7UUFDOUIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFFBQVEsYUFBYSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxDQUMzQixHQUFHLEVBQ0gsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FDdkUsSUFBSSxDQUFDLFNBQVMsQ0FDZjtnQkFDQyxDQUFDLENBQUMsUUFBUTtnQkFDVixDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0I7b0JBQ2hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNuRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDdkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCO2dCQUM5QyxJQUFJLENBQUMsd0JBQXdCLENBQUM7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWTtpQkFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsaUJBQWlCLENBQUM7b0JBQ3JCLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2lCQUM1QyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxRQUFRLFlBQVksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxDQUMzQixHQUFHLEVBQ0gsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQjtRQUM5QixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RCxNQUFNLENBQUMsR0FBRyxJQUFJLGNBQWMsQ0FDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQ3RCLENBQUM7WUFDRixNQUFNLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FDM0IsR0FBRyxFQUNILElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7WUFDRixJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBT08saUJBQWlCLENBQUMsTUFBbUI7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQTZCLEVBQUUsS0FBSyxHQUFHLEVBQUU7UUFDL0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsTUFBTSxXQUFXLEdBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUlPLGlCQUFpQixDQUFDLEtBQWE7UUFDckMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO21GQTluQlUsa0JBQWtCO29FQUFsQixrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7WUNyRi9CLCtCQUtDO1lBQ0MsNkJBR087WUFFUCxvRUFHQzs7WUFvREgsaUJBQU07WUFxQk4sQUFMQSxBQWJBLG9IQUE2Qix1R0FhRCx1R0FLRztZQUsvQixtQ0FHQztZQUNDLDZCQUdnQjtZQUNsQixpQkFBTTtZQUVOLG1DQUdDO1lBQ0MsNkJBR2dCO1lBQ2xCLGlCQUFNO1lBRU4sbUNBR0M7WUFDQyw2QkFBMkU7WUFDN0UsaUJBQU07WUFFTixzSEFBZ0M7O1lBbkg5Qiw0Q0FBK0I7WUFEL0IsQUFEQSx1REFBMEMsbUNBQ047WUFVakMsZUFBc0I7WUFBdEIseURBQXNCO1lBb0Z2QixnQkFBeUM7WUFDekMsQUFEQSwyREFBeUMsbURBQ0s7WUFTOUMsZUFBeUM7WUFDekMsQUFEQSwyREFBeUMsb0RBQ007WUFRbkMsZUFBNkM7WUFBN0MsK0RBQTZDOzs7QURHM0Q7SUFEQyxlQUFlLEVBQUU7OEJBQ1IsVUFBVTttREFBYztBQVFsQztJQURDLGVBQWUsRUFBRTs4QkFDVixVQUFVO2lEQUFTO0FBVzNCO0lBVEMsU0FBUyxDQUFDLFVBRVQsdUJBQWdEO1FBRWhELElBQUksdUJBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUMsQ0FBQzs7bUVBRStDO0FBd0JqRDtJQURDLGVBQWUsRUFBRTs4QkFDRCxVQUFVOzBEQUF1QjtBQUtsRDtJQURDLGVBQWUsRUFBRTs4QkFDQSxVQUFVOzJEQUF1QjtBQXNIbkQ7SUFEQyxlQUFlLEVBQUU7OEJBQ0osVUFBVTt1REFBaUI7QUFLekM7SUFEQyxlQUFlLEVBQUU7OEJBQ0osVUFBVTt1REFBYTtBQUdyQztJQURDLGVBQWUsRUFBRTs4QkFDSCxVQUFVO3dEQUFjO2lGQWhONUIsa0JBQWtCO2NBTjlCLFNBQVM7MkJBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07Mk1BR3RDLGVBQWU7a0JBQXZCLEtBQUs7WUFFRyxVQUFVO2tCQUFsQixLQUFLO1lBRXVCLGNBQWM7a0JBQTFDLFNBQVM7bUJBQUMsZ0JBQWdCO1lBRUUsY0FBYztrQkFBMUMsU0FBUzttQkFBQyxnQkFBZ0I7WUFFTSxrQkFBa0I7a0JBQWxELFNBQVM7bUJBQUMsb0JBQW9CO1lBRUcsbUJBQW1CO2tCQUFwRCxTQUFTO21CQUFDLHFCQUFxQjtZQUVDLGtCQUFrQjtrQkFBbEQsU0FBUzttQkFBQyxvQkFBb0I7WUFFQyxpQkFBaUI7a0JBQWhELFNBQVM7bUJBQUMsbUJBQW1CO1lBRXJCLElBQUk7a0JBQVosS0FBSztZQUVHLGlCQUFpQjtrQkFBekIsS0FBSztZQUVHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsT0FBTztrQkFBZixLQUFLO1lBR0csU0FBUztrQkFBakIsS0FBSztZQUVHLE1BQU07a0JBQWQsS0FBSztZQUVOLE9BQU8sTUFFRSxTQUFTO2tCQUFqQixLQUFLO1lBRUcsU0FBUztrQkFBakIsS0FBSztZQUVHLElBQUk7a0JBQVosS0FBSztZQUVOLEtBQUssTUFXTCx1QkFBdUI7a0JBRHRCLEtBQUs7WUFJRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxTQUFTO2tCQUFqQixLQUFLO1lBRUcsZ0JBQWdCO2tCQUF4QixLQUFLO1lBRUcsdUJBQXVCO2tCQUEvQixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUdHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxjQUFjO2tCQUF0QixLQUFLO1lBR0csYUFBYTtrQkFBckIsS0FBSztZQUVHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUdOLGNBQWMsTUFFTCxjQUFjO2tCQUF0QixLQUFLO1lBR04sZUFBZSxNQUVOLHdCQUF3QjtrQkFBaEMsS0FBSztZQUVHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUlHLGVBQWU7a0JBQXZCLEtBQUs7WUFFRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFFRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFFRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsS0FBSztrQkFBYixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUdHLGNBQWM7a0JBQXRCLEtBQUs7WUFFRyxlQUFlO2tCQUF2QixLQUFLO1lBRUcsZ0JBQWdCO2tCQUF4QixLQUFLO1lBRUcsbUJBQW1CO2tCQUEzQixLQUFLO1lBRUcsb0JBQW9CO2tCQUE1QixLQUFLO1lBRUcsd0JBQXdCO2tCQUFoQyxLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsdUJBQXVCO2tCQUEvQixLQUFLO1lBRUcsZUFBZTtrQkFBdkIsS0FBSztZQUVHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUVHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLDJCQUEyQjtrQkFBbkMsS0FBSztZQUdHLFNBQVM7a0JBQWpCLEtBQUs7WUFFRyxTQUFTO2tCQUFqQixLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLFNBQVM7a0JBQWpCLEtBQUs7WUFFRyxPQUFPO2tCQUFmLEtBQUs7WUFFRyxZQUFZO2tCQUFwQixLQUFLO1lBRUcsVUFBVTtrQkFBbEIsS0FBSztZQUVHLFNBQVM7a0JBQWpCLEtBQUs7WUFHRyxPQUFPO2tCQUFmLEtBQUs7WUFFRyxTQUFTO2tCQUFqQixLQUFLO1lBRUcsaUJBQWlCO2tCQUF6QixLQUFLO1lBRUcsV0FBVztrQkFBbkIsS0FBSztZQUdHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBR0csY0FBYztrQkFBdEIsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFHRyxjQUFjO2tCQUF0QixLQUFLO1lBRUcsY0FBYztrQkFBdEIsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsUUFBUTtrQkFBaEIsS0FBSztZQUVHLFlBQVk7a0JBQXBCLEtBQUs7WUFFRyxZQUFZO2tCQUFwQixLQUFLO1lBRUcsZ0JBQWdCO2tCQUF4QixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQU1OLFdBQVcsTUFFRixVQUFVO2tCQUFsQixLQUFLO1lBR04sV0FBVyxNQUdYLFlBQVksTUFFRixZQUFZO2tCQUFyQixNQUFNO1lBRUcsY0FBYztrQkFBdkIsTUFBTTtZQUVHLFlBQVk7a0JBQXJCLE1BQU07O2tGQXROSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBQ2hhcnQsXG4gIEFyZWFTZXJpZXNPcHRpb24sXG4gIEJhckNvbHVtblBhcmFtcyxcbiAgQmFyU2VyaWVzT3B0aW9uLFxuICBDaGFydCxcbiAgQ2hhcnREYXRhLFxuICBMaW5lU2VyaWVzT3B0aW9uLFxuICBWaWV3T3B0aW9ucyxcbiAgUGVyY2VudGFnZSxcbiAgUGllU2VyaWVzT3B0aW9uLFxuICBSRUNUX0VWRU5UUyxcbiAgU2NhbGVUeXBlLFxuICBUb29sdGlwQ29udGV4dCxcbiAgVG9vbHRpcENvbnRleHRJdGVtLFxuICBWaWV3LFxufSBmcm9tICdAYWxhdWRhL2NoYXJ0JztcbmltcG9ydCB7IGlzVGVtcGxhdGVSZWYgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENvbXBvbmVudFBvcnRhbCxcbiAgRG9tUG9ydGFsT3V0bGV0LFxuICBUZW1wbGF0ZVBvcnRhbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1cnZlRmFjdG9yeSwgQ3VydmVGYWN0b3J5TGluZU9ubHksIHRpbWVGb3JtYXQgfSBmcm9tICdkMyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICBjb21iaW5lTGF0ZXN0LFxuICBzdGFydFdpdGgsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBBcmVhUG9zaXRpb24sXG4gIENoYXJ0RGF0YUl0ZW0sXG4gIENoYXJ0U3RhdHVzLFxuICBDb250ZXh0SXRlbSxcbiAgaGFuZGxlRGF0ZUZvcm1hdCxcbiAgT2JzZXJ2YWJsZUlucHV0LFxuICBwb2ludEZvcm1hdCxcbiAgcHVibGlzaFJlZixcbiAgU3RyaW5nTWFwLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBWYWx1ZUhvb2ssXG4gIFhQbG90TGluZXMsXG59IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuL2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFpvb21QYXJhbXMge1xuICB4OiBudW1iZXI7XG4gIHZhbHVlOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC12aWV3LWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0aXRsZUNvbnRhaW5lcicpIHRpdGxlQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwSXRlbVZpcnR1YWwnKSB0b29sdGlwSXRlbVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFRpdGxlVmlydHVhbCcpIHRvb2x0aXBUaXRsZVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcE5hbWVWaXJ0dWFsJykgdG9vbHRpcE5hbWVWaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpZUxhYmVsQ29udGFpbmVyJykgcGllTGFiZWxDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIG1vZGU6ICdjYXJkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSBjdXN0b21Ob0RhdGFUaXRsZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgQElucHV0KCkgY3VzdG9tRXJyb3JDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlcjtcblxuICBASW5wdXQoKSBncmlkT2Zmc2V0VG9wID0gMDtcblxuICBASW5wdXQoKSByb3RhdGVkOiBib29sZWFuO1xuXG4gIC8vIGJhc2VcbiAgQElucHV0KCkgY2hhcnRUeXBlOiAnbGluZScgfCAnYXJlYScgfCAnYmFyJyB8ICdwaWUnIHwgJ3NjYXR0ZXInID0gJ2FyZWEnO1xuXG4gIEBJbnB1dCgpIHNlcmllczogQ2hhcnREYXRhW107XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBzZXJpZXMkITogT2JzZXJ2YWJsZTxDaGFydERhdGFbXT47XG5cbiAgQElucHV0KCkgeEFjY2Vzc29yID0gKGQ6IENoYXJ0RGF0YUl0ZW0pID0+IGQueDtcblxuICBASW5wdXQoKSB5QWNjZXNzb3IgPSAoZDogQ2hhcnREYXRhSXRlbSkgPT4gZC55O1xuXG4gIEBJbnB1dCgpIHVuaXQ6IHN0cmluZztcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHVuaXQkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKFxuICAgIHRoaXM6IFZpZXdDaGFydENvbXBvbmVudCxcbiAgICBjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbjogKGNvbnRleHQ6IFZpZXcpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbiAmJiAhdGhpcy5vcHRpb25zPy5jb250ZXh0Q2FsbGJhY2tGdW5jdGlvbikge1xuICAgICAgdGhpcy5jaGFydD8uc2V0T3B0aW9ucyh7IGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uIH0pO1xuICAgIH1cbiAgfSlcbiAgQElucHV0KClcbiAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBWaWV3KSA9PiB2b2lkO1xuXG4gIC8vIHRpdGxlXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBoaWRlVGl0bGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdGl0bGVEZXNjcmlwdGlvbjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdGl0bGVEZXNjcmlwdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBASW5wdXQoKSB0aXRsZU9mZnNldFg6IG51bWJlcjtcblxuICAvLyBsZWdlbmRcbiAgQElucHV0KCkgaGlkZUxlZ2VuZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGxlZ2VuZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHN0cmluZztcblxuICAvLyBjdXN0b20gbGVnZW5kXG4gIEBJbnB1dCgpIGxlZnRPcGVyYXRpb246IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGxlZnRPcGVyYXRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGxlZnRPcGVyYXRpb24kITogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjx1bmtub3duPj47XG5cbiAgQElucHV0KCkgcmlnaHRPcGVyYXRpb246IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByaWdodE9wZXJhdGlvbiQhOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPHVua25vd24+PjtcblxuICBASW5wdXQoKSBsZWdlbmRTZWxlY3RBbGxPcGVyYXRpb24gPSBmYWxzZTtcblxuICBASW5wdXQoKSBsZWdlbmRTZWxlY3RBbGxOYW1lOiBzdHJpbmc7XG5cbiAgLy8gYXhpc1xuXG4gIEBJbnB1dCgpIHlBeGlzVGlja1N1ZmZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRhdGVBeGlzTGFiZWxGb3JtYXRzOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgeEF4aXNMYWJlbFRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHhTY2FsZVR5cGU6IFNjYWxlVHlwZTtcblxuICBASW5wdXQoKSB4QXhpc1RpY2tGb3JtYXR0ZXI6IHN0cmluZyB8ICgodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKTtcblxuICBASW5wdXQoKSB0aWNrczogdW5rbm93bjtcblxuICBASW5wdXQoKSB5QXhpc1RpY2tGb3JtYXR0ZXI6IHN0cmluZyB8ICgodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nKTtcblxuICBASW5wdXQoKSB5QXhpc01pblN0ZXA/OiBudW1iZXI7XG5cbiAgLy8gdG9vbHRpcFxuICBASW5wdXQoKSB0b29sdGlwVHJpZ2dlcjogJ2F4aXMnIHwgJ2l0ZW0nIHwgJ25vbmUnO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBBdXRvU29ydCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBIaWRlVGl0bGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcENvbHVtbkxheW91dDogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwVGl0bGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvaW50TmFtZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaGlkZVRvb2x0aXBVbml0OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludEZvcm1hdDogKGQ6IENvbnRleHRJdGVtKSA9PiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvaW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludFRlbXBsYXRlQ29udGV4dDogdW5rbm93bjtcblxuICAvLyBzZXJpZXNcbiAgQElucHV0KCkgYmFuZFdpZHRoID0gMTA7XG5cbiAgQElucHV0KCkgbWluSGVpZ2h0OiBudW1iZXI7XG5cbiAgQElucHV0KCkgc3RlcExpbmU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY3VydmVUeXBlOiBDdXJ2ZUZhY3RvcnkgfCBDdXJ2ZUZhY3RvcnlMaW5lT25seTtcblxuICBASW5wdXQoKSBiYXJUeXBlOiAnc3RhbmRhcmQnIHwgJ3N0YWNrZWQnID0gJ3N0YW5kYXJkJztcblxuICBASW5wdXQoKSBzdGFydE9wYWNpdHk6IG51bWJlcjtcblxuICBASW5wdXQoKSBlbmRPcGFjaXR5OiBudW1iZXI7XG5cbiAgQElucHV0KCkgbGluZVdpZHRoPzogbnVtYmVyO1xuXG4gIC8vIGJhciBzZXJpZXNcbiAgQElucHV0KCkgaXNHcm91cDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBiYXJSYWRpdXM6IG51bWJlcjtcblxuICBASW5wdXQoKSBjbG9zZVJhZGl1c0xhZGRlcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjb2x1bW5DbGljazogKGRhdGE6IEJhckNvbHVtblBhcmFtcykgPT4gdm9pZDtcblxuICAvLyB6b29tXG4gIEBJbnB1dCgpIGVuYWJsZVpvb206IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY2hhcnRTdGF0dXM6IENoYXJ0U3RhdHVzO1xuXG4gIC8vIHBsb3QgbGluZVxuICBASW5wdXQoKSB5UGxvdExpbmVzSGlkZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHlQbG90TGluZXM6IFRvb2x0aXBDb250ZXh0O1xuXG4gIC8vIHBpZVxuICBASW5wdXQoKSBwaWVJbm5lclJhZGl1czogbnVtYmVyIHwgUGVyY2VudGFnZTtcblxuICBASW5wdXQoKSBwaWVPdXRlclJhZGl1czogbnVtYmVyIHwgUGVyY2VudGFnZTtcblxuICBASW5wdXQoKSBwaWVTdGFydEFuZ2xlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGllRW5kQW5nbGU6IG51bWJlcjtcblxuICBASW5wdXQoKSBwaWVCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICBASW5wdXQoKSBwaWVUb3RhbDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBpZUlubmVyRGlzYzogYm9vbGVhbjtcblxuICBASW5wdXQoKSBwaWVMYWJlbFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHBpZUxhYmVsUG9zaXRpb246IHsgeDogc3RyaW5nOyB5OiBzdHJpbmcgfTtcblxuICBASW5wdXQoKSBwaWVJdGVtU3R5bGU/OiB7XG4gICAgYm9yZGVyUmFkaXVzPzogbnVtYmVyO1xuICB9O1xuXG4gIC8vIHNjYXR0ZXJcbiAgQElucHV0KCkgc2NhdHRlclR5cGU6ICdidWJibGUnO1xuICBASW5wdXQoKSBzY2F0dGVyT3BhY2l0eTogbnVtYmVyO1xuICBASW5wdXQoKSBzY2F0dGVyU2l6ZTogbnVtYmVyO1xuICBASW5wdXQoKSBzY2F0dGVyVGhyZXNob2xkOiB7XG4gICAgbWluU2l6ZTogbnVtYmVyO1xuICAgIG1heFNpemU6IG51bWJlcjtcbiAgfTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgeVBsb3RMaW5lcyQhOiBPYnNlcnZhYmxlPFRvb2x0aXBDb250ZXh0PjtcblxuICBASW5wdXQoKSB4UGxvdExpbmVzOiBYUGxvdExpbmVzO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB4UGxvdExpbmVzJCE6IE9ic2VydmFibGU8WFBsb3RMaW5lcz47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNoYXJ0U3RhdHVzJCE6IE9ic2VydmFibGU8Q2hhcnRTdGF0dXM+O1xuXG4gIEBPdXRwdXQoKSBtb3VzZVVwRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEFyZWFQb3NpdGlvbj4oKTtcblxuICBAT3V0cHV0KCkgbWFya0NsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRvb2x0aXBDb250ZXh0PigpO1xuXG4gIEBPdXRwdXQoKSByZWZyZXNoRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBfY2hhcnRTdGF0dXMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2hhcnRTdGF0dXM+KHtcbiAgICBsb2FkaW5nOiB0cnVlLFxuICAgIG5vRGF0YTogZmFsc2UsXG4gICAgZmFpbGVkOiBmYWxzZSxcbiAgICBub0xlZ2VuZDogZmFsc2UsXG4gIH0pO1xuXG4gIF9zdGF0dXM6IENoYXJ0U3RhdHVzID0ge307XG5cbiAgY2hhcnQ6IEFDaGFydDtcblxuICBhcmVhUG9zaXRpb246IEFyZWFQb3NpdGlvbiA9IHtcbiAgICB4MTogMCxcbiAgICB4MjogMCxcbiAgICBzdGFydFg6IDAsXG4gICAgZW5kWDogMCxcbiAgfTtcblxuICBzdGF0dXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5jaGFydFN0YXR1cyQsIHRoaXMuX2NoYXJ0U3RhdHVzJCRdKS5waXBlKFxuICAgIG1hcCgoW3N0YXR1cywgX3N0YXR1c10pID0+ICh7XG4gICAgICAuLi5fc3RhdHVzLFxuICAgICAgLi4uc3RhdHVzLFxuICAgIH0pKSxcbiAgICB0YXAoc3RhdHVzID0+ICh0aGlzLl9zdGF0dXMgPSBzdGF0dXMpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGJhY2tncm91bmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yO1xuICB9XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgY3VzdG9tTGVnZW5kUmVmOiBDb21wb25lbnRSZWY8TGVnZW5kQ29tcG9uZW50PjtcblxuICBjdXN0b21UaXRsZVJlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gIGN1c3RvbVBpZUxhYmVsVGV4dFJlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gIHRvb2x0aXBJdGVtQ29udGV4dDogeyBjb250ZXh0OiBUb29sdGlwQ29udGV4dEl0ZW1bXSB9ID0geyBjb250ZXh0OiBbXSB9O1xuXG4gIHRvb2x0aXBUaXRsZUNvbnRleHQ6IHsgY29udGV4dDogVG9vbHRpcENvbnRleHQgfSA9IHsgY29udGV4dDogbnVsbCB9O1xuXG4gIGdldCBzZXJpZXNPcHRpb25zKCkge1xuICAgIGNvbnN0IGJhclNlcmllcyA9IHtcbiAgICAgIHN0YWNrOiB0aGlzLmJhclR5cGUgPT09ICdzdGFja2VkJyxcbiAgICAgIGJhbmR3aWR0aDogdGhpcy5iYW5kV2lkdGgsXG4gICAgICBpc0dyb3VwOiB0aGlzLmlzR3JvdXAsXG4gICAgICByYWRpdXM6IHRoaXMuYmFyUmFkaXVzLFxuICAgICAgY2xvc2VSYWRpdXNMYWRkZXI6IHRoaXMuY2xvc2VSYWRpdXNMYWRkZXIsXG4gICAgICBjb2x1bW5DbGljazogdGhpcy5jb2x1bW5DbGljayB8fCBudWxsLFxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCxcbiAgICB9O1xuICAgIGNvbnN0IGxpbmVTZXJpZXMgPSB7XG4gICAgICBzdGVwOiB0aGlzLnN0ZXBMaW5lLFxuICAgICAgY3VydmVUeXBlOiB0aGlzLmN1cnZlVHlwZSxcbiAgICAgIGxpbmVXaWR0aDogdGhpcy5saW5lV2lkdGgsXG4gICAgfTtcbiAgICBjb25zdCBhcmVhU2VyaWVzID0ge1xuICAgICAgY3VydmVUeXBlOiB0aGlzLmN1cnZlVHlwZSxcbiAgICAgIHN0YXJ0T3BhY2l0eTogdGhpcy5zdGFydE9wYWNpdHksXG4gICAgICBlbmRPcGFjaXR5OiB0aGlzLmVuZE9wYWNpdHksXG4gICAgICBsaW5lV2lkdGg6IHRoaXMubGluZVdpZHRoLFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKHRoaXMuY2hhcnRUeXBlKSB7XG4gICAgICBjYXNlICdiYXInOiB7XG4gICAgICAgIHJldHVybiBiYXJTZXJpZXMgYXMgQmFyU2VyaWVzT3B0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSAnbGluZSc6IHtcbiAgICAgICAgcmV0dXJuIGxpbmVTZXJpZXMgYXMgTGluZVNlcmllc09wdGlvbjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2FyZWEnOiB7XG4gICAgICAgIHJldHVybiBhcmVhU2VyaWVzIGFzIEFyZWFTZXJpZXNPcHRpb247XG4gICAgICB9XG4gICAgICBjYXNlICdwaWUnOiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5uZXJSYWRpdXM6IHRoaXMucGllSW5uZXJSYWRpdXMsXG4gICAgICAgICAgb3V0ZXJSYWRpdXM6IHRoaXMucGllT3V0ZXJSYWRpdXMsXG4gICAgICAgICAgc3RhcnRBbmdsZTogdGhpcy5waWVTdGFydEFuZ2xlLFxuICAgICAgICAgIGVuZEFuZ2xlOiB0aGlzLnBpZUVuZEFuZ2xlLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5waWVCYWNrZ3JvdW5kQ29sb3IgfHwgJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICB0b3RhbDogdGhpcy5waWVUb3RhbCxcbiAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgeDogdGhpcy5waWVMYWJlbFBvc2l0aW9uPy54IHx8ICc1MCUnLFxuICAgICAgICAgICAgICB5OiB0aGlzLnBpZUxhYmVsUG9zaXRpb24/LnkgfHwgJzUwJScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5uZXJEaXNjOiB0aGlzLnBpZUlubmVyRGlzYyxcbiAgICAgICAgICBpdGVtU3R5bGU6IHRoaXMucGllSXRlbVN0eWxlIHx8IHsgYm9yZGVyUmFkaXVzOiB0aGlzLmJhbmRXaWR0aCAvIDIgfSxcbiAgICAgICAgfSBhcyBQaWVTZXJpZXNPcHRpb247XG4gICAgICB9XG4gICAgICBjYXNlICdzY2F0dGVyJzoge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNpemU6IHRoaXMuc2NhdHRlclNpemUsXG4gICAgICAgICAgLi4udGhpcy5zY2F0dGVyVGhyZXNob2xkLFxuICAgICAgICAgIHR5cGU6IHRoaXMuc2NhdHRlclR5cGUsXG4gICAgICAgICAgb3BhY2l0eTogdGhpcy5zY2F0dGVyT3BhY2l0eSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBpc0NhcmRNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdjYXJkJztcbiAgfVxuXG4gIGdldCBzY2FsZVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMueFNjYWxlVHlwZSB8fCBTY2FsZVR5cGUuVElNRTtcbiAgfVxuXG4gIGdldCBpc1NjYWxlVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZVR5cGUgPT09IFNjYWxlVHlwZS5USU1FO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogVmlld09wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRYQXhpc1RpY2tGb3JtYXR0ZXIgPSB0aGlzLmlzU2NhbGVUaW1lXG4gICAgICA/ICgpID0+IHRpbWVGb3JtYXQodGhpcy5kYXRlQXhpc0xhYmVsRm9ybWF0cyB8fCAnJUg6JU0nKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IHhBeGlzVGlja0Zvcm1hdHRlciA9XG4gICAgICB0aGlzLnhBeGlzVGlja0Zvcm1hdHRlciB8fCBkZWZhdWx0WEF4aXNUaWNrRm9ybWF0dGVyO1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21IZWFkZXI6IHRoaXMuY2hhcnRUeXBlICE9PSAncGllJyxcbiAgICAgIHR5cGU6IHRoaXMuc3RlcExpbmUgPyAnbGluZScgOiB0aGlzLmNoYXJ0VHlwZSxcbiAgICAgIG9mZnNldDoge1xuICAgICAgICB4OiB0aGlzLm1hcmdpbkxlZnQsXG4gICAgICAgIHk6IHRoaXMuaXNDYXJkTW9kZSA/IDUgOiAwLFxuICAgICAgfSxcbiAgICAgIHJvdGF0ZWQ6IHRoaXMucm90YXRlZCxcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIHRleHQ6IHRoaXMudGl0bGUgYXMgc3RyaW5nLFxuICAgICAgICBvZmZzZXRYOiB0aGlzLnRpdGxlT2Zmc2V0WCxcbiAgICAgICAgaGlkZTogdGhpcy5oaWRlVGl0bGUgfHwgdGhpcy5oaWRlSGVhZGVyLFxuICAgICAgICBmb3JtYXR0ZXI6ICgpID0+ICcnLFxuICAgICAgfSxcbiAgICAgIGxlZ2VuZDoge1xuICAgICAgICBoaWRlOiB0aGlzLmhpZGVIZWFkZXIsXG4gICAgICAgIGZvcm1hdHRlcjogKCkgPT4gJycsXG4gICAgICAgIG9mZnNldFk6IHRoaXMuaXNDYXJkTW9kZSA/IC04IDogMCxcbiAgICAgICAgaXNNb3VudDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBncmlkOiB7IHRvcDogdGhpcy5ncmlkT2Zmc2V0VG9wIHx8IDAgfSxcbiAgICAgIHlBeGlzOiB7XG4gICAgICAgIHRpY2tGb3JtYXR0ZXI6XG4gICAgICAgICAgdGhpcy55QXhpc1RpY2tGb3JtYXR0ZXIgfHxcbiAgICAgICAgICAoKHZhbHVlOiBudW1iZXIpID0+XG4gICAgICAgICAgICBgJHt0aGlzLmNvbnZlcnNpb25NYXhpbXVtKHZhbHVlKX0ke3RoaXMueUF4aXNUaWNrU3VmZml4IHx8ICcnfWApLFxuICAgICAgICBtaW5TdGVwOiB0aGlzLnlBeGlzTWluU3RlcCxcbiAgICAgIH0sXG4gICAgICB4QXhpczoge1xuICAgICAgICB0eXBlOiB0aGlzLnhTY2FsZVR5cGUgfHwgU2NhbGVUeXBlLlRJTUUsXG4gICAgICAgIHRpY2tGb3JtYXR0ZXI6IHhBeGlzVGlja0Zvcm1hdHRlcixcbiAgICAgICAgdGlja3M6IHRoaXMudGlja3MsXG4gICAgICB9LFxuICAgICAgdG9vbHRpcDoge1xuICAgICAgICBoaWRlVGl0bGU6IHRoaXMudG9vbHRpcEhpZGVUaXRsZSxcbiAgICAgICAgdHJpZ2dlcjogdGhpcy50b29sdGlwVHJpZ2dlclR5cGUsXG4gICAgICAgIHRpdGxlRm9ybWF0dGVyOiB0aGlzLnRpdGxlRm9ybWF0dGVyLFxuICAgICAgICBpdGVtRm9ybWF0dGVyOiAoY29udGV4dDogVG9vbHRpcENvbnRleHRJdGVtW10pID0+IHtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBJdGVtQ29udGV4dCA9IHRoaXMubWVyZ2VQb2ludENvbnRleHQoY29udGV4dCk7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBQb2ludFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMudG9vbHRpcEl0ZW1WaXJ0dWFsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MXG4gICAgICAgICAgICA6IHRoaXMudG9vbHRpcEl0ZW1Db250ZXh0LmNvbnRleHQ7XG4gICAgICAgIH0sXG4gICAgICAgIG5hbWVGb3JtYXR0ZXI6ICh7IG5hbWUgfSkgPT5cbiAgICAgICAgICB0aGlzLnRvb2x0aXBUcmFuc2xhdGlvbiA/IHRoaXMudHJhbnNsYXRlLmdldChuYW1lLCBudWxsLCB0cnVlKSA6IG5hbWUsXG4gICAgICAgIHZhbHVlRm9ybWF0dGVyOiB0aGlzLnZhbHVlRm9ybWF0dGVyLFxuICAgICAgICBzb3J0OiB0aGlzLnRvb2x0aXBBdXRvU29ydCA/IChhLCBiKSA9PiBiLnkgLSBhLnkgOiBudWxsLFxuICAgICAgfSxcbiAgICAgIHNlcmllc09wdGlvbjogdGhpcy5zZXJpZXNPcHRpb25zLFxuICAgICAgem9vbToge1xuICAgICAgICBlbmFibGVkOiB0aGlzLmVuYWJsZVpvb20sXG4gICAgICAgIG9uem9vbVN0YXJ0OiAoZDogWm9vbVBhcmFtcykgPT4ge1xuICAgICAgICAgIHRoaXMuYXJlYVBvc2l0aW9uLngxID0gZC54O1xuICAgICAgICAgIHRoaXMuYXJlYVBvc2l0aW9uLnN0YXJ0WCA9IGQudmFsdWUueDtcbiAgICAgICAgfSxcbiAgICAgICAgb256b29tRW5kOiAoZDogWm9vbVBhcmFtcykgPT4ge1xuICAgICAgICAgIHRoaXMuYXJlYVBvc2l0aW9uLngyID0gZC54O1xuICAgICAgICAgIHRoaXMuYXJlYVBvc2l0aW9uLmVuZFggPSBkLnZhbHVlLng7XG4gICAgICAgICAgY29uc3QgeyBzdGFydFgsIGVuZFggfSA9IHRoaXMuYXJlYVBvc2l0aW9uO1xuICAgICAgICAgIGlmIChzdGFydFggIT09IGVuZFgpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VVcEV2ZW50Lm5leHQodGhpcy5hcmVhUG9zaXRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB4UGxvdExpbmU6IHtcbiAgICAgICAgY29sb3I6ICdyZWQnLFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uOiB0aGlzLmNvbnRleHRDYWxsYmFja0Z1bmN0aW9uLFxuICAgIH07XG4gIH1cblxuICBnZXQgdG9vbHRpcFRyaWdnZXJUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXBUcmlnZ2VyIHx8IHRoaXMuZ2V0VHJpZ2dlclR5cGUoKTtcbiAgfVxuXG4gIGdldFRyaWdnZXJUeXBlKCkge1xuICAgIHN3aXRjaCAodGhpcy5jaGFydFR5cGUpIHtcbiAgICAgIGNhc2UgJ2xpbmUnOlxuICAgICAgY2FzZSAnYXJlYSc6XG4gICAgICBjYXNlICdiYXInOiB7XG4gICAgICAgIHJldHVybiAnYXhpcyc7XG4gICAgICB9XG4gICAgICBjYXNlICdzY2F0dGVyJzoge1xuICAgICAgICByZXR1cm4gJ2l0ZW0nO1xuICAgICAgfVxuICAgICAgY2FzZSAncGllJzoge1xuICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyh7IGVuYWJsZVpvb20gfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChlbmFibGVab29tPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY2hhcnQ/LnNldE9wdGlvbnMoeyB6b29tOiB7IGVuYWJsZWQ6IHRydWUgfSB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydCA9IENoYXJ0KHtcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGF0YTogW10sXG4gICAgfSk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zZXJpZXMkLCB0aGlzLnhQbG90TGluZXMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKV0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoW2RhdGEsIHJlc10pID0+IHtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5jaGFydC5zZXRPcHRpb25zKHtcbiAgICAgICAgICAgICAgdHlwZTpcbiAgICAgICAgICAgICAgICBkYXRhLmxlbmd0aCA+IDMgJiYgdGhpcy5jaGFydFR5cGUgPT09ICdhcmVhJ1xuICAgICAgICAgICAgICAgICAgPyAnbGluZSdcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5jaGFydFR5cGUsXG4gICAgICAgICAgICAgIHNlcmllc09wdGlvbjoge1xuICAgICAgICAgICAgICAgIGxpbmVXaWR0aDogZGF0YS5sZW5ndGggPiAzID8gMSA6IHRoaXMubGluZVdpZHRoLFxuICAgICAgICAgICAgICAgIGFjdGl2ZUxpbmVXaWR0aDogZGF0YS5sZW5ndGggPiAzID8gMiA6IDMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHlBeGlzOiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLnlBeGlzLFxuICAgICAgICAgICAgICAgIG1heDogcmVzPy52YWx1ZSB8fCB0aGlzLm9wdGlvbnMueUF4aXMubWF4LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmhhbmRlbERhdGEoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0LmRhdGEodmFsdWVzKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmFkZEN1c3RvbUxlZ2VuZCh0aGlzLmNoYXJ0LmNoYXJ0VUlkKTtcbiAgICAgICAgICAgICAgdGhpcy5hZGRDdXN0b21UaXRsZSh0aGlzLmNoYXJ0LmNoYXJ0VUlkKTtcbiAgICAgICAgICAgICAgdGhpcy5hZGRQaWVMYWJlbFRleHQodGhpcy5jaGFydC5jaGFydFVJZCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIGNvbnN0IGxlZ2VuZEl0ZW1zID0gdGhpcy5jaGFydC5nZXRDb250cm9sbGVyKCdsZWdlbmQnKS5sZWdlbmRJdGVtcztcbiAgICAgICAgICAgIHRoaXMuaGFuZGVsQ2hhcnRTdGF0dXMoe1xuICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgbm9MZWdlbmQ6XG4gICAgICAgICAgICAgICAgbGVnZW5kSXRlbXMubGVuZ3RoICYmIGxlZ2VuZEl0ZW1zLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0uYWN0aXZhdGUpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQ/LnVwZGF0ZVhQbG90TGluZShyZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIHRoaXMuY2hhcnQub24oUkVDVF9FVkVOVFMuQ0xJQ0ssICh2YWx1ZTogVG9vbHRpcENvbnRleHQpID0+IHtcbiAgICAgIHRoaXMubWFya0NsaWNrRXZlbnQubmV4dCh2YWx1ZSk7XG4gICAgICBpZiAoIXRoaXMueVBsb3RMaW5lc0hpZGUgJiYgdGhpcy55UGxvdExpbmVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnQudXBkYXRlWVBsb3RMaW5lKHtcbiAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICB0aXRsZTogZGF5anModmFsdWUudGl0bGUpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnlQbG90TGluZXMkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLmNoYXJ0LnVwZGF0ZVlQbG90TGluZSh7XG4gICAgICAgICAgLi4ucmVzLFxuICAgICAgICAgIHRpdGxlOiBkYXlqcyhyZXMudGl0bGUpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRlbERhdGEoZGF0YTogQ2hhcnREYXRhW10pIHtcbiAgICByZXR1cm4gZGF0YS5tYXAoZCA9PiAoe1xuICAgICAgLi4uZCxcbiAgICAgIHZhbHVlczogZC52YWx1ZXM/Lm1hcCh2ID0+ICh7XG4gICAgICAgIC4uLnYsXG4gICAgICAgIHg6IHRoaXMueEFjY2Vzc29yKHYpLFxuICAgICAgICB5OiB0aGlzLnlBY2Nlc3Nvcih2KSxcbiAgICAgIH0pKSxcbiAgICB9KSk7XG4gIH1cblxuICBhZGRDdXN0b21MZWdlbmQoY2hhcnRVSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NoYXJ0VUlkfSAuYWMtbGVnZW5kYCk7XG4gICAgaWYgKCF0aGlzLmN1c3RvbUxlZ2VuZFJlZiAmJiBkb20gJiYgIXRoaXMuaGlkZUhlYWRlcikge1xuICAgICAgY29uc3QgcCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTGVnZW5kQ29tcG9uZW50KTtcbiAgICAgIGNvbnN0IG8gPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICBkb20sXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICk7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZiA9IHAuYXR0YWNoKG8pO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UuY2hhcnQgPSB0aGlzLmNoYXJ0O1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc3ltYm9sID0gWydiYXInLCAncGllJywgJ3NjYXR0ZXInXS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy5jaGFydFR5cGUsXG4gICAgICApXG4gICAgICAgID8gJ2NpcmNsZSdcbiAgICAgICAgOiAnbGluZSc7XG4gICAgICB0aGlzLmxlZnRPcGVyYXRpb24kLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmxlZnRPcGVyYXRpb24gPSB0aGlzLmxlZnRPcGVyYXRpb247XG4gICAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmxlZnRPcGVyYXRpb25Db250ZXh0ID1cbiAgICAgICAgICB0aGlzLmxlZnRPcGVyYXRpb25Db250ZXh0O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmlnaHRPcGVyYXRpb24kLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnJpZ2h0T3BlcmF0aW9uID0gdGhpcy5yaWdodE9wZXJhdGlvbjtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmhpZGVMZWdlbmQgPSB0aGlzLmhpZGVMZWdlbmQ7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5zZWxlY3RBbGxOYW1lID0gdGhpcy5sZWdlbmRTZWxlY3RBbGxOYW1lO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc2VsZWN0QWxsT3BlcmF0aW9uID1cbiAgICAgICAgdGhpcy5sZWdlbmRTZWxlY3RBbGxPcGVyYXRpb247XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS50ZW1wbGF0ZSA9IHRoaXMubGVnZW5kVGVtcGxhdGU7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5jaGFuZ2VMZWdlbmRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRlbENoYXJ0U3RhdHVzKHtcbiAgICAgICAgICAgIG5vTGVnZW5kOiByZXMuZXZlcnkoaXRlbSA9PiAhaXRlbS5hY3RpdmF0ZSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFkZEN1c3RvbVRpdGxlKGNoYXJ0VUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb20gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFydFVJZH0gLmFjLXRpdGxlYCk7XG4gICAgaWYgKCF0aGlzLmN1c3RvbVRpdGxlUmVmICYmIGRvbSAmJiAhdGhpcy5oaWRlSGVhZGVyKSB7XG4gICAgICBjb25zdCBwID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGl0bGVDb250YWluZXIsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21UaXRsZVJlZiA9IHAuYXR0YWNoKG8pO1xuICAgIH1cbiAgfVxuXG4gIGFkZFBpZUxhYmVsVGV4dChjaGFydFVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y2hhcnRVSWR9IC5hYy1waWUtZ3VpZGVgKTtcbiAgICBpZiAoIXRoaXMuY3VzdG9tUGllTGFiZWxUZXh0UmVmICYmIGRvbSAmJiB0aGlzLnBpZUxhYmVsVGV4dCkge1xuICAgICAgY29uc3QgcCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGhpcy5waWVMYWJlbENvbnRhaW5lcixcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG8gPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICBkb20sXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICk7XG4gICAgICB0aGlzLmN1c3RvbVBpZUxhYmVsVGV4dFJlZiA9IHAuYXR0YWNoKG8pO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoRXZlbnQubmV4dChudWxsKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5jdXN0b21MZWdlbmRSZWY/LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWVyZ2VQb2ludENvbnRleHQgPSAoY29udGV4dDogVG9vbHRpcENvbnRleHRJdGVtW10pID0+ICh7XG4gICAgY29udGV4dDogdGhpcy5saW1pdE1heENvbnRleHQoY29udGV4dCksXG4gICAgLi4uKHRoaXMudG9vbHRpcFBvaW50VGVtcGxhdGVDb250ZXh0IGFzIFN0cmluZ01hcCksXG4gIH0pO1xuXG4gIHByaXZhdGUgaGFuZGVsQ2hhcnRTdGF0dXMoc3RhdHVzOiBDaGFydFN0YXR1cykge1xuICAgIHRoaXMuX2NoYXJ0U3RhdHVzJCQubmV4dCh7XG4gICAgICAuLi5zdGF0dXMsXG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW1pdE1heENvbnRleHQoY29udGV4dDogVG9vbHRpcENvbnRleHRJdGVtW10sIGxpbWl0ID0gMTUpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb250ZXh0LnNsaWNlKDAsIGxpbWl0KTtcbiAgICBjb25zdCBleGlzdEFjdGl2ZSA9XG4gICAgICBjb250ZXh0LnNvbWUoaXRlbSA9PiBpdGVtLmFjdGl2YXRlZCkgJiYgdmFsdWVzLnNvbWUoZCA9PiAhZC5hY3RpdmF0ZWQpO1xuICAgIGlmICghZXhpc3RBY3RpdmUgJiYgY29udGV4dC5sZW5ndGggPiBsaW1pdCkge1xuICAgICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZmluZChpdGVtID0+IGl0ZW0uYWN0aXZhdGVkKTtcbiAgICAgIHJldHVybiBkYXRhID8gWy4uLnZhbHVlcy5zbGljZSgwLCBsaW1pdCAtIDEpLCBkYXRhXSA6IHZhbHVlcztcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFBvaW50Rm9ybWF0ID0gcG9pbnRGb3JtYXQ7XG5cbiAgcHJpdmF0ZSBjb252ZXJzaW9uTWF4aW11bSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdW5pdCA9ICdrJztcbiAgICBpZiAodmFsdWUgPj0gMTAwMCkge1xuICAgICAgY29uc3QgbnVtID0gKyh2YWx1ZSAvIDEwMDApLnRvRml4ZWQoMik7XG4gICAgICByZXR1cm4gYCR7bnVtfSR7dW5pdH1gO1xuICAgIH1cbiAgICByZXR1cm4gJycgKyB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVGb3JtYXR0ZXIgPSAoY29udGV4dDogVG9vbHRpcENvbnRleHQpID0+IHtcbiAgICB0aGlzLnRvb2x0aXBUaXRsZUNvbnRleHQgPSB7IGNvbnRleHQgfTtcbiAgICBjb25zdCB0aXRsZSA9XG4gICAgICB0aGlzLnRvb2x0aXBUcmFuc2xhdGlvbiAmJiAhdGhpcy50b29sdGlwVGl0bGVUZW1wbGF0ZVxuICAgICAgICA/IHRoaXMudHJhbnNsYXRlLmdldChjb250ZXh0LnRpdGxlIGFzIHN0cmluZywgbnVsbCwgdHJ1ZSkgfHxcbiAgICAgICAgICBjb250ZXh0LnRpdGxlXG4gICAgICAgIDogY29udGV4dC50aXRsZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwVGl0bGVUZW1wbGF0ZVxuICAgICAgPyB0aGlzLnRvb2x0aXBUaXRsZVZpcnR1YWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUxcbiAgICAgIDogaGFuZGxlRGF0ZUZvcm1hdCh0aXRsZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZUZvcm1hdHRlciA9ICh2YWx1ZTogVG9vbHRpcENvbnRleHRJdGVtKSA9PiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy50b29sdGlwUG9pbnRGb3JtYXRcbiAgICAgID8gdGhpcy50b29sdGlwUG9pbnRGb3JtYXQodmFsdWUpXG4gICAgICA6IHRoaXMuZGVmYXVsdFBvaW50Rm9ybWF0KHZhbHVlLnkpO1xuICAgIHJldHVybiB0aGlzLmhpZGVUb29sdGlwVW5pdCAmJiAhdGhpcy51bml0XG4gICAgICA/IChyZXMgYXMgc3RyaW5nKVxuICAgICAgOiBgJHtyZXN9ICR7dGhpcy50cmFuc2xhdGUuZ2V0KHRoaXMudW5pdCwgbnVsbCwgdHJ1ZSl9YDtcbiAgfTtcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhYy1jaGFydFwiXG4gIFtjbGFzcy5hYy1ub24tY2hhcnRdPVwiY2hhcnRUeXBlID09PSAncGllJ1wiXG4gIFtjbGFzcy5hYy1iYXJdPVwiY2hhcnRUeXBlID09PSAnYmFyJ1wiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImJhY2tncm91bmRcIlxuPlxuICA8ZGl2XG4gICAgI2NoYXJ0Q29udGFpbmVyXG4gICAgY2xhc3M9XCJhYy1jaGFydC1jb250YWluZXIgdHctdy1mdWxsIHR3LWgtZnVsbFwiXG4gID48L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJhYy1jaGFydC1zdGF0dXNcIlxuICAgICpuZ0lmPVwic3RhdHVzJCB8IGFzeW5jIGFzIHN0YXR1c1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5mYWlsZWQgJiYgIXN0YXR1cy5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwic3RhdHVzIGZhaWxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUVycm9yQ29udGFpbmVyOyBlbHNlIG5vQ3VzdG9tRXJyb3JDb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21FcnJvckNvbnRhaW5lclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vQ3VzdG9tRXJyb3JDb250YWluZXI+XG4gICAgICAgIDxhdWktaWNvblxuICAgICAgICAgIGljb249XCJleGNsYW1hdGlvbl90cmlhbmdsZV9zXCJcbiAgICAgICAgICBiYWNrZ3JvdW5kPVwidHJpYW5nbGVcIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAge3sgJ2ZhaWxlZF9sb2FkX3BsZWFzZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICgncmVmcmVzaCcgfCB0cmFuc2xhdGUpLnRvTG93ZXJDYXNlKCkgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJzcGlubmVyXCI+PC9hdWktaWNvbj4ge3sgJ2xvYWRpbmcnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubm9MZWdlbmQgJiYgIXN0YXR1cy5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwic3RhdHVzIG5vLWxlZ2VuZFwiXG4gICAgPlxuICAgICAge3sgJ25vX2luZGljYXRvcl9zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLm5vRGF0YSAmJiAhc3RhdHVzLmxvYWRpbmcgJiYgIXN0YXR1cy5mYWlsZWRcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbm8tZGF0YVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGN1c3RvbU5vRGF0YVRpdGxlICYmIGlzVGVtcGxhdGVSZWYoY3VzdG9tTm9EYXRhVGl0bGUpO1xuICAgICAgICAgIGVsc2Ugbm9EYXRhVGl0bGVUZW1wbGF0ZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbU5vRGF0YVRpdGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGl0bGVUZW1wbGF0ZT5cbiAgICAgICAge3sgY3VzdG9tTm9EYXRhVGl0bGUgfHwgKCdub19kYXRhJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gdGl0bGUgVGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI3RpdGxlQ29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0aXRsZSk7IGVsc2UgVGl0bGVUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYodGl0bGVEZXNjcmlwdGlvbik7IGVsc2UgVGl0bGVEZXNUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlRGVzY3JpcHRpb25cIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRpdGxlRGVzY3JpcHRpb25Db250ZXh0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNUaXRsZVRlbXBsYXRlPlxuICB7eyB0aXRsZSB9fVxuICB7eyB1bml0ID8gJygnICsgKHVuaXQgfCB0cmFuc2xhdGU6IHt9OnRydWUpICsgJyknIDogJycgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjVGl0bGVEZXNUZW1wbGF0ZT5cbiAge3sgdGl0bGVEZXNjcmlwdGlvbiB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSB0b29sdGlwIHRlbXBsYXRlIC0tPlxuPGRpdlxuICAjdG9vbHRpcEl0ZW1WaXJ0dWFsXG4gIGNsYXNzPVwiaGlkZVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwUG9pbnRUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRvb2x0aXBJdGVtQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gICN0b29sdGlwVGl0bGVWaXJ0dWFsXG4gIGNsYXNzPVwiaGlkZVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwVGl0bGVUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInRvb2x0aXBUaXRsZUNvbnRleHRcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICAjdG9vbHRpcE5hbWVWaXJ0dWFsXG4gIGNsYXNzPVwiaGlkZVwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbHRpcFBvaW50TmFtZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwaWVMYWJlbENvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwicGllTGFiZWxUZXh0ICYmIGlzVGVtcGxhdGVSZWYocGllTGFiZWxUZXh0KTsgZWxzZSBzdHJpbmdQaWVMYWJlbFRleHRcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwaWVMYWJlbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjc3RyaW5nUGllTGFiZWxUZXh0PlxuICAgIHt7IHBpZUxhYmVsVGV4dCB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
832
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LWNoYXJ0L3ZpZXctY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxLQUFLLEVBTUwsV0FBVyxFQUNYLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBRXhCLFVBQVUsRUFFVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFzQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsR0FBRyxFQUNILFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNYLFVBQVUsRUFFVixnQkFBZ0IsRUFDaEIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7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QUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFNTixXQUFXLE1BRUYsVUFBVTtrQkFBbEIsS0FBSztZQUdOLFdBQVcsTUFHWCxZQUFZLE1BRUYsWUFBWTtrQkFBckIsTUFBTTtZQUVHLGNBQWM7a0JBQXZCLE1BQU07WUFFRyxZQUFZO2tCQUFyQixNQUFNOztrRkF0Tkksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQUNoYXJ0LFxuICBBcmVhU2VyaWVzT3B0aW9uLFxuICBCYXJDb2x1bW5QYXJhbXMsXG4gIEJhclNlcmllc09wdGlvbixcbiAgQ2hhcnQsXG4gIENoYXJ0RGF0YSxcbiAgTGluZVNlcmllc09wdGlvbixcbiAgVmlld09wdGlvbnMsXG4gIFBlcmNlbnRhZ2UsXG4gIFBpZVNlcmllc09wdGlvbixcbiAgUkVDVF9FVkVOVFMsXG4gIFNjYWxlVHlwZSxcbiAgVG9vbHRpcENvbnRleHQsXG4gIFRvb2x0aXBDb250ZXh0SXRlbSxcbiAgVmlldyxcbn0gZnJvbSAnQGFsYXVkYS9jaGFydCc7XG5pbXBvcnQgeyBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIERvbVBvcnRhbE91dGxldCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJ2ZUZhY3RvcnksIEN1cnZlRmFjdG9yeUxpbmVPbmx5LCB0aW1lRm9ybWF0IH0gZnJvbSAnZDMnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgY29tYmluZUxhdGVzdCxcbiAgc3RhcnRXaXRoLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgQXJlYVBvc2l0aW9uLFxuICBDaGFydERhdGFJdGVtLFxuICBDaGFydFN0YXR1cyxcbiAgQ29udGV4dEl0ZW0sXG4gIGhhbmRsZURhdGVGb3JtYXQsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgcG9pbnRGb3JtYXQsXG4gIHB1Ymxpc2hSZWYsXG4gIFN0cmluZ01hcCxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVmFsdWVIb29rLFxuICBYUGxvdExpbmVzLFxufSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBab29tUGFyYW1zIHtcbiAgeDogbnVtYmVyO1xuICB2YWx1ZTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdmlldy1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0Q29udGFpbmVyJykgY2hhcnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndGl0bGVDb250YWluZXInKSB0aXRsZUNvbnRhaW5lcjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcEl0ZW1WaXJ0dWFsJykgdG9vbHRpcEl0ZW1WaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBUaXRsZVZpcnR1YWwnKSB0b29sdGlwVGl0bGVWaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBOYW1lVmlydHVhbCcpIHRvb2x0aXBOYW1lVmlydHVhbDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdwaWVMYWJlbENvbnRhaW5lcicpIHBpZUxhYmVsQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBtb2RlOiAnY2FyZCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgY3VzdG9tTm9EYXRhVGl0bGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUVycm9yQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBtYXJnaW5MZWZ0OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZ3JpZE9mZnNldFRvcCA9IDA7XG5cbiAgQElucHV0KCkgcm90YXRlZDogYm9vbGVhbjtcblxuICAvLyBiYXNlXG4gIEBJbnB1dCgpIGNoYXJ0VHlwZTogJ2xpbmUnIHwgJ2FyZWEnIHwgJ2JhcicgfCAncGllJyB8ICdzY2F0dGVyJyA9ICdhcmVhJztcblxuICBASW5wdXQoKSBzZXJpZXM6IENoYXJ0RGF0YVtdO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc2VyaWVzJCE6IE9ic2VydmFibGU8Q2hhcnREYXRhW10+O1xuXG4gIEBJbnB1dCgpIHhBY2Nlc3NvciA9IChkOiBDaGFydERhdGFJdGVtKSA9PiBkLng7XG5cbiAgQElucHV0KCkgeUFjY2Vzc29yID0gKGQ6IENoYXJ0RGF0YUl0ZW0pID0+IGQueTtcblxuICBASW5wdXQoKSB1bml0OiBzdHJpbmc7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB1bml0JCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBAVmFsdWVIb29rKGZ1bmN0aW9uIChcbiAgICB0aGlzOiBWaWV3Q2hhcnRDb21wb25lbnQsXG4gICAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBWaWV3KSA9PiB2b2lkLFxuICApIHtcbiAgICBpZiAoY29udGV4dENhbGxiYWNrRnVuY3Rpb24gJiYgIXRoaXMub3B0aW9ucz8uY29udGV4dENhbGxiYWNrRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuY2hhcnQ/LnNldE9wdGlvbnMoeyBjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbiB9KTtcbiAgICB9XG4gIH0pXG4gIEBJbnB1dCgpXG4gIGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uOiAoY29udGV4dDogVmlldykgPT4gdm9pZDtcblxuICAvLyB0aXRsZVxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZVRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KCkgdGl0bGVPZmZzZXRYOiBudW1iZXI7XG5cbiAgLy8gbGVnZW5kXG4gIEBJbnB1dCgpIGhpZGVMZWdlbmQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgLy8gY3VzdG9tIGxlZ2VuZFxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBsZWZ0T3BlcmF0aW9uQ29udGV4dDogU3RyaW5nTWFwO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsZWZ0T3BlcmF0aW9uJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG4gIEBJbnB1dCgpIHJpZ2h0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmlnaHRPcGVyYXRpb24kITogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjx1bmtub3duPj47XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsTmFtZTogc3RyaW5nO1xuXG4gIC8vIGF4aXNcblxuICBASW5wdXQoKSB5QXhpc1RpY2tTdWZmaXg6IHN0cmluZztcblxuICBASW5wdXQoKSBkYXRlQXhpc0xhYmVsRm9ybWF0czogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHhBeGlzTGFiZWxUcmFuc2xhdGlvbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSB4U2NhbGVUeXBlOiBTY2FsZVR5cGU7XG5cbiAgQElucHV0KCkgeEF4aXNUaWNrRm9ybWF0dGVyOiBzdHJpbmcgfCAoKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZyk7XG5cbiAgQElucHV0KCkgdGlja3M6IHVua25vd247XG5cbiAgQElucHV0KCkgeUF4aXNUaWNrRm9ybWF0dGVyOiBzdHJpbmcgfCAoKHZhbHVlOiBudW1iZXIpID0+IHN0cmluZyk7XG5cbiAgQElucHV0KCkgeUF4aXNNaW5TdGVwPzogbnVtYmVyO1xuXG4gIC8vIHRvb2x0aXBcbiAgQElucHV0KCkgdG9vbHRpcFRyaWdnZXI6ICdheGlzJyB8ICdpdGVtJyB8ICdub25lJztcblxuICBASW5wdXQoKSB0b29sdGlwQXV0b1NvcnQgPSBmYWxzZTtcblxuICBASW5wdXQoKSB0b29sdGlwSGlkZVRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBDb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludE5hbWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBUaXRsZVRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGhpZGVUb29sdGlwVW5pdDogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRGb3JtYXQ6IChkOiBDb250ZXh0SXRlbSkgPT4gbnVtYmVyIHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRUZW1wbGF0ZUNvbnRleHQ6IHVua25vd247XG5cbiAgLy8gc2VyaWVzXG4gIEBJbnB1dCgpIGJhbmRXaWR0aCA9IDEwO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHN0ZXBMaW5lOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGN1cnZlVHlwZTogQ3VydmVGYWN0b3J5IHwgQ3VydmVGYWN0b3J5TGluZU9ubHk7XG5cbiAgQElucHV0KCkgYmFyVHlwZTogJ3N0YW5kYXJkJyB8ICdzdGFja2VkJyA9ICdzdGFuZGFyZCc7XG5cbiAgQElucHV0KCkgc3RhcnRPcGFjaXR5OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZW5kT3BhY2l0eTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGxpbmVXaWR0aD86IG51bWJlcjtcblxuICAvLyBiYXIgc2VyaWVzXG4gIEBJbnB1dCgpIGlzR3JvdXA6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYmFyUmFkaXVzOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2xvc2VSYWRpdXNMYWRkZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY29sdW1uQ2xpY2s6IChkYXRhOiBCYXJDb2x1bW5QYXJhbXMpID0+IHZvaWQ7XG5cbiAgLy8gem9vbVxuICBASW5wdXQoKSBlbmFibGVab29tOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNoYXJ0U3RhdHVzOiBDaGFydFN0YXR1cztcblxuICAvLyBwbG90IGxpbmVcbiAgQElucHV0KCkgeVBsb3RMaW5lc0hpZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSB5UGxvdExpbmVzOiBUb29sdGlwQ29udGV4dDtcblxuICAvLyBwaWVcbiAgQElucHV0KCkgcGllSW5uZXJSYWRpdXM6IG51bWJlciB8IFBlcmNlbnRhZ2U7XG5cbiAgQElucHV0KCkgcGllT3V0ZXJSYWRpdXM6IG51bWJlciB8IFBlcmNlbnRhZ2U7XG5cbiAgQElucHV0KCkgcGllU3RhcnRBbmdsZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBpZUVuZEFuZ2xlOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGllQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcGllVG90YWw6IG51bWJlcjtcblxuICBASW5wdXQoKSBwaWVJbm5lckRpc2M6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcGllTGFiZWxUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBwaWVMYWJlbFBvc2l0aW9uOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH07XG5cbiAgQElucHV0KCkgcGllSXRlbVN0eWxlPzoge1xuICAgIGJvcmRlclJhZGl1cz86IG51bWJlcjtcbiAgfTtcblxuICAvLyBzY2F0dGVyXG4gIEBJbnB1dCgpIHNjYXR0ZXJUeXBlOiAnYnViYmxlJztcbiAgQElucHV0KCkgc2NhdHRlck9wYWNpdHk6IG51bWJlcjtcbiAgQElucHV0KCkgc2NhdHRlclNpemU6IG51bWJlcjtcbiAgQElucHV0KCkgc2NhdHRlclRocmVzaG9sZDoge1xuICAgIG1pblNpemU6IG51bWJlcjtcbiAgICBtYXhTaXplOiBudW1iZXI7XG4gIH07XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHlQbG90TGluZXMkITogT2JzZXJ2YWJsZTxUb29sdGlwQ29udGV4dD47XG5cbiAgQElucHV0KCkgeFBsb3RMaW5lczogWFBsb3RMaW5lcztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgeFBsb3RMaW5lcyQhOiBPYnNlcnZhYmxlPFhQbG90TGluZXM+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjaGFydFN0YXR1cyQhOiBPYnNlcnZhYmxlPENoYXJ0U3RhdHVzPjtcblxuICBAT3V0cHV0KCkgbW91c2VVcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxBcmVhUG9zaXRpb24+KCk7XG5cbiAgQE91dHB1dCgpIG1hcmtDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sdGlwQ29udGV4dD4oKTtcblxuICBAT3V0cHV0KCkgcmVmcmVzaEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgX2NoYXJ0U3RhdHVzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoYXJ0U3RhdHVzPih7XG4gICAgbG9hZGluZzogdHJ1ZSxcbiAgICBub0RhdGE6IGZhbHNlLFxuICAgIGZhaWxlZDogZmFsc2UsXG4gICAgbm9MZWdlbmQ6IGZhbHNlLFxuICB9KTtcblxuICBfc3RhdHVzOiBDaGFydFN0YXR1cyA9IHt9O1xuXG4gIGNoYXJ0OiBBQ2hhcnQ7XG5cbiAgYXJlYVBvc2l0aW9uOiBBcmVhUG9zaXRpb24gPSB7XG4gICAgeDE6IDAsXG4gICAgeDI6IDAsXG4gICAgc3RhcnRYOiAwLFxuICAgIGVuZFg6IDAsXG4gIH07XG5cbiAgc3RhdHVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY2hhcnRTdGF0dXMkLCB0aGlzLl9jaGFydFN0YXR1cyQkXSkucGlwZShcbiAgICBtYXAoKFtzdGF0dXMsIF9zdGF0dXNdKSA9PiAoe1xuICAgICAgLi4uX3N0YXR1cyxcbiAgICAgIC4uLnN0YXR1cyxcbiAgICB9KSksXG4gICAgdGFwKHN0YXR1cyA9PiAodGhpcy5fc3RhdHVzID0gc3RhdHVzKSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGdldCBiYWNrZ3JvdW5kKCkge1xuICAgIHJldHVybiB0aGlzLmJhY2tncm91bmRDb2xvcjtcbiAgfVxuXG4gIGlzVGVtcGxhdGVSZWYgPSBpc1RlbXBsYXRlUmVmO1xuXG4gIGN1c3RvbUxlZ2VuZFJlZjogQ29tcG9uZW50UmVmPExlZ2VuZENvbXBvbmVudD47XG5cbiAgY3VzdG9tVGl0bGVSZWY6IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuICBjdXN0b21QaWVMYWJlbFRleHRSZWY6IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuICB0b29sdGlwSXRlbUNvbnRleHQ6IHsgY29udGV4dDogVG9vbHRpcENvbnRleHRJdGVtW10gfSA9IHsgY29udGV4dDogW10gfTtcblxuICB0b29sdGlwVGl0bGVDb250ZXh0OiB7IGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0IH0gPSB7IGNvbnRleHQ6IG51bGwgfTtcblxuICBnZXQgc2VyaWVzT3B0aW9ucygpIHtcbiAgICBjb25zdCBiYXJTZXJpZXMgPSB7XG4gICAgICBzdGFjazogdGhpcy5iYXJUeXBlID09PSAnc3RhY2tlZCcsXG4gICAgICBiYW5kd2lkdGg6IHRoaXMuYmFuZFdpZHRoLFxuICAgICAgaXNHcm91cDogdGhpcy5pc0dyb3VwLFxuICAgICAgcmFkaXVzOiB0aGlzLmJhclJhZGl1cyxcbiAgICAgIGNsb3NlUmFkaXVzTGFkZGVyOiB0aGlzLmNsb3NlUmFkaXVzTGFkZGVyLFxuICAgICAgY29sdW1uQ2xpY2s6IHRoaXMuY29sdW1uQ2xpY2sgfHwgbnVsbCxcbiAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHQsXG4gICAgfTtcbiAgICBjb25zdCBsaW5lU2VyaWVzID0ge1xuICAgICAgc3RlcDogdGhpcy5zdGVwTGluZSxcbiAgICAgIGN1cnZlVHlwZTogdGhpcy5jdXJ2ZVR5cGUsXG4gICAgICBsaW5lV2lkdGg6IHRoaXMubGluZVdpZHRoLFxuICAgIH07XG4gICAgY29uc3QgYXJlYVNlcmllcyA9IHtcbiAgICAgIGN1cnZlVHlwZTogdGhpcy5jdXJ2ZVR5cGUsXG4gICAgICBzdGFydE9wYWNpdHk6IHRoaXMuc3RhcnRPcGFjaXR5LFxuICAgICAgZW5kT3BhY2l0eTogdGhpcy5lbmRPcGFjaXR5LFxuICAgICAgbGluZVdpZHRoOiB0aGlzLmxpbmVXaWR0aCxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLmNoYXJ0VHlwZSkge1xuICAgICAgY2FzZSAnYmFyJzoge1xuICAgICAgICByZXR1cm4gYmFyU2VyaWVzIGFzIEJhclNlcmllc09wdGlvbjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xpbmUnOiB7XG4gICAgICAgIHJldHVybiBsaW5lU2VyaWVzIGFzIExpbmVTZXJpZXNPcHRpb247XG4gICAgICB9XG4gICAgICBjYXNlICdhcmVhJzoge1xuICAgICAgICByZXR1cm4gYXJlYVNlcmllcyBhcyBBcmVhU2VyaWVzT3B0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSAncGllJzoge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlubmVyUmFkaXVzOiB0aGlzLnBpZUlubmVyUmFkaXVzLFxuICAgICAgICAgIG91dGVyUmFkaXVzOiB0aGlzLnBpZU91dGVyUmFkaXVzLFxuICAgICAgICAgIHN0YXJ0QW5nbGU6IHRoaXMucGllU3RhcnRBbmdsZSxcbiAgICAgICAgICBlbmRBbmdsZTogdGhpcy5waWVFbmRBbmdsZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMucGllQmFja2dyb3VuZENvbG9yIHx8ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgdG90YWw6IHRoaXMucGllVG90YWwsXG4gICAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgIHg6IHRoaXMucGllTGFiZWxQb3NpdGlvbj8ueCB8fCAnNTAlJyxcbiAgICAgICAgICAgICAgeTogdGhpcy5waWVMYWJlbFBvc2l0aW9uPy55IHx8ICc1MCUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlubmVyRGlzYzogdGhpcy5waWVJbm5lckRpc2MsXG4gICAgICAgICAgaXRlbVN0eWxlOiB0aGlzLnBpZUl0ZW1TdHlsZSB8fCB7IGJvcmRlclJhZGl1czogdGhpcy5iYW5kV2lkdGggLyAyIH0sXG4gICAgICAgIH0gYXMgUGllU2VyaWVzT3B0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSAnc2NhdHRlcic6IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzaXplOiB0aGlzLnNjYXR0ZXJTaXplLFxuICAgICAgICAgIC4uLnRoaXMuc2NhdHRlclRocmVzaG9sZCxcbiAgICAgICAgICB0eXBlOiB0aGlzLnNjYXR0ZXJUeXBlLFxuICAgICAgICAgIG9wYWNpdHk6IHRoaXMuc2NhdHRlck9wYWNpdHksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgaXNDYXJkTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnY2FyZCc7XG4gIH1cblxuICBnZXQgc2NhbGVUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnhTY2FsZVR5cGUgfHwgU2NhbGVUeXBlLlRJTUU7XG4gIH1cblxuICBnZXQgaXNTY2FsZVRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbGVUeXBlID09PSBTY2FsZVR5cGUuVElNRTtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IFZpZXdPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0WEF4aXNUaWNrRm9ybWF0dGVyID0gdGhpcy5pc1NjYWxlVGltZVxuICAgICAgPyAoKSA9PiB0aW1lRm9ybWF0KHRoaXMuZGF0ZUF4aXNMYWJlbEZvcm1hdHMgfHwgJyVIOiVNJylcbiAgICAgIDogbnVsbDtcbiAgICBjb25zdCB4QXhpc1RpY2tGb3JtYXR0ZXIgPVxuICAgICAgdGhpcy54QXhpc1RpY2tGb3JtYXR0ZXIgfHwgZGVmYXVsdFhBeGlzVGlja0Zvcm1hdHRlcjtcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tSGVhZGVyOiB0aGlzLmNoYXJ0VHlwZSAhPT0gJ3BpZScsXG4gICAgICB0eXBlOiB0aGlzLnN0ZXBMaW5lID8gJ2xpbmUnIDogdGhpcy5jaGFydFR5cGUsXG4gICAgICBvZmZzZXQ6IHtcbiAgICAgICAgeDogdGhpcy5tYXJnaW5MZWZ0LFxuICAgICAgICB5OiB0aGlzLmlzQ2FyZE1vZGUgPyA1IDogMCxcbiAgICAgIH0sXG4gICAgICByb3RhdGVkOiB0aGlzLnJvdGF0ZWQsXG4gICAgICB0aXRsZToge1xuICAgICAgICB0ZXh0OiB0aGlzLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgb2Zmc2V0WDogdGhpcy50aXRsZU9mZnNldFgsXG4gICAgICAgIGhpZGU6IHRoaXMuaGlkZVRpdGxlIHx8IHRoaXMuaGlkZUhlYWRlcixcbiAgICAgICAgZm9ybWF0dGVyOiAoKSA9PiAnJyxcbiAgICAgIH0sXG4gICAgICBsZWdlbmQ6IHtcbiAgICAgICAgaGlkZTogdGhpcy5oaWRlSGVhZGVyLFxuICAgICAgICBmb3JtYXR0ZXI6ICgpID0+ICcnLFxuICAgICAgICBvZmZzZXRZOiB0aGlzLmlzQ2FyZE1vZGUgPyAtOCA6IDAsXG4gICAgICAgIGlzTW91bnQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgZ3JpZDogeyB0b3A6IHRoaXMuZ3JpZE9mZnNldFRvcCB8fCAwIH0sXG4gICAgICB5QXhpczoge1xuICAgICAgICB0aWNrRm9ybWF0dGVyOlxuICAgICAgICAgIHRoaXMueUF4aXNUaWNrRm9ybWF0dGVyIHx8XG4gICAgICAgICAgKCh2YWx1ZTogbnVtYmVyKSA9PlxuICAgICAgICAgICAgYCR7dGhpcy5jb252ZXJzaW9uTWF4aW11bSh2YWx1ZSl9JHt0aGlzLnlBeGlzVGlja1N1ZmZpeCB8fCAnJ31gKSxcbiAgICAgICAgbWluU3RlcDogdGhpcy55QXhpc01pblN0ZXAsXG4gICAgICB9LFxuICAgICAgeEF4aXM6IHtcbiAgICAgICAgdHlwZTogdGhpcy54U2NhbGVUeXBlIHx8IFNjYWxlVHlwZS5USU1FLFxuICAgICAgICB0aWNrRm9ybWF0dGVyOiB4QXhpc1RpY2tGb3JtYXR0ZXIsXG4gICAgICAgIHRpY2tzOiB0aGlzLnRpY2tzLFxuICAgICAgfSxcbiAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgaGlkZVRpdGxlOiB0aGlzLnRvb2x0aXBIaWRlVGl0bGUsXG4gICAgICAgIHRyaWdnZXI6IHRoaXMudG9vbHRpcFRyaWdnZXJUeXBlLFxuICAgICAgICB0aXRsZUZvcm1hdHRlcjogdGhpcy50aXRsZUZvcm1hdHRlcixcbiAgICAgICAgaXRlbUZvcm1hdHRlcjogKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy50b29sdGlwSXRlbUNvbnRleHQgPSB0aGlzLm1lcmdlUG9pbnRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwUG9pbnRUZW1wbGF0ZVxuICAgICAgICAgICAgPyB0aGlzLnRvb2x0aXBJdGVtVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgICAgICAgOiB0aGlzLnRvb2x0aXBJdGVtQ29udGV4dC5jb250ZXh0O1xuICAgICAgICB9LFxuICAgICAgICBuYW1lRm9ybWF0dGVyOiAoeyBuYW1lIH0pID0+XG4gICAgICAgICAgdGhpcy50b29sdGlwVHJhbnNsYXRpb24gPyB0aGlzLnRyYW5zbGF0ZS5nZXQobmFtZSkgOiBuYW1lLFxuICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy52YWx1ZUZvcm1hdHRlcixcbiAgICAgICAgc29ydDogdGhpcy50b29sdGlwQXV0b1NvcnQgPyAoYSwgYikgPT4gYi55IC0gYS55IDogbnVsbCxcbiAgICAgIH0sXG4gICAgICBzZXJpZXNPcHRpb246IHRoaXMuc2VyaWVzT3B0aW9ucyxcbiAgICAgIHpvb206IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5lbmFibGVab29tLFxuICAgICAgICBvbnpvb21TdGFydDogKGQ6IFpvb21QYXJhbXMpID0+IHtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi54MSA9IGQueDtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi5zdGFydFggPSBkLnZhbHVlLng7XG4gICAgICAgIH0sXG4gICAgICAgIG9uem9vbUVuZDogKGQ6IFpvb21QYXJhbXMpID0+IHtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi54MiA9IGQueDtcbiAgICAgICAgICB0aGlzLmFyZWFQb3NpdGlvbi5lbmRYID0gZC52YWx1ZS54O1xuICAgICAgICAgIGNvbnN0IHsgc3RhcnRYLCBlbmRYIH0gPSB0aGlzLmFyZWFQb3NpdGlvbjtcbiAgICAgICAgICBpZiAoc3RhcnRYICE9PSBlbmRYKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlVXBFdmVudC5uZXh0KHRoaXMuYXJlYVBvc2l0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeFBsb3RMaW5lOiB7XG4gICAgICAgIGNvbG9yOiAncmVkJyxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0Q2FsbGJhY2tGdW5jdGlvbjogdGhpcy5jb250ZXh0Q2FsbGJhY2tGdW5jdGlvbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBUcmlnZ2VyVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwVHJpZ2dlciB8fCB0aGlzLmdldFRyaWdnZXJUeXBlKCk7XG4gIH1cblxuICBnZXRUcmlnZ2VyVHlwZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuY2hhcnRUeXBlKSB7XG4gICAgICBjYXNlICdsaW5lJzpcbiAgICAgIGNhc2UgJ2FyZWEnOlxuICAgICAgY2FzZSAnYmFyJzoge1xuICAgICAgICByZXR1cm4gJ2F4aXMnO1xuICAgICAgfVxuICAgICAgY2FzZSAnc2NhdHRlcic6IHtcbiAgICAgICAgcmV0dXJuICdpdGVtJztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BpZSc6IHtcbiAgICAgICAgcmV0dXJuICdub25lJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBlbmFibGVab29tIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoZW5hYmxlWm9vbT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmNoYXJ0Py5zZXRPcHRpb25zKHsgem9vbTogeyBlbmFibGVkOiB0cnVlIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnQgPSBDaGFydCh7XG4gICAgICBjb250YWluZXI6IHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGRhdGE6IFtdLFxuICAgIH0pO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VyaWVzJCwgdGhpcy54UGxvdExpbmVzJC5waXBlKHN0YXJ0V2l0aChudWxsKSldKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKFtkYXRhLCByZXNdKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuc2V0T3B0aW9ucyh7XG4gICAgICAgICAgICAgIHR5cGU6XG4gICAgICAgICAgICAgICAgZGF0YS5sZW5ndGggPiAzICYmIHRoaXMuY2hhcnRUeXBlID09PSAnYXJlYSdcbiAgICAgICAgICAgICAgICAgID8gJ2xpbmUnXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuY2hhcnRUeXBlLFxuICAgICAgICAgICAgICBzZXJpZXNPcHRpb246IHtcbiAgICAgICAgICAgICAgICBsaW5lV2lkdGg6IGRhdGEubGVuZ3RoID4gMyA/IDEgOiB0aGlzLmxpbmVXaWR0aCxcbiAgICAgICAgICAgICAgICBhY3RpdmVMaW5lV2lkdGg6IGRhdGEubGVuZ3RoID4gMyA/IDIgOiAzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB5QXhpczoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucy55QXhpcyxcbiAgICAgICAgICAgICAgICBtYXg6IHJlcz8udmFsdWUgfHwgdGhpcy5vcHRpb25zLnlBeGlzLm1heCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5oYW5kZWxEYXRhKGRhdGEpO1xuICAgICAgICAgICAgdGhpcy5jaGFydC5kYXRhKHZhbHVlcyk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRDdXN0b21MZWdlbmQodGhpcy5jaGFydC5jaGFydFVJZCk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tVGl0bGUodGhpcy5jaGFydC5jaGFydFVJZCk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkUGllTGFiZWxUZXh0KHRoaXMuY2hhcnQuY2hhcnRVSWQpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICBjb25zdCBsZWdlbmRJdGVtcyA9IHRoaXMuY2hhcnQuZ2V0Q29udHJvbGxlcignbGVnZW5kJykubGVnZW5kSXRlbXM7XG4gICAgICAgICAgICB0aGlzLmhhbmRlbENoYXJ0U3RhdHVzKHtcbiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgIG5vTGVnZW5kOlxuICAgICAgICAgICAgICAgIGxlZ2VuZEl0ZW1zLmxlbmd0aCAmJiBsZWdlbmRJdGVtcy5ldmVyeShpdGVtID0+ICFpdGVtLmFjdGl2YXRlKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0Py51cGRhdGVYUGxvdExpbmUocmVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB0aGlzLmNoYXJ0Lm9uKFJFQ1RfRVZFTlRTLkNMSUNLLCAodmFsdWU6IFRvb2x0aXBDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLm1hcmtDbGlja0V2ZW50Lm5leHQodmFsdWUpO1xuICAgICAgaWYgKCF0aGlzLnlQbG90TGluZXNIaWRlICYmIHRoaXMueVBsb3RMaW5lcykge1xuICAgICAgICB0aGlzLmNoYXJ0LnVwZGF0ZVlQbG90TGluZSh7XG4gICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgICAgdGl0bGU6IGRheWpzKHZhbHVlLnRpdGxlKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy55UGxvdExpbmVzJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5jaGFydC51cGRhdGVZUGxvdExpbmUoe1xuICAgICAgICAgIC4uLnJlcyxcbiAgICAgICAgICB0aXRsZTogZGF5anMocmVzLnRpdGxlKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBoYW5kZWxEYXRhKGRhdGE6IENoYXJ0RGF0YVtdKSB7XG4gICAgcmV0dXJuIGRhdGEubWFwKGQgPT4gKHtcbiAgICAgIC4uLmQsXG4gICAgICB2YWx1ZXM6IGQudmFsdWVzPy5tYXAodiA9PiAoe1xuICAgICAgICAuLi52LFxuICAgICAgICB4OiB0aGlzLnhBY2Nlc3Nvcih2KSxcbiAgICAgICAgeTogdGhpcy55QWNjZXNzb3IodiksXG4gICAgICB9KSksXG4gICAgfSkpO1xuICB9XG5cbiAgYWRkQ3VzdG9tTGVnZW5kKGNoYXJ0VUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb20gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFydFVJZH0gLmFjLWxlZ2VuZGApO1xuICAgIGlmICghdGhpcy5jdXN0b21MZWdlbmRSZWYgJiYgZG9tICYmICF0aGlzLmhpZGVIZWFkZXIpIHtcbiAgICAgIGNvbnN0IHAgPSBuZXcgQ29tcG9uZW50UG9ydGFsKExlZ2VuZENvbXBvbmVudCk7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYgPSBwLmF0dGFjaChvKTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmNoYXJ0ID0gdGhpcy5jaGFydDtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnN5bWJvbCA9IFsnYmFyJywgJ3BpZScsICdzY2F0dGVyJ10uaW5jbHVkZXMoXG4gICAgICAgIHRoaXMuY2hhcnRUeXBlLFxuICAgICAgKVxuICAgICAgICA/ICdjaXJjbGUnXG4gICAgICAgIDogJ2xpbmUnO1xuICAgICAgdGhpcy5sZWZ0T3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5sZWZ0T3BlcmF0aW9uID0gdGhpcy5sZWZ0T3BlcmF0aW9uO1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5sZWZ0T3BlcmF0aW9uQ29udGV4dCA9XG4gICAgICAgICAgdGhpcy5sZWZ0T3BlcmF0aW9uQ29udGV4dDtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJpZ2h0T3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5yaWdodE9wZXJhdGlvbiA9IHRoaXMucmlnaHRPcGVyYXRpb247XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5oaWRlTGVnZW5kID0gdGhpcy5oaWRlTGVnZW5kO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc2VsZWN0QWxsTmFtZSA9IHRoaXMubGVnZW5kU2VsZWN0QWxsTmFtZTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnNlbGVjdEFsbE9wZXJhdGlvbiA9XG4gICAgICAgIHRoaXMubGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UudGVtcGxhdGUgPSB0aGlzLmxlZ2VuZFRlbXBsYXRlO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UuY2hhbmdlTGVnZW5kXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kZWxDaGFydFN0YXR1cyh7XG4gICAgICAgICAgICBub0xlZ2VuZDogcmVzLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0uYWN0aXZhdGUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhZGRDdXN0b21UaXRsZShjaGFydFVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y2hhcnRVSWR9IC5hYy10aXRsZWApO1xuICAgIGlmICghdGhpcy5jdXN0b21UaXRsZVJlZiAmJiBkb20gJiYgIXRoaXMuaGlkZUhlYWRlcikge1xuICAgICAgY29uc3QgcCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRpdGxlQ29udGFpbmVyLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgY29uc3QgbyA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIGRvbSxcbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tVGl0bGVSZWYgPSBwLmF0dGFjaChvKTtcbiAgICB9XG4gIH1cblxuICBhZGRQaWVMYWJlbFRleHQoY2hhcnRVSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NoYXJ0VUlkfSAuYWMtcGllLWd1aWRlYCk7XG4gICAgaWYgKCF0aGlzLmN1c3RvbVBpZUxhYmVsVGV4dFJlZiAmJiBkb20gJiYgdGhpcy5waWVMYWJlbFRleHQpIHtcbiAgICAgIGNvbnN0IHAgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMucGllTGFiZWxDb250YWluZXIsXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICk7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21QaWVMYWJlbFRleHRSZWYgPSBwLmF0dGFjaChvKTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVmcmVzaEV2ZW50Lm5leHQobnVsbCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmPy5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IG1lcmdlUG9pbnRDb250ZXh0ID0gKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdKSA9PiAoe1xuICAgIGNvbnRleHQ6IHRoaXMubGltaXRNYXhDb250ZXh0KGNvbnRleHQpLFxuICAgIC4uLih0aGlzLnRvb2x0aXBQb2ludFRlbXBsYXRlQ29udGV4dCBhcyBTdHJpbmdNYXApLFxuICB9KTtcblxuICBwcml2YXRlIGhhbmRlbENoYXJ0U3RhdHVzKHN0YXR1czogQ2hhcnRTdGF0dXMpIHtcbiAgICB0aGlzLl9jaGFydFN0YXR1cyQkLm5leHQoe1xuICAgICAgLi4uc3RhdHVzLFxuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGltaXRNYXhDb250ZXh0KGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0SXRlbVtdLCBsaW1pdCA9IDE1KSB7XG4gICAgY29uc3QgdmFsdWVzID0gY29udGV4dC5zbGljZSgwLCBsaW1pdCk7XG4gICAgY29uc3QgZXhpc3RBY3RpdmUgPVxuICAgICAgY29udGV4dC5zb21lKGl0ZW0gPT4gaXRlbS5hY3RpdmF0ZWQpICYmIHZhbHVlcy5zb21lKGQgPT4gIWQuYWN0aXZhdGVkKTtcbiAgICBpZiAoIWV4aXN0QWN0aXZlICYmIGNvbnRleHQubGVuZ3RoID4gbGltaXQpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmZpbmQoaXRlbSA9PiBpdGVtLmFjdGl2YXRlZCk7XG4gICAgICByZXR1cm4gZGF0YSA/IFsuLi52YWx1ZXMuc2xpY2UoMCwgbGltaXQgLSAxKSwgZGF0YV0gOiB2YWx1ZXM7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRQb2ludEZvcm1hdCA9IHBvaW50Rm9ybWF0O1xuXG4gIHByaXZhdGUgY29udmVyc2lvbk1heGltdW0odmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IHVuaXQgPSAnayc7XG4gICAgaWYgKHZhbHVlID49IDEwMDApIHtcbiAgICAgIGNvbnN0IG51bSA9ICsodmFsdWUgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgcmV0dXJuIGAke251bX0ke3VuaXR9YDtcbiAgICB9XG4gICAgcmV0dXJuICcnICsgdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlRm9ybWF0dGVyID0gKGNvbnRleHQ6IFRvb2x0aXBDb250ZXh0KSA9PiB7XG4gICAgdGhpcy50b29sdGlwVGl0bGVDb250ZXh0ID0geyBjb250ZXh0IH07XG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy50b29sdGlwVHJhbnNsYXRpb24gJiYgIXRoaXMudG9vbHRpcFRpdGxlVGVtcGxhdGVcbiAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZS5nZXQoY29udGV4dC50aXRsZSBhcyBzdHJpbmcpIHx8IGNvbnRleHQudGl0bGVcbiAgICAgICAgOiBjb250ZXh0LnRpdGxlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXBUaXRsZVRlbXBsYXRlXG4gICAgICA/IHRoaXMudG9vbHRpcFRpdGxlVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgOiBoYW5kbGVEYXRlRm9ybWF0KHRpdGxlKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlRm9ybWF0dGVyID0gKHZhbHVlOiBUb29sdGlwQ29udGV4dEl0ZW0pID0+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLnRvb2x0aXBQb2ludEZvcm1hdFxuICAgICAgPyB0aGlzLnRvb2x0aXBQb2ludEZvcm1hdCh2YWx1ZSlcbiAgICAgIDogdGhpcy5kZWZhdWx0UG9pbnRGb3JtYXQodmFsdWUueSk7XG4gICAgcmV0dXJuIHRoaXMuaGlkZVRvb2x0aXBVbml0ICYmICF0aGlzLnVuaXRcbiAgICAgID8gKHJlcyBhcyBzdHJpbmcpXG4gICAgICA6IGAke3Jlc30gJHt0aGlzLnRyYW5zbGF0ZS5nZXQodGhpcy51bml0KX1gO1xuICB9O1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImFjLWNoYXJ0XCJcbiAgW2NsYXNzLmFjLW5vbi1jaGFydF09XCJjaGFydFR5cGUgPT09ICdwaWUnXCJcbiAgW2NsYXNzLmFjLWJhcl09XCJjaGFydFR5cGUgPT09ICdiYXInXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwiYmFja2dyb3VuZFwiXG4+XG4gIDxkaXZcbiAgICAjY2hhcnRDb250YWluZXJcbiAgICBjbGFzcz1cImFjLWNoYXJ0LWNvbnRhaW5lciB0dy13LWZ1bGwgdHctaC1mdWxsXCJcbiAgPjwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImFjLWNoYXJ0LXN0YXR1c1wiXG4gICAgKm5nSWY9XCJzdGF0dXMkIHwgYXN5bmMgYXMgc3RhdHVzXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLmZhaWxlZCAmJiAhc3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgZmFpbGVkXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRXJyb3JDb250YWluZXI7IGVsc2Ugbm9DdXN0b21FcnJvckNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUVycm9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DdXN0b21FcnJvckNvbnRhaW5lcj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgaWNvbj1cImV4Y2xhbWF0aW9uX3RyaWFuZ2xlX3NcIlxuICAgICAgICAgIGJhY2tncm91bmQ9XCJ0cmlhbmdsZVwiXG4gICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICB7eyAnZmFpbGVkX2xvYWRfcGxlYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgKCdyZWZyZXNoJyB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubG9hZGluZ1wiXG4gICAgICBjbGFzcz1cInN0YXR1cyBsb2FkaW5nXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cInNwaW5uZXJcIj48L2F1aS1pY29uPiB7eyAnbG9hZGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5ub0xlZ2VuZCAmJiAhc3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbm8tbGVnZW5kXCJcbiAgICA+XG4gICAgICB7eyAnbm9faW5kaWNhdG9yX3NlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubm9EYXRhICYmICFzdGF0dXMubG9hZGluZyAmJiAhc3RhdHVzLmZhaWxlZFwiXG4gICAgICBjbGFzcz1cInN0YXR1cyBuby1kYXRhXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgY3VzdG9tTm9EYXRhVGl0bGUgJiYgaXNUZW1wbGF0ZVJlZihjdXN0b21Ob0RhdGFUaXRsZSk7XG4gICAgICAgICAgZWxzZSBub0RhdGFUaXRsZVRlbXBsYXRlXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tTm9EYXRhVGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0RhdGFUaXRsZVRlbXBsYXRlPlxuICAgICAgICB7eyBjdXN0b21Ob0RhdGFUaXRsZSB8fCAoJ25vX2RhdGEnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSB0aXRsZSBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVDb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHRpdGxlKTsgZWxzZSBUaXRsZVRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0aXRsZURlc2NyaXB0aW9uKTsgZWxzZSBUaXRsZURlc1RlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVEZXNjcmlwdGlvblwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidGl0bGVEZXNjcmlwdGlvbkNvbnRleHRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI1RpdGxlVGVtcGxhdGU+XG4gIHt7IHRpdGxlIH19XG4gIHt7IHVuaXQgPyAnKCcgKyAodW5pdCB8IHRyYW5zbGF0ZSkgKyAnKScgOiAnJyB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNUaXRsZURlc1RlbXBsYXRlPlxuICB7eyB0aXRsZURlc2NyaXB0aW9uIH19XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIHRvb2x0aXAgdGVtcGxhdGUgLS0+XG48ZGl2XG4gICN0b29sdGlwSXRlbVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBQb2ludFRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidG9vbHRpcEl0ZW1Db250ZXh0XCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXZcbiAgI3Rvb2x0aXBUaXRsZVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBUaXRsZVRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidG9vbHRpcFRpdGxlQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gICN0b29sdGlwTmFtZVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwUG9pbnROYW1lVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BpZUxhYmVsQ29udGFpbmVyPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJwaWVMYWJlbFRleHQgJiYgaXNUZW1wbGF0ZVJlZihwaWVMYWJlbFRleHQpOyBlbHNlIHN0cmluZ1BpZUxhYmVsVGV4dFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBpZUxhYmVsVGV4dFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNzdHJpbmdQaWVMYWJlbFRleHQ+XG4gICAge3sgcGllTGFiZWxUZXh0IH19XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|