@mozaic-ds/angular 0.24.0-beta.12 → 0.24.0-beta.13
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/adeo/assets/fonts/LeroyMerlinSans-Web-Italic.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Italic.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Light.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Light.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Regular.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Regular.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff2 +0 -0
- package/adeo/assets/tokens/bricoman/js/tokens.js +1 -1
- package/adeo/assets/tokens/bricoman/js/tokensObject.js +15 -15
- package/adeo/assets/tokens/bricoman/scss/_tokens.scss +3 -3
- package/adeo/components/card/card.component.d.ts +11 -0
- package/adeo/components/card/card.module.d.ts +8 -0
- package/adeo/components/card/index.d.ts +3 -0
- package/adeo/components/card/model/card.d.ts +1 -0
- package/adeo/components/card/public-api.d.ts +1 -0
- package/adeo/components/dropdown/dropdown.component.d.ts +5 -8
- package/adeo/components/header/header.component.d.ts +6 -4
- package/adeo/components/listbox/listbox.component.d.ts +6 -6
- package/adeo/components/notification/notification-container.component.d.ts +14 -4
- package/adeo/components/notification/notification.d.ts +3 -0
- package/adeo/components/notification/notification.service.d.ts +1 -0
- package/adeo/components/phone-number/phone-number.component.d.ts +4 -12
- package/adeo/components/public-api.d.ts +1 -0
- package/adeo/components/tabs/tab.component.d.ts +4 -2
- package/adeo/components/tabs/tabs.component.d.ts +1 -1
- package/adeo/esm2020/components/action-bar/action-bar.component.mjs +3 -3
- package/adeo/esm2020/components/card/card.component.mjs +27 -0
- package/adeo/esm2020/components/card/card.module.mjs +18 -0
- package/adeo/esm2020/components/card/index.mjs +4 -0
- package/adeo/esm2020/components/card/model/card.mjs +2 -0
- package/adeo/esm2020/components/card/public-api.mjs +2 -0
- package/adeo/esm2020/components/dropdown/dropdown.component.mjs +16 -46
- package/adeo/esm2020/components/header/header.component.mjs +12 -12
- package/adeo/esm2020/components/listbox/listbox.component.mjs +22 -28
- package/adeo/esm2020/components/notification/notification-animation.mjs +7 -4
- package/adeo/esm2020/components/notification/notification-container.component.mjs +63 -13
- package/adeo/esm2020/components/notification/notification.mjs +1 -1
- package/adeo/esm2020/components/notification/notification.service.mjs +6 -3
- package/adeo/esm2020/components/phone-number/phone-number.component.mjs +15 -68
- package/adeo/esm2020/components/public-api.mjs +2 -1
- package/adeo/esm2020/components/tabs/tab.component.mjs +7 -6
- package/adeo/esm2020/components/tabs/tabs.component.mjs +8 -4
- package/adeo/fesm2015/mozaic-ds-angular.mjs +188 -176
- package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/fesm2020/mozaic-ds-angular.mjs +180 -171
- package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/package.json +1 -1
- package/assets/fonts/LeroyMerlinSans-Web-Italic.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Italic.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Light.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Light.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Regular.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Regular.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff2 +0 -0
- package/assets/tokens/bricoman/js/tokens.js +1 -1
- package/assets/tokens/bricoman/js/tokensObject.js +15 -15
- package/assets/tokens/bricoman/scss/_tokens.scss +3 -3
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Italic.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Italic.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Light.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Light.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Regular.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Regular.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff2 +0 -0
- package/bricoman/assets/tokens/bricoman/js/tokens.js +1 -1
- package/bricoman/assets/tokens/bricoman/js/tokensObject.js +15 -15
- package/bricoman/assets/tokens/bricoman/scss/_tokens.scss +3 -3
- package/bricoman/components/card/card.component.d.ts +11 -0
- package/bricoman/components/card/card.module.d.ts +8 -0
- package/bricoman/components/card/index.d.ts +3 -0
- package/bricoman/components/card/model/card.d.ts +1 -0
- package/bricoman/components/card/public-api.d.ts +1 -0
- package/bricoman/components/dropdown/dropdown.component.d.ts +5 -8
- package/bricoman/components/header/header.component.d.ts +6 -4
- package/bricoman/components/listbox/listbox.component.d.ts +6 -6
- package/bricoman/components/notification/notification-container.component.d.ts +14 -4
- package/bricoman/components/notification/notification.d.ts +3 -0
- package/bricoman/components/notification/notification.service.d.ts +1 -0
- package/bricoman/components/phone-number/phone-number.component.d.ts +4 -12
- package/bricoman/components/public-api.d.ts +1 -0
- package/bricoman/components/tabs/tab.component.d.ts +4 -2
- package/bricoman/components/tabs/tabs.component.d.ts +1 -1
- package/bricoman/esm2020/components/action-bar/action-bar.component.mjs +3 -3
- package/bricoman/esm2020/components/card/card.component.mjs +27 -0
- package/bricoman/esm2020/components/card/card.module.mjs +18 -0
- package/bricoman/esm2020/components/card/index.mjs +4 -0
- package/bricoman/esm2020/components/card/model/card.mjs +2 -0
- package/bricoman/esm2020/components/card/public-api.mjs +2 -0
- package/bricoman/esm2020/components/dropdown/dropdown.component.mjs +16 -46
- package/bricoman/esm2020/components/header/header.component.mjs +12 -12
- package/bricoman/esm2020/components/listbox/listbox.component.mjs +22 -28
- package/bricoman/esm2020/components/notification/notification-animation.mjs +7 -4
- package/bricoman/esm2020/components/notification/notification-container.component.mjs +63 -13
- package/bricoman/esm2020/components/notification/notification.mjs +1 -1
- package/bricoman/esm2020/components/notification/notification.service.mjs +6 -3
- package/bricoman/esm2020/components/phone-number/phone-number.component.mjs +15 -68
- package/bricoman/esm2020/components/public-api.mjs +2 -1
- package/bricoman/esm2020/components/tabs/tab.component.mjs +7 -6
- package/bricoman/esm2020/components/tabs/tabs.component.mjs +8 -4
- package/bricoman/fesm2015/mozaic-ds-angular.mjs +188 -176
- package/bricoman/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/fesm2020/mozaic-ds-angular.mjs +180 -171
- package/bricoman/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/package.json +1 -1
- package/components/card/card.component.d.ts +11 -0
- package/components/card/card.module.d.ts +8 -0
- package/components/card/index.d.ts +3 -0
- package/components/card/model/card.d.ts +1 -0
- package/components/card/public-api.d.ts +1 -0
- package/components/dropdown/dropdown.component.d.ts +5 -8
- package/components/header/header.component.d.ts +6 -4
- package/components/listbox/listbox.component.d.ts +6 -6
- package/components/notification/notification-container.component.d.ts +14 -4
- package/components/notification/notification.d.ts +3 -0
- package/components/notification/notification.service.d.ts +1 -0
- package/components/phone-number/phone-number.component.d.ts +4 -12
- package/components/public-api.d.ts +1 -0
- package/components/tabs/tab.component.d.ts +4 -2
- package/components/tabs/tabs.component.d.ts +1 -1
- package/esm2020/components/action-bar/action-bar.component.mjs +3 -3
- package/esm2020/components/card/card.component.mjs +27 -0
- package/esm2020/components/card/card.module.mjs +18 -0
- package/esm2020/components/card/index.mjs +4 -0
- package/esm2020/components/card/model/card.mjs +2 -0
- package/esm2020/components/card/public-api.mjs +2 -0
- package/esm2020/components/dropdown/dropdown.component.mjs +16 -46
- package/esm2020/components/header/header.component.mjs +12 -12
- package/esm2020/components/listbox/listbox.component.mjs +22 -28
- package/esm2020/components/notification/notification-animation.mjs +7 -4
- package/esm2020/components/notification/notification-container.component.mjs +63 -13
- package/esm2020/components/notification/notification.mjs +1 -1
- package/esm2020/components/notification/notification.service.mjs +6 -3
- package/esm2020/components/phone-number/phone-number.component.mjs +15 -68
- package/esm2020/components/public-api.mjs +2 -1
- package/esm2020/components/tabs/tab.component.mjs +7 -6
- package/esm2020/components/tabs/tabs.component.mjs +8 -4
- package/fesm2015/mozaic-ds-angular.mjs +188 -176
- package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/fesm2020/mozaic-ds-angular.mjs +180 -171
- package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/adeo/assets/tokens/adeo/android/colors.xml +0 -494
- package/adeo/assets/tokens/adeo/android/font_dimens.xml +0 -18
- package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.h +0 -502
- package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.m +0 -514
- package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.swift +0 -497
- package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.h +0 -69
- package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.m +0 -70
- package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.swift +0 -71
- package/adeo/assets/tokens/bricoman/android/colors.xml +0 -486
- package/adeo/assets/tokens/bricoman/android/font_dimens.xml +0 -18
- package/adeo/assets/tokens/bricoman/ios/StyleDictionaryColor.h +0 -494
- package/adeo/assets/tokens/bricoman/ios/StyleDictionaryColor.m +0 -506
- package/adeo/assets/tokens/bricoman/ios/StyleDictionaryColor.swift +0 -489
- package/adeo/assets/tokens/bricoman/ios/StyleDictionarySize.h +0 -69
- package/adeo/assets/tokens/bricoman/ios/StyleDictionarySize.m +0 -70
- package/adeo/assets/tokens/bricoman/ios/StyleDictionarySize.swift +0 -71
- package/assets/tokens/adeo/android/colors.xml +0 -494
- package/assets/tokens/adeo/android/font_dimens.xml +0 -18
- package/assets/tokens/adeo/ios/StyleDictionaryColor.h +0 -502
- package/assets/tokens/adeo/ios/StyleDictionaryColor.m +0 -514
- package/assets/tokens/adeo/ios/StyleDictionaryColor.swift +0 -497
- package/assets/tokens/adeo/ios/StyleDictionarySize.h +0 -69
- package/assets/tokens/adeo/ios/StyleDictionarySize.m +0 -70
- package/assets/tokens/adeo/ios/StyleDictionarySize.swift +0 -71
- package/assets/tokens/bricoman/android/colors.xml +0 -486
- package/assets/tokens/bricoman/android/font_dimens.xml +0 -18
- package/assets/tokens/bricoman/ios/StyleDictionaryColor.h +0 -494
- package/assets/tokens/bricoman/ios/StyleDictionaryColor.m +0 -506
- package/assets/tokens/bricoman/ios/StyleDictionaryColor.swift +0 -489
- package/assets/tokens/bricoman/ios/StyleDictionarySize.h +0 -69
- package/assets/tokens/bricoman/ios/StyleDictionarySize.m +0 -70
- package/assets/tokens/bricoman/ios/StyleDictionarySize.swift +0 -71
- package/bricoman/assets/tokens/adeo/android/colors.xml +0 -494
- package/bricoman/assets/tokens/adeo/android/font_dimens.xml +0 -18
- package/bricoman/assets/tokens/adeo/ios/StyleDictionaryColor.h +0 -502
- package/bricoman/assets/tokens/adeo/ios/StyleDictionaryColor.m +0 -514
- package/bricoman/assets/tokens/adeo/ios/StyleDictionaryColor.swift +0 -497
- package/bricoman/assets/tokens/adeo/ios/StyleDictionarySize.h +0 -69
- package/bricoman/assets/tokens/adeo/ios/StyleDictionarySize.m +0 -70
- package/bricoman/assets/tokens/adeo/ios/StyleDictionarySize.swift +0 -71
- package/bricoman/assets/tokens/bricoman/android/colors.xml +0 -486
- package/bricoman/assets/tokens/bricoman/android/font_dimens.xml +0 -18
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionaryColor.h +0 -494
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionaryColor.m +0 -506
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionaryColor.swift +0 -489
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionarySize.h +0 -69
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionarySize.m +0 -70
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionarySize.swift +0 -71
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import { Direction } from './model/header';
|
|
3
3
|
import { fromEvent, map, pairwise, startWith } from 'rxjs';
|
|
4
|
+
import { BreadcrumbComponent } from '../breadcrumb';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common";
|
|
6
7
|
import * as i2 from "../badge/badge.component";
|
|
@@ -41,11 +42,6 @@ export class HeaderComponent {
|
|
|
41
42
|
(this.tabsRef?.nativeElement.children && this.tabsRef?.nativeElement.children.length === 0)) {
|
|
42
43
|
this.showTabs = false;
|
|
43
44
|
}
|
|
44
|
-
if (this.breadcrumbRef == null ||
|
|
45
|
-
(this.breadcrumbRef?.nativeElement.children &&
|
|
46
|
-
this.breadcrumbRef?.nativeElement.children.length === 0)) {
|
|
47
|
-
this.showBreadcrumb = false;
|
|
48
|
-
}
|
|
49
45
|
if (this.activateAnimation && this.sticky) {
|
|
50
46
|
this.animate = true;
|
|
51
47
|
this.scrollWithAnimationAndSticky();
|
|
@@ -55,6 +51,10 @@ export class HeaderComponent {
|
|
|
55
51
|
}
|
|
56
52
|
this.cdRef.detectChanges();
|
|
57
53
|
}
|
|
54
|
+
ngAfterContentInit() {
|
|
55
|
+
this.showBreadcrumb = !!this.breadcrumb;
|
|
56
|
+
this.cdRef.detectChanges();
|
|
57
|
+
}
|
|
58
58
|
onParentScrollWithOnlyAnimation(parentElement) {
|
|
59
59
|
let previousState = 'unfixed';
|
|
60
60
|
const headerHeight = this.header.nativeElement.offsetHeight;
|
|
@@ -224,10 +224,10 @@ export class HeaderComponent {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
227
|
-
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: HeaderComponent, selector: "moz-header", inputs: { title: "title", subtitle: "subtitle", badgeType: "badgeType", badgeContent: "badgeContent", size: "size", showShadow: "showShadow", sticky: "sticky", activateAnimation: "activateAnimation", showBack: "showBack", backButtonLabel: "backButtonLabel" }, outputs: { backEvent: "backEvent", directionChangeEvent: "directionChangeEvent", headerStateEvent: "headerStateEvent" }, queries: [{ propertyName: "
|
|
227
|
+
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: HeaderComponent, selector: "moz-header", inputs: { title: "title", subtitle: "subtitle", badgeType: "badgeType", badgeContent: "badgeContent", size: "size", showShadow: "showShadow", sticky: "sticky", activateAnimation: "activateAnimation", showBack: "showBack", backButtonLabel: "backButtonLabel" }, outputs: { backEvent: "backEvent", directionChangeEvent: "directionChangeEvent", headerStateEvent: "headerStateEvent" }, queries: [{ propertyName: "breadcrumb", first: true, predicate: BreadcrumbComponent, descendants: true }, { propertyName: "contentChildren", predicate: ["*"] }], viewQueries: [{ propertyName: "tabsRef", first: true, predicate: ["tabsRef"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "icons", first: true, predicate: ["iconsWrapper"], descendants: true }, { propertyName: "selector", first: true, predicate: ["selectorWrapper"], descendants: true }], ngImport: i0, template: "<div #header class=\"mc-header\" [ngClass]=\"headerClasses\">\n <div class=\"mc-header__container\">\n\n <ng-content select=\"moz-breadcrumb\"></ng-content>\n\n <div class=\"mc-header__actions\" *ngIf=\"showActions\">\n <div class=\"mc-header__icons\">\n <div #iconsWrapper>\n <ng-content select=\"[icons]\"></ng-content>\n </div>\n </div>\n <div class=\"mc-header__selector\">\n <div #selectorWrapper>\n <ng-content select=\"[selector]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"mc-header__content\">\n <div class=\"mc-header__content-main\">\n <button\n class=\"mc-header__back\"\n type=\"button\"\n *ngIf=\"showBack && !showBreadcrumb\"\n (click)=\"back()\"\n >\n <moz-icon iconName=\"Navigation_Arrow_Back_24px\"></moz-icon>\n <span class=\"mc-header__back-label\">{{ backButtonLabel }}</span>\n </button>\n <h1 class=\"mc-header__title mc-header__title--{{ size }}\">{{ title }}</h1>\n </div>\n <div\n class=\"mc-header__content-aside\"\n [ngClass]=\"[showBack && !showBreadcrumb ? 'can-navigate' : '']\"\n >\n <span class=\"mc-header__subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n <div *ngIf=\"badgeContent\" moz-badge [type]=\"badgeType || 'information'\">\n {{ badgeContent }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"mc-header__tabs mc-divider-top mc-divider-top--light\" #tabsRef *ngIf=\"showTabs\">\n <ng-container ngProjectAs=\"'moz-tabs'\">\n <ng-content select=\"moz-tabs\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-divider{position:relative}.mc-divider-top{border-top:1px solid #666666}.mc-divider-top--lightest{border-top-color:#fff}.mc-divider-top--light{border-top-color:#b3b3b3}.mc-divider-top--dark{border-top-color:#000}.mc-divider-top--m{border-top-width:.25rem}.mc-divider-top--l{border-top-width:.5rem}.mc-divider-right{border-right:1px solid #666666}.mc-divider-right--lightest{border-right-color:#fff}.mc-divider-right--light{border-right-color:#b3b3b3}.mc-divider-right--dark{border-right-color:#000}.mc-divider-right--m{border-right-width:.25rem}.mc-divider-right--l{border-right-width:.5rem}.mc-divider-bottom{border-bottom:1px solid #666666}.mc-divider-bottom--lightest{border-bottom-color:#fff}.mc-divider-bottom--light{border-bottom-color:#b3b3b3}.mc-divider-bottom--dark{border-bottom-color:#000}.mc-divider-bottom--m{border-bottom-width:.25rem}.mc-divider-bottom--l{border-bottom-width:.5rem}.mc-divider-left{border-left:1px solid #666666}.mc-divider-left--lightest{border-left-color:#fff}.mc-divider-left--light{border-left-color:#b3b3b3}.mc-divider-left--dark{border-left-color:#000}.mc-divider-left--m{border-left-width:.25rem}.mc-divider-left--l{border-left-width:.5rem}.mc-header{font-family:LeroyMerlin,sans-serif;font-weight:400;background-color:#fff;z-index:5}.mc-header__container{padding:.5rem 2rem 1rem;display:grid}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__container{padding-left:3rem;padding-right:3rem}}.mc-header__breadcrumb{grid-column:1;grid-row:auto}.mc-header__content{color:#000;grid-column:1;grid-row:auto;padding-top:.5rem}.mc-header__content-main{display:flex;align-items:center;gap:1rem}.mc-header__content-main:not(:only-child){margin-bottom:.25rem}.mc-header__content-aside{display:flex;align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.mc-header__content-aside.can-navigate{padding-left:3rem}@media screen and (min-width: 1024px){.mc-header__content-aside{align-items:center;flex-direction:row;gap:1rem;padding-bottom:0}}.mc-header__back{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;justify-content:center;color:currentColor;display:flex;height:2rem;width:2rem}.mc-header__back-icon{color:#333;height:1.5rem;width:1.5rem}.mc-header__back-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-header__title{font-size:1.75rem;line-height:1.2857142857;font-weight:600;margin-top:0;margin-bottom:0}.mc-header__title--s{font-size:1.5rem;line-height:1.3333333333}.mc-header__title--l{font-size:2.125rem;line-height:1.2941176471}.mc-header__title--xl{font-size:2.5625rem;line-height:1.3658536585}.mc-header__subtitle{font-size:1rem;line-height:1.375}.mc-header__actions,.mc-header__icons{display:flex;gap:1.5rem}.mc-header__actions{align-items:flex-end;align-self:flex-start;grid-column:1;grid-row:1;justify-self:end;margin-bottom:.5rem;min-height:2.5rem}@media screen and (min-width: 1024px){.mc-header__actions{grid-column:2;grid-row:1;margin-bottom:0}}.mc-header__selector:not(:only-child){padding-left:1.5625rem;position:relative}.mc-header__selector:not(:only-child):before{background:#b3b3b3;content:\"\";display:block;width:1px;height:100%;position:absolute;top:50%;transform:translateY(-50%);left:0}.mc-header__tabs{padding-left:2rem;padding-right:2rem}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__tabs{padding-left:3rem;padding-right:3rem}}.mc-header--shadow{box-shadow:0 1px 5px #19191933}.mc-header--animate{left:0;position:absolute;right:0;transition:transform ease-out .4s}.mc-header--sticky{position:sticky;top:0}.mc-header--up{transform:translateY(0)}.mc-header--down{transform:translateY(calc(-100% - 5px))}.mc-header--unfixed{top:0;left:0;right:0;z-index:1;position:relative;transform:translateY(0)}.mc-header--unpinned{top:0;left:0;right:0;z-index:1;position:sticky;transform:translateY(-100%)}.mc-header--pinned{top:0;left:0;right:0;z-index:1;position:sticky;transform:translateY(0)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BadgeComponent, selector: "[moz-badge]", inputs: ["type"] }, { kind: "component", type: i3.IconComponent, selector: "moz-icon", inputs: ["iconName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
228
228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
229
229
|
type: Component,
|
|
230
|
-
args: [{ selector: 'moz-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #header class=\"mc-header\" [ngClass]=\"headerClasses\">\n <div class=\"mc-header__container\">\n
|
|
230
|
+
args: [{ selector: 'moz-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #header class=\"mc-header\" [ngClass]=\"headerClasses\">\n <div class=\"mc-header__container\">\n\n <ng-content select=\"moz-breadcrumb\"></ng-content>\n\n <div class=\"mc-header__actions\" *ngIf=\"showActions\">\n <div class=\"mc-header__icons\">\n <div #iconsWrapper>\n <ng-content select=\"[icons]\"></ng-content>\n </div>\n </div>\n <div class=\"mc-header__selector\">\n <div #selectorWrapper>\n <ng-content select=\"[selector]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"mc-header__content\">\n <div class=\"mc-header__content-main\">\n <button\n class=\"mc-header__back\"\n type=\"button\"\n *ngIf=\"showBack && !showBreadcrumb\"\n (click)=\"back()\"\n >\n <moz-icon iconName=\"Navigation_Arrow_Back_24px\"></moz-icon>\n <span class=\"mc-header__back-label\">{{ backButtonLabel }}</span>\n </button>\n <h1 class=\"mc-header__title mc-header__title--{{ size }}\">{{ title }}</h1>\n </div>\n <div\n class=\"mc-header__content-aside\"\n [ngClass]=\"[showBack && !showBreadcrumb ? 'can-navigate' : '']\"\n >\n <span class=\"mc-header__subtitle\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n <div *ngIf=\"badgeContent\" moz-badge [type]=\"badgeType || 'information'\">\n {{ badgeContent }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"mc-header__tabs mc-divider-top mc-divider-top--light\" #tabsRef *ngIf=\"showTabs\">\n <ng-container ngProjectAs=\"'moz-tabs'\">\n <ng-content select=\"moz-tabs\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-divider{position:relative}.mc-divider-top{border-top:1px solid #666666}.mc-divider-top--lightest{border-top-color:#fff}.mc-divider-top--light{border-top-color:#b3b3b3}.mc-divider-top--dark{border-top-color:#000}.mc-divider-top--m{border-top-width:.25rem}.mc-divider-top--l{border-top-width:.5rem}.mc-divider-right{border-right:1px solid #666666}.mc-divider-right--lightest{border-right-color:#fff}.mc-divider-right--light{border-right-color:#b3b3b3}.mc-divider-right--dark{border-right-color:#000}.mc-divider-right--m{border-right-width:.25rem}.mc-divider-right--l{border-right-width:.5rem}.mc-divider-bottom{border-bottom:1px solid #666666}.mc-divider-bottom--lightest{border-bottom-color:#fff}.mc-divider-bottom--light{border-bottom-color:#b3b3b3}.mc-divider-bottom--dark{border-bottom-color:#000}.mc-divider-bottom--m{border-bottom-width:.25rem}.mc-divider-bottom--l{border-bottom-width:.5rem}.mc-divider-left{border-left:1px solid #666666}.mc-divider-left--lightest{border-left-color:#fff}.mc-divider-left--light{border-left-color:#b3b3b3}.mc-divider-left--dark{border-left-color:#000}.mc-divider-left--m{border-left-width:.25rem}.mc-divider-left--l{border-left-width:.5rem}.mc-header{font-family:LeroyMerlin,sans-serif;font-weight:400;background-color:#fff;z-index:5}.mc-header__container{padding:.5rem 2rem 1rem;display:grid}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__container{padding-left:3rem;padding-right:3rem}}.mc-header__breadcrumb{grid-column:1;grid-row:auto}.mc-header__content{color:#000;grid-column:1;grid-row:auto;padding-top:.5rem}.mc-header__content-main{display:flex;align-items:center;gap:1rem}.mc-header__content-main:not(:only-child){margin-bottom:.25rem}.mc-header__content-aside{display:flex;align-items:flex-start;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.mc-header__content-aside.can-navigate{padding-left:3rem}@media screen and (min-width: 1024px){.mc-header__content-aside{align-items:center;flex-direction:row;gap:1rem;padding-bottom:0}}.mc-header__back{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;justify-content:center;color:currentColor;display:flex;height:2rem;width:2rem}.mc-header__back-icon{color:#333;height:1.5rem;width:1.5rem}.mc-header__back-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-header__title{font-size:1.75rem;line-height:1.2857142857;font-weight:600;margin-top:0;margin-bottom:0}.mc-header__title--s{font-size:1.5rem;line-height:1.3333333333}.mc-header__title--l{font-size:2.125rem;line-height:1.2941176471}.mc-header__title--xl{font-size:2.5625rem;line-height:1.3658536585}.mc-header__subtitle{font-size:1rem;line-height:1.375}.mc-header__actions,.mc-header__icons{display:flex;gap:1.5rem}.mc-header__actions{align-items:flex-end;align-self:flex-start;grid-column:1;grid-row:1;justify-self:end;margin-bottom:.5rem;min-height:2.5rem}@media screen and (min-width: 1024px){.mc-header__actions{grid-column:2;grid-row:1;margin-bottom:0}}.mc-header__selector:not(:only-child){padding-left:1.5625rem;position:relative}.mc-header__selector:not(:only-child):before{background:#b3b3b3;content:\"\";display:block;width:1px;height:100%;position:absolute;top:50%;transform:translateY(-50%);left:0}.mc-header__tabs{padding-left:2rem;padding-right:2rem}@media (min-width: 1024px) and (max-width: 1279px){.mc-header__tabs{padding-left:3rem;padding-right:3rem}}.mc-header--shadow{box-shadow:0 1px 5px #19191933}.mc-header--animate{left:0;position:absolute;right:0;transition:transform ease-out .4s}.mc-header--sticky{position:sticky;top:0}.mc-header--up{transform:translateY(0)}.mc-header--down{transform:translateY(calc(-100% - 5px))}.mc-header--unfixed{top:0;left:0;right:0;z-index:1;position:relative;transform:translateY(0)}.mc-header--unpinned{top:0;left:0;right:0;z-index:1;position:sticky;transform:translateY(-100%)}.mc-header--pinned{top:0;left:0;right:0;z-index:1;position:sticky;transform:translateY(0)}\n"] }]
|
|
231
231
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
232
232
|
type: Input
|
|
233
233
|
}], subtitle: [{
|
|
@@ -257,9 +257,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
257
257
|
}], tabsRef: [{
|
|
258
258
|
type: ViewChild,
|
|
259
259
|
args: ['tabsRef']
|
|
260
|
-
}], breadcrumbRef: [{
|
|
261
|
-
type: ViewChild,
|
|
262
|
-
args: ['breadcrumbRef']
|
|
263
260
|
}], header: [{
|
|
264
261
|
type: ViewChild,
|
|
265
262
|
args: ['header']
|
|
@@ -269,8 +266,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
269
266
|
}], selector: [{
|
|
270
267
|
type: ViewChild,
|
|
271
268
|
args: ['selectorWrapper']
|
|
269
|
+
}], breadcrumb: [{
|
|
270
|
+
type: ContentChild,
|
|
271
|
+
args: [BreadcrumbComponent]
|
|
272
272
|
}], contentChildren: [{
|
|
273
273
|
type: ContentChildren,
|
|
274
274
|
args: ['*']
|
|
275
275
|
}] } });
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sZUFBZTtJQWtDMUIsWUFBb0IsS0FBd0IsRUFBVSxVQUFzQjtRQUF4RCxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqQzVELFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixjQUFTLEdBQWMsYUFBYSxDQUFDO1FBQ3JDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLFNBQUksR0FBZSxHQUFHLENBQUM7UUFDdkIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBRWhDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3hDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7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Q1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVXLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1Usb0JBQW9CO3NCQUFwQyxNQUFNO2dCQUNVLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFFZSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1EsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNMLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUSxLQUFLO3NCQUEvQixTQUFTO3VCQUFDLGNBQWM7Z0JBQ0ssUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRU4sZUFBZTtzQkFBcEMsZUFBZTt1QkFBQyxHQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWRnZVR5cGUgfSBmcm9tICcuLi9iYWRnZS9iYWRnZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb24sIHRpdGxlU2l6ZXMgfSBmcm9tICcuL21vZGVsL2hlYWRlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCwgcGFpcndpc2UsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJ0aXRsZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBiYWRnZVR5cGU6IEJhZGdlVHlwZSA9ICdpbmZvcm1hdGlvbic7XG4gIEBJbnB1dCgpIHB1YmxpYyBiYWRnZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogdGl0bGVTaXplcyA9ICdtJztcbiAgQElucHV0KCkgcHVibGljIHNob3dTaGFkb3c6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc3RpY2t5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBhY3RpdmF0ZUFuaW1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0JhY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGJhY2tCdXR0b25MYWJlbDogc3RyaW5nID0gJ0JhY2snO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgYmFja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGRpcmVjdGlvbkNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEaXJlY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaGVhZGVyU3RhdGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYnNSZWYnKSB0YWJzUmVmPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnJlYWRjcnVtYlJlZicpIGJyZWFkY3J1bWJSZWY/OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXIhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdpY29uc1dyYXBwZXInKSBpY29ucyE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdG9yV3JhcHBlcicpIHNlbGVjdG9yITogRWxlbWVudFJlZjtcblxuICBAQ29udGVudENoaWxkcmVuKCcqJykgY29udGVudENoaWxkcmVuITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIHB1YmxpYyBoZWFkZXJIZWlnaHQgPSAwO1xuICBwdWJsaWMgcGlubmVkID0gZmFsc2U7XG4gIHB1YmxpYyB1bmZpeGVkID0gZmFsc2U7XG4gIHB1YmxpYyB1bnBpbm5lZCA9IGZhbHNlO1xuICBwdWJsaWMgZGlyZWN0aW9uPzogRGlyZWN0aW9uID0gRGlyZWN0aW9uLlVwO1xuICBwdWJsaWMgc2hvd0FjdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgc2hvd0JyZWFkY3J1bWI6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgc2hvd1RhYnM6IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIGFuaW1hdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlckhlaWdodCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgdGhpcy5zaG93QWN0aW9ucyA9XG4gICAgICAodGhpcy5pY29ucyAmJiB0aGlzLmljb25zLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCkgfHxcbiAgICAgICh0aGlzLnNlbGVjdG9yICYmIHRoaXMuc2VsZWN0b3IubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLnRhYnNSZWYgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMudGFic1JlZj8ubmF0aXZlRWxlbWVudC5jaGlsZHJlbiAmJiB0aGlzLnRhYnNSZWY/Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93VGFicyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLmJyZWFkY3J1bWJSZWYgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuYnJlYWRjcnVtYlJlZj8ubmF0aXZlRWxlbWVudC5jaGlsZHJlbiAmJlxuICAgICAgICB0aGlzLmJyZWFkY3J1bWJSZWY/Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93QnJlYWRjcnVtYiA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2YXRlQW5pbWF0aW9uICYmIHRoaXMuc3RpY2t5KSB7XG4gICAgICB0aGlzLmFuaW1hdGUgPSB0cnVlO1xuICAgICAgdGhpcy5zY3JvbGxXaXRoQW5pbWF0aW9uQW5kU3RpY2t5KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2YXRlQW5pbWF0aW9uICYmICF0aGlzLnN0aWNreSkge1xuICAgICAgdGhpcy5zY3JvbGxXaXRoT25seUFuaW1hdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBhcmVudFNjcm9sbFdpdGhPbmx5QW5pbWF0aW9uKHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgbGV0IHByZXZpb3VzU3RhdGUgPSAndW5maXhlZCc7XG4gICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBsZXQgbGFzdFNjcm9sbFRvcCA9IHBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IDA7XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsVG9wID0gcGFyZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgMDtcblxuICAgICAgaWYgKGN1cnJlbnRTY3JvbGxUb3AgPT09IDApIHtcbiAgICAgICAgdGhpcy51bmZpeGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51bnBpbm5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhlYWRlclN0YXRlRXZlbnQuZW1pdCgndW5maXhlZCcpO1xuICAgICAgICBwcmV2aW91c1N0YXRlID0gJ3VuZml4ZWQnO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50U2Nyb2xsVG9wIDwgbGFzdFNjcm9sbFRvcCAmJiBjdXJyZW50U2Nyb2xsVG9wID4gaGVhZGVySGVpZ2h0KSB7XG4gICAgICAgIHRoaXMucGlubmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51bnBpbm5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVuZml4ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZUV2ZW50LmVtaXQoJ3Bpbm5lZCcpO1xuICAgICAgICBpZiAocHJldmlvdXNTdGF0ZSAhPT0gJ3VuZml4ZWQnKSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyQW5pbWF0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICdwaW5uZWQnO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50U2Nyb2xsVG9wID4gbGFzdFNjcm9sbFRvcCAmJiBjdXJyZW50U2Nyb2xsVG9wID4gaGVhZGVySGVpZ2h0KSB7XG4gICAgICAgIHRoaXMudW5waW5uZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnBpbm5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVuZml4ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZUV2ZW50LmVtaXQoJ3VucGlubmVkJyk7XG4gICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSAndW5maXhlZCcpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJBbmltYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFuaW1hdGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBwcmV2aW91c1N0YXRlID0gJ3VucGlubmVkJztcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlyZWN0aW9uID0gY3VycmVudFNjcm9sbFRvcCA+IGxhc3RTY3JvbGxUb3AgPyBEaXJlY3Rpb24uRG93biA6IERpcmVjdGlvbi5VcDtcbiAgICAgIHRoaXMuZGlyZWN0aW9uQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmRpcmVjdGlvbik7XG4gICAgICBsYXN0U2Nyb2xsVG9wID0gY3VycmVudFNjcm9sbFRvcDtcblxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcblxuICAgIHBhcmVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxXaXRoT25seUFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmF0ZUFuaW1hdGlvbiAmJiAhdGhpcy5zdGlja3kpIHtcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmZpbmRQYXJlbnRXaXRoU2Nyb2xsKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5vblBhcmVudFNjcm9sbFdpdGhPbmx5QW5pbWF0aW9uKHBhcmVudEVsZW1lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHByZXZpb3VzU3RhdGUgPSAndW5maXhlZCc7XG4gICAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiB3aW5kb3cuc2Nyb2xsWSksXG4gICAgICAgICAgICBzdGFydFdpdGgoMCksXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgbWFwKChbeTEsIHkyXSk6IERpcmVjdGlvbiA9PiB7XG4gICAgICAgICAgICAgIGlmICh5MiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5maXhlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVucGlubmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZUV2ZW50LmVtaXQoJ3VuZml4ZWQnKTtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gJ3VuZml4ZWQnO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHkyIDwgeTEgJiYgeTIgPiBoZWFkZXJIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBpbm5lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy51bnBpbm5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudW5maXhlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU3RhdGUgPSAncGlubmVkJztcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclN0YXRlRXZlbnQuZW1pdCgncGlubmVkJyk7XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgIT09ICd1bmZpeGVkJykge1xuICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh5MiA+IHkxICYmIHkyID4gaGVhZGVySGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bnBpbm5lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuZml4ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclN0YXRlRXZlbnQuZW1pdCgndW5waW5uZWQnKTtcbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTdGF0ZSAhPT0gJ3VuZml4ZWQnKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJBbmltYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHByZXZpb3VzU3RhdGUgPSAndW5waW5uZWQnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB5MiA8IHkxID8gRGlyZWN0aW9uLlVwIDogRGlyZWN0aW9uLkRvd247XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKChkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25DaGFuZ2VFdmVudC5lbWl0KHRoaXMuZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblBhcmVudFNjcm9sbFdpdGhBbmltYXRpb25BbmRTdGlja3kocGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgbGFzdFNjcm9sbFRvcCA9IHBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IDA7XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsVG9wID0gcGFyZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgMDtcbiAgICAgIGlmIChjdXJyZW50U2Nyb2xsVG9wID4gbGFzdFNjcm9sbFRvcCkge1xuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IERpcmVjdGlvbi5Eb3duO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBEaXJlY3Rpb24uVXA7XG4gICAgICB9XG4gICAgICB0aGlzLmRpcmVjdGlvbkNoYW5nZUV2ZW50LmVtaXQodGhpcy5kaXJlY3Rpb24pO1xuICAgICAgbGFzdFNjcm9sbFRvcCA9IGN1cnJlbnRTY3JvbGxUb3A7XG5cbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH07XG5cbiAgICBwYXJlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsV2l0aEFuaW1hdGlvbkFuZFN0aWNreSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmltYXRlICYmIHRoaXMuc3RpY2t5KSB7XG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5maW5kUGFyZW50V2l0aFNjcm9sbCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMub25QYXJlbnRTY3JvbGxXaXRoQW5pbWF0aW9uQW5kU3RpY2t5KHBhcmVudEVsZW1lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gd2luZG93LnNjcm9sbFkpLFxuICAgICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICAgIG1hcCgoW3kxLCB5Ml0pOiBEaXJlY3Rpb24gPT4ge1xuICAgICAgICAgICAgICByZXR1cm4geTIgPCB5MSA/IERpcmVjdGlvbi5VcCA6IERpcmVjdGlvbi5Eb3duO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmRpcmVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmluZFBhcmVudFdpdGhTY3JvbGwoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIGNvbnN0IGhhc092ZXJmbG93ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KS5vdmVyZmxvdztcbiAgICAgIGlmIChoYXNPdmVyZmxvdyA9PT0gJ2F1dG8nIHx8IGhhc092ZXJmbG93ID09PSAnc2Nyb2xsJykge1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFBhcmVudFdpdGhTY3JvbGwocGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhlYWRlckNsYXNzZXMoKTogT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ21jLWhlYWRlci0tc2hhZG93JzogdGhpcy5zaG93U2hhZG93LFxuICAgICAgJ21jLWhlYWRlci0tc3RpY2t5JzogdGhpcy5zdGlja3ksXG4gICAgICAnbWMtaGVhZGVyLS1hbmltYXRlJzogdGhpcy5hbmltYXRlLFxuICAgICAgJ21jLWhlYWRlci0tdXAnOiB0aGlzLmFuaW1hdGUgJiYgdGhpcy5zdGlja3kgJiYgdGhpcy5kaXJlY3Rpb24gPT09ICdVcCcsXG4gICAgICAnbWMtaGVhZGVyLS1kb3duJzogdGhpcy5hbmltYXRlICYmIHRoaXMuc3RpY2t5ICYmIHRoaXMuZGlyZWN0aW9uICE9PSAnVXAnLFxuICAgICAgJ21jLWhlYWRlci0tdW5maXhlZCc6IHRoaXMuYWN0aXZhdGVBbmltYXRpb24gJiYgIXRoaXMuc3RpY2t5ICYmIHRoaXMudW5maXhlZCxcbiAgICAgICdtYy1oZWFkZXItLXVucGlubmVkJzogdGhpcy5hY3RpdmF0ZUFuaW1hdGlvbiAmJiAhdGhpcy5zdGlja3kgJiYgdGhpcy51bnBpbm5lZCxcbiAgICAgICdtYy1oZWFkZXItLXBpbm5lZCc6IHRoaXMuYWN0aXZhdGVBbmltYXRpb24gJiYgIXRoaXMuc3RpY2t5ICYmIHRoaXMucGlubmVkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJBbmltYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5hbmltYXRlID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiAjaGVhZGVyIGNsYXNzPVwibWMtaGVhZGVyXCIgW25nQ2xhc3NdPVwiaGVhZGVyQ2xhc3Nlc1wiPlxuICA8ZGl2IGNsYXNzPVwibWMtaGVhZGVyX19jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwiJ21vei1icmVhZGNydW1iJ1wiICNicmVhZGNydW1iUmVmICpuZ0lmPVwic2hvd0JyZWFkY3J1bWIgJiYgIXNob3dCYWNrXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb3otYnJlYWRjcnVtYlwiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtaGVhZGVyX19hY3Rpb25zXCIgKm5nSWY9XCJzaG93QWN0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1jLWhlYWRlcl9faWNvbnNcIj5cbiAgICAgICAgPGRpdiAjaWNvbnNXcmFwcGVyPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpY29uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWMtaGVhZGVyX19zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2ICNzZWxlY3RvcldyYXBwZXI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlbGVjdG9yXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtaGVhZGVyX19jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWMtaGVhZGVyX19jb250ZW50LW1haW5cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwibWMtaGVhZGVyX19iYWNrXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cInNob3dCYWNrICYmICFzaG93QnJlYWRjcnVtYlwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bW96LWljb24gaWNvbk5hbWU9XCJOYXZpZ2F0aW9uX0Fycm93X0JhY2tfMjRweFwiPjwvbW96LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1oZWFkZXJfX2JhY2stbGFiZWxcIj57eyBiYWNrQnV0dG9uTGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8aDEgY2xhc3M9XCJtYy1oZWFkZXJfX3RpdGxlIG1jLWhlYWRlcl9fdGl0bGUtLXt7IHNpemUgfX1cIj57eyB0aXRsZSB9fTwvaDE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtYy1oZWFkZXJfX2NvbnRlbnQtYXNpZGVcIlxuICAgICAgICBbbmdDbGFzc109XCJbc2hvd0JhY2sgJiYgIXNob3dCcmVhZGNydW1iID8gJ2Nhbi1uYXZpZ2F0ZScgOiAnJ11cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLWhlYWRlcl9fc3VidGl0bGVcIiAqbmdJZj1cInN1YnRpdGxlXCI+e3sgc3VidGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJiYWRnZUNvbnRlbnRcIiBtb3otYmFkZ2UgW3R5cGVdPVwiYmFkZ2VUeXBlIHx8ICdpbmZvcm1hdGlvbidcIj5cbiAgICAgICAgICB7eyBiYWRnZUNvbnRlbnQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtYy1oZWFkZXJfX3RhYnMgbWMtZGl2aWRlci10b3AgbWMtZGl2aWRlci10b3AtLWxpZ2h0XCIgI3RhYnNSZWYgKm5nSWY9XCJzaG93VGFic1wiPlxuICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCInbW96LXRhYnMnXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb3otdGFic1wiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUXBELE1BQU0sT0FBTyxlQUFlO0lBa0MxQixZQUFvQixLQUF3QixFQUFVLFVBQXNCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWpDNUQsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGNBQVMsR0FBYyxhQUFhLENBQUM7UUFDckMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsU0FBSSxHQUFlLEdBQUcsQ0FBQztRQUN2QixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFFaEMsY0FBUyxHQUFHLElBQUks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QkFBdkIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVXLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1Usb0JBQW9CO3NCQUFwQyxNQUFNO2dCQUNVLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFFZSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0MsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNRLEtBQUs7c0JBQS9CLFNBQVM7dUJBQUMsY0FBYztnQkFDSyxRQUFRO3NCQUFyQyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDTyxVQUFVO3NCQUE1QyxZQUFZO3VCQUFDLG1CQUFtQjtnQkFFWCxlQUFlO3NCQUFwQyxlQUFlO3VCQUFDLEdBQUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFkZ2VUeXBlIH0gZnJvbSAnLi4vYmFkZ2UvYmFkZ2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uLCB0aXRsZVNpemVzIH0gZnJvbSAnLi9tb2RlbC9oZWFkZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW96LWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc3VidGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYmFkZ2VUeXBlOiBCYWRnZVR5cGUgPSAnaW5mb3JtYXRpb24nO1xuICBASW5wdXQoKSBwdWJsaWMgYmFkZ2VDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHNpemU6IHRpdGxlU2l6ZXMgPSAnbSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U2hhZG93OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHN0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYWN0aXZhdGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dCYWNrOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBiYWNrQnV0dG9uTGFiZWw6IHN0cmluZyA9ICdCYWNrJztcblxuICBAT3V0cHV0KCkgcHVibGljIGJhY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBkaXJlY3Rpb25DaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0aW9uPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGhlYWRlclN0YXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAVmlld0NoaWxkKCd0YWJzUmVmJykgdGFic1JlZj86IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlciE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2ljb25zV3JhcHBlcicpIGljb25zITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0b3JXcmFwcGVyJykgc2VsZWN0b3IhOiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKEJyZWFkY3J1bWJDb21wb25lbnQpIGJyZWFkY3J1bWI/OiBCcmVhZGNydW1iQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oJyonKSBjb250ZW50Q2hpbGRyZW4hOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgcHVibGljIGhlYWRlckhlaWdodCA9IDA7XG4gIHB1YmxpYyBwaW5uZWQgPSBmYWxzZTtcbiAgcHVibGljIHVuZml4ZWQgPSBmYWxzZTtcbiAgcHVibGljIHVucGlubmVkID0gZmFsc2U7XG4gIHB1YmxpYyBkaXJlY3Rpb24/OiBEaXJlY3Rpb24gPSBEaXJlY3Rpb24uVXA7XG4gIHB1YmxpYyBzaG93QWN0aW9uczogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBzaG93QnJlYWRjcnVtYjogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBzaG93VGFiczogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgYW5pbWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICB0aGlzLnNob3dBY3Rpb25zID1cbiAgICAgICh0aGlzLmljb25zICYmIHRoaXMuaWNvbnMubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fFxuICAgICAgKHRoaXMuc2VsZWN0b3IgJiYgdGhpcy5zZWxlY3Rvci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuICAgIGlmIChcbiAgICAgIHRoaXMudGFic1JlZiA9PSBudWxsIHx8XG4gICAgICAodGhpcy50YWJzUmVmPy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuICYmIHRoaXMudGFic1JlZj8ubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDApXG4gICAgKSB7XG4gICAgICB0aGlzLnNob3dUYWJzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWN0aXZhdGVBbmltYXRpb24gJiYgdGhpcy5zdGlja3kpIHtcbiAgICAgIHRoaXMuYW5pbWF0ZSA9IHRydWU7XG4gICAgICB0aGlzLnNjcm9sbFdpdGhBbmltYXRpb25BbmRTdGlja3koKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZhdGVBbmltYXRpb24gJiYgIXRoaXMuc3RpY2t5KSB7XG4gICAgICB0aGlzLnNjcm9sbFdpdGhPbmx5QW5pbWF0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dCcmVhZGNydW1iID0gISF0aGlzLmJyZWFkY3J1bWI7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25QYXJlbnRTY3JvbGxXaXRoT25seUFuaW1hdGlvbihwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGxldCBwcmV2aW91c1N0YXRlID0gJ3VuZml4ZWQnO1xuICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgbGV0IGxhc3RTY3JvbGxUb3AgPSBwYXJlbnRFbGVtZW50LnNjcm9sbFRvcCB8fCAwO1xuXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFNjcm9sbFRvcCA9IHBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IDA7XG5cbiAgICAgIGlmIChjdXJyZW50U2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICAgIHRoaXMudW5maXhlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucGlubmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudW5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZUV2ZW50LmVtaXQoJ3VuZml4ZWQnKTtcbiAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICd1bmZpeGVkJztcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudFNjcm9sbFRvcCA8IGxhc3RTY3JvbGxUb3AgJiYgY3VycmVudFNjcm9sbFRvcCA+IGhlYWRlckhlaWdodCkge1xuICAgICAgICB0aGlzLnBpbm5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMudW5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51bmZpeGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGVhZGVyU3RhdGVFdmVudC5lbWl0KCdwaW5uZWQnKTtcbiAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgIT09ICd1bmZpeGVkJykge1xuICAgICAgICAgIHRoaXMudHJpZ2dlckFuaW1hdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYW5pbWF0ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHByZXZpb3VzU3RhdGUgPSAncGlubmVkJztcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudFNjcm9sbFRvcCA+IGxhc3RTY3JvbGxUb3AgJiYgY3VycmVudFNjcm9sbFRvcCA+IGhlYWRlckhlaWdodCkge1xuICAgICAgICB0aGlzLnVucGlubmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51bmZpeGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGVhZGVyU3RhdGVFdmVudC5lbWl0KCd1bnBpbm5lZCcpO1xuICAgICAgICBpZiAocHJldmlvdXNTdGF0ZSAhPT0gJ3VuZml4ZWQnKSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyQW5pbWF0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICd1bnBpbm5lZCc7XG4gICAgICB9XG4gICAgICB0aGlzLmRpcmVjdGlvbiA9IGN1cnJlbnRTY3JvbGxUb3AgPiBsYXN0U2Nyb2xsVG9wID8gRGlyZWN0aW9uLkRvd24gOiBEaXJlY3Rpb24uVXA7XG4gICAgICB0aGlzLmRpcmVjdGlvbkNoYW5nZUV2ZW50LmVtaXQodGhpcy5kaXJlY3Rpb24pO1xuICAgICAgbGFzdFNjcm9sbFRvcCA9IGN1cnJlbnRTY3JvbGxUb3A7XG5cbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH07XG5cbiAgICBwYXJlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsV2l0aE9ubHlBbmltYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZhdGVBbmltYXRpb24gJiYgIXRoaXMuc3RpY2t5KSB7XG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5maW5kUGFyZW50V2l0aFNjcm9sbCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMub25QYXJlbnRTY3JvbGxXaXRoT25seUFuaW1hdGlvbihwYXJlbnRFbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcmV2aW91c1N0YXRlID0gJ3VuZml4ZWQnO1xuICAgICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB0aGlzLmhlYWRlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gd2luZG93LnNjcm9sbFkpLFxuICAgICAgICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICAgIG1hcCgoW3kxLCB5Ml0pOiBEaXJlY3Rpb24gPT4ge1xuICAgICAgICAgICAgICBpZiAoeTIgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuZml4ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGlubmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy51bnBpbm5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU3RhdGVFdmVudC5lbWl0KCd1bmZpeGVkJyk7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICd1bmZpeGVkJztcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh5MiA8IHkxICYmIHkyID4gaGVhZGVySGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5waW5uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMudW5waW5uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuZml4ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gJ3Bpbm5lZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZUV2ZW50LmVtaXQoJ3Bpbm5lZCcpO1xuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSAndW5maXhlZCcpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckFuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoeTIgPiB5MSAmJiB5MiA+IGhlYWRlckhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5waW5uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGlubmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy51bmZpeGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZUV2ZW50LmVtaXQoJ3VucGlubmVkJyk7XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgIT09ICd1bmZpeGVkJykge1xuICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gJ3VucGlubmVkJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4geTIgPCB5MSA/IERpcmVjdGlvbi5VcCA6IERpcmVjdGlvbi5Eb3duO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmRpcmVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25QYXJlbnRTY3JvbGxXaXRoQW5pbWF0aW9uQW5kU3RpY2t5KHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgbGV0IGxhc3RTY3JvbGxUb3AgPSBwYXJlbnRFbGVtZW50LnNjcm9sbFRvcCB8fCAwO1xuXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFNjcm9sbFRvcCA9IHBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IDA7XG4gICAgICBpZiAoY3VycmVudFNjcm9sbFRvcCA+IGxhc3RTY3JvbGxUb3ApIHtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBEaXJlY3Rpb24uRG93bjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gRGlyZWN0aW9uLlVwO1xuICAgICAgfVxuICAgICAgdGhpcy5kaXJlY3Rpb25DaGFuZ2VFdmVudC5lbWl0KHRoaXMuZGlyZWN0aW9uKTtcbiAgICAgIGxhc3RTY3JvbGxUb3AgPSBjdXJyZW50U2Nyb2xsVG9wO1xuXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9O1xuXG4gICAgcGFyZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFdpdGhBbmltYXRpb25BbmRTdGlja3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5pbWF0ZSAmJiB0aGlzLnN0aWNreSkge1xuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZmluZFBhcmVudFdpdGhTY3JvbGwodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgICB0aGlzLm9uUGFyZW50U2Nyb2xsV2l0aEFuaW1hdGlvbkFuZFN0aWNreShwYXJlbnRFbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHdpbmRvdy5zY3JvbGxZKSxcbiAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICBtYXAoKFt5MSwgeTJdKTogRGlyZWN0aW9uID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHkyIDwgeTEgPyBEaXJlY3Rpb24uVXAgOiBEaXJlY3Rpb24uRG93bjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRpcmVjdGlvbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbkNoYW5nZUV2ZW50LmVtaXQodGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmRQYXJlbnRXaXRoU2Nyb2xsKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICBjb25zdCBoYXNPdmVyZmxvdyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCkub3ZlcmZsb3c7XG4gICAgICBpZiAoaGFzT3ZlcmZsb3cgPT09ICdhdXRvJyB8fCBoYXNPdmVyZmxvdyA9PT0gJ3Njcm9sbCcpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRQYXJlbnRXaXRoU2Nyb2xsKHBhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBoZWFkZXJDbGFzc2VzKCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdtYy1oZWFkZXItLXNoYWRvdyc6IHRoaXMuc2hvd1NoYWRvdyxcbiAgICAgICdtYy1oZWFkZXItLXN0aWNreSc6IHRoaXMuc3RpY2t5LFxuICAgICAgJ21jLWhlYWRlci0tYW5pbWF0ZSc6IHRoaXMuYW5pbWF0ZSxcbiAgICAgICdtYy1oZWFkZXItLXVwJzogdGhpcy5hbmltYXRlICYmIHRoaXMuc3RpY2t5ICYmIHRoaXMuZGlyZWN0aW9uID09PSAnVXAnLFxuICAgICAgJ21jLWhlYWRlci0tZG93bic6IHRoaXMuYW5pbWF0ZSAmJiB0aGlzLnN0aWNreSAmJiB0aGlzLmRpcmVjdGlvbiAhPT0gJ1VwJyxcbiAgICAgICdtYy1oZWFkZXItLXVuZml4ZWQnOiB0aGlzLmFjdGl2YXRlQW5pbWF0aW9uICYmICF0aGlzLnN0aWNreSAmJiB0aGlzLnVuZml4ZWQsXG4gICAgICAnbWMtaGVhZGVyLS11bnBpbm5lZCc6IHRoaXMuYWN0aXZhdGVBbmltYXRpb24gJiYgIXRoaXMuc3RpY2t5ICYmIHRoaXMudW5waW5uZWQsXG4gICAgICAnbWMtaGVhZGVyLS1waW5uZWQnOiB0aGlzLmFjdGl2YXRlQW5pbWF0aW9uICYmICF0aGlzLnN0aWNreSAmJiB0aGlzLnBpbm5lZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmlnZ2VyQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0ZSA9IHRydWU7XG4gIH1cbn1cbiIsIjxkaXYgI2hlYWRlciBjbGFzcz1cIm1jLWhlYWRlclwiIFtuZ0NsYXNzXT1cImhlYWRlckNsYXNzZXNcIj5cbiAgPGRpdiBjbGFzcz1cIm1jLWhlYWRlcl9fY29udGFpbmVyXCI+XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vei1icmVhZGNydW1iXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1jLWhlYWRlcl9fYWN0aW9uc1wiICpuZ0lmPVwic2hvd0FjdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYy1oZWFkZXJfX2ljb25zXCI+XG4gICAgICAgIDxkaXYgI2ljb25zV3JhcHBlcj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaWNvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1jLWhlYWRlcl9fc2VsZWN0b3JcIj5cbiAgICAgICAgPGRpdiAjc2VsZWN0b3JXcmFwcGVyPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZWxlY3Rvcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1jLWhlYWRlcl9fY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1jLWhlYWRlcl9fY29udGVudC1tYWluXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1jLWhlYWRlcl9fYmFja1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKm5nSWY9XCJzaG93QmFjayAmJiAhc2hvd0JyZWFkY3J1bWJcIlxuICAgICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1vei1pY29uIGljb25OYW1lPVwiTmF2aWdhdGlvbl9BcnJvd19CYWNrXzI0cHhcIj48L21vei1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtaGVhZGVyX19iYWNrLWxhYmVsXCI+e3sgYmFja0J1dHRvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGgxIGNsYXNzPVwibWMtaGVhZGVyX190aXRsZSBtYy1oZWFkZXJfX3RpdGxlLS17eyBzaXplIH19XCI+e3sgdGl0bGUgfX08L2gxPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWMtaGVhZGVyX19jb250ZW50LWFzaWRlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW3Nob3dCYWNrICYmICFzaG93QnJlYWRjcnVtYiA/ICdjYW4tbmF2aWdhdGUnIDogJyddXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1oZWFkZXJfX3N1YnRpdGxlXCIgKm5nSWY9XCJzdWJ0aXRsZVwiPnt7IHN1YnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYmFkZ2VDb250ZW50XCIgbW96LWJhZGdlIFt0eXBlXT1cImJhZGdlVHlwZSB8fCAnaW5mb3JtYXRpb24nXCI+XG4gICAgICAgICAge3sgYmFkZ2VDb250ZW50IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWMtaGVhZGVyX190YWJzIG1jLWRpdmlkZXItdG9wIG1jLWRpdmlkZXItdG9wLS1saWdodFwiICN0YWJzUmVmICpuZ0lmPVwic2hvd1RhYnNcIj5cbiAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwiJ21vei10YWJzJ1wiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW96LXRhYnNcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -4,14 +4,6 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "../icon/icon.component";
|
|
6
6
|
export class ListboxComponent {
|
|
7
|
-
set isOpen(value) {
|
|
8
|
-
if (value !== this._isOpen.getValue()) {
|
|
9
|
-
this._isOpen.next(value);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
get isOpen() {
|
|
13
|
-
return this._isOpen.getValue();
|
|
14
|
-
}
|
|
15
7
|
constructor(eRef) {
|
|
16
8
|
this.eRef = eRef;
|
|
17
9
|
this.listboxItems = [];
|
|
@@ -25,6 +17,24 @@ export class ListboxComponent {
|
|
|
25
17
|
this.destroyed = new Subject();
|
|
26
18
|
this._isOpen = new BehaviorSubject(false);
|
|
27
19
|
}
|
|
20
|
+
get isOpen() {
|
|
21
|
+
return this._isOpen.getValue();
|
|
22
|
+
}
|
|
23
|
+
set isOpen(value) {
|
|
24
|
+
if (value !== this._isOpen.getValue()) {
|
|
25
|
+
this._isOpen.next(value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
clickout(event) {
|
|
29
|
+
if (this.contentElementRef?.nativeElement?.firstChild) {
|
|
30
|
+
const listboxHtmlElementContainsClickTarget = this.listboxElementRef?.nativeElement.contains(event.target);
|
|
31
|
+
const contentContainsClickTarget = this.contentElementRef.nativeElement.firstChild?.contains(event.target);
|
|
32
|
+
if ((!listboxHtmlElementContainsClickTarget && !contentContainsClickTarget) ||
|
|
33
|
+
this.disabled) {
|
|
34
|
+
this.closeListbox();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
28
38
|
ngOnInit() {
|
|
29
39
|
this._isOpen
|
|
30
40
|
.pipe(distinctUntilChanged(), filter((isOpen) => isOpen), takeUntil(this.destroyed))
|
|
@@ -37,18 +47,6 @@ export class ListboxComponent {
|
|
|
37
47
|
this.closeListbox();
|
|
38
48
|
});
|
|
39
49
|
}
|
|
40
|
-
clickout(event) {
|
|
41
|
-
if (this.listboxElementRef &&
|
|
42
|
-
this.contentElementRef &&
|
|
43
|
-
this.contentElementRef.nativeElement.firstChild) {
|
|
44
|
-
const listboxHtmlElementContainsClickTarget = this.listboxElementRef && this.listboxElementRef.nativeElement.contains(event.target);
|
|
45
|
-
const contentContainsClickTarget = this.contentElementRef.nativeElement.firstChild.contains(event.target);
|
|
46
|
-
if ((!listboxHtmlElementContainsClickTarget && !contentContainsClickTarget) ||
|
|
47
|
-
this.disabled) {
|
|
48
|
-
this.closeListbox();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
50
|
ngAfterViewInit() {
|
|
53
51
|
fromEvent(window, 'resize')
|
|
54
52
|
.pipe(takeUntil(this.destroyed))
|
|
@@ -78,7 +76,7 @@ export class ListboxComponent {
|
|
|
78
76
|
});
|
|
79
77
|
}
|
|
80
78
|
openListbox() {
|
|
81
|
-
if (this.contentElementRef
|
|
79
|
+
if (this.contentElementRef?.nativeElement?.firstChild) {
|
|
82
80
|
this.isOpen = true;
|
|
83
81
|
this.isOpenChange.emit(this.isOpen);
|
|
84
82
|
const listBox = this.listboxElementRef.nativeElement;
|
|
@@ -190,7 +188,7 @@ export class ListboxComponent {
|
|
|
190
188
|
}
|
|
191
189
|
setClassObjectTile(item) {
|
|
192
190
|
return {
|
|
193
|
-
'is-disabled': item.disabled
|
|
191
|
+
'is-disabled': item.disabled ?? this.disabled,
|
|
194
192
|
};
|
|
195
193
|
}
|
|
196
194
|
getInputName() {
|
|
@@ -209,8 +207,6 @@ export class ListboxComponent {
|
|
|
209
207
|
getItems() {
|
|
210
208
|
const hasNestedArray = this.listboxItems.filter(Array.isArray).length;
|
|
211
209
|
if (hasNestedArray === 0) {
|
|
212
|
-
const listItems = [];
|
|
213
|
-
listItems.push(this.listboxItems);
|
|
214
210
|
return [this.listboxItems];
|
|
215
211
|
}
|
|
216
212
|
return this.listboxItems;
|
|
@@ -221,9 +217,7 @@ export class ListboxComponent {
|
|
|
221
217
|
ngOnDestroy() {
|
|
222
218
|
if (this.listboxElementRef) {
|
|
223
219
|
const mozListbox = this.listboxElementRef.nativeElement;
|
|
224
|
-
|
|
225
|
-
mozListbox.parentNode.removeChild(mozListbox);
|
|
226
|
-
}
|
|
220
|
+
mozListbox?.parentNode?.removeChild(mozListbox);
|
|
227
221
|
}
|
|
228
222
|
this.destroyed.next(null);
|
|
229
223
|
this.destroyed.complete();
|
|
@@ -272,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
272
266
|
type: HostListener,
|
|
273
267
|
args: ['document:click', ['$event']]
|
|
274
268
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9saXN0Ym94L2xpc3Rib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGlzdGJveC9saXN0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUXBHLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQjNCLElBQ0ksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQVFELFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFuQ3BCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsU0FBSSxHQUFVLFNBQVMsQ0FBQztRQUN4QixZQUFPLEdBQWEsS0FBSyxDQUFDO1FBT3pCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBZ0I5QyxTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXJCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpCLFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFaEMsQ0FBQztJQUV4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU87YUFDVCxJQUFJLENBQ0gsb0JBQW9CLEVBQUUsRUFDdEIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFDMUIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLE9BQU87YUFDVCxJQUFJLENBQ0gsb0JBQW9CLEVBQUUsRUFDdEIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFDRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUI7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQy9DO1lBQ0EsTUFBTSxxQ0FBcUMsR0FDekMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RixNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FDekYsS0FBSyxDQUFDLE1BQU0sQ0FDYixDQUFDO1lBQ0YsSUFDRSxDQUFDLENBQUMscUNBQXFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLFFBQVEsRUFDYjtnQkFDQSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7YUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBb0I7UUFDNUMsSUFBSSxPQUFPLEVBQUU7WUFDWCxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztpQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sTUFBTTtRQUNYLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUM3RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztZQUNyRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUN2RSxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN6RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDcEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDdEQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztnQkFDeEUsSUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRTtvQkFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQzNFO1lBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQzVELE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixJQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRTtvQkFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztpQkFDbkU7Z0JBQ0QsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUU7b0JBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ3BFO2FBQ0Y7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUM5QztZQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxXQUF3QjtRQUMvQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLGFBQStCLENBQUMsU0FBUyxDQUMzRCxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsS0FBSyxDQUMzRCxDQUFDO1lBQ0YsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGFBQStCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN4RDtpQkFBTTtnQkFDSixJQUFJLENBQUMsYUFBK0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDekQ7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7U0FDbEM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sU0FBUyxDQUFDLFdBQXdCO1FBQ3ZDLElBQUksa0JBQWtCLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLGtCQUFrQjtnQkFDaEIsSUFBSSxDQUFDLGFBQWE7b0JBQ2pCLElBQUksQ0FBQyxhQUErQixDQUFDLElBQUksQ0FDeEMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FDM0QsQ0FBQztTQUNMO2FBQU07WUFDTCxrQkFBa0I7Z0JBQ2hCLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSyxJQUFJLENBQUMsYUFBNkIsQ0FBQyxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsS0FBSztvQkFDdEYsSUFBSSxDQUFDO1NBQ1I7UUFDRCxPQUFPLGtCQUFrQixJQUFJLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU87WUFDTCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSztTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTztZQUNMLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztZQUM5QyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDOUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU87WUFDTCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM5QyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWE7UUFDNUIsT0FBTyxlQUFlLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQWlCO1FBQ3pDLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUTtTQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3RCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVk7UUFDN0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLFlBQVksSUFBSSxZQUFZLENBQUM7UUFFekQsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUV0RSxJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRWxDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUMxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztZQUN4RCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxFQUFFO2dCQUN2QyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMvQztTQUNGO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs4R0EzUlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMGpCQWdCRyxVQUFVLHVHQUNWLFVBQVUsNkJDcEMxQywwcUdBcUZBOzRGRGxFYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNO2lHQUcvQixZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVXLGFBQWE7c0JBQTdCLE1BQU07Z0JBQ1UsU0FBUztzQkFBekIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVxQyxpQkFBaUI7c0JBQTVELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDRSxpQkFBaUI7c0JBQTVELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFHdEMsTUFBTTtzQkFEVCxLQUFLO2dCQTBDTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3Rib3hJdGVtLCBUeXBlIH0gZnJvbSAnLi9tb2RlbC9saXN0Ym94LWl0ZW0nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmcm9tRXZlbnQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otbGlzdGJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0Ym94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdGJveC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdGJveENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0Ym94SXRlbXM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSXRlbXM6IExpc3Rib3hJdGVtW10gfCBMaXN0Ym94SXRlbSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIHR5cGU/OiBUeXBlID0gJ29wdGlvbnMnO1xuICBASW5wdXQoKSBwdWJsaWMgb3ZlcmxheT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG1heFdpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgd2lkdGg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyB3aXRob3V0T3ZlcmZsb3c/OiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbXNTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHNjcm9sbEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGlzT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdsaXN0Ym94JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGxpc3Rib3hFbGVtZW50UmVmITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb250ZW50RWxlbWVudFJlZiE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KClcbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5faXNPcGVuLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuX2lzT3Blbi5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW4uZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1dWlkID0gTWF0aC5yYW5kb20oKTtcbiAgcHVibGljIG9yaWdpbmFsUGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9pc09wZW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZVJlZjogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pc09wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKGlzT3BlbikgPT4gaXNPcGVuKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub3Blbkxpc3Rib3goKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5faXNPcGVuXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgZmlsdGVyKChpc09wZW4pID0+ICFpc09wZW4pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBjbGlja291dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmxpc3Rib3hFbGVtZW50UmVmICYmXG4gICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmICYmXG4gICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZFxuICAgICkge1xuICAgICAgY29uc3QgbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCA9XG4gICAgICAgIHRoaXMubGlzdGJveEVsZW1lbnRSZWYgJiYgdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICBjb25zdCBjb250ZW50Q29udGFpbnNDbGlja1RhcmdldCA9IHRoaXMuY29udGVudEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkLmNvbnRhaW5zKFxuICAgICAgICBldmVudC50YXJnZXRcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgICghbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCAmJiAhY29udGVudENvbnRhaW5zQ2xpY2tUYXJnZXQpIHx8XG4gICAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXJzKHRoaXMuZVJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnNjcm9sbCgpO1xuICB9XG5cbiAgcHVibGljIGFkZFNjcm9sbExpc3RlbmVycyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICB0aGlzLmFkZFNjcm9sbExpc3RlbmVycyhlbGVtZW50LnBhcmVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGwoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTGlzdGJveCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50RWxlbWVudFJlZiAmJiB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgICBjb25zdCBsaXN0Qm94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgY29udGVudEVsZW1lbnQgPSB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZDtcbiAgICAgIGNvbnN0IGlucHV0UmVjdCA9IGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgbGlzdEJveFJlY3QgPSBsaXN0Qm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgbGlzdEJveC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdEJveEhlaWdodCA9IGxpc3RCb3guZmlyc3RDaGlsZC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGxpc3RCb3hCb3R0b20gPSBpbnB1dFJlY3QuYm90dG9tICsgd2luZG93LnNjcm9sbFkgKyBsaXN0Qm94SGVpZ2h0O1xuICAgICAgICBpZiAobGlzdEJveEJvdHRvbSA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICAgIGxpc3RCb3guc3R5bGUudG9wID0gaW5wdXRSZWN0LnRvcCAtIGxpc3RCb3hIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH0sIDEpO1xuICAgICAgbGlzdEJveC5zdHlsZS50b3AgPSBpbnB1dFJlY3QuYm90dG9tICsgd2luZG93LnNjcm9sbFkgKyAncHgnO1xuICAgICAgbGlzdEJveC5zdHlsZS5sZWZ0ID0gaW5wdXRSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCArICdweCc7XG4gICAgICBsaXN0Qm94LnN0eWxlLm1heEhlaWdodCA9IHRoaXMubWF4SGVpZ2h0O1xuICAgICAgbGlzdEJveC5zdHlsZS5tYXhXaWR0aCA9IHRoaXMubWF4V2lkdGg7XG4gICAgICBsaXN0Qm94LnN0eWxlLnpJbmRleCA9ICcyMDAwMDAwMDAwJztcbiAgICAgIGlmICh0aGlzLndpdGhvdXRPdmVyZmxvdykge1xuICAgICAgICBpZiAobGlzdEJveFJlY3QucmlnaHQgPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgIGxpc3RCb3guc3R5bGUubGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gbGlzdEJveFJlY3Qud2lkdGggKyAncHgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qm94UmVjdC5ib3R0b20gPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICBsaXN0Qm94LnN0eWxlLnRvcCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGxpc3RCb3hSZWN0LmhlaWdodCArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdvcHRpb25zJykge1xuICAgICAgICBsaXN0Qm94LnN0eWxlLndpZHRoID0gaW5wdXRSZWN0LndpZHRoICsgJ3B4JztcbiAgICAgIH1cbiAgICAgIHRoaXMub3JpZ2luYWxQYXJlbnQgPSBsaXN0Qm94LnBhcmVudEVsZW1lbnQ7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpc3RCb3gpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUxpc3Rib3goKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICBpZiAodGhpcy5vcmlnaW5hbFBhcmVudCAmJiB0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50LmFwcGVuZENoaWxkKHRoaXMubGlzdGJveEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtRXZlbnQobGlzdGJveEl0ZW06IExpc3Rib3hJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgaW5kZXggPSAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pLmZpbmRJbmRleChcbiAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLnZhbHVlID09PSBsaXN0Ym94SXRlbS52YWx1ZVxuICAgICAgKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5wdXNoKGxpc3Rib3hJdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gbGlzdGJveEl0ZW07XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhY3Rpb25zJykge1xuICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICB9XG4gICAgdGhpcy5pdGVtc1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQobGlzdGJveEl0ZW06IExpc3Rib3hJdGVtKTogYm9vbGVhbiB7XG4gICAgbGV0IGxpc3RCb3hJdGVtRm91bmRlZDtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgbGlzdEJveEl0ZW1Gb3VuZGVkID1cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zICYmXG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkuZmluZChcbiAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IGxpc3Rib3hJdGVtLnZhbHVlXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3RCb3hJdGVtRm91bmRlZCA9XG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgJiYgKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbSkudmFsdWUpID09IGxpc3Rib3hJdGVtLnZhbHVlIHx8XG4gICAgICAgIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBsaXN0Qm94SXRlbUZvdW5kZWQgIT0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSb2xlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnR5cGUgIT09ICdvcHRpb25zJyA/ICdsaXN0Ym94JyA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZUxpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnb3B0aW9ucycgPyAnbGlzdGJveCcgOiAnZ3JvdXAnO1xuICB9XG5cbiAgcHVibGljIHN0eWxlT2JqZWN0KCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICctLWxpc3Rib3gtbWF4d2lkdGgnOiB0aGlzLm1heFdpZHRoLFxuICAgICAgJy0tbGlzdGJveC13aWR0aCc6IHRoaXMud2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbGFzc09iamVjdCgpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAnbWMtbGlzdGJveC0tb3B0aW9ucyc6IHRoaXMudHlwZSA9PT0gJ29wdGlvbnMnLFxuICAgICAgJ21jLWxpc3Rib3gtLWFjdGlvbnMnOiB0aGlzLnR5cGUgPT09ICdhY3Rpb25zJyxcbiAgICAgICdtYy1saXN0Ym94LS1vdmVybGF5JzogdGhpcy5vdmVybGF5LFxuICAgICAgJ21jLWxpc3Rib3gtLW11bHRpJzogdGhpcy5tdWx0aXBsZSxcbiAgICAgICdpcy1vcGVuJzogdGhpcy5pc09wZW4sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbGFzc09iamVjdElucHV0KCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdtYy1jaGVja2JveF9faW5wdXQnOiB0aGlzLm11bHRpcGxlLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5wdXRUeXBlKCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyAnY2hlY2tib3gnIDogJ3JhZGlvJztcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGVtSWQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBsaXN0Ym94SXRlbS0ke2luZGV4ICsgdGhpcy51dWlkfWA7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xhc3NPYmplY3RUaWxlKGl0ZW06IExpc3Rib3hJdGVtKTogT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2lzLWRpc2FibGVkJzogaXRlbS5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5wdXROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAhdGhpcy5tdWx0aXBsZSA/IGBsaXN0Ym94cmFkaW8tJHt0aGlzLnV1aWR9YCA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRhcmdldC5zY3JvbGxUb3A7XG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGFyZ2V0LnNjcm9sbEhlaWdodDtcbiAgICBjb25zdCBvZmZzZXRIZWlnaHQgPSB0YXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGlzQXRFbmQgPSBzY3JvbGxUb3AgKyBvZmZzZXRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0O1xuXG4gICAgaWYgKGlzQXRFbmQpIHtcbiAgICAgIHRoaXMuc2Nyb2xsRW5kLmVtaXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEl0ZW1zKCk6IExpc3Rib3hJdGVtW11bXSB7XG4gICAgY29uc3QgaGFzTmVzdGVkQXJyYXkgPSB0aGlzLmxpc3Rib3hJdGVtcy5maWx0ZXIoQXJyYXkuaXNBcnJheSkubGVuZ3RoO1xuXG4gICAgaWYgKGhhc05lc3RlZEFycmF5ID09PSAwKSB7XG4gICAgICBjb25zdCBsaXN0SXRlbXMgPSBbXTtcbiAgICAgIGxpc3RJdGVtcy5wdXNoKHRoaXMubGlzdGJveEl0ZW1zKTtcblxuICAgICAgcmV0dXJuIFt0aGlzLmxpc3Rib3hJdGVtc107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGlzdGJveEl0ZW1zO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICBjb25zdCBtb3pMaXN0Ym94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKG1vekxpc3Rib3ggJiYgbW96TGlzdGJveC5wYXJlbnROb2RlKSB7XG4gICAgICAgIG1vekxpc3Rib3gucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtb3pMaXN0Ym94KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dChudWxsKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtbGlzdGJveF9fY29udGFpbmVyXCI+XG4gIDxkaXYgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JlZmVyZW5jZV1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2ICNsaXN0Ym94PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc09wZW5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnb3B0aW9ucyc7IGVsc2UgYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJjbGFzc09iamVjdCgpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZU9iamVjdCgpXCJcbiAgICAgICAgICBbYXR0ci5yb2xlXT1cImdldFJvbGUoKVwiXG4gICAgICAgICAgKHNjcm9sbCk9XCJzY3JvbGxFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm1jLWxpc3Rib3hfX2xpc3RcIiBbYXR0ci5yb2xlXT1cImdldFJvbGVMaXN0KClcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3hfX3RpbGVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZXRDbGFzc09iamVjdFRpbGUobGlzdGJveEl0ZW0pXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpc3Rib3hJdGVtIG9mIGxpc3Rib3hJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtb3otaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94X19pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwibGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibGlzdGJveEl0ZW0uY291bnRyeUNvZGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxhZyBmbGFnOnt7IGxpc3Rib3hJdGVtLmNvdW50cnlDb2RlIH19XCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIi0tQ291bnRyeUZsYWdJY29uLWhlaWdodDogMXJlbVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3hfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBbaWRdPVwic2V0SXRlbUlkKGkpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdGVkSXRlbUV2ZW50KGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiZ2V0SW5wdXRUeXBlKClcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldElucHV0TmFtZSgpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQobGlzdGJveEl0ZW0pXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjbGFzc09iamVjdElucHV0KClcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJsaXN0Ym94SXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInNldEl0ZW1JZChpKVwiIGNsYXNzPVwibWMtbGlzdGJveF9fbGFiZWxcIj57eyBsaXN0Ym94SXRlbS5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2FjdGlvbnM+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAjbGlzdGJveFxuICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveC1vcHRpb25zX19jb250YWluZXJcIlxuICAgICAgICAgIFthdHRyLnJvbGVdPVwiZ2V0Um9sZSgpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldFJvbGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaXN0IG9mIGdldEl0ZW1zKCk7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3gtb3B0aW9uc19fbGlzdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaXN0Ym94SXRlbSBvZiBsaXN0OyBsZXQgaiA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3gtb3B0aW9uc19fdGlsZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRpc2FibGVkJzogbGlzdGJveEl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtb3otaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibGlzdGJveEl0ZW0gJiYgbGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJsaXN0Ym94SXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJsaXN0Ym94SXRlbS5kYW5nZXIgPyB7IGZpbGw6ICcjQzYxMTEyJyB9IDogeyBmaWxsOiAnIzcxNzA2QicgfVwiXG4gICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX2l0ZW1cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsaXN0Ym94SXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtZGFuZ2VyJzogbGlzdGJveEl0ZW0uZGFuZ2VyLCAnaXMtZGlzYWJsZWQnOiBsaXN0Ym94SXRlbS5kaXNhYmxlZCB9XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRJdGVtRXZlbnQobGlzdGJveEl0ZW0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGxpc3Rib3hJdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9saXN0Ym94L2xpc3Rib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGlzdGJveC9saXN0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUXBHLE1BQU0sT0FBTyxnQkFBZ0I7SUF5QjNCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUF4QnBCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsU0FBSSxHQUFVLFNBQVMsQ0FBQztRQUN4QixZQUFPLEdBQWEsS0FBSyxDQUFDO1FBT3pCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSzlDLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFckIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVoQyxDQUFDO0lBRXhDLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFB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QUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdGJveEl0ZW0sIFR5cGUgfSBmcm9tICcuL21vZGVsL2xpc3Rib3gtaXRlbSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1saXN0Ym94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Rib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0Ym94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Ym94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdGJveEl0ZW1zOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcHVibGljIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlPzogVHlwZSA9ICdvcHRpb25zJztcbiAgQElucHV0KCkgcHVibGljIG92ZXJsYXk/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG1heEhlaWdodD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHdpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgd2l0aG91dE92ZXJmbG93PzogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgcHVibGljIGl0ZW1zU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPExpc3Rib3hJdGVtW10gfCBMaXN0Ym94SXRlbT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzY3JvbGxFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbGlzdGJveCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsaXN0Ym94RWxlbWVudFJlZiE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY29udGVudEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyB1dWlkID0gTWF0aC5yYW5kb20oKTtcbiAgcHVibGljIG9yaWdpbmFsUGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9pc09wZW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZVJlZjogRWxlbWVudFJlZikge31cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5faXNPcGVuLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuX2lzT3Blbi5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBjbGlja291dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5jb250ZW50RWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZCkge1xuICAgICAgY29uc3QgbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCA9IHRoaXMubGlzdGJveEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXG4gICAgICAgIGV2ZW50LnRhcmdldFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRDb250YWluc0NsaWNrVGFyZ2V0ID0gdGhpcy5jb250ZW50RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ/LmNvbnRhaW5zKFxuICAgICAgICBldmVudC50YXJnZXRcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgICghbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCAmJiAhY29udGVudENvbnRhaW5zQ2xpY2tUYXJnZXQpIHx8XG4gICAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2lzT3BlblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigoaXNPcGVuKSA9PiBpc09wZW4pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuTGlzdGJveCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9pc09wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKGlzT3BlbikgPT4gIWlzT3BlbiksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmFkZFNjcm9sbExpc3RlbmVycyh0aGlzLmVSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTY3JvbGxMaXN0ZW5lcnMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgICB9KTtcbiAgICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcnMoZWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsKCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbkxpc3Rib3goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGVudEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgICAgY29uc3QgbGlzdEJveCA9IHRoaXMubGlzdGJveEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gdGhpcy5jb250ZW50RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ7XG4gICAgICBjb25zdCBpbnB1dFJlY3QgPSBjb250ZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGxpc3RCb3hSZWN0ID0gbGlzdEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGxpc3RCb3guc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3RCb3hIZWlnaHQgPSBsaXN0Qm94LmZpcnN0Q2hpbGQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBsaXN0Qm94Qm90dG9tID0gaW5wdXRSZWN0LmJvdHRvbSArIHdpbmRvdy5zY3JvbGxZICsgbGlzdEJveEhlaWdodDtcbiAgICAgICAgaWYgKGxpc3RCb3hCb3R0b20gPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICBsaXN0Qm94LnN0eWxlLnRvcCA9IGlucHV0UmVjdC50b3AgLSBsaXN0Qm94SGVpZ2h0ICsgd2luZG93LnNjcm9sbFkgKyAncHgnO1xuICAgICAgICB9XG4gICAgICB9LCAxKTtcbiAgICAgIGxpc3RCb3guc3R5bGUudG9wID0gaW5wdXRSZWN0LmJvdHRvbSArIHdpbmRvdy5zY3JvbGxZICsgJ3B4JztcbiAgICAgIGxpc3RCb3guc3R5bGUubGVmdCA9IGlucHV0UmVjdC5sZWZ0ICsgd2luZG93LnNjcm9sbFggKyAncHgnO1xuICAgICAgbGlzdEJveC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLm1heEhlaWdodDtcbiAgICAgIGxpc3RCb3guc3R5bGUubWF4V2lkdGggPSB0aGlzLm1heFdpZHRoO1xuICAgICAgbGlzdEJveC5zdHlsZS56SW5kZXggPSAnMjAwMDAwMDAwMCc7XG4gICAgICBpZiAodGhpcy53aXRob3V0T3ZlcmZsb3cpIHtcbiAgICAgICAgaWYgKGxpc3RCb3hSZWN0LnJpZ2h0ID4gd2luZG93LmlubmVyV2lkdGgpIHtcbiAgICAgICAgICBsaXN0Qm94LnN0eWxlLmxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGxpc3RCb3hSZWN0LndpZHRoICsgJ3B4JztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdEJveFJlY3QuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgbGlzdEJveC5zdHlsZS50b3AgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBsaXN0Qm94UmVjdC5oZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50eXBlID09PSAnb3B0aW9ucycpIHtcbiAgICAgICAgbGlzdEJveC5zdHlsZS53aWR0aCA9IGlucHV0UmVjdC53aWR0aCArICdweCc7XG4gICAgICB9XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50ID0gbGlzdEJveC5wYXJlbnRFbGVtZW50O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaXN0Qm94KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VMaXN0Ym94KCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgaWYgKHRoaXMub3JpZ2luYWxQYXJlbnQgJiYgdGhpcy5saXN0Ym94RWxlbWVudFJlZikge1xuICAgICAgdGhpcy5vcmlnaW5hbFBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmxpc3Rib3hFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5vcmlnaW5hbFBhcmVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbUV2ZW50KGxpc3Rib3hJdGVtOiBMaXN0Ym94SXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGluZGV4ID0gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5maW5kSW5kZXgoXG4gICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS52YWx1ZSA9PT0gbGlzdGJveEl0ZW0udmFsdWVcbiAgICAgICk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkucHVzaChsaXN0Ym94SXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGxpc3Rib3hJdGVtO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSAnYWN0aW9ucycpIHtcbiAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXNTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgaXNDaGVja2VkKGxpc3Rib3hJdGVtOiBMaXN0Ym94SXRlbSk6IGJvb2xlYW4ge1xuICAgIGxldCBsaXN0Qm94SXRlbUZvdW5kZWQ7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGxpc3RCb3hJdGVtRm91bmRlZCA9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJlxuICAgICAgICAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pLmZpbmQoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLnZhbHVlID09PSBsaXN0Ym94SXRlbS52YWx1ZVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0Qm94SXRlbUZvdW5kZWQgPVxuICAgICAgICAodGhpcy5zZWxlY3RlZEl0ZW1zICYmICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW0pLnZhbHVlKSA9PSBsaXN0Ym94SXRlbS52YWx1ZSB8fFxuICAgICAgICBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdEJveEl0ZW1Gb3VuZGVkICE9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy50eXBlICE9PSAnb3B0aW9ucycgPyAnbGlzdGJveCcgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFJvbGVMaXN0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ29wdGlvbnMnID8gJ2xpc3Rib3gnIDogJ2dyb3VwJztcbiAgfVxuXG4gIHB1YmxpYyBzdHlsZU9iamVjdCgpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAnLS1saXN0Ym94LW1heHdpZHRoJzogdGhpcy5tYXhXaWR0aCxcbiAgICAgICctLWxpc3Rib3gtd2lkdGgnOiB0aGlzLndpZHRoLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xhc3NPYmplY3QoKTogT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ21jLWxpc3Rib3gtLW9wdGlvbnMnOiB0aGlzLnR5cGUgPT09ICdvcHRpb25zJyxcbiAgICAgICdtYy1saXN0Ym94LS1hY3Rpb25zJzogdGhpcy50eXBlID09PSAnYWN0aW9ucycsXG4gICAgICAnbWMtbGlzdGJveC0tb3ZlcmxheSc6IHRoaXMub3ZlcmxheSxcbiAgICAgICdtYy1saXN0Ym94LS1tdWx0aSc6IHRoaXMubXVsdGlwbGUsXG4gICAgICAnaXMtb3Blbic6IHRoaXMuaXNPcGVuLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xhc3NPYmplY3RJbnB1dCgpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAnbWMtY2hlY2tib3hfX2lucHV0JzogdGhpcy5tdWx0aXBsZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldElucHV0VHlwZSgpOiBPYmplY3Qge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gJ2NoZWNrYm94JyA6ICdyYWRpbyc7XG4gIH1cblxuICBwdWJsaWMgc2V0SXRlbUlkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgbGlzdGJveEl0ZW0tJHtpbmRleCArIHRoaXMudXVpZH1gO1xuICB9XG5cbiAgcHVibGljIHNldENsYXNzT2JqZWN0VGlsZShpdGVtOiBMaXN0Ym94SXRlbSk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdpcy1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQgPz8gdGhpcy5kaXNhYmxlZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldElucHV0TmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gIXRoaXMubXVsdGlwbGUgPyBgbGlzdGJveHJhZGlvLSR7dGhpcy51dWlkfWAgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbEV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRhcmdldC5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBpc0F0RW5kID0gc2Nyb2xsVG9wICsgb2Zmc2V0SGVpZ2h0ID49IHNjcm9sbEhlaWdodDtcblxuICAgIGlmIChpc0F0RW5kKSB7XG4gICAgICB0aGlzLnNjcm9sbEVuZC5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtcygpOiBMaXN0Ym94SXRlbVtdW10ge1xuICAgIGNvbnN0IGhhc05lc3RlZEFycmF5ID0gdGhpcy5saXN0Ym94SXRlbXMuZmlsdGVyKEFycmF5LmlzQXJyYXkpLmxlbmd0aDtcblxuICAgIGlmIChoYXNOZXN0ZWRBcnJheSA9PT0gMCkge1xuICAgICAgcmV0dXJuIFt0aGlzLmxpc3Rib3hJdGVtc107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGlzdGJveEl0ZW1zO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICBjb25zdCBtb3pMaXN0Ym94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgbW96TGlzdGJveD8ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobW96TGlzdGJveCk7XG4gICAgfVxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQobnVsbCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWxpc3Rib3hfX2NvbnRhaW5lclwiPlxuICA8ZGl2ICNjb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyZWZlcmVuY2VdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiAjbGlzdGJveD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ29wdGlvbnMnOyBlbHNlIGFjdGlvbnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY2xhc3NPYmplY3QoKVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwic3R5bGVPYmplY3QoKVwiXG4gICAgICAgICAgW2F0dHIucm9sZV09XCJnZXRSb2xlKClcIlxuICAgICAgICAgIChzY3JvbGwpPVwic2Nyb2xsRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJtYy1saXN0Ym94X19saXN0XCIgW2F0dHIucm9sZV09XCJnZXRSb2xlTGlzdCgpXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94X190aWxlXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2V0Q2xhc3NPYmplY3RUaWxlKGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaXN0Ym94SXRlbSBvZiBsaXN0Ym94SXRlbXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bW96LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3Rib3hJdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveF9faWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImxpc3Rib3hJdGVtLmljb25cIlxuICAgICAgICAgICAgICA+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3Rib3hJdGVtLmNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsYWcgZmxhZzp7eyBsaXN0Ym94SXRlbS5jb3VudHJ5Q29kZSB9fVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCItLUNvdW50cnlGbGFnSWNvbi1oZWlnaHQ6IDFyZW1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94X19pbnB1dFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cInNldEl0ZW1JZChpKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RlZEl0ZW1FdmVudChsaXN0Ym94SXRlbSlcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cImdldElucHV0VHlwZSgpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJnZXRJbnB1dE5hbWUoKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2xhc3NPYmplY3RJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwibGlzdGJveEl0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJzZXRJdGVtSWQoaSlcIiBjbGFzcz1cIm1jLWxpc3Rib3hfX2xhYmVsXCI+e3sgbGlzdGJveEl0ZW0ubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNhY3Rpb25zPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgI2xpc3Rib3hcbiAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3gtb3B0aW9uc19fY29udGFpbmVyXCJcbiAgICAgICAgICBbYXR0ci5yb2xlXT1cImdldFJvbGUoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRSb2xlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGlzdCBvZiBnZXRJdGVtcygpOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX2xpc3RcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGlzdGJveEl0ZW0gb2YgbGlzdDsgbGV0IGogPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX3RpbGVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kaXNhYmxlZCc6IGxpc3Rib3hJdGVtLmRpc2FibGVkIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bW96LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3Rib3hJdGVtICYmIGxpc3Rib3hJdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveC1vcHRpb25zX19pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwibGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwibGlzdGJveEl0ZW0uZGFuZ2VyID8geyBmaWxsOiAnI0M2MTExMicgfSA6IHsgZmlsbDogJyM3MTcwNkInIH1cIlxuICAgICAgICAgICAgICA+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveC1vcHRpb25zX19pdGVtXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdGJveEl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRhbmdlcic6IGxpc3Rib3hJdGVtLmRhbmdlciwgJ2lzLWRpc2FibGVkJzogbGlzdGJveEl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkSXRlbUV2ZW50KGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBsaXN0Ym94SXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { animate, group, query, style, transition, trigger } from '@angular/animations';
|
|
2
2
|
export const NotificationAnimation = trigger('fadeIn', [
|
|
3
3
|
transition(':enter', [
|
|
4
|
-
style({ opacity:
|
|
5
|
-
animate('300ms ease-out', style({ transform: 'translateY(0)' })),
|
|
4
|
+
style({ opacity: 0, transform: 'translateY({{enterOffsetY}}%)' }),
|
|
5
|
+
animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),
|
|
6
6
|
]),
|
|
7
7
|
transition(':leave', [
|
|
8
8
|
group([
|
|
@@ -12,10 +12,13 @@ export const NotificationAnimation = trigger('fadeIn', [
|
|
|
12
12
|
query('.mc-notification__message', [animate('200ms', style({ opacity: 0, height: 0 }))], {
|
|
13
13
|
optional: true,
|
|
14
14
|
}),
|
|
15
|
+
query('.mc-notification-closable__close', [animate('0ms', style({ opacity: 0, height: 0 }))], {
|
|
16
|
+
optional: true,
|
|
17
|
+
}),
|
|
15
18
|
query(':self', [
|
|
16
|
-
animate('300ms', style({ opacity: 0, height: 0,
|
|
19
|
+
animate('300ms', style({ opacity: 0, height: 0, transform: 'translateY({{leaveOffsetY}}%)' })),
|
|
17
20
|
]),
|
|
18
21
|
]),
|
|
19
22
|
]),
|
|
20
23
|
]);
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUU7SUFDckQsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0tBQzdFLENBQUM7SUFDRixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLEtBQUssQ0FBQztZQUNKLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JGLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztZQUNGLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZGLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztZQUNGLEtBQUssQ0FDSCxrQ0FBa0MsRUFDbEMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNsRDtnQkFDRSxRQUFRLEVBQUUsSUFBSTthQUNmLENBQ0Y7WUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNiLE9BQU8sQ0FDTCxPQUFPLEVBQ1AsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxDQUFDLENBQzdFO2FBQ0YsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgZ3JvdXAsIHF1ZXJ5LCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uQW5pbWF0aW9uID0gdHJpZ2dlcignZmFkZUluJywgW1xuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW50ZXJPZmZzZXRZfX0lKScgfSksXG4gICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKSxcbiAgXSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICBncm91cChbXG4gICAgICBxdWVyeSgnLm1jLW5vdGlmaWNhdGlvbl9fdGl0bGUnLCBbYW5pbWF0ZSgnMjAwbXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIGhlaWdodDogMCB9KSldLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgfSksXG4gICAgICBxdWVyeSgnLm1jLW5vdGlmaWNhdGlvbl9fbWVzc2FnZScsIFthbmltYXRlKCcyMDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pKV0sIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICB9KSxcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnLm1jLW5vdGlmaWNhdGlvbi1jbG9zYWJsZV9fY2xvc2UnLFxuICAgICAgICBbYW5pbWF0ZSgnMG1zJywgc3R5bGUoeyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAgfSkpXSxcbiAgICAgICAge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgcXVlcnkoJzpzZWxmJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICczMDBtcycsXG4gICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tsZWF2ZU9mZnNldFl9fSUpJyB9KVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgXSksXG4gIF0pLFxuXSk7XG4iXX0=
|