@ieeesa-npm/presentation 0.29.6 → 0.29.8

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.
@@ -157,7 +157,7 @@ export class ListComponent {
157
157
  });
158
158
  }
159
159
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ListComponent, isStandalone: true, selector: "ieeesa-list", inputs: { listDataItems: "listDataItems", listHeaderConfig: "listHeaderConfig", indentation: "indentation", addListButtonConfig: "addListButtonConfig", fileDownloadAndDeleteConfig: "fileDownloadAndDeleteConfig", isReorderRequired: "isReorderRequired" }, outputs: { selectedItemAndAction: "selectedItemAndAction", reorderedList: "reorderedList", hyperLinkAndButtonClick: "hyperLinkAndButtonClick", downloadSelectedFile: "downloadSelectedFile", domChangeEvent: "domChangeEvent" }, ngImport: i0, template: "<div class=\"ieeesa-list-container\">\r\n <div class=\"d-flex\">\r\n <div>\r\n <p *ngIf=\"listHeader?.title\" class=\"ieeesa-title-lg-24 mb-0\">\r\n {{ listHeader.title }}\r\n </p>\r\n <p\r\n *ngIf=\"listHeader?.description\"\r\n class=\"ieeesa-body-md-14 ieeesa-list-description\"\r\n [innerHTML]=\"listHeader.description | safe : safeType\"\r\n ieeesaObserveDomChange\r\n (domChange)=\"onDomChange($event)\"\r\n ></p>\r\n </div>\r\n <ieeesa-icon-button\r\n class=\"ieeesa-add-icon-button\"\r\n *ngIf=\"listHeader?.canShowAddList\"\r\n [iconButton]=\"addListButton\"\r\n (iconButtonClick)=\"onClickAddItem()\"\r\n [ngClass]=\"\r\n addListButton?.disabled\r\n ? 'ieeesa-list-container__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: { $implicit: listItems, itemLevel: 0 }\r\n \"\r\n >\r\n </ng-container>\r\n</div>\r\n<ng-template #recursiveList let-items let-itemLevel=\"itemLevel\">\r\n <ng-container *ngIf=\"isReorderRequired\">\r\n <mat-list\r\n class=\"ieeesa-list-item\"\r\n cdkDropList\r\n cdkDropListData=\"items\"\r\n (cdkDropListDropped)=\"drop($event, items, itemLevel)\"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n [cdkDragData]=\"item\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isReorderRequired\">\r\n <mat-list class=\"ieeesa-list-item\">\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #agendaItem let-item>\r\n <div class=\"ieeesa-list-item-child d-flex\">\r\n <span class=\"ieeesa-list-item__item d-flex\">\r\n <svg class=\"drag-icon\">\r\n <use [attr.xlink:href]=\"dragAndDropIconUrl\"></use>\r\n </svg>\r\n <span class=\"list-number\">\r\n {{ item?.position }}\r\n </span>\r\n <span>\r\n <span class=\"item-name d-block\">{{ item?.title }}</span>\r\n <span class=\"ieeesa-list-item__desc d-block\" *ngIf=\"item?.description\">\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n *ngIf=\"item?.attachments?.length\"\r\n [fileDownloadAndDeleteConfig]=\"fileDownloadAndDeleteConfig\"\r\n [downloadFiles]=\"item?.attachments\"\r\n (downloadSelectedFile)=\"downloadFile($event)\"\r\n ></ieeesa-file-download>\r\n </span>\r\n </span>\r\n <span class=\"ieeesa-menu__action\">\r\n <ieeesa-menu\r\n *ngIf=\"item?.actionMenus\"\r\n class=\"ieeesa-menu__icon\"\r\n [button]=\"item?.actionIcon\"\r\n [menuItems]=\"item?.actionMenus\"\r\n (menuItemClick)=\"selectedMenuAction($event, item)\"\r\n ></ieeesa-menu>\r\n </span>\r\n </div>\r\n</ng-template>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background-color:#fff}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.ieeesa-list-item.cdk-drop-list-dragging .ieeesa-list-item-child:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-icon{display:inline-block;height:20px;width:20px;min-width:20px;fill:#b2b7be}.list-number{margin-right:.5em}.ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-item__root-level-item .list-number,.ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__subitem .list-number,.ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-item-child{width:100%}.ieeesa-list-container .ieeesa-add-icon-button{margin-left:auto;align-self:center}.ieeesa-list-container .ieeesa-add-icon-button .ieeesa-icon-button{padding:0}.ieeesa-list-container .ieeesa-list-description{color:#49454f!important}.ieeesa-list-container .ieeesa-list-description a{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#00629b!important;letter-spacing:.03125em}.ieeesa-list-container .ieeesa-list-description a.disable-link{pointer-events:none;color:#63666a!important}.ieeesa-list-container__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-list-container .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-container .ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-container .ieeesa-list-item__root-level-item .list-number,.ieeesa-list-container .ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__subitem .list-number,.ieeesa-list-container .ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-container .ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-container .ieeesa-list-item-child{width:100%}.ieeesa-menu__action{margin-left:auto}.ieeesa-menu__icon{float:right}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}@media (max-width: 767px){.ieeesa-list-container .ieeesa-menu__button{top:5px}}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatListModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i2.MatList; }), selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i0.forwardRef(function () { return i2.MatListItem; }), selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatButtonModule; }) }, { kind: "component", type: i0.forwardRef(function () { return MenuComponent; }), selector: "ieeesa-menu", inputs: ["menuItems", "button", "defaultIconSize", "isMarginBottomZero"], outputs: ["menuToggleButtonElement", "menuItemClick"] }, { kind: "component", type: i0.forwardRef(function () { return IconButtonComponent; }), selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }, { kind: "component", type: i0.forwardRef(function () { return FileDownloadComponent; }), selector: "ieeesa-file-download", inputs: ["downloadFiles", "fileDownloadAndDeleteConfig", "isPublicAPI", "domainUrl", "apiBaseUrl"], outputs: ["downloadSelectedFile", "deleteSelectedFile"] }, { kind: "pipe", type: i0.forwardRef(function () { return SafePipe; }), name: "safe" }, { kind: "directive", type: i0.forwardRef(function () { return ObserveDomChangeDirective; }), selector: "[ieeesaObserveDomChange]", inputs: ["isSubTreeAttributeNeeded", "observedElementClassName"], outputs: ["domChange", "domNodesChange"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return DragDropModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.CdkDropList; }), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.CdkDrag; }), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], encapsulation: i0.ViewEncapsulation.None }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ListComponent, isStandalone: true, selector: "ieeesa-list", inputs: { listDataItems: "listDataItems", listHeaderConfig: "listHeaderConfig", indentation: "indentation", addListButtonConfig: "addListButtonConfig", fileDownloadAndDeleteConfig: "fileDownloadAndDeleteConfig", isReorderRequired: "isReorderRequired" }, outputs: { selectedItemAndAction: "selectedItemAndAction", reorderedList: "reorderedList", hyperLinkAndButtonClick: "hyperLinkAndButtonClick", downloadSelectedFile: "downloadSelectedFile", domChangeEvent: "domChangeEvent" }, ngImport: i0, template: "<div class=\"ieeesa-list-container\">\r\n <div class=\"d-flex\">\r\n <div>\r\n <p *ngIf=\"listHeader?.title\" class=\"ieeesa-title-lg-24 mb-0\">\r\n {{ listHeader.title }}\r\n </p>\r\n <p\r\n *ngIf=\"listHeader?.description\"\r\n class=\"ieeesa-body-md-14 ieeesa-list-description\"\r\n [innerHTML]=\"listHeader.description | safe : safeType\"\r\n ieeesaObserveDomChange\r\n (domChange)=\"onDomChange($event)\"\r\n ></p>\r\n </div>\r\n <ieeesa-icon-button\r\n class=\"ieeesa-add-icon-button\"\r\n *ngIf=\"listHeader?.canShowAddList\"\r\n [iconButton]=\"addListButton\"\r\n (iconButtonClick)=\"onClickAddItem()\"\r\n [ngClass]=\"\r\n addListButton?.disabled\r\n ? 'ieeesa-list-container__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: { $implicit: listItems, itemLevel: 0 }\r\n \"\r\n >\r\n </ng-container>\r\n</div>\r\n<ng-template #recursiveList let-items let-itemLevel=\"itemLevel\">\r\n <ng-container *ngIf=\"isReorderRequired\">\r\n <mat-list\r\n class=\"ieeesa-list-item\"\r\n cdkDropList\r\n cdkDropListData=\"items\"\r\n (cdkDropListDropped)=\"drop($event, items, itemLevel)\"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n [cdkDragData]=\"item\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isReorderRequired\">\r\n <mat-list class=\"ieeesa-list-item\">\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #agendaItem let-item>\r\n <div class=\"ieeesa-list-item-child d-flex\">\r\n <span class=\"ieeesa-list-item__item d-flex\">\r\n <svg class=\"drag-icon\">\r\n <use [attr.xlink:href]=\"dragAndDropIconUrl\"></use>\r\n </svg>\r\n <span class=\"list-number\">\r\n {{ item?.position }}\r\n </span>\r\n <span>\r\n <span class=\"item-name d-block\">{{ item?.title }}</span>\r\n <span class=\"ieeesa-list-item__desc d-block\" *ngIf=\"item?.description\">\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n class=\"ieeesa-list-item__list-file-download\"\r\n *ngIf=\"item?.attachments?.length\"\r\n [fileDownloadAndDeleteConfig]=\"fileDownloadAndDeleteConfig\"\r\n [downloadFiles]=\"item?.attachments\"\r\n (downloadSelectedFile)=\"downloadFile($event)\"\r\n ></ieeesa-file-download>\r\n </span>\r\n </span>\r\n <span class=\"ieeesa-menu__action\">\r\n <ieeesa-menu\r\n *ngIf=\"item?.actionMenus\"\r\n class=\"ieeesa-menu__icon\"\r\n [button]=\"item?.actionIcon\"\r\n [menuItems]=\"item?.actionMenus\"\r\n (menuItemClick)=\"selectedMenuAction($event, item)\"\r\n ></ieeesa-menu>\r\n </span>\r\n </div>\r\n</ng-template>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background-color:#fff}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.ieeesa-list-item.cdk-drop-list-dragging .ieeesa-list-item-child:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-icon{display:inline-block;height:20px;width:20px;min-width:20px;fill:#b2b7be}.list-number{margin-right:.5em}.ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-item__root-level-item .list-number,.ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__subitem .list-number,.ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-item__list-file-download{display:flex;width:100%}.ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-item-child{width:100%}.ieeesa-list-container .ieeesa-add-icon-button{margin-left:auto;align-self:center}.ieeesa-list-container .ieeesa-add-icon-button .ieeesa-icon-button{padding:0}.ieeesa-list-container .ieeesa-list-description{color:#49454f!important}.ieeesa-list-container .ieeesa-list-description a{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#00629b!important;letter-spacing:.03125em}.ieeesa-list-container .ieeesa-list-description a.disable-link{pointer-events:none;color:#63666a!important}.ieeesa-list-container__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-list-container .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-container .ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-container .ieeesa-list-item__root-level-item .list-number,.ieeesa-list-container .ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__subitem .list-number,.ieeesa-list-container .ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-container .ieeesa-list-item__list-file-download{display:flex;width:100%}.ieeesa-list-container .ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-container .ieeesa-list-item-child{width:100%}.ieeesa-menu__action{margin-left:auto}.ieeesa-menu__icon{float:right}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}@media (max-width: 767px){.ieeesa-list-container .ieeesa-menu__button{top:5px}}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatListModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i2.MatList; }), selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i0.forwardRef(function () { return i2.MatListItem; }), selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatButtonModule; }) }, { kind: "component", type: i0.forwardRef(function () { return MenuComponent; }), selector: "ieeesa-menu", inputs: ["menuItems", "button", "defaultIconSize", "isMarginBottomZero"], outputs: ["menuToggleButtonElement", "menuItemClick"] }, { kind: "component", type: i0.forwardRef(function () { return IconButtonComponent; }), selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }, { kind: "component", type: i0.forwardRef(function () { return FileDownloadComponent; }), selector: "ieeesa-file-download", inputs: ["downloadFiles", "fileDownloadAndDeleteConfig", "isPublicAPI", "domainUrl", "apiBaseUrl"], outputs: ["downloadSelectedFile", "deleteSelectedFile"] }, { kind: "pipe", type: i0.forwardRef(function () { return SafePipe; }), name: "safe" }, { kind: "directive", type: i0.forwardRef(function () { return ObserveDomChangeDirective; }), selector: "[ieeesaObserveDomChange]", inputs: ["isSubTreeAttributeNeeded", "observedElementClassName"], outputs: ["domChange", "domNodesChange"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return DragDropModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.CdkDropList; }), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.CdkDrag; }), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], encapsulation: i0.ViewEncapsulation.None }); }
161
161
  }
