@ieeesa-npm/tenants 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/esm2022/lib/assets/constants.json +56 -2
  2. package/esm2022/lib/assets/tenant-validations.mjs +5 -2
  3. package/esm2022/lib/components/create-modify-role/create-modify-role.component.mjs +215 -0
  4. package/esm2022/lib/components/tenant-basic-details/tenant-basic-details.component.mjs +3 -3
  5. package/esm2022/lib/components/view-tenant-details/view-tenant-details.component.mjs +133 -10
  6. package/esm2022/lib/components/view-tenants-list/view-tenants-list.component.mjs +1 -1
  7. package/esm2022/lib/models/role-menu-action.model.mjs +7 -0
  8. package/esm2022/lib/models/role-type.model.mjs +2 -0
  9. package/esm2022/lib/models/roles-and-permissions.model.mjs +1 -1
  10. package/esm2022/lib/models/tenant-function-type.model.mjs +3 -1
  11. package/esm2022/lib/services/tenant-applications.service.mjs +90 -3
  12. package/esm2022/public-api.mjs +4 -1
  13. package/fesm2022/ieeesa-npm-tenants.mjs +500 -18
  14. package/fesm2022/ieeesa-npm-tenants.mjs.map +1 -1
  15. package/lib/assets/tenant-validations.d.ts +3 -0
  16. package/lib/components/create-modify-role/create-modify-role.component.d.ts +85 -0
  17. package/lib/components/tenant-basic-details/tenant-basic-details.component.d.ts +54 -0
  18. package/lib/components/view-tenant-details/view-tenant-details.component.d.ts +32 -2
  19. package/lib/models/role-menu-action.model.d.ts +4 -0
  20. package/lib/models/role-type.model.d.ts +27 -0
  21. package/lib/models/roles-and-permissions.model.d.ts +43 -5
  22. package/lib/models/tenant-function-type.model.d.ts +3 -1
  23. package/lib/services/tenant-applications.service.d.ts +55 -4
  24. package/package.json +1 -1
  25. package/public-api.d.ts +3 -0
@@ -312,7 +312,7 @@ export class ViewTenantsListComponent {
312
312
  this.destroy$.unsubscribe();
313
313
  }
