@ieeesa-npm/presentation 0.27.1 → 0.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,7 +56,6 @@ export class ListComponent {
56
56
  * @memberof ListComponent
57
57
  */
58
58
  onAnchorElementClick(event) {
59
- console.log(event);
60
59
  event.preventDefault();
61
60
  this.hyperLinkAndButtonClick.emit(event);
62
61
  }
@@ -136,7 +135,7 @@ export class ListComponent {
136
135
  });
137
136
  }
138
137
  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 }); }
139
- 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", fileDownloadConfig: "fileDownloadConfig" }, 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 <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 align-items-center\"\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 <span class=\"ieeesa-list-item__item d-flex\">\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\r\n class=\"ieeesa-list-item__desc d-block\"\r\n *ngIf=\"item?.description\"\r\n >\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n [fileDownloadConfig]=\"fileDownloadConfig\"\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 </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-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}}.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 .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}.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;align-items:center}.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", "fileDownloadConfig", "isPublicAPI", "domainUrl"], 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"] }], encapsulation: i0.ViewEncapsulation.None }); }
138
+ 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", fileDownloadConfig: "fileDownloadConfig" }, 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 <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 <span class=\"ieeesa-list-item__item d-flex\">\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\r\n class=\"ieeesa-list-item__desc d-block\"\r\n *ngIf=\"item?.description\"\r\n >\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n [fileDownloadConfig]=\"fileDownloadConfig\"\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 </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-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}}.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 .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}.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-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", "fileDownloadConfig", "isPublicAPI", "domainUrl"], 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"] }], encapsulation: i0.ViewEncapsulation.None }); }
140
139
  }
