aril 1.0.56 → 1.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +2 -2
- package/esm2022/ui/selectBox/src/select-box.component.mjs +3 -3
- package/esm2022/ui/table/src/interfaces.mjs +1 -1
- package/esm2022/ui/table/src/table.component.mjs +4 -3
- package/fesm2022/aril-theme-layout.mjs +1 -1
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-selectBox.mjs +2 -2
- package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +3 -2
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/package.json +113 -113
- package/ui/selectBox/src/select-box.component.d.ts +1 -1
- package/ui/table/src/interfaces.d.ts +1 -0
|
@@ -177,7 +177,7 @@ export class EditProfileModalComponent {
|
|
|
177
177
|
this.levelPairs = [];
|
|
178
178
|
}
|
|
179
179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditProfileModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DynamicDialogRef }, { token: i3.MessageService }, { token: i4.ProfileService }, { token: i2.DynamicDialogConfig }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditProfileModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'∘∘∘∘∘∘∘∘∘∘'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TreeSelectModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "component", type: MaskComponent, selector: "aril-mask[ngModel], aril-mask[formControl], aril-mask[formControlName]", inputs: ["mask", "slotChar", "placeholder", "maxlength", "usageInGrid", "tabindex"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "component", type: CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: PasswordComponent, selector: "aril-password[ngModel], aril-password[formControl], aril-password[formControlName]", inputs: ["feedback", "passwordCriterias", "placeholder", "tabindex"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "component", type: TreeSelectComponent, selector: "aril-treeSelect", inputs: ["options", "modelValue", "placeholder", "selectionMode", "display", "showClear", "filter", "filterPlaceholder", "propagateSelectionUp", "propagateSelectionDown", "metaKeySelection", "formControlName"], outputs: ["modelValueChange", "nodeSelect", "nodeUnselect", "cleared"] }] }); }
|
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditProfileModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'∘∘∘∘∘∘∘∘∘∘'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TreeSelectModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "component", type: MaskComponent, selector: "aril-mask[ngModel], aril-mask[formControl], aril-mask[formControlName]", inputs: ["mask", "slotChar", "placeholder", "maxlength", "usageInGrid", "tabindex"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "component", type: CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: PasswordComponent, selector: "aril-password[ngModel], aril-password[formControl], aril-password[formControlName]", inputs: ["feedback", "passwordCriterias", "placeholder", "tabindex"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "component", type: TreeSelectComponent, selector: "aril-treeSelect", inputs: ["options", "modelValue", "placeholder", "selectionMode", "display", "showClear", "filter", "filterPlaceholder", "propagateSelectionUp", "propagateSelectionDown", "metaKeySelection", "formControlName"], outputs: ["modelValueChange", "nodeSelect", "nodeUnselect", "cleared"] }] }); }
|
|
181
181
|
}
|
|
182
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditProfileModalComponent, decorators: [{
|
|
183
183
|
type: Component,
|
|
@@ -199,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
199
199
|
TreeSelectComponent
|
|
200
200
|
], template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'∘∘∘∘∘∘∘∘∘∘'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n" }]
|
|
201
201
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DynamicDialogRef }, { type: i3.MessageService }, { type: i4.ProfileService }, { type: i2.DynamicDialogConfig }, { type: i5.TranslocoService }] });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wcm9maWxlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9wcm9maWxlU2lkZWJhci9tb2RhbHMvZWRpdC1wcm9maWxlLW1vZGFsL2VkaXQtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvcHJvZmlsZVNpZGViYXIvbW9kYWxzL2VkaXQtcHJvZmlsZS1tb2RhbC9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQWUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUluSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxF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Q0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoSCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQTFNVyx5QkFBeUI7a0dBQXpCLHlCQUF5Qix3RUMvQ3RDLDAwSEF1RUEsMkNEMUNFLFlBQVksOEJBQ1osV0FBVyxrU0FDWCxjQUFjLGlTQUNkLGVBQWUsZ09BQ2YsZ0JBQWdCLDhCQUNoQixtQkFBbUIsZ1ZBQ25CLGFBQWEsbUxBQ2IsYUFBYSx3TUFDYixjQUFjLGlLQUNkLGVBQWUsZ01BQ2YsaUJBQWlCLHVNQUNqQixpQkFBaUIsOEpBQ2pCLGlCQUFpQixxTUFDakIsa0JBQWtCLGdTQUNsQixtQkFBbUI7OzJGQUlSLHlCQUF5QjtrQkFyQnJDLFNBQVM7aUNBQ0csSUFBSSxXQUNQO3dCQUNSLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmVlU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90cmVlc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9maWVsZCc7XHJcbmltcG9ydCB7IEFSaUxGb3JtTW9kdWxlIH0gZnJvbSAnYXJpbC91aS9mb3JtJztcclxuaW1wb3J0IHsgTWFza0NvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvbWFzayc7XHJcbmltcG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9wYXNzd29yZCc7XHJcbmltcG9ydCB7IFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvc2VsZWN0Qm94JztcclxuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdGV4dCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0QXJlYSc7XHJcbmltcG9ydCB7IFRyZWVTZWxlY3RDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RyZWVTZWxlY3QnO1xyXG5cclxuaW1wb3J0IHsgQ2xpZW50UmVzcG9uc2VEVE8sIEdldEFsbENsaWVudFJlcXVlc3REVE8gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlLCBVcGRhdGVVc2VyUmVxdWVzdERUTywgVXNlclJlc3BvbnNlRFRPIH0gZnJvbSAnLi4vLi4vcHJvZmlsZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHRBUmlMRm9ybU1vZHVsZSxcclxuXHRcdFRyYW5zbG9jb01vZHVsZSxcclxuXHRcdFRyZWVTZWxlY3RNb2R1bGUsXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0VGV4dENvbXBvbmVudCxcclxuXHRcdE1hc2tDb21wb25lbnQsXHJcblx0XHRGaWVsZENvbXBvbmVudCxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRleHRBcmVhQ29tcG9uZW50LFxyXG5cdFx0Q2hlY2tib3hDb21wb25lbnQsXHJcblx0XHRQYXNzd29yZENvbXBvbmVudCxcclxuXHRcdFNlbGVjdEJveENvbXBvbmVudCxcclxuXHRcdFRyZWVTZWxlY3RDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0UHJvZmlsZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMudXNlclByb2ZpbGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhPy51c2VyUHJvZmlsZTtcclxuXHJcblx0XHR0aGlzLmluaXRpYWxpemVFZmZlY3RzKCk7XHJcblx0XHR0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRpYWxpemVFZmZlY3RzKCkge1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRUcmVlLm5leHQoMCk7XHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFVzZXJUeXBlLm5leHQoeyBmaXJzdDogMCwgbWF4OiAxMDAgfSk7XHJcblx0XHR0aGlzLnN1YmplY3RzLmdldENsaWVudExpc3QubmV4dCh7IGZpcnN0OiAwLCBtYXg6IDEwMCB9KTtcclxuXHJcblx0XHRpZiAodGhpcy5kaWFsb2dDb25maWc/LmRhdGE/Lml0ZW0/LmlkKSB7XHJcblx0XHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlckRldGFpbHMubmV4dCh7IGlkOiB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLml0ZW0uaWQgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBzZXJ2aWNlID0gdGhpcy51cGRhdGVVc2VyU2VydmljZSgpO1xyXG5cdFx0XHRcdGlmIChzZXJ2aWNlPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRzdW1tYXJ5OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdwcm9maWxlU2lkZWJhci51cGRhdGVTdWNjZXNzJyksXHJcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncHJvZmlsZVNpZGViYXIudXBkYXRlU3VjY2Vzc0RldGFpbCcpLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IHN0YXR1czogJ3N1Y2Nlc3MnLCBkYXRhOiBzZXJ2aWNlLnJlc3BvbnNlIH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldENsaWVudExpc3RTZXJ2aWNlKCk/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0dGhpcy5wcmVwYXJlQ2xpZW50TGlzdERyb3Bkb3duKHRoaXMuZ2V0Q2xpZW50TGlzdFNlcnZpY2UoKT8ucmVzcG9uc2UgYXMgQ2xpZW50UmVzcG9uc2VEVE9bXSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldFVzZXJUeXBlU2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMudXNlclR5cGVEYXRhcyA9IHRoaXMuZ2V0VXNlclR5cGVTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cdFx0XHRcdHRoaXMudXNlclR5cGVJdGVtcyA9IHRoaXMudXNlclR5cGVEYXRhcy5tYXAoKGl0ZW06IHsgbmFtZTogc3RyaW5nOyBpZDogc3RyaW5nIH0pID0+ICh7XHJcblx0XHRcdFx0XHR0ZXh0OiBpdGVtLm5hbWUsXHJcblx0XHRcdFx0XHRrZXk6IGl0ZW0uaWRcclxuXHRcdFx0XHR9KSk7XHJcblx0XHRcdFx0dGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5nZXRVc2VyRGV0YWlsU2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMudXBkYXRlVXNlckRhdGEgPSB0aGlzLmdldFVzZXJEZXRhaWxTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cdFx0XHRcdHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ2V0QXV0aG9yaXR5VHJlZVNlcnZpY2UoKT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHR0aGlzLnRyZWVEYXRhID0gdGhpcy5nZXRBdXRob3JpdHlUcmVlU2VydmljZSgpPy5yZXNwb25zZTtcclxuXHRcdFx0XHR0aGlzLnRyZWVJdGVtcyA9IHRoaXMubWFwVHJlZURhdGEodGhpcy50cmVlRGF0YSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdWJqZWN0cyA9IHtcclxuXHRcdGdldFRyZWU6IG5ldyBTdWJqZWN0PG51bWJlcj4oKSxcclxuXHRcdGdldFVzZXJUeXBlOiBuZXcgU3ViamVjdDxhbnk+KCksXHJcblx0XHRnZXRVc2VyRGV0YWlsczogbmV3IFN1YmplY3Q8eyBpZDogc3RyaW5nIH0+KCksXHJcblx0XHR1cGRhdGVVc2VyOiBuZXcgU3ViamVjdDxVcGRhdGVVc2VyUmVxdWVzdERUTz4oKSxcclxuXHRcdGdldENsaWVudExpc3Q6IG5ldyBTdWJqZWN0PEdldEFsbENsaWVudFJlcXVlc3REVE8+KClcclxuXHR9O1xyXG5cclxuXHR0cmVlRGF0YTogYW55O1xyXG5cdHRyZWVJdGVtczogYW55O1xyXG5cdHBhZ2VFZGl0ID0gZmFsc2U7XHJcblx0dXNlclR5cGVJdGVtczogYW55O1xyXG5cdHVzZXJUeXBlRGF0YXM6IGFueTtcclxuXHR1cGRhdGVVc2VyRGF0YTogYW55O1xyXG5cdGNsaWVudExpc3Q6IHsga2V5OiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9W10gPSBbXTtcclxuXHRsZXZlbFBhaXJzOiBBcnJheTx7IHN0YXJ0TGV2ZWw6IHN0cmluZzsgZW5kTGV2ZWw6IHN0cmluZyB9PiA9IFtdO1xyXG5cclxuXHRwcm9maWxlRm9ybSE6IEZvcm1Hcm91cDtcclxuXHR1c2VyUHJvZmlsZTogVXNlclJlc3BvbnNlRFRPO1xyXG5cdHNlbGVjdGVkVXNlclR5cGVJZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0aWYgKCF0aGlzLnVzZXJQcm9maWxlKSB7XHJcblx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdlcnJvcicpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBkYXRlVXNlclNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMudXBkYXRlVXNlci5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS51cGRhdGVVc2VyKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRDbGllbnRMaXN0U2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRDbGllbnRMaXN0LnBpcGUoc3dpdGNoTWFwKChkYXRhKSA9PiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEFsbENsaWVudHNMaXN0KGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRVc2VyRGV0YWlsU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRVc2VyRGV0YWlscy5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS5nZXRVc2VyKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRVc2VyVHlwZVNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlclR5cGUucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0QWxsVXNlclR5cGUoZGF0YSkpKVxyXG5cdCk7XHJcblxyXG5cdGdldEF1dGhvcml0eVRyZWVTZXJ2aWNlID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFRyZWUucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0QXV0aG9yaXR5VHJlZShkYXRhKSkpXHJcblx0KTtcclxuXHJcblx0cHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcclxuXHRcdHRoaXMudXBkYXRlVXNlckRhdGEgPSB0aGlzLmdldFVzZXJEZXRhaWxTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cclxuXHRcdGNvbnN0IHVzZXJUeXBlc0Zyb21SZXNwb25zZTogc3RyaW5nW10gPSB0aGlzLnVzZXJQcm9maWxlPy51c2VyVHlwZXMgfHwgW107XHJcblx0XHRjb25zdCB1c2VyVHlwZURhdGFzID0gdGhpcy51c2VyVHlwZURhdGFzIHx8IFtdO1xyXG5cclxuXHRcdHRoaXMuc2VsZWN0ZWRVc2VyVHlwZUlkcyA9IHVzZXJUeXBlRGF0YXNcclxuXHRcdFx0LmZpbHRlcigodHlwZTogeyBuYW1lOiBzdHJpbmcgfSkgPT4gdXNlclR5cGVzRnJvbVJlc3BvbnNlLmluY2x1ZGVzKHR5cGUubmFtZSkpXHJcblx0XHRcdC5tYXAoKHR5cGU6IHsgaWQ6IGFueSB9KSA9PiB0eXBlLmlkKTtcclxuXHJcblx0XHR0aGlzLnVzZXJUeXBlSXRlbXMgPSB1c2VyVHlwZURhdGFzLm1hcCgodHlwZTogeyBuYW1lOiBhbnk7IGlkOiBhbnkgfSkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHR5cGUubmFtZSxcclxuXHRcdFx0dmFsdWU6IHR5cGUuaWRcclxuXHRcdH0pKTtcclxuXHJcblx0XHR0aGlzLnByb2ZpbGVGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcblx0XHRcdGlkOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uaWQgfHwgbnVsbCksXHJcblx0XHRcdHN5c3RlbVVzZXI6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5zeXN0ZW1Vc2VyID8/IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0Y2xpZW50T2ZTeXN0ZW1Vc2VyOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uY2xpZW50T2ZTeXN0ZW1Vc2VyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdHVzZXJUeXBlSWQ6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnNlbGVjdGVkVXNlclR5cGVJZHNbMF0sIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0cmVnaW9uczogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMudXNlclByb2ZpbGU/LnJlZ2lvbnMgfHwgJycsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0dXNlck5hbWU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy51c2VyTmFtZSB8fCAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0Zmlyc3ROYW1lOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uZmlyc3ROYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG5cdFx0XHRsYXN0TmFtZTogbmV3IEZvcm1Db250cm9sKHRoaXMudXNlclByb2ZpbGU/Lmxhc3ROYW1lIHx8ICcnKSxcclxuXHRcdFx0ZW1haWw6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5lbWFpbCB8fCAnJywgW1ZhbGlkYXRvcnMuZW1haWwsIFZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0cGhvbmU6IG5ldyBGb3JtQ29udHJvbChBcnJheS5pc0FycmF5KHRoaXMudXNlclByb2ZpbGU/LnBob25lKSA/IHRoaXMudXNlclByb2ZpbGUucGhvbmVbMF0gfHwgJycgOiB0aGlzLnVzZXJQcm9maWxlPy5waG9uZSB8fCAnJyksXHJcblx0XHRcdHRja246IG5ldyBGb3JtQ29udHJvbChBcnJheS5pc0FycmF5KHRoaXMudXNlclByb2ZpbGU/LnRja24pID8gdGhpcy51c2VyUHJvZmlsZS50Y2tuWzBdIHx8ICcnIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcblx0XHRcdHBob3RvVXJsOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8ucGhvdG9VcmwgfHwgJycpLFxyXG5cdFx0XHRlbmFibGVkOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uZW5hYmxlZCA/PyB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdGVtYWlsVmVyaWZpZWQ6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5lbWFpbFZlcmlmaWVkID8/IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0bm90ZXM6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5ub3RlcyB8fCAnJyksXHJcblx0XHRcdHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2wobnVsbClcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0c3VibWl0KCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgcmF3VmFsdWUgPSB0aGlzLnByb2ZpbGVGb3JtLmdldFJhd1ZhbHVlKCk7XHJcblx0XHRjb25zdCB1cGRhdGVSZXF1ZXN0OiBVcGRhdGVVc2VyUmVxdWVzdERUTyA9IHtcclxuXHRcdFx0Li4ucmF3VmFsdWUsXHJcblx0XHRcdGlkOiB0aGlzLnVzZXJQcm9maWxlLmlkLFxyXG5cdFx0XHRwaG9uZTogQXJyYXkuaXNBcnJheShyYXdWYWx1ZS5waG9uZSkgPyByYXdWYWx1ZS5waG9uZSA6IFtyYXdWYWx1ZS5waG9uZV0sXHJcblx0XHRcdHRja246IEFycmF5LmlzQXJyYXkocmF3VmFsdWUudGNrbikgPyByYXdWYWx1ZS50Y2tuIDogW3Jhd1ZhbHVlLnRja25dLFxyXG5cdFx0XHRyZWdpb25zOiB0aGlzLmxldmVsUGFpcnMsXHJcblx0XHRcdHBob3RvVXJsOiBBcnJheS5pc0FycmF5KHJhd1ZhbHVlLnBob3RvVXJsKSA/IHJhd1ZhbHVlLnBob3RvVXJsIDogW3Jhd1ZhbHVlLnBob3RvVXJsXSxcclxuXHRcdFx0bm90ZXM6IEFycmF5LmlzQXJyYXkocmF3VmFsdWUubm90ZXMpID8gcmF3VmFsdWUubm90ZXMgOiBbcmF3VmFsdWUubm90ZXNdXHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuc3ViamVjdHMudXBkYXRlVXNlci5uZXh0KHVwZGF0ZVJlcXVlc3QpO1xyXG5cdH1cclxuXHJcblx0Y2FuY2VsKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2NhbmNlbCcpO1xyXG5cdH1cclxuXHJcblx0cHJlcGFyZUNsaWVudExpc3REcm9wZG93bihjbGllbnRMaXN0UGFyYW06IENsaWVudFJlc3BvbnNlRFRPW10pIHtcclxuXHRcdHRoaXMuY2xpZW50TGlzdCA9IGNsaWVudExpc3RQYXJhbS5tYXAoKGNsaWVudEl0ZW0pID0+ICh7XHJcblx0XHRcdGtleTogY2xpZW50SXRlbS5jbGllbnRSZWZlcmVuY2VLZXksXHJcblx0XHRcdHRleHQ6IGNsaWVudEl0ZW0ubmFtZVxyXG5cdFx0fSkpO1xyXG5cdH1cclxuXHJcblx0bWFwVHJlZURhdGEodHJlZURhdGE6IGFueSkge1xyXG5cdFx0cmV0dXJuIHRyZWVEYXRhLm1hcCgoaXRlbTogYW55KSA9PiAoe1xyXG5cdFx0XHRrZXk6IGl0ZW0uc3RhcnRMZXZlbCxcclxuXHRcdFx0bGFiZWw6IGl0ZW0ubmFtZSxcclxuXHRcdFx0dmFsdWU6IGl0ZW0uaWQsXHJcblx0XHRcdGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuID8gdGhpcy5tYXBUcmVlRGF0YShpdGVtLmNoaWxkcmVuKSA6IFtdXHJcblx0XHR9KSk7XHJcblx0fVxyXG5cclxuXHRub2RlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSA9IGV2ZW50Lm5vZGUuZGF0YTtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5sZXZlbFBhaXJzLmZpbmRJbmRleCgocGFpcikgPT4gcGFpci5zdGFydExldmVsID09PSBzdGFydExldmVsICYmIHBhaXIuZW5kTGV2ZWwgPT09IGVuZExldmVsKTtcclxuXHRcdGluZGV4ID09PSAtMSA/IHRoaXMubGV2ZWxQYWlycy5wdXNoKHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSkgOiB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdG5vZGVVbnNlbGVjdChldmVudDogYW55KSB7XHJcblx0XHRjb25zdCB7IHN0YXJ0TGV2ZWwsIGVuZExldmVsIH0gPSBldmVudC5ub2RlLmRhdGE7XHJcblx0XHRjb25zdCBpbmRleCA9IHRoaXMubGV2ZWxQYWlycy5maW5kSW5kZXgoKHBhaXIpID0+IHBhaXIuc3RhcnRMZXZlbCA9PT0gc3RhcnRMZXZlbCAmJiBwYWlyLmVuZExldmVsID09PSBlbmRMZXZlbCk7XHJcblx0XHRpZiAoaW5kZXggIT09IC0xKSB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCkge1xyXG5cdFx0dGhpcy5sZXZlbFBhaXJzID0gW107XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAncHJvZmlsZVNpZGViYXInXCI+XHJcblx0PGFyaWwtZm9ybSBbZm9ybUdyb3VwXT1cInByb2ZpbGVGb3JtXCI+XHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgndXNlclN0YXR1cycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwic3lzdGVtVXNlclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyVHlwZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXNlbGVjdC1ib3ggZm9ybUNvbnRyb2xOYW1lPVwidXNlclR5cGVJZFwiIFtpdGVtc109XCJ1c2VyVHlwZUl0ZW1zXCIgaXRlbUtleT1cInZhbHVlXCIgaXRlbVRleHQ9XCJsYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyQXBwJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1zZWxlY3QtYm94IGZvcm1Db250cm9sTmFtZT1cImNsaWVudE9mU3lzdGVtVXNlclwiIFtpdGVtc109XCJjbGllbnRMaXN0XCIgaXRlbVRleHQ9XCJ0ZXh0XCIgaXRlbUtleT1cImtleVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VybmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwidXNlck5hbWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyUGFzc3dvcmQnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC1wYXNzd29yZCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIFtwbGFjZWhvbGRlcl09XCInJiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OydcIj48L2FyaWwtcGFzc3dvcmQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2ZpcnN0TmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2xhc3ROYW1lJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIj48L2FyaWwtdGV4dD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgnZW1haWwnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Bob25lJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLW1hc2sgbWFzaz1cIig5OTkpIDk5OSA5OSA5OVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdwaG9uZUV4YW1wbGUnKVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCI+PC9hcmlsLW1hc2s+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3RjTnVtYmVyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCIgW21hcmtBc1JlcXVpcmVkXT1cInRydWVcIj5cclxuXHRcdFx0PGFyaWwtbWFzayBtYXNrPVwiOTk5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJ0Y2tuXCI+PC9hcmlsLW1hc2s+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Jlc3BvbnNpYmxlUmVnaW9ucycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC10cmVlU2VsZWN0XHJcblx0XHRcdFx0W29wdGlvbnNdPVwidHJlZUl0ZW1zXCJcclxuXHRcdFx0XHRmb3JtQ29udHJvbE5hbWU9XCJyZWdpb25zXCJcclxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VsZWN0JylcIlxyXG5cdFx0XHRcdChub2RlU2VsZWN0KT1cIm5vZGVTZWxlY3QoJGV2ZW50KVwiXHJcblx0XHRcdFx0KG5vZGVVbnNlbGVjdCk9XCJub2RlVW5zZWxlY3QoJGV2ZW50KVwiXHJcblx0XHRcdFx0KGNsZWFyZWQpPVwiY2xlYXIoKVwiPlxyXG5cdFx0XHQ8L2FyaWwtdHJlZVNlbGVjdD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgnbm90ZXMnKVwiIFtjb2xzXT1cInsgeGw6IDEyLCBsZzogMTIsIG1kOiAxMiwgc206IDEyIH1cIj5cclxuXHRcdFx0PGFyaWwtdGV4dC1hcmVhIFtyb3dzXT1cIjNcIiBbY29sc109XCI0MFwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGVzXCI+PC9hcmlsLXRleHQtYXJlYT5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgncGhvdG9VcmwnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIj5cclxuXHRcdFx0PGFyaWwtdGV4dCBmb3JtQ29udHJvbE5hbWU9XCJwaG90b1VybFwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTIgZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTMgZ2FwLTFcIj5cclxuXHRcdFx0PGFyaWwtYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgW2xhYmVsXT1cInQoJ2NhbmNlbCcpXCIgW291dGxpbmVkXT1cInRydWVcIiBpY29uPVwiVElNRVNcIiAoY2xpY2tFdmVudCk9XCJjYW5jZWwoKVwiPjwvYXJpbC1idXR0b24+XHJcblx0XHRcdDxhcmlsLWZvcm0tc3VibWl0IFtsYWJlbF09XCJ0KCdzYXZlJylcIiBjb2xvcj1cInN1Y2Nlc3NcIiBpY29uPVwiQ0hFQ0tcIiBbZm9ybUdyb3VwXT1cInByb2ZpbGVGb3JtXCIgKHZhbGlkRXZlbnQpPVwic3VibWl0KClcIj48L2FyaWwtZm9ybS1zdWJtaXQ+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2FyaWwtZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wcm9maWxlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9wcm9maWxlU2lkZWJhci9tb2RhbHMvZWRpdC1wcm9maWxlLW1vZGFsL2VkaXQtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvcHJvZmlsZVNpZGViYXIvbW9kYWxzL2VkaXQtcHJvZmlsZS1tb2RhbC9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQWUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUluSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQTBCekQsTUFBTSxPQUFPLHlCQUF5QjtJQUNyQyxZQUNrQixXQUF3QixFQUN4QixTQUEyQixFQUMzQixjQUE4QixFQUM5QixjQUE4QixFQUM5QixZQUFpQyxFQUNqQyxnQkFBa0M7UUFMbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWdFNUMsYUFBUSxHQUFHO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLE9BQU8sRUFBVTtZQUM5QixXQUFXLEVBQUUsSUFBSSxPQUFPLEVBQU87WUFDL0IsY0FBYyxFQUFFLElBQUksT0FBTyxFQUFrQjtZQUM3QyxVQUFVLEVBQUUsSUFBSSxPQUFPLEVBQXdCO1lBQy9DLGFBQWEsRUFBRSxJQUFJLE9BQU8sRUFBMEI7U0FDcEQsQ0FBQztRQUlGLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsZUFBVSxHQUFvQyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFvRCxFQUFFLENBQUM7UUFJakUsd0JBQW1CLEdBQWEsRUFBRSxDQUFDO1FBUW5DLHNCQUFpQixHQUFHLFFBQVEsQ0FDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN4RixDQUFDO1FBRUYseUJBQW9CLEdBQUcsUUFBUSxDQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDbEcsQ0FBQztRQUVGLHlCQUFvQixHQUFHLFFBQVEsQ0FDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN6RixDQUFDO1FBRUYsdUJBQWtCLEdBQUcsUUFBUSxDQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQzdGLENBQUM7UUFFRiw0QkFBdUIsR0FBRyxRQUFRLENBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUMzRixDQUFDO1FBM0dELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8saUJBQWlCO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFekQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekMsSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUN2QixRQUFRLEVBQUUsU0FBUztvQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUM7b0JBQ3hFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLG9DQUFvQyxDQUFDO29CQUM3RSxHQUFHLEVBQUUsWUFBWTtpQkFDakIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNGLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUMzQixDQUFDO1FBRUYsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUErQixDQUFDLENBQUM7WUFDOUYsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBa0MsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDcEYsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRTtpQkFDWixDQUFDLENBQUMsQ0FBQztnQkFDSixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxDQUFDO2dCQUM1RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUF1QkQsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNGLENBQUM7SUFzQk8sY0FBYztRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFFBQVEsQ0FBQztRQUU1RCxNQUFNLHFCQUFxQixHQUFhLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMxRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsYUFBYTthQUN0QyxNQUFNLENBQUMsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUE0QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDZCxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDekMsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQztZQUNqRCxVQUFVLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM3RixrQkFBa0IsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDM0csVUFBVSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEYsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDckYsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0csU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQzNELEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5RixLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoSSxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6SCxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQzNELE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3ZGLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25HLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckQsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztTQUMvQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNMLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsTUFBTSxhQUFhLEdBQXlCO1lBQzNDLEdBQUcsUUFBUTtZQUNYLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEUsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDcEUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3hCLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3BGLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQ3hFLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQseUJBQXlCLENBQUMsZUFBb0M7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELEdBQUcsRUFBRSxVQUFVLENBQUMsa0JBQWtCO1lBQ2xDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtTQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBYTtRQUN4QixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkMsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDcEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoSCxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoSCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQTFNVyx5QkFBeUI7a0dBQXpCLHlCQUF5Qix3RUMvQ3RDLDAwSEF1RUEsMkNEMUNFLFlBQVksOEJBQ1osV0FBVyxrU0FDWCxjQUFjLGlTQUNkLGVBQWUsZ09BQ2YsZ0JBQWdCLDhCQUNoQixtQkFBbUIsZ1ZBQ25CLGFBQWEsbUxBQ2IsYUFBYSx3TUFDYixjQUFjLGlLQUNkLGVBQWUsZ01BQ2YsaUJBQWlCLHVNQUNqQixpQkFBaUIsOEpBQ2pCLGlCQUFpQixxTUFDakIsa0JBQWtCLDBUQUNsQixtQkFBbUI7OzJGQUlSLHlCQUF5QjtrQkFyQnJDLFNBQVM7aUNBQ0csSUFBSSxXQUNQO3dCQUNSLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmVlU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90cmVlc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9maWVsZCc7XHJcbmltcG9ydCB7IEFSaUxGb3JtTW9kdWxlIH0gZnJvbSAnYXJpbC91aS9mb3JtJztcclxuaW1wb3J0IHsgTWFza0NvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvbWFzayc7XHJcbmltcG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9wYXNzd29yZCc7XHJcbmltcG9ydCB7IFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvc2VsZWN0Qm94JztcclxuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdGV4dCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0QXJlYSc7XHJcbmltcG9ydCB7IFRyZWVTZWxlY3RDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RyZWVTZWxlY3QnO1xyXG5cclxuaW1wb3J0IHsgQ2xpZW50UmVzcG9uc2VEVE8sIEdldEFsbENsaWVudFJlcXVlc3REVE8gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlLCBVcGRhdGVVc2VyUmVxdWVzdERUTywgVXNlclJlc3BvbnNlRFRPIH0gZnJvbSAnLi4vLi4vcHJvZmlsZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHRBUmlMRm9ybU1vZHVsZSxcclxuXHRcdFRyYW5zbG9jb01vZHVsZSxcclxuXHRcdFRyZWVTZWxlY3RNb2R1bGUsXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0VGV4dENvbXBvbmVudCxcclxuXHRcdE1hc2tDb21wb25lbnQsXHJcblx0XHRGaWVsZENvbXBvbmVudCxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRleHRBcmVhQ29tcG9uZW50LFxyXG5cdFx0Q2hlY2tib3hDb21wb25lbnQsXHJcblx0XHRQYXNzd29yZENvbXBvbmVudCxcclxuXHRcdFNlbGVjdEJveENvbXBvbmVudCxcclxuXHRcdFRyZWVTZWxlY3RDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0UHJvZmlsZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMudXNlclByb2ZpbGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhPy51c2VyUHJvZmlsZTtcclxuXHJcblx0XHR0aGlzLmluaXRpYWxpemVFZmZlY3RzKCk7XHJcblx0XHR0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRpYWxpemVFZmZlY3RzKCkge1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRUcmVlLm5leHQoMCk7XHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFVzZXJUeXBlLm5leHQoeyBmaXJzdDogMCwgbWF4OiAxMDAgfSk7XHJcblx0XHR0aGlzLnN1YmplY3RzLmdldENsaWVudExpc3QubmV4dCh7IGZpcnN0OiAwLCBtYXg6IDEwMCB9KTtcclxuXHJcblx0XHRpZiAodGhpcy5kaWFsb2dDb25maWc/LmRhdGE/Lml0ZW0/LmlkKSB7XHJcblx0XHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlckRldGFpbHMubmV4dCh7IGlkOiB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLml0ZW0uaWQgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBzZXJ2aWNlID0gdGhpcy51cGRhdGVVc2VyU2VydmljZSgpO1xyXG5cdFx0XHRcdGlmIChzZXJ2aWNlPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRzdW1tYXJ5OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdwcm9maWxlU2lkZWJhci51cGRhdGVTdWNjZXNzJyksXHJcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncHJvZmlsZVNpZGViYXIudXBkYXRlU3VjY2Vzc0RldGFpbCcpLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IHN0YXR1czogJ3N1Y2Nlc3MnLCBkYXRhOiBzZXJ2aWNlLnJlc3BvbnNlIH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldENsaWVudExpc3RTZXJ2aWNlKCk/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0dGhpcy5wcmVwYXJlQ2xpZW50TGlzdERyb3Bkb3duKHRoaXMuZ2V0Q2xpZW50TGlzdFNlcnZpY2UoKT8ucmVzcG9uc2UgYXMgQ2xpZW50UmVzcG9uc2VEVE9bXSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldFVzZXJUeXBlU2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMudXNlclR5cGVEYXRhcyA9IHRoaXMuZ2V0VXNlclR5cGVTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cdFx0XHRcdHRoaXMudXNlclR5cGVJdGVtcyA9IHRoaXMudXNlclR5cGVEYXRhcy5tYXAoKGl0ZW06IHsgbmFtZTogc3RyaW5nOyBpZDogc3RyaW5nIH0pID0+ICh7XHJcblx0XHRcdFx0XHR0ZXh0OiBpdGVtLm5hbWUsXHJcblx0XHRcdFx0XHRrZXk6IGl0ZW0uaWRcclxuXHRcdFx0XHR9KSk7XHJcblx0XHRcdFx0dGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5nZXRVc2VyRGV0YWlsU2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMudXBkYXRlVXNlckRhdGEgPSB0aGlzLmdldFVzZXJEZXRhaWxTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cdFx0XHRcdHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ2V0QXV0aG9yaXR5VHJlZVNlcnZpY2UoKT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHR0aGlzLnRyZWVEYXRhID0gdGhpcy5nZXRBdXRob3JpdHlUcmVlU2VydmljZSgpPy5yZXNwb25zZTtcclxuXHRcdFx0XHR0aGlzLnRyZWVJdGVtcyA9IHRoaXMubWFwVHJlZURhdGEodGhpcy50cmVlRGF0YSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdWJqZWN0cyA9IHtcclxuXHRcdGdldFRyZWU6IG5ldyBTdWJqZWN0PG51bWJlcj4oKSxcclxuXHRcdGdldFVzZXJUeXBlOiBuZXcgU3ViamVjdDxhbnk+KCksXHJcblx0XHRnZXRVc2VyRGV0YWlsczogbmV3IFN1YmplY3Q8eyBpZDogc3RyaW5nIH0+KCksXHJcblx0XHR1cGRhdGVVc2VyOiBuZXcgU3ViamVjdDxVcGRhdGVVc2VyUmVxdWVzdERUTz4oKSxcclxuXHRcdGdldENsaWVudExpc3Q6IG5ldyBTdWJqZWN0PEdldEFsbENsaWVudFJlcXVlc3REVE8+KClcclxuXHR9O1xyXG5cclxuXHR0cmVlRGF0YTogYW55O1xyXG5cdHRyZWVJdGVtczogYW55O1xyXG5cdHBhZ2VFZGl0ID0gZmFsc2U7XHJcblx0dXNlclR5cGVJdGVtczogYW55O1xyXG5cdHVzZXJUeXBlRGF0YXM6IGFueTtcclxuXHR1cGRhdGVVc2VyRGF0YTogYW55O1xyXG5cdGNsaWVudExpc3Q6IHsga2V5OiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9W10gPSBbXTtcclxuXHRsZXZlbFBhaXJzOiBBcnJheTx7IHN0YXJ0TGV2ZWw6IHN0cmluZzsgZW5kTGV2ZWw6IHN0cmluZyB9PiA9IFtdO1xyXG5cclxuXHRwcm9maWxlRm9ybSE6IEZvcm1Hcm91cDtcclxuXHR1c2VyUHJvZmlsZTogVXNlclJlc3BvbnNlRFRPO1xyXG5cdHNlbGVjdGVkVXNlclR5cGVJZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0aWYgKCF0aGlzLnVzZXJQcm9maWxlKSB7XHJcblx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdlcnJvcicpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBkYXRlVXNlclNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMudXBkYXRlVXNlci5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS51cGRhdGVVc2VyKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRDbGllbnRMaXN0U2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRDbGllbnRMaXN0LnBpcGUoc3dpdGNoTWFwKChkYXRhKSA9PiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEFsbENsaWVudHNMaXN0KGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRVc2VyRGV0YWlsU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRVc2VyRGV0YWlscy5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS5nZXRVc2VyKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRVc2VyVHlwZVNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlclR5cGUucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0QWxsVXNlclR5cGUoZGF0YSkpKVxyXG5cdCk7XHJcblxyXG5cdGdldEF1dGhvcml0eVRyZWVTZXJ2aWNlID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFRyZWUucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0QXV0aG9yaXR5VHJlZShkYXRhKSkpXHJcblx0KTtcclxuXHJcblx0cHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcclxuXHRcdHRoaXMudXBkYXRlVXNlckRhdGEgPSB0aGlzLmdldFVzZXJEZXRhaWxTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cclxuXHRcdGNvbnN0IHVzZXJUeXBlc0Zyb21SZXNwb25zZTogc3RyaW5nW10gPSB0aGlzLnVzZXJQcm9maWxlPy51c2VyVHlwZXMgfHwgW107XHJcblx0XHRjb25zdCB1c2VyVHlwZURhdGFzID0gdGhpcy51c2VyVHlwZURhdGFzIHx8IFtdO1xyXG5cclxuXHRcdHRoaXMuc2VsZWN0ZWRVc2VyVHlwZUlkcyA9IHVzZXJUeXBlRGF0YXNcclxuXHRcdFx0LmZpbHRlcigodHlwZTogeyBuYW1lOiBzdHJpbmcgfSkgPT4gdXNlclR5cGVzRnJvbVJlc3BvbnNlLmluY2x1ZGVzKHR5cGUubmFtZSkpXHJcblx0XHRcdC5tYXAoKHR5cGU6IHsgaWQ6IGFueSB9KSA9PiB0eXBlLmlkKTtcclxuXHJcblx0XHR0aGlzLnVzZXJUeXBlSXRlbXMgPSB1c2VyVHlwZURhdGFzLm1hcCgodHlwZTogeyBuYW1lOiBhbnk7IGlkOiBhbnkgfSkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHR5cGUubmFtZSxcclxuXHRcdFx0dmFsdWU6IHR5cGUuaWRcclxuXHRcdH0pKTtcclxuXHJcblx0XHR0aGlzLnByb2ZpbGVGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcblx0XHRcdGlkOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uaWQgfHwgbnVsbCksXHJcblx0XHRcdHN5c3RlbVVzZXI6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5zeXN0ZW1Vc2VyID8/IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0Y2xpZW50T2ZTeXN0ZW1Vc2VyOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uY2xpZW50T2ZTeXN0ZW1Vc2VyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdHVzZXJUeXBlSWQ6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnNlbGVjdGVkVXNlclR5cGVJZHNbMF0sIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0cmVnaW9uczogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMudXNlclByb2ZpbGU/LnJlZ2lvbnMgfHwgJycsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0dXNlck5hbWU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy51c2VyTmFtZSB8fCAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0Zmlyc3ROYW1lOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uZmlyc3ROYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG5cdFx0XHRsYXN0TmFtZTogbmV3IEZvcm1Db250cm9sKHRoaXMudXNlclByb2ZpbGU/Lmxhc3ROYW1lIHx8ICcnKSxcclxuXHRcdFx0ZW1haWw6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5lbWFpbCB8fCAnJywgW1ZhbGlkYXRvcnMuZW1haWwsIFZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0cGhvbmU6IG5ldyBGb3JtQ29udHJvbChBcnJheS5pc0FycmF5KHRoaXMudXNlclByb2ZpbGU/LnBob25lKSA/IHRoaXMudXNlclByb2ZpbGUucGhvbmVbMF0gfHwgJycgOiB0aGlzLnVzZXJQcm9maWxlPy5waG9uZSB8fCAnJyksXHJcblx0XHRcdHRja246IG5ldyBGb3JtQ29udHJvbChBcnJheS5pc0FycmF5KHRoaXMudXNlclByb2ZpbGU/LnRja24pID8gdGhpcy51c2VyUHJvZmlsZS50Y2tuWzBdIHx8ICcnIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcblx0XHRcdHBob3RvVXJsOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8ucGhvdG9VcmwgfHwgJycpLFxyXG5cdFx0XHRlbmFibGVkOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uZW5hYmxlZCA/PyB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdGVtYWlsVmVyaWZpZWQ6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5lbWFpbFZlcmlmaWVkID8/IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0bm90ZXM6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5ub3RlcyB8fCAnJyksXHJcblx0XHRcdHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2wobnVsbClcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0c3VibWl0KCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgcmF3VmFsdWUgPSB0aGlzLnByb2ZpbGVGb3JtLmdldFJhd1ZhbHVlKCk7XHJcblx0XHRjb25zdCB1cGRhdGVSZXF1ZXN0OiBVcGRhdGVVc2VyUmVxdWVzdERUTyA9IHtcclxuXHRcdFx0Li4ucmF3VmFsdWUsXHJcblx0XHRcdGlkOiB0aGlzLnVzZXJQcm9maWxlLmlkLFxyXG5cdFx0XHRwaG9uZTogQXJyYXkuaXNBcnJheShyYXdWYWx1ZS5waG9uZSkgPyByYXdWYWx1ZS5waG9uZSA6IFtyYXdWYWx1ZS5waG9uZV0sXHJcblx0XHRcdHRja246IEFycmF5LmlzQXJyYXkocmF3VmFsdWUudGNrbikgPyByYXdWYWx1ZS50Y2tuIDogW3Jhd1ZhbHVlLnRja25dLFxyXG5cdFx0XHRyZWdpb25zOiB0aGlzLmxldmVsUGFpcnMsXHJcblx0XHRcdHBob3RvVXJsOiBBcnJheS5pc0FycmF5KHJhd1ZhbHVlLnBob3RvVXJsKSA/IHJhd1ZhbHVlLnBob3RvVXJsIDogW3Jhd1ZhbHVlLnBob3RvVXJsXSxcclxuXHRcdFx0bm90ZXM6IEFycmF5LmlzQXJyYXkocmF3VmFsdWUubm90ZXMpID8gcmF3VmFsdWUubm90ZXMgOiBbcmF3VmFsdWUubm90ZXNdXHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuc3ViamVjdHMudXBkYXRlVXNlci5uZXh0KHVwZGF0ZVJlcXVlc3QpO1xyXG5cdH1cclxuXHJcblx0Y2FuY2VsKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2NhbmNlbCcpO1xyXG5cdH1cclxuXHJcblx0cHJlcGFyZUNsaWVudExpc3REcm9wZG93bihjbGllbnRMaXN0UGFyYW06IENsaWVudFJlc3BvbnNlRFRPW10pIHtcclxuXHRcdHRoaXMuY2xpZW50TGlzdCA9IGNsaWVudExpc3RQYXJhbS5tYXAoKGNsaWVudEl0ZW0pID0+ICh7XHJcblx0XHRcdGtleTogY2xpZW50SXRlbS5jbGllbnRSZWZlcmVuY2VLZXksXHJcblx0XHRcdHRleHQ6IGNsaWVudEl0ZW0ubmFtZVxyXG5cdFx0fSkpO1xyXG5cdH1cclxuXHJcblx0bWFwVHJlZURhdGEodHJlZURhdGE6IGFueSkge1xyXG5cdFx0cmV0dXJuIHRyZWVEYXRhLm1hcCgoaXRlbTogYW55KSA9PiAoe1xyXG5cdFx0XHRrZXk6IGl0ZW0uc3RhcnRMZXZlbCxcclxuXHRcdFx0bGFiZWw6IGl0ZW0ubmFtZSxcclxuXHRcdFx0dmFsdWU6IGl0ZW0uaWQsXHJcblx0XHRcdGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuID8gdGhpcy5tYXBUcmVlRGF0YShpdGVtLmNoaWxkcmVuKSA6IFtdXHJcblx0XHR9KSk7XHJcblx0fVxyXG5cclxuXHRub2RlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSA9IGV2ZW50Lm5vZGUuZGF0YTtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5sZXZlbFBhaXJzLmZpbmRJbmRleCgocGFpcikgPT4gcGFpci5zdGFydExldmVsID09PSBzdGFydExldmVsICYmIHBhaXIuZW5kTGV2ZWwgPT09IGVuZExldmVsKTtcclxuXHRcdGluZGV4ID09PSAtMSA/IHRoaXMubGV2ZWxQYWlycy5wdXNoKHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSkgOiB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdG5vZGVVbnNlbGVjdChldmVudDogYW55KSB7XHJcblx0XHRjb25zdCB7IHN0YXJ0TGV2ZWwsIGVuZExldmVsIH0gPSBldmVudC5ub2RlLmRhdGE7XHJcblx0XHRjb25zdCBpbmRleCA9IHRoaXMubGV2ZWxQYWlycy5maW5kSW5kZXgoKHBhaXIpID0+IHBhaXIuc3RhcnRMZXZlbCA9PT0gc3RhcnRMZXZlbCAmJiBwYWlyLmVuZExldmVsID09PSBlbmRMZXZlbCk7XHJcblx0XHRpZiAoaW5kZXggIT09IC0xKSB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCkge1xyXG5cdFx0dGhpcy5sZXZlbFBhaXJzID0gW107XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAncHJvZmlsZVNpZGViYXInXCI+XHJcblx0PGFyaWwtZm9ybSBbZm9ybUdyb3VwXT1cInByb2ZpbGVGb3JtXCI+XHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgndXNlclN0YXR1cycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwic3lzdGVtVXNlclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyVHlwZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXNlbGVjdC1ib3ggZm9ybUNvbnRyb2xOYW1lPVwidXNlclR5cGVJZFwiIFtpdGVtc109XCJ1c2VyVHlwZUl0ZW1zXCIgaXRlbUtleT1cInZhbHVlXCIgaXRlbVRleHQ9XCJsYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyQXBwJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1zZWxlY3QtYm94IGZvcm1Db250cm9sTmFtZT1cImNsaWVudE9mU3lzdGVtVXNlclwiIFtpdGVtc109XCJjbGllbnRMaXN0XCIgaXRlbVRleHQ9XCJ0ZXh0XCIgaXRlbUtleT1cImtleVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VybmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwidXNlck5hbWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyUGFzc3dvcmQnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC1wYXNzd29yZCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIFtwbGFjZWhvbGRlcl09XCInJiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OydcIj48L2FyaWwtcGFzc3dvcmQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2ZpcnN0TmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2xhc3ROYW1lJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIj48L2FyaWwtdGV4dD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgnZW1haWwnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Bob25lJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLW1hc2sgbWFzaz1cIig5OTkpIDk5OSA5OSA5OVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdwaG9uZUV4YW1wbGUnKVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCI+PC9hcmlsLW1hc2s+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3RjTnVtYmVyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCIgW21hcmtBc1JlcXVpcmVkXT1cInRydWVcIj5cclxuXHRcdFx0PGFyaWwtbWFzayBtYXNrPVwiOTk5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJ0Y2tuXCI+PC9hcmlsLW1hc2s+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Jlc3BvbnNpYmxlUmVnaW9ucycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC10cmVlU2VsZWN0XHJcblx0XHRcdFx0W29wdGlvbnNdPVwidHJlZUl0ZW1zXCJcclxuXHRcdFx0XHRmb3JtQ29udHJvbE5hbWU9XCJyZWdpb25zXCJcclxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VsZWN0JylcIlxyXG5cdFx0XHRcdChub2RlU2VsZWN0KT1cIm5vZGVTZWxlY3QoJGV2ZW50KVwiXHJcblx0XHRcdFx0KG5vZGVVbnNlbGVjdCk9XCJub2RlVW5zZWxlY3QoJGV2ZW50KVwiXHJcblx0XHRcdFx0KGNsZWFyZWQpPVwiY2xlYXIoKVwiPlxyXG5cdFx0XHQ8L2FyaWwtdHJlZVNlbGVjdD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgnbm90ZXMnKVwiIFtjb2xzXT1cInsgeGw6IDEyLCBsZzogMTIsIG1kOiAxMiwgc206IDEyIH1cIj5cclxuXHRcdFx0PGFyaWwtdGV4dC1hcmVhIFtyb3dzXT1cIjNcIiBbY29sc109XCI0MFwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGVzXCI+PC9hcmlsLXRleHQtYXJlYT5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgncGhvdG9VcmwnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIj5cclxuXHRcdFx0PGFyaWwtdGV4dCBmb3JtQ29udHJvbE5hbWU9XCJwaG90b1VybFwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTIgZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTMgZ2FwLTFcIj5cclxuXHRcdFx0PGFyaWwtYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgW2xhYmVsXT1cInQoJ2NhbmNlbCcpXCIgW291dGxpbmVkXT1cInRydWVcIiBpY29uPVwiVElNRVNcIiAoY2xpY2tFdmVudCk9XCJjYW5jZWwoKVwiPjwvYXJpbC1idXR0b24+XHJcblx0XHRcdDxhcmlsLWZvcm0tc3VibWl0IFtsYWJlbF09XCJ0KCdzYXZlJylcIiBjb2xvcj1cInN1Y2Nlc3NcIiBpY29uPVwiQ0hFQ0tcIiBbZm9ybUdyb3VwXT1cInByb2ZpbGVGb3JtXCIgKHZhbGlkRXZlbnQpPVwic3VibWl0KClcIj48L2FyaWwtZm9ybS1zdWJtaXQ+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2FyaWwtZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -56,12 +56,12 @@ export class SelectBoxComponent extends BaseInputComponent {
|
|
|
56
56
|
})));
|
|
57
57
|
}
|
|
58
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectBoxComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: SelectBoxComponent, isStandalone: true, selector: "aril-select-box[formControl], aril-select-box[formControlName]", inputs: { itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, grouped: { classPropertyName: "grouped", publicName: "grouped", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchExpr: { classPropertyName: "searchExpr", publicName: "searchExpr", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: "onSelectionChanged" }, providers: [InputErrorMessagePipe], usesInheritance: true, hostDirectives: [{ directive: i3.ValueAccessorDirective }], ngImport: i0, template: "<dx-select-box\r\n\t[items]=\"selectionItems() || items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i5.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: DXInputErrorMessagePipe, name: "dxInputErrorMessage" }, { kind: "ngmodule", type: TranslocoModule }] }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: SelectBoxComponent, isStandalone: true, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: { itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, grouped: { classPropertyName: "grouped", publicName: "grouped", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchExpr: { classPropertyName: "searchExpr", publicName: "searchExpr", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: "onSelectionChanged" }, providers: [InputErrorMessagePipe], usesInheritance: true, hostDirectives: [{ directive: i3.ValueAccessorDirective }], ngImport: i0, template: "<dx-select-box\r\n\t[items]=\"selectionItems() || items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i5.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: DXInputErrorMessagePipe, name: "dxInputErrorMessage" }, { kind: "ngmodule", type: TranslocoModule }] }); }
|
|
60
60
|
}
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectBoxComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
|
-
args: [{ standalone: true, selector: 'aril-select-box[formControl], aril-select-box[formControlName]', imports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule], providers: [InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "<dx-select-box\r\n\t[items]=\"selectionItems() || items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n" }]
|
|
63
|
+
args: [{ standalone: true, selector: 'aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]', imports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule], providers: [InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "<dx-select-box\r\n\t[items]=\"selectionItems() || items()\"\r\n\t[valueExpr]=\"itemKey()\"\r\n\t[displayExpr]=\"itemText()\"\r\n\t[searchEnabled]=\"true\"\r\n\t[searchExpr]=\"searchExpr()\"\r\n\t[tabIndex]=\"tabindex()\"\r\n\t[grouped]=\"grouped()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[showClearButton]=\"showClearButton()\"\r\n\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\tvalidationMessagePosition=\"top\"\r\n\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t(onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n\t[inputAttr]=\"{ 'title': selectedItemText }\">\r\n</dx-select-box>\r\n" }]
|
|
64
64
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }], propDecorators: { onSelectionChanged: [{
|
|
65
65
|
type: Output
|
|
66
66
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3NlbGVjdEJveC9zcmMvc2VsZWN0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3NlbGVjdEJveC9zcmMvc2VsZWN0LWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBWXJCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUFtQnpELFlBQW9CLElBQWdCLEVBQVMsZ0JBQWtDO1FBQzlFLEtBQUssRUFBRSxDQUFDO1FBRFcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFsQi9FLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FB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ci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGVmZmVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBEeFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9zZWxlY3QtYm94JztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQge1xyXG5cdEJhc2VJbnB1dENvbXBvbmVudCxcclxuXHREWElucHV0RXJyb3JNZXNzYWdlUGlwZSxcclxuXHRJbnB1dEVycm9yTWVzc2FnZVBpcGUsXHJcblx0VmFsdWVBY2Nlc3NvckRpcmVjdGl2ZVxyXG59IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdEJveEl0ZW0sIFNlbGVjdGlvbkdyb3VwRFRPLCBTZWxlY3Rpb25SZXF1ZXN0RFRPIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXNlbGVjdC1ib3hbbmdNb2RlbF0sIGFyaWwtc2VsZWN0LWJveFtmb3JtQ29udHJvbF0sIGFyaWwtc2VsZWN0LWJveFtmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWJveC5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIER4U2VsZWN0Qm94TW9kdWxlLCBEWElucHV0RXJyb3JNZXNzYWdlUGlwZSwgVHJhbnNsb2NvTW9kdWxlXSxcclxuXHRwcm92aWRlcnM6IFtJbnB1dEVycm9yTWVzc2FnZVBpcGVdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdEJveENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcblx0aXRlbUtleSA9IGlucHV0KCdrZXknKTtcclxuXHRpdGVtVGV4dCA9IGlucHV0KCd0ZXh0Jyk7XHJcblx0Z3JvdXBOYW1lID0gaW5wdXQoJycpO1xyXG5cdHBhcmVudFNlbGVjdGlvbktleSA9IGlucHV0KG51bGwpO1xyXG5cdHRhYmluZGV4ID0gaW5wdXQ8bnVtYmVyPigwKTtcclxuXHRpdGVtcyA9IGlucHV0LnJlcXVpcmVkPFNlbGVjdEJveEl0ZW1bXT4oKTtcclxuXHRzZWxlY3RlZEl0ZW1UZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcblx0c2VsZWN0aW9uSXRlbXMgPSBzaWduYWw8U2VsZWN0Qm94SXRlbVtdIHwgbnVsbD4obnVsbCk7XHJcblxyXG5cdC8qKiAqIEBkZXNjcmlwdGlvbiB3aGVuIGdyb3VwZWQgPSB0cnVlLCBvcHRpb24gaXRlbSBzdHJ1Y3R1cmUgeyBrZXk6c3RyaW5nLCBpdGVtczpbXSB9ICovXHJcblx0Z3JvdXBlZCA9IGlucHV0KGZhbHNlKTtcclxuXHRzaG93Q2xlYXJCdXR0b24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNlYXJjaEV4cHIgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXT4oJycpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RCb3hJdGVtPigpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ3JvdXBOYW1lKCkgfHwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSkgdGhpcy5nZXRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRzZXRUaXRsZShldmVudD86IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW1UZXh0ID0gJyc7XHJcblx0XHRpZiAoZXZlbnQgJiYgZXZlbnRbdGhpcy5pdGVtVGV4dCgpXS5sZW5ndGggPiAyNSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkSXRlbVRleHQgPSBldmVudCA/IGV2ZW50W3RoaXMuaXRlbVRleHQoKV0gOiAnJztcclxuXHRcdH1cclxuXHRcdHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0U2VsZWN0aW9uSXRlbXMoKSB7XHJcblx0XHRjb25zdCBwYXlsb2FkOiBTZWxlY3Rpb25SZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRncm91cE5hbWU6IHRoaXMuZ3JvdXBOYW1lKCksXHJcblx0XHRcdHBhcmVudFNlbGVjdGlvbktleTogdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKVxyXG5cdFx0fTtcclxuXHRcdGNvbnN0IGhvc3RBcGkgPSBBUElfQ09ORklHUy5hcGkucmVwbGFjZSgvXFwvW15cXC9dK1xcL3YxJC8sIGAvaG9zdC92MWApO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLnBvc3Q8U2VsZWN0aW9uR3JvdXBEVE8+KGhvc3RBcGkgKyAnL3NlbGVjdGlvbi1ncm91cC9sb2FkJywgcGF5bG9hZClcclxuXHRcdCk7XHJcblxyXG5cdFx0dGhpcy5zZWxlY3Rpb25JdGVtcy5zZXQoXHJcblx0XHRcdHNlbGVjdGlvbkdyb3VwPy5zZWxlY3Rpb25JdGVtcy5tYXAoKGl0ZW0pID0+ICh7XHJcblx0XHRcdFx0a2V5OiBpdGVtLnNlbGVjdGlvbktleSxcclxuXHRcdFx0XHR0ZXh0OiBpdGVtLnNlbGVjdGlvbkRpc3BsYXksXHJcblx0XHRcdFx0cGFyZW50U2VsZWN0aW9uS2V5OiBpdGVtLnBhcmVudFNlbGVjdGlvbktleVxyXG5cdFx0XHR9KSlcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiIsIjxkeC1zZWxlY3QtYm94XHJcblx0W2l0ZW1zXT1cInNlbGVjdGlvbkl0ZW1zKCkgfHwgaXRlbXMoKVwiXHJcblx0W3ZhbHVlRXhwcl09XCJpdGVtS2V5KClcIlxyXG5cdFtkaXNwbGF5RXhwcl09XCJpdGVtVGV4dCgpXCJcclxuXHRbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCJcclxuXHRbc2VhcmNoRXhwcl09XCJzZWFyY2hFeHByKClcIlxyXG5cdFt0YWJJbmRleF09XCJ0YWJpbmRleCgpXCJcclxuXHRbZ3JvdXBlZF09XCJncm91cGVkKClcIlxyXG5cdFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuXHRbc2hvd0NsZWFyQnV0dG9uXT1cInNob3dDbGVhckJ1dHRvbigpXCJcclxuXHRbaXNWYWxpZF09XCJuZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkIHx8IG5nQ29udHJvbD8uY29udHJvbD8ucHJpc3RpbmUgfHwgbmdDb250cm9sPy5jb250cm9sPy5kaXNhYmxlZCB8fCBmYWxzZVwiXHJcblx0W3ZhbGlkYXRpb25FcnJvcl09XCJuZ0NvbnRyb2w/LmNvbnRyb2w/LmVycm9ycyB8IGR4SW5wdXRFcnJvck1lc3NhZ2U6IG5nQ29udHJvbD8uY29udHJvbFwiXHJcblx0dmFsaWRhdGlvbk1lc3NhZ2VQb3NpdGlvbj1cInRvcFwiXHJcblx0W25vRGF0YVRleHRdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpXCJcclxuXHRbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG5cdChuZ01vZGVsQ2hhbmdlKT1cIm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSgkZXZlbnQpXCJcclxuXHQob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudC5zZWxlY3RlZEl0ZW0pO3NldFRpdGxlKCRldmVudC5zZWxlY3RlZEl0ZW0pXCJcclxuXHRbaW5wdXRBdHRyXT1cInsgJ3RpdGxlJzogc2VsZWN0ZWRJdGVtVGV4dCB9XCI+XHJcbjwvZHgtc2VsZWN0LWJveD5cclxuIl19
|
|
@@ -16,4 +16,4 @@ export var ExportType;
|
|
|
16
16
|
ExportType["Csv"] = "CSV";
|
|
17
17
|
ExportType["Excel"] = "EXCEL";
|
|
18
18
|
})(ExportType || (ExportType = {}));
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvdGFibGUvc3JjL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDckIsNEJBQWMsQ0FBQTtJQUNkLHlDQUEyQixDQUFBO0lBQzNCLDhDQUFnQyxDQUFBO0lBQ2hDLDJDQUE2QixDQUFBO0lBQzdCLGtDQUFvQixDQUFBO0lBQ3BCLDRCQUFjLENBQUE7SUFDZCxpQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBb0IsQ0FBQTtJQUNwQixnQ0FBa0IsQ0FBQTtJQUNsQiwyQkFBYSxDQUFBO0FBQ2QsQ0FBQyxFQVhXLFVBQVUsS0FBVixVQUFVLFFBV3JCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNyQix5QkFBVyxDQUFBO0lBQ1gsNkJBQWUsQ0FBQTtBQUNoQixDQUFDLEVBSFcsVUFBVSxLQUFWLFVBQVUsUUFHckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuXHJcbi8qKlxyXG4gKiBgZXhwb3J0TGFiZWxgIGRvc3lhIGlzbWlcclxuICpcclxuICogYHJvdXRlYCBzZXJ2aWNlIHBhdGhcclxuICpcclxuICogYHBhcmFtc2Agc2VydmljZSBwYXlsb2FkXHJcbiAqXHJcbiAqIGBkYXRlQ29sdW1uRm9ybWF0TWFwYCBjb2x1bW4gdmFsdWUgRGF0ZSBpc2UgZm9ybWF0IHZlcmlsbWVsaSB7QGxpbmsgRGF0ZUZvcm1hdH1cclxuICpcclxuICogYGNvbXB1dGVkQ29sdW1uTWFwYCBqc29uUGF0aCAoe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9qc29uLXBhdGgvSnNvblBhdGh9KSBmb3JtYXTEsW5kYSB5ZW5pIGZpZWxkIHRhbsSxbWxhbWFrIGnDp2luIGt1bGxhbsSxbMSxci5cclxuICpcclxuICogYGV4Y2x1ZGVkRmllbGRzYCBleHBvcnQgZWRpbG1lbWVzaSBpc3RlbmVuIGZpZWxkJ2xhclxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FyaWwuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9OVEQvcGFnZXMvODQyMjAzMTM5L0JhdGNoK0V4Y2VsK0NTVitFeHBvcnQrRnJvbStDb250cm9sbGVyc31cclxuICpcclxuICogQHVzYWdlTm90ZXNcclxuICogIyMjIEt1bGxhbsSxbSDDlnJuZcSfaVxyXG4gKlxyXG4gKiBgYGBcclxuICogPGkgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicGkgcGktZmlsZS1leHBvcnRcIiAoY2xpY2spPVwidGFibGVSZWYudG9nZ2xlRXhwb3J0KCRldmVudClcIj48L2k+XHJcbiAqXHJcbiAqIDxhcmlsLXRhYmxlXHJcbiAqICAgICAgI3RhYmxlUmVmXHJcbiAqICAgICAgW2V4cG9ydENvbmZpZ109XCJ7XHJcbiAqXHRcdFx0ZXhwb3J0TGFiZWw6ICdUw7xrZXRpbSBMaXN0ZXNpJyxcclxuICpcdFx0XHRyb3V0ZTogJ2NvbnN1bXB0aW9ucy9zZWFyY2gnLFxyXG4gKlx0XHRcdHBhcmFtczogW2Zvcm0udmFsdWVdLFxyXG4gKlx0XHRcdGV4Y2x1ZGVkRmllbGRzOiBbJ2lkJ11cclxuICpcdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwOiB7IHN0YXJ0RGF0ZTogRGF0ZUZvcm1hdC5ZZWFyLCBlbmREYXRlOiBEYXRlRm9ybWF0LkhvdXIgfSxcclxuICpcdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwOiB7IHN0YXR1czogeyBncm91cE5hbWU6ICdJbnZvaWNlU3RhdHVzJyB9IH1cclxuICogICAgICB9XCI+XHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRPcHRpb25zIGV4dGVuZHMgT21pdDxFeHBvcnRSZXF1ZXN0LCAnZXhwb3J0VHlwZScgfCAnaGVhZGVyTmFtZXMnIHwgJ291dHB1dEZpZWxkcyc+IHtcclxuXHRleGNsdWRlZEZpZWxkcz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRlRm9ybWF0IHtcclxuXHRIb3VyID0gJ2hoOm1tJyxcclxuXHRUaW1lID0gJ2RkL01NTU0veXl5eSBoaDptbScsXHJcblx0U2Vjb25kID0gJ2RkL01NTU0veXl5eSBoaDptbTpzcycsXHJcblx0TWludXRlID0gJ2RkL01NTU0veXl5eSBoaDptbScsXHJcblx0RGF5ID0gJ2RkL01NTU0veXl5eScsXHJcblx0T25seURheSA9ICdkZCcsXHJcblx0TW9udGggPSAnTU1NTS95eXl5JyxcclxuXHRNb250aEludCA9ICdNTS95eXl5JyxcclxuXHRPbmx5TW9udGggPSAnTU1NTScsXHJcblx0WWVhciA9ICd5eXl5J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRUeXBlIHtcclxuXHRDc3YgPSAnQ1NWJyxcclxuXHRFeGNlbCA9ICdFWENFTCdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRSZXF1ZXN0IHtcclxuXHRjdXN0b21SZXFVcmw/
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvdGFibGUvc3JjL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDckIsNEJBQWMsQ0FBQTtJQUNkLHlDQUEyQixDQUFBO0lBQzNCLDhDQUFnQyxDQUFBO0lBQ2hDLDJDQUE2QixDQUFBO0lBQzdCLGtDQUFvQixDQUFBO0lBQ3BCLDRCQUFjLENBQUE7SUFDZCxpQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBb0IsQ0FBQTtJQUNwQixnQ0FBa0IsQ0FBQTtJQUNsQiwyQkFBYSxDQUFBO0FBQ2QsQ0FBQyxFQVhXLFVBQVUsS0FBVixVQUFVLFFBV3JCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNyQix5QkFBVyxDQUFBO0lBQ1gsNkJBQWUsQ0FBQTtBQUNoQixDQUFDLEVBSFcsVUFBVSxLQUFWLFVBQVUsUUFHckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuXHJcbi8qKlxyXG4gKiBgZXhwb3J0TGFiZWxgIGRvc3lhIGlzbWlcclxuICpcclxuICogYHJvdXRlYCBzZXJ2aWNlIHBhdGhcclxuICpcclxuICogYHBhcmFtc2Agc2VydmljZSBwYXlsb2FkXHJcbiAqXHJcbiAqIGBkYXRlQ29sdW1uRm9ybWF0TWFwYCBjb2x1bW4gdmFsdWUgRGF0ZSBpc2UgZm9ybWF0IHZlcmlsbWVsaSB7QGxpbmsgRGF0ZUZvcm1hdH1cclxuICpcclxuICogYGNvbXB1dGVkQ29sdW1uTWFwYCBqc29uUGF0aCAoe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9qc29uLXBhdGgvSnNvblBhdGh9KSBmb3JtYXTEsW5kYSB5ZW5pIGZpZWxkIHRhbsSxbWxhbWFrIGnDp2luIGt1bGxhbsSxbMSxci5cclxuICpcclxuICogYGV4Y2x1ZGVkRmllbGRzYCBleHBvcnQgZWRpbG1lbWVzaSBpc3RlbmVuIGZpZWxkJ2xhclxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FyaWwuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9OVEQvcGFnZXMvODQyMjAzMTM5L0JhdGNoK0V4Y2VsK0NTVitFeHBvcnQrRnJvbStDb250cm9sbGVyc31cclxuICpcclxuICogQHVzYWdlTm90ZXNcclxuICogIyMjIEt1bGxhbsSxbSDDlnJuZcSfaVxyXG4gKlxyXG4gKiBgYGBcclxuICogPGkgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicGkgcGktZmlsZS1leHBvcnRcIiAoY2xpY2spPVwidGFibGVSZWYudG9nZ2xlRXhwb3J0KCRldmVudClcIj48L2k+XHJcbiAqXHJcbiAqIDxhcmlsLXRhYmxlXHJcbiAqICAgICAgI3RhYmxlUmVmXHJcbiAqICAgICAgW2V4cG9ydENvbmZpZ109XCJ7XHJcbiAqXHRcdFx0ZXhwb3J0TGFiZWw6ICdUw7xrZXRpbSBMaXN0ZXNpJyxcclxuICpcdFx0XHRyb3V0ZTogJ2NvbnN1bXB0aW9ucy9zZWFyY2gnLFxyXG4gKlx0XHRcdHBhcmFtczogW2Zvcm0udmFsdWVdLFxyXG4gKlx0XHRcdGV4Y2x1ZGVkRmllbGRzOiBbJ2lkJ11cclxuICpcdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwOiB7IHN0YXJ0RGF0ZTogRGF0ZUZvcm1hdC5ZZWFyLCBlbmREYXRlOiBEYXRlRm9ybWF0LkhvdXIgfSxcclxuICpcdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwOiB7IHN0YXR1czogeyBncm91cE5hbWU6ICdJbnZvaWNlU3RhdHVzJyB9IH1cclxuICogICAgICB9XCI+XHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRPcHRpb25zIGV4dGVuZHMgT21pdDxFeHBvcnRSZXF1ZXN0LCAnZXhwb3J0VHlwZScgfCAnaGVhZGVyTmFtZXMnIHwgJ291dHB1dEZpZWxkcyc+IHtcclxuXHRleGNsdWRlZEZpZWxkcz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRlRm9ybWF0IHtcclxuXHRIb3VyID0gJ2hoOm1tJyxcclxuXHRUaW1lID0gJ2RkL01NTU0veXl5eSBoaDptbScsXHJcblx0U2Vjb25kID0gJ2RkL01NTU0veXl5eSBoaDptbTpzcycsXHJcblx0TWludXRlID0gJ2RkL01NTU0veXl5eSBoaDptbScsXHJcblx0RGF5ID0gJ2RkL01NTU0veXl5eScsXHJcblx0T25seURheSA9ICdkZCcsXHJcblx0TW9udGggPSAnTU1NTS95eXl5JyxcclxuXHRNb250aEludCA9ICdNTS95eXl5JyxcclxuXHRPbmx5TW9udGggPSAnTU1NTScsXHJcblx0WWVhciA9ICd5eXl5J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRUeXBlIHtcclxuXHRDc3YgPSAnQ1NWJyxcclxuXHRFeGNlbCA9ICdFWENFTCdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRSZXF1ZXN0IHtcclxuXHRjdXN0b21SZXFVcmw/OiBBcHBzOyAvL2lzIGFkZGVkIGV4dGVybmFsbHlcclxuXHRleHBvcnRUeXBlOiBFeHBvcnRUeXBlO1xyXG5cdGV4cG9ydExhYmVsOiBzdHJpbmc7XHJcblx0cm91dGU6IHN0cmluZztcclxuXHR0cmVlQ2hpbGROYW1lPzogc3RyaW5nO1xyXG5cdHBhZ2VTaXplPzogbnVtYmVyO1xyXG5cdHBhcmFtczogQXJyYXk8YW55PjtcclxuXHRoZWFkZXJOYW1lczogc3RyaW5nW107XHJcblx0b3V0cHV0RmllbGRzOiBzdHJpbmdbXTtcclxuXHRjb2x1bW5GaWVsZFZhbHVlTWFwPzogQ29sdW1uRmllbGRWYWx1ZU1hcDtcclxuXHRkYXRlQ29sdW1uRm9ybWF0TWFwPzogRGF0ZUNvbHVtbkZvcm1hdE1hcDtcclxuXHRjb21wdXRlZENvbHVtbk1hcD86IENvbXB1dGVkQ29sdW1uTWFwO1xyXG5cdG51bWJlckNvbHVtblNjYWxlTWFwPzogTnVtYmVyQ29sdW1uU2NhbGVWYWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRGb3JtIHtcclxuXHRleHBvcnRUeXBlOiBGb3JtQ29udHJvbDxFeHBvcnRUeXBlPjtcclxuXHRleHBvcnRMYWJlbDogRm9ybUNvbnRyb2w8c3RyaW5nPjtcclxuXHRjb2x1bW5zOiBGb3JtQXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2xGb3JtIHtcclxuXHRjaGVja2VkOiBGb3JtQ29udHJvbDxib29sZWFuPjtcclxuXHR0aXRsZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcclxuXHRkYXRhS2V5OiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkZpZWxkVmFsdWVNYXAge1xyXG5cdFtrZXk6IHN0cmluZ106IENvbHVtbkZpZWxkVmFsdWVNYXBWYWx1ZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbHVtbkZpZWxkVmFsdWVNYXBWYWx1ZSB7XHJcblx0Z3JvdXBOYW1lOiBzdHJpbmc7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ29tcHV0ZWRDb2x1bW5NYXAge1xyXG5cdFtrZXk6IHN0cmluZ106IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIERhdGVDb2x1bW5Gb3JtYXRNYXAge1xyXG5cdFtrZXk6IHN0cmluZ106IERhdGVGb3JtYXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnVtYmVyQ29sdW1uU2NhbGVWYWx1ZSB7XHJcblx0W2tleTogc3RyaW5nXTogTnVtYmVyQ29sdW1uU2NhbGVNYXBWYWx1ZTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlckNvbHVtblNjYWxlTWFwVmFsdWUge1xyXG5cdHJvdW5kaW5nTW9kZTogJ1VQJyB8ICdET1dOJyB8ICdDRUlMSU5HJyB8ICdGTE9PUicgfCAnSEFMRl9VUCcgfCAnSEFMRl9ET1dOJyB8ICdIQUxGX0VWRU4nOyAvLyByb3VuZGluZ01vZGUgZGXEn2VybGVyaVxyXG5cdHNjYWxlOiBudW1iZXI7XHJcbn1cclxuIl19
|
|
@@ -160,7 +160,7 @@ export class TableComponent {
|
|
|
160
160
|
}
|
|
161
161
|
async export() {
|
|
162
162
|
const { exportType, exportLabel, columns } = this.exportForm.value;
|
|
163
|
-
const { route, params, pageSize, columnFieldValueMap, dateColumnFormatMap, computedColumnMap, customReqUrl, numberColumnScaleMap } = this.exportConfig();
|
|
163
|
+
const { route, params, pageSize, columnFieldValueMap, dateColumnFormatMap, computedColumnMap, customReqUrl, numberColumnScaleMap, treeChildName } = this.exportConfig();
|
|
164
164
|
const checkedColumns = columns.filter((t) => t.checked);
|
|
165
165
|
const fileExtension = this.exportTypeOptions.find((t) => t.key === exportType)?.fileExtension;
|
|
166
166
|
let columnFieldValueMapObj;
|
|
@@ -201,7 +201,8 @@ export class TableComponent {
|
|
|
201
201
|
columnFieldValueMap: columnFieldValueMapObj,
|
|
202
202
|
numberColumnScaleMap: numberColumnScaleMap ?? {},
|
|
203
203
|
headerNames: checkedColumns.map((col) => col.title),
|
|
204
|
-
outputFields: checkedColumns.map((col) => col.dataKey)
|
|
204
|
+
outputFields: checkedColumns.map((col) => col.dataKey),
|
|
205
|
+
treeChildName: treeChildName,
|
|
205
206
|
};
|
|
206
207
|
try {
|
|
207
208
|
const apiUrl = customReqUrl ? API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/${customReqUrl}/v1`) : API_CONFIGS.api;
|
|
@@ -281,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
281
282
|
}], expandableFields: [{
|
|
282
283
|
type: Input
|
|
283
284
|
}] } });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxN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Q04sUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7YUFDeEM7WUFDRCxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDekIsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3JCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0EvUlcsY0FBYztrR0FBZCxjQUFjLHUySkFJVCxvQkFBb0IsaUVBQzFCLFlBQVksMkVBQ1osS0FBSyxxRUNyRWpCLGcrVUFvUUE7OzJGRHJNYSxjQUFjO2tCQUwxQixTQUFTOytCQUNDLFlBQVk7Z1BBS1osV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ2dDLE9BQU87c0JBQTdDLGVBQWU7dUJBQUMsb0JBQW9CO2dCQUNaLEVBQUU7c0JBQTFCLFNBQVM7dUJBQUMsWUFBWTtnQkFDTCxRQUFRO3NCQUF6QixTQUFTO3VCQUFDLEtBQUs7Z0JBQ1AsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7XHJcblx0Y2F0Y2hFcnJvcixcclxuXHRjb25jYXRNYXAsXHJcblx0ZmlsdGVyLFxyXG5cdGZpbmFsaXplLFxyXG5cdGZpcnN0VmFsdWVGcm9tLFxyXG5cdGZyb20sXHJcblx0aW50ZXJ2YWwsXHJcblx0bWFwLFxyXG5cdHN3aXRjaE1hcCxcclxuXHR0YWtlLFxyXG5cdHRocm93RXJyb3IsXHJcblx0dG9BcnJheVxyXG59IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIENvbHVtbkZpZWxkVmFsdWVNYXAsIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uUGFnZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgbGF6eUxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5zITogVGFibGVDb2x1bW5zO1xyXG5cdEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvcCE6IE92ZXJsYXlQYW5lbDtcclxuXHRAVmlld0NoaWxkKFRhYmxlKSB0YWJsZVJlZiE6IFRhYmxlO1xyXG5cdEBJbnB1dCgpIGtlYmFiTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcblx0QElucHV0KCkgZXhwYW5kYWJsZUZpZWxkcyE6IHN0cmluZztcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oJ3NpbmdsZScpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cdGlzTGF6eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdHBhZ2luYXRvciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7IC8vICdib2R5J3wgJ215RGl2J1xyXG5cdGlzQ29sdW1uRXhwYW5kTW9kZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1Jlc2l6YWJsZUNvbHVtbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNTb3J0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRoYW5kbGVkU2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJztcclxuXHRzY3JvbGxhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2Nyb2xsSGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMzgwcHgnKTtcclxuXHRzb3J0TW9kZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpcGxlJz4oJ211bHRpcGxlJyk7XHJcblx0c2hvd0ZpcnN0TGFzdEljb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRyb3dTZWxlY3RhYmxlID0gaW5wdXQ8KHJvd0RhdGE6IGFueSkgPT4gYm9vbGVhbj4oKCkgPT4gdHJ1ZSk7XHJcblxyXG5cdGlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdC8qKlxyXG5cdCAqIEBzZWUge0BsaW5rIEV4cG9ydE9wdGlvbnN9XHJcblx0ICovXHJcblx0ZXhwb3J0Q29uZmlnID0gaW5wdXQ8RXhwb3J0T3B0aW9ucz4oKTtcclxuXHJcblx0ZXhwb3J0Rm9ybSE6IEZvcm1Hcm91cDxFeHBvcnRGb3JtPjtcclxuXHRleHBvcnRUeXBlT3B0aW9ucyA9IFtcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkV4Y2VsLCBsYWJlbDogJ0V4Y2VsJywgZmlsZUV4dGVuc2lvbjogJy54bHN4JyB9LFxyXG5cdFx0eyBrZXk6IEV4cG9ydFR5cGUuQ3N2LCBsYWJlbDogJ0NzdicsIGZpbGVFeHRlbnNpb246ICcuY3N2JyB9XHJcblx0XTtcclxuXHJcblx0ZmlsdGVyVGV4dCE6IHN0cmluZztcclxuXHRpc0FsbFNlbGVjdGVkID0gdHJ1ZTtcclxuXHRzZWxlY3RlZFJvd3M6IGFueTtcclxuXHRwYWdlT3B0aW9ucyA9IHBhZ2VPcHRpb25zO1xyXG5cdGV4cG9ydENvbHVtbnM6IEFycmF5PHsgdGl0bGU6IHN0cmluZzsgZGF0YUtleTogc3RyaW5nIH0+ID0gW107XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG5cdFx0cHJpdmF0ZSBmYjogTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcclxuXHRcdHByaXZhdGUgcHJpbWVuZ0NvbmZpZzogUHJpbWVOR0NvbmZpZyxcclxuXHRcdHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnByaW1lbmdDb25maWcuc2V0VHJhbnNsYXRpb24odHJhbmxhdGlvbnMpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmlzRmlyc3RSb3dTZWxlY3RlZCgpICYmIHRoaXMuZGF0YSgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLmRhdGEoKVswXTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93c0lucHV0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmV4cG9ydENvbmZpZygpKSB7XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVFeHBvcnRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmNoZWNrYm94U2VsZWN0aW9uKCkpIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSBudWxsO1xyXG5cdFx0XHRlbHNlIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSB0aGlzLnNlbGVjdGlvbk1vZGUoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmRhdGEoKT8ubGVuZ3RoID09IDEwKSB0aGlzLnRhYmxlUmVmLnJvd3MgPSAxMDtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc0luaXRpYWxMb2FkID0gdHJ1ZTtcclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXNbJ2RhdGEnXSAmJiBjaGFuZ2VzWydkYXRhJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydkYXRhJ10ucHJldmlvdXNWYWx1ZSkge1xyXG5cdFx0XHRpZiAodGhpcy5pc0luaXRpYWxMb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5pc0luaXRpYWxMb2FkID0gZmFsc2U7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZUV4cG9ydEZvcm0oKTogdm9pZCB7XHJcblx0XHRjb25zdCB7IGV4cG9ydExhYmVsIH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHR0aGlzLmV4cG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwPEV4cG9ydEZvcm0+KHtcclxuXHRcdFx0ZXhwb3J0VHlwZTogdGhpcy5mYi5jb250cm9sKEV4cG9ydFR5cGUuRXhjZWwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogdGhpcy5mYi5jb250cm9sKGV4cG9ydExhYmVsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0Y29sdW1uczogdGhpcy5mYi5hcnJheTxGb3JtR3JvdXA8Q29sRm9ybT4+KFtdKVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5jb2x1bW5zLl9yZXN1bHRzXHJcblx0XHRcdC5maWx0ZXIoKGNvbCkgPT4gY29sLnR5cGUoKSAhPT0gJ29wZXJhdGlvbnMnKVxyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IHtcclxuXHRcdFx0XHRjb25zdCBleHBvcnRDb25maWcgPSB0aGlzLmV4cG9ydENvbmZpZygpO1xyXG5cdFx0XHRcdGNvbnN0IGV4Y2x1ZGVkRmllbGRzID0gZXhwb3J0Q29uZmlnPy5leGNsdWRlZEZpZWxkcyA/PyBbXTtcclxuXHJcblx0XHRcdFx0cmV0dXJuICFleGNsdWRlZEZpZWxkcy5pbmNsdWRlcyhjb2wuZmllbGQoKSk7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5mb3JFYWNoKChjb2wpID0+IHtcclxuXHRcdFx0XHRjb25zdCBjb2xHcm91cCA9IHRoaXMuZmIuZ3JvdXA8Q29sRm9ybT4oe1xyXG5cdFx0XHRcdFx0Y2hlY2tlZDogdGhpcy5mYi5jb250cm9sKHRydWUpLFxyXG5cdFx0XHRcdFx0dGl0bGU6IHRoaXMuZmIuY29udHJvbChjb2wuaGVhZGVyKCkpLFxyXG5cdFx0XHRcdFx0ZGF0YUtleTogdGhpcy5mYi5jb250cm9sKGNvbC5maWVsZCgpKVxyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHR0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5wdXNoKGNvbEdyb3VwKTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodCkgPT4gKHRoaXMuaXNBbGxTZWxlY3RlZCA9IHQuZXZlcnkoKGEpID0+IGEuY2hlY2tlZCkpKTtcclxuXHR9XHJcblxyXG5cdGdldCBob3N0VXJsKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gYCR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5ob3N0fWA7XHJcblx0fVxyXG5cclxuXHRnZXQgY3VycmVudFBhZ2VSZXBvcnRUZXh0KCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCB0b3RhbCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3RhYmxlLnRvdGFsJyk7XHJcblx0XHRjb25zdCByZWNvcmQgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd0YWJsZS5yZWNvcmRzJyk7XHJcblx0XHRjb25zdCBwYWdlID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgndGFibGUucGFnZScpO1xyXG5cdFx0cmV0dXJuIGAke3RvdGFsfSA6IHt0b3RhbFJlY29yZHN9ICR7cmVjb3JkfSB8ICR7cGFnZX0gOiB7Y3VycmVudFBhZ2V9IC8ge3RvdGFsUGFnZXN9YDtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGV4cG9ydCgpIHtcclxuXHRcdGNvbnN0IHsgZXhwb3J0VHlwZSwgZXhwb3J0TGFiZWwsIGNvbHVtbnMgfSA9IHRoaXMuZXhwb3J0Rm9ybS52YWx1ZTtcclxuXHRcdGNvbnN0IHtcclxuXHRcdFx0cm91dGUsXHJcblx0XHRcdHBhcmFtcyxcclxuXHRcdFx0cGFnZVNpemUsXHJcblx0XHRcdGNvbHVtbkZpZWxkVmFsdWVNYXAsXHJcblx0XHRcdGRhdGVDb2x1bW5Gb3JtYXRNYXAsXHJcblx0XHRcdGNvbXB1dGVkQ29sdW1uTWFwLFxyXG5cdFx0XHRjdXN0b21SZXFVcmwsXHJcblx0XHRcdG51bWJlckNvbHVtblNjYWxlTWFwXHJcblx0XHR9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0Y29uc3QgY2hlY2tlZENvbHVtbnMgPSBjb2x1bW5zIS5maWx0ZXIoKHQpID0+IHQuY2hlY2tlZCk7XHJcblx0XHRjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5leHBvcnRUeXBlT3B0aW9ucy5maW5kKCh0KSA9PiB0LmtleSA9PT0gZXhwb3J0VHlwZSk/LmZpbGVFeHRlbnNpb247XHJcblxyXG5cdFx0bGV0IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmo6IENvbHVtbkZpZWxkVmFsdWVNYXAgfCB1bmRlZmluZWQ7XHJcblxyXG5cdFx0aWYgKGNvbHVtbkZpZWxkVmFsdWVNYXApIHtcclxuXHRcdFx0Y29uc3QgdGVtcE9iaiA9IHt9IGFzIENvbHVtbkZpZWxkVmFsdWVNYXA7XHJcblxyXG5cdFx0XHRhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHRmcm9tKE9iamVjdC5lbnRyaWVzKGNvbHVtbkZpZWxkVmFsdWVNYXApKS5waXBlKFxyXG5cdFx0XHRcdFx0Y29uY2F0TWFwKChbZmllbGROYW1lLCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdCF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt2YWx1ZS5ncm91cE5hbWV9fiR7dmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnfWBdXHJcblx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh2YWx1ZS5ncm91cE5hbWUsIHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IGtleSA9IHZhbHVlLmdyb3VwTmFtZSArICd+JyArICh2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGludGVydmFsKDEwKS5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdGZpbHRlcigoKSA9PiAhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuaXNMb2FkaW5nKGtleSkpLFxyXG5cdFx0XHRcdFx0XHRcdHRha2UoMSksXHJcblx0XHRcdFx0XHRcdFx0bWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0ZW1wT2JqW2ZpZWxkTmFtZV0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFjY1tpdGVtLnNlbGVjdGlvbktleV0gPSBpdGVtLnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LCB7fSkgYXMgYW55O1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRvQXJyYXkoKSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcE9iaiA9IHRlbXBPYmo7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRcdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydGluZycpLFxyXG5cdFx0XHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmVxdWVzdDogRXhwb3J0UmVxdWVzdCA9IHtcclxuXHRcdFx0cm91dGU6IHJvdXRlISxcclxuXHRcdFx0cGFyYW1zOiBwYXJhbXMhLFxyXG5cdFx0XHRwYWdlU2l6ZTogcGFnZVNpemUhLFxyXG5cdFx0XHRleHBvcnRUeXBlOiBleHBvcnRUeXBlISxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IGV4cG9ydExhYmVsISxcclxuXHRcdFx0Y29tcHV0ZWRDb2x1bW5NYXA6IGNvbXB1dGVkQ29sdW1uTWFwISxcclxuXHRcdFx0ZGF0ZUNvbHVtbkZvcm1hdE1hcDogZGF0ZUNvbHVtbkZvcm1hdE1hcCEsXHJcblx0XHRcdGNvbHVtbkZpZWxkVmFsdWVNYXA6IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmohLFxyXG5cdFx0XHRudW1iZXJDb2x1bW5TY2FsZU1hcDogbnVtYmVyQ29sdW1uU2NhbGVNYXAgPz8ge30sXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISlcclxuXHRcdH07XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgYXBpVXJsID0gY3VzdG9tUmVxVXJsID8gQVBJX0NPTkZJR1MuYXBpLnJlcGxhY2UoL1xcL1teXFwvXStcXC92MSQvLCBgLyR7Y3VzdG9tUmVxVXJsfS92MWApIDogQVBJX0NPTkZJR1MuYXBpO1xyXG5cdFx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHRcdHRoaXMuaHR0cC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbjsgdXJsOiBzdHJpbmcgfT4oYCR7YXBpVXJsfS9iYXRjaC1leHBvcnRlcnMvZXhwb3J0YCwgcmVxdWVzdCkucGlwZShcclxuXHRcdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0XHR0aGlzLmh0dHAuZ2V0KGAke2FwaVVybH0vYnVja2V0LW9iamVjdHMvZG93bmxvYWRgLCB7XHJcblx0XHRcdFx0XHRcdFx0cGFyYW1zOiB7IHVybDogcmVzLnVybCB9LFxyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKGVycm9yPy5zdGF0dXMgPT09IDQwMCB8fCBlcnJvcj8uc3RhdHVzID09PSA1MDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdFx0XHRzZXZlcml0eTogJ2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydFVybE5vdEZvdW5kJyksXHJcblx0XHRcdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuaG9zdFVybH0vIy9tbmcvY29udHJvbC1tYW5hZ2VtZW50L2V4cG9ydC1yZXF1ZXN0c2A7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHJcblx0XHRcdHNhdmVBcyhyZXNwb25zZSwgYCR7ZXhwb3J0TGFiZWx9LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9JHtmaWxlRXh0ZW5zaW9ufWApO1xyXG5cclxuXHRcdFx0dGhpcy5leHBvcnRGb3JtLnJlc2V0KCk7XHJcblx0XHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnN0IGVyciA9IGVycm9yIGFzIEh0dHBFcnJvclJlc3BvbnNlO1xyXG5cdFx0XHRpZiAoZXJyPy5zdGF0dXMgIT09IDQwMCAmJiBlcnI/LnN0YXR1cyAhPT0gNTAwKSB7XHJcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLmhvc3RVcmx9LyMvbW5nL2NvbnRyb2wtbWFuYWdlbWVudC9leHBvcnQtcmVxdWVzdHNgO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5hdChpKTtcclxuXHRcdFx0Zm9ybUdyb3VwLmNvbnRyb2xzLmNoZWNrZWQuc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlRXhwb3J0ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5vcC50b2dnbGUoZXZlbnQpO1xyXG5cclxuXHRoYW5kbGVMYXp5TG9hZEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5ld0V2ZW50RGF0YSA9IHtcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogZXZlbnQucm93cyxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiBldmVudC5maXJzdCAvIGV2ZW50LnJvd3MgKyAxXHJcblx0XHRcdH0sXHJcblx0XHRcdHNvcnQ6IGV2ZW50Lm11bHRpU29ydE1ldGEsXHJcblx0XHRcdGZpbHRlcjogZXZlbnQuZmlsdGVyc1xyXG5cdFx0fTtcclxuXHRcdHRoaXMubGF6eUxvYWRFdmVudC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMudGFibGVSZWYudmFsdWUgPSBbXTtcclxuXHRcdHRoaXMudGFibGVSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHR9XHJcbn1cclxuIiwiPHAtdGFibGVcclxuXHQjcmVmXHJcblx0W3ZhbHVlXT1cImRhdGEoKVwiXHJcblx0W2RhdGFLZXldPVwiZGF0YUtleSgpXCJcclxuXHRbY29sdW1uc109XCJjb2x1bW5zLl9yZXN1bHRzXCJcclxuXHRbcm93c109XCJwYWdlU2l6ZSgpXCJcclxuXHRbcm93SG92ZXJdPVwidHJ1ZVwiXHJcblx0W3BhZ2luYXRvcl09XCIhdGhpcy5pc0xhenkoKSB8fCB0aGlzLnRvdGFsUmVjb3JkcygpID4gMTAgPyB0aGlzLnBhZ2luYXRvcigpIDogZmFsc2VcIlxyXG5cdFtsYXp5XT1cImlzTGF6eSgpXCJcclxuXHRbbGF6eUxvYWRPbkluaXRdPVwiZmFsc2VcIlxyXG5cdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzKClcIlxyXG5cdFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLCAyMCwgNTAsIDEwMF1cIlxyXG5cdFtyb3dTZWxlY3RhYmxlXT1cInJvd1NlbGVjdGFibGUoKVwiXHJcblx0W2ZpbHRlckRlbGF5XT1cIjBcIlxyXG5cdFtzb3J0TW9kZV09XCJzb3J0TW9kZSgpXCJcclxuXHRbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRSb3dzXCJcclxuXHQob25QYWdlKT1cIm9uUGFnZUV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcblx0KG9uTGF6eUxvYWQpPVwiaGFuZGxlTGF6eUxvYWRFdmVudCgkZXZlbnQpXCJcclxuXHQoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkV2ZW50LmVtaXQoc2VsZWN0ZWRSb3dzKVwiXHJcblx0W3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcclxuXHRbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlKClcIlxyXG5cdFtjb2x1bW5SZXNpemVNb2RlXT1cImlzQ29sdW1uRXhwYW5kTW9kZSgpID8gJ2V4cGFuZCcgOiAnJ1wiXHJcblx0W3Jlc2l6YWJsZUNvbHVtbnNdPVwiaXNSZXNpemFibGVDb2x1bW5zKClcIlxyXG5cdFtjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlXT1cImN1cnJlbnRQYWdlUmVwb3J0VGV4dFwiXHJcblx0c3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCJcclxuXHRbcGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUb109XCJwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvKClcIlxyXG5cdFtzY3JvbGxhYmxlXT1cInNjcm9sbGFibGUoKVwiXHJcblx0W3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHQoKVwiXHJcblx0W3Nob3dGaXJzdExhc3RJY29uXT1cInNob3dGaXJzdExhc3RJY29uKClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJncm91cGhlYWRlclwiIGxldC1pdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCIgbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIj5cclxuXHRcdDx0ciBwUm93R3JvdXBIZWFkZXIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjXCI+XHJcblx0XHRcdDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMuX3Jlc3VsdHMubGVuZ3RoXCI+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgbWwtMlwiIHN0eWxlPVwiY29sb3I6ICM2YjcyODBcIj57eyBpdGVtLmdyb3VwTmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0PC90ZD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRAaWYgKGhlYWRlckNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHRcdFx0PHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRAaWYgKGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJykge1xyXG5cdFx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+xLDFn2xlbWxlcjwvZGl2PlxyXG5cdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdEBpZiAoaXNSZXNpemFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHRcdFx0PHRoXHJcblx0XHRcdFx0XHRcdFx0W3BTb3J0YWJsZUNvbHVtbl09XCJjb2x1bW4uZmllbGQoKVwiXHJcblx0XHRcdFx0XHRcdFx0W25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCJcclxuXHRcdFx0XHRcdFx0XHRwUmVzaXphYmxlQ29sdW1uPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmICghaXNMYXp5KCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAoaXNTb3J0YWJsZSgpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8dGggW25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCIgc3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcblx0XHRAaWYgKGhhbmRsZWRTZWxlY3Rpb25Nb2RlKSB7XHJcblx0XHRcdDx0ciBbcFNlbGVjdGFibGVSb3ddPVwiaXRlbVwiIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCI+XHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PHRyIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCI+XHJcblx0XHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cIml0ZW1cIj48L3AtdGFibGVDaGVja2JveD5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH1cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRAaWYgKHNob3dGb290ZXIoKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIj5cclxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH1cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLl9yZXN1bHRzLmxlbmd0aFwiPnt7IG5vRGF0YUZvdW5kTGFiZWwoKSB9fTwvdGQ+XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuXHJcbjxwLW92ZXJsYXlQYW5lbCBzdHlsZUNsYXNzPVwiZXhwb3J0LW92ZXJsYXktcGFuZWxcIj5cclxuXHRAaWYgKGV4cG9ydEZvcm0pIHtcclxuXHRcdDxhcmlsLWZvcm0gW2Zvcm1Hcm91cF09XCJleHBvcnRGb3JtXCIgY2xhc3M9XCJ3LTIwcmVtXCI+XHJcblx0XHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCInRG9zeWEgVGlwaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC1yYWRpby1idXR0b24gZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0VHlwZVwiIFtvcHRpb25zXT1cImV4cG9ydFR5cGVPcHRpb25zXCIgLz5cclxuXHRcdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSDEsHNtaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC10ZXh0IGNsYXNzPVwidy1mdWxsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0TGFiZWxcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJjb2x1bW5zXCI+XHJcblx0XHRcdFx0PHAtb3JkZXJMaXN0XHJcblx0XHRcdFx0XHQjb3JkZXJMaXN0UmVmXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmNvbnRyb2xzXCJcclxuXHRcdFx0XHRcdFtsaXN0U3R5bGVdPVwieyAnbWF4LWhlaWdodCc6ICcyMHJlbScgfVwiXHJcblx0XHRcdFx0XHRmaWx0ZXJCeT1cInZhbHVlLnRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZmlsdGVyXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94XHJcblx0XHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwiJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiaXNBbGxTZWxlY3RlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIC8+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLW9yZGVybGlzdC1maWx0ZXJcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ZpbHRlcidcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjZmlsdGVyXHJcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0cm9sZT1cInRleHRib3hcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoa2V5dXApPVwib3JkZXJMaXN0UmVmLm9uRmlsdGVyS2V5dXAoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJvcmRlckxpc3RSZWYuZGlzYWJsZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlci1pbnB1dCBwLWlucHV0dGV4dCBwLWNvbXBvbmVudFwiIC8+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBsZXQtY29sIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3ggW2xhYmVsXT1cImNvbC52YWx1ZS50aXRsZVwiIFtmb3JtQ29udHJvbF09XCJjb2wuY29udHJvbHMuY2hlY2tlZFwiIC8+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDwvcC1vcmRlckxpc3Q+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0PGFyaWwtYnV0dG9uIGNsYXNzPVwiY29sLTEyXCIgW2xhYmVsXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydCcpXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrRXZlbnQpPVwiZXhwb3J0KClcIiAvPlxyXG5cdFx0PC9hcmlsLWZvcm0+XHJcblx0fVxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFdBQVcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBVSxDQUFDO0FBYy9DLE1BQU0sT0FBTyxjQUFjO0lBMkQxQixZQUNTLElBQWdCLEVBQ2hCLEVBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGNBQThCLEVBQy9CLGdCQUFrQyxFQUNqQyxxQkFBNEM7UUFMNUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBaEUzQyxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUQsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUk1RCxtQkFBYyxHQUFlLEVBQUUsQ0FBQztRQUd6QyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBUyxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLEtBQUssRUFBVyxDQUFDO1FBQ3JDLDRCQUF1QixHQUFHLEtBQUssRUFBVyxDQUFDO1FBQzNDLGFBQVEsR0FBRyxLQUFLLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQUssR0FBRyxLQUFLLENBQWEsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsV0FBTSxHQUFHLEtBQUssQ0FBYSxNQUFNLENBQUMsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLEtBQUssQ0FBaUIsUUFBUSxDQUFDLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDbkMscUJBQWdCLEdBQUcsS0FBSyxDQUFTLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLG9CQUFlLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMzQyxZQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLEtBQUssQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUNuQyxXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDakMsOEJBQXlCLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1FBQ3JFLHVCQUFrQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMzQyx1QkFBa0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDM0MsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyx5QkFBb0IsR0FBbUIsUUFBUSxDQUFDO1FBQ2hELGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLEtBQUssQ0FBd0IsVUFBVSxDQUFDLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3pDLGtCQUFhLEdBQUcsS0FBSyxDQUE0QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3RCw2QkFBd0IsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDaEQ7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLEtBQUssRUFBaUIsQ0FBQztRQUd0QyxzQkFBaUIsR0FBRztZQUNuQixFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRTtZQUNqRSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRTtTQUM1RCxDQUFDO1FBR0Ysa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFDMUIsa0JBQWEsR0FBOEMsRUFBRSxDQUFDO1FBeUN0RCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQTZLN0IsaUJBQVksR0FBRyxDQUFDLEtBQVksRUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUE1TTVELElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDOUMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFBRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDOztnQkFDMUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksRUFBRTtnQkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBSUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZGLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsT0FBTztZQUNSLENBQUM7UUFDRixDQUFDO0lBQ0YsQ0FBQztJQUVPLGdCQUFnQjtRQUN2QixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRyxDQUFDO1FBRTdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQWE7WUFDM0MsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNsRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDOUQsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFxQixFQUFFLENBQUM7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2FBQ25CLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLFlBQVksQ0FBQzthQUM1QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNmLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6QyxNQUFNLGNBQWMsR0FBRyxZQUFZLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUUxRCxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7YUFDRCxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBVTtnQkFDdkMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVixPQUFPLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsT0FBTyxHQUFHLEtBQUsscUJBQXFCLE1BQU0sTUFBTSxJQUFJLGlDQUFpQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNYLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ25FLE1BQU0sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUcsQ0FBQztRQUV6QixNQUFNLGNBQWMsR0FBRyxPQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsRUFBRSxhQUFhLENBQUM7UUFFOUYsSUFBSSxzQkFBdUQsQ0FBQztRQUU1RCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLEdBQUcsRUFBeUIsQ0FBQztZQUUxQyxNQUFNLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDaEMsSUFDQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLEtBQUssRUFBRSxDQUFDLEVBQ3ZHLENBQUM7b0JBQ0YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNqRixDQUFDO2dCQUVELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLEtBQUssQ0FBQyxDQUFDO2dCQUV4RSxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDeEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ1IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN6RSxJQUFJLGNBQWMsRUFBRSxDQUFDO3dCQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUEyQixFQUFFLElBQUksRUFBRSxFQUFFOzRCQUMvRixHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzs0QkFDL0MsT0FBTyxHQUFHLENBQUM7NEJBQ1gsOERBQThEO3dCQUMvRCxDQUFDLEVBQUUsRUFBRSxDQUFRLENBQUM7b0JBQ2YsQ0FBQztnQkFDRixDQUFDLENBQUMsQ0FDRixDQUFDO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsT0FBTyxFQUFFLEVBQ1QsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDYixzQkFBc0IsR0FBRyxPQUFPLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUN2QixRQUFRLEVBQUUsU0FBUztvQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7b0JBQzlELEdBQUcsRUFBRSxZQUFZO2lCQUNqQixDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FDRixDQUNELENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQWtCO1lBQzlCLEtBQUssRUFBRSxLQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU87WUFDZixRQUFRLEVBQUUsUUFBUztZQUNuQixVQUFVLEVBQUUsVUFBVztZQUN2QixXQUFXLEVBQUUsV0FBWTtZQUN6QixpQkFBaUIsRUFBRSxpQkFBa0I7WUFDckMsbUJBQW1CLEVBQUUsbUJBQW9CO1lBQ3pDLG1CQUFtQixFQUFFLHNCQUF1QjtZQUM1QyxvQkFBb0IsRUFBRSxvQkFBb0IsSUFBSSxFQUFFO1lBQ2hELFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBTSxDQUFDO1lBQ3BELFlBQVksRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBUSxDQUFDO1lBQ3ZELGFBQWEsRUFBRSxhQUFjO1NBQzdCLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDaEgsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvQyxHQUFHLE1BQU0seUJBQXlCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNsRyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sMEJBQTBCLEVBQUU7Z0JBQ2xELE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN4QixZQUFZLEVBQUUsTUFBTTthQUNwQixDQUFDLENBQ0YsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQzt3QkFDdkIsUUFBUSxFQUFFLE9BQU87d0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDO3dCQUN0RSxHQUFHLEVBQUUsWUFBWTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO3FCQUFNLENBQUM7b0JBQ1AsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTywyQ0FBMkMsQ0FBQztvQkFDbEYsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7WUFDRixDQUFDLENBQUMsQ0FDRixDQUNELENBQUM7WUFFRixNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsV0FBVyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUUzRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDakIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxHQUFHLEdBQUcsS0FBMEIsQ0FBQztZQUN2QyxJQUFJLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sMkNBQTJDLENBQUM7WUFDbkYsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWM7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0YsQ0FBQztJQUlELG1CQUFtQixDQUFDLEtBQVU7UUFDN0IsTUFBTSxZQUFZLEdBQUc7WUFDcEIsS0FBSyxFQUFFO2dCQUNOLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTztTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBalNXLGNBQWM7a0dBQWQsY0FBYyx1MkpBSVQsb0JBQW9CLGlFQUMxQixZQUFZLDJFQUNaLEtBQUsscUVDckVqQixnK1VBb1FBOzsyRkRyTWEsY0FBYztrQkFMMUIsU0FBUzsrQkFDQyxZQUFZO2dQQUtaLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNnQyxPQUFPO3NCQUE3QyxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDWixFQUFFO3NCQUExQixTQUFTO3VCQUFDLFlBQVk7Z0JBQ0wsUUFBUTtzQkFBekIsU0FBUzt1QkFBQyxLQUFLO2dCQUNQLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdENvbnRlbnRDaGlsZHJlbixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T3V0cHV0LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRpbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UsIFByaW1lTkdDb25maWcgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQge1xyXG5cdGNhdGNoRXJyb3IsXHJcblx0Y29uY2F0TWFwLFxyXG5cdGZpbHRlcixcclxuXHRmaW5hbGl6ZSxcclxuXHRmaXJzdFZhbHVlRnJvbSxcclxuXHRmcm9tLFxyXG5cdGludGVydmFsLFxyXG5cdG1hcCxcclxuXHRzd2l0Y2hNYXAsXHJcblx0dGFrZSxcclxuXHR0aHJvd0Vycm9yLFxyXG5cdHRvQXJyYXlcclxufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBQcm94eVR5cGVzIH0gZnJvbSAnYXJpbC9odHRwJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnYXJpbC90aGVtZS9sYXlvdXQnO1xyXG5cclxuaW1wb3J0IHsgdHJhbmxhdGlvbnMgfSBmcm9tICcuL2kxOG4nO1xyXG5pbXBvcnQgeyBDb2xGb3JtLCBDb2x1bW5GaWVsZFZhbHVlTWFwLCBFeHBvcnRGb3JtLCBFeHBvcnRPcHRpb25zLCBFeHBvcnRSZXF1ZXN0LCBFeHBvcnRUeXBlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQWxpZ25UeXBlcywgVGFibGVDb2x1bW5Db21wb25lbnQsIFRhYmxlQ29sdW1ucyB9IGZyb20gJy4vdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XHJcblxyXG4vKiBUT0RPIDpcclxuICogc2VydmVyLXNpZGUtcHJveHkgKFByb3h5VHlwZXMuU2VydmVyU2lkZSlcclxuICogc2VhcmNoICYgY29sdW0gZmlsdGVyICYgc29ydFxyXG4gKiBwYWdpbmF0aW9uIG9wZXJhdGlvblxyXG4gKiBRdWVyeSBTaWduYWxzXHJcbiAqL1xyXG5jb25zdCBwYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdIGFzIGNvbnN0O1xyXG5cclxudHlwZSBTZWxlY3Rpb25UeXBlcyA9ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8IG51bGw7XHJcbmludGVyZmFjZSBJS2ViYWJNZW51SXRlbSB7XHJcblx0aWNvbjogc3RyaW5nO1xyXG5cdGxhYmVsOiBzdHJpbmc7XHJcblx0b25DbGljazogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FyaWwtdGFibGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQge1xyXG5cdEBPdXRwdXQoKSBvblBhZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgc2VsZWN0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIGxhenlMb2FkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QENvbnRlbnRDaGlsZHJlbihUYWJsZUNvbHVtbkNvbXBvbmVudCkgY29sdW1ucyE6IFRhYmxlQ29sdW1ucztcclxuXHRAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgb3AhOiBPdmVybGF5UGFuZWw7XHJcblx0QFZpZXdDaGlsZChUYWJsZSkgdGFibGVSZWYhOiBUYWJsZTtcclxuXHRASW5wdXQoKSBrZWJhYk1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGV4cGFuZGFibGVGaWVsZHMhOiBzdHJpbmc7XHJcblxyXG5cdGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxhbnlbXT4oKTtcclxuXHRjaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0aGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdHBhZ2VTaXplID0gaW5wdXQ8KHR5cGVvZiBwYWdlT3B0aW9ucylbbnVtYmVyXT4oMTApO1xyXG5cdHByb3h5ID0gaW5wdXQ8UHJveHlUeXBlcz4oUHJveHlUeXBlcy5OYXRpdmUpO1xyXG5cdHNob3dGb290ZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0dEFsaWduID0gaW5wdXQ8QWxpZ25UeXBlcz4oJ2xlZnQnKTtcclxuXHRzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8U2VsZWN0aW9uVHlwZXM+KCdzaW5nbGUnKTtcclxuXHRzaG93U2VhcmNoVG9vbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHNob3dFeHBvcnRUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0ZXhwb3J0RmlsZU5hbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRub0RhdGFGb3VuZExhYmVsID0gaW5wdXQ8c3RyaW5nPignTm8gRGF0YSBGb3VuZCcpO1xyXG5cdHRhYmxlSGVhZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2hvd1RhYmxlSGVhZGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzRmlyc3RSb3dTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRkYXRhS2V5ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2VsZWN0ZWRSb3dzSW5wdXQgPSBpbnB1dDxhbnk+KFtdKTtcclxuXHRpc0xhenkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0dG90YWxSZWNvcmRzID0gaW5wdXQ8bnVtYmVyPigwKTtcclxuXHRwYWdpbmF0b3IgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvID0gaW5wdXQ8c3RyaW5nPignYm9keScpOyAvLyAnYm9keSd8ICdteURpdidcclxuXHRpc0NvbHVtbkV4cGFuZE1vZGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNSZXNpemFibGVDb2x1bW5zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzU29ydGFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aGFuZGxlZFNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZSc7XHJcblx0c2Nyb2xsYWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHNjcm9sbEhlaWdodCA9IGlucHV0PHN0cmluZz4oJzM4MHB4Jyk7XHJcblx0c29ydE1vZGUgPSBpbnB1dDwnc2luZ2xlJyB8ICdtdWx0aXBsZSc+KCdtdWx0aXBsZScpO1xyXG5cdHNob3dGaXJzdExhc3RJY29uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0cm93U2VsZWN0YWJsZSA9IGlucHV0PChyb3dEYXRhOiBhbnkpID0+IGJvb2xlYW4+KCgpID0+IHRydWUpO1xyXG5cclxuXHRpc1Nob3dOb0RhdGFGb3VuZE1lc3NhZ2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHQvKipcclxuXHQgKiBAc2VlIHtAbGluayBFeHBvcnRPcHRpb25zfVxyXG5cdCAqL1xyXG5cdGV4cG9ydENvbmZpZyA9IGlucHV0PEV4cG9ydE9wdGlvbnM+KCk7XHJcblxyXG5cdGV4cG9ydEZvcm0hOiBGb3JtR3JvdXA8RXhwb3J0Rm9ybT47XHJcblx0ZXhwb3J0VHlwZU9wdGlvbnMgPSBbXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5FeGNlbCwgbGFiZWw6ICdFeGNlbCcsIGZpbGVFeHRlbnNpb246ICcueGxzeCcgfSxcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkNzdiwgbGFiZWw6ICdDc3YnLCBmaWxlRXh0ZW5zaW9uOiAnLmNzdicgfVxyXG5cdF07XHJcblxyXG5cdGZpbHRlclRleHQhOiBzdHJpbmc7XHJcblx0aXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcblx0c2VsZWN0ZWRSb3dzOiBhbnk7XHJcblx0cGFnZU9wdGlvbnMgPSBwYWdlT3B0aW9ucztcclxuXHRleHBvcnRDb2x1bW5zOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGRhdGFLZXk6IHN0cmluZyB9PiA9IFtdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgZmI6IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXHJcblx0XHRwcml2YXRlIHByaW1lbmdDb25maWc6IFByaW1lTkdDb25maWcsXHJcblx0XHRwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBzZWxlY3Rpb25Hcm91cFNlcnZpY2U6IFNlbGVjdGlvbkdyb3VwU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5wcmltZW5nQ29uZmlnLnNldFRyYW5zbGF0aW9uKHRyYW5sYXRpb25zKTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5pc0ZpcnN0Um93U2VsZWN0ZWQoKSAmJiB0aGlzLmRhdGEoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5kYXRhKClbMF07XHJcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25FdmVudC5lbWl0KHRoaXMuc2VsZWN0ZWRSb3dzKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5leHBvcnRDb25maWcoKSkge1xyXG5cdFx0XHRcdHRoaXMuY3JlYXRlRXhwb3J0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5jaGVja2JveFNlbGVjdGlvbigpKSB0aGlzLmhhbmRsZWRTZWxlY3Rpb25Nb2RlID0gbnVsbDtcclxuXHRcdFx0ZWxzZSB0aGlzLmhhbmRsZWRTZWxlY3Rpb25Nb2RlID0gdGhpcy5zZWxlY3Rpb25Nb2RlKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5kYXRhKCk/Lmxlbmd0aCA9PSAxMCkgdGhpcy50YWJsZVJlZi5yb3dzID0gMTA7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaXNJbml0aWFsTG9hZCA9IHRydWU7XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snZGF0YSddLnByZXZpb3VzVmFsdWUpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNJbml0aWFsTG9hZCkge1xyXG5cdFx0XHRcdHRoaXMuaXNJbml0aWFsTG9hZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHQpID0+ICh0aGlzLmlzQWxsU2VsZWN0ZWQgPSB0LmV2ZXJ5KChhKSA9PiBhLmNoZWNrZWQpKSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaG9zdFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH1gO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1cnJlbnRQYWdlUmVwb3J0VGV4dCgpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgdG90YWwgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd0YWJsZS50b3RhbCcpO1xyXG5cdFx0Y29uc3QgcmVjb3JkID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgndGFibGUucmVjb3JkcycpO1xyXG5cdFx0Y29uc3QgcGFnZSA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3RhYmxlLnBhZ2UnKTtcclxuXHRcdHJldHVybiBgJHt0b3RhbH0gOiB7dG90YWxSZWNvcmRzfSAke3JlY29yZH0gfCAke3BhZ2V9IDoge2N1cnJlbnRQYWdlfSAvIHt0b3RhbFBhZ2VzfWA7XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBvcnQoKSB7XHJcblx0XHRjb25zdCB7IGV4cG9ydFR5cGUsIGV4cG9ydExhYmVsLCBjb2x1bW5zIH0gPSB0aGlzLmV4cG9ydEZvcm0udmFsdWU7XHJcblx0XHRjb25zdCB7XHJcblx0XHRcdHJvdXRlLFxyXG5cdFx0XHRwYXJhbXMsXHJcblx0XHRcdHBhZ2VTaXplLFxyXG5cdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwLFxyXG5cdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwLFxyXG5cdFx0XHRjb21wdXRlZENvbHVtbk1hcCxcclxuXHRcdFx0Y3VzdG9tUmVxVXJsLFxyXG5cdFx0XHRudW1iZXJDb2x1bW5TY2FsZU1hcCxcclxuXHRcdFx0dHJlZUNoaWxkTmFtZVxyXG5cdFx0fSA9IHRoaXMuZXhwb3J0Q29uZmlnKCkhO1xyXG5cclxuXHRcdGNvbnN0IGNoZWNrZWRDb2x1bW5zID0gY29sdW1ucyEuZmlsdGVyKCh0KSA9PiB0LmNoZWNrZWQpO1xyXG5cdFx0Y29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZXhwb3J0VHlwZU9wdGlvbnMuZmluZCgodCkgPT4gdC5rZXkgPT09IGV4cG9ydFR5cGUpPy5maWxlRXh0ZW5zaW9uO1xyXG5cclxuXHRcdGxldCBjb2x1bW5GaWVsZFZhbHVlTWFwT2JqOiBDb2x1bW5GaWVsZFZhbHVlTWFwIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRcdGlmIChjb2x1bW5GaWVsZFZhbHVlTWFwKSB7XHJcblx0XHRcdGNvbnN0IHRlbXBPYmogPSB7fSBhcyBDb2x1bW5GaWVsZFZhbHVlTWFwO1xyXG5cclxuXHRcdFx0YXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcblx0XHRcdFx0ZnJvbShPYmplY3QuZW50cmllcyhjb2x1bW5GaWVsZFZhbHVlTWFwKSkucGlwZShcclxuXHRcdFx0XHRcdGNvbmNhdE1hcCgoW2ZpZWxkTmFtZSwgdmFsdWVdKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHQhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClbYCR7dmFsdWUuZ3JvdXBOYW1lfX4ke3ZhbHVlLnBhcmVudFNlbGVjdGlvbktleSA/PyAnQUxMJ31gXVxyXG5cdFx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5mZXRjaEVudW0odmFsdWUuZ3JvdXBOYW1lLCB2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBrZXkgPSB2YWx1ZS5ncm91cE5hbWUgKyAnficgKyAodmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnKTtcclxuXHJcblx0XHRcdFx0XHRcdHJldHVybiBpbnRlcnZhbCgxMCkucGlwZShcclxuXHRcdFx0XHRcdFx0XHRmaWx0ZXIoKCkgPT4gIXRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmlzTG9hZGluZyhrZXkpKSxcclxuXHRcdFx0XHRcdFx0XHR0YWtlKDEpLFxyXG5cdFx0XHRcdFx0XHRcdG1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2tleV07XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoc2VsZWN0aW9uR3JvdXApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGVtcE9ialtmaWVsZE5hbWVdID0gc2VsZWN0aW9uR3JvdXAuc2VsZWN0aW9uSXRlbXMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGl0ZW0pID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRhY2NbaXRlbS5zZWxlY3Rpb25LZXldID0gaXRlbS5zZWxlY3Rpb25EaXNwbGF5O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBhY2M7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSwge30pIGFzIGFueTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHR0b0FycmF5KCksXHJcblx0XHRcdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbHVtbkZpZWxkVmFsdWVNYXBPYmogPSB0ZW1wT2JqO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdFx0XHRzdW1tYXJ5OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdtZXNzYWdlcy5leHBvcnRpbmcnKSxcclxuXHRcdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlcXVlc3Q6IEV4cG9ydFJlcXVlc3QgPSB7XHJcblx0XHRcdHJvdXRlOiByb3V0ZSEsXHJcblx0XHRcdHBhcmFtczogcGFyYW1zISxcclxuXHRcdFx0cGFnZVNpemU6IHBhZ2VTaXplISxcclxuXHRcdFx0ZXhwb3J0VHlwZTogZXhwb3J0VHlwZSEsXHJcblx0XHRcdGV4cG9ydExhYmVsOiBleHBvcnRMYWJlbCEsXHJcblx0XHRcdGNvbXB1dGVkQ29sdW1uTWFwOiBjb21wdXRlZENvbHVtbk1hcCEsXHJcblx0XHRcdGRhdGVDb2x1bW5Gb3JtYXRNYXA6IGRhdGVDb2x1bW5Gb3JtYXRNYXAhLFxyXG5cdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwOiBjb2x1bW5GaWVsZFZhbHVlTWFwT2JqISxcclxuXHRcdFx0bnVtYmVyQ29sdW1uU2NhbGVNYXA6IG51bWJlckNvbHVtblNjYWxlTWFwID8/IHt9LFxyXG5cdFx0XHRoZWFkZXJOYW1lczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC50aXRsZSEpLFxyXG5cdFx0XHRvdXRwdXRGaWVsZHM6IGNoZWNrZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wuZGF0YUtleSEpLFxyXG5cdFx0XHR0cmVlQ2hpbGROYW1lOiB0cmVlQ2hpbGROYW1lISxcclxuXHRcdH07XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgYXBpVXJsID0gY3VzdG9tUmVxVXJsID8gQVBJX0NPTkZJR1MuYXBpLnJlcGxhY2UoL1xcL1teXFwvXStcXC92MSQvLCBgLyR7Y3VzdG9tUmVxVXJsfS92MWApIDogQVBJX0NPTkZJR1MuYXBpO1xyXG5cdFx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHRcdHRoaXMuaHR0cC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbjsgdXJsOiBzdHJpbmcgfT4oYCR7YXBpVXJsfS9iYXRjaC1leHBvcnRlcnMvZXhwb3J0YCwgcmVxdWVzdCkucGlwZShcclxuXHRcdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0XHR0aGlzLmh0dHAuZ2V0KGAke2FwaVVybH0vYnVja2V0LW9iamVjdHMvZG93bmxvYWRgLCB7XHJcblx0XHRcdFx0XHRcdFx0cGFyYW1zOiB7IHVybDogcmVzLnVybCB9LFxyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKGVycm9yPy5zdGF0dXMgPT09IDQwMCB8fCBlcnJvcj8uc3RhdHVzID09PSA1MDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdFx0XHRzZXZlcml0eTogJ2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydFVybE5vdEZvdW5kJyksXHJcblx0XHRcdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuaG9zdFVybH0vIy9tbmcvY29udHJvbC1tYW5hZ2VtZW50L2V4cG9ydC1yZXF1ZXN0c2A7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHJcblx0XHRcdHNhdmVBcyhyZXNwb25zZSwgYCR7ZXhwb3J0TGFiZWx9LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9JHtmaWxlRXh0ZW5zaW9ufWApO1xyXG5cclxuXHRcdFx0dGhpcy5leHBvcnRGb3JtLnJlc2V0KCk7XHJcblx0XHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnN0IGVyciA9IGVycm9yIGFzIEh0dHBFcnJvclJlc3BvbnNlO1xyXG5cdFx0XHRpZiAoZXJyPy5zdGF0dXMgIT09IDQwMCAmJiBlcnI/LnN0YXR1cyAhPT0gNTAwKSB7XHJcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLmhvc3RVcmx9LyMvbW5nL2NvbnRyb2wtbWFuYWdlbWVudC9leHBvcnQtcmVxdWVzdHNgO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5hdChpKTtcclxuXHRcdFx0Zm9ybUdyb3VwLmNvbnRyb2xzLmNoZWNrZWQuc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlRXhwb3J0ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5vcC50b2dnbGUoZXZlbnQpO1xyXG5cclxuXHRoYW5kbGVMYXp5TG9hZEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5ld0V2ZW50RGF0YSA9IHtcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogZXZlbnQucm93cyxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiBldmVudC5maXJzdCAvIGV2ZW50LnJvd3MgKyAxXHJcblx0XHRcdH0sXHJcblx0XHRcdHNvcnQ6IGV2ZW50Lm11bHRpU29ydE1ldGEsXHJcblx0XHRcdGZpbHRlcjogZXZlbnQuZmlsdGVyc1xyXG5cdFx0fTtcclxuXHRcdHRoaXMubGF6eUxvYWRFdmVudC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMudGFibGVSZWYudmFsdWUgPSBbXTtcclxuXHRcdHRoaXMudGFibGVSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHR9XHJcbn1cclxuIiwiPHAtdGFibGVcclxuXHQjcmVmXHJcblx0W3ZhbHVlXT1cImRhdGEoKVwiXHJcblx0W2RhdGFLZXldPVwiZGF0YUtleSgpXCJcclxuXHRbY29sdW1uc109XCJjb2x1bW5zLl9yZXN1bHRzXCJcclxuXHRbcm93c109XCJwYWdlU2l6ZSgpXCJcclxuXHRbcm93SG92ZXJdPVwidHJ1ZVwiXHJcblx0W3BhZ2luYXRvcl09XCIhdGhpcy5pc0xhenkoKSB8fCB0aGlzLnRvdGFsUmVjb3JkcygpID4gMTAgPyB0aGlzLnBhZ2luYXRvcigpIDogZmFsc2VcIlxyXG5cdFtsYXp5XT1cImlzTGF6eSgpXCJcclxuXHRbbGF6eUxvYWRPbkluaXRdPVwiZmFsc2VcIlxyXG5cdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzKClcIlxyXG5cdFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzEwLCAyMCwgNTAsIDEwMF1cIlxyXG5cdFtyb3dTZWxlY3RhYmxlXT1cInJvd1NlbGVjdGFibGUoKVwiXHJcblx0W2ZpbHRlckRlbGF5XT1cIjBcIlxyXG5cdFtzb3J0TW9kZV09XCJzb3J0TW9kZSgpXCJcclxuXHRbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRSb3dzXCJcclxuXHQob25QYWdlKT1cIm9uUGFnZUV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcblx0KG9uTGF6eUxvYWQpPVwiaGFuZGxlTGF6eUxvYWRFdmVudCgkZXZlbnQpXCJcclxuXHQoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkV2ZW50LmVtaXQoc2VsZWN0ZWRSb3dzKVwiXHJcblx0W3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcclxuXHRbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlKClcIlxyXG5cdFtjb2x1bW5SZXNpemVNb2RlXT1cImlzQ29sdW1uRXhwYW5kTW9kZSgpID8gJ2V4cGFuZCcgOiAnJ1wiXHJcblx0W3Jlc2l6YWJsZUNvbHVtbnNdPVwiaXNSZXNpemFibGVDb2x1bW5zKClcIlxyXG5cdFtjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlXT1cImN1cnJlbnRQYWdlUmVwb3J0VGV4dFwiXHJcblx0c3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCJcclxuXHRbcGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUb109XCJwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvKClcIlxyXG5cdFtzY3JvbGxhYmxlXT1cInNjcm9sbGFibGUoKVwiXHJcblx0W3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHQoKVwiXHJcblx0W3Nob3dGaXJzdExhc3RJY29uXT1cInNob3dGaXJzdExhc3RJY29uKClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJncm91cGhlYWRlclwiIGxldC1pdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCIgbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIj5cclxuXHRcdDx0ciBwUm93R3JvdXBIZWFkZXIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjXCI+XHJcblx0XHRcdDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMuX3Jlc3VsdHMubGVuZ3RoXCI+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgbWwtMlwiIHN0eWxlPVwiY29sb3I6ICM2YjcyODBcIj57eyBpdGVtLmdyb3VwTmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0PC90ZD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRAaWYgKGhlYWRlckNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHRcdFx0PHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRAaWYgKGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJykge1xyXG5cdFx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+xLDFn2xlbWxlcjwvZGl2PlxyXG5cdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdEBpZiAoaXNSZXNpemFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHRcdFx0PHRoXHJcblx0XHRcdFx0XHRcdFx0W3BTb3J0YWJsZUNvbHVtbl09XCJjb2x1bW4uZmllbGQoKVwiXHJcblx0XHRcdFx0XHRcdFx0W25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCJcclxuXHRcdFx0XHRcdFx0XHRwUmVzaXphYmxlQ29sdW1uPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmICghaXNMYXp5KCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAoaXNTb3J0YWJsZSgpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8dGggW25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCIgc3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcblx0XHRAaWYgKGhhbmRsZWRTZWxlY3Rpb25Nb2RlKSB7XHJcblx0XHRcdDx0ciBbcFNlbGVjdGFibGVSb3ddPVwiaXRlbVwiIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCI+XHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PHRyIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCI+XHJcblx0XHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cIml0ZW1cIj48L3AtdGFibGVDaGVja2JveD5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH1cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRAaWYgKHNob3dGb290ZXIoKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIj5cclxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH1cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLl9yZXN1bHRzLmxlbmd0aFwiPnt7IG5vRGF0YUZvdW5kTGFiZWwoKSB9fTwvdGQ+XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC10YWJsZT5cclxuXHJcbjxwLW92ZXJsYXlQYW5lbCBzdHlsZUNsYXNzPVwiZXhwb3J0LW92ZXJsYXktcGFuZWxcIj5cclxuXHRAaWYgKGV4cG9ydEZvcm0pIHtcclxuXHRcdDxhcmlsLWZvcm0gW2Zvcm1Hcm91cF09XCJleHBvcnRGb3JtXCIgY2xhc3M9XCJ3LTIwcmVtXCI+XHJcblx0XHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCInRG9zeWEgVGlwaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC1yYWRpby1idXR0b24gZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0VHlwZVwiIFtvcHRpb25zXT1cImV4cG9ydFR5cGVPcHRpb25zXCIgLz5cclxuXHRcdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSDEsHNtaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC10ZXh0IGNsYXNzPVwidy1mdWxsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0TGFiZWxcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJjb2x1bW5zXCI+XHJcblx0XHRcdFx0PHAtb3JkZXJMaXN0XHJcblx0XHRcdFx0XHQjb3JkZXJMaXN0UmVmXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmNvbnRyb2xzXCJcclxuXHRcdFx0XHRcdFtsaXN0U3R5bGVdPVwieyAnbWF4LWhlaWdodCc6ICcyMHJlbScgfVwiXHJcblx0XHRcdFx0XHRmaWx0ZXJCeT1cInZhbHVlLnRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZmlsdGVyXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94XHJcblx0XHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwiJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiaXNBbGxTZWxlY3RlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIC8+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLW9yZGVybGlzdC1maWx0ZXJcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ZpbHRlcidcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjZmlsdGVyXHJcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0cm9sZT1cInRleHRib3hcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoa2V5dXApPVwib3JkZXJMaXN0UmVmLm9uRmlsdGVyS2V5dXAoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJvcmRlckxpc3RSZWYuZGlzYWJsZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlci1pbnB1dCBwLWlucHV0dGV4dCBwLWNvbXBvbmVudFwiIC8+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBsZXQtY29sIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3ggW2xhYmVsXT1cImNvbC52YWx1ZS50aXRsZVwiIFtmb3JtQ29udHJvbF09XCJjb2wuY29udHJvbHMuY2hlY2tlZFwiIC8+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDwvcC1vcmRlckxpc3Q+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0PGFyaWwtYnV0dG9uIGNsYXNzPVwiY29sLTEyXCIgW2xhYmVsXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydCcpXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrRXZlbnQpPVwiZXhwb3J0KClcIiAvPlxyXG5cdFx0PC9hcmlsLWZvcm0+XHJcblx0fVxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG4iXX0=
|