cax-design-system 2.8.1 → 2.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/dropdown/dropdown.mjs +3 -3
- package/esm2022/menu/menu.mjs +3 -3
- package/esm2022/navigation/navigation.mjs +3 -3
- package/esm2022/tableconfiguration/tableconfiguration.mjs +19 -11
- package/esm2022/toggleswitch/toggleswitch.mjs +2 -2
- package/esm2022/upload/upload.component.mjs +12 -7
- package/fesm2022/cax-design-system-dropdown.mjs +2 -2
- package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/cax-design-system-menu.mjs +2 -2
- package/fesm2022/cax-design-system-menu.mjs.map +1 -1
- package/fesm2022/cax-design-system-navigation.mjs +2 -2
- package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
- package/fesm2022/cax-design-system-tableconfiguration.mjs +18 -10
- package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
- package/fesm2022/cax-design-system-toggleswitch.mjs +2 -2
- package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
- package/fesm2022/cax-design-system-upload.mjs +11 -6
- package/fesm2022/cax-design-system-upload.mjs.map +1 -1
- package/package.json +184 -184
- package/resources/cax.min.scss +1 -1
- package/resources/cax.scss +1 -0
- package/resources/components/colorpicker/images/color.png +0 -0
- package/resources/components/colorpicker/images/hue.png +0 -0
- package/resources/components/menu/menu.scss +1 -0
- package/resources/components/navigation/navigation.scss +1 -0
- package/resources/components/password/images/password-meter.png +0 -0
- package/resources/components/tableconfiguration/tableconfiguration.scss +10 -0
- package/resources/components/toggleswitch/toggleswitch.scss +1 -1
- package/resources/components/tree/images/line.gif +0 -0
- package/resources/images/color.png +0 -0
- package/resources/images/hue.png +0 -0
- package/resources/images/line.gif +0 -0
- package/resources/images/password-meter.png +0 -0
- package/tableconfiguration/tableconfiguration.d.ts +3 -2
|
@@ -289,7 +289,7 @@ export class Navigation {
|
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Navigation, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
292
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: Navigation, isStandalone: true, selector: "cax-navigation", inputs: { header: "header", topNavList: "topNavList", bottomNavList: "bottomNavList", activeTab: "activeTab", notifications: "notifications", helpCentre: "helpCentre", copyrightYear: "copyrightYear", version: "version", logout: "logout", profile: "profile", settings: "settings", userName: "userName", userImage: "userImage", headerLogo: "headerLogo", headerInitials: "headerInitials", subscriptionMode: "subscriptionMode", subscriptionList: "subscriptionList", selectedSubscription: "selectedSubscription", advanceSubscriptionList: "advanceSubscriptionList", displaySubscriptionName: "displaySubscriptionName", notificationCount: "notificationCount" }, outputs: { onNavListItemChange: "onNavListItemChange", onNotificationClick: "onNotificationClick", onHelpCentreClick: "onHelpCentreClick", onLogoutClick: "onLogoutClick", onProfileClick: "onProfileClick", onSettingsClick: "onSettingsClick", onLogoClick: "onLogoClick", onSubscriptionChange: "onSubscriptionChange", onNavExpanded: "onNavExpanded" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "cax-element" }, viewQueries: [{ propertyName: "bottomContainer", first: true, predicate: ["bottomContainer"], descendants: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\r\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\r\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\r\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\r\n </div>\r\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\r\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\r\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell\"></i>\r\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-warning\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ displaySubscriptionName }}</span>\r\n </div>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'default' && subscriptionList?.length\">\r\n <li class=\"cax-nav-subscription-list-item\" [class.active]=\"selectedSubscription === item\" *ngFor=\"let item of subscriptionList\" (click)=\"changeActiveSusbcription(item)\">\r\n <span>{{ item }}</span>\r\n <cax-radioButton *ngIf=\"selectedSubscription === item\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'advance' && advanceSubscriptionList?.length\">\r\n <div *ngFor=\"let item of advanceSubscriptionList, let i = index\">\r\n <li [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-advance-subscription-list-item\" (click)=\"toggleSubscriptionList(i)\">\r\n <span>{{ item.name }}</span>\r\n <i *ngIf=\"!item.check\" class=\"cax cax-alt-arrow-down\"></i>\r\n <i *ngIf=\"item.check\" class=\"cax cax-alt-arrow-up\"></i>\r\n </li>\r\n <div *ngIf=\"item.check\" class=\"cax-nav-advance-subscription-child-list\">\r\n <li [class.active]=\"selectedSubscription?.selected === child\" class=\"cax-nav-advance-subscription-child-list-item\" *ngFor=\"let child of item.subscription\" (click)=\"updateSubscription(item, child)\">\r\n <span>{{ child }}</span>\r\n <cax-radioButton [size]=\"'sm'\" *ngIf=\"selectedSubscription?.selected === child\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200;will-change:width}.cax-nav .cax-nav-header .cax-image img{max-width:26px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1);will-change:max-width}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px;transition:width .3s cubic-bezier(.4,0,.2,1)}.cax-nav.cax-nav-expand .cax-nav-header .cax-image img{max-width:100px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1)}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:flex-start;will-change:width}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav-account-details .cax-avatar{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-account-details .cax-avatar img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: LogoModule }, { kind: "component", type: i1.Logo, selector: "cax-logo", inputs: ["size", "width", "height", "iconOnly", "darkMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i3.Divider, selector: "cax-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: ImageModule }, { kind: "component", type: i4.Image, selector: "cax-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "size", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i5.Avatar, selector: "cax-avatar", inputs: ["label", "icon", "image", "avatarSize", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i6.OverlayPanel, selector: "cax-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i7.RadioButton, selector: "cax-radioButton", inputs: ["value", "size", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i9.BadgeDirective, selector: "[caxBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "caxBadge", "value", "badgeSeverity", "severity", "badgeStyle", "badgeStyleClass"] }], animations: [
|
|
292
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: Navigation, isStandalone: true, selector: "cax-navigation", inputs: { header: "header", topNavList: "topNavList", bottomNavList: "bottomNavList", activeTab: "activeTab", notifications: "notifications", helpCentre: "helpCentre", copyrightYear: "copyrightYear", version: "version", logout: "logout", profile: "profile", settings: "settings", userName: "userName", userImage: "userImage", headerLogo: "headerLogo", headerInitials: "headerInitials", subscriptionMode: "subscriptionMode", subscriptionList: "subscriptionList", selectedSubscription: "selectedSubscription", advanceSubscriptionList: "advanceSubscriptionList", displaySubscriptionName: "displaySubscriptionName", notificationCount: "notificationCount" }, outputs: { onNavListItemChange: "onNavListItemChange", onNotificationClick: "onNotificationClick", onHelpCentreClick: "onHelpCentreClick", onLogoutClick: "onLogoutClick", onProfileClick: "onProfileClick", onSettingsClick: "onSettingsClick", onLogoClick: "onLogoClick", onSubscriptionChange: "onSubscriptionChange", onNavExpanded: "onNavExpanded" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "cax-element" }, viewQueries: [{ propertyName: "bottomContainer", first: true, predicate: ["bottomContainer"], descendants: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\r\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\r\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\r\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\r\n </div>\r\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\r\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\r\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell\"></i>\r\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-warning\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ displaySubscriptionName }}</span>\r\n </div>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'default' && subscriptionList?.length\">\r\n <li class=\"cax-nav-subscription-list-item\" [class.active]=\"selectedSubscription === item\" *ngFor=\"let item of subscriptionList\" (click)=\"changeActiveSusbcription(item)\">\r\n <span>{{ item }}</span>\r\n <cax-radioButton *ngIf=\"selectedSubscription === item\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'advance' && advanceSubscriptionList?.length\">\r\n <div *ngFor=\"let item of advanceSubscriptionList, let i = index\">\r\n <li [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-advance-subscription-list-item\" (click)=\"toggleSubscriptionList(i)\">\r\n <span>{{ item.name }}</span>\r\n <i *ngIf=\"!item.check\" class=\"cax cax-alt-arrow-down\"></i>\r\n <i *ngIf=\"item.check\" class=\"cax cax-alt-arrow-up\"></i>\r\n </li>\r\n <div *ngIf=\"item.check\" class=\"cax-nav-advance-subscription-child-list\">\r\n <li [class.active]=\"selectedSubscription?.selected === child\" class=\"cax-nav-advance-subscription-child-list-item\" *ngFor=\"let child of item.subscription\" (click)=\"updateSubscription(item, child)\">\r\n <span>{{ child }}</span>\r\n <cax-radioButton [size]=\"'sm'\" *ngIf=\"selectedSubscription?.selected === child\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200;will-change:width}.cax-nav .cax-nav-header .cax-image img{max-width:26px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1);will-change:max-width}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px;transition:width .3s cubic-bezier(.4,0,.2,1)}.cax-nav.cax-nav-expand .cax-nav-header .cax-image img{max-width:100px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1)}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px;white-space:nowrap}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:flex-start;will-change:width}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav-account-details .cax-avatar{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-account-details .cax-avatar img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: LogoModule }, { kind: "component", type: i1.Logo, selector: "cax-logo", inputs: ["size", "width", "height", "iconOnly", "darkMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i3.Divider, selector: "cax-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: ImageModule }, { kind: "component", type: i4.Image, selector: "cax-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "size", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i5.Avatar, selector: "cax-avatar", inputs: ["label", "icon", "image", "avatarSize", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i6.OverlayPanel, selector: "cax-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i7.RadioButton, selector: "cax-radioButton", inputs: ["value", "size", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i9.BadgeDirective, selector: "[caxBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "caxBadge", "value", "badgeSeverity", "severity", "badgeStyle", "badgeStyleClass"] }], animations: [
|
|
293
293
|
trigger('textAnimation', [
|
|
294
294
|
transition(':enter', [
|
|
295
295
|
style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden', transform: 'translateX(-24px)' }),
|
|
@@ -325,7 +325,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
325
325
|
])
|
|
326
326
|
], host: {
|
|
327
327
|
class: 'cax-element'
|
|
328
|
-
}, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\r\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\r\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\r\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\r\n </div>\r\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\r\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\r\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell\"></i>\r\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-warning\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ displaySubscriptionName }}</span>\r\n </div>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'default' && subscriptionList?.length\">\r\n <li class=\"cax-nav-subscription-list-item\" [class.active]=\"selectedSubscription === item\" *ngFor=\"let item of subscriptionList\" (click)=\"changeActiveSusbcription(item)\">\r\n <span>{{ item }}</span>\r\n <cax-radioButton *ngIf=\"selectedSubscription === item\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'advance' && advanceSubscriptionList?.length\">\r\n <div *ngFor=\"let item of advanceSubscriptionList, let i = index\">\r\n <li [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-advance-subscription-list-item\" (click)=\"toggleSubscriptionList(i)\">\r\n <span>{{ item.name }}</span>\r\n <i *ngIf=\"!item.check\" class=\"cax cax-alt-arrow-down\"></i>\r\n <i *ngIf=\"item.check\" class=\"cax cax-alt-arrow-up\"></i>\r\n </li>\r\n <div *ngIf=\"item.check\" class=\"cax-nav-advance-subscription-child-list\">\r\n <li [class.active]=\"selectedSubscription?.selected === child\" class=\"cax-nav-advance-subscription-child-list-item\" *ngFor=\"let child of item.subscription\" (click)=\"updateSubscription(item, child)\">\r\n <span>{{ child }}</span>\r\n <cax-radioButton [size]=\"'sm'\" *ngIf=\"selectedSubscription?.selected === child\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200;will-change:width}.cax-nav .cax-nav-header .cax-image img{max-width:26px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1);will-change:max-width}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px;transition:width .3s cubic-bezier(.4,0,.2,1)}.cax-nav.cax-nav-expand .cax-nav-header .cax-image img{max-width:100px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1)}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:flex-start;will-change:width}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav-account-details .cax-avatar{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-account-details .cax-avatar img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"] }]
|
|
328
|
+
}, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\r\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\r\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\r\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\r\n </div>\r\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\r\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\r\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\r\n </ng-template>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell\"></i>\r\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-warning\"></i>\r\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ displaySubscriptionName }}</span>\r\n </div>\r\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'default' && subscriptionList?.length\">\r\n <li class=\"cax-nav-subscription-list-item\" [class.active]=\"selectedSubscription === item\" *ngFor=\"let item of subscriptionList\" (click)=\"changeActiveSusbcription(item)\">\r\n <span>{{ item }}</span>\r\n <cax-radioButton *ngIf=\"selectedSubscription === item\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptionMode === 'advance' && advanceSubscriptionList?.length\">\r\n <div *ngFor=\"let item of advanceSubscriptionList, let i = index\">\r\n <li [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-advance-subscription-list-item\" (click)=\"toggleSubscriptionList(i)\">\r\n <span>{{ item.name }}</span>\r\n <i *ngIf=\"!item.check\" class=\"cax cax-alt-arrow-down\"></i>\r\n <i *ngIf=\"item.check\" class=\"cax cax-alt-arrow-up\"></i>\r\n </li>\r\n <div *ngIf=\"item.check\" class=\"cax-nav-advance-subscription-child-list\">\r\n <li [class.active]=\"selectedSubscription?.selected === child\" class=\"cax-nav-advance-subscription-child-list-item\" *ngFor=\"let child of item.subscription\" (click)=\"updateSubscription(item, child)\">\r\n <span>{{ child }}</span>\r\n <cax-radioButton [size]=\"'sm'\" *ngIf=\"selectedSubscription?.selected === child\" value=\"1\" [(ngModel)]=\"checkRadio\"></cax-radioButton>\r\n </li>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200;will-change:width}.cax-nav .cax-nav-header .cax-image img{max-width:26px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1);will-change:max-width}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px;transition:width .3s cubic-bezier(.4,0,.2,1)}.cax-nav.cax-nav-expand .cax-nav-header .cax-image img{max-width:100px;object-fit:cover;transition:max-width .3s cubic-bezier(.4,0,.2,1)}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px;white-space:nowrap}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:flex-start;will-change:width}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav-account-details .cax-avatar{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-account-details .cax-avatar img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"] }]
|
|
329
329
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { header: [{
|
|
330
330
|
type: Input
|
|
331
331
|
}], topNavList: [{
|
|
@@ -396,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
396
396
|
type: HostListener,
|
|
397
397
|
args: ['window:resize']
|
|
398
398
|
}] } });
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24udHMiLCIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFxQixpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNyTSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7O0FBOEJ0RCxNQUFNLE9BQU8sVUFBVTtJQXVCQztJQXRCWCxNQUFNLENBQXFCO0lBQzNCLFVBQVUsQ0FBZ0I7SUFDMUIsYUFBYSxDQUFnQjtJQUM3QixTQUFTLENBQWlEO0lBQzFELGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixhQUFhLEdBQXVCLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0QsT0FBTyxDQUFxQjtJQUM1QixNQUFNLEdBQVksSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFZLElBQUksQ0FBQztJQUN6QixRQUFRLENBQXFCO0lBQzdCLFNBQVMsQ0FBcUI7SUFDOUIsVUFBVSxDQUFzRDtJQUNoRSxjQUFjLENBQXFCO0lBQ25DLGdCQUFnQixHQUEwQixTQUFTLENBQUM7SUFDcEQsZ0JBQWdCLENBQVc7SUFDM0Isb0JBQW9CLENBQTBDO0lBQzlELHVCQUF1QixDQUFxQjtJQUM1Qyx1QkFBdUIsQ0FBcUI7SUFDNUMsaUJBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBRXZDLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQUcsQ0FBQztJQUVuQyxtQkFBbUIsR0FBZ0YsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0SCxtQkFBbUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1RCxpQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMxRCxhQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdEQsY0FBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3ZELGVBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN4RCxXQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEQsb0JBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDN0QsYUFBYSxHQUEwQixJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV6RSxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFDL0Isa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxvQkFBb0IsR0FBWSxLQUFLLENBQUM7SUFDdEMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNlLGVBQWUsQ0FBOEI7SUFDN0MsZUFBZSxDQUE4QjtJQUUzRSxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLENBQUM7O2dCQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLENBQUM7O2dCQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ3hELENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDekUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO3dCQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFOzRCQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxJQUFJLENBQUM7Z0NBQUUsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7O2dDQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzt3QkFDN0IsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsQ0FBQzt5QkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQzdFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDckMsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2pGLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUMzRCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQzVFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQzt3QkFDZCxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTs0QkFDOUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssSUFBSSxDQUFDO2dDQUFFLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDOztnQ0FDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7d0JBQzdCLENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUM7eUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNoRixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ3hDLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLHVCQUF1QjtZQUM1QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNyRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RDLElBQ0ksQ0FBQyxDQUNHLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixLQUFLLFFBQVE7b0JBQzdDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJO29CQUMvQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUTtvQkFDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUN4TSxFQUNILENBQUM7b0JBQ0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dCQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQzNCLElBQUksQ0FBQyxvQkFBb0IsR0FBRztnQ0FDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dDQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzs2QkFDakMsQ0FBQzs0QkFDRixPQUFPLElBQUksQ0FBQzt3QkFDaEIsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDO29CQUFFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakksQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztZQUMvRyxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNwRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQzdELENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFhLEVBQUUsSUFBaUIsRUFBRSxLQUFhLEVBQUUsUUFBMEI7UUFDbkYsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLFFBQVEsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3ZELElBQUksUUFBUSxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUNwQixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEYsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdELFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQ3RFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUN0RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzNDLE9BQU8sZUFBZSxHQUFHLFlBQVksR0FBRyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsMERBQTBEO1FBQzFELGtEQUFrRDtRQUNsRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDdkIscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzdCLDBEQUEwRDtZQUMxRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZCLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMzQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLDBEQUEwRDtRQUMxRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDdkIscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7b0JBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFZO1FBQ2pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFzQixFQUFFLEtBQWE7UUFDcEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdEQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNyRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDckQsQ0FBQztJQUNMLENBQUM7dUdBMVFRLFVBQVU7MkZBQVYsVUFBVSwwM0NDMUN2Qix1MlBBeUdBLHV0R0RwRmMsVUFBVSx1SkFBRSxZQUFZLDZWQUFFLGFBQWEsNEpBQUUsV0FBVyxzWkFBRSxZQUFZLDBPQUFFLGtCQUFrQixvV0FBRSxhQUFhLDhCQUFFLGlCQUFpQixzVkFBRSxXQUFXLDhWQUFFLFdBQVcsNE5BQ2hKO1lBQ1IsT0FBTyxDQUFDLGVBQWUsRUFBRTtnQkFDckIsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztvQkFDNUcsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7aUJBQzNKLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7b0JBQ3ZHLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7aUJBQ2hLLENBQUM7YUFDTCxDQUFDO1lBQ0YsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2dCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNySyxDQUFDO1NBQ0w7OzJGQUtRLFVBQVU7a0JBNUJ0QixTQUFTOytCQUNJLGdCQUFnQixtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBRXpCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsY0FDako7d0JBQ1IsT0FBTyxDQUFDLGVBQWUsRUFBRTs0QkFDckIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDNUcsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7NkJBQzNKLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7Z0NBQ3ZHLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7NkJBQ2hLLENBQUM7eUJBQ0wsQ0FBQzt3QkFDRixPQUFPLENBQUMsaUJBQWlCLEVBQUU7NEJBQ3ZCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDbEssVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUNySyxDQUFDO3FCQUNMLFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLGFBQWE7cUJBQ3ZCO3NGQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFRdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0UsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBc0o1QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9kaXZpZGVyJztcbmltcG9ydCB7IExvZ29Nb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9sb2dvJztcbmltcG9ydCB7IEFjdGl2ZVN1YnNjcmlwdGlvbiwgTmF2TGlzdEl0ZW0sIFN1YnNjcmlwdGlvbkxpc3QsIFRhYkluZGV4VHlwZSB9IGZyb20gJy4vbmF2aWdhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2VNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9pbWFnZSc7XG5pbXBvcnQgeyBBdmF0YXJNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9hdmF0YXInO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9vdmVybGF5JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2JhZGdlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjYXgtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24uaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtMb2dvTW9kdWxlLCBDb21tb25Nb2R1bGUsIERpdmlkZXJNb2R1bGUsIEltYWdlTW9kdWxlLCBBdmF0YXJNb2R1bGUsIE92ZXJsYXlQYW5lbE1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBCYWRnZU1vZHVsZV0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCd0ZXh0QW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgd2lkdGg6ICcwcHgnLCBtYXJnaW5MZWZ0OiAnMHB4JywgdmlzaWJpbGl0eTogJ2hpZGRlbicsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTI0cHgpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHdpZHRoOiAnKicsIG1hcmdpbkxlZnQ6ICc4cHgnLCB2aXNpYmlsaXR5OiAndmlzaWJsZScsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB3aWR0aDogJyonLCBtYXJnaW5MZWZ0OiAnOHB4JywgdmlzaWJpbGl0eTogJ3Zpc2libGUnLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHdpZHRoOiAnMHB4JywgbWFyZ2luTGVmdDogJzBweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0yNHB4KScgfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcignaGVhZGVyQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCwgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSksIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW3N0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pLCBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKV0pXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnY2F4LWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSB0b3BOYXZMaXN0OiBOYXZMaXN0SXRlbVtdO1xuICAgIEBJbnB1dCgpIGJvdHRvbU5hdkxpc3Q6IE5hdkxpc3RJdGVtW107XG4gICAgQElucHV0KCkgYWN0aXZlVGFiOiBUYWJJbmRleFR5cGUgfCAnbm90aWZpY2F0aW9ucycgfCAnaGVscC1jZW50cmUnO1xuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGhlbHBDZW50cmU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvcHlyaWdodFllYXI6IG51bWJlciB8IHVuZGVmaW5lZCA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICBASW5wdXQoKSB2ZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbG9nb3V0OiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwcm9maWxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzZXR0aW5nczogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgdXNlck5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSB1c2VySW1hZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBoZWFkZXJMb2dvOiB7IGV4cGFuZGVkOiBzdHJpbmc7IGNvbGxhcHNlZDogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgaGVhZGVySW5pdGlhbHM6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBzdWJzY3JpcHRpb25Nb2RlOiAnYWR2YW5jZScgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgc3Vic2NyaXB0aW9uTGlzdDogc3RyaW5nW107XG4gICAgQElucHV0KCkgc2VsZWN0ZWRTdWJzY3JpcHRpb246IHN0cmluZyB8IEFjdGl2ZVN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBhZHZhbmNlU3Vic2NyaXB0aW9uTGlzdDogU3Vic2NyaXB0aW9uTGlzdFtdO1xuICAgIEBJbnB1dCgpIGRpc3BsYXlTdWJzY3JpcHRpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIEBPdXRwdXQoKSBvbk5hdkxpc3RJdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBhY3RpdmVUYWI6IFRhYkluZGV4VHlwZSB8ICdub3RpZmljYXRpb25zJyB8ICdoZWxwLWNlbnRyZScgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uTm90aWZpY2F0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbkhlbHBDZW50cmVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uTG9nb3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblByb2ZpbGVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uU2V0dGluZ3NDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uTG9nb0NsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TdWJzY3JpcHRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbk5hdkV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcblxuICAgIGlzSG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzTmF2RXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBub3RpZmljYXRpb25BY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBoZWxwQ2VudHJlQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgYWNjb3VudERldGFpbHNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBjaGVja1JhZGlvID0gMTtcbiAgICBAVmlld0NoaWxkKCdib3R0b21Db250YWluZXInKSBib3R0b21Db250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJDb250YWluZXInKSBoZWFkZXJDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT0gJ25vdGlmaWNhdGlvbnMnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ub3RpZmljYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b3BOYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgdGhpcy50b3BOYXZMaXN0WzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWIgPT0gJ2hlbHAtY2VudHJlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGVscENlbnRyZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbU5hdkxpc3Q/Lm1hcCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IChsaXN0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwQ2VudHJlQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB0aGlzLnRvcE5hdkxpc3RbMF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZVRhYj8ucG9zaXRpb24gPT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWIuaW5kZXggPiAtMSAmJiB0aGlzLmFjdGl2ZVRhYi5pbmRleCA8IHRoaXMudG9wTmF2TGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BOYXZMaXN0W3RoaXMuYWN0aXZlVGFiLmluZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvcE5hdkxpc3Q/LmZpbHRlcigobGlzdDogTmF2TGlzdEl0ZW0pID0+IGxpc3QuYWN0aXZlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BOYXZMaXN0Py5mb3JFYWNoKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0LmFjdGl2ZSAmJiBjb3VudCA9PSAwKSBjb3VudCA9IGNvdW50ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGxpc3QuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy50b3BOYXZMaXN0Py5maWx0ZXIoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiBsaXN0LmFjdGl2ZSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcE5hdkxpc3RbMF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWI/LnBvc2l0aW9uID09ICdib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlVGFiLmluZGV4ID4gLTEgJiYgdGhpcy5hY3RpdmVUYWIuaW5kZXggPCB0aGlzLmJvdHRvbU5hdkxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbU5hdkxpc3Q/Lm1hcCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IChsaXN0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tTmF2TGlzdFt0aGlzLmFjdGl2ZVRhYi5pbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ib3R0b21OYXZMaXN0Py5maWx0ZXIoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiBsaXN0LmFjdGl2ZSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tTmF2TGlzdD8uZm9yRWFjaCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5hY3RpdmUgJiYgY291bnQgPT0gMCkgY291bnQgPSBjb3VudCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBsaXN0LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuYm90dG9tTmF2TGlzdD8uZmlsdGVyKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gbGlzdC5hY3RpdmUpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21OYXZMaXN0WzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG9wTmF2TGlzdFswXS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hZHZhbmNlU3Vic2NyaXB0aW9uTGlzdClcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZVN1YnNjcmlwdGlvbkxpc3QgPSB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrOiBmYWxzZSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbk1vZGUgPT09ICdhZHZhbmNlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWR2YW5jZVN1YnNjcmlwdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5uYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZHZhbmNlU3Vic2NyaXB0aW9uTGlzdC5maW5kKChpdGVtKSA9PiB0eXBlb2YgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9PT0gJ29iamVjdCcgJiYgaXRlbS5uYW1lID09PSB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uLm5hbWUpPy5zdWJzY3JpcHRpb24uaW5jbHVkZXModGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbi5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0LnNvbWUoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3Quc3Vic2NyaXB0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGxpc3QubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGxpc3Quc3Vic2NyaXB0aW9uWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uTGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbkxpc3Quc29tZSgoYSkgPT4gYSA9PSB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uKSkgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaXB0aW9uTGlzdFswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZGlzcGxheVN1YnNjcmlwdGlvbk5hbWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gJiYgdHlwZW9mIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5U3Vic2NyaXB0aW9uTmFtZSA9IHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24ubmFtZSArICcgLSAnICsgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbi5zZWxlY3RlZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiAmJiB0eXBlb2YgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlTdWJzY3JpcHRpb25OYW1lID0gdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkanVzdFVwRGl2SGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogTmF2TGlzdEl0ZW0sIGluZGV4OiBudW1iZXIsIHBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5ib3R0b21OYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhlbHBDZW50cmVBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09ICd0b3AnKSB0aGlzLnRvcE5hdkxpc3RbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHBvc2l0aW9uID09ICdib3R0b20nKSB0aGlzLmJvdHRvbU5hdkxpc3RbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMub25OYXZMaXN0SXRlbUNoYW5nZS5lbWl0KHsgYWN0aXZlVGFiOiB7IHBvc2l0aW9uOiBwb3NpdGlvbiwgaW5kZXg6IGluZGV4IH0gfSk7XG4gICAgICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGl0ZW0uY29tbWFuZCh7IG9yaWdpbmFsRXZlbnQ6IGUsIGl0ZW0gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIW5hbWUpIHJldHVybiAnJztcbiAgICAgICAgY29uc3QgbmFtZVBhcnRzID0gbmFtZS50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICAgICAgaWYgKG5hbWVQYXJ0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBuYW1lUGFydHNbMF1bMF0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5hbWVQYXJ0c1swXVswXSArIG5hbWVQYXJ0c1tuYW1lUGFydHMubGVuZ3RoIC0gMV1bMF0pLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZW1pdE5vdGlmaWNhdGlvbigpIHtcbiAgICAgICAgdGhpcy50b3BOYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLmJvdHRvbU5hdkxpc3Q/Lm1hcCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IChsaXN0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaGVscENlbnRyZUFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMub25OYXZMaXN0SXRlbUNoYW5nZS5lbWl0KHsgYWN0aXZlVGFiOiAnbm90aWZpY2F0aW9ucycgfSk7XG4gICAgICAgIHRoaXMub25Ob3RpZmljYXRpb25DbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdEhlbHBDZW50cmUoKSB7XG4gICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5ib3R0b21OYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLmhlbHBDZW50cmVBY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uTmF2TGlzdEl0ZW1DaGFuZ2UuZW1pdCh7IGFjdGl2ZVRhYjogJ2hlbHAtY2VudHJlJyB9KTtcbiAgICAgICAgdGhpcy5vbkhlbHBDZW50cmVDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdExvZ291dCgpIHtcbiAgICAgICAgdGhpcy5vbkxvZ291dENsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBlbWl0UHJvZmlsZSgpIHtcbiAgICAgICAgdGhpcy5vblByb2ZpbGVDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdFNldHRpbmdzKCkge1xuICAgICAgICB0aGlzLm9uU2V0dGluZ3NDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdExvZ29DbGljaygpIHtcbiAgICAgICAgdGhpcy5vbkxvZ29DbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRqdXN0VXBEaXZIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBhZGp1c3RVcERpdkhlaWdodCgpIHtcbiAgICAgICAgY29uc3QgYm90dG9tSGVpZ2h0ID0gdGhpcy5ib3R0b21Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB0aGlzLmhlYWRlckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lckhlaWdodCAtIGJvdHRvbUhlaWdodCAtIGhlYWRlckhlaWdodCAtIDU2O1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgICAgdGhpcy5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICAvLyBVc2UgZG91YmxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3Igc21vb3RoZXIgYW5pbWF0aW9uXG4gICAgICAgIC8vIEZpcnN0IGZyYW1lIHRvIHByZXBhcmUsIHNlY29uZCBmcmFtZSB0byBleGVjdXRlXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNOYXZFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk5hdkV4cGFuZGVkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5hY2NvdW50RGV0YWlsc0FjdGl2ZSkge1xuICAgICAgICAgICAgLy8gVXNlIGRvdWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZm9yIHNtb290aGVyIGFuaW1hdGlvblxuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTmF2RXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk5hdkV4cGFuZGVkLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlQWNjb3VudERldGFpbHMoKSB7XG4gICAgICAgIHRoaXMuYWNjb3VudERldGFpbHNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgLy8gVXNlIGRvdWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZm9yIHNtb290aGVyIGFuaW1hdGlvblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0hvdmVyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05hdkV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk5hdkV4cGFuZGVkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05hdkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25OYXZFeHBhbmRlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VBY3RpdmVTdXNiY3JpcHRpb24oaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPSBpdGVtO1xuICAgICAgICB0aGlzLm9uU3Vic2NyaXB0aW9uQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZDogaXRlbSB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVTdWJzY3JpcHRpb24oaXRlbTogU3Vic2NyaXB0aW9uTGlzdCwgY2hpbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uID0geyBuYW1lOiBpdGVtLm5hbWUsIHNlbGVjdGVkOiBjaGlsZCB9O1xuICAgICAgICB0aGlzLm9uU3Vic2NyaXB0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdG9nZ2xlU3Vic2NyaXB0aW9uTGlzdChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0W2luZGV4XS5jaGVjaykge1xuICAgICAgICAgICAgdGhpcy5hZHZhbmNlU3Vic2NyaXB0aW9uTGlzdFtpbmRleF0uY2hlY2sgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZVN1YnNjcmlwdGlvbkxpc3QgPSB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrOiBmYWxzZSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0W2luZGV4XS5jaGVjayA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYWNjb3VudERldGFpbHNBY3RpdmVcIiBjbGFzcz1cImNheC1uYXYtYmFja2Ryb3BcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNheC1uYXZcIiBbbmdDbGFzc109XCJ7ICdjYXgtbmF2LWV4cGFuZCc6IGlzTmF2RXhwYW5kZWQgfVwiIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCIgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXgtbmF2LWhlYWRlci1jb250YWluZXJcIiAjaGVhZGVyQ29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgW0BoZWFkZXJBbmltYXRpb25dICpuZ0lmPVwiIWlzTmF2RXhwYW5kZWRcIiBjbGFzcz1cImNheC1uYXYtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxjYXgtbG9nbyAqbmdJZj1cIiFoZWFkZXJMb2dvPy5jb2xsYXBzZWRcIiBjbGFzcz1cImMtcG9pbnRlclwiIChjbGljayk9XCJlbWl0TG9nb0NsaWNrKClcIiBzaXplPVwic21cIiBbaWNvbk9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgIDxjYXgtaW1hZ2UgKm5nSWY9XCJoZWFkZXJMb2dvPy5jb2xsYXBzZWRcIiBjbGFzcz1cImMtcG9pbnRlclwiIChjbGljayk9XCJlbWl0TG9nb0NsaWNrKClcIiBzaXplPVwic21cIiBbc3JjXT1cImhlYWRlckxvZ28uY29sbGFwc2VkXCIgW3N0eWxlLm9wYWNpdHldPVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxjYXgtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvY2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGVySW5pdGlhbHNcIj57eyBoZWFkZXJJbml0aWFscyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVySW5pdGlhbHNcIj57eyBnZXRJbml0aWFscyhoZWFkZXIpIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc05hdkV4cGFuZGVkXCIgY2xhc3M9XCJjYXgtbmF2LWhlYWRlclwiIFtAaGVhZGVyQW5pbWF0aW9uXT5cclxuICAgICAgICAgICAgPGNheC1sb2dvICpuZ0lmPVwiIWhlYWRlckxvZ28/LmV4cGFuZGVkXCIgY2xhc3M9XCJjLXBvaW50ZXJcIiAoY2xpY2spPVwiZW1pdExvZ29DbGljaygpXCIgc2l6ZT1cInNtXCIgLz5cclxuICAgICAgICAgICAgPGNheC1pbWFnZSAqbmdJZj1cImhlYWRlckxvZ28/LmV4cGFuZGVkXCIgY2xhc3M9XCJjLXBvaW50ZXJcIiAoY2xpY2spPVwiZW1pdExvZ29DbGljaygpXCIgc2l6ZT1cInNtXCIgW3NyY109XCJoZWFkZXJMb2dvLmV4cGFuZGVkXCIgW3N0eWxlLm9wYWNpdHldPVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxjYXgtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvY2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNheC1uYXYtbGlzdC1jb250YWluZXJcIiBbc3R5bGUubWF4SGVpZ2h0LnB4XT1cImFkanVzdFVwRGl2SGVpZ2h0KClcIj5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbmF2IG9mIHRvcE5hdkxpc3QsIGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbmF2LmFjdGl2ZSB9XCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgbmF2LCBpLCAndG9wJylcIj5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibmF2Lmljb247IGVsc2UgaW1hZ2VUZW1wbGF0ZVwiIFtjbGFzc109XCInY2F4IHBpICcgKyBuYXYuaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW1hZ2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8Y2F4LWltYWdlIFtzcmNdPVwibmF2LmltYWdlXCIgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIFtzdHlsZS5vcGFjaXR5XT1cIjFcIj48L2NheC1pbWFnZT5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbQHRleHRBbmltYXRpb25dICpuZ0lmPVwiaXNOYXZFeHBhbmRlZFwiIGNsYXNzPVwiY2F4LW5hdi1saXN0LWxhYmVsXCI+e3sgbmF2LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXgtbmF2LWJvdHRvbS1jb250YWluZXJcIiAjYm90dG9tQ29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXgtbmF2LWJvdHRvbS1saXN0XCI+XHJcbiAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbmF2IG9mIGJvdHRvbU5hdkxpc3QsIGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbmF2LmFjdGl2ZSB9XCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgbmF2LCBpLCAnYm90dG9tJylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm5hdi5pY29uOyBlbHNlIGltYWdlVGVtcGxhdGVcIiBbY2xhc3NdPVwiJ2NheCBwaSAnICsgbmF2Lmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2F4LWltYWdlIFtzcmNdPVwibmF2LmltYWdlXCIgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIFtzdHlsZS5vcGFjaXR5XT1cIjFcIj48L2NheC1pbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtAdGV4dEFuaW1hdGlvbl0gKm5nSWY9XCJpc05hdkV4cGFuZGVkXCIgY2xhc3M9XCJjYXgtbmF2LWxpc3QtbGFiZWxcIj57eyBuYXYubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwibm90aWZpY2F0aW9uc1wiIChjbGljayk9XCJlbWl0Tm90aWZpY2F0aW9uKClcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbm90aWZpY2F0aW9uQWN0aXZlIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFub3RpZmljYXRpb25Db3VudFwiIGNsYXNzPVwiY2F4IGNheC1iZWxsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibm90aWZpY2F0aW9uQ291bnRcIiBjbGFzcz1cImNheCBjYXgtYmVsbFwiIGNheEJhZGdlIFt2YWx1ZV09XCJub3RpZmljYXRpb25Db3VudFwiIGJhZGdlU2l6ZT1cInhzXCIgYmFkZ2VTZXZlcml0eT1cImRhbmdlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbQHRleHRBbmltYXRpb25dICpuZ0lmPVwiaXNOYXZFeHBhbmRlZFwiIGNsYXNzPVwiY2F4LW5hdi1saXN0LWxhYmVsXCI+Tm90aWZpY2F0aW9uczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJoZWxwQ2VudHJlXCIgKGNsaWNrKT1cImVtaXRIZWxwQ2VudHJlKClcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaGVscENlbnRyZUFjdGl2ZSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjYXggY2F4LXNoaWVsZC13YXJuaW5nXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtAdGV4dEFuaW1hdGlvbl0gKm5nSWY9XCJpc05hdkV4cGFuZGVkXCIgY2xhc3M9XCJjYXgtbmF2LWxpc3QtbGFiZWxcIj5IZWxwIENlbnRyZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJOYW1lXCIgKGNsaWNrKT1cIm9wLnRvZ2dsZSgkZXZlbnQpO1wiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY2NvdW50RGV0YWlsc0FjdGl2ZSB9XCIgY2xhc3M9XCJjYXgtbmF2LWFjY291bnQtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8Y2F4LWF2YXRhciAqbmdJZj1cInVzZXJJbWFnZVwiIFtpbWFnZV09XCJ1c2VySW1hZ2VcIiBhdmF0YXJTaXplPVwibGdcIj48L2NheC1hdmF0YXI+XHJcbiAgICAgICAgICAgIDxjYXgtYXZhdGFyICpuZ0lmPVwiIXVzZXJJbWFnZVwiIFtsYWJlbF09XCJnZXRJbml0aWFscyh1c2VyTmFtZSlcIiBhdmF0YXJTaXplPVwibGdcIj48L2NheC1hdmF0YXI+XHJcbiAgICAgICAgICAgIDxkaXYgW0B0ZXh0QW5pbWF0aW9uXSAqbmdJZj1cImlzTmF2RXhwYW5kZWRcIiBjbGFzcz1cImNheC1uYXYtdXNlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXgtbmF2LXVzZXItbmFtZVwiPnt7IHVzZXJOYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXgtbmF2LXVzZXItcm9sZVwiPnt7IGRpc3BsYXlTdWJzY3JpcHRpb25OYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBbQHRleHRBbmltYXRpb25dICpuZ0lmPVwiaXNOYXZFeHBhbmRlZFwiIGNsYXNzPVwiY2F4LW5hdi1hY2NvdW50LWljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiY2F4IGNheC1hbHQtYXJyb3ctdXBcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNheCBjYXgtYWx0LWFycm93LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Y2F4LW92ZXJsYXlQYW5lbCAjb3AgKG9uU2hvdyk9XCJhY2NvdW50RGV0YWlsc0FjdGl2ZSA9IHRydWVcIiBbc3R5bGVDbGFzc109XCJpc05hdkV4cGFuZGVkID8gJ2NheC1uYXYtb3ZlcmxheS1leHBhbmQnIDogJ2NheC1uYXYtb3ZlcmxheSdcIiAob25IaWRlKT1cImhpZGVBY2NvdW50RGV0YWlscygpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LW5hdi1zdWJzY3JpcHRpb24tbGlzdFwiICpuZ0lmPVwic3Vic2NyaXB0aW9uTW9kZSA9PT0gJ2RlZmF1bHQnICYmIHN1YnNjcmlwdGlvbkxpc3Q/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImNheC1uYXYtc3Vic2NyaXB0aW9uLWxpc3QtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09IGl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdWJzY3JpcHRpb25MaXN0XCIgKGNsaWNrKT1cImNoYW5nZUFjdGl2ZVN1c2JjcmlwdGlvbihpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2F4LXJhZGlvQnV0dG9uICpuZ0lmPVwic2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09IGl0ZW1cIiB2YWx1ZT1cIjFcIiBbKG5nTW9kZWwpXT1cImNoZWNrUmFkaW9cIj48L2NheC1yYWRpb0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LW5hdi1zdWJzY3JpcHRpb24tbGlzdFwiICpuZ0lmPVwic3Vic2NyaXB0aW9uTW9kZSA9PT0gJ2FkdmFuY2UnICYmIGFkdmFuY2VTdWJzY3JpcHRpb25MaXN0Py5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkdmFuY2VTdWJzY3JpcHRpb25MaXN0LCBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkU3Vic2NyaXB0aW9uPy5uYW1lID09PSBpdGVtLm5hbWVcIiBjbGFzcz1cImNheC1uYXYtYWR2YW5jZS1zdWJzY3JpcHRpb24tbGlzdC1pdGVtXCIgKGNsaWNrKT1cInRvZ2dsZVN1YnNjcmlwdGlvbkxpc3QoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWl0ZW0uY2hlY2tcIiBjbGFzcz1cImNheCBjYXgtYWx0LWFycm93LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uY2hlY2tcIiBjbGFzcz1cImNheCBjYXgtYWx0LWFycm93LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5jaGVja1wiIGNsYXNzPVwiY2F4LW5hdi1hZHZhbmNlLXN1YnNjcmlwdGlvbi1jaGlsZC1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFN1YnNjcmlwdGlvbj8uc2VsZWN0ZWQgPT09IGNoaWxkXCIgY2xhc3M9XCJjYXgtbmF2LWFkdmFuY2Utc3Vic2NyaXB0aW9uLWNoaWxkLWxpc3QtaXRlbVwiICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLnN1YnNjcmlwdGlvblwiIChjbGljayk9XCJ1cGRhdGVTdWJzY3JpcHRpb24oaXRlbSwgY2hpbGQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY2hpbGQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNheC1yYWRpb0J1dHRvbiBbc2l6ZV09XCInc20nXCIgKm5nSWY9XCJzZWxlY3RlZFN1YnNjcmlwdGlvbj8uc2VsZWN0ZWQgPT09IGNoaWxkXCIgdmFsdWU9XCIxXCIgWyhuZ01vZGVsKV09XCJjaGVja1JhZGlvXCI+PC9jYXgtcmFkaW9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2ZpbGVcIiBjbGFzcz1cImNheC1uYXYtcHJvZmlsZS1vcHRpb25zXCIgKGNsaWNrKT1cImVtaXRQcm9maWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNheCBjYXgtdXNlci1yb3VuZGVkXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlZpZXcgUHJvZmlsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNldHRpbmdzXCIgY2xhc3M9XCJjYXgtbmF2LXByb2ZpbGUtb3B0aW9uc1wiIChjbGljayk9XCJlbWl0U2V0dGluZ3MoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiY2F4IGNheC1zZXR0aW5nc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BY2NvdW50IFNldHRpbmdzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nb3V0XCIgY2xhc3M9XCJjYXgtbmF2LXByb2ZpbGUtb3B0aW9ucyBjYXgtbmF2LWxvZ291dFwiIChjbGljayk9XCJlbWl0TG9nb3V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNheCBjYXgtbG9nb3V0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkxvZ291dDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1uYXYtY29weXJpZ2h0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtbG9nbyB3aWR0aD1cIjU1cHhcIiBoZWlnaHQ9XCIxN3B4XCI+PC9jYXgtbG9nbz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LW5hdi1jb3B5cmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3B5cmlnaHRZZWFyXCI+JmNvcHk7IHt7IGNvcHlyaWdodFllYXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmVyc2lvblwiPnt7IHZlcnNpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9jYXgtb3ZlcmxheVBhbmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24udHMiLCIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFxQixpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNyTSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7O0FBOEJ0RCxNQUFNLE9BQU8sVUFBVTtJQXVCQztJQXRCWCxNQUFNLENBQXFCO0lBQzNCLFVBQVUsQ0FBZ0I7SUFDMUIs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SztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFRdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0UsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBc0o1QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9kaXZpZGVyJztcbmltcG9ydCB7IExvZ29Nb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9sb2dvJztcbmltcG9ydCB7IEFjdGl2ZVN1YnNjcmlwdGlvbiwgTmF2TGlzdEl0ZW0sIFN1YnNjcmlwdGlvbkxpc3QsIFRhYkluZGV4VHlwZSB9IGZyb20gJy4vbmF2aWdhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2VNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9pbWFnZSc7XG5pbXBvcnQgeyBBdmF0YXJNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9hdmF0YXInO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9vdmVybGF5JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2JhZGdlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjYXgtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24uaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtMb2dvTW9kdWxlLCBDb21tb25Nb2R1bGUsIERpdmlkZXJNb2R1bGUsIEltYWdlTW9kdWxlLCBBdmF0YXJNb2R1bGUsIE92ZXJsYXlQYW5lbE1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBCYWRnZU1vZHVsZV0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCd0ZXh0QW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgd2lkdGg6ICcwcHgnLCBtYXJnaW5MZWZ0OiAnMHB4JywgdmlzaWJpbGl0eTogJ2hpZGRlbicsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTI0cHgpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHdpZHRoOiAnKicsIG1hcmdpbkxlZnQ6ICc4cHgnLCB2aXNpYmlsaXR5OiAndmlzaWJsZScsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB3aWR0aDogJyonLCBtYXJnaW5MZWZ0OiAnOHB4JywgdmlzaWJpbGl0eTogJ3Zpc2libGUnLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHdpZHRoOiAnMHB4JywgbWFyZ2luTGVmdDogJzBweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0yNHB4KScgfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcignaGVhZGVyQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCwgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSksIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW3N0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pLCBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKV0pXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnY2F4LWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSB0b3BOYXZMaXN0OiBOYXZMaXN0SXRlbVtdO1xuICAgIEBJbnB1dCgpIGJvdHRvbU5hdkxpc3Q6IE5hdkxpc3RJdGVtW107XG4gICAgQElucHV0KCkgYWN0aXZlVGFiOiBUYWJJbmRleFR5cGUgfCAnbm90aWZpY2F0aW9ucycgfCAnaGVscC1jZW50cmUnO1xuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGhlbHBDZW50cmU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvcHlyaWdodFllYXI6IG51bWJlciB8IHVuZGVmaW5lZCA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICBASW5wdXQoKSB2ZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbG9nb3V0OiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwcm9maWxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzZXR0aW5nczogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgdXNlck5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSB1c2VySW1hZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBoZWFkZXJMb2dvOiB7IGV4cGFuZGVkOiBzdHJpbmc7IGNvbGxhcHNlZDogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgaGVhZGVySW5pdGlhbHM6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBzdWJzY3JpcHRpb25Nb2RlOiAnYWR2YW5jZScgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgc3Vic2NyaXB0aW9uTGlzdDogc3RyaW5nW107XG4gICAgQElucHV0KCkgc2VsZWN0ZWRTdWJzY3JpcHRpb246IHN0cmluZyB8IEFjdGl2ZVN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBhZHZhbmNlU3Vic2NyaXB0aW9uTGlzdDogU3Vic2NyaXB0aW9uTGlzdFtdO1xuICAgIEBJbnB1dCgpIGRpc3BsYXlTdWJzY3JpcHRpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIEBPdXRwdXQoKSBvbk5hdkxpc3RJdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBhY3RpdmVUYWI6IFRhYkluZGV4VHlwZSB8ICdub3RpZmljYXRpb25zJyB8ICdoZWxwLWNlbnRyZScgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uTm90aWZpY2F0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbkhlbHBDZW50cmVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uTG9nb3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblByb2ZpbGVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uU2V0dGluZ3NDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uTG9nb0NsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TdWJzY3JpcHRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbk5hdkV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcblxuICAgIGlzSG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzTmF2RXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBub3RpZmljYXRpb25BY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBoZWxwQ2VudHJlQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgYWNjb3VudERldGFpbHNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBjaGVja1JhZGlvID0gMTtcbiAgICBAVmlld0NoaWxkKCdib3R0b21Db250YWluZXInKSBib3R0b21Db250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJDb250YWluZXInKSBoZWFkZXJDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT0gJ25vdGlmaWNhdGlvbnMnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ub3RpZmljYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b3BOYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgdGhpcy50b3BOYXZMaXN0WzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWIgPT0gJ2hlbHAtY2VudHJlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGVscENlbnRyZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbU5hdkxpc3Q/Lm1hcCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IChsaXN0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwQ2VudHJlQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB0aGlzLnRvcE5hdkxpc3RbMF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZVRhYj8ucG9zaXRpb24gPT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWIuaW5kZXggPiAtMSAmJiB0aGlzLmFjdGl2ZVRhYi5pbmRleCA8IHRoaXMudG9wTmF2TGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BOYXZMaXN0W3RoaXMuYWN0aXZlVGFiLmluZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvcE5hdkxpc3Q/LmZpbHRlcigobGlzdDogTmF2TGlzdEl0ZW0pID0+IGxpc3QuYWN0aXZlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BOYXZMaXN0Py5mb3JFYWNoKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0LmFjdGl2ZSAmJiBjb3VudCA9PSAwKSBjb3VudCA9IGNvdW50ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGxpc3QuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy50b3BOYXZMaXN0Py5maWx0ZXIoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiBsaXN0LmFjdGl2ZSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcE5hdkxpc3RbMF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWI/LnBvc2l0aW9uID09ICdib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlVGFiLmluZGV4ID4gLTEgJiYgdGhpcy5hY3RpdmVUYWIuaW5kZXggPCB0aGlzLmJvdHRvbU5hdkxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbU5hdkxpc3Q/Lm1hcCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IChsaXN0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tTmF2TGlzdFt0aGlzLmFjdGl2ZVRhYi5pbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ib3R0b21OYXZMaXN0Py5maWx0ZXIoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiBsaXN0LmFjdGl2ZSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tTmF2TGlzdD8uZm9yRWFjaCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5hY3RpdmUgJiYgY291bnQgPT0gMCkgY291bnQgPSBjb3VudCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBsaXN0LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuYm90dG9tTmF2TGlzdD8uZmlsdGVyKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gbGlzdC5hY3RpdmUpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21OYXZMaXN0WzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG9wTmF2TGlzdFswXS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hZHZhbmNlU3Vic2NyaXB0aW9uTGlzdClcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZVN1YnNjcmlwdGlvbkxpc3QgPSB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrOiBmYWxzZSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbk1vZGUgPT09ICdhZHZhbmNlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWR2YW5jZVN1YnNjcmlwdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5uYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZHZhbmNlU3Vic2NyaXB0aW9uTGlzdC5maW5kKChpdGVtKSA9PiB0eXBlb2YgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9PT0gJ29iamVjdCcgJiYgaXRlbS5uYW1lID09PSB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uLm5hbWUpPy5zdWJzY3JpcHRpb24uaW5jbHVkZXModGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbi5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0LnNvbWUoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3Quc3Vic2NyaXB0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGxpc3QubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGxpc3Quc3Vic2NyaXB0aW9uWzBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uTGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbkxpc3Quc29tZSgoYSkgPT4gYSA9PSB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uKSkgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaXB0aW9uTGlzdFswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZGlzcGxheVN1YnNjcmlwdGlvbk5hbWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gJiYgdHlwZW9mIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5U3Vic2NyaXB0aW9uTmFtZSA9IHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24ubmFtZSArICcgLSAnICsgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbi5zZWxlY3RlZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiAmJiB0eXBlb2YgdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlTdWJzY3JpcHRpb25OYW1lID0gdGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkanVzdFVwRGl2SGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogTmF2TGlzdEl0ZW0sIGluZGV4OiBudW1iZXIsIHBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5ib3R0b21OYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhlbHBDZW50cmVBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09ICd0b3AnKSB0aGlzLnRvcE5hdkxpc3RbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHBvc2l0aW9uID09ICdib3R0b20nKSB0aGlzLmJvdHRvbU5hdkxpc3RbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMub25OYXZMaXN0SXRlbUNoYW5nZS5lbWl0KHsgYWN0aXZlVGFiOiB7IHBvc2l0aW9uOiBwb3NpdGlvbiwgaW5kZXg6IGluZGV4IH0gfSk7XG4gICAgICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGl0ZW0uY29tbWFuZCh7IG9yaWdpbmFsRXZlbnQ6IGUsIGl0ZW0gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIW5hbWUpIHJldHVybiAnJztcbiAgICAgICAgY29uc3QgbmFtZVBhcnRzID0gbmFtZS50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICAgICAgaWYgKG5hbWVQYXJ0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBuYW1lUGFydHNbMF1bMF0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKG5hbWVQYXJ0c1swXVswXSArIG5hbWVQYXJ0c1tuYW1lUGFydHMubGVuZ3RoIC0gMV1bMF0pLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZW1pdE5vdGlmaWNhdGlvbigpIHtcbiAgICAgICAgdGhpcy50b3BOYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLmJvdHRvbU5hdkxpc3Q/Lm1hcCgobGlzdDogTmF2TGlzdEl0ZW0pID0+IChsaXN0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaGVscENlbnRyZUFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMub25OYXZMaXN0SXRlbUNoYW5nZS5lbWl0KHsgYWN0aXZlVGFiOiAnbm90aWZpY2F0aW9ucycgfSk7XG4gICAgICAgIHRoaXMub25Ob3RpZmljYXRpb25DbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdEhlbHBDZW50cmUoKSB7XG4gICAgICAgIHRoaXMudG9wTmF2TGlzdD8ubWFwKChsaXN0OiBOYXZMaXN0SXRlbSkgPT4gKGxpc3QuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5ib3R0b21OYXZMaXN0Py5tYXAoKGxpc3Q6IE5hdkxpc3RJdGVtKSA9PiAobGlzdC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLmhlbHBDZW50cmVBY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uTmF2TGlzdEl0ZW1DaGFuZ2UuZW1pdCh7IGFjdGl2ZVRhYjogJ2hlbHAtY2VudHJlJyB9KTtcbiAgICAgICAgdGhpcy5vbkhlbHBDZW50cmVDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdExvZ291dCgpIHtcbiAgICAgICAgdGhpcy5vbkxvZ291dENsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBlbWl0UHJvZmlsZSgpIHtcbiAgICAgICAgdGhpcy5vblByb2ZpbGVDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdFNldHRpbmdzKCkge1xuICAgICAgICB0aGlzLm9uU2V0dGluZ3NDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgZW1pdExvZ29DbGljaygpIHtcbiAgICAgICAgdGhpcy5vbkxvZ29DbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRqdXN0VXBEaXZIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBhZGp1c3RVcERpdkhlaWdodCgpIHtcbiAgICAgICAgY29uc3QgYm90dG9tSGVpZ2h0ID0gdGhpcy5ib3R0b21Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB0aGlzLmhlYWRlckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lckhlaWdodCAtIGJvdHRvbUhlaWdodCAtIGhlYWRlckhlaWdodCAtIDU2O1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgICAgdGhpcy5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICAvLyBVc2UgZG91YmxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3Igc21vb3RoZXIgYW5pbWF0aW9uXG4gICAgICAgIC8vIEZpcnN0IGZyYW1lIHRvIHByZXBhcmUsIHNlY29uZCBmcmFtZSB0byBleGVjdXRlXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNOYXZFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk5hdkV4cGFuZGVkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuaXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5hY2NvdW50RGV0YWlsc0FjdGl2ZSkge1xuICAgICAgICAgICAgLy8gVXNlIGRvdWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZm9yIHNtb290aGVyIGFuaW1hdGlvblxuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTmF2RXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk5hdkV4cGFuZGVkLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlQWNjb3VudERldGFpbHMoKSB7XG4gICAgICAgIHRoaXMuYWNjb3VudERldGFpbHNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgLy8gVXNlIGRvdWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZm9yIHNtb290aGVyIGFuaW1hdGlvblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0hvdmVyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05hdkV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk5hdkV4cGFuZGVkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05hdkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25OYXZFeHBhbmRlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VBY3RpdmVTdXNiY3JpcHRpb24oaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24gPSBpdGVtO1xuICAgICAgICB0aGlzLm9uU3Vic2NyaXB0aW9uQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZDogaXRlbSB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVTdWJzY3JpcHRpb24oaXRlbTogU3Vic2NyaXB0aW9uTGlzdCwgY2hpbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uID0geyBuYW1lOiBpdGVtLm5hbWUsIHNlbGVjdGVkOiBjaGlsZCB9O1xuICAgICAgICB0aGlzLm9uU3Vic2NyaXB0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdG9nZ2xlU3Vic2NyaXB0aW9uTGlzdChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0W2luZGV4XS5jaGVjaykge1xuICAgICAgICAgICAgdGhpcy5hZHZhbmNlU3Vic2NyaXB0aW9uTGlzdFtpbmRleF0uY2hlY2sgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZVN1YnNjcmlwdGlvbkxpc3QgPSB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoZWNrOiBmYWxzZSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VTdWJzY3JpcHRpb25MaXN0W2luZGV4XS5jaGVjayA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYWNjb3VudERldGFpbHNBY3RpdmVcIiBjbGFzcz1cImNheC1uYXYtYmFja2Ryb3BcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNheC1uYXZcIiBbbmdDbGFzc109XCJ7ICdjYXgtbmF2LWV4cGFuZCc6IGlzTmF2RXhwYW5kZWQgfVwiIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCIgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXgtbmF2LWhlYWRlci1jb250YWluZXJcIiAjaGVhZGVyQ29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgW0BoZWFkZXJBbmltYXRpb25dICpuZ0lmPVwiIWlzTmF2RXhwYW5kZWRcIiBjbGFzcz1cImNheC1uYXYtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxjYXgtbG9nbyAqbmdJZj1cIiFoZWFkZXJMb2dvPy5jb2xsYXBzZWRcIiBjbGFzcz1cImMtcG9pbnRlclwiIChjbGljayk9XCJlbWl0TG9nb0NsaWNrKClcIiBzaXplPVwic21cIiBbaWNvbk9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgIDxjYXgtaW1hZ2UgKm5nSWY9XCJoZWFkZXJMb2dvPy5jb2xsYXBzZWRcIiBjbGFzcz1cImMtcG9pbnRlclwiIChjbGljayk9XCJlbWl0TG9nb0NsaWNrKClcIiBzaXplPVwic21cIiBbc3JjXT1cImhlYWRlckxvZ28uY29sbGFwc2VkXCIgW3N0eWxlLm9wYWNpdHldPVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxjYXgtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvY2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGVySW5pdGlhbHNcIj57eyBoZWFkZXJJbml0aWFscyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVySW5pdGlhbHNcIj57eyBnZXRJbml0aWFscyhoZWFkZXIpIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc05hdkV4cGFuZGVkXCIgY2xhc3M9XCJjYXgtbmF2LWhlYWRlclwiIFtAaGVhZGVyQW5pbWF0aW9uXT5cclxuICAgICAgICAgICAgPGNheC1sb2dvICpuZ0lmPVwiIWhlYWRlckxvZ28/LmV4cGFuZGVkXCIgY2xhc3M9XCJjLXBvaW50ZXJcIiAoY2xpY2spPVwiZW1pdExvZ29DbGljaygpXCIgc2l6ZT1cInNtXCIgLz5cclxuICAgICAgICAgICAgPGNheC1pbWFnZSAqbmdJZj1cImhlYWRlckxvZ28/LmV4cGFuZGVkXCIgY2xhc3M9XCJjLXBvaW50ZXJcIiAoY2xpY2spPVwiZW1pdExvZ29DbGljaygpXCIgc2l6ZT1cInNtXCIgW3NyY109XCJoZWFkZXJMb2dvLmV4cGFuZGVkXCIgW3N0eWxlLm9wYWNpdHldPVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxjYXgtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvY2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNheC1uYXYtbGlzdC1jb250YWluZXJcIiBbc3R5bGUubWF4SGVpZ2h0LnB4XT1cImFkanVzdFVwRGl2SGVpZ2h0KClcIj5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbmF2IG9mIHRvcE5hdkxpc3QsIGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbmF2LmFjdGl2ZSB9XCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgbmF2LCBpLCAndG9wJylcIj5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibmF2Lmljb247IGVsc2UgaW1hZ2VUZW1wbGF0ZVwiIFtjbGFzc109XCInY2F4IHBpICcgKyBuYXYuaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW1hZ2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8Y2F4LWltYWdlIFtzcmNdPVwibmF2LmltYWdlXCIgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIFtzdHlsZS5vcGFjaXR5XT1cIjFcIj48L2NheC1pbWFnZT5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbQHRleHRBbmltYXRpb25dICpuZ0lmPVwiaXNOYXZFeHBhbmRlZFwiIGNsYXNzPVwiY2F4LW5hdi1saXN0LWxhYmVsXCI+e3sgbmF2LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXgtbmF2LWJvdHRvbS1jb250YWluZXJcIiAjYm90dG9tQ29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXgtbmF2LWJvdHRvbS1saXN0XCI+XHJcbiAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbmF2IG9mIGJvdHRvbU5hdkxpc3QsIGxldCBpID0gaW5kZXhcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbmF2LmFjdGl2ZSB9XCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgbmF2LCBpLCAnYm90dG9tJylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm5hdi5pY29uOyBlbHNlIGltYWdlVGVtcGxhdGVcIiBbY2xhc3NdPVwiJ2NheCBwaSAnICsgbmF2Lmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2F4LWltYWdlIFtzcmNdPVwibmF2LmltYWdlXCIgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIFtzdHlsZS5vcGFjaXR5XT1cIjFcIj48L2NheC1pbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtAdGV4dEFuaW1hdGlvbl0gKm5nSWY9XCJpc05hdkV4cGFuZGVkXCIgY2xhc3M9XCJjYXgtbmF2LWxpc3QtbGFiZWxcIj57eyBuYXYubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwibm90aWZpY2F0aW9uc1wiIChjbGljayk9XCJlbWl0Tm90aWZpY2F0aW9uKClcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogbm90aWZpY2F0aW9uQWN0aXZlIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFub3RpZmljYXRpb25Db3VudFwiIGNsYXNzPVwiY2F4IGNheC1iZWxsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibm90aWZpY2F0aW9uQ291bnRcIiBjbGFzcz1cImNheCBjYXgtYmVsbFwiIGNheEJhZGdlIFt2YWx1ZV09XCJub3RpZmljYXRpb25Db3VudFwiIGJhZGdlU2l6ZT1cInhzXCIgYmFkZ2VTZXZlcml0eT1cImRhbmdlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbQHRleHRBbmltYXRpb25dICpuZ0lmPVwiaXNOYXZFeHBhbmRlZFwiIGNsYXNzPVwiY2F4LW5hdi1saXN0LWxhYmVsXCI+Tm90aWZpY2F0aW9uczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJoZWxwQ2VudHJlXCIgKGNsaWNrKT1cImVtaXRIZWxwQ2VudHJlKClcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaGVscENlbnRyZUFjdGl2ZSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjYXggY2F4LXNoaWVsZC13YXJuaW5nXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtAdGV4dEFuaW1hdGlvbl0gKm5nSWY9XCJpc05hdkV4cGFuZGVkXCIgY2xhc3M9XCJjYXgtbmF2LWxpc3QtbGFiZWxcIj5IZWxwIENlbnRyZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJOYW1lXCIgKGNsaWNrKT1cIm9wLnRvZ2dsZSgkZXZlbnQpO1wiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY2NvdW50RGV0YWlsc0FjdGl2ZSB9XCIgY2xhc3M9XCJjYXgtbmF2LWFjY291bnQtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8Y2F4LWF2YXRhciAqbmdJZj1cInVzZXJJbWFnZVwiIFtpbWFnZV09XCJ1c2VySW1hZ2VcIiBhdmF0YXJTaXplPVwibGdcIj48L2NheC1hdmF0YXI+XHJcbiAgICAgICAgICAgIDxjYXgtYXZhdGFyICpuZ0lmPVwiIXVzZXJJbWFnZVwiIFtsYWJlbF09XCJnZXRJbml0aWFscyh1c2VyTmFtZSlcIiBhdmF0YXJTaXplPVwibGdcIj48L2NheC1hdmF0YXI+XHJcbiAgICAgICAgICAgIDxkaXYgW0B0ZXh0QW5pbWF0aW9uXSAqbmdJZj1cImlzTmF2RXhwYW5kZWRcIiBjbGFzcz1cImNheC1uYXYtdXNlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXgtbmF2LXVzZXItbmFtZVwiPnt7IHVzZXJOYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXgtbmF2LXVzZXItcm9sZVwiPnt7IGRpc3BsYXlTdWJzY3JpcHRpb25OYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBbQHRleHRBbmltYXRpb25dICpuZ0lmPVwiaXNOYXZFeHBhbmRlZFwiIGNsYXNzPVwiY2F4LW5hdi1hY2NvdW50LWljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiY2F4IGNheC1hbHQtYXJyb3ctdXBcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNheCBjYXgtYWx0LWFycm93LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Y2F4LW92ZXJsYXlQYW5lbCAjb3AgKG9uU2hvdyk9XCJhY2NvdW50RGV0YWlsc0FjdGl2ZSA9IHRydWVcIiBbc3R5bGVDbGFzc109XCJpc05hdkV4cGFuZGVkID8gJ2NheC1uYXYtb3ZlcmxheS1leHBhbmQnIDogJ2NheC1uYXYtb3ZlcmxheSdcIiAob25IaWRlKT1cImhpZGVBY2NvdW50RGV0YWlscygpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LW5hdi1zdWJzY3JpcHRpb24tbGlzdFwiICpuZ0lmPVwic3Vic2NyaXB0aW9uTW9kZSA9PT0gJ2RlZmF1bHQnICYmIHN1YnNjcmlwdGlvbkxpc3Q/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImNheC1uYXYtc3Vic2NyaXB0aW9uLWxpc3QtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09IGl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdWJzY3JpcHRpb25MaXN0XCIgKGNsaWNrKT1cImNoYW5nZUFjdGl2ZVN1c2JjcmlwdGlvbihpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2F4LXJhZGlvQnV0dG9uICpuZ0lmPVwic2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09IGl0ZW1cIiB2YWx1ZT1cIjFcIiBbKG5nTW9kZWwpXT1cImNoZWNrUmFkaW9cIj48L2NheC1yYWRpb0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LW5hdi1zdWJzY3JpcHRpb24tbGlzdFwiICpuZ0lmPVwic3Vic2NyaXB0aW9uTW9kZSA9PT0gJ2FkdmFuY2UnICYmIGFkdmFuY2VTdWJzY3JpcHRpb25MaXN0Py5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkdmFuY2VTdWJzY3JpcHRpb25MaXN0LCBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkU3Vic2NyaXB0aW9uPy5uYW1lID09PSBpdGVtLm5hbWVcIiBjbGFzcz1cImNheC1uYXYtYWR2YW5jZS1zdWJzY3JpcHRpb24tbGlzdC1pdGVtXCIgKGNsaWNrKT1cInRvZ2dsZVN1YnNjcmlwdGlvbkxpc3QoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWl0ZW0uY2hlY2tcIiBjbGFzcz1cImNheCBjYXgtYWx0LWFycm93LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uY2hlY2tcIiBjbGFzcz1cImNheCBjYXgtYWx0LWFycm93LXVwXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5jaGVja1wiIGNsYXNzPVwiY2F4LW5hdi1hZHZhbmNlLXN1YnNjcmlwdGlvbi1jaGlsZC1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFN1YnNjcmlwdGlvbj8uc2VsZWN0ZWQgPT09IGNoaWxkXCIgY2xhc3M9XCJjYXgtbmF2LWFkdmFuY2Utc3Vic2NyaXB0aW9uLWNoaWxkLWxpc3QtaXRlbVwiICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLnN1YnNjcmlwdGlvblwiIChjbGljayk9XCJ1cGRhdGVTdWJzY3JpcHRpb24oaXRlbSwgY2hpbGQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY2hpbGQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNheC1yYWRpb0J1dHRvbiBbc2l6ZV09XCInc20nXCIgKm5nSWY9XCJzZWxlY3RlZFN1YnNjcmlwdGlvbj8uc2VsZWN0ZWQgPT09IGNoaWxkXCIgdmFsdWU9XCIxXCIgWyhuZ01vZGVsKV09XCJjaGVja1JhZGlvXCI+PC9jYXgtcmFkaW9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2ZpbGVcIiBjbGFzcz1cImNheC1uYXYtcHJvZmlsZS1vcHRpb25zXCIgKGNsaWNrKT1cImVtaXRQcm9maWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNheCBjYXgtdXNlci1yb3VuZGVkXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlZpZXcgUHJvZmlsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNldHRpbmdzXCIgY2xhc3M9XCJjYXgtbmF2LXByb2ZpbGUtb3B0aW9uc1wiIChjbGljayk9XCJlbWl0U2V0dGluZ3MoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiY2F4IGNheC1zZXR0aW5nc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BY2NvdW50IFNldHRpbmdzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nb3V0XCIgY2xhc3M9XCJjYXgtbmF2LXByb2ZpbGUtb3B0aW9ucyBjYXgtbmF2LWxvZ291dFwiIChjbGljayk9XCJlbWl0TG9nb3V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNheCBjYXgtbG9nb3V0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkxvZ291dDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1uYXYtY29weXJpZ2h0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtbG9nbyB3aWR0aD1cIjU1cHhcIiBoZWlnaHQ9XCIxN3B4XCI+PC9jYXgtbG9nbz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LW5hdi1jb3B5cmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3B5cmlnaHRZZWFyXCI+JmNvcHk7IHt7IGNvcHlyaWdodFllYXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmVyc2lvblwiPnt7IHZlcnNpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9jYXgtb3ZlcmxheVBhbmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -11,16 +11,18 @@ export class Tableconfiguration {
|
|
|
11
11
|
fontValue = 14;
|
|
12
12
|
rowHeightChange = new EventEmitter();
|
|
13
13
|
fontSizeChange = new EventEmitter();
|
|
14
|
+
saveDefault = new EventEmitter();
|
|
14
15
|
updateRowHeight(size) {
|
|
15
|
-
this.
|
|
16
|
-
|
|
16
|
+
if (size == 'sm' && (this.fontConfiguration === 'lg' || this.fontConfiguration === 'xl')) {
|
|
17
|
+
this.rowHeightChange.emit(this.rowConfiguration);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this.rowConfiguration = size;
|
|
21
|
+
this.rowHeightChange.emit(this.rowConfiguration);
|
|
22
|
+
}
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.fontConfiguration = 'md';
|
|
21
|
-
this.rowConfiguration = 'md';
|
|
22
|
-
this.fontSizeChange.emit(this.fontConfiguration);
|
|
23
|
-
this.rowHeightChange.emit(this.rowConfiguration);
|
|
24
|
+
emitTableConfiguration() {
|
|
25
|
+
this.saveDefault.emit({ fontSize: this.fontConfiguration, rowSize: this.rowConfiguration });
|
|
24
26
|
}
|
|
25
27
|
onSliderChange(event) {
|
|
26
28
|
const newValue = Number(event.target.value);
|
|
@@ -34,9 +36,13 @@ export class Tableconfiguration {
|
|
|
34
36
|
break;
|
|
35
37
|
case 16:
|
|
36
38
|
this.fontConfiguration = 'lg';
|
|
39
|
+
if (this.rowConfiguration === 'sm')
|
|
40
|
+
this.rowConfiguration = 'md';
|
|
37
41
|
break;
|
|
38
42
|
case 18:
|
|
39
43
|
this.fontConfiguration = 'xl';
|
|
44
|
+
if (this.rowConfiguration === 'sm')
|
|
45
|
+
this.rowConfiguration = 'md';
|
|
40
46
|
break;
|
|
41
47
|
default:
|
|
42
48
|
this.fontConfiguration = 'md';
|
|
@@ -45,16 +51,18 @@ export class Tableconfiguration {
|
|
|
45
51
|
this.fontSizeChange.emit(this.fontConfiguration);
|
|
46
52
|
}
|
|
47
53
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Tableconfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: Tableconfiguration, isStandalone: true, selector: "cax-tableconfiguration", outputs: { rowHeightChange: "rowHeightChange", fontSizeChange: "fontSizeChange" }, host: { classAttribute: "cax-element" }, ngImport: i0, template: "<div class=\"table-configuration\">\r\n <div class=\"table-font-size\">\r\n <div class=\"header-details\">\r\n <span>Font Size</span>\r\n <cax-button (click)=\"
|
|
54
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: Tableconfiguration, isStandalone: true, selector: "cax-tableconfiguration", outputs: { rowHeightChange: "rowHeightChange", fontSizeChange: "fontSizeChange", saveDefault: "saveDefault" }, host: { classAttribute: "cax-element" }, ngImport: i0, template: "<div class=\"table-configuration\">\r\n <div class=\"table-font-size\">\r\n <div class=\"header-details\">\r\n <span>Font Size</span>\r\n <cax-button (click)=\"emitTableConfiguration()\" [label]=\"'Save as default'\" [link]=\"true\" [size]=\"'small'\"></cax-button>\r\n </div>\r\n <div class=\"font-configuration\">\r\n <div class=\"font-labels\">\r\n <span *ngFor=\"let option of fontSizeOptions\" [class.active]=\"fontValue === option\" [style.fontSize]=\"option + 'px'\"> {{ option }}px </span>\r\n </div>\r\n <div class=\"slider-wrapper\">\r\n <input type=\"range\" min=\"12\" max=\"18\" step=\"2\" [value]=\"fontValue\" (input)=\"onSliderChange($event)\" class=\"custom-slider\" />\r\n <div class=\"range-marker\">\r\n <div *ngFor=\"let option of fontSizeOptions\" class=\"range\" [class.active]=\"fontValue === option\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-row-size\">\r\n <div class=\"header-details\">\r\n <span>Row Height</span>\r\n </div>\r\n <div class=\"row-configuration\">\r\n <li [class.active]=\"rowConfiguration === 'sm' && (fontConfiguration === 'sm' || fontConfiguration === 'md')\" [class.disabled]=\"fontConfiguration === 'lg' || fontConfiguration === 'xl'\" (click)=\"updateRowHeight('sm')\">Compact</li>\r\n <li [class.active]=\"rowConfiguration === 'md'\" (click)=\"updateRowHeight('md')\">Medium</li>\r\n <li [class.active]=\"rowConfiguration === 'lg'\" (click)=\"updateRowHeight('lg')\">Large</li>\r\n <li [class.active]=\"rowConfiguration === 'xl'\" (click)=\"updateRowHeight('xl')\">Extra Large</li>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-configuration{display:flex;flex-direction:column;gap:24px;padding:12px}.table-configuration .table-font-size .header-details{display:flex;align-items:center;justify-content:space-between;font-weight:500}.table-configuration .table-font-size .header-details .cax-button:focus{outline:none!important}.table-configuration .table-font-size .header-details .cax-button:hover{background:none!important}.table-configuration .table-font-size .font-configuration{border:1px solid var(--neutral-100);padding:16px 24px;border-radius:6px;display:flex;flex-direction:column;align-items:center;gap:8px}.table-configuration .table-font-size .font-configuration .font-labels{display:flex;justify-content:space-between;align-items:center;font-weight:600;width:100%}.table-configuration .table-font-size .font-configuration .font-labels.active{color:var(--primary-color)}.table-configuration .table-font-size .font-configuration .slider-wrapper{position:relative;width:100%}.table-configuration .table-font-size .font-configuration .custom-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:var(--neutral-100);border-radius:3px;outline:none;transition:background .3s}.table-configuration .table-font-size .font-configuration .custom-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--white-100);border:2px solid var(--primary-color);border-radius:50%;cursor:pointer}.table-configuration .table-font-size .font-configuration .range-marker{position:absolute;top:5px;left:2px;width:100%;display:flex;z-index:-10;justify-content:space-between}.table-configuration .table-font-size .font-configuration .range{width:4px;height:16px;background:var(--neutral-100);border-radius:4px}.table-configuration .table-font-size .font-configuration .range.active{visibility:hidden}.table-configuration .table-row-size{display:flex;flex-direction:column;gap:8px}.table-configuration .table-row-size .header-details{font-weight:500}.table-configuration .table-row-size .row-configuration{display:flex;justify-content:space-between;gap:16px}.table-configuration .table-row-size .row-configuration li{list-style-type:none;width:95.5px;display:flex;align-items:center;justify-content:center;border:1px solid var(--neutral-100);font-size:14px;font-weight:500;height:53px;border-radius:6px;cursor:pointer}.table-configuration .table-row-size .row-configuration li.active{border:1px solid var(--primary-color);color:var(--primary-color);background:var(--primary-25)}.table-configuration .table-row-size .row-configuration li.disabled{cursor:not-allowed;opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
49
55
|
}
|
|
50
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Tableconfiguration, decorators: [{
|
|
51
57
|
type: Component,
|
|
52
58
|
args: [{ selector: 'cax-tableconfiguration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ButtonModule, CommonModule], standalone: true, host: {
|
|
53
59
|
class: 'cax-element'
|
|
54
|
-
}, template: "<div class=\"table-configuration\">\r\n <div class=\"table-font-size\">\r\n <div class=\"header-details\">\r\n <span>Font Size</span>\r\n <cax-button (click)=\"
|
|
60
|
+
}, template: "<div class=\"table-configuration\">\r\n <div class=\"table-font-size\">\r\n <div class=\"header-details\">\r\n <span>Font Size</span>\r\n <cax-button (click)=\"emitTableConfiguration()\" [label]=\"'Save as default'\" [link]=\"true\" [size]=\"'small'\"></cax-button>\r\n </div>\r\n <div class=\"font-configuration\">\r\n <div class=\"font-labels\">\r\n <span *ngFor=\"let option of fontSizeOptions\" [class.active]=\"fontValue === option\" [style.fontSize]=\"option + 'px'\"> {{ option }}px </span>\r\n </div>\r\n <div class=\"slider-wrapper\">\r\n <input type=\"range\" min=\"12\" max=\"18\" step=\"2\" [value]=\"fontValue\" (input)=\"onSliderChange($event)\" class=\"custom-slider\" />\r\n <div class=\"range-marker\">\r\n <div *ngFor=\"let option of fontSizeOptions\" class=\"range\" [class.active]=\"fontValue === option\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-row-size\">\r\n <div class=\"header-details\">\r\n <span>Row Height</span>\r\n </div>\r\n <div class=\"row-configuration\">\r\n <li [class.active]=\"rowConfiguration === 'sm' && (fontConfiguration === 'sm' || fontConfiguration === 'md')\" [class.disabled]=\"fontConfiguration === 'lg' || fontConfiguration === 'xl'\" (click)=\"updateRowHeight('sm')\">Compact</li>\r\n <li [class.active]=\"rowConfiguration === 'md'\" (click)=\"updateRowHeight('md')\">Medium</li>\r\n <li [class.active]=\"rowConfiguration === 'lg'\" (click)=\"updateRowHeight('lg')\">Large</li>\r\n <li [class.active]=\"rowConfiguration === 'xl'\" (click)=\"updateRowHeight('xl')\">Extra Large</li>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-configuration{display:flex;flex-direction:column;gap:24px;padding:12px}.table-configuration .table-font-size .header-details{display:flex;align-items:center;justify-content:space-between;font-weight:500}.table-configuration .table-font-size .header-details .cax-button:focus{outline:none!important}.table-configuration .table-font-size .header-details .cax-button:hover{background:none!important}.table-configuration .table-font-size .font-configuration{border:1px solid var(--neutral-100);padding:16px 24px;border-radius:6px;display:flex;flex-direction:column;align-items:center;gap:8px}.table-configuration .table-font-size .font-configuration .font-labels{display:flex;justify-content:space-between;align-items:center;font-weight:600;width:100%}.table-configuration .table-font-size .font-configuration .font-labels.active{color:var(--primary-color)}.table-configuration .table-font-size .font-configuration .slider-wrapper{position:relative;width:100%}.table-configuration .table-font-size .font-configuration .custom-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:var(--neutral-100);border-radius:3px;outline:none;transition:background .3s}.table-configuration .table-font-size .font-configuration .custom-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--white-100);border:2px solid var(--primary-color);border-radius:50%;cursor:pointer}.table-configuration .table-font-size .font-configuration .range-marker{position:absolute;top:5px;left:2px;width:100%;display:flex;z-index:-10;justify-content:space-between}.table-configuration .table-font-size .font-configuration .range{width:4px;height:16px;background:var(--neutral-100);border-radius:4px}.table-configuration .table-font-size .font-configuration .range.active{visibility:hidden}.table-configuration .table-row-size{display:flex;flex-direction:column;gap:8px}.table-configuration .table-row-size .header-details{font-weight:500}.table-configuration .table-row-size .row-configuration{display:flex;justify-content:space-between;gap:16px}.table-configuration .table-row-size .row-configuration li{list-style-type:none;width:95.5px;display:flex;align-items:center;justify-content:center;border:1px solid var(--neutral-100);font-size:14px;font-weight:500;height:53px;border-radius:6px;cursor:pointer}.table-configuration .table-row-size .row-configuration li.active{border:1px solid var(--primary-color);color:var(--primary-color);background:var(--primary-25)}.table-configuration .table-row-size .row-configuration li.disabled{cursor:not-allowed;opacity:.5}\n"] }]
|
|
55
61
|
}], propDecorators: { rowHeightChange: [{
|
|
56
62
|
type: Output
|
|
57
63
|
}], fontSizeChange: [{
|
|
58
64
|
type: Output
|
|
65
|
+
}], saveDefault: [{
|
|
66
|
+
type: Output
|
|
59
67
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVjb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3RhYmxlY29uZmlndXJhdGlvbi90YWJsZWNvbmZpZ3VyYXRpb24udHMiLCIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvdGFibGVjb25maWd1cmF0aW9uL3RhYmxlY29uZmlndXJhdGlvbi5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBY3hELE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsaUJBQWlCLEdBQThCLElBQUksQ0FBQztJQUNwRCxnQkFBZ0IsR0FBOEIsSUFBSSxDQUFDO0lBQ25ELGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFTCxlQUFlLEdBQTRDLElBQUksWUFBWSxFQUE2QixDQUFDO0lBQ3pHLGNBQWMsR0FBNEMsSUFBSSxZQUFZLEVBQTZCLENBQUM7SUFDeEcsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTlELGVBQWUsQ0FBQyxJQUErQjtRQUMzQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDOUIsTUFBTTtZQUNWLEtBQUssRUFBRTtnQkFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixNQUFNO1lBQ1YsS0FBSyxFQUFFO2dCQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUk7b0JBQUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDakUsTUFBTTtZQUNWLEtBQUssRUFBRTtnQkFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJO29CQUFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pFLE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixNQUFNO1FBQ2QsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7dUdBOUNRLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDBPQ2hCL0IsODBEQThCQSxrbUZEcEJjLFlBQVksd1pBQUUsWUFBWTs7MkZBTTNCLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDSSx3QkFBd0IsbUJBRWpCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FFNUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLGNBQ3pCLElBQUksUUFDVjt3QkFDRixLQUFLLEVBQUUsYUFBYTtxQkFDdkI7OEJBUVMsZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NheC10YWJsZWNvbmZpZ3VyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZWNvbmZpZ3VyYXRpb24uaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZWNvbmZpZ3VyYXRpb24uc2NzcyddLFxuICAgIGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIENvbW1vbk1vZHVsZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnY2F4LWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZWNvbmZpZ3VyYXRpb24ge1xuICAgIGZvbnRDb25maWd1cmF0aW9uOiAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcbiAgICByb3dDb25maWd1cmF0aW9uOiAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcbiAgICBmb250U2l6ZU9wdGlvbnMgPSBbMTIsIDE0LCAxNiwgMThdO1xuICAgIGZvbnRWYWx1ZSA9IDE0O1xuXG4gICAgQE91dHB1dCgpIHJvd0hlaWdodENoYW5nZTogRXZlbnRFbWl0dGVyPCdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc+ID0gbmV3IEV2ZW50RW1pdHRlcjwnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnPigpO1xuICAgIEBPdXRwdXQoKSBmb250U2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPCdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc+ID0gbmV3IEV2ZW50RW1pdHRlcjwnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnPigpO1xuICAgIEBPdXRwdXQoKSBzYXZlRGVmYXVsdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICB1cGRhdGVSb3dIZWlnaHQoc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJykge1xuICAgICAgICBpZiAoc2l6ZSA9PSAnc20nICYmICh0aGlzLmZvbnRDb25maWd1cmF0aW9uID09PSAnbGcnIHx8IHRoaXMuZm9udENvbmZpZ3VyYXRpb24gPT09ICd4bCcpKSB7XG4gICAgICAgICAgICB0aGlzLnJvd0hlaWdodENoYW5nZS5lbWl0KHRoaXMucm93Q29uZmlndXJhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvd0NvbmZpZ3VyYXRpb24gPSBzaXplO1xuICAgICAgICAgICAgdGhpcy5yb3dIZWlnaHRDaGFuZ2UuZW1pdCh0aGlzLnJvd0NvbmZpZ3VyYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW1pdFRhYmxlQ29uZmlndXJhdGlvbigpIHtcbiAgICAgICAgdGhpcy5zYXZlRGVmYXVsdC5lbWl0KHsgZm9udFNpemU6IHRoaXMuZm9udENvbmZpZ3VyYXRpb24sIHJvd1NpemU6IHRoaXMucm93Q29uZmlndXJhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBvblNsaWRlckNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBOdW1iZXIoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9udFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIHN3aXRjaCAodGhpcy5mb250VmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICAgICAgdGhpcy5mb250Q29uZmlndXJhdGlvbiA9ICdzbSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgICAgIHRoaXMuZm9udENvbmZpZ3VyYXRpb24gPSAnbWQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgICAgICB0aGlzLmZvbnRDb25maWd1cmF0aW9uID0gJ2xnJztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yb3dDb25maWd1cmF0aW9uID09PSAnc20nKSB0aGlzLnJvd0NvbmZpZ3VyYXRpb24gPSAnbWQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgICAgICB0aGlzLmZvbnRDb25maWd1cmF0aW9uID0gJ3hsJztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yb3dDb25maWd1cmF0aW9uID09PSAnc20nKSB0aGlzLnJvd0NvbmZpZ3VyYXRpb24gPSAnbWQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmZvbnRDb25maWd1cmF0aW9uID0gJ21kJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlLmVtaXQodGhpcy5mb250Q29uZmlndXJhdGlvbik7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYmxlLWNvbmZpZ3VyYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb250LXNpemVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgPHNwYW4+Rm9udCBTaXplPC9zcGFuPlxyXG4gICAgICAgICAgICA8Y2F4LWJ1dHRvbiAoY2xpY2spPVwiZW1pdFRhYmxlQ29uZmlndXJhdGlvbigpXCIgW2xhYmVsXT1cIidTYXZlIGFzIGRlZmF1bHQnXCIgW2xpbmtdPVwidHJ1ZVwiIFtzaXplXT1cIidzbWFsbCdcIj48L2NheC1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtY29uZmlndXJhdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1sYWJlbHNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZm9udFNpemVPcHRpb25zXCIgW2NsYXNzLmFjdGl2ZV09XCJmb250VmFsdWUgPT09IG9wdGlvblwiIFtzdHlsZS5mb250U2l6ZV09XCJvcHRpb24gKyAncHgnXCI+IHt7IG9wdGlvbiB9fXB4IDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYW5nZVwiIG1pbj1cIjEyXCIgbWF4PVwiMThcIiBzdGVwPVwiMlwiIFt2YWx1ZV09XCJmb250VmFsdWVcIiAoaW5wdXQpPVwib25TbGlkZXJDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiY3VzdG9tLXNsaWRlclwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtbWFya2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZvbnRTaXplT3B0aW9uc1wiIGNsYXNzPVwicmFuZ2VcIiBbY2xhc3MuYWN0aXZlXT1cImZvbnRWYWx1ZSA9PT0gb3B0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3ctc2l6ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8c3Bhbj5Sb3cgSGVpZ2h0PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctY29uZmlndXJhdGlvblwiPlxyXG4gICAgICAgICAgICA8bGkgW2NsYXNzLmFjdGl2ZV09XCJyb3dDb25maWd1cmF0aW9uID09PSAnc20nICYmIChmb250Q29uZmlndXJhdGlvbiA9PT0gJ3NtJyB8fCBmb250Q29uZmlndXJhdGlvbiA9PT0gJ21kJylcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZm9udENvbmZpZ3VyYXRpb24gPT09ICdsZycgfHwgZm9udENvbmZpZ3VyYXRpb24gPT09ICd4bCdcIiAoY2xpY2spPVwidXBkYXRlUm93SGVpZ2h0KCdzbScpXCI+Q29tcGFjdDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cInJvd0NvbmZpZ3VyYXRpb24gPT09ICdtZCdcIiAoY2xpY2spPVwidXBkYXRlUm93SGVpZ2h0KCdtZCcpXCI+TWVkaXVtPC9saT5cclxuICAgICAgICAgICAgPGxpIFtjbGFzcy5hY3RpdmVdPVwicm93Q29uZmlndXJhdGlvbiA9PT0gJ2xnJ1wiIChjbGljayk9XCJ1cGRhdGVSb3dIZWlnaHQoJ2xnJylcIj5MYXJnZTwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cInJvd0NvbmZpZ3VyYXRpb24gPT09ICd4bCdcIiAoY2xpY2spPVwidXBkYXRlUm93SGVpZ2h0KCd4bCcpXCI+RXh0cmEgTGFyZ2U8L2xpPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -14,11 +14,11 @@ export class ToggleSwitchComponent {
|
|
|
14
14
|
this.onChange.emit(this.checked);
|
|
15
15
|
}
|
|
16
16
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ToggleSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ToggleSwitchComponent, selector: "cax-toggleswitch", inputs: { size: "size", checked: "checked", disabled: "disabled", iconClass: "iconClass", label: "label", events: "events" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div\r\n class=\"cax-toggleswitch-container\"\r\n [ngClass]=\"{\r\n 'cax-toggleswitch-container-disabled': disabled,\r\n 'cax-toggleswitch-size-sm': size === 'sm',\r\n 'cax-toggleswitch-size-md': size === 'md',\r\n 'cax-toggleswitch-size-lg': size === 'lg'\r\n }\"\r\n>\r\n <span class=\"cax-toggle-label\" *ngIf=\"label\">{{ label }}</span>\r\n <label class=\"cax-toggleswitchmaindiv\" [ngClass]=\"{ 'cax-toggleswitchmaindiv-disabled': disabled }\">\r\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"toggleChecked($event)\" class=\"cax-toggleswitch\" />\r\n <div class=\"cax-toggleswitch-track\"></div>\r\n <div\r\n class=\"cax-toggle-thumb\"\r\n [ngClass]=\"{\r\n 'cax-toggle-thumb-checked': checked\r\n }\"\r\n >\r\n <ng-container *ngIf=\"checked\">\r\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cax-toggle-icon-active\">\r\n <path\r\n d=\"M10.0915 0.951972L10.0867 0.946075L10.0813 0.940568C9.90076 0.753564 9.61034 0.753146 9.42927 0.939309L4.16201 6.22962L1.58507 3.63469C1.40401 3.44841 1.11351 3.44879 0.932892 3.63584C0.755703 3.81933 0.755703 4.10875 0.932892 4.29224L0.932878 4.29225L0.934851 4.29424L3.58046 6.95832C3.73676 7.11955 3.94983 7.2 4.1473 7.2C4.36196 7.2 4.55963 7.11773 4.71406 6.9584L10.0468 1.60234C10.2436 1.4199 10.2421 1.1339 10.0915 0.951972ZM4.2327 6.30081L4.2317 6.2998C4.23206 6.30015 4.23237 6.30049 4.23269 6.30082L4.2327 6.30081Z\"\r\n fill=\"var(--primary-500)\"\r\n stroke=\"var(--primary-500)\"\r\n stroke-width=\"0.4\"\r\n />\r\n </svg>\r\n </ng-container>\r\n </div>\r\n </label>\r\n</div>\r\n", styles: ["@layer cax{.cax-toggleswitch-container{display:flex;align-items:center;
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ToggleSwitchComponent, selector: "cax-toggleswitch", inputs: { size: "size", checked: "checked", disabled: "disabled", iconClass: "iconClass", label: "label", events: "events" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div\r\n class=\"cax-toggleswitch-container\"\r\n [ngClass]=\"{\r\n 'cax-toggleswitch-container-disabled': disabled,\r\n 'cax-toggleswitch-size-sm': size === 'sm',\r\n 'cax-toggleswitch-size-md': size === 'md',\r\n 'cax-toggleswitch-size-lg': size === 'lg'\r\n }\"\r\n>\r\n <span class=\"cax-toggle-label\" *ngIf=\"label\">{{ label }}</span>\r\n <label class=\"cax-toggleswitchmaindiv\" [ngClass]=\"{ 'cax-toggleswitchmaindiv-disabled': disabled }\">\r\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"toggleChecked($event)\" class=\"cax-toggleswitch\" />\r\n <div class=\"cax-toggleswitch-track\"></div>\r\n <div\r\n class=\"cax-toggle-thumb\"\r\n [ngClass]=\"{\r\n 'cax-toggle-thumb-checked': checked\r\n }\"\r\n >\r\n <ng-container *ngIf=\"checked\">\r\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cax-toggle-icon-active\">\r\n <path\r\n d=\"M10.0915 0.951972L10.0867 0.946075L10.0813 0.940568C9.90076 0.753564 9.61034 0.753146 9.42927 0.939309L4.16201 6.22962L1.58507 3.63469C1.40401 3.44841 1.11351 3.44879 0.932892 3.63584C0.755703 3.81933 0.755703 4.10875 0.932892 4.29224L0.932878 4.29225L0.934851 4.29424L3.58046 6.95832C3.73676 7.11955 3.94983 7.2 4.1473 7.2C4.36196 7.2 4.55963 7.11773 4.71406 6.9584L10.0468 1.60234C10.2436 1.4199 10.2421 1.1339 10.0915 0.951972ZM4.2327 6.30081L4.2317 6.2998C4.23206 6.30015 4.23237 6.30049 4.23269 6.30082L4.2327 6.30081Z\"\r\n fill=\"var(--primary-500)\"\r\n stroke=\"var(--primary-500)\"\r\n stroke-width=\"0.4\"\r\n />\r\n </svg>\r\n </ng-container>\r\n </div>\r\n </label>\r\n</div>\r\n", styles: ["@layer cax{.cax-toggleswitch-container{display:flex;align-items:center;justify-content:space-between}.cax-toggleswitch-container-disabled{opacity:.6;pointer-events:none}.cax-toggleswitchmaindiv{display:inline-flex;align-items:center;position:relative;cursor:pointer}.cax-toggleswitchmaindiv:hover,.cax-toggleswitchmaindiv:has(.cax-toggle-thumb:hover),.cax-toggleswitchmaindiv:has(.cax-toggleswitch-track:hover){opacity:.9}.cax-toggleswitchmaindiv-disabled{opacity:.6}.cax-toggleswitch{display:none}.cax-toggle-icon-active{display:flex}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ToggleSwitchComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'cax-toggleswitch', template: "<div\r\n class=\"cax-toggleswitch-container\"\r\n [ngClass]=\"{\r\n 'cax-toggleswitch-container-disabled': disabled,\r\n 'cax-toggleswitch-size-sm': size === 'sm',\r\n 'cax-toggleswitch-size-md': size === 'md',\r\n 'cax-toggleswitch-size-lg': size === 'lg'\r\n }\"\r\n>\r\n <span class=\"cax-toggle-label\" *ngIf=\"label\">{{ label }}</span>\r\n <label class=\"cax-toggleswitchmaindiv\" [ngClass]=\"{ 'cax-toggleswitchmaindiv-disabled': disabled }\">\r\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"toggleChecked($event)\" class=\"cax-toggleswitch\" />\r\n <div class=\"cax-toggleswitch-track\"></div>\r\n <div\r\n class=\"cax-toggle-thumb\"\r\n [ngClass]=\"{\r\n 'cax-toggle-thumb-checked': checked\r\n }\"\r\n >\r\n <ng-container *ngIf=\"checked\">\r\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cax-toggle-icon-active\">\r\n <path\r\n d=\"M10.0915 0.951972L10.0867 0.946075L10.0813 0.940568C9.90076 0.753564 9.61034 0.753146 9.42927 0.939309L4.16201 6.22962L1.58507 3.63469C1.40401 3.44841 1.11351 3.44879 0.932892 3.63584C0.755703 3.81933 0.755703 4.10875 0.932892 4.29224L0.932878 4.29225L0.934851 4.29424L3.58046 6.95832C3.73676 7.11955 3.94983 7.2 4.1473 7.2C4.36196 7.2 4.55963 7.11773 4.71406 6.9584L10.0468 1.60234C10.2436 1.4199 10.2421 1.1339 10.0915 0.951972ZM4.2327 6.30081L4.2317 6.2998C4.23206 6.30015 4.23237 6.30049 4.23269 6.30082L4.2327 6.30081Z\"\r\n fill=\"var(--primary-500)\"\r\n stroke=\"var(--primary-500)\"\r\n stroke-width=\"0.4\"\r\n />\r\n </svg>\r\n </ng-container>\r\n </div>\r\n </label>\r\n</div>\r\n", styles: ["@layer cax{.cax-toggleswitch-container{display:flex;align-items:center;
|
|
21
|
+
args: [{ selector: 'cax-toggleswitch', template: "<div\r\n class=\"cax-toggleswitch-container\"\r\n [ngClass]=\"{\r\n 'cax-toggleswitch-container-disabled': disabled,\r\n 'cax-toggleswitch-size-sm': size === 'sm',\r\n 'cax-toggleswitch-size-md': size === 'md',\r\n 'cax-toggleswitch-size-lg': size === 'lg'\r\n }\"\r\n>\r\n <span class=\"cax-toggle-label\" *ngIf=\"label\">{{ label }}</span>\r\n <label class=\"cax-toggleswitchmaindiv\" [ngClass]=\"{ 'cax-toggleswitchmaindiv-disabled': disabled }\">\r\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"toggleChecked($event)\" class=\"cax-toggleswitch\" />\r\n <div class=\"cax-toggleswitch-track\"></div>\r\n <div\r\n class=\"cax-toggle-thumb\"\r\n [ngClass]=\"{\r\n 'cax-toggle-thumb-checked': checked\r\n }\"\r\n >\r\n <ng-container *ngIf=\"checked\">\r\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cax-toggle-icon-active\">\r\n <path\r\n d=\"M10.0915 0.951972L10.0867 0.946075L10.0813 0.940568C9.90076 0.753564 9.61034 0.753146 9.42927 0.939309L4.16201 6.22962L1.58507 3.63469C1.40401 3.44841 1.11351 3.44879 0.932892 3.63584C0.755703 3.81933 0.755703 4.10875 0.932892 4.29224L0.932878 4.29225L0.934851 4.29424L3.58046 6.95832C3.73676 7.11955 3.94983 7.2 4.1473 7.2C4.36196 7.2 4.55963 7.11773 4.71406 6.9584L10.0468 1.60234C10.2436 1.4199 10.2421 1.1339 10.0915 0.951972ZM4.2327 6.30081L4.2317 6.2998C4.23206 6.30015 4.23237 6.30049 4.23269 6.30082L4.2327 6.30081Z\"\r\n fill=\"var(--primary-500)\"\r\n stroke=\"var(--primary-500)\"\r\n stroke-width=\"0.4\"\r\n />\r\n </svg>\r\n </ng-container>\r\n </div>\r\n </label>\r\n</div>\r\n", styles: ["@layer cax{.cax-toggleswitch-container{display:flex;align-items:center;justify-content:space-between}.cax-toggleswitch-container-disabled{opacity:.6;pointer-events:none}.cax-toggleswitchmaindiv{display:inline-flex;align-items:center;position:relative;cursor:pointer}.cax-toggleswitchmaindiv:hover,.cax-toggleswitchmaindiv:has(.cax-toggle-thumb:hover),.cax-toggleswitchmaindiv:has(.cax-toggleswitch-track:hover){opacity:.9}.cax-toggleswitchmaindiv-disabled{opacity:.6}.cax-toggleswitch{display:none}.cax-toggle-icon-active{display:flex}}\n"] }]
|
|
22
22
|
}], propDecorators: { size: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], checked: [{
|