@biit-solutions/wizardry-theme 1.22.15 → 1.22.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/button/biit-action-button/biit-action-button.component.mjs +2 -2
- package/esm2020/button/biit-icon-button/biit-icon-button.component.mjs +3 -3
- package/esm2020/charts/bar-chart/bar-chart.component.mjs +2 -2
- package/esm2020/charts/heatmap-chart/heatmap-chart.component.mjs +2 -2
- package/esm2020/charts/line-chart/line-chart.component.mjs +4 -4
- package/esm2020/charts/meta-view-chart/components/meta-board/meta-board.component.mjs +3 -3
- package/esm2020/charts/meta-view-chart/components/meta-sorter/meta-filter.component.mjs +2 -2
- package/esm2020/charts/pie-chart/pie-chart.component.mjs +2 -2
- package/esm2020/charts/radial-chart/radial-chart.component.mjs +4 -4
- package/esm2020/charts/timeline-viewer-chart/timeline-viewer-chart.component.mjs +2 -2
- package/esm2020/inputs/biit-datepicker/biit-datepicker.component.mjs +3 -3
- package/esm2020/inputs/biit-dropdown/biit-dropdown.component.mjs +3 -3
- package/esm2020/inputs/biit-input-text/biit-input-text.component.mjs +3 -3
- package/esm2020/inputs/biit-multiselect/biit-multiselect.component.mjs +3 -3
- package/esm2020/inputs/biit-radio-button/biit-radio-button.component.mjs +3 -3
- package/esm2020/inputs/biit-slider/biit-slider.component.mjs +4 -4
- package/esm2020/inputs/biit-slider-option/biit-slider-option.component.mjs +5 -5
- package/esm2020/inputs/biit-slider-option-vertical/biit-slider-option-vertical.component.mjs +3 -3
- package/esm2020/inputs/biit-slider-range/biit-slider-range.component.mjs +4 -4
- package/esm2020/inputs/biit-textarea/biit-textarea.component.mjs +2 -2
- package/esm2020/inputs/biit-toggle-group/biit-toggle-group.component.mjs +3 -3
- package/esm2020/login/biit-login/biit-login.component.mjs +2 -2
- package/esm2020/table/biit-datatable/biit-datatable.component.mjs +2 -2
- package/esm2020/table/biit-paginator/biit-paginator.component.mjs +3 -3
- package/fesm2015/biit-solutions-wizardry-theme-button.mjs +4 -4
- package/fesm2015/biit-solutions-wizardry-theme-button.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-charts.mjs +14 -14
- package/fesm2015/biit-solutions-wizardry-theme-charts.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-inputs.mjs +26 -26
- package/fesm2015/biit-solutions-wizardry-theme-inputs.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-login.mjs +2 -2
- package/fesm2015/biit-solutions-wizardry-theme-login.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-table.mjs +4 -4
- package/fesm2015/biit-solutions-wizardry-theme-table.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-button.mjs +4 -4
- package/fesm2020/biit-solutions-wizardry-theme-button.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-charts.mjs +14 -14
- package/fesm2020/biit-solutions-wizardry-theme-charts.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-inputs.mjs +26 -26
- package/fesm2020/biit-solutions-wizardry-theme-inputs.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-login.mjs +2 -2
- package/fesm2020/biit-solutions-wizardry-theme-login.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-table.mjs +4 -4
- package/fesm2020/biit-solutions-wizardry-theme-table.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -225,7 +225,7 @@ BiitDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
225
225
|
useExisting: forwardRef(() => BiitDropdownComponent),
|
|
226
226
|
multi: true
|
|
227
227
|
}
|
|
228
|
-
], ngImport: i0, template: "<div class=\"biit-input\" aria-haspopup=\"listbox\"\n *ngIf=\"!icon\"\n [class.compact]=\"isCompact\"\n [class.disabled]=\"isDisabled\"\n (keydown)=\"!isDisabled && handleKeyboardEvents($event)\"\n (keydown.enter)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n>\n <div class=\"input-container\" #input>\n <input [ngModel]=\"dropdownOpen ? filterText :\n currentValue && !label ? currentValue :\n currentValue && currentValue[label] ? currentValue[label] : ''\"\n (ngModelChange)=\"filterText = $event; handleFilter()\"\n (click)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n [placeholder]=\"dropdownOpen && currentValue && !label ? currentValue :\n dropdownOpen && currentValue && currentValue[label] ? currentValue[label] : ''\"\n tabindex=\"0\"\n class=\"input-object\"\n [class.grey-bg]=\"dropdownOpen\"\n [class.default-cursor]=\"dropdownOpen\"\n [disabled]=\"isDisabled\"\n [readonly]=\"!dropdownOpen\"/>\n <div class=\"input-show-icon-container\"\n [class.passthrough]=\"!dropdownOpen\"\n [class.rotate-90]=\"dropdownOpen\"\n (click)=\"dropdownOpen && closeDropdown()\">\n <biit-icon [name]=\"'right_arrow'\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: isDisabled ? '#D9D9D9' : dropdownOpen ? '
|
|
228
|
+
], ngImport: i0, template: "<div class=\"biit-input\" aria-haspopup=\"listbox\"\n *ngIf=\"!icon\"\n [class.compact]=\"isCompact\"\n [class.disabled]=\"isDisabled\"\n (keydown)=\"!isDisabled && handleKeyboardEvents($event)\"\n (keydown.enter)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n>\n <div class=\"input-container\" #input>\n <input [ngModel]=\"dropdownOpen ? filterText :\n currentValue && !label ? currentValue :\n currentValue && currentValue[label] ? currentValue[label] : ''\"\n (ngModelChange)=\"filterText = $event; handleFilter()\"\n (click)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n [placeholder]=\"dropdownOpen && currentValue && !label ? currentValue :\n dropdownOpen && currentValue && currentValue[label] ? currentValue[label] : ''\"\n tabindex=\"0\"\n class=\"input-object\"\n [class.grey-bg]=\"dropdownOpen\"\n [class.default-cursor]=\"dropdownOpen\"\n [disabled]=\"isDisabled\"\n [readonly]=\"!dropdownOpen\"/>\n <div class=\"input-show-icon-container\"\n [class.passthrough]=\"!dropdownOpen\"\n [class.rotate-90]=\"dropdownOpen\"\n (click)=\"dropdownOpen && closeDropdown()\">\n <biit-icon [name]=\"'right_arrow'\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: isDisabled ? '#D9D9D9' : dropdownOpen ? 'var(--main-color)' : 'var(--component-color)'}\"\n ></biit-icon>\n </div>\n <div id=\"dropdown-label\"\n class=\"input-placeholder\"\n [class.disabled]=\"isDisabled\"\n [class.compact]=\"dropdownOpen || currentValue\">\n {{ title }}\n <a *ngIf=\"isRequired\"\n [style.color]=\"currentValue ? null : 'red'\">*</a>\n </div>\n <div class=\"bottom-line\"\n [class.disabled]=\"isDisabled\"\n ></div>\n <span class=\"description\">{{ description }}</span>\n </div>\n</div>\n<button biit-icon\n *ngIf=\"icon\"\n [icon]=\"icon\"\n (click)=\"!dropdownOpen ? openDropdown() : closeDropdown()\"\n [checked]=\"dropdownOpen\"\n [disabled]=\"isDisabled\"\n></button>\n<div style=\"position: relative; height: 0; width: 100%\">\n <div #dropdown id=\"dropdown\"\n [class.disabled]=\"isDisabled\"\n [style.overflow]=\"dropdownOpen ? undefined : 'hidden'\"\n class=\"dropdown-list\"\n role=\"listbox\"\n aria-expanded=\"false\"\n aria-labelledby=\"dropdown-label\"\n [class.dropdown-open]=\"dropdownOpen\"\n [class.compact]=\"isCompact\"\n (keydown)=\"handleKeyboardEvents($event)\"\n >\n <button\n *ngFor=\"let item of filteredData; index as i\"\n (click)=\"onModelChange(item)\"\n [class.selected]=\"currentValue === item\"\n class=\"dropdown-item\"\n role=\"option\"\n aria-selected=\"false\"\n [id]=\"i\"\n [tabindex]=\"!dropdownOpen || isDisabled ? -1 : 0\"\n [disabled]=\"!dropdownOpen || isDisabled\"\n >\n <div id=\"content\">\n <a>{{ label ? item[label] : item }}</a>\n <span *ngIf=\"descriptionLabel && item[descriptionLabel]\" class=\"description\">{{ item[descriptionLabel] }}</span>\n </div>\n </button>\n <button *ngIf=\"!filteredData.length\"\n class=\"dropdown-item no-results\"\n disabled\n >\n <a>No results found</a>\n </button>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box}input::selection{background-color:transparent}.biit-input{display:flex;height:2.1rem}.input-container{position:relative;width:100%}.input-container .description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:.2em;min-height:1.05em;line-height:120%;font-style:italic}.input-object{background-color:#fff;font-size:1rem;display:block;border:none;color:var(--component-color);padding:.7rem;height:2.1rem;width:100%;min-width:2.1rem;font-weight:400;cursor:pointer}.input-object:focus,.input-object:active,.input-object:hover{outline:none;background:var(--main-background)}.input-object:disabled{pointer-events:none;background-color:transparent;color:var(--main-background)}.default-cursor{cursor:auto}.input-placeholder{color:var(--component-color);font-size:1rem;font-weight:bolder;text-transform:uppercase;position:absolute;pointer-events:none;left:.7rem;top:.42rem;height:.7rem;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.input-placeholder.compact{top:-.95rem;font-size:.7rem;font-weight:400;color:var(--secondary-color)}.input-placeholder.disabled{color:var(--main-background)}.input-show-icon{width:1rem;height:1rem}.input-show-icon-container{top:0;right:0;position:absolute;width:2.1rem;height:2.1rem;align-content:center;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transform:rotate(90deg);transition:transform .5s ease}.input-show-icon-container:hover,.input-show-icon-container:focus,.input-show-icon-container:focus-visible{border:none;outline:none}.input-show-icon-container:hover~.input-object{background:var(--main-background)}.input-show-icon-container.rotate-90{transform:rotate(-90deg)}.bottom-line{position:relative;top:-.175rem;margin-bottom:-.175rem;width:auto;height:.175rem;background:var(--component-color)}.bottom-line.disabled{background:var(--main-background)}.dropdown-list{background:white;position:absolute;z-index:2;box-sizing:border-box;border:.175rem solid black;margin-top:-.175rem;min-width:12.8rem;width:100%;cursor:pointer;transform-origin:top;opacity:0;pointer-events:none;transform:translateY(var(--origin));transition:opacity .5s ease,transform .5s ease;max-height:20rem;overflow-y:auto;overflow-x:hidden}.dropdown-list.dropdown-open{opacity:1;pointer-events:auto;transform:translate(0)}.dropdown-list.compact{width:12.8rem}.dropdown-list.disabled{visibility:hidden}.dropdown-item{background:none;color:inherit;border:none;font:inherit;width:100%;cursor:pointer;line-height:120%;min-height:1.4rem;display:flex;align-items:center;padding:.2rem .7rem;text-align:left}.dropdown-item div{display:flex;flex-direction:column}.dropdown-item .description{font-size:.75em;color:gray;line-height:120%;font-style:italic}.dropdown-item:not(.no-results).selected{background:var(--main-background);width:calc(100% + .3rem);margin-left:-.15rem;padding-left:.85rem}.dropdown-item:not(.no-results):hover,.dropdown-item:not(.no-results):focus,.dropdown-item:not(.no-results):focus-visible{outline:none;background:var(--hover-color);width:calc(100% + .3rem);margin-left:-.15rem;padding-left:.85rem}.dropdown-item.no-results{justify-content:center;padding:1rem;color:#d9d9d9}.passthrough{pointer-events:none}.grey-bg{background:var(--main-background)}.onwards{--origin: 1rem}.downwards{--origin: -1rem}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BiitIconComponent, selector: "biit-icon", inputs: ["name", "svgStyle", "pathStyle"] }, { kind: "component", type: i4.BiitIconButtonComponent, selector: "button[biit-icon]", inputs: ["icon", "checked"] }] });
|
|
229
229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitDropdownComponent, decorators: [{
|
|
230
230
|
type: Component,
|
|
231
231
|
args: [{ selector: 'biit-dropdown', providers: [
|
|
@@ -236,7 +236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
236
236
|
}
|
|
237
237
|
], host: {
|
|
238
238
|
'(document:pointerdown)': 'handleMouseEvents($event)'
|
|
239
|
-
}, template: "<div class=\"biit-input\" aria-haspopup=\"listbox\"\n *ngIf=\"!icon\"\n [class.compact]=\"isCompact\"\n [class.disabled]=\"isDisabled\"\n (keydown)=\"!isDisabled && handleKeyboardEvents($event)\"\n (keydown.enter)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n>\n <div class=\"input-container\" #input>\n <input [ngModel]=\"dropdownOpen ? filterText :\n currentValue && !label ? currentValue :\n currentValue && currentValue[label] ? currentValue[label] : ''\"\n (ngModelChange)=\"filterText = $event; handleFilter()\"\n (click)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n [placeholder]=\"dropdownOpen && currentValue && !label ? currentValue :\n dropdownOpen && currentValue && currentValue[label] ? currentValue[label] : ''\"\n tabindex=\"0\"\n class=\"input-object\"\n [class.grey-bg]=\"dropdownOpen\"\n [class.default-cursor]=\"dropdownOpen\"\n [disabled]=\"isDisabled\"\n [readonly]=\"!dropdownOpen\"/>\n <div class=\"input-show-icon-container\"\n [class.passthrough]=\"!dropdownOpen\"\n [class.rotate-90]=\"dropdownOpen\"\n (click)=\"dropdownOpen && closeDropdown()\">\n <biit-icon [name]=\"'right_arrow'\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: isDisabled ? '#D9D9D9' : dropdownOpen ? '
|
|
239
|
+
}, template: "<div class=\"biit-input\" aria-haspopup=\"listbox\"\n *ngIf=\"!icon\"\n [class.compact]=\"isCompact\"\n [class.disabled]=\"isDisabled\"\n (keydown)=\"!isDisabled && handleKeyboardEvents($event)\"\n (keydown.enter)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n>\n <div class=\"input-container\" #input>\n <input [ngModel]=\"dropdownOpen ? filterText :\n currentValue && !label ? currentValue :\n currentValue && currentValue[label] ? currentValue[label] : ''\"\n (ngModelChange)=\"filterText = $event; handleFilter()\"\n (click)=\"!dropdownOpen && !isDisabled && openDropdown()\"\n [placeholder]=\"dropdownOpen && currentValue && !label ? currentValue :\n dropdownOpen && currentValue && currentValue[label] ? currentValue[label] : ''\"\n tabindex=\"0\"\n class=\"input-object\"\n [class.grey-bg]=\"dropdownOpen\"\n [class.default-cursor]=\"dropdownOpen\"\n [disabled]=\"isDisabled\"\n [readonly]=\"!dropdownOpen\"/>\n <div class=\"input-show-icon-container\"\n [class.passthrough]=\"!dropdownOpen\"\n [class.rotate-90]=\"dropdownOpen\"\n (click)=\"dropdownOpen && closeDropdown()\">\n <biit-icon [name]=\"'right_arrow'\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: isDisabled ? '#D9D9D9' : dropdownOpen ? 'var(--main-color)' : 'var(--component-color)'}\"\n ></biit-icon>\n </div>\n <div id=\"dropdown-label\"\n class=\"input-placeholder\"\n [class.disabled]=\"isDisabled\"\n [class.compact]=\"dropdownOpen || currentValue\">\n {{ title }}\n <a *ngIf=\"isRequired\"\n [style.color]=\"currentValue ? null : 'red'\">*</a>\n </div>\n <div class=\"bottom-line\"\n [class.disabled]=\"isDisabled\"\n ></div>\n <span class=\"description\">{{ description }}</span>\n </div>\n</div>\n<button biit-icon\n *ngIf=\"icon\"\n [icon]=\"icon\"\n (click)=\"!dropdownOpen ? openDropdown() : closeDropdown()\"\n [checked]=\"dropdownOpen\"\n [disabled]=\"isDisabled\"\n></button>\n<div style=\"position: relative; height: 0; width: 100%\">\n <div #dropdown id=\"dropdown\"\n [class.disabled]=\"isDisabled\"\n [style.overflow]=\"dropdownOpen ? undefined : 'hidden'\"\n class=\"dropdown-list\"\n role=\"listbox\"\n aria-expanded=\"false\"\n aria-labelledby=\"dropdown-label\"\n [class.dropdown-open]=\"dropdownOpen\"\n [class.compact]=\"isCompact\"\n (keydown)=\"handleKeyboardEvents($event)\"\n >\n <button\n *ngFor=\"let item of filteredData; index as i\"\n (click)=\"onModelChange(item)\"\n [class.selected]=\"currentValue === item\"\n class=\"dropdown-item\"\n role=\"option\"\n aria-selected=\"false\"\n [id]=\"i\"\n [tabindex]=\"!dropdownOpen || isDisabled ? -1 : 0\"\n [disabled]=\"!dropdownOpen || isDisabled\"\n >\n <div id=\"content\">\n <a>{{ label ? item[label] : item }}</a>\n <span *ngIf=\"descriptionLabel && item[descriptionLabel]\" class=\"description\">{{ item[descriptionLabel] }}</span>\n </div>\n </button>\n <button *ngIf=\"!filteredData.length\"\n class=\"dropdown-item no-results\"\n disabled\n >\n <a>No results found</a>\n </button>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box}input::selection{background-color:transparent}.biit-input{display:flex;height:2.1rem}.input-container{position:relative;width:100%}.input-container .description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:.2em;min-height:1.05em;line-height:120%;font-style:italic}.input-object{background-color:#fff;font-size:1rem;display:block;border:none;color:var(--component-color);padding:.7rem;height:2.1rem;width:100%;min-width:2.1rem;font-weight:400;cursor:pointer}.input-object:focus,.input-object:active,.input-object:hover{outline:none;background:var(--main-background)}.input-object:disabled{pointer-events:none;background-color:transparent;color:var(--main-background)}.default-cursor{cursor:auto}.input-placeholder{color:var(--component-color);font-size:1rem;font-weight:bolder;text-transform:uppercase;position:absolute;pointer-events:none;left:.7rem;top:.42rem;height:.7rem;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.input-placeholder.compact{top:-.95rem;font-size:.7rem;font-weight:400;color:var(--secondary-color)}.input-placeholder.disabled{color:var(--main-background)}.input-show-icon{width:1rem;height:1rem}.input-show-icon-container{top:0;right:0;position:absolute;width:2.1rem;height:2.1rem;align-content:center;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transform:rotate(90deg);transition:transform .5s ease}.input-show-icon-container:hover,.input-show-icon-container:focus,.input-show-icon-container:focus-visible{border:none;outline:none}.input-show-icon-container:hover~.input-object{background:var(--main-background)}.input-show-icon-container.rotate-90{transform:rotate(-90deg)}.bottom-line{position:relative;top:-.175rem;margin-bottom:-.175rem;width:auto;height:.175rem;background:var(--component-color)}.bottom-line.disabled{background:var(--main-background)}.dropdown-list{background:white;position:absolute;z-index:2;box-sizing:border-box;border:.175rem solid black;margin-top:-.175rem;min-width:12.8rem;width:100%;cursor:pointer;transform-origin:top;opacity:0;pointer-events:none;transform:translateY(var(--origin));transition:opacity .5s ease,transform .5s ease;max-height:20rem;overflow-y:auto;overflow-x:hidden}.dropdown-list.dropdown-open{opacity:1;pointer-events:auto;transform:translate(0)}.dropdown-list.compact{width:12.8rem}.dropdown-list.disabled{visibility:hidden}.dropdown-item{background:none;color:inherit;border:none;font:inherit;width:100%;cursor:pointer;line-height:120%;min-height:1.4rem;display:flex;align-items:center;padding:.2rem .7rem;text-align:left}.dropdown-item div{display:flex;flex-direction:column}.dropdown-item .description{font-size:.75em;color:gray;line-height:120%;font-style:italic}.dropdown-item:not(.no-results).selected{background:var(--main-background);width:calc(100% + .3rem);margin-left:-.15rem;padding-left:.85rem}.dropdown-item:not(.no-results):hover,.dropdown-item:not(.no-results):focus,.dropdown-item:not(.no-results):focus-visible{outline:none;background:var(--hover-color);width:calc(100% + .3rem);margin-left:-.15rem;padding-left:.85rem}.dropdown-item.no-results{justify-content:center;padding:1rem;color:#d9d9d9}.passthrough{pointer-events:none}.grey-bg{background:var(--main-background)}.onwards{--origin: 1rem}.downwards{--origin: -1rem}\n"] }]
|
|
240
240
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.IterableDiffers }]; }, propDecorators: { title: [{
|
|
241
241
|
type: Input
|
|
242
242
|
}], label: [{
|
|
@@ -266,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
266
266
|
}], icon: [{
|
|
267
267
|
type: Input
|
|
268
268
|
}] } });
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtZHJvcGRvd24vYmlpdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtZHJvcGRvd24vYmlpdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFVBQVUsRUFDVixLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFtQjVELE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsSUFBYSxTQUFTLENBQUMsU0FBYztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxPQUFPLENBQUMsT0FBWTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxRQUFRLENBQUMsUUFBYTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxRQUFRLENBQUMsUUFBYTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBdUIsT0FBTyxDQUFDLE9BQVk7UUFDekMsSUFB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QUF3QixFQUFFLDJCQUEyQjtxQkFDdEQ7K0hBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSWlCLE9BQU87c0JBQTdCLEtBQUs7dUJBQUMsVUFBVTtnQkFJTyxRQUFRO3NCQUEvQixLQUFLO3VCQUFDLFdBQVc7Z0JBR1QsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgSXRlcmFibGVEaWZmZXIsXG4gIEl0ZXJhYmxlRGlmZmVycyxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQge2JpaXRJY29ufSBmcm9tICdAYmlpdC1zb2x1dGlvbnMvYmlpdC1pY29ucy1jb2xsZWN0aW9uJztcbmltcG9ydCB7QmlpdE11bHRpc2VsZWN0VHlwZX0gZnJvbSBcIi4uL2JpaXQtbXVsdGlzZWxlY3QvYmlpdC1tdWx0aXNlbGVjdC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlpdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9iaWl0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmlpdC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJpaXREcm9wZG93bkNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICcoZG9jdW1lbnQ6cG9pbnRlcmRvd24pJzogJ2hhbmRsZU1vdXNlRXZlbnRzKCRldmVudCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjayB7XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uTGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBpc1ByaW1pdGl2ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2V0IHByaW1pdGl2ZShwcmltaXRpdmU6IGFueSkge1xuICAgIHRoaXMuaXNQcmltaXRpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocHJpbWl0aXZlKTtcbiAgfTtcbiAgcHJvdGVjdGVkIGlzQ29tcGFjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2V0IGNvbXBhY3QoY29tcGFjdDogYW55KSB7XG4gICAgdGhpcy5pc0NvbXBhY3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY29tcGFjdCk7XG4gIH07XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGFueSkge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXNhYmxlZCk7XG4gIH07XG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGFueSkge1xuICAgIHRoaXMuaXNSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXF1aXJlZCk7XG4gIH07XG4gIHByb3RlY3RlZCBpc1NvcnRBc2M6IGJvb2xlYW47XG4gIEBJbnB1dCgnc29ydC1hc2MnKSBzZXQgc29ydEFzYyhzb3J0QXNjOiBhbnkpIHtcbiAgICB0aGlzLmlzU29ydEFzYyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzb3J0QXNjKTtcbiAgfTtcbiAgcHJvdGVjdGVkIGlzU29ydERlc2M6IGJvb2xlYW47XG4gIEBJbnB1dCgnc29ydC1kZXNjJykgc2V0IHNvcnREZXNjKHNvcnREZXNjOiBhbnkpIHtcbiAgICB0aGlzLmlzU29ydERlc2MgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoc29ydERlc2MpO1xuICB9O1xuICBASW5wdXQoKSBpY29uOiBiaWl0SWNvbjtcblxuICBwdWJsaWMgY3VycmVudFZhbHVlO1xuICBwdWJsaWMgZmlsdGVyVGV4dDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmaWx0ZXJlZERhdGE6IGFueVtdO1xuICBwdWJsaWMgZHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgZHJvcGRvd25FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtyZXR1cm4gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLWxpc3QnKX1cbiAgcHVibGljIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge3JldHVybiB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtb2JqZWN0Jyl9XG5cbiAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtOiBFbGVtZW50UmVmLFxuICAgIGlEaWZmOiBJdGVyYWJsZURpZmZlcnNcbiAgKSB7XG4gICAgdGhpcy5kaWZmZXIgPSBpRGlmZi5maW5kKHRoaXMuZGF0YSkuY3JlYXRlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLmRpZmZlci5kaWZmKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLmlzUHJpbWl0aXZlID8gdGhpcy5kYXRhLmZpbmQoaSA9PiBpW3RoaXMudmFsdWVdID09PSB2YWx1ZSkgOiB2YWx1ZTtcbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMuY3VycmVudFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlzUHJpbWl0aXZlID8gdmFsdWVbdGhpcy52YWx1ZV0gOiB2YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVNb3VzZUV2ZW50cygkZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duT3BlbiAmJiAhdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoJGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleWJvYXJkRXZlbnRzKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoJGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duT3Blbil7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSA9PSBcIkJVVFRPTlwiICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MRWxlbWVudCk/LmZvY3VzKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmZpbmRJbmRleChpID0+IGkgPT0gdGhpcy5jdXJyZW50VmFsdWUpID4gMCkge1xuICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLmRhdGFbdGhpcy5kYXRhLmZpbmRJbmRleChpID0+IGkgPT0gdGhpcy5jdXJyZW50VmFsdWUpIC0gMV0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bk9wZW4pe1xuICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmlucHV0RWxlbWVudCAmJiB0aGlzLmZpbHRlcmVkRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICh0aGlzLmRyb3Bkb3duRWxlbWVudC5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcgYXMgSFRNTEVsZW1lbnQpPy5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuZmluZEluZGV4KGkgPT4gaSA9PSB0aGlzLmN1cnJlbnRWYWx1ZSkgPCB0aGlzLmRhdGEubGVuZ3RoIC0xKSB7XG4gICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuZGF0YVt0aGlzLmRhdGEuZmluZEluZGV4KGkgPT4gaSA9PSB0aGlzLmN1cnJlbnRWYWx1ZSkgKyAxXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gXCJCVVRUT05cIikge1xuICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBoYW5kbGVGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5zb3J0RGF0YSgpO1xuICAgICAgaWYgKHRoaXMuZmlsdGVyVGV4dCkge1xuICAgICAgICBpZiAodGhpcy5pc1ByaW1pdGl2ZSkge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgICBpdGVtLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJUZXh0Lm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikudG9Mb3dlckNhc2UoKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgICBpdGVtW3RoaXMubGFiZWxdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyVGV4dC5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpLnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gW107XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gJyc7XG4gICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcbiAgfVxuXG4gIHNvcnREYXRhKCkge1xuICAgIGlmICh0aGlzLmlzUHJpbWl0aXZlKSB7XG4gICAgICBpZiAodGhpcy5pc1NvcnRBc2MgfHwgdGhpcy5pc1NvcnREZXNjKSB7XG4gICAgICAgIHRoaXMuZGF0YS5zb3J0KFxuICAgICAgICAgIChhLGIpID0+IHRoaXMuaXNTb3J0QXNjID8gKGE+YiA/IDEgOiAoYj5hID8gLTEgOiAwKSkgOiAoYT5iID8gLTEgOiAoYj5hID8gMSA6IDApKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pc1NvcnRBc2MgfHwgdGhpcy5pc1NvcnREZXNjKSB7XG4gICAgICAgIHRoaXMuZGF0YS5zb3J0KChhLGIpID0+IHtcbiAgICAgICAgICBpZiAoIGFbdGhpcy5sYWJlbF0gPCBiW3RoaXMubGFiZWxdICl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1NvcnRBc2MgPyAtMSA6IDE7XG4gICAgICAgICAgfSBlbHNlIGlmICggYVt0aGlzLmxhYmVsXSA+IGJbdGhpcy5sYWJlbF0gKXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzU29ydEFzYyA/IDEgOiAtMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuRHJvcGRvd24oKSB7XG4gICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuICAgIGlmICghdGhpcy5pY29uKSB7XG4gICAgICAodGhpcy5pbnB1dEVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvLyBTZXR0aW5nIGEgdGltZW91dCBiZWNhdXNlIGl0IGRvZXNuJ3QgbG9hZCB1cHdhcmRzL2Rvd253YXJkcyBjc3MgY2xhc3NlcyBvbiBleGVjdXRpb24gdGltZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kcm9wZG93bk9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5kcm9wZG93bkVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgXCJ0cnVlXCIpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kcm9wZG93bkVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgXCJmYWxzZVwiKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5jbGVhckZpbHRlcigpOyB9LCAxMDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKSB7XG4gICAgbGV0IGJ1dHRvbjtcbiAgICBsZXQgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duRWxlbWVudDtcbiAgICBkcm9wZG93bi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIGlmICghdGhpcy5pY29uKSB7XG4gICAgICBidXR0b24gPSB0aGlzLmlucHV0RWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnV0dG9uID0gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImJ1dHRvblwiKTtcbiAgICB9XG5cbiAgICAvLyBDaGVja2luZyBhdmFpbGFibGUgc2NyZWVuIHNwYWNlXG4gICAgY29uc3QgZml0c0JvdHRvbSA9IGJvdHRvbUNoZWNrKCk7XG4gICAgY29uc3QgZml0c1JpZ2h0ID0gcmlnaHRDaGVjaygpO1xuICAgIGNvbnN0IGZpdHNMZWZ0ID0gbGVmdENoZWNrKCk7XG5cbiAgICBpZiAoIWZpdHNSaWdodCAmJiBmaXRzTGVmdCkge1xuICAgICAgZHJvcGRvd24uc3R5bGUubWFyZ2luTGVmdCA9IGJ1dHRvbi5vZmZzZXRXaWR0aCAtIGRyb3Bkb3duLm9mZnNldFdpZHRoICsgJ3B4JztcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcGRvd24uc3R5bGUubWFyZ2luTGVmdCA9IG51bGw7XG4gICAgfVxuXG4gICAgZHJvcGRvd24uY2xhc3NMaXN0LnJlbW92ZSgnb253YXJkcycpO1xuICAgIGRyb3Bkb3duLmNsYXNzTGlzdC5yZW1vdmUoJ2Rvd253YXJkcycpO1xuXG4gICAgaWYgKCFmaXRzQm90dG9tKSB7XG4gICAgICBkcm9wZG93bi5jbGFzc0xpc3QuYWRkKCdvbndhcmRzJyk7XG4gICAgICBkcm9wZG93bi5zdHlsZS5tYXJnaW5Ub3AgPSAtKGRyb3Bkb3duLm9mZnNldEhlaWdodCArIGJ1dHRvbi5vZmZzZXRIZWlnaHQpICsgJ3B4JztcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcGRvd24uY2xhc3NMaXN0LmFkZCgnZG93bndhcmRzJyk7XG4gICAgICBkcm9wZG93bi5zdHlsZS5tYXJnaW5Ub3AgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIFN1cHBvcnQgaW5uZXIgZnVuY3Rpb25zXG4gICAgZnVuY3Rpb24gYm90dG9tQ2hlY2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tICsgZHJvcGRvd24ub2Zmc2V0SGVpZ2h0IDw9IHdpbmRvdy5pbm5lckhlaWdodCB8fFxuICAgICAgICAgIGJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLSBkcm9wZG93bi5vZmZzZXRIZWlnaHQgPD0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByaWdodENoZWNrKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCArIGRyb3Bkb3duLm9mZnNldFdpZHRoIDw9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxlZnRDaGVjaygpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgLSBkcm9wZG93bi5vZmZzZXRXaWR0aCA+PSAwO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJpaXQtaW5wdXRcIiBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICpuZ0lmPVwiIWljb25cIlxuICAgICBbY2xhc3MuY29tcGFjdF09XCJpc0NvbXBhY3RcIlxuICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgIChrZXlkb3duKT1cIiFpc0Rpc2FibGVkICYmIGhhbmRsZUtleWJvYXJkRXZlbnRzKCRldmVudClcIlxuICAgICAoa2V5ZG93bi5lbnRlcik9XCIhZHJvcGRvd25PcGVuICYmICFpc0Rpc2FibGVkICYmIG9wZW5Ecm9wZG93bigpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiICNpbnB1dD5cbiAgICA8aW5wdXQgW25nTW9kZWxdPVwiZHJvcGRvd25PcGVuID8gZmlsdGVyVGV4dCA6XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlICYmICFsYWJlbCA/IGN1cnJlbnRWYWx1ZSA6XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlICYmIGN1cnJlbnRWYWx1ZVtsYWJlbF0gPyBjdXJyZW50VmFsdWVbbGFiZWxdIDogJydcIlxuICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJUZXh0ID0gJGV2ZW50OyBoYW5kbGVGaWx0ZXIoKVwiXG4gICAgICAgICAgIChjbGljayk9XCIhZHJvcGRvd25PcGVuICYmICFpc0Rpc2FibGVkICYmIG9wZW5Ecm9wZG93bigpXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRyb3Bkb3duT3BlbiAmJiBjdXJyZW50VmFsdWUgJiYgIWxhYmVsID8gY3VycmVudFZhbHVlIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25PcGVuICYmIGN1cnJlbnRWYWx1ZSAmJiBjdXJyZW50VmFsdWVbbGFiZWxdID8gY3VycmVudFZhbHVlW2xhYmVsXSA6ICcnXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1vYmplY3RcIlxuICAgICAgICAgICBbY2xhc3MuZ3JleS1iZ109XCJkcm9wZG93bk9wZW5cIlxuICAgICAgICAgICBbY2xhc3MuZGVmYXVsdC1jdXJzb3JdPVwiZHJvcGRvd25PcGVuXCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiIWRyb3Bkb3duT3BlblwiLz5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2hvdy1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICBbY2xhc3MucGFzc3Rocm91Z2hdPVwiIWRyb3Bkb3duT3BlblwiXG4gICAgICAgICBbY2xhc3Mucm90YXRlLTkwXT1cImRyb3Bkb3duT3BlblwiXG4gICAgICAgICAoY2xpY2spPVwiZHJvcGRvd25PcGVuICYmIGNsb3NlRHJvcGRvd24oKVwiPlxuICAgICAgPGJpaXQtaWNvbiBbbmFtZV09XCIncmlnaHRfYXJyb3cnXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1zaG93LWljb25cIlxuICAgICAgICAgICAgICAgICBbcGF0aFN0eWxlXT1cIntmaWxsOiBpc0Rpc2FibGVkID8gJyNEOUQ5RDknIDogZHJvcGRvd25PcGVuID8gJyNGMjBENUUnIDogJyMyNjI2MjYnfVwiXG4gICAgICA+PC9iaWl0LWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBpZD1cImRyb3Bkb3duLWxhYmVsXCJcbiAgICAgICAgIGNsYXNzPVwiaW5wdXQtcGxhY2Vob2xkZXJcIlxuICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgW2NsYXNzLmNvbXBhY3RdPVwiZHJvcGRvd25PcGVuIHx8IGN1cnJlbnRWYWx1ZVwiPlxuICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDxhICpuZ0lmPVwiaXNSZXF1aXJlZFwiXG4gICAgICAgICBbc3R5bGUuY29sb3JdPVwiY3VycmVudFZhbHVlID8gbnVsbCA6ICdyZWQnXCI+KjwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWxpbmVcIlxuICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgID48L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48YnV0dG9uIGJpaXQtaWNvblxuICAgICAgICAqbmdJZj1cImljb25cIlxuICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgKGNsaWNrKT1cIiFkcm9wZG93bk9wZW4gPyBvcGVuRHJvcGRvd24oKSA6IGNsb3NlRHJvcGRvd24oKVwiXG4gICAgICAgIFtjaGVja2VkXT1cImRyb3Bkb3duT3BlblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbj48L2J1dHRvbj5cbjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogMDsgd2lkdGg6IDEwMCVcIj5cbiAgPGRpdiAjZHJvcGRvd24gaWQ9XCJkcm9wZG93blwiXG4gICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgIFtzdHlsZS5vdmVyZmxvd109XCJkcm9wZG93bk9wZW4gPyB1bmRlZmluZWQgOiAnaGlkZGVuJ1wiXG4gICAgICAgY2xhc3M9XCJkcm9wZG93bi1saXN0XCJcbiAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bi1sYWJlbFwiXG4gICAgICAgW2NsYXNzLmRyb3Bkb3duLW9wZW5dPVwiZHJvcGRvd25PcGVuXCJcbiAgICAgICBbY2xhc3MuY29tcGFjdF09XCJpc0NvbXBhY3RcIlxuICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleWJvYXJkRXZlbnRzKCRldmVudClcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWREYXRhOyBpbmRleCBhcyBpXCJcbiAgICAgIChjbGljayk9XCJvbk1vZGVsQ2hhbmdlKGl0ZW0pXCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJjdXJyZW50VmFsdWUgPT09IGl0ZW1cIlxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCJcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcbiAgICAgIFtpZF09XCJpXCJcbiAgICAgIFt0YWJpbmRleF09XCIhZHJvcGRvd25PcGVuIHx8IGlzRGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFkcm9wZG93bk9wZW4gfHwgaXNEaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPGRpdiBpZD1cImNvbnRlbnRcIj5cbiAgICAgICAgPGE+e3sgbGFiZWwgPyAgaXRlbVtsYWJlbF0gOiBpdGVtIH19PC9hPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImRlc2NyaXB0aW9uTGFiZWwgJiYgaXRlbVtkZXNjcmlwdGlvbkxhYmVsXVwiIGNsYXNzPVwiZGVzY3JpcHRpb25cIj57eyBpdGVtW2Rlc2NyaXB0aW9uTGFiZWxdIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cIiFmaWx0ZXJlZERhdGEubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbSBuby1yZXN1bHRzXCJcbiAgICAgICAgICAgIGRpc2FibGVkXG4gICAgPlxuICAgICAgPGE+Tm8gcmVzdWx0cyBmb3VuZDwvYT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtZHJvcGRvd24vYmlpdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtZHJvcGRvd24vYmlpdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFVBQVUsRUFDVixLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFtQjVELE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsSUFBYSxTQUFTLENBQUMsU0FBYztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxPQUFPLENBQUMsT0FBWTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxRQUFRLENBQUMsUUFBYTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxRQUFRLENBQUMsUUFBYTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBdUIsT0FBTyxDQUFDLE9BQVk7UUFDekMsSUFB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QUF3QixFQUFFLDJCQUEyQjtxQkFDdEQ7K0hBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSWlCLE9BQU87c0JBQTdCLEtBQUs7dUJBQUMsVUFBVTtnQkFJTyxRQUFRO3NCQUEvQixLQUFLO3VCQUFDLFdBQVc7Z0JBR1QsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgSXRlcmFibGVEaWZmZXIsXG4gIEl0ZXJhYmxlRGlmZmVycyxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQge2JpaXRJY29ufSBmcm9tICdAYmlpdC1zb2x1dGlvbnMvYmlpdC1pY29ucy1jb2xsZWN0aW9uJztcbmltcG9ydCB7QmlpdE11bHRpc2VsZWN0VHlwZX0gZnJvbSBcIi4uL2JpaXQtbXVsdGlzZWxlY3QvYmlpdC1tdWx0aXNlbGVjdC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlpdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9iaWl0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmlpdC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJpaXREcm9wZG93bkNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICcoZG9jdW1lbnQ6cG9pbnRlcmRvd24pJzogJ2hhbmRsZU1vdXNlRXZlbnRzKCRldmVudCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjayB7XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uTGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBpc1ByaW1pdGl2ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2V0IHByaW1pdGl2ZShwcmltaXRpdmU6IGFueSkge1xuICAgIHRoaXMuaXNQcmltaXRpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocHJpbWl0aXZlKTtcbiAgfTtcbiAgcHJvdGVjdGVkIGlzQ29tcGFjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2V0IGNvbXBhY3QoY29tcGFjdDogYW55KSB7XG4gICAgdGhpcy5pc0NvbXBhY3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY29tcGFjdCk7XG4gIH07XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGFueSkge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXNhYmxlZCk7XG4gIH07XG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGFueSkge1xuICAgIHRoaXMuaXNSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXF1aXJlZCk7XG4gIH07XG4gIHByb3RlY3RlZCBpc1NvcnRBc2M6IGJvb2xlYW47XG4gIEBJbnB1dCgnc29ydC1hc2MnKSBzZXQgc29ydEFzYyhzb3J0QXNjOiBhbnkpIHtcbiAgICB0aGlzLmlzU29ydEFzYyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzb3J0QXNjKTtcbiAgfTtcbiAgcHJvdGVjdGVkIGlzU29ydERlc2M6IGJvb2xlYW47XG4gIEBJbnB1dCgnc29ydC1kZXNjJykgc2V0IHNvcnREZXNjKHNvcnREZXNjOiBhbnkpIHtcbiAgICB0aGlzLmlzU29ydERlc2MgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoc29ydERlc2MpO1xuICB9O1xuICBASW5wdXQoKSBpY29uOiBiaWl0SWNvbjtcblxuICBwdWJsaWMgY3VycmVudFZhbHVlO1xuICBwdWJsaWMgZmlsdGVyVGV4dDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmaWx0ZXJlZERhdGE6IGFueVtdO1xuICBwdWJsaWMgZHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgZHJvcGRvd25FbGVtZW50KCk6IEhUTUxFbGVtZW50IHtyZXR1cm4gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLWxpc3QnKX1cbiAgcHVibGljIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge3JldHVybiB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtb2JqZWN0Jyl9XG5cbiAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtOiBFbGVtZW50UmVmLFxuICAgIGlEaWZmOiBJdGVyYWJsZURpZmZlcnNcbiAgKSB7XG4gICAgdGhpcy5kaWZmZXIgPSBpRGlmZi5maW5kKHRoaXMuZGF0YSkuY3JlYXRlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLmRpZmZlci5kaWZmKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLmlzUHJpbWl0aXZlID8gdGhpcy5kYXRhLmZpbmQoaSA9PiBpW3RoaXMudmFsdWVdID09PSB2YWx1ZSkgOiB2YWx1ZTtcbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMuY3VycmVudFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlzUHJpbWl0aXZlID8gdmFsdWVbdGhpcy52YWx1ZV0gOiB2YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVNb3VzZUV2ZW50cygkZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duT3BlbiAmJiAhdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoJGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleWJvYXJkRXZlbnRzKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoJGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duT3Blbil7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSA9PSBcIkJVVFRPTlwiICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MRWxlbWVudCk/LmZvY3VzKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmZpbmRJbmRleChpID0+IGkgPT0gdGhpcy5jdXJyZW50VmFsdWUpID4gMCkge1xuICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLmRhdGFbdGhpcy5kYXRhLmZpbmRJbmRleChpID0+IGkgPT0gdGhpcy5jdXJyZW50VmFsdWUpIC0gMV0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bk9wZW4pe1xuICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmlucHV0RWxlbWVudCAmJiB0aGlzLmZpbHRlcmVkRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICh0aGlzLmRyb3Bkb3duRWxlbWVudC5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcgYXMgSFRNTEVsZW1lbnQpPy5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuZmluZEluZGV4KGkgPT4gaSA9PSB0aGlzLmN1cnJlbnRWYWx1ZSkgPCB0aGlzLmRhdGEubGVuZ3RoIC0xKSB7XG4gICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuZGF0YVt0aGlzLmRhdGEuZmluZEluZGV4KGkgPT4gaSA9PSB0aGlzLmN1cnJlbnRWYWx1ZSkgKyAxXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gXCJCVVRUT05cIikge1xuICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBoYW5kbGVGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5zb3J0RGF0YSgpO1xuICAgICAgaWYgKHRoaXMuZmlsdGVyVGV4dCkge1xuICAgICAgICBpZiAodGhpcy5pc1ByaW1pdGl2ZSkge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgICBpdGVtLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJUZXh0Lm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikudG9Mb3dlckNhc2UoKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgICBpdGVtW3RoaXMubGFiZWxdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyVGV4dC5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpLnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gW107XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gJyc7XG4gICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcbiAgfVxuXG4gIHNvcnREYXRhKCkge1xuICAgIGlmICh0aGlzLmlzUHJpbWl0aXZlKSB7XG4gICAgICBpZiAodGhpcy5pc1NvcnRBc2MgfHwgdGhpcy5pc1NvcnREZXNjKSB7XG4gICAgICAgIHRoaXMuZGF0YS5zb3J0KFxuICAgICAgICAgIChhLGIpID0+IHRoaXMuaXNTb3J0QXNjID8gKGE+YiA/IDEgOiAoYj5hID8gLTEgOiAwKSkgOiAoYT5iID8gLTEgOiAoYj5hID8gMSA6IDApKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pc1NvcnRBc2MgfHwgdGhpcy5pc1NvcnREZXNjKSB7XG4gICAgICAgIHRoaXMuZGF0YS5zb3J0KChhLGIpID0+IHtcbiAgICAgICAgICBpZiAoIGFbdGhpcy5sYWJlbF0gPCBiW3RoaXMubGFiZWxdICl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1NvcnRBc2MgPyAtMSA6IDE7XG4gICAgICAgICAgfSBlbHNlIGlmICggYVt0aGlzLmxhYmVsXSA+IGJbdGhpcy5sYWJlbF0gKXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzU29ydEFzYyA/IDEgOiAtMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuRHJvcGRvd24oKSB7XG4gICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuICAgIGlmICghdGhpcy5pY29uKSB7XG4gICAgICAodGhpcy5pbnB1dEVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvLyBTZXR0aW5nIGEgdGltZW91dCBiZWNhdXNlIGl0IGRvZXNuJ3QgbG9hZCB1cHdhcmRzL2Rvd253YXJkcyBjc3MgY2xhc3NlcyBvbiBleGVjdXRpb24gdGltZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kcm9wZG93bk9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5kcm9wZG93bkVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgXCJ0cnVlXCIpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kcm9wZG93bkVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgXCJmYWxzZVwiKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5jbGVhckZpbHRlcigpOyB9LCAxMDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKSB7XG4gICAgbGV0IGJ1dHRvbjtcbiAgICBsZXQgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duRWxlbWVudDtcbiAgICBkcm9wZG93bi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIGlmICghdGhpcy5pY29uKSB7XG4gICAgICBidXR0b24gPSB0aGlzLmlucHV0RWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnV0dG9uID0gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImJ1dHRvblwiKTtcbiAgICB9XG5cbiAgICAvLyBDaGVja2luZyBhdmFpbGFibGUgc2NyZWVuIHNwYWNlXG4gICAgY29uc3QgZml0c0JvdHRvbSA9IGJvdHRvbUNoZWNrKCk7XG4gICAgY29uc3QgZml0c1JpZ2h0ID0gcmlnaHRDaGVjaygpO1xuICAgIGNvbnN0IGZpdHNMZWZ0ID0gbGVmdENoZWNrKCk7XG5cbiAgICBpZiAoIWZpdHNSaWdodCAmJiBmaXRzTGVmdCkge1xuICAgICAgZHJvcGRvd24uc3R5bGUubWFyZ2luTGVmdCA9IGJ1dHRvbi5vZmZzZXRXaWR0aCAtIGRyb3Bkb3duLm9mZnNldFdpZHRoICsgJ3B4JztcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcGRvd24uc3R5bGUubWFyZ2luTGVmdCA9IG51bGw7XG4gICAgfVxuXG4gICAgZHJvcGRvd24uY2xhc3NMaXN0LnJlbW92ZSgnb253YXJkcycpO1xuICAgIGRyb3Bkb3duLmNsYXNzTGlzdC5yZW1vdmUoJ2Rvd253YXJkcycpO1xuXG4gICAgaWYgKCFmaXRzQm90dG9tKSB7XG4gICAgICBkcm9wZG93bi5jbGFzc0xpc3QuYWRkKCdvbndhcmRzJyk7XG4gICAgICBkcm9wZG93bi5zdHlsZS5tYXJnaW5Ub3AgPSAtKGRyb3Bkb3duLm9mZnNldEhlaWdodCArIGJ1dHRvbi5vZmZzZXRIZWlnaHQpICsgJ3B4JztcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcGRvd24uY2xhc3NMaXN0LmFkZCgnZG93bndhcmRzJyk7XG4gICAgICBkcm9wZG93bi5zdHlsZS5tYXJnaW5Ub3AgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIFN1cHBvcnQgaW5uZXIgZnVuY3Rpb25zXG4gICAgZnVuY3Rpb24gYm90dG9tQ2hlY2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tICsgZHJvcGRvd24ub2Zmc2V0SGVpZ2h0IDw9IHdpbmRvdy5pbm5lckhlaWdodCB8fFxuICAgICAgICAgIGJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLSBkcm9wZG93bi5vZmZzZXRIZWlnaHQgPD0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByaWdodENoZWNrKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCArIGRyb3Bkb3duLm9mZnNldFdpZHRoIDw9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxlZnRDaGVjaygpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgLSBkcm9wZG93bi5vZmZzZXRXaWR0aCA+PSAwO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJpaXQtaW5wdXRcIiBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICpuZ0lmPVwiIWljb25cIlxuICAgICBbY2xhc3MuY29tcGFjdF09XCJpc0NvbXBhY3RcIlxuICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgIChrZXlkb3duKT1cIiFpc0Rpc2FibGVkICYmIGhhbmRsZUtleWJvYXJkRXZlbnRzKCRldmVudClcIlxuICAgICAoa2V5ZG93bi5lbnRlcik9XCIhZHJvcGRvd25PcGVuICYmICFpc0Rpc2FibGVkICYmIG9wZW5Ecm9wZG93bigpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiICNpbnB1dD5cbiAgICA8aW5wdXQgW25nTW9kZWxdPVwiZHJvcGRvd25PcGVuID8gZmlsdGVyVGV4dCA6XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlICYmICFsYWJlbCA/IGN1cnJlbnRWYWx1ZSA6XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlICYmIGN1cnJlbnRWYWx1ZVtsYWJlbF0gPyBjdXJyZW50VmFsdWVbbGFiZWxdIDogJydcIlxuICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJUZXh0ID0gJGV2ZW50OyBoYW5kbGVGaWx0ZXIoKVwiXG4gICAgICAgICAgIChjbGljayk9XCIhZHJvcGRvd25PcGVuICYmICFpc0Rpc2FibGVkICYmIG9wZW5Ecm9wZG93bigpXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRyb3Bkb3duT3BlbiAmJiBjdXJyZW50VmFsdWUgJiYgIWxhYmVsID8gY3VycmVudFZhbHVlIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25PcGVuICYmIGN1cnJlbnRWYWx1ZSAmJiBjdXJyZW50VmFsdWVbbGFiZWxdID8gY3VycmVudFZhbHVlW2xhYmVsXSA6ICcnXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1vYmplY3RcIlxuICAgICAgICAgICBbY2xhc3MuZ3JleS1iZ109XCJkcm9wZG93bk9wZW5cIlxuICAgICAgICAgICBbY2xhc3MuZGVmYXVsdC1jdXJzb3JdPVwiZHJvcGRvd25PcGVuXCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiIWRyb3Bkb3duT3BlblwiLz5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2hvdy1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICBbY2xhc3MucGFzc3Rocm91Z2hdPVwiIWRyb3Bkb3duT3BlblwiXG4gICAgICAgICBbY2xhc3Mucm90YXRlLTkwXT1cImRyb3Bkb3duT3BlblwiXG4gICAgICAgICAoY2xpY2spPVwiZHJvcGRvd25PcGVuICYmIGNsb3NlRHJvcGRvd24oKVwiPlxuICAgICAgPGJpaXQtaWNvbiBbbmFtZV09XCIncmlnaHRfYXJyb3cnXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1zaG93LWljb25cIlxuICAgICAgICAgICAgICAgICBbcGF0aFN0eWxlXT1cIntmaWxsOiBpc0Rpc2FibGVkID8gJyNEOUQ5RDknIDogZHJvcGRvd25PcGVuID8gJ3ZhcigtLW1haW4tY29sb3IpJyA6ICd2YXIoLS1jb21wb25lbnQtY29sb3IpJ31cIlxuICAgICAgPjwvYmlpdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJkcm9wZG93bi1sYWJlbFwiXG4gICAgICAgICBjbGFzcz1cImlucHV0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgIFtjbGFzcy5jb21wYWN0XT1cImRyb3Bkb3duT3BlbiB8fCBjdXJyZW50VmFsdWVcIj5cbiAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8YSAqbmdJZj1cImlzUmVxdWlyZWRcIlxuICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImN1cnJlbnRWYWx1ZSA/IG51bGwgOiAncmVkJ1wiPio8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvdHRvbS1saW5lXCJcbiAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICA+PC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGJ1dHRvbiBiaWl0LWljb25cbiAgICAgICAgKm5nSWY9XCJpY29uXCJcbiAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgIChjbGljayk9XCIhZHJvcGRvd25PcGVuID8gb3BlbkRyb3Bkb3duKCkgOiBjbG9zZURyb3Bkb3duKClcIlxuICAgICAgICBbY2hlY2tlZF09XCJkcm9wZG93bk9wZW5cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4+PC9idXR0b24+XG48ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDA7IHdpZHRoOiAxMDAlXCI+XG4gIDxkaXYgI2Ryb3Bkb3duIGlkPVwiZHJvcGRvd25cIlxuICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICBbc3R5bGUub3ZlcmZsb3ddPVwiZHJvcGRvd25PcGVuID8gdW5kZWZpbmVkIDogJ2hpZGRlbidcIlxuICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbGlzdFwiXG4gICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd24tbGFiZWxcIlxuICAgICAgIFtjbGFzcy5kcm9wZG93bi1vcGVuXT1cImRyb3Bkb3duT3BlblwiXG4gICAgICAgW2NsYXNzLmNvbXBhY3RdPVwiaXNDb21wYWN0XCJcbiAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlib2FyZEV2ZW50cygkZXZlbnQpXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YTsgaW5kZXggYXMgaVwiXG4gICAgICAoY2xpY2spPVwib25Nb2RlbENoYW5nZShpdGVtKVwiXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiY3VycmVudFZhbHVlID09PSBpdGVtXCJcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXG4gICAgICBbaWRdPVwiaVwiXG4gICAgICBbdGFiaW5kZXhdPVwiIWRyb3Bkb3duT3BlbiB8fCBpc0Rpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhZHJvcGRvd25PcGVuIHx8IGlzRGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxkaXYgaWQ9XCJjb250ZW50XCI+XG4gICAgICAgIDxhPnt7IGxhYmVsID8gIGl0ZW1bbGFiZWxdIDogaXRlbSB9fTwvYT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXNjcmlwdGlvbkxhYmVsICYmIGl0ZW1bZGVzY3JpcHRpb25MYWJlbF1cIiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgaXRlbVtkZXNjcmlwdGlvbkxhYmVsXSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCIhZmlsdGVyZWREYXRhLmxlbmd0aFwiXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gbm8tcmVzdWx0c1wiXG4gICAgICAgICAgICBkaXNhYmxlZFxuICAgID5cbiAgICAgIDxhPk5vIHJlc3VsdHMgZm91bmQ8L2E+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -85,7 +85,7 @@ BiitInputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
85
85
|
provide: TRANSLOCO_SCOPE,
|
|
86
86
|
useValue: { scope: 'wizardry-theme/inputs', alias: "inputs" }
|
|
87
87
|
}
|
|
88
|
-
], ngImport: i0, template: "<div class=\"biit-input\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" *transloco=\"let t\">\n <div class=\"input-container\">\n <biit-tooltip-icon *ngIf=\"info\"\n class=\"tooltip-icon\"\n [text]=\"info\"></biit-tooltip-icon>\n <input\n class=\"input-object\"\n (keydown)=\"checkValue($event)\"\n [(ngModel)]=\"value\"\n (input)=\"value\"\n (ngModelChange)=\"onChange($event); validateInput();\"\n (keydown.enter)=\"onActionPerformed.emit(value)\"\n [type]=\"reveal ? Type.TEXT : type\" required\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minLength\"\n [maxlength]=\"maxLength ? maxLength : 100\"\n [attr.name]=\"fieldName\"\n [class.error]=\"error || regExError || minLengthError\"\n [class.reveal]=\"reveal\"\n >\n <div *ngIf=\"type === Type.PASSWORD || icon\" class=\"input-show-icon-container\"\n (click)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n (keydown.enter)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n tabindex=\"0\">\n <biit-icon [name]=\"type === Type.PASSWORD ? 'show' : icon\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: reveal ? '
|
|
88
|
+
], ngImport: i0, template: "<div class=\"biit-input\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" *transloco=\"let t\">\n <div class=\"input-container\">\n <biit-tooltip-icon *ngIf=\"info\"\n class=\"tooltip-icon\"\n [text]=\"info\"></biit-tooltip-icon>\n <input\n class=\"input-object\"\n (keydown)=\"checkValue($event)\"\n [(ngModel)]=\"value\"\n (input)=\"value\"\n (ngModelChange)=\"onChange($event); validateInput();\"\n (keydown.enter)=\"onActionPerformed.emit(value)\"\n [type]=\"reveal ? Type.TEXT : type\" required\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minLength\"\n [maxlength]=\"maxLength ? maxLength : 100\"\n [attr.name]=\"fieldName\"\n [class.error]=\"error || regExError || minLengthError\"\n [class.reveal]=\"reveal\"\n >\n <div *ngIf=\"type === Type.PASSWORD || icon\" class=\"input-show-icon-container\"\n (click)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n (keydown.enter)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n tabindex=\"0\">\n <biit-icon [name]=\"type === Type.PASSWORD ? 'show' : icon\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: reveal ? 'var(--main-color)' : 'var(--component-color)'}\"\n ></biit-icon>\n </div>\n <div class=\"input-placeholder\" [class.input-filled]=\"this.value?.toString().length\">\n {{ _placeholder }}\n <a *ngIf=\"required\"\n [style.color]=\"value ? null : 'red'\">*</a>\n </div>\n <biit-icon *ngIf=\"error || regExError || minLengthError\" id=\"exclamation\" name=\"exclamation\"\n class=\"input-error-icon\" [pathStyle]=\"{fill:'#A1093F'}\"></biit-icon>\n <div class=\"bottom-line\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n ></div>\n <div *ngIf=\"error\" class=\"input-error-msg\" id=\"error-message\">\n <a id=\"message\">\n {{ error }}\n </a>\n </div>\n <div *ngIf=\"regExError && !error\" id=\"regex-error-message\" class=\"input-error-msg\">\n <a id=\"regex-message\">\n {{ t('inputs.regex-error') }}\n </a>\n </div>\n <div *ngIf=\"minLengthError && !error && !regExError\" id=\"length-error-message\" class=\"input-error-msg\">\n <a id=\"length-message\">\n {{ t('inputs.minlength-error') }}\n </a>\n </div>\n <span *ngIf=\"description\" id=\"description\" class=\"input-description\">\n {{ description }}\n </span>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box}.biit-input{display:flex;min-width:12.8em}.biit-input.disabled{pointer-events:none}.biit-input.disabled .input-object{background:var(--main-background);color:var(--secondary-color)}.biit-input.readonly .input-object{color:var(--secondary-color)}.input-container{position:relative;width:100%}.input-object{font-size:1em;display:block;border:none;color:var(--component-color);padding:.7em;height:2.1em;width:100%;min-width:2.1em;font-weight:400}.input-object:focus{outline:none;background:var(--main-background)}.input-object:hover{background:var(--main-background)}.input-object.error{color:var(--error-color);border-color:var(--error-color)}.input-object.password{padding:.7em 2.1em .55em .7em}.input-object.password.reveal{-webkit-text-security:none;input-security:none}.input-placeholder{color:var(--component-color);font-size:1em;font-weight:bolder;text-transform:uppercase;position:absolute;pointer-events:none;left:.7em;top:.42em;height:.7em;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.input-object:focus~.input-placeholder,.input-object:-webkit-autofill~.input-placeholder,.input-filled{top:-.95em;font-size:.7em;line-height:.7em;font-weight:400;color:var(--secondary-color)}.input-error-icon{display:flex;top:.7em;position:absolute;width:.7em;height:.7em}.input-error-msg{position:absolute;display:flex;align-items:center;font-size:.75em;color:var(--error-color);padding-top:.2em;min-height:1.05em;line-height:120%}.input-error-msg a{display:block;line-height:1.1em}.input-show-icon{width:1.05em;height:1.05em}.input-show-icon-container{top:0;right:0;position:absolute;width:2.1em;height:2.1em;align-content:center;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.input-show-icon-container:hover,.input-show-icon-container:focus,.input-show-icon-container:focus-visible{background-color:var(--main-background);border:none;outline:none}.input-description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:1.4em;min-height:1.05em;line-height:120%;font-style:italic}.input-description a{display:block;line-height:1.1em}.bottom-line{position:relative;top:-3px;margin-bottom:-3px;width:auto;height:3px;background:var(--component-color)}.bottom-line.disabled,.bottom-line.readonly{background:var(--secondary-color)}.tooltip-icon{position:absolute;top:-.5em;left:-.5em}@media (max-width: 550px){.popup-canvas{min-width:0}.login-container{flex-direction:column-reverse;gap:2rem}}input[type=password]::-webkit-contacts-auto-fill-button,input[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;height:0;width:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BiitIconComponent, selector: "biit-icon", inputs: ["name", "svgStyle", "pathStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.BiitTooltipIconComponent, selector: "biit-tooltip-icon", inputs: ["text", "inline"] }] });
|
|
89
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitInputTextComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ selector: 'biit-input-text', providers: [
|
|
@@ -98,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
98
98
|
provide: TRANSLOCO_SCOPE,
|
|
99
99
|
useValue: { scope: 'wizardry-theme/inputs', alias: "inputs" }
|
|
100
100
|
}
|
|
101
|
-
], template: "<div class=\"biit-input\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" *transloco=\"let t\">\n <div class=\"input-container\">\n <biit-tooltip-icon *ngIf=\"info\"\n class=\"tooltip-icon\"\n [text]=\"info\"></biit-tooltip-icon>\n <input\n class=\"input-object\"\n (keydown)=\"checkValue($event)\"\n [(ngModel)]=\"value\"\n (input)=\"value\"\n (ngModelChange)=\"onChange($event); validateInput();\"\n (keydown.enter)=\"onActionPerformed.emit(value)\"\n [type]=\"reveal ? Type.TEXT : type\" required\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minLength\"\n [maxlength]=\"maxLength ? maxLength : 100\"\n [attr.name]=\"fieldName\"\n [class.error]=\"error || regExError || minLengthError\"\n [class.reveal]=\"reveal\"\n >\n <div *ngIf=\"type === Type.PASSWORD || icon\" class=\"input-show-icon-container\"\n (click)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n (keydown.enter)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n tabindex=\"0\">\n <biit-icon [name]=\"type === Type.PASSWORD ? 'show' : icon\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: reveal ? '
|
|
101
|
+
], template: "<div class=\"biit-input\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" *transloco=\"let t\">\n <div class=\"input-container\">\n <biit-tooltip-icon *ngIf=\"info\"\n class=\"tooltip-icon\"\n [text]=\"info\"></biit-tooltip-icon>\n <input\n class=\"input-object\"\n (keydown)=\"checkValue($event)\"\n [(ngModel)]=\"value\"\n (input)=\"value\"\n (ngModelChange)=\"onChange($event); validateInput();\"\n (keydown.enter)=\"onActionPerformed.emit(value)\"\n [type]=\"reveal ? Type.TEXT : type\" required\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minLength\"\n [maxlength]=\"maxLength ? maxLength : 100\"\n [attr.name]=\"fieldName\"\n [class.error]=\"error || regExError || minLengthError\"\n [class.reveal]=\"reveal\"\n >\n <div *ngIf=\"type === Type.PASSWORD || icon\" class=\"input-show-icon-container\"\n (click)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n (keydown.enter)=\"reveal = (type === Type.PASSWORD ? !reveal : false); onActionPerformed.emit(value)\"\n tabindex=\"0\">\n <biit-icon [name]=\"type === Type.PASSWORD ? 'show' : icon\"\n class=\"input-show-icon\"\n [pathStyle]=\"{fill: reveal ? 'var(--main-color)' : 'var(--component-color)'}\"\n ></biit-icon>\n </div>\n <div class=\"input-placeholder\" [class.input-filled]=\"this.value?.toString().length\">\n {{ _placeholder }}\n <a *ngIf=\"required\"\n [style.color]=\"value ? null : 'red'\">*</a>\n </div>\n <biit-icon *ngIf=\"error || regExError || minLengthError\" id=\"exclamation\" name=\"exclamation\"\n class=\"input-error-icon\" [pathStyle]=\"{fill:'#A1093F'}\"></biit-icon>\n <div class=\"bottom-line\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n ></div>\n <div *ngIf=\"error\" class=\"input-error-msg\" id=\"error-message\">\n <a id=\"message\">\n {{ error }}\n </a>\n </div>\n <div *ngIf=\"regExError && !error\" id=\"regex-error-message\" class=\"input-error-msg\">\n <a id=\"regex-message\">\n {{ t('inputs.regex-error') }}\n </a>\n </div>\n <div *ngIf=\"minLengthError && !error && !regExError\" id=\"length-error-message\" class=\"input-error-msg\">\n <a id=\"length-message\">\n {{ t('inputs.minlength-error') }}\n </a>\n </div>\n <span *ngIf=\"description\" id=\"description\" class=\"input-description\">\n {{ description }}\n </span>\n </div>\n</div>\n", styles: ["*{box-sizing:border-box}.biit-input{display:flex;min-width:12.8em}.biit-input.disabled{pointer-events:none}.biit-input.disabled .input-object{background:var(--main-background);color:var(--secondary-color)}.biit-input.readonly .input-object{color:var(--secondary-color)}.input-container{position:relative;width:100%}.input-object{font-size:1em;display:block;border:none;color:var(--component-color);padding:.7em;height:2.1em;width:100%;min-width:2.1em;font-weight:400}.input-object:focus{outline:none;background:var(--main-background)}.input-object:hover{background:var(--main-background)}.input-object.error{color:var(--error-color);border-color:var(--error-color)}.input-object.password{padding:.7em 2.1em .55em .7em}.input-object.password.reveal{-webkit-text-security:none;input-security:none}.input-placeholder{color:var(--component-color);font-size:1em;font-weight:bolder;text-transform:uppercase;position:absolute;pointer-events:none;left:.7em;top:.42em;height:.7em;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.input-object:focus~.input-placeholder,.input-object:-webkit-autofill~.input-placeholder,.input-filled{top:-.95em;font-size:.7em;line-height:.7em;font-weight:400;color:var(--secondary-color)}.input-error-icon{display:flex;top:.7em;position:absolute;width:.7em;height:.7em}.input-error-msg{position:absolute;display:flex;align-items:center;font-size:.75em;color:var(--error-color);padding-top:.2em;min-height:1.05em;line-height:120%}.input-error-msg a{display:block;line-height:1.1em}.input-show-icon{width:1.05em;height:1.05em}.input-show-icon-container{top:0;right:0;position:absolute;width:2.1em;height:2.1em;align-content:center;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.input-show-icon-container:hover,.input-show-icon-container:focus,.input-show-icon-container:focus-visible{background-color:var(--main-background);border:none;outline:none}.input-description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:1.4em;min-height:1.05em;line-height:120%;font-style:italic}.input-description a{display:block;line-height:1.1em}.bottom-line{position:relative;top:-3px;margin-bottom:-3px;width:auto;height:3px;background:var(--component-color)}.bottom-line.disabled,.bottom-line.readonly{background:var(--secondary-color)}.tooltip-icon{position:absolute;top:-.5em;left:-.5em}@media (max-width: 550px){.popup-canvas{min-width:0}.login-container{flex-direction:column-reverse;gap:2rem}}input[type=password]::-webkit-contacts-auto-fill-button,input[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;height:0;width:0;margin:0}\n"] }]
|
|
102
102
|
}], propDecorators: { placeholder: [{
|
|
103
103
|
type: Input
|
|
104
104
|
}], error: [{
|
|
@@ -139,4 +139,4 @@ export var Type;
|
|
|
139
139
|
Type["EMAIL"] = "EMAIL";
|
|
140
140
|
Type["PASSWORD"] = "PASSWORD";
|
|
141
141
|
})(Type || (Type = {}));
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemFyZHJ5LXRoZW1lL2lucHV0cy9zcmMvYmlpdC1pbnB1dC10ZXh0L2JpaXQtaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtaW5wdXQtdGV4dC9iaWl0LWlucHV0LXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFrQjVELE1BQU0sT0FBTyxzQkFBc0I7SUFoQm5DO1FBcUJZLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBZWxCLHNCQUFpQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRS9FLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFeEIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUNULFNBQUksR0FBRyxJQUFJLENBQUM7UUEwQi9CLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzFCLFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FtQ3BCO0lBdEZDLElBQWEsV0FBVyxDQUFDLFdBQW1CO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUF3QkQs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bXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIENoYW5nZURldGVjdG9yUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7YmlpdEljb259IGZyb20gJ0BiaWl0LXNvbHV0aW9ucy9iaWl0LWljb25zLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHtUUkFOU0xPQ09fU0NPUEV9IGZyb20gXCJAbmduZWF0L3RyYW5zbG9jb1wiO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlpdC1pbnB1dC10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpaXQtaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JpaXQtaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJpaXRJbnB1dFRleHRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRSQU5TTE9DT19TQ09QRSxcbiAgICAgIHVzZVZhbHVlOiB7c2NvcGU6ICd3aXphcmRyeS10aGVtZS9pbnB1dHMnLCBhbGlhczogXCJpbnB1dHNcIn1cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdElucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgfVxuICBwcm90ZWN0ZWQgX3BsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZm86IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogVHlwZTtcbiAgQElucHV0KCkgaWNvbjogYmlpdEljb247XG4gIEBJbnB1dCgpIGZpZWxkTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZDtcbiAgQElucHV0KCkgcmVxdWlyZWQ7XG4gIEBJbnB1dCgpIHJlYWRvbmx5O1xuICBASW5wdXQoKSBtaW46IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgcmVnRXg6IFJlZ0V4cDtcbiAgQE91dHB1dCgpIG9uQWN0aW9uUGVyZm9ybWVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHJldmVhbDogYm9vbGVhbiA9IGZhbHNlO1xuICB2YWx1ZTogc3RyaW5nO1xuICBtaW5MZW5ndGhFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWdFeEVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBUeXBlID0gVHlwZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMucmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5yZXF1aXJlZCk7XG4gICAgdGhpcy5yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlYWRvbmx5KTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT0gVHlwZS5FTUFJTCkge1xuICAgICAgdGhpcy5yZWdFeCA9IG5ldyBSZWdFeHAoXCIoPzpbYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFxcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSp8XFxcIig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxXFx4MjMtXFx4NWJcXHg1ZC1cXHg3Zl18XFxcXFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGUtXFx4N2ZdKSpcXFwiKUAoPzooPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XFxcXC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT98XFxcXFsoPzooPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFxcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/fFthLXowLTktXSpbYS16MC05XTooPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMS1cXHg1YVxceDUzLVxceDdmXXxcXFxcXFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKylcXFxcXSlcIik7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5yZWdFeCkge1xuICAgICAgICB0aGlzLnJlZ0V4RXJyb3IgPSAhdGhpcy5yZWdFeC50ZXN0KHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubWluTGVuZ3RoRXJyb3IgPSB0aGlzLnZhbHVlLmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZ0V4RXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMubWluTGVuZ3RoRXJyb3IgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuICBvblRvdWNoID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrVmFsdWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBUeXBlLk5VTUJFUikge1xuICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgIGNvbnN0IGN1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ID8/IDA7XG4gICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xuXG4gICAgICAvLyBBbGxvdyBkaWdpdHMgYW5kIGNvbnRyb2wga2V5c1xuICAgICAgaWYgKC9bMC05XS8udGVzdChldmVudC5rZXkpIHx8IFsnQmFja3NwYWNlJywgJ1RhYicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdEZWxldGUnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIEFsbG93ICctJyBvbmx5IGF0IHRoZSBzdGFydCBhbmQgaWYgbm90IGFscmVhZHkgcHJlc2VudFxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJy0nICYmIGN1cnNvclBvcyA9PT0gMCAmJiAhdmFsdWUuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIEFsbG93ICcuJyBvciAnLCcgb25seSBpZiBuZWl0aGVyIGlzIHByZXNlbnRcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnLicgfHwgZXZlbnQua2V5ID09PSAnLCcpICYmICF2YWx1ZS5pbmNsdWRlcygnLicpICYmICF2YWx1ZS5pbmNsdWRlcygnLCcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBlbnVtIFR5cGUge1xuICBURVhUID0gJ1RFWFQnLFxuICBOVU1CRVIgPSAnTlVNQkVSJyxcbiAgRU1BSUwgPSAnRU1BSUwnLFxuICBQQVNTV09SRCA9ICdQQVNTV09SRCdcbn1cbiIsIjxkaXYgY2xhc3M9XCJiaWl0LWlucHV0XCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICA8YmlpdC10b29sdGlwLWljb24gKm5nSWY9XCJpbmZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJpbmZvXCI+PC9iaWl0LXRvb2x0aXAtaWNvbj5cbiAgICA8aW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1vYmplY3RcIlxuICAgICAgICAgICAoa2V5ZG93bik9XCJjaGVja1ZhbHVlKCRldmVudClcIlxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgKGlucHV0KT1cInZhbHVlXCJcbiAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KTsgdmFsaWRhdGVJbnB1dCgpO1wiXG4gICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWN0aW9uUGVyZm9ybWVkLmVtaXQodmFsdWUpXCJcbiAgICAgICAgICAgW3R5cGVdPVwicmV2ZWFsID8gVHlwZS5URVhUIDogdHlwZVwiIHJlcXVpcmVkXG4gICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICBbbWlubGVuZ3RoXT1cIm1pbkxlbmd0aFwiXG4gICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogMTAwXCJcbiAgICAgICAgICAgW2F0dHIubmFtZV09XCJmaWVsZE5hbWVcIlxuICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3IgfHwgcmVnRXhFcnJvciB8fCBtaW5MZW5ndGhFcnJvclwiXG4gICAgICAgICAgIFtjbGFzcy5yZXZlYWxdPVwicmV2ZWFsXCJcbiAgICA+XG4gICAgPGRpdiAqbmdJZj1cInR5cGUgPT09IFR5cGUuUEFTU1dPUkQgfHwgaWNvblwiIGNsYXNzPVwiaW5wdXQtc2hvdy1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAoY2xpY2spPVwicmV2ZWFsID0gKHR5cGUgPT09IFR5cGUuUEFTU1dPUkQgPyAhcmV2ZWFsIDogZmFsc2UpOyBvbkFjdGlvblBlcmZvcm1lZC5lbWl0KHZhbHVlKVwiXG4gICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZXZlYWwgPSAodHlwZSA9PT0gVHlwZS5QQVNTV09SRCA/ICFyZXZlYWwgOiBmYWxzZSk7IG9uQWN0aW9uUGVyZm9ybWVkLmVtaXQodmFsdWUpXCJcbiAgICAgICAgIHRhYmluZGV4PVwiMFwiPlxuICAgICAgPGJpaXQtaWNvbiBbbmFtZV09XCJ0eXBlID09PSBUeXBlLlBBU1NXT1JEID8gJ3Nob3cnIDogaWNvblwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtc2hvdy1pY29uXCJcbiAgICAgICAgICAgICAgICAgW3BhdGhTdHlsZV09XCJ7ZmlsbDogcmV2ZWFsID8gJyNGMjBENUUnIDogJyMyNjI2MjYnfVwiXG4gICAgICA+PC9iaWl0LWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXBsYWNlaG9sZGVyXCIgW2NsYXNzLmlucHV0LWZpbGxlZF09XCJ0aGlzLnZhbHVlPy50b1N0cmluZygpLmxlbmd0aFwiPlxuICAgICAge3sgX3BsYWNlaG9sZGVyIH19XG4gICAgICA8YSAqbmdJZj1cInJlcXVpcmVkXCJcbiAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJ2YWx1ZSA/IG51bGwgOiAncmVkJ1wiPio8L2E+XG4gICAgPC9kaXY+XG4gICAgPGJpaXQtaWNvbiAqbmdJZj1cImVycm9yIHx8IHJlZ0V4RXJyb3IgfHwgbWluTGVuZ3RoRXJyb3JcIiBpZD1cImV4Y2xhbWF0aW9uXCIgbmFtZT1cImV4Y2xhbWF0aW9uXCJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZXJyb3ItaWNvblwiIFtwYXRoU3R5bGVdPVwie2ZpbGw6JyNBMTA5M0YnfVwiPjwvYmlpdC1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbGluZVwiXG4gICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJpbnB1dC1lcnJvci1tc2dcIiBpZD1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICAgIDxhIGlkPVwibWVzc2FnZVwiPlxuICAgICAgICB7eyBlcnJvciB9fVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJyZWdFeEVycm9yICYmICFlcnJvclwiIGlkPVwicmVnZXgtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiaW5wdXQtZXJyb3ItbXNnXCI+XG4gICAgICA8YSBpZD1cInJlZ2V4LW1lc3NhZ2VcIj5cbiAgICAgICAge3sgdCgnaW5wdXRzLnJlZ2V4LWVycm9yJykgfX1cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWluTGVuZ3RoRXJyb3IgJiYgIWVycm9yICYmICFyZWdFeEVycm9yXCIgaWQ9XCJsZW5ndGgtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiaW5wdXQtZXJyb3ItbXNnXCI+XG4gICAgICA8YSBpZD1cImxlbmd0aC1tZXNzYWdlXCI+XG4gICAgICAgIHt7IHQoJ2lucHV0cy5taW5sZW5ndGgtZXJyb3InKSB9fVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBpZD1cImRlc2NyaXB0aW9uXCIgY2xhc3M9XCJpbnB1dC1kZXNjcmlwdGlvblwiPlxuICAgICAge3sgZGVzY3JpcHRpb24gfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemFyZHJ5LXRoZW1lL2lucHV0cy9zcmMvYmlpdC1pbnB1dC10ZXh0L2JpaXQtaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtaW5wdXQtdGV4dC9iaWl0LWlucHV0LXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFrQjVELE1BQU0sT0FBTyxzQkFBc0I7SUFoQm5DO1FBcUJZLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBZWxCLHNCQUFpQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRS9FLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFeEIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUNULFNBQUksR0FBRyxJQUFJLENBQUM7UUEwQi9CLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzFCLFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FtQ3BCO0lBdEZDLElBQWEsV0FBVyxDQUFDLFdBQW1CO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUF3QkQs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bXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIENoYW5nZURldGVjdG9yUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7YmlpdEljb259IGZyb20gJ0BiaWl0LXNvbHV0aW9ucy9iaWl0LWljb25zLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHtUUkFOU0xPQ09fU0NPUEV9IGZyb20gXCJAbmduZWF0L3RyYW5zbG9jb1wiO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlpdC1pbnB1dC10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpaXQtaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JpaXQtaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJpaXRJbnB1dFRleHRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRSQU5TTE9DT19TQ09QRSxcbiAgICAgIHVzZVZhbHVlOiB7c2NvcGU6ICd3aXphcmRyeS10aGVtZS9pbnB1dHMnLCBhbGlhczogXCJpbnB1dHNcIn1cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdElucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgfVxuICBwcm90ZWN0ZWQgX3BsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZm86IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogVHlwZTtcbiAgQElucHV0KCkgaWNvbjogYmlpdEljb247XG4gIEBJbnB1dCgpIGZpZWxkTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZDtcbiAgQElucHV0KCkgcmVxdWlyZWQ7XG4gIEBJbnB1dCgpIHJlYWRvbmx5O1xuICBASW5wdXQoKSBtaW46IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgcmVnRXg6IFJlZ0V4cDtcbiAgQE91dHB1dCgpIG9uQWN0aW9uUGVyZm9ybWVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHJldmVhbDogYm9vbGVhbiA9IGZhbHNlO1xuICB2YWx1ZTogc3RyaW5nO1xuICBtaW5MZW5ndGhFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWdFeEVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBUeXBlID0gVHlwZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMucmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5yZXF1aXJlZCk7XG4gICAgdGhpcy5yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlYWRvbmx5KTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT0gVHlwZS5FTUFJTCkge1xuICAgICAgdGhpcy5yZWdFeCA9IG5ldyBSZWdFeHAoXCIoPzpbYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFxcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSp8XFxcIig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxXFx4MjMtXFx4NWJcXHg1ZC1cXHg3Zl18XFxcXFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGUtXFx4N2ZdKSpcXFwiKUAoPzooPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XFxcXC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT98XFxcXFsoPzooPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFxcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/fFthLXowLTktXSpbYS16MC05XTooPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMS1cXHg1YVxceDUzLVxceDdmXXxcXFxcXFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKylcXFxcXSlcIik7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5yZWdFeCkge1xuICAgICAgICB0aGlzLnJlZ0V4RXJyb3IgPSAhdGhpcy5yZWdFeC50ZXN0KHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubWluTGVuZ3RoRXJyb3IgPSB0aGlzLnZhbHVlLmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZ0V4RXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMubWluTGVuZ3RoRXJyb3IgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuICBvblRvdWNoID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrVmFsdWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBUeXBlLk5VTUJFUikge1xuICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgIGNvbnN0IGN1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ID8/IDA7XG4gICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xuXG4gICAgICAvLyBBbGxvdyBkaWdpdHMgYW5kIGNvbnRyb2wga2V5c1xuICAgICAgaWYgKC9bMC05XS8udGVzdChldmVudC5rZXkpIHx8IFsnQmFja3NwYWNlJywgJ1RhYicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdEZWxldGUnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIEFsbG93ICctJyBvbmx5IGF0IHRoZSBzdGFydCBhbmQgaWYgbm90IGFscmVhZHkgcHJlc2VudFxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJy0nICYmIGN1cnNvclBvcyA9PT0gMCAmJiAhdmFsdWUuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIEFsbG93ICcuJyBvciAnLCcgb25seSBpZiBuZWl0aGVyIGlzIHByZXNlbnRcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnLicgfHwgZXZlbnQua2V5ID09PSAnLCcpICYmICF2YWx1ZS5pbmNsdWRlcygnLicpICYmICF2YWx1ZS5pbmNsdWRlcygnLCcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBlbnVtIFR5cGUge1xuICBURVhUID0gJ1RFWFQnLFxuICBOVU1CRVIgPSAnTlVNQkVSJyxcbiAgRU1BSUwgPSAnRU1BSUwnLFxuICBQQVNTV09SRCA9ICdQQVNTV09SRCdcbn1cbiIsIjxkaXYgY2xhc3M9XCJiaWl0LWlucHV0XCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICA8YmlpdC10b29sdGlwLWljb24gKm5nSWY9XCJpbmZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJpbmZvXCI+PC9iaWl0LXRvb2x0aXAtaWNvbj5cbiAgICA8aW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1vYmplY3RcIlxuICAgICAgICAgICAoa2V5ZG93bik9XCJjaGVja1ZhbHVlKCRldmVudClcIlxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgKGlucHV0KT1cInZhbHVlXCJcbiAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KTsgdmFsaWRhdGVJbnB1dCgpO1wiXG4gICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWN0aW9uUGVyZm9ybWVkLmVtaXQodmFsdWUpXCJcbiAgICAgICAgICAgW3R5cGVdPVwicmV2ZWFsID8gVHlwZS5URVhUIDogdHlwZVwiIHJlcXVpcmVkXG4gICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICBbbWlubGVuZ3RoXT1cIm1pbkxlbmd0aFwiXG4gICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoID8gbWF4TGVuZ3RoIDogMTAwXCJcbiAgICAgICAgICAgW2F0dHIubmFtZV09XCJmaWVsZE5hbWVcIlxuICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3IgfHwgcmVnRXhFcnJvciB8fCBtaW5MZW5ndGhFcnJvclwiXG4gICAgICAgICAgIFtjbGFzcy5yZXZlYWxdPVwicmV2ZWFsXCJcbiAgICA+XG4gICAgPGRpdiAqbmdJZj1cInR5cGUgPT09IFR5cGUuUEFTU1dPUkQgfHwgaWNvblwiIGNsYXNzPVwiaW5wdXQtc2hvdy1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAoY2xpY2spPVwicmV2ZWFsID0gKHR5cGUgPT09IFR5cGUuUEFTU1dPUkQgPyAhcmV2ZWFsIDogZmFsc2UpOyBvbkFjdGlvblBlcmZvcm1lZC5lbWl0KHZhbHVlKVwiXG4gICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyZXZlYWwgPSAodHlwZSA9PT0gVHlwZS5QQVNTV09SRCA/ICFyZXZlYWwgOiBmYWxzZSk7IG9uQWN0aW9uUGVyZm9ybWVkLmVtaXQodmFsdWUpXCJcbiAgICAgICAgIHRhYmluZGV4PVwiMFwiPlxuICAgICAgPGJpaXQtaWNvbiBbbmFtZV09XCJ0eXBlID09PSBUeXBlLlBBU1NXT1JEID8gJ3Nob3cnIDogaWNvblwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtc2hvdy1pY29uXCJcbiAgICAgICAgICAgICAgICAgW3BhdGhTdHlsZV09XCJ7ZmlsbDogcmV2ZWFsID8gJ3ZhcigtLW1haW4tY29sb3IpJyA6ICd2YXIoLS1jb21wb25lbnQtY29sb3IpJ31cIlxuICAgICAgPjwvYmlpdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1wbGFjZWhvbGRlclwiIFtjbGFzcy5pbnB1dC1maWxsZWRdPVwidGhpcy52YWx1ZT8udG9TdHJpbmcoKS5sZW5ndGhcIj5cbiAgICAgIHt7IF9wbGFjZWhvbGRlciB9fVxuICAgICAgPGEgKm5nSWY9XCJyZXF1aXJlZFwiXG4gICAgICAgICBbc3R5bGUuY29sb3JdPVwidmFsdWUgPyBudWxsIDogJ3JlZCdcIj4qPC9hPlxuICAgIDwvZGl2PlxuICAgIDxiaWl0LWljb24gKm5nSWY9XCJlcnJvciB8fCByZWdFeEVycm9yIHx8IG1pbkxlbmd0aEVycm9yXCIgaWQ9XCJleGNsYW1hdGlvblwiIG5hbWU9XCJleGNsYW1hdGlvblwiXG4gICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWVycm9yLWljb25cIiBbcGF0aFN0eWxlXT1cIntmaWxsOicjQTEwOTNGJ31cIj48L2JpaXQtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWxpbmVcIlxuICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiaW5wdXQtZXJyb3ItbXNnXCIgaWQ9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgICA8YSBpZD1cIm1lc3NhZ2VcIj5cbiAgICAgICAge3sgZXJyb3IgfX1cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicmVnRXhFcnJvciAmJiAhZXJyb3JcIiBpZD1cInJlZ2V4LWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImlucHV0LWVycm9yLW1zZ1wiPlxuICAgICAgPGEgaWQ9XCJyZWdleC1tZXNzYWdlXCI+XG4gICAgICAgIHt7IHQoJ2lucHV0cy5yZWdleC1lcnJvcicpIH19XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1pbkxlbmd0aEVycm9yICYmICFlcnJvciAmJiAhcmVnRXhFcnJvclwiIGlkPVwibGVuZ3RoLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImlucHV0LWVycm9yLW1zZ1wiPlxuICAgICAgPGEgaWQ9XCJsZW5ndGgtbWVzc2FnZVwiPlxuICAgICAgICB7eyB0KCdpbnB1dHMubWlubGVuZ3RoLWVycm9yJykgfX1cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cImRlc2NyaXB0aW9uXCIgaWQ9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiaW5wdXQtZGVzY3JpcHRpb25cIj5cbiAgICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|