@reusa/ngx-reusa-app-lib 0.0.1331 → 0.0.1332

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.
@@ -219,7 +219,6 @@ export class MenuComponent extends BasePage {
219
219
  this.showFavButton = this.ls.isCsr();
220
220
  }
221
221
  setClaimantMenu() {
222
- console.log("STATE CHECK", this.isME());
223
222
  this.menus = [
224
223
  {
225
224
  label: "Menus",
@@ -418,4 +417,4 @@ export class MenuComponent extends BasePage {
418
417
  args: [{ selector: 'app-menu', template: "<ion-menu side=\"start\" menuId=\"first\" contentId=\"main-content\" *ngIf=\"ls.isLoggedIn() && menus && menus.length > 0\" (ionDidOpen)=\"menuOpened()\">\r\n <ion-header>\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button autoHide=\"false\" pTooltip=\"Close menu\" tooltipPosition=\"bottom\"\r\n *ngIf=\"ls.isLoggedIn()\"> \r\n <ion-icon color=\"success\" name=\"close\"></ion-icon>\r\n </ion-menu-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <ion-content>\r\n <p-accordion *ngIf=\"menus && menus.length > 0 && (!ls.isClaimant() || legacyMenu == 'true')\">\r\n <p-accordionTab *ngFor=\"let menu of ls.getMenuBs() | async; let i = index\" [header]=\"menu.label\">\r\n <ion-list>\r\n <ion-item button *ngFor=\"let item of menu.items\" (click)=\"openPage(item)\" lines=\"none\">\r\n <ion-icon name=\"link\" color=\"primary\" slot=\"start\" *ngIf=\"!item.icon\" style=\"margin-inline-end: 15px !important;\"></ion-icon>\r\n <ion-icon [name]=\"item.icon\" color=\"primary\" slot=\"start\" *ngIf=\"item.icon\" style=\"margin-inline-end: 15px !important;\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: small;\">{{item.label}}</ion-label>\r\n <ion-button slot=\"end\" (click)=\"markFavourite(item); $event.stopPropagation();\" color=\"warning\" *ngIf=\"showFavButton\">\r\n <ion-icon name=\"star-outline\" *ngIf=\"!item.state.isFav\"></ion-icon>\r\n <ion-icon name=\"star-sharp\" *ngIf=\"item.state.isFav\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n </ion-list>\r\n </p-accordionTab>\r\n </p-accordion>\r\n\r\n <div *ngIf=\"menus && menus.length > 0 && (ls.isClaimant() && legacyMenu == 'false')\">\r\n <div *ngFor=\"let menu of ls.getMenuBs() | async; let i = index; let isLast = last\">\r\n <ion-list>\r\n <ion-item button *ngFor=\"let item of menu.items\" (click)=\"openPage(item)\" lines=\"none\">\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\" [ngClass]=\"showIcon(item) ? 'selected-menu' : 'selected-menu-unselect'\">{{item.label}}</ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </div>\r\n <p-divider></p-divider>\r\n\r\n <ion-list>\r\n <ion-item button lines=\"none\" (click)=\"presentMyProfilePopover($event)\">\r\n <ion-icon name=\"person-circle-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">User Profile</ion-label>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"navigate('cp', 'documents')\">\r\n <i class='pi pi-file' style=\"color: rgba(68, 120, 170, 1); padding-right: 15px;\"></i>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">Documents</ion-label>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"presentMyNotificationPopover($event)\">\r\n <ion-icon name=\"notifications-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">Notifications</ion-label>\r\n <ion-badge color=\"dark\" *ngIf=\"ns.notificationCount.getValue() > 0\">\r\n <ion-label>{{ns.notificationCount.getValue()}}</ion-label>\r\n </ion-badge>\r\n </ion-item>\r\n <ion-item button lines=\"none\" (click)=\"logout()\">\r\n <ion-icon name=\"log-out-outline\" slot=\"start\" class=\"menu-icon\" color=\"primary\"></ion-icon>\r\n <ion-label color=\"primary\" style=\"font-size: 31px;\">Logout</ion-label>\r\n </ion-item>\r\n </ion-list>\r\n\r\n </div>\r\n </ion-content>\r\n</ion-menu>\r\n<app-profile *ngIf=\"showProfilePopup\" (onCancel)=\"showProfilePopup = !showProfilePopup\"></app-profile>", styles: ["ion-menu ion-content{--background: var(--ion-item-background, var(--ion-background-color, #fff))}ion-note{display:inline-block;font-size:16px;color:var(--ion-color-medium-shade)}ion-item.selected{--color: var(--ion-color-primary)}mat-expansion-panel-header{background:var(--ion-color-light)}.link{margin-right:25px;cursor:pointer;text-decoration:none;pointer-events:auto!important}.link:hover{color:var(--ion-color-yellow)!important}.footer-links{color:var(--ion-color-grey)!important}.header-links{color:var(--ion-color-primary)!important}.ios ion-menu::part(container){padding-top:25px!important}.selected-menu{-webkit-text-decoration:underline 2px;text-decoration:underline 2px;text-underline-offset:3px;text-decoration-color:var(--ion-color-secondary)}.selected-menu-unselect{text-decoration:none}.menu-icon{margin-inline-end:15px!important;font-size:20px}:host ::ng-deep .p-accordion .p-accordion-content{padding:0!important}:host ::ng-deep .p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem .5rem!important}:host ::ng-deep .p-accordion-header{background:var(--ion-color-light)!important}\n"] }]
419
418
  }], () => [{ type: i1.NavController }, { type: i1.PopoverController }, { type: i2.LoginService }, { type: i3.NotificationService }, { type: i4.Router }, { type: i1.MenuController }, { type: i5.UtilService }, { type: i4.ActivatedRoute }], null); })();