141
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListComponent, decorators: [{
142
141
  type: Component,
@@ -149,7 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
149
148
  FileDownloadComponent,
150
149
  forwardRef(() => SafePipe),
151
150
  ObserveDomChangeDirective,
152
- ], 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 <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 align-items-center\"\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 <span class=\"ieeesa-list-item__item d-flex\">\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\r\n class=\"ieeesa-list-item__desc d-block\"\r\n *ngIf=\"item?.description\"\r\n >\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n [fileDownloadConfig]=\"fileDownloadConfig\"\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 </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-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}}.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 .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}.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;align-items:center}.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"] }]
151
+ ], 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 <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 <span class=\"ieeesa-list-item__item d-flex\">\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\r\n class=\"ieeesa-list-item__desc d-block\"\r\n *ngIf=\"item?.description\"\r\n >\r\n {{ item?.description }}\r\n </span>\r\n <ieeesa-file-download\r\n [fileDownloadConfig]=\"fileDownloadConfig\"\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 </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-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}}.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 .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}.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-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"] }]
153
152
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { selectedItemAndAction: [{
154
153
  type: Output
155
154
  }], reorderedList: [{
@@ -171,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
171
170
  }], fileDownloadConfig: [{
172
171
  type: Input
173
172
  }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQW1CakYsTUFBTSxPQUFPLGFBQWE7SUFReEIsSUFDSSxhQUFhLENBQUMsUUFBb0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENB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Ozs0RkFNaEIsYUFBYTtrQkFqQnpCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO3dCQUMxQix5QkFBeUI7cUJBQzFCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7aUdBSzNCLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFJRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVILGFBQWE7c0JBRGhCLEtBQUs7Z0JBU0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQU9JLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBR0UsV0FBVztzQkFBbkIsS0FBSztnQkFJRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBT0ksY0FBYztzQkFBdkIsTUFBTTtnQkFHSCxrQkFBa0I7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTGlzdEhlYWRlciwgTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbGlzdC1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lbnUubW9kZWwnO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IFNhZmVQaXBlLCBTYWZlVHlwZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ljb24tYnV0dG9uLm1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2ZURvbUNoYW5nZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvb2JzZXJ2ZS1kb20tY2hhbmdlL29ic2VydmUtZG9tLWNoYW5nZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS1kb3dubG9hZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRDb21wb25lbnQgfSBmcm9tICcuLi9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG93bmxvYWRGaWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Rvd25sb2FkLWZpbGUubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1saXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNZW51Q29tcG9uZW50LFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEZpbGVEb3dubG9hZENvbXBvbmVudCxcclxuICAgIGZvcndhcmRSZWYoKCkgPT4gU2FmZVBpcGUpLFxyXG4gICAgT2JzZXJ2ZURvbUNoYW5nZURpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGxpc3RJdGVtcyE6IExpc3RJdGVtW107XHJcbiAgbGlzdEhlYWRlciE6IExpc3RIZWFkZXI7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbUFuZEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VsZWN0ZWRNZW51OiBNZW51O1xyXG4gICAgc2VsZWN0ZWRJdGVtOiBMaXN0SXRlbTtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSByZW9yZGVyZWRMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbVtdPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGxpc3REYXRhSXRlbXMobGlzdEl0ZW06IExpc3RJdGVtW10pIHtcclxuICAgIHRoaXMubGlzdEl0ZW1zID0gbGlzdEl0ZW07XHJcbiAgICB0aGlzLmdldExpc3RJdGVtc1Bvc2l0aW9uQW5kTGV2ZWwodGhpcy5saXN0SXRlbXMsIDApO1xyXG4gIH1cclxuICBnZXQgbGlzdERhdGFJdGVtcygpOiBMaXN0SXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3RJdGVtcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBzZXQgbGlzdEhlYWRlckNvbmZpZyhsaXN0SGVhZGVyRGV0YWlsOiBMaXN0SGVhZGVyKSB7XHJcbiAgICB0aGlzLmxpc3RIZWFkZXIgPSBsaXN0SGVhZGVyRGV0YWlsO1xyXG4gIH1cclxuICBnZXQgbGlzdEhlYWRlckNvbmZpZygpOiBMaXN0SGVhZGVyIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3RIZWFkZXI7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBoeXBlckxpbmtBbmRCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRG93bmxvYWRGaWxlPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgQElucHV0KCkgaW5kZW50YXRpb24gPSB0aGlzLmNvbnN0YW50cz8ubGlzdD8uZGVmYXVsdEluZGVudGF0aW9uO1xyXG4gIGFkZExpc3RCdXR0b24hOiBJY29uQnV0dG9uO1xyXG4gIHNhZmVUeXBlOiBzdHJpbmcgPSBTYWZlVHlwZS5IVE1MO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGFkZExpc3RCdXR0b25Db25maWcoYWRkTGlzdEJ1dHRvbjogSWNvbkJ1dHRvbikge1xyXG4gICAgdGhpcy5hZGRMaXN0QnV0dG9uID0gYWRkTGlzdEJ1dHRvbjtcclxuICB9XHJcbiAgZ2V0IGFkZExpc3RCdXR0b25Db25maWcoKTogSWNvbkJ1dHRvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRMaXN0QnV0dG9uO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgZG9tQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE11dGF0aW9uUmVjb3JkPigpO1xyXG4gIF9maWxlRG93bmxvYWRDb25maWchOiBGaWxlRG93bmxvYWRDb25maWc7XHJcbiAgQElucHV0KClcclxuICBzZXQgZmlsZURvd25sb2FkQ29uZmlnKHZhbHVlOiBGaWxlRG93bmxvYWRDb25maWcpIHtcclxuICAgIHRoaXMuX2ZpbGVEb3dubG9hZENvbmZpZyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgZmlsZURvd25sb2FkQ29uZmlnKCk6IEZpbGVEb3dubG9hZENvbmZpZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZURvd25sb2FkQ29uZmlnO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2sgZXZlbnQgb24gY2xpY2sgb2YgaHlwZXIgbGluay5cclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BbmNob3JFbGVtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5oeXBlckxpbmtBbmRCdXR0b25DbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgaW5kZXggcG9zaXRpb24vbnVtYmVyIGFuZCBpdGVtTGV2ZWwgZm9yIGVhY2ggbGlzdCBpdGVtLlxyXG4gICAqIEBwYXJhbSB7TGlzdEl0ZW1bXX0gaXRlbXNcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaXRlbUxldmVsXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXJlbnRJbmRleF1cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldExpc3RJdGVtc1Bvc2l0aW9uQW5kTGV2ZWwoXHJcbiAgICBpdGVtczogTGlzdEl0ZW1bXSxcclxuICAgIGl0ZW1MZXZlbDogbnVtYmVyLFxyXG4gICAgcGFyZW50SW5kZXg/OiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuICAgIGl0ZW1zPy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHBhcmVudEluZGV4XHJcbiAgICAgICAgPyBwYXJlbnRJbmRleCArIChwYXJlbnRJbmRleC5sZW5ndGggPT09IDIgPyAnJyA6ICcuJykgKyAoaW5kZXggKyAxKVxyXG4gICAgICAgIDogaW5kZXggKyAxICsgJy4nO1xyXG4gICAgICBpdGVtLnBvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgICAgIGl0ZW0uaXRlbUxldmVsID0gaXRlbUxldmVsO1xyXG4gICAgICBpZiAoaXRlbS5zdWJJdGVtcylcclxuICAgICAgICB0aGlzLmdldExpc3RJdGVtc1Bvc2l0aW9uQW5kTGV2ZWwoXHJcbiAgICAgICAgICBpdGVtLnN1Ykl0ZW1zLFxyXG4gICAgICAgICAgaXRlbUxldmVsICsgMSxcclxuICAgICAgICAgIHBvc2l0aW9uXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyB0aGUgc2VsZWN0ZWQgbWVudSBhY3Rpb24gYW5kIHRoZSBpdGVtLlxyXG4gICAqIEBwYXJhbSB7TWVudX0gZXZlbnRcclxuICAgKiBAcGFyYW0ge0xpc3RJdGVtfSBpdGVtXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBzZWxlY3RlZE1lbnVBY3Rpb24oZXZlbnQ6IE1lbnUsIGl0ZW06IExpc3RJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbUFuZEFjdGlvbi5lbWl0KHtcclxuICAgICAgc2VsZWN0ZWRNZW51OiBldmVudCxcclxuICAgICAgc2VsZWN0ZWRJdGVtOiBpdGVtLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7TGlzdEl0ZW19IGl0ZW1cclxuICAgKiBAcmV0dXJuIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBMaXN0SXRlbSk6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2sgZXZlbnQgb24gY2xpY2sgb2YgYnV0dG9uLlxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DbGlja0FkZEl0ZW0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmh5cGVyTGlua0FuZEJ1dHRvbkNsaWNrLmVtaXQoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQWRkcyBjbGljayBldmVudCB0byB0aGUgYW5jaG9yIHRhZ3Mgd2hlbmV2ZXIgZG9tIGNoYW5nZXMuXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRvbUNoYW5nZShldmVudDogTXV0YXRpb25SZWNvcmQpIHtcclxuICAgIGNvbnN0IGFuY2hvclRhZ3MgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKTtcclxuICAgIGFuY2hvclRhZ3M/LmZvckVhY2goKGFuY2hvcjogSFRNTEFuY2hvckVsZW1lbnQpID0+IHtcclxuICAgICAgYW5jaG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkFuY2hvckVsZW1lbnRDbGljay5iaW5kKHRoaXMpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kb21DaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZmlsZSBkb3dubG9hZCBldmVudCBlbWl0dGVyLlxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZG93bmxvYWRGaWxlKGZpbGU6IEZpbGUgfCBEb3dubG9hZEZpbGUpOiB2b2lkIHtcclxuICAgIHRoaXMuZG93bmxvYWRTZWxlY3RlZEZpbGUuZW1pdChmaWxlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZpbmcgdGhlIGV2ZW50IGxpc3RlbmVycyBvbiBkZXN0cm95LlxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbmNob3JUYWdzID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XHJcbiAgICBhbmNob3JUYWdzPy5mb3JFYWNoKChhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50KSA9PiB7XHJcbiAgICAgIGFuY2hvci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25BbmNob3JFbGVtZW50Q2xpY2spO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtbGlzdC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8cCAqbmdJZj1cImxpc3RIZWFkZXI/LnRpdGxlXCIgY2xhc3M9XCJpZWVlc2EtdGl0bGUtbGctMjQgbWItMFwiPlxyXG4gICAgICAgIHt7IGxpc3RIZWFkZXIudGl0bGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8cFxyXG4gICAgICAgICpuZ0lmPVwibGlzdEhlYWRlcj8uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWJvZHktbWQtMTQgaWVlZXNhLWxpc3QtZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwibGlzdEhlYWRlci5kZXNjcmlwdGlvbiB8IHNhZmUgOiBzYWZlVHlwZVwiXHJcbiAgICAgICAgaWVlZXNhT2JzZXJ2ZURvbUNoYW5nZVxyXG4gICAgICAgIChkb21DaGFuZ2UpPVwib25Eb21DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID48L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgY2xhc3M9XCJpZWVlc2EtYWRkLWljb24tYnV0dG9uXCJcclxuICAgICAgKm5nSWY9XCJsaXN0SGVhZGVyPy5jYW5TaG93QWRkTGlzdFwiXHJcbiAgICAgIFtpY29uQnV0dG9uXT1cImFkZExpc3RCdXR0b25cIlxyXG4gICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uQ2xpY2tBZGRJdGVtKClcIlxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICBhZGRMaXN0QnV0dG9uPy5kaXNhYmxlZFxyXG4gICAgICAgICAgPyAnaWVlZXNhLWxpc3QtY29udGFpbmVyX19hY3Rpb25zLS1kaXNhYmxlZCdcclxuICAgICAgICAgIDogJydcclxuICAgICAgXCJcclxuICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgcmVjdXJzaXZlTGlzdDtcclxuICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGxpc3RJdGVtcywgaXRlbUxldmVsOiAwIH1cclxuICAgIFwiXHJcbiAgPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNyZWN1cnNpdmVMaXN0IGxldC1pdGVtcyBsZXQtaXRlbUxldmVsPVwiaXRlbUxldmVsXCI+XHJcbiAgPG1hdC1saXN0IGNsYXNzPVwiaWVlZXNhLWxpc3QtaXRlbVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW0tY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgIFtzdHlsZS5tYXJnaW5MZWZ0LnB4XT1cIml0ZW1MZXZlbCAqIGluZGVudGF0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19yb290LWxldmVsLWl0ZW0nOiBpdGVtTGV2ZWwgPT09IDAsXHJcbiAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19zdWJpdGVtJzogaXRlbUxldmVsID4gMFxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtX19pdGVtIGQtZmxleFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpc3QtbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAge3sgaXRlbT8ucG9zaXRpb24gfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZSBkLWJsb2NrXCI+e3sgaXRlbT8udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWxpc3QtaXRlbV9fZGVzYyBkLWJsb2NrXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0/LmRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpZWVlc2EtZmlsZS1kb3dubG9hZFxyXG4gICAgICAgICAgICAgICAgW2ZpbGVEb3dubG9hZENvbmZpZ109XCJmaWxlRG93bmxvYWRDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgW2Rvd25sb2FkRmlsZXNdPVwiaXRlbT8uYXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgICAgICAgKGRvd25sb2FkU2VsZWN0ZWRGaWxlKT1cImRvd25sb2FkRmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICA+PC9pZWVlc2EtZmlsZS1kb3dubG9hZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbWVudV9fYWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxpZWVlc2EtbWVudVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uYWN0aW9uTWVudXNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLW1lbnVfX2ljb25cIlxyXG4gICAgICAgICAgICAgIFtidXR0b25dPVwiaXRlbT8uYWN0aW9uSWNvblwiXHJcbiAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJpdGVtPy5hY3Rpb25NZW51c1wiXHJcbiAgICAgICAgICAgICAgKG1lbnVJdGVtQ2xpY2spPVwic2VsZWN0ZWRNZW51QWN0aW9uKCRldmVudCwgaXRlbSlcIlxyXG4gICAgICAgICAgICA+PC9pZWVlc2EtbWVudT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uc3ViSXRlbXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICByZWN1cnNpdmVMaXN0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLnN1Ykl0ZW1zLFxyXG4gICAgICAgICAgICAgIGl0ZW1MZXZlbDogaXRlbUxldmVsICsgMVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1saXN0PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQW1CakYsTUFBTSxPQUFPLGFBQWE7SUFReEIsSUFDSSxhQUFhLENBQUMsUUFBb0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENB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WCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDMUIseUJBQXlCO3FCQUMxQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJO2lHQUszQixxQkFBcUI7c0JBQTlCLE1BQU07Z0JBSUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFSCxhQUFhO3NCQURoQixLQUFLO2dCQVNGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFPSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUdFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUYsbUJBQW1CO3NCQUR0QixLQUFLO2dCQU9JLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0gsa0JBQWtCO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IExpc3RIZWFkZXIsIExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudSB9IGZyb20gJy4uLy4uL21vZGVscy9tZW51Lm1vZGVsJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBTYWZlUGlwZSwgU2FmZVR5cGUgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uL21vZGVscy9pY29uLWJ1dHRvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmVEb21DaGFuZ2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL29ic2VydmUtZG9tLWNoYW5nZS9vYnNlcnZlLWRvbS1jaGFuZ2UuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtZG93bmxvYWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvd25sb2FkRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9kb3dubG9hZC1maWxlLm1vZGVsJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtbGlzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWVudUNvbXBvbmVudCxcclxuICAgIEljb25CdXR0b25Db21wb25lbnQsXHJcbiAgICBGaWxlRG93bmxvYWRDb21wb25lbnQsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IFNhZmVQaXBlKSxcclxuICAgIE9ic2VydmVEb21DaGFuZ2VEaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBsaXN0SXRlbXMhOiBMaXN0SXRlbVtdO1xyXG4gIGxpc3RIZWFkZXIhOiBMaXN0SGVhZGVyO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEl0ZW1BbmRBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHNlbGVjdGVkTWVudTogTWVudTtcclxuICAgIHNlbGVjdGVkSXRlbTogTGlzdEl0ZW07XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgcmVvcmRlcmVkTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1bXT4oKTtcclxuICBASW5wdXQoKVxyXG4gIHNldCBsaXN0RGF0YUl0ZW1zKGxpc3RJdGVtOiBMaXN0SXRlbVtdKSB7XHJcbiAgICB0aGlzLmxpc3RJdGVtcyA9IGxpc3RJdGVtO1xyXG4gICAgdGhpcy5nZXRMaXN0SXRlbXNQb3NpdGlvbkFuZExldmVsKHRoaXMubGlzdEl0ZW1zLCAwKTtcclxuICB9XHJcbiAgZ2V0IGxpc3REYXRhSXRlbXMoKTogTGlzdEl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGxpc3RIZWFkZXJDb25maWcobGlzdEhlYWRlckRldGFpbDogTGlzdEhlYWRlcikge1xyXG4gICAgdGhpcy5saXN0SGVhZGVyID0gbGlzdEhlYWRlckRldGFpbDtcclxuICB9XHJcbiAgZ2V0IGxpc3RIZWFkZXJDb25maWcoKTogTGlzdEhlYWRlciB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0SGVhZGVyO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBkb3dubG9hZFNlbGVjdGVkRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZSB8IERvd25sb2FkRmlsZT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIEBJbnB1dCgpIGluZGVudGF0aW9uID0gdGhpcy5jb25zdGFudHM/Lmxpc3Q/LmRlZmF1bHRJbmRlbnRhdGlvbjtcclxuICBhZGRMaXN0QnV0dG9uITogSWNvbkJ1dHRvbjtcclxuICBzYWZlVHlwZTogc3RyaW5nID0gU2FmZVR5cGUuSFRNTDtcclxuICBASW5wdXQoKVxyXG4gIHNldCBhZGRMaXN0QnV0dG9uQ29uZmlnKGFkZExpc3RCdXR0b246IEljb25CdXR0b24pIHtcclxuICAgIHRoaXMuYWRkTGlzdEJ1dHRvbiA9IGFkZExpc3RCdXR0b247XHJcbiAgfVxyXG4gIGdldCBhZGRMaXN0QnV0dG9uQ29uZmlnKCk6IEljb25CdXR0b24ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkTGlzdEJ1dHRvbjtcclxuICB9XHJcbiAgQE91dHB1dCgpIGRvbUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNdXRhdGlvblJlY29yZD4oKTtcclxuICBfZmlsZURvd25sb2FkQ29uZmlnITogRmlsZURvd25sb2FkQ29uZmlnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZpbGVEb3dubG9hZENvbmZpZyh2YWx1ZTogRmlsZURvd25sb2FkQ29uZmlnKSB7XHJcbiAgICB0aGlzLl9maWxlRG93bmxvYWRDb25maWcgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGZpbGVEb3dubG9hZENvbmZpZygpOiBGaWxlRG93bmxvYWRDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVEb3dubG9hZENvbmZpZztcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGh5cGVyTGlua0FuZEJ1dHRvbkNsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGh5cGVyIGxpbmsuXHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQW5jaG9yRWxlbWVudENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaHlwZXJMaW5rQW5kQnV0dG9uQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGluZGV4IHBvc2l0aW9uL251bWJlciBhbmQgaXRlbUxldmVsIGZvciBlYWNoIGxpc3QgaXRlbS5cclxuICAgKiBAcGFyYW0ge0xpc3RJdGVtW119IGl0ZW1zXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGl0ZW1MZXZlbFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyZW50SW5kZXhdXHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRMaXN0SXRlbXNQb3NpdGlvbkFuZExldmVsKFxyXG4gICAgaXRlbXM6IExpc3RJdGVtW10sXHJcbiAgICBpdGVtTGV2ZWw6IG51bWJlcixcclxuICAgIHBhcmVudEluZGV4Pzogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBwYXJlbnRJbmRleFxyXG4gICAgICAgID8gcGFyZW50SW5kZXggKyAocGFyZW50SW5kZXgubGVuZ3RoID09PSAyID8gJycgOiAnLicpICsgKGluZGV4ICsgMSlcclxuICAgICAgICA6IGluZGV4ICsgMSArICcuJztcclxuICAgICAgaXRlbS5wb3NpdGlvbiA9IHBvc2l0aW9uO1xyXG4gICAgICBpdGVtLml0ZW1MZXZlbCA9IGl0ZW1MZXZlbDtcclxuICAgICAgaWYgKGl0ZW0uc3ViSXRlbXMpXHJcbiAgICAgICAgdGhpcy5nZXRMaXN0SXRlbXNQb3NpdGlvbkFuZExldmVsKFxyXG4gICAgICAgICAgaXRlbS5zdWJJdGVtcyxcclxuICAgICAgICAgIGl0ZW1MZXZlbCArIDEsXHJcbiAgICAgICAgICBwb3NpdGlvblxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG1lbnUgYWN0aW9uIGFuZCB0aGUgaXRlbS5cclxuICAgKiBAcGFyYW0ge01lbnV9IGV2ZW50XHJcbiAgICogQHBhcmFtIHtMaXN0SXRlbX0gaXRlbVxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgc2VsZWN0ZWRNZW51QWN0aW9uKGV2ZW50OiBNZW51LCBpdGVtOiBMaXN0SXRlbSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1BbmRBY3Rpb24uZW1pdCh7XHJcbiAgICAgIHNlbGVjdGVkTWVudTogZXZlbnQsXHJcbiAgICAgIHNlbGVjdGVkSXRlbTogaXRlbSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbGlzdC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge0xpc3RJdGVtfSBpdGVtXHJcbiAgICogQHJldHVybiB7KG51bWJlciB8IHN0cmluZyl9XHJcbiAgICogQG1lbWJlcm9mIExpc3RDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogTGlzdEl0ZW0pOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGh5cGVyTGlua0FuZEJ1dHRvbkNsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGJ1dHRvbi5cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2xpY2tBZGRJdGVtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oeXBlckxpbmtBbmRCdXR0b25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEFkZHMgY2xpY2sgZXZlbnQgdG8gdGhlIGFuY2hvciB0YWdzIHdoZW5ldmVyIGRvbSBjaGFuZ2VzLlxyXG4gICAqIEBtZW1iZXJvZiBMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Eb21DaGFuZ2UoZXZlbnQ6IE11dGF0aW9uUmVjb3JkKSB7XHJcbiAgICBjb25zdCBhbmNob3JUYWdzID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XHJcbiAgICBhbmNob3JUYWdzPy5mb3JFYWNoKChhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50KSA9PiB7XHJcbiAgICAgIGFuY2hvci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25BbmNob3JFbGVtZW50Q2xpY2suYmluZCh0aGlzKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZG9tQ2hhbmdlRXZlbnQuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZpbGUgZG93bmxvYWQgZXZlbnQgZW1pdHRlci5cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRvd25sb2FkRmlsZShmaWxlOiBGaWxlIHwgRG93bmxvYWRGaWxlKTogdm9pZCB7XHJcbiAgICB0aGlzLmRvd25sb2FkU2VsZWN0ZWRGaWxlLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92aW5nIHRoZSBldmVudCBsaXN0ZW5lcnMgb24gZGVzdHJveS5cclxuICAgKiBAbWVtYmVyb2YgTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgY29uc3QgYW5jaG9yVGFncyA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbCgnYScpO1xyXG4gICAgYW5jaG9yVGFncz8uZm9yRWFjaCgoYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCkgPT4ge1xyXG4gICAgICBhbmNob3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uQW5jaG9yRWxlbWVudENsaWNrKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHAgKm5nSWY9XCJsaXN0SGVhZGVyPy50aXRsZVwiIGNsYXNzPVwiaWVlZXNhLXRpdGxlLWxnLTI0IG1iLTBcIj5cclxuICAgICAgICB7eyBsaXN0SGVhZGVyLnRpdGxlIH19XHJcbiAgICAgIDwvcD5cclxuICAgICAgPHBcclxuICAgICAgICAqbmdJZj1cImxpc3RIZWFkZXI/LmRlc2NyaXB0aW9uXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ib2R5LW1kLTE0IGllZWVzYS1saXN0LWRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cImxpc3RIZWFkZXIuZGVzY3JpcHRpb24gfCBzYWZlIDogc2FmZVR5cGVcIlxyXG4gICAgICAgIGllZWVzYU9ic2VydmVEb21DaGFuZ2VcclxuICAgICAgICAoZG9tQ2hhbmdlKT1cIm9uRG9tQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICA+PC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWFkZC1pY29uLWJ1dHRvblwiXHJcbiAgICAgICpuZ0lmPVwibGlzdEhlYWRlcj8uY2FuU2hvd0FkZExpc3RcIlxyXG4gICAgICBbaWNvbkJ1dHRvbl09XCJhZGRMaXN0QnV0dG9uXCJcclxuICAgICAgKGljb25CdXR0b25DbGljayk9XCJvbkNsaWNrQWRkSXRlbSgpXCJcclxuICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgYWRkTGlzdEJ1dHRvbj8uZGlzYWJsZWRcclxuICAgICAgICAgID8gJ2llZWVzYS1saXN0LWNvbnRhaW5lcl9fYWN0aW9ucy0tZGlzYWJsZWQnXHJcbiAgICAgICAgICA6ICcnXHJcbiAgICAgIFwiXHJcbiAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgIHJlY3Vyc2l2ZUxpc3Q7XHJcbiAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBsaXN0SXRlbXMsIGl0ZW1MZXZlbDogMCB9XHJcbiAgICBcIlxyXG4gID5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlTGlzdCBsZXQtaXRlbXMgbGV0LWl0ZW1MZXZlbD1cIml0ZW1MZXZlbFwiPlxyXG4gIDxtYXQtbGlzdCBjbGFzcz1cImllZWVzYS1saXN0LWl0ZW1cIj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtLWNvbnRhaW5lciBkLWZsZXhcIlxyXG4gICAgICAgIFtzdHlsZS5tYXJnaW5MZWZ0LnB4XT1cIml0ZW1MZXZlbCAqIGluZGVudGF0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19yb290LWxldmVsLWl0ZW0nOiBpdGVtTGV2ZWwgPT09IDAsXHJcbiAgICAgICAgICAgICdpZWVlc2EtbGlzdC1pdGVtX19zdWJpdGVtJzogaXRlbUxldmVsID4gMFxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbGlzdC1pdGVtX19pdGVtIGQtZmxleFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpc3QtbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAge3sgaXRlbT8ucG9zaXRpb24gfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZSBkLWJsb2NrXCI+e3sgaXRlbT8udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWxpc3QtaXRlbV9fZGVzYyBkLWJsb2NrXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0/LmRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpZWVlc2EtZmlsZS1kb3dubG9hZFxyXG4gICAgICAgICAgICAgICAgW2ZpbGVEb3dubG9hZENvbmZpZ109XCJmaWxlRG93bmxvYWRDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgW2Rvd25sb2FkRmlsZXNdPVwiaXRlbT8uYXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgICAgICAgKGRvd25sb2FkU2VsZWN0ZWRGaWxlKT1cImRvd25sb2FkRmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICA+PC9pZWVlc2EtZmlsZS1kb3dubG9hZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtbWVudV9fYWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxpZWVlc2EtbWVudVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uYWN0aW9uTWVudXNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLW1lbnVfX2ljb25cIlxyXG4gICAgICAgICAgICAgIFtidXR0b25dPVwiaXRlbT8uYWN0aW9uSWNvblwiXHJcbiAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJpdGVtPy5hY3Rpb25NZW51c1wiXHJcbiAgICAgICAgICAgICAgKG1lbnVJdGVtQ2xpY2spPVwic2VsZWN0ZWRNZW51QWN0aW9uKCRldmVudCwgaXRlbSlcIlxyXG4gICAgICAgICAgICA+PC9pZWVlc2EtbWVudT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uc3ViSXRlbXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICByZWN1cnNpdmVMaXN0O1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLnN1Ykl0ZW1zLFxyXG4gICAgICAgICAgICAgIGl0ZW1MZXZlbDogaXRlbUxldmVsICsgMVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1saXN0PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWZpbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9tb2RlbHMvZGVsZXRlLWZpbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZVBheWxvYWQge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZVJlc3BvbnNlIHtcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIGJvZHk6IHtcclxuICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICB9O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWZpbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9tb2RlbHMvZGVsZXRlLWZpbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZVBheWxvYWQge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZSB7XHJcbiAgaWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUZpbGVSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5OiBEZWxldGVGaWxlO1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc2VudGF0aW9uL3NyYy9saWIvbW9kZWxzL2ZpbGUtYXR0YWNobWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaWxlQXR0YWNobWVudCB7XHJcbiAgYWdlbmRhSXRlbUlkOiBzdHJpbmc7XHJcbiAgYWdlbmRhSWQ6IHN0cmluZztcclxuICBzM0ZpbGVQYXRoOiBzdHJpbmc7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVBdHRhY2htZW50UGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogRmlsZUF0dGFjaG1lbnRbXTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc2VudGF0aW9uL3NyYy9saWIvbW9kZWxzL2ZpbGUtYXR0YWNobWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaWxlQXR0YWNobWVudCB7XHJcbiAgYWdlbmRhSXRlbUlkOiBzdHJpbmc7XHJcbiAgYWdlbmRhSWQ6IHN0cmluZztcclxuICBzM0ZpbGVQYXRoOiBzdHJpbmc7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVBdHRhY2htZW50UGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogRmlsZUF0dGFjaG1lbnRbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVBdHRhY2htZW50UmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keToge1xyXG4gICAgaWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgICBuYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9tb2RlbHMvZmlsZS11cGxvYWQtcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZEJvZHlSZXNwb25zZSB7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBwcmVTaWduZWRVcmw6IHN0cmluZztcclxuICBzM1BhdGg6IHN0cmluZztcclxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIGJvZHk6IEZpbGVVcGxvYWRCb2R5UmVzcG9uc2VbXTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9tb2RlbHMvZmlsZS11cGxvYWQtcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZEJvZHlSZXNwb25zZSB7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBwcmVTaWduZWRVcmw6IHN0cmluZztcclxuICBzM1BhdGg6IHN0cmluZztcclxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIGJvZHk6IEZpbGVVcGxvYWRCb2R5UmVzcG9uc2VbXSB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -240,8 +240,8 @@ export class FileUploadService {
240
240
  let fileName = '';
241
241
  if (typeof file === 'string')
242
242
  fileName = file;
243
- else if (Object.values(file).length)
244
- fileName = Object.values(file)[0].name;
243
+ else if (Object?.values(file)?.length)
244
+ fileName = Object?.values(file)?.[0]?.name;
245
245
  else
246
246
  fileName = file.name;
247
247
  let httpRequest;
@@ -376,4 +376,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
376
376
  providedIn: 'root',
377
377
  }]
378
378
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.HttpBackend }, { type: i1.AlertsService }, { type: i1.LoaderNotificationService }]; } });
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0scUJBQXFCLENBQUM7QUFRN0IsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLElBQUksRUFDSixHQUFHLEVBRUgsT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLFNBQVMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVl0RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO0lBQ0UsMENBQTBDO0lBQ25DLFdBQXdCLEVBQy9CLE9BQW9CO0lBQ3BCLDBDQUEwQztJQUNuQyxZQUEyQjtJQUNsQywwQ0FBMEM7SUFDbkMseUJBQW9EO1FBTHBELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFqQjdELGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNwRCxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBSXRCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLG1DQUE4QixHQUFHLENBQUMsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFXcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJ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LFVBQVUsQ0FBQyxpQkFBeUI7UUFDbEMsTUFBTSxpQkFBaUIsR0FBc0I7UUFDM0MseURBQXlEO1FBQ3pELGdCQUFnQjtRQUNoQix3QkFBd0I7U0FDekIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsT0FBTyxDQUNOLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxpQkFBaUIsRUFBRSxFQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUMvRDthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQWhjVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwQmFja2VuZCxcclxuICBIdHRwQ2xpZW50LFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwRXZlbnRUeXBlLFxyXG4gIEh0dHBIZWFkZXJzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBBbGVydFR5cGUsXHJcbiAgSHR0cFNlcnZpY2UsXHJcbiAgTG9hZGVyTm90aWZpY2F0aW9uU2VydmljZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBGaWxlVXBsb2FkUHJlc2lnbmVkVXJsLFxyXG4gIEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUGF5bG9hZCxcclxuICBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFJlc3BvbnNlLFxyXG4gIEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybFBheWxvYWQsXHJcbiAgR2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybFBheWxvYWQsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXByZXNpZ25lZC11cmwtcmVzLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBjYXRjaEVycm9yLFxyXG4gIGNvbmNhdE1hcCxcclxuICBmcm9tLFxyXG4gIGxhc3QsXHJcbiAgbWFwLFxyXG4gIE9ic2VydmFibGUsXHJcbiAgU3ViamVjdCxcclxuICB0YWtlLFxyXG4gIHRha2VVbnRpbCxcclxuICB0YXAsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkUGF5bG9hZCB9IGZyb20gJy4uL21vZGVscy9maWxlLXVwbG9hZC1wYXlsb2FkLW1vZGVsJztcclxuaW1wb3J0IHtcclxuICBGaWxlVXBsb2FkQm9keVJlc3BvbnNlLFxyXG4gIEZpbGVVcGxvYWRSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvZmlsZS11cGxvYWQtcmVzcG9uc2UubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZUZpbGVQYXlsb2FkLFxyXG4gIERlbGV0ZUZpbGVSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvZGVsZXRlLWZpbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBEb3dubG9hZEZpbGUgfSBmcm9tICcuLi9tb2RlbHMvZG93bmxvYWQtZmlsZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGludGVyYWN0cyB3aXRoIHRoZSBzZXJ2ZXIgdG8gb2J0YWluIHByZS1zaWduZWQgVVJMcyBmb3IgZmlsZSB1cGxvYWQgYW5kIHVwbG9hZHMgZmlsZXMgdG8gQW1hem9uIFMzLlxyXG4gKiBAY2xhc3MgRmlsZVVwbG9hZFNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIGZpbGVCeXRlQXJyYXk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XHJcbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcclxuICBpc0ZpbGVVcGxvYWRpbmcgPSBmYWxzZTtcclxuICBmaWxlc05hbWVzVXBsb2FkRmFpbGVkITogc3RyaW5nW107XHJcbiAgZmlsZXNVcGxvYWRlZFN1Y2Nlc3NmdWxseUNvdW50ID0gMDtcclxuICB1cGxvYWRlZEZpbGVOYW1lID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxyXG4gICAgaGFuZGxlcjogSHR0cEJhY2tlbmQsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBsb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlOiBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGJhc2UgVVJMIGZvciBBUEkgcmVxdWVzdHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUJhc2VVcmwgLUFQSSBiYXNlIFVSTC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBzZXRBcGlCYXNlVXJsKGFwaUJhc2VVcmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciB1cGxvYWRpbmcgZmlsZXMgdG8gQW1hem9uIFMzIGJ1Y2tldC5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaWxlVXBsb2FkUHJlc2lnbmVkVXJsPn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsKFxyXG4gICAgZmlsZTogRmlsZSB8IEZpbGVMaXN0LFxyXG4gICAgYXBwSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8RmlsZVVwbG9hZFByZXNpZ25lZFVybD4ge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAoT2JqZWN0LnZhbHVlcyhmaWxlKS5sZW5ndGgpIGZpbGVOYW1lID0gT2JqZWN0LnZhbHVlcyhmaWxlKVswXS5uYW1lO1xyXG4gICAgZWxzZSBmaWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICBjb25zdCBmaWxlVXBsb2FkUHJlc2lnbmVkVXJsUGF5bG9hZDogR2V0RmlsZVVwbG9hZFByZXNpZ25lZFVybFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBmaWxlTmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgdGVuYW50QXBwSWQ6IGFwcElkIGFzIHN0cmluZyxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9zMy91cGxvYWRGaWxlVXJsYCxcclxuICAgICAgICBmaWxlVXBsb2FkUHJlc2lnbmVkVXJsUGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcHJlLXNpZ25lZCBVUkwgZm9yIHRoZSBmaWxlcyB0byBiZSB1cGxvYWRlZCBpbiBTMyBidWNrZXRcclxuICAgKiBAcGFyYW0gZmlsZVVwbG9hZFBheWxvYWRcclxuICAgKiBAcGFyYW0gZmlsZVVwbG9hZEFQSVBhdGhcclxuICAgKi9cclxuICBnZXRQcmVTaWduZWRVUkwoXHJcbiAgICBmaWxlVXBsb2FkUGF5bG9hZDogRmlsZVVwbG9hZFBheWxvYWQsXHJcbiAgICBmaWxlVXBsb2FkQVBJUGF0aCA9ICcnXHJcbiAgKTogT2JzZXJ2YWJsZTxGaWxlVXBsb2FkUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9LyR7ZmlsZVVwbG9hZEFQSVBhdGh9YCwgZmlsZVVwbG9hZFBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgZmlsZSB0byBBV1MgUzMgdXNpbmcgYSBwcmUtc2lnbmVkIFVSTC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlU2lnbmVkVXJsXHJcbiAgICogQHBhcmFtIGZpbGVzXHJcbiAgICogQHBhcmFtIGlzTXVsdGlwbGVGaWxlVXBsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxhbnk+fSAtUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyB0aGUgZmlsZSB0byBTMy5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICB1cGxvYWRGaWxlVG9TMyhcclxuICAgIHByZVNpZ25lZFVybDogRmlsZVVwbG9hZEJvZHlSZXNwb25zZVtdIHwgc3RyaW5nLFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGlzTXVsdGlwbGVGaWxlVXBsb2FkID0gZmFsc2VcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMubG9hZGVyTm90aWZpY2F0aW9uU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCBmaWxlc0FycmF5ID0gW107XHJcbiAgICB0aGlzLmZpbGVzTmFtZXNVcGxvYWRGYWlsZWQgPSBbXTtcclxuICAgIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9ICcnO1xyXG4gICAgaWYgKGlzTXVsdGlwbGVGaWxlVXBsb2FkKSB7XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNvbnN0IGluZGV4Rm9yUHJlU2lnbmVkVXJsID0gKHByZVNpZ25lZFVybCBhcyBbXSkuZmluZEluZGV4KFxyXG4gICAgICAgICAgKHg6IEZpbGVVcGxvYWRCb2R5UmVzcG9uc2UpID0+XHJcbiAgICAgICAgICAgIHguZmlsZU5hbWUgPT09IChmaWxlIGFzIEZpbGUpLm5hbWUgJiYgeC5lcnJvck1lc3NhZ2UgPT0gbnVsbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGluZGV4Rm9yUHJlU2lnbmVkVXJsID4gLTEpIHtcclxuICAgICAgICAgIGZpbGVzQXJyYXkucHVzaCh7XHJcbiAgICAgICAgICAgIHByZVNpZ25lZFVybDogKFxyXG4gICAgICAgICAgICAgIHByZVNpZ25lZFVybFtpbmRleEZvclByZVNpZ25lZFVybF0gYXMgRmlsZVVwbG9hZEJvZHlSZXNwb25zZVxyXG4gICAgICAgICAgICApPy5wcmVTaWduZWRVcmwsXHJcbiAgICAgICAgICAgIGZpbGVPYmo6IGZpbGUgYXMgRmlsZSxcclxuICAgICAgICAgICAgZmlsZVR5cGU6IChmaWxlIGFzIEZpbGUpLnR5cGUsXHJcbiAgICAgICAgICAgIGZpbGVTaXplOiAoZmlsZSBhcyBGaWxlKS5zaXplLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbGVzQXJyYXkucHVzaCh7XHJcbiAgICAgICAgcHJlU2lnbmVkVXJsOiBwcmVTaWduZWRVcmwgYXMgc3RyaW5nLFxyXG4gICAgICAgIGZpbGVPYmo6IGZpbGVzIGFzIEZpbGUsXHJcbiAgICAgICAgZmlsZVR5cGU6IChmaWxlcyBhcyBGaWxlKS50eXBlLFxyXG4gICAgICAgIGZpbGVTaXplOiAoZmlsZXMgYXMgRmlsZSkuc2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbShmaWxlc0FycmF5KS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGZpbGUpID0+XHJcbiAgICAgICAgdGhpcy5odHRwQ2FsbFRvQVdTKFxyXG4gICAgICAgICAgZmlsZS5wcmVTaWduZWRVcmwsXHJcbiAgICAgICAgICBmaWxlLmZpbGVPYmosXHJcbiAgICAgICAgICBmaWxlLmZpbGVUeXBlLFxyXG4gICAgICAgICAgZmlsZS5maWxlU2l6ZVxyXG4gICAgICAgIClcclxuICAgICAgKSxcclxuICAgICAgdGFrZShmaWxlc0FycmF5Lmxlbmd0aClcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGh0dHAgY2FsbCB0byBBV1MgdG8gdXBsb2FkIGZpbGUgaW4gUzMgYnVja2V0XHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByZVNpZ25lZFVybFxyXG4gICAqIEBwYXJhbSB7RmlsZX0gZmlsZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlVHlwZVxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmaWxlU2l6ZVxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxhbnk+fVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGh0dHBDYWxsVG9BV1MoXHJcbiAgICBwcmVTaWduZWRVcmw6IHN0cmluZyxcclxuICAgIGZpbGU6IEZpbGUsXHJcbiAgICBmaWxlVHlwZTogc3RyaW5nLFxyXG4gICAgZmlsZVNpemU6IG51bWJlclxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsIGZpbGVUeXBlLnRvU3RyaW5nKCkpO1xyXG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtTGVuZ3RoJywgZmlsZVNpemUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucHV0KHByZVNpZ25lZFVybCwgZmlsZSwge1xyXG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxyXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLmdldEV2ZW50TWVzc2FnZShldmVudCwgZmlsZSkpLFxyXG4gICAgICAgIHRhcCgobWVzc2FnZSkgPT4gdGhpcy5zaG93UHJvZ3Jlc3MobWVzc2FnZSkpLFxyXG4gICAgICAgIGxhc3QoKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGZpbGUgdXBsb2FkIHByb2dyZXNzLlxyXG4gICAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgc2hvd1Byb2dyZXNzKG1lc3NhZ2U6IGFueSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGRpc3RpbmN0IG1lc3NhZ2UgZm9yIHNlbnQsIHVwbG9hZCBwcm9ncmVzcywgJiByZXNwb25zZSBldmVudHMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXZlbnQ8YW55Pn0gZXZlbnRcclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdFdmVudCBmcm9tIGZpbGUgdXBsb2FkIHRvIEFXUycsIGV2ZW50KTtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgbGV0IGZpbGVTaXplOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xyXG4gICAgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgZmlsZVNpemUgPSAoZmlsZSBhcyBGaWxlKS5zaXplO1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5TZW50OlxyXG4gICAgICAgIHJldHVybiBgVXBsb2FkaW5nIGZpbGUgXCIke2ZpbGVOYW1lfVwiIG9mIHNpemUgJHtmaWxlU2l6ZX0uYDtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xyXG4gICAgICAgIGNvbnN0IHBlcmNlbnREb25lID0gZXZlbnQ/LnRvdGFsXHJcbiAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuICAgICAgICAgIDogMDtcclxuICAgICAgICByZXR1cm4gYEZpbGUgXCIke2ZpbGVOYW1lfVwiIGlzICR7cGVyY2VudERvbmV9JSB1cGxvYWRlZC5gO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICBpZiAoZXZlbnQuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuZmlsZXNVcGxvYWRlZFN1Y2Nlc3NmdWxseUNvdW50Kys7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZU5hbWUgPSBmaWxlTmFtZTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVzTmFtZXNVcGxvYWRGYWlsZWQucHVzaChmaWxlTmFtZSk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBgRmlsZSBcIiR7ZmlsZU5hbWV9XCIgc3VycHJpc2luZyB1cGxvYWQgZXZlbnQ6ICR7ZXZlbnQudHlwZX0uYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIGZpbGUgdG8gYnl0ZSBhcnJheS5cclxuICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBjb252ZXJ0RmlsZVRvQnl0ZUFycmF5KGZpbGU6IEZpbGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IHJlYWRlcj8ucmVzdWx0IGFzIEFycmF5QnVmZmVyO1xyXG4gICAgICB0aGlzLmZpbGVCeXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8ubWVzc2FnZT8uZXJyb3I/LmVycm9yUmVhZGluZ0ZpbGUsXHJcbiAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGU/LkVSUk9SLFxyXG4gICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0cyBmaWxlIGJ5dGUgYXJyYXkgZm9ybWF0IHRvIHVuZGVmaW5lZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBjbGVhckZpbGVCeXRlQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVCeXRlQXJyYXkgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGZpbGUgdXBsb2FkIHN0YXR1cy5cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXR1c1xyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEZpbGVVcGxvYWRTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsZVVwbG9hZGluZyA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgZmlsZSB1cGxvYWQgc3RhdHVzLlxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZVVwbG9hZFN0YXR1cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzRmlsZVVwbG9hZGluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciBkb3dubG9hZGluZyBmaWxlcyB0byBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHN0cmluZz59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhcclxuICAgIGZpbGU6IEZpbGUgfCBGaWxlTGlzdCB8IHN0cmluZyB8IERvd25sb2FkRmlsZSxcclxuICAgIGlzUHVibGljQVBJPzogYm9vbGVhbixcclxuICAgIGRvbWFpblVybD86IHN0cmluZyxcclxuICAgIGRvd25sb2FkVXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFJlc3BvbnNlPiB7XHJcbiAgICBsZXQgZmlsZU5hbWUgPSAnJztcclxuICAgIGlmICh0eXBlb2YgZmlsZSA9PT0gJ3N0cmluZycpIGZpbGVOYW1lID0gZmlsZTtcclxuICAgIGVsc2UgaWYgKE9iamVjdC52YWx1ZXMoZmlsZSkubGVuZ3RoKSBmaWxlTmFtZSA9IE9iamVjdC52YWx1ZXMoZmlsZSlbMF0ubmFtZTtcclxuICAgIGVsc2UgZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgbGV0IGh0dHBSZXF1ZXN0ITogT2JzZXJ2YWJsZTxcclxuICAgICAgc3RyaW5nIHwgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRSZXNwb25zZVxyXG4gICAgPjtcclxuICAgIGlmIChpc1B1YmxpY0FQSSkge1xyXG4gICAgICBjb25zdCBmaWxlRG93bmxvYWRQcmVzaWduZWRVcmxQYXlsb2FkOiBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxQYXlsb2FkID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlTmFtZSxcclxuICAgICAgICAgICAgZG9tYWluOiBkb21haW5VcmwgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9wdWJsaWMvZG93bmxvYWRGaWxlVXJsYCxcclxuICAgICAgICBmaWxlRG93bmxvYWRQcmVzaWduZWRVcmxQYXlsb2FkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGRvd25sb2FkVXJpKSB7XHJcbiAgICAgIGNvbnN0IGZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUGF5bG9hZDogR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgIGF0dGFjaG1lbnRJZDogKGZpbGUgYXMgRG93bmxvYWRGaWxlKS5hdHRhY2htZW50SWQsXHJcbiAgICAgICAgICAgIHByZVNpZ25lZER1cmF0aW9uOiB0aGlzLmNvbnN0YW50cz8uZmlsZURvd25sb2FkPy5wcmVTaWduZWREdXJhdGlvbixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgaHR0cFJlcXVlc3QgPSB0aGlzLmh0dHBTZXJ2aWNlLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0ke2Rvd25sb2FkVXJpfWAsXHJcbiAgICAgICAgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UuZ2V0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3MzL2Rvd25sb2FkRmlsZVVybC8ke2ZpbGVOYW1lfWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBodHRwUmVxdWVzdC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXMpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZHMgZmlsZSB0byBBV1MgUzMgdXNpbmcgYSBwcmVzaWduZWQgVVJMLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRvd25sb2FkRmlsZShmaWxlRG93bmxvYWRQcmVzaWduZWRVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChmaWxlRG93bmxvYWRQcmVzaWduZWRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZmlsZXMgdXBsb2FkZWQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXMgLVRoZSBmaWxlcyB0byBiZSB2YWxpZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1heEZpbGVTaXplXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgdGhlIHRvdGFsIHNpemUgb2YgZmlsZXMgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgbGltaXQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICB2YWxpZGF0ZUZpbGVTaXplKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIG1heEZpbGVTaXplOiBudW1iZXIsXHJcbiAgICBpc011bHRpRmlsZVVwbG9hZDogYm9vbGVhblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIGxldCB0b3RhbFNpemUgPSAwO1xyXG4gICAgICBPYmplY3QudmFsdWVzKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgdG90YWxTaXplICs9IGZpbGUuc2l6ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0b3RhbFNpemUgLyAoMTAyNCAqIDEwMjQpIDw9IG1heEZpbGVTaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChmaWxlcyBhcyBGaWxlKS5zaXplIC8gKDEwMjQgKiAxMDI0KSA8PSBtYXhGaWxlU2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgZmlsZSB0eXBlcyBvZiB0aGUgdXBsb2FkZWQgZmlsZXMuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZXNcclxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhbGxvd2VkRmlsZVR5cGVzXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc011bHRpRmlsZVVwbG9hZFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC1SZXR1cm5zIHRydWUgaWYgYWxsIGZpbGVzIGhhdmUgdmFsaWQgZXh0ZW5zaW9ucywgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZVR5cGVzKFxyXG4gICAgZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCxcclxuICAgIGFsbG93ZWRGaWxlVHlwZXM6IHN0cmluZ1tdLFxyXG4gICAgaXNNdWx0aUZpbGVVcGxvYWQ6IGJvb2xlYW5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbGlkYXRlU2luZ2xlRmlsZSA9IChmaWxlOiBGaWxlKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcclxuICAgICAgcmV0dXJuIGFsbG93ZWRGaWxlVHlwZXM/LmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pO1xyXG4gICAgfTtcclxuICAgIGlmIChpc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICBsZXQgYWxsRmlsZXNWYWxpZCA9IHRydWU7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpPy5mb3JFYWNoKChmaWxlSXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNpbmdsZUZpbGUoZmlsZUl0ZW0pKSB7XHJcbiAgICAgICAgICBhbGxGaWxlc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGFsbEZpbGVzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWRhdGVTaW5nbGVGaWxlKGZpbGVzIGFzIEZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIGV4dGVuc2lvbiBvZiBhIGZpbGUgZnJvbSBpdHMgbmFtZS5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZVxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLVRoZSBmaWxlIGV4dGVuc2lvbiBpbiBsb3dlcmNhc2UuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIHJldHVybiBmaWxlTmFtZT8uc3BsaXQoJy4nKS5wb3AoKSEudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBmaWxlIGJ5IGdpdmVuIGZpbGVJZFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlSWRcclxuICAgKiBAcmV0dXJuIHsqfSAge09ic2VydmFibGU8RGVsZXRlRmlsZVJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBkZWxldGVGaWxlKGRlbGV0ZUZpbGVBcGlQYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERlbGV0ZUZpbGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgZGVsZXRlRmlsZVBheWxvYWQ6IERlbGV0ZUZpbGVQYXlsb2FkID0ge1xyXG4gICAgICAvLyBBc3NpZ24gZGF0YSBoZXJlIGlmIG5lZWRlZCB0byBzZW5kIGFueSBwYXlsb2FkIGluIGJvZHlcclxuICAgICAgLy8gZXhhbXBsZSBiZWxvd1xyXG4gICAgICAvLyBmaWxlSWQ6IGFyZ3VtZW50c1swXSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9LyR7ZGVsZXRlRmlsZUFwaVBhdGh9YCxcclxuICAgICAgICBPYmplY3Qua2V5cyhkZWxldGVGaWxlUGF5bG9hZCkubGVuZ3RoID8gZGVsZXRlRmlsZVBheWxvYWQgOiB7fVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25EZXN0cm95IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byB1bnN1YnNjcmliZSB0aGUgb3BlbiBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0scUJBQXFCLENBQUM7QUFRN0IsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLElBQUksRUFDSixHQUFHLEVBRUgsT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLFNBQVMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVl0RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO0lBQ0UsMENBQTBDO0lBQ25DLFdBQXdCLEVBQy9CLE9BQW9CO0lBQ3BCLDBDQUEwQztJQUNuQyxZQUEyQjtJQUNsQywwQ0FBMEM7SUFDbkMseUJBQW9EO1FBTHBELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR3hCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBRTNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFqQjdELGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNwRCxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBSXRCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLG1DQUE4QixHQUFHLENBQUMsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFXcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJ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O0lBQ0gsVUFBVSxDQUFDLGlCQUF5QjtRQUNsQyxNQUFNLGlCQUFpQixHQUFzQjtRQUMzQyx5REFBeUQ7UUFDekQsZ0JBQWdCO1FBQ2hCLHdCQUF3QjtTQUN6QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLGlCQUFpQixFQUFFLEVBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQy9EO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBaGNVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBCYWNrZW5kLFxyXG4gIEh0dHBDbGllbnQsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBFdmVudFR5cGUsXHJcbiAgSHR0cEhlYWRlcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEFsZXJ0VHlwZSxcclxuICBIdHRwU2VydmljZSxcclxuICBMb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVVcGxvYWRQcmVzaWduZWRVcmwsXHJcbiAgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkLFxyXG4gIEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUmVzcG9uc2UsXHJcbiAgR2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCxcclxuICBHZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCxcclxufSBmcm9tICcuLi9tb2RlbHMvZmlsZS11cGxvYWQtcHJlc2lnbmVkLXVybC1yZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgY29uY2F0TWFwLFxyXG4gIGZyb20sXHJcbiAgbGFzdCxcclxuICBtYXAsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBTdWJqZWN0LFxyXG4gIHRha2UsXHJcbiAgdGFrZVVudGlsLFxyXG4gIHRhcCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXBheWxvYWQtbW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEZpbGVVcGxvYWRCb2R5UmVzcG9uc2UsXHJcbiAgRmlsZVVwbG9hZFJlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9maWxlLXVwbG9hZC1yZXNwb25zZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlRmlsZVBheWxvYWQsXHJcbiAgRGVsZXRlRmlsZVJlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy9kZWxldGUtZmlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IERvd25sb2FkRmlsZSB9IGZyb20gJy4uL21vZGVscy9kb3dubG9hZC1maWxlLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgaW50ZXJhY3RzIHdpdGggdGhlIHNlcnZlciB0byBvYnRhaW4gcHJlLXNpZ25lZCBVUkxzIGZvciBmaWxlIHVwbG9hZCBhbmQgdXBsb2FkcyBmaWxlcyB0byBBbWF6b24gUzMuXHJcbiAqIEBjbGFzcyBGaWxlVXBsb2FkU2VydmljZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgY29uc3RhbnRzID0gY29uc3RhbnRzO1xyXG4gIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgZmlsZUJ5dGVBcnJheTogVWludDhBcnJheSB8IHVuZGVmaW5lZDtcclxuICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50O1xyXG4gIGlzRmlsZVVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIGZpbGVzTmFtZXNVcGxvYWRGYWlsZWQhOiBzdHJpbmdbXTtcclxuICBmaWxlc1VwbG9hZGVkU3VjY2Vzc2Z1bGx5Q291bnQgPSAwO1xyXG4gIHVwbG9hZGVkRmlsZU5hbWUgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICBoYW5kbGVyOiBIdHRwQmFja2VuZCxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2U6IExvYWRlck5vdGlmaWNhdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgYmFzZSBVUkwgZm9yIEFQSSByZXF1ZXN0cy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpQmFzZVVybCAtQVBJIGJhc2UgVVJMLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEFwaUJhc2VVcmwoYXBpQmFzZVVybDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaUJhc2VVcmwgPSBhcGlCYXNlVXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHByZXNpZ25lZCBVUkwgZm9yIHVwbG9hZGluZyBmaWxlcyB0byBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEZpbGVVcGxvYWRQcmVzaWduZWRVcmw+fVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEZpbGVVcGxvYWRQcmVzaWduZWRVcmwoXHJcbiAgICBmaWxlOiBGaWxlIHwgRmlsZUxpc3QsXHJcbiAgICBhcHBJZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxGaWxlVXBsb2FkUHJlc2lnbmVkVXJsPiB7XHJcbiAgICBsZXQgZmlsZU5hbWUgPSAnJztcclxuICAgIGlmIChPYmplY3QudmFsdWVzKGZpbGUpLmxlbmd0aCkgZmlsZU5hbWUgPSBPYmplY3QudmFsdWVzKGZpbGUpWzBdLm5hbWU7XHJcbiAgICBlbHNlIGZpbGVOYW1lID0gKGZpbGUgYXMgRmlsZSkubmFtZTtcclxuICAgIGNvbnN0IGZpbGVVcGxvYWRQcmVzaWduZWRVcmxQYXlsb2FkOiBHZXRGaWxlVXBsb2FkUHJlc2lnbmVkVXJsUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGZpbGVOYW1lOiBmaWxlTmFtZSxcclxuICAgICAgICB0ZW5hbnRBcHBJZDogYXBwSWQgYXMgc3RyaW5nLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3MzL3VwbG9hZEZpbGVVcmxgLFxyXG4gICAgICAgIGZpbGVVcGxvYWRQcmVzaWduZWRVcmxQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBwcmUtc2lnbmVkIFVSTCBmb3IgdGhlIGZpbGVzIHRvIGJlIHVwbG9hZGVkIGluIFMzIGJ1Y2tldFxyXG4gICAqIEBwYXJhbSBmaWxlVXBsb2FkUGF5bG9hZFxyXG4gICAqIEBwYXJhbSBmaWxlVXBsb2FkQVBJUGF0aFxyXG4gICAqL1xyXG4gIGdldFByZVNpZ25lZFVSTChcclxuICAgIGZpbGVVcGxvYWRQYXlsb2FkOiBGaWxlVXBsb2FkUGF5bG9hZCxcclxuICAgIGZpbGVVcGxvYWRBUElQYXRoID0gJydcclxuICApOiBPYnNlcnZhYmxlPEZpbGVVcGxvYWRSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vJHtmaWxlVXBsb2FkQVBJUGF0aH1gLCBmaWxlVXBsb2FkUGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvclJlcztcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBmaWxlIHRvIEFXUyBTMyB1c2luZyBhIHByZS1zaWduZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVTaWduZWRVcmxcclxuICAgKiBAcGFyYW0gZmlsZXNcclxuICAgKiBAcGFyYW0gaXNNdWx0aXBsZUZpbGVVcGxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPGFueT59IC1SZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2UgYWZ0ZXIgdXBsb2FkaW5nIHRoZSBmaWxlIHRvIFMzLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHVwbG9hZEZpbGVUb1MzKFxyXG4gICAgcHJlU2lnbmVkVXJsOiBGaWxlVXBsb2FkQm9keVJlc3BvbnNlW10gfCBzdHJpbmcsXHJcbiAgICBmaWxlczogRmlsZSB8IEZpbGVMaXN0LFxyXG4gICAgaXNNdWx0aXBsZUZpbGVVcGxvYWQgPSBmYWxzZVxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5sb2FkZXJOb3RpZmljYXRpb25TZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnN0IGZpbGVzQXJyYXkgPSBbXTtcclxuICAgIHRoaXMuZmlsZXNOYW1lc1VwbG9hZEZhaWxlZCA9IFtdO1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVOYW1lID0gJyc7XHJcbiAgICBpZiAoaXNNdWx0aXBsZUZpbGVVcGxvYWQpIHtcclxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlcykuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY29uc3QgaW5kZXhGb3JQcmVTaWduZWRVcmwgPSAocHJlU2lnbmVkVXJsIGFzIFtdKS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoeDogRmlsZVVwbG9hZEJvZHlSZXNwb25zZSkgPT5cclxuICAgICAgICAgICAgeC5maWxlTmFtZSA9PT0gKGZpbGUgYXMgRmlsZSkubmFtZSAmJiB4LmVycm9yTWVzc2FnZSA9PSBudWxsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaW5kZXhGb3JQcmVTaWduZWRVcmwgPiAtMSkge1xyXG4gICAgICAgICAgZmlsZXNBcnJheS5wdXNoKHtcclxuICAgICAgICAgICAgcHJlU2lnbmVkVXJsOiAoXHJcbiAgICAgICAgICAgICAgcHJlU2lnbmVkVXJsW2luZGV4Rm9yUHJlU2lnbmVkVXJsXSBhcyBGaWxlVXBsb2FkQm9keVJlc3BvbnNlXHJcbiAgICAgICAgICAgICk/LnByZVNpZ25lZFVybCxcclxuICAgICAgICAgICAgZmlsZU9iajogZmlsZSBhcyBGaWxlLFxyXG4gICAgICAgICAgICBmaWxlVHlwZTogKGZpbGUgYXMgRmlsZSkudHlwZSxcclxuICAgICAgICAgICAgZmlsZVNpemU6IChmaWxlIGFzIEZpbGUpLnNpemUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsZXNBcnJheS5wdXNoKHtcclxuICAgICAgICBwcmVTaWduZWRVcmw6IHByZVNpZ25lZFVybCBhcyBzdHJpbmcsXHJcbiAgICAgICAgZmlsZU9iajogZmlsZXMgYXMgRmlsZSxcclxuICAgICAgICBmaWxlVHlwZTogKGZpbGVzIGFzIEZpbGUpLnR5cGUsXHJcbiAgICAgICAgZmlsZVNpemU6IChmaWxlcyBhcyBGaWxlKS5zaXplLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKGZpbGVzQXJyYXkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoZmlsZSkgPT5cclxuICAgICAgICB0aGlzLmh0dHBDYWxsVG9BV1MoXHJcbiAgICAgICAgICBmaWxlLnByZVNpZ25lZFVybCxcclxuICAgICAgICAgIGZpbGUuZmlsZU9iaixcclxuICAgICAgICAgIGZpbGUuZmlsZVR5cGUsXHJcbiAgICAgICAgICBmaWxlLmZpbGVTaXplXHJcbiAgICAgICAgKVxyXG4gICAgICApLFxyXG4gICAgICB0YWtlKGZpbGVzQXJyYXkubGVuZ3RoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTWFrZXMgaHR0cCBjYWxsIHRvIEFXUyB0byB1cGxvYWQgZmlsZSBpbiBTMyBidWNrZXRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlU2lnbmVkVXJsXHJcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVUeXBlXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZpbGVTaXplXHJcbiAgICogQHJldHVybiB7Kn0gIHtPYnNlcnZhYmxlPGFueT59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgaHR0cENhbGxUb0FXUyhcclxuICAgIHByZVNpZ25lZFVybDogc3RyaW5nLFxyXG4gICAgZmlsZTogRmlsZSxcclxuICAgIGZpbGVUeXBlOiBzdHJpbmcsXHJcbiAgICBmaWxlU2l6ZTogbnVtYmVyXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgZmlsZVR5cGUudG9TdHJpbmcoKSk7XHJcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1MZW5ndGgnLCBmaWxlU2l6ZS50b1N0cmluZygpKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wdXQocHJlU2lnbmVkVXJsLCBmaWxlLCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIG1hcCgoZXZlbnQpID0+IHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50LCBmaWxlKSksXHJcbiAgICAgICAgdGFwKChtZXNzYWdlKSA9PiB0aGlzLnNob3dQcm9ncmVzcyhtZXNzYWdlKSksXHJcbiAgICAgICAgbGFzdCgpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgZmlsZSB1cGxvYWQgcHJvZ3Jlc3MuXHJcbiAgICogQHBhcmFtIHsqfSBtZXNzYWdlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgbm8tdW51c2VkLXZhcnMsIG5vLWVtcHR5LWZ1bmN0aW9uLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICBzaG93UHJvZ3Jlc3MobWVzc2FnZTogYW55KSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gZGlzdGluY3QgbWVzc2FnZSBmb3Igc2VudCwgdXBsb2FkIHByb2dyZXNzLCAmIHJlc3BvbnNlIGV2ZW50cy5cclxuICAgKiBAcGFyYW0ge0h0dHBFdmVudDxhbnk+fSBldmVudFxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAcmV0dXJuIHsqfVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0RXZlbnRNZXNzYWdlKGV2ZW50OiBIdHRwRXZlbnQ8YW55PiwgZmlsZTogRmlsZSkge1xyXG4gICAgY29uc29sZS5sb2coJ0V2ZW50IGZyb20gZmlsZSB1cGxvYWQgdG8gQVdTJywgZXZlbnQpO1xyXG4gICAgbGV0IGZpbGVOYW1lID0gJyc7XHJcbiAgICBsZXQgZmlsZVNpemU6IG51bWJlciB8IHN0cmluZyA9IDA7XHJcbiAgICBmaWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICBmaWxlU2l6ZSA9IChmaWxlIGFzIEZpbGUpLnNpemU7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XHJcbiAgICAgICAgcmV0dXJuIGBVcGxvYWRpbmcgZmlsZSBcIiR7ZmlsZU5hbWV9XCIgb2Ygc2l6ZSAke2ZpbGVTaXplfS5gO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXHJcbiAgICAgICAgY29uc3QgcGVyY2VudERvbmUgPSBldmVudD8udG90YWxcclxuICAgICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxyXG4gICAgICAgICAgOiAwO1xyXG4gICAgICAgIHJldHVybiBgRmlsZSBcIiR7ZmlsZU5hbWV9XCIgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICB0aGlzLmxvYWRlck5vdGlmaWNhdGlvblNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGlmIChldmVudC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5maWxlc1VwbG9hZGVkU3VjY2Vzc2Z1bGx5Q291bnQrKztcclxuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IGZpbGVOYW1lO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmlsZXNOYW1lc1VwbG9hZEZhaWxlZC5wdXNoKGZpbGVOYW1lKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGBGaWxlIFwiJHtmaWxlTmFtZX1cIiBzdXJwcmlzaW5nIHVwbG9hZCBldmVudDogJHtldmVudC50eXBlfS5gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgZmlsZSB0byBieXRlIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7RmlsZX0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnZlcnRGaWxlVG9CeXRlQXJyYXkoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gcmVhZGVyPy5yZXN1bHQgYXMgQXJyYXlCdWZmZXI7XHJcbiAgICAgIHRoaXMuZmlsZUJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcclxuICAgIH07XHJcbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5tZXNzYWdlPy5lcnJvcj8uZXJyb3JSZWFkaW5nRmlsZSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXRzIGZpbGUgYnl0ZSBhcnJheSBmb3JtYXQgdG8gdW5kZWZpbmVkLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGNsZWFyRmlsZUJ5dGVBcnJheSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZUJ5dGVBcnJheSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgZmlsZSB1cGxvYWQgc3RhdHVzLlxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc3RhdHVzXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0RmlsZVVwbG9hZFN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGaWxlVXBsb2FkaW5nID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBmaWxlIHVwbG9hZCBzdGF0dXMuXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRGaWxlVXBsb2FkU3RhdHVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNGaWxlVXBsb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHByZXNpZ25lZCBVUkwgZm9yIGRvd25sb2FkaW5nIGZpbGVzIHRvIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8c3RyaW5nPn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBnZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxzKFxyXG4gICAgZmlsZTogRmlsZSB8IEZpbGVMaXN0IHwgc3RyaW5nIHwgRG93bmxvYWRGaWxlLFxyXG4gICAgaXNQdWJsaWNBUEk/OiBib29sZWFuLFxyXG4gICAgZG9tYWluVXJsPzogc3RyaW5nLFxyXG4gICAgZG93bmxvYWRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPHN0cmluZyB8IEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybEJ5QXR0YWNobWVudElkUmVzcG9uc2U+IHtcclxuICAgIGxldCBmaWxlTmFtZSA9ICcnO1xyXG4gICAgaWYgKHR5cGVvZiBmaWxlID09PSAnc3RyaW5nJykgZmlsZU5hbWUgPSBmaWxlO1xyXG4gICAgZWxzZSBpZiAoT2JqZWN0Py52YWx1ZXMoZmlsZSk/Lmxlbmd0aCkgZmlsZU5hbWUgPSBPYmplY3Q/LnZhbHVlcyhmaWxlKT8uWzBdPy5uYW1lO1xyXG4gICAgZWxzZSBmaWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICBsZXQgaHR0cFJlcXVlc3QhOiBPYnNlcnZhYmxlPFxyXG4gICAgICBzdHJpbmcgfCBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFJlc3BvbnNlXHJcbiAgICA+O1xyXG4gICAgaWYgKGlzUHVibGljQVBJKSB7XHJcbiAgICAgIGNvbnN0IGZpbGVEb3dubG9hZFByZXNpZ25lZFVybFBheWxvYWQ6IEdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybFBheWxvYWQgPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAgICAgICBkb21haW46IGRvbWFpblVybCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgIGh0dHBSZXF1ZXN0ID0gdGhpcy5odHRwU2VydmljZS5wb3N0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL3B1YmxpYy9kb3dubG9hZEZpbGVVcmxgLFxyXG4gICAgICAgIGZpbGVEb3dubG9hZFByZXNpZ25lZFVybFBheWxvYWRcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoZG93bmxvYWRVcmkpIHtcclxuICAgICAgY29uc3QgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsQnlBdHRhY2htZW50SWRQYXlsb2FkOiBHZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFBheWxvYWQgPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgYXR0YWNobWVudElkOiAoZmlsZSBhcyBEb3dubG9hZEZpbGUpLmF0dGFjaG1lbnRJZCxcclxuICAgICAgICAgICAgcHJlU2lnbmVkRHVyYXRpb246IHRoaXMuY29uc3RhbnRzPy5maWxlRG93bmxvYWQ/LnByZVNpZ25lZER1cmF0aW9uLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgICBodHRwUmVxdWVzdCA9IHRoaXMuaHR0cFNlcnZpY2UucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfSR7ZG93bmxvYWRVcml9YCxcclxuICAgICAgICBmaWxlRG93bmxvYWRQcmVzaWduZWRVcmxCeUF0dGFjaG1lbnRJZFBheWxvYWRcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGh0dHBSZXF1ZXN0ID0gdGhpcy5odHRwU2VydmljZS5nZXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvczMvZG93bmxvYWRGaWxlVXJsLyR7ZmlsZU5hbWV9YFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGh0dHBSZXF1ZXN0LnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvclJlcykgPT4ge1xyXG4gICAgICAgIHRocm93IGVycm9yUmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkcyBmaWxlIHRvIEFXUyBTMyB1c2luZyBhIHByZXNpZ25lZCBVUkwuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxhbnk+fVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZG93bmxvYWRGaWxlKGZpbGVEb3dubG9hZFByZXNpZ25lZFVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGZpbGVEb3dubG9hZFByZXNpZ25lZFVybCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyb3JSZXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBmaWxlcyB1cGxvYWRlZC5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlcyAtVGhlIGZpbGVzIHRvIGJlIHZhbGlkYXRlZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4RmlsZVNpemVcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTXVsdGlGaWxlVXBsb2FkXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLVJldHVybnMgdHJ1ZSBpZiB0aGUgdG90YWwgc2l6ZSBvZiBmaWxlcyBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBsaW1pdCwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZVNpemUoXHJcbiAgICBmaWxlczogRmlsZSB8IEZpbGVMaXN0LFxyXG4gICAgbWF4RmlsZVNpemU6IG51bWJlcixcclxuICAgIGlzTXVsdGlGaWxlVXBsb2FkOiBib29sZWFuXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoaXNNdWx0aUZpbGVVcGxvYWQpIHtcclxuICAgICAgbGV0IHRvdGFsU2l6ZSA9IDA7XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsZXMpLmZvckVhY2goKGZpbGU6IEZpbGUpID0+IHtcclxuICAgICAgICB0b3RhbFNpemUgKz0gZmlsZS5zaXplO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRvdGFsU2l6ZSAvICgxMDI0ICogMTAyNCkgPD0gbWF4RmlsZVNpemU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKGZpbGVzIGFzIEZpbGUpLnNpemUgLyAoMTAyNCAqIDEwMjQpIDw9IG1heEZpbGVTaXplO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSBmaWxlIHR5cGVzIG9mIHRoZSB1cGxvYWRlZCBmaWxlcy5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlc1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFsbG93ZWRGaWxlVHlwZXNcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTXVsdGlGaWxlVXBsb2FkXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLVJldHVybnMgdHJ1ZSBpZiBhbGwgZmlsZXMgaGF2ZSB2YWxpZCBleHRlbnNpb25zLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICovXHJcbiAgdmFsaWRhdGVGaWxlVHlwZXMoXHJcbiAgICBmaWxlczogRmlsZSB8IEZpbGVMaXN0LFxyXG4gICAgYWxsb3dlZEZpbGVUeXBlczogc3RyaW5nW10sXHJcbiAgICBpc011bHRpRmlsZVVwbG9hZDogYm9vbGVhblxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdmFsaWRhdGVTaW5nbGVGaWxlID0gKGZpbGU6IEZpbGUpOiBib29sZWFuID0+IHtcclxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlLm5hbWUpO1xyXG4gICAgICByZXR1cm4gYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XHJcbiAgICB9O1xyXG4gICAgaWYgKGlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIGxldCBhbGxGaWxlc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlcyk/LmZvckVhY2goKGZpbGVJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoIXZhbGlkYXRlU2luZ2xlRmlsZShmaWxlSXRlbSkpIHtcclxuICAgICAgICAgIGFsbEZpbGVzVmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYWxsRmlsZXNWYWxpZDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZGF0ZVNpbmdsZUZpbGUoZmlsZXMgYXMgRmlsZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyBhbmQgcmV0dXJucyB0aGUgZXh0ZW5zaW9uIG9mIGEgZmlsZSBmcm9tIGl0cyBuYW1lLlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSAtVGhlIGZpbGUgZXh0ZW5zaW9uIGluIGxvd2VyY2FzZS5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBwcml2YXRlIGdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgcmV0dXJuIGZpbGVOYW1lPy5zcGxpdCgnLicpLnBvcCgpIS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBEZWxldGVzIGZpbGUgYnkgZ2l2ZW4gZmlsZUlkXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVJZFxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxEZWxldGVGaWxlUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkU2VydmljZVxyXG4gICAqL1xyXG4gIGRlbGV0ZUZpbGUoZGVsZXRlRmlsZUFwaVBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8RGVsZXRlRmlsZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBkZWxldGVGaWxlUGF5bG9hZDogRGVsZXRlRmlsZVBheWxvYWQgPSB7XHJcbiAgICAgIC8vIEFzc2lnbiBkYXRhIGhlcmUgaWYgbmVlZGVkIHRvIHNlbmQgYW55IHBheWxvYWQgaW4gYm9keVxyXG4gICAgICAvLyBleGFtcGxlIGJlbG93XHJcbiAgICAgIC8vIGZpbGVJZDogYXJndW1lbnRzWzBdLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vJHtkZWxldGVGaWxlQXBpUGF0aH1gLFxyXG4gICAgICAgIE9iamVjdC5rZXlzKGRlbGV0ZUZpbGVQYXlsb2FkKS5sZW5ndGggPyBkZWxldGVGaWxlUGF5bG9hZCA6IHt9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIHVuc3Vic2NyaWJlIHRoZSBvcGVuIG9ic2VydmFibGUgc3Vic2NyaXB0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZFNlcnZpY2VcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19