162
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
163
163
  type: Component,
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
171
171
  forwardRef(() => SafePipe),
172
172
  ObserveDomChangeDirective,
173
173
  DragDropModule,
174
- ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-list-container\">\r\n <div class=\"d-flex\">\r\n <div>\r\n <p *ngIf=\"listHeader?.title\" class=\"ieeesa-title-lg-24 mb-0\">\r\n {{ listHeader.title }}\r\n </p>\r\n <p\r\n *ngIf=\"listHeader?.description\"\r\n class=\"ieeesa-body-md-14 ieeesa-list-description\"\r\n [innerHTML]=\"listHeader.description | safe : safeType\"\r\n ieeesaObserveDomChange\r\n (domChange)=\"onDomChange($event)\"\r\n ></p>\r\n </div>\r\n <ieeesa-icon-button\r\n class=\"ieeesa-add-icon-button\"\r\n *ngIf=\"listHeader?.canShowAddList\"\r\n [iconButton]=\"addListButton\"\r\n (iconButtonClick)=\"onClickAddItem()\"\r\n [ngClass]=\"\r\n addListButton?.disabled\r\n ? 'ieeesa-list-container__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: { $implicit: listItems, itemLevel: 0 }\r\n \"\r\n >\r\n </ng-container>\r\n</div>\r\n<ng-template #recursiveList let-items let-itemLevel=\"itemLevel\">\r\n <ng-container *ngIf=\"isReorderRequired\">\r\n <mat-list\r\n class=\"ieeesa-list-item\"\r\n cdkDropList\r\n cdkDropListData=\"items\"\r\n (cdkDropListDropped)=\"drop($event, items, itemLevel)\"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n [cdkDragData]=\"item\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isReorderRequired\">\r\n <mat-list class=\"ieeesa-list-item\">\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #agendaItem let-item>\r\n <div class=\"ieeesa-list-item-child d-flex\">\r\n <span class=\"ieeesa-list-item__item d-flex\">\r\n <svg class=\"drag-icon\">\r\n <use [attr.xlink:href]=\"dragAndDropIconUrl\"></use>\r\n </svg>\r\n <span class=\"list-number\">\r\n {{ item?.position }}\r\n </span>\r\n <span>\r\n <span class=\"item-name d-block\">{{ item?.title }}</span>\r\n <span class=\"ieeesa-list-item__desc d-block\" *ngIf=\"item?.description\">\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n *ngIf=\"item?.attachments?.length\"\r\n [fileDownloadAndDeleteConfig]=\"fileDownloadAndDeleteConfig\"\r\n [downloadFiles]=\"item?.attachments\"\r\n (downloadSelectedFile)=\"downloadFile($event)\"\r\n ></ieeesa-file-download>\r\n </span>\r\n </span>\r\n <span class=\"ieeesa-menu__action\">\r\n <ieeesa-menu\r\n *ngIf=\"item?.actionMenus\"\r\n class=\"ieeesa-menu__icon\"\r\n [button]=\"item?.actionIcon\"\r\n [menuItems]=\"item?.actionMenus\"\r\n (menuItemClick)=\"selectedMenuAction($event, item)\"\r\n ></ieeesa-menu>\r\n </span>\r\n </div>\r\n</ng-template>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background-color:#fff}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.ieeesa-list-item.cdk-drop-list-dragging .ieeesa-list-item-child:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-icon{display:inline-block;height:20px;width:20px;min-width:20px;fill:#b2b7be}.list-number{margin-right:.5em}.ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-item__root-level-item .list-number,.ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__subitem .list-number,.ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-item-child{width:100%}.ieeesa-list-container .ieeesa-add-icon-button{margin-left:auto;align-self:center}.ieeesa-list-container .ieeesa-add-icon-button .ieeesa-icon-button{padding:0}.ieeesa-list-container .ieeesa-list-description{color:#49454f!important}.ieeesa-list-container .ieeesa-list-description a{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#00629b!important;letter-spacing:.03125em}.ieeesa-list-container .ieeesa-list-description a.disable-link{pointer-events:none;color:#63666a!important}.ieeesa-list-container__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-list-container .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-container .ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-container .ieeesa-list-item__root-level-item .list-number,.ieeesa-list-container .ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__subitem .list-number,.ieeesa-list-container .ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-container .ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-container .ieeesa-list-item-child{width:100%}.ieeesa-menu__action{margin-left:auto}.ieeesa-menu__icon{float:right}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}@media (max-width: 767px){.ieeesa-list-container .ieeesa-menu__button{top:5px}}\n"] }]
174
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-list-container\">\r\n <div class=\"d-flex\">\r\n <div>\r\n <p *ngIf=\"listHeader?.title\" class=\"ieeesa-title-lg-24 mb-0\">\r\n {{ listHeader.title }}\r\n </p>\r\n <p\r\n *ngIf=\"listHeader?.description\"\r\n class=\"ieeesa-body-md-14 ieeesa-list-description\"\r\n [innerHTML]=\"listHeader.description | safe : safeType\"\r\n ieeesaObserveDomChange\r\n (domChange)=\"onDomChange($event)\"\r\n ></p>\r\n </div>\r\n <ieeesa-icon-button\r\n class=\"ieeesa-add-icon-button\"\r\n *ngIf=\"listHeader?.canShowAddList\"\r\n [iconButton]=\"addListButton\"\r\n (iconButtonClick)=\"onClickAddItem()\"\r\n [ngClass]=\"\r\n addListButton?.disabled\r\n ? 'ieeesa-list-container__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n </div>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: { $implicit: listItems, itemLevel: 0 }\r\n \"\r\n >\r\n </ng-container>\r\n</div>\r\n<ng-template #recursiveList let-items let-itemLevel=\"itemLevel\">\r\n <ng-container *ngIf=\"isReorderRequired\">\r\n <mat-list\r\n class=\"ieeesa-list-item\"\r\n cdkDropList\r\n cdkDropListData=\"items\"\r\n (cdkDropListDropped)=\"drop($event, items, itemLevel)\"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n [cdkDragData]=\"item\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isReorderRequired\">\r\n <mat-list class=\"ieeesa-list-item\">\r\n <ng-container\r\n *ngFor=\"let item of items; let index = index; trackBy: trackByFn\"\r\n >\r\n <div\r\n class=\"ieeesa-list-item-container d-flex\"\r\n [style.marginLeft.px]=\"itemLevel * indentation\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"{\r\n 'ieeesa-list-item__root-level-item': itemLevel === 0,\r\n 'ieeesa-list-item__subitem': itemLevel > 0\r\n }\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"agendaItem; context: { $implicit: item }\"\r\n ></ng-container>\r\n </mat-list-item>\r\n </div>\r\n <ng-container *ngIf=\"item?.subItems\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n recursiveList;\r\n context: {\r\n $implicit: item.subItems,\r\n itemLevel: itemLevel + 1\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-list>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #agendaItem let-item>\r\n <div class=\"ieeesa-list-item-child d-flex\">\r\n <span class=\"ieeesa-list-item__item d-flex\">\r\n <svg class=\"drag-icon\">\r\n <use [attr.xlink:href]=\"dragAndDropIconUrl\"></use>\r\n </svg>\r\n <span class=\"list-number\">\r\n {{ item?.position }}\r\n </span>\r\n <span>\r\n <span class=\"item-name d-block\">{{ item?.title }}</span>\r\n <span class=\"ieeesa-list-item__desc d-block\" *ngIf=\"item?.description\">\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n class=\"ieeesa-list-item__list-file-download\"\r\n *ngIf=\"item?.attachments?.length\"\r\n [fileDownloadAndDeleteConfig]=\"fileDownloadAndDeleteConfig\"\r\n [downloadFiles]=\"item?.attachments\"\r\n (downloadSelectedFile)=\"downloadFile($event)\"\r\n ></ieeesa-file-download>\r\n </span>\r\n </span>\r\n <span class=\"ieeesa-menu__action\">\r\n <ieeesa-menu\r\n *ngIf=\"item?.actionMenus\"\r\n class=\"ieeesa-menu__icon\"\r\n [button]=\"item?.actionIcon\"\r\n [menuItems]=\"item?.actionMenus\"\r\n (menuItemClick)=\"selectedMenuAction($event, item)\"\r\n ></ieeesa-menu>\r\n </span>\r\n </div>\r\n</ng-template>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background-color:#fff}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.ieeesa-list-item.cdk-drop-list-dragging .ieeesa-list-item-child:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-icon{display:inline-block;height:20px;width:20px;min-width:20px;fill:#b2b7be}.list-number{margin-right:.5em}.ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-item__root-level-item .list-number,.ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__subitem .list-number,.ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-item__list-file-download{display:flex;width:100%}.ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-item-child{width:100%}.ieeesa-list-container .ieeesa-add-icon-button{margin-left:auto;align-self:center}.ieeesa-list-container .ieeesa-add-icon-button .ieeesa-icon-button{padding:0}.ieeesa-list-container .ieeesa-list-description{color:#49454f!important}.ieeesa-list-container .ieeesa-list-description a{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#00629b!important;letter-spacing:.03125em}.ieeesa-list-container .ieeesa-list-description a.disable-link{pointer-events:none;color:#63666a!important}.ieeesa-list-container__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-list-container .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item{background-color:#f4f5f7;padding:1px 0 0}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container{box-sizing:border-box;border-radius:.25em;background-color:#fff;border-left:.125rem solid #b2b7be;margin-bottom:.0625em;box-shadow:0 1px 2px #0003;min-height:2em;height:auto}.ieeesa-list-container .ieeesa-list-item .ieeesa-list-item-container:has(.ieeesa-list-item__root-level-item){border-left:.125rem solid #00b5e2}.ieeesa-list-container .ieeesa-list-item .mdc-list-item{padding:0;margin-left:.375em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content{padding:0;margin-top:5px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content:has(.ieeesa-list-item__desc){margin:.4375em 0}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__icon .mdc-icon-button{height:1.5em;width:1.5em;margin-right:.3em}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__content .ieeesa-menu__button{position:relative;left:2px;bottom:2px}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text:has(.ieeesa-list-item__desc){align-items:flex-start!important}.ieeesa-list-container .ieeesa-list-item__root-level-item .list-number,.ieeesa-list-container .ieeesa-list-item__root-level-item .item-name{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__subitem .list-number,.ieeesa-list-container .ieeesa-list-item__subitem .item-name{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1d1e!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap}.ieeesa-list-container .ieeesa-list-item__desc{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#63666a!important;letter-spacing:.03125em;text-align:left;text-wrap:wrap!important;word-break:break-word}.ieeesa-list-container .ieeesa-list-item__list-file-download{display:flex;width:100%}.ieeesa-list-container .ieeesa-list-item .list-number{margin-right:.5em}.ieeesa-list-container .ieeesa-list-item .item-name{word-break:break-word}.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-one-line,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-two-lines,.ieeesa-list-container .ieeesa-list-item .mdc-list-item.mdc-list-item--with-three-lines{height:auto}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__secondary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-two-lines .mdc-list-item__primary-text:before,.ieeesa-list-container .ieeesa-list-item .mdc-list-item--with-three-lines .mdc-list-item__primary-text:before{display:none}.ieeesa-list-container .ieeesa-list-item .mdc-list-item__primary-text{display:flex}.ieeesa-list-container .ieeesa-list-item-child{width:100%}.ieeesa-menu__action{margin-left:auto}.ieeesa-menu__icon{float:right}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}@media (max-width: 767px){.ieeesa-list-container .ieeesa-menu__button{top:5px}}\n"] }]
175
175
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { selectedItemAndAction: [{
176
176
  type: Output
177
177
  }], reorderedList: [{
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
195
195
  }], isReorderRequired: [{
196
196
  type: Input
197
197
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBRUwsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFtQmhDLE1BQU0sT0FBTyxhQUFhO0lBUXhCLElBQ0ksYUFBYSxDQUFDLFFBQW9CO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFC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LGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDMUIseUJBQXlCO3dCQUN6QixjQUFjO3FCQUNmLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7aUdBSzNCLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFJRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVILGFBQWE7c0JBRGhCLEtBQUs7Z0JBU0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQU9JLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBR0UsV0FBVztzQkFBbkIsS0FBSztnQkFLRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBT0ksY0FBYztzQkFBdkIsTUFBTTtnQkFHSCwyQkFBMkI7c0JBRDlCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IExpc3RIZWFkZXIsIExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudSB9IGZyb20gJy4uLy4uL21vZGVscy9tZW51Lm1vZGVsJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBTYWZlUGlwZSwgU2FmZVR5cGUgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uL21vZGVscy9pY29uLWJ1dHRvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmVEb21DaGFuZ2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL29ic2VydmUtZG9tLWNoYW5nZS9vYnNlcnZlLWRvbS1jaGFuZ2UuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtZG93bmxvYWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvd25sb2FkQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9kb3dubG9hZC1maWxlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBDZGtEcmFnRHJvcCxcclxuICBEcmFnRHJvcE1vZHVsZSxcclxuICBtb3ZlSXRlbUluQXJyYXksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1lbnVDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRmlsZURvd25sb2FkQ29tcG9uZW50LFxyXG4gICAgZm9yd2FyZFJlZigoKSA9PiBTYWZlUGlwZSksXHJcbiAgICBPYnNlcnZlRG9tQ2hhbmdlRGlyZWN0aXZlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBsaXN0SXRlbXMhOiBMaXN0SXRlbVtdO1xyXG4gIGxpc3RIZWFkZXIhOiBMaXN0SGVhZGVyO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEl0ZW1BbmRBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHNlbGVjdGVkTWVudTogTWVudTtcclxuICAgIHNlbGVjdGVkSXRlbTogTGlzdEl0ZW07XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgcmVvcmRlcmVkTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1bXT4oKTtcclxuICBASW5wdXQoKVxyXG4gIHNldCBsaXN0RGF0YUl0ZW1zKGxpc3RJdGVtOiBMaXN0SXRlbVtdKSB7XHJcbiAgICB0aGlzLmxpc3RJdGVtcyA9IGxpc3RJdGVtO1xyXG4gICAgdGhpcy5nZXRMaXN0SXRlbXNQb3NpdGlvbkFuZExldmVsKHRoaXMubGlzdEl0ZW1zLCAwKTtcclxuICB9XHJcbiAgZ2V0IGxpc3REYXRhSXRlbXMoKTogTGlzdEl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGxpc3RIZWFkZXJDb25maWcobGlzdEhlYWRlckRldGFpbDogTGlzdEhlYWRlcikge1xyXG4gICAgdGhpcy5saXN0SGVhZGVyID0gbGlzdEhlYWRlckRldGFpbDtcclxuICB9XHJcbiAgZ2V0IGxpc3RIZWFkZXJDb25maWcoKTogTGlzdEhlYWRlciB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0SGVhZGVyO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBkb3dubG9hZFNlbGVjdGVkRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZSB8IERvd25sb2FkQXR0YWNobWVudD4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIEBJbnB1dCgpIGluZGVudGF0aW9uID0gdGhpcy5jb25zdGFudHM/Lmxpc3Q/LmRlZmF1bHRJbmRlbnRhdGlvbjtcclxuICBkcmFnQW5kRHJvcEljb25VcmwgPSB0aGlzLmNvbnN0YW50cz8ubGlzdD8uZHJhZ0FuZERyb3BJY29uVXJsO1xyXG4gIGFkZExpc3RCdXR0b24hOiBJY29uQnV0dG9uO1xyXG4gIHNhZmVUeXBlOiBzdHJpbmcgPSBTYWZlVHlwZS5IVE1MO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGFkZExpc3RCdXR0b25Db25maWcoYWRkTGlzdEJ1dHRvbjogSWNvbkJ1dHRvbikge1xyXG4gICAgdGhpcy5hZGRMaXN0QnV0dG9uID0gYWRkTGlzdEJ1dHRvbjtcclxuICB9XHJcbiAgZ2V0IGFkZExpc3RCdXR0b25Db25maWcoKTogSWNvbkJ1dHRvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRMaXN0QnV0dG9uO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgZG9tQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE11dGF0aW9uUmVjb3JkPigpO1xyXG4gIHByaXZhdGUgX2ZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZyE6IEZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcodmFsdWU6IEZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZykge1xyXG4gICAgdGhpcy5fZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcoKTogRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlRG93bmxvYWRBbmREZWxldGVDb25maWc7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGlzUmVvcmRlclJlcXVpcmVkID0gZmFsc2U7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGh5cGVyTGlua0FuZEJ1dHRvbkNsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGh5cGVyIGxpbmsuXHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQW5jaG9yRWxlbWVudENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGluZGV4IHBvc2l0aW9uL251bWJlciBhbmQgaXRlbUxldmVsIGZvciBlYWNoIGxpc3QgaXRlbS5cclxuICAgKiBAcGFyYW0ge0xpc3RJdGVtW119IGl0ZW1zXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1MZXZlbFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyZW50SW5kZXhdXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRMaXN0SXRlbXNQb3NpdGlvbkFuZExldmVsKFxyXG4gICAgaXRlbXM6IExpc3RJdGVtW10sXHJcbiAgICBpdGVtTGV2ZWw6IG51bWJlcixcclxuICAgIHBhcmVudEluZGV4Pzogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBwYXJlbnRJbmRleCA/IHBhcmVudEluZGV4LnNsaWNlKC0xKSA9PT0gJy4nID8gYCR7cGFyZW50SW5kZXh9JHtpbmRleCArIDF9YCA6IGAke3BhcmVudEluZGV4fS4ke2luZGV4ICsgMX1gIDogYCR7aW5kZXggKyAxfS5gO1xyXG4gICAgICBpdGVtLnBvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgICAgIGl0ZW0uaXRlbUxldmVsID0gaXRlbUxldmVsO1xyXG4gICAgICBjb25zdCByZW9yZGVyZWRSYW5rID0gaXNOYU4oK3Bvc2l0aW9uLnNsaWNlKHBvc2l0aW9uLmxlbmd0aCAtIDEpKVxyXG4gICAgICAgID8gK3Bvc2l0aW9uLnNsaWNlKDAsIHBvc2l0aW9uPy5sZW5ndGggLSAxKVxyXG4gICAgICAgIDogK3Bvc2l0aW9uLnNsaWNlKHBvc2l0aW9uPy5sYXN0SW5kZXhPZignLicpICsgMSk7XHJcbiAgICAgIGl0ZW0ucmVvcmRlcmVkUmFuayA9IHJlb3JkZXJlZFJhbms7XHJcbiAgICAgIGlmIChpdGVtLnN1Ykl0ZW1zKVxyXG4gICAgICAgIHRoaXMuZ2V0TGlzdEl0ZW1zUG9zaXRpb25BbmRMZXZlbChcclxuICAgICAgICAgIGl0ZW0uc3ViSXRlbXMsXHJcbiAgICAgICAgICBpdGVtTGV2ZWwgKyAxLFxyXG4gICAgICAgICAgcG9zaXRpb25cclxuICAgICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBzZWxlY3RlZCBtZW51IGFjdGlvbiBhbmQgdGhlIGl0ZW0uXHJcbiAgICogQHBhcmFtIHtNZW51fSBldmVudFxyXG4gICAqIEBwYXJhbSB7TGlzdEl0ZW19IGl0ZW1cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNlbGVjdGVkTWVudUFjdGlvbihldmVudDogTWVudSwgaXRlbTogTGlzdEl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtQW5kQWN0aW9uLmVtaXQoe1xyXG4gICAgICBzZWxlY3RlZE1lbnU6IGV2ZW50LFxyXG4gICAgICBzZWxlY3RlZEl0ZW06IGl0ZW0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtMaXN0SXRlbX0gaXRlbVxyXG4gICAqIEByZXR1cm4geyhudW1iZXIgfCBzdHJpbmcpfVxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IExpc3RJdGVtKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyBoeXBlckxpbmtBbmRCdXR0b25DbGljayBldmVudCBvbiBjbGljayBvZiBidXR0b24uXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvbkNsaWNrQWRkSXRlbSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBBZGRzIGNsaWNrIGV2ZW50IHRvIHRoZSBhbmNob3IgdGFncyB3aGVuZXZlciBkb20gY2hhbmdlcy5cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRG9tQ2hhbmdlKGV2ZW50OiBNdXRhdGlvblJlY29yZCkge1xyXG4gICAgY29uc3QgYW5jaG9yVGFncyA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbCgnYScpO1xyXG4gICAgYW5jaG9yVGFncz8uZm9yRWFjaCgoYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCkgPT4ge1xyXG4gICAgICBhbmNob3IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uQW5jaG9yRWxlbWVudENsaWNrLmJpbmQodGhpcykpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRvbUNoYW5nZUV2ZW50LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyBkb3dubG9hZFNlbGVjdGVkRmlsZSBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRvd25sb2FkRmlsZShmaWxlOiBGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmRvd25sb2FkU2VsZWN0ZWRGaWxlLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRyaWdnZXJzIHdoZW4gdGhlIGl0ZW0gaXMgZHJvcHBlZC5cclxuICAgKiBAcGFyYW0ge0Nka0RyYWdEcm9wfSBldmVudFxyXG4gICAqIEBwYXJhbSB7TGlzdEl0ZW1bXX0gaXRlbXNcclxuICAgKiBAcGFyYW0ge251bWJlcn0gbmVzdGluZ0xldmVsXHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+LCBpdGVtczogTGlzdEl0ZW1bXSwgbmVzdGluZ0xldmVsOiBudW1iZXIpIHtcclxuICAgIGlmIChldmVudD8ucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50Py5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGl0ZW1zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmN1cnJlbnRJbmRleCAhPT0gZXZlbnQucHJldmlvdXNJbmRleCkge1xyXG4gICAgICB0aGlzLmdldExpc3RJdGVtc1Bvc2l0aW9uQW5kTGV2ZWwodGhpcy5saXN0SXRlbXMsIG5lc3RpbmdMZXZlbCk7XHJcbiAgICAgIHRoaXMucmVvcmRlcmVkTGlzdC5lbWl0KGl0ZW1zKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZpbmcgdGhlIGV2ZW50IGxpc3RlbmVycyBvbiBkZXN0cm95LlxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbmNob3JUYWdzID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XHJcbiAgICBhbmNob3JUYWdzPy5mb3JFYWNoKChhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50KSA9PiB7XHJcbiAgICAgIGFuY2hvci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25BbmNob3JFbGVtZW50Q2xpY2spO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtbGlzdC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8cCAqbmdJZj1cImxpc3RIZWFkZXI/LnRpdGxlXCIgY2xhc3M9XCJpZWVlc2EtdGl0bGUtbGctMjQgbWItMFwiPlxyXG4gICAgICAgIHt7IGxpc3RIZWFkZXIudGl0bGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8cFxyXG4gICAgICAgICpuZ0lmPVwibGlzdEhlYWRlcj8uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWJvZHktbWQtMTQgaWVlZXNhLWxpc3QtZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwibGlzdEhlYWRlci5kZXNjcmlwdGlvbiB8IHNhZmUgOiBzYWZlVHlwZVwiXHJcbiAgICAgICAgaWVlZXNhT2JzZXJ2ZURvbUNoYW5nZVxyXG4gICAgICAgIChkb21DaGFuZ2UpPVwib25Eb21DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID48L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgY2xhc3M9XCJpZWVlc2EtYWRkLWljb24tYnV0dG9uXCJcclxuICAgICAgKm5nSWY9XCJsaXN0SGVhZGVyPy5jYW5TaG93QWRkTGlzdFwiXHJcbiAgICAgIFtpY29uQnV0dG9uXT1cImFkZExpc3RCdXR0b25cIlxyXG4gICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uQ2xpY2tBZGRJdGVtKClcIlxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICBhZGRMaXN0QnV0dG9uPy5kaXNhYmxlZFxyXG4gICAgICAgICAgPyAnaWVlZXNhLWxpc3QtY29udGFpbmVyX19hY3Rpb25zLS1kaXNhYmxlZCdcclxuICAgICAgICAgIDogJydcclxuICAgICAgXCJcclxuICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgcmVjdXJzaXZlTGlzdDtcclxuICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGxpc3RJdGVtcywgaXRlbUxldmVsOiAwIH1cclxuICAgIFwiXHJcbiAgPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNyZWN1cnNpdmVMaXN0IGxldC1pdGVtcyBsZXQtaXRlbUxldmVsPVwiaXRlbUxldmVsXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVvcmRlclJlcXVpcmVkXCI+XHJcbiAgICA8bWF0LWxpc3RcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtXCJcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgY2RrRHJvcExpc3REYXRhPVwiaXRlbXNcIlxyXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBpdGVtcywgaXRlbUxldmVsKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW0tY29udGFpbmVyIGQtZmxleFwiXHJcbiAgICAgICAgICBbc3R5bGUubWFyZ2luTGVmdC5weF09XCJpdGVtTGV2ZWwgKiBpbmRlbnRhdGlvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1saXN0LWl0ZW1cclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19yb290LWxldmVsLWl0ZW0nOiBpdGVtTGV2ZWwgPT09IDAsXHJcbiAgICAgICAgICAgICAgJ2llZWVzYS1saXN0LWl0ZW1fX3N1Yml0ZW0nOiBpdGVtTGV2ZWwgPiAwXHJcbiAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFnZW5kYUl0ZW07IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LnN1Ykl0ZW1zXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgcmVjdXJzaXZlTGlzdDtcclxuICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0uc3ViSXRlbXMsXHJcbiAgICAgICAgICAgICAgICBpdGVtTGV2ZWw6IGl0ZW1MZXZlbCArIDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1saXN0PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNSZW9yZGVyUmVxdWlyZWRcIj5cclxuICAgIDxtYXQtbGlzdCBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW1cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWxpc3QtaXRlbS1jb250YWluZXIgZC1mbGV4XCJcclxuICAgICAgICAgIFtzdHlsZS5tYXJnaW5MZWZ0LnB4XT1cIml0ZW1MZXZlbCAqIGluZGVudGF0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbVxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgJ2llZWVzYS1saXN0LWl0ZW1fX3Jvb3QtbGV2ZWwtaXRlbSc6IGl0ZW1MZXZlbCA9PT0gMCxcclxuICAgICAgICAgICAgICAnaWVlZXNhLWxpc3QtaXRlbV9fc3ViaXRlbSc6IGl0ZW1MZXZlbCA+IDBcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFnZW5kYUl0ZW07IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LnN1Ykl0ZW1zXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgcmVjdXJzaXZlTGlzdDtcclxuICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0uc3ViSXRlbXMsXHJcbiAgICAgICAgICAgICAgICBpdGVtTGV2ZWw6IGl0ZW1MZXZlbCArIDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1saXN0PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2FnZW5kYUl0ZW0gbGV0LWl0ZW0+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW0tY2hpbGQgZC1mbGV4XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW1fX2l0ZW0gZC1mbGV4XCI+XHJcbiAgICAgIDxzdmcgY2xhc3M9XCJkcmFnLWljb25cIj5cclxuICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwiZHJhZ0FuZERyb3BJY29uVXJsXCI+PC91c2U+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImxpc3QtbnVtYmVyXCI+XHJcbiAgICAgICAge3sgaXRlbT8ucG9zaXRpb24gfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZSBkLWJsb2NrXCI+e3sgaXRlbT8udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtX19kZXNjIGQtYmxvY2tcIiAqbmdJZj1cIml0ZW0/LmRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICB7eyBpdGVtPy5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8aWVlZXNhLWZpbGUtZG93bmxvYWRcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbT8uYXR0YWNobWVudHM/Lmxlbmd0aFwiXHJcbiAgICAgICAgICBbZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnXT1cImZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZ1wiXHJcbiAgICAgICAgICBbZG93bmxvYWRGaWxlc109XCJpdGVtPy5hdHRhY2htZW50c1wiXHJcbiAgICAgICAgICAoZG93bmxvYWRTZWxlY3RlZEZpbGUpPVwiZG93bmxvYWRGaWxlKCRldmVudClcIlxyXG4gICAgICAgID48L2llZWVzYS1maWxlLWRvd25sb2FkPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1tZW51X19hY3Rpb25cIj5cclxuICAgICAgPGllZWVzYS1tZW51XHJcbiAgICAgICAgKm5nSWY9XCJpdGVtPy5hY3Rpb25NZW51c1wiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtbWVudV9faWNvblwiXHJcbiAgICAgICAgW2J1dHRvbl09XCJpdGVtPy5hY3Rpb25JY29uXCJcclxuICAgICAgICBbbWVudUl0ZW1zXT1cIml0ZW0/LmFjdGlvbk1lbnVzXCJcclxuICAgICAgICAobWVudUl0ZW1DbGljayk9XCJzZWxlY3RlZE1lbnVBY3Rpb24oJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgID48L2llZWVzYS1tZW51PlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBRUwsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFtQmhDLE1BQU0sT0FBTyxhQUFhO0lBUXhCLElBQ0ksYUFBYSxDQUFDLFFBQW9CO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFC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ZUFBZTt3QkFDZixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO3dCQUMxQix5QkFBeUI7d0JBQ3pCLGNBQWM7cUJBQ2YsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTtpR0FLM0IscUJBQXFCO3NCQUE5QixNQUFNO2dCQUlHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUgsYUFBYTtzQkFEaEIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBT0ksdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFLRSxXQUFXO3NCQUFuQixLQUFLO2dCQUtGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFPSSxjQUFjO3NCQUF2QixNQUFNO2dCQUdILDJCQUEyQjtzQkFEOUIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTGlzdEhlYWRlciwgTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbGlzdC1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lbnUubW9kZWwnO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IFNhZmVQaXBlLCBTYWZlVHlwZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ljb24tYnV0dG9uLm1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2ZURvbUNoYW5nZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvb2JzZXJ2ZS1kb20tY2hhbmdlL29ic2VydmUtZG9tLWNoYW5nZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS1kb3dubG9hZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRDb21wb25lbnQgfSBmcm9tICcuLi9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG93bmxvYWRBdHRhY2htZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Rvd25sb2FkLWZpbGUubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIENka0RyYWdEcm9wLFxyXG4gIERyYWdEcm9wTW9kdWxlLFxyXG4gIG1vdmVJdGVtSW5BcnJheSxcclxufSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtbGlzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWVudUNvbXBvbmVudCxcclxuICAgIEljb25CdXR0b25Db21wb25lbnQsXHJcbiAgICBGaWxlRG93bmxvYWRDb21wb25lbnQsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IFNhZmVQaXBlKSxcclxuICAgIE9ic2VydmVEb21DaGFuZ2VEaXJlY3RpdmUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGxpc3RJdGVtcyE6IExpc3RJdGVtW107XHJcbiAgbGlzdEhlYWRlciE6IExpc3RIZWFkZXI7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbUFuZEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VsZWN0ZWRNZW51OiBNZW51O1xyXG4gICAgc2VsZWN0ZWRJdGVtOiBMaXN0SXRlbTtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSByZW9yZGVyZWRMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbVtdPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGxpc3REYXRhSXRlbXMobGlzdEl0ZW06IExpc3RJdGVtW10pIHtcclxuICAgIHRoaXMubGlzdEl0ZW1zID0gbGlzdEl0ZW07XHJcbiAgICB0aGlzLmdldExpc3RJdGVtc1Bvc2l0aW9uQW5kTGV2ZWwodGhpcy5saXN0SXRlbXMsIDApO1xyXG4gIH1cclxuICBnZXQgbGlzdERhdGFJdGVtcygpOiBMaXN0SXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3RJdGVtcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBzZXQgbGlzdEhlYWRlckNvbmZpZyhsaXN0SGVhZGVyRGV0YWlsOiBMaXN0SGVhZGVyKSB7XHJcbiAgICB0aGlzLmxpc3RIZWFkZXIgPSBsaXN0SGVhZGVyRGV0YWlsO1xyXG4gIH1cclxuICBnZXQgbGlzdEhlYWRlckNvbmZpZygpOiBMaXN0SGVhZGVyIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3RIZWFkZXI7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBoeXBlckxpbmtBbmRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnRcclxuICA+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICBASW5wdXQoKSBpbmRlbnRhdGlvbiA9IHRoaXMuY29uc3RhbnRzPy5saXN0Py5kZWZhdWx0SW5kZW50YXRpb247XHJcbiAgZHJhZ0FuZERyb3BJY29uVXJsID0gdGhpcy5jb25zdGFudHM/Lmxpc3Q/LmRyYWdBbmREcm9wSWNvblVybDtcclxuICBhZGRMaXN0QnV0dG9uITogSWNvbkJ1dHRvbjtcclxuICBzYWZlVHlwZTogc3RyaW5nID0gU2FmZVR5cGUuSFRNTDtcclxuICBASW5wdXQoKVxyXG4gIHNldCBhZGRMaXN0QnV0dG9uQ29uZmlnKGFkZExpc3RCdXR0b246IEljb25CdXR0b24pIHtcclxuICAgIHRoaXMuYWRkTGlzdEJ1dHRvbiA9IGFkZExpc3RCdXR0b247XHJcbiAgfVxyXG4gIGdldCBhZGRMaXN0QnV0dG9uQ29uZmlnKCk6IEljb25CdXR0b24ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkTGlzdEJ1dHRvbjtcclxuICB9XHJcbiAgQE91dHB1dCgpIGRvbUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNdXRhdGlvblJlY29yZD4oKTtcclxuICBwcml2YXRlIF9maWxlRG93bmxvYWRBbmREZWxldGVDb25maWchOiBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWc7XHJcbiAgQElucHV0KClcclxuICBzZXQgZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnKHZhbHVlOiBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcpIHtcclxuICAgIHRoaXMuX2ZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnKCk6IEZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnO1xyXG4gIH1cclxuICBASW5wdXQoKSBpc1Jlb3JkZXJSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cclxuICAvKipcclxuICAgKiBFbWl0cyBoeXBlckxpbmtBbmRCdXR0b25DbGljayBldmVudCBvbiBjbGljayBvZiBoeXBlciBsaW5rLlxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvbkFuY2hvckVsZW1lbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmh5cGVyTGlua0FuZEJ1dHRvbkNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBpbmRleCBwb3NpdGlvbi9udW1iZXIgYW5kIGl0ZW1MZXZlbCBmb3IgZWFjaCBsaXN0IGl0ZW0uXHJcbiAgICogQHBhcmFtIHtMaXN0SXRlbVtdfSBpdGVtc1xyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpdGVtTGV2ZWxcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmVudEluZGV4XVxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0TGlzdEl0ZW1zUG9zaXRpb25BbmRMZXZlbChcclxuICAgIGl0ZW1zOiBMaXN0SXRlbVtdLFxyXG4gICAgaXRlbUxldmVsOiBudW1iZXIsXHJcbiAgICBwYXJlbnRJbmRleD86IHN0cmluZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgaXRlbXM/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gcGFyZW50SW5kZXggPyBwYXJlbnRJbmRleC5zbGljZSgtMSkgPT09ICcuJyA/IGAke3BhcmVudEluZGV4fSR7aW5kZXggKyAxfWAgOiBgJHtwYXJlbnRJbmRleH0uJHtpbmRleCArIDF9YCA6IGAke2luZGV4ICsgMX0uYDtcclxuICAgICAgaXRlbS5wb3NpdGlvbiA9IHBvc2l0aW9uO1xyXG4gICAgICBpdGVtLml0ZW1MZXZlbCA9IGl0ZW1MZXZlbDtcclxuICAgICAgY29uc3QgcmVvcmRlcmVkUmFuayA9IGlzTmFOKCtwb3NpdGlvbi5zbGljZShwb3NpdGlvbi5sZW5ndGggLSAxKSlcclxuICAgICAgICA/ICtwb3NpdGlvbi5zbGljZSgwLCBwb3NpdGlvbj8ubGVuZ3RoIC0gMSlcclxuICAgICAgICA6ICtwb3NpdGlvbi5zbGljZShwb3NpdGlvbj8ubGFzdEluZGV4T2YoJy4nKSArIDEpO1xyXG4gICAgICBpdGVtLnJlb3JkZXJlZFJhbmsgPSByZW9yZGVyZWRSYW5rO1xyXG4gICAgICBpZiAoaXRlbS5zdWJJdGVtcylcclxuICAgICAgICB0aGlzLmdldExpc3RJdGVtc1Bvc2l0aW9uQW5kTGV2ZWwoXHJcbiAgICAgICAgICBpdGVtLnN1Ykl0ZW1zLFxyXG4gICAgICAgICAgaXRlbUxldmVsICsgMSxcclxuICAgICAgICAgIHBvc2l0aW9uXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyB0aGUgc2VsZWN0ZWQgbWVudSBhY3Rpb24gYW5kIHRoZSBpdGVtLlxyXG4gICAqIEBwYXJhbSB7TWVudX0gZXZlbnRcclxuICAgKiBAcGFyYW0ge0xpc3RJdGVtfSBpdGVtXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBzZWxlY3RlZE1lbnVBY3Rpb24oZXZlbnQ6IE1lbnUsIGl0ZW06IExpc3RJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbUFuZEFjdGlvbi5lbWl0KHtcclxuICAgICAgc2VsZWN0ZWRNZW51OiBldmVudCxcclxuICAgICAgc2VsZWN0ZWRJdGVtOiBpdGVtLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7TGlzdEl0ZW19IGl0ZW1cclxuICAgKiBAcmV0dXJuIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBMaXN0SXRlbSk6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2sgZXZlbnQgb24gY2xpY2sgb2YgYnV0dG9uLlxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DbGlja0FkZEl0ZW0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmh5cGVyTGlua0FuZEJ1dHRvbkNsaWNrLmVtaXQoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQWRkcyBjbGljayBldmVudCB0byB0aGUgYW5jaG9yIHRhZ3Mgd2hlbmV2ZXIgZG9tIGNoYW5nZXMuXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRvbUNoYW5nZShldmVudDogTXV0YXRpb25SZWNvcmQpIHtcclxuICAgIGNvbnN0IGFuY2hvclRhZ3MgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKTtcclxuICAgIGFuY2hvclRhZ3M/LmZvckVhY2goKGFuY2hvcjogSFRNTEFuY2hvckVsZW1lbnQpID0+IHtcclxuICAgICAgYW5jaG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkFuY2hvckVsZW1lbnRDbGljay5iaW5kKHRoaXMpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kb21DaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZG93bmxvYWRTZWxlY3RlZEZpbGUgZXZlbnQuXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBkb3dubG9hZEZpbGUoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb3dubG9hZFNlbGVjdGVkRmlsZS5lbWl0KGZpbGUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBUcmlnZ2VycyB3aGVuIHRoZSBpdGVtIGlzIGRyb3BwZWQuXHJcbiAgICogQHBhcmFtIHtDZGtEcmFnRHJvcH0gZXZlbnRcclxuICAgKiBAcGFyYW0ge0xpc3RJdGVtW119IGl0ZW1zXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG5lc3RpbmdMZXZlbFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55PiwgaXRlbXM6IExpc3RJdGVtW10sIG5lc3RpbmdMZXZlbDogbnVtYmVyKSB7XHJcbiAgICBpZiAoZXZlbnQ/LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudD8uY29udGFpbmVyKSB7XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShpdGVtcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5jdXJyZW50SW5kZXggIT09IGV2ZW50LnByZXZpb3VzSW5kZXgpIHtcclxuICAgICAgdGhpcy5nZXRMaXN0SXRlbXNQb3NpdGlvbkFuZExldmVsKHRoaXMubGlzdEl0ZW1zLCBuZXN0aW5nTGV2ZWwpO1xyXG4gICAgICB0aGlzLnJlb3JkZXJlZExpc3QuZW1pdChpdGVtcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92aW5nIHRoZSBldmVudCBsaXN0ZW5lcnMgb24gZGVzdHJveS5cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgY29uc3QgYW5jaG9yVGFncyA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbCgnYScpO1xyXG4gICAgYW5jaG9yVGFncz8uZm9yRWFjaCgoYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCkgPT4ge1xyXG4gICAgICBhbmNob3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uQW5jaG9yRWxlbWVudENsaWNrKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHAgKm5nSWY9XCJsaXN0SGVhZGVyPy50aXRsZVwiIGNsYXNzPVwiaWVlZXNhLXRpdGxlLWxnLTI0IG1iLTBcIj5cclxuICAgICAgICB7eyBsaXN0SGVhZGVyLnRpdGxlIH19XHJcbiAgICAgIDwvcD5cclxuICAgICAgPHBcclxuICAgICAgICAqbmdJZj1cImxpc3RIZWFkZXI/LmRlc2NyaXB0aW9uXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ib2R5LW1kLTE0IGllZWVzYS1saXN0LWRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cImxpc3RIZWFkZXIuZGVzY3JpcHRpb24gfCBzYWZlIDogc2FmZVR5cGVcIlxyXG4gICAgICAgIGllZWVzYU9ic2VydmVEb21DaGFuZ2VcclxuICAgICAgICAoZG9tQ2hhbmdlKT1cIm9uRG9tQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICA+PC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWFkZC1pY29uLWJ1dHRvblwiXHJcbiAgICAgICpuZ0lmPVwibGlzdEhlYWRlcj8uY2FuU2hvd0FkZExpc3RcIlxyXG4gICAgICBbaWNvbkJ1dHRvbl09XCJhZGRMaXN0QnV0dG9uXCJcclxuICAgICAgKGljb25CdXR0b25DbGljayk9XCJvbkNsaWNrQWRkSXRlbSgpXCJcclxuICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgYWRkTGlzdEJ1dHRvbj8uZGlzYWJsZWRcclxuICAgICAgICAgID8gJ2llZWVzYS1saXN0LWNvbnRhaW5lcl9fYWN0aW9ucy0tZGlzYWJsZWQnXHJcbiAgICAgICAgICA6ICcnXHJcbiAgICAgIFwiXHJcbiAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgIHJlY3Vyc2l2ZUxpc3Q7XHJcbiAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBsaXN0SXRlbXMsIGl0ZW1MZXZlbDogMCB9XHJcbiAgICBcIlxyXG4gID5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlTGlzdCBsZXQtaXRlbXMgbGV0LWl0ZW1MZXZlbD1cIml0ZW1MZXZlbFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Jlb3JkZXJSZXF1aXJlZFwiPlxyXG4gICAgPG1hdC1saXN0XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWxpc3QtaXRlbVwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIGNka0Ryb3BMaXN0RGF0YT1cIml0ZW1zXCJcclxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgaXRlbXMsIGl0ZW1MZXZlbClcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtLWNvbnRhaW5lciBkLWZsZXhcIlxyXG4gICAgICAgICAgW3N0eWxlLm1hcmdpbkxlZnQucHhdPVwiaXRlbUxldmVsICogaW5kZW50YXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtbGlzdC1pdGVtXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAnaWVlZXNhLWxpc3QtaXRlbV9fcm9vdC1sZXZlbC1pdGVtJzogaXRlbUxldmVsID09PSAwLFxyXG4gICAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19zdWJpdGVtJzogaXRlbUxldmVsID4gMFxyXG4gICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZ2VuZGFJdGVtOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5zdWJJdGVtc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZUxpc3Q7XHJcbiAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLnN1Ykl0ZW1zLFxyXG4gICAgICAgICAgICAgICAgaXRlbUxldmVsOiBpdGVtTGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtbGlzdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmVvcmRlclJlcXVpcmVkXCI+XHJcbiAgICA8bWF0LWxpc3QgY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW0tY29udGFpbmVyIGQtZmxleFwiXHJcbiAgICAgICAgICBbc3R5bGUubWFyZ2luTGVmdC5weF09XCJpdGVtTGV2ZWwgKiBpbmRlbnRhdGlvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1saXN0LWl0ZW1cclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19yb290LWxldmVsLWl0ZW0nOiBpdGVtTGV2ZWwgPT09IDAsXHJcbiAgICAgICAgICAgICAgJ2llZWVzYS1saXN0LWl0ZW1fX3N1Yml0ZW0nOiBpdGVtTGV2ZWwgPiAwXHJcbiAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZ2VuZGFJdGVtOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5zdWJJdGVtc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZUxpc3Q7XHJcbiAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLnN1Ykl0ZW1zLFxyXG4gICAgICAgICAgICAgICAgaXRlbUxldmVsOiBpdGVtTGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtbGlzdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNhZ2VuZGFJdGVtIGxldC1pdGVtPlxyXG4gIDxkaXYgY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtLWNoaWxkIGQtZmxleFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtX19pdGVtIGQtZmxleFwiPlxyXG4gICAgICA8c3ZnIGNsYXNzPVwiZHJhZy1pY29uXCI+XHJcbiAgICAgICAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cImRyYWdBbmREcm9wSWNvblVybFwiPjwvdXNlPlxyXG4gICAgICA8L3N2Zz5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJsaXN0LW51bWJlclwiPlxyXG4gICAgICAgIHt7IGl0ZW0/LnBvc2l0aW9uIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLW5hbWUgZC1ibG9ja1wiPnt7IGl0ZW0/LnRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWxpc3QtaXRlbV9fZGVzYyBkLWJsb2NrXCIgKm5nSWY9XCJpdGVtPy5kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAge3sgaXRlbT8uZGVzY3JpcHRpb24gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGllZWVzYS1maWxlLWRvd25sb2FkXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW1fX2xpc3QtZmlsZS1kb3dubG9hZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0/LmF0dGFjaG1lbnRzPy5sZW5ndGhcIlxyXG4gICAgICAgICAgW2ZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZ109XCJmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWdcIlxyXG4gICAgICAgICAgW2Rvd25sb2FkRmlsZXNdPVwiaXRlbT8uYXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgKGRvd25sb2FkU2VsZWN0ZWRGaWxlKT1cImRvd25sb2FkRmlsZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9pZWVlc2EtZmlsZS1kb3dubG9hZD5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbWVudV9fYWN0aW9uXCI+XHJcbiAgICAgIDxpZWVlc2EtbWVudVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbT8uYWN0aW9uTWVudXNcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLW1lbnVfX2ljb25cIlxyXG4gICAgICAgIFtidXR0b25dPVwiaXRlbT8uYWN0aW9uSWNvblwiXHJcbiAgICAgICAgW21lbnVJdGVtc109XCJpdGVtPy5hY3Rpb25NZW51c1wiXHJcbiAgICAgICAgKG1lbnVJdGVtQ2xpY2spPVwic2VsZWN0ZWRNZW51QWN0aW9uKCRldmVudCwgaXRlbSlcIlxyXG4gICAgICA+PC9pZWVlc2EtbWVudT5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -375,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
375
375
  providedIn: 'root',
376
376
  }]
377
377
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.HttpBackend }, { type: i1.AlertsService }, { type: i1.LoaderNotificationService }]; } });
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0scUJBQXFCLENBQUM7QUFRN0IsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLElBQUksRUFDSixHQUFHLEVBRUgsT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLFNBQVMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVd0RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO0lBQ0UsMENBQTBDO0lBQ25DLFdBQXdCLEVBQy9CLE9BQW9CO0lBQ3BCLDBDQUEwQztJQUNuQyxZQUEyQjtJQUNsQywwQ0FBMEM7SUFDbkMseUJBQW9EO1FBTHBELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFqQjdELGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNwRCxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBSXRCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLGtDQUE2QixHQUFHLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFXcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJ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RSxFQUFFLENBQUM7YUFDdEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBMWJVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBCYWNrZW5kLFxyXG4gIEh0dHBDbGllbnQsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBFdmVudFR5cGUsXHJcbiAgSHR0cEhlYWRlcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEFsZXJ0VHlwZSxcclxuICBIdHRwU2VydmljZSxcclxuICBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVVcGxvYWRQcmVzaWduZWRVcmwsXHJcbiAgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkLFxyXG4gIEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUmVzcG9uc2UsXHJcbiAgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCxcclxuICBHZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCxcclxufSBmcm9tICcuLi9tb2RlbHMvZmlsZS11cGxvYWQtcHJlc2lnbmVkLXVybC1yZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgY29uY2F0TWFwLFxyXG4gIGZyb20sXHJcbiAgbGFzdCxcclxuICBtYXAsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBTdWJqZWN0LFxyXG4gIHRha2UsXHJcbiAgdGFrZVVudGlsLFxyXG4gIHRhcCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXBheWxvYWQtbW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICBHZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9maWxlLXVwbG9hZC1yZXNwb25zZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlRmlsZVJlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9maWxlLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBEb3dubG9hZEF0dGFjaG1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZG93bmxvYWQtZmlsZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGludGVyYWN0cyB3aXRoIHRoZSBzZXJ2ZXIgdG8gb2J0YWluIHByZS1zaWduZWQgVVJMcyBmb3IgZmlsZSB1cGxvYWQgYW5kIHVwbG9hZHMgZmlsZXMgdG8gQW1hem9uIFMzLlxyXG4gKiBAY2xhc3MgRmlsZVVwbG9hZFNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIGZpbGVCeXRlQXJyYXk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XHJcbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcclxuICBpc0ZpbGVVcGxvYWRpbmcgPSBmYWxzZTtcclxuICBmaWxlc05hbWVPZlVwbG9hZEZhaWxlZCE6IHN0cmluZ1tdO1xyXG4gIG5vT2ZGaWxlc1VwbG9hZGVkU3VjY2Vzc2Z1bGx5ID0gMDtcclxuICB1cGxvYWRlZEZpbGVOYW1lID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxyXG4gICAgaGFuZGxlcjogSHR0cEJhY2tlbmQsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBsb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlOiBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGJhc2UgVVJMIGZvciBBUEkgcmVxdWVzdHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUJhc2VVcmwgLUFQSSBiYXNlIFVSTC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBzZXRBcGlCYXNlVXJsKGFwaUJhc2VVcmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBBUEkgYmFzZSBVUkwgZm9yIEFQSSByZXF1ZXN0cy5cclxuICAgKiBAcmV0dXJuIHsqfSAge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRBcGlCYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlCYXNlVXJsO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcHJlc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIGZpbGVzIHRvIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RmlsZVVwbG9hZFByZXNpZ25lZFVybD59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybChcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGFwcElkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEZpbGVVcGxvYWRQcmVzaWduZWRVcmw+IHtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgaWYgKE9iamVjdC52YWx1ZXMoZmlsZSkubGVuZ3RoKSBmaWxlTmFtZSA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF0ubmFtZTtcclxuICAgIGVsc2UgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgY29uc3QgZmlsZVVwbG9hZFByZXNpZ25lZFVybFBheWxvYWQ6IEdldEZpbGVVcGxvYWRQcmVzaWduZWRVcmxQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAgIHRlbmFudEFwcElkOiBhcHBJZCBhcyBzdHJpbmcsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvczMvdXBsb2FkRmlsZVVybGAsXHJcbiAgICAgICAgZmlsZVVwbG9hZFByZXNpZ25lZFVybFBheWxvYWRcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgcHJlLXNpZ25lZCBVUkwgZm9yIHRoZSBmaWxlcyB0byBiZSB1cGxvYWRlZCBpbiBTMyBidWNrZXRcclxuICAgKiBAcGFyYW0ge0ZpbGVVcGxvYWRQYXlsb2FkfSBmaWxlVXBsb2FkUGF5bG9hZFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlVXBsb2FkQVBJUGF0aFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0UHJlU2lnbmVkVVJMKFxyXG4gICAgZmlsZVVwbG9hZFBheWxvYWQ6IEZpbGVVcGxvYWRQYXlsb2FkLFxyXG4gICAgZmlsZVVwbG9hZEFQSVBhdGg6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8R2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vJHtmaWxlVXBsb2FkQVBJUGF0aH1gLCBmaWxlVXBsb2FkUGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBmaWxlIHRvIEFXUyBTMyB1c2luZyBhIHByZS1zaWduZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVTaWduZWRVcmxcclxuICAgKiBAcGFyYW0gZmlsZXNcclxuICAgKiBAcGFyYW0gaXNNdWx0aXBsZUZpbGVVcGxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPGFueT59IC1SZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2UgYWZ0ZXIgdXBsb2FkaW5nIHRoZSBmaWxlIHRvIFMzLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHVwbG9hZEZpbGVUb1MzKFxyXG4gICAgcHJlU2lnbmVkVXJsOiBGaWxlQXR0YWNobWVudEluZm9bXSB8IHN0cmluZyxcclxuICAgIGZpbGVzOiBGaWxlIHwgRmlsZUxpc3QsXHJcbiAgICBpc011bHRpcGxlRmlsZVVwbG9hZCA9IGZhbHNlXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc3QgZmlsZXNBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5maWxlc05hbWVPZlVwbG9hZEZhaWxlZCA9IFtdO1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAoaXNNdWx0aXBsZUZpbGVVcGxvYWQpIHtcclxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlcykuZm9yRWFjaCgoZmlsZTogRmlsZSkgPT4ge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZmlsZXNBcnJheS5wdXNoKHtcclxuICAgICAgICAgIHByZVNpZ25lZFVybDogKHByZVNpZ25lZFVybCBhcyBGaWxlQXR0YWNobWVudEluZm9bXSkuZmluZChcclxuICAgICAgICAgICAgKGZpbGVJbmZvOiBGaWxlQXR0YWNobWVudEluZm8pID0+XHJcbiAgICAgICAgICAgICAgZmlsZUluZm8uZmlsZU5hbWUgPT09IChmaWxlIGFzIEZpbGUpLm5hbWUgJiZcclxuICAgICAgICAgICAgICBmaWxlSW5mby5lcnJvck1lc3NhZ2UgPT09IG51bGxcclxuICAgICAgICAgICk/LnByZVNpZ25lZFVybCxcclxuICAgICAgICAgIGZpbGVPYmo6IGZpbGUgYXMgRmlsZSxcclxuICAgICAgICAgIGZpbGVUeXBlOiAoZmlsZSBhcyBGaWxlKS50eXBlLFxyXG4gICAgICAgICAgZmlsZVNpemU6IChmaWxlIGFzIEZpbGUpLnNpemUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsZXNBcnJheS5wdXNoKHtcclxuICAgICAgICBwcmVTaWduZWRVcmw6IHByZVNpZ25lZFVybCBhcyBzdHJpbmcsXHJcbiAgICAgICAgZmlsZU9iajogZmlsZXMgYXMgRmlsZSxcclxuICAgICAgICBmaWxlVHlwZTogKGZpbGVzIGFzIEZpbGUpLnR5cGUsXHJcbiAgICAgICAgZmlsZVNpemU6IChmaWxlcyBhcyBGaWxlKS5zaXplLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKGZpbGVzQXJyYXkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoZmlsZSkgPT5cclxuICAgICAgICB0aGlzLmh0dHBDYWxsVG9BV1MoXHJcbiAgICAgICAgICBmaWxlLnByZVNpZ25lZFVybCxcclxuICAgICAgICAgIGZpbGUuZmlsZU9iaixcclxuICAgICAgICAgIGZpbGUuZmlsZVR5cGUsXHJcbiAgICAgICAgICBmaWxlLmZpbGVTaXplXHJcbiAgICAgICAgKVxyXG4gICAgICApLFxyXG4gICAgICB0YWtlKGZpbGVzQXJyYXkubGVuZ3RoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTWFrZXMgaHR0cCBjYWxsIHRvIEFXUyB0byB1cGxvYWQgZmlsZSBpbiBTMyBidWNrZXRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlU2lnbmVkVXJsXHJcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVUeXBlXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZpbGVTaXplXHJcbiAgICogQHJldHVybiB7Kn0gIHtPYnNlcnZhYmxlPGFueT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgaHR0cENhbGxUb0FXUyhcclxuICAgIHByZVNpZ25lZFVybDogc3RyaW5nLFxyXG4gICAgZmlsZTogRmlsZSxcclxuICAgIGZpbGVUeXBlOiBzdHJpbmcsXHJcbiAgICBmaWxlU2l6ZTogbnVtYmVyXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgZmlsZVR5cGU/LnRvU3RyaW5nKCkpO1xyXG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtTGVuZ3RoJywgZmlsZVNpemU/LnRvU3RyaW5nKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucHV0KHByZVNpZ25lZFVybCwgZmlsZSwge1xyXG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxyXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLmdldEV2ZW50TWVzc2FnZShldmVudCwgZmlsZSkpLFxyXG4gICAgICAgIHRhcCgobWVzc2FnZSkgPT4gdGhpcy5zaG93UHJvZ3Jlc3MobWVzc2FnZSkpLFxyXG4gICAgICAgIGxhc3QoKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGZpbGUgdXBsb2FkIHByb2dyZXNzLlxyXG4gICAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgc2hvd1Byb2dyZXNzKG1lc3NhZ2U6IGFueSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGRpc3RpbmN0IG1lc3NhZ2UgZm9yIHNlbnQsIHVwbG9hZCBwcm9ncmVzcywgJiByZXNwb25zZSBldmVudHMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXZlbnQ8YW55Pn0gZXZlbnRcclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IEZpbGUpIHtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgbGV0IGZpbGVTaXplOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xyXG4gICAgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgZmlsZVNpemUgPSAoZmlsZSBhcyBGaWxlKS5zaXplO1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5TZW50OlxyXG4gICAgICAgIHJldHVybiBgVXBsb2FkaW5nIGZpbGUgXCIke2ZpbGVOYW1lfVwiIG9mIHNpemUgJHtmaWxlU2l6ZX0uYDtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xyXG4gICAgICAgIGNvbnN0IHBlcmNlbnREb25lID0gZXZlbnQ/LnRvdGFsXHJcbiAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuICAgICAgICAgIDogMDtcclxuICAgICAgICByZXR1cm4gYEZpbGUgXCIke2ZpbGVOYW1lfVwiIGlzICR7cGVyY2VudERvbmV9JSB1cGxvYWRlZC5gO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICBpZiAoZXZlbnQuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMubm9PZkZpbGVzVXBsb2FkZWRTdWNjZXNzZnVsbHkrKztcclxuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IGZpbGVOYW1lO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsZXNOYW1lT2ZVcGxvYWRGYWlsZWQucHVzaChmaWxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gYEZpbGUgXCIke2ZpbGVOYW1lfVwiIHN1cnByaXNpbmcgdXBsb2FkIGV2ZW50OiAke2V2ZW50LnR5cGV9LmA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBmaWxlIHRvIGJ5dGUgYXJyYXkuXHJcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgY29udmVydEZpbGVUb0J5dGVBcnJheShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcclxuICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSByZWFkZXI/LnJlc3VsdCBhcyBBcnJheUJ1ZmZlcjtcclxuICAgICAgdGhpcy5maWxlQnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/Lm1lc3NhZ2U/LmVycm9yPy5FUjEwMDIsXHJcbiAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGU/LkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0cyBmaWxlIGJ5dGUgYXJyYXkgZm9ybWF0IHRvIHVuZGVmaW5lZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBjbGVhckZpbGVCeXRlQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVCeXRlQXJyYXkgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGZpbGUgdXBsb2FkIHN0YXR1cy5cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXR1c1xyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEZpbGVVcGxvYWRTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsZVVwbG9hZGluZyA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgZmlsZSB1cGxvYWQgc3RhdHVzLlxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFN0YXR1cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzRmlsZVVwbG9hZGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciBkb3dubG9hZGluZyBmaWxlcyB0byBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHN0cmluZz59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCB8IHN0cmluZyB8IERvd25sb2FkQXR0YWNobWVudCxcclxuICAgIGlzUHVibGljQVBJPzogYm9vbGVhbixcclxuICAgIGRvbWFpblVybD86IHN0cmluZyxcclxuICAgIHByZXNpZ25lZEFwaVVybD86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8c3RyaW5nIHwgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRSZXNwb25zZT4ge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAodHlwZW9mIGZpbGUgPT09ICdzdHJpbmcnKSBmaWxlTmFtZSA9IGZpbGU7XHJcbiAgICBlbHNlIGlmIChPYmplY3Q/LnZhbHVlcyhmaWxlKT8ubGVuZ3RoKVxyXG4gICAgICBmaWxlTmFtZSA9IE9iamVjdD8udmFsdWVzKGZpbGUpPy5bMF0/Lm5hbWU7XHJcbiAgICBlbHNlIGZpbGVOYW1lID0gKGZpbGUgYXMgRmlsZSkubmFtZTtcclxuICAgIGxldCBodHRwUmVxdWVzdCE6IE9ic2VydmFibGU8XHJcbiAgICAgIHN0cmluZyB8IEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUmVzcG9uc2VcclxuICAgID47XHJcbiAgICBpZiAoaXNQdWJsaWNBUEkpIHtcclxuICAgICAgY29uc3QgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZDogR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCA9XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICBmaWxlTmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGRvbWFpbjogZG9tYWluVXJsIGFzIHN0cmluZyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgaHR0cFJlcXVlc3QgPSB0aGlzLmh0dHBTZXJ2aWNlLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvcHVibGljL2Rvd25sb2FkRmlsZVVybGAsXHJcbiAgICAgICAgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChwcmVzaWduZWRBcGlVcmwpIHtcclxuICAgICAgY29uc3QgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkOiBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFBheWxvYWQgPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgYXR0YWNobWVudElkOiAoZmlsZSBhcyBEb3dubG9hZEF0dGFjaG1lbnQpLmF0dGFjaG1lbnRJZCxcclxuICAgICAgICAgICAgcHJlU2lnbmVkRHVyYXRpb246IHRoaXMuY29uc3RhbnRzPy5maWxlRG93bmxvYWQ/LnByZVNpZ25lZER1cmF0aW9uLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfSR7cHJlc2lnbmVkQXBpVXJsfWAsXHJcbiAgICAgICAgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UuZ2V0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3MzL2Rvd25sb2FkRmlsZVVybC8ke2ZpbGVOYW1lfWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBodHRwUmVxdWVzdC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZHMgZmlsZSB0byBBV1MgUzMgdXNpbmcgYSBwcmVzaWduZWQgVVJMLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRvd25sb2FkRmlsZShmaWxlRG93bmxvYWRQcmVzaWduZWRVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChmaWxlRG93bmxvYWRQcmVzaWduZWRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZmlsZXMgdXBsb2FkZWQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXMgLVRoZSBmaWxlcyB0byBiZSB2YWxpZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1heEZpbGVTaXplXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgdGhlIHRvdGFsIHNpemUgb2YgZmlsZXMgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgbGltaXQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICB2YWxpZGF0ZUZpbGVTaXplKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIG1heEZpbGVTaXplOiBudW1iZXIsXHJcbiAgICBpc011bHRpRmlsZVVwbG9hZDogYm9vbGVhblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIGxldCB0b3RhbFNpemUgPSAwO1xyXG4gICAgICBPYmplY3QudmFsdWVzKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgdG90YWxTaXplICs9IGZpbGUuc2l6ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0b3RhbFNpemUgLyAoMTAyNCAqIDEwMjQpIDw9IG1heEZpbGVTaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChmaWxlcyBhcyBGaWxlKS5zaXplIC8gKDEwMjQgKiAxMDI0KSA8PSBtYXhGaWxlU2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgZmlsZSB0eXBlcyBvZiB0aGUgdXBsb2FkZWQgZmlsZXMuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXNcclxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhbGxvd2VkRmlsZVR5cGVzXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgYWxsIGZpbGVzIGhhdmUgdmFsaWQgZXh0ZW5zaW9ucywgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZVR5cGVzKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdLFxyXG4gICAgaXNNdWx0aUZpbGVVcGxvYWQ6IGJvb2xlYW5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbGlkYXRlU2luZ2xlRmlsZSA9IChmaWxlOiBGaWxlKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcclxuICAgICAgcmV0dXJuIGFsbG93ZWRGaWxlVHlwZXM/LmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pO1xyXG4gICAgfTtcclxuICAgIGlmIChpc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICBsZXQgYWxsRmlsZXNWYWxpZCA9IHRydWU7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpPy5mb3JFYWNoKChmaWxlSXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNpbmdsZUZpbGUoZmlsZUl0ZW0pKSB7XHJcbiAgICAgICAgICBhbGxGaWxlc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGFsbEZpbGVzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWRhdGVTaW5nbGVGaWxlKGZpbGVzIGFzIEZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIGV4dGVuc2lvbiBvZiBhIGZpbGUgZnJvbSBpdHMgbmFtZS5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZVxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLVRoZSBmaWxlIGV4dGVuc2lvbiBpbiBsb3dlcmNhc2UuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIHJldHVybiBmaWxlTmFtZT8uc3BsaXQoJy4nKS5wb3AoKSEudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIHRoZSBmaWxlIGZyb20gQVdTIFMzIGJhc2VkIG9uIHRoZSBnaXZlbiBmaWxlSWQgYWxvbmcgd2l0aCBkZWxldGVGaWxlQXBpUGF0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERlbGV0ZUZpbGVSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZGVsZXRlRmlsZShkZWxldGVGaWxlQXBpUGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZWxldGVGaWxlUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vJHtkZWxldGVGaWxlQXBpUGF0aH1gLCB7fSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIHVuc3Vic2NyaWJlIHRoZSBvcGVuIG9ic2VydmFibGUgc3Vic2NyaXB0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0scUJBQXFCLENBQUM7QUFRN0IsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLElBQUksRUFDSixHQUFHLEVBRUgsT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLFNBQVMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVN0RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO0lBQ0UsMENBQTBDO0lBQ25DLFdBQXdCLEVBQy9CLE9BQW9CO0lBQ3BCLDBDQUEwQztJQUNuQyxZQUEyQjtJQUNsQywwQ0FBMEM7SUFDbkMseUJBQW9EO1FBTHBELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFqQjdELGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNwRCxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBSXRCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLGtDQUE2QixHQUFHLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFXcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJ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RSxFQUFFLENBQUM7YUFDdEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBMWJVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBCYWNrZW5kLFxyXG4gIEh0dHBDbGllbnQsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBFdmVudFR5cGUsXHJcbiAgSHR0cEhlYWRlcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEFsZXJ0VHlwZSxcclxuICBIdHRwU2VydmljZSxcclxuICBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVVcGxvYWRQcmVzaWduZWRVcmwsXHJcbiAgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkLFxyXG4gIEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUmVzcG9uc2UsXHJcbiAgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCxcclxuICBHZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCxcclxufSBmcm9tICcuLi9tb2RlbHMvZmlsZS11cGxvYWQtcHJlc2lnbmVkLXVybC1yZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgY29uY2F0TWFwLFxyXG4gIGZyb20sXHJcbiAgbGFzdCxcclxuICBtYXAsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBTdWJqZWN0LFxyXG4gIHRha2UsXHJcbiAgdGFrZVVudGlsLFxyXG4gIHRhcCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXBheWxvYWQtbW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICBHZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9maWxlLXVwbG9hZC1yZXNwb25zZS5tb2RlbCc7XHJcbmltcG9ydCB7IERlbGV0ZUZpbGVSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscy9maWxlLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBEb3dubG9hZEF0dGFjaG1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZG93bmxvYWQtZmlsZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGludGVyYWN0cyB3aXRoIHRoZSBzZXJ2ZXIgdG8gb2J0YWluIHByZS1zaWduZWQgVVJMcyBmb3IgZmlsZSB1cGxvYWQgYW5kIHVwbG9hZHMgZmlsZXMgdG8gQW1hem9uIFMzLlxyXG4gKiBAY2xhc3MgRmlsZVVwbG9hZFNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIGZpbGVCeXRlQXJyYXk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XHJcbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcclxuICBpc0ZpbGVVcGxvYWRpbmcgPSBmYWxzZTtcclxuICBmaWxlc05hbWVPZlVwbG9hZEZhaWxlZCE6IHN0cmluZ1tdO1xyXG4gIG5vT2ZGaWxlc1VwbG9hZGVkU3VjY2Vzc2Z1bGx5ID0gMDtcclxuICB1cGxvYWRlZEZpbGVOYW1lID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxyXG4gICAgaGFuZGxlcjogSHR0cEJhY2tlbmQsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBsb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlOiBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGJhc2UgVVJMIGZvciBBUEkgcmVxdWVzdHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUJhc2VVcmwgLUFQSSBiYXNlIFVSTC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBzZXRBcGlCYXNlVXJsKGFwaUJhc2VVcmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBBUEkgYmFzZSBVUkwgZm9yIEFQSSByZXF1ZXN0cy5cclxuICAgKiBAcmV0dXJuIHsqfSAge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRBcGlCYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlCYXNlVXJsO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcHJlc2lnbmVkIFVSTCBmb3IgdXBsb2FkaW5nIGZpbGVzIHRvIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RmlsZVVwbG9hZFByZXNpZ25lZFVybD59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybChcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGFwcElkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEZpbGVVcGxvYWRQcmVzaWduZWRVcmw+IHtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgaWYgKE9iamVjdC52YWx1ZXMoZmlsZSkubGVuZ3RoKSBmaWxlTmFtZSA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF0ubmFtZTtcclxuICAgIGVsc2UgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgY29uc3QgZmlsZVVwbG9hZFByZXNpZ25lZFVybFBheWxvYWQ6IEdldEZpbGVVcGxvYWRQcmVzaWduZWRVcmxQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAgIHRlbmFudEFwcElkOiBhcHBJZCBhcyBzdHJpbmcsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvczMvdXBsb2FkRmlsZVVybGAsXHJcbiAgICAgICAgZmlsZVVwbG9hZFByZXNpZ25lZFVybFBheWxvYWRcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgcHJlLXNpZ25lZCBVUkwgZm9yIHRoZSBmaWxlcyB0byBiZSB1cGxvYWRlZCBpbiBTMyBidWNrZXRcclxuICAgKiBAcGFyYW0ge0ZpbGVVcGxvYWRQYXlsb2FkfSBmaWxlVXBsb2FkUGF5bG9hZFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlVXBsb2FkQVBJUGF0aFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0UHJlU2lnbmVkVVJMKFxyXG4gICAgZmlsZVVwbG9hZFBheWxvYWQ6IEZpbGVVcGxvYWRQYXlsb2FkLFxyXG4gICAgZmlsZVVwbG9hZEFQSVBhdGg6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8R2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vJHtmaWxlVXBsb2FkQVBJUGF0aH1gLCBmaWxlVXBsb2FkUGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBmaWxlIHRvIEFXUyBTMyB1c2luZyBhIHByZS1zaWduZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVTaWduZWRVcmxcclxuICAgKiBAcGFyYW0gZmlsZXNcclxuICAgKiBAcGFyYW0gaXNNdWx0aXBsZUZpbGVVcGxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPGFueT59IC1SZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2UgYWZ0ZXIgdXBsb2FkaW5nIHRoZSBmaWxlIHRvIFMzLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHVwbG9hZEZpbGVUb1MzKFxyXG4gICAgcHJlU2lnbmVkVXJsOiBGaWxlQXR0YWNobWVudEluZm9bXSB8IHN0cmluZyxcclxuICAgIGZpbGVzOiBGaWxlIHwgRmlsZUxpc3QsXHJcbiAgICBpc011bHRpcGxlRmlsZVVwbG9hZCA9IGZhbHNlXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc3QgZmlsZXNBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5maWxlc05hbWVPZlVwbG9hZEZhaWxlZCA9IFtdO1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAoaXNNdWx0aXBsZUZpbGVVcGxvYWQpIHtcclxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlcykuZm9yRWFjaCgoZmlsZTogRmlsZSkgPT4ge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZmlsZXNBcnJheS5wdXNoKHtcclxuICAgICAgICAgIHByZVNpZ25lZFVybDogKHByZVNpZ25lZFVybCBhcyBGaWxlQXR0YWNobWVudEluZm9bXSkuZmluZChcclxuICAgICAgICAgICAgKGZpbGVJbmZvOiBGaWxlQXR0YWNobWVudEluZm8pID0+XHJcbiAgICAgICAgICAgICAgZmlsZUluZm8uZmlsZU5hbWUgPT09IChmaWxlIGFzIEZpbGUpLm5hbWUgJiZcclxuICAgICAgICAgICAgICBmaWxlSW5mby5lcnJvck1lc3NhZ2UgPT09IG51bGxcclxuICAgICAgICAgICk/LnByZVNpZ25lZFVybCxcclxuICAgICAgICAgIGZpbGVPYmo6IGZpbGUgYXMgRmlsZSxcclxuICAgICAgICAgIGZpbGVUeXBlOiAoZmlsZSBhcyBGaWxlKS50eXBlLFxyXG4gICAgICAgICAgZmlsZVNpemU6IChmaWxlIGFzIEZpbGUpLnNpemUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsZXNBcnJheS5wdXNoKHtcclxuICAgICAgICBwcmVTaWduZWRVcmw6IHByZVNpZ25lZFVybCBhcyBzdHJpbmcsXHJcbiAgICAgICAgZmlsZU9iajogZmlsZXMgYXMgRmlsZSxcclxuICAgICAgICBmaWxlVHlwZTogKGZpbGVzIGFzIEZpbGUpLnR5cGUsXHJcbiAgICAgICAgZmlsZVNpemU6IChmaWxlcyBhcyBGaWxlKS5zaXplLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKGZpbGVzQXJyYXkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoZmlsZSkgPT5cclxuICAgICAgICB0aGlzLmh0dHBDYWxsVG9BV1MoXHJcbiAgICAgICAgICBmaWxlLnByZVNpZ25lZFVybCxcclxuICAgICAgICAgIGZpbGUuZmlsZU9iaixcclxuICAgICAgICAgIGZpbGUuZmlsZVR5cGUsXHJcbiAgICAgICAgICBmaWxlLmZpbGVTaXplXHJcbiAgICAgICAgKVxyXG4gICAgICApLFxyXG4gICAgICB0YWtlKGZpbGVzQXJyYXkubGVuZ3RoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTWFrZXMgaHR0cCBjYWxsIHRvIEFXUyB0byB1cGxvYWQgZmlsZSBpbiBTMyBidWNrZXRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlU2lnbmVkVXJsXHJcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVUeXBlXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZpbGVTaXplXHJcbiAgICogQHJldHVybiB7Kn0gIHtPYnNlcnZhYmxlPGFueT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgaHR0cENhbGxUb0FXUyhcclxuICAgIHByZVNpZ25lZFVybDogc3RyaW5nLFxyXG4gICAgZmlsZTogRmlsZSxcclxuICAgIGZpbGVUeXBlOiBzdHJpbmcsXHJcbiAgICBmaWxlU2l6ZTogbnVtYmVyXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgZmlsZVR5cGU/LnRvU3RyaW5nKCkpO1xyXG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtTGVuZ3RoJywgZmlsZVNpemU/LnRvU3RyaW5nKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucHV0KHByZVNpZ25lZFVybCwgZmlsZSwge1xyXG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxyXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLmdldEV2ZW50TWVzc2FnZShldmVudCwgZmlsZSkpLFxyXG4gICAgICAgIHRhcCgobWVzc2FnZSkgPT4gdGhpcy5zaG93UHJvZ3Jlc3MobWVzc2FnZSkpLFxyXG4gICAgICAgIGxhc3QoKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGZpbGUgdXBsb2FkIHByb2dyZXNzLlxyXG4gICAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgc2hvd1Byb2dyZXNzKG1lc3NhZ2U6IGFueSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGRpc3RpbmN0IG1lc3NhZ2UgZm9yIHNlbnQsIHVwbG9hZCBwcm9ncmVzcywgJiByZXNwb25zZSBldmVudHMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXZlbnQ8YW55Pn0gZXZlbnRcclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IEZpbGUpIHtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgbGV0IGZpbGVTaXplOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xyXG4gICAgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgZmlsZVNpemUgPSAoZmlsZSBhcyBGaWxlKS5zaXplO1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5TZW50OlxyXG4gICAgICAgIHJldHVybiBgVXBsb2FkaW5nIGZpbGUgXCIke2ZpbGVOYW1lfVwiIG9mIHNpemUgJHtmaWxlU2l6ZX0uYDtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xyXG4gICAgICAgIGNvbnN0IHBlcmNlbnREb25lID0gZXZlbnQ/LnRvdGFsXHJcbiAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuICAgICAgICAgIDogMDtcclxuICAgICAgICByZXR1cm4gYEZpbGUgXCIke2ZpbGVOYW1lfVwiIGlzICR7cGVyY2VudERvbmV9JSB1cGxvYWRlZC5gO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICBpZiAoZXZlbnQuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMubm9PZkZpbGVzVXBsb2FkZWRTdWNjZXNzZnVsbHkrKztcclxuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IGZpbGVOYW1lO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsZXNOYW1lT2ZVcGxvYWRGYWlsZWQucHVzaChmaWxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gYEZpbGUgXCIke2ZpbGVOYW1lfVwiIHN1cnByaXNpbmcgdXBsb2FkIGV2ZW50OiAke2V2ZW50LnR5cGV9LmA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBmaWxlIHRvIGJ5dGUgYXJyYXkuXHJcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgY29udmVydEZpbGVUb0J5dGVBcnJheShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcclxuICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSByZWFkZXI/LnJlc3VsdCBhcyBBcnJheUJ1ZmZlcjtcclxuICAgICAgdGhpcy5maWxlQnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/Lm1lc3NhZ2U/LmVycm9yPy5FUjEwMDIsXHJcbiAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGU/LkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0cyBmaWxlIGJ5dGUgYXJyYXkgZm9ybWF0IHRvIHVuZGVmaW5lZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBjbGVhckZpbGVCeXRlQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVCeXRlQXJyYXkgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGZpbGUgdXBsb2FkIHN0YXR1cy5cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXR1c1xyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEZpbGVVcGxvYWRTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsZVVwbG9hZGluZyA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgZmlsZSB1cGxvYWQgc3RhdHVzLlxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFN0YXR1cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzRmlsZVVwbG9hZGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciBkb3dubG9hZGluZyBmaWxlcyB0byBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHN0cmluZz59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCB8IHN0cmluZyB8IERvd25sb2FkQXR0YWNobWVudCxcclxuICAgIGlzUHVibGljQVBJPzogYm9vbGVhbixcclxuICAgIGRvbWFpblVybD86IHN0cmluZyxcclxuICAgIHByZXNpZ25lZEFwaVVybD86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8c3RyaW5nIHwgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRSZXNwb25zZT4ge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAodHlwZW9mIGZpbGUgPT09ICdzdHJpbmcnKSBmaWxlTmFtZSA9IGZpbGU7XHJcbiAgICBlbHNlIGlmIChPYmplY3Q/LnZhbHVlcyhmaWxlKT8ubGVuZ3RoKVxyXG4gICAgICBmaWxlTmFtZSA9IE9iamVjdD8udmFsdWVzKGZpbGUpPy5bMF0/Lm5hbWU7XHJcbiAgICBlbHNlIGZpbGVOYW1lID0gKGZpbGUgYXMgRmlsZSkubmFtZTtcclxuICAgIGxldCBodHRwUmVxdWVzdCE6IE9ic2VydmFibGU8XHJcbiAgICAgIHN0cmluZyB8IEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUmVzcG9uc2VcclxuICAgID47XHJcbiAgICBpZiAoaXNQdWJsaWNBUEkpIHtcclxuICAgICAgY29uc3QgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZDogR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCA9XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICBmaWxlTmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGRvbWFpbjogZG9tYWluVXJsIGFzIHN0cmluZyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgaHR0cFJlcXVlc3QgPSB0aGlzLmh0dHBTZXJ2aWNlLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvcHVibGljL2Rvd25sb2FkRmlsZVVybGAsXHJcbiAgICAgICAgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChwcmVzaWduZWRBcGlVcmwpIHtcclxuICAgICAgY29uc3QgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkOiBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFBheWxvYWQgPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgYXR0YWNobWVudElkOiAoZmlsZSBhcyBEb3dubG9hZEF0dGFjaG1lbnQpLmF0dGFjaG1lbnRJZCxcclxuICAgICAgICAgICAgcHJlU2lnbmVkRHVyYXRpb246IHRoaXMuY29uc3RhbnRzPy5maWxlRG93bmxvYWQ/LnByZVNpZ25lZER1cmF0aW9uLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfSR7cHJlc2lnbmVkQXBpVXJsfWAsXHJcbiAgICAgICAgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UuZ2V0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3MzL2Rvd25sb2FkRmlsZVVybC8ke2ZpbGVOYW1lfWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBodHRwUmVxdWVzdC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZHMgZmlsZSB0byBBV1MgUzMgdXNpbmcgYSBwcmVzaWduZWQgVVJMLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRvd25sb2FkRmlsZShmaWxlRG93bmxvYWRQcmVzaWduZWRVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChmaWxlRG93bmxvYWRQcmVzaWduZWRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZmlsZXMgdXBsb2FkZWQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXMgLVRoZSBmaWxlcyB0byBiZSB2YWxpZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1heEZpbGVTaXplXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgdGhlIHRvdGFsIHNpemUgb2YgZmlsZXMgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgbGltaXQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICB2YWxpZGF0ZUZpbGVTaXplKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIG1heEZpbGVTaXplOiBudW1iZXIsXHJcbiAgICBpc011bHRpRmlsZVVwbG9hZDogYm9vbGVhblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIGxldCB0b3RhbFNpemUgPSAwO1xyXG4gICAgICBPYmplY3QudmFsdWVzKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgdG90YWxTaXplICs9IGZpbGUuc2l6ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0b3RhbFNpemUgLyAoMTAyNCAqIDEwMjQpIDw9IG1heEZpbGVTaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChmaWxlcyBhcyBGaWxlKS5zaXplIC8gKDEwMjQgKiAxMDI0KSA8PSBtYXhGaWxlU2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgZmlsZSB0eXBlcyBvZiB0aGUgdXBsb2FkZWQgZmlsZXMuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXNcclxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhbGxvd2VkRmlsZVR5cGVzXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgYWxsIGZpbGVzIGhhdmUgdmFsaWQgZXh0ZW5zaW9ucywgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZVR5cGVzKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdLFxyXG4gICAgaXNNdWx0aUZpbGVVcGxvYWQ6IGJvb2xlYW5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbGlkYXRlU2luZ2xlRmlsZSA9IChmaWxlOiBGaWxlKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcclxuICAgICAgcmV0dXJuIGFsbG93ZWRGaWxlVHlwZXM/LmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pO1xyXG4gICAgfTtcclxuICAgIGlmIChpc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICBsZXQgYWxsRmlsZXNWYWxpZCA9IHRydWU7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpPy5mb3JFYWNoKChmaWxlSXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNpbmdsZUZpbGUoZmlsZUl0ZW0pKSB7XHJcbiAgICAgICAgICBhbGxGaWxlc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGFsbEZpbGVzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWRhdGVTaW5nbGVGaWxlKGZpbGVzIGFzIEZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIGV4dGVuc2lvbiBvZiBhIGZpbGUgZnJvbSBpdHMgbmFtZS5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZVxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLVRoZSBmaWxlIGV4dGVuc2lvbiBpbiBsb3dlcmNhc2UuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIHJldHVybiBmaWxlTmFtZT8uc3BsaXQoJy4nKS5wb3AoKSEudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIHRoZSBmaWxlIGZyb20gQVdTIFMzIGJhc2VkIG9uIHRoZSBnaXZlbiBmaWxlSWQgYWxvbmcgd2l0aCBkZWxldGVGaWxlQXBpUGF0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERlbGV0ZUZpbGVSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZGVsZXRlRmlsZShkZWxldGVGaWxlQXBpUGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZWxldGVGaWxlUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vJHtkZWxldGVGaWxlQXBpUGF0aH1gLCB7fSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIHVuc3Vic2NyaWJlIHRoZSBvcGVuIG9ic2VydmFibGUgc3Vic2NyaXB0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19