@ieeesa-npm/groups 0.14.4 → 0.14.6
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/README.md +205 -0
- package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +3 -3
- package/esm2022/lib/components/create-group/create-group.component.mjs +3 -3
- package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +3 -3
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +3 -3
- package/esm2022/lib/components/view-roster/view-roster.component.mjs +3 -3
- package/esm2022/lib/groups.component.mjs +3 -3
- package/fesm2022/ieeesa-npm-groups.mjs +12 -12
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -520,11 +520,11 @@ export class EditUserRolesComponent {
|
|
|
520
520
|
this.destroy$.unsubscribe();
|
|
521
521
|
}
|
|
522
522
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditUserRolesComponent, deps: [{ token: i1.GroupsService }, { token: i2.GlobalErrorHandlerService }, { token: i2.AlertsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
523
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditUserRolesComponent, isStandalone: true, selector: "ieeesa-edit-user-roles", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
523
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditUserRolesComponent, isStandalone: true, selector: "ieeesa-edit-user-roles", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "fileUploadStatus", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "isRightButtonNeeded", "actionButtonAlign", "fileDownloadAndDeleteConfig"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
524
524
|
}
|
|
525
525
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditUserRolesComponent, decorators: [{
|
|
526
526
|
type: Component,
|
|
527
|
-
args: [{ selector: 'ieeesa-edit-user-roles', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"] }]
|
|
527
|
+
args: [{ selector: 'ieeesa-edit-user-roles', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"editUserRoleFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onEditUserRoleFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onEditUserRoleCancelled()\"\r\n (formCheckboxSelection)=\"onUserRoleSelection($event)\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formChange)=\"onEditUserRoleFormChange($event)\"\r\n (formMultiSelectAutoCompleteSearch)=\"getOrganizations($event)\"\r\n (multiSelectAutoCompleteOptionsSelected)=\"getSelectedOrganizations($event)\"\r\n (formMultiSelectAutoCompleteClearSearchValue)=\"disableSubmitButton()\"\r\n></ieeesa-dynamic-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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-modal-dialog.ieeesa-edit-user-roles .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .mat-mdc-dialog-content{padding:0 1em .75em!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-autocomplete .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-select-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em .8em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field{margin-bottom:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0;border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name.ieeesa-dynamic-form__form-field .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .email .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .full-name .mat-mdc-text-field-wrapper{border:unset!important}.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-checkbox-field .mat-mdc-list{margin-left:-.625em}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-edit-user-roles .ieeesa-modal .ieeesa-dynamic-form .ieeesa-select-field .mat-mdc-form-field{width:100%}}\n"] }]
|
|
528
528
|
}], ctorParameters: function () { return [{ type: i1.GroupsService }, { type: i2.GlobalErrorHandlerService }, { type: i2.AlertsService }]; }, propDecorators: { dynamicFormComponent: [{
|
|
529
529
|
type: ViewChild,
|
|
530
530
|
args: [DynamicFormComponent]
|
|
@@ -533,4 +533,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
533
533
|
}], formCancel: [{
|
|
534
534
|
type: Output
|
|
535
535
|
}] } });
|
|
536
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvZWRpdC11c2VyLXJvbGVzL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2VkaXQtdXNlci1yb2xlcy9lZGl0LXVzZXItcm9sZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxTQUFTLEVBSVQsZUFBZSxFQUlmLG9CQUFvQixHQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUF3QixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsR0FHVixNQUFNLHFCQUFxQixDQUFDO0FBTzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQU16RTs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUEwQmpDO0lBQ0UsMENBQTBDO0lBQ2xDLGFBQTRCO0lBQ3BDLDBDQUEwQztJQUNuQyx5QkFBb0Q7SUFDM0QsMENBQTBDO0lBQ25DLFlBQTJCLENBQUMsNkNBQTZDOztRQUp4RSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU3Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBRXBELGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBL0JwQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNsQyw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFdBQVcsQ0FBQztRQUM3Qix1QkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztRQUNuRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDO1FBQ2xFLHFCQUFnQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDO1FBQ25FLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUMvQixhQUFRLEdBQWEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUloRSx3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFFbkMsc0JBQWlCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNuQyxvQkFBZSxHQUFtQixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBQ2pDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsOEJBQXlCLEdBQW1CLEVBQUUsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVWLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFRdkMsQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FDbEQsQ0FBQyxJQUE4QixFQUFFLEVBQUU7WUFDakMsSUFDRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO2dCQUM1QyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFDMUI7Z0JBQ0EsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUU7b0JBQ2xELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUM7d0JBQ25DLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSzt3QkFDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPO3FCQUNyQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FDRixDQUFDO1FBQ0YsaURBQWlEO1FBQ2pELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxNQUFNO1lBQ3BDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUk7WUFDdkQsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9CLElBQUkscUJBQXFCLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFjLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQVksQ0FBQyxDQUFDO2FBQ3BEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsRUFBRSxpQkFBaUIsSUFBSSxLQUFLLENBQUM7UUFDL0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLEVBQUUsVUFBNkIsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7Z0JBQzVCLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTTtnQkFDdkMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2dCQUMxQixhQUFhLEVBQUUsSUFBSTthQUNwQixDQUFDLENBQUM7YUFDQTtZQUNILElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLEVBQUUsVUFBVSxFQUFFO2dCQUN4RCxJQUFJLElBQUksQ0FBQyxpQkFBaUI7b0JBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtZQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQjtRQUNwQixJQUFJLENBQUMscUJBQXFCLEdBQUc7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE1BQU0sRUFBRSxFQUFFO29CQUNWLFFBQVEsRUFBRTt3QkFDUjs0QkFDRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFNBQVM7NEJBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFHOzRCQUNsRCxXQUFXLEVBQUUsT0FBTzs0QkFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLOzRCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSzs0QkFDM0QsaUJBQWlCLEVBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLOzRCQUMxRCxVQUFVLEVBQUUsSUFBSTs0QkFDaEIsYUFBYSxFQUFFLEtBQUs7NEJBQ3BCLFFBQVEsRUFBRSxJQUFJO3lCQUNmO3dCQUNEOzRCQUNFLElBQUksRUFBRSxlQUFlLENBQUMsU0FBUzs0QkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxHQUFHLEdBQUc7NEJBQ3JELFdBQVcsRUFBRSxVQUFVOzRCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUk7NEJBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFROzRCQUM5RCxpQkFBaUIsRUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVE7NEJBQzdELFVBQVUsRUFBRSxJQUFJOzRCQUNoQixhQUFhLEVBQUUsS0FBSzs0QkFDcEIsUUFBUSxFQUFFLElBQUk7eUJBQ2Y7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLGVBQWUsQ0FBQyxRQUFROzRCQUM5QixLQUFLLEVBQ0gsSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLENBQUMsVUFBVTtnQ0FDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSTtnQ0FDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFHLEdBQUc7NEJBQ2hELFdBQVcsRUFBRSxPQUFPOzRCQUNwQixlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVM7NEJBQy9CLG9CQUFvQixFQUFFLENBQUM7NEJBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJOzRCQUMxRCxpQkFBaUIsRUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLElBQUk7NEJBQ3pELGNBQWMsRUFDWixJQUFJLENBQUMsZUFBZSxLQUFLLGVBQWUsQ0FBQyxVQUFVO2dDQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVc7b0NBQ2xDLEVBQUUsdUJBQXVCO2dDQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxJQUFJOzRCQUNoRCxvQkFBb0IsRUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUTs0QkFDbkQsVUFBVSxFQUNSLElBQUksQ0FBQyxlQUFlLEtBQUssZUFBZSxDQUFDLFVBQVU7Z0NBQ2pELENBQUMsQ0FBQyxFQUFFO2dDQUNKLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7eUJBQzVCO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLGVBQWUsRUFBRSxVQUFVLEVBQUU7WUFDeEQsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMkJBQTJCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGlCQUFpQjtZQUN4QixJQUFJLENBQUMsOEJBQThCLENBQ2pDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQzlEO2dCQUNFLElBQUksRUFBRSxlQUFlLENBQUMsTUFBTTtnQkFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsY0FBYyxHQUFHLEdBQUc7Z0JBQzNELFdBQVcsRUFBRSxnQkFBZ0I7Z0JBQzdCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUNqQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUNuRSxDQUFDLENBQUMsQ0FBQztnQkFDSixVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUNqQyxXQUFXLEVBQUUsRUFBRTtnQkFDZixjQUFjLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxjQUFjO2dCQUNwRSxvQkFBb0IsRUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUTtnQkFDbkQsU0FBUyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWM7Z0JBQ3BFLGlCQUFpQixFQUNmLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsY0FBYzthQUNwRSxDQUNGLENBQUM7UUFDSixJQUFJLENBQUMsOEJBQThCLENBQ2pDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQzlEO1lBQ0UsSUFBSSxFQUFFLGVBQWUsQ0FBQyxNQUFNO1lBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLFVBQVUsR0FBRyxHQUFHO1lBQ3ZELFdBQVcsRUFBRSxZQUFZO1lBQ3pCLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUNqQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQzdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQ2pFLENBQUMsQ0FBQyxDQUFDO1lBQ0osVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNqQyxXQUFXLEVBQUUsRUFBRTtZQUNmLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLFVBQVU7WUFDaEUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUTtZQUN2RSxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVTtZQUNoRSxpQkFBaUIsRUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFVBQVU7U0FDaEUsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLDhCQUE4QixDQUNqQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQzFEO1lBQ0UsSUFBSSxFQUFFLGVBQWUsQ0FBQywwQkFBMEI7WUFDaEQsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEdBQUcsR0FBRztZQUNyRSxXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFVBQVUsRUFBRTtnQkFDVixVQUFVLENBQUMsUUFBUTtnQkFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FDbEIsd0JBQXdCLENBQUMsNEJBQTRCLENBQ3REO2dCQUNELFVBQVUsQ0FBQyxTQUFTLENBQ2xCLHdCQUF3QixDQUFDLDRCQUE0QixDQUN0RDtnQkFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDO2FBQ3RFO1lBQ0QsOEJBQThCLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxNQUFNO2dCQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNO29CQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWM7b0JBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCO2dCQUNsQyxDQUFDLENBQUMsRUFBRTtZQUNOLFdBQVcsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUNaLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsd0JBQXdCO1lBQ2hFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVE7WUFDdkUsZUFBZSxFQUNiLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUs7Z0JBQzVDLEVBQUUsZ0NBQWdDO1lBQ3RDLGVBQWUsRUFDYixJQUFJLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLO2dCQUM1QyxFQUFFLGdDQUFnQztZQUN0QyxtQkFBbUIsRUFDakIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTztnQkFDOUMsRUFBRSx3QkFBd0I7WUFDOUIsU0FBUyxFQUNQLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHdCQUF3QjtZQUNyRSxpQkFBaUIsRUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQjtnQkFDL0MsRUFBRSx3QkFBd0I7U0FDL0IsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx3QkFBd0IsQ0FBQyxXQUFpQztRQUN4RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsV0FBVyxDQUFDO1FBQzdDLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTTtZQUNuQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCw4QkFBOEIsQ0FDNUIsYUFBcUIsRUFDckIsV0FBd0I7UUFFeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNyRCxhQUFhLEVBQ2IsQ0FBQyxFQUNELFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxLQUFxQjtRQUN2QyxJQUFJLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBWSxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUN6RCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQ3pCLENBQUM7U0FDSDtRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLENBQUMsV0FBVyxFQUFFO1lBQ3hELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUNyRSxJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxFQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsSUFBaUI7UUFDeEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7YUFDMUQsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEtBQUssaUJBQWlCLENBQUM7YUFDMUQsS0FBSyxDQUNKLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sS0FBSyxVQUFVLEVBQUUsS0FBSyxDQUN4RSxDQUFDO1FBQ0osSUFDRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLEtBQUssVUFBVSxFQUFFLE9BQU87WUFDN0QsdUJBQXVCO1lBQ3ZCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLEtBQUssRUFDcEM7WUFDQSxJQUFJLENBQUMsYUFBYTtpQkFDZixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7aUJBQ3ZFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ1osSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFO3dCQUNmLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3BDO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsQ0FBQzthQUNGLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsc0JBQXNCO0lBQ3BCLDhEQUE4RDtJQUM5RCxRQUFhO1FBRWIsSUFBSSxPQUFvRSxDQUFDO1FBQ3pFLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLEVBQUUsVUFBVSxFQUFFO1lBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNyRSxPQUFPO29CQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBWTtvQkFDMUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2lCQUNyQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEdBQUc7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTTtvQkFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO29CQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtvQkFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsT0FBaUI7b0JBQ2hFLGFBQWEsRUFBRSxnQkFBZ0I7aUJBQ2hDO2FBQ0YsQ0FBQztZQUNGLElBQUksSUFBSSxDQUFDLGlCQUFpQjtnQkFDeEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUc7b0JBQy9CLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxjQUFjO3dCQUN4QyxDQUFDLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxFQUFFO3dCQUM5QixDQUFDLENBQUMsRUFBRTtpQkFDUCxDQUFDO1lBRUosSUFDRSxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBRTFELE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pEOztZQUNDLE9BQU8sR0FBRztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO29CQUNuQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU07b0JBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CO29CQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxPQUFpQjtpQkFDbEU7YUFDRixDQUFDO1FBQ0osT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QjtRQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsSUFBaUI7UUFDckMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRTtZQUNwQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBZTtnQkFDN0QsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNQLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsSUFBaUI7UUFDeEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FDckUsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLE1BQU0sRUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDO1FBQ0YsSUFDRSxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTTtZQUNyQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTTtnQkFDOUQsVUFBVSxDQUFDLE9BQU8sRUFDcEI7WUFDQSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLENBQUMsYUFBYTthQUNmLGtCQUFrQixFQUFFO2FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqQixRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNqQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQzt3QkFDekIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7d0JBQzNCLElBQUksRUFBRSxNQUFNLENBQUMsa0JBQWtCO3FCQUNoQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLHdCQUF3QixDQUMzQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQ3RDLENBQUM7WUFDSixDQUFDO1lBQ0QsOERBQThEO1lBQzlELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO2dCQUNyQixFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUTthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx3QkFBd0IsQ0FDM0IsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxPQUFlO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHdCQUF3QixDQUMzQixpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLEVBQUUsRUFDRixFQUFFLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUNyQixNQUFNLGlCQUFpQixHQUErQjtZQUNwRCxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO1NBQzlCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYTthQUNmLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO2FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7d0JBQ3ZCLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSzt3QkFDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPO3FCQUNyQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLHdCQUF3QixDQUMzQixpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLElBQUksQ0FBQyxhQUFhLEVBQ2xCLE9BQU8sQ0FDUixDQUFDO2dCQUNGLE1BQU0sYUFBYSxHQUNqQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUk7b0JBQ2hFLEVBQUUsTUFBTSxDQUFDO2dCQUNiLElBQ0UsYUFBYTtvQkFDYixhQUFhO3dCQUNYLHdCQUF3QixDQUFDLDRCQUE0QjtvQkFDdkQsYUFBYSxLQUFLLENBQUMsRUFDbkI7b0JBQ0EsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFNBQVMsQ0FBQzt3QkFDL0QsU0FBUyxFQUNQLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUs7NEJBQzVDLEVBQUUsZ0NBQWdDO3FCQUN2QyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDO1lBQ0QsOERBQThEO1lBQzlELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsd0JBQXdCLENBQ3RCLGVBQXVCLEVBQ3ZCLHdCQUFnQyxFQUNoQyxPQUF1QixFQUN2QixjQUF1QjtRQUV2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoQyxNQUFNLGVBQWUsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDakQsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUNFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXO2dCQUNqRCxlQUFlO2dCQUNqQixTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUUxRCxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUNuRSxJQUFJLGNBQWMsSUFBSSxlQUFlLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyx3QkFBd0I7cUJBQzFCLEdBQUcsQ0FBQyxlQUFlLENBQUM7b0JBQ3JCLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw4REFBOEQ7SUFDOUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3RELElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRTtnQkFDNUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7b0JBQzVCLE1BQU0sRUFBRSxRQUFRO29CQUNoQixPQUFPLEVBQUUsWUFBWTtvQkFDckIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO29CQUMxQixhQUFhLEVBQUUsSUFBSTtpQkFDcEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNLElBQUksS0FBSyxJQUFJLEtBQUssWUFBWSxpQkFBaUIsRUFBRTtZQUN0RCxJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUNEOzs7T0FHRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyx3QkFBd0IsQ0FDM0IsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxFQUFFLENBQ0gsQ0FBQztZQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0F0bUJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlOQXVCdEIsb0JBQW9CLGdEQ25GakMsMjRCQWtCQSx1MllEcUNZLFlBQVksK0JBQUUsb0JBQW9COzs0RkFLakMsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsaUJBRzlCLGlCQUFpQixDQUFDLElBQUk7d0tBeUJKLG9CQUFvQjtzQkFBcEQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ3JCLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbGlnblR5cGUsXHJcbiAgQXV0b0NvbXBsZXRlT3B0aW9uLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIEZpZWxkQ29uZmlnLFxyXG4gIEZvcm1Db250cm9sVHlwZSxcclxuICBGb3JtR3JpZCxcclxuICBGb3JtTW9kZWwsXHJcbiAgU2VsZWN0T3B0aW9uLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHcm91cFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLXVzZXItaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRUeXBlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBBZGRPckVkaXRVc2VySW5kaXZpZHVhbFJvc3RlclBheWxvYWQsXHJcbiAgQWRkT3JFZGl0VXNlclBheWxvYWQsXHJcbiAgUmVwcmVzZW50aW5nT3JnYW5pemF0aW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9hZGQtb3ItZWRpdC11c2VyLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBUeXBlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwUm9zdGVyVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9yb3N0ZXItdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuaW1wb3J0IHtcclxuICBPcmdhbml6YXRpb24sXHJcbiAgT3JnYW5pemF0aW9uUmVxdWVzdFBheWxvYWQsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL29yZ2FuaXphdGlvbi5tb2RlbCc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IGltcGxlbWVudHMgdGhlIHZpZXcgYW5kIGZ1bmN0aW9uYWxpdGllcyB0byBlZGl0IGdyb3VwIHVzZXJzIHRvIHJvc3Rlci5cclxuICogQGNsYXNzIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWVkaXQtdXNlci1yb2xlcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEeW5hbWljRm9ybUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRVc2VyUm9sZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuICBhZGRVc2VyUm9zdGVyVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8uYWRkVXNlclJvc3RlcjtcclxuICBsZWZ0QnV0dG9uTGFiZWwgPSB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5zYXZlQnV0dG9uTGFiZWw7XHJcbiAgaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGNvbFdpZHRoOiBGb3JtR3JpZCA9IHsgeHM6IDEyLCB4bDogMTIsIHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIgfTtcclxuICBlZGl0VXNlclJvbGVGb3JtR3JvdXAhOiBGb3JtTW9kZWw7XHJcbiAgZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmITogRm9ybUdyb3VwO1xyXG4gIHVzZXJSb2xlcyE6IENoZWNrYm94T3B0aW9uW107XHJcbiAgc2VsZWN0ZWRVc2VyUm9sZUlkczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZFVzZXJJbmZvITogR3JvdXBVc2VySW5mbztcclxuICBhY3Rpb25CdXR0b25BbGlnbiA9IEFsaWduVHlwZS5MRUZUO1xyXG4gIGNsYXNzaWZpY2F0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBtZW1iZXJUeXBlczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBvcmdhbml6YXRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGdyb3VwVHlwZXMhOiBHcm91cFR5cGVDb25maWd1cmF0aW9uW107XHJcbiAgaGFzQ2xhc3NpZmljYXRpb24gPSBmYWxzZTtcclxuICBncm91cFJvc3RlclR5cGUhOiBHcm91cFJvc3RlclR5cGU7XHJcbiAgcmVwcmVzZW50aW5nT3JnYW5pemF0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBvcmdTZWFyY2hWYWx1ZSA9ICcnO1xyXG4gIEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1Db21wb25lbnQpIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm1SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZm9ybUNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZTogR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXQgdXNlciByb2xlIHJlcXVpcmVkIGluZm9ybWF0aW9uIGFuZCBmb3JtIGdyb3VwIGFycmF5LlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlckluZm8gPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldFNlbGVjdGVkVXNlckluZm8oKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZS5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25zLmZvckVhY2goXHJcbiAgICAgICh1c2VyOiBSZXByZXNlbnRpbmdPcmdhbml6YXRpb24pID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlckluZm8udXNlcklkID09PSB1c2VyLnVzZXJJZCAmJlxyXG4gICAgICAgICAgdXNlci5vcmdhbml6YXRpb25zPy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHVzZXIub3JnYW5pemF0aW9ucy5mb3JFYWNoKChvcHRpb246IE9yZ2FuaXphdGlvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBvcHRpb24ub3JnSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogb3B0aW9uLm9yZ05hbWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xyXG4gICAgdGhpcy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25zPy5sZW5ndGhcclxuICAgICAgPyAodGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2UpXHJcbiAgICAgIDogKHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRVc2VyUm9sZU5hbWVzID0gdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5yb2xlXHJcbiAgICAgID8uc3BsaXQoJywnKVxyXG4gICAgICAubWFwKChyb2xlKSA9PiByb2xlPy50cmltKCkpO1xyXG4gICAgdGhpcy51c2VyUm9sZXMgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEdyb3VwVHlwZVVzZXJSb2xlcygpO1xyXG4gICAgdGhpcy51c2VyUm9sZXM/LmZvckVhY2goKHJvbGUpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkVXNlclJvbGVOYW1lcz8uaW5jbHVkZXMocm9sZT8ubmFtZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgcm9sZS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVJZHM/LnB1c2gocm9sZT8uaWQgYXMgc3RyaW5nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBncm91cFR5cGUgPSB0aGlzLmdyb3Vwc1NlcnZpY2UuZ2V0QnVzaW5lc3NSdWxlT2ZTZWxlY3RlZEdyb3VwKCk7XHJcbiAgICB0aGlzLmhhc0NsYXNzaWZpY2F0aW9uID0gZ3JvdXBUeXBlPy5oYXNDbGFzc2lmaWNhdGlvbiA/PyBmYWxzZTtcclxuICAgIHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID0gZ3JvdXBUeXBlPy5yb3N0ZXJUeXBlIGFzIEdyb3VwUm9zdGVyVHlwZTtcclxuICAgIGlmICghdGhpcy5ncm91cFJvc3RlclR5cGUpXHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuY29uc3RhbnRzPy5lcnJvcnM/LkVSMTAwMSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5FUlJPUixcclxuICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZT8uSU5ESVZJRFVBTCkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0NsYXNzaWZpY2F0aW9uKSB0aGlzLmdldENsYXNzaWZpY2F0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZ2V0TWVtYmVyVHlwZXMoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVkaXRVc2VyUm9sZXNGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXQgdXNlciByb2xlIGZvcm0gZ3JvdXAgYXJyYXkuXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBlZGl0VXNlclJvbGVzRm9ybUdyb3VwKCkge1xyXG4gICAgdGhpcy5lZGl0VXNlclJvbGVGb3JtR3JvdXAgPSB7XHJcbiAgICAgIGZvcm1Hcm91cDogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlZ2VuZDogJycsXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uZW1haWwgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdlbWFpbCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8uZW1haWwsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uZW1haWwsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5lbWFpbCxcclxuICAgICAgICAgICAgICBpc1JlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlRFWFRfQVJFQSxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5mdWxsTmFtZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2Z1bGxOYW1lJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5uYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmZ1bGxOYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZnVsbE5hbWUsXHJcbiAgICAgICAgICAgICAgaXNSZWFkb25seTogdHJ1ZSxcclxuICAgICAgICAgICAgICBhcmlhTXVsdGlsaW5lOiBmYWxzZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID09PSBHcm91cFJvc3RlclR5cGUuSU5ESVZJRFVBTFxyXG4gICAgICAgICAgICAgICAgICA/IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ucm9sZVxyXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ucm9sZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3JvbGVzJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMudXNlclJvbGVzLFxyXG4gICAgICAgICAgICAgIG1pblNlbGVjdGlvblJlcXVpcmVkOiAxLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnJvbGUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5yb2xlLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZS5JTkRJVklEVUFMXHJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICA/LnJvbGVGb3JJbmRpdmlkdWFsUm9zdGVyXHJcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0Py5yb2xlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZS5JTkRJVklEVUFMXHJcbiAgICAgICAgICAgICAgICAgID8gW11cclxuICAgICAgICAgICAgICAgICAgOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID09PSBHcm91cFJvc3RlclR5cGU/LklORElWSURVQUwpIHtcclxuICAgICAgdGhpcy51cGRhdGVFZGl0VXNlclJvbGVGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgY2xhc3NpZmljYXRpb24sIE1lbWJlciBUeXBlIGFuZCBSZXByZXNlbnRpbmcgT3JnYW5pemF0aW9uIGZvcm0gY29udHJvbHMgd2hpbGUgZWRpdGluZyBuZXcgdXNlciB0byBhbiBpbmRpdmlkdWFsIGdyb3VwIHJvc3Rlci5cclxuICAgKiBAbWVtYmVyb2YgQWRkVXNlclJvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHVwZGF0ZUVkaXRVc2VyUm9sZUZvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhhc0NsYXNzaWZpY2F0aW9uKVxyXG4gICAgICB0aGlzLnVwZGF0ZUVkaXRVc2VyUm9sZUZvcm1Db250cm9scyhcclxuICAgICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gMSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uY2xhc3NpZmljYXRpb24gKyAnKicsXHJcbiAgICAgICAgICBjb250cm9sTmFtZTogJ2NsYXNzaWZpY2F0aW9uJyxcclxuICAgICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5jbGFzc2lmaWNhdGlvbnMsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5jbGFzc2lmaWNhdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkVXNlckluZm8/LmNsYXNzaWZpY2F0aW9uXHJcbiAgICAgICAgICApWzBdLFxyXG4gICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5zdXBwb3J0VGV4dD8uY2xhc3NpZmljYXRpb24sXHJcbiAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmNsYXNzaWZpY2F0aW9uLFxyXG4gICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgIHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmNsYXNzaWZpY2F0aW9uLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIHRoaXMudXBkYXRlRWRpdFVzZXJSb2xlRm9ybUNvbnRyb2xzKFxyXG4gICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gMSxcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ubWVtYmVyVHlwZSArICcqJyxcclxuICAgICAgICBjb250cm9sTmFtZTogJ21lbWJlclR5cGUnLFxyXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5tZW1iZXJUeXBlcyxcclxuICAgICAgICB2YWx1ZTogdGhpcy5tZW1iZXJUeXBlcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkVXNlckluZm8/Lm1lbWJlclN0YXR1c1xyXG4gICAgICAgIClbMF0sXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0Py5tZW1iZXJUeXBlLFxyXG4gICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lm1lbWJlclR5cGUsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5tZW1iZXJUeXBlLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy51cGRhdGVFZGl0VXNlclJvbGVGb3JtQ29udHJvbHMoXHJcbiAgICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwPy5mb3JtR3JvdXBbMF0/LmNvbnRyb2xzPy5sZW5ndGgsXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuTVVMVElfU0VMRUNUX0FVVE9fQ09NUExFVEUsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uICsgJyonLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiAncmVwcmVzZW50aW5nT3JnJyxcclxuICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgIEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdOYW1lTWF4TGVuZ3RoXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoXHJcbiAgICAgICAgICAgIEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdOYW1lTWluTGVuZ3RoXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb24pLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zOiB0aGlzLm9yZ2FuaXphdGlvbnMsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucz8ubGVuZ3RoXHJcbiAgICAgICAgICA/IHRoaXMub3JnU2VhcmNoVmFsdWU/Lmxlbmd0aFxyXG4gICAgICAgICAgICA/IHRoaXMub3JnU2VhcmNoVmFsdWVcclxuICAgICAgICAgICAgOiB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnNcclxuICAgICAgICAgIDogJycsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0Py5yZXByZXNlbnRpbmdPcmdhbml6YXRpb24sXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdFxyXG4gICAgICAgICAgICA/LnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbk1heENoYXJzLFxyXG4gICAgICAgIG1pbkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXRcclxuICAgICAgICAgICAgPy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25NaW5DaGFycyxcclxuICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuXHJcbiAgICAgICAgICAgID8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uLFxyXG4gICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgIHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb24sXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgID8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBzZWxlY3RlZCBvcmdhbml6YXRpb25zLlxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9uW119IHNlbGVjdGVkT3JnXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRTZWxlY3RlZE9yZ2FuaXphdGlvbnMoc2VsZWN0ZWRPcmc6IEF1dG9Db21wbGV0ZU9wdGlvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnMgPSBzZWxlY3RlZE9yZztcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgIHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5sZW5ndGhcclxuICAgICAgPyAodGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2UpXHJcbiAgICAgIDogKHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBlZGl0IHVzZXIgZm9ybSBncm91cCBjb250cm9scyBieSBhZGRpbmcgZmllbGRDb25maWcgYXQgcmVxdWlyZWQgaW5kZXguXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4UG9zaXRpb25cclxuICAgKiBAcGFyYW0ge0ZpZWxkQ29uZmlnfSBmaWVsZENvbmZpZ1xyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlRWRpdFVzZXJSb2xlRm9ybUNvbnRyb2xzKFxyXG4gICAgaW5kZXhQb3NpdGlvbjogbnVtYmVyLFxyXG4gICAgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnXHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cC5mb3JtR3JvdXBbMF0uY29udHJvbHMuc3BsaWNlKFxyXG4gICAgICBpbmRleFBvc2l0aW9uLFxyXG4gICAgICAwLFxyXG4gICAgICBmaWVsZENvbmZpZ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdXNlciByb2xlIHNlbGVjdGlvbiBhbmQgc2F2ZSBidXR0b24gZW5hYmxlIGRpc2FibGUgaW4gZWRpdCB1c2VyIHJvbGVzIGZvcm0uXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbn0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVXNlclJvbGVTZWxlY3Rpb24oZXZlbnQ6IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQ/LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlSWRzPy5wdXNoKGV2ZW50Py5pZCBhcyBzdHJpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlSWRzID0gdGhpcy5zZWxlY3RlZFVzZXJSb2xlSWRzPy5maWx0ZXIoXHJcbiAgICAgICAgKGlkKSA9PiBpZCAhPT0gZXZlbnQ/LmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZS5TWVNURU1fVVNFUikge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0aGlzLmdyb3Vwc1NlcnZpY2UuaXNTdWJtaXRCdXR0b25EaXNhYmxlZChcclxuICAgICAgICB0aGlzLmdyb3VwUm9zdGVyVHlwZSxcclxuICAgICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZj8uc3RhdHVzLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZUlkc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHJvbGVzIGFuZCBkZXRhaWxzIG9mIHVzZXIgb24gZm9ybSBzdWJtaXNzaW9uLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1cclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRWRpdFVzZXJSb2xlRm9ybVN1Ym1pdChmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgZm9ybVswXT8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgaXNBbGxPdGhlckNvbnRyb2xzVmFsaWQgPSBPYmplY3Qua2V5cyhmb3JtWzBdLmNvbnRyb2xzKVxyXG4gICAgICAuZmlsdGVyKChjb250cm9sTmFtZSkgPT4gY29udHJvbE5hbWUgIT09ICdyZXByZXNlbnRpbmdPcmcnKVxyXG4gICAgICAuZXZlcnkoXHJcbiAgICAgICAgKGNvbnRyb2xOYW1lKSA9PiBmb3JtWzBdLmdldChjb250cm9sTmFtZSk/LnN0YXR1cyA9PT0gRm9ybVN0YXR1cz8uVkFMSURcclxuICAgICAgKTtcclxuICAgIGlmIChcclxuICAgICAgKGZvcm1bMF0uZ2V0KCdyZXByZXNlbnRpbmdPcmcnKT8uc3RhdHVzID09PSBGb3JtU3RhdHVzPy5JTlZBTElEICYmXHJcbiAgICAgICAgaXNBbGxPdGhlckNvbnRyb2xzVmFsaWQgJiZcclxuICAgICAgICB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnMubGVuZ3RoID4gMCkgfHxcclxuICAgICAgZm9ybVswXS5zdGF0dXMgPT09IEZvcm1TdGF0dXM/LlZBTElEXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgICAgLmVkaXRHcm91cHNVc2VyUm9sZSh0aGlzLmdldEVkaXRVc2VyUm9sZVBheWxvYWQoZm9ybVswXT8uZ2V0UmF3VmFsdWUoKSkpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm1SZXNwb25zZT8uZW1pdChyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBlZGl0IHVzZXIgcGF5bG9hZCBmcm9tIHRoZSBmb3JtIGRhdGEgZGVwZW5kcyBvbiB0aGUgR3JvdXBSb3N0ZXJUeXBlIGFuZCByZXR1cm5zLlxyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybURhdGFcclxuICAgKiBAcmV0dXJuIHsoQWRkT3JFZGl0VXNlclBheWxvYWQgfCBBZGRPckVkaXRVc2VySW5kaXZpZHVhbFJvc3RlclBheWxvYWQpfVxyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0RWRpdFVzZXJSb2xlUGF5bG9hZChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBmb3JtRGF0YTogYW55XHJcbiAgKTogQWRkT3JFZGl0VXNlclBheWxvYWQgfCBBZGRPckVkaXRVc2VySW5kaXZpZHVhbFJvc3RlclBheWxvYWQge1xyXG4gICAgbGV0IHBheWxvYWQ6IEFkZE9yRWRpdFVzZXJQYXlsb2FkIHwgQWRkT3JFZGl0VXNlckluZGl2aWR1YWxSb3N0ZXJQYXlsb2FkO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID09PSBHcm91cFJvc3RlclR5cGU/LklORElWSURVQUwpIHtcclxuICAgICAgY29uc3QgZm9ybWF0dGVkT3B0aW9ucyA9IHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBvcmdJZDogb3B0aW9uLmlkIGFzIHN0cmluZyxcclxuICAgICAgICAgIG9yZ05hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICBwYXlsb2FkID0ge1xyXG4gICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgIHVzZXJJZDogdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy51c2VySWQsXHJcbiAgICAgICAgICBlbWFpbDogdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5lbWFpbCxcclxuICAgICAgICAgIHJvbGVzOiB0aGlzLnNlbGVjdGVkVXNlclJvbGVJZHMsXHJcbiAgICAgICAgICBncm91cElkOiB0aGlzLmdyb3Vwc1NlcnZpY2Uuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgb3JnYW5pemF0aW9uczogZm9ybWF0dGVkT3B0aW9ucyxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAodGhpcy5oYXNDbGFzc2lmaWNhdGlvbilcclxuICAgICAgICBwYXlsb2FkLnBheWxvYWQuY2xhc3NpZmljYXRpb24gPSB7XHJcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBmb3JtRGF0YT8uY2xhc3NpZmljYXRpb25cclxuICAgICAgICAgICAgPyBmb3JtRGF0YT8uY2xhc3NpZmljYXRpb24/LmlkXHJcbiAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtRGF0YT8ubWVtYmVyVHlwZSAmJlxyXG4gICAgICAgICFwYXlsb2FkLnBheWxvYWQucm9sZXM/LmluY2x1ZGVzKGZvcm1EYXRhPy5tZW1iZXJUeXBlPy5pZClcclxuICAgICAgKVxyXG4gICAgICAgIHBheWxvYWQucGF5bG9hZC5yb2xlcz8ucHVzaChmb3JtRGF0YT8ubWVtYmVyVHlwZT8uaWQpO1xyXG4gICAgfSBlbHNlXHJcbiAgICAgIHBheWxvYWQgPSB7XHJcbiAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgZW1haWw6IHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8uZW1haWwsXHJcbiAgICAgICAgICB1c2VySWQ6IHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8udXNlcklkLFxyXG4gICAgICAgICAgcm9sZXM6IHRoaXMuc2VsZWN0ZWRVc2VyUm9sZUlkcyxcclxuICAgICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXBzU2VydmljZT8uc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICByZXR1cm4gcGF5bG9hZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm0gY2FuY2VsIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25FZGl0VXNlclJvbGVDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWw/LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmb3JtIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGb3JtR3JvdXBSZWZlcmVuY2UoZm9ybTogRm9ybUdyb3VwW10pIHtcclxuICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmID0gZm9ybVswXTtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5jYW5EZWxldGUpIHtcclxuICAgICAgKHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmPy5jb250cm9sc1sncm9sZXMnXSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgPy5hdCgwKVxyXG4gICAgICAgID8uZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBlZGl0IHVzZXIgcm9sZSBmb3JtIGNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIGVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZlxyXG4gICAqL1xyXG4gIG9uRWRpdFVzZXJSb2xlRm9ybUNoYW5nZShmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0VXNlclJvbGVGb3JtR3JvdXBSZWYgPSBmb3JtWzBdO1xyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdGhpcy5ncm91cHNTZXJ2aWNlLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQoXHJcbiAgICAgIHRoaXMuZ3JvdXBSb3N0ZXJUeXBlLFxyXG4gICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZj8uc3RhdHVzLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVJZHNcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5sZW5ndGggJiZcclxuICAgICAgdGhpcy5lZGl0VXNlclJvbGVGb3JtR3JvdXBSZWYuY29udHJvbHNbJ3JlcHJlc2VudGluZ09yZyddLnN0YXR1cyA9PT1cclxuICAgICAgICBGb3JtU3RhdHVzLklOVkFMSURcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgY2xhc3NpZmljYXRpb25zIGZyb20gbWFzdGVyIGRhdGEuXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRDbGFzc2lmaWNhdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldENsYXNzaWZpY2F0aW9ucygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXNwb25zZT8uYm9keT8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xhc3NpZmljYXRpb25zPy5wdXNoKHtcclxuICAgICAgICAgICAgICBpZDogb3B0aW9uLmNsYXNzaWZpY2F0aW9uSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogb3B0aW9uLmNsYXNzaWZpY2F0aW9uRGVzYyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgICAnY2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgdGhpcy5jbGFzc2lmaWNhdGlvbnMsXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8uY2xhc3NpZmljYXRpb25cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVtYmVyIHR5cGVzIGZyb20gbWFzdGVyIGRhdGEuXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRNZW1iZXJUeXBlcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1lbWJlclR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlLmdldE1lbWJlclR5cGVzKCk7XHJcbiAgICBtZW1iZXJUeXBlcz8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMubWVtYmVyVHlwZXM/LnB1c2goe1xyXG4gICAgICAgIGlkOiBvcHRpb24ucm9sZUlkLFxyXG4gICAgICAgIG5hbWU6IG9wdGlvbi5yb2xlTmFtZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAnbWVtYmVyVHlwZScsXHJcbiAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICB0aGlzLm1lbWJlclR5cGVzLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlckluZm8/Lm1lbWJlclN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHJlcHJlc2VudGluZyBPcmdhbml6YXRpb25zLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdOYW1lXHJcbiAgICogQG1lbWJlcm9mIEFkZFVzZXJSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRPcmdhbml6YXRpb25zKG9yZ05hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmdTZWFyY2hWYWx1ZSA9IG9yZ05hbWU7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbnMgPSBbXTtcclxuICAgIG9yZ05hbWUgPSBvcmdOYW1lPy50cmltU3RhcnQoKTtcclxuICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAncmVwcmVzZW50aW5nT3JnJyxcclxuICAgICAgJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucycsXHJcbiAgICAgIFtdLFxyXG4gICAgICAnJ1xyXG4gICAgKTtcclxuICAgIGlmICghb3JnTmFtZSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3JnUmVxdWVzdFBheWxvYWQ6IE9yZ2FuaXphdGlvblJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7IG9yZ05hbWU6IG9yZ05hbWUgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldE9yZ2FuaXphdGlvbnMob3JnUmVxdWVzdFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25zPy5wdXNoKHtcclxuICAgICAgICAgICAgICBpZDogb3B0aW9uLm9yZ0lkLFxyXG4gICAgICAgICAgICAgIG5hbWU6IG9wdGlvbi5vcmdOYW1lLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICdyZXByZXNlbnRpbmdPcmcnLFxyXG4gICAgICAgICAgICAnbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zJyxcclxuICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25zLFxyXG4gICAgICAgICAgICBvcmdOYW1lXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3Qgb3JnTmFtZUxlbmd0aCA9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmPy5nZXQoJ3JlcHJlc2VudGluZ09yZycpPy52YWx1ZT8ubmFtZVxyXG4gICAgICAgICAgICAgID8ubGVuZ3RoO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBvcmdOYW1lTGVuZ3RoICYmXHJcbiAgICAgICAgICAgIG9yZ05hbWVMZW5ndGggPFxyXG4gICAgICAgICAgICAgIEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdOYW1lTWluTGVuZ3RoICYmXHJcbiAgICAgICAgICAgIG9yZ05hbWVMZW5ndGggIT09IDBcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZj8uZ2V0KCdyZXByZXNlbnRpbmdPcmcnKT8uc2V0RXJyb3JzKHtcclxuICAgICAgICAgICAgICBtaW5sZW5ndGg6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0XHJcbiAgICAgICAgICAgICAgICAgID8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uTWluQ2hhcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgZHJvcGRvd24gb3B0aW9ucyBvZiBDbGFzc2lmaWNhdGlvbiwgTWVtYmVyIFR5cGUgYW5kIFJlcHJlc2VudGluZyBPcmdhbml6YXRpb24gZm9ybSBmaWVsZHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1Db250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtQ29udHJvbElucHV0UHJvcGVydHlcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbltdfSBvcHRpb25zXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICBmb3JtQ29udHJvbE5hbWU6IHN0cmluZyxcclxuICAgIGZvcm1Db250cm9sSW5wdXRQcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgb3B0aW9uczogU2VsZWN0T3B0aW9uW10sXHJcbiAgICBzZWxlY3RlZE9wdGlvbj86IHN0cmluZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnQ/LmZvcm1GaWVsZHM/LnRvQXJyYXkoKTtcclxuICAgIGZvcm1GaWVsZHM/LmZvckVhY2goKGZvcm1GaWVsZCkgPT4ge1xyXG4gICAgICBjb25zdCBzZWFyY2hlZE9yZ05hbWUgPSBvcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT5cclxuICAgICAgICBzZWxlY3RlZE9wdGlvbj8uaW5jbHVkZXMob3B0aW9uPy5uYW1lKVxyXG4gICAgICApWzBdO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZm9ybUZpZWxkPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5jb25maWc/LmNvbnRyb2xOYW1lID09PVxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lICYmXHJcbiAgICAgICAgZm9ybUZpZWxkPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5bZm9ybUNvbnRyb2xJbnB1dFByb3BlcnR5XVxyXG4gICAgICApXHJcbiAgICAgICAgZm9ybUZpZWxkLmNvbXBvbmVudC5pbnN0YW5jZVtmb3JtQ29udHJvbElucHV0UHJvcGVydHldID0gb3B0aW9ucztcclxuICAgICAgaWYgKHNlbGVjdGVkT3B0aW9uICYmIHNlYXJjaGVkT3JnTmFtZSkge1xyXG4gICAgICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmXHJcbiAgICAgICAgICAuZ2V0KGZvcm1Db250cm9sTmFtZSlcclxuICAgICAgICAgID8uc2V0VmFsdWUoc2VhcmNoZWRPcmdOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXB0dXJlcyB0aGUgc2VydmVyIHNpZGUgZXJyb3JzIGFuZCBoYW5kbGVzIGl0IGJhc2VkIG9uIHRoZSBjdXN0b20gb3IgSHR0cCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXJyb3JSZXNwb25zZX0gZXJyb3JcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgaGFuZGxlRXJyb3JzKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVycm9yQ29kZXMgPSBlcnJvcj8uZXJyb3I/LmJvZHk/LmVycm9yQ29kZXM7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvckNvZGVzKSAmJiAhZXJyb3I/LmVycm9yPy5zdGF0dXMpIHtcclxuICAgICAgaWYgKGVycm9yQ29kZXNbMF0gIT09ICczMDA0Jykge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHRoaXMuZ3JvdXBzU2VydmljZT8ucGFyc2VFcnJvck1lc3NhZ2UoZXJyb3JDb2Rlcyk7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcclxuICAgICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLkVSUk9SLFxyXG4gICAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZT8uaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBEaXNhYmxlcyBmb3JtIHN1Ym1pdCBidXR0b24gd2hlbiBvcmcgbmFtZSBsZW5ndGggaXMgbGVzcyB0aGFuIG1pbkNoYXJUb1NlYXJjaCBhbmQgZ3JlYXRlciB0aGFuIHplcm8uXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNhYmxlU3VibWl0QnV0dG9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgJ3JlcHJlc2VudGluZ09yZycsXHJcbiAgICAgICAgJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucycsXHJcbiAgICAgICAgW11cclxuICAgICAgKTtcclxuICAgICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aWVlZXNhLWR5bmFtaWMtZm9ybVxyXG4gIFtsZWZ0QnV0dG9uTGFiZWxdPVwibGVmdEJ1dHRvbkxhYmVsXCJcclxuICBbcmlnaHRCdXR0b25MYWJlbF09XCJyaWdodEJ1dHRvbkxhYmVsXCJcclxuICBbaXNMZWdlbmRWaXNpYmxlXT1cImZhbHNlXCJcclxuICBbaXNTdWJtaXRCdXR0b25EaXNhYmxlZF09XCJpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkXCJcclxuICBbY29sV2lkdGhdPVwiY29sV2lkdGhcIlxyXG4gIFthY3Rpb25CdXR0b25BbGlnbl09XCJhY3Rpb25CdXR0b25BbGlnblwiXHJcbiAgW2Zvcm1Hcm91cHNdPVwiZWRpdFVzZXJSb2xlRm9ybUdyb3VwXCJcclxuICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cInRydWVcIlxyXG4gIChmb3JtU3VibWl0KT1cIm9uRWRpdFVzZXJSb2xlRm9ybVN1Ym1pdCgkZXZlbnQpXCJcclxuICAoZm9ybUxlZnRCdXR0b25DbGlja2VkKT1cIm9uRWRpdFVzZXJSb2xlQ2FuY2VsbGVkKClcIlxyXG4gIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25Vc2VyUm9sZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAoZm9ybUdyb3Vwc1JlZmVyZW5jZSk9XCJnZXRGb3JtR3JvdXBSZWZlcmVuY2UoJGV2ZW50KVwiXHJcbiAgKGZvcm1DaGFuZ2UpPVwib25FZGl0VXNlclJvbGVGb3JtQ2hhbmdlKCRldmVudClcIlxyXG4gIChmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2gpPVwiZ2V0T3JnYW5pemF0aW9ucygkZXZlbnQpXCJcclxuICAobXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zU2VsZWN0ZWQpPVwiZ2V0U2VsZWN0ZWRPcmdhbml6YXRpb25zKCRldmVudClcIlxyXG4gIChmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cImRpc2FibGVTdWJtaXRCdXR0b24oKVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+XHJcbiJdfQ==
|
|
536
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvZWRpdC11c2VyLXJvbGVzL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2VkaXQtdXNlci1yb2xlcy9lZGl0LXVzZXItcm9sZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxTQUFTLEVBSVQsZUFBZSxFQUlmLG9CQUFvQixHQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUF3QixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsR0FHVixNQUFNLHFCQUFxQixDQUFDO0FBTzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQU16RTs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUEwQmpDO0lBQ0Us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O0lBQ0gsQ0FBQztJQUNEOzs7T0FHRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyx3QkFBd0IsQ0FDM0IsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxFQUFFLENBQ0gsQ0FBQztZQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0F0bUJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlOQXVCdEIsb0JBQW9CLGdEQ25GakMsMjRCQWtCQSwrOFlEcUNZLFlBQVksK0JBQUUsb0JBQW9COzs0RkFLakMsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsaUJBRzlCLGlCQUFpQixDQUFDLElBQUk7d0tBeUJKLG9CQUFvQjtzQkFBcEQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ3JCLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbGlnblR5cGUsXHJcbiAgQXV0b0NvbXBsZXRlT3B0aW9uLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIEZpZWxkQ29uZmlnLFxyXG4gIEZvcm1Db250cm9sVHlwZSxcclxuICBGb3JtR3JpZCxcclxuICBGb3JtTW9kZWwsXHJcbiAgU2VsZWN0T3B0aW9uLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHcm91cFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLXVzZXItaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRUeXBlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBBZGRPckVkaXRVc2VySW5kaXZpZHVhbFJvc3RlclBheWxvYWQsXHJcbiAgQWRkT3JFZGl0VXNlclBheWxvYWQsXHJcbiAgUmVwcmVzZW50aW5nT3JnYW5pemF0aW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9hZGQtb3ItZWRpdC11c2VyLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBUeXBlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwUm9zdGVyVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9yb3N0ZXItdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuaW1wb3J0IHtcclxuICBPcmdhbml6YXRpb24sXHJcbiAgT3JnYW5pemF0aW9uUmVxdWVzdFBheWxvYWQsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL29yZ2FuaXphdGlvbi5tb2RlbCc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IGltcGxlbWVudHMgdGhlIHZpZXcgYW5kIGZ1bmN0aW9uYWxpdGllcyB0byBlZGl0IGdyb3VwIHVzZXJzIHRvIHJvc3Rlci5cclxuICogQGNsYXNzIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWVkaXQtdXNlci1yb2xlcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEeW5hbWljRm9ybUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRVc2VyUm9sZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuICBhZGRVc2VyUm9zdGVyVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8uYWRkVXNlclJvc3RlcjtcclxuICBsZWZ0QnV0dG9uTGFiZWwgPSB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5zYXZlQnV0dG9uTGFiZWw7XHJcbiAgaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGNvbFdpZHRoOiBGb3JtR3JpZCA9IHsgeHM6IDEyLCB4bDogMTIsIHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIgfTtcclxuICBlZGl0VXNlclJvbGVGb3JtR3JvdXAhOiBGb3JtTW9kZWw7XHJcbiAgZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmITogRm9ybUdyb3VwO1xyXG4gIHVzZXJSb2xlcyE6IENoZWNrYm94T3B0aW9uW107XHJcbiAgc2VsZWN0ZWRVc2VyUm9sZUlkczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZFVzZXJJbmZvITogR3JvdXBVc2VySW5mbztcclxuICBhY3Rpb25CdXR0b25BbGlnbiA9IEFsaWduVHlwZS5MRUZUO1xyXG4gIGNsYXNzaWZpY2F0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBtZW1iZXJUeXBlczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBvcmdhbml6YXRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGdyb3VwVHlwZXMhOiBHcm91cFR5cGVDb25maWd1cmF0aW9uW107XHJcbiAgaGFzQ2xhc3NpZmljYXRpb24gPSBmYWxzZTtcclxuICBncm91cFJvc3RlclR5cGUhOiBHcm91cFJvc3RlclR5cGU7XHJcbiAgcmVwcmVzZW50aW5nT3JnYW5pemF0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBvcmdTZWFyY2hWYWx1ZSA9ICcnO1xyXG4gIEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1Db21wb25lbnQpIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm1SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZm9ybUNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZTogR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXQgdXNlciByb2xlIHJlcXVpcmVkIGluZm9ybWF0aW9uIGFuZCBmb3JtIGdyb3VwIGFycmF5LlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlckluZm8gPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldFNlbGVjdGVkVXNlckluZm8oKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZS5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25zLmZvckVhY2goXHJcbiAgICAgICh1c2VyOiBSZXByZXNlbnRpbmdPcmdhbml6YXRpb24pID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlckluZm8udXNlcklkID09PSB1c2VyLnVzZXJJZCAmJlxyXG4gICAgICAgICAgdXNlci5vcmdhbml6YXRpb25zPy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHVzZXIub3JnYW5pemF0aW9ucy5mb3JFYWNoKChvcHRpb246IE9yZ2FuaXphdGlvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBvcHRpb24ub3JnSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogb3B0aW9uLm9yZ05hbWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xyXG4gICAgdGhpcy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25zPy5sZW5ndGhcclxuICAgICAgPyAodGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2UpXHJcbiAgICAgIDogKHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRVc2VyUm9sZU5hbWVzID0gdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5yb2xlXHJcbiAgICAgID8uc3BsaXQoJywnKVxyXG4gICAgICAubWFwKChyb2xlKSA9PiByb2xlPy50cmltKCkpO1xyXG4gICAgdGhpcy51c2VyUm9sZXMgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldEdyb3VwVHlwZVVzZXJSb2xlcygpO1xyXG4gICAgdGhpcy51c2VyUm9sZXM/LmZvckVhY2goKHJvbGUpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkVXNlclJvbGVOYW1lcz8uaW5jbHVkZXMocm9sZT8ubmFtZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgcm9sZS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVJZHM/LnB1c2gocm9sZT8uaWQgYXMgc3RyaW5nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBncm91cFR5cGUgPSB0aGlzLmdyb3Vwc1NlcnZpY2UuZ2V0QnVzaW5lc3NSdWxlT2ZTZWxlY3RlZEdyb3VwKCk7XHJcbiAgICB0aGlzLmhhc0NsYXNzaWZpY2F0aW9uID0gZ3JvdXBUeXBlPy5oYXNDbGFzc2lmaWNhdGlvbiA/PyBmYWxzZTtcclxuICAgIHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID0gZ3JvdXBUeXBlPy5yb3N0ZXJUeXBlIGFzIEdyb3VwUm9zdGVyVHlwZTtcclxuICAgIGlmICghdGhpcy5ncm91cFJvc3RlclR5cGUpXHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuY29uc3RhbnRzPy5lcnJvcnM/LkVSMTAwMSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5FUlJPUixcclxuICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZT8uSU5ESVZJRFVBTCkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0NsYXNzaWZpY2F0aW9uKSB0aGlzLmdldENsYXNzaWZpY2F0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZ2V0TWVtYmVyVHlwZXMoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVkaXRVc2VyUm9sZXNGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXQgdXNlciByb2xlIGZvcm0gZ3JvdXAgYXJyYXkuXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBlZGl0VXNlclJvbGVzRm9ybUdyb3VwKCkge1xyXG4gICAgdGhpcy5lZGl0VXNlclJvbGVGb3JtR3JvdXAgPSB7XHJcbiAgICAgIGZvcm1Hcm91cDogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlZ2VuZDogJycsXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uZW1haWwgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdlbWFpbCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8uZW1haWwsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uZW1haWwsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5lbWFpbCxcclxuICAgICAgICAgICAgICBpc1JlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlRFWFRfQVJFQSxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5mdWxsTmFtZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2Z1bGxOYW1lJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5uYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmZ1bGxOYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZnVsbE5hbWUsXHJcbiAgICAgICAgICAgICAgaXNSZWFkb25seTogdHJ1ZSxcclxuICAgICAgICAgICAgICBhcmlhTXVsdGlsaW5lOiBmYWxzZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID09PSBHcm91cFJvc3RlclR5cGUuSU5ESVZJRFVBTFxyXG4gICAgICAgICAgICAgICAgICA/IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ucm9sZVxyXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ucm9sZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3JvbGVzJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMudXNlclJvbGVzLFxyXG4gICAgICAgICAgICAgIG1pblNlbGVjdGlvblJlcXVpcmVkOiAxLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnJvbGUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5yb2xlLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZS5JTkRJVklEVUFMXHJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICA/LnJvbGVGb3JJbmRpdmlkdWFsUm9zdGVyXHJcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0Py5yb2xlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZS5JTkRJVklEVUFMXHJcbiAgICAgICAgICAgICAgICAgID8gW11cclxuICAgICAgICAgICAgICAgICAgOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID09PSBHcm91cFJvc3RlclR5cGU/LklORElWSURVQUwpIHtcclxuICAgICAgdGhpcy51cGRhdGVFZGl0VXNlclJvbGVGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgY2xhc3NpZmljYXRpb24sIE1lbWJlciBUeXBlIGFuZCBSZXByZXNlbnRpbmcgT3JnYW5pemF0aW9uIGZvcm0gY29udHJvbHMgd2hpbGUgZWRpdGluZyBuZXcgdXNlciB0byBhbiBpbmRpdmlkdWFsIGdyb3VwIHJvc3Rlci5cclxuICAgKiBAbWVtYmVyb2YgQWRkVXNlclJvc3RlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHVwZGF0ZUVkaXRVc2VyUm9sZUZvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhhc0NsYXNzaWZpY2F0aW9uKVxyXG4gICAgICB0aGlzLnVwZGF0ZUVkaXRVc2VyUm9sZUZvcm1Db250cm9scyhcclxuICAgICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gMSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uY2xhc3NpZmljYXRpb24gKyAnKicsXHJcbiAgICAgICAgICBjb250cm9sTmFtZTogJ2NsYXNzaWZpY2F0aW9uJyxcclxuICAgICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5jbGFzc2lmaWNhdGlvbnMsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5jbGFzc2lmaWNhdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkVXNlckluZm8/LmNsYXNzaWZpY2F0aW9uXHJcbiAgICAgICAgICApWzBdLFxyXG4gICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5zdXBwb3J0VGV4dD8uY2xhc3NpZmljYXRpb24sXHJcbiAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmNsYXNzaWZpY2F0aW9uLFxyXG4gICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgIHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmNsYXNzaWZpY2F0aW9uLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIHRoaXMudXBkYXRlRWRpdFVzZXJSb2xlRm9ybUNvbnRyb2xzKFxyXG4gICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cD8uZm9ybUdyb3VwWzBdPy5jb250cm9scz8ubGVuZ3RoIC0gMSxcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ubWVtYmVyVHlwZSArICcqJyxcclxuICAgICAgICBjb250cm9sTmFtZTogJ21lbWJlclR5cGUnLFxyXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5tZW1iZXJUeXBlcyxcclxuICAgICAgICB2YWx1ZTogdGhpcy5tZW1iZXJUeXBlcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkVXNlckluZm8/Lm1lbWJlclN0YXR1c1xyXG4gICAgICAgIClbMF0sXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0Py5tZW1iZXJUeXBlLFxyXG4gICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgIGFyaWFMYWJlbDogdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lm1lbWJlclR5cGUsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5tZW1iZXJUeXBlLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy51cGRhdGVFZGl0VXNlclJvbGVGb3JtQ29udHJvbHMoXHJcbiAgICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwPy5mb3JtR3JvdXBbMF0/LmNvbnRyb2xzPy5sZW5ndGgsXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuTVVMVElfU0VMRUNUX0FVVE9fQ09NUExFVEUsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uICsgJyonLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiAncmVwcmVzZW50aW5nT3JnJyxcclxuICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgIEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdOYW1lTWF4TGVuZ3RoXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoXHJcbiAgICAgICAgICAgIEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdOYW1lTWluTGVuZ3RoXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb24pLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zOiB0aGlzLm9yZ2FuaXphdGlvbnMsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucz8ubGVuZ3RoXHJcbiAgICAgICAgICA/IHRoaXMub3JnU2VhcmNoVmFsdWU/Lmxlbmd0aFxyXG4gICAgICAgICAgICA/IHRoaXMub3JnU2VhcmNoVmFsdWVcclxuICAgICAgICAgICAgOiB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnNcclxuICAgICAgICAgIDogJycsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/LnN1cHBvcnRUZXh0Py5yZXByZXNlbnRpbmdPcmdhbml6YXRpb24sXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdFxyXG4gICAgICAgICAgICA/LnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbk1heENoYXJzLFxyXG4gICAgICAgIG1pbkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgIHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXRcclxuICAgICAgICAgICAgPy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25NaW5DaGFycyxcclxuICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgdGhpcy5hZGRVc2VyUm9zdGVyVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuXHJcbiAgICAgICAgICAgID8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uLFxyXG4gICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgIHRoaXMuYWRkVXNlclJvc3RlclRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb24sXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgID8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBzZWxlY3RlZCBvcmdhbml6YXRpb25zLlxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9uW119IHNlbGVjdGVkT3JnXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRTZWxlY3RlZE9yZ2FuaXphdGlvbnMoc2VsZWN0ZWRPcmc6IEF1dG9Db21wbGV0ZU9wdGlvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnMgPSBzZWxlY3RlZE9yZztcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgIHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5sZW5ndGhcclxuICAgICAgPyAodGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2UpXHJcbiAgICAgIDogKHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBlZGl0IHVzZXIgZm9ybSBncm91cCBjb250cm9scyBieSBhZGRpbmcgZmllbGRDb25maWcgYXQgcmVxdWlyZWQgaW5kZXguXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4UG9zaXRpb25cclxuICAgKiBAcGFyYW0ge0ZpZWxkQ29uZmlnfSBmaWVsZENvbmZpZ1xyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlRWRpdFVzZXJSb2xlRm9ybUNvbnRyb2xzKFxyXG4gICAgaW5kZXhQb3NpdGlvbjogbnVtYmVyLFxyXG4gICAgZmllbGRDb25maWc6IEZpZWxkQ29uZmlnXHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cC5mb3JtR3JvdXBbMF0uY29udHJvbHMuc3BsaWNlKFxyXG4gICAgICBpbmRleFBvc2l0aW9uLFxyXG4gICAgICAwLFxyXG4gICAgICBmaWVsZENvbmZpZ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdXNlciByb2xlIHNlbGVjdGlvbiBhbmQgc2F2ZSBidXR0b24gZW5hYmxlIGRpc2FibGUgaW4gZWRpdCB1c2VyIHJvbGVzIGZvcm0uXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbn0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVXNlclJvbGVTZWxlY3Rpb24oZXZlbnQ6IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQ/LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlSWRzPy5wdXNoKGV2ZW50Py5pZCBhcyBzdHJpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlSWRzID0gdGhpcy5zZWxlY3RlZFVzZXJSb2xlSWRzPy5maWx0ZXIoXHJcbiAgICAgICAgKGlkKSA9PiBpZCAhPT0gZXZlbnQ/LmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncm91cFJvc3RlclR5cGUgPT09IEdyb3VwUm9zdGVyVHlwZS5TWVNURU1fVVNFUikge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0aGlzLmdyb3Vwc1NlcnZpY2UuaXNTdWJtaXRCdXR0b25EaXNhYmxlZChcclxuICAgICAgICB0aGlzLmdyb3VwUm9zdGVyVHlwZSxcclxuICAgICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZj8uc3RhdHVzLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZUlkc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHJvbGVzIGFuZCBkZXRhaWxzIG9mIHVzZXIgb24gZm9ybSBzdWJtaXNzaW9uLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1cclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRWRpdFVzZXJSb2xlRm9ybVN1Ym1pdChmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgZm9ybVswXT8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgaXNBbGxPdGhlckNvbnRyb2xzVmFsaWQgPSBPYmplY3Qua2V5cyhmb3JtWzBdLmNvbnRyb2xzKVxyXG4gICAgICAuZmlsdGVyKChjb250cm9sTmFtZSkgPT4gY29udHJvbE5hbWUgIT09ICdyZXByZXNlbnRpbmdPcmcnKVxyXG4gICAgICAuZXZlcnkoXHJcbiAgICAgICAgKGNvbnRyb2xOYW1lKSA9PiBmb3JtWzBdLmdldChjb250cm9sTmFtZSk/LnN0YXR1cyA9PT0gRm9ybVN0YXR1cz8uVkFMSURcclxuICAgICAgKTtcclxuICAgIGlmIChcclxuICAgICAgKGZvcm1bMF0uZ2V0KCdyZXByZXNlbnRpbmdPcmcnKT8uc3RhdHVzID09PSBGb3JtU3RhdHVzPy5JTlZBTElEICYmXHJcbiAgICAgICAgaXNBbGxPdGhlckNvbnRyb2xzVmFsaWQgJiZcclxuICAgICAgICB0aGlzLnJlcHJlc2VudGluZ09yZ2FuaXphdGlvbnMubGVuZ3RoID4gMCkgfHxcclxuICAgICAgZm9ybVswXS5zdGF0dXMgPT09IEZvcm1TdGF0dXM/LlZBTElEXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgICAgLmVkaXRHcm91cHNVc2VyUm9sZSh0aGlzLmdldEVkaXRVc2VyUm9sZVBheWxvYWQoZm9ybVswXT8uZ2V0UmF3VmFsdWUoKSkpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm1SZXNwb25zZT8uZW1pdChyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBlZGl0IHVzZXIgcGF5bG9hZCBmcm9tIHRoZSBmb3JtIGRhdGEgZGVwZW5kcyBvbiB0aGUgR3JvdXBSb3N0ZXJUeXBlIGFuZCByZXR1cm5zLlxyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybURhdGFcclxuICAgKiBAcmV0dXJuIHsoQWRkT3JFZGl0VXNlclBheWxvYWQgfCBBZGRPckVkaXRVc2VySW5kaXZpZHVhbFJvc3RlclBheWxvYWQpfVxyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0RWRpdFVzZXJSb2xlUGF5bG9hZChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBmb3JtRGF0YTogYW55XHJcbiAgKTogQWRkT3JFZGl0VXNlclBheWxvYWQgfCBBZGRPckVkaXRVc2VySW5kaXZpZHVhbFJvc3RlclBheWxvYWQge1xyXG4gICAgbGV0IHBheWxvYWQ6IEFkZE9yRWRpdFVzZXJQYXlsb2FkIHwgQWRkT3JFZGl0VXNlckluZGl2aWR1YWxSb3N0ZXJQYXlsb2FkO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXBSb3N0ZXJUeXBlID09PSBHcm91cFJvc3RlclR5cGU/LklORElWSURVQUwpIHtcclxuICAgICAgY29uc3QgZm9ybWF0dGVkT3B0aW9ucyA9IHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBvcmdJZDogb3B0aW9uLmlkIGFzIHN0cmluZyxcclxuICAgICAgICAgIG9yZ05hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICBwYXlsb2FkID0ge1xyXG4gICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgIHVzZXJJZDogdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy51c2VySWQsXHJcbiAgICAgICAgICBlbWFpbDogdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5lbWFpbCxcclxuICAgICAgICAgIHJvbGVzOiB0aGlzLnNlbGVjdGVkVXNlclJvbGVJZHMsXHJcbiAgICAgICAgICBncm91cElkOiB0aGlzLmdyb3Vwc1NlcnZpY2Uuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgb3JnYW5pemF0aW9uczogZm9ybWF0dGVkT3B0aW9ucyxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAodGhpcy5oYXNDbGFzc2lmaWNhdGlvbilcclxuICAgICAgICBwYXlsb2FkLnBheWxvYWQuY2xhc3NpZmljYXRpb24gPSB7XHJcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBmb3JtRGF0YT8uY2xhc3NpZmljYXRpb25cclxuICAgICAgICAgICAgPyBmb3JtRGF0YT8uY2xhc3NpZmljYXRpb24/LmlkXHJcbiAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtRGF0YT8ubWVtYmVyVHlwZSAmJlxyXG4gICAgICAgICFwYXlsb2FkLnBheWxvYWQucm9sZXM/LmluY2x1ZGVzKGZvcm1EYXRhPy5tZW1iZXJUeXBlPy5pZClcclxuICAgICAgKVxyXG4gICAgICAgIHBheWxvYWQucGF5bG9hZC5yb2xlcz8ucHVzaChmb3JtRGF0YT8ubWVtYmVyVHlwZT8uaWQpO1xyXG4gICAgfSBlbHNlXHJcbiAgICAgIHBheWxvYWQgPSB7XHJcbiAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgZW1haWw6IHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8uZW1haWwsXHJcbiAgICAgICAgICB1c2VySWQ6IHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8udXNlcklkLFxyXG4gICAgICAgICAgcm9sZXM6IHRoaXMuc2VsZWN0ZWRVc2VyUm9sZUlkcyxcclxuICAgICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXBzU2VydmljZT8uc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICByZXR1cm4gcGF5bG9hZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm0gY2FuY2VsIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBFZGl0VXNlclJvbGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25FZGl0VXNlclJvbGVDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWw/LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmb3JtIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGb3JtR3JvdXBSZWZlcmVuY2UoZm9ybTogRm9ybUdyb3VwW10pIHtcclxuICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmID0gZm9ybVswXTtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZFVzZXJJbmZvPy5jYW5EZWxldGUpIHtcclxuICAgICAgKHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmPy5jb250cm9sc1sncm9sZXMnXSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgPy5hdCgwKVxyXG4gICAgICAgID8uZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBlZGl0IHVzZXIgcm9sZSBmb3JtIGNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIGVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZlxyXG4gICAqL1xyXG4gIG9uRWRpdFVzZXJSb2xlRm9ybUNoYW5nZShmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0VXNlclJvbGVGb3JtR3JvdXBSZWYgPSBmb3JtWzBdO1xyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdGhpcy5ncm91cHNTZXJ2aWNlLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQoXHJcbiAgICAgIHRoaXMuZ3JvdXBSb3N0ZXJUeXBlLFxyXG4gICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZj8uc3RhdHVzLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVJZHNcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5sZW5ndGggJiZcclxuICAgICAgdGhpcy5lZGl0VXNlclJvbGVGb3JtR3JvdXBSZWYuY29udHJvbHNbJ3JlcHJlc2VudGluZ09yZyddLnN0YXR1cyA9PT1cclxuICAgICAgICBGb3JtU3RhdHVzLklOVkFMSURcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5yZXByZXNlbnRpbmdPcmdhbml6YXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgY2xhc3NpZmljYXRpb25zIGZyb20gbWFzdGVyIGRhdGEuXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRDbGFzc2lmaWNhdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldENsYXNzaWZpY2F0aW9ucygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXNwb25zZT8uYm9keT8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xhc3NpZmljYXRpb25zPy5wdXNoKHtcclxuICAgICAgICAgICAgICBpZDogb3B0aW9uLmNsYXNzaWZpY2F0aW9uSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogb3B0aW9uLmNsYXNzaWZpY2F0aW9uRGVzYyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgICAnY2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgdGhpcy5jbGFzc2lmaWNhdGlvbnMsXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySW5mbz8uY2xhc3NpZmljYXRpb25cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVtYmVyIHR5cGVzIGZyb20gbWFzdGVyIGRhdGEuXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRNZW1iZXJUeXBlcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1lbWJlclR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlLmdldE1lbWJlclR5cGVzKCk7XHJcbiAgICBtZW1iZXJUeXBlcz8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMubWVtYmVyVHlwZXM/LnB1c2goe1xyXG4gICAgICAgIGlkOiBvcHRpb24ucm9sZUlkLFxyXG4gICAgICAgIG5hbWU6IG9wdGlvbi5yb2xlTmFtZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAnbWVtYmVyVHlwZScsXHJcbiAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICB0aGlzLm1lbWJlclR5cGVzLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlckluZm8/Lm1lbWJlclN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHJlcHJlc2VudGluZyBPcmdhbml6YXRpb25zLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcmdOYW1lXHJcbiAgICogQG1lbWJlcm9mIEFkZFVzZXJSb3N0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRPcmdhbml6YXRpb25zKG9yZ05hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmdTZWFyY2hWYWx1ZSA9IG9yZ05hbWU7XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvbnMgPSBbXTtcclxuICAgIG9yZ05hbWUgPSBvcmdOYW1lPy50cmltU3RhcnQoKTtcclxuICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAncmVwcmVzZW50aW5nT3JnJyxcclxuICAgICAgJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucycsXHJcbiAgICAgIFtdLFxyXG4gICAgICAnJ1xyXG4gICAgKTtcclxuICAgIGlmICghb3JnTmFtZSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3JnUmVxdWVzdFBheWxvYWQ6IE9yZ2FuaXphdGlvblJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7IG9yZ05hbWU6IG9yZ05hbWUgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldE9yZ2FuaXphdGlvbnMob3JnUmVxdWVzdFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25zPy5wdXNoKHtcclxuICAgICAgICAgICAgICBpZDogb3B0aW9uLm9yZ0lkLFxyXG4gICAgICAgICAgICAgIG5hbWU6IG9wdGlvbi5vcmdOYW1lLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICdyZXByZXNlbnRpbmdPcmcnLFxyXG4gICAgICAgICAgICAnbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zJyxcclxuICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25zLFxyXG4gICAgICAgICAgICBvcmdOYW1lXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3Qgb3JnTmFtZUxlbmd0aCA9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmPy5nZXQoJ3JlcHJlc2VudGluZ09yZycpPy52YWx1ZT8ubmFtZVxyXG4gICAgICAgICAgICAgID8ubGVuZ3RoO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBvcmdOYW1lTGVuZ3RoICYmXHJcbiAgICAgICAgICAgIG9yZ05hbWVMZW5ndGggPFxyXG4gICAgICAgICAgICAgIEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucy5yZXByZXNlbnRpbmdPcmdOYW1lTWluTGVuZ3RoICYmXHJcbiAgICAgICAgICAgIG9yZ05hbWVMZW5ndGggIT09IDBcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRVc2VyUm9sZUZvcm1Hcm91cFJlZj8uZ2V0KCdyZXByZXNlbnRpbmdPcmcnKT8uc2V0RXJyb3JzKHtcclxuICAgICAgICAgICAgICBtaW5sZW5ndGg6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0XHJcbiAgICAgICAgICAgICAgICAgID8ucmVwcmVzZW50aW5nT3JnYW5pemF0aW9uTWluQ2hhcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgZHJvcGRvd24gb3B0aW9ucyBvZiBDbGFzc2lmaWNhdGlvbiwgTWVtYmVyIFR5cGUgYW5kIFJlcHJlc2VudGluZyBPcmdhbml6YXRpb24gZm9ybSBmaWVsZHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1Db250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtQ29udHJvbElucHV0UHJvcGVydHlcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbltdfSBvcHRpb25zXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICB1cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICBmb3JtQ29udHJvbE5hbWU6IHN0cmluZyxcclxuICAgIGZvcm1Db250cm9sSW5wdXRQcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgb3B0aW9uczogU2VsZWN0T3B0aW9uW10sXHJcbiAgICBzZWxlY3RlZE9wdGlvbj86IHN0cmluZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnQ/LmZvcm1GaWVsZHM/LnRvQXJyYXkoKTtcclxuICAgIGZvcm1GaWVsZHM/LmZvckVhY2goKGZvcm1GaWVsZCkgPT4ge1xyXG4gICAgICBjb25zdCBzZWFyY2hlZE9yZ05hbWUgPSBvcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT5cclxuICAgICAgICBzZWxlY3RlZE9wdGlvbj8uaW5jbHVkZXMob3B0aW9uPy5uYW1lKVxyXG4gICAgICApWzBdO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZm9ybUZpZWxkPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5jb25maWc/LmNvbnRyb2xOYW1lID09PVxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lICYmXHJcbiAgICAgICAgZm9ybUZpZWxkPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5bZm9ybUNvbnRyb2xJbnB1dFByb3BlcnR5XVxyXG4gICAgICApXHJcbiAgICAgICAgZm9ybUZpZWxkLmNvbXBvbmVudC5pbnN0YW5jZVtmb3JtQ29udHJvbElucHV0UHJvcGVydHldID0gb3B0aW9ucztcclxuICAgICAgaWYgKHNlbGVjdGVkT3B0aW9uICYmIHNlYXJjaGVkT3JnTmFtZSkge1xyXG4gICAgICAgIHRoaXMuZWRpdFVzZXJSb2xlRm9ybUdyb3VwUmVmXHJcbiAgICAgICAgICAuZ2V0KGZvcm1Db250cm9sTmFtZSlcclxuICAgICAgICAgID8uc2V0VmFsdWUoc2VhcmNoZWRPcmdOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYXB0dXJlcyB0aGUgc2VydmVyIHNpZGUgZXJyb3JzIGFuZCBoYW5kbGVzIGl0IGJhc2VkIG9uIHRoZSBjdXN0b20gb3IgSHR0cCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXJyb3JSZXNwb25zZX0gZXJyb3JcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgaGFuZGxlRXJyb3JzKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVycm9yQ29kZXMgPSBlcnJvcj8uZXJyb3I/LmJvZHk/LmVycm9yQ29kZXM7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvckNvZGVzKSAmJiAhZXJyb3I/LmVycm9yPy5zdGF0dXMpIHtcclxuICAgICAgaWYgKGVycm9yQ29kZXNbMF0gIT09ICczMDA0Jykge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHRoaXMuZ3JvdXBzU2VydmljZT8ucGFyc2VFcnJvck1lc3NhZ2UoZXJyb3JDb2Rlcyk7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcclxuICAgICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLkVSUk9SLFxyXG4gICAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZT8uaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBEaXNhYmxlcyBmb3JtIHN1Ym1pdCBidXR0b24gd2hlbiBvcmcgbmFtZSBsZW5ndGggaXMgbGVzcyB0aGFuIG1pbkNoYXJUb1NlYXJjaCBhbmQgZ3JlYXRlciB0aGFuIHplcm8uXHJcbiAgICogQG1lbWJlcm9mIEVkaXRVc2VyUm9sZXNDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNhYmxlU3VibWl0QnV0dG9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVwcmVzZW50aW5nT3JnYW5pemF0aW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgJ3JlcHJlc2VudGluZ09yZycsXHJcbiAgICAgICAgJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucycsXHJcbiAgICAgICAgW11cclxuICAgICAgKTtcclxuICAgICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgRWRpdFVzZXJSb2xlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aWVlZXNhLWR5bmFtaWMtZm9ybVxyXG4gIFtsZWZ0QnV0dG9uTGFiZWxdPVwibGVmdEJ1dHRvbkxhYmVsXCJcclxuICBbcmlnaHRCdXR0b25MYWJlbF09XCJyaWdodEJ1dHRvbkxhYmVsXCJcclxuICBbaXNMZWdlbmRWaXNpYmxlXT1cImZhbHNlXCJcclxuICBbaXNTdWJtaXRCdXR0b25EaXNhYmxlZF09XCJpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkXCJcclxuICBbY29sV2lkdGhdPVwiY29sV2lkdGhcIlxyXG4gIFthY3Rpb25CdXR0b25BbGlnbl09XCJhY3Rpb25CdXR0b25BbGlnblwiXHJcbiAgW2Zvcm1Hcm91cHNdPVwiZWRpdFVzZXJSb2xlRm9ybUdyb3VwXCJcclxuICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cInRydWVcIlxyXG4gIChmb3JtU3VibWl0KT1cIm9uRWRpdFVzZXJSb2xlRm9ybVN1Ym1pdCgkZXZlbnQpXCJcclxuICAoZm9ybUxlZnRCdXR0b25DbGlja2VkKT1cIm9uRWRpdFVzZXJSb2xlQ2FuY2VsbGVkKClcIlxyXG4gIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25Vc2VyUm9sZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAoZm9ybUdyb3Vwc1JlZmVyZW5jZSk9XCJnZXRGb3JtR3JvdXBSZWZlcmVuY2UoJGV2ZW50KVwiXHJcbiAgKGZvcm1DaGFuZ2UpPVwib25FZGl0VXNlclJvbGVGb3JtQ2hhbmdlKCRldmVudClcIlxyXG4gIChmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2gpPVwiZ2V0T3JnYW5pemF0aW9ucygkZXZlbnQpXCJcclxuICAobXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zU2VsZWN0ZWQpPVwiZ2V0U2VsZWN0ZWRPcmdhbml6YXRpb25zKCRldmVudClcIlxyXG4gIChmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cImRpc2FibGVTdWJtaXRCdXR0b24oKVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+XHJcbiJdfQ==
|