ngx-vector-components 5.159.0 → 5.161.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.161.0] (11/05/2026)
4
+
5
+ ### Feat
6
+
7
+ - Added values 'MANAGE_MY_LOTS' in `ProfileTypeEnum` in `profile.model.ts`
8
+
9
+ ## [5.160.0] (12/05/2026)
10
+
11
+ ### Feat
12
+
13
+ - Improved notifications angular layout in `top-bar.component.ts`
14
+
3
15
  ## [5.159.0] (08/05/2026)
4
16
 
5
17
  ### Feat
@@ -125,15 +125,18 @@ export class TopBarComponent {
125
125
  goToOnboarding() {
126
126
  this.router.navigate(['onboarding', 'attorney-information']);
127
127
  }
128
- handleClick(link) {
129
- this.onClick.emit(link || '');
128
+ handleClick(notification) {
129
+ if (notification?.link) {
130
+ this.router.navigateByUrl(notification.link);
131
+ }
132
+ this.onClick.emit(notification?.link || '');
130
133
  }
131
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TopBarComponent, deps: [{ token: i1.MenuService }, { token: i1.AuthService }, { token: i2.Router }, { token: i1.ProfileService }, { token: i1.StorageService }, { token: i3.NotificationsService }, { token: i1.ErrorMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService", showHelpCentral: "showHelpCentral" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"terms-of-use user-menu-icon\"></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"fintech-password user-menu-icon\"></span>\n <span>Alterar Senha</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"logout user-menu-icon\"></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n <li\n (click)=\"handleClick(notification?.link)\"\n class=\"notification-item\"\n *ngFor=\"let notification of notificationsList | unreadNotifications\"\n >\n <span class=\"notification-title\">{{ notification.title }}</span>\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:#fff}.user-menu li{display:flex;flex-direction:row;align-items:center;padding:4px;font-weight:200;cursor:pointer;border-radius:var(--border-radius)}.user-menu li:hover{background-color:var(--theme-primary)}.user-menu li .user-menu-icon{width:28px;height:25px;background-repeat:no-repeat}.user-menu li .logout{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17.687\" height=\"17.686\" viewBox=\"0 0 17.687 17.686\">%0A <g id=\"Grupo_8513\" data-name=\"Grupo 8513\" transform=\"translate(12.157)\">%0A <g id=\"Grupo_1649\" data-name=\"Grupo 1649\">%0A <g id=\"exit-to-app\">%0A <path id=\"Caminho_706\" data-name=\"Caminho 706\" d=\"M1628.279,320.831l1.375,1.375,4.914-4.912-4.914-4.913-1.375,1.375,2.554,2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971,1.971,0,0,0-1.965,1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971,1.971,0,0,0,1.965,1.965h13.757a1.971,1.971,0,0,0,1.965-1.965V310.415A1.971,1.971,0,0,0,1637.024,308.45Z\" transform=\"translate(-1633.459 -308.45)\" fill=\"%23fff\"/>%0A </g>%0A </g>%0A </g>%0A</svg>%0A');background-position-y:3px}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark)}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{display:flex;flex-direction:column;cursor:pointer;position:relative;padding:5px 10px;border-radius:5px}.notifications-list .notification-item:hover{background-color:var(--gray-medium)}.notifications-list .notification-item .notification-title{font-weight:700;text-transform:uppercase}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: i8.FormatDocumentPipe, name: "formatDocument" }, { kind: "pipe", type: i9.UnreadNotificationsPipe, name: "unreadNotifications" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TopBarComponent, selector: "vector-top-bar", inputs: { fintech: "fintech", accountService: "accountService", showHelpCentral: "showHelpCentral" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"terms-of-use user-menu-icon\"></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"fintech-password user-menu-icon\"></span>\n <span>Alterar Senha</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"logout user-menu-icon\"></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n @for (notification of notificationsList; track $index) {\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n <span class=\"notification-title\">\n {{ notification.title }}\n @if (!notification.wasRead) {\n <span class=\"notification-item-indicator\"></span>\n }\n </span>\n @if (notification.description) {\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n }\n </li>\n }\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:#fff}.user-menu li{display:flex;flex-direction:row;align-items:center;padding:4px;font-weight:200;cursor:pointer;border-radius:var(--border-radius)}.user-menu li:hover{background-color:var(--theme-primary)}.user-menu li .user-menu-icon{width:28px;height:25px;background-repeat:no-repeat}.user-menu li .logout{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17.687\" height=\"17.686\" viewBox=\"0 0 17.687 17.686\">%0A <g id=\"Grupo_8513\" data-name=\"Grupo 8513\" transform=\"translate(12.157)\">%0A <g id=\"Grupo_1649\" data-name=\"Grupo 1649\">%0A <g id=\"exit-to-app\">%0A <path id=\"Caminho_706\" data-name=\"Caminho 706\" d=\"M1628.279,320.831l1.375,1.375,4.914-4.912-4.914-4.913-1.375,1.375,2.554,2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971,1.971,0,0,0-1.965,1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971,1.971,0,0,0,1.965,1.965h13.757a1.971,1.971,0,0,0,1.965-1.965V310.415A1.971,1.971,0,0,0,1637.024,308.45Z\" transform=\"translate(-1633.459 -308.45)\" fill=\"%23fff\"/>%0A </g>%0A </g>%0A </g>%0A</svg>%0A');background-position-y:3px}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark);font-weight:600}::ng-deep .p-overlaypanel.background-white{border-radius:8px!important;background-color:#fff!important;border:1px solid #d9dbe9!important;box-shadow:0 1px 2px #1f29371a,0 2px 4px #1f29371a,0 4px 8px #1f29371a,0 8px 16px #1f29371a!important;padding:3px!important;left:1462.88px!important}::ng-deep .p-overlaypanel.background-white:before,::ng-deep .p-overlaypanel.background-white:after{display:none!important}::ng-deep .p-overlaypanel.background-white .p-overlaypanel-content{padding:8px 0!important}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{cursor:pointer;position:relative;padding:5px 10px;border-radius:5px;text-align:center;transition:background-color .15s ease,color .15s ease}.notifications-list .notification-item:hover,.notifications-list .notification-item:focus{background-color:var(--theme-medium)!important;color:#fff;outline:none}.notifications-list .notification-item:hover .notification-title,.notifications-list .notification-item:focus .notification-title{color:#fff}.notifications-list .notification-item:hover em,.notifications-list .notification-item:focus em{color:#fff}.notifications-list .notification-item .notification-title{font-weight:600;text-transform:uppercase;position:relative;display:inline-block;color:var(--theme-medium)}.notifications-list .notification-item .notification-title .notification-item-indicator{position:absolute;top:-4px;right:-12px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color);margin:0}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: i8.FormatDocumentPipe, name: "formatDocument" }, { kind: "pipe", type: i9.UnreadNotificationsPipe, name: "unreadNotifications" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
133
136
  }
134
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TopBarComponent, decorators: [{
135
138
  type: Component,
136
- args: [{ selector: 'vector-top-bar', template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"terms-of-use user-menu-icon\"></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"fintech-password user-menu-icon\"></span>\n <span>Alterar Senha</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"logout user-menu-icon\"></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n <li\n (click)=\"handleClick(notification?.link)\"\n class=\"notification-item\"\n *ngFor=\"let notification of notificationsList | unreadNotifications\"\n >\n <span class=\"notification-title\">{{ notification.title }}</span>\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:#fff}.user-menu li{display:flex;flex-direction:row;align-items:center;padding:4px;font-weight:200;cursor:pointer;border-radius:var(--border-radius)}.user-menu li:hover{background-color:var(--theme-primary)}.user-menu li .user-menu-icon{width:28px;height:25px;background-repeat:no-repeat}.user-menu li .logout{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17.687\" height=\"17.686\" viewBox=\"0 0 17.687 17.686\">%0A <g id=\"Grupo_8513\" data-name=\"Grupo 8513\" transform=\"translate(12.157)\">%0A <g id=\"Grupo_1649\" data-name=\"Grupo 1649\">%0A <g id=\"exit-to-app\">%0A <path id=\"Caminho_706\" data-name=\"Caminho 706\" d=\"M1628.279,320.831l1.375,1.375,4.914-4.912-4.914-4.913-1.375,1.375,2.554,2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971,1.971,0,0,0-1.965,1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971,1.971,0,0,0,1.965,1.965h13.757a1.971,1.971,0,0,0,1.965-1.965V310.415A1.971,1.971,0,0,0,1637.024,308.45Z\" transform=\"translate(-1633.459 -308.45)\" fill=\"%23fff\"/>%0A </g>%0A </g>%0A </g>%0A</svg>%0A');background-position-y:3px}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark)}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{display:flex;flex-direction:column;cursor:pointer;position:relative;padding:5px 10px;border-radius:5px}.notifications-list .notification-item:hover{background-color:var(--gray-medium)}.notifications-list .notification-item .notification-title{font-weight:700;text-transform:uppercase}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"] }]
139
+ args: [{ selector: 'vector-top-bar', template: "<div class=\"top-bar-container\">\n <div id=\"menu-toggle\" class=\"menu-toggle\" (click)=\"toggleMenu()\">\n <div class=\"menu-icon\"></div>\n </div>\n\n <div class=\"left-items-container\" *ngIf=\"fintech && isDesktop() && !doingOnboarding && !isAdmin\">\n <span>Banco {{ currentAccount?.bankCode }}</span>\n <span class=\"separator\"></span>\n <span>AG {{ currentAccount?.agency }}</span>\n <span class=\"separator\"></span>\n <span>CC {{ currentAccount?.accountNumber }}</span>\n <span class=\"separator\"></span>\n <span\n >{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}\n {{ maskUtil.formatDocument(currentAccount?.document) }}</span\n >\n <ng-container>\n <span class=\"separator\"></span>\n <div class=\"change-account-button cursor-pointer\" (click)=\"changeAccountMenu.toggle($event)\">\n <span class=\"mr-2\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"right-items-container\" [ngClass]=\"{ 'hidden-items': hideElements }\" *ngIf=\"!isAdmin && !doingOnboarding\">\n <div class=\"help-central\" *ngIf=\"showHelpCentral\">\n <span>{{ 'app.label.help_central' | translate }}:</span>\n <ng-container *ngFor=\"let item of helpCentralIcons\">\n <a target=\"_blank\" [ngClass]=\"{ hidden: !item.active }\" [attr.href]=\"item.url\">\n <i [class]=\"item.icon\"></i>\n </a>\n </ng-container>\n </div>\n\n <span *ngIf=\"!fintech\" (click)=\"notifications.toggle($event)\" class=\"fas fa-bell notifications-icon\">\n <span *ngIf=\"(notificationsList | unreadNotifications).length\" class=\"notifications-indicator\"> </span>\n </span>\n\n <span class=\"separator\"></span>\n <div\n #menuContainer\n class=\"menu-container\"\n (click)=\"menu.toggle($event)\"\n pTooltip=\"Enter your username\"\n tooltipPosition=\"bottom\"\n tooltipEvent=\"click\"\n >\n <span class=\"user-name\">{{ currentAccount?.name || vectorFirstName || '' }}</span>\n <span class=\"fas\" [ngClass]=\"{ 'fa-angle-down': !openedMenu, 'fa-angle-up': openedMenu }\"></span>\n </div>\n </div>\n</div>\n\n<p-overlayPanel #menu (onHide)=\"openedMenu = false\" (onShow)=\"openedMenu = true\">\n <ng-template pTemplate>\n <div class=\"account-info\" *ngIf=\"!isDesktop()\">\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ currentAccount?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ currentAccount?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ currentAccount?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ currentAccount?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ maskUtil.formatDocument(currentAccount?.document) }}</span>\n </div>\n </div>\n <div class=\"change-account-mobile\" (click)=\"changeAccountMenu.toggle($event)\" *ngIf=\"otherAccounts?.length\">\n <span class=\"change-account-mobile-label\">Alternar conta</span>\n <span\n class=\"fas\"\n [ngClass]=\"{ 'fa-angle-down': !openedChangeAccountMenu, 'fa-angle-up': openedChangeAccountMenu }\"\n ></span>\n </div>\n </div>\n <ul class=\"user-menu\">\n <li *ngIf=\"fintech\" (click)=\"goToTermsOfUse(); menu.hide()\">\n <span class=\"terms-of-use user-menu-icon\"></span>\n <span>Termos de Uso</span>\n </li>\n <li *ngIf=\"fintech\" (click)=\"goToPasswordChange(); menu.hide()\">\n <span class=\"fintech-password user-menu-icon\"></span>\n <span>Alterar Senha</span>\n </li>\n <li (click)=\"logout()\">\n <span class=\"logout user-menu-icon\"></span>\n <span>Sair</span>\n </li>\n </ul>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel #changeAccountMenu (onHide)=\"openedChangeAccountMenu = false\" (onShow)=\"openedChangeAccountMenu = true\">\n <ng-template pTemplate>\n <div\n *ngFor=\"let account of otherAccounts\"\n class=\"account-info change-account-info\"\n (click)=\"changeAccount(account)\"\n >\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>Banco: </span>\n <span class=\"account-info-value\">{{ account?.bank }}</span>\n </div>\n\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>AG: </span>\n <span class=\"account-info-value\">{{ account?.agency }}</span>\n </div>\n </div>\n <div class=\"account-info-row\">\n <div class=\"account-info-item\">\n <span>CC: </span>\n <span class=\"account-info-value\">{{ account?.accountNumber }}</span>\n </div>\n <span class=\"separator\"></span>\n <div class=\"account-info-item\">\n <span>{{ account?.accountType === 'CURRENT_ACCOUNT_PF' ? 'CPF' : 'CNPJ' }}: </span>\n <span class=\"account-info-value\"> {{ account?.document | formatDocument }}</span>\n </div>\n </div>\n </div>\n <div>\n <hr />\n <p class=\"text-center add-account\" (click)=\"goToOnboarding(); changeAccountMenu.hide()\">\n Adicionar uma nova conta\n </p>\n </div>\n </ng-template>\n</p-overlayPanel>\n\n<p-overlayPanel\n #notifications\n (onHide)=\"showNotifications = false\"\n (onShow)=\"showNotifications = true\"\n styleClass=\"background-white\"\n>\n <ng-template pTemplate>\n <div class=\"notifications-header\">\n <div class=\"notifications-vector-logo\"></div>\n <span class=\"notifications-title\">\n {{ 'app.label.notifications' | translate }}\n </span>\n </div>\n <ul class=\"notifications-list\">\n @for (notification of notificationsList; track $index) {\n <li (click)=\"handleClick(notification); notifications.hide()\" class=\"notification-item\">\n <span class=\"notification-title\">\n {{ notification.title }}\n @if (!notification.wasRead) {\n <span class=\"notification-item-indicator\"></span>\n }\n </span>\n @if (notification.description) {\n <span>{{ notification.description }}</span>\n <em class=\"fas fa-chevron-right\"></em>\n }\n </li>\n }\n </ul>\n </ng-template>\n</p-overlayPanel>\n", styles: [".fas{color:#fff}.top-bar-container{height:81px;background-color:var(--theme-light);display:flex;flex:1;align-items:center;padding:15px;color:#fff;font-size:1em;font-weight:600;box-shadow:2px 2px 4px #00000029}.top-bar-container .menu-toggle{cursor:pointer;margin-right:10px;padding:8px}.top-bar-container .menu-toggle .menu-icon{background:url('data:image/svg+xml,<svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<path d=\"M0 13.846H15V11.538H0V13.846ZM0 8.077H11.538V5.769H0V8.077ZM0 0V2.308H15V0H0ZM20.769 11.065L16.638 6.923L20.769 2.781L19.142 1.154L13.373 6.923L19.142 12.692L20.769 11.065Z\" fill=\"white\"/>%0A</svg>%0A');background-repeat:no-repeat;background-size:cover;width:20.77px;height:13.85px}.top-bar-container .menu-toggle span{font-size:1.3em}.top-bar-container .left-items-container{display:flex;align-items:center;flex-direction:row}.top-bar-container .right-items-container{flex:1;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.top-bar-container .right-items-container .help-central{display:flex;align-items:center;gap:20px;font-size:1rem;margin-right:35px}.top-bar-container .right-items-container .help-central em{font-size:1.3rem}.top-bar-container .right-items-container .help-central a{outline:none;border:none;text-decoration:none;color:transparent}.top-bar-container .right-items-container .help-central a i{color:#fff;font-size:1.1em}.top-bar-container .right-items-container .help-central a i:hover{color:#7de5ec}@media screen and (max-width: 441px){.top-bar-container .right-items-container .help-central span{display:none}.top-bar-container .right-items-container .help-central em{font-size:1rem}}.top-bar-container .right-items-container .menu-container{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;cursor:pointer}.top-bar-container .right-items-container .menu-container .user-name{margin-right:15px}.top-bar-container .right-items-container .notifications-icon{position:relative;cursor:pointer}.top-bar-container .right-items-container .notifications-indicator{position:absolute;right:-8px;top:-8px;width:12px;height:12px;border-radius:50%;background-color:var(--error-color)}.separator{height:100%;margin-left:15px;margin-right:15px}.separator:after{content:\"\";height:100%;border-right:2px solid #ffffff}.account-info{display:flex;flex-direction:column;background-color:var(--theme-primary);border-radius:var(--border-radius);color:#fff;padding:5px;width:300px}.account-info .account-info-row{display:flex;flex-direction:row;align-items:center}.account-info .account-info-row .account-info-item{flex:1}.account-info .account-info-row .account-info-item:first-child{flex:.6}.account-info .account-info-row .account-info-item .account-info-value{font-weight:200}.account-info .change-account-mobile{font-size:.8em;align-items:center;display:flex}.account-info .change-account-mobile .change-account-mobile-label{margin-right:5px}.change-account-info{background-color:unset;cursor:pointer}.change-account-info:hover{background-color:var(--theme-primary)}.user-menu{padding:0;margin:0;list-style:none;color:#fff}.user-menu li{display:flex;flex-direction:row;align-items:center;padding:4px;font-weight:200;cursor:pointer;border-radius:var(--border-radius)}.user-menu li:hover{background-color:var(--theme-primary)}.user-menu li .user-menu-icon{width:28px;height:25px;background-repeat:no-repeat}.user-menu li .logout{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17.687\" height=\"17.686\" viewBox=\"0 0 17.687 17.686\">%0A <g id=\"Grupo_8513\" data-name=\"Grupo 8513\" transform=\"translate(12.157)\">%0A <g id=\"Grupo_1649\" data-name=\"Grupo 1649\">%0A <g id=\"exit-to-app\">%0A <path id=\"Caminho_706\" data-name=\"Caminho 706\" d=\"M1628.279,320.831l1.375,1.375,4.914-4.912-4.914-4.913-1.375,1.375,2.554,2.555H1621.3v1.965h9.531Zm8.745-12.381h-13.757a1.971,1.971,0,0,0-1.965,1.965v3.93h1.965v-3.93h13.757v13.756h-13.757v-3.93H1621.3v3.93a1.971,1.971,0,0,0,1.965,1.965h13.757a1.971,1.971,0,0,0,1.965-1.965V310.415A1.971,1.971,0,0,0,1637.024,308.45Z\" transform=\"translate(-1633.459 -308.45)\" fill=\"%23fff\"/>%0A </g>%0A </g>%0A </g>%0A</svg>%0A');background-position-y:3px}.add-account{color:#fff;font-size:1.1em;padding:10px;margin:0;font-weight:400;letter-spacing:.25px;cursor:pointer}@media screen and (max-width: 441px){.hidden-items{display:none!important}}.notifications-header{display:flex;align-items:center;gap:8px}.notifications-header .notifications-vector-logo{background-image:url(/assets/images/vector_logo_horizontal.svg);background-repeat:no-repeat;background-position:right;background-size:cover;height:12px;width:30px}.notifications-header .notifications-title{text-transform:uppercase;color:var(--gray-dark);font-weight:600}::ng-deep .p-overlaypanel.background-white{border-radius:8px!important;background-color:#fff!important;border:1px solid #d9dbe9!important;box-shadow:0 1px 2px #1f29371a,0 2px 4px #1f29371a,0 4px 8px #1f29371a,0 8px 16px #1f29371a!important;padding:3px!important;left:1462.88px!important}::ng-deep .p-overlaypanel.background-white:before,::ng-deep .p-overlaypanel.background-white:after{display:none!important}::ng-deep .p-overlaypanel.background-white .p-overlaypanel-content{padding:8px 0!important}.notifications-list{max-height:400px;overflow:auto;margin-top:10px}.notifications-list .notification-item{cursor:pointer;position:relative;padding:5px 10px;border-radius:5px;text-align:center;transition:background-color .15s ease,color .15s ease}.notifications-list .notification-item:hover,.notifications-list .notification-item:focus{background-color:var(--theme-medium)!important;color:#fff;outline:none}.notifications-list .notification-item:hover .notification-title,.notifications-list .notification-item:focus .notification-title{color:#fff}.notifications-list .notification-item:hover em,.notifications-list .notification-item:focus em{color:#fff}.notifications-list .notification-item .notification-title{font-weight:600;text-transform:uppercase;position:relative;display:inline-block;color:var(--theme-medium)}.notifications-list .notification-item .notification-title .notification-item-indicator{position:absolute;top:-4px;right:-12px;width:8px;height:8px;border-radius:50%;background-color:var(--error-color);margin:0}.notifications-list .notification-item span{font-weight:500;margin-right:20px}.notifications-list .notification-item em{position:absolute;right:10px;bottom:10px;color:var(--theme-primary)}\n"] }]
137
140
  }], ctorParameters: () => [{ type: i1.MenuService }, { type: i1.AuthService }, { type: i2.Router }, { type: i1.ProfileService }, { type: i1.StorageService }, { type: i3.NotificationsService }, { type: i1.ErrorMessageService }], propDecorators: { fintech: [{
138
141
  type: Input
139
142
  }], accountService: [{
@@ -143,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
143
146
  }], onClick: [{
144
147
  type: Output
145
148
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBSXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFnRDFCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxtQkFBd0M7UUFOeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEQzQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEtBQUssQ0FB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bnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm9sZSwgVmVjdG9yTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEhlbHBDZW50cmFsSWNvbk9wdGlvbnNUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvcGJhci5tb2RlbCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgRXJyb3JNZXNzYWdlU2VydmljZSwgTWVudVNlcnZpY2UsIFByb2ZpbGVTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hc2tVdGlsLCBXaW5kb3dVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdG9wLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90b3AtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9wLWJhci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUb3BCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBoaWRlRWxlbWVudHMgPSBmYWxzZTtcbiAgcHVibGljIG9wZW5lZE1lbnUgPSBmYWxzZTtcbiAgcHVibGljIG9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93Tm90aWZpY2F0aW9ucyA9IGZhbHNlO1xuICBwdWJsaWMgZG9pbmdPbmJvYXJkaW5nID0gZmFsc2U7XG5cbiAgcHVibGljIHZlY3RvckZpcnN0TmFtZTogYW55O1xuICBwdWJsaWMgY3VycmVudEFjY291bnQ6IGFueSA9IHt9O1xuICBwdWJsaWMgaXNBZG1pbiA9IGZhbHNlO1xuICBwdWJsaWMgb3RoZXJBY2NvdW50czogYW55W10gPSBbXTtcbiAgcHVibGljIG1hc2tVdGlsID0gTWFza1V0aWw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbnRlY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgcHVibGljIGFjY291bnRTZXJ2aWNlOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGVscENlbnRyYWwgPSBmYWxzZTtcbiAgcHVibGljIGhlbHBDZW50cmFsSWNvbnM6IEhlbHBDZW50cmFsSWNvbk9wdGlvbnNUeXBlW10gPSBbXG4gICAge1xuICAgICAgaWNvbjogJ2ZhYiBmYS13aGF0c2FwcCcsXG4gICAgICB1cmw6ICdodHRwczovL2FwaS53aGF0c2FwcC5jb20vc2VuZD9waG9uZT01NTIxOTcxNTUxMTg4JnRleHQ9b2wlQzMlQTEnLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbjogJ3BpIHBpLXBob25lJyxcbiAgICAgIHVybDogJ3RlbDo1NTIxMjA0MjMwMTcnLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbjogJ2ZhciBmYS1lbnZlbG9wZScsXG4gICAgICB1cmw6ICdtYWlsdG86c3Vwb3J0ZUB2ZWN0b3JhcHAuY29tLmJyJyxcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGljb246ICdmYXIgZmEtcXVlc3Rpb24tY2lyY2xlJyxcbiAgICAgIHVybDogJycsXG4gICAgICBhY3RpdmU6IGZhbHNlLFxuICAgIH0sXG4gIF07XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgbm90aWZpY2F0aW9uc0xpc3Q6IFZlY3Rvck5vdGlmaWNhdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGVycm9yTWVzc2FnZVNlcnZpY2U6IEVycm9yTWVzc2FnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucHJvZmlsZVNlcnZpY2UucHJvZmlsZUZpcnN0TmFtZSQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZlY3RvckZpcnN0TmFtZSA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5tZW51U2VydmljZS5tZW51T3BlbmVkJC5zdWJzY3JpYmUoKGhhc09wZW5lZCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVFbGVtZW50cyA9IGhhc09wZW5lZDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmFjY291bnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLnN1YnNjcmliZSgoYWNjb3VudDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudCA9IGFjY291bnQ7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjY291bnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ciA9IGAke3RoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlcn1gO1xuICAgICAgICAgICAgY29uc3QgbGVuID0gc3RyLmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGFjY291bnRXaXRoSHlmZW4gPSBzdHIuc3Vic3RyaW5nKDAsIGxlbiAtIDEpICsgJy0nICsgc3RyLnN1YnN0cmluZyhsZW4gLSAxKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEFjY291bnQuYWNjb3VudE51bWJlciA9IGFjY291bnRXaXRoSHlmZW47XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICB0aGlzLmFjY291bnRTZXJ2aWNlPy51c2VyQWNjb3VudHMkLnN1YnNjcmliZSgoYWNjb3VudHM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMub3RoZXJBY2NvdW50cyA9IGFjY291bnRzPy5maWx0ZXIoKGFjYzogYW55KSA9PiBhY2MudXVpZCAhPT0gdGhpcy5jdXJyZW50QWNjb3VudD8udXVpZCkgfHwgW107XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uub25PbmJvYXJkaW5nJC5zdWJzY3JpYmUoKG9uT25ib2FyZGluZzogYW55KSA9PiB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRvaW5nT25ib2FyZGluZyA9IG9uT25ib2FyZGluZztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5yb2xlJC5zdWJzY3JpYmUoKHJvbGUpID0+IHtcbiAgICAgICAgdGhpcy5pc0FkbWluID0gcm9sZSA9PT0gUm9sZS5BRE1JTjtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uubm90aWZpY2F0aW9ucyQuc3Vic2NyaWJlKChub3RpZmljYXRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0xpc3QgPSBub3RpZmljYXRpb25zO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNZW51KCkge1xuICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlTWVudSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGxvZ291dCgpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpO1xuICB9XG5cbiAgcHVibGljIGlzRGVza3RvcCgpIHtcbiAgICByZXR1cm4gV2luZG93VXRpbC5pc0Rlc2t0b3AoKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VBY2NvdW50KG5ld0FjY291bnQ6IGFueSkge1xuICAgIGlmIChuZXdBY2NvdW50LmlzQmxvY2tlZCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VTZXJ2aWNlLmdlbmVyaWNNb2RhbEVycm9yTWVzc2FnZSQubmV4dCgnRW50cmUgZW0gY29udGF0byBjb20gYSBjZW50cmFsIGRlIGF0ZW5kaW1lbnRvJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2xpbmtlZENucGonLCBuZXdBY2NvdW50LmN1c3RvbWVyRG9jdW1lbnQpO1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuY3VycmVudEFjY291bnQkLm5leHQobmV3QWNjb3VudCk7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9UZXJtc09mVXNlKCkge1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UudGVybXNPZlVzZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXNzd29yZENoYW5nZSgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Bhc3N3b3JkJywgJ3JlY292ZXInXSwgeyBxdWVyeVBhcmFtczogeyBjaGFuZ2U6IHRydWUgfSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvVGFyaWZmKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZmludGVjaC91bmRlci1jb25zdHJ1Y3Rpb24nXSk7XG4gIH1cbiAgcHVibGljIGdvVG9PbmJvYXJkaW5nKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnb25ib2FyZGluZycsICdhdHRvcm5leS1pbmZvcm1hdGlvbiddKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGljayhsaW5rOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdChsaW5rIHx8ICcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvcC1iYXItY29udGFpbmVyXCI+XG4gIDxkaXYgaWQ9XCJtZW51LXRvZ2dsZVwiIGNsYXNzPVwibWVudS10b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtaWNvblwiPjwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibGVmdC1pdGVtcy1jb250YWluZXJcIiAqbmdJZj1cImZpbnRlY2ggJiYgaXNEZXNrdG9wKCkgJiYgIWRvaW5nT25ib2FyZGluZyAmJiAhaXNBZG1pblwiPlxuICAgIDxzcGFuPkJhbmNvIHt7IGN1cnJlbnRBY2NvdW50Py5iYW5rQ29kZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3Bhbj5BRyB7eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgIDxzcGFuPkNDIHt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICA+e3sgY3VycmVudEFjY291bnQ/LmFjY291bnRUeXBlID09PSAnQ1VSUkVOVF9BQ0NPVU5UX1BGJyA/ICdDUEYnIDogJ0NOUEonIH19XG4gICAgICB7eyBtYXNrVXRpbC5mb3JtYXREb2N1bWVudChjdXJyZW50QWNjb3VudD8uZG9jdW1lbnQpIH19PC9zcGFuXG4gICAgPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1idXR0b24gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2hhbmdlQWNjb3VudE1lbnUudG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0yXCI+QWx0ZXJuYXIgY29udGE8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJyaWdodC1pdGVtcy1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdoaWRkZW4taXRlbXMnOiBoaWRlRWxlbWVudHMgfVwiICpuZ0lmPVwiIWlzQWRtaW4gJiYgIWRvaW5nT25ib2FyZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWxwLWNlbnRyYWxcIiAqbmdJZj1cInNob3dIZWxwQ2VudHJhbFwiPlxuICAgICAgPHNwYW4+e3sgJ2FwcC5sYWJlbC5oZWxwX2NlbnRyYWwnIHwgdHJhbnNsYXRlIH19Ojwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaGVscENlbnRyYWxJY29uc1wiPlxuICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbbmdDbGFzc109XCJ7IGhpZGRlbjogIWl0ZW0uYWN0aXZlIH1cIiBbYXR0ci5ocmVmXT1cIml0ZW0udXJsXCI+XG4gICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8c3BhbiAqbmdJZj1cIiFmaW50ZWNoXCIgKGNsaWNrKT1cIm5vdGlmaWNhdGlvbnMudG9nZ2xlKCRldmVudClcIiBjbGFzcz1cImZhcyBmYS1iZWxsIG5vdGlmaWNhdGlvbnMtaWNvblwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIobm90aWZpY2F0aW9uc0xpc3QgfCB1bnJlYWROb3RpZmljYXRpb25zKS5sZW5ndGhcIiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtaW5kaWNhdG9yXCI+IDwvc3Bhbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8ZGl2XG4gICAgICAjbWVudUNvbnRhaW5lclxuICAgICAgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiXG4gICAgICAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiXG4gICAgICBwVG9vbHRpcD1cIkVudGVyIHlvdXIgdXNlcm5hbWVcIlxuICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgIHRvb2x0aXBFdmVudD1cImNsaWNrXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInVzZXItbmFtZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5uYW1lIHx8IHZlY3RvckZpcnN0TmFtZSB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZmFzXCIgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRNZW51LCAnZmEtYW5nbGUtdXAnOiBvcGVuZWRNZW51IH1cIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxwLW92ZXJsYXlQYW5lbCAjbWVudSAob25IaWRlKT1cIm9wZW5lZE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkTWVudSA9IHRydWVcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvXCIgKm5nSWY9XCIhaXNEZXNrdG9wKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkJhbmNvOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYmFuayB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkFHOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fTogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+IHt7IG1hc2tVdGlsLmZvcm1hdERvY3VtZW50KGN1cnJlbnRBY2NvdW50Py5kb2N1bWVudCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhbmdlLWFjY291bnQtbW9iaWxlXCIgKGNsaWNrKT1cImNoYW5nZUFjY291bnRNZW51LnRvZ2dsZSgkZXZlbnQpXCIgKm5nSWY9XCJvdGhlckFjY291bnRzPy5sZW5ndGhcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFuZ2UtYWNjb3VudC1tb2JpbGUtbGFiZWxcIj5BbHRlcm5hciBjb250YTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImZhc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmEtYW5nbGUtZG93bic6ICFvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVcIj5cbiAgICAgIDxsaSAqbmdJZj1cImZpbnRlY2hcIiAoY2xpY2spPVwiZ29Ub1Rlcm1zT2ZVc2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtcy1vZi11c2UgdXNlci1tZW51LWljb25cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuPlRlcm1vcyBkZSBVc288L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpICpuZ0lmPVwiZmludGVjaFwiIChjbGljayk9XCJnb1RvUGFzc3dvcmRDaGFuZ2UoKTsgbWVudS5oaWRlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaW50ZWNoLXBhc3N3b3JkIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5BbHRlcmFyIFNlbmhhPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAoY2xpY2spPVwibG9nb3V0KClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2dvdXQgdXNlci1tZW51LWljb25cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuPlNhaXI8L3NwYW4+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuXG48cC1vdmVybGF5UGFuZWwgI2NoYW5nZUFjY291bnRNZW51IChvbkhpZGUpPVwib3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSBmYWxzZVwiIChvblNob3cpPVwib3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSB0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGFjY291bnQgb2Ygb3RoZXJBY2NvdW50c1wiXG4gICAgICBjbGFzcz1cImFjY291bnQtaW5mbyBjaGFuZ2UtYWNjb3VudC1pbmZvXCJcbiAgICAgIChjbGljayk9XCJjaGFuZ2VBY2NvdW50KGFjY291bnQpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5CYW5jbzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYmFuayB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkFHOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBhY2NvdW50Py5hZ2VuY3kgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5DQzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj57eyBhY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fTogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+IHt7IGFjY291bnQ/LmRvY3VtZW50IHwgZm9ybWF0RG9jdW1lbnQgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxociAvPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBhZGQtYWNjb3VudFwiIChjbGljayk9XCJnb1RvT25ib2FyZGluZygpOyBjaGFuZ2VBY2NvdW50TWVudS5oaWRlKClcIj5cbiAgICAgICAgQWRpY2lvbmFyIHVtYSBub3ZhIGNvbnRhXG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuXG48cC1vdmVybGF5UGFuZWxcbiAgI25vdGlmaWNhdGlvbnNcbiAgKG9uSGlkZSk9XCJzaG93Tm90aWZpY2F0aW9ucyA9IGZhbHNlXCJcbiAgKG9uU2hvdyk9XCJzaG93Tm90aWZpY2F0aW9ucyA9IHRydWVcIlxuICBzdHlsZUNsYXNzPVwiYmFja2dyb3VuZC13aGl0ZVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9ucy12ZWN0b3ItbG9nb1wiPjwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZmljYXRpb25zLXRpdGxlXCI+XG4gICAgICAgIHt7ICdhcHAubGFiZWwubm90aWZpY2F0aW9ucycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJub3RpZmljYXRpb25zLWxpc3RcIj5cbiAgICAgIDxsaVxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2sobm90aWZpY2F0aW9uPy5saW5rKVwiXG4gICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnNMaXN0IHwgdW5yZWFkTm90aWZpY2F0aW9uc1wiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLXRpdGxlXCI+e3sgbm90aWZpY2F0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBub3RpZmljYXRpb24uZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgIDxlbSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9lbT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvcC1iYXIvdG9wLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQXNCLE1BQU0sY0FBYyxDQUFDO0FBSXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFnRDFCLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxtQkFBd0M7UUFOeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEQzQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLEtBQUssQ0FB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Y0FBYztzQkFEcEIsS0FBSztnQkFHQyxlQUFlO3NCQURyQixLQUFLO2dCQXlCSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb2xlLCBWZWN0b3JOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSGVscENlbnRyYWxJY29uT3B0aW9uc1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9wYmFyLm1vZGVsJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBFcnJvck1lc3NhZ2VTZXJ2aWNlLCBNZW51U2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFza1V0aWwsIFdpbmRvd1V0aWwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci10b3AtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvcC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b3AtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGhpZGVFbGVtZW50cyA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkTWVudSA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUgPSBmYWxzZTtcbiAgcHVibGljIHNob3dOb3RpZmljYXRpb25zID0gZmFsc2U7XG4gIHB1YmxpYyBkb2luZ09uYm9hcmRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgdmVjdG9yRmlyc3ROYW1lOiBhbnk7XG4gIHB1YmxpYyBjdXJyZW50QWNjb3VudDogYW55ID0ge307XG4gIHB1YmxpYyBpc0FkbWluID0gZmFsc2U7XG4gIHB1YmxpYyBvdGhlckFjY291bnRzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbWFza1V0aWwgPSBNYXNrVXRpbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmludGVjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjb3VudFNlcnZpY2U6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNob3dIZWxwQ2VudHJhbCA9IGZhbHNlO1xuICBwdWJsaWMgaGVscENlbnRyYWxJY29uczogSGVscENlbnRyYWxJY29uT3B0aW9uc1R5cGVbXSA9IFtcbiAgICB7XG4gICAgICBpY29uOiAnZmFiIGZhLXdoYXRzYXBwJyxcbiAgICAgIHVybDogJ2h0dHBzOi8vYXBpLndoYXRzYXBwLmNvbS9zZW5kP3Bob25lPTU1MjE5NzE1NTExODgmdGV4dD1vbCVDMyVBMScsXG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBpY29uOiAncGkgcGktcGhvbmUnLFxuICAgICAgdXJsOiAndGVsOjU1MjEyMDQyMzAxNycsXG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBpY29uOiAnZmFyIGZhLWVudmVsb3BlJyxcbiAgICAgIHVybDogJ21haWx0bzpzdXBvcnRlQHZlY3RvcmFwcC5jb20uYnInLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgaWNvbjogJ2ZhciBmYS1xdWVzdGlvbi1jaXJjbGUnLFxuICAgICAgdXJsOiAnJyxcbiAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgfSxcbiAgXTtcblxuICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBub3RpZmljYXRpb25zTGlzdDogVmVjdG9yTm90aWZpY2F0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXJyb3JNZXNzYWdlU2VydmljZTogRXJyb3JNZXNzYWdlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5wcm9maWxlU2VydmljZS5wcm9maWxlRmlyc3ROYW1lJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMudmVjdG9yRmlyc3ROYW1lID0gdmFsdWU7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLm1lbnVPcGVuZWQkLnN1YnNjcmliZSgoaGFzT3BlbmVkKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzID0gaGFzT3BlbmVkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuYWNjb3VudFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5jdXJyZW50QWNjb3VudCQuc3Vic2NyaWJlKChhY2NvdW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBY2NvdW50ID0gYWNjb3VudDtcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QWNjb3VudCkge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gYCR7dGhpcy5jdXJyZW50QWNjb3VudC5hY2NvdW50TnVtYmVyfWA7XG4gICAgICAgICAgICBjb25zdCBsZW4gPSBzdHIubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgYWNjb3VudFdpdGhIeWZlbiA9IHN0ci5zdWJzdHJpbmcoMCwgbGVuIC0gMSkgKyAnLScgKyBzdHIuc3Vic3RyaW5nKGxlbiAtIDEpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QWNjb3VudC5hY2NvdW50TnVtYmVyID0gYWNjb3VudFdpdGhIeWZlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2U/LnVzZXJBY2NvdW50cyQuc3Vic2NyaWJlKChhY2NvdW50czogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5vdGhlckFjY291bnRzID0gYWNjb3VudHM/LmZpbHRlcigoYWNjOiBhbnkpID0+IGFjYy51dWlkICE9PSB0aGlzLmN1cnJlbnRBY2NvdW50Py51dWlkKSB8fCBbXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbk9uYm9hcmRpbmckLnN1YnNjcmliZSgob25PbmJvYXJkaW5nOiBhbnkpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9pbmdPbmJvYXJkaW5nID0gb25PbmJvYXJkaW5nO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJvbGUkLnN1YnNjcmliZSgocm9sZSkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSByb2xlID09PSBSb2xlLkFETUlOO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5ub3RpZmljYXRpb25zJC5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zTGlzdCA9IG5vdGlmaWNhdGlvbnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy5tZW51U2VydmljZS50b2dnbGVNZW51JC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbG9nb3V0KCkge1xuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gIH1cblxuICBwdWJsaWMgaXNEZXNrdG9wKCkge1xuICAgIHJldHVybiBXaW5kb3dVdGlsLmlzRGVza3RvcCgpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUFjY291bnQobmV3QWNjb3VudDogYW55KSB7XG4gICAgaWYgKG5ld0FjY291bnQuaXNCbG9ja2VkKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZVNlcnZpY2UuZ2VuZXJpY01vZGFsRXJyb3JNZXNzYWdlJC5uZXh0KCdFbnRyZSBlbSBjb250YXRvIGNvbSBhIGNlbnRyYWwgZGUgYXRlbmRpbWVudG8nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnbGlua2VkQ25waicsIG5ld0FjY291bnQuY3VzdG9tZXJEb2N1bWVudCk7XG4gICAgdGhpcy5hY2NvdW50U2VydmljZS5jdXJyZW50QWNjb3VudCQubmV4dChuZXdBY2NvdW50KTtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub1Rlcm1zT2ZVc2UoKSB7XG4gICAgdGhpcy5hY2NvdW50U2VydmljZS50ZXJtc09mVXNlJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub1Bhc3N3b3JkQ2hhbmdlKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncGFzc3dvcmQnLCAncmVjb3ZlciddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoYW5nZTogdHJ1ZSB9IH0pO1xuICB9XG5cbiAgcHVibGljIGdvVG9UYXJpZmYoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydmaW50ZWNoL3VuZGVyLWNvbnN0cnVjdGlvbiddKTtcbiAgfVxuICBwdWJsaWMgZ29Ub09uYm9hcmRpbmcoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydvbmJvYXJkaW5nJywgJ2F0dG9ybmV5LWluZm9ybWF0aW9uJ10pO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNsaWNrKG5vdGlmaWNhdGlvbjogVmVjdG9yTm90aWZpY2F0aW9uKSB7XG4gICAgaWYgKG5vdGlmaWNhdGlvbj8ubGluaykge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChub3RpZmljYXRpb24ubGluayk7XG4gICAgfVxuICAgIHRoaXMub25DbGljay5lbWl0KG5vdGlmaWNhdGlvbj8ubGluayB8fCAnJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3AtYmFyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGlkPVwibWVudS10b2dnbGVcIiBjbGFzcz1cIm1lbnUtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb25cIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnQtaXRlbXMtY29udGFpbmVyXCIgKm5nSWY9XCJmaW50ZWNoICYmIGlzRGVza3RvcCgpICYmICFkb2luZ09uYm9hcmRpbmcgJiYgIWlzQWRtaW5cIj5cbiAgICA8c3Bhbj5CYW5jbyB7eyBjdXJyZW50QWNjb3VudD8uYmFua0NvZGUgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgPHNwYW4+QUcge3sgY3VycmVudEFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3Bhbj5DQyB7eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgPnt7IGN1cnJlbnRBY2NvdW50Py5hY2NvdW50VHlwZSA9PT0gJ0NVUlJFTlRfQUNDT1VOVF9QRicgPyAnQ1BGJyA6ICdDTlBKJyB9fVxuICAgICAge3sgbWFza1V0aWwuZm9ybWF0RG9jdW1lbnQoY3VycmVudEFjY291bnQ/LmRvY3VtZW50KSB9fTwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhbmdlLWFjY291bnQtYnV0dG9uIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNoYW5nZUFjY291bnRNZW51LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXItMlwiPkFsdGVybmFyIGNvbnRhPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiZmFzXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdmYS1hbmdsZS1kb3duJzogIW9wZW5lZENoYW5nZUFjY291bnRNZW51LCAnZmEtYW5nbGUtdXAnOiBvcGVuZWRDaGFuZ2VBY2NvdW50TWVudSB9XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicmlnaHQtaXRlbXMtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnaGlkZGVuLWl0ZW1zJzogaGlkZUVsZW1lbnRzIH1cIiAqbmdJZj1cIiFpc0FkbWluICYmICFkb2luZ09uYm9hcmRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVscC1jZW50cmFsXCIgKm5nSWY9XCJzaG93SGVscENlbnRyYWxcIj5cbiAgICAgIDxzcGFuPnt7ICdhcHAubGFiZWwuaGVscF9jZW50cmFsJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGhlbHBDZW50cmFsSWNvbnNcIj5cbiAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFpdGVtLmFjdGl2ZSB9XCIgW2F0dHIuaHJlZl09XCJpdGVtLnVybFwiPlxuICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW4gKm5nSWY9XCIhZmludGVjaFwiIChjbGljayk9XCJub3RpZmljYXRpb25zLnRvZ2dsZSgkZXZlbnQpXCIgY2xhc3M9XCJmYXMgZmEtYmVsbCBub3RpZmljYXRpb25zLWljb25cIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiKG5vdGlmaWNhdGlvbnNMaXN0IHwgdW5yZWFkTm90aWZpY2F0aW9ucykubGVuZ3RoXCIgY2xhc3M9XCJub3RpZmljYXRpb25zLWluZGljYXRvclwiPiA8L3NwYW4+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj48L3NwYW4+XG4gICAgPGRpdlxuICAgICAgI21lbnVDb250YWluZXJcbiAgICAgIGNsYXNzPVwibWVudS1jb250YWluZXJcIlxuICAgICAgKGNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIlxuICAgICAgcFRvb2x0aXA9XCJFbnRlciB5b3VyIHVzZXJuYW1lXCJcbiAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICB0b29sdGlwRXZlbnQ9XCJjbGlja1wiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLW5hbWVcIj57eyBjdXJyZW50QWNjb3VudD8ubmFtZSB8fCB2ZWN0b3JGaXJzdE5hbWUgfHwgJycgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImZhc1wiIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkTWVudSwgJ2ZhLWFuZ2xlLXVwJzogb3BlbmVkTWVudSB9XCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48cC1vdmVybGF5UGFuZWwgI21lbnUgKG9uSGlkZSk9XCJvcGVuZWRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZE1lbnUgPSB0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mb1wiICpuZ0lmPVwiIWlzRGVza3RvcCgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5CYW5jbzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgY3VycmVudEFjY291bnQ/LmJhbmsgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgY3VycmVudEFjY291bnQ/LmFnZW5jeSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8tcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvdW50LWluZm8taXRlbVwiPlxuICAgICAgICAgIDxzcGFuPkNDOiA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50LWluZm8tdmFsdWVcIj57eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudE51bWJlciB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj57eyBjdXJyZW50QWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBtYXNrVXRpbC5mb3JtYXREb2N1bWVudChjdXJyZW50QWNjb3VudD8uZG9jdW1lbnQpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNoYW5nZS1hY2NvdW50LW1vYmlsZVwiIChjbGljayk9XCJjaGFuZ2VBY2NvdW50TWVudS50b2dnbGUoJGV2ZW50KVwiICpuZ0lmPVwib3RoZXJBY2NvdW50cz8ubGVuZ3RoXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhbmdlLWFjY291bnQtbW9iaWxlLWxhYmVsXCI+QWx0ZXJuYXIgY29udGE8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmYXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZhLWFuZ2xlLWRvd24nOiAhb3BlbmVkQ2hhbmdlQWNjb3VudE1lbnUsICdmYS1hbmdsZS11cCc6IG9wZW5lZENoYW5nZUFjY291bnRNZW51IH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCI+XG4gICAgICA8bGkgKm5nSWY9XCJmaW50ZWNoXCIgKGNsaWNrKT1cImdvVG9UZXJtc09mVXNlKCk7IG1lbnUuaGlkZSgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGVybXMtb2YtdXNlIHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5UZXJtb3MgZGUgVXNvPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSAqbmdJZj1cImZpbnRlY2hcIiAoY2xpY2spPVwiZ29Ub1Bhc3N3b3JkQ2hhbmdlKCk7IG1lbnUuaGlkZSgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmludGVjaC1wYXNzd29yZCB1c2VyLW1lbnUtaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4+QWx0ZXJhciBTZW5oYTwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgKGNsaWNrKT1cImxvZ291dCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibG9nb3V0IHVzZXItbWVudS1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtb3ZlcmxheVBhbmVsICNjaGFuZ2VBY2NvdW50TWVudSAob25IaWRlKT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gZmFsc2VcIiAob25TaG93KT1cIm9wZW5lZENoYW5nZUFjY291bnRNZW51ID0gdHJ1ZVwiPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBhY2NvdW50IG9mIG90aGVyQWNjb3VudHNcIlxuICAgICAgY2xhc3M9XCJhY2NvdW50LWluZm8gY2hhbmdlLWFjY291bnQtaW5mb1wiXG4gICAgICAoY2xpY2spPVwiY2hhbmdlQWNjb3VudChhY2NvdW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+QmFuY286IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmJhbmsgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudC1pbmZvLWl0ZW1cIj5cbiAgICAgICAgICA8c3Bhbj5BRzogPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudC1pbmZvLXZhbHVlXCI+e3sgYWNjb3VudD8uYWdlbmN5IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+Q0M6IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPnt7IGFjY291bnQ/LmFjY291bnROdW1iZXIgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnQtaW5mby1pdGVtXCI+XG4gICAgICAgICAgPHNwYW4+e3sgYWNjb3VudD8uYWNjb3VudFR5cGUgPT09ICdDVVJSRU5UX0FDQ09VTlRfUEYnID8gJ0NQRicgOiAnQ05QSicgfX06IDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnQtaW5mby12YWx1ZVwiPiB7eyBhY2NvdW50Py5kb2N1bWVudCB8IGZvcm1hdERvY3VtZW50IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aHIgLz5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXIgYWRkLWFjY291bnRcIiAoY2xpY2spPVwiZ29Ub09uYm9hcmRpbmcoKTsgY2hhbmdlQWNjb3VudE1lbnUuaGlkZSgpXCI+XG4gICAgICAgIEFkaWNpb25hciB1bWEgbm92YSBjb250YVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtb3ZlcmxheVBhbmVsXG4gICNub3RpZmljYXRpb25zXG4gIChvbkhpZGUpPVwic2hvd05vdGlmaWNhdGlvbnMgPSBmYWxzZVwiXG4gIChvblNob3cpPVwic2hvd05vdGlmaWNhdGlvbnMgPSB0cnVlXCJcbiAgc3R5bGVDbGFzcz1cImJhY2tncm91bmQtd2hpdGVcIlxuPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtdmVjdG9yLWxvZ29cIj48L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9ucy10aXRsZVwiPlxuICAgICAgICB7eyAnYXBwLmxhYmVsLm5vdGlmaWNhdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPHVsIGNsYXNzPVwibm90aWZpY2F0aW9ucy1saXN0XCI+XG4gICAgICBAZm9yIChub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9uc0xpc3Q7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8bGkgKGNsaWNrKT1cImhhbmRsZUNsaWNrKG5vdGlmaWNhdGlvbik7IG5vdGlmaWNhdGlvbnMuaGlkZSgpXCIgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBub3RpZmljYXRpb24udGl0bGUgfX1cbiAgICAgICAgICAgIEBpZiAoIW5vdGlmaWNhdGlvbi53YXNSZWFkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW0taW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICBAaWYgKG5vdGlmaWNhdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgPHNwYW4+e3sgbm90aWZpY2F0aW9uLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2VtPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cbiJdfQ==