420
419
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuComponent, { className: "MenuComponent", filePath: "lib\\components\\menu\\menu.component.ts", lineNumber: 19 }); })();
421
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBSWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7SUNQeEMsMENBQzhCO0lBQ3hCLDhCQUFrRDtJQUN4RCxpQkFBa0I7OztJQVNkLCtCQUE2SDs7O0lBQzdILCtCQUFtSTs7O0lBQXpILG1DQUFrQjs7O0lBRzFCLCtCQUFtRTs7O0lBQ25FLCtCQUFnRTs7OztJQUZsRSxzQ0FBc0g7SUFBL0YsMFFBQVMsOEJBQW1CLFNBQUUsZUFBQSx3QkFBd0IsQ0FBQSxJQUFFO0lBQzdFLDJJQUFtRSw4SEFBQTtJQUVyRSxpQkFBYTs7O0lBRm9CLGVBQXVCO0lBQXZCLDJDQUF1QjtJQUN6QixlQUFzQjtJQUF0QiwwQ0FBc0I7Ozs7SUFOdkQsb0NBQXVGO0lBQXRDLHlRQUFTLGVBQUEseUJBQWMsQ0FBQSxJQUFDO0lBQ3ZFLDhIQUE2SCxpSEFBQTtJQUU3SCxxQ0FBcUQ7SUFBQSxZQUFjO0lBQUEsaUJBQVk7SUFDL0Usa0lBR2E7SUFDZixpQkFBVzs7OztJQVAyQyxlQUFnQjtJQUFoQixvQ0FB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IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNZW51Q29udHJvbGxlciwgTmF2Q29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBNeU5vdGlmaWNhdGlvbnNQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktbm90aWZpY2F0aW9ucy9teS1ub3RpZmljYXRpb25zLnBhZ2UnO1xuaW1wb3J0IHsgTXlQcm9maWxlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3BvcG92ZXJzL215LXByb2ZpbGUvbXktcHJvZmlsZS5wYWdlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBtZW51czogTWVudUl0ZW1bXTtcbiAgcHVibGljIGFwcFZlcnNpb24gPSBMaWJDb25zdGFudHMuYXBwVmVyc2lvbjtcbiAgcHVibGljIHNob3dGYXZCdXR0b24gPSBmYWxzZTtcbiAgcHVibGljIHJlUmVuZGVyTWVudSA9IHRydWU7XG4gIHB1YmxpYyBsZWdhY3lNZW51ID0gTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnU7XG4gIHB1YmxpYyBzaG93UHJvZmlsZVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLCBwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIG5zOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBcbiAgICAgICAgICAgICAgcHVibGljIHI6IFJvdXRlciwgcHVibGljIG1lbnU6IE1lbnVDb250cm9sbGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBhciA6IEFjdGl2YXRlZFJvdXRlKSB7IFxuICAgICAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICAgIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwVXNlck1lbnUoKTtcbiAgICB0aGlzLnNob3dGYXZCdXR0b24gPSB0aGlzLmxzLmlzQ3NyKCk7XG4gIH1cblxuICBzZXRNZW51KHVzZXI6IFVzZXJNb2RlbCkge1xuICAgIGlmICh1c2VyKSB7XG4gICAgICB0aGlzLm5zLnNldHVwTm90aWZpY2F0aW9uVGltZXIoKTtcbiAgICAgIGlmKCF0aGlzLmxzLmlzQ2xhaW1hbnQoKSB8fCB0aGlzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnKXtcbiAgICAgICAgdGhpcy5sb2FkTWVudSgpO1xuICAgICAgfWVsc2Uge1xuICAgICAgICB0aGlzLnNldENsYWltYW50TWVudSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lbnVzID0gW107XG4gICAgICB0aGlzLm5zLnJlbW92ZU5vdGlmaWNhdGlvblRpbWVyKCk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0ZhdkJ1dHRvbiA9IHRoaXMubHMuaXNDc3IoKTtcbiAgfVxuXG4gIHNldENsYWltYW50TWVudSgpe1xuICAgIGNvbnNvbGUubG9nKFwiU1RBVEUgQ0hFQ0tcIix0aGlzLmlzTUUoKSk7XG4gICAgdGhpcy5tZW51cyA9IFtcbiAgICAge1xuICAgICAgIGxhYmVsOiBcIk1lbnVzXCIsXG4gICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJsYWJlbFwiOiBcIkhvbWVcIiwgXG4gICAgICAgICAgICBcInN0YXRlXCIgOiB7XG4gICAgICAgICAgICAgIFwiY29uc29ydGl1bVN0YXRlXCIgOiBbXCJtc1wiXSxcbiAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wiY2xhaW1hbnRcIl0sXG4gICAgICAgICAgICAgIFwicm91dGVyTGlua1wiOiBcIndlbGNvbWVcIixcbiAgICAgICAgICAgICAgXCJjb250ZXh0XCIgOiBcImNwXCIsXG4gICAgICAgICAgICAgIFwiaWRcIjogXCJtZW51LTE4XCJcbiAgICAgICAgICAgIH19LFxuICAgICAgICAgICAgLi4uKCF0aGlzLmlzTVMoKSA/IFt7XG4gICAgICAgICAgICAgIGxhYmVsOiBcIkNsYWltc1wiLFxuICAgICAgICAgICAgICBzdGF0ZToge1xuICAgICAgICAgICAgICAgIGNvbnNvcnRpdW1TdGF0ZTogW1wibXNcIl0sXG4gICAgICAgICAgICAgICAgcm9sZXM6IFtcImNsYWltYW50XCJdLFxuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFwiY2xhaW1hbnQtaW5kdWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgY29udGV4dDogXCJjcFwiLFxuICAgICAgICAgICAgICAgIGlkOiBcIm1lbnUtMTlcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XSA6IFtdKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibGFiZWxcIjogXCJXZWVrbHlcIiwgXG4gICAgICAgICAgICBcInN0YXRlXCIgOiB7XG4gICAgICAgICAgICAgIFwiY29uc29ydGl1bVN0YXRlXCIgOiBbXCJtc1wiXSxcbiAgICAgICAgICAgICAgXCJyb2xlc1wiIDogW1wiY2xhaW1hbnRcIl0sXG4gICAgICAgICAgICAgIFwicm91dGVyTGlua1wiOiBcInYzL3dlZWtsaWVzXCIsXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxuICAgICAgICAgICAgICBcImlkXCI6IFwibWVudS0xNlwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibGFiZWxcIjogXCJIaXN0b3J5XCIsIFxuICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wibXNcIl0sXG4gICAgICAgICAgICAgIFwicm9sZXNcIiA6IFtcImNsYWltYW50XCJdLFxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJoaXN0b3J5XCIsXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxuICAgICAgICAgICAgICBcImlkXCI6IFwibWVudS0xN1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXVxuICAgICB9XG4gICAgXTtcbiAgICB0aGlzLmxzLmdldE1lbnVCcygpLm5leHQodGhpcy5tZW51cyk7XG4gIH1cblxuICBsb2FkTWVudSgpe1xuICAgIHRoaXMubHNcbiAgICAgICAgLmdldFVzZXJNZW51cygpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVudXMgPSByZXM7XG4gICAgICAgICAgICB0aGlzLmxzLmdldE1lbnVCcygpLm5leHQodGhpcy5tZW51cyk7XG4gICAgICAgICAgICB0aGlzLmZldGNoTm90aWZpY2F0aW9ucygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVudXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dChudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gIH1cblxuICBmZXRjaE5vdGlmaWNhdGlvbnMoKXtcbiAgICB0aGlzLm5zXG4gICAgICAgIC5nZXROb3RpZmljYXRpb25zKClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5ucy5ub3RpZmljYXRpb25zLm5leHQocmVzKTtcbiAgICAgICAgICAgIHRoaXMubnMuZ2V0VW5yZWFkTm90aWZpY2F0aW9uQ291bnQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLm5zLm5vdGlmaWNhdGlvbkNvdW50Lm5leHQoMCk7XG4gICAgICAgICAgICB0aGlzLm5zLm5vdGlmaWNhdGlvbnMubmV4dChbXSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFVzZXJNZW51KCkge1xuICAgIHRoaXMubHNcbiAgICAgIC5nZXRVc2VyQnMoKVxuICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcbiAgICAgICAgaWYodXNlciAmJiAhdXNlci5pczJGQVJlcXVpcmVkKXtcbiAgICAgICAgICB0aGlzLnNldE1lbnUodXNlcik7XG4gICAgICAgIH0gZWxzZXtcbiAgICAgICAgICB0aGlzLm1lbnVzID0gW107XG4gICAgICAgICAgdGhpcy5ucy5yZW1vdmVOb3RpZmljYXRpb25UaW1lcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5QYWdlKG1lbnU6IE1lbnVJdGVtKSB7XG4gICAgaWYgKCFtZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBhcHBOYW1lID0gbWVudS5zdGF0ZS5hcHA7XG4gICAgbGV0IG1lbnVDb250ZXh0Um9vdCA9IGAvJHttZW51LnN0YXRlLmNvbnRleHR9YDtcbiAgICBsZXQgcGFnZVRvTmF2aWdhdGUgOiBzdHJpbmcgPSBtZW51LnN0YXRlLnJvdXRlckxpbms7XG5cbiAgICBpZihhcHBOYW1lID09ICdiZW4nKXtcbiAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfSR7bWVudUNvbnRleHRSb290fS8ke3BhZ2VUb05hdmlnYXRlfT9hPSR7dGhpcy5scy5nZXRVc2VyKCkuYWNjZXNzX3Rva2VufSZyPSR7dGhpcy5scy5nZXRVc2VyKCkucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgICB9KTtcbiAgICB9ZWxzZSBpZihhcHBOYW1lID09ICd0YXgnKXtcbiAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy50YXhVcmxFeHRlcm5hbH0ke21lbnVDb250ZXh0Um9vdH0vJHtwYWdlVG9OYXZpZ2F0ZX0/YT0ke3RoaXMubHMuZ2V0VXNlcigpLmFjY2Vzc190b2tlbn0mcj0ke3RoaXMubHMuZ2V0VXNlcigpLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnRDb250ZXh0Um9vdCA9IHRoaXMudXRpbC5nZXRDb250ZXh0Um9vdCgpO1xuICAgIFxuICAgIGlmKGN1cnJlbnRDb250ZXh0Um9vdCA9PSBtZW51Q29udGV4dFJvb3Qpe1xuICAgICAgdGhpcy5yLm5hdmlnYXRlQnlVcmwoYC8ke3BhZ2VUb05hdmlnYXRlfWApO1xuICAgIH0gZWxzZXtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QobWVudUNvbnRleHRSb290LCBtZW51LnN0YXRlLnJvdXRlckxpbmspO1xuICAgIH1cbiAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgfVxuXG4gIG1hcmtGYXZvdXJpdGUoaXRlbSl7XG4gICAgaWYoaXRlbS5zdGF0ZS5pc0Zhdil7XG4gICAgICBpdGVtLnN0YXRlLmlzRmF2ID0gIWl0ZW0uc3RhdGUuaXNGYXY7XG4gICAgICB0aGlzLmxzXG4gICAgICAgICAgLnJlbW92ZUZhdihpdGVtLnN0YXRlLmlkKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dChyZXMpO1xuICAgICAgICAgICAgdGhpcy51dGlsLnRvYXN0KFwiUmVtb3ZlZCBGYXZvdXJpdGUuXCIpO1xuICAgICAgICAgIH0pO1xuICAgIH1lbHNlIHtcbiAgICAgIGl0ZW0uc3RhdGUuaXNGYXYgPSAhaXRlbS5zdGF0ZS5pc0ZhdjtcbiAgICAgIHRoaXMubHNcbiAgICAgICAgICAubWFya0ZhdihpdGVtLnN0YXRlLmlkKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMubHMuZ2V0TWVudUJzKCkubmV4dChyZXMpO1xuICAgICAgICAgICAgdGhpcy51dGlsLnRvYXN0KFwiTWFya2VkIEZhdm91cml0ZS5cIik7XG4gICAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkhvbWUoKXtcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJy93ZWxjb21lJyk7XG4gIH1cblxuICBtZW51T3BlbmVkKCl7XG4gICAgdGhpcy5yZVJlbmRlck1lbnUgPSBmYWxzZTtcbiAgICB0aGlzLnJlUmVuZGVyTWVudSA9IHRydWU7XG4gIH1cblxuICBzaG93SWNvbihpdGVtKXtcbiAgICBsZXQgY3VycmVudFJvdXRlID0gdGhpcy5yLnVybC5yZXBsYWNlKCcvJywgJycpO1xuICAgIHJldHVybiBjdXJyZW50Um91dGUuaW5jbHVkZXMoaXRlbS5zdGF0ZS5yb3V0ZXJMaW5rKTtcbiAgfVxuXG4gIG5hdmlnYXRlKGNvbnRleHRSb290LCB1cmkpe1xuICAgIGxldCBjdXJyZW50Q29udGV4dFJvb3QgPSB0aGlzLnV0aWwuZ2V0Q29udGV4dFJvb3QoKTtcbiAgICBsZXQgdGFyZ2V0ID0gYC8ke2NvbnRleHRSb290fWA7XG5cbiAgICBpZihjdXJyZW50Q29udGV4dFJvb3QgPT0gdGFyZ2V0KXtcbiAgICAgIHRoaXMubmF2Lm5hdmlnYXRlRm9yd2FyZChgLyR7dXJpfWApO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdCh0YXJnZXQsIHVyaSk7XG4gICAgfVxuICAgIHRoaXMubWVudS5jbG9zZSgpO1xuICB9XG5cbiAgYXN5bmMgcHJlc2VudE15Tm90aWZpY2F0aW9uUG9wb3ZlcihldmVudCkge1xuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcHVwLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IE15Tm90aWZpY2F0aW9uc1BhZ2UsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGNzc0NsYXNzOiAnaGVhZGVyLXBvcG92ZXInXG4gICAgfSk7XG5cbiAgICBwb3BvdmVyLm9uRGlkRGlzbWlzcygpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5ucy51cGRhdGVSZWFkRmxhZygpO1xuICAgIH0pXG4gICAgdGhpcy5tZW51LmNsb3NlKCk7XG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgYXN5bmMgcHJlc2VudE15UHJvZmlsZVBvcG92ZXIoZXZlbnQpIHtcblxuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpKXtcbiAgICAgIHRoaXMuc2hvd1Byb2ZpbGVQb3B1cCA9IHRydWU7XG4gICAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wdXAuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTXlQcm9maWxlUGFnZSxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAgY3NzQ2xhc3M6ICdoZWFkZXItcG9wb3ZlcidcbiAgICB9KTtcbiAgICBcbiAgICByZXR1cm4gYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XG4gIH1cblxuICBsb2dvdXQoKXtcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJy9sYW5kaW5nJyk7XG4gICAgdGhpcy5scy5sb2dvdXQoKTtcbiAgfVxufVxuIiwiPGlvbi1tZW51IHNpZGU9XCJzdGFydFwiIG1lbnVJZD1cImZpcnN0XCIgY29udGVudElkPVwibWFpbi1jb250ZW50XCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKCkgJiYgbWVudXMgJiYgbWVudXMubGVuZ3RoID4gMFwiIChpb25EaWRPcGVuKT1cIm1lbnVPcGVuZWQoKVwiPlxyXG4gIDxpb24taGVhZGVyPlxyXG4gICAgPGlvbi10b29sYmFyPlxyXG4gICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XHJcbiAgICAgICAgPGlvbi1tZW51LWJ1dHRvbiBhdXRvSGlkZT1cImZhbHNlXCIgcFRvb2x0aXA9XCJDbG9zZSBtZW51XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKVwiPiAgICBcclxuICAgICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJzdWNjZXNzXCIgbmFtZT1cImNsb3NlXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1tZW51LWJ1dHRvbj5cclxuICAgICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDwvaW9uLXRvb2xiYXI+XHJcbiAgPC9pb24taGVhZGVyPlxyXG4gIDxpb24tY29udGVudD5cclxuICAgIDxwLWFjY29yZGlvbiAqbmdJZj1cIm1lbnVzICYmIG1lbnVzLmxlbmd0aCA+IDAgJiYgKCFscy5pc0NsYWltYW50KCkgfHwgbGVnYWN5TWVudSA9PSAndHJ1ZScpXCI+XHJcbiAgICAgIDxwLWFjY29yZGlvblRhYiAqbmdGb3I9XCJsZXQgbWVudSBvZiBscy5nZXRNZW51QnMoKSB8IGFzeW5jOyBsZXQgaSA9IGluZGV4XCIgW2hlYWRlcl09XCJtZW51LmxhYmVsXCI+XHJcbiAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51Lml0ZW1zXCIgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0pXCIgbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibGlua1wiIGNvbG9yPVwicHJpbWFyeVwiIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwiIWl0ZW0uaWNvblwiIHN0eWxlPVwibWFyZ2luLWlubGluZS1lbmQ6IDE1cHggIWltcG9ydGFudDtcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiaXRlbS5pY29uXCIgY29sb3I9XCJwcmltYXJ5XCIgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJpdGVtLmljb25cIiBzdHlsZT1cIm1hcmdpbi1pbmxpbmUtZW5kOiAxNXB4ICFpbXBvcnRhbnQ7XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+e3tpdGVtLmxhYmVsfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2xvdD1cImVuZFwiIChjbGljayk9XCJtYXJrRmF2b3VyaXRlKGl0ZW0pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgY29sb3I9XCJ3YXJuaW5nXCIgKm5nSWY9XCJzaG93RmF2QnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzdGFyLW91dGxpbmVcIiAqbmdJZj1cIiFpdGVtLnN0YXRlLmlzRmF2XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN0YXItc2hhcnBcIiAqbmdJZj1cIml0ZW0uc3RhdGUuaXNGYXZcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgIDwvcC1hY2NvcmRpb25UYWI+XHJcbiAgICA8L3AtYWNjb3JkaW9uPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJtZW51cyAmJiBtZW51cy5sZW5ndGggPiAwICYmIChscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnKVwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIGxzLmdldE1lbnVCcygpIHwgYXN5bmM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51Lml0ZW1zXCIgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0pXCIgbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCIgW25nQ2xhc3NdPVwic2hvd0ljb24oaXRlbSkgPyAnc2VsZWN0ZWQtbWVudScgOiAnc2VsZWN0ZWQtbWVudS11bnNlbGVjdCdcIj57e2l0ZW0ubGFiZWx9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuXHJcbiAgICAgIDxpb24tbGlzdD5cclxuICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uIGxpbmVzPVwibm9uZVwiIChjbGljayk9XCJwcmVzZW50TXlQcm9maWxlUG9wb3ZlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlcnNvbi1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwibWVudS1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCI+VXNlciBQcm9maWxlPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uIGxpbmVzPVwibm9uZVwiIChjbGljayk9XCJuYXZpZ2F0ZSgnY3AnLCAnZG9jdW1lbnRzJylcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPSdwaSBwaS1maWxlJyBzdHlsZT1cImNvbG9yOiByZ2JhKDY4LCAxMjAsIDE3MCwgMSk7IHBhZGRpbmctcmlnaHQ6IDE1cHg7XCI+PC9pPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzFweDtcIj5Eb2N1bWVudHM8L2lvbi1sYWJlbD5cclxuICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDxpb24taXRlbSBidXR0b24gbGluZXM9XCJub25lXCIgKGNsaWNrKT1cInByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJub3RpZmljYXRpb25zLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiBjbGFzcz1cIm1lbnUtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAzMXB4O1wiPk5vdGlmaWNhdGlvbnM8L2lvbi1sYWJlbD5cclxuICAgICAgICAgIDxpb24tYmFkZ2UgY29sb3I9XCJkYXJrXCIgKm5nSWY9XCJucy5ub3RpZmljYXRpb25Db3VudC5nZXRWYWx1ZSgpID4gMFwiPlxyXG4gICAgICAgICAgICA8aW9uLWxhYmVsPnt7bnMubm90aWZpY2F0aW9uQ291bnQuZ2V0VmFsdWUoKX19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgICA8L2lvbi1iYWRnZT5cclxuICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgIDxpb24taXRlbSBidXR0b24gbGluZXM9XCJub25lXCIgKGNsaWNrKT1cImxvZ291dCgpXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImxvZy1vdXQtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwibWVudS1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCI+TG9nb3V0PC9pb24tbGFiZWw+XHJcbiAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgPC9pb24tbGlzdD5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2lvbi1jb250ZW50PlxyXG48L2lvbi1tZW51PlxyXG48YXBwLXByb2ZpbGUgKm5nSWY9XCJzaG93UHJvZmlsZVBvcHVwXCIgKG9uQ2FuY2VsKT1cInNob3dQcm9maWxlUG9wdXAgPSAhc2hvd1Byb2ZpbGVQb3B1cFwiPjwvYXBwLXByb2ZpbGU+Il19
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBSWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7SUNQeEMsMENBQzhCO0lBQ3hCLDhCQUFrRDtJQUN4RCxpQkFBa0I7OztJQVNkLCtCQUE2SDs7O0lBQzdILCtCQUFtSTs7O0lBQXpILG1DQUFrQjs7O0lBRzFCLCtCQUFtRTs7O0lBQ25FLCtCQUFnRTs7OztJQUZsRSxzQ0FBc0g7SUFBL0YsMFFBQVMsOEJBQW1CLFNBQUUsZUFBQSx3QkFBd0IsQ0FBQSxJQUFFO0lBQzdFLDJJQUFtRSw4SEFBQTtJQUVyRSxpQkFBYTs7O0lBRm9CLGVBQXVCO0lBQXZCLDJDQUF1QjtJQUN6QixlQUFzQjtJQUF0QiwwQ0FBc0I7Ozs7SUFOdkQsb0NBQXVGO0lBQXRDLHlRQUFTLGVBQUEseUJBQWMsQ0FBQSxJQUFDO0lBQ3ZFLDhIQUE2SCxpSEFBQTtJQUU3SCxxQ0FBcUQ7SUFBQSxZQUFjO0lBQUEsaUJBQVk7SUFDL0Usa0lBR2E7SUFDZixpQkFBVzs7OztJQVAyQyxlQUFnQjtJQUFoQixvQ0FB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LEVBQUU7WUFDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEtBQUs7UUFFakMsSUFBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFDO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPO1NBQ1I7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3RDLFNBQVMsRUFBRSxhQUFhO1lBQ3hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs4RUE5T1UsYUFBYTtvRUFBYixhQUFhO1lDbEIxQix3RUE4RFcsaUVBQUE7O1lBOURxRCwrRUFBa0Q7WUErRHBHLGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRDdDdkIsYUFBYTtjQUx6QixTQUFTOzJCQUNFLFVBQVU7O2tGQUlULGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNZW51Q29udHJvbGxlciwgTmF2Q29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBNeU5vdGlmaWNhdGlvbnNQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktbm90aWZpY2F0aW9ucy9teS1ub3RpZmljYXRpb25zLnBhZ2UnO1xuaW1wb3J0IHsgTXlQcm9maWxlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3BvcG92ZXJzL215LXByb2ZpbGUvbXktcHJvZmlsZS5wYWdlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBtZW51czogTWVudUl0ZW1bXTtcbiAgcHVibGljIGFwcFZlcnNpb24gPSBMaWJDb25zdGFudHMuYXBwVmVyc2lvbjtcbiAgcHVibGljIHNob3dGYXZCdXR0b24gPSBmYWxzZTtcbiAgcHVibGljIHJlUmVuZGVyTWVudSA9IHRydWU7XG4gIHB1YmxpYyBsZWdhY3lNZW51ID0gTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnU7XG4gIHB1YmxpYyBzaG93UHJvZmlsZVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLCBwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIG5zOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBcbiAgICAgICAgICAgICAgcHVibGljIHI6IFJvdXRlciwgcHVibGljIG1lbnU6IE1lbnVDb250cm9sbGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBhciA6IEFjdGl2YXRlZFJvdXRlKSB7IFxuICAgICAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICAgIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwVXNlck1lbnUoKTtcbiAgICB0aGlzLnNob3dGYXZCdXR0b24gPSB0aGlzLmxzLmlzQ3NyKCk7XG4gIH1cblxuICBzZXRNZW51KHVzZXI6IFVzZXJNb2RlbCkge1xuICAgIGlmICh1c2VyKSB7XG4gICAgICB0aGlzLm5zLnNldHVwTm90aWZpY2F0aW9uVGltZXIoKTtcbiAgICAgIGlmKCF0aGlzLmxzLmlzQ2xhaW1hbnQoKSB8fCB0aGlzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnKXtcbiAgICAgICAgdGhpcy5sb2FkTWVudSgpO1xuICAgICAgfWVsc2Uge1xuICAgICAgICB0aGlzLnNldENsYWltYW50TWVudSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lbnVzID0gW107XG4gICAgICB0aGlzLm5zLnJlbW92ZU5vdGlmaWNhdGlvblRpbWVyKCk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0ZhdkJ1dHRvbiA9IHRoaXMubHMuaXNDc3IoKTtcbiAgfVxuXG4gIHNldENsYWltYW50TWVudSgpe1xuICAgIHRoaXMubWVudXMgPSBbXG4gICAgIHtcbiAgICAgICBsYWJlbDogXCJNZW51c1wiLFxuICAgICAgICBpdGVtczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibGFiZWxcIjogXCJIb21lXCIsIFxuICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wibXNcIl0sXG4gICAgICAgICAgICAgIFwicm9sZXNcIiA6IFtcImNsYWltYW50XCJdLFxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJ3ZWxjb21lXCIsXG4gICAgICAgICAgICAgIFwiY29udGV4dFwiIDogXCJjcFwiLFxuICAgICAgICAgICAgICBcImlkXCI6IFwibWVudS0xOFwiXG4gICAgICAgICAgICB9fSxcbiAgICAgICAgICAgIC4uLighdGhpcy5pc01TKCkgPyBbe1xuICAgICAgICAgICAgICBsYWJlbDogXCJDbGFpbXNcIixcbiAgICAgICAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICAgICAgICBjb25zb3J0aXVtU3RhdGU6IFtcIm1zXCJdLFxuICAgICAgICAgICAgICAgIHJvbGVzOiBbXCJjbGFpbWFudFwiXSxcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBcImNsYWltYW50LWluZHVjdGlvblwiLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IFwiY3BcIixcbiAgICAgICAgICAgICAgICBpZDogXCJtZW51LTE5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfV0gOiBbXSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICBcImxhYmVsXCI6IFwiV2Vla2x5XCIsIFxuICAgICAgICAgICAgXCJzdGF0ZVwiIDoge1xuICAgICAgICAgICAgICBcImNvbnNvcnRpdW1TdGF0ZVwiIDogW1wibXNcIl0sXG4gICAgICAgICAgICAgIFwicm9sZXNcIiA6IFtcImNsYWltYW50XCJdLFxuICAgICAgICAgICAgICBcInJvdXRlckxpbmtcIjogXCJ2My93ZWVrbGllc1wiLFxuICAgICAgICAgICAgICBcImNvbnRleHRcIiA6IFwiY3BcIixcbiAgICAgICAgICAgICAgXCJpZFwiOiBcIm1lbnUtMTZcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcImxhYmVsXCI6IFwiSGlzdG9yeVwiLCBcbiAgICAgICAgICAgIFwic3RhdGVcIiA6IHtcbiAgICAgICAgICAgICAgXCJjb25zb3J0aXVtU3RhdGVcIiA6IFtcIm1zXCJdLFxuICAgICAgICAgICAgICBcInJvbGVzXCIgOiBbXCJjbGFpbWFudFwiXSxcbiAgICAgICAgICAgICAgXCJyb3V0ZXJMaW5rXCI6IFwiaGlzdG9yeVwiLFxuICAgICAgICAgICAgICBcImNvbnRleHRcIiA6IFwiY3BcIixcbiAgICAgICAgICAgICAgXCJpZFwiOiBcIm1lbnUtMTdcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgfVxuICAgIF07XG4gICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KHRoaXMubWVudXMpO1xuICB9XG5cbiAgbG9hZE1lbnUoKXtcbiAgICB0aGlzLmxzXG4gICAgICAgIC5nZXRVc2VyTWVudXMoKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lbnVzID0gcmVzO1xuICAgICAgICAgICAgdGhpcy5scy5nZXRNZW51QnMoKS5uZXh0KHRoaXMubWVudXMpO1xuICAgICAgICAgICAgdGhpcy5mZXRjaE5vdGlmaWNhdGlvbnMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lbnVzID0gW107XG4gICAgICAgICAgICB0aGlzLmxzLmdldE1lbnVCcygpLm5leHQobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICB9XG5cbiAgZmV0Y2hOb3RpZmljYXRpb25zKCl7XG4gICAgdGhpcy5uc1xuICAgICAgICAuZ2V0Tm90aWZpY2F0aW9ucygpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMubnMubm90aWZpY2F0aW9ucy5uZXh0KHJlcyk7XG4gICAgICAgICAgICB0aGlzLm5zLmdldFVucmVhZE5vdGlmaWNhdGlvbkNvdW50KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5ucy5ub3RpZmljYXRpb25Db3VudC5uZXh0KDApO1xuICAgICAgICAgICAgdGhpcy5ucy5ub3RpZmljYXRpb25zLm5leHQoW10pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBVc2VyTWVudSgpIHtcbiAgICB0aGlzLmxzXG4gICAgICAuZ2V0VXNlckJzKClcbiAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgIGlmKHVzZXIgJiYgIXVzZXIuaXMyRkFSZXF1aXJlZCl7XG4gICAgICAgICAgdGhpcy5zZXRNZW51KHVzZXIpO1xuICAgICAgICB9IGVsc2V7XG4gICAgICAgICAgdGhpcy5tZW51cyA9IFtdO1xuICAgICAgICAgIHRoaXMubnMucmVtb3ZlTm90aWZpY2F0aW9uVGltZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvcGVuUGFnZShtZW51OiBNZW51SXRlbSkge1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgYXBwTmFtZSA9IG1lbnUuc3RhdGUuYXBwO1xuICAgIGxldCBtZW51Q29udGV4dFJvb3QgPSBgLyR7bWVudS5zdGF0ZS5jb250ZXh0fWA7XG4gICAgbGV0IHBhZ2VUb05hdmlnYXRlIDogc3RyaW5nID0gbWVudS5zdGF0ZS5yb3V0ZXJMaW5rO1xuXG4gICAgaWYoYXBwTmFtZSA9PSAnYmVuJyl7XG4gICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xuICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0ke21lbnVDb250ZXh0Um9vdH0vJHtwYWdlVG9OYXZpZ2F0ZX0/YT0ke3RoaXMubHMuZ2V0VXNlcigpLmFjY2Vzc190b2tlbn0mcj0ke3RoaXMubHMuZ2V0VXNlcigpLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xuICAgICAgfSk7XG4gICAgfWVsc2UgaWYoYXBwTmFtZSA9PSAndGF4Jyl7XG4gICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xuICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMudGF4VXJsRXh0ZXJuYWx9JHttZW51Q29udGV4dFJvb3R9LyR7cGFnZVRvTmF2aWdhdGV9P2E9JHt0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW59JnI9JHt0aGlzLmxzLmdldFVzZXIoKS5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50Q29udGV4dFJvb3QgPSB0aGlzLnV0aWwuZ2V0Q29udGV4dFJvb3QoKTtcbiAgICBcbiAgICBpZihjdXJyZW50Q29udGV4dFJvb3QgPT0gbWVudUNvbnRleHRSb290KXtcbiAgICAgIHRoaXMuci5uYXZpZ2F0ZUJ5VXJsKGAvJHtwYWdlVG9OYXZpZ2F0ZX1gKTtcbiAgICB9IGVsc2V7XG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KG1lbnVDb250ZXh0Um9vdCwgbWVudS5zdGF0ZS5yb3V0ZXJMaW5rKTtcbiAgICB9XG4gICAgdGhpcy5tZW51LmNsb3NlKCk7XG4gIH1cblxuICBtYXJrRmF2b3VyaXRlKGl0ZW0pe1xuICAgIGlmKGl0ZW0uc3RhdGUuaXNGYXYpe1xuICAgICAgaXRlbS5zdGF0ZS5pc0ZhdiA9ICFpdGVtLnN0YXRlLmlzRmF2O1xuICAgICAgdGhpcy5sc1xuICAgICAgICAgIC5yZW1vdmVGYXYoaXRlbS5zdGF0ZS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmxzLmdldE1lbnVCcygpLm5leHQocmVzKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC50b2FzdChcIlJlbW92ZWQgRmF2b3VyaXRlLlwiKTtcbiAgICAgICAgICB9KTtcbiAgICB9ZWxzZSB7XG4gICAgICBpdGVtLnN0YXRlLmlzRmF2ID0gIWl0ZW0uc3RhdGUuaXNGYXY7XG4gICAgICB0aGlzLmxzXG4gICAgICAgICAgLm1hcmtGYXYoaXRlbS5zdGF0ZS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmxzLmdldE1lbnVCcygpLm5leHQocmVzKTtcbiAgICAgICAgICAgIHRoaXMudXRpbC50b2FzdChcIk1hcmtlZCBGYXZvdXJpdGUuXCIpO1xuICAgICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Ib21lKCl7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvd2VsY29tZScpO1xuICB9XG5cbiAgbWVudU9wZW5lZCgpe1xuICAgIHRoaXMucmVSZW5kZXJNZW51ID0gZmFsc2U7XG4gICAgdGhpcy5yZVJlbmRlck1lbnUgPSB0cnVlO1xuICB9XG5cbiAgc2hvd0ljb24oaXRlbSl7XG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICByZXR1cm4gY3VycmVudFJvdXRlLmluY2x1ZGVzKGl0ZW0uc3RhdGUucm91dGVyTGluayk7XG4gIH1cblxuICBuYXZpZ2F0ZShjb250ZXh0Um9vdCwgdXJpKXtcbiAgICBsZXQgY3VycmVudENvbnRleHRSb290ID0gdGhpcy51dGlsLmdldENvbnRleHRSb290KCk7XG4gICAgbGV0IHRhcmdldCA9IGAvJHtjb250ZXh0Um9vdH1gO1xuXG4gICAgaWYoY3VycmVudENvbnRleHRSb290ID09IHRhcmdldCl7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUZvcndhcmQoYC8ke3VyaX1gKTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGFyZ2V0LCB1cmkpO1xuICAgIH1cbiAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoZXZlbnQpIHtcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3B1cC5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBNeU5vdGlmaWNhdGlvbnNQYWdlLFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBjc3NDbGFzczogJ2hlYWRlci1wb3BvdmVyJ1xuICAgIH0pO1xuXG4gICAgcG9wb3Zlci5vbkRpZERpc21pc3MoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMubnMudXBkYXRlUmVhZEZsYWcoKTtcbiAgICB9KVxuICAgIHRoaXMubWVudS5jbG9zZSgpO1xuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRNeVByb2ZpbGVQb3BvdmVyKGV2ZW50KSB7XG5cbiAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSl7XG4gICAgICB0aGlzLnNob3dQcm9maWxlUG9wdXAgPSB0cnVlO1xuICAgICAgdGhpcy5tZW51LmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcHVwLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IE15UHJvZmlsZVBhZ2UsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGNzc0NsYXNzOiAnaGVhZGVyLXBvcG92ZXInXG4gICAgfSk7XG4gICAgXG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgbG9nb3V0KCl7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvbGFuZGluZycpO1xuICAgIHRoaXMubHMubG9nb3V0KCk7XG4gIH1cbn1cbiIsIjxpb24tbWVudSBzaWRlPVwic3RhcnRcIiBtZW51SWQ9XCJmaXJzdFwiIGNvbnRlbnRJZD1cIm1haW4tY29udGVudFwiICpuZ0lmPVwibHMuaXNMb2dnZWRJbigpICYmIG1lbnVzICYmIG1lbnVzLmxlbmd0aCA+IDBcIiAoaW9uRGlkT3Blbik9XCJtZW51T3BlbmVkKClcIj5cclxuICA8aW9uLWhlYWRlcj5cclxuICAgIDxpb24tdG9vbGJhcj5cclxuICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgIDxpb24tbWVudS1idXR0b24gYXV0b0hpZGU9XCJmYWxzZVwiIHBUb29sdGlwPVwiQ2xvc2UgbWVudVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJscy5pc0xvZ2dlZEluKClcIj4gICAgXHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwic3VjY2Vzc1wiIG5hbWU9XCJjbG9zZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9pb24tbWVudS1idXR0b24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICA8L2lvbi10b29sYmFyPlxyXG4gIDwvaW9uLWhlYWRlcj5cclxuICA8aW9uLWNvbnRlbnQ+XHJcbiAgICA8cC1hY2NvcmRpb24gKm5nSWY9XCJtZW51cyAmJiBtZW51cy5sZW5ndGggPiAwICYmICghbHMuaXNDbGFpbWFudCgpIHx8IGxlZ2FjeU1lbnUgPT0gJ3RydWUnKVwiPlxyXG4gICAgICA8cC1hY2NvcmRpb25UYWIgKm5nRm9yPVwibGV0IG1lbnUgb2YgbHMuZ2V0TWVudUJzKCkgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiIFtoZWFkZXJdPVwibWVudS5sYWJlbFwiPlxyXG4gICAgICAgIDxpb24tbGlzdD5cclxuICAgICAgICAgIDxpb24taXRlbSBidXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudS5pdGVtc1wiIChjbGljayk9XCJvcGVuUGFnZShpdGVtKVwiIGxpbmVzPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImxpbmtcIiBjb2xvcj1cInByaW1hcnlcIiBzbG90PVwic3RhcnRcIiAqbmdJZj1cIiFpdGVtLmljb25cIiBzdHlsZT1cIm1hcmdpbi1pbmxpbmUtZW5kOiAxNXB4ICFpbXBvcnRhbnQ7XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIml0ZW0uaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwiaXRlbS5pY29uXCIgc3R5bGU9XCJtYXJnaW4taW5saW5lLWVuZDogMTVweCAhaW1wb3J0YW50O1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPnt7aXRlbS5sYWJlbH19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNsb3Q9XCJlbmRcIiAoY2xpY2spPVwibWFya0Zhdm91cml0ZShpdGVtKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiIGNvbG9yPVwid2FybmluZ1wiICpuZ0lmPVwic2hvd0ZhdkJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic3Rhci1vdXRsaW5lXCIgKm5nSWY9XCIhaXRlbS5zdGF0ZS5pc0ZhdlwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzdGFyLXNoYXJwXCIgKm5nSWY9XCJpdGVtLnN0YXRlLmlzRmF2XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICA8L3AtYWNjb3JkaW9uVGFiPlxyXG4gICAgPC9wLWFjY29yZGlvbj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwibWVudXMgJiYgbWVudXMubGVuZ3RoID4gMCAmJiAobHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJylcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbWVudSBvZiBscy5nZXRNZW51QnMoKSB8IGFzeW5jOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgIDxpb24tbGlzdD5cclxuICAgICAgICAgIDxpb24taXRlbSBidXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudS5pdGVtc1wiIChjbGljayk9XCJvcGVuUGFnZShpdGVtKVwiIGxpbmVzPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAzMXB4O1wiIFtuZ0NsYXNzXT1cInNob3dJY29uKGl0ZW0pID8gJ3NlbGVjdGVkLW1lbnUnIDogJ3NlbGVjdGVkLW1lbnUtdW5zZWxlY3QnXCI+e3tpdGVtLmxhYmVsfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgPC9pb24tbGlzdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcblxyXG4gICAgICA8aW9uLWxpc3Q+XHJcbiAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiBsaW5lcz1cIm5vbmVcIiAoY2xpY2spPVwicHJlc2VudE15UHJvZmlsZVBvcG92ZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZXJzb24tY2lyY2xlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiBjbGFzcz1cIm1lbnUtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAzMXB4O1wiPlVzZXIgUHJvZmlsZTwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgPGlvbi1pdGVtIGJ1dHRvbiBsaW5lcz1cIm5vbmVcIiAoY2xpY2spPVwibmF2aWdhdGUoJ2NwJywgJ2RvY3VtZW50cycpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz0ncGkgcGktZmlsZScgc3R5bGU9XCJjb2xvcjogcmdiYSg2OCwgMTIwLCAxNzAsIDEpOyBwYWRkaW5nLXJpZ2h0OiAxNXB4O1wiPjwvaT5cclxuICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJmb250LXNpemU6IDMxcHg7XCI+RG9jdW1lbnRzPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uIGxpbmVzPVwibm9uZVwiIChjbGljayk9XCJwcmVzZW50TXlOb3RpZmljYXRpb25Qb3BvdmVyKCRldmVudClcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibm90aWZpY2F0aW9ucy1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgY2xhc3M9XCJtZW51LWljb25cIiBjb2xvcj1cInByaW1hcnlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzFweDtcIj5Ob3RpZmljYXRpb25zPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwiZGFya1wiICpuZ0lmPVwibnMubm90aWZpY2F0aW9uQ291bnQuZ2V0VmFsdWUoKSA+IDBcIj5cclxuICAgICAgICAgICAgPGlvbi1sYWJlbD57e25zLm5vdGlmaWNhdGlvbkNvdW50LmdldFZhbHVlKCl9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgPC9pb24tYmFkZ2U+XHJcbiAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uIGxpbmVzPVwibm9uZVwiIChjbGljayk9XCJsb2dvdXQoKVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJsb2ctb3V0LW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiBjbGFzcz1cIm1lbnUtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAzMXB4O1wiPkxvZ291dDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgIDwvaW9uLWxpc3Q+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9pb24tY29udGVudD5cclxuPC9pb24tbWVudT5cclxuPGFwcC1wcm9maWxlICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93UHJvZmlsZVBvcHVwID0gIXNob3dQcm9maWxlUG9wdXBcIj48L2FwcC1wcm9maWxlPiJdfQ==