@ieeesa-npm/presentation 0.17.1 → 0.17.3
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/lib/components/accordion/accordion.component.mjs +3 -3
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/components/card/card.component.mjs +3 -3
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/chips/chips.component.mjs +3 -3
- package/esm2022/lib/components/data-table/data-table.component.mjs +5 -3
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/components/date-picker-header/date-picker-header.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +3 -3
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +3 -3
- package/esm2022/lib/components/filter/filter.component.mjs +3 -3
- package/esm2022/lib/components/footer/footer.component.mjs +3 -3
- package/esm2022/lib/components/form-error/form-error.component.mjs +3 -3
- package/esm2022/lib/components/form-support-text/form-support-text.component.mjs +3 -3
- package/esm2022/lib/components/header/header.component.mjs +3 -3
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +3 -3
- package/esm2022/lib/components/image-preview/image-preview.component.mjs +3 -3
- package/esm2022/lib/components/inactive-tenant/inactive-tenant.component.mjs +3 -3
- package/esm2022/lib/components/input/input.component.mjs +3 -3
- package/esm2022/lib/components/list/list.component.mjs +3 -3
- package/esm2022/lib/components/loader/loader.component.mjs +3 -3
- package/esm2022/lib/components/menu/menu.component.mjs +3 -3
- package/esm2022/lib/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/components/modal-confirmation/modal-confirmation.component.mjs +3 -3
- package/esm2022/lib/components/navigation-menu/navigation-menu.component.mjs +3 -3
- package/esm2022/lib/components/notification/notification.component.mjs +3 -3
- package/esm2022/lib/components/radio/radio.component.mjs +3 -3
- package/esm2022/lib/components/search/search.component.mjs +3 -3
- package/esm2022/lib/components/select/select.component.mjs +3 -3
- package/esm2022/lib/components/slide-toggle/slide-toggle.component.mjs +3 -3
- package/esm2022/lib/components/tabs/tabs.component.mjs +8 -8
- package/esm2022/lib/components/text-area/text-area.component.mjs +3 -3
- package/esm2022/lib/components/tile/tile.component.mjs +3 -3
- package/esm2022/lib/components/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/lib/components/toggle-button/toggle-button.component.mjs +3 -3
- package/esm2022/lib/components/welcome/welcome.component.mjs +3 -3
- package/fesm2022/ieeesa-npm-presentation.mjs +81 -79
- package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -397,7 +397,7 @@ export class DynamicFormComponent {
|
|
|
397
397
|
this.dropdownOpenedChange.emit(event);
|
|
398
398
|
}
|
|
399
399
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
400
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormComponent, isStandalone: true, selector: "ieeesa-dynamic-form", inputs: { formGroups: "formGroups", submitResponse: "submitResponse", searchResponse: "searchResponse", colWidth: "colWidth", isLegendVisible: "isLegendVisible", rightButtonLabel: "rightButtonLabel", leftButtonLabel: "leftButtonLabel", isSubmitButtonDisabled: "isSubmitButtonDisabled", isLeftButtonDisabled: "isLeftButtonDisabled", isLeftButtonNeeded: "isLeftButtonNeeded", actionButtonAlign: "actionButtonAlign" }, outputs: { formSubmit: "formSubmit", formChange: "formChange", formInput: "formInput", formLeftButtonClicked: "formLeftButtonClicked", formSearchApply: "formSearchApply", formGroupsReference: "formGroupsReference", dropdownChange: "dropdownChange", formCheckboxSelection: "formCheckboxSelection", formDateSelected: "formDateSelected", formSelectSearch: "formSelectSearch", formControlChange: "formControlChange", formAutoCompleteSearch: "formAutoCompleteSearch", formAutoCompleteClearSearchValue: "formAutoCompleteClearSearchValue", autoCompleteOptionSelected: "autoCompleteOptionSelected", formAfterContentInit: "formAfterContentInit", formSelectedDateRange: "formSelectedDateRange", addFormGroup: "addFormGroup", formTimeSelected: "formTimeSelected", supportTextLinkClick: "supportTextLinkClick", formSlideToggleChange: "formSlideToggleChange", formFileUpload: "formFileUpload", dropdownOpenedChange: "dropdownOpenedChange", formColorPickerChange: "formColorPickerChange", formRadioOptionSelected: "formRadioOptionSelected" }, viewQueries: [{ propertyName: "formFields", predicate: DynamicFormFieldDirective, descendants: true }], exportAs: ["dynamicForm"], ngImport: i0, template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formFileUpload)=\"onFileUpload($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n (formColorPickerChange)=\"onFormColorPickerChange($event)\"\r\n (formRadioOptionSelected)=\"onRadioOptionSelection($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <ng-content select=\"[component]\"></ng-content> \r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: DynamicFormFieldDirective, selector: "[ieeesaDynamicFormField]", inputs: ["config", "group", "submitResponse", "searchResponse"], outputs: ["formSearchApply", "formDropdownSelected", "formDateSelected", "formTimeSelected", "formSelectedDateRange", "formSelectSearch", "formAutoCompleteSearch", "autoCompleteClearSearchValue", "autoCompleteOptionSelected", "formCheckboxSelection", "formInputValue", "addFormGroup", "supportTextLinkClick", "formSlideToggleChange", "dropdownOpenedChange", "formColorPickerChange", "formFileUpload", "formRadioOptionSelected"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: FocusInvalidFormFieldDirective, selector: "[ieeesaFocusInvalidFormField]" }] }); }
|
|
400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormComponent, isStandalone: true, selector: "ieeesa-dynamic-form", inputs: { formGroups: "formGroups", submitResponse: "submitResponse", searchResponse: "searchResponse", colWidth: "colWidth", isLegendVisible: "isLegendVisible", rightButtonLabel: "rightButtonLabel", leftButtonLabel: "leftButtonLabel", isSubmitButtonDisabled: "isSubmitButtonDisabled", isLeftButtonDisabled: "isLeftButtonDisabled", isLeftButtonNeeded: "isLeftButtonNeeded", actionButtonAlign: "actionButtonAlign" }, outputs: { formSubmit: "formSubmit", formChange: "formChange", formInput: "formInput", formLeftButtonClicked: "formLeftButtonClicked", formSearchApply: "formSearchApply", formGroupsReference: "formGroupsReference", dropdownChange: "dropdownChange", formCheckboxSelection: "formCheckboxSelection", formDateSelected: "formDateSelected", formSelectSearch: "formSelectSearch", formControlChange: "formControlChange", formAutoCompleteSearch: "formAutoCompleteSearch", formAutoCompleteClearSearchValue: "formAutoCompleteClearSearchValue", autoCompleteOptionSelected: "autoCompleteOptionSelected", formAfterContentInit: "formAfterContentInit", formSelectedDateRange: "formSelectedDateRange", addFormGroup: "addFormGroup", formTimeSelected: "formTimeSelected", supportTextLinkClick: "supportTextLinkClick", formSlideToggleChange: "formSlideToggleChange", formFileUpload: "formFileUpload", dropdownOpenedChange: "dropdownOpenedChange", formColorPickerChange: "formColorPickerChange", formRadioOptionSelected: "formRadioOptionSelected" }, viewQueries: [{ propertyName: "formFields", predicate: DynamicFormFieldDirective, descendants: true }], exportAs: ["dynamicForm"], ngImport: i0, template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formFileUpload)=\"onFileUpload($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n (formColorPickerChange)=\"onFormColorPickerChange($event)\"\r\n (formRadioOptionSelected)=\"onRadioOptionSelection($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <ng-content select=\"[component]\"></ng-content> \r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: DynamicFormFieldDirective, selector: "[ieeesaDynamicFormField]", inputs: ["config", "group", "submitResponse", "searchResponse"], outputs: ["formSearchApply", "formDropdownSelected", "formDateSelected", "formTimeSelected", "formSelectedDateRange", "formSelectSearch", "formAutoCompleteSearch", "autoCompleteClearSearchValue", "autoCompleteOptionSelected", "formCheckboxSelection", "formInputValue", "addFormGroup", "supportTextLinkClick", "formSlideToggleChange", "dropdownOpenedChange", "formColorPickerChange", "formFileUpload", "formRadioOptionSelected"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: FocusInvalidFormFieldDirective, selector: "[ieeesaFocusInvalidFormField]" }] }); }
|
|
401
401
|
}
|
|
402
402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormComponent, decorators: [{
|
|
403
403
|
type: Component,
|
|
@@ -407,7 +407,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
407
407
|
DynamicFormFieldDirective,
|
|
408
408
|
MatButtonModule,
|
|
409
409
|
FocusInvalidFormFieldDirective,
|
|
410
|
-
], template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formFileUpload)=\"onFileUpload($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n (formColorPickerChange)=\"onFormColorPickerChange($event)\"\r\n (formRadioOptionSelected)=\"onRadioOptionSelection($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <ng-content select=\"[component]\"></ng-content> \r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"] }]
|
|
410
|
+
], template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formFileUpload)=\"onFileUpload($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n (formColorPickerChange)=\"onFormColorPickerChange($event)\"\r\n (formRadioOptionSelected)=\"onRadioOptionSelection($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <ng-content select=\"[component]\"></ng-content> \r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"] }]
|
|
411
411
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { formFields: [{
|
|
412
412
|
type: ViewChildren,
|
|
413
413
|
args: [DynamicFormFieldDirective]
|
|
@@ -482,4 +482,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
482
482
|
}], formRadioOptionSelected: [{
|
|
483
483
|
type: Output
|
|
484
484
|
}] } });
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBRVgsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBRTlILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFReEU7Ozs7OztHQU1HO0FBZUgsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFnQjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1os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QjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFJRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUVHLGdDQUFnQztzQkFBekMsTUFBTTtnQkFFRywwQkFBMEI7c0JBQW5DLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFJRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUFycmF5LFxyXG4gIEZvcm1CdWlsZGVyLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Hcm91cCxcclxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBGb3JtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1HcmlkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tZ3JpZC5tb2RlbCc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQWxpZ25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FsaWduLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBGb2N1c0ludmFsaWRGb3JtRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2ZvY3VzLWludmFsaWQtZm9ybS1maWVsZC9mb2N1cy1pbnZhbGlkLWZvcm0tZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ2hlY2tib3hPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hlY2tib3gtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkRGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3RlZC1kYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWRUaW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdGVkLXRpbWUubW9kZWwnO1xyXG5pbXBvcnQgeyBMaW5rRXZlbnRFbWl0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1lbWl0LXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTbGlkZVRvZ2dsZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9zbGlkZS10b2dnbGUtb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wZW5lZFN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1vcGVuZWQtc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBSYWRpb09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9yYWRpby1vcHRpb24ubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSByZWFjdGl2ZSBmb3JtIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHRoZSBwYXNzZWQgZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uIGFuZCBoYW5kbGVzIHRoZSBmb3JtIGV2ZW50cy5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge0FmdGVyQ29udGVudEluaXR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2R5bmFtaWNGb3JtJyxcclxuICBzZWxlY3RvcjogJ2llZWVzYS1keW5hbWljLWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBGb2N1c0ludmFsaWRGb3JtRmllbGREaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICBAVmlld0NoaWxkcmVuKER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUpXHJcbiAgZm9ybUZpZWxkcyE6IFF1ZXJ5TGlzdDxEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlPjtcclxuICBwcml2YXRlIF9mb3JtR3JvdXBzITogRm9ybU1vZGVsO1xyXG4gIC8qKlxyXG4gICAqIEZvcm1Hcm91cHMgcGFzc2VkIGFuIGFuIGlucHV0IGFuZCB3aGljaCBjb250YWlucyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGV2ZXJ5IGZvcm0gZmllbGRzLlxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZvcm1Hcm91cHModmFsdWU6IEZvcm1Nb2RlbCkge1xyXG4gICAgdGhpcy5fZm9ybUdyb3VwcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtR3JvdXBBcnJheSgpO1xyXG4gIH1cclxuICBnZXQgZm9ybUdyb3VwcygpOiBGb3JtTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3N1Ym1pdFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc3VibWl0IHJlc3BvbnNlIG9uIGZvcm0gc3VibWl0XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzdWJtaXRSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zdWJtaXRSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzdWJtaXRSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1pdFJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9zZWFyY2hSZXNwb25zZSE6IGFueTtcclxuICAvKipcclxuICAgKiBTZXRzIHNlYXJjaCByZXNwb25zZSBvbiBmb3JtIHNlYXJjaCBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZXQgc2VhcmNoUmVzcG9uc2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc2VhcmNoUmVzcG9uc2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBnZXQgc2VhcmNoUmVzcG9uc2UoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hSZXNwb25zZTtcclxuICB9XHJcbiAgQElucHV0KCkgY29sV2lkdGghOiBGb3JtR3JpZDtcclxuICBASW5wdXQoKSBpc0xlZ2VuZFZpc2libGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJpZ2h0QnV0dG9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGVmdEJ1dHRvbkxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTGVmdEJ1dHRvbk5lZWRlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvbkFsaWduITogQWxpZ25UeXBlO1xyXG4gIGFsaWdubWVudFR5cGUgPSBBbGlnblR5cGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1JbnB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtTGVmdEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVNlYXJjaEFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Hcm91cHNSZWZlcmVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGRyb3Bkb3duQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1DaGVja2JveFNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hPcHRpb24+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1EYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGVkRGF0ZT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNlbGVjdFNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VhcmNoRXZlbnQ6IEV2ZW50O1xyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ29udHJvbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BdXRvQ29tcGxldGVTZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUFmdGVyQ29udGVudEluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2VsZWN0ZWREYXRlUmFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gICAgZW5kRGF0ZTogc3RyaW5nO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGFkZEZvcm1Hcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1UaW1lU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGVkVGltZT4oKTtcclxuICBAT3V0cHV0KCkgc3VwcG9ydFRleHRMaW5rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPExpbmtFdmVudEVtaXRUeXBlPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2xpZGVUb2dnbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNsaWRlVG9nZ2xlT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtRmlsZVVwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZSB8IEZpbGVMaXN0PigpO1xyXG4gIEBPdXRwdXQoKSBkcm9wZG93bk9wZW5lZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3BlbmVkU3RhdGU+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Db2xvclBpY2tlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtUmFkaW9PcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9PcHRpb24+KCk7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBmb3JtR3JvdXBBcnJheTogRm9ybUdyb3VwW10gPSBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGZvcm1Db250cm9sQXJyYXk6IGFueVtdID0gW107XHJcbiAgbGVnZW5kc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIGNyZWF0ZSBmb3JtIGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGdlbmVyYXRlZCBmb3JtIHJlZmVyZW5jZSBvbiBuZ0FmdGVyQ29udGVudEluaXQgbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQWZ0ZXJDb250ZW50SW5pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIG9uIHRoZSBiYXNpcyBvZiBmb3JtR3JvdXBzIGNvbmZpZ3VyYXRpb24gaW5wdXRcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Hcm91cEFycmF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXBBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbEFycmF5ID0gW107XHJcbiAgICB0aGlzLmxlZ2VuZHNBcnJheSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtR3JvdXBzPy5mb3JtR3JvdXA/LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBlbGVtZW50LmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoY29udHJvbCkgPT4gY29udHJvbC50eXBlICE9PSAnYnV0dG9uJ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cEFycmF5LnB1c2godGhpcy5jcmVhdGVHcm91cChjb250cm9scykpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkucHVzaChjb250cm9scyk7XHJcbiAgICAgIHRoaXMubGVnZW5kc0FycmF5LnB1c2goZWxlbWVudC5sZWdlbmQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY2hpbGRyZW46IHRoaXMuZm9ybUdyb3VwQXJyYXksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cHNSZWZlcmVuY2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIHVzaW5nIGZvcm0gYnVpbGRlclxyXG4gICAqIEBwYXJhbSB7YW55W119IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUdyb3VwfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXAoY29udHJvbHM6IGFueVtdKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKChjb250cm9sOiBGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbC50eXBlID09PSBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gpIHtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2wuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlRm9ybUFycmF5KGNvbnRyb2wpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2wuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbChjb250cm9sKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gYXJyYXkgZm9yIENoZWNrYm94IGdyb3VwIGFuZCByZXR1cm5zLlxyXG4gICAqIEBwYXJhbSB7RmllbGRDb25maWd9IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUFycmF5PGFueT59XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVGb3JtQXJyYXkoY29udHJvbHM6IEZpZWxkQ29uZmlnKTogRm9ybUFycmF5PGFueT4ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIGxldCBmb3JtQXJyYXk6IEZvcm1BcnJheTxhbnk+O1xyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbHMuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbChjb250cm9scykpO1xyXG4gICAgY29uc3QgaXNSZXF1aXJlZFZhbGlkYXRvciA9IGdyb3VwXHJcbiAgICAgID8uZ2V0KGNvbnRyb2xzLmNvbnRyb2xOYW1lKVxyXG4gICAgICA/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIGlmIChpc1JlcXVpcmVkVmFsaWRhdG9yKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBmb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5PGFueT4oXHJcbiAgICAgICAgW10sXHJcbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdGlvblJlcXVpcmVkVmFsaWRhdG9yKGNvbnRyb2xzPy5taW5TZWxlY3Rpb25SZXF1aXJlZClcclxuICAgICAgKTtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBlbHNlIGZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXk8YW55PihbXSk7XHJcbiAgICBjb250cm9scz8uY2hlY2tib3hPcHRpb25zPy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGZvcm1BcnJheS5wdXNoKG5ldyBGb3JtQ29udHJvbChjb250cm9sLmNoZWNrZWQpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSB2YWxpZGF0b3IgdG8gc2V0IHJlcXVpcmVkIGZpbGVkIHZhbGlkYXRpb24gZXJyb3IgZm9yIHRoZSBjaGVja2JveCBmaWVsZCB0eXBlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgY29uZmlndXJlZCBtaW5pbXVtIGNoZWNrYm94IG9wdGlvbnMgdG8gYmUgc2VsZWN0ZWQgd2hlbmV2ZXIgdGhlIGZpbGVkIGNvbmZpZ3VyZWQgd2l0aCByZXF1aXJlZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pblNlbGVjdGlvblJlcXVpcmVkPTFdXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWRWYWxpZGF0b3IobWluU2VsZWN0aW9uUmVxdWlyZWQgPSAxKTogYW55IHtcclxuICAgIHJldHVybiBmdW5jdGlvbiB2YWxpZGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgICBsZXQgY2hlY2tlZCA9IDA7XHJcbiAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1trZXldO1xyXG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICBjaGVja2VkKys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGNoZWNrZWQgPCBtaW5TZWxlY3Rpb25SZXF1aXJlZCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBjaGVja2JveFNlbGVjdGlvblJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2wgYmFzZWQgb24gZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbFxyXG4gICAqIEByZXR1cm4ge0Zvcm1Db250cm9sfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUNvbnRyb2woY29udHJvbDogRmllbGRDb25maWcpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCB7IGRpc2FibGVkLCB2YWxpZGF0aW9uLCB2YWx1ZSB9ID0gY29udHJvbDtcclxuICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2woeyBkaXNhYmxlZCwgdmFsdWUgfSwgdmFsaWRhdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkxlZnRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTGVmdEJ1dHRvbkNsaWNrZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgc2VsZWN0IHR5cGUgZHJvcCBkb3duIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gaW5wdXQgY2hhbmdlIGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBmb3JtSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5mb3JtSW5wdXQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWFyY2ggYXBwbHkgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoQXBwbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TZWFyY2hBcHBseS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgc2VhcmNoIGV2ZW50IGluc2lkZSBmb3JtIGZpZWxkIHNlbGVjdFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RTZWFyY2goZXZlbnQ6IHsgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdFNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGZvcm1Hcm91cCBhcyBhcmd1bWVudHMgYW5kIG5lZWRzIHRvIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgZm9ybUdyb3VwLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwfSBmb3JtR3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm9ybUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGRhdGUgc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtTZWxlY3RlZERhdGV9IHNlbGVjdGVkRGF0ZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGF0ZVNlbGVjdGVkKHNlbGVjdGVkRGF0ZTogU2VsZWN0ZWREYXRlKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1EYXRlU2VsZWN0ZWQuZW1pdChzZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gdGltZSBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkVGltZX0gc2VsZWN0ZWRUaW1lXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25UaW1lU2VsZWN0ZWQoc2VsZWN0ZWRUaW1lOiBTZWxlY3RlZFRpbWUpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVRpbWVTZWxlY3RlZC5lbWl0KHNlbGVjdGVkVGltZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHNlbGVjdGVkIGZvcm0gZGF0ZSByYW5nZVxyXG4gICAqIEBwYXJhbSB7e3N0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmd9fSBkYXRlUmFuZ2VcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblNlbGVjdGVkRGF0ZVJhbmdlKGRhdGVSYW5nZTogeyBzdGFydERhdGU6IHN0cmluZzsgZW5kRGF0ZTogc3RyaW5nIH0pIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdGVkRGF0ZVJhbmdlLmVtaXQoZGF0ZVJhbmdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBhdXRvIGNvbXBsZXRlIHNlYXJjaCBldmVudFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlU2VhcmNoKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUF1dG9Db21wbGV0ZVNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgc2VhcmNoIGNsZWFyIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgY2hlY2tib3ggc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DaGVja2JveFNlbGVjdGlvbihvcHRpb246IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGVja2JveFNlbGVjdGlvbi5lbWl0KG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBvcHRpb24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBzbGlkZSB0b2dnbGUgZXZlbnQgYW5kIGVtaXRzIGZvcm1TbGlkZVRvZ2dsZUNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSB0b2dnbGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TbGlkZVRvZ2dsZUNoYW5nZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TbGlkZVRvZ2dsZUNoYW5nZS5lbWl0KHRvZ2dsZSk7XHJcbiAgfVxyXG5cclxuICAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGNvbG9yIHBpY2tlciBldmVudCBhbmQgZW1pdHMgZm9ybUNvbG9yUGlja2VyQ2hhbmdlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvckNvZGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAgb25Gb3JtQ29sb3JQaWNrZXJDaGFuZ2UoY29sb3JDb2RlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNvbG9yUGlja2VyQ2hhbmdlLmVtaXQoY29sb3JDb2RlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZmlsZSB1cGxvYWQgZXZlbnQgYW5kIGVtaXRzIGZvcm1GaWxlVXBsb2FkIGV2ZW50XHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsZVVwbG9hZChmaWxlOiBGaWxlIHwgRmlsZUxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUZpbGVVcGxvYWQuZW1pdChmaWxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCByYWRpbyBidXR0b24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtSYWRpb09wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25SYWRpb09wdGlvblNlbGVjdGlvbihvcHRpb246IFJhZGlvT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1SYWRpb09wdGlvblNlbGVjdGVkLmVtaXQob3B0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIHBhc3NlZCBjb250cm9sIG5hbWUgaW4gaHlwaGVuYXRlZCBjc3MgY2xhc3MgbmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Um93Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjbGFzc05hbWVcclxuICAgICAgLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpXHJcbiAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIC5zcGxpdCgnICcpXHJcbiAgICAgIC5qb2luKCctJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBhZGRGb3JtR3JvdXAgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQWRkRm9ybUdyb3VwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRGb3JtR3JvdXAuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHN1cHBvcnRUZXh0TGlua0NsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGZvcm0gc3VwcG9ydCB0ZXh0IGxpbmtcclxuICAgKiBAcGFyYW0ge0xpbmtFdmVudEVtaXRUeXBlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU3VwcG9ydFRleHRMaW5rQ2xpY2soZXZlbnQ6IExpbmtFdmVudEVtaXRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1cHBvcnRUZXh0TGlua0NsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBMaXN0ZW5zIHNlbGVjdCBmb3JtIGZpZWxkIGRyb3Bkb3duT3BlbmVkQ2hhbmdlIGV2ZW50IGFuZCBlbWl0cyBkcm9wZG93bk9wZW5lZENoYW5nZSBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wZW5lZFN0YXRlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duT3BlbmVkQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAoY2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAobmdTdWJtaXQpPVwib25Gb3JtU3VibWl0KClcIlxyXG4gIChpbnB1dCk9XCJmb3JtSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgaWVlZXNhRm9jdXNJbnZhbGlkRm9ybUZpZWxkXHJcbj5cclxuICA8ZmllbGRzZXRcclxuICAgIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybV9fZmllbGRzZXRcIlxyXG4gICAgKm5nRm9yPVwiXHJcbiAgICAgIGxldCBmb3JtR3JwIG9mIGZvcm1Hcm91cEFycmF5O1xyXG4gICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICB0cmFja0J5OiB0cmFja0J5Rm9ybUdyb3VwXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxsZWdlbmRcclxuICAgICAgY2xhc3M9XCJmbG9hdC1ub25lIHctYXV0byBwLTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fbGVnZW5kXCJcclxuICAgICAgKm5nSWY9XCJpc0xlZ2VuZFZpc2libGVcIlxyXG4gICAgPlxyXG4gICAgICB7eyBsZWdlbmRzQXJyYXlbaV0gfX1cclxuICAgIDwvbGVnZW5kPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wte3sgY29sV2lkdGgueHMgfX0gY29sLXNtLXt7IGNvbFdpZHRoLnNtIH19IGNvbC1tZC17e1xyXG4gICAgICAgICAgY29sV2lkdGgubWRcclxuICAgICAgICB9fSBjb2wtbGcte3sgY29sV2lkdGgubGcgfX0gY29sLXhsLXt7IGNvbFdpZHRoLnhsIH19XHJcbiAgICAgICAgaWVlZXNhLWR5bmFtaWMtZm9ybV9fZm9ybS1maWVsZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Um93Q2xhc3NOYW1lKGZvcm1Db250cm9sQXJyYXlbaV1bal0uY29udHJvbE5hbWUpXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtQ29udHJvbEFycmF5W2ldOyBsZXQgaiA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgaWVlZXNhRHluYW1pY0Zvcm1GaWVsZFxyXG4gICAgICAgICAgW2NvbmZpZ109XCJmb3JtQ29udHJvbEFycmF5W2ldW2pdXCJcclxuICAgICAgICAgIFtncm91cF09XCJmb3JtR3JwXCJcclxuICAgICAgICAgIFtzdWJtaXRSZXNwb25zZV09XCJzdWJtaXRSZXNwb25zZVwiXHJcbiAgICAgICAgICBbc2VhcmNoUmVzcG9uc2VdPVwic2VhcmNoUmVzcG9uc2VcIlxyXG4gICAgICAgICAgKGZvcm1TZWFyY2hBcHBseSk9XCJvblNlYXJjaEFwcGx5KCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Ecm9wZG93blNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvbkRyb3Bkb3duQ2hhbmdlKClcIlxyXG4gICAgICAgICAgKGZvcm1EYXRlU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRGF0ZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RlZERhdGVSYW5nZSk9XCJvblNlbGVjdGVkRGF0ZVJhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RTZWFyY2gpPVwib25TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUF1dG9Db21wbGV0ZVNlYXJjaCk9XCJvbkF1dG9Db21wbGV0ZVNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cIlxyXG4gICAgICAgICAgICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoJGV2ZW50KVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCk9XCJcclxuICAgICAgICAgICAgb25Gb3JtQ2hhbmdlKCk7IG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25DaGVja2JveFNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtSW5wdXRWYWx1ZSk9XCJvbkZvcm1DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAoYWRkRm9ybUdyb3VwKT1cIm9uQWRkRm9ybUdyb3VwKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1UaW1lU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uVGltZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKHN1cHBvcnRUZXh0TGlua0NsaWNrKT1cIm9uU3VwcG9ydFRleHRMaW5rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1GaWxlVXBsb2FkKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChkcm9wZG93bk9wZW5lZENoYW5nZSk9XCJvbkRyb3Bkb3duT3BlbmVkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Db2xvclBpY2tlckNoYW5nZSk9XCJvbkZvcm1Db2xvclBpY2tlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtUmFkaW9PcHRpb25TZWxlY3RlZCk9XCJvblJhZGlvT3B0aW9uU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbXBvbmVudF1cIj48L25nLWNvbnRlbnQ+IFxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjb2wtMTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9uc1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnanVzdGlmeS1jb250ZW50LWVuZCc6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLkxFRlQsXHJcbiAgICAgICAgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5NSURETEUsXHJcbiAgICAgICAgJ2p1c3RpZnktY29udGVudC1zdGFydCc6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLlJJR0hUXHJcbiAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXByaW1hcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLXJpZ2h0LWJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcmlnaHRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNMZWZ0QnV0dG9uTmVlZGVkXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtdGVydGlhcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLWxlZnQtYnRuXCJcclxuICAgICAgICAoY2xpY2spPVwib25MZWZ0QnV0dG9uQ2xpY2tlZCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNMZWZ0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbGVmdEJ1dHRvbkxhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBRVgsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBRTlILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFReEU7Ozs7OztHQU1HO0FBZUgsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFnQjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1os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QjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFJRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUVHLGdDQUFnQztzQkFBekMsTUFBTTtnQkFFRywwQkFBMEI7c0JBQW5DLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFJRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUFycmF5LFxyXG4gIEZvcm1CdWlsZGVyLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Hcm91cCxcclxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBGb3JtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1HcmlkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tZ3JpZC5tb2RlbCc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQWxpZ25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FsaWduLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBGb2N1c0ludmFsaWRGb3JtRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2ZvY3VzLWludmFsaWQtZm9ybS1maWVsZC9mb2N1cy1pbnZhbGlkLWZvcm0tZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ2hlY2tib3hPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hlY2tib3gtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkRGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3RlZC1kYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWRUaW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdGVkLXRpbWUubW9kZWwnO1xyXG5pbXBvcnQgeyBMaW5rRXZlbnRFbWl0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1lbWl0LXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTbGlkZVRvZ2dsZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9zbGlkZS10b2dnbGUtb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wZW5lZFN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1vcGVuZWQtc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBSYWRpb09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9yYWRpby1vcHRpb24ubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSByZWFjdGl2ZSBmb3JtIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHRoZSBwYXNzZWQgZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uIGFuZCBoYW5kbGVzIHRoZSBmb3JtIGV2ZW50cy5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge0FmdGVyQ29udGVudEluaXR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2R5bmFtaWNGb3JtJyxcclxuICBzZWxlY3RvcjogJ2llZWVzYS1keW5hbWljLWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBGb2N1c0ludmFsaWRGb3JtRmllbGREaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICBAVmlld0NoaWxkcmVuKER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUpXHJcbiAgZm9ybUZpZWxkcyE6IFF1ZXJ5TGlzdDxEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlPjtcclxuICBwcml2YXRlIF9mb3JtR3JvdXBzITogRm9ybU1vZGVsO1xyXG4gIC8qKlxyXG4gICAqIEZvcm1Hcm91cHMgcGFzc2VkIGFuIGFuIGlucHV0IGFuZCB3aGljaCBjb250YWlucyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGV2ZXJ5IGZvcm0gZmllbGRzLlxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZvcm1Hcm91cHModmFsdWU6IEZvcm1Nb2RlbCkge1xyXG4gICAgdGhpcy5fZm9ybUdyb3VwcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtR3JvdXBBcnJheSgpO1xyXG4gIH1cclxuICBnZXQgZm9ybUdyb3VwcygpOiBGb3JtTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3N1Ym1pdFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc3VibWl0IHJlc3BvbnNlIG9uIGZvcm0gc3VibWl0XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzdWJtaXRSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zdWJtaXRSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzdWJtaXRSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1pdFJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9zZWFyY2hSZXNwb25zZSE6IGFueTtcclxuICAvKipcclxuICAgKiBTZXRzIHNlYXJjaCByZXNwb25zZSBvbiBmb3JtIHNlYXJjaCBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZXQgc2VhcmNoUmVzcG9uc2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc2VhcmNoUmVzcG9uc2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBnZXQgc2VhcmNoUmVzcG9uc2UoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hSZXNwb25zZTtcclxuICB9XHJcbiAgQElucHV0KCkgY29sV2lkdGghOiBGb3JtR3JpZDtcclxuICBASW5wdXQoKSBpc0xlZ2VuZFZpc2libGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJpZ2h0QnV0dG9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGVmdEJ1dHRvbkxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTGVmdEJ1dHRvbk5lZWRlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvbkFsaWduITogQWxpZ25UeXBlO1xyXG4gIGFsaWdubWVudFR5cGUgPSBBbGlnblR5cGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1JbnB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtTGVmdEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybVNlYXJjaEFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Hcm91cHNSZWZlcmVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGRyb3Bkb3duQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1DaGVja2JveFNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hPcHRpb24+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1EYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGVkRGF0ZT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNlbGVjdFNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VhcmNoRXZlbnQ6IEV2ZW50O1xyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ29udHJvbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BdXRvQ29tcGxldGVTZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUFmdGVyQ29udGVudEluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2VsZWN0ZWREYXRlUmFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gICAgZW5kRGF0ZTogc3RyaW5nO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGFkZEZvcm1Hcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1UaW1lU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGVkVGltZT4oKTtcclxuICBAT3V0cHV0KCkgc3VwcG9ydFRleHRMaW5rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPExpbmtFdmVudEVtaXRUeXBlPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2xpZGVUb2dnbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNsaWRlVG9nZ2xlT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtRmlsZVVwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZSB8IEZpbGVMaXN0PigpO1xyXG4gIEBPdXRwdXQoKSBkcm9wZG93bk9wZW5lZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3BlbmVkU3RhdGU+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Db2xvclBpY2tlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtUmFkaW9PcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9PcHRpb24+KCk7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBmb3JtR3JvdXBBcnJheTogRm9ybUdyb3VwW10gPSBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGZvcm1Db250cm9sQXJyYXk6IGFueVtdID0gW107XHJcbiAgbGVnZW5kc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIGNyZWF0ZSBmb3JtIGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGdlbmVyYXRlZCBmb3JtIHJlZmVyZW5jZSBvbiBuZ0FmdGVyQ29udGVudEluaXQgbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQWZ0ZXJDb250ZW50SW5pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIG9uIHRoZSBiYXNpcyBvZiBmb3JtR3JvdXBzIGNvbmZpZ3VyYXRpb24gaW5wdXRcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Hcm91cEFycmF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXBBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbEFycmF5ID0gW107XHJcbiAgICB0aGlzLmxlZ2VuZHNBcnJheSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtR3JvdXBzPy5mb3JtR3JvdXA/LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBlbGVtZW50LmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoY29udHJvbCkgPT4gY29udHJvbC50eXBlICE9PSAnYnV0dG9uJ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cEFycmF5LnB1c2godGhpcy5jcmVhdGVHcm91cChjb250cm9scykpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkucHVzaChjb250cm9scyk7XHJcbiAgICAgIHRoaXMubGVnZW5kc0FycmF5LnB1c2goZWxlbWVudC5sZWdlbmQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY2hpbGRyZW46IHRoaXMuZm9ybUdyb3VwQXJyYXksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cHNSZWZlcmVuY2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIHVzaW5nIGZvcm0gYnVpbGRlclxyXG4gICAqIEBwYXJhbSB7YW55W119IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUdyb3VwfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXAoY29udHJvbHM6IGFueVtdKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKChjb250cm9sOiBGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbC50eXBlID09PSBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gpIHtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2wuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlRm9ybUFycmF5KGNvbnRyb2wpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2wuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbChjb250cm9sKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gYXJyYXkgZm9yIENoZWNrYm94IGdyb3VwIGFuZCByZXR1cm5zLlxyXG4gICAqIEBwYXJhbSB7RmllbGRDb25maWd9IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUFycmF5PGFueT59XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVGb3JtQXJyYXkoY29udHJvbHM6IEZpZWxkQ29uZmlnKTogRm9ybUFycmF5PGFueT4ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIGxldCBmb3JtQXJyYXk6IEZvcm1BcnJheTxhbnk+O1xyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbHMuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbChjb250cm9scykpO1xyXG4gICAgY29uc3QgaXNSZXF1aXJlZFZhbGlkYXRvciA9IGdyb3VwXHJcbiAgICAgID8uZ2V0KGNvbnRyb2xzLmNvbnRyb2xOYW1lKVxyXG4gICAgICA/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIGlmIChpc1JlcXVpcmVkVmFsaWRhdG9yKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBmb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5PGFueT4oXHJcbiAgICAgICAgW10sXHJcbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdGlvblJlcXVpcmVkVmFsaWRhdG9yKGNvbnRyb2xzPy5taW5TZWxlY3Rpb25SZXF1aXJlZClcclxuICAgICAgKTtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBlbHNlIGZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXk8YW55PihbXSk7XHJcbiAgICBjb250cm9scz8uY2hlY2tib3hPcHRpb25zPy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGZvcm1BcnJheS5wdXNoKG5ldyBGb3JtQ29udHJvbChjb250cm9sLmNoZWNrZWQpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSB2YWxpZGF0b3IgdG8gc2V0IHJlcXVpcmVkIGZpbGVkIHZhbGlkYXRpb24gZXJyb3IgZm9yIHRoZSBjaGVja2JveCBmaWVsZCB0eXBlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgY29uZmlndXJlZCBtaW5pbXVtIGNoZWNrYm94IG9wdGlvbnMgdG8gYmUgc2VsZWN0ZWQgd2hlbmV2ZXIgdGhlIGZpbGVkIGNvbmZpZ3VyZWQgd2l0aCByZXF1aXJlZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pblNlbGVjdGlvblJlcXVpcmVkPTFdXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWRWYWxpZGF0b3IobWluU2VsZWN0aW9uUmVxdWlyZWQgPSAxKTogYW55IHtcclxuICAgIHJldHVybiBmdW5jdGlvbiB2YWxpZGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgICBsZXQgY2hlY2tlZCA9IDA7XHJcbiAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1trZXldO1xyXG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICBjaGVja2VkKys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGNoZWNrZWQgPCBtaW5TZWxlY3Rpb25SZXF1aXJlZCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBjaGVja2JveFNlbGVjdGlvblJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2wgYmFzZWQgb24gZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbFxyXG4gICAqIEByZXR1cm4ge0Zvcm1Db250cm9sfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUNvbnRyb2woY29udHJvbDogRmllbGRDb25maWcpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCB7IGRpc2FibGVkLCB2YWxpZGF0aW9uLCB2YWx1ZSB9ID0gY29udHJvbDtcclxuICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2woeyBkaXNhYmxlZCwgdmFsdWUgfSwgdmFsaWRhdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkxlZnRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTGVmdEJ1dHRvbkNsaWNrZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgc2VsZWN0IHR5cGUgZHJvcCBkb3duIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gaW5wdXQgY2hhbmdlIGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBmb3JtSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5mb3JtSW5wdXQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWFyY2ggYXBwbHkgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoQXBwbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TZWFyY2hBcHBseS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgc2VhcmNoIGV2ZW50IGluc2lkZSBmb3JtIGZpZWxkIHNlbGVjdFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RTZWFyY2goZXZlbnQ6IHsgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdFNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGZvcm1Hcm91cCBhcyBhcmd1bWVudHMgYW5kIG5lZWRzIHRvIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgZm9ybUdyb3VwLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwfSBmb3JtR3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm9ybUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGRhdGUgc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtTZWxlY3RlZERhdGV9IHNlbGVjdGVkRGF0ZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGF0ZVNlbGVjdGVkKHNlbGVjdGVkRGF0ZTogU2VsZWN0ZWREYXRlKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1EYXRlU2VsZWN0ZWQuZW1pdChzZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gdGltZSBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkVGltZX0gc2VsZWN0ZWRUaW1lXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25UaW1lU2VsZWN0ZWQoc2VsZWN0ZWRUaW1lOiBTZWxlY3RlZFRpbWUpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVRpbWVTZWxlY3RlZC5lbWl0KHNlbGVjdGVkVGltZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHNlbGVjdGVkIGZvcm0gZGF0ZSByYW5nZVxyXG4gICAqIEBwYXJhbSB7e3N0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmd9fSBkYXRlUmFuZ2VcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblNlbGVjdGVkRGF0ZVJhbmdlKGRhdGVSYW5nZTogeyBzdGFydERhdGU6IHN0cmluZzsgZW5kRGF0ZTogc3RyaW5nIH0pIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdGVkRGF0ZVJhbmdlLmVtaXQoZGF0ZVJhbmdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBhdXRvIGNvbXBsZXRlIHNlYXJjaCBldmVudFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlU2VhcmNoKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUF1dG9Db21wbGV0ZVNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgc2VhcmNoIGNsZWFyIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgY2hlY2tib3ggc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DaGVja2JveFNlbGVjdGlvbihvcHRpb246IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGVja2JveFNlbGVjdGlvbi5lbWl0KG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBvcHRpb24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBzbGlkZSB0b2dnbGUgZXZlbnQgYW5kIGVtaXRzIGZvcm1TbGlkZVRvZ2dsZUNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSB0b2dnbGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TbGlkZVRvZ2dsZUNoYW5nZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TbGlkZVRvZ2dsZUNoYW5nZS5lbWl0KHRvZ2dsZSk7XHJcbiAgfVxyXG5cclxuICAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGNvbG9yIHBpY2tlciBldmVudCBhbmQgZW1pdHMgZm9ybUNvbG9yUGlja2VyQ2hhbmdlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvckNvZGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAgb25Gb3JtQ29sb3JQaWNrZXJDaGFuZ2UoY29sb3JDb2RlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNvbG9yUGlja2VyQ2hhbmdlLmVtaXQoY29sb3JDb2RlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZmlsZSB1cGxvYWQgZXZlbnQgYW5kIGVtaXRzIGZvcm1GaWxlVXBsb2FkIGV2ZW50XHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsZVVwbG9hZChmaWxlOiBGaWxlIHwgRmlsZUxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUZpbGVVcGxvYWQuZW1pdChmaWxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCByYWRpbyBidXR0b24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtSYWRpb09wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25SYWRpb09wdGlvblNlbGVjdGlvbihvcHRpb246IFJhZGlvT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1SYWRpb09wdGlvblNlbGVjdGVkLmVtaXQob3B0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIHBhc3NlZCBjb250cm9sIG5hbWUgaW4gaHlwaGVuYXRlZCBjc3MgY2xhc3MgbmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Um93Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjbGFzc05hbWVcclxuICAgICAgLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpXHJcbiAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIC5zcGxpdCgnICcpXHJcbiAgICAgIC5qb2luKCctJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBhZGRGb3JtR3JvdXAgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQWRkRm9ybUdyb3VwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRGb3JtR3JvdXAuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHN1cHBvcnRUZXh0TGlua0NsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGZvcm0gc3VwcG9ydCB0ZXh0IGxpbmtcclxuICAgKiBAcGFyYW0ge0xpbmtFdmVudEVtaXRUeXBlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU3VwcG9ydFRleHRMaW5rQ2xpY2soZXZlbnQ6IExpbmtFdmVudEVtaXRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1cHBvcnRUZXh0TGlua0NsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBMaXN0ZW5zIHNlbGVjdCBmb3JtIGZpZWxkIGRyb3Bkb3duT3BlbmVkQ2hhbmdlIGV2ZW50IGFuZCBlbWl0cyBkcm9wZG93bk9wZW5lZENoYW5nZSBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wZW5lZFN0YXRlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duT3BlbmVkQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAoY2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAobmdTdWJtaXQpPVwib25Gb3JtU3VibWl0KClcIlxyXG4gIChpbnB1dCk9XCJmb3JtSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgaWVlZXNhRm9jdXNJbnZhbGlkRm9ybUZpZWxkXHJcbj5cclxuICA8ZmllbGRzZXRcclxuICAgIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybV9fZmllbGRzZXRcIlxyXG4gICAgKm5nRm9yPVwiXHJcbiAgICAgIGxldCBmb3JtR3JwIG9mIGZvcm1Hcm91cEFycmF5O1xyXG4gICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICB0cmFja0J5OiB0cmFja0J5Rm9ybUdyb3VwXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxsZWdlbmRcclxuICAgICAgY2xhc3M9XCJmbG9hdC1ub25lIHctYXV0byBwLTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fbGVnZW5kXCJcclxuICAgICAgKm5nSWY9XCJpc0xlZ2VuZFZpc2libGVcIlxyXG4gICAgPlxyXG4gICAgICB7eyBsZWdlbmRzQXJyYXlbaV0gfX1cclxuICAgIDwvbGVnZW5kPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wte3sgY29sV2lkdGgueHMgfX0gY29sLXNtLXt7IGNvbFdpZHRoLnNtIH19IGNvbC1tZC17e1xyXG4gICAgICAgICAgY29sV2lkdGgubWRcclxuICAgICAgICB9fSBjb2wtbGcte3sgY29sV2lkdGgubGcgfX0gY29sLXhsLXt7IGNvbFdpZHRoLnhsIH19XHJcbiAgICAgICAgaWVlZXNhLWR5bmFtaWMtZm9ybV9fZm9ybS1maWVsZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Um93Q2xhc3NOYW1lKGZvcm1Db250cm9sQXJyYXlbaV1bal0uY29udHJvbE5hbWUpXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtQ29udHJvbEFycmF5W2ldOyBsZXQgaiA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgaWVlZXNhRHluYW1pY0Zvcm1GaWVsZFxyXG4gICAgICAgICAgW2NvbmZpZ109XCJmb3JtQ29udHJvbEFycmF5W2ldW2pdXCJcclxuICAgICAgICAgIFtncm91cF09XCJmb3JtR3JwXCJcclxuICAgICAgICAgIFtzdWJtaXRSZXNwb25zZV09XCJzdWJtaXRSZXNwb25zZVwiXHJcbiAgICAgICAgICBbc2VhcmNoUmVzcG9uc2VdPVwic2VhcmNoUmVzcG9uc2VcIlxyXG4gICAgICAgICAgKGZvcm1TZWFyY2hBcHBseSk9XCJvblNlYXJjaEFwcGx5KCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Ecm9wZG93blNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvbkRyb3Bkb3duQ2hhbmdlKClcIlxyXG4gICAgICAgICAgKGZvcm1EYXRlU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRGF0ZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RlZERhdGVSYW5nZSk9XCJvblNlbGVjdGVkRGF0ZVJhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RTZWFyY2gpPVwib25TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUF1dG9Db21wbGV0ZVNlYXJjaCk9XCJvbkF1dG9Db21wbGV0ZVNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cIlxyXG4gICAgICAgICAgICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoJGV2ZW50KVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCk9XCJcclxuICAgICAgICAgICAgb25Gb3JtQ2hhbmdlKCk7IG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25DaGVja2JveFNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtSW5wdXRWYWx1ZSk9XCJvbkZvcm1DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAoYWRkRm9ybUdyb3VwKT1cIm9uQWRkRm9ybUdyb3VwKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1UaW1lU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uVGltZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKHN1cHBvcnRUZXh0TGlua0NsaWNrKT1cIm9uU3VwcG9ydFRleHRMaW5rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1GaWxlVXBsb2FkKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChkcm9wZG93bk9wZW5lZENoYW5nZSk9XCJvbkRyb3Bkb3duT3BlbmVkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Db2xvclBpY2tlckNoYW5nZSk9XCJvbkZvcm1Db2xvclBpY2tlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtUmFkaW9PcHRpb25TZWxlY3RlZCk9XCJvblJhZGlvT3B0aW9uU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbXBvbmVudF1cIj48L25nLWNvbnRlbnQ+IFxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjb2wtMTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9uc1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnanVzdGlmeS1jb250ZW50LWVuZCc6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLkxFRlQsXHJcbiAgICAgICAgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5NSURETEUsXHJcbiAgICAgICAgJ2p1c3RpZnktY29udGVudC1zdGFydCc6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLlJJR0hUXHJcbiAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXByaW1hcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLXJpZ2h0LWJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcmlnaHRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNMZWZ0QnV0dG9uTmVlZGVkXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtdGVydGlhcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLWxlZnQtYnRuXCJcclxuICAgICAgICAoY2xpY2spPVwib25MZWZ0QnV0dG9uQ2xpY2tlZCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNMZWZ0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbGVmdEJ1dHRvbkxhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|