314
314
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantsListComponent, deps: [{ token: i1.MatDialog }, { token: i2.AlertsService }, { token: i2.BreakpointObserverService }, { token: i3.SharedService }, { token: i4.TenantApplicationsService }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantsListComponent, isStandalone: true, selector: "ieeesa-view-tenants-list", inputs: { tenantsPageInfo: "tenantsPageInfo", apiBaseURL: "apiBaseURL", routePaths: "routePaths", userPermissions: "userPermissions", defaultSortedColumn: "defaultSortedColumn" }, outputs: { createTenant: "createTenant", viewTenantsDetails: "viewTenantsDetails" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-view-tenants-list\"\r\n [ngClass]=\"{ 'ieeesa-view-tenants-list__mobile': isMobileView }\"\r\n>\r\n <p class=\"ieeesa-headline-lg-32 py-3 mb-0\">\r\n {{ tenantsPageInfo.tenantsTitle }}\r\n </p>\r\n <div class=\"ieeesa-view-tenants-list__content\">\r\n <div class=\"d-flex justify-content-end\">\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button me-3\"\r\n [attr.aria-label]=\"viewTenantsConstants?.ariaLabel?.add\"\r\n (click)=\"openCreateTenantForm()\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n >\r\n {{ viewTenantsConstants?.addTenant }}\r\n </button>\r\n </div>\r\n <ieeesa-data-table\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableActions]=\"tableActions\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [defaultSortedColumn]=\"defaultSortedColumn\"\r\n (sortChange)=\"onSortTenants($event)\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n (rowLink)=\"navigateToViewTenantDetails($event)\"\r\n ></ieeesa-data-table>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-view-tenants-list{background-color:#f2f2f2;padding:0 24px 48px}.ieeesa-view-tenants-list__mobile{background-color:#fff}.ieeesa-view-tenants-list__content{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:24px 0}.ieeesa-view-tenants-list__content .cdk-column-appId{min-width:9em;max-width:9em}.ieeesa-view-tenants-list__content .cdk-column-appTitle{min-width:10em;max-width:10em}.ieeesa-view-tenants-list__content .cdk-column-appDescription{min-width:20.25em;max-width:20.25em}.ieeesa-view-tenants-list__content .cdk-column-features{min-width:17em;max-width:17em}.ieeesa-view-tenants-list .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenants-list .mdc-notched-outline__trailing,.ieeesa-view-tenants-list .mdc-notched-outline__notch,.ieeesa-view-tenants-list .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenants-list .mat-mdc-paginator-page-size,.ieeesa-view-tenants-list .mat-mdc-paginator-page-size-label,.ieeesa-view-tenants-list .mat-mdc-paginator-page-size-select,.ieeesa-view-tenants-list .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenants-list .at-mdc-select-min-line,.ieeesa-view-tenants-list .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenants-list .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenants-list .mat-mdc-paginator-range-label{white-space:nowrap}.ieeesa-view-tenants-list .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ieeesa-view-tenants-list .mat-mdc-select-value{display:flex;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.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: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "searchResultMessage", "rowMenuActionIcon"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantsListComponent, isStandalone: true, selector: "ieeesa-view-tenants-list", inputs: { tenantsPageInfo: "tenantsPageInfo", apiBaseURL: "apiBaseURL", routePaths: "routePaths", userPermissions: "userPermissions", defaultSortedColumn: "defaultSortedColumn" }, outputs: { createTenant: "createTenant", viewTenantsDetails: "viewTenantsDetails" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-view-tenants-list\"\r\n [ngClass]=\"{ 'ieeesa-view-tenants-list__mobile': isMobileView }\"\r\n>\r\n <p class=\"ieeesa-headline-lg-32 py-3 mb-0\">\r\n {{ tenantsPageInfo.tenantsTitle }}\r\n </p>\r\n <div class=\"ieeesa-view-tenants-list__content\">\r\n <div class=\"d-flex justify-content-end\">\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button me-3\"\r\n [attr.aria-label]=\"viewTenantsConstants?.ariaLabel?.add\"\r\n (click)=\"openCreateTenantForm()\"\r\n *ngIf=\"validateAccess(permissionType.MANAGE_TENANT)\"\r\n >\r\n {{ viewTenantsConstants?.addTenant }}\r\n </button>\r\n </div>\r\n <ieeesa-data-table\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableActions]=\"tableActions\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [defaultSortedColumn]=\"defaultSortedColumn\"\r\n (sortChange)=\"onSortTenants($event)\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n (rowLink)=\"navigateToViewTenantDetails($event)\"\r\n ></ieeesa-data-table>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-view-tenants-list{background-color:#f2f2f2;padding:0 24px 48px}.ieeesa-view-tenants-list__mobile{background-color:#fff}.ieeesa-view-tenants-list__content{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:24px 0}.ieeesa-view-tenants-list__content .cdk-column-appId{min-width:9em;max-width:9em}.ieeesa-view-tenants-list__content .cdk-column-appTitle{min-width:10em;max-width:10em}.ieeesa-view-tenants-list__content .cdk-column-appDescription{min-width:20.25em;max-width:20.25em}.ieeesa-view-tenants-list__content .cdk-column-features{min-width:17em;max-width:17em}.ieeesa-view-tenants-list .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenants-list .mdc-notched-outline__trailing,.ieeesa-view-tenants-list .mdc-notched-outline__notch,.ieeesa-view-tenants-list .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenants-list .mat-mdc-paginator-page-size,.ieeesa-view-tenants-list .mat-mdc-paginator-page-size-label,.ieeesa-view-tenants-list .mat-mdc-paginator-page-size-select,.ieeesa-view-tenants-list .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenants-list .at-mdc-select-min-line,.ieeesa-view-tenants-list .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenants-list .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenants-list .mat-mdc-paginator-range-label{white-space:nowrap}.ieeesa-view-tenants-list .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ieeesa-view-tenants-list .mat-mdc-select-value{display:flex;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.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: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "searchResultMessage", "rowMenuActionIcon"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
316
316
  }
317
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantsListComponent, decorators: [{
318
318
  type: Component,
@@ -0,0 +1,7 @@
1
+ /* eslint-disable no-unused-vars */
2
+ export var RoleMenuAction;
3
+ (function (RoleMenuAction) {
4
+ RoleMenuAction[RoleMenuAction["EDIT_ROLE"] = 1] = "EDIT_ROLE";
5
+ RoleMenuAction[RoleMenuAction["DELETE_ROLE"] = 2] = "DELETE_ROLE";
6
+ })(RoleMenuAction || (RoleMenuAction = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1tZW51LWFjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL2xpYi9tb2RlbHMvcm9sZS1tZW51LWFjdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4Qiw2REFBYSxDQUFBO0lBQ2IsaUVBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5leHBvcnQgZW51bSBSb2xlTWVudUFjdGlvbiB7XHJcbiAgRURJVF9ST0xFID0gMSxcclxuICBERUxFVEVfUk9MRSA9IDIsXHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS10eXBlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy9yb2xlLXR5cGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUm9sZVR5cGUge1xyXG4gIHJvbGVUeXBlTmFtZTogc3RyaW5nO1xyXG4gIHZpZXdPcmRlcjogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVUeXBlQ29uZmlndXJhdGlvbiB7XHJcbiAgY29uZmlnRmllbGRJZDogc3RyaW5nO1xyXG4gIGNvbmZpZ0ZpZWxkVmFsdWU6IFJvbGVUeXBlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVUeXBlUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keTpcclxuICAgIHwgUm9sZVR5cGVDb25maWd1cmF0aW9uW11cclxuICAgIHwgbnVsbFxyXG4gICAgfCB7XHJcbiAgICAgICAgZXJyb3JDb2Rlczogc3RyaW5nW107XHJcbiAgICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZVR5cGVPcHRpb24ge1xyXG4gIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIG9yZGVyOiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlVHlwZVBheWxvYWQge1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgY29uZmlnRmllbGROYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0Um9sZVR5cGVzUGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogUm9sZVR5cGVQYXlsb2FkO1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy9yb2xlcy1hbmQtcGVybWlzc2lvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUm9sZXNBbmRQZXJtaXNzaW9ucyB7XHJcbiAgcGVybWlzc2lvbjogc3RyaW5nO1xyXG4gIHJvbGVJZHNMaXN0OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJvbGUge1xyXG4gIHJvbGVJZDogc3RyaW5nO1xyXG4gIHJvbGVOYW1lOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHZXRSb2xlc1Jlc3BvbnNlIHtcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIGJvZHk/OiBSb2xlW10gfCBudWxsIHwgeyBlcnJvckNvZGVzOiBzdHJpbmdbXSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQge1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIG9mZnNldDogbnVtYmVyO1xyXG4gICAgcGFnZVNpemU6IG51bWJlcjtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmcge1xyXG4gIHBlcm1pc3Npb25JZDogc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25OYW1lOiBzdHJpbmc7XHJcbiAgcm9sZUxpc3Q6IFJvbGVbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEdldFJvbGVzQW5kUGVybWlzc2lvbnNSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5OiB7XHJcbiAgICB0b3RhbFJlY29yZHM6IG51bWJlcjtcclxuICAgIHJvbGVQZXJtaXNzaW9uRGV0YWlsczpcclxuICAgICAgfCBSb2xlc0FuZFBlcm1pc3Npb25zTWFwcGluZ1tdXHJcbiAgICAgIHwgbnVsbFxyXG4gICAgICB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxuICB9O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy9yb2xlcy1hbmQtcGVybWlzc2lvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUm9sZXNBbmRQZXJtaXNzaW9ucyB7XHJcbiAgcGVybWlzc2lvbjogc3RyaW5nO1xyXG4gIHJvbGVJZHNMaXN0OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJvbGUge1xyXG4gIHJvbGVJZDogc3RyaW5nO1xyXG4gIHJvbGVOYW1lOiBzdHJpbmc7XHJcbiAgcm9sZVR5cGU6IHN0cmluZztcclxuICByb2xlVHlwZU5hbWU6IHN0cmluZztcclxuICB2aWV3T3JkZXI6IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEdldFJvbGVzUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IFJvbGVbXSB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uSW5mbyB7XHJcbiAgb2Zmc2V0OiBudW1iZXI7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkIHtcclxuICBwYXlsb2FkOiBQYWdpbmF0aW9uSW5mbztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJvbGVEZXRhaWxzIHtcclxuICByb2xlSWQ6IHN0cmluZztcclxuICByb2xlTmFtZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmcge1xyXG4gIHBlcm1pc3Npb25JZDogc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25OYW1lOiBzdHJpbmc7XHJcbiAgcm9sZUxpc3Q6IFJvbGVEZXRhaWxzW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHZXRSb2xlc0FuZFBlcm1pc3Npb25zUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keToge1xyXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcbiAgICByb2xlUGVybWlzc2lvbkRldGFpbHM6XHJcbiAgICAgIHwgUm9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmdbXVxyXG4gICAgICB8IG51bGxcclxuICAgICAgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlSW5mbyB7XHJcbiAgcm9sZVR5cGU6IHN0cmluZztcclxuICByb2xlTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJvbGVJbmZvIGV4dGVuZHMgUm9sZUluZm8ge1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUm9sZVJlcXVlc3RQYXlsb2FkIHtcclxuICBwYXlsb2FkOiBDcmVhdGVSb2xlSW5mbztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVSb2xlUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHN0cmluZyB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVSb2xlUmVxdWVzdFBheWxvYWQge1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIHJvbGVJZDogc3RyaW5nO1xyXG4gICAgYXBwSWQ6IHN0cmluZztcclxuICB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlUm9sZVJlc3BvbnNlIHtcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIGJvZHk/OiBzdHJpbmcgfCBudWxsIHwgeyBlcnJvckNvZGVzOiBzdHJpbmdbXSB9O1xyXG59XHJcbiJdfQ==
@@ -3,5 +3,7 @@ export var TenantFunctionType;
3
3
  (function (TenantFunctionType) {
4
4
  TenantFunctionType["CREATE"] = "CREATE";
5
5
  TenantFunctionType["EDIT"] = "EDIT";
6
+ TenantFunctionType["CREATE_ROLE"] = "CREATE_ROLE";
7
+ TenantFunctionType["EDIT_ROLE"] = "EDIT_ROLE";
6
8
  })(TenantFunctionType || (TenantFunctionType = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxNQUFNLENBQU4sSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzVCLHVDQUFpQixDQUFBO0lBQ2pCLG1DQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmV4cG9ydCBlbnVtIFRlbmFudEZ1bmN0aW9uVHlwZSB7XHJcbiAgQ1JFQVRFID0gJ0NSRUFURScsXHJcbiAgRURJVCA9ICdFRElUJyxcclxufVxyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLHVDQUFpQixDQUFBO0lBQ2pCLG1DQUFhLENBQUE7SUFDYixpREFBMkIsQ0FBQTtJQUMzQiw2Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmV4cG9ydCBlbnVtIFRlbmFudEZ1bmN0aW9uVHlwZSB7XHJcbiAgQ1JFQVRFID0gJ0NSRUFURScsXHJcbiAgRURJVCA9ICdFRElUJyxcclxuICBDUkVBVEVfUk9MRSA9ICdDUkVBVEVfUk9MRScsXHJcbiAgRURJVF9ST0xFID0gJ0VESVRfUk9MRScsXHJcbn1cclxuIl19
@@ -23,6 +23,7 @@ export class TenantApplicationsService {
23
23
  this.checkBoxOptions = [];
24
24
  this.appTypeInfo = [];
25
25
  this.featureList = [];
26
+ this.roleTypeOptions = [];
26
27
  }
27
28
  setAppConfig(apiBaseUrl, userPermission) {
28
29
  this.apiBaseUrl = apiBaseUrl;
@@ -145,7 +146,7 @@ export class TenantApplicationsService {
145
146
  */
146
147
  getRoles(appId) {
147
148
  return this.httpService
148
- .getData(`${this.apiBaseUrl}/groups/getRole/${appId}`)
149
+ .getData(`${this.apiBaseUrl}/groups/role/${appId}`)
149
150
  .pipe(map((response) => {
150
151
  return response;
151
152
  }), catchError((error) => {
@@ -161,7 +162,7 @@ export class TenantApplicationsService {
161
162
  */
162
163
  getRolesAndPermissionsMappings(appId, payload) {
163
164
  return this.httpService
164
- .postData(`${this.apiBaseUrl}/groups/getRoleBasedPermission/${appId}`, payload)
165
+ .postData(`${this.apiBaseUrl}/groups/roleBasedPermissions/${appId}`, payload)
165
166
  .pipe(map((response) => {
166
167
  return response;
167
168
  }), catchError((error) => {
@@ -182,6 +183,54 @@ export class TenantApplicationsService {
182
183
  throw error;
183
184
  }));
184
185
  }
186
+ /**
187
+ * Posts create role form data to server using HttpService to create a new role.
188
+ * @param {CreateRoleRequestPayload} createRolePayload
189
+ * @return {Observable<CreateRoleResponse>}
190
+ * @memberof TenantApplicationsService
191
+ */
192
+ createRole(createRolePayload) {
193
+ return this.httpService
194
+ .postData(`${this.apiBaseUrl}/groups/role`, createRolePayload)
195
+ .pipe(map((response) => {
196
+ return response;
197
+ }), catchError((error) => {
198
+ throw error;
199
+ }));
200
+ }
201
+ /**
202
+ * Gets list of role types from server using HttpService.
203
+ * @param {GetRoleTypesPayload} payload
204
+ * @return {Observable<RoleTypeResponse>}
205
+ * @memberof TenantApplicationsService
206
+ */
207
+ getRoleTypes(payload) {
208
+ return this.httpService
209
+ .postData(`${this.apiBaseUrl}/configurations/config/configField`, payload)
210
+ .pipe(map((response) => {
211
+ return response;
212
+ }), catchError((error) => {
213
+ throw error;
214
+ }));
215
+ }
216
+ /**
217
+ * Constructs the select/dropdown options from the role types received from server.
218
+ * @param {RoleTypeConfiguration[]} roleTypeResponse
219
+ * @return {RoleTypeOption[]}
220
+ * @memberof TenantApplicationsService
221
+ */
222
+ getRoleTypeOptions(roleTypeResponse) {
223
+ this.roleTypeOptions = [];
224
+ roleTypeResponse.forEach((item) => {
225
+ this.roleTypeOptions?.push({
226
+ id: item?.configFieldId,
227
+ name: item?.configFieldValue?.roleTypeName,
228
+ order: item?.configFieldValue?.viewOrder,
229
+ });
230
+ });
231
+ this.roleTypeOptions.sort((a, b) => a.order - b.order);
232
+ return this.roleTypeOptions;
233
+ }
185
234
  /**
186
235
  * Posts tenant application form data to server using HttpService for creating new tenant application.
187
236
  * @param {CreateTenantPayload} createTenantPayload
@@ -272,6 +321,20 @@ export class TenantApplicationsService {
272
321
  getTenantFunctionType() {
273
322
  return this.tenantFunctionType;
274
323
  }
324
+ /**
325
+ * Stores the newly created role information.
326
+ * @param {RoleInfo} newlyCreatedRole -create role information.
327
+ */
328
+ setNewlyCreatedRoleInfo(newlyCreatedRole) {
329
+ this.newlyCreatedRole = newlyCreatedRole;
330
+ }
331
+ /**
332
+ * Returns the newly created role information.
333
+ * @return {RoleInfo} -create role information.
334
+ */
335
+ getNewlyCreatedRoleInfo() {
336
+ return this.newlyCreatedRole;
337
+ }
275
338
  /**
276
339
  * Posts the edited tenant application form data to server using HttpService for updating the tenant information.
277
340
  * @param {CreateTenantPayload} editTenantPayload
@@ -320,6 +383,30 @@ export class TenantApplicationsService {
320
383
  });
321
384
  return this.featureList;
322
385
  }
386
+ /**
387
+ * Returns sorted role list data.
388
+ * @param {Role[]} roleList
389
+ * @return {Role[]}
390
+ * @memberof TenantApplicationsService
391
+ */
392
+ sortRolesByRoleType(roleList) {
393
+ return roleList.sort((a, b) => a?.viewOrder - b?.viewOrder);
394
+ }
395
+ /**
396
+ * Posts the role details to server using HttpService for deleting the role.
397
+ * @param {DeleteRoleRequestPayload} deleteRoleRequestPayload
398
+ * @return {Observable<DeleteRoleResponse>}
399
+ * @memberof TenantApplicationsService
400
+ */
401
+ deleteRole(deleteRolePayload) {
402
+ return this.httpService
403
+ .putData(`${this.apiBaseUrl}/groups/role/deleteRole`, deleteRolePayload)
404
+ .pipe(map((response) => {
405
+ return response;
406
+ }), catchError((error) => {
407
+ throw error;
408
+ }));
409
+ }
323
410
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, deps: [{ token: i1.HttpService }, { token: i2.TenantPermissionsService }, { token: i3.TenantPermissionsMapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
324
411
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, providedIn: 'root' }); }
325
412
  }
@@ -329,4 +416,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
329
416
  providedIn: 'root',
330
417
  }]
331
418
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.TenantPermissionsService }, { type: i3.TenantPermissionsMapService }]; } });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBd0N4RCxNQUFNLE9BQU8seUJBQXlCO0lBYXBDO0lBQ0UsMENBQTBDO0lBQ2xDLFdBQXdCO0lBQ2hDLDBDQUEwQztJQUNsQyx3QkFBa0Q7SUFDMUQsMENBQTBDO0lBQ2xDLDJCQUF3RCxDQUFDLDZDQUE2Qzs7UUFKdEcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFeEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUVsRCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBbEJsRSxnQkFBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBSy9DLHNCQUFpQixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDO1FBR3RELGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDdkMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQWUsRUFBRSxDQUFDO0lBUTFCLENBQUM7SUFDSixZQUFZLENBQUMsVUFBa0IsRUFBRSxjQUFnQztRQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFhO1FB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Q0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsUUFBMEI7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRTtZQUM1QyxJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztvQkFDckIsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFZO29CQUNoQyxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQWM7b0JBQ3BDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTztpQkFDNUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQzsrR0E1WFUseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdldFRlbmFudHNQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbi1zY2hlbWEtdmlldy10ZW5hbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2UgfSBmcm9tICcuL3RlbmFudC1wZXJtaXNzaW9ucy1tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWQsXHJcbiAgQ3JlYXRlVGVuYW50UmVzcG9uc2UsXHJcbiAgR2V0VGVuYW50c1Jlc3BvbnNlLFxyXG4gIE5ld1RlbmFudEluZm8sXHJcbiAgVGVuYW50QmFzaWNJbmZvLFxyXG4gIFRlbmFudERldGFpbHNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgQ2hlY2tib3hPcHRpb24sIFJhZGlvT3B0aW9uIH0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlSWQsXHJcbiAgRmVhdHVyZXMsXHJcbiAgR2V0RmVhdHVyZXNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvZmVhdHVyZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEFwcFR5cGVDb25maWcsXHJcbiAgR2V0QXBwVHlwZXNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvYXBwLXR5cGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi90ZW5hbnQtcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbmFudEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQsXHJcbiAgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlLFxyXG4gIEdldFJvbGVzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3JvbGVzLWFuZC1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVXBkYXRlVGVuYW50U3RhdHVzUmVxdWVzdFBheWxvYWQsXHJcbiAgVXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3VwZGF0ZS10ZW5hbnQtc3RhdHVzLm1vZGVsJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2Uge1xyXG4gIHRlbmFudHNUZXh0ID0gc2NyZWVuVGV4dHM/LnZpZXdUZW5hbnRzPy5lcnJvcnM7XHJcbiAgYXBpQmFzZVVybCE6IHN0cmluZztcclxuICB1c2VyUGVybWlzc2lvbiE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgc2VsZWN0ZWRUZW5hbnRJbmZvITogVGVuYW50QmFzaWNJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIHVzZXJUZW5hbnRzUGVybWlzc2lvbnMhOiBUZW5hbnRzUGVybWlzc2lvbnNbXTtcclxuICBjcmVhdGVUZW5hbnRzVGV4dCA9IHNjcmVlblRleHRzPy5jcmVhdGVUZW5hbnQ/LmVycm9ycztcclxuICBuZXdUZW5hbnRJbmZvITogTmV3VGVuYW50SW5mbztcclxuICB0ZW5hbnRGdW5jdGlvblR5cGUhOiBUZW5hbnRGdW5jdGlvblR5cGU7XHJcbiAgcmFkaW9PcHRpb25zOiBSYWRpb09wdGlvbltdID0gW107XHJcbiAgY2hlY2tCb3hPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgYXBwVHlwZUluZm86IFJhZGlvT3B0aW9uW10gPSBbXTtcclxuICBmZWF0dXJlTGlzdDogRmVhdHVyZXNbXSA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2U6IFRlbmFudFBlcm1pc3Npb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2U6IFRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcbiAgc2V0QXBwQ29uZmlnKGFwaUJhc2VVcmw6IHN0cmluZywgdXNlclBlcm1pc3Npb246IFVzZXJQZXJtaXNzaW9uW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XHJcbiAgICB0aGlzLnVzZXJQZXJtaXNzaW9uID0gdXNlclBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRlbmFudCBkZXRhaWxzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUZW5hbnREZXRhaWxzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0VGVuYW50RGV0YWlscyhhcHBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW5hbnREZXRhaWxzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2RldGFpbHMvJHthcHBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgdGVuYW50cyBwZXJtaXNzaW9uc1xyXG4gICAqIEBwYXJhbSB7VGVuYW50c1Blcm1pc3Npb25zW119IFRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0VXNlclRlbmFudHNQZXJtaXNzaW9ucyh1c2VyVGVuYW50c1Blcm1pc3Npb25zOiBUZW5hbnRzUGVybWlzc2lvbnNbXSkge1xyXG4gICAgdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zID0gdXNlclRlbmFudHNQZXJtaXNzaW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdXNlciB0ZW5hbnRzIHBlcm1pc3Npb25zXHJcbiAgICogQHJldHVybiB7VGVuYW50c1Blcm1pc3Npb25zW119XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRVc2VyVGVuYW50c1Blcm1pc3Npb25zKCk6IFRlbmFudHNQZXJtaXNzaW9uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJUZW5hbnRzUGVybWlzc2lvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB1c2VyIHRlbmFudHMgaW5mb3JtYXRpb25cclxuICAgKiBAcGFyYW0ge1RlbmFudEJhc2ljSW5mb30gdGVuYW50SW5mb1xyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbih0ZW5hbnRJbmZvOiBUZW5hbnRCYXNpY0luZm8pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW5hbnRJbmZvID0gdGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGVuYW50cyBpbmZvcm1hdGlvblxyXG4gICAqIEByZXR1cm4ge1RlbmFudEJhc2ljSW5mb31cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFNlbGVjdGVkVGVuYW50SW5mb3JtYXRpb24oKTogVGVuYW50QmFzaWNJbmZvIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbGlzdCBvZiBhcHBsaWNhdGlvbiB0eXBlIGluZm9ybWF0aW9uXHJcbiAgICogQHBhcmFtIHtSYWRpb09wdGlvbn0gYXBwVHlwZUluZm9cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEFwcGxpY2F0aW9uVHlwZShhcHBUeXBlSW5mbzogUmFkaW9PcHRpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hcHBUeXBlSW5mbyA9IGFwcFR5cGVJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIHR5cGUgaW5mb3JtYXRpb25cclxuICAgKiBAcmV0dXJuIHtSYWRpb09wdGlvbn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZSgpOiBSYWRpb09wdGlvbltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmFwcFR5cGVJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaWx0ZXIgcGVybWlzc2lvbnNcclxuICAgKiBAcGFyYW0gdXNlcnNQZXJtaXNzaW9uc1xyXG4gICAqIEByZXR1cm5zIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZmlsdGVyUGVybWlzc2lvbih1c2Vyc1Blcm1pc3Npb25zOiBVc2VyUGVybWlzc2lvbltdKTogVGVuYW50c1Blcm1pc3Npb25zW10ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlPy5maWx0ZXJUZW5hbnRzUGVybWlzc2lvbnMoXHJcbiAgICAgIHVzZXJzUGVybWlzc2lvbnMsXHJcbiAgICAgIHRoaXMudGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlPy5nZXRHbG9iYWxUZW5hbnRzUGVybWlzc2lvbnMoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGluZyBhY2Nlc3MgZm9yIHRlbmFudHNcclxuICAgKiBAcGFyYW0gcGVybWlzc2lvblR5cGUgUGVybWlzc2lvbiBUeXBlIHRvIHZhbGlkYXRlIHBlcm1pc3Npb25cclxuICAgKiBAcGFyYW0gbWFwcGVkVXNlclBlcm1pc3Npb25zIFBlcm1pc3Npb24gd2hpY2ggYXJlIG1hcHBlZCB3aXRoIHRlbmFudHNcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzKFxyXG4gICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLFxyXG4gICAgcGVybWlzc2lvbnM6IFRlbmFudHNQZXJtaXNzaW9uc1tdXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3NQZXJtaXNzaW9uKFxyXG4gICAgICBwZXJtaXNzaW9uVHlwZSxcclxuICAgICAgcGVybWlzc2lvbnNcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRlbmFudHMuXHJcbiAgICogQHBhcmFtIHtHZXRUZW5hbnRzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0VGVuYW50c1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFRlbmFudHNMaXN0KHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkKTogT2JzZXJ2YWJsZTxHZXRUZW5hbnRzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2FwcC9jb25maWdgLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgbGlzdCBvZiBmZWF0dXJlcyBmcm9tIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldEZlYXR1cmVzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmVhdHVyZXMoKTogT2JzZXJ2YWJsZTxHZXRGZWF0dXJlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2FwcC9mZWF0dXJlc2ApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBsaXN0IG9mIHJvbGVzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZFxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxHZXRSb2xlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFJvbGVzKGFwcElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEdldFJvbGVzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2dldFJvbGUvJHthcHBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgbGlzdCBvZiByb2xlcyBhbmQgcGVybWlzc2lvbnMgbWFwcGluZ3MgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHBhcmFtIHtHZXRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxHZXRSb2xlc0FuZFBlcm1pc3Npb25zUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Um9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmdzKFxyXG4gICAgYXBwSWQ6IHN0cmluZyxcclxuICAgIHBheWxvYWQ6IEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxHZXRSb2xlc0FuZFBlcm1pc3Npb25zUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9nZXRSb2xlQmFzZWRQZXJtaXNzaW9uLyR7YXBwSWR9YCxcclxuICAgICAgICBwYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2YgYXBwbGljYXRpb24gdHlwZXMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZXMoKTogT2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2NvbmZpZy9hcHBfdHlwZWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIHRlbmFudCBhcHBsaWNhdGlvbiBmb3JtIGRhdGEgdG8gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlIGZvciBjcmVhdGluZyBuZXcgdGVuYW50IGFwcGxpY2F0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3JlYXRlVGVuYW50UGF5bG9hZH0gY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgY3JlYXRlVGVuYW50KFxyXG4gICAgY3JlYXRlVGVuYW50UGF5bG9hZDogQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvY3JlYXRlVGVuYW50YCxcclxuICAgICAgICBjcmVhdGVUZW5hbnRQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgY2hlY2tib3ggb3B0aW9ucyBmcm9tIGZlYXR1cmVzIGxpc3QgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQHBhcmFtIHtGZWF0dXJlc0xpc3RbXX0gZmVhdHVyZXNcclxuICAgKiBAcmV0dXJucyB7Q2hlY2tib3hPcHRpb25bXX1cclxuICAgKi9cclxuICBnZXRGZWF0dXJlT3B0aW9ucyhmZWF0dXJlczogRmVhdHVyZXNbXSk6IENoZWNrYm94T3B0aW9uW10ge1xyXG4gICAgdGhpcy5jaGVja0JveE9wdGlvbnMgPSBbXTtcclxuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlOiBGZWF0dXJlcykgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrQm94T3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgaWQ6IGZlYXR1cmU/LmZlYXR1cmVJZCxcclxuICAgICAgICBuYW1lOiBmZWF0dXJlPy5mZWF0dXJlTmFtZSxcclxuICAgICAgICBjaGVja2VkOiBmZWF0dXJlPy5pc0RlZmF1bHQsXHJcbiAgICAgICAgZGlzYWJsZWQ6IGZlYXR1cmU/LmlzRGVmYXVsdCxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrQm94T3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIGFwcGxpY2F0aW9uIHR5cGVzIGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7QXBwVHlwZUNvbmZpZ1tdfSBhcHBUeXBlT3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtSYWRpb09wdGlvbltdfVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZU9wdGlvbnMoYXBwVHlwZU9wdGlvbnM6IEFwcFR5cGVDb25maWdbXSk6IFJhZGlvT3B0aW9uW10ge1xyXG4gICAgdGhpcy5yYWRpb09wdGlvbnMgPSBbXTtcclxuICAgIGFwcFR5cGVPcHRpb25zPy5mb3JFYWNoKChhcHBUeXBlOiBBcHBUeXBlQ29uZmlnKSA9PiB7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zPy5wdXNoKHtcclxuICAgICAgICBpZDogYXBwVHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICBsYWJlbDogYXBwVHlwZT8uY29uZmlnRmllbGRWYWx1ZT8udHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvT3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMgaWQncy5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9uW119IGZlYXR1cmVPcHRpb25zXHJcbiAgICogQHJldHVybnMge0ZlYXR1cmVJZFtdfVxyXG4gICAqL1xyXG4gIGdldEZlYXR1cmVJZHMoZmVhdHVyZU9wdGlvbnM6IENoZWNrYm94T3B0aW9uW10pOiBGZWF0dXJlSWRbXSB7XHJcbiAgICBjb25zdCBmZWF0dXJlSWRzOiBGZWF0dXJlSWRbXSA9IFtdO1xyXG4gICAgZmVhdHVyZU9wdGlvbnM/LmZvckVhY2goKGZlYXR1cmVPcHRpb246IENoZWNrYm94T3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChmZWF0dXJlT3B0aW9uPy5jaGVja2VkKSB7XHJcbiAgICAgICAgZmVhdHVyZUlkcy5wdXNoKHtcclxuICAgICAgICAgIGZlYXR1cmVJZDogZmVhdHVyZU9wdGlvbi5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVJZHM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG5ld2x5IGNyZWF0ZWQgdGVuYW50IGluZm9ybWF0aW9uLlxyXG4gICAqIEBwYXJhbSB7TmV3VGVuYW50SW5mb30gbmV3VGVuYW50SW5mb1xyXG4gICAqL1xyXG4gIHNldE5ld1RlbmFudEluZm8obmV3VGVuYW50SW5mbzogTmV3VGVuYW50SW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5uZXdUZW5hbnRJbmZvID0gbmV3VGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCB0ZW5hbnQgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0IGdldE5ld1RlbmFudEluZm8oKTogTmV3VGVuYW50SW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXdUZW5hbnRJbmZvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcGFyYW0ge1RlbmFudEZ1bmN0aW9uVHlwZX0gdGVuYW50RnVuY3Rpb25UeXBlIC10ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKi9cclxuICBzZXRUZW5hbnRGdW5jdGlvblR5cGUodGVuYW50RnVuY3Rpb25UeXBlOiBUZW5hbnRGdW5jdGlvblR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID0gdGVuYW50RnVuY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcmV0dXJuIHtUZW5hbnRGdW5jdGlvblR5cGV9IC10ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRUZW5hbnRGdW5jdGlvblR5cGUoKTogVGVuYW50RnVuY3Rpb25UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudEZ1bmN0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIHRoZSBlZGl0ZWQgdGVuYW50IGFwcGxpY2F0aW9uIGZvcm0gZGF0YSB0byBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UgZm9yIHVwZGF0aW5nIHRoZSB0ZW5hbnQgaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHtDcmVhdGVUZW5hbnRQYXlsb2FkfSBlZGl0VGVuYW50UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZWRpdFRlbmFudChcclxuICAgIGVkaXRUZW5hbnRQYXlsb2FkOiBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2VkaXRUZW5hbnRgLFxyXG4gICAgICAgIGVkaXRUZW5hbnRQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZW5kcyB1cGRhdGUgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIHVwZGF0ZSB0aGUgdGVuYW50IGFwcGxpY2F0aW9uIHN0YXR1cyB0byBhY3RpdmUvaW5hY3RpdmUgdXNpbmcgSHR0cFNlcnZpY2UgYW5kIHJldHVybnMgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSByZXNwb25zZS5cclxuICAgKiBAcGFyYW0ge1VwZGF0ZVRlbmFudFN0YXR1c1JlcXVlc3RQYXlsb2FkfSB1cGRhdGVUZW5hbnRTdGF0dXNQYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICB1cGRhdGVUZW5hbnRTdGF0dXMoXHJcbiAgICB1cGRhdGVUZW5hbnRTdGF0dXNQYXlsb2FkOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8VXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL3VwZGF0ZVN0YXR1c2AsXHJcbiAgICAgICAgdXBkYXRlVGVuYW50U3RhdHVzUGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSXQgZ2VuZXJhdGVzIEZlYXR1cmUgbGlzdCBmcm9tIGNoZWNrYm94IG9wdGlvbnMgZ2VuZXJhdGVkIGluIGZvcm0gYXJyYXkuXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbltdfSBmZWF0dXJlc1xyXG4gICAqIEByZXR1cm4ge0ZlYXR1cmVzW119XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRGZWF0dXJlc0xpc3QoZmVhdHVyZXM6IENoZWNrYm94T3B0aW9uW10pOiBGZWF0dXJlc1tdIHtcclxuICAgIHRoaXMuZmVhdHVyZUxpc3QgPSBbXTtcclxuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAoZmVhdHVyZS5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuZmVhdHVyZUxpc3Q/LnB1c2goe1xyXG4gICAgICAgICAgZmVhdHVyZUlkOiBmZWF0dXJlPy5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICBmZWF0dXJlTmFtZTogZmVhdHVyZT8ubmFtZSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICBpc0RlZmF1bHQ6IGZlYXR1cmU/LmNoZWNrZWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmZlYXR1cmVMaXN0O1xyXG4gIH1cclxufVxyXG4iXX0=
419
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBb0R4RCxNQUFNLE9BQU8seUJBQXlCO0lBZXBDO0lBQ0UsMENBQTBDO0lBQ2xDLFdBQXdCO0lBQ2hDLDBDQUEwQztJQUNsQyx3QkFBa0Q7SUFDMUQsMENBQTBDO0lBQ2xDLDJCQUF3RCxDQUFDLDZDQUE2Qzs7UUFKdEcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFeEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUVsRCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBcEJsRSxnQkFBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBSy9DLHNCQUFpQixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDO1FBR3RELGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDdkMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQWUsRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztJQVNwQyxDQUFDO0lBQ0osWUFBWSxDQUFDLFVBQWtCLEVBQUUsY0FBZ0M7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztP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QUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FDUixpQkFBMkM7UUFFM0MsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSx5QkFBeUIsRUFBRSxpQkFBaUIsQ0FBQzthQUN2RSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOytHQXBlVSx5QkFBeUI7bUhBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzs0RkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR2V0VGVuYW50c1BheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uLXNjaGVtYS12aWV3LXRlbmFudC1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBUZW5hbnRzUGVybWlzc2lvbnMsXHJcbiAgVXNlclBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudHMtcGVybWlzc2lvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25UeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZSB9IGZyb20gJy4vdGVuYW50LXBlcm1pc3Npb25zLW1hcC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCxcclxuICBDcmVhdGVUZW5hbnRSZXNwb25zZSxcclxuICBHZXRUZW5hbnRzUmVzcG9uc2UsXHJcbiAgTmV3VGVuYW50SW5mbyxcclxuICBUZW5hbnRCYXNpY0luZm8sXHJcbiAgVGVuYW50RGV0YWlsc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy90ZW5hbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiwgUmFkaW9PcHRpb24gfSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQge1xyXG4gIEZlYXR1cmVJZCxcclxuICBGZWF0dXJlcyxcclxuICBHZXRGZWF0dXJlc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9mZWF0dXJlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgQXBwVHlwZUNvbmZpZyxcclxuICBHZXRBcHBUeXBlc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3RlbmFudC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVuYW50RnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVSb2xlUmVzcG9uc2UsXHJcbiAgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQsXHJcbiAgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlLFxyXG4gIEdldFJvbGVzUmVzcG9uc2UsXHJcbiAgUm9sZUluZm8sXHJcbiAgQ3JlYXRlUm9sZVJlcXVlc3RQYXlsb2FkLFxyXG4gIERlbGV0ZVJvbGVSZXF1ZXN0UGF5bG9hZCxcclxuICBEZWxldGVSb2xlUmVzcG9uc2UsXHJcbiAgUm9sZSxcclxufSBmcm9tICcuLi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZCxcclxuICBVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvdXBkYXRlLXRlbmFudC1zdGF0dXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEdldFJvbGVUeXBlc1BheWxvYWQsXHJcbiAgUm9sZVR5cGVDb25maWd1cmF0aW9uLFxyXG4gIFJvbGVUeXBlT3B0aW9uLFxyXG4gIFJvbGVUeXBlUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3JvbGUtdHlwZS5tb2RlbCc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlIHtcclxuICB0ZW5hbnRzVGV4dCA9IHNjcmVlblRleHRzPy52aWV3VGVuYW50cz8uZXJyb3JzO1xyXG4gIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgdXNlclBlcm1pc3Npb24hOiBVc2VyUGVybWlzc2lvbltdO1xyXG4gIHNlbGVjdGVkVGVuYW50SW5mbyE6IFRlbmFudEJhc2ljSW5mbyB8IHVuZGVmaW5lZDtcclxuICB1c2VyVGVuYW50c1Blcm1pc3Npb25zITogVGVuYW50c1Blcm1pc3Npb25zW107XHJcbiAgY3JlYXRlVGVuYW50c1RleHQgPSBzY3JlZW5UZXh0cz8uY3JlYXRlVGVuYW50Py5lcnJvcnM7XHJcbiAgbmV3VGVuYW50SW5mbyE6IE5ld1RlbmFudEluZm87XHJcbiAgdGVuYW50RnVuY3Rpb25UeXBlITogVGVuYW50RnVuY3Rpb25UeXBlO1xyXG4gIHJhZGlvT3B0aW9uczogUmFkaW9PcHRpb25bXSA9IFtdO1xyXG4gIGNoZWNrQm94T3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIGFwcFR5cGVJbmZvOiBSYWRpb09wdGlvbltdID0gW107XHJcbiAgZmVhdHVyZUxpc3Q6IEZlYXR1cmVzW10gPSBbXTtcclxuICByb2xlVHlwZU9wdGlvbnM6IFJvbGVUeXBlT3B0aW9uW10gPSBbXTtcclxuICBuZXdseUNyZWF0ZWRSb2xlITogUm9sZUluZm87XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHRlbmFudFBlcm1pc3Npb25zU2VydmljZTogVGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZTogVGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuICBzZXRBcHBDb25maWcoYXBpQmFzZVVybDogc3RyaW5nLCB1c2VyUGVybWlzc2lvbjogVXNlclBlcm1pc3Npb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICAgIHRoaXMudXNlclBlcm1pc3Npb24gPSB1c2VyUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGVuYW50IGRldGFpbHMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2VcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRlbmFudERldGFpbHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRUZW5hbnREZXRhaWxzKGFwcElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbmFudERldGFpbHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvZGV0YWlscy8ke2FwcElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdXNlciB0ZW5hbnRzIHBlcm1pc3Npb25zXHJcbiAgICogQHBhcmFtIHtUZW5hbnRzUGVybWlzc2lvbnNbXX0gVGVuYW50c1Blcm1pc3Npb25zXHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBzZXRVc2VyVGVuYW50c1Blcm1pc3Npb25zKHVzZXJUZW5hbnRzUGVybWlzc2lvbnM6IFRlbmFudHNQZXJtaXNzaW9uc1tdKSB7XHJcbiAgICB0aGlzLnVzZXJUZW5hbnRzUGVybWlzc2lvbnMgPSB1c2VyVGVuYW50c1Blcm1pc3Npb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB1c2VyIHRlbmFudHMgcGVybWlzc2lvbnNcclxuICAgKiBAcmV0dXJuIHtUZW5hbnRzUGVybWlzc2lvbnNbXX1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFVzZXJUZW5hbnRzUGVybWlzc2lvbnMoKTogVGVuYW50c1Blcm1pc3Npb25zW10ge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgdGVuYW50cyBpbmZvcm1hdGlvblxyXG4gICAqIEBwYXJhbSB7VGVuYW50QmFzaWNJbmZvfSB0ZW5hbnRJbmZvXHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBzZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKHRlbmFudEluZm86IFRlbmFudEJhc2ljSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRlbmFudEluZm8gPSB0ZW5hbnRJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0ZW5hbnRzIGluZm9ybWF0aW9uXHJcbiAgICogQHJldHVybiB7VGVuYW50QmFzaWNJbmZvfVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbigpOiBUZW5hbnRCYXNpY0luZm8gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUZW5hbnRJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIHR5cGUgaW5mb3JtYXRpb25cclxuICAgKiBAcGFyYW0ge1JhZGlvT3B0aW9ufSBhcHBUeXBlSW5mb1xyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0QXBwbGljYXRpb25UeXBlKGFwcFR5cGVJbmZvOiBSYWRpb09wdGlvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwcFR5cGVJbmZvID0gYXBwVHlwZUluZm87XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXBwbGljYXRpb24gdHlwZSBpbmZvcm1hdGlvblxyXG4gICAqIEByZXR1cm4ge1JhZGlvT3B0aW9ufVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0QXBwbGljYXRpb25UeXBlKCk6IFJhZGlvT3B0aW9uW10gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBwVHlwZUluZm87XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciBwZXJtaXNzaW9uc1xyXG4gICAqIEBwYXJhbSB1c2Vyc1Blcm1pc3Npb25zXHJcbiAgICogQHJldHVybnMgQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBmaWx0ZXJQZXJtaXNzaW9uKHVzZXJzUGVybWlzc2lvbnM6IFVzZXJQZXJtaXNzaW9uW10pOiBUZW5hbnRzUGVybWlzc2lvbnNbXSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2U/LmZpbHRlclRlbmFudHNQZXJtaXNzaW9ucyhcclxuICAgICAgdXNlcnNQZXJtaXNzaW9ucyxcclxuICAgICAgdGhpcy50ZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2U/LmdldEdsb2JhbFRlbmFudHNQZXJtaXNzaW9ucygpXHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBWYWxpZGF0aW5nIGFjY2VzcyBmb3IgdGVuYW50c1xyXG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uVHlwZSBQZXJtaXNzaW9uIFR5cGUgdG8gdmFsaWRhdGUgcGVybWlzc2lvblxyXG4gICAqIEBwYXJhbSBtYXBwZWRVc2VyUGVybWlzc2lvbnMgUGVybWlzc2lvbiB3aGljaCBhcmUgbWFwcGVkIHdpdGggdGVuYW50c1xyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgcGVybWlzc2lvbiBpcyBncmFudGVkXHJcbiAgICovXHJcbiAgdmFsaWRhdGVBY2Nlc3MoXHJcbiAgICBwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUsXHJcbiAgICBwZXJtaXNzaW9uczogVGVuYW50c1Blcm1pc3Npb25zW11cclxuICApOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudFBlcm1pc3Npb25zU2VydmljZS52YWxpZGF0ZUFjY2Vzc1Blcm1pc3Npb24oXHJcbiAgICAgIHBlcm1pc3Npb25UeXBlLFxyXG4gICAgICBwZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdGVuYW50cy5cclxuICAgKiBAcGFyYW0ge0dldFRlbmFudHNQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRUZW5hbnRzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0VGVuYW50c0xpc3QocGF5bG9hZDogR2V0VGVuYW50c1BheWxvYWQpOiBPYnNlcnZhYmxlPEdldFRlbmFudHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2NvbmZpZ2AsIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBsaXN0IG9mIGZlYXR1cmVzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0RmVhdHVyZXNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRGZWF0dXJlcygpOiBPYnNlcnZhYmxlPEdldEZlYXR1cmVzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2ZlYXR1cmVzYClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2Ygcm9sZXMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHJldHVybiB7Kn0gIHtPYnNlcnZhYmxlPEdldFJvbGVzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Um9sZXMoYXBwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8R2V0Um9sZXNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvcm9sZS8ke2FwcElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBsaXN0IG9mIHJvbGVzIGFuZCBwZXJtaXNzaW9ucyBtYXBwaW5ncyBmcm9tIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWRcclxuICAgKiBAcGFyYW0ge0dldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQHJldHVybiB7Kn0gIHtPYnNlcnZhYmxlPEdldFJvbGVzQW5kUGVybWlzc2lvbnNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRSb2xlc0FuZFBlcm1pc3Npb25zTWFwcGluZ3MoXHJcbiAgICBhcHBJZDogc3RyaW5nLFxyXG4gICAgcGF5bG9hZDogR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPEdldFJvbGVzQW5kUGVybWlzc2lvbnNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3JvbGVCYXNlZFBlcm1pc3Npb25zLyR7YXBwSWR9YCxcclxuICAgICAgICBwYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2YgYXBwbGljYXRpb24gdHlwZXMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZXMoKTogT2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2NvbmZpZy9hcHBfdHlwZWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUG9zdHMgY3JlYXRlIHJvbGUgZm9ybSBkYXRhIHRvIHNlcnZlciB1c2luZyBIdHRwU2VydmljZSB0byBjcmVhdGUgYSBuZXcgcm9sZS5cclxuICAgKiBAcGFyYW0ge0NyZWF0ZVJvbGVSZXF1ZXN0UGF5bG9hZH0gY3JlYXRlUm9sZVBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENyZWF0ZVJvbGVSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBjcmVhdGVSb2xlKFxyXG4gICAgY3JlYXRlUm9sZVBheWxvYWQ6IENyZWF0ZVJvbGVSZXF1ZXN0UGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8Q3JlYXRlUm9sZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvcm9sZWAsIGNyZWF0ZVJvbGVQYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2Ygcm9sZSB0eXBlcyBmcm9tIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcGFyYW0ge0dldFJvbGVUeXBlc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFJvbGVUeXBlUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Um9sZVR5cGVzKHBheWxvYWQ6IEdldFJvbGVUeXBlc1BheWxvYWQpOiBPYnNlcnZhYmxlPFJvbGVUeXBlUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2NvbmZpZy9jb25maWdGaWVsZGAsIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VsZWN0L2Ryb3Bkb3duIG9wdGlvbnMgZnJvbSB0aGUgcm9sZSB0eXBlcyByZWNlaXZlZCBmcm9tIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge1JvbGVUeXBlQ29uZmlndXJhdGlvbltdfSByb2xlVHlwZVJlc3BvbnNlXHJcbiAgICogQHJldHVybiB7Um9sZVR5cGVPcHRpb25bXX1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFJvbGVUeXBlT3B0aW9ucyhcclxuICAgIHJvbGVUeXBlUmVzcG9uc2U6IFJvbGVUeXBlQ29uZmlndXJhdGlvbltdXHJcbiAgKTogUm9sZVR5cGVPcHRpb25bXSB7XHJcbiAgICB0aGlzLnJvbGVUeXBlT3B0aW9ucyA9IFtdO1xyXG4gICAgcm9sZVR5cGVSZXNwb25zZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIHRoaXMucm9sZVR5cGVPcHRpb25zPy5wdXNoKHtcclxuICAgICAgICBpZDogaXRlbT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICBuYW1lOiBpdGVtPy5jb25maWdGaWVsZFZhbHVlPy5yb2xlVHlwZU5hbWUsXHJcbiAgICAgICAgb3JkZXI6IGl0ZW0/LmNvbmZpZ0ZpZWxkVmFsdWU/LnZpZXdPcmRlcixcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucm9sZVR5cGVPcHRpb25zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcclxuICAgIHJldHVybiB0aGlzLnJvbGVUeXBlT3B0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIHRlbmFudCBhcHBsaWNhdGlvbiBmb3JtIGRhdGEgdG8gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlIGZvciBjcmVhdGluZyBuZXcgdGVuYW50IGFwcGxpY2F0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3JlYXRlVGVuYW50UGF5bG9hZH0gY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgY3JlYXRlVGVuYW50KFxyXG4gICAgY3JlYXRlVGVuYW50UGF5bG9hZDogQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvY3JlYXRlVGVuYW50YCxcclxuICAgICAgICBjcmVhdGVUZW5hbnRQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgY2hlY2tib3ggb3B0aW9ucyBmcm9tIGZlYXR1cmVzIGxpc3QgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQHBhcmFtIHtGZWF0dXJlc0xpc3RbXX0gZmVhdHVyZXNcclxuICAgKiBAcmV0dXJucyB7Q2hlY2tib3hPcHRpb25bXX1cclxuICAgKi9cclxuICBnZXRGZWF0dXJlT3B0aW9ucyhmZWF0dXJlczogRmVhdHVyZXNbXSk6IENoZWNrYm94T3B0aW9uW10ge1xyXG4gICAgdGhpcy5jaGVja0JveE9wdGlvbnMgPSBbXTtcclxuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlOiBGZWF0dXJlcykgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrQm94T3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgaWQ6IGZlYXR1cmU/LmZlYXR1cmVJZCxcclxuICAgICAgICBuYW1lOiBmZWF0dXJlPy5mZWF0dXJlTmFtZSxcclxuICAgICAgICBjaGVja2VkOiBmZWF0dXJlPy5pc0RlZmF1bHQsXHJcbiAgICAgICAgZGlzYWJsZWQ6IGZlYXR1cmU/LmlzRGVmYXVsdCxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrQm94T3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIGFwcGxpY2F0aW9uIHR5cGVzIGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7QXBwVHlwZUNvbmZpZ1tdfSBhcHBUeXBlT3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtSYWRpb09wdGlvbltdfVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZU9wdGlvbnMoYXBwVHlwZU9wdGlvbnM6IEFwcFR5cGVDb25maWdbXSk6IFJhZGlvT3B0aW9uW10ge1xyXG4gICAgdGhpcy5yYWRpb09wdGlvbnMgPSBbXTtcclxuICAgIGFwcFR5cGVPcHRpb25zPy5mb3JFYWNoKChhcHBUeXBlOiBBcHBUeXBlQ29uZmlnKSA9PiB7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zPy5wdXNoKHtcclxuICAgICAgICBpZDogYXBwVHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICBsYWJlbDogYXBwVHlwZT8uY29uZmlnRmllbGRWYWx1ZT8udHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvT3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMgaWQncy5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9uW119IGZlYXR1cmVPcHRpb25zXHJcbiAgICogQHJldHVybnMge0ZlYXR1cmVJZFtdfVxyXG4gICAqL1xyXG4gIGdldEZlYXR1cmVJZHMoZmVhdHVyZU9wdGlvbnM6IENoZWNrYm94T3B0aW9uW10pOiBGZWF0dXJlSWRbXSB7XHJcbiAgICBjb25zdCBmZWF0dXJlSWRzOiBGZWF0dXJlSWRbXSA9IFtdO1xyXG4gICAgZmVhdHVyZU9wdGlvbnM/LmZvckVhY2goKGZlYXR1cmVPcHRpb246IENoZWNrYm94T3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChmZWF0dXJlT3B0aW9uPy5jaGVja2VkKSB7XHJcbiAgICAgICAgZmVhdHVyZUlkcy5wdXNoKHtcclxuICAgICAgICAgIGZlYXR1cmVJZDogZmVhdHVyZU9wdGlvbi5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVJZHM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG5ld2x5IGNyZWF0ZWQgdGVuYW50IGluZm9ybWF0aW9uLlxyXG4gICAqIEBwYXJhbSB7TmV3VGVuYW50SW5mb30gbmV3VGVuYW50SW5mb1xyXG4gICAqL1xyXG4gIHNldE5ld1RlbmFudEluZm8obmV3VGVuYW50SW5mbzogTmV3VGVuYW50SW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5uZXdUZW5hbnRJbmZvID0gbmV3VGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCB0ZW5hbnQgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0IGdldE5ld1RlbmFudEluZm8oKTogTmV3VGVuYW50SW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXdUZW5hbnRJbmZvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcGFyYW0ge1RlbmFudEZ1bmN0aW9uVHlwZX0gdGVuYW50RnVuY3Rpb25UeXBlIC10ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKi9cclxuICBzZXRUZW5hbnRGdW5jdGlvblR5cGUodGVuYW50RnVuY3Rpb25UeXBlOiBUZW5hbnRGdW5jdGlvblR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID0gdGVuYW50RnVuY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcmV0dXJuIHtUZW5hbnRGdW5jdGlvblR5cGV9IC10ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRUZW5hbnRGdW5jdGlvblR5cGUoKTogVGVuYW50RnVuY3Rpb25UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudEZ1bmN0aW9uVHlwZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU3RvcmVzIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUgaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHtSb2xlSW5mb30gbmV3bHlDcmVhdGVkUm9sZSAtY3JlYXRlIHJvbGUgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgc2V0TmV3bHlDcmVhdGVkUm9sZUluZm8obmV3bHlDcmVhdGVkUm9sZTogUm9sZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMubmV3bHlDcmVhdGVkUm9sZSA9IG5ld2x5Q3JlYXRlZFJvbGU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbi5cclxuICAgKiBAcmV0dXJuIHtSb2xlSW5mb30gLWNyZWF0ZSByb2xlIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIGdldE5ld2x5Q3JlYXRlZFJvbGVJbmZvKCk6IFJvbGVJbmZvIHtcclxuICAgIHJldHVybiB0aGlzLm5ld2x5Q3JlYXRlZFJvbGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3N0cyB0aGUgZWRpdGVkIHRlbmFudCBhcHBsaWNhdGlvbiBmb3JtIGRhdGEgdG8gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlIGZvciB1cGRhdGluZyB0aGUgdGVuYW50IGluZm9ybWF0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3JlYXRlVGVuYW50UGF5bG9hZH0gZWRpdFRlbmFudFBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGVkaXRUZW5hbnQoXHJcbiAgICBlZGl0VGVuYW50UGF5bG9hZDogQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2FwcC9lZGl0VGVuYW50YCxcclxuICAgICAgICBlZGl0VGVuYW50UGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VuZHMgdXBkYXRlIHJlcXVlc3QgdG8gdGhlIHNlcnZlciB0byB1cGRhdGUgdGhlIHRlbmFudCBhcHBsaWNhdGlvbiBzdGF0dXMgdG8gYWN0aXZlL2luYWN0aXZlIHVzaW5nIEh0dHBTZXJ2aWNlIGFuZCByZXR1cm5zIHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHtVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZH0gdXBkYXRlVGVuYW50U3RhdHVzUGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgdXBkYXRlVGVuYW50U3RhdHVzKFxyXG4gICAgdXBkYXRlVGVuYW50U3RhdHVzUGF5bG9hZDogVXBkYXRlVGVuYW50U3RhdHVzUmVxdWVzdFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPFVwZGF0ZVRlbmFudFN0YXR1c1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2FwcC91cGRhdGVTdGF0dXNgLFxyXG4gICAgICAgIHVwZGF0ZVRlbmFudFN0YXR1c1BheWxvYWRcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEl0IGdlbmVyYXRlcyBGZWF0dXJlIGxpc3QgZnJvbSBjaGVja2JveCBvcHRpb25zIGdlbmVyYXRlZCBpbiBmb3JtIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7Q2hlY2tib3hPcHRpb25bXX0gZmVhdHVyZXNcclxuICAgKiBAcmV0dXJuIHtGZWF0dXJlc1tdfVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmVhdHVyZXNMaXN0KGZlYXR1cmVzOiBDaGVja2JveE9wdGlvbltdKTogRmVhdHVyZXNbXSB7XHJcbiAgICB0aGlzLmZlYXR1cmVMaXN0ID0gW107XHJcbiAgICBmZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZTogQ2hlY2tib3hPcHRpb24pID0+IHtcclxuICAgICAgaWYgKGZlYXR1cmUuY2hlY2tlZClcclxuICAgICAgICB0aGlzLmZlYXR1cmVMaXN0Py5wdXNoKHtcclxuICAgICAgICAgIGZlYXR1cmVJZDogZmVhdHVyZT8uaWQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgZmVhdHVyZU5hbWU6IGZlYXR1cmU/Lm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgaXNEZWZhdWx0OiBmZWF0dXJlPy5jaGVja2VkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlTGlzdDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBzb3J0ZWQgcm9sZSBsaXN0IGRhdGEuXHJcbiAgICogQHBhcmFtIHtSb2xlW119IHJvbGVMaXN0XHJcbiAgICogQHJldHVybiB7Um9sZVtdfVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc29ydFJvbGVzQnlSb2xlVHlwZShyb2xlTGlzdDogUm9sZVtdKTogUm9sZVtdIHtcclxuICAgIHJldHVybiByb2xlTGlzdC5zb3J0KChhLCBiKSA9PiBhPy52aWV3T3JkZXIgLSBiPy52aWV3T3JkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBQb3N0cyB0aGUgcm9sZSBkZXRhaWxzIHRvIHNlcnZlciB1c2luZyBIdHRwU2VydmljZSBmb3IgZGVsZXRpbmcgdGhlIHJvbGUuXHJcbiAgICogQHBhcmFtIHtEZWxldGVSb2xlUmVxdWVzdFBheWxvYWR9IGRlbGV0ZVJvbGVSZXF1ZXN0UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGVsZXRlUm9sZVJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGRlbGV0ZVJvbGUoXHJcbiAgICBkZWxldGVSb2xlUGF5bG9hZDogRGVsZXRlUm9sZVJlcXVlc3RQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxEZWxldGVSb2xlUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL3JvbGUvZGVsZXRlUm9sZWAsIGRlbGV0ZVJvbGVQYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -6,6 +6,7 @@ export * from './lib/components/view-tenant-details/view-tenant-details.componen
6
6
  export * from './lib/components/create-tenant-application/create-tenant-application.component';
7
7
  export * from './lib/tenant-applications.component';
8
8
  export * from './lib/components/tenant-basic-details/tenant-basic-details.component';
9
+ export * from './lib/components/create-modify-role/create-modify-role.component';
9
10
  export * from './lib/models/app-type-config.model';
10
11
  export * from './lib/models/app-type.model';
11
12
  export * from './lib/models/tenant.model';
@@ -18,10 +19,12 @@ export * from './lib/models/table-column-schema-view-tenant-list.model';
18
19
  export * from './lib/models/roles-and-permissions.model';
19
20
  export * from './lib/models/update-tenant-status.model';
20
21
  export * from './lib/models/tenant-function-type.model';
22
+ export * from './lib/models/role-type.model';
23
+ export * from './lib/models/role-menu-action.model';
21
24
  export * from './lib/services/tenant-applications.service';
22
25
  export * from './lib/services/tenant-permissions-map.service';
23
26
  export * from './lib/services/tenant-permissions.service';
24
27
  export * from './lib/assets/tenant-validations';
25
28
  export * from './lib/tenant-applications.module';
26
29
  export * from './lib/models/feature-permission-id.model';
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0VBQXNFLENBQUM7QUFFckYsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGVuYW50c1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92aWV3LXRlbmFudHMtbGlzdC92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZpZXctdGVuYW50LWRldGFpbHMvdmlldy10ZW5hbnQtZGV0YWlscy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW5hbnQtYXBwbGljYXRpb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50LWJhc2ljLWRldGFpbHMvdGVuYW50LWJhc2ljLWRldGFpbHMuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBwLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZlYXR1cmVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm91dGUtY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RhYmxlLWNvbHVtbi1zY2hlbWEtdmlldy10ZW5hbnQtbGlzdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb2xlcy1hbmQtcGVybWlzc2lvbnMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXBkYXRlLXRlbmFudC1zdGF0dXMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LXBlcm1pc3Npb25zLW1hcC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LXBlcm1pc3Npb25zLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXNzZXRzL3RlbmFudC12YWxpZGF0aW9ucyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW5hbnQtYXBwbGljYXRpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mZWF0dXJlLXBlcm1pc3Npb24taWQubW9kZWwnO1xyXG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxrRUFBa0UsQ0FBQztBQUVqRixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGVuYW50c1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92aWV3LXRlbmFudHMtbGlzdC92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZpZXctdGVuYW50LWRldGFpbHMvdmlldy10ZW5hbnQtZGV0YWlscy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW5hbnQtYXBwbGljYXRpb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50LWJhc2ljLWRldGFpbHMvdGVuYW50LWJhc2ljLWRldGFpbHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jcmVhdGUtbW9kaWZ5LXJvbGUvY3JlYXRlLW1vZGlmeS1yb2xlLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBwLXR5cGUtY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FwcC10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RlbmFudC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mZWF0dXJlcy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mb3JtLXN0YXR1cy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50cy1wZXJtaXNzaW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JvdXRlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXZpZXctdGVuYW50LWxpc3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VwZGF0ZS10ZW5hbnQtc3RhdHVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JvbGUtdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb2xlLW1lbnUtYWN0aW9uLm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1wZXJtaXNzaW9ucy1tYXAuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy90ZW5hbnQtdmFsaWRhdGlvbnMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LWFwcGxpY2F0aW9ucy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmVhdHVyZS1wZXJtaXNzaW9uLWlkLm1vZGVsJztcclxuIl19