@koobiq/components 17.0.2 → 17.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/code-block/_code-block-theme.scss +7 -16
- package/code-block/actionbar.component.d.ts +1 -2
- package/code-block/actionbar.component.scss +24 -13
- package/code-block/code-block.component.d.ts +16 -4
- package/code-block/code-block.scss +13 -6
- package/esm2022/code-block/actionbar.component.mjs +4 -7
- package/esm2022/code-block/code-block.component.mjs +69 -20
- package/esm2022/core/version.mjs +2 -2
- package/fesm2022/koobiq-components-code-block.mjs +71 -25
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +1 -1
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/schematics/ng-add/index.js +2 -2
|
@@ -2,8 +2,8 @@ import { FocusMonitor } from '@angular/cdk/a11y';
|
|
|
2
2
|
import { Clipboard } from '@angular/cdk/clipboard';
|
|
3
3
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, InjectionToken, Input, Optional, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
4
4
|
import { KbqTabGroup } from '@koobiq/components/tabs';
|
|
5
|
-
import { Subject, Subscription, pairwise } from 'rxjs';
|
|
6
|
-
import { debounceTime, filter, startWith, switchMap } from 'rxjs/operators';
|
|
5
|
+
import { Subject, Subscription, fromEvent, merge, pairwise } from 'rxjs';
|
|
6
|
+
import { debounceTime, filter, map, startWith, switchMap } from 'rxjs/operators';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/cdk/clipboard";
|
|
9
9
|
import * as i2 from "@angular/cdk/a11y";
|
|
@@ -50,6 +50,15 @@ const hasScroll = (element) => {
|
|
|
50
50
|
return scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
51
51
|
};
|
|
52
52
|
export class KbqCodeBlockComponent {
|
|
53
|
+
get codeFiles() {
|
|
54
|
+
return this._codeFiles;
|
|
55
|
+
}
|
|
56
|
+
set codeFiles(files) {
|
|
57
|
+
this._codeFiles = files;
|
|
58
|
+
this.hideActionBarIfNoHeader();
|
|
59
|
+
this.subscribeToHover();
|
|
60
|
+
}
|
|
61
|
+
// TODO: replace with property
|
|
53
62
|
get noHeader() {
|
|
54
63
|
return this.codeFiles.length === 1 && !this.codeFiles[0].filename;
|
|
55
64
|
}
|
|
@@ -71,12 +80,13 @@ export class KbqCodeBlockComponent {
|
|
|
71
80
|
this.viewAll = false;
|
|
72
81
|
this.multiLine = false;
|
|
73
82
|
this.isTopOverflow = false;
|
|
74
|
-
this.
|
|
83
|
+
this.hasKeyboardFocus = false;
|
|
75
84
|
this.resizeStream = new Subject();
|
|
76
85
|
this.currentCodeBlock = new Subject();
|
|
77
86
|
this.resizeDebounceInterval = 100;
|
|
78
87
|
this.resizeSubscription = Subscription.EMPTY;
|
|
79
88
|
this.codeBlockSubscription = Subscription.EMPTY;
|
|
89
|
+
this.hoverSubscription = null;
|
|
80
90
|
this.updateHeader = () => {
|
|
81
91
|
const clientWidth = this.elementRef.nativeElement.querySelector('kbq-actionbar-block').clientWidth;
|
|
82
92
|
this.renderer.setStyle(this.tabGroup.tabHeader.elementRef.nativeElement, 'padding-right', `${actionBarBlockLeftMargin + clientWidth}px`);
|
|
@@ -99,14 +109,14 @@ export class KbqCodeBlockComponent {
|
|
|
99
109
|
if (prev) {
|
|
100
110
|
this.focusMonitor.stopMonitoring(prev);
|
|
101
111
|
}
|
|
102
|
-
return this.focusMonitor
|
|
103
|
-
|
|
104
|
-
.pipe(filter((origin) => origin === 'keyboard'));
|
|
105
|
-
}))
|
|
112
|
+
return this.focusMonitor.monitor(current);
|
|
113
|
+
}), filter((origin) => origin === 'keyboard'))
|
|
106
114
|
.subscribe(() => {
|
|
107
|
-
this.
|
|
115
|
+
this.hasKeyboardFocus = true;
|
|
108
116
|
this.changeDetectorRef.markForCheck();
|
|
109
117
|
});
|
|
118
|
+
this.hideActionBarIfNoHeader();
|
|
119
|
+
this.subscribeToHover();
|
|
110
120
|
this.currentCodeBlock.next(this.elementRef.nativeElement.querySelector('code'));
|
|
111
121
|
}
|
|
112
122
|
ngOnDestroy() {
|
|
@@ -157,8 +167,11 @@ export class KbqCodeBlockComponent {
|
|
|
157
167
|
}
|
|
158
168
|
onShowMoreClick(currentCodeContentElement) {
|
|
159
169
|
this.toggleViewAll();
|
|
160
|
-
|
|
161
|
-
|
|
170
|
+
if (this.viewAll) {
|
|
171
|
+
this.showActionBarIfNecessary();
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
// Should explicitly scroll to top so content will be cropped from the bottom
|
|
162
175
|
currentCodeContentElement?.scroll({ top: 0, behavior: 'instant' });
|
|
163
176
|
}
|
|
164
177
|
}
|
|
@@ -168,11 +181,6 @@ export class KbqCodeBlockComponent {
|
|
|
168
181
|
return ((hasScroll(currentCodeContent) || hasScroll(currentCodeBlock)) &&
|
|
169
182
|
((!!this.maxHeight && this.viewAll) || !this.maxHeight));
|
|
170
183
|
}
|
|
171
|
-
getFullFileName(codeFile) {
|
|
172
|
-
const fileName = codeFile.filename || 'code';
|
|
173
|
-
const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;
|
|
174
|
-
return `${fileName}.${extension}`;
|
|
175
|
-
}
|
|
176
184
|
onEnter(currentCodeBlock) {
|
|
177
185
|
// defer execution after toggle view mode
|
|
178
186
|
setTimeout(() => {
|
|
@@ -181,8 +189,49 @@ export class KbqCodeBlockComponent {
|
|
|
181
189
|
}
|
|
182
190
|
}, 0);
|
|
183
191
|
}
|
|
192
|
+
/** @docs-private */
|
|
193
|
+
showActionBarIfNecessary() {
|
|
194
|
+
if (!this.actionbarHidden)
|
|
195
|
+
return;
|
|
196
|
+
this.actionbarHidden = false;
|
|
197
|
+
}
|
|
198
|
+
/** @docs-private */
|
|
199
|
+
hideActionBarIfNoHeader(event) {
|
|
200
|
+
if (!this.noHeader)
|
|
201
|
+
return;
|
|
202
|
+
if (event) {
|
|
203
|
+
this.actionbarHidden = !this.elementRef.nativeElement.contains(event.relatedTarget);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
this.actionbarHidden = this.noHeader;
|
|
207
|
+
}
|
|
208
|
+
getFullFileName(codeFile) {
|
|
209
|
+
const fileName = codeFile.filename || 'code';
|
|
210
|
+
const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;
|
|
211
|
+
return `${fileName}.${extension}`;
|
|
212
|
+
}
|
|
213
|
+
subscribeToHover() {
|
|
214
|
+
if (!this.noHeader) {
|
|
215
|
+
this.hoverSubscription?.unsubscribe();
|
|
216
|
+
this.hoverSubscription = null;
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
if (this.hoverSubscription)
|
|
220
|
+
return;
|
|
221
|
+
this.hoverSubscription = merge(fromEvent(this.elementRef.nativeElement, 'focusin'), fromEvent(this.elementRef.nativeElement, 'mouseenter')).subscribe(() => {
|
|
222
|
+
this.showActionBarIfNecessary();
|
|
223
|
+
this.changeDetectorRef.markForCheck();
|
|
224
|
+
});
|
|
225
|
+
const blur = merge(fromEvent(this.elementRef.nativeElement, 'focusout'), fromEvent(this.elementRef.nativeElement, 'mouseleave').pipe(map(() => null))).subscribe((event) => {
|
|
226
|
+
if (!this.hasKeyboardFocus) {
|
|
227
|
+
this.hideActionBarIfNoHeader(event);
|
|
228
|
+
}
|
|
229
|
+
this.changeDetectorRef.markForCheck();
|
|
230
|
+
});
|
|
231
|
+
this.hoverSubscription.add(blur);
|
|
232
|
+
}
|
|
184
233
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Clipboard }, { token: i0.Renderer2 }, { token: i2.FocusMonitor }, { token: KBQ_CODE_BLOCK_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
185
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers",
|
|
234
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", filled: "filled", maxHeight: "maxHeight", softWrap: "softWrap", canLoad: "canLoad", codeFiles: "codeFiles" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_filled": "filled", "class.kbq-code-block_outline": "!filled", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader", "class.kbq-code-block_header-with-shadow": "isTopOverflow" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group\n [class.kbq-focused]=\"hasKeyboardFocus\"\n (selectedTabChange)=\"onSelectTab($event)\"\n>\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\"\n >\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre\n #codeContent\n class=\"kbq-code-block__code kbq-scrollbar\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n [style.max-height]=\"getMaxHeight()\"\n (scroll)=\"checkOverflow(codeContent)\"\n ><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n [canLoad]=\"canLoad\"\n [style.opacity]=\"actionbarHidden ? 0 : null\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\" /><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n [tabIndex]=\"canShowFocus(codeContent) ? 0 : -1\"\n (highlighted)=\"onHighlighted()\"\n (blur)=\"hasKeyboardFocus = false\">\n </code></pre>\n\n <div\n *ngIf=\"maxHeight\"\n class=\"kbq-code-block__show-more\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n >\n <span class=\"bg-wrapper\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onShowMoreClick(codeContent)\"\n (keydown.enter)=\"onEnter(codeContent)\"\n >\n <i\n *ngIf=\"!viewAll\"\n kbq-icon=\"mc-angle-down-L_16\"\n ></i>\n <i\n *ngIf=\"viewAll\"\n kbq-icon=\"mc-angle-up-L_16\"\n ></i>\n {{ viewAll ? config.viewLessText : config.viewAllText }}\n </button>\n </span>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-radius:var(--kbq-code-block-size-container-border-radius, 12px);border-width:0}.kbq-code-block .kbq-tab-header{padding:calc(var(--kbq-code-block-size-header-padding-vertical, 8px) - var(--kbq-code-block-size-container-border-width, 1px)) calc(var(--kbq-code-block-size-header-padding-right, 8px) + 152px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px);border-width:var(--kbq-code-block-size-container-border-width, 1px) var(--kbq-code-block-size-container-border-width, 1px) 0 var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px) 0 0}.kbq-code-block:has(.kbq-code-block__show-more) .kbq-code-block__code>code{padding-bottom:var(--kbq-size-3xl, 32px)!important;overflow-x:scroll}.kbq-code-block:has(.kbq-code-block__show-more):has(.kbq-code-block__show-more_collapsed) .kbq-code-block__code>code{overflow-x:hidden}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-code-block__code>code:focus-visible{outline:none}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block:not(.kbq-code-block_no-header) .kbq-tab-body__wrapper{border-top-width:0;overflow:visible}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-tab-body__wrapper{border-width:var(--kbq-code-block-size-container-border-width, 1px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block:not(:has(.kbq-code-block__show-more)) .kbq-code-block__code{overflow-y:auto}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:0 0 var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:auto}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;width:100%;position:absolute;bottom:0;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}.kbq-code-block__show-more .bg-wrapper{border-radius:var(--kbq-button-size-border-radius, 8px)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i4.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i6.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i7.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "activeTab", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "activeTabChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i7.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i7.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: i8.KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "selectedTabIndex", "multiLine", "softWrap", "canLoad"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
186
235
|
}
|
|
187
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, decorators: [{
|
|
188
237
|
type: Component,
|
|
@@ -195,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
195
244
|
'[class.kbq-code-block_no-header]': 'noHeader',
|
|
196
245
|
'[class.kbq-code-block_header-with-shadow]': 'isTopOverflow',
|
|
197
246
|
'(window:resize)': 'resizeStream.next($event)'
|
|
198
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group\n [class.kbq-focused]=\"
|
|
247
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group\n [class.kbq-focused]=\"hasKeyboardFocus\"\n (selectedTabChange)=\"onSelectTab($event)\"\n>\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\"\n >\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre\n #codeContent\n class=\"kbq-code-block__code kbq-scrollbar\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n [style.max-height]=\"getMaxHeight()\"\n (scroll)=\"checkOverflow(codeContent)\"\n ><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n [canLoad]=\"canLoad\"\n [style.opacity]=\"actionbarHidden ? 0 : null\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\" /><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n [tabIndex]=\"canShowFocus(codeContent) ? 0 : -1\"\n (highlighted)=\"onHighlighted()\"\n (blur)=\"hasKeyboardFocus = false\">\n </code></pre>\n\n <div\n *ngIf=\"maxHeight\"\n class=\"kbq-code-block__show-more\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n >\n <span class=\"bg-wrapper\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onShowMoreClick(codeContent)\"\n (keydown.enter)=\"onEnter(codeContent)\"\n >\n <i\n *ngIf=\"!viewAll\"\n kbq-icon=\"mc-angle-down-L_16\"\n ></i>\n <i\n *ngIf=\"viewAll\"\n kbq-icon=\"mc-angle-up-L_16\"\n ></i>\n {{ viewAll ? config.viewLessText : config.viewAllText }}\n </button>\n </span>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-radius:var(--kbq-code-block-size-container-border-radius, 12px);border-width:0}.kbq-code-block .kbq-tab-header{padding:calc(var(--kbq-code-block-size-header-padding-vertical, 8px) - var(--kbq-code-block-size-container-border-width, 1px)) calc(var(--kbq-code-block-size-header-padding-right, 8px) + 152px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px);border-width:var(--kbq-code-block-size-container-border-width, 1px) var(--kbq-code-block-size-container-border-width, 1px) 0 var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px) 0 0}.kbq-code-block:has(.kbq-code-block__show-more) .kbq-code-block__code>code{padding-bottom:var(--kbq-size-3xl, 32px)!important;overflow-x:scroll}.kbq-code-block:has(.kbq-code-block__show-more):has(.kbq-code-block__show-more_collapsed) .kbq-code-block__code>code{overflow-x:hidden}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-code-block__code>code:focus-visible{outline:none}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block:not(.kbq-code-block_no-header) .kbq-tab-body__wrapper{border-top-width:0;overflow:visible}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-tab-body__wrapper{border-width:var(--kbq-code-block-size-container-border-width, 1px);border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block:not(:has(.kbq-code-block__show-more)) .kbq-code-block__code{overflow-y:auto}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:0 0 var(--kbq-code-block-size-container-border-radius, 12px) var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:auto}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;width:100%;position:absolute;bottom:0;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}.kbq-code-block__show-more .bg-wrapper{border-radius:var(--kbq-button-size-border-radius, 8px)}\n"] }]
|
|
199
248
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Clipboard }, { type: i0.Renderer2 }, { type: i2.FocusMonitor }, { type: undefined, decorators: [{
|
|
200
249
|
type: Optional
|
|
201
250
|
}, {
|
|
@@ -206,8 +255,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
206
255
|
args: [KbqTabGroup]
|
|
207
256
|
}], lineNumbers: [{
|
|
208
257
|
type: Input
|
|
209
|
-
}], codeFiles: [{
|
|
210
|
-
type: Input
|
|
211
258
|
}], filled: [{
|
|
212
259
|
type: Input
|
|
213
260
|
}], maxHeight: [{
|
|
@@ -216,5 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
|
216
263
|
type: Input
|
|
217
264
|
}], canLoad: [{
|
|
218
265
|
type: Input
|
|
266
|
+
}], codeFiles: [{
|
|
267
|
+
type: Input
|
|
219
268
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUIsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQUc1RSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLElBQUk7SUFDVixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsQ0FBQyxFQUFFLEdBQUc7SUFDTixLQUFLLEVBQUUsS0FBSztJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsTUFBTSxFQUFFLElBQUk7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQU0sMkJBQTJCLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNoRCxpQkFBaUIsRUFBRSw0QkFBNEI7SUFDL0Msa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELGVBQWUsRUFBRSxTQUFTO0lBQzFCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLFlBQVksRUFBRSxVQUFVO0lBQ3hCLHlCQUF5QixFQUFFLDRCQUE0QjtDQUMxRCxDQUFDO0FBRUYsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFFcEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDdkMsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN6RSxPQUFPLFlBQVksR0FBRyxZQUFZLElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUNwRSxDQUFDLENBQUM7QUFvQkYsTUFBTSxPQUFPLHFCQUFxQjtJQVU5QixJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBZ0JELFlBQ1ksVUFBc0IsRUFDdEIsaUJBQW9DLEVBQ3BDLFNBQW9CLEVBQ3BCLFFBQW1CLEVBQ25CLFlBQTBCLEVBQ3VCLE1BQWlDO1FBTGxGLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDdUIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFuQ3JGLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBSW5CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFZLElBQUksQ0FBQztRQVVqQyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFTLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUV0QywyQkFBc0IsR0FBVyxHQUFHLENBQUM7UUFDOUMsdUJBQWtCLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUN4QywwQkFBcUIsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBNkNuRCxpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFFM0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQ2hELGVBQWUsRUFDZixHQUFHLHdCQUF3QixHQUFHLFdBQVcsSUFBSSxDQUNoRCxDQUFDO1lBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQTBFTSxvQkFBZSxHQUFHLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUUvRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQTdIRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxvQ0FBb0MsQ0FBQztRQUU3RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVk7YUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlO1FBQ1gsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQzdDLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsUUFBUSxFQUFFLEVBQ1YsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZO2lCQUNuQixPQUFPLENBQUMsT0FBUSxDQUFDO2lCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQWNELGNBQWM7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYTtRQUNULFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF5QjtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxhQUFhLENBQUMseUJBQXNDO1FBQ2hELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxlQUFlLENBQUMseUJBQXlDO1FBQ3JELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQiw2RUFBNkU7UUFDN0UsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQix5QkFBeUIsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDTCxDQUFDO0lBRUQscURBQXFEO0lBQ3JELFlBQVksQ0FBQyxrQkFBa0M7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFFLENBQUM7UUFFbkUsT0FBTyxDQUNILENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFVTyxlQUFlLENBQUMsUUFBcUI7UUFDekMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixDQUFDO1FBRS9FLE9BQU8sR0FBRyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBZ0M7UUFDcEMseUNBQXlDO1FBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDcEYsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7aUlBckxRLHFCQUFxQiwySkFzQ04sNEJBQTRCO3FIQXRDM0MscUJBQXFCLHVwQkFDbkIsV0FBVyw0RUNsRjFCLDBtRkFtRUE7OzJGRGNhLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0ksZ0JBQWdCLFlBQ2hCLGNBQWMsUUFHbEI7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsK0JBQStCLEVBQUUsUUFBUTt3QkFDekMsZ0NBQWdDLEVBQUUsU0FBUzt3QkFDM0MsMENBQTBDLEVBQUUsY0FBYzt3QkFDMUQsb0NBQW9DLEVBQUUsWUFBWTt3QkFDbEQsa0NBQWtDLEVBQUUsVUFBVTt3QkFDOUMsMkNBQTJDLEVBQUUsZUFBZTt3QkFDNUQsaUJBQWlCLEVBQUUsMkJBQTJCO3FCQUNqRCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBd0NoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDRCQUE0Qjt5Q0FyQzVCLFFBQVE7c0JBQS9CLFNBQVM7dUJBQUMsV0FBVztnQkFFYixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxVGFiQ2hhbmdlRXZlbnQsIEticVRhYkdyb3VwIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBwYWlyd2lzZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxQ29kZUJsb2NrQ29uZmlndXJhdGlvbiwgS2JxQ29kZUZpbGUgfSBmcm9tICcuL2NvZGUtYmxvY2sudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQ09QSUVEX01FU1NBR0VfVE9PTFRJUF9USU1FT1VUID0gMTAwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhURU5TSU9OID0gJ3R4dCc7XG5leHBvcnQgY29uc3QgTEFOR1VBR0VTX0VYVEVOU0lPTlMgPSB7XG4gICAgaHRtbDogJ2h0bWwnLFxuICAgIGNzczogJ2NzcycsXG4gICAgcGhwOiAncGhwJyxcbiAgICBqYXZhOiAnamF2YScsXG4gICAgYmFzaDogJ3NoJyxcbiAgICBqYXZhc2NyaXB0OiAnanMnLFxuICAgIHR5cGVzY3JpcHQ6ICd0cycsXG4gICAgcHl0aG9uOiAncHknLFxuICAgIHJ1Ynk6ICdyYicsXG4gICAgYzogJ2MnLFxuICAgICdjKysnOiAnY3BwJyxcbiAgICAnYyMnOiAnY3MnLFxuICAgIGNzaGFycDogJ2NzJyxcbiAgICBsdWE6ICdsdWEnLFxuICAgIHhtbDogJ3htbCcsXG4gICAganNvbjogJ2pzb24nXG59O1xuXG5leHBvcnQgY29uc3QgS0JRX0NPREVfQkxPQ0tfQ09ORklHVVJBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdLYnFDb2RlQmxvY2tDb25maWd1cmF0aW9uJyk7XG5cbmV4cG9ydCBjb25zdCBLQlFfQ09ERV9CTE9DS19ERUZBVUxUX0NPTkZJR1VSQVRJT04gPSB7XG4gICAgc29mdFdyYXBPblRvb2x0aXA6ICfQktC60LvRjtGH0LjRgtGMINC/0LXRgNC10L3QvtGBINC/0L4g0YHQu9C+0LLQsNC8JyxcbiAgICBzb2Z0V3JhcE9mZlRvb2x0aXA6ICfQktGL0LrQu9GO0YfQuNGC0Ywg0L/QtdGA0LXQvdC+0YEg0L/QviDRgdC70L7QstCw0LwnLFxuICAgIGRvd25sb2FkVG9vbHRpcDogJ9Ch0LrQsNGH0LDRgtGMJyxcbiAgICBjb3BpZWRUb29sdGlwOiAn4pyTINCh0LrQvtC/0LjRgNC+0LLQsNC90L4nLFxuICAgIGNvcHlUb29sdGlwOiAn0KHQutC+0L/QuNGA0L7QstCw0YLRjCcsXG4gICAgdmlld0FsbFRleHQ6ICfQn9C+0LrQsNC30LDRgtGMINCy0YHQtScsXG4gICAgdmlld0xlc3NUZXh0OiAn0KHQstC10YDQvdGD0YLRjCcsXG4gICAgb3BlbkV4dGVybmFsU3lzdGVtVG9vbHRpcDogJ9Ce0YLQutGA0YvRgtGMINCy0L4g0LLQvdC10YjQvdC10Lkg0YHQuNGB0YLQtdC80LUnXG59O1xuXG5jb25zdCBhY3Rpb25CYXJCbG9ja0xlZnRNYXJnaW4gPSAyNDtcblxuY29uc3QgaGFzU2Nyb2xsID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgeyBzY3JvbGxIZWlnaHQsIHNjcm9sbFdpZHRoLCBjbGllbnRIZWlnaHQsIGNsaWVudFdpZHRoIH0gPSBlbGVtZW50O1xuICAgIHJldHVybiBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHQgfHwgc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLWNvZGUtYmxvY2snLFxuICAgIGV4cG9ydEFzOiAna2JxQ29kZUJsb2NrJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29kZS1ibG9jay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29kZS1ibG9jay5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb2RlLWJsb2NrJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19maWxsZWRdJzogJ2ZpbGxlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfb3V0bGluZV0nOiAnIWZpbGxlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfaGlkZS1saW5lLW51bWJlcnNdJzogJyFsaW5lTnVtYmVycycsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfc2luZ2xlLWZpbGVdJzogJ3NpbmdsZUZpbGUnLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX25vLWhlYWRlcl0nOiAnbm9IZWFkZXInLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX2hlYWRlci13aXRoLXNoYWRvd10nOiAnaXNUb3BPdmVyZmxvdycsXG4gICAgICAgICcod2luZG93OnJlc2l6ZSknOiAncmVzaXplU3RyZWFtLm5leHQoJGV2ZW50KSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29kZUJsb2NrQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKEticVRhYkdyb3VwKSB0YWJHcm91cDogS2JxVGFiR3JvdXA7XG5cbiAgICBASW5wdXQoKSBsaW5lTnVtYmVycyA9IHRydWU7XG4gICAgQElucHV0KCkgY29kZUZpbGVzOiBLYnFDb2RlRmlsZVtdO1xuICAgIEBJbnB1dCgpIGZpbGxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBzb2Z0V3JhcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNhbkxvYWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgZ2V0IG5vSGVhZGVyKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVGaWxlcy5sZW5ndGggPT09IDEgJiYgIXRoaXMuY29kZUZpbGVzWzBdLmZpbGVuYW1lO1xuICAgIH1cblxuICAgIGdldCBzaW5nbGVGaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlRmlsZXMubGVuZ3RoID09PSAxO1xuICAgIH1cblxuICAgIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuICAgIGNvcGllZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHZpZXdBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBtdWx0aUxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpc1RvcE92ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG4gICAgaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IHJlc2l6ZVN0cmVhbSA9IG5ldyBTdWJqZWN0PEV2ZW50PigpO1xuICAgIHJlYWRvbmx5IGN1cnJlbnRDb2RlQmxvY2sgPSBuZXcgU3ViamVjdDxIVE1MRWxlbWVudD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplRGVib3VuY2VJbnRlcnZhbDogbnVtYmVyID0gMTAwO1xuICAgIHByaXZhdGUgcmVzaXplU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICAgIHByaXZhdGUgY29kZUJsb2NrU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY2xpcGJvYXJkOiBDbGlwYm9hcmQsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChLQlFfQ09ERV9CTE9DS19DT05GSUdVUkFUSU9OKSBwdWJsaWMgY29uZmlnOiBLYnFDb2RlQmxvY2tDb25maWd1cmF0aW9uXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnIHx8IEtCUV9DT0RFX0JMT0NLX0RFRkFVTFRfQ09ORklHVVJBVElPTjtcblxuICAgICAgICB0aGlzLnJlc2l6ZVN1YnNjcmlwdGlvbiA9IHRoaXMucmVzaXplU3RyZWFtXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5yZXNpemVEZWJvdW5jZUludGVydmFsKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy51cGRhdGVIZWFkZXIpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gcmVuZGVyIGZvY3VzIGJvcmRlciBpZiBvcmlnaW4gaXMga2V5Ym9hcmRcbiAgICAgICAgdGhpcy5jb2RlQmxvY2tTdWJzY3JpcHRpb24gPSB0aGlzLmN1cnJlbnRDb2RlQmxvY2tcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoW3ByZXYsIGN1cnJlbnRdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyhwcmV2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvY3VzTW9uaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1vbml0b3IoY3VycmVudCEpXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IG9yaWdpbiA9PT0gJ2tleWJvYXJkJykpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY3VycmVudENvZGVCbG9jay5uZXh0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuY29kZUJsb2NrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlSGVhZGVyID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBjbGllbnRXaWR0aDogbnVtYmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcigna2JxLWFjdGlvbmJhci1ibG9jaycpLmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLnRhYkdyb3VwLnRhYkhlYWRlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAncGFkZGluZy1yaWdodCcsXG4gICAgICAgICAgICBgJHthY3Rpb25CYXJCbG9ja0xlZnRNYXJnaW4gKyBjbGllbnRXaWR0aH1weGBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG5cbiAgICB0b2dnbGVTb2Z0V3JhcCgpIHtcbiAgICAgICAgdGhpcy5zb2Z0V3JhcCA9ICF0aGlzLnNvZnRXcmFwO1xuICAgIH1cblxuICAgIHRvZ2dsZVZpZXdBbGwoKSB7XG4gICAgICAgIHRoaXMudmlld0FsbCA9ICF0aGlzLnZpZXdBbGw7XG4gICAgfVxuXG4gICAgZG93bmxvYWRDb2RlKCkge1xuICAgICAgICBjb25zdCBjb2RlRmlsZSA9IHRoaXMuY29kZUZpbGVzW3RoaXMuc2VsZWN0ZWRUYWJJbmRleF07XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY29kZUZpbGUuY29udGVudF0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGAke3RoaXMuZ2V0RnVsbEZpbGVOYW1lKGNvZGVGaWxlKX1gKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuICAgIH1cblxuICAgIGNvcHlDb2RlKCkge1xuICAgICAgICB0aGlzLmNsaXBib2FyZC5jb3B5KHRoaXMuY29kZUZpbGVzW3RoaXMuc2VsZWN0ZWRUYWJJbmRleF0uY29udGVudCk7XG4gICAgICAgIHRoaXMuY29waWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvcGVuRXh0ZXJuYWxTeXN0ZW0oKSB7XG4gICAgICAgIGNvbnN0IGV4dGVybmFsTGluayA9IHRoaXMuY29kZUZpbGVzW3RoaXMuc2VsZWN0ZWRUYWJJbmRleF0ubGluaztcbiAgICAgICAgd2luZG93Lm9wZW4oZXh0ZXJuYWxMaW5rLCAnX2JsYW5rJyk7XG4gICAgfVxuXG4gICAgb25IaWdobGlnaHRlZCgpIHtcbiAgICAgICAgc2V0VGltZW91dCh0aGlzLnVwZGF0ZU11bHRpbGluZSwgMSk7XG4gICAgfVxuXG4gICAgZ2V0TWF4SGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heEhlaWdodCA+IDAgJiYgIXRoaXMudmlld0FsbCA/IGAke3RoaXMubWF4SGVpZ2h0fXB4YCA6ICcnO1xuICAgIH1cblxuICAgIG9uU2VsZWN0VGFiKCRldmVudDogS2JxVGFiQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4ID0gJGV2ZW50LmluZGV4O1xuICAgICAgICB0aGlzLnVwZGF0ZU11bHRpbGluZSgpO1xuICAgICAgICB0aGlzLmlzVG9wT3ZlcmZsb3cgPSBmYWxzZTtcblxuICAgICAgICBzZXRUaW1lb3V0KHRoaXMudXBkYXRlSGVhZGVyKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmN1cnJlbnRDb2RlQmxvY2submV4dCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdjb2RlJykpKTtcbiAgICB9XG5cbiAgICBjaGVja092ZXJmbG93KGN1cnJlbnRDb2RlQ29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm5vSGVhZGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1RvcE92ZXJmbG93ID0gY3VycmVudENvZGVDb250ZW50RWxlbWVudC5zY3JvbGxUb3AgPiAwO1xuICAgIH1cblxuICAgIG9uU2hvd01vcmVDbGljayhjdXJyZW50Q29kZUNvbnRlbnRFbGVtZW50OiBIVE1MUHJlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnRvZ2dsZVZpZXdBbGwoKTtcblxuICAgICAgICAvLyBTaG91bGQgZXhwbGljaXRseSBzY3JvbGwgdG8gdG9wIHNvIGNvbnRlbnQgd2lsbCBiZSBjcm9wcGVkIGZyb20gdGhlIGJvdHRvbVxuICAgICAgICBpZiAoIXRoaXMudmlld0FsbCkge1xuICAgICAgICAgICAgY3VycmVudENvZGVDb250ZW50RWxlbWVudD8uc2Nyb2xsKHsgdG9wOiAwLCBiZWhhdmlvcjogJ2luc3RhbnQnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIHByb3BlcnR5IHRvIHJlZHVjZSBjYWxjdWxhdGlvbnNcbiAgICBjYW5TaG93Rm9jdXMoY3VycmVudENvZGVDb250ZW50OiBIVE1MUHJlRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50Q29kZUJsb2NrID0gY3VycmVudENvZGVDb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSE7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChoYXNTY3JvbGwoY3VycmVudENvZGVDb250ZW50KSB8fCBoYXNTY3JvbGwoY3VycmVudENvZGVCbG9jaykpICYmXG4gICAgICAgICAgICAoKCEhdGhpcy5tYXhIZWlnaHQgJiYgdGhpcy52aWV3QWxsKSB8fCAhdGhpcy5tYXhIZWlnaHQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVNdWx0aWxpbmUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubXVsdGlMaW5lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmhsanMtbG4tbnVtYmVycycpLmxlbmd0aCA+IDE7XG5cbiAgICAgICAgdGhpcy51cGRhdGVIZWFkZXIoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGdldEZ1bGxGaWxlTmFtZShjb2RlRmlsZTogS2JxQ29kZUZpbGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGNvZGVGaWxlLmZpbGVuYW1lIHx8ICdjb2RlJztcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gTEFOR1VBR0VTX0VYVEVOU0lPTlNbY29kZUZpbGUubGFuZ3VhZ2VdIHx8IERFRkFVTFRfRVhURU5TSU9OO1xuXG4gICAgICAgIHJldHVybiBgJHtmaWxlTmFtZX0uJHtleHRlbnNpb259YDtcbiAgICB9XG5cbiAgICBvbkVudGVyKGN1cnJlbnRDb2RlQmxvY2s6IEhUTUxQcmVFbGVtZW50KSB7XG4gICAgICAgIC8vIGRlZmVyIGV4ZWN1dGlvbiBhZnRlciB0b2dnbGUgdmlldyBtb2RlXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2FuU2hvd0ZvY3VzKGN1cnJlbnRDb2RlQmxvY2spKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEoY3VycmVudENvZGVCbG9jay5xdWVyeVNlbGVjdG9yKCdjb2RlJykhLCAna2V5Ym9hcmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxufVxuIiwiPGticS10YWItZ3JvdXBcbiAgICBbY2xhc3Mua2JxLWZvY3VzZWRdPVwiaGFzRm9jdXNcIlxuICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblNlbGVjdFRhYigkZXZlbnQpXCJcbj5cbiAgICA8a2JxLXRhYlxuICAgICAgICAqbmdGb3I9XCJsZXQgY29kZUZpbGUgb2YgY29kZUZpbGVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInNpbmdsZUZpbGVcIlxuICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGticS10YWItbGFiZWw+e3sgY29kZUZpbGUuZmlsZW5hbWUgfX08L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxwcmVcbiAgICAgICAgICAgICNjb2RlQ29udGVudFxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtY29kZS1ibG9ja19fY29kZSBrYnEtc2Nyb2xsYmFyXCJcbiAgICAgICAgICAgIFtjbGFzcy5rYnEtY29kZS1ibG9ja19fY29kZV9zb2Z0LXdyYXBdPVwic29mdFdyYXBcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19jb2RlX3ZpZXctYWxsXT1cInZpZXdBbGxcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwiZ2V0TWF4SGVpZ2h0KClcIlxuICAgICAgICAgICAgKHNjcm9sbCk9XCJjaGVja092ZXJmbG93KGNvZGVDb250ZW50KVwiXG4gICAgICAgID48a2JxLWFjdGlvbmJhci1ibG9ja1xuICAgICAgICAgICAgW2NsYXNzLmticS1hY3Rpb25iYXItYmxvY2tfZmxvYXRpbmddPVwibm9IZWFkZXJcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2NvZGVGaWxlc109XCJjb2RlRmlsZXNcIlxuICAgICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwic2VsZWN0ZWRUYWJJbmRleFwiXG4gICAgICAgICAgICBbbGVzc0NvbnRyYXN0XT1cImZpbGxlZFwiXG4gICAgICAgICAgICBbbXVsdGlMaW5lXT1cIm11bHRpTGluZVwiXG4gICAgICAgICAgICBbc29mdFdyYXBdPVwic29mdFdyYXBcIlxuICAgICAgICAgICAgW2NhbkxvYWRdPVwiY2FuTG9hZFwiXG4gICAgICAgICAgICAodG9nZ2xlU29mdFdyYXApPVwidG9nZ2xlU29mdFdyYXAoKVwiXG4gICAgICAgICAgICAoZG93bmxvYWRDb2RlKT1cImRvd25sb2FkQ29kZSgpXCJcbiAgICAgICAgICAgIChjb3B5Q29kZSk9XCJjb3B5Q29kZSgpXCJcbiAgICAgICAgICAgIChvcGVuRXh0ZXJuYWxTeXN0ZW0pPVwib3BlbkV4dGVybmFsU3lzdGVtKClcIiAvPjxjb2RlIGNsYXNzPVwiaGxqc1wiXG4gICAgICAgICAgICAgICBbaWRdPVwiY29kZUZpbGUuZmlsZW5hbWUgKyAnXycgKyBpXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5obGpzLWxpbmUtbnVtYmVyc109XCJsaW5lTnVtYmVyc1wiXG4gICAgICAgICAgICAgICBbaGlnaGxpZ2h0XT1cImNvZGVGaWxlc1tpXS5jb250ZW50XCJcbiAgICAgICAgICAgICAgIFtsaW5lTnVtYmVyc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJjYW5TaG93Rm9jdXMoY29kZUNvbnRlbnQpID8gMCA6IC0xXCJcbiAgICAgICAgICAgICAgIChoaWdobGlnaHRlZCk9XCJvbkhpZ2hsaWdodGVkKClcIlxuICAgICAgICAgICAgICAgKGJsdXIpPVwiaGFzRm9jdXMgPSBmYWxzZVwiPlxuICAgICAgICAgICAgPC9jb2RlPjwvcHJlPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwibWF4SGVpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwia2JxLWNvZGUtYmxvY2tfX3Nob3ctbW9yZVwiXG4gICAgICAgICAgICBbY2xhc3Mua2JxLWNvZGUtYmxvY2tfX3Nob3ctbW9yZV9jb2xsYXBzZWRdPVwiIXZpZXdBbGxcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19zaG93LW1vcmVfZXhwYW5kZWRdPVwidmlld0FsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmctd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd01vcmVDbGljayhjb2RlQ29udGVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKGNvZGVDb250ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdmlld0FsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBrYnEtaWNvbj1cIm1jLWFuZ2xlLWRvd24tTF8xNlwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdBbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJtYy1hbmdsZS11cC1MXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgdmlld0FsbCA/IGNvbmZpZy52aWV3TGVzc1RleHQgOiBjb25maWcudmlld0FsbFRleHQgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9rYnEtdGFiPlxuPC9rYnEtdGFiLWdyb3VwPlxuIl19
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUIsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQUdqRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxF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QWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7aUlBdFBRLHFCQUFxQiwySkFzRE4sNEJBQTRCO3FIQXREM0MscUJBQXFCLHVwQkFDbkIsV0FBVyw0RUNsRjFCLCtvRkFtRUE7OzJGRGNhLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0ksZ0JBQWdCLFlBQ2hCLGNBQWMsUUFHbEI7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsK0JBQStCLEVBQUUsUUFBUTt3QkFDekMsZ0NBQWdDLEVBQUUsU0FBUzt3QkFDM0MsMENBQTBDLEVBQUUsY0FBYzt3QkFDMUQsb0NBQW9DLEVBQUUsWUFBWTt3QkFDbEQsa0NBQWtDLEVBQUUsVUFBVTt3QkFDOUMsMkNBQTJDLEVBQUUsZUFBZTt3QkFDNUQsaUJBQWlCLEVBQUUsMkJBQTJCO3FCQUNqRCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBd0RoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDRCQUE0Qjt5Q0FyRDVCLFFBQVE7c0JBQS9CLFNBQVM7dUJBQUMsV0FBVztnQkFFYixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNPLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxVGFiQ2hhbmdlRXZlbnQsIEticVRhYkdyb3VwIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQsIG1lcmdlLCBwYWlyd2lzZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLYnFDb2RlQmxvY2tDb25maWd1cmF0aW9uLCBLYnFDb2RlRmlsZSB9IGZyb20gJy4vY29kZS1ibG9jay50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDT1BJRURfTUVTU0FHRV9UT09MVElQX1RJTUVPVVQgPSAxMDA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFRFTlNJT04gPSAndHh0JztcbmV4cG9ydCBjb25zdCBMQU5HVUFHRVNfRVhURU5TSU9OUyA9IHtcbiAgICBodG1sOiAnaHRtbCcsXG4gICAgY3NzOiAnY3NzJyxcbiAgICBwaHA6ICdwaHAnLFxuICAgIGphdmE6ICdqYXZhJyxcbiAgICBiYXNoOiAnc2gnLFxuICAgIGphdmFzY3JpcHQ6ICdqcycsXG4gICAgdHlwZXNjcmlwdDogJ3RzJyxcbiAgICBweXRob246ICdweScsXG4gICAgcnVieTogJ3JiJyxcbiAgICBjOiAnYycsXG4gICAgJ2MrKyc6ICdjcHAnLFxuICAgICdjIyc6ICdjcycsXG4gICAgY3NoYXJwOiAnY3MnLFxuICAgIGx1YTogJ2x1YScsXG4gICAgeG1sOiAneG1sJyxcbiAgICBqc29uOiAnanNvbidcbn07XG5cbmV4cG9ydCBjb25zdCBLQlFfQ09ERV9CTE9DS19DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0ticUNvZGVCbG9ja0NvbmZpZ3VyYXRpb24nKTtcblxuZXhwb3J0IGNvbnN0IEtCUV9DT0RFX0JMT0NLX0RFRkFVTFRfQ09ORklHVVJBVElPTiA9IHtcbiAgICBzb2Z0V3JhcE9uVG9vbHRpcDogJ9CS0LrQu9GO0YfQuNGC0Ywg0L/QtdGA0LXQvdC+0YEg0L/QviDRgdC70L7QstCw0LwnLFxuICAgIHNvZnRXcmFwT2ZmVG9vbHRpcDogJ9CS0YvQutC70Y7Rh9C40YLRjCDQv9C10YDQtdC90L7RgSDQv9C+INGB0LvQvtCy0LDQvCcsXG4gICAgZG93bmxvYWRUb29sdGlwOiAn0KHQutCw0YfQsNGC0YwnLFxuICAgIGNvcGllZFRvb2x0aXA6ICfinJMg0KHQutC+0L/QuNGA0L7QstCw0L3QvicsXG4gICAgY29weVRvb2x0aXA6ICfQodC60L7Qv9C40YDQvtCy0LDRgtGMJyxcbiAgICB2aWV3QWxsVGV4dDogJ9Cf0L7QutCw0LfQsNGC0Ywg0LLRgdC1JyxcbiAgICB2aWV3TGVzc1RleHQ6ICfQodCy0LXRgNC90YPRgtGMJyxcbiAgICBvcGVuRXh0ZXJuYWxTeXN0ZW1Ub29sdGlwOiAn0J7RgtC60YDRi9GC0Ywg0LLQviDQstC90LXRiNC90LXQuSDRgdC40YHRgtC10LzQtSdcbn07XG5cbmNvbnN0IGFjdGlvbkJhckJsb2NrTGVmdE1hcmdpbiA9IDI0O1xuXG5jb25zdCBoYXNTY3JvbGwgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB7IHNjcm9sbEhlaWdodCwgc2Nyb2xsV2lkdGgsIGNsaWVudEhlaWdodCwgY2xpZW50V2lkdGggfSA9IGVsZW1lbnQ7XG4gICAgcmV0dXJuIHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCB8fCBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtY29kZS1ibG9jaycsXG4gICAgZXhwb3J0QXM6ICdrYnFDb2RlQmxvY2snLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2RlLWJsb2NrLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvZGUtYmxvY2snLFxuICAgICAgICAnW2NsYXNzLmticS1jb2RlLWJsb2NrX2ZpbGxlZF0nOiAnZmlsbGVkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19vdXRsaW5lXSc6ICchZmlsbGVkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19oaWRlLWxpbmUtbnVtYmVyc10nOiAnIWxpbmVOdW1iZXJzJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29kZS1ibG9ja19zaW5nbGUtZmlsZV0nOiAnc2luZ2xlRmlsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfbm8taGVhZGVyXSc6ICdub0hlYWRlcicsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvZGUtYmxvY2tfaGVhZGVyLXdpdGgtc2hhZG93XSc6ICdpc1RvcE92ZXJmbG93JyxcbiAgICAgICAgJyh3aW5kb3c6cmVzaXplKSc6ICdyZXNpemVTdHJlYW0ubmV4dCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb2RlQmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoS2JxVGFiR3JvdXApIHRhYkdyb3VwOiBLYnFUYWJHcm91cDtcblxuICAgIEBJbnB1dCgpIGxpbmVOdW1iZXJzID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBmaWxsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWF4SGVpZ2h0OiBudW1iZXI7XG4gICAgQElucHV0KCkgc29mdFdyYXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjYW5Mb2FkOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBnZXQgY29kZUZpbGVzKCk6IEticUNvZGVGaWxlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29kZUZpbGVzO1xuICAgIH1cblxuICAgIHNldCBjb2RlRmlsZXMoZmlsZXM6IEticUNvZGVGaWxlW10pIHtcbiAgICAgICAgdGhpcy5fY29kZUZpbGVzID0gZmlsZXM7XG4gICAgICAgIHRoaXMuaGlkZUFjdGlvbkJhcklmTm9IZWFkZXIoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0hvdmVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29kZUZpbGVzOiBLYnFDb2RlRmlsZVtdO1xuXG4gICAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIHByb3BlcnR5XG4gICAgZ2V0IG5vSGVhZGVyKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvZGVGaWxlcy5sZW5ndGggPT09IDEgJiYgIXRoaXMuY29kZUZpbGVzWzBdLmZpbGVuYW1lO1xuICAgIH1cblxuICAgIGdldCBzaW5nbGVGaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2RlRmlsZXMubGVuZ3RoID09PSAxO1xuICAgIH1cblxuICAgIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuICAgIGNvcGllZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHZpZXdBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBtdWx0aUxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpc1RvcE92ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG4gICAgaGFzS2V5Ym9hcmRGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBhY3Rpb25iYXJIaWRkZW4/OiBib29sZWFuO1xuXG4gICAgcmVhZG9ubHkgcmVzaXplU3RyZWFtID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG4gICAgcmVhZG9ubHkgY3VycmVudENvZGVCbG9jayA9IG5ldyBTdWJqZWN0PEhUTUxFbGVtZW50PigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVEZWJvdW5jZUludGVydmFsOiBudW1iZXIgPSAxMDA7XG4gICAgcHJpdmF0ZSByZXNpemVTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gICAgcHJpdmF0ZSBjb2RlQmxvY2tTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gICAgcHJpdmF0ZSBob3ZlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEtCUV9DT0RFX0JMT0NLX0NPTkZJR1VSQVRJT04pIHB1YmxpYyBjb25maWc6IEticUNvZGVCbG9ja0NvbmZpZ3VyYXRpb25cbiAgICApIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwgS0JRX0NPREVfQkxPQ0tfREVGQVVMVF9DT05GSUdVUkFUSU9OO1xuXG4gICAgICAgIHRoaXMucmVzaXplU3Vic2NyaXB0aW9uID0gdGhpcy5yZXNpemVTdHJlYW1cbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLnJlc2l6ZURlYm91bmNlSW50ZXJ2YWwpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLnVwZGF0ZUhlYWRlcik7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyByZW5kZXIgZm9jdXMgYm9yZGVyIGlmIG9yaWdpbiBpcyBrZXlib2FyZFxuICAgICAgICB0aGlzLmNvZGVCbG9ja1N1YnNjcmlwdGlvbiA9IHRoaXMuY3VycmVudENvZGVCbG9ja1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChbcHJldiwgY3VycmVudF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHByZXYpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IoY3VycmVudCEpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcigob3JpZ2luOiBGb2N1c09yaWdpbikgPT4gb3JpZ2luID09PSAna2V5Ym9hcmQnKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNLZXlib2FyZEZvY3VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5oaWRlQWN0aW9uQmFySWZOb0hlYWRlcigpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvSG92ZXIoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29kZUJsb2NrLm5leHQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignY29kZScpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5jb2RlQmxvY2tTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVIZWFkZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNsaWVudFdpZHRoOiBudW1iZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdrYnEtYWN0aW9uYmFyLWJsb2NrJykuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgIHRoaXMudGFiR3JvdXAudGFiSGVhZGVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcbiAgICAgICAgICAgIGAke2FjdGlvbkJhckJsb2NrTGVmdE1hcmdpbiArIGNsaWVudFdpZHRofXB4YFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcblxuICAgIHRvZ2dsZVNvZnRXcmFwKCkge1xuICAgICAgICB0aGlzLnNvZnRXcmFwID0gIXRoaXMuc29mdFdyYXA7XG4gICAgfVxuXG4gICAgdG9nZ2xlVmlld0FsbCgpIHtcbiAgICAgICAgdGhpcy52aWV3QWxsID0gIXRoaXMudmlld0FsbDtcbiAgICB9XG5cbiAgICBkb3dubG9hZENvZGUoKSB7XG4gICAgICAgIGNvbnN0IGNvZGVGaWxlID0gdGhpcy5jb2RlRmlsZXNbdGhpcy5zZWxlY3RlZFRhYkluZGV4XTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjb2RlRmlsZS5jb250ZW50XSwgeyB0eXBlOiAndGV4dC9wbGFpbicgfSk7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgYCR7dGhpcy5nZXRGdWxsRmlsZU5hbWUoY29kZUZpbGUpfWApO1xuICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgY29weUNvZGUoKSB7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5jb2RlRmlsZXNbdGhpcy5zZWxlY3RlZFRhYkluZGV4XS5jb250ZW50KTtcbiAgICAgICAgdGhpcy5jb3BpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9wZW5FeHRlcm5hbFN5c3RlbSgpIHtcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxMaW5rID0gdGhpcy5jb2RlRmlsZXNbdGhpcy5zZWxlY3RlZFRhYkluZGV4XS5saW5rO1xuICAgICAgICB3aW5kb3cub3BlbihleHRlcm5hbExpbmssICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBvbkhpZ2hsaWdodGVkKCkge1xuICAgICAgICBzZXRUaW1lb3V0KHRoaXMudXBkYXRlTXVsdGlsaW5lLCAxKTtcbiAgICB9XG5cbiAgICBnZXRNYXhIZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4SGVpZ2h0ID4gMCAmJiAhdGhpcy52aWV3QWxsID8gYCR7dGhpcy5tYXhIZWlnaHR9cHhgIDogJyc7XG4gICAgfVxuXG4gICAgb25TZWxlY3RUYWIoJGV2ZW50OiBLYnFUYWJDaGFuZ2VFdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXggPSAkZXZlbnQuaW5kZXg7XG4gICAgICAgIHRoaXMudXBkYXRlTXVsdGlsaW5lKCk7XG4gICAgICAgIHRoaXMuaXNUb3BPdmVyZmxvdyA9IGZhbHNlO1xuXG4gICAgICAgIHNldFRpbWVvdXQodGhpcy51cGRhdGVIZWFkZXIpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY3VycmVudENvZGVCbG9jay5uZXh0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSkpO1xuICAgIH1cblxuICAgIGNoZWNrT3ZlcmZsb3coY3VycmVudENvZGVDb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMubm9IZWFkZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzVG9wT3ZlcmZsb3cgPSBjdXJyZW50Q29kZUNvbnRlbnRFbGVtZW50LnNjcm9sbFRvcCA+IDA7XG4gICAgfVxuXG4gICAgb25TaG93TW9yZUNsaWNrKGN1cnJlbnRDb2RlQ29udGVudEVsZW1lbnQ6IEhUTUxQcmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMudG9nZ2xlVmlld0FsbCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnZpZXdBbGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0FjdGlvbkJhcklmTmVjZXNzYXJ5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTaG91bGQgZXhwbGljaXRseSBzY3JvbGwgdG8gdG9wIHNvIGNvbnRlbnQgd2lsbCBiZSBjcm9wcGVkIGZyb20gdGhlIGJvdHRvbVxuICAgICAgICAgICAgY3VycmVudENvZGVDb250ZW50RWxlbWVudD8uc2Nyb2xsKHsgdG9wOiAwLCBiZWhhdmlvcjogJ2luc3RhbnQnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIHByb3BlcnR5IHRvIHJlZHVjZSBjYWxjdWxhdGlvbnNcbiAgICBjYW5TaG93Rm9jdXMoY3VycmVudENvZGVDb250ZW50OiBIVE1MUHJlRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50Q29kZUJsb2NrID0gY3VycmVudENvZGVDb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSE7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChoYXNTY3JvbGwoY3VycmVudENvZGVDb250ZW50KSB8fCBoYXNTY3JvbGwoY3VycmVudENvZGVCbG9jaykpICYmXG4gICAgICAgICAgICAoKCEhdGhpcy5tYXhIZWlnaHQgJiYgdGhpcy52aWV3QWxsKSB8fCAhdGhpcy5tYXhIZWlnaHQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25FbnRlcihjdXJyZW50Q29kZUJsb2NrOiBIVE1MUHJlRWxlbWVudCkge1xuICAgICAgICAvLyBkZWZlciBleGVjdXRpb24gYWZ0ZXIgdG9nZ2xlIHZpZXcgbW9kZVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNhblNob3dGb2N1cyhjdXJyZW50Q29kZUJsb2NrKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKGN1cnJlbnRDb2RlQmxvY2sucXVlcnlTZWxlY3RvcignY29kZScpISwgJ2tleWJvYXJkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgc2hvd0FjdGlvbkJhcklmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aW9uYmFySGlkZGVuKSByZXR1cm47XG4gICAgICAgIHRoaXMuYWN0aW9uYmFySGlkZGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBoaWRlQWN0aW9uQmFySWZOb0hlYWRlcihldmVudD86IEZvY3VzRXZlbnQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ub0hlYWRlcikgcmV0dXJuO1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uYmFySGlkZGVuID0gIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3Rpb25iYXJIaWRkZW4gPSB0aGlzLm5vSGVhZGVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTXVsdGlsaW5lID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm11bHRpTGluZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5obGpzLWxuLW51bWJlcnMnKS5sZW5ndGggPiAxO1xuXG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRGdWxsRmlsZU5hbWUoY29kZUZpbGU6IEticUNvZGVGaWxlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBjb2RlRmlsZS5maWxlbmFtZSB8fCAnY29kZSc7XG4gICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IExBTkdVQUdFU19FWFRFTlNJT05TW2NvZGVGaWxlLmxhbmd1YWdlXSB8fCBERUZBVUxUX0VYVEVOU0lPTjtcblxuICAgICAgICByZXR1cm4gYCR7ZmlsZU5hbWV9LiR7ZXh0ZW5zaW9ufWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0hvdmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMubm9IZWFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuaG92ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmhvdmVyU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ob3ZlclN1YnNjcmlwdGlvbikgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaG92ZXJTdWJzY3JpcHRpb24gPSBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dBY3Rpb25CYXJJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYmx1ciA9IG1lcmdlKFxuICAgICAgICAgICAgZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKS5waXBlKG1hcCgoKSA9PiBudWxsKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKGV2ZW50OiBGb2N1c0V2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0tleWJvYXJkRm9jdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVBY3Rpb25CYXJJZk5vSGVhZGVyKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhvdmVyU3Vic2NyaXB0aW9uLmFkZChibHVyKTtcbiAgICB9XG59XG4iLCI8a2JxLXRhYi1ncm91cFxuICAgIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJoYXNLZXlib2FyZEZvY3VzXCJcbiAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25TZWxlY3RUYWIoJGV2ZW50KVwiXG4+XG4gICAgPGticS10YWJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvZGVGaWxlIG9mIGNvZGVGaWxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzaW5nbGVGaWxlXCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrYnEtdGFiLWxhYmVsPnt7IGNvZGVGaWxlLmZpbGVuYW1lIH19PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8cHJlXG4gICAgICAgICAgICAjY29kZUNvbnRlbnRcbiAgICAgICAgICAgIGNsYXNzPVwia2JxLWNvZGUtYmxvY2tfX2NvZGUga2JxLXNjcm9sbGJhclwiXG4gICAgICAgICAgICBbY2xhc3Mua2JxLWNvZGUtYmxvY2tfX2NvZGVfc29mdC13cmFwXT1cInNvZnRXcmFwXCJcbiAgICAgICAgICAgIFtjbGFzcy5rYnEtY29kZS1ibG9ja19fY29kZV92aWV3LWFsbF09XCJ2aWV3QWxsXCJcbiAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImdldE1heEhlaWdodCgpXCJcbiAgICAgICAgICAgIChzY3JvbGwpPVwiY2hlY2tPdmVyZmxvdyhjb2RlQ29udGVudClcIlxuICAgICAgICA+PGticS1hY3Rpb25iYXItYmxvY2tcbiAgICAgICAgICAgIFtjbGFzcy5rYnEtYWN0aW9uYmFyLWJsb2NrX2Zsb2F0aW5nXT1cIm5vSGVhZGVyXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgICAgIFtjb2RlRmlsZXNdPVwiY29kZUZpbGVzXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZFRhYkluZGV4XT1cInNlbGVjdGVkVGFiSW5kZXhcIlxuICAgICAgICAgICAgW211bHRpTGluZV09XCJtdWx0aUxpbmVcIlxuICAgICAgICAgICAgW3NvZnRXcmFwXT1cInNvZnRXcmFwXCJcbiAgICAgICAgICAgIFtjYW5Mb2FkXT1cImNhbkxvYWRcIlxuICAgICAgICAgICAgW3N0eWxlLm9wYWNpdHldPVwiYWN0aW9uYmFySGlkZGVuID8gMCA6IG51bGxcIlxuICAgICAgICAgICAgKHRvZ2dsZVNvZnRXcmFwKT1cInRvZ2dsZVNvZnRXcmFwKClcIlxuICAgICAgICAgICAgKGRvd25sb2FkQ29kZSk9XCJkb3dubG9hZENvZGUoKVwiXG4gICAgICAgICAgICAoY29weUNvZGUpPVwiY29weUNvZGUoKVwiXG4gICAgICAgICAgICAob3BlbkV4dGVybmFsU3lzdGVtKT1cIm9wZW5FeHRlcm5hbFN5c3RlbSgpXCIgLz48Y29kZSBjbGFzcz1cImhsanNcIlxuICAgICAgICAgICAgICAgW2lkXT1cImNvZGVGaWxlLmZpbGVuYW1lICsgJ18nICsgaVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGxqcy1saW5lLW51bWJlcnNdPVwibGluZU51bWJlcnNcIlxuICAgICAgICAgICAgICAgW2hpZ2hsaWdodF09XCJjb2RlRmlsZXNbaV0uY29udGVudFwiXG4gICAgICAgICAgICAgICBbbGluZU51bWJlcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FuU2hvd0ZvY3VzKGNvZGVDb250ZW50KSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAoaGlnaGxpZ2h0ZWQpPVwib25IaWdobGlnaHRlZCgpXCJcbiAgICAgICAgICAgICAgIChibHVyKT1cImhhc0tleWJvYXJkRm9jdXMgPSBmYWxzZVwiPlxuICAgICAgICAgICAgPC9jb2RlPjwvcHJlPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwibWF4SGVpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwia2JxLWNvZGUtYmxvY2tfX3Nob3ctbW9yZVwiXG4gICAgICAgICAgICBbY2xhc3Mua2JxLWNvZGUtYmxvY2tfX3Nob3ctbW9yZV9jb2xsYXBzZWRdPVwiIXZpZXdBbGxcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1jb2RlLWJsb2NrX19zaG93LW1vcmVfZXhwYW5kZWRdPVwidmlld0FsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmctd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd01vcmVDbGljayhjb2RlQ29udGVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKGNvZGVDb250ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdmlld0FsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBrYnEtaWNvbj1cIm1jLWFuZ2xlLWRvd24tTF8xNlwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdBbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJtYy1hbmdsZS11cC1MXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgdmlld0FsbCA/IGNvbmZpZy52aWV3TGVzc1RleHQgOiBjb25maWcudmlld0FsbFRleHQgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9rYnEtdGFiPlxuPC9rYnEtdGFiLWdyb3VwPlxuIl19
|
package/esm2022/core/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Version } from '@angular/core';
|
|
2
|
-
export const VERSION = new Version('17.0.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const VERSION = new Version('17.0.3+sha-72053f1');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzE3LjAuMytzaGEtNzIwNTNmMScpO1xuIl19
|