@ieeesa-npm/groups 0.8.5 → 0.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/assets/constants.json +13 -2
- package/esm2022/lib/assets/form-validations.mjs +3 -1
- package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +195 -89
- package/esm2022/lib/components/create-group/create-group.component.mjs +5 -5
- package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +5 -5
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +8 -8
- package/esm2022/lib/components/view-roster/view-roster.component.mjs +5 -5
- package/esm2022/lib/groups.component.mjs +5 -5
- package/esm2022/lib/groups.module.mjs +5 -5
- package/esm2022/lib/models/add-or-edit-user-group.model.mjs +1 -1
- package/esm2022/lib/services/group-permissions-map-service.mjs +4 -4
- package/esm2022/lib/services/groups.service.mjs +4 -4
- package/esm2022/lib/services/user-permissions.service.mjs +4 -4
- package/fesm2022/ieeesa-npm-groups.mjs +245 -126
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/assets/form-validations.d.ts +1 -0
- package/lib/components/add-user-roster/add-user-roster.component.d.ts +32 -2
- package/lib/models/add-or-edit-user-group.model.d.ts +3 -1
- package/lib/services/groups.service.d.ts +25 -1
- package/package.json +3 -3
|
@@ -572,10 +572,10 @@ export class GroupsComponent {
|
|
|
572
572
|
this.destroy$.next(true);
|
|
573
573
|
this.destroy$.unsubscribe();
|
|
574
574
|
}
|
|
575
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
576
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GroupsComponent, isStandalone: true, selector: "ieeesa-groups", inputs: { groupsPageInfo: "groupsPageInfo", applicationId: "applicationId", apiBaseURL: "apiBaseURL", userPermissions: "userPermissions" }, providers: [AlertsService], ngImport: i0, template: "<div class=\"ieeesa-groups p-3 p-sm-4 p-md-4 p-lg-4\">\r\n <div\r\n class=\"ieeesa-groups__info d-flex justify-content-between pb-3\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__info--white-bg'\r\n : 'ieeesa-groups__info--blue-bg'\r\n \"\r\n >\r\n <p\r\n [ngClass]=\"isMobileView ? 'ieeesa-title-lg-24' : 'ieeesa-headline-lg-34'\"\r\n >\r\n {{ groupsPageInfo.groupsTitle }}\r\n </p>\r\n <div>\r\n <button\r\n mat-button\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n class=\"ieeesa-groups__create-subgroup mat-tertiary-button d-none d-sm-none d-md-block d-lg-block d-xl-block\"\r\n (click)=\"openCreateGroupForm()\"\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.addGroup\"\r\n >\r\n {{ constants?.viewGroups?.addGroup }}\r\n </button>\r\n </div>\r\n <div\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-groups__mobile-icons gap-2\"\r\n >\r\n <ieeesa-icon-button\r\n [iconButton]=\"createGroupIcon\"\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n (iconButtonClick)=\"openCreateGroupForm()\"\r\n >\r\n </ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n [iconButton]=\"filterGroupIcon\"\r\n (iconButtonClick)=\"showGroupFilter()\"\r\n >\r\n </ieeesa-icon-button>\r\n <button\r\n mat-button\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.search\"\r\n (click)=\"onGroupSearch()\"\r\n type=\"button\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass search-group-icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ieeesa-groups__actions\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__actions--white-bg'\r\n : 'ieeesa-groups__actions--blue-bg'\r\n \"\r\n >\r\n <div class=\"ieeesa-groups__actions--search row\">\r\n <p\r\n class=\"ieeesa-body-md-16 order-2 order-sm-1 col-12 col-md-7 col-lg-7 col-xl-7\"\r\n >\r\n {{ groupsPageInfo.groupsDescription }}\r\n </p>\r\n <div\r\n *ngIf=\"\r\n ((isGroupSearchActive || isGroupFilterActive) && isMobileView) ||\r\n !isMobileView\r\n \"\r\n class=\"order-1 order-sm-2 col-12 col-md-5 col-lg-5 col-xl-5 d-flex flex-column\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isGroupSearchActive || !isMobileView\"\r\n (searchValue)=\"onGroupSearchClick($event)\"\r\n [searchTerm]=\"trimmedSearchTerm\"\r\n [searchType]=\"searchType\"\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [minCharacterToSearch]=\"minCharacterToSearch\"\r\n [supportMessage]=\"supportMessage\"\r\n ></ieeesa-search>\r\n\r\n <ieeesa-select\r\n *ngIf=\"isGroupFilterActive || !isMobileView\"\r\n class=\"align-self-end pt-lg-4 pt-md-4 pt-xl-4\"\r\n [dropdownOptions]=\"selectGroupOptions\"\r\n [isLabelAlignedLeft]=\"true\"\r\n [selectLabel]=\"constants?.viewGroups?.filterByLabel\"\r\n (optionSelected)=\"onGroupTypeFiltered($event)\"\r\n [placeholderText]=\"filterPlaceHolderText\"\r\n [selectedOptions]=\"selectedGroupType\"\r\n ></ieeesa-select>\r\n </div>\r\n </div>\r\n <ieeesa-tree\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n [parentGroupsInfo]=\"parentGroupsInfo\"\r\n [childGroupsInfo]=\"childGroupsInfo\"\r\n [deletedGroupIdInfo]=\"deletedGroupId\"\r\n [isGroupSearchOrFilterActive]=\"isGroupSearchOrFilterActive\"\r\n [userGroupPermissions]=\"userGroupPermissions\"\r\n (toggleGroupClick)=\"getGroups($event)\"\r\n (createGroupClick)=\"openCreateGroupForm($event)\"\r\n (deleteGroupClick)=\"openDeleteConfirmationModal($event)\"\r\n (viewRosterClick)=\"viewRoster($event)\"\r\n (editGroupClick)=\"openEditGroupForm($event)\"\r\n ></ieeesa-tree>\r\n <div\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n class=\"d-flex flex-column flex-sm-row flex-md-row mt-4 justify-content-start justify-content-sm-end\"\r\n >\r\n <p class=\"px-sm-3 d-flex align-items-start ieeesa-label-lg-bold-16\">\r\n {{ constants?.viewGroups?.legend }}\r\n </p>\r\n <ieeesa-legend\r\n [legends]=\"groupsLegends\"\r\n [isSorting]=\"isSorting\"\r\n ></ieeesa-legend>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;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.813em;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.9375em;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.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;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.125em;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.875em;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.5em;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.625em;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.5em;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.5em;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.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;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:1em;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.125em;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.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;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:.875em;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:.875em;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.5em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;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:1em;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:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-groups{background-color:#f2f2f2}.ieeesa-groups__mobile-icons .mat-mdc-button{min-width:45px;padding:0 10px}.ieeesa-groups__mobile-icons .ieeesa-icon-button__svg{height:1.5em!important;width:1.5em!important}.ieeesa-groups__info--white-bg{background-color:#fff;padding:16px 24px 0}.ieeesa-groups__info .search-group-icon{height:1.5em;color:#00629b}.ieeesa-groups__actions{background-color:#fff;box-shadow:0 2px #00b5e2 inset;padding:16px 24px 48px}.ieeesa-groups__actions--white-bg{background-color:#fff;box-shadow:none}.ieeesa-groups .ieeesa-select-field__label{width:max-content;padding-right:9px;font-size:1em}.ieeesa-groups .ieeesa-select-field__label-left{display:flex;align-items:baseline}.ieeesa-groups .ieeesa-select-field .mat-mdc-form-field{width:auto}.ieeesa-groups .ieeesa-select-field .ieeesa-form-support-text{display:none}.ieeesa-groups .ieeesa-select-field .mat-mdc-select-min-line{color:#49454f}.ieeesa-groups .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-groups .ieeesa-search-field__button{background:none}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field{width:100%;border-radius:3px;background:linear-gradient(0deg,#00629b0d 0% 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: SearchComponent, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchTerm", "supportMessage", "searchType", "minCharacterToSearch"], outputs: ["searchValue"] }, { kind: "component", type: SelectComponent, selector: "ieeesa-select", inputs: ["isSortNeeded", "dropdownOptions", "selectedOptions", "formControlName", "isMultiLevel", "isLabelAlignedLeft", "selectLabel", "isMultiSelect", "isDisabled", "isSearch", "placeholderText"], outputs: ["optionSelected", "optionSearched"] }, { kind: "component", type: TreeViewComponent, selector: "ieeesa-tree", inputs: ["parentGroupsInfo", "childGroupsInfo", "isGroupSearchOrFilterActive", "deletedGroupIdInfo", "userGroupPermissions"], outputs: ["toggleGroupClick", "createGroupClick", "editGroupClick", "deleteGroupClick", "viewRosterClick"] }, { kind: "component", type: LegendComponent, selector: "ieeesa-legend", inputs: ["legends", "isSorting"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton"], outputs: ["iconButtonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
575
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupsComponent, deps: [{ token: i1.MatDialog }, { token: i2.GroupsService }, { token: i3.AlertsService }, { token: i3.BreakpointObserverService }, { token: i3.GlobalErrorHandlerService }, { token: i4.UserPermissionsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
576
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: GroupsComponent, isStandalone: true, selector: "ieeesa-groups", inputs: { groupsPageInfo: "groupsPageInfo", applicationId: "applicationId", apiBaseURL: "apiBaseURL", userPermissions: "userPermissions" }, providers: [AlertsService], ngImport: i0, template: "<div class=\"ieeesa-groups p-3 p-sm-4 p-md-4 p-lg-4\">\r\n <div\r\n class=\"ieeesa-groups__info d-flex justify-content-between pb-3\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__info--white-bg'\r\n : 'ieeesa-groups__info--blue-bg'\r\n \"\r\n >\r\n <p\r\n [ngClass]=\"isMobileView ? 'ieeesa-title-lg-24' : 'ieeesa-headline-lg-34'\"\r\n >\r\n {{ groupsPageInfo.groupsTitle }}\r\n </p>\r\n <div>\r\n <button\r\n mat-button\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n class=\"ieeesa-groups__create-subgroup mat-tertiary-button d-none d-sm-none d-md-block d-lg-block d-xl-block\"\r\n (click)=\"openCreateGroupForm()\"\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.addGroup\"\r\n >\r\n {{ constants?.viewGroups?.addGroup }}\r\n </button>\r\n </div>\r\n <div\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-groups__mobile-icons gap-2\"\r\n >\r\n <ieeesa-icon-button\r\n [iconButton]=\"createGroupIcon\"\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n (iconButtonClick)=\"openCreateGroupForm()\"\r\n >\r\n </ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n [iconButton]=\"filterGroupIcon\"\r\n (iconButtonClick)=\"showGroupFilter()\"\r\n >\r\n </ieeesa-icon-button>\r\n <button\r\n mat-button\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.search\"\r\n (click)=\"onGroupSearch()\"\r\n type=\"button\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass search-group-icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ieeesa-groups__actions\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__actions--white-bg'\r\n : 'ieeesa-groups__actions--blue-bg'\r\n \"\r\n >\r\n <div class=\"ieeesa-groups__actions--search row\">\r\n <p\r\n class=\"ieeesa-body-md-16 order-2 order-sm-1 col-12 col-md-7 col-lg-7 col-xl-7\"\r\n >\r\n {{ groupsPageInfo.groupsDescription }}\r\n </p>\r\n <div\r\n *ngIf=\"\r\n ((isGroupSearchActive || isGroupFilterActive) && isMobileView) ||\r\n !isMobileView\r\n \"\r\n class=\"order-1 order-sm-2 col-12 col-md-5 col-lg-5 col-xl-5 d-flex flex-column\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isGroupSearchActive || !isMobileView\"\r\n (searchValue)=\"onGroupSearchClick($event)\"\r\n [searchTerm]=\"trimmedSearchTerm\"\r\n [searchType]=\"searchType\"\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [minCharacterToSearch]=\"minCharacterToSearch\"\r\n [supportMessage]=\"supportMessage\"\r\n ></ieeesa-search>\r\n\r\n <ieeesa-select\r\n *ngIf=\"isGroupFilterActive || !isMobileView\"\r\n class=\"align-self-end pt-lg-4 pt-md-4 pt-xl-4\"\r\n [dropdownOptions]=\"selectGroupOptions\"\r\n [isLabelAlignedLeft]=\"true\"\r\n [selectLabel]=\"constants?.viewGroups?.filterByLabel\"\r\n (optionSelected)=\"onGroupTypeFiltered($event)\"\r\n [placeholderText]=\"filterPlaceHolderText\"\r\n [selectedOptions]=\"selectedGroupType\"\r\n ></ieeesa-select>\r\n </div>\r\n </div>\r\n <ieeesa-tree\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n [parentGroupsInfo]=\"parentGroupsInfo\"\r\n [childGroupsInfo]=\"childGroupsInfo\"\r\n [deletedGroupIdInfo]=\"deletedGroupId\"\r\n [isGroupSearchOrFilterActive]=\"isGroupSearchOrFilterActive\"\r\n [userGroupPermissions]=\"userGroupPermissions\"\r\n (toggleGroupClick)=\"getGroups($event)\"\r\n (createGroupClick)=\"openCreateGroupForm($event)\"\r\n (deleteGroupClick)=\"openDeleteConfirmationModal($event)\"\r\n (viewRosterClick)=\"viewRoster($event)\"\r\n (editGroupClick)=\"openEditGroupForm($event)\"\r\n ></ieeesa-tree>\r\n <div\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n class=\"d-flex flex-column flex-sm-row flex-md-row mt-4 justify-content-start justify-content-sm-end\"\r\n >\r\n <p class=\"px-sm-3 d-flex align-items-start ieeesa-label-lg-bold-16\">\r\n {{ constants?.viewGroups?.legend }}\r\n </p>\r\n <ieeesa-legend\r\n [legends]=\"groupsLegends\"\r\n [isSorting]=\"isSorting\"\r\n ></ieeesa-legend>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;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.813em;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.9375em;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.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;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.125em;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.875em;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.5em;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.625em;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.5em;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.5em;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.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;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:1em;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.125em;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.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;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:.875em;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:.875em;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.5em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:rgba(103,80,164,.12)}.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:rgba(103,80,164,.08)}.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:1em;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:1em;border:1px solid #cac4d0;background:#ffffff;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:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-groups{background-color:#f2f2f2}.ieeesa-groups__mobile-icons .mat-mdc-button{min-width:45px;padding:0 10px}.ieeesa-groups__mobile-icons .ieeesa-icon-button__svg{height:1.5em!important;width:1.5em!important}.ieeesa-groups__info--white-bg{background-color:#fff;padding:16px 24px 0}.ieeesa-groups__info .search-group-icon{height:1.5em;color:#00629b}.ieeesa-groups__actions{background-color:#fff;box-shadow:0 2px #00b5e2 inset;padding:16px 24px 48px}.ieeesa-groups__actions--white-bg{background-color:#fff;box-shadow:none}.ieeesa-groups .ieeesa-select-field__label{width:max-content;padding-right:9px;font-size:1em}.ieeesa-groups .ieeesa-select-field__label-left{display:flex;align-items:baseline}.ieeesa-groups .ieeesa-select-field .mat-mdc-form-field{width:auto}.ieeesa-groups .ieeesa-select-field .ieeesa-form-support-text{display:none}.ieeesa-groups .ieeesa-select-field .mat-mdc-select-min-line{color:#49454f}.ieeesa-groups .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-groups .ieeesa-search-field__button{background:none}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field{width:100%;border-radius:3px;background:linear-gradient(0deg,rgba(0,98,155,.05) 0%,rgba(0,98,155,.05) 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: SearchComponent, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchTerm", "supportMessage", "searchType", "minCharacterToSearch"], outputs: ["searchValue"] }, { kind: "component", type: SelectComponent, selector: "ieeesa-select", inputs: ["isSortNeeded", "dropdownOptions", "selectedOptions", "formControlName", "isMultiLevel", "isLabelAlignedLeft", "selectLabel", "isMultiSelect", "isDisabled", "isSearch", "placeholderText"], outputs: ["optionSelected", "optionSearched"] }, { kind: "component", type: TreeViewComponent, selector: "ieeesa-tree", inputs: ["parentGroupsInfo", "childGroupsInfo", "isGroupSearchOrFilterActive", "deletedGroupIdInfo", "userGroupPermissions"], outputs: ["toggleGroupClick", "createGroupClick", "editGroupClick", "deleteGroupClick", "viewRosterClick"] }, { kind: "component", type: LegendComponent, selector: "ieeesa-legend", inputs: ["legends", "isSorting"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton"], outputs: ["iconButtonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
577
577
|
}
|
|
578
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupsComponent, decorators: [{
|
|
579
579
|
type: Component,
|
|
580
580
|
args: [{ selector: 'ieeesa-groups', standalone: true, imports: [
|
|
581
581
|
CommonModule,
|
|
@@ -586,7 +586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
586
586
|
TreeViewComponent,
|
|
587
587
|
LegendComponent,
|
|
588
588
|
IconButtonComponent,
|
|
589
|
-
], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<div class=\"ieeesa-groups p-3 p-sm-4 p-md-4 p-lg-4\">\r\n <div\r\n class=\"ieeesa-groups__info d-flex justify-content-between pb-3\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__info--white-bg'\r\n : 'ieeesa-groups__info--blue-bg'\r\n \"\r\n >\r\n <p\r\n [ngClass]=\"isMobileView ? 'ieeesa-title-lg-24' : 'ieeesa-headline-lg-34'\"\r\n >\r\n {{ groupsPageInfo.groupsTitle }}\r\n </p>\r\n <div>\r\n <button\r\n mat-button\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n class=\"ieeesa-groups__create-subgroup mat-tertiary-button d-none d-sm-none d-md-block d-lg-block d-xl-block\"\r\n (click)=\"openCreateGroupForm()\"\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.addGroup\"\r\n >\r\n {{ constants?.viewGroups?.addGroup }}\r\n </button>\r\n </div>\r\n <div\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-groups__mobile-icons gap-2\"\r\n >\r\n <ieeesa-icon-button\r\n [iconButton]=\"createGroupIcon\"\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n (iconButtonClick)=\"openCreateGroupForm()\"\r\n >\r\n </ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n [iconButton]=\"filterGroupIcon\"\r\n (iconButtonClick)=\"showGroupFilter()\"\r\n >\r\n </ieeesa-icon-button>\r\n <button\r\n mat-button\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.search\"\r\n (click)=\"onGroupSearch()\"\r\n type=\"button\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass search-group-icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ieeesa-groups__actions\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__actions--white-bg'\r\n : 'ieeesa-groups__actions--blue-bg'\r\n \"\r\n >\r\n <div class=\"ieeesa-groups__actions--search row\">\r\n <p\r\n class=\"ieeesa-body-md-16 order-2 order-sm-1 col-12 col-md-7 col-lg-7 col-xl-7\"\r\n >\r\n {{ groupsPageInfo.groupsDescription }}\r\n </p>\r\n <div\r\n *ngIf=\"\r\n ((isGroupSearchActive || isGroupFilterActive) && isMobileView) ||\r\n !isMobileView\r\n \"\r\n class=\"order-1 order-sm-2 col-12 col-md-5 col-lg-5 col-xl-5 d-flex flex-column\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isGroupSearchActive || !isMobileView\"\r\n (searchValue)=\"onGroupSearchClick($event)\"\r\n [searchTerm]=\"trimmedSearchTerm\"\r\n [searchType]=\"searchType\"\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [minCharacterToSearch]=\"minCharacterToSearch\"\r\n [supportMessage]=\"supportMessage\"\r\n ></ieeesa-search>\r\n\r\n <ieeesa-select\r\n *ngIf=\"isGroupFilterActive || !isMobileView\"\r\n class=\"align-self-end pt-lg-4 pt-md-4 pt-xl-4\"\r\n [dropdownOptions]=\"selectGroupOptions\"\r\n [isLabelAlignedLeft]=\"true\"\r\n [selectLabel]=\"constants?.viewGroups?.filterByLabel\"\r\n (optionSelected)=\"onGroupTypeFiltered($event)\"\r\n [placeholderText]=\"filterPlaceHolderText\"\r\n [selectedOptions]=\"selectedGroupType\"\r\n ></ieeesa-select>\r\n </div>\r\n </div>\r\n <ieeesa-tree\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n [parentGroupsInfo]=\"parentGroupsInfo\"\r\n [childGroupsInfo]=\"childGroupsInfo\"\r\n [deletedGroupIdInfo]=\"deletedGroupId\"\r\n [isGroupSearchOrFilterActive]=\"isGroupSearchOrFilterActive\"\r\n [userGroupPermissions]=\"userGroupPermissions\"\r\n (toggleGroupClick)=\"getGroups($event)\"\r\n (createGroupClick)=\"openCreateGroupForm($event)\"\r\n (deleteGroupClick)=\"openDeleteConfirmationModal($event)\"\r\n (viewRosterClick)=\"viewRoster($event)\"\r\n (editGroupClick)=\"openEditGroupForm($event)\"\r\n ></ieeesa-tree>\r\n <div\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n class=\"d-flex flex-column flex-sm-row flex-md-row mt-4 justify-content-start justify-content-sm-end\"\r\n >\r\n <p class=\"px-sm-3 d-flex align-items-start ieeesa-label-lg-bold-16\">\r\n {{ constants?.viewGroups?.legend }}\r\n </p>\r\n <ieeesa-legend\r\n [legends]=\"groupsLegends\"\r\n [isSorting]=\"isSorting\"\r\n ></ieeesa-legend>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;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.813em;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.9375em;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.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;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.125em;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.875em;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.5em;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.625em;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.5em;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.5em;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.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;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:1em;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.125em;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.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;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:.875em;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:.875em;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.5em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;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:1em;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:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-groups{background-color:#f2f2f2}.ieeesa-groups__mobile-icons .mat-mdc-button{min-width:45px;padding:0 10px}.ieeesa-groups__mobile-icons .ieeesa-icon-button__svg{height:1.5em!important;width:1.5em!important}.ieeesa-groups__info--white-bg{background-color:#fff;padding:16px 24px 0}.ieeesa-groups__info .search-group-icon{height:1.5em;color:#00629b}.ieeesa-groups__actions{background-color:#fff;box-shadow:0 2px #00b5e2 inset;padding:16px 24px 48px}.ieeesa-groups__actions--white-bg{background-color:#fff;box-shadow:none}.ieeesa-groups .ieeesa-select-field__label{width:max-content;padding-right:9px;font-size:1em}.ieeesa-groups .ieeesa-select-field__label-left{display:flex;align-items:baseline}.ieeesa-groups .ieeesa-select-field .mat-mdc-form-field{width:auto}.ieeesa-groups .ieeesa-select-field .ieeesa-form-support-text{display:none}.ieeesa-groups .ieeesa-select-field .mat-mdc-select-min-line{color:#49454f}.ieeesa-groups .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-groups .ieeesa-search-field__button{background:none}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field{width:100%;border-radius:3px;background:linear-gradient(0deg,#00629b0d 0% 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}\n"] }]
|
|
589
|
+
], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<div class=\"ieeesa-groups p-3 p-sm-4 p-md-4 p-lg-4\">\r\n <div\r\n class=\"ieeesa-groups__info d-flex justify-content-between pb-3\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__info--white-bg'\r\n : 'ieeesa-groups__info--blue-bg'\r\n \"\r\n >\r\n <p\r\n [ngClass]=\"isMobileView ? 'ieeesa-title-lg-24' : 'ieeesa-headline-lg-34'\"\r\n >\r\n {{ groupsPageInfo.groupsTitle }}\r\n </p>\r\n <div>\r\n <button\r\n mat-button\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n class=\"ieeesa-groups__create-subgroup mat-tertiary-button d-none d-sm-none d-md-block d-lg-block d-xl-block\"\r\n (click)=\"openCreateGroupForm()\"\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.addGroup\"\r\n >\r\n {{ constants?.viewGroups?.addGroup }}\r\n </button>\r\n </div>\r\n <div\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-groups__mobile-icons gap-2\"\r\n >\r\n <ieeesa-icon-button\r\n [iconButton]=\"createGroupIcon\"\r\n *ngIf=\"validateAccess(permissionType.CREATE_ROOT_GROUP)\"\r\n (iconButtonClick)=\"openCreateGroupForm()\"\r\n >\r\n </ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n [iconButton]=\"filterGroupIcon\"\r\n (iconButtonClick)=\"showGroupFilter()\"\r\n >\r\n </ieeesa-icon-button>\r\n <button\r\n mat-button\r\n [attr.aria-label]=\"constants?.viewGroups?.ariaLabel?.search\"\r\n (click)=\"onGroupSearch()\"\r\n type=\"button\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass search-group-icon\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"ieeesa-groups__actions\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-groups__actions--white-bg'\r\n : 'ieeesa-groups__actions--blue-bg'\r\n \"\r\n >\r\n <div class=\"ieeesa-groups__actions--search row\">\r\n <p\r\n class=\"ieeesa-body-md-16 order-2 order-sm-1 col-12 col-md-7 col-lg-7 col-xl-7\"\r\n >\r\n {{ groupsPageInfo.groupsDescription }}\r\n </p>\r\n <div\r\n *ngIf=\"\r\n ((isGroupSearchActive || isGroupFilterActive) && isMobileView) ||\r\n !isMobileView\r\n \"\r\n class=\"order-1 order-sm-2 col-12 col-md-5 col-lg-5 col-xl-5 d-flex flex-column\"\r\n >\r\n <ieeesa-search\r\n *ngIf=\"isGroupSearchActive || !isMobileView\"\r\n (searchValue)=\"onGroupSearchClick($event)\"\r\n [searchTerm]=\"trimmedSearchTerm\"\r\n [searchType]=\"searchType\"\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [minCharacterToSearch]=\"minCharacterToSearch\"\r\n [supportMessage]=\"supportMessage\"\r\n ></ieeesa-search>\r\n\r\n <ieeesa-select\r\n *ngIf=\"isGroupFilterActive || !isMobileView\"\r\n class=\"align-self-end pt-lg-4 pt-md-4 pt-xl-4\"\r\n [dropdownOptions]=\"selectGroupOptions\"\r\n [isLabelAlignedLeft]=\"true\"\r\n [selectLabel]=\"constants?.viewGroups?.filterByLabel\"\r\n (optionSelected)=\"onGroupTypeFiltered($event)\"\r\n [placeholderText]=\"filterPlaceHolderText\"\r\n [selectedOptions]=\"selectedGroupType\"\r\n ></ieeesa-select>\r\n </div>\r\n </div>\r\n <ieeesa-tree\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n [parentGroupsInfo]=\"parentGroupsInfo\"\r\n [childGroupsInfo]=\"childGroupsInfo\"\r\n [deletedGroupIdInfo]=\"deletedGroupId\"\r\n [isGroupSearchOrFilterActive]=\"isGroupSearchOrFilterActive\"\r\n [userGroupPermissions]=\"userGroupPermissions\"\r\n (toggleGroupClick)=\"getGroups($event)\"\r\n (createGroupClick)=\"openCreateGroupForm($event)\"\r\n (deleteGroupClick)=\"openDeleteConfirmationModal($event)\"\r\n (viewRosterClick)=\"viewRoster($event)\"\r\n (editGroupClick)=\"openEditGroupForm($event)\"\r\n ></ieeesa-tree>\r\n <div\r\n *ngIf=\"parentGroupsInfo && parentGroupsInfo.length > 0\"\r\n class=\"d-flex flex-column flex-sm-row flex-md-row mt-4 justify-content-start justify-content-sm-end\"\r\n >\r\n <p class=\"px-sm-3 d-flex align-items-start ieeesa-label-lg-bold-16\">\r\n {{ constants?.viewGroups?.legend }}\r\n </p>\r\n <ieeesa-legend\r\n [legends]=\"groupsLegends\"\r\n [isSorting]=\"isSorting\"\r\n ></ieeesa-legend>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;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.813em;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.9375em;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.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;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.125em;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.875em;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.5em;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.625em;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.5em;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.5em;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.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;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:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;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:1em;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.125em;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.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;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:.875em;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:.875em;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.5em;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:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:rgba(29,25,43,.12)}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:rgba(103,80,164,.12)}.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:rgba(103,80,164,.08)}.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:1em;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:1em;border:1px solid #cac4d0;background:#ffffff;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:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-groups{background-color:#f2f2f2}.ieeesa-groups__mobile-icons .mat-mdc-button{min-width:45px;padding:0 10px}.ieeesa-groups__mobile-icons .ieeesa-icon-button__svg{height:1.5em!important;width:1.5em!important}.ieeesa-groups__info--white-bg{background-color:#fff;padding:16px 24px 0}.ieeesa-groups__info .search-group-icon{height:1.5em;color:#00629b}.ieeesa-groups__actions{background-color:#fff;box-shadow:0 2px #00b5e2 inset;padding:16px 24px 48px}.ieeesa-groups__actions--white-bg{background-color:#fff;box-shadow:none}.ieeesa-groups .ieeesa-select-field__label{width:max-content;padding-right:9px;font-size:1em}.ieeesa-groups .ieeesa-select-field__label-left{display:flex;align-items:baseline}.ieeesa-groups .ieeesa-select-field .mat-mdc-form-field{width:auto}.ieeesa-groups .ieeesa-select-field .ieeesa-form-support-text{display:none}.ieeesa-groups .ieeesa-select-field .mat-mdc-select-min-line{color:#49454f}.ieeesa-groups .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-groups .ieeesa-search-field__button{background:none}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field{width:100%;border-radius:3px;background:linear-gradient(0deg,rgba(0,98,155,.05) 0%,rgba(0,98,155,.05) 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-groups .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}\n"] }]
|
|
590
590
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.GroupsService }, { type: i3.AlertsService }, { type: i3.BreakpointObserverService }, { type: i3.GlobalErrorHandlerService }, { type: i4.UserPermissionsService }]; }, propDecorators: { groupsPageInfo: [{
|
|
591
591
|
type: Input
|
|
592
592
|
}], applicationId: [{
|
|
@@ -596,4 +596,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
596
596
|
}], userPermissions: [{
|
|
597
597
|
type: Input
|
|
598
598
|
}] } });
|
|
599
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2dyb3Vwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9ncm91cHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxjQUFjLEVBRWQsbUJBQW1CLEVBRW5CLFNBQVMsRUFDVCwwQkFBMEIsRUFDMUIsZUFBZSxFQUNmLGVBQWUsRUFFZixVQUFVLEVBQ1YsZUFBZSxHQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRS9FLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULGFBQWEsR0FFZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7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QkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsYUFBYSxDQUFDOzZRQXdDakIsY0FBYztzQkFBdEIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENyZWF0ZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7XHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgU2VsZWN0T3B0aW9uLFxyXG4gIEljb25CdXR0b25Db21wb25lbnQsXHJcbiAgSWNvbkJ1dHRvbixcclxuICBBbGlnblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgU2VsZWN0Q29tcG9uZW50LFxyXG4gIExlZ2VuZENvbXBvbmVudCxcclxuICBMZWdlbmQsXHJcbiAgU2VhcmNoVHlwZSxcclxuICBTZWFyY2hDb21wb25lbnQsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdHJlZS12aWV3L3RyZWUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcm91cFR5cGUsIEdyb3VwVHlwZUNvbmZpZ1ZhbHVlIH0gZnJvbSAnLi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIE1vZGFsVHlwZSxcclxuICBBbGVydFR5cGUsXHJcbiAgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR3JvdXBGdW5jdGlvblR5cGUgfSBmcm9tICcuL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgUm9zdGVyRnVuY3Rpb25UeXBlIH0gZnJvbSAnLi9tb2RlbHMvcm9zdGVyLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBHZXRHcm91cHNQYXlsb2FkIH0gZnJvbSAnLi9tb2RlbHMvdmlldy1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IERlbGV0ZUdyb3VwUGF5bG9hZCB9IGZyb20gJy4vbW9kZWxzL2RlbGV0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEFkZFVzZXJSb3N0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRkLXVzZXItcm9zdGVyL2FkZC11c2VyLXJvc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3Um9zdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZpZXctcm9zdGVyL3ZpZXctcm9zdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRHcm91cEFuZFBhcmVudEluZm8gfSBmcm9tICcuL21vZGVscy9lZGl0LWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgRWRpdFVzZXJSb2xlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0LXVzZXItcm9sZXMvZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXItcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgR3JvdXBQZXJtaXNzaW9uLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4vbW9kZWxzL2dyb3VwLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEdyb3VwcyBjb21wb25lbnQgaXMgYSB3cmFwcGVyIG9yIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIGdyb3VwcyBtYW5hZ2VtZW50IHJldXNhYmxlIGNvbXBvbmVudCBhbmQgaW4gdGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyBhbGwgZ3JvdXAgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXRpZXMgYW5kIHRoaXMgd2lsbCBiZSBlbnRyeSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGdyb3VwcyB3aGVuIGl0IGlzIGNvbnN1bWVkIGluIG90aGVyIGFwcGxpY2F0aW9ucy5cclxuICogQGNsYXNzIEdyb3Vwc0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ncm91cHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVHJlZVZpZXdDb21wb25lbnQsXHJcbiAgICBMZWdlbmRDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3Vwcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXBzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtBbGVydHNTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcbiAgdmlld0dyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8udmlld0dyb3VwcztcclxuICBjcmVhdGVHcm91cFRleHQgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlR3JvdXA7XHJcbiAgZWRpdEdyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8uZWRpdEdyb3VwO1xyXG4gIGVkaXRVc2VyUm9sZXNUZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5lZGl0VXNlclJvbGVzO1xyXG4gIGFkZFVzZXJSb3N0ZXJUZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5hZGRVc2VyUm9zdGVyO1xyXG4gIGlzR3JvdXBTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBpc0dyb3VwRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgY2hpbGRHcm91cHNJbmZvITogR3JvdXBJbmZvW107XHJcbiAgc2VsZWN0ZWRHcm91cFR5cGUhOiBTZWxlY3RPcHRpb247XHJcbiAgcGFyZW50R3JvdXBzSW5mbyE6IEdyb3VwSW5mb1tdO1xyXG4gIHNlbGVjdEdyb3VwT3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGRlbGV0ZWRHcm91cElkITogc3RyaW5nO1xyXG4gIGRlbGV0ZUdyb3VwTmFtZSE6IHN0cmluZztcclxuICBncm91cFR5cGVzITogR3JvdXBUeXBlQ29uZmlnVmFsdWU7XHJcbiAgc2VhcmNoUGxhY2VIb2xkZXJUZXh0OiBzdHJpbmcgPSB0aGlzLnZpZXdHcm91cFRleHRzPy5wbGFjZWhvbGRlclRleHQ/LnNlYXJjaDtcclxuICBmaWx0ZXJQbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9IHRoaXMudmlld0dyb3VwVGV4dHM/LnBsYWNlaG9sZGVyVGV4dD8uZmlsdGVyO1xyXG4gIGNyZWF0ZUdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAxLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuYWRkLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uY3JlYXRlR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmFkZCxcclxuICB9O1xyXG4gIGZpbHRlckdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAyLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuZmlsdGVyLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uZmlsdGVyR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmZpbHRlcixcclxuICB9O1xyXG4gIGdyb3Vwc0xlZ2VuZHM6IExlZ2VuZFtdID0gW107XHJcbiAgZ2V0R3JvdXBzUGF5bG9hZDogR2V0R3JvdXBzUGF5bG9hZCA9IHsgZ3JvdXBJZDogJycsIGdyb3VwVHlwZUlkOiAnJyB9O1xyXG4gIEBJbnB1dCgpIGdyb3Vwc1BhZ2VJbmZvOiB7XHJcbiAgICBncm91cHNUaXRsZTogc3RyaW5nO1xyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgZ3JvdXBzVGl0bGU6IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc1RpdGxlLFxyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc0Rlc2NyaXB0aW9uLFxyXG4gIH07XHJcbiAgQElucHV0KCkgYXBwbGljYXRpb25JZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgcGVybWlzc2lvblR5cGUgPSBQZXJtaXNzaW9uVHlwZTtcclxuICBmdW5jdGlvblR5cGUhOiBHcm91cEZ1bmN0aW9uVHlwZTtcclxuICBhbGlnbm1lbnRUeXBlID0gQWxpZ25UeXBlO1xyXG4gIGlzU29ydGluZyA9IHRydWU7XHJcbiAgY2FuUmVvcGVuVmlld1Jvc3Rlck1vZGFsID0gZmFsc2U7XHJcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZSA9IFNlYXJjaFR5cGUuT05fQ0xJQ0s7XHJcbiAgbWluQ2hhcmFjdGVyVG9TZWFyY2ggPSAzO1xyXG4gIHRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgdXNlckdyb3VwUGVybWlzc2lvbnMhOiBHcm91cFBlcm1pc3Npb25bXTtcclxuICBzdXBwb3J0TWVzc2FnZSE6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdyb3Vwc1NlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyU2VydmljZTogQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdXNlclBlcm1pc3Npb25zU2VydmljZTogVXNlclBlcm1pc3Npb25zU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHsgbWF0Y2hlczogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQ/Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5vcGVuTW9kYWxOb3RpZmllcj8ubmV4dChHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGdyb3VwcyBjb21wb25lbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdXBwb3J0TWVzc2FnZSA9XHJcbiAgICAgIHRoaXMudmlld0dyb3VwVGV4dHM/Lm1pbkNoYXJSZXF1aXJlZFRvU2VhcmNoMSArXHJcbiAgICAgICcgJyArXHJcbiAgICAgIHRoaXMubWluQ2hhcmFjdGVyVG9TZWFyY2ggK1xyXG4gICAgICAnICcgK1xyXG4gICAgICB0aGlzLnZpZXdHcm91cFRleHRzPy5taW5DaGFyUmVxdWlyZWRUb1NlYXJjaDI7XHJcbiAgICB0aGlzLnVzZXJHcm91cFBlcm1pc3Npb25zID1cclxuICAgICAgdGhpcy51c2VyUGVybWlzc2lvbnNTZXJ2aWNlLmZpbHRlclVzZXJHcm91cFBlcm1pc3Npb25zKFxyXG4gICAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2Uuc2V0VXNlckdyb3VwUGVybWlzc2lvbnModGhpcy51c2VyR3JvdXBQZXJtaXNzaW9ucyk7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldEFwcENvbmZpZyh0aGlzLmFwaUJhc2VVUkwsIHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBUeXBlcygpO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5vcGVuTW9kYWxOb3RpZmllclxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBpZiAocmVzcG9uc2UgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRfUk9TVEVSX1VTRVJfUk9MRSkge1xyXG4gICAgICAgICAgdGhpcy5vcGVuRWRpdFVzZXJSb2xlc01vZGFsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXNwb25zZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSKSB7XHJcbiAgICAgICAgICB0aGlzLm9wZW5BZGRVc2VyUm9zdGVyTW9kYWwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZXMgcGVybWlzc2lvbiBiYXNlZCBhY2Nlc3MgZm9yIHByb3ZpZGVkIGZlYXR1cmUuXHJcbiAgICogQHBhcmFtIHtQZXJtaXNzaW9uVHlwZX0gcGVybWlzc2lvblR5cGVcclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICB2YWxpZGF0ZUFjY2VzcyhwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJQZXJtaXNzaW9uc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3NQZXJtaXNzaW9uKFxyXG4gICAgICBwZXJtaXNzaW9uVHlwZSxcclxuICAgICAgdGhpcy51c2VyR3JvdXBQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGNyZWF0ZSBncm91cCBtb2RhbCBhbmQgY2FsbHMgb3Blbk1vZGFsIG1ldGhvZC5cclxuICAgKiBAcGFyYW0ge0dyb3VwSW5mb30gW3BhcmVudEdyb3VwSW5mb10gLUFuIG9wdGlvbmFsIHBhcmFtZXRlci4gUGFyZW50IGdyb3VwIGluZm8gdG8gYmUgcGFzc2VkIGZvciBjcmVhdGUgY2hpbGQgZ3JvdXAuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5DcmVhdGVHcm91cEZvcm0ocGFyZW50R3JvdXBJbmZvPzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldFNlbGVjdGVkR3JvdXBJbmZvKHBhcmVudEdyb3VwSW5mbyA/PyB1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uQ1JFQVRFKTtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5oZWFkaW5nLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZUdyb3VwQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZnVuY3Rpb25UeXBlID0gR3JvdXBGdW5jdGlvblR5cGU/LkNSRUFURTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtY3JlYXRlLWdyb3VwJywgcGFyZW50R3JvdXBJbmZvKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGVkaXQgZ3JvdXAgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtFZGl0R3JvdXBBbmRQYXJlbnRJbmZvfSBlZGl0R3JvdXBJbmZvIC1lZGl0aW5nIGdyb3VwIGFuZCBpdHMgcGFyZW50IGdyb3VwIGluZm8gdG8gYmUgcGFzc2VkIGZvciBwb3B1bGF0aW5nIGVkaXQgZ3JvdXAgZm9ybSBmaWVsZHMuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5FZGl0R3JvdXBGb3JtKGVkaXRHcm91cEluZm86IEVkaXRHcm91cEFuZFBhcmVudEluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0U2VsZWN0ZWRHcm91cEluZm8oXHJcbiAgICAgIGVkaXRHcm91cEluZm8/Lmdyb3VwSW5mbyxcclxuICAgICAgZWRpdEdyb3VwSW5mbz8ucGFyZW50R3JvdXBJbmZvXHJcbiAgICApO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRURJVCk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiBlZGl0R3JvdXBJbmZvPy5ncm91cEluZm8/Lmdyb3VwTmFtZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBDcmVhdGVHcm91cENvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgIH07XHJcbiAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9IEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoZGlhbG9nT3B0aW9ucywgJ2llZWVzYS1lZGl0LWdyb3VwJywgZWRpdEdyb3VwSW5mbyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRpYWxvZyBvcHRpb25zIGZvciBlZGl0IHVzZXIgcm9sZXMgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5FZGl0VXNlclJvbGVzTW9kYWwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFVzZXJJbmZvID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRTZWxlY3RlZFVzZXJJbmZvKCk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiBzZWxlY3RlZFVzZXJJbmZvPy5uYW1lLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IEVkaXRVc2VyUm9sZXNDb21wb25lbnQsXHJcbiAgICAgIG1vZGFsVHlwZTogTW9kYWxUeXBlLkZPUk0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5mdW5jdGlvblR5cGUgPSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUX1JPU1RFUl9VU0VSX1JPTEU7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldEdyb3VwRnVuY3Rpb25UeXBlKHRoaXMuZnVuY3Rpb25UeXBlKTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtZWRpdC11c2VyLXJvbGVzJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRpYWxvZyBvcHRpb25zIGZvciBhZGQgdXNlcnMgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5BZGRVc2VyUm9zdGVyTW9kYWwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8uaGVhZGluZyxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBBZGRVc2VyUm9zdGVyQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZnVuY3Rpb25UeXBlID0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZSh0aGlzLmZ1bmN0aW9uVHlwZSk7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWFkZC11c2VyLXJvc3RlcicpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkaWFsb2cgb3B0aW9ucyBmb3IgdXNlcnMgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtHcm91cEluZm99IGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZpZXdSb3N0ZXIoZ3JvdXA6IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGluZzogZ3JvdXA/Lmdyb3VwTmFtZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBWaWV3Um9zdGVyQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNX0FORF9DT05URU5ULFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZS5zZXRTZWxlY3RlZEdyb3VwSW5mbyhncm91cCk7XHJcbiAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9IEdyb3VwRnVuY3Rpb25UeXBlLlZJRVdfUk9TVEVSO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRURJVCk7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLXZpZXctcm9zdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIG1vZGFsIGNvbXBvbmVudCB3aXRoIGZvciByZWNlaXZlZCBwYXJhbXMgYW5kIGhhbmRsZXMgZm9ybSBzdWJtaXNzaW9uIHN1Y2Nlc3MgYW5kIGVycm9ycy5cclxuICAgKiBAcGFyYW0geyp9IGRpYWxvZ09wdGlvbnNcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2NsYXNzTmFtZV1cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzLCBuby11bnVzZWQtdmFyc1xyXG4gIG9wZW5Nb2RhbChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBkaWFsb2dPcHRpb25zOiBhbnksXHJcbiAgICBjbGFzc05hbWU/OiBzdHJpbmcsXHJcbiAgICBncm91cEluZm8/OiBHcm91cEluZm8gfCBFZGl0R3JvdXBBbmRQYXJlbnRJbmZvXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gJyc7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHdpZHRoOlxyXG4gICAgICAgIHRoaXMuZnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUiB8fFxyXG4gICAgICAgIHRoaXMuZnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUX1JPU1RFUl9VU0VSX1JPTEUgfHxcclxuICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSXHJcbiAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICA6ICdhdXRvJyxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtbW9kYWwtZGlhbG9nJywgY2xhc3NOYW1lXSxcclxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LnN1Ym1pdEZvcm1SZXNwb25zZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIG5vLXVudXNlZC12YXJzXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmZ1bmN0aW9uVHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBHcm91cEZ1bmN0aW9uVHlwZT8uQ1JFQVRFOiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LnN1Y2Nlc3M/LnN1Ym1pc3Npb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgY29uc3QgY3JlYXRlR3JvdXBJbmZvID0gZ3JvdXBJbmZvIGFzIEdyb3VwSW5mbztcclxuICAgICAgICAgICAgaWYgKGNyZWF0ZUdyb3VwSW5mbykgdGhpcy5nZXRHcm91cHMoY3JlYXRlR3JvdXBJbmZvKTtcclxuICAgICAgICAgICAgZWxzZSB0aGlzLmdldEdyb3VwcygpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgR3JvdXBGdW5jdGlvblR5cGU/LkVESVQ6IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRHcm91cFRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9uXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVkaXRHcm91cEluZm8gPSBncm91cEluZm8gYXMgRWRpdEdyb3VwQW5kUGFyZW50SW5mbztcclxuICAgICAgICAgICAgaWYgKGVkaXRHcm91cEluZm8/LnBhcmVudEdyb3VwSW5mbz8uZ3JvdXBJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHRoaXMuZ2V0R3JvdXBzKGVkaXRHcm91cEluZm8ucGFyZW50R3JvdXBJbmZvKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUX1JPU1RFUl9VU0VSX1JPTEU6IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLmNhblNob3dNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLnNldFJvc3RlckZ1bmN0aW9uVHlwZShcclxuICAgICAgICAgICAgICBSb3N0ZXJGdW5jdGlvblR5cGUuRURJVF9ST1NURVJfVVNFUl9ST0xFXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSBHcm91cEZ1bmN0aW9uVHlwZT8uQUREX1VTRVJfVE9fUk9TVEVSOiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5jYW5TaG93TWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5zZXRSb3N0ZXJGdW5jdGlvblR5cGUoXHJcbiAgICAgICAgICAgICAgUm9zdGVyRnVuY3Rpb25UeXBlLkFERF9VU0VSX1RPX1JPU1RFUlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LmZvcm1DYW5jZWxcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSIHx8XHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVF9ST1NURVJfVVNFUl9ST0xFXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNhblJlb3BlblZpZXdSb3N0ZXJNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3Um9zdGVyKHRoaXMuZ3JvdXBzU2VydmljZS5zZWxlY3RlZEdyb3VwSW5mbyBhcyBHcm91cEluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICA/LmFmdGVyT3BlbmVkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSIHx8XHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVF9ST1NURVJfVVNFUl9ST0xFXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNhblJlb3BlblZpZXdSb3N0ZXJNb2RhbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgID8uYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNhblJlb3BlblZpZXdSb3N0ZXJNb2RhbCkge1xyXG4gICAgICAgICAgdGhpcy5jYW5SZW9wZW5WaWV3Um9zdGVyTW9kYWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld1Jvc3Rlcih0aGlzLmdyb3Vwc1NlcnZpY2Uuc2VsZWN0ZWRHcm91cEluZm8gYXMgR3JvdXBJbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyB0aGUgY29uZmlybWF0aW9uIG1vZGFsIHRvIGdldCB1c2VyIGNvbmZpcm1hdGlvbiB0byBkZWxldGUgdGhlIHNlbGVjdGVkIGdyb3VwLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKGdyb3VwSW5mbzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maXJtYXRpb25JbmZvID0gc2NyZWVuVGV4dHM/LmRlbGV0ZUdyb3VwPy5jb25maXJtYXRpb25JbmZvO1xyXG4gICAgY29uc3QgZGVsZXRlR3JvdXBNb2RhbE9wdGlvbnMgPSB7XHJcbiAgICAgIGxlZnRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ubGVmdEJ1dHRvbkxhYmVsLFxyXG4gICAgICByaWdodEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5yaWdodEJ1dHRvbkxhYmVsLFxyXG4gICAgICBwcm9tcHRNZXNzYWdlOlxyXG4gICAgICAgIGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2UgKyBncm91cEluZm8/Lmdyb3VwTmFtZSArICc/JyxcclxuICAgICAgYWN0aW9uQnV0dG9uQWxpZ246IHRoaXMuYWxpZ25tZW50VHlwZT8uTUlERExFLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c/Lm9wZW4oTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGVsZXRlR3JvdXBNb2RhbE9wdGlvbnMsXHJcbiAgICAgIHdpZHRoOiAnYXV0bycsXHJcbiAgICAgIGF1dG9Gb2N1czogJ2RpYWxvZycsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5jb25zdGFudHM/LmFyaWFMYWJlbD8uYWxlcnQsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5kZWxldGVHcm91cChncm91cEluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIEFQSSBSZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgZ3JvdXAgYW5kIGhhbmRsZXMgdGhlIHN1Y2Nlc3MgYW5kIGVycm9yIHJlc3BvbnNlIG9mIHRoZSBodHRwIHJlcXVlc3QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGVsZXRlR3JvdXAoZ3JvdXBJbmZvOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlbGV0ZUdyb3VwVGV4dCA9IHNjcmVlblRleHRzPy5kZWxldGVHcm91cDtcclxuICAgIHRoaXMuZGVsZXRlR3JvdXBOYW1lID0gZ3JvdXBJbmZvPy5ncm91cE5hbWU7XHJcbiAgICBjb25zdCBkZWxldGVHcm91cFBheWxvYWQ6IERlbGV0ZUdyb3VwUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IGdyb3VwSW5mbz8uZ3JvdXBJZCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmRlbGV0ZUdyb3VwKGRlbGV0ZUdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVkR3JvdXBJZCA9IGdyb3VwSW5mbz8uZ3JvdXBJZDtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBncm91cEluZm8/Lmdyb3VwTmFtZSArIGRlbGV0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uc3VjY2Vzcz8uZGVsZXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBzZWFyY2ggZmllbGQgb24gY2xpY2sgb2Ygc2VhcmNoIGljb24gaW4gY2FzZSBvZiBtb2JpbGUgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkdyb3VwU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNHcm91cEZpbHRlckFjdGl2ZSA9IGZhbHNlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgRmlsdGVyIGJ5IGRyb3Bkb3duIG9wdGlvbnMgb24gY2xpY2sgb2YgZmlsdGVyIGljb24gaW4gY2FzZSBvZiBtb2JpbGUgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93R3JvdXBGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzR3JvdXBGaWx0ZXJBY3RpdmUgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlIHRvIHRydWUgYW5kIGxvYWRzIHRoZSBncm91cHMgdGhvc2UgYXJlIGNvbmZpZ3VyZWQgd2l0aCBzZWxlY3RlZCBncm91cCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXJtXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG5cclxuICBvbkdyb3VwU2VhcmNoQ2xpY2soc2VhcmNoVGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnRyaW1tZWRTZWFyY2hUZXJtICYmXHJcbiAgICAgICh0aGlzLmlzR3JvdXBTZWFyY2hBY3RpdmUgfHwgdGhpcy5pc0dyb3VwRmlsdGVyQWN0aXZlKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMub25Hcm91cFR5cGVGaWx0ZXJlZCh0aGlzLnNlbGVjdEdyb3VwT3B0aW9uc1swXSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmltbWVkU2VhcmNoVGVybSkgcmV0dXJuO1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwVHlwZSA9IHRoaXMuc2VsZWN0R3JvdXBPcHRpb25zWzBdO1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgPSAhIXRoaXMudHJpbW1lZFNlYXJjaFRlcm07XHJcbiAgICB0aGlzLm9uR3JvdXBTZWFyY2goKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuZ3JvdXBzQnlOYW1lQWNyb255bSh0aGlzLnRyaW1tZWRTZWFyY2hUZXJtKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRHcm91cHNJbmZvID0gdGhpcy52aWV3R3JvdXBSZXNwb25zZShyZXNwb25zZT8uYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wYXJlbnRHcm91cHNJbmZvID0gW107XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgc2VsZWN0IGdyb3VwIHR5cGUgb3B0aW9ucyBmcm9tIGdyb3VwVHlwZXMgcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuIHsqfSAge1NlbGVjdE9wdGlvbltdfVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVPcHRpb25zKCk6IFNlbGVjdE9wdGlvbltdIHtcclxuICAgIHRoaXMubGVnZW5kQ29sb3IoKTtcclxuICAgIGNvbnN0IGdyb3VwVHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgICBncm91cFR5cGVPcHRpb25zLnB1c2goe1xyXG4gICAgICBpZDogJycsXHJcbiAgICAgIG5hbWU6IHRoaXMudmlld0dyb3VwVGV4dHM/LmFsbEdyb3VwVHlwZXNPcHRpb24sXHJcbiAgICB9KTtcclxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuZ3JvdXBUeXBlcyk/LmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgZ3JvdXBUeXBlT3B0aW9ucy5wdXNoKHsgaWQ6IG5vZGVbMF0sIG5hbWU6IG5vZGVbMV0/Lm5hbWUgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBncm91cFR5cGVPcHRpb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGxlZ2VuZCBjb2xvciBmcm9tIGdyb3VwVHlwZXMgcmVzcG9uc2VcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbGVnZW5kQ29sb3IoKTogdm9pZCB7XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmdyb3VwVHlwZXMpPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXBzTGVnZW5kcz8ucHVzaCh7XHJcbiAgICAgICAgY29sb3I6IG5vZGVbMV0/LmxlZ2VuZENvbG9yLFxyXG4gICAgICAgIGxhYmVsOiBub2RlWzFdPy5uYW1lLFxyXG4gICAgICAgIGhpZXJhcmNoeTogbm9kZVsxXT8uaGllcmFyY2h5LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBpc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgZmxhZyBhbmQgbG9hZHMgcGFyZW50IGdyb3VwIGluZm8gYXMgcGVyIHNlbGVjdGVkIGZpbHRlciBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uR3JvdXBUeXBlRmlsdGVyZWQoZXZlbnQ6IFNlbGVjdE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwVHlwZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgPSAhIXRoaXMuc2VsZWN0ZWRHcm91cFR5cGU/LmlkO1xyXG4gICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICBncm91cElkOiAnJyxcclxuICAgICAgZ3JvdXBUeXBlSWQ6IHRoaXMuc2VsZWN0ZWRHcm91cFR5cGU/LmlkIGFzIHN0cmluZyxcclxuICAgIH07XHJcbiAgICB0aGlzLnNob3dHcm91cEZpbHRlcigpO1xyXG4gICAgdGhpcy50cmltbWVkU2VhcmNoVGVybSA9ICcnO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRklMVEVSKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBzKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGFsbCB0aGUgcGFyZW50IGdyb3VwcyBpbmZvcm1hdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBzKGdyb3VwPzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAoZ3JvdXApIHtcclxuICAgICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICAgIGdyb3VwSWQ6IGdyb3VwPy5ncm91cElkID8/ICcnLFxyXG4gICAgICAgIGdyb3VwVHlwZUlkOiAnJyxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5nZXRHcm91cHNQYXlsb2FkLmdyb3VwVHlwZUlkID09PSAnJykge1xyXG4gICAgICB0aGlzLmdldEdyb3Vwc1BheWxvYWQgPSB7XHJcbiAgICAgICAgZ3JvdXBJZDogJycsXHJcbiAgICAgICAgZ3JvdXBUeXBlSWQ6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cHModGhpcy5nZXRHcm91cHNQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgaWYgKGdyb3VwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEdyb3Vwc0luZm8gPSB0aGlzLnZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlPy5ib2R5KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhcmVudEdyb3Vwc0luZm8gPSB0aGlzLnZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlPy5ib2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGdyb3VwVHlwZSBpbmZvIHdpdGggZ3JvdXAgcmVzcG9uc2UgZnJvbSBncm91cFR5cGUgcmVzcG9uc2VcclxuICAgKiBAcGFyYW0ge0dyb3VwSW5mb1tdfSByZXNwb25zZVxyXG4gICAqIEByZXR1cm4geyp9ICB7R3JvdXBJbmZvW119XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlOiBHcm91cEluZm9bXSk6IEdyb3VwSW5mb1tdIHtcclxuICAgIHJlc3BvbnNlPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGdyb3VwVHlwZUluZm86IEdyb3VwVHlwZSA9IHRoaXMuZ3JvdXBUeXBlc1tub2RlLmdyb3VwVHlwZV07XHJcbiAgICAgIG5vZGUuZ3JvdXBUeXBlSW5mbyA9IGdyb3VwVHlwZUluZm87XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTG9hZHMgdGhlIGdyb3VwIHR5cGVzLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRGb3JtYXR0ZWRHcm91cFR5cGVzKFxyXG4gICAgICAgICAgICAgIHJlcz8uYm9keVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEdyb3VwT3B0aW9ucyA9IHRoaXMuZ2V0R3JvdXBUeXBlT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlID0gdGhpcy5zZWxlY3RHcm91cE9wdGlvbnNbMF07XHJcbiAgICAgICAgICAgIHRoaXMub25Hcm91cFR5cGVGaWx0ZXJlZCh0aGlzLnNlbGVjdGVkR3JvdXBUeXBlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhbGVydHMgZm9yIHN1Y2Nlc3MsIGVycm9yIGFuZCB3YXJuaW5nLlxyXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IHN0cmluZ1tdKX0gbWVzc2FnZSAtc3VjY2VzcyBvciBlcnJvciBvciB3YXJuaW5nIG1lc3NhZ2UuXHJcbiAgICogQHBhcmFtIHtBbGVydFR5cGV9IGFsZXJ0VHlwZVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93QWxlcnRNZXNzYWdlKGFsZXJ0VHlwZTogQWxlcnRUeXBlLCBtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgYWxlcnRUeXBlOiBhbGVydFR5cGUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2FwdHVyZXMgdGhlIHNlcnZlciBzaWRlIGVycm9ycyBhbmQgaGFuZGxlcyBpdCBiYXNlZCBvbiB0aGUgY3VzdG9tIG9yIEh0dHAgZXJyb3JzLlxyXG4gICAqIEBwYXJhbSB7SHR0cEVycm9yUmVzcG9uc2V9IGVycm9yXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUVycm9ycyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVycm9yQ29kZXM6IHN0cmluZ1tdID0gZXJyb3I/LmVycm9yPy5ib2R5Py5lcnJvckNvZGVzO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3JDb2RlcykpIHtcclxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgaWYgKGVycm9yQ29kZXM/LmluY2x1ZGVzKCcxMDA4JykpIHtcclxuICAgICAgICBlcnJvck1lc3NhZ2VbMF0gPSB0aGlzLmRlbGV0ZUdyb3VwTmFtZSArIGVycm9yTWVzc2FnZT8uWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShBbGVydFR5cGUuRVJST1IsIGVycm9yTWVzc2FnZSk7XHJcbiAgICB9IGVsc2UgaWYgKGVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5nbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlPy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzIHAtMyBwLXNtLTQgcC1tZC00IHAtbGctNFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19faW5mbyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGItM1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgPyAnaWVlZXNhLWdyb3Vwc19faW5mby0td2hpdGUtYmcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWdyb3Vwc19faW5mby0tYmx1ZS1iZydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPHBcclxuICAgICAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS10aXRsZS1sZy0yNCcgOiAnaWVlZXNhLWhlYWRsaW5lLWxnLTM0J1wiXHJcbiAgICA+XHJcbiAgICAgIHt7IGdyb3Vwc1BhZ2VJbmZvLmdyb3Vwc1RpdGxlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidmFsaWRhdGVBY2Nlc3MocGVybWlzc2lvblR5cGUuQ1JFQVRFX1JPT1RfR1JPVVApXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ncm91cHNfX2NyZWF0ZS1zdWJncm91cCBtYXQtdGVydGlhcnktYnV0dG9uIGQtbm9uZSBkLXNtLW5vbmUgZC1tZC1ibG9jayBkLWxnLWJsb2NrIGQteGwtYmxvY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJvcGVuQ3JlYXRlR3JvdXBGb3JtKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5hcmlhTGFiZWw/LmFkZEdyb3VwXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cz8udmlld0dyb3Vwcz8uYWRkR3JvdXAgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1zbS1mbGV4IGQtbWQtbm9uZSBkLWxnLW5vbmUgZC14bC1ub25lIGllZWVzYS1ncm91cHNfX21vYmlsZS1pY29ucyBnYXAtMlwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJjcmVhdGVHcm91cEljb25cIlxyXG4gICAgICAgICpuZ0lmPVwidmFsaWRhdGVBY2Nlc3MocGVybWlzc2lvblR5cGUuQ1JFQVRFX1JPT1RfR1JPVVApXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9wZW5DcmVhdGVHcm91cEZvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJmaWx0ZXJHcm91cEljb25cIlxyXG4gICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwic2hvd0dyb3VwRmlsdGVyKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5hcmlhTGFiZWw/LnNlYXJjaFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uR3JvdXBTZWFyY2goKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLW1hZ25pZnlpbmctZ2xhc3Mgc2VhcmNoLWdyb3VwLWljb25cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzX19hY3Rpb25zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXdcclxuICAgICAgICA/ICdpZWVlc2EtZ3JvdXBzX19hY3Rpb25zLS13aGl0ZS1iZydcclxuICAgICAgICA6ICdpZWVlc2EtZ3JvdXBzX19hY3Rpb25zLS1ibHVlLWJnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19fYWN0aW9ucy0tc2VhcmNoIHJvd1wiPlxyXG4gICAgICA8cFxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWJvZHktbWQtMTYgb3JkZXItMiBvcmRlci1zbS0xIGNvbC0xMiBjb2wtbWQtNyBjb2wtbGctNyBjb2wteGwtN1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBncm91cHNQYWdlSW5mby5ncm91cHNEZXNjcmlwdGlvbiB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKChpc0dyb3VwU2VhcmNoQWN0aXZlIHx8IGlzR3JvdXBGaWx0ZXJBY3RpdmUpICYmIGlzTW9iaWxlVmlldykgfHxcclxuICAgICAgICAgICFpc01vYmlsZVZpZXdcclxuICAgICAgICBcIlxyXG4gICAgICAgIGNsYXNzPVwib3JkZXItMSBvcmRlci1zbS0yIGNvbC0xMiBjb2wtbWQtNSBjb2wtbGctNSBjb2wteGwtNSBkLWZsZXggZmxleC1jb2x1bW5cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgICAgICpuZ0lmPVwiaXNHcm91cFNlYXJjaEFjdGl2ZSB8fCAhaXNNb2JpbGVWaWV3XCJcclxuICAgICAgICAgIChzZWFyY2hWYWx1ZSk9XCJvbkdyb3VwU2VhcmNoQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICBbc2VhcmNoVGVybV09XCJ0cmltbWVkU2VhcmNoVGVybVwiXHJcbiAgICAgICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInNlYXJjaFBsYWNlSG9sZGVyVGV4dFwiXHJcbiAgICAgICAgICBbbWluQ2hhcmFjdGVyVG9TZWFyY2hdPVwibWluQ2hhcmFjdGVyVG9TZWFyY2hcIlxyXG4gICAgICAgICAgW3N1cHBvcnRNZXNzYWdlXT1cInN1cHBvcnRNZXNzYWdlXCJcclxuICAgICAgICA+PC9pZWVlc2Etc2VhcmNoPlxyXG5cclxuICAgICAgICA8aWVlZXNhLXNlbGVjdFxyXG4gICAgICAgICAgKm5nSWY9XCJpc0dyb3VwRmlsdGVyQWN0aXZlIHx8ICFpc01vYmlsZVZpZXdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWVuZCBwdC1sZy00IHB0LW1kLTQgcHQteGwtNFwiXHJcbiAgICAgICAgICBbZHJvcGRvd25PcHRpb25zXT1cInNlbGVjdEdyb3VwT3B0aW9uc1wiXHJcbiAgICAgICAgICBbaXNMYWJlbEFsaWduZWRMZWZ0XT1cInRydWVcIlxyXG4gICAgICAgICAgW3NlbGVjdExhYmVsXT1cImNvbnN0YW50cz8udmlld0dyb3Vwcz8uZmlsdGVyQnlMYWJlbFwiXHJcbiAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25Hcm91cFR5cGVGaWx0ZXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwiZmlsdGVyUGxhY2VIb2xkZXJUZXh0XCJcclxuICAgICAgICAgIFtzZWxlY3RlZE9wdGlvbnNdPVwic2VsZWN0ZWRHcm91cFR5cGVcIlxyXG4gICAgICAgID48L2llZWVzYS1zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aWVlZXNhLXRyZWVcclxuICAgICAgKm5nSWY9XCJwYXJlbnRHcm91cHNJbmZvICYmIHBhcmVudEdyb3Vwc0luZm8ubGVuZ3RoID4gMFwiXHJcbiAgICAgIFtwYXJlbnRHcm91cHNJbmZvXT1cInBhcmVudEdyb3Vwc0luZm9cIlxyXG4gICAgICBbY2hpbGRHcm91cHNJbmZvXT1cImNoaWxkR3JvdXBzSW5mb1wiXHJcbiAgICAgIFtkZWxldGVkR3JvdXBJZEluZm9dPVwiZGVsZXRlZEdyb3VwSWRcIlxyXG4gICAgICBbaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlXT1cImlzR3JvdXBTZWFyY2hPckZpbHRlckFjdGl2ZVwiXHJcbiAgICAgIFt1c2VyR3JvdXBQZXJtaXNzaW9uc109XCJ1c2VyR3JvdXBQZXJtaXNzaW9uc1wiXHJcbiAgICAgICh0b2dnbGVHcm91cENsaWNrKT1cImdldEdyb3VwcygkZXZlbnQpXCJcclxuICAgICAgKGNyZWF0ZUdyb3VwQ2xpY2spPVwib3BlbkNyZWF0ZUdyb3VwRm9ybSgkZXZlbnQpXCJcclxuICAgICAgKGRlbGV0ZUdyb3VwQ2xpY2spPVwib3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKCRldmVudClcIlxyXG4gICAgICAodmlld1Jvc3RlckNsaWNrKT1cInZpZXdSb3N0ZXIoJGV2ZW50KVwiXHJcbiAgICAgIChlZGl0R3JvdXBDbGljayk9XCJvcGVuRWRpdEdyb3VwRm9ybSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS10cmVlPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cInBhcmVudEdyb3Vwc0luZm8gJiYgcGFyZW50R3JvdXBzSW5mby5sZW5ndGggPiAwXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1zbS1yb3cgZmxleC1tZC1yb3cgbXQtNCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LXNtLWVuZFwiXHJcbiAgICA+XHJcbiAgICAgIDxwIGNsYXNzPVwicHgtc20tMyBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgaWVlZXNhLWxhYmVsLWxnLWJvbGQtMTZcIj5cclxuICAgICAgICB7eyBjb25zdGFudHM/LnZpZXdHcm91cHM/LmxlZ2VuZCB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxpZWVlc2EtbGVnZW5kXHJcbiAgICAgICAgW2xlZ2VuZHNdPVwiZ3JvdXBzTGVnZW5kc1wiXHJcbiAgICAgICAgW2lzU29ydGluZ109XCJpc1NvcnRpbmdcIlxyXG4gICAgICA+PC9pZWVlc2EtbGVnZW5kPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
599
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2dyb3Vwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9ncm91cHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxjQUFjLEVBRWQsbUJBQW1CLEVBRW5CLFNBQVMsRUFDVCwwQkFBMEIsRUFDMUIsZUFBZSxFQUNmLGVBQWUsRUFFZixVQUFVLEVBQ1YsZUFBZSxHQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRS9FLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULGFBQWEsR0FFZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7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QkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsYUFBYSxDQUFDOzZRQXdDakIsY0FBYztzQkFBdEIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENyZWF0ZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7XHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgU2VsZWN0T3B0aW9uLFxyXG4gIEljb25CdXR0b25Db21wb25lbnQsXHJcbiAgSWNvbkJ1dHRvbixcclxuICBBbGlnblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgU2VsZWN0Q29tcG9uZW50LFxyXG4gIExlZ2VuZENvbXBvbmVudCxcclxuICBMZWdlbmQsXHJcbiAgU2VhcmNoVHlwZSxcclxuICBTZWFyY2hDb21wb25lbnQsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdHJlZS12aWV3L3RyZWUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcm91cFR5cGUsIEdyb3VwVHlwZUNvbmZpZ1ZhbHVlIH0gZnJvbSAnLi9tb2RlbHMvZ3JvdXAtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIE1vZGFsVHlwZSxcclxuICBBbGVydFR5cGUsXHJcbiAgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR3JvdXBGdW5jdGlvblR5cGUgfSBmcm9tICcuL21vZGVscy9ncm91cC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgUm9zdGVyRnVuY3Rpb25UeXBlIH0gZnJvbSAnLi9tb2RlbHMvcm9zdGVyLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBHZXRHcm91cHNQYXlsb2FkIH0gZnJvbSAnLi9tb2RlbHMvdmlldy1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IERlbGV0ZUdyb3VwUGF5bG9hZCB9IGZyb20gJy4vbW9kZWxzL2RlbGV0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEFkZFVzZXJSb3N0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRkLXVzZXItcm9zdGVyL2FkZC11c2VyLXJvc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3Um9zdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZpZXctcm9zdGVyL3ZpZXctcm9zdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRHcm91cEFuZFBhcmVudEluZm8gfSBmcm9tICcuL21vZGVscy9lZGl0LWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgRWRpdFVzZXJSb2xlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0LXVzZXItcm9sZXMvZWRpdC11c2VyLXJvbGVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXItcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgR3JvdXBQZXJtaXNzaW9uLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4vbW9kZWxzL2dyb3VwLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEdyb3VwcyBjb21wb25lbnQgaXMgYSB3cmFwcGVyIG9yIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIGdyb3VwcyBtYW5hZ2VtZW50IHJldXNhYmxlIGNvbXBvbmVudCBhbmQgaW4gdGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyBhbGwgZ3JvdXAgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXRpZXMgYW5kIHRoaXMgd2lsbCBiZSBlbnRyeSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGdyb3VwcyB3aGVuIGl0IGlzIGNvbnN1bWVkIGluIG90aGVyIGFwcGxpY2F0aW9ucy5cclxuICogQGNsYXNzIEdyb3Vwc0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ncm91cHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVHJlZVZpZXdDb21wb25lbnQsXHJcbiAgICBMZWdlbmRDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3Vwcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXBzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtBbGVydHNTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcbiAgdmlld0dyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8udmlld0dyb3VwcztcclxuICBjcmVhdGVHcm91cFRleHQgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlR3JvdXA7XHJcbiAgZWRpdEdyb3VwVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8uZWRpdEdyb3VwO1xyXG4gIGVkaXRVc2VyUm9sZXNUZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5lZGl0VXNlclJvbGVzO1xyXG4gIGFkZFVzZXJSb3N0ZXJUZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5hZGRVc2VyUm9zdGVyO1xyXG4gIGlzR3JvdXBTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBpc0dyb3VwRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgY2hpbGRHcm91cHNJbmZvITogR3JvdXBJbmZvW107XHJcbiAgc2VsZWN0ZWRHcm91cFR5cGUhOiBTZWxlY3RPcHRpb247XHJcbiAgcGFyZW50R3JvdXBzSW5mbyE6IEdyb3VwSW5mb1tdO1xyXG4gIHNlbGVjdEdyb3VwT3B0aW9ucyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGRlbGV0ZWRHcm91cElkITogc3RyaW5nO1xyXG4gIGRlbGV0ZUdyb3VwTmFtZSE6IHN0cmluZztcclxuICBncm91cFR5cGVzITogR3JvdXBUeXBlQ29uZmlnVmFsdWU7XHJcbiAgc2VhcmNoUGxhY2VIb2xkZXJUZXh0OiBzdHJpbmcgPSB0aGlzLnZpZXdHcm91cFRleHRzPy5wbGFjZWhvbGRlclRleHQ/LnNlYXJjaDtcclxuICBmaWx0ZXJQbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9IHRoaXMudmlld0dyb3VwVGV4dHM/LnBsYWNlaG9sZGVyVGV4dD8uZmlsdGVyO1xyXG4gIGNyZWF0ZUdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAxLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuYWRkLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uY3JlYXRlR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmFkZCxcclxuICB9O1xyXG4gIGZpbHRlckdyb3VwSWNvbjogSWNvbkJ1dHRvbiA9IHtcclxuICAgIGlkOiAyLFxyXG4gICAgYXJpYUxhYmVsOiB0aGlzLnZpZXdHcm91cFRleHRzPy5hcmlhTGFiZWwuZmlsdGVyLFxyXG4gICAgaWNvblVSTDogdGhpcy52aWV3R3JvdXBUZXh0cz8uZmlsdGVyR3JvdXBJY29uLFxyXG4gICAgdG9vbFRpcDogdGhpcy52aWV3R3JvdXBUZXh0cz8uYXJpYUxhYmVsLmZpbHRlcixcclxuICB9O1xyXG4gIGdyb3Vwc0xlZ2VuZHM6IExlZ2VuZFtdID0gW107XHJcbiAgZ2V0R3JvdXBzUGF5bG9hZDogR2V0R3JvdXBzUGF5bG9hZCA9IHsgZ3JvdXBJZDogJycsIGdyb3VwVHlwZUlkOiAnJyB9O1xyXG4gIEBJbnB1dCgpIGdyb3Vwc1BhZ2VJbmZvOiB7XHJcbiAgICBncm91cHNUaXRsZTogc3RyaW5nO1xyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgZ3JvdXBzVGl0bGU6IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc1RpdGxlLFxyXG4gICAgZ3JvdXBzRGVzY3JpcHRpb246IHRoaXMudmlld0dyb3VwVGV4dHM/Lmdyb3Vwc0Rlc2NyaXB0aW9uLFxyXG4gIH07XHJcbiAgQElucHV0KCkgYXBwbGljYXRpb25JZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgcGVybWlzc2lvblR5cGUgPSBQZXJtaXNzaW9uVHlwZTtcclxuICBmdW5jdGlvblR5cGUhOiBHcm91cEZ1bmN0aW9uVHlwZTtcclxuICBhbGlnbm1lbnRUeXBlID0gQWxpZ25UeXBlO1xyXG4gIGlzU29ydGluZyA9IHRydWU7XHJcbiAgY2FuUmVvcGVuVmlld1Jvc3Rlck1vZGFsID0gZmFsc2U7XHJcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZSA9IFNlYXJjaFR5cGUuT05fQ0xJQ0s7XHJcbiAgbWluQ2hhcmFjdGVyVG9TZWFyY2ggPSAzO1xyXG4gIHRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgdXNlckdyb3VwUGVybWlzc2lvbnMhOiBHcm91cFBlcm1pc3Npb25bXTtcclxuICBzdXBwb3J0TWVzc2FnZSE6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdyb3Vwc1NlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyU2VydmljZTogQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdXNlclBlcm1pc3Npb25zU2VydmljZTogVXNlclBlcm1pc3Npb25zU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHsgbWF0Y2hlczogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQ/Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5vcGVuTW9kYWxOb3RpZmllcj8ubmV4dChHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGdyb3VwcyBjb21wb25lbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdXBwb3J0TWVzc2FnZSA9XHJcbiAgICAgIHRoaXMudmlld0dyb3VwVGV4dHM/Lm1pbkNoYXJSZXF1aXJlZFRvU2VhcmNoMSArXHJcbiAgICAgICcgJyArXHJcbiAgICAgIHRoaXMubWluQ2hhcmFjdGVyVG9TZWFyY2ggK1xyXG4gICAgICAnICcgK1xyXG4gICAgICB0aGlzLnZpZXdHcm91cFRleHRzPy5taW5DaGFyUmVxdWlyZWRUb1NlYXJjaDI7XHJcbiAgICB0aGlzLnVzZXJHcm91cFBlcm1pc3Npb25zID1cclxuICAgICAgdGhpcy51c2VyUGVybWlzc2lvbnNTZXJ2aWNlLmZpbHRlclVzZXJHcm91cFBlcm1pc3Npb25zKFxyXG4gICAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2Uuc2V0VXNlckdyb3VwUGVybWlzc2lvbnModGhpcy51c2VyR3JvdXBQZXJtaXNzaW9ucyk7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldEFwcENvbmZpZyh0aGlzLmFwaUJhc2VVUkwsIHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBUeXBlcygpO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5vcGVuTW9kYWxOb3RpZmllclxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBpZiAocmVzcG9uc2UgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRfUk9TVEVSX1VTRVJfUk9MRSkge1xyXG4gICAgICAgICAgdGhpcy5vcGVuRWRpdFVzZXJSb2xlc01vZGFsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXNwb25zZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSKSB7XHJcbiAgICAgICAgICB0aGlzLm9wZW5BZGRVc2VyUm9zdGVyTW9kYWwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZXMgcGVybWlzc2lvbiBiYXNlZCBhY2Nlc3MgZm9yIHByb3ZpZGVkIGZlYXR1cmUuXHJcbiAgICogQHBhcmFtIHtQZXJtaXNzaW9uVHlwZX0gcGVybWlzc2lvblR5cGVcclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICB2YWxpZGF0ZUFjY2VzcyhwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJQZXJtaXNzaW9uc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3NQZXJtaXNzaW9uKFxyXG4gICAgICBwZXJtaXNzaW9uVHlwZSxcclxuICAgICAgdGhpcy51c2VyR3JvdXBQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGNyZWF0ZSBncm91cCBtb2RhbCBhbmQgY2FsbHMgb3Blbk1vZGFsIG1ldGhvZC5cclxuICAgKiBAcGFyYW0ge0dyb3VwSW5mb30gW3BhcmVudEdyb3VwSW5mb10gLUFuIG9wdGlvbmFsIHBhcmFtZXRlci4gUGFyZW50IGdyb3VwIGluZm8gdG8gYmUgcGFzc2VkIGZvciBjcmVhdGUgY2hpbGQgZ3JvdXAuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5DcmVhdGVHcm91cEZvcm0ocGFyZW50R3JvdXBJbmZvPzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldFNlbGVjdGVkR3JvdXBJbmZvKHBhcmVudEdyb3VwSW5mbyA/PyB1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uQ1JFQVRFKTtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5oZWFkaW5nLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZUdyb3VwQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZnVuY3Rpb25UeXBlID0gR3JvdXBGdW5jdGlvblR5cGU/LkNSRUFURTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtY3JlYXRlLWdyb3VwJywgcGFyZW50R3JvdXBJbmZvKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGVkaXQgZ3JvdXAgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtFZGl0R3JvdXBBbmRQYXJlbnRJbmZvfSBlZGl0R3JvdXBJbmZvIC1lZGl0aW5nIGdyb3VwIGFuZCBpdHMgcGFyZW50IGdyb3VwIGluZm8gdG8gYmUgcGFzc2VkIGZvciBwb3B1bGF0aW5nIGVkaXQgZ3JvdXAgZm9ybSBmaWVsZHMuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5FZGl0R3JvdXBGb3JtKGVkaXRHcm91cEluZm86IEVkaXRHcm91cEFuZFBhcmVudEluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0U2VsZWN0ZWRHcm91cEluZm8oXHJcbiAgICAgIGVkaXRHcm91cEluZm8/Lmdyb3VwSW5mbyxcclxuICAgICAgZWRpdEdyb3VwSW5mbz8ucGFyZW50R3JvdXBJbmZvXHJcbiAgICApO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRURJVCk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiBlZGl0R3JvdXBJbmZvPy5ncm91cEluZm8/Lmdyb3VwTmFtZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBDcmVhdGVHcm91cENvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgIH07XHJcbiAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9IEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoZGlhbG9nT3B0aW9ucywgJ2llZWVzYS1lZGl0LWdyb3VwJywgZWRpdEdyb3VwSW5mbyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRpYWxvZyBvcHRpb25zIGZvciBlZGl0IHVzZXIgcm9sZXMgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5FZGl0VXNlclJvbGVzTW9kYWwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFVzZXJJbmZvID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRTZWxlY3RlZFVzZXJJbmZvKCk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiBzZWxlY3RlZFVzZXJJbmZvPy5uYW1lLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IEVkaXRVc2VyUm9sZXNDb21wb25lbnQsXHJcbiAgICAgIG1vZGFsVHlwZTogTW9kYWxUeXBlLkZPUk0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5mdW5jdGlvblR5cGUgPSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUX1JPU1RFUl9VU0VSX1JPTEU7XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnNldEdyb3VwRnVuY3Rpb25UeXBlKHRoaXMuZnVuY3Rpb25UeXBlKTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtZWRpdC11c2VyLXJvbGVzJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRpYWxvZyBvcHRpb25zIGZvciBhZGQgdXNlcnMgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5BZGRVc2VyUm9zdGVyTW9kYWwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLmFkZFVzZXJSb3N0ZXJUZXh0cz8uaGVhZGluZyxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBBZGRVc2VyUm9zdGVyQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZnVuY3Rpb25UeXBlID0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZSh0aGlzLmZ1bmN0aW9uVHlwZSk7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWFkZC11c2VyLXJvc3RlcicpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkaWFsb2cgb3B0aW9ucyBmb3IgdXNlcnMgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtHcm91cEluZm99IGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZpZXdSb3N0ZXIoZ3JvdXA6IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGluZzogZ3JvdXA/Lmdyb3VwTmFtZSxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBWaWV3Um9zdGVyQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNX0FORF9DT05URU5ULFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZS5zZXRTZWxlY3RlZEdyb3VwSW5mbyhncm91cCk7XHJcbiAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9IEdyb3VwRnVuY3Rpb25UeXBlLlZJRVdfUk9TVEVSO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRURJVCk7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLXZpZXctcm9zdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIG1vZGFsIGNvbXBvbmVudCB3aXRoIGZvciByZWNlaXZlZCBwYXJhbXMgYW5kIGhhbmRsZXMgZm9ybSBzdWJtaXNzaW9uIHN1Y2Nlc3MgYW5kIGVycm9ycy5cclxuICAgKiBAcGFyYW0geyp9IGRpYWxvZ09wdGlvbnNcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2NsYXNzTmFtZV1cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzLCBuby11bnVzZWQtdmFyc1xyXG4gIG9wZW5Nb2RhbChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBkaWFsb2dPcHRpb25zOiBhbnksXHJcbiAgICBjbGFzc05hbWU/OiBzdHJpbmcsXHJcbiAgICBncm91cEluZm8/OiBHcm91cEluZm8gfCBFZGl0R3JvdXBBbmRQYXJlbnRJbmZvXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gJyc7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHdpZHRoOlxyXG4gICAgICAgIHRoaXMuZnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5WSUVXX1JPU1RFUiB8fFxyXG4gICAgICAgIHRoaXMuZnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUX1JPU1RFUl9VU0VSX1JPTEUgfHxcclxuICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSXHJcbiAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICA6ICdhdXRvJyxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtbW9kYWwtZGlhbG9nJywgY2xhc3NOYW1lXSxcclxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LnN1Ym1pdEZvcm1SZXNwb25zZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIG5vLXVudXNlZC12YXJzXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmZ1bmN0aW9uVHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBHcm91cEZ1bmN0aW9uVHlwZT8uQ1JFQVRFOiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LnN1Y2Nlc3M/LnN1Ym1pc3Npb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgY29uc3QgY3JlYXRlR3JvdXBJbmZvID0gZ3JvdXBJbmZvIGFzIEdyb3VwSW5mbztcclxuICAgICAgICAgICAgaWYgKGNyZWF0ZUdyb3VwSW5mbykgdGhpcy5nZXRHcm91cHMoY3JlYXRlR3JvdXBJbmZvKTtcclxuICAgICAgICAgICAgZWxzZSB0aGlzLmdldEdyb3VwcygpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgR3JvdXBGdW5jdGlvblR5cGU/LkVESVQ6IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRHcm91cFRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9uXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVkaXRHcm91cEluZm8gPSBncm91cEluZm8gYXMgRWRpdEdyb3VwQW5kUGFyZW50SW5mbztcclxuICAgICAgICAgICAgaWYgKGVkaXRHcm91cEluZm8/LnBhcmVudEdyb3VwSW5mbz8uZ3JvdXBJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHRoaXMuZ2V0R3JvdXBzKGVkaXRHcm91cEluZm8ucGFyZW50R3JvdXBJbmZvKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIEdyb3VwRnVuY3Rpb25UeXBlPy5FRElUX1JPU1RFUl9VU0VSX1JPTEU6IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLmNhblNob3dNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLnNldFJvc3RlckZ1bmN0aW9uVHlwZShcclxuICAgICAgICAgICAgICBSb3N0ZXJGdW5jdGlvblR5cGUuRURJVF9ST1NURVJfVVNFUl9ST0xFXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSBHcm91cEZ1bmN0aW9uVHlwZT8uQUREX1VTRVJfVE9fUk9TVEVSOiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5jYW5TaG93TWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5zZXRSb3N0ZXJGdW5jdGlvblR5cGUoXHJcbiAgICAgICAgICAgICAgUm9zdGVyRnVuY3Rpb25UeXBlLkFERF9VU0VSX1RPX1JPU1RFUlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LmZvcm1DYW5jZWxcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSIHx8XHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVF9ST1NURVJfVVNFUl9ST0xFXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNhblJlb3BlblZpZXdSb3N0ZXJNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3Um9zdGVyKHRoaXMuZ3JvdXBzU2VydmljZS5zZWxlY3RlZEdyb3VwSW5mbyBhcyBHcm91cEluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICA/LmFmdGVyT3BlbmVkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuQUREX1VTRVJfVE9fUk9TVEVSIHx8XHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVF9ST1NURVJfVVNFUl9ST0xFXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNhblJlb3BlblZpZXdSb3N0ZXJNb2RhbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgID8uYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNhblJlb3BlblZpZXdSb3N0ZXJNb2RhbCkge1xyXG4gICAgICAgICAgdGhpcy5jYW5SZW9wZW5WaWV3Um9zdGVyTW9kYWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld1Jvc3Rlcih0aGlzLmdyb3Vwc1NlcnZpY2Uuc2VsZWN0ZWRHcm91cEluZm8gYXMgR3JvdXBJbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyB0aGUgY29uZmlybWF0aW9uIG1vZGFsIHRvIGdldCB1c2VyIGNvbmZpcm1hdGlvbiB0byBkZWxldGUgdGhlIHNlbGVjdGVkIGdyb3VwLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKGdyb3VwSW5mbzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maXJtYXRpb25JbmZvID0gc2NyZWVuVGV4dHM/LmRlbGV0ZUdyb3VwPy5jb25maXJtYXRpb25JbmZvO1xyXG4gICAgY29uc3QgZGVsZXRlR3JvdXBNb2RhbE9wdGlvbnMgPSB7XHJcbiAgICAgIGxlZnRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ubGVmdEJ1dHRvbkxhYmVsLFxyXG4gICAgICByaWdodEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5yaWdodEJ1dHRvbkxhYmVsLFxyXG4gICAgICBwcm9tcHRNZXNzYWdlOlxyXG4gICAgICAgIGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2UgKyBncm91cEluZm8/Lmdyb3VwTmFtZSArICc/JyxcclxuICAgICAgYWN0aW9uQnV0dG9uQWxpZ246IHRoaXMuYWxpZ25tZW50VHlwZT8uTUlERExFLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c/Lm9wZW4oTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGVsZXRlR3JvdXBNb2RhbE9wdGlvbnMsXHJcbiAgICAgIHdpZHRoOiAnYXV0bycsXHJcbiAgICAgIGF1dG9Gb2N1czogJ2RpYWxvZycsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5jb25zdGFudHM/LmFyaWFMYWJlbD8uYWxlcnQsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5kZWxldGVHcm91cChncm91cEluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIEFQSSBSZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgZ3JvdXAgYW5kIGhhbmRsZXMgdGhlIHN1Y2Nlc3MgYW5kIGVycm9yIHJlc3BvbnNlIG9mIHRoZSBodHRwIHJlcXVlc3QuXHJcbiAgICogQG1lbWJlcm9mIEdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGVsZXRlR3JvdXAoZ3JvdXBJbmZvOiBHcm91cEluZm8pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlbGV0ZUdyb3VwVGV4dCA9IHNjcmVlblRleHRzPy5kZWxldGVHcm91cDtcclxuICAgIHRoaXMuZGVsZXRlR3JvdXBOYW1lID0gZ3JvdXBJbmZvPy5ncm91cE5hbWU7XHJcbiAgICBjb25zdCBkZWxldGVHcm91cFBheWxvYWQ6IERlbGV0ZUdyb3VwUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwSWQ6IGdyb3VwSW5mbz8uZ3JvdXBJZCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmRlbGV0ZUdyb3VwKGRlbGV0ZUdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVkR3JvdXBJZCA9IGdyb3VwSW5mbz8uZ3JvdXBJZDtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBncm91cEluZm8/Lmdyb3VwTmFtZSArIGRlbGV0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uc3VjY2Vzcz8uZGVsZXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBzZWFyY2ggZmllbGQgb24gY2xpY2sgb2Ygc2VhcmNoIGljb24gaW4gY2FzZSBvZiBtb2JpbGUgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkdyb3VwU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNHcm91cEZpbHRlckFjdGl2ZSA9IGZhbHNlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgRmlsdGVyIGJ5IGRyb3Bkb3duIG9wdGlvbnMgb24gY2xpY2sgb2YgZmlsdGVyIGljb24gaW4gY2FzZSBvZiBtb2JpbGUgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93R3JvdXBGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzR3JvdXBGaWx0ZXJBY3RpdmUgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlIHRvIHRydWUgYW5kIGxvYWRzIHRoZSBncm91cHMgdGhvc2UgYXJlIGNvbmZpZ3VyZWQgd2l0aCBzZWxlY3RlZCBncm91cCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXJtXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG5cclxuICBvbkdyb3VwU2VhcmNoQ2xpY2soc2VhcmNoVGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnRyaW1tZWRTZWFyY2hUZXJtICYmXHJcbiAgICAgICh0aGlzLmlzR3JvdXBTZWFyY2hBY3RpdmUgfHwgdGhpcy5pc0dyb3VwRmlsdGVyQWN0aXZlKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMub25Hcm91cFR5cGVGaWx0ZXJlZCh0aGlzLnNlbGVjdEdyb3VwT3B0aW9uc1swXSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmltbWVkU2VhcmNoVGVybSkgcmV0dXJuO1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwVHlwZSA9IHRoaXMuc2VsZWN0R3JvdXBPcHRpb25zWzBdO1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgPSAhIXRoaXMudHJpbW1lZFNlYXJjaFRlcm07XHJcbiAgICB0aGlzLm9uR3JvdXBTZWFyY2goKTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuZ3JvdXBzQnlOYW1lQWNyb255bSh0aGlzLnRyaW1tZWRTZWFyY2hUZXJtKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRHcm91cHNJbmZvID0gdGhpcy52aWV3R3JvdXBSZXNwb25zZShyZXNwb25zZT8uYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wYXJlbnRHcm91cHNJbmZvID0gW107XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgc2VsZWN0IGdyb3VwIHR5cGUgb3B0aW9ucyBmcm9tIGdyb3VwVHlwZXMgcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuIHsqfSAge1NlbGVjdE9wdGlvbltdfVxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVPcHRpb25zKCk6IFNlbGVjdE9wdGlvbltdIHtcclxuICAgIHRoaXMubGVnZW5kQ29sb3IoKTtcclxuICAgIGNvbnN0IGdyb3VwVHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgICBncm91cFR5cGVPcHRpb25zLnB1c2goe1xyXG4gICAgICBpZDogJycsXHJcbiAgICAgIG5hbWU6IHRoaXMudmlld0dyb3VwVGV4dHM/LmFsbEdyb3VwVHlwZXNPcHRpb24sXHJcbiAgICB9KTtcclxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuZ3JvdXBUeXBlcyk/LmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgZ3JvdXBUeXBlT3B0aW9ucy5wdXNoKHsgaWQ6IG5vZGVbMF0sIG5hbWU6IG5vZGVbMV0/Lm5hbWUgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBncm91cFR5cGVPcHRpb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGxlZ2VuZCBjb2xvciBmcm9tIGdyb3VwVHlwZXMgcmVzcG9uc2VcclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbGVnZW5kQ29sb3IoKTogdm9pZCB7XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmdyb3VwVHlwZXMpPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXBzTGVnZW5kcz8ucHVzaCh7XHJcbiAgICAgICAgY29sb3I6IG5vZGVbMV0/LmxlZ2VuZENvbG9yLFxyXG4gICAgICAgIGxhYmVsOiBub2RlWzFdPy5uYW1lLFxyXG4gICAgICAgIGhpZXJhcmNoeTogbm9kZVsxXT8uaGllcmFyY2h5LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBpc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgZmxhZyBhbmQgbG9hZHMgcGFyZW50IGdyb3VwIGluZm8gYXMgcGVyIHNlbGVjdGVkIGZpbHRlciBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uR3JvdXBUeXBlRmlsdGVyZWQoZXZlbnQ6IFNlbGVjdE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwVHlwZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5pc0dyb3VwU2VhcmNoT3JGaWx0ZXJBY3RpdmUgPSAhIXRoaXMuc2VsZWN0ZWRHcm91cFR5cGU/LmlkO1xyXG4gICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICBncm91cElkOiAnJyxcclxuICAgICAgZ3JvdXBUeXBlSWQ6IHRoaXMuc2VsZWN0ZWRHcm91cFR5cGU/LmlkIGFzIHN0cmluZyxcclxuICAgIH07XHJcbiAgICB0aGlzLnNob3dHcm91cEZpbHRlcigpO1xyXG4gICAgdGhpcy50cmltbWVkU2VhcmNoVGVybSA9ICcnO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5zZXRHcm91cEZ1bmN0aW9uVHlwZShHcm91cEZ1bmN0aW9uVHlwZT8uRklMVEVSKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBzKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGFsbCB0aGUgcGFyZW50IGdyb3VwcyBpbmZvcm1hdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBzKGdyb3VwPzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAoZ3JvdXApIHtcclxuICAgICAgdGhpcy5nZXRHcm91cHNQYXlsb2FkID0ge1xyXG4gICAgICAgIGdyb3VwSWQ6IGdyb3VwPy5ncm91cElkID8/ICcnLFxyXG4gICAgICAgIGdyb3VwVHlwZUlkOiAnJyxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5nZXRHcm91cHNQYXlsb2FkLmdyb3VwVHlwZUlkID09PSAnJykge1xyXG4gICAgICB0aGlzLmdldEdyb3Vwc1BheWxvYWQgPSB7XHJcbiAgICAgICAgZ3JvdXBJZDogJycsXHJcbiAgICAgICAgZ3JvdXBUeXBlSWQ6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cHModGhpcy5nZXRHcm91cHNQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgaWYgKGdyb3VwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEdyb3Vwc0luZm8gPSB0aGlzLnZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlPy5ib2R5KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhcmVudEdyb3Vwc0luZm8gPSB0aGlzLnZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlPy5ib2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGdyb3VwVHlwZSBpbmZvIHdpdGggZ3JvdXAgcmVzcG9uc2UgZnJvbSBncm91cFR5cGUgcmVzcG9uc2VcclxuICAgKiBAcGFyYW0ge0dyb3VwSW5mb1tdfSByZXNwb25zZVxyXG4gICAqIEByZXR1cm4geyp9ICB7R3JvdXBJbmZvW119XHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZpZXdHcm91cFJlc3BvbnNlKHJlc3BvbnNlOiBHcm91cEluZm9bXSk6IEdyb3VwSW5mb1tdIHtcclxuICAgIHJlc3BvbnNlPy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGdyb3VwVHlwZUluZm86IEdyb3VwVHlwZSA9IHRoaXMuZ3JvdXBUeXBlc1tub2RlLmdyb3VwVHlwZV07XHJcbiAgICAgIG5vZGUuZ3JvdXBUeXBlSW5mbyA9IGdyb3VwVHlwZUluZm87XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTG9hZHMgdGhlIGdyb3VwIHR5cGVzLlxyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cFR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRGb3JtYXR0ZWRHcm91cFR5cGVzKFxyXG4gICAgICAgICAgICAgIHJlcz8uYm9keVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEdyb3VwT3B0aW9ucyA9IHRoaXMuZ2V0R3JvdXBUeXBlT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlID0gdGhpcy5zZWxlY3RHcm91cE9wdGlvbnNbMF07XHJcbiAgICAgICAgICAgIHRoaXMub25Hcm91cFR5cGVGaWx0ZXJlZCh0aGlzLnNlbGVjdGVkR3JvdXBUeXBlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBhbGVydHMgZm9yIHN1Y2Nlc3MsIGVycm9yIGFuZCB3YXJuaW5nLlxyXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IHN0cmluZ1tdKX0gbWVzc2FnZSAtc3VjY2VzcyBvciBlcnJvciBvciB3YXJuaW5nIG1lc3NhZ2UuXHJcbiAgICogQHBhcmFtIHtBbGVydFR5cGV9IGFsZXJ0VHlwZVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBHcm91cHNDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93QWxlcnRNZXNzYWdlKGFsZXJ0VHlwZTogQWxlcnRUeXBlLCBtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgYWxlcnRUeXBlOiBhbGVydFR5cGUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2FwdHVyZXMgdGhlIHNlcnZlciBzaWRlIGVycm9ycyBhbmQgaGFuZGxlcyBpdCBiYXNlZCBvbiB0aGUgY3VzdG9tIG9yIEh0dHAgZXJyb3JzLlxyXG4gICAqIEBwYXJhbSB7SHR0cEVycm9yUmVzcG9uc2V9IGVycm9yXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIEdyb3Vwc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUVycm9ycyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVycm9yQ29kZXM6IHN0cmluZ1tdID0gZXJyb3I/LmVycm9yPy5ib2R5Py5lcnJvckNvZGVzO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3JDb2RlcykpIHtcclxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlPy5wYXJzZUVycm9yTWVzc2FnZShlcnJvckNvZGVzKTtcclxuICAgICAgaWYgKGVycm9yQ29kZXM/LmluY2x1ZGVzKCcxMDA4JykpIHtcclxuICAgICAgICBlcnJvck1lc3NhZ2VbMF0gPSB0aGlzLmRlbGV0ZUdyb3VwTmFtZSArIGVycm9yTWVzc2FnZT8uWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShBbGVydFR5cGUuRVJST1IsIGVycm9yTWVzc2FnZSk7XHJcbiAgICB9IGVsc2UgaWYgKGVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5nbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlPy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgR3JvdXBzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzIHAtMyBwLXNtLTQgcC1tZC00IHAtbGctNFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19faW5mbyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGItM1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgPyAnaWVlZXNhLWdyb3Vwc19faW5mby0td2hpdGUtYmcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWdyb3Vwc19faW5mby0tYmx1ZS1iZydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPHBcclxuICAgICAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS10aXRsZS1sZy0yNCcgOiAnaWVlZXNhLWhlYWRsaW5lLWxnLTM0J1wiXHJcbiAgICA+XHJcbiAgICAgIHt7IGdyb3Vwc1BhZ2VJbmZvLmdyb3Vwc1RpdGxlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidmFsaWRhdGVBY2Nlc3MocGVybWlzc2lvblR5cGUuQ1JFQVRFX1JPT1RfR1JPVVApXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ncm91cHNfX2NyZWF0ZS1zdWJncm91cCBtYXQtdGVydGlhcnktYnV0dG9uIGQtbm9uZSBkLXNtLW5vbmUgZC1tZC1ibG9jayBkLWxnLWJsb2NrIGQteGwtYmxvY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJvcGVuQ3JlYXRlR3JvdXBGb3JtKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5hcmlhTGFiZWw/LmFkZEdyb3VwXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cz8udmlld0dyb3Vwcz8uYWRkR3JvdXAgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1zbS1mbGV4IGQtbWQtbm9uZSBkLWxnLW5vbmUgZC14bC1ub25lIGllZWVzYS1ncm91cHNfX21vYmlsZS1pY29ucyBnYXAtMlwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJjcmVhdGVHcm91cEljb25cIlxyXG4gICAgICAgICpuZ0lmPVwidmFsaWRhdGVBY2Nlc3MocGVybWlzc2lvblR5cGUuQ1JFQVRFX1JPT1RfR1JPVVApXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9wZW5DcmVhdGVHcm91cEZvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJmaWx0ZXJHcm91cEljb25cIlxyXG4gICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwic2hvd0dyb3VwRmlsdGVyKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5hcmlhTGFiZWw/LnNlYXJjaFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uR3JvdXBTZWFyY2goKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLW1hZ25pZnlpbmctZ2xhc3Mgc2VhcmNoLWdyb3VwLWljb25cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZ3JvdXBzX19hY3Rpb25zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXdcclxuICAgICAgICA/ICdpZWVlc2EtZ3JvdXBzX19hY3Rpb25zLS13aGl0ZS1iZydcclxuICAgICAgICA6ICdpZWVlc2EtZ3JvdXBzX19hY3Rpb25zLS1ibHVlLWJnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWdyb3Vwc19fYWN0aW9ucy0tc2VhcmNoIHJvd1wiPlxyXG4gICAgICA8cFxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWJvZHktbWQtMTYgb3JkZXItMiBvcmRlci1zbS0xIGNvbC0xMiBjb2wtbWQtNyBjb2wtbGctNyBjb2wteGwtN1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBncm91cHNQYWdlSW5mby5ncm91cHNEZXNjcmlwdGlvbiB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKChpc0dyb3VwU2VhcmNoQWN0aXZlIHx8IGlzR3JvdXBGaWx0ZXJBY3RpdmUpICYmIGlzTW9iaWxlVmlldykgfHxcclxuICAgICAgICAgICFpc01vYmlsZVZpZXdcclxuICAgICAgICBcIlxyXG4gICAgICAgIGNsYXNzPVwib3JkZXItMSBvcmRlci1zbS0yIGNvbC0xMiBjb2wtbWQtNSBjb2wtbGctNSBjb2wteGwtNSBkLWZsZXggZmxleC1jb2x1bW5cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgICAgICpuZ0lmPVwiaXNHcm91cFNlYXJjaEFjdGl2ZSB8fCAhaXNNb2JpbGVWaWV3XCJcclxuICAgICAgICAgIChzZWFyY2hWYWx1ZSk9XCJvbkdyb3VwU2VhcmNoQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICBbc2VhcmNoVGVybV09XCJ0cmltbWVkU2VhcmNoVGVybVwiXHJcbiAgICAgICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInNlYXJjaFBsYWNlSG9sZGVyVGV4dFwiXHJcbiAgICAgICAgICBbbWluQ2hhcmFjdGVyVG9TZWFyY2hdPVwibWluQ2hhcmFjdGVyVG9TZWFyY2hcIlxyXG4gICAgICAgICAgW3N1cHBvcnRNZXNzYWdlXT1cInN1cHBvcnRNZXNzYWdlXCJcclxuICAgICAgICA+PC9pZWVlc2Etc2VhcmNoPlxyXG5cclxuICAgICAgICA8aWVlZXNhLXNlbGVjdFxyXG4gICAgICAgICAgKm5nSWY9XCJpc0dyb3VwRmlsdGVyQWN0aXZlIHx8ICFpc01vYmlsZVZpZXdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWVuZCBwdC1sZy00IHB0LW1kLTQgcHQteGwtNFwiXHJcbiAgICAgICAgICBbZHJvcGRvd25PcHRpb25zXT1cInNlbGVjdEdyb3VwT3B0aW9uc1wiXHJcbiAgICAgICAgICBbaXNMYWJlbEFsaWduZWRMZWZ0XT1cInRydWVcIlxyXG4gICAgICAgICAgW3NlbGVjdExhYmVsXT1cImNvbnN0YW50cz8udmlld0dyb3Vwcz8uZmlsdGVyQnlMYWJlbFwiXHJcbiAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25Hcm91cFR5cGVGaWx0ZXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwiZmlsdGVyUGxhY2VIb2xkZXJUZXh0XCJcclxuICAgICAgICAgIFtzZWxlY3RlZE9wdGlvbnNdPVwic2VsZWN0ZWRHcm91cFR5cGVcIlxyXG4gICAgICAgID48L2llZWVzYS1zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aWVlZXNhLXRyZWVcclxuICAgICAgKm5nSWY9XCJwYXJlbnRHcm91cHNJbmZvICYmIHBhcmVudEdyb3Vwc0luZm8ubGVuZ3RoID4gMFwiXHJcbiAgICAgIFtwYXJlbnRHcm91cHNJbmZvXT1cInBhcmVudEdyb3Vwc0luZm9cIlxyXG4gICAgICBbY2hpbGRHcm91cHNJbmZvXT1cImNoaWxkR3JvdXBzSW5mb1wiXHJcbiAgICAgIFtkZWxldGVkR3JvdXBJZEluZm9dPVwiZGVsZXRlZEdyb3VwSWRcIlxyXG4gICAgICBbaXNHcm91cFNlYXJjaE9yRmlsdGVyQWN0aXZlXT1cImlzR3JvdXBTZWFyY2hPckZpbHRlckFjdGl2ZVwiXHJcbiAgICAgIFt1c2VyR3JvdXBQZXJtaXNzaW9uc109XCJ1c2VyR3JvdXBQZXJtaXNzaW9uc1wiXHJcbiAgICAgICh0b2dnbGVHcm91cENsaWNrKT1cImdldEdyb3VwcygkZXZlbnQpXCJcclxuICAgICAgKGNyZWF0ZUdyb3VwQ2xpY2spPVwib3BlbkNyZWF0ZUdyb3VwRm9ybSgkZXZlbnQpXCJcclxuICAgICAgKGRlbGV0ZUdyb3VwQ2xpY2spPVwib3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKCRldmVudClcIlxyXG4gICAgICAodmlld1Jvc3RlckNsaWNrKT1cInZpZXdSb3N0ZXIoJGV2ZW50KVwiXHJcbiAgICAgIChlZGl0R3JvdXBDbGljayk9XCJvcGVuRWRpdEdyb3VwRm9ybSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS10cmVlPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cInBhcmVudEdyb3Vwc0luZm8gJiYgcGFyZW50R3JvdXBzSW5mby5sZW5ndGggPiAwXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1zbS1yb3cgZmxleC1tZC1yb3cgbXQtNCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LXNtLWVuZFwiXHJcbiAgICA+XHJcbiAgICAgIDxwIGNsYXNzPVwicHgtc20tMyBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgaWVlZXNhLWxhYmVsLWxnLWJvbGQtMTZcIj5cclxuICAgICAgICB7eyBjb25zdGFudHM/LnZpZXdHcm91cHM/LmxlZ2VuZCB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxpZWVlc2EtbGVnZW5kXHJcbiAgICAgICAgW2xlZ2VuZHNdPVwiZ3JvdXBzTGVnZW5kc1wiXHJcbiAgICAgICAgW2lzU29ydGluZ109XCJpc1NvcnRpbmdcIlxyXG4gICAgICA+PC9pZWVlc2EtbGVnZW5kPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class GroupsModule {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
5
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.
|
|
6
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: GroupsModule }); }
|
|
6
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupsModule }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupsModule, decorators: [{
|
|
9
9
|
type: NgModule,
|
|
10
10
|
args: [{
|
|
11
11
|
declarations: [],
|
|
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13
13
|
exports: []
|
|
14
14
|
}]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2dyb3Vwcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRekMsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZOytHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBTnhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JvdXBzTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW9yLWVkaXQtdXNlci1ncm91cC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL21vZGVscy9hZGQtb3ItZWRpdC11c2VyLWdyb3VwLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFkZE9yRWRpdEdyb3VwVXNlckRldGFpbHNSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5Pzogc3RyaW5nIHwgbnVsbCB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRPckVkaXRVc2VyUm9sZVBheWxvYWQge1xyXG4gIGdyb3VwSWQ6IHN0cmluZztcclxuICB1c2VySWQ/OiBzdHJpbmc7XHJcbiAgcm9sZXM6IHN0cmluZ1tdO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xyXG4gIGxhc3ROYW1lPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkT3JFZGl0SW5kaXZpZHVhbFJvc3RlclBheWxvYWRcclxuICBleHRlbmRzIEFkZE9yRWRpdFVzZXJSb2xlUGF5bG9hZCB7XHJcbiAgY2xhc3NpZmljYXRpb24/OiB7XHJcbiAgICBjbGFzc2lmaWNhdGlvbklkOiBzdHJpbmc7XHJcbiAgfTtcclxuICBvcmdhbml6YXRpb246IHsgb3JnSWQ6IHN0cmluZzsgb3JnTmFtZTogc3RyaW5nIH07XHJcbiAgbWVtYmVyU3RhdHVzOiB7IG1lbWJlclN0YXR1c0lkOiBzdHJpbmcgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRPckVkaXRVc2VyUGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogQWRkT3JFZGl0VXNlclJvbGVQYXlsb2FkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFkZE9yRWRpdFVzZXJJbmRpdmlkdWFsUm9zdGVyUGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogQWRkT3JFZGl0SW5kaXZpZHVhbFJvc3RlclBheWxvYWQ7XHJcbn1cclxuIl19
|
|
@@ -59,13 +59,13 @@ export class GroupPermissionsMapService {
|
|
|
59
59
|
getGroupPermissions() {
|
|
60
60
|
return this.groupPermissions;
|
|
61
61
|
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
63
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupPermissionsMapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupPermissionsMapService, providedIn: 'root' }); }
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: GroupPermissionsMapService, decorators: [{
|
|
66
66
|
type: Injectable,
|
|
67
67
|
args: [{
|
|
68
68
|
providedIn: 'root',
|
|
69
69
|
}]
|
|
70
70
|
}] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcGVybWlzc2lvbnMtbWFwLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9zZXJ2aWNlcy9ncm91cC1wZXJtaXNzaW9ucy1tYXAtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLDBCQUEwQjtJQUh2QztRQUlFLHFCQUFnQixHQUFzQjtZQUNwQztnQkFDRSxjQUFjLEVBQUUsY0FBYyxDQUFDLFdBQVc7Z0JBQzFDLGNBQWMsRUFBRSxhQUFhO2dCQUM3QixZQUFZLEVBQUUsZ0RBQWdEO2FBQy9EO1lBQ0Q7Z0JBQ0UsY0FBYyxFQUFFLGNBQWMsQ0FBQyxpQkFBaUI7Z0JBQ2hELGNBQWMsRUFBRSxxQkFBcUI7Z0JBQ3JDLFlBQVksRUFBRSxnREFBZ0Q7YUFDL0Q7WUFDRDtnQkFDRSxjQUFjLEVBQUUsY0FBYyxDQUFDLGVBQWU7Z0JBQzlDLGNBQWMsRUFBRSxpQkFBaUI7Z0JBQ2pDLFlBQVksRUFBRSxnREFBZ0Q7YUFDL0Q7WUFDRDtnQkFDRSxjQUFjLEVBQUUsY0FBYyxDQUFDLFlBQVk7Z0JBQzNDLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixZQUFZLEVBQUUsZ0RBQWdEO2FBQy9EO1lBQ0Q7Z0JBQ0UsY0FBYyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUN6QyxjQUFjLEVBQUUsb0JBQW9CO2dCQUNwQyxZQUFZLEVBQUUsZ0RBQWdEO2FBQy9EO1lBQ0Q7Z0JBQ0UsY0FBYyxFQUFFLGNBQWMsQ0FBQyxtQkFBbUI7Z0JBQ2xELGNBQWMsRUFBRSxxQkFBcUI7Z0JBQ3JDLFlBQVksRUFBRSxnREFBZ0Q7YUFDL0Q7WUFDRDtnQkFDRSxjQUFjLEVBQUUsY0FBYyxDQUFDLG1CQUFtQjtnQkFDbEQsY0FBYyxFQUFFLHFCQUFxQjtnQkFDckMsWUFBWSxFQUFFLGdEQUFnRDthQUMvRDtZQUNEO2dCQUNFLGNBQWMsRUFBRSxjQUFjLENBQUMscUJBQXFCO2dCQUNwRCxjQUFjLEVBQUUsdUJBQXVCO2dCQUN2QyxZQUFZLEVBQUUsZ0RBQWdEO2FBQy9EO1lBQ0Q7Z0JBQ0UsY0FBYyxFQUFFLGNBQWMsQ0FBQyxrQkFBa0I7Z0JBQ2pELGNBQWMsRUFBRSxvQkFBb0I7Z0JBQ3BDLFlBQVksRUFBRSxnREFBZ0Q7YUFDL0Q7WUFDRDtnQkFDRSxjQUFjLEVBQUUsY0FBYyxDQUFDLG9CQUFvQjtnQkFDbkQsY0FBYyxFQUFFLHFCQUFxQjtnQkFDckMsWUFBWSxFQUFFLGdEQUFnRDthQUMvRDtTQUNGLENBQUM7S0FJSDtJQUhDLG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDOzhHQXZEVSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHcm91cFBlcm1pc3Npb24gfSBmcm9tICcuLi9tb2RlbHMvZ3JvdXAtcGVybWlzc2lvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3VwUGVybWlzc2lvbnNNYXBTZXJ2aWNlIHtcclxuICBncm91cFBlcm1pc3Npb25zOiBHcm91cFBlcm1pc3Npb25bXSA9IFtcclxuICAgIHtcclxuICAgICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLlZJRVdfR1JPVVBTLFxyXG4gICAgICBwZXJtaXNzaW9uTmFtZTogJ1ZpZXcgR3JvdXBzJyxcclxuICAgICAgcGVybWlzc2lvbklkOiAnUEVSTV9ORVNDX2MwNWZmNTkyLTcxNzgtNDYxNC1iNzMwLTdhN2E4ODI4ODI0ZScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUuQ1JFQVRFX1JPT1RfR1JPVVAsXHJcbiAgICAgIHBlcm1pc3Npb25OYW1lOiAnQ3JlYXRlIFBhcmVudCBHcm91cCcsXHJcbiAgICAgIHBlcm1pc3Npb25JZDogJ1BFUk1fTkVTQ19mYzUyMjc0OC1lMmQ0LTQ0MGMtYjZjNi00MWFhY2E3NWE4MGYnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLkNSRUFURV9TVUJHUk9VUCxcclxuICAgICAgcGVybWlzc2lvbk5hbWU6ICdDcmVhdGUgU3ViZ3JvdXAnLFxyXG4gICAgICBwZXJtaXNzaW9uSWQ6ICdQRVJNX05FU0NfOGY4YTIwM2UtZDk5Mi00NTU1LTljNDItYWM2OTcwZjJkMzc2JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZS5ERUxFVEVfR1JPVVAsXHJcbiAgICAgIHBlcm1pc3Npb25OYW1lOiAnRGVsZXRlIEdyb3VwJyxcclxuICAgICAgcGVybWlzc2lvbklkOiAnUEVSTV9ORVNDXzAwODIyOWJmLTZhMTItNDI4MS04OGQ4LTRhMmJjOTU5NzU3MycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUuRURJVF9HUk9VUCxcclxuICAgICAgcGVybWlzc2lvbk5hbWU6ICdFZGl0IEdyb3VwIERldGFpbHMnLFxyXG4gICAgICBwZXJtaXNzaW9uSWQ6ICdQRVJNX05FU0NfZDY0ZTFmMDktZDNmNy00Zjg2LWE5NGMtNDc4MmEyZjYwNTcxJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZS5NQU5BR0VfU1lTVEVNX1VTRVJTLFxyXG4gICAgICBwZXJtaXNzaW9uTmFtZTogJ01hbmFnZSBTeXN0ZW0gVXNlcnMnLFxyXG4gICAgICBwZXJtaXNzaW9uSWQ6ICdQRVJNX05FU0NfZDJjMTAzZTktMjBjNi00ZGQ1LWIzMjAtZjdkNGQwMTdjNTc0JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZS5WSUVXX0dST1VQX09GRklDRVJTLFxyXG4gICAgICBwZXJtaXNzaW9uTmFtZTogJ1ZpZXcgR3JvdXAgT2ZmaWNlcnMnLFxyXG4gICAgICBwZXJtaXNzaW9uSWQ6ICdQRVJNX05FU0NfZjgwYWM4YTMtNjBiOC00YWU0LWJlZGYtY2UxZDg5YzU0MzU0JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZS5NQU5BR0VfR1JPVVBfT0ZGSUNFUlMsXHJcbiAgICAgIHBlcm1pc3Npb25OYW1lOiAnTWFuYWdlIEdyb3VwIE9mZmljZXJzJyxcclxuICAgICAgcGVybWlzc2lvbklkOiAnUEVSTV9ORVNDXzlkZGQ1MWRiLWY0ODEtNDdlYS05NDZiLWU4ODgxNTk3M2NmYicsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUuVklFV19HUk9VUF9NRU1CRVJTLFxyXG4gICAgICBwZXJtaXNzaW9uTmFtZTogJ1ZpZXcgR3JvdXAgTWVtYmVycycsXHJcbiAgICAgIHBlcm1pc3Npb25JZDogJ1BFUk1fTkVTQ181YThlZGI5MS1hMTMyLTQ2NzAtOTBhMy0yNWZiNjk4MjMwN2EnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLk1BTkFHRV9HUk9VUF9NRU1CRVJTLFxyXG4gICAgICBwZXJtaXNzaW9uTmFtZTogJ01hbmFnZSBHcm91cCBNZW1iZXInLFxyXG4gICAgICBwZXJtaXNzaW9uSWQ6ICdQRVJNX05FU0NfMTk2OWZlY2ItNjM4My00NDZlLTkyNzYtYjZhN2I3MjY1Y2I0JyxcclxuICAgIH0sXHJcbiAgXTtcclxuICBnZXRHcm91cFBlcm1pc3Npb25zKCk6IEdyb3VwUGVybWlzc2lvbltdIHtcclxuICAgIHJldHVybiB0aGlzLmdyb3VwUGVybWlzc2lvbnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|