speechrecorderng 2.24.2 → 2.25.2
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/esm2020/lib/audio/audio_display.mjs +4 -4
- package/esm2020/lib/audio/audio_player.mjs +4 -4
- package/esm2020/lib/audio/capture/capture.mjs +1 -1
- package/esm2020/lib/audio/io/stream.mjs +41 -1
- package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
- package/esm2020/lib/audio/ui/audio_display_control.mjs +4 -4
- package/esm2020/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
- package/esm2020/lib/audio/ui/audiosignal.mjs +4 -4
- package/esm2020/lib/audio/ui/container.mjs +4 -4
- package/esm2020/lib/audio/ui/livelevel.mjs +4 -4
- package/esm2020/lib/audio/ui/scroll_pane_horizontal.mjs +4 -4
- package/esm2020/lib/audio/ui/sonagram.mjs +4 -4
- package/esm2020/lib/io/stream.mjs +10 -1
- package/esm2020/lib/recorder_component.mjs +1 -1
- package/esm2020/lib/speechrecorder/project/project.mjs +1 -1
- package/esm2020/lib/speechrecorder/project/project.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/script/script.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +122 -110
- package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +179 -14
- package/esm2020/lib/speechrecorder/session/controlpanel.mjs +46 -22
- package/esm2020/lib/speechrecorder/session/progress.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/prompting.mjs +16 -16
- package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recording_list.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/session.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/session_finished_dialog.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +94 -61
- package/esm2020/lib/speechrecorder/session/warning_bar.mjs +4 -4
- package/esm2020/lib/speechrecorder/spruploader.mjs +4 -4
- package/esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
- package/esm2020/lib/speechrecorderng.component.mjs +18 -5
- package/esm2020/lib/speechrecorderng.module.mjs +8 -8
- package/esm2020/lib/spr.config.mjs +4 -4
- package/esm2020/lib/spr.module.version.mjs +2 -2
- package/esm2020/lib/ui/canvas_layer_comp.mjs +4 -4
- package/esm2020/lib/ui/message_dialog.mjs +4 -4
- package/esm2020/lib/ui/recordingitem_display.mjs +7 -7
- package/esm2020/lib/utils/scrollIntoViewToBottom.mjs +4 -4
- package/esm2020/lib/utils/wake_lock.mjs +114 -0
- package/esm2020/lib/utils/wake_lock_media.mjs +2 -0
- package/fesm2015/speechrecorderng.mjs +811 -404
- package/fesm2015/speechrecorderng.mjs.map +1 -1
- package/fesm2020/speechrecorderng.mjs +805 -404
- package/fesm2020/speechrecorderng.mjs.map +1 -1
- package/lib/audio/io/stream.d.ts +13 -0
- package/lib/io/stream.d.ts +3 -0
- package/lib/recorder_component.d.ts +1 -0
- package/lib/speechrecorder/project/project.d.ts +1 -0
- package/lib/speechrecorder/session/audiorecorder.d.ts +11 -11
- package/lib/speechrecorder/session/basicrecorder.d.ts +44 -4
- package/lib/speechrecorder/session/controlpanel.d.ts +7 -0
- package/lib/speechrecorder/session/sessionmanager.d.ts +13 -10
- package/lib/speechrecorderng.component.d.ts +1 -0
- package/lib/speechrecorderng.module.d.ts +1 -1
- package/lib/spr.module.version.d.ts +1 -1
- package/lib/utils/wake_lock.d.ts +23 -0
- package/lib/utils/wake_lock_media.d.ts +1 -0
- package/package.json +1 -1
|
@@ -19,12 +19,12 @@ export class Recinstructions {
|
|
|
19
19
|
return riTxt;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
Recinstructions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
23
|
-
Recinstructions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
22
|
+
Recinstructions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: Recinstructions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
Recinstructions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: Recinstructions, selector: "spr-recinstructions", inputs: { recinstructions: "recinstructions", selectedItemIdx: "selectedItemIdx", itemCount: "itemCount" }, ngImport: i0, template: `
|
|
24
24
|
|
|
25
25
|
{{displayText()}}
|
|
26
26
|
`, isInline: true, styles: [":host{justify-content:left;align-items:flex-start;background:white;text-align:left;font-size:1em;flex:0;width:100%}\n"] });
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: Recinstructions, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{
|
|
30
30
|
selector: 'spr-recinstructions',
|
|
@@ -212,13 +212,13 @@ export class Prompter {
|
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
|
-
Prompter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
216
|
-
Prompter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
215
|
+
Prompter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: Prompter, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.ProjectService }], target: i0.ɵɵFactoryTarget.Component });
|
|
216
|
+
Prompter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: Prompter, selector: "app-sprprompter", inputs: { projectName: "projectName", prompterHeight: "prompterHeight", promptMediaItems: "promptMediaItems" }, host: { properties: { "class.fill": "this.prompterStyleFill" } }, ngImport: i0, template: `
|
|
217
217
|
|
|
218
218
|
<!--<ng-template [ngIf]="text">{{text}}</ng-template>-->
|
|
219
219
|
<!-- <img *ngIf="src" #promptImage [src]="srcUrl()" [height]="prompterHeight-20" /> -->
|
|
220
220
|
`, isInline: true, styles: [":host{justify-content:center;align-items:center;background:white;text-align:center;line-height:1.2em;font-weight:700;flex:0 1}\n", ":host(.fill){flex:3;width:100%;height:100%;max-height:100%;max-width:100%;vertical-align:middle}\n"] });
|
|
221
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: Prompter, decorators: [{
|
|
222
222
|
type: Component,
|
|
223
223
|
args: [{
|
|
224
224
|
selector: 'app-sprprompter',
|
|
@@ -392,11 +392,11 @@ export class PromptContainer {
|
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
|
-
PromptContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
396
|
-
PromptContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
395
|
+
PromptContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PromptContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
396
|
+
PromptContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PromptContainer, selector: "app-sprpromptcontainer", inputs: { projectName: "projectName", mediaitems: "mediaitems" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "prompter", first: true, predicate: Prompter, descendants: true, static: true }], ngImport: i0, template: `
|
|
397
397
|
<app-sprprompter #prompter [projectName]="projectName" [promptMediaItems]="mediaitems" [style.font-size]="fontSize+'px'" [style.visibility]="prDisplay" [prompterHeight]="prompterHeight"></app-sprprompter>
|
|
398
398
|
`, isInline: true, styles: [":host{flex:3;padding:10pt;height:100%;max-height:100%;justify-content:center;align-items:center;background:white;text-align:center;display:flex;flex-direction:column;min-height:0px;width:100%}\n"], components: [{ type: Prompter, selector: "app-sprprompter", inputs: ["projectName", "prompterHeight", "promptMediaItems"] }] });
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PromptContainer, decorators: [{
|
|
400
400
|
type: Component,
|
|
401
401
|
args: [{
|
|
402
402
|
selector: 'app-sprpromptcontainer',
|
|
@@ -539,15 +539,15 @@ export class PromptingContainer {
|
|
|
539
539
|
//ev.preventDefault();
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
|
-
PromptingContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
543
|
-
PromptingContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
542
|
+
PromptingContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PromptingContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
543
|
+
PromptingContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PromptingContainer, selector: "app-sprpromptingcontainer", inputs: { projectName: "projectName", promptItem: "promptItem", showPrompt: "showPrompt", selectedItemIdx: "selectedItemIdx", itemCount: "itemCount", transportActions: "transportActions" }, host: { listeners: { "touchstart": "onTouchstart($event)", "touchend": "onTouchEnd($event)", "touchmove": "onTouchMove($event)", "touchcancel": "onTouchCancel($event)" } }, ngImport: i0, template: `
|
|
544
544
|
<spr-recinstructions [selectedItemIdx]="selectedItemIdx" [itemCount]="itemCount"
|
|
545
545
|
[recinstructions]="promptItem?.recinstructions?.recinstructions"></spr-recinstructions>
|
|
546
546
|
<app-sprpromptcontainer [projectName]="projectName"
|
|
547
547
|
[mediaitems]="showPrompt?(promptItem?promptItem.mediaitems:null):null"></app-sprpromptcontainer>
|
|
548
548
|
|
|
549
549
|
`, isInline: true, styles: [":host{position:relative;flex:3;padding:10pt;justify-content:center;align-items:center;background:white;text-align:center;display:flex;flex-direction:column;min-height:0px}\n"], components: [{ type: Recinstructions, selector: "spr-recinstructions", inputs: ["recinstructions", "selectedItemIdx", "itemCount"] }, { type: PromptContainer, selector: "app-sprpromptcontainer", inputs: ["projectName", "mediaitems"] }] });
|
|
550
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PromptingContainer, decorators: [{
|
|
551
551
|
type: Component,
|
|
552
552
|
args: [{
|
|
553
553
|
selector: 'app-sprpromptingcontainer',
|
|
@@ -619,8 +619,8 @@ export class Prompting {
|
|
|
619
619
|
this.onPrevItem.emit();
|
|
620
620
|
}
|
|
621
621
|
}
|
|
622
|
-
Prompting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
623
|
-
Prompting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
622
|
+
Prompting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: Prompting, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
623
|
+
Prompting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: Prompting, selector: "app-sprprompting", inputs: { projectName: "projectName", startStopSignalState: "startStopSignalState", promptItem: "promptItem", showPrompt: "showPrompt", items: "items", selectedItemIdx: "selectedItemIdx", transportActions: "transportActions", enableDownload: "enableDownload", audioSignalCollapsed: "audioSignalCollapsed", displayAudioClip: "displayAudioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", playStopAction: "playStopAction" }, outputs: { onItemSelect: "onItemSelect", onNextItem: "onNextItem", onPrevItem: "onPrevItem" }, viewQueries: [{ propertyName: "simpleTrafficLight", first: true, predicate: SimpleTrafficLight, descendants: true, static: true }, { propertyName: "audioDisplay", first: true, predicate: AudioDisplay, descendants: true, static: true }], ngImport: i0, template: `
|
|
624
624
|
|
|
625
625
|
<app-simpletrafficlight [status]="startStopSignalState"></app-simpletrafficlight>
|
|
626
626
|
<app-sprpromptingcontainer [projectName]="projectName" [promptItem]="promptItem" [showPrompt]="showPrompt"
|
|
@@ -643,7 +643,7 @@ Prompting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
643
643
|
|
|
644
644
|
|
|
645
645
|
`, isInline: true, styles: [":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;min-height:0px;display:flex;flex-direction:row;flex-wrap:nowrap}\n", "app-simpletrafficlight{margin:10px;min-height:0px;z-index:3}\n", "app-sprprogress{z-index:3}\n", "div{display:none;position:absolute;z-index:5}\n", "div.active{display:flex;position:absolute;bottom:0px;height:90%;width:100%;overflow:hidden;padding:0;z-index:5;box-sizing:border-box;background-color:#0000}\n"], components: [{ type: i2.SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: ["status"] }, { type: PromptingContainer, selector: "app-sprpromptingcontainer", inputs: ["projectName", "promptItem", "showPrompt", "selectedItemIdx", "itemCount", "transportActions"] }, { type: i3.Progress, selector: "app-sprprogress", inputs: ["items", "selectedItemIdx", "enableDownload"], outputs: ["onRowSelect", "rowSelect", "onShowDoneAction", "clickDone", "onDownloadDoneAction", "clickDownloadDone"] }, { type: i4.AudioDisplay, selector: "app-audiodisplay", inputs: ["playStartAction", "playStopAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "audioData", "audioClip"] }], directives: [{ type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
|
|
646
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
646
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: Prompting, decorators: [{
|
|
647
647
|
type: Component,
|
|
648
648
|
args: [{
|
|
649
649
|
selector: 'app-sprprompting',
|
|
@@ -776,4 +776,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
776
776
|
}], onPrevItem: [{
|
|
777
777
|
type: Output
|
|
778
778
|
}] } });
|
|
779
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcHJvbXB0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFJWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBd0J2RCxNQUFNLE9BQU8sZUFBZTtJQUsxQixXQUFXO1FBQ1QsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQ3hDLEtBQUssR0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxHQUFHLEdBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBRyxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQ3RCLEtBQUssR0FBQyxLQUFLLEdBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDdkM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzRHQWRVLGVBQWU7Z0dBQWYsZUFBZSx1S0FoQmhCOzs7R0FHVDsyRkFhVSxlQUFlO2tCQXBCM0IsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUscUJBQXFCO29CQUUvQixRQUFRLEVBQUU7OztHQUdUO29CQUNELE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7O0dBVVIsQ0FBQztpQkFDSDs4QkFFVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSzs7QUErQ1IsTUFBTSxPQUFPLFFBQVE7SUFhbkIsWUFBb0IsS0FBaUIsRUFBVSxRQUFtQixFQUFVLGNBQThCO1FBQXRGLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWGxHLHNCQUFpQixHQUFrQyxJQUFJLENBQUE7UUFFdEQsbUJBQWMsR0FBUyxDQUFDLENBQUM7UUFDMUIsVUFBSyxHQUEwQixJQUFJLENBQUM7UUFDcEMsU0FBSSxHQUEwQixJQUFJLENBQUM7UUFHbkMsb0JBQWUsR0FBcUIsSUFBSSxDQUFDO1FBRWYsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBSTVELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVDLEtBQUs7UUFDSCxJQUFHLElBQUksQ0FBQyxLQUFLLEVBQUM7WUFDWixJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQTthQUM5QztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTTtRQUNGLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBQztZQUNWLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFBO2FBQy9DO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBb0IsRUFBQyxHQUFRO1FBQ3JELElBQUksQ0FBQyxHQUFtQixHQUFHLENBQUMsSUFBSSxDQUFBO1FBQ2hDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLElBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFDO1lBQzdCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQzlDLElBQUksUUFBUSxHQUFDLEVBQUUsQ0FBQTtZQUNmLElBQUcsR0FBRyxDQUFDLFVBQVUsRUFBRTtnQkFDakIsUUFBUSxHQUFHLFFBQVEsR0FBRSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsVUFBVSxHQUFDLEdBQUcsQ0FBQTthQUM5RDtZQUNELElBQUcsR0FBRyxDQUFDLEtBQUssRUFBQztnQkFDWCxRQUFRLEdBQUcsUUFBUSxHQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFDLEdBQUcsQ0FBQTthQUMvQztZQUNELElBQUksQ0FBQyxLQUFLLEdBQUMsUUFBUSxDQUFBO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7U0FDdkM7YUFBSztZQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtTQUMzQztJQUNILENBQUM7SUFFSCxJQUFhLGdCQUFnQixDQUFDLElBQTJCO1FBQ3ZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDN0IsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRTtZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7U0FDMUU7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNoRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUE7WUFDNUIsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO2dCQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNwQztZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxZQUFZLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksS0FBSyxHQUFDLEVBQUUsQ0FBQztnQkFDYixJQUFHLElBQUksQ0FBQyxLQUFLLEVBQUM7b0JBQ1osS0FBSyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQ2xCO2dCQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUMzRTtpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZUFBZSxFQUFFO2dCQUM1QyxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDO2dCQUNoQixJQUFJLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFDLElBQUksS0FBSyxFQUFTLENBQUM7Z0JBQ2hDLElBQUksRUFBRSxHQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUE7Z0JBQ25CLElBQUcsRUFBRSxFQUFDO29CQUNKLElBQUksTUFBTSxHQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUE7b0JBQ2xCLElBQUcsTUFBTSxFQUFDO3dCQUNSLElBQUksQ0FBQyxPQUFPLEdBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztxQkFDNUI7aUJBQ0Y7Z0JBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQTtnQkFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDekQsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNmLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDL0MsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTt3QkFDekIsSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRTs0QkFDbkIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUE7NEJBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUE7NEJBQ3RELEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtnQ0FDM0MsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQ0FDdEIsSUFBSSxHQUFHLEVBQUU7b0NBQ1AsSUFBSSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRTt3Q0FDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtxQ0FDbkM7eUNBQU0sSUFBSSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRTt3Q0FDOUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7d0NBQzlDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQTt3Q0FDakIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFOzRDQUNiLFFBQVEsR0FBRyxRQUFRLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFBO3lDQUN2RDt3Q0FDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7NENBQ1osUUFBUSxHQUFHLFFBQVEsR0FBRyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7eUNBQ3JEO3dDQUNELElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTs0Q0FDZCxRQUFRLEdBQUcsUUFBUSxHQUFHLGVBQWUsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQTt5Q0FDekQ7d0NBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7d0NBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTt3Q0FDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7cUNBQzdDO3lDQUFNLElBQUksV0FBVyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUU7d0NBQ25DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO3dDQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7cUNBQ3ZDO2lDQUNGOzZCQUNGO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDekUsc0JBQXNCO2FBQ3ZCO2lCQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUE7Z0JBQ2xCLElBQUksV0FBVyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7Z0JBRTdCLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFBO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7Z0JBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO2dCQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDbEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtnQkFDN0IsMEJBQTBCO2dCQUMxQiw0RkFBNEY7Z0JBRTVGLHdFQUF3RTtnQkFDeEUsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFBO2dCQUN0QyxJQUFJLE1BQU0sR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUcsTUFBTSxFQUFFO29CQUNULFdBQVcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO2lCQUMxQjthQUNGO1NBRUY7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1NBQ2pCO0lBQ0gsQ0FBQzs7cUdBdktVLFFBQVE7eUZBQVIsUUFBUSx5T0E3QlQ7Ozs7R0FJVDsyRkF5QlUsUUFBUTtrQkFqQ3BCLFNBQVM7bUJBQUM7b0JBRVQsUUFBUSxFQUFFLGlCQUFpQjtvQkFFM0IsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7SUFhUCxFQUFFOzs7Ozs7Ozs7SUFTRixDQUFDO2lCQUNKO3NKQUVVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFPNEIsaUJBQWlCO3NCQUFsRCxXQUFXO3VCQUFDLFlBQVk7Z0JBMERaLGdCQUFnQjtzQkFBNUIsS0FBSzs7QUFxR1IsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFDLENBQUMsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUE0QnBELE1BQU0sT0FBTyxlQUFlO0lBZTFCLFlBQW9CLEtBQWdCO1FBQWhCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFiNUIsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDO1FBRWhELG1CQUFjLEdBQVcsY0FBYyxDQUFBO1FBRXZDLG1CQUFjLEdBQUMsS0FBSyxDQUFBO1FBQ3BCLG1CQUFjLEdBQUMsS0FBSyxDQUFDO1FBQ3JCLGNBQVMsR0FBQyxRQUFRLENBQUM7UUFJbkIsaUJBQVksR0FBQyxLQUFLLENBQUM7SUFHbUIsQ0FBQztJQUV2QyxRQUFRO1FBRU4sV0FBVztRQUNYLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQ0FBaUMsQ0FBQztRQUMzRCxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RSxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUNoRCxJQUFJLGNBQWMsRUFBRTtZQUNsQixjQUFjLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsNkVBQTZFO2dCQUM3RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNsRCw0REFBNEQ7YUFDN0Q7U0FDRjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBRyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDdkIsNERBQTREO2dCQUM1RCw0QkFBNEI7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUNyQjtpQkFBTTtnQkFDTCxnRkFBZ0Y7Z0JBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IscUVBQXFFO29CQUNyRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQ3JCO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFHRCxJQUFhLFVBQVUsQ0FBQyxVQUFnQztRQUV0RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQTtRQUU3QixJQUFJLFFBQVEsR0FBYSxJQUFJLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNwRCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzVCLFFBQVEsR0FBRyxZQUFZLENBQUE7WUFDdkIsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO2dCQUNmLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQy9CO1lBQ0QsSUFBRyxFQUFFLENBQUMscUJBQXFCLEVBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQTthQUNwRDtTQUNGO2FBQUk7WUFDSCxJQUFJLENBQUMsY0FBYyxHQUFDLGNBQWMsQ0FBQTtTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQTtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFDLENBQUMsUUFBUSxJQUFFLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBRyxJQUFJLENBQUMsWUFBWSxFQUFDO1lBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUNkO0lBQ0wsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBS0QsUUFBUSxDQUFDLEtBQVk7UUFDbkIsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBRWxDLElBQUksQ0FBQyxjQUFjLEdBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO1lBQ3pCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUNoRCwwRUFBMEU7WUFDMUUsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztZQUVuRixrREFBa0Q7WUFDbEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7YUFDekI7WUFFRCxrREFBa0Q7WUFDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtTQUU5QztJQUNILENBQUM7SUFHTyxhQUFhO1FBQ2pCLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksRUFBRSxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUE7Z0JBQ2xDLGdIQUFnSDtnQkFDaEgsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLGFBQWEsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7b0JBQ3JGLDZEQUE2RDtvQkFDN0Qsd0NBQXdDO29CQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtvQkFDekIscUJBQXFCO29CQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO29CQUNqQyxzREFBc0Q7b0JBQ3RELFlBQVk7b0JBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUE7b0JBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO29CQUMzQixzQkFBc0I7b0JBQ3RCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7aUJBQzlDO3FCQUFNO29CQUNMLGlFQUFpRTtvQkFFakUsMkNBQTJDO29CQUUzQyxvREFBb0Q7b0JBQ3BELHlCQUF5QjtvQkFDekIsMkJBQTJCO29CQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtvQkFDMUIsR0FBRztvQkFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtpQkFDNUI7Z0JBQ0Qsc0lBQXNJO2FBQ3ZJO1NBQ0Y7SUFDTCxDQUFDOzs0R0FySlUsZUFBZTtnR0FBZixlQUFlLHdPQWFmLFFBQVEsOERBbkNUOztHQUVULHVQQXJMVSxRQUFROzJGQXlNUixlQUFlO2tCQTFCM0IsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsd0JBQXdCO29CQUVsQyxRQUFRLEVBQUU7O0dBRVQ7b0JBRUQsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlIsQ0FBQztpQkFDSDtpR0FFVSxXQUFXO3NCQUFuQixLQUFLO2dCQVlpQyxRQUFRO3NCQUE5QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBd0N4QixVQUFVO3NCQUF0QixLQUFLO2dCQWtDTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQStGM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QixZQUFvQixHQUFlO1FBQWYsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVgxQixlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNqQyxlQUFVLEdBQVUsS0FBSyxDQUFDO1FBTzNCLFdBQU0sR0FBa0IsSUFBSSxDQUFBO1FBQzVCLHdCQUFtQixHQUFnQixJQUFJLENBQUM7SUFJaEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFHRCxZQUFZLENBQUMsRUFBb0I7UUFDL0IsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QyxJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQy9DLGdEQUFnRDtZQUNoRCxrQ0FBa0M7WUFDbEMsK0JBQStCO1lBQy9CLDZGQUE2RjtZQUM3RixHQUFHO1lBQ0gsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pCLGVBQWU7Z0JBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxFQUFFO29CQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO29CQUNqQyw0Q0FBNEM7b0JBQzVDLHNCQUFzQjtpQkFDdkI7YUFDRjtTQUNGO0lBRUgsQ0FBQztJQUdELFVBQVUsQ0FBQyxFQUFvQjtRQUM3QiwyQkFBMkI7UUFDM0IscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUN4RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBRTVDLElBQUksaUJBQWlCLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDakQsZ0RBQWdEO1lBQ2hELElBQUksaUJBQWlCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pDLGVBQWU7Z0JBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxFQUFFO29CQUNMLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pELElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztvQkFDdkIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7d0JBQzVCLGNBQWMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUNyRTtvQkFDRCxJQUFJLFlBQVksR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLENBQUM7b0JBQ25ELHlHQUF5RztvQkFDekcsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFO3dCQUN6Qyx1Q0FBdUM7d0JBQ3ZDLHlCQUF5Qjt3QkFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFOzRCQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO3lCQUMzQzt3QkFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7cUJBQy9DO29CQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFO3dCQUMxQyxzQ0FBc0M7d0JBQ3RDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDOUMsd0JBQXdCO3dCQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7eUJBQzVDOzZCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTs0QkFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzt5QkFDM0M7cUJBQ0Y7eUJBQU07cUJBQ047b0JBQ0QsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUNyQjthQUNGO1lBRUQsaUJBQWlCO1lBQ2pCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUdELFdBQVcsQ0FBQyxFQUFvQjtRQUM5Qiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ3hGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUMsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxJQUFJLGdCQUFnQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN4QyxlQUFlO2dCQUNmLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsRUFBRTtvQkFDTCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbEMsNkNBQTZDO2lCQUM5QztnQkFDRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFHRCxhQUFhLENBQUMsRUFBb0I7UUFDaEMsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDMUIsc0JBQXNCO0lBQ3hCLENBQUM7OytHQTNIVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0YUF0Qm5COzs7Ozs7R0FNVCxrT0FoYVUsZUFBZSwwR0EyUGYsZUFBZTsyRkFxTGYsa0JBQWtCO2tCQTFCOUIsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsMkJBQTJCO29CQUVyQyxRQUFRLEVBQUU7Ozs7OztHQU1UO29CQUVELE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7R0FZUixDQUFDO2lCQUNIO2lHQUVVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBZU4sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE0QnRDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0RwQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9CckMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUF3R3pDLE1BQU0sT0FBTyxTQUFTO0lBOUZ0QjtRQW1HVyxlQUFVLEdBQW9CLElBQUksQ0FBQztRQUNuQyxlQUFVLEdBQVUsS0FBSyxDQUFDO1FBQzFCLFVBQUssR0FBbUIsSUFBSSxDQUFDO1FBRzdCLG1CQUFjLEdBQVUsS0FBSyxDQUFDO1FBRTlCLHlCQUFvQixHQUFVLElBQUksQ0FBQztRQUNuQyxxQkFBZ0IsR0FBbUIsSUFBSSxDQUFDO1FBS3ZDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQWEzQztJQVhDLFVBQVUsQ0FBQyxNQUFjO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7c0dBaENVLFNBQVM7MEZBQVQsU0FBUyxxdEJBQ1Qsa0JBQWtCLDZGQUNsQixZQUFZLDhEQTVGYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCx5bEJBMUpVLGtCQUFrQjsyRkE4TmxCLFNBQVM7a0JBOUZyQixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSxrQkFBa0I7b0JBRTVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBa0JQLEVBQUU7Ozs7OztHQU1ILEVBQUU7Ozs7R0FJRixFQUFFOzs7Ozs7Ozs7Ozs7Ozs7TUFlQyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJGO3FCQUNIO2lCQUVGOzhCQUdrRCxrQkFBa0I7c0JBQWxFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNKLFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDaEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEFmdGVyQ29udGVudENoZWNrZWRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtTaW1wbGVUcmFmZmljTGlnaHR9IGZyb20gXCIuLi9zdGFydHN0b3BzaWduYWwvdWkvc2ltcGxldHJhZmZpY2xpZ2h0XCI7XHJcbmltcG9ydCB7U3RhdGUgYXMgU3RhcnRTdG9wU2lnbmFsU3RhdGV9IGZyb20gXCIuLi9zdGFydHN0b3BzaWduYWwvc3RhcnRzdG9wc2lnbmFsXCI7XHJcbmltcG9ydCB7SXRlbX0gZnJvbSBcIi4vaXRlbVwiO1xyXG5pbXBvcnQge0Jsb2NrLCBUZXh0LCBNZWRpYWl0ZW0sIFByb21wdEl0ZW19IGZyb20gXCIuLi9zY3JpcHQvc2NyaXB0XCI7XHJcbmltcG9ydCB7VHJhbnNwb3J0QWN0aW9uc30gZnJvbSBcIi4vY29udHJvbHBhbmVsXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheX0gZnJvbSBcIi4uLy4uL2F1ZGlvL2F1ZGlvX2Rpc3BsYXlcIjtcclxuaW1wb3J0IHtQcm9qZWN0U2VydmljZX0gZnJvbSBcIi4uL3Byb2plY3QvcHJvamVjdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXVkaW9DbGlwfSBmcm9tIFwiLi4vLi4vYXVkaW8vcGVyc2lzdG9yXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdzcHItcmVjaW5zdHJ1Y3Rpb25zJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICB7e2Rpc3BsYXlUZXh0KCl9fVxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyICovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogYWxpZ24gdmVydGljYWwgIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmbGV4OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNpbnN0cnVjdGlvbnMge1xyXG4gIEBJbnB1dCgpIHJlY2luc3RydWN0aW9uczogc3RyaW5nfG51bGx8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHg6IG51bWJlcnxudWxsfHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpdGVtQ291bnQ6IG51bWJlcnx1bmRlZmluZWQ7XHJcblxyXG4gIGRpc3BsYXlUZXh0KCk6c3RyaW5ne1xyXG4gICAgbGV0IHJpVHh0OnN0cmluZz0nJztcclxuICAgIGlmKHRoaXMuaXRlbUNvdW50ICYmIHRoaXMuc2VsZWN0ZWRJdGVtSWR4KXtcclxuICAgICAgcmlUeHQ9cmlUeHQrdGhpcy5zZWxlY3RlZEl0ZW1JZHgrJy8nKyh0aGlzLml0ZW1Db3VudC0xKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMucmVjaW5zdHJ1Y3Rpb25zKXtcclxuICAgICAgcmlUeHQ9cmlUeHQrJzogJyt0aGlzLnJlY2luc3RydWN0aW9ucztcclxuICAgIH1cclxuICAgIHJldHVybiByaVR4dDtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRlcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPCEtLTxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ0ZXh0XCI+e3t0ZXh0fX08L25nLXRlbXBsYXRlPi0tPlxyXG4gICAgPCEtLSA8aW1nICpuZ0lmPVwic3JjXCIgI3Byb21wdEltYWdlIFtzcmNdPVwic3JjVXJsKClcIiBbaGVpZ2h0XT1cInByb21wdGVySGVpZ2h0LTIwXCIgLz4gLS0+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG5cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciAqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvKiBmb250LXNpemU6IDJlbTsgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgLyogVXNlIG9ubHkgbmF0dXJhbCBzaXplIG9mIHRoZSBwcm9tcHQgKi9cclxuICAgIC8qIFRoZSBwcm9tcHRlciBjb21wbmVudCB0aGVuIGV0cyBhbGlnbmVkIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cclxuICAgIGZsZXg6IDAgMTtcclxuXHJcbiAgfWAsIGA6aG9zdCguZmlsbCkge1xyXG4gICAgLyogVXNlIGFsbCBzcGFjZSB0byBzY2FsZSBpbWFnZXMgKi9cclxuICAgIGZsZXg6IDM7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAvKiBBIHNlcGFyYXRlIGZsZXggY29udGFpbmVyIG1pZ2h0IGJlIG5lY2Vzc2F5ciB0byBhbGlnaG4gY2VudGVyZWQgKi9cclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFRPRE8gZG9lcyBub3Qgd29yaywgaW1hZ2UgaXMgbm90IHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cclxuICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdGVyIHtcclxuICBASW5wdXQoKSBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX3Byb21wdE1lZGlhSXRlbXM6IEFycmF5PE1lZGlhaXRlbT58bnVsbHx1bmRlZmluZWQ9bnVsbFxyXG5cclxuICBASW5wdXQoKSBwcm9tcHRlckhlaWdodDogbnVtYmVyPTA7XHJcbiAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nfHVuZGVmaW5lZHxudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9zcmM6IHN0cmluZ3x1bmRlZmluZWR8bnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfYmxvY2tzOiBBcnJheTxCbG9jaz58dW5kZWZpbmVkO1xyXG4gIG1pbWV0eXBlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VyclByb21wdENoaWxkOiBIVE1MRWxlbWVudHxudWxsID0gbnVsbDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxsJykgcHVibGljIHByb21wdGVyU3R5bGVGaWxsID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgdGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNyYygpIHtcclxuICAgIHJldHVybiB0aGlzLl9zcmM7XHJcbiAgfVxyXG5cclxuICBzcmNVcmwoKTogc3RyaW5nfG51bGx7XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0TmFtZSAmJiB0aGlzLl9zcmMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdFJlc291cmNlVXJsKHRoaXMucHJvamVjdE5hbWUsIHRoaXMuX3NyYyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gICAgd2lkdGgoKTpudW1iZXJ8bnVsbHtcclxuICAgICAgaWYodGhpcy5lbFJlZil7XHJcbiAgICAgICAgaWYodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGhlaWdodCgpOm51bWJlcnxudWxse1xyXG4gICAgICAgIGlmKHRoaXMuZWxSZWYpe1xyXG4gICAgICAgICAgICBpZih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFwcGVuZFRleHRFbGVtZW50KHBhcmVudEVsOkhUTUxFbGVtZW50LHR4dDpUZXh0KXtcclxuICAgICAgbGV0IHQ6IHN0cmluZyA9IDxzdHJpbmc+dHh0LnRleHRcclxuICAgICAgbGV0IHR4dE5kID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHQpXHJcbiAgICAgIGlmKHR4dC5kZWNvcmF0aW9uIHx8IHR4dC5jb2xvcil7XHJcbiAgICAgICAgbGV0IHNwRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxyXG4gICAgICAgIGxldCBzdHlsZVN0cj0nJ1xyXG4gICAgICAgIGlmKHR4dC5kZWNvcmF0aW9uKSB7XHJcbiAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsndGV4dC1kZWNvcmF0aW9uOiAnICsgdHh0LmRlY29yYXRpb24rJzsnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHR4dC5jb2xvcil7XHJcbiAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsnY29sb3I6ICcgKyB0eHQuY29sb3IrJzsnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNwRWwuc3R5bGU9c3R5bGVTdHJcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudEVsLCBzcEVsKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3BFbCwgdHh0TmQpXHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudEVsLCB0eHROZClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcHJvbXB0TWVkaWFJdGVtcyhwTWlzOiBBcnJheTxNZWRpYWl0ZW0+fG51bGwpIHtcclxuICAgIHRoaXMuX3Byb21wdE1lZGlhSXRlbXMgPSBwTWlzXHJcbiAgICBpZiAodGhpcy5jdXJyUHJvbXB0Q2hpbGQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fcHJvbXB0TWVkaWFJdGVtcyAmJiB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGxldCBtaSA9IHRoaXMuX3Byb21wdE1lZGlhSXRlbXNbMF1cclxuICAgICAgdGhpcy5taW1ldHlwZSA9ICd0ZXh0L3BsYWluJ1xyXG4gICAgICBpZiAobWkubWltZXR5cGUpIHtcclxuICAgICAgICB0aGlzLm1pbWV0eXBlID0gbWkubWltZXR5cGUudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1pbWV0eXBlID09PSAndGV4dC9wbGFpbicpIHtcclxuICAgICAgICB0aGlzLl90ZXh0ID0gbWkudGV4dFxyXG4gICAgICAgIHRoaXMuX3NyYyA9IG51bGw7XHJcbiAgICAgICAgbGV0IHByVHh0PScnO1xyXG4gICAgICAgIGlmKHRoaXMuX3RleHQpe1xyXG4gICAgICAgICAgcHJUeHQ9dGhpcy5fdGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocHJUeHQpO1xyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJTdHlsZUZpbGwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWltZXR5cGUgPT09ICd0ZXh0L3gtcHJvbXB0Jykge1xyXG4gICAgICAgIC8vdGhpcy5yZW5kZXJpbmc9dHJ1ZVxyXG4gICAgICAgIHRoaXMuX3RleHQ9bnVsbDtcclxuICAgICAgICB0aGlzLl9zcmM9bnVsbDtcclxuICAgICAgICB0aGlzLl9ibG9ja3M9bmV3IEFycmF5PEJsb2NrPigpO1xyXG4gICAgICAgIGxldCBwZD1taS5wcm9tcHREb2NcclxuICAgICAgICBpZihwZCl7XHJcbiAgICAgICAgICBsZXQgcGRCb2R5PXBkLmJvZHlcclxuICAgICAgICAgIGlmKHBkQm9keSl7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jsb2Nrcz1wZEJvZHkuYmxvY2tzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wcm9tcHRlclN0eWxlRmlsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpXHJcbiAgICAgICAgaWYodGhpcy5fYmxvY2tzKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBiaSA9IDA7IGJpIDwgdGhpcy5fYmxvY2tzLmxlbmd0aDsgYmkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmwgPSB0aGlzLl9ibG9ja3NbYmldXHJcbiAgICAgICAgICAgIGlmICgncCcgPT09IGJsLnR5cGUpIHtcclxuICAgICAgICAgICAgICBsZXQgcEJsRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3AnKVxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIHBCbEVsKVxyXG4gICAgICAgICAgICAgIGZvciAobGV0IHRpID0gMDsgdGkgPCBibC50ZXh0cy5sZW5ndGg7IHRpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB0eHQgPSBibC50ZXh0c1t0aV1cclxuICAgICAgICAgICAgICAgIGlmICh0eHQpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKCd0ZXh0JyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZFRleHRFbGVtZW50KHBCbEVsLCB0eHQpXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2ZvbnQnID09PSB0eHQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzcEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGVTdHIgPSAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eHQuc3R5bGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC1zdHlsZTogJyArIHR4dC5zdHlsZSArICc7J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHh0LnNpemUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC1zaXplOiAnICsgdHh0LnNpemUgKyAnOydcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR4dC53ZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC13ZWlnaHQ6ICcgKyB0eHQud2VpZ2h0ICsgJzsnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNwRWwuc3R5bGUgPSBzdHlsZVN0clxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocEJsRWwsIHNwRWwpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0RWxlbWVudChzcEVsLCA8VGV4dD50eHQudGV4dClcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgnbGluZWJyZWFrJyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYnJFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYnInKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocEJsRWwsIGJyRWwpXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgICAgIC8vdGhpcy5yZW5kZXJpbmc9ZmFsc2VcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbWV0eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcclxuICAgICAgICB0aGlzLl90ZXh0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9zcmMgPSBtaS5zcmNcclxuICAgICAgICBsZXQgcHJvbXB0SW1hZ2UgPSBuZXcgSW1hZ2UoKVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJQcm9tcHRDaGlsZCA9IHByb21wdEltYWdlXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIFwibWF4LXdpZHRoXCIsIFwiMTAwJVwiKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIFwibWF4LWhlaWdodFwiLCBcIjEwMCVcIilcclxuICAgICAgICB0aGlzLnByb21wdGVyU3R5bGVGaWxsID0gdHJ1ZVxyXG4gICAgICAgIC8vIFRPRE8gdmVydGljYWwgYWxpZ25tZW50XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzI3MzMzOC9ob3ctdG8tdmVydGljYWxseS1hbGlnbi1hbi1pbWFnZS1pbnNpZGUtYS1kaXZcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhwcm9tcHRJbWFnZS5uYXR1cmFsV2lkdGggKyBcInhcIitwcm9tcHRJbWFnZS5uYXR1cmFsSGVpZ2h0KTtcclxuICAgICAgICBwcm9tcHRJbWFnZS5vbmxvYWQgPSAoZXY6IEV2ZW50KSA9PiB7fVxyXG4gICAgICAgIGxldCBzcmNVcmw9dGhpcy5zcmNVcmwoKTtcclxuICAgICAgICBpZihzcmNVcmwpIHtcclxuICAgICAgICAgIHByb21wdEltYWdlLnNyYyA9IHNyY1VybDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl90ZXh0ID0gbnVsbFxyXG4gICAgICB0aGlzLl9zcmMgPSBudWxsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVklSVFVBTF9IRUlHSFQgPSA2MDA7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BST01QVF9GT05UU0laRSA9IDQ4O1xyXG5leHBvcnQgY29uc3QgTUlOX0ZPTlRfU0laRT02O1xyXG5leHBvcnQgY29uc3QgRkFMTEJBQ0tfREVGX1VTRVJfQUdFTlRfRk9OVF9TSVpFID0gMTQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0Y29udGFpbmVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxhcHAtc3BycHJvbXB0ZXIgI3Byb21wdGVyIFtwcm9qZWN0TmFtZV09XCJwcm9qZWN0TmFtZVwiIFtwcm9tcHRNZWRpYUl0ZW1zXT1cIm1lZGlhaXRlbXNcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplKydweCdcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJwckRpc3BsYXlcIiBbcHJvbXB0ZXJIZWlnaHRdPVwicHJvbXB0ZXJIZWlnaHRcIj48L2FwcC1zcHJwcm9tcHRlcj5cclxuICBgXHJcbiAgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAgZmxleDogMzsgLyogdGhlIGNvbnRhaW5lciBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBwYWRkaW5nOiAxMHB0O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgY2VudGVyICovXHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgbWluLWhlaWdodDogMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRDb250YWluZXIgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9tZWRpYWl0ZW1zOiBBcnJheTxNZWRpYWl0ZW0+fG51bGw9bnVsbDtcclxuXHJcbiAgcHJvbXB0ZXJIZWlnaHQ6IG51bWJlciA9IFZJUlRVQUxfSEVJR0hUXHJcbiAgZm9udFNpemUhOiBudW1iZXI7XHJcbiAgZm9udFNpemVDaGFuZ2U9ZmFsc2VcclxuICBjb250ZW50Q2hlY2tlZD1mYWxzZTtcclxuICBwckRpc3BsYXk9J2hpZGRlbic7XHJcbiAgZGVmYXVsdFN0eWxlITogQ1NTU3R5bGVEZWNsYXJhdGlvbjtcclxuICBkZWZhdWx0Rm9udFNpemVQeCE6IG51bWJlcjtcclxuXHJcbiAgYXV0b0ZvbnRTaXplPWZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoUHJvbXB0ZXIsIHsgc3RhdGljOiB0cnVlIH0pIHByb21wdGVyITogUHJvbXB0ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6RWxlbWVudFJlZil7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAvLyBmYWxsYmFja1xyXG4gICAgdGhpcy5kZWZhdWx0Rm9udFNpemVQeCA9IEZBTExCQUNLX0RFRl9VU0VSX0FHRU5UX0ZPTlRfU0laRTtcclxuICAgIC8vIHRyeSB0byBwYXJzZSBkZWZhdWx0IHVzZXIgYWdlbnQgZm9udCBzaXplIChubyBjb21tZW50IGFib3V0IERPTSBBUEkgZGVzaWduIDspIClcclxuICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBkZWZGb250U2l6ZVN0ciA9IHRoaXMuZGVmYXVsdFN0eWxlLmZvbnRTaXplO1xyXG4gICAgaWYgKGRlZkZvbnRTaXplU3RyKSB7XHJcbiAgICAgIGRlZkZvbnRTaXplU3RyID0gZGVmRm9udFNpemVTdHIudHJpbSgpO1xyXG4gICAgICBpZiAoZGVmRm9udFNpemVTdHIuZW5kc1dpdGgoJ3B4JykpIHtcclxuICAgICAgICAvLyBwYXJzZUZsb2F0IGlnbm9yZXMgbm9uIG51bWJlciBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQgKGFnYWluIG5vIGNvbW1lbnQgOykgKVxyXG4gICAgICAgIHRoaXMuZGVmYXVsdEZvbnRTaXplUHggPSBwYXJzZUZsb2F0KGRlZkZvbnRTaXplU3RyKTtcclxuICAgICAgICAgIC8vY29uc29sZS5pbmZvKFwiRGVmYXVsdCBmb250IHNpemU6IFwiK3RoaXMuZGVmYXVsdEZvbnRTaXplUHgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvbnRTaXplQ2hhbmdlKSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5nYWZ0ZXJjb250ZW50Y2hlY2tlZCwgY2FsbCBmb250U2l6ZVRvRml0IFwiKTtcclxuICAgICAgICAvLyBjaGVjayBwcm9tcHRlciBzaXplIGFnYWluXHJcbiAgICAgICAgdGhpcy5mb250U2l6ZVRvRml0KClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBmb250IHNpemUgd2FzIGNoZWNrZWQsIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIGFnYWluIGFmdGVyIGFuZ3VsYXIgY29udGVudCBjaGVja1xyXG4gICAgICAgIGlmICghdGhpcy5jb250ZW50Q2hlY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwibmdhZnRlcmNvbnRlbnRjaGVja2VkLCBub3QgZm9udCBzaXplIGNoYW5nZWQsIGNhbGwgXCIpO1xyXG4gICAgICAgICAgdGhpcy5mb250U2l6ZVRvRml0KClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXQgbWVkaWFpdGVtcyhtZWRpYWl0ZW1zOkFycmF5PE1lZGlhaXRlbT58bnVsbCl7XHJcblxyXG4gICAgdGhpcy5fbWVkaWFpdGVtcyA9IG1lZGlhaXRlbXNcclxuXHJcbiAgICBsZXQgbWltZXR5cGU6c3RyaW5nfG51bGw9bnVsbDtcclxuICAgIGlmICh0aGlzLl9tZWRpYWl0ZW1zICYmIHRoaXMuX21lZGlhaXRlbXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgbGV0IG1pID0gdGhpcy5fbWVkaWFpdGVtc1swXVxyXG4gICAgICBtaW1ldHlwZSA9ICd0ZXh0L3BsYWluJ1xyXG4gICAgICBpZiAobWkubWltZXR5cGUpIHtcclxuICAgICAgICBtaW1ldHlwZSA9IG1pLm1pbWV0eXBlLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBpZihtaS5kZWZhdWx0VmlydHVhbFZpZXdCb3gpe1xyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJIZWlnaHQ9bWkuZGVmYXVsdFZpcnR1YWxWaWV3Qm94LmhlaWdodFxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wcm9tcHRlckhlaWdodD1WSVJUVUFMX0hFSUdIVFxyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9tcHRlci5wcm9tcHRNZWRpYUl0ZW1zPXRoaXMuX21lZGlhaXRlbXNcclxuICAgIHRoaXMuYXV0b0ZvbnRTaXplPShtaW1ldHlwZSE9bnVsbCAmJiBtaW1ldHlwZS5zdGFydHNXaXRoKCd0ZXh0LycpKTtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplKXtcclxuICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgICB0aGlzLnByRGlzcGxheSA9ICdoaWRkZW4nXHJcbiAgICAgICAgdGhpcy5sYXlvdXQoKVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbWVkaWFpdGVtcygpOkFycmF5PE1lZGlhaXRlbT58bnVsbHtcclxuICAgICAgcmV0dXJuIHRoaXMuX21lZGlhaXRlbXM7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwib25yZXNpemUsIGNhbGwgZm9udFNpemVUb0ZpdCBob29rIFwiKTtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxheW91dCgpIHtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplICYmIHRoaXMuZWxSZWYpIHtcclxuXHJcbiAgICAgIHRoaXMuZm9udFNpemVDaGFuZ2U9dHJ1ZTtcclxuICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlXHJcbiAgICAgIHRoaXMucHJEaXNwbGF5ID0gJ2hpZGRlbidcclxuICAgICAgbGV0IGVsSCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgIC8vIHByb21wdCB0ZXh0IGZvbnQgc2l6ZSBzaG91bGQgc2NhbGUgYWNjb3JkaW5nIHRvIHByb21wdCBjb250YWluZXIgaGVpZ2h0XHJcbiAgICAgIGxldCBzY2FsZWRTaXplID0gTWF0aC5yb3VuZCgoZWxIIC8gdGhpcy5wcm9tcHRlckhlaWdodCkgKiBERUZBVUxUX1BST01QVF9GT05UU0laRSk7XHJcblxyXG4gICAgICAvLyBtaW4gcHJvbXB0IGZvbnQgc2l6ZSBpcyBkZWZhdWx0IHVzZXIgYWdlbnQgc2l6ZVxyXG4gICAgICBsZXQgbmV3U2l6ZSA9IE1hdGgubWF4KHNjYWxlZFNpemUsIHRoaXMuZGVmYXVsdEZvbnRTaXplUHgpO1xyXG4gICAgICBpZiAodGhpcy5mb250U2l6ZSAhPT0gbmV3U2l6ZSkge1xyXG4gICAgICAgIHRoaXMuZm9udFNpemUgPSBuZXdTaXplO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL2NvbnNvbGUubG9nKFwibGF5b3V0LCBjYWxsIGZvbnRTaXplVG9GaXQgaG9vayBcIik7XHJcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9udFNpemVUb0ZpdCgpKVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGZvbnRTaXplVG9GaXQoKXtcclxuICAgICAgaWYodGhpcy5wcm9tcHRlcikge1xyXG4gICAgICAgIGxldCBwVz10aGlzLnByb21wdGVyLndpZHRoKCk7XHJcbiAgICAgICAgbGV0IHBIPXRoaXMucHJvbXB0ZXIuaGVpZ2h0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX21lZGlhaXRlbXMgJiYgdGhpcy5lbFJlZiAmJiBwVyAmJiBwSCkge1xyXG4gICAgICAgICAgbGV0IG5FbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInByb21wdGVyOiBcIiArIHRoaXMucHJvbXB0ZXIud2lkdGgoKSArIFwieFwiICsgdGhpcy5wcm9tcHRlci5oZWlnaHQoKSsgXCIgZm9udCBzaXplOiBcIit0aGlzLmZvbnRTaXplKVxyXG4gICAgICAgICAgaWYgKHRoaXMuZm9udFNpemUgPj0gTUlOX0ZPTlRfU0laRSAmJiAocFcgPiBuRWwub2Zmc2V0V2lkdGggfHwgcEggPiBuRWwub2Zmc2V0SGVpZ2h0KSkge1xyXG4gICAgICAgICAgICAvLyBwcm9tcHRlciBvdmVyc2l6ZXMgcHJvbXB0ZXIgY29udGFpbmVyLiBEZWNyZWFzZSBmb250IHNpemUuXHJcbiAgICAgICAgICAgIC8vIHNldCBpbnZpc2libGUgZHVyaW5nIGZvbnQgc2l6ZSBjaGVja3NcclxuICAgICAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICAgICAgICAvLyBkZWNyZWFzZSBmb250IHNpemVcclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZSA9IHRoaXMuZm9udFNpemUgLSAxXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRGVjcmVhc2VkIGZvbnQgc2l6ZTogXCIrdGhpcy5mb250U2l6ZSApXHJcbiAgICAgICAgICAgIC8vIFNldCBmbGFnc1xyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgICAgICAgLy8gaG9vayB0aGUgbmV4dCBjaGVja1xyXG4gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvbnRTaXplVG9GaXQoKSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHByb21wdGVyIGZpdHMgaW4gIHByb21wdGVyIGNvbnRhaW5lciwgZm9udCBzaXplIHNob3VsZCBiZSBmaW5lXHJcblxyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwicHJEaXNwbGF5OiBcIit0aGlzLnByRGlzcGxheSlcclxuXHJcbiAgICAgICAgICAgIC8vaWYodGhpcy5jb250ZW50Q2hlY2tlZCAmJiAhIHRoaXMuZm9udFNpemVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRpc3BsYXkhXCIpXHJcbiAgICAgICAgICAgIC8vIHNldCBwcm9tcHRlciB2aXNpYmxlIG5vd1xyXG4gICAgICAgICAgICB0aGlzLnByRGlzcGxheSA9ICd2aXNpYmxlJ1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiUHJvbXB0IHRleHQgd2lkdGg6IFwiK3RleHRTaXplLndpZHRoK1wiIFwiK3RoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCtcInhcIit0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGluZ2NvbnRhaW5lcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8c3ByLXJlY2luc3RydWN0aW9ucyBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiIFtpdGVtQ291bnRdPVwiaXRlbUNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWNpbnN0cnVjdGlvbnNdPVwicHJvbXB0SXRlbT8ucmVjaW5zdHJ1Y3Rpb25zPy5yZWNpbnN0cnVjdGlvbnNcIj48L3Nwci1yZWNpbnN0cnVjdGlvbnM+XHJcbiAgICA8YXBwLXNwcnByb21wdGNvbnRhaW5lciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21lZGlhaXRlbXNdPVwic2hvd1Byb21wdD8ocHJvbXB0SXRlbT9wcm9tcHRJdGVtLm1lZGlhaXRlbXM6bnVsbCk6bnVsbFwiPjwvYXBwLXNwcnByb21wdGNvbnRhaW5lcj5cclxuXHJcbiAgYFxyXG4gICxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleDogMzsgLyogdGhlIGNvbnRhaW5lciBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBwYWRkaW5nOiAxMHB0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdGluZ0NvbnRhaW5lciB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwcm9tcHRJdGVtOiBQcm9tcHRJdGVtfG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBzaG93UHJvbXB0OiBib29sZWFuPWZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbUlkeCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpdGVtQ291bnQ6IG51bWJlcnx1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHRyYW5zcG9ydEFjdGlvbnMhOiBUcmFuc3BvcnRBY3Rpb25zO1xyXG5cclxuICBwcml2YXRlIGUhOiBIVE1MRGl2RWxlbWVudDtcclxuICBwcml2YXRlIHN0YXJ0WDogbnVtYmVyIHwgbnVsbCA9IG51bGxcclxuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lU3RhbXA6IG51bWJlciB8IG51bGw9bnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHR5cGUgVG91Y2hTdGFydCA9IHt9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoc3RhcnQoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBzdGFydCEgXCIpXHJcbiAgICBpZiAoISh0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQgJiZcclxuICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQpKSB7XHJcbiAgICAgIGxldCB0YXJnZXRUb3VjaGVzTGVuID0gZXYudGFyZ2V0VG91Y2hlcy5sZW5ndGg7XHJcbiAgICAgIC8vZm9yKGxldCB0aT0wO3RpPGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO3RpKyspe1xyXG4gICAgICAvL2xldCB0PWV2LnRhcmdldFRvdWNoZXMuaXRlbSh0aSk7XHJcbiAgICAgIC8vIEFsbCB4IHZhbHVlcyBhcmUgdGhlIHNhbWUgPz9cclxuICAgICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoICNcIit0aStcIjogcGFnZVg6IFwiK3QucGFnZVgrXCIgY2xpZW50WDogXCIrdC5jbGllbnRYK1wiIHNjcmVlblg6IFwiK3Quc2NyZWVuWClcclxuICAgICAgLy99XHJcbiAgICAgIGlmICh0YXJnZXRUb3VjaGVzTGVuID09IDEpIHtcclxuICAgICAgICAvLyBzaW5nbGUgdG91Y2hcclxuICAgICAgICBsZXQgdCA9IGV2LnRhcmdldFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydFggPSBNYXRoLnJvdW5kKHQuc2NyZWVuWCk7XHJcbiAgICAgICAgICB0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXAgPSBldi50aW1lU3RhbXA7XHJcbiAgICAgICAgICB0aGlzLmUuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBzdGFydCB4OiBcIit0aGlzLnN0YXJ0WClcclxuICAgICAgICAgIC8vZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaEVuZChldjogVG91Y2hFdmVudCB8IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIGVuZCFcIilcclxuICAgIC8vIFJlc2V0IG9mZnNldCBzaGlmdFxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG5cclxuICAgICAgbGV0IGNoYW5nZWRUb3VjaGVzTGVuID0gZXYuY2hhbmdlZFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKGNoYW5nZWRUb3VjaGVzTGVuK1wiIFwiK3RoaXMuc3RhcnRYKVxyXG4gICAgICBpZiAoY2hhbmdlZFRvdWNoZXNMZW4gPT0gMSAmJiB0aGlzLnN0YXJ0WCkge1xyXG4gICAgICAgIC8vIHNpbmdsZSB0b3VjaFxyXG4gICAgICAgIGxldCB0ID0gZXYuY2hhbmdlZFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgbGV0IGRlbHRhWCA9IE1hdGgucm91bmQodC5jbGllbnRYIC0gdGhpcy5zdGFydFgpO1xyXG4gICAgICAgICAgbGV0IHRvdWNoTW92ZVNwZWVkID0gMDtcclxuICAgICAgICAgIGlmICh0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXApIHtcclxuICAgICAgICAgICAgdG91Y2hNb3ZlU3BlZWQgPSBkZWx0YVggLyAoZXYudGltZVN0YW1wIC0gdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBmdXR1cmVEZWx0YVggPSBkZWx0YVggKyAoODAwICogdG91Y2hNb3ZlU3BlZWQpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRlbHRhWDogXCIgKyBkZWx0YVggKyBcIiBGdXR1cmUgZGVsdGFYOiBcIiArIGZ1dHVyZURlbHRhWCArIFwiICB3aWR0aDogXCIgKyB0aGlzLmUub2Zmc2V0V2lkdGgpXHJcbiAgICAgICAgICBpZiAoZnV0dXJlRGVsdGFYID4gdGhpcy5lLm9mZnNldFdpZHRoIC8gMikge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiU3dpcGUgcmlnaHQgZGV0ZWN0ZWQhIVwiKVxyXG4gICAgICAgICAgICAvL3RoaXMuc3dpcGVkUmlnaHQuZW1pdCgpXHJcbiAgICAgICAgICAgIGlmICghdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gLXRoaXMuZS5vZmZzZXRMZWZ0ICsgXCJweFwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKC1mdXR1cmVEZWx0YVggPiB0aGlzLmUub2Zmc2V0V2lkdGggLyAyKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJTd2lwZSBsZWZ0IGRldGVjdGVkISFcIilcclxuICAgICAgICAgICAgdGhpcy5lLnN0eWxlLmxlZnQgPSAtdGhpcy5lLm9mZnNldExlZnQgKyBcInB4XCI7XHJcbiAgICAgICAgICAgIC8vdGhpcy5zd2lwZWRMZWZ0LmVtaXQoKVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gcmVzZXQgYW5pbWF0ZWRcclxuICAgICAgdGhpcy5lLnN0eWxlLnRyYW5zaXRpb24gPSBcImxlZnQgMC44c1wiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydFggPSBudWxsO1xyXG4gICAgdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNobW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaE1vdmUoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBtb3ZlIVwiKVxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG4gICAgICBsZXQgdGFyZ2V0VG91Y2hlc0xlbiA9IGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICBpZiAodGFyZ2V0VG91Y2hlc0xlbiA9PSAxICYmIHRoaXMuc3RhcnRYKSB7XHJcbiAgICAgICAgLy8gc2luZ2xlIHRvdWNoXHJcbiAgICAgICAgbGV0IHQgPSBldi50YXJnZXRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIGxldCBkZWx0YVggPSBNYXRoLnJvdW5kKHQuc2NyZWVuWCAtIHRoaXMuc3RhcnRYKTtcclxuICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gZGVsdGFYICsgXCJweFwiO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJUb3VjaCBtb3ZlIGRlbHRhIHg6IFwiK2RlbHRhWClcclxuICAgICAgICB9XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hDYW5jZWwoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBjYW5jZWwhXCIpXHJcbiAgICB0aGlzLmUuc3R5bGUubGVmdCA9IFwiMHB4XCI7XHJcbiAgICAvL2V2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRpbmcnLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhcHAtc2ltcGxldHJhZmZpY2xpZ2h0IFtzdGF0dXNdPVwic3RhcnRTdG9wU2lnbmFsU3RhdGVcIj48L2FwcC1zaW1wbGV0cmFmZmljbGlnaHQ+XHJcbiAgICA8YXBwLXNwcnByb21wdGluZ2NvbnRhaW5lciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIiBbcHJvbXB0SXRlbV09XCJwcm9tcHRJdGVtXCIgW3Nob3dQcm9tcHRdPVwic2hvd1Byb21wdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbUNvdW50XT1cIml0ZW1zPy5sZW5ndGhcIiBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNwb3J0QWN0aW9uc109XCJ0cmFuc3BvcnRBY3Rpb25zXCI+PC9hcHAtc3BycHJvbXB0aW5nY29udGFpbmVyPlxyXG4gICAgPGFwcC1zcHJwcm9ncmVzcyBmeEhpZGUueHMgW2l0ZW1zXT1cIml0ZW1zXCIgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob25Sb3dTZWxlY3QpPVwiaXRlbVNlbGVjdCgkZXZlbnQpXCI+PC9hcHAtc3BycHJvZ3Jlc3M+XHJcbiAgICA8ZGl2IGZ4SGlkZS54cyAjYXNDdCBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZFwiPlxyXG5cclxuICAgICAgPGFwcC1hdWRpb2Rpc3BsYXkgI2F1ZGlvU2lnbmFsQ29udGFpbmVyIFtjbGFzcy5hY3RpdmVdPVwiIWF1ZGlvU2lnbmFsQ29sbGFwc2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1ZGlvQ2xpcF09XCJkaXNwbGF5QXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiPjwvYXBwLWF1ZGlvZGlzcGxheT5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcblxyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCB0cmFmZmljIGxpZ2h0LCByaWdodCBwcm9tcHRlciAoY29udGFpbmVyKSAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogbm93cmFwOyAvKiB3cmFwIGNvdWxkIGNvbXBsZXRlbHkgZGVzdHJveSB0aGUgbGF5b3V0ICovXHJcbiAgfWAsIGBcclxuICAgIGFwcC1zaW1wbGV0cmFmZmljbGlnaHQge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICBgLCBgXHJcbiAgICBhcHAtc3BycHJvZ3Jlc3Mge1xyXG4gICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblxyXG4gICAgICAvKiBoZWlnaHQ6IDUwJTsgKi9cclxuICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcblxyXG4gICAgICAvKiBvdmVyZmxvdzogaGlkZGVuOyAqL1xyXG5cclxuICAgICAgLyogbWFyZ2luOiAyMHB4OyAqL1xyXG4gICAgICAvKiBib3JkZXI6IDIwcHg7ICovXHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmVkOyAqL1xyXG4gICAgfWAsIGBcclxuICAgIGRpdi5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAvKmxlZnQ6IDBweDsgKi9cclxuXHJcbiAgICAgIGhlaWdodDogOTAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIC8qIG1hcmdpbjogMjBweDsgKi9cclxuICAgICAgLyogYm9yZGVyOiAyMHB4OyAqL1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcblxyXG4gICAgfWBcclxuICBdXHJcblxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb21wdGluZyB7XHJcbiAgQFZpZXdDaGlsZChTaW1wbGVUcmFmZmljTGlnaHQsIHsgc3RhdGljOiB0cnVlIH0pIHNpbXBsZVRyYWZmaWNMaWdodCE6IFNpbXBsZVRyYWZmaWNMaWdodDtcclxuICBAVmlld0NoaWxkKEF1ZGlvRGlzcGxheSwgeyBzdGF0aWM6IHRydWUgfSkgYXVkaW9EaXNwbGF5ITogQXVkaW9EaXNwbGF5O1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc3RhcnRTdG9wU2lnbmFsU3RhdGUhOiBTdGFydFN0b3BTaWduYWxTdGF0ZTtcclxuICBASW5wdXQoKSBwcm9tcHRJdGVtOiBQcm9tcHRJdGVtIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHNob3dQcm9tcHQ6IGJvb2xlYW49ZmFsc2U7XHJcbiAgQElucHV0KCkgaXRlbXM6IEFycmF5PEl0ZW0+fG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcbiAgQElucHV0KCkgZW5hYmxlRG93bmxvYWQ6IGJvb2xlYW49ZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIG9uTmV4dEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUHJldkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGl0ZW1TZWxlY3Qocm93SWR4OiBudW1iZXIpIHtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0LmVtaXQocm93SWR4KTtcclxuICB9XHJcblxyXG4gIG5leHRJdGVtKCkge1xyXG4gICAgdGhpcy5vbk5leHRJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByZXZJdGVtKCkge1xyXG4gICAgdGhpcy5vblByZXZJdGVtLmVtaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
779
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcHJvbXB0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFJWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBd0J2RCxNQUFNLE9BQU8sZUFBZTtJQUsxQixXQUFXO1FBQ1QsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQ3hDLEtBQUssR0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxHQUFHLEdBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBRyxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQ3RCLEtBQUssR0FBQyxLQUFLLEdBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDdkM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzZHQWRVLGVBQWU7aUdBQWYsZUFBZSx1S0FoQmhCOzs7R0FHVDs0RkFhVSxlQUFlO2tCQXBCM0IsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUscUJBQXFCO29CQUUvQixRQUFRLEVBQUU7OztHQUdUO29CQUNELE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7O0dBVVIsQ0FBQztpQkFDSDs4QkFFVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVB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LGtCQUFrQjs0RkE4TmxCLFNBQVM7a0JBOUZyQixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSxrQkFBa0I7b0JBRTVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBa0JQLEVBQUU7Ozs7OztHQU1ILEVBQUU7Ozs7R0FJRixFQUFFOzs7Ozs7Ozs7Ozs7Ozs7TUFlQyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJGO3FCQUNIO2lCQUVGOzhCQUdrRCxrQkFBa0I7c0JBQWxFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNKLFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDaEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEFmdGVyQ29udGVudENoZWNrZWRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtTaW1wbGVUcmFmZmljTGlnaHR9IGZyb20gXCIuLi9zdGFydHN0b3BzaWduYWwvdWkvc2ltcGxldHJhZmZpY2xpZ2h0XCI7XHJcbmltcG9ydCB7U3RhdGUgYXMgU3RhcnRTdG9wU2lnbmFsU3RhdGV9IGZyb20gXCIuLi9zdGFydHN0b3BzaWduYWwvc3RhcnRzdG9wc2lnbmFsXCI7XHJcbmltcG9ydCB7SXRlbX0gZnJvbSBcIi4vaXRlbVwiO1xyXG5pbXBvcnQge0Jsb2NrLCBUZXh0LCBNZWRpYWl0ZW0sIFByb21wdEl0ZW19IGZyb20gXCIuLi9zY3JpcHQvc2NyaXB0XCI7XHJcbmltcG9ydCB7VHJhbnNwb3J0QWN0aW9uc30gZnJvbSBcIi4vY29udHJvbHBhbmVsXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheX0gZnJvbSBcIi4uLy4uL2F1ZGlvL2F1ZGlvX2Rpc3BsYXlcIjtcclxuaW1wb3J0IHtQcm9qZWN0U2VydmljZX0gZnJvbSBcIi4uL3Byb2plY3QvcHJvamVjdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXVkaW9DbGlwfSBmcm9tIFwiLi4vLi4vYXVkaW8vcGVyc2lzdG9yXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdzcHItcmVjaW5zdHJ1Y3Rpb25zJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICB7e2Rpc3BsYXlUZXh0KCl9fVxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyICovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogYWxpZ24gdmVydGljYWwgIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmbGV4OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNpbnN0cnVjdGlvbnMge1xyXG4gIEBJbnB1dCgpIHJlY2luc3RydWN0aW9uczogc3RyaW5nfG51bGx8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHg6IG51bWJlcnxudWxsfHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpdGVtQ291bnQ6IG51bWJlcnx1bmRlZmluZWQ7XHJcblxyXG4gIGRpc3BsYXlUZXh0KCk6c3RyaW5ne1xyXG4gICAgbGV0IHJpVHh0OnN0cmluZz0nJztcclxuICAgIGlmKHRoaXMuaXRlbUNvdW50ICYmIHRoaXMuc2VsZWN0ZWRJdGVtSWR4KXtcclxuICAgICAgcmlUeHQ9cmlUeHQrdGhpcy5zZWxlY3RlZEl0ZW1JZHgrJy8nKyh0aGlzLml0ZW1Db3VudC0xKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMucmVjaW5zdHJ1Y3Rpb25zKXtcclxuICAgICAgcmlUeHQ9cmlUeHQrJzogJyt0aGlzLnJlY2luc3RydWN0aW9ucztcclxuICAgIH1cclxuICAgIHJldHVybiByaVR4dDtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRlcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPCEtLTxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ0ZXh0XCI+e3t0ZXh0fX08L25nLXRlbXBsYXRlPi0tPlxyXG4gICAgPCEtLSA8aW1nICpuZ0lmPVwic3JjXCIgI3Byb21wdEltYWdlIFtzcmNdPVwic3JjVXJsKClcIiBbaGVpZ2h0XT1cInByb21wdGVySGVpZ2h0LTIwXCIgLz4gLS0+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG5cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciAqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvKiBmb250LXNpemU6IDJlbTsgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgLyogVXNlIG9ubHkgbmF0dXJhbCBzaXplIG9mIHRoZSBwcm9tcHQgKi9cclxuICAgIC8qIFRoZSBwcm9tcHRlciBjb21wbmVudCB0aGVuIGV0cyBhbGlnbmVkIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cclxuICAgIGZsZXg6IDAgMTtcclxuXHJcbiAgfWAsIGA6aG9zdCguZmlsbCkge1xyXG4gICAgLyogVXNlIGFsbCBzcGFjZSB0byBzY2FsZSBpbWFnZXMgKi9cclxuICAgIGZsZXg6IDM7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAvKiBBIHNlcGFyYXRlIGZsZXggY29udGFpbmVyIG1pZ2h0IGJlIG5lY2Vzc2F5ciB0byBhbGlnaG4gY2VudGVyZWQgKi9cclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFRPRE8gZG9lcyBub3Qgd29yaywgaW1hZ2UgaXMgbm90IHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cclxuICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdGVyIHtcclxuICBASW5wdXQoKSBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX3Byb21wdE1lZGlhSXRlbXM6IEFycmF5PE1lZGlhaXRlbT58bnVsbHx1bmRlZmluZWQ9bnVsbFxyXG5cclxuICBASW5wdXQoKSBwcm9tcHRlckhlaWdodDogbnVtYmVyPTA7XHJcbiAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nfHVuZGVmaW5lZHxudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9zcmM6IHN0cmluZ3x1bmRlZmluZWR8bnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfYmxvY2tzOiBBcnJheTxCbG9jaz58dW5kZWZpbmVkO1xyXG4gIG1pbWV0eXBlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VyclByb21wdENoaWxkOiBIVE1MRWxlbWVudHxudWxsID0gbnVsbDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxsJykgcHVibGljIHByb21wdGVyU3R5bGVGaWxsID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgdGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNyYygpIHtcclxuICAgIHJldHVybiB0aGlzLl9zcmM7XHJcbiAgfVxyXG5cclxuICBzcmNVcmwoKTogc3RyaW5nfG51bGx7XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0TmFtZSAmJiB0aGlzLl9zcmMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdFJlc291cmNlVXJsKHRoaXMucHJvamVjdE5hbWUsIHRoaXMuX3NyYyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gICAgd2lkdGgoKTpudW1iZXJ8bnVsbHtcclxuICAgICAgaWYodGhpcy5lbFJlZil7XHJcbiAgICAgICAgaWYodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGhlaWdodCgpOm51bWJlcnxudWxse1xyXG4gICAgICAgIGlmKHRoaXMuZWxSZWYpe1xyXG4gICAgICAgICAgICBpZih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFwcGVuZFRleHRFbGVtZW50KHBhcmVudEVsOkhUTUxFbGVtZW50LHR4dDpUZXh0KXtcclxuICAgICAgbGV0IHQ6IHN0cmluZyA9IDxzdHJpbmc+dHh0LnRleHRcclxuICAgICAgbGV0IHR4dE5kID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHQpXHJcbiAgICAgIGlmKHR4dC5kZWNvcmF0aW9uIHx8IHR4dC5jb2xvcil7XHJcbiAgICAgICAgbGV0IHNwRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxyXG4gICAgICAgIGxldCBzdHlsZVN0cj0nJ1xyXG4gICAgICAgIGlmKHR4dC5kZWNvcmF0aW9uKSB7XHJcbiAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsndGV4dC1kZWNvcmF0aW9uOiAnICsgdHh0LmRlY29yYXRpb24rJzsnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHR4dC5jb2xvcil7XHJcbiAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsnY29sb3I6ICcgKyB0eHQuY29sb3IrJzsnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNwRWwuc3R5bGU9c3R5bGVTdHJcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudEVsLCBzcEVsKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3BFbCwgdHh0TmQpXHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudEVsLCB0eHROZClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcHJvbXB0TWVkaWFJdGVtcyhwTWlzOiBBcnJheTxNZWRpYWl0ZW0+fG51bGwpIHtcclxuICAgIHRoaXMuX3Byb21wdE1lZGlhSXRlbXMgPSBwTWlzXHJcbiAgICBpZiAodGhpcy5jdXJyUHJvbXB0Q2hpbGQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fcHJvbXB0TWVkaWFJdGVtcyAmJiB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGxldCBtaSA9IHRoaXMuX3Byb21wdE1lZGlhSXRlbXNbMF1cclxuICAgICAgdGhpcy5taW1ldHlwZSA9ICd0ZXh0L3BsYWluJ1xyXG4gICAgICBpZiAobWkubWltZXR5cGUpIHtcclxuICAgICAgICB0aGlzLm1pbWV0eXBlID0gbWkubWltZXR5cGUudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1pbWV0eXBlID09PSAndGV4dC9wbGFpbicpIHtcclxuICAgICAgICB0aGlzLl90ZXh0ID0gbWkudGV4dFxyXG4gICAgICAgIHRoaXMuX3NyYyA9IG51bGw7XHJcbiAgICAgICAgbGV0IHByVHh0PScnO1xyXG4gICAgICAgIGlmKHRoaXMuX3RleHQpe1xyXG4gICAgICAgICAgcHJUeHQ9dGhpcy5fdGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocHJUeHQpO1xyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJTdHlsZUZpbGwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWltZXR5cGUgPT09ICd0ZXh0L3gtcHJvbXB0Jykge1xyXG4gICAgICAgIC8vdGhpcy5yZW5kZXJpbmc9dHJ1ZVxyXG4gICAgICAgIHRoaXMuX3RleHQ9bnVsbDtcclxuICAgICAgICB0aGlzLl9zcmM9bnVsbDtcclxuICAgICAgICB0aGlzLl9ibG9ja3M9bmV3IEFycmF5PEJsb2NrPigpO1xyXG4gICAgICAgIGxldCBwZD1taS5wcm9tcHREb2NcclxuICAgICAgICBpZihwZCl7XHJcbiAgICAgICAgICBsZXQgcGRCb2R5PXBkLmJvZHlcclxuICAgICAgICAgIGlmKHBkQm9keSl7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jsb2Nrcz1wZEJvZHkuYmxvY2tzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wcm9tcHRlclN0eWxlRmlsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpXHJcbiAgICAgICAgaWYodGhpcy5fYmxvY2tzKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBiaSA9IDA7IGJpIDwgdGhpcy5fYmxvY2tzLmxlbmd0aDsgYmkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmwgPSB0aGlzLl9ibG9ja3NbYmldXHJcbiAgICAgICAgICAgIGlmICgncCcgPT09IGJsLnR5cGUpIHtcclxuICAgICAgICAgICAgICBsZXQgcEJsRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3AnKVxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIHBCbEVsKVxyXG4gICAgICAgICAgICAgIGZvciAobGV0IHRpID0gMDsgdGkgPCBibC50ZXh0cy5sZW5ndGg7IHRpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB0eHQgPSBibC50ZXh0c1t0aV1cclxuICAgICAgICAgICAgICAgIGlmICh0eHQpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKCd0ZXh0JyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZFRleHRFbGVtZW50KHBCbEVsLCB0eHQpXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2ZvbnQnID09PSB0eHQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzcEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGVTdHIgPSAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eHQuc3R5bGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC1zdHlsZTogJyArIHR4dC5zdHlsZSArICc7J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHh0LnNpemUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC1zaXplOiAnICsgdHh0LnNpemUgKyAnOydcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR4dC53ZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC13ZWlnaHQ6ICcgKyB0eHQud2VpZ2h0ICsgJzsnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNwRWwuc3R5bGUgPSBzdHlsZVN0clxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocEJsRWwsIHNwRWwpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0RWxlbWVudChzcEVsLCA8VGV4dD50eHQudGV4dClcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgnbGluZWJyZWFrJyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYnJFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYnInKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocEJsRWwsIGJyRWwpXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgICAgIC8vdGhpcy5yZW5kZXJpbmc9ZmFsc2VcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbWV0eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcclxuICAgICAgICB0aGlzLl90ZXh0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9zcmMgPSBtaS5zcmNcclxuICAgICAgICBsZXQgcHJvbXB0SW1hZ2UgPSBuZXcgSW1hZ2UoKVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJQcm9tcHRDaGlsZCA9IHByb21wdEltYWdlXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIFwibWF4LXdpZHRoXCIsIFwiMTAwJVwiKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIFwibWF4LWhlaWdodFwiLCBcIjEwMCVcIilcclxuICAgICAgICB0aGlzLnByb21wdGVyU3R5bGVGaWxsID0gdHJ1ZVxyXG4gICAgICAgIC8vIFRPRE8gdmVydGljYWwgYWxpZ25tZW50XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzI3MzMzOC9ob3ctdG8tdmVydGljYWxseS1hbGlnbi1hbi1pbWFnZS1pbnNpZGUtYS1kaXZcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhwcm9tcHRJbWFnZS5uYXR1cmFsV2lkdGggKyBcInhcIitwcm9tcHRJbWFnZS5uYXR1cmFsSGVpZ2h0KTtcclxuICAgICAgICBwcm9tcHRJbWFnZS5vbmxvYWQgPSAoZXY6IEV2ZW50KSA9PiB7fVxyXG4gICAgICAgIGxldCBzcmNVcmw9dGhpcy5zcmNVcmwoKTtcclxuICAgICAgICBpZihzcmNVcmwpIHtcclxuICAgICAgICAgIHByb21wdEltYWdlLnNyYyA9IHNyY1VybDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl90ZXh0ID0gbnVsbFxyXG4gICAgICB0aGlzLl9zcmMgPSBudWxsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVklSVFVBTF9IRUlHSFQgPSA2MDA7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BST01QVF9GT05UU0laRSA9IDQ4O1xyXG5leHBvcnQgY29uc3QgTUlOX0ZPTlRfU0laRT02O1xyXG5leHBvcnQgY29uc3QgRkFMTEJBQ0tfREVGX1VTRVJfQUdFTlRfRk9OVF9TSVpFID0gMTQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0Y29udGFpbmVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxhcHAtc3BycHJvbXB0ZXIgI3Byb21wdGVyIFtwcm9qZWN0TmFtZV09XCJwcm9qZWN0TmFtZVwiIFtwcm9tcHRNZWRpYUl0ZW1zXT1cIm1lZGlhaXRlbXNcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplKydweCdcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJwckRpc3BsYXlcIiBbcHJvbXB0ZXJIZWlnaHRdPVwicHJvbXB0ZXJIZWlnaHRcIj48L2FwcC1zcHJwcm9tcHRlcj5cclxuICBgXHJcbiAgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAgZmxleDogMzsgLyogdGhlIGNvbnRhaW5lciBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBwYWRkaW5nOiAxMHB0O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgY2VudGVyICovXHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgbWluLWhlaWdodDogMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRDb250YWluZXIgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9tZWRpYWl0ZW1zOiBBcnJheTxNZWRpYWl0ZW0+fG51bGw9bnVsbDtcclxuXHJcbiAgcHJvbXB0ZXJIZWlnaHQ6IG51bWJlciA9IFZJUlRVQUxfSEVJR0hUXHJcbiAgZm9udFNpemUhOiBudW1iZXI7XHJcbiAgZm9udFNpemVDaGFuZ2U9ZmFsc2VcclxuICBjb250ZW50Q2hlY2tlZD1mYWxzZTtcclxuICBwckRpc3BsYXk9J2hpZGRlbic7XHJcbiAgZGVmYXVsdFN0eWxlITogQ1NTU3R5bGVEZWNsYXJhdGlvbjtcclxuICBkZWZhdWx0Rm9udFNpemVQeCE6IG51bWJlcjtcclxuXHJcbiAgYXV0b0ZvbnRTaXplPWZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoUHJvbXB0ZXIsIHsgc3RhdGljOiB0cnVlIH0pIHByb21wdGVyITogUHJvbXB0ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6RWxlbWVudFJlZil7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAvLyBmYWxsYmFja1xyXG4gICAgdGhpcy5kZWZhdWx0Rm9udFNpemVQeCA9IEZBTExCQUNLX0RFRl9VU0VSX0FHRU5UX0ZPTlRfU0laRTtcclxuICAgIC8vIHRyeSB0byBwYXJzZSBkZWZhdWx0IHVzZXIgYWdlbnQgZm9udCBzaXplIChubyBjb21tZW50IGFib3V0IERPTSBBUEkgZGVzaWduIDspIClcclxuICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBkZWZGb250U2l6ZVN0ciA9IHRoaXMuZGVmYXVsdFN0eWxlLmZvbnRTaXplO1xyXG4gICAgaWYgKGRlZkZvbnRTaXplU3RyKSB7XHJcbiAgICAgIGRlZkZvbnRTaXplU3RyID0gZGVmRm9udFNpemVTdHIudHJpbSgpO1xyXG4gICAgICBpZiAoZGVmRm9udFNpemVTdHIuZW5kc1dpdGgoJ3B4JykpIHtcclxuICAgICAgICAvLyBwYXJzZUZsb2F0IGlnbm9yZXMgbm9uIG51bWJlciBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQgKGFnYWluIG5vIGNvbW1lbnQgOykgKVxyXG4gICAgICAgIHRoaXMuZGVmYXVsdEZvbnRTaXplUHggPSBwYXJzZUZsb2F0KGRlZkZvbnRTaXplU3RyKTtcclxuICAgICAgICAgIC8vY29uc29sZS5pbmZvKFwiRGVmYXVsdCBmb250IHNpemU6IFwiK3RoaXMuZGVmYXVsdEZvbnRTaXplUHgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvbnRTaXplQ2hhbmdlKSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5nYWZ0ZXJjb250ZW50Y2hlY2tlZCwgY2FsbCBmb250U2l6ZVRvRml0IFwiKTtcclxuICAgICAgICAvLyBjaGVjayBwcm9tcHRlciBzaXplIGFnYWluXHJcbiAgICAgICAgdGhpcy5mb250U2l6ZVRvRml0KClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBmb250IHNpemUgd2FzIGNoZWNrZWQsIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIGFnYWluIGFmdGVyIGFuZ3VsYXIgY29udGVudCBjaGVja1xyXG4gICAgICAgIGlmICghdGhpcy5jb250ZW50Q2hlY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwibmdhZnRlcmNvbnRlbnRjaGVja2VkLCBub3QgZm9udCBzaXplIGNoYW5nZWQsIGNhbGwgXCIpO1xyXG4gICAgICAgICAgdGhpcy5mb250U2l6ZVRvRml0KClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXQgbWVkaWFpdGVtcyhtZWRpYWl0ZW1zOkFycmF5PE1lZGlhaXRlbT58bnVsbCl7XHJcblxyXG4gICAgdGhpcy5fbWVkaWFpdGVtcyA9IG1lZGlhaXRlbXNcclxuXHJcbiAgICBsZXQgbWltZXR5cGU6c3RyaW5nfG51bGw9bnVsbDtcclxuICAgIGlmICh0aGlzLl9tZWRpYWl0ZW1zICYmIHRoaXMuX21lZGlhaXRlbXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgbGV0IG1pID0gdGhpcy5fbWVkaWFpdGVtc1swXVxyXG4gICAgICBtaW1ldHlwZSA9ICd0ZXh0L3BsYWluJ1xyXG4gICAgICBpZiAobWkubWltZXR5cGUpIHtcclxuICAgICAgICBtaW1ldHlwZSA9IG1pLm1pbWV0eXBlLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBpZihtaS5kZWZhdWx0VmlydHVhbFZpZXdCb3gpe1xyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJIZWlnaHQ9bWkuZGVmYXVsdFZpcnR1YWxWaWV3Qm94LmhlaWdodFxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wcm9tcHRlckhlaWdodD1WSVJUVUFMX0hFSUdIVFxyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9tcHRlci5wcm9tcHRNZWRpYUl0ZW1zPXRoaXMuX21lZGlhaXRlbXNcclxuICAgIHRoaXMuYXV0b0ZvbnRTaXplPShtaW1ldHlwZSE9bnVsbCAmJiBtaW1ldHlwZS5zdGFydHNXaXRoKCd0ZXh0LycpKTtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplKXtcclxuICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgICB0aGlzLnByRGlzcGxheSA9ICdoaWRkZW4nXHJcbiAgICAgICAgdGhpcy5sYXlvdXQoKVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbWVkaWFpdGVtcygpOkFycmF5PE1lZGlhaXRlbT58bnVsbHtcclxuICAgICAgcmV0dXJuIHRoaXMuX21lZGlhaXRlbXM7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwib25yZXNpemUsIGNhbGwgZm9udFNpemVUb0ZpdCBob29rIFwiKTtcclxuICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxheW91dCgpIHtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplICYmIHRoaXMuZWxSZWYpIHtcclxuXHJcbiAgICAgIHRoaXMuZm9udFNpemVDaGFuZ2U9dHJ1ZTtcclxuICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlXHJcbiAgICAgIHRoaXMucHJEaXNwbGF5ID0gJ2hpZGRlbidcclxuICAgICAgbGV0IGVsSCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgIC8vIHByb21wdCB0ZXh0IGZvbnQgc2l6ZSBzaG91bGQgc2NhbGUgYWNjb3JkaW5nIHRvIHByb21wdCBjb250YWluZXIgaGVpZ2h0XHJcbiAgICAgIGxldCBzY2FsZWRTaXplID0gTWF0aC5yb3VuZCgoZWxIIC8gdGhpcy5wcm9tcHRlckhlaWdodCkgKiBERUZBVUxUX1BST01QVF9GT05UU0laRSk7XHJcblxyXG4gICAgICAvLyBtaW4gcHJvbXB0IGZvbnQgc2l6ZSBpcyBkZWZhdWx0IHVzZXIgYWdlbnQgc2l6ZVxyXG4gICAgICBsZXQgbmV3U2l6ZSA9IE1hdGgubWF4KHNjYWxlZFNpemUsIHRoaXMuZGVmYXVsdEZvbnRTaXplUHgpO1xyXG4gICAgICBpZiAodGhpcy5mb250U2l6ZSAhPT0gbmV3U2l6ZSkge1xyXG4gICAgICAgIHRoaXMuZm9udFNpemUgPSBuZXdTaXplO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL2NvbnNvbGUubG9nKFwibGF5b3V0LCBjYWxsIGZvbnRTaXplVG9GaXQgaG9vayBcIik7XHJcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9udFNpemVUb0ZpdCgpKVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGZvbnRTaXplVG9GaXQoKXtcclxuICAgICAgaWYodGhpcy5wcm9tcHRlcikge1xyXG4gICAgICAgIGxldCBwVz10aGlzLnByb21wdGVyLndpZHRoKCk7XHJcbiAgICAgICAgbGV0IHBIPXRoaXMucHJvbXB0ZXIuaGVpZ2h0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX21lZGlhaXRlbXMgJiYgdGhpcy5lbFJlZiAmJiBwVyAmJiBwSCkge1xyXG4gICAgICAgICAgbGV0IG5FbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInByb21wdGVyOiBcIiArIHRoaXMucHJvbXB0ZXIud2lkdGgoKSArIFwieFwiICsgdGhpcy5wcm9tcHRlci5oZWlnaHQoKSsgXCIgZm9udCBzaXplOiBcIit0aGlzLmZvbnRTaXplKVxyXG4gICAgICAgICAgaWYgKHRoaXMuZm9udFNpemUgPj0gTUlOX0ZPTlRfU0laRSAmJiAocFcgPiBuRWwub2Zmc2V0V2lkdGggfHwgcEggPiBuRWwub2Zmc2V0SGVpZ2h0KSkge1xyXG4gICAgICAgICAgICAvLyBwcm9tcHRlciBvdmVyc2l6ZXMgcHJvbXB0ZXIgY29udGFpbmVyLiBEZWNyZWFzZSBmb250IHNpemUuXHJcbiAgICAgICAgICAgIC8vIHNldCBpbnZpc2libGUgZHVyaW5nIGZvbnQgc2l6ZSBjaGVja3NcclxuICAgICAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICAgICAgICAvLyBkZWNyZWFzZSBmb250IHNpemVcclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZSA9IHRoaXMuZm9udFNpemUgLSAxXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRGVjcmVhc2VkIGZvbnQgc2l6ZTogXCIrdGhpcy5mb250U2l6ZSApXHJcbiAgICAgICAgICAgIC8vIFNldCBmbGFnc1xyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgICAgICAgLy8gaG9vayB0aGUgbmV4dCBjaGVja1xyXG4gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvbnRTaXplVG9GaXQoKSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHByb21wdGVyIGZpdHMgaW4gIHByb21wdGVyIGNvbnRhaW5lciwgZm9udCBzaXplIHNob3VsZCBiZSBmaW5lXHJcblxyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwicHJEaXNwbGF5OiBcIit0aGlzLnByRGlzcGxheSlcclxuXHJcbiAgICAgICAgICAgIC8vaWYodGhpcy5jb250ZW50Q2hlY2tlZCAmJiAhIHRoaXMuZm9udFNpemVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRpc3BsYXkhXCIpXHJcbiAgICAgICAgICAgIC8vIHNldCBwcm9tcHRlciB2aXNpYmxlIG5vd1xyXG4gICAgICAgICAgICB0aGlzLnByRGlzcGxheSA9ICd2aXNpYmxlJ1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiUHJvbXB0IHRleHQgd2lkdGg6IFwiK3RleHRTaXplLndpZHRoK1wiIFwiK3RoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCtcInhcIit0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGluZ2NvbnRhaW5lcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8c3ByLXJlY2luc3RydWN0aW9ucyBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiIFtpdGVtQ291bnRdPVwiaXRlbUNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWNpbnN0cnVjdGlvbnNdPVwicHJvbXB0SXRlbT8ucmVjaW5zdHJ1Y3Rpb25zPy5yZWNpbnN0cnVjdGlvbnNcIj48L3Nwci1yZWNpbnN0cnVjdGlvbnM+XHJcbiAgICA8YXBwLXNwcnByb21wdGNvbnRhaW5lciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21lZGlhaXRlbXNdPVwic2hvd1Byb21wdD8ocHJvbXB0SXRlbT9wcm9tcHRJdGVtLm1lZGlhaXRlbXM6bnVsbCk6bnVsbFwiPjwvYXBwLXNwcnByb21wdGNvbnRhaW5lcj5cclxuXHJcbiAgYFxyXG4gICxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleDogMzsgLyogdGhlIGNvbnRhaW5lciBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBwYWRkaW5nOiAxMHB0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdGluZ0NvbnRhaW5lciB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwcm9tcHRJdGVtOiBQcm9tcHRJdGVtfG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBzaG93UHJvbXB0OiBib29sZWFuPWZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbUlkeCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpdGVtQ291bnQ6IG51bWJlcnx1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHRyYW5zcG9ydEFjdGlvbnMhOiBUcmFuc3BvcnRBY3Rpb25zO1xyXG5cclxuICBwcml2YXRlIGUhOiBIVE1MRGl2RWxlbWVudDtcclxuICBwcml2YXRlIHN0YXJ0WDogbnVtYmVyIHwgbnVsbCA9IG51bGxcclxuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lU3RhbXA6IG51bWJlciB8IG51bGw9bnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHR5cGUgVG91Y2hTdGFydCA9IHt9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoc3RhcnQoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBzdGFydCEgXCIpXHJcbiAgICBpZiAoISh0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQgJiZcclxuICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQpKSB7XHJcbiAgICAgIGxldCB0YXJnZXRUb3VjaGVzTGVuID0gZXYudGFyZ2V0VG91Y2hlcy5sZW5ndGg7XHJcbiAgICAgIC8vZm9yKGxldCB0aT0wO3RpPGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO3RpKyspe1xyXG4gICAgICAvL2xldCB0PWV2LnRhcmdldFRvdWNoZXMuaXRlbSh0aSk7XHJcbiAgICAgIC8vIEFsbCB4IHZhbHVlcyBhcmUgdGhlIHNhbWUgPz9cclxuICAgICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoICNcIit0aStcIjogcGFnZVg6IFwiK3QucGFnZVgrXCIgY2xpZW50WDogXCIrdC5jbGllbnRYK1wiIHNjcmVlblg6IFwiK3Quc2NyZWVuWClcclxuICAgICAgLy99XHJcbiAgICAgIGlmICh0YXJnZXRUb3VjaGVzTGVuID09IDEpIHtcclxuICAgICAgICAvLyBzaW5nbGUgdG91Y2hcclxuICAgICAgICBsZXQgdCA9IGV2LnRhcmdldFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydFggPSBNYXRoLnJvdW5kKHQuc2NyZWVuWCk7XHJcbiAgICAgICAgICB0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXAgPSBldi50aW1lU3RhbXA7XHJcbiAgICAgICAgICB0aGlzLmUuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBzdGFydCB4OiBcIit0aGlzLnN0YXJ0WClcclxuICAgICAgICAgIC8vZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaEVuZChldjogVG91Y2hFdmVudCB8IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIGVuZCFcIilcclxuICAgIC8vIFJlc2V0IG9mZnNldCBzaGlmdFxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG5cclxuICAgICAgbGV0IGNoYW5nZWRUb3VjaGVzTGVuID0gZXYuY2hhbmdlZFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKGNoYW5nZWRUb3VjaGVzTGVuK1wiIFwiK3RoaXMuc3RhcnRYKVxyXG4gICAgICBpZiAoY2hhbmdlZFRvdWNoZXNMZW4gPT0gMSAmJiB0aGlzLnN0YXJ0WCkge1xyXG4gICAgICAgIC8vIHNpbmdsZSB0b3VjaFxyXG4gICAgICAgIGxldCB0ID0gZXYuY2hhbmdlZFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgbGV0IGRlbHRhWCA9IE1hdGgucm91bmQodC5jbGllbnRYIC0gdGhpcy5zdGFydFgpO1xyXG4gICAgICAgICAgbGV0IHRvdWNoTW92ZVNwZWVkID0gMDtcclxuICAgICAgICAgIGlmICh0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXApIHtcclxuICAgICAgICAgICAgdG91Y2hNb3ZlU3BlZWQgPSBkZWx0YVggLyAoZXYudGltZVN0YW1wIC0gdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBmdXR1cmVEZWx0YVggPSBkZWx0YVggKyAoODAwICogdG91Y2hNb3ZlU3BlZWQpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRlbHRhWDogXCIgKyBkZWx0YVggKyBcIiBGdXR1cmUgZGVsdGFYOiBcIiArIGZ1dHVyZURlbHRhWCArIFwiICB3aWR0aDogXCIgKyB0aGlzLmUub2Zmc2V0V2lkdGgpXHJcbiAgICAgICAgICBpZiAoZnV0dXJlRGVsdGFYID4gdGhpcy5lLm9mZnNldFdpZHRoIC8gMikge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiU3dpcGUgcmlnaHQgZGV0ZWN0ZWQhIVwiKVxyXG4gICAgICAgICAgICAvL3RoaXMuc3dpcGVkUmlnaHQuZW1pdCgpXHJcbiAgICAgICAgICAgIGlmICghdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gLXRoaXMuZS5vZmZzZXRMZWZ0ICsgXCJweFwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKC1mdXR1cmVEZWx0YVggPiB0aGlzLmUub2Zmc2V0V2lkdGggLyAyKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJTd2lwZSBsZWZ0IGRldGVjdGVkISFcIilcclxuICAgICAgICAgICAgdGhpcy5lLnN0eWxlLmxlZnQgPSAtdGhpcy5lLm9mZnNldExlZnQgKyBcInB4XCI7XHJcbiAgICAgICAgICAgIC8vdGhpcy5zd2lwZWRMZWZ0LmVtaXQoKVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gcmVzZXQgYW5pbWF0ZWRcclxuICAgICAgdGhpcy5lLnN0eWxlLnRyYW5zaXRpb24gPSBcImxlZnQgMC44c1wiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydFggPSBudWxsO1xyXG4gICAgdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNobW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaE1vdmUoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBtb3ZlIVwiKVxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG4gICAgICBsZXQgdGFyZ2V0VG91Y2hlc0xlbiA9IGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICBpZiAodGFyZ2V0VG91Y2hlc0xlbiA9PSAxICYmIHRoaXMuc3RhcnRYKSB7XHJcbiAgICAgICAgLy8gc2luZ2xlIHRvdWNoXHJcbiAgICAgICAgbGV0IHQgPSBldi50YXJnZXRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIGxldCBkZWx0YVggPSBNYXRoLnJvdW5kKHQuc2NyZWVuWCAtIHRoaXMuc3RhcnRYKTtcclxuICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gZGVsdGFYICsgXCJweFwiO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJUb3VjaCBtb3ZlIGRlbHRhIHg6IFwiK2RlbHRhWClcclxuICAgICAgICB9XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hDYW5jZWwoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBjYW5jZWwhXCIpXHJcbiAgICB0aGlzLmUuc3R5bGUubGVmdCA9IFwiMHB4XCI7XHJcbiAgICAvL2V2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRpbmcnLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhcHAtc2ltcGxldHJhZmZpY2xpZ2h0IFtzdGF0dXNdPVwic3RhcnRTdG9wU2lnbmFsU3RhdGVcIj48L2FwcC1zaW1wbGV0cmFmZmljbGlnaHQ+XHJcbiAgICA8YXBwLXNwcnByb21wdGluZ2NvbnRhaW5lciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIiBbcHJvbXB0SXRlbV09XCJwcm9tcHRJdGVtXCIgW3Nob3dQcm9tcHRdPVwic2hvd1Byb21wdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbUNvdW50XT1cIml0ZW1zPy5sZW5ndGhcIiBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNwb3J0QWN0aW9uc109XCJ0cmFuc3BvcnRBY3Rpb25zXCI+PC9hcHAtc3BycHJvbXB0aW5nY29udGFpbmVyPlxyXG4gICAgPGFwcC1zcHJwcm9ncmVzcyBmeEhpZGUueHMgW2l0ZW1zXT1cIml0ZW1zXCIgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob25Sb3dTZWxlY3QpPVwiaXRlbVNlbGVjdCgkZXZlbnQpXCI+PC9hcHAtc3BycHJvZ3Jlc3M+XHJcbiAgICA8ZGl2IGZ4SGlkZS54cyAjYXNDdCBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZFwiPlxyXG5cclxuICAgICAgPGFwcC1hdWRpb2Rpc3BsYXkgI2F1ZGlvU2lnbmFsQ29udGFpbmVyIFtjbGFzcy5hY3RpdmVdPVwiIWF1ZGlvU2lnbmFsQ29sbGFwc2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1ZGlvQ2xpcF09XCJkaXNwbGF5QXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiPjwvYXBwLWF1ZGlvZGlzcGxheT5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcblxyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCB0cmFmZmljIGxpZ2h0LCByaWdodCBwcm9tcHRlciAoY29udGFpbmVyKSAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogbm93cmFwOyAvKiB3cmFwIGNvdWxkIGNvbXBsZXRlbHkgZGVzdHJveSB0aGUgbGF5b3V0ICovXHJcbiAgfWAsIGBcclxuICAgIGFwcC1zaW1wbGV0cmFmZmljbGlnaHQge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICBgLCBgXHJcbiAgICBhcHAtc3BycHJvZ3Jlc3Mge1xyXG4gICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblxyXG4gICAgICAvKiBoZWlnaHQ6IDUwJTsgKi9cclxuICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcblxyXG4gICAgICAvKiBvdmVyZmxvdzogaGlkZGVuOyAqL1xyXG5cclxuICAgICAgLyogbWFyZ2luOiAyMHB4OyAqL1xyXG4gICAgICAvKiBib3JkZXI6IDIwcHg7ICovXHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmVkOyAqL1xyXG4gICAgfWAsIGBcclxuICAgIGRpdi5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAvKmxlZnQ6IDBweDsgKi9cclxuXHJcbiAgICAgIGhlaWdodDogOTAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIC8qIG1hcmdpbjogMjBweDsgKi9cclxuICAgICAgLyogYm9yZGVyOiAyMHB4OyAqL1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcblxyXG4gICAgfWBcclxuICBdXHJcblxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb21wdGluZyB7XHJcbiAgQFZpZXdDaGlsZChTaW1wbGVUcmFmZmljTGlnaHQsIHsgc3RhdGljOiB0cnVlIH0pIHNpbXBsZVRyYWZmaWNMaWdodCE6IFNpbXBsZVRyYWZmaWNMaWdodDtcclxuICBAVmlld0NoaWxkKEF1ZGlvRGlzcGxheSwgeyBzdGF0aWM6IHRydWUgfSkgYXVkaW9EaXNwbGF5ITogQXVkaW9EaXNwbGF5O1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc3RhcnRTdG9wU2lnbmFsU3RhdGUhOiBTdGFydFN0b3BTaWduYWxTdGF0ZTtcclxuICBASW5wdXQoKSBwcm9tcHRJdGVtOiBQcm9tcHRJdGVtIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHNob3dQcm9tcHQ6IGJvb2xlYW49ZmFsc2U7XHJcbiAgQElucHV0KCkgaXRlbXM6IEFycmF5PEl0ZW0+fG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcbiAgQElucHV0KCkgZW5hYmxlRG93bmxvYWQ6IGJvb2xlYW49ZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIG9uTmV4dEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUHJldkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGl0ZW1TZWxlY3Qocm93SWR4OiBudW1iZXIpIHtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0LmVtaXQocm93SWR4KTtcclxuICB9XHJcblxyXG4gIG5leHRJdGVtKCkge1xyXG4gICAgdGhpcy5vbk5leHRJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByZXZJdGVtKCkge1xyXG4gICAgdGhpcy5vblByZXZJdGVtLmVtaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -25,8 +25,8 @@ export class RecorderCombiPane {
|
|
|
25
25
|
this.recordingListComp.selectTop();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
RecorderCombiPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
29
|
-
RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
28
|
+
RecorderCombiPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecorderCombiPane, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: RecorderCombiPane, selector: "app-recordercombipane", inputs: { selectDisabled: "selectDisabled", selectedRecordingFile: "selectedRecordingFile", audioSignalCollapsed: "audioSignalCollapsed", displayAudioClip: "displayAudioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", playStopAction: "playStopAction" }, outputs: { selectedRecordingFileChanged: "selectedRecordingFileChanged" }, viewQueries: [{ propertyName: "recordingListComp", first: true, predicate: RecordingList, descendants: true }, { propertyName: "audioDisplay", first: true, predicate: AudioDisplay, descendants: true, static: true }], ngImport: i0, template: `
|
|
30
30
|
<div class="scrollList">
|
|
31
31
|
<app-recordinglist [selectedRecordingFile]="selectedRecordingFile" [selectDisabled]="selectDisabled" (selectedRecordingFileChanged)="selectRecordingFile($event)"></app-recordinglist>
|
|
32
32
|
</div>
|
|
@@ -39,7 +39,7 @@ RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
39
39
|
[playStopAction]="playStopAction"></app-audiodisplay>
|
|
40
40
|
</div>
|
|
41
41
|
`, isInline: true, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}\n", ":host{background-color:#ff0;position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;min-height:0px}\n", ".scrollList{margin:0;padding:0;background:lightgrey;width:100%;height:100%;overflow-y:auto}\n", ".collapsable{display:none;position:absolute;z-index:5}\n", ".collapsable.active{display:flex;position:absolute;bottom:0px;height:90%;width:100%;overflow:hidden;padding:0;z-index:200;box-sizing:border-box;background-color:#0000}\n"], components: [{ type: i1.RecordingList, selector: "app-recordinglist", inputs: ["selectDisabled", "selectedRecordingFile"], outputs: ["selectedRecordingFileChanged"] }, { type: i2.AudioDisplay, selector: "app-audiodisplay", inputs: ["playStartAction", "playStopAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "audioData", "audioClip"] }], directives: [{ type: i3.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecorderCombiPane, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{ selector: 'app-recordercombipane', template: `
|
|
45
45
|
<div class="scrollList">
|
|
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
79
79
|
}], playStopAction: [{
|
|
80
80
|
type: Input
|
|
81
81
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXJfY29tYmlfcGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGVyX2NvbWJpX3BhbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBOER2RCxNQUFNLE9BQU8saUJBQWlCO0lBZTVCO1FBWlMsbUJBQWMsR0FBUyxLQUFLLENBQUM7UUFDNUIsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDbEUsMEJBQXFCLEdBQW9CLElBQUksQ0FBQztRQUc5Qyx5QkFBb0IsR0FBVSxJQUFJLENBQUM7UUFDbkMscUJBQWdCLEdBQW1CLElBQUksQ0FBQztJQVFqRCxDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7SUFFRCxJQUFJLENBQUMsRUFBZ0I7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVsQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBZ0I7UUFDbEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzsrR0FsQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsNmhCQUVqQixhQUFhLCtFQUtiLFlBQVksOERBL0RiOzs7Ozs7Ozs7Ozs7R0FZVDs0RkE0Q1UsaUJBQWlCO2tCQTVEN0IsU0FBUzsrQkFFRSx1QkFBdUIsWUFFdkI7Ozs7Ozs7Ozs7OztHQVlUOzBFQThDeUIsaUJBQWlCO3NCQUExQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2YsY0FBYztzQkFBdEIsS0FBSztnQkFDSSw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVxQyxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2hDLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZSwgU3ByUmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge01lZGlhVXRpbHN9IGZyb20gXCIuLi8uLi9tZWRpYS91dGlsc1wiO1xyXG5pbXBvcnQge01hdFRhYmxlLCBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nTGlzdH0gZnJvbSBcIi4vcmVjb3JkaW5nX2xpc3RcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXB9IGZyb20gXCIuLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi8uLi9hY3Rpb24vYWN0aW9uXCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5fSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGlzcGxheVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXJlY29yZGVyY29tYmlwYW5lJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxMaXN0XCI+XHJcbiAgICAgICAgPGFwcC1yZWNvcmRpbmdsaXN0IFtzZWxlY3RlZFJlY29yZGluZ0ZpbGVdPVwic2VsZWN0ZWRSZWNvcmRpbmdGaWxlXCIgW3NlbGVjdERpc2FibGVkXT1cInNlbGVjdERpc2FibGVkXCIgKHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQpPVwic2VsZWN0UmVjb3JkaW5nRmlsZSgkZXZlbnQpXCI+PC9hcHAtcmVjb3JkaW5nbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNhYmxlXCIgZnhIaWRlLnhzICNhc0N0IFtjbGFzcy5hY3RpdmVdPVwiIWF1ZGlvU2lnbmFsQ29sbGFwc2VkXCI+XHJcbiAgICAgIDxhcHAtYXVkaW9kaXNwbGF5ICNhdWRpb1NpZ25hbENvbnRhaW5lciBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdWRpb0NsaXBdPVwiZGlzcGxheUF1ZGlvQ2xpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXT1cImF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIj48L2FwcC1hdWRpb2Rpc3BsYXk+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGdyZXk7XHJcbiAgICB3aWR0aDogMTAwJTsgLyogdXNlIGFsbCBob3Jpem9udGFsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgZmxleDogMTsgLyogLi4uIGFuZCBmaWxsIHJlc3Qgb2YgdmVydGljYWwgYXZhaWxhYmxlIHNwYWNlIChvdGhlciBjb21wb25lbnRzIGhhdmUgZmxleCAwKSAqL1xyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgfWAsYC5zY3JvbGxMaXN0e1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyBcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfWAsIGBcclxuICAgIC5jb2xsYXBzYWJsZSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgei1pbmRleDogNTtcclxuICAgIH1gLCBgXHJcbiAgICAuY29sbGFwc2FibGUuYWN0aXZlIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDBweDtcclxuICAgICAgaGVpZ2h0OiA5MCU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIHotaW5kZXg6IDIwMDsgIC8qIE5lZWRzIGEgaGlnaGVyIHZhbHVlIHRoZW4gdGhlIHN0aWNreSBNYXRlcmlhbCB0YWJsZSBoZWFkZXIgKHdoaWNoIGlzIHotaW5kZXg6IDEwMCkgKi9cclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKVxyXG4gICAgfWBdLFxyXG4gIHN0eWxlVXJsczogWycuLi8uLi9zcGVlY2hyZWNvcmRlcl9tYXQuc2NzcyddXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkZXJDb21iaVBhbmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xyXG5cclxuICBAVmlld0NoaWxkKFJlY29yZGluZ0xpc3QpIHJlY29yZGluZ0xpc3RDb21wITpSZWNvcmRpbmdMaXN0O1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBAVmlld0NoaWxkKEF1ZGlvRGlzcGxheSwgeyBzdGF0aWM6IHRydWUgfSkgYXVkaW9EaXNwbGF5ITogQXVkaW9EaXNwbGF5O1xyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1c2gocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3RDb21wLnB1c2gocmYpO1xyXG5cclxuICB9XHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3RDb21wLnNlbGVjdFRvcCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -65,8 +65,8 @@ export class RecordingList {
|
|
|
65
65
|
return str;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
RecordingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
69
|
-
RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
68
|
+
RecordingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecordingList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: RecordingList, selector: "app-recordinglist", inputs: { selectDisabled: "selectDisabled", selectedRecordingFile: "selectedRecordingFile" }, outputs: { selectedRecordingFileChanged: "selectedRecordingFileChanged" }, ngImport: i0, template: `
|
|
70
70
|
<mat-card>
|
|
71
71
|
<mat-card-header>
|
|
72
72
|
<h2>Recording list</h2>
|
|
@@ -96,7 +96,7 @@ RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
96
96
|
</mat-card>
|
|
97
97
|
|
|
98
98
|
`, isInline: true, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}\n", ":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;overflow-y:auto;min-height:0px}\n", ".selected{font-weight:700}\n"], components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i1.MatCardHeader, selector: "mat-card-header" }, { type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i5.ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: ["scrollIntoViewToBottom"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }], pipes: { "date": i6.DatePipe } });
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecordingList, decorators: [{
|
|
100
100
|
type: Component,
|
|
101
101
|
args: [{ selector: 'app-recordinglist', template: `
|
|
102
102
|
<mat-card>
|
|
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
135
135
|
}], selectedRecordingFile: [{
|
|
136
136
|
type: Input
|
|
137
137
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nX2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFXLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBNkRyRSxNQUFNLE9BQU8sYUFBYTtJQVV4QjtRQVRRLGtCQUFhLEdBQXNCLElBQUksS0FBSyxFQUFpQixDQUFDO1FBR3RFLDBEQUEwRDtRQUMxRCxTQUFJLEdBQUMsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRSwwQkFBcUIsR0FBb0IsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyx1QkFBdUIsR0FBQyxJQUFJLGtCQUFrQixFQUFpQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksR0FBRyxHQUFRLENBQUMsQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBVyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLEdBQVcsSUFBSSxDQUFDO1lBQ3RCLElBQUcsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBQztnQkFDNUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtnQkFDdEIsRUFBRSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTthQUN2QjtpQkFBSyxJQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBQztnQkFDdEMsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0IsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1QjtpQkFBSyxJQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDekIsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtZQUNELElBQUcsRUFBRSxLQUFHLElBQUksSUFBSSxFQUFFLEtBQUcsSUFBSSxFQUFDO2dCQUN4QixHQUFHLEdBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMvQjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFnQjtRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWdCO1FBQ2xDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWdCO1FBQ2xDLElBQUksR0FBRyxHQUFDLFVBQVUsQ0FBQztRQUNuQixJQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUM5QixHQUFHLEdBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEU7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OzBHQTlEVSxhQUFhOzhGQUFiLGFBQWEsa09BdERkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDsyRkF5QlUsYUFBYTtrQkExRHpCLFNBQVM7K0JBRUUsbUJBQW1CLFlBRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDswRUErQlEsY0FBYztzQkFBdEIsS0FBSztnQkFDSSw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlLCBTcHJSZWNvcmRpbmdGaWxlfSBmcm9tIFwiLi4vcmVjb3JkaW5nXCI7XHJcbmltcG9ydCB7TWVkaWFVdGlsc30gZnJvbSBcIi4uLy4uL21lZGlhL3V0aWxzXCI7XHJcbmltcG9ydCB7TWF0VGFibGUsIE1hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmdsaXN0JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgPGgyPlJlY29yZGluZyBsaXN0PC9oMj5cclxuICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlY29yZGluZ0xpc3REYXRhU291cmNlXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowXCI+XHJcbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29scztzdGlja3k6dHJ1ZVwiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogY29scztcIiBbc2Nyb2xsSW50b1ZpZXdUb0JvdHRvbV09XCJlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48L3RyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPiM8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O2xldCBpID0gaW5kZXhcIj57e3JlY29yZGluZ0xpc3REYXRhU291cmNlLmRhdGEubGVuZ3RoLWl9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXJ0ZWREYXRlXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPlN0YXJ0ZWQ8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tlbGVtZW50LnN0YXJ0ZWREYXRlIHwgZGF0ZTonWVlZWS1NTS1kZCBISDptbTpzcyd9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxlbmd0aFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlcj5MZW5ndGg8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tsZW5ndGhUaW1lRm9ybWF0dGVkKGVsZW1lbnQpfX08L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25cIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj48YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VsZWN0UmVjb3JkaW5nRmlsZShlbGVtZW50KVwiIFtkaXNhYmxlZF09XCJzZWxlY3REaXNhYmxlZCB8fCBlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48bWF0LWljb24+ZWRpdF9hdHRyaWJ1dGVzPC9tYXQtaWNvbj4gU2VsZWN0PC9idXR0b24+PC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRncmV5O1xyXG4gICAgd2lkdGg6IDEwMCU7IC8qIHVzZSBhbGwgaG9yaXpvbnRhbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIGZsZXg6IDE7IC8qIC4uLiBhbmQgZmlsbCByZXN0IG9mIHZlcnRpY2FsIGF2YWlsYWJsZSBzcGFjZSAob3RoZXIgY29tcG9uZW50cyBoYXZlIGZsZXggMCkgKi9cclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgfWAsYFxyXG4gICAgLnNlbGVjdGVke1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICBgXSxcclxuICBzdHlsZVVybHM6IFsnLi4vLi4vc3BlZWNocmVjb3JkZXJfbWF0LnNjc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0xpc3QgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgcmVjb3JkaW5nTGlzdDpBcnJheTxSZWNvcmRpbmdGaWxlPj1uZXcgQXJyYXk8UmVjb3JkaW5nRmlsZT4oKTtcclxuICAvL3JlY29yZGluZ0xpc3RTdWJqZWN0OlN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+ID0gbmV3IFN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+KCk7XHJcbiAgcmVjb3JkaW5nTGlzdERhdGFTb3VyY2U6TWF0VGFibGVEYXRhU291cmNlPFJlY29yZGluZ0ZpbGU+O1xyXG4gIC8vY29scz1bJ2luZGV4JywnbGVuZ3RoJywnc2FtcGxlcycsJ3NhbXBsZXJhdGUnLCdhY3Rpb24nXTtcclxuICBjb2xzPVsnaW5kZXgnLCdzdGFydGVkRGF0ZScsJ2xlbmd0aCcsJ2FjdGlvbiddO1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2U9bmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxSZWNvcmRpbmdGaWxlPigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREYXRhU291cmNlKCl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBsZXQgY21wOm51bWJlcj0wO1xyXG4gICAgICBsZXQgYUQ6RGF0ZXxudWxsPW51bGw7XHJcbiAgICAgIGxldCBiRDpEYXRlfG51bGw9bnVsbDtcclxuICAgICAgaWYoYS5fc3RhcnRlZEFzRGF0ZU9iaiAmJiBiLl9zdGFydGVkQXNEYXRlT2JqKXtcclxuICAgICAgICBhRD1hLl9zdGFydGVkQXNEYXRlT2JqXHJcbiAgICAgICAgYkQ9Yi5fc3RhcnRlZEFzRGF0ZU9ialxyXG4gICAgICB9ZWxzZSBpZihhLnN0YXJ0ZWREYXRlICYmIGIuc3RhcnRlZERhdGUpe1xyXG4gICAgICAgIGFEPW5ldyBEYXRlKGEuc3RhcnRlZERhdGUpO1xyXG4gICAgICAgIGJEPW5ldyBEYXRlKGIuc3RhcnRlZERhdGUpO1xyXG4gICAgICB9ZWxzZSBpZihhLmRhdGUgJiYgYi5kYXRlKSB7XHJcbiAgICAgICAgYUQ9bmV3IERhdGUoYS5kYXRlKTtcclxuICAgICAgICBiRD1uZXcgRGF0ZShiLmRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGFEIT09bnVsbCAmJiBiRCE9PW51bGwpe1xyXG4gICAgICAgIGNtcD1iRC5nZXRUaW1lKCktYUQuZ2V0VGltZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbXA7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2UuZGF0YT10aGlzLnJlY29yZGluZ0xpc3Q7XHJcbiAgfVxyXG5cclxuICBwdXNoKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0LnB1c2gocmYpO1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRpbmdMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RSZWNvcmRpbmdGaWxlKHRoaXMucmVjb3JkaW5nTGlzdFswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZW5ndGhUaW1lRm9ybWF0dGVkKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgbGV0IHN0cj0nLS06LS06LS0nO1xyXG4gICAgaWYocmYuZnJhbWVzICYmIHJmLmF1ZGlvQnVmZmVyKSB7XHJcbiAgICAgIHN0cj1NZWRpYVV0aWxzLnRvTWVkaWFUaW1lKHJmLmZyYW1lcyAvIHJmLmF1ZGlvQnVmZmVyPy5zYW1wbGVSYXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nX2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFXLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBNkRyRSxNQUFNLE9BQU8sYUFBYTtJQVV4QjtRQVRRLGtCQUFhLEdBQXNCLElBQUksS0FBSyxFQUFpQixDQUFDO1FBR3RFLDBEQUEwRDtRQUMxRCxTQUFJLEdBQUMsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRSwwQkFBcUIsR0FBb0IsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyx1QkFBdUIsR0FBQyxJQUFJLGtCQUFrQixFQUFpQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksR0FBRyxHQUFRLENBQUMsQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBVyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLEdBQVcsSUFBSSxDQUFDO1lBQ3RCLElBQUcsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBQztnQkFDNUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtnQkFDdEIsRUFBRSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTthQUN2QjtpQkFBSyxJQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBQztnQkFDdEMsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0IsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1QjtpQkFBSyxJQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDekIsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtZQUNELElBQUcsRUFBRSxLQUFHLElBQUksSUFBSSxFQUFFLEtBQUcsSUFBSSxFQUFDO2dCQUN4QixHQUFHLEdBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMvQjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFnQjtRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWdCO1FBQ2xDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWdCO1FBQ2xDLElBQUksR0FBRyxHQUFDLFVBQVUsQ0FBQztRQUNuQixJQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUM5QixHQUFHLEdBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEU7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OzJHQTlEVSxhQUFhOytGQUFiLGFBQWEsa09BdERkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDs0RkF5QlUsYUFBYTtrQkExRHpCLFNBQVM7K0JBRUUsbUJBQW1CLFlBRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDswRUErQlEsY0FBYztzQkFBdEIsS0FBSztnQkFDSSw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlLCBTcHJSZWNvcmRpbmdGaWxlfSBmcm9tIFwiLi4vcmVjb3JkaW5nXCI7XHJcbmltcG9ydCB7TWVkaWFVdGlsc30gZnJvbSBcIi4uLy4uL21lZGlhL3V0aWxzXCI7XHJcbmltcG9ydCB7TWF0VGFibGUsIE1hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmdsaXN0JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgPGgyPlJlY29yZGluZyBsaXN0PC9oMj5cclxuICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlY29yZGluZ0xpc3REYXRhU291cmNlXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowXCI+XHJcbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29scztzdGlja3k6dHJ1ZVwiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogY29scztcIiBbc2Nyb2xsSW50b1ZpZXdUb0JvdHRvbV09XCJlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48L3RyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPiM8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O2xldCBpID0gaW5kZXhcIj57e3JlY29yZGluZ0xpc3REYXRhU291cmNlLmRhdGEubGVuZ3RoLWl9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXJ0ZWREYXRlXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPlN0YXJ0ZWQ8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tlbGVtZW50LnN0YXJ0ZWREYXRlIHwgZGF0ZTonWVlZWS1NTS1kZCBISDptbTpzcyd9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxlbmd0aFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlcj5MZW5ndGg8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tsZW5ndGhUaW1lRm9ybWF0dGVkKGVsZW1lbnQpfX08L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25cIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj48YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VsZWN0UmVjb3JkaW5nRmlsZShlbGVtZW50KVwiIFtkaXNhYmxlZF09XCJzZWxlY3REaXNhYmxlZCB8fCBlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48bWF0LWljb24+ZWRpdF9hdHRyaWJ1dGVzPC9tYXQtaWNvbj4gU2VsZWN0PC9idXR0b24+PC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRncmV5O1xyXG4gICAgd2lkdGg6IDEwMCU7IC8qIHVzZSBhbGwgaG9yaXpvbnRhbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIGZsZXg6IDE7IC8qIC4uLiBhbmQgZmlsbCByZXN0IG9mIHZlcnRpY2FsIGF2YWlsYWJsZSBzcGFjZSAob3RoZXIgY29tcG9uZW50cyBoYXZlIGZsZXggMCkgKi9cclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgfWAsYFxyXG4gICAgLnNlbGVjdGVke1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICBgXSxcclxuICBzdHlsZVVybHM6IFsnLi4vLi4vc3BlZWNocmVjb3JkZXJfbWF0LnNjc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0xpc3QgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgcmVjb3JkaW5nTGlzdDpBcnJheTxSZWNvcmRpbmdGaWxlPj1uZXcgQXJyYXk8UmVjb3JkaW5nRmlsZT4oKTtcclxuICAvL3JlY29yZGluZ0xpc3RTdWJqZWN0OlN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+ID0gbmV3IFN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+KCk7XHJcbiAgcmVjb3JkaW5nTGlzdERhdGFTb3VyY2U6TWF0VGFibGVEYXRhU291cmNlPFJlY29yZGluZ0ZpbGU+O1xyXG4gIC8vY29scz1bJ2luZGV4JywnbGVuZ3RoJywnc2FtcGxlcycsJ3NhbXBsZXJhdGUnLCdhY3Rpb24nXTtcclxuICBjb2xzPVsnaW5kZXgnLCdzdGFydGVkRGF0ZScsJ2xlbmd0aCcsJ2FjdGlvbiddO1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2U9bmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxSZWNvcmRpbmdGaWxlPigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREYXRhU291cmNlKCl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBsZXQgY21wOm51bWJlcj0wO1xyXG4gICAgICBsZXQgYUQ6RGF0ZXxudWxsPW51bGw7XHJcbiAgICAgIGxldCBiRDpEYXRlfG51bGw9bnVsbDtcclxuICAgICAgaWYoYS5fc3RhcnRlZEFzRGF0ZU9iaiAmJiBiLl9zdGFydGVkQXNEYXRlT2JqKXtcclxuICAgICAgICBhRD1hLl9zdGFydGVkQXNEYXRlT2JqXHJcbiAgICAgICAgYkQ9Yi5fc3RhcnRlZEFzRGF0ZU9ialxyXG4gICAgICB9ZWxzZSBpZihhLnN0YXJ0ZWREYXRlICYmIGIuc3RhcnRlZERhdGUpe1xyXG4gICAgICAgIGFEPW5ldyBEYXRlKGEuc3RhcnRlZERhdGUpO1xyXG4gICAgICAgIGJEPW5ldyBEYXRlKGIuc3RhcnRlZERhdGUpO1xyXG4gICAgICB9ZWxzZSBpZihhLmRhdGUgJiYgYi5kYXRlKSB7XHJcbiAgICAgICAgYUQ9bmV3IERhdGUoYS5kYXRlKTtcclxuICAgICAgICBiRD1uZXcgRGF0ZShiLmRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGFEIT09bnVsbCAmJiBiRCE9PW51bGwpe1xyXG4gICAgICAgIGNtcD1iRC5nZXRUaW1lKCktYUQuZ2V0VGltZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbXA7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2UuZGF0YT10aGlzLnJlY29yZGluZ0xpc3Q7XHJcbiAgfVxyXG5cclxuICBwdXNoKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0LnB1c2gocmYpO1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRpbmdMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RSZWNvcmRpbmdGaWxlKHRoaXMucmVjb3JkaW5nTGlzdFswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZW5ndGhUaW1lRm9ybWF0dGVkKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgbGV0IHN0cj0nLS06LS06LS0nO1xyXG4gICAgaWYocmYuZnJhbWVzICYmIHJmLmF1ZGlvQnVmZmVyKSB7XHJcbiAgICAgIHN0cj1NZWRpYVV0aWxzLnRvTWVkaWFUaW1lKHJmLmZyYW1lcyAvIHJmLmF1ZGlvQnVmZmVyPy5zYW1wbGVSYXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -43,8 +43,8 @@ export class RecordingFileMetaComponent {
|
|
|
43
43
|
return t;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
RecordingFileMetaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
47
|
-
RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
46
|
+
RecordingFileMetaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecordingFileMetaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: { sessionId: "sessionId", recordingFile: "recordingFile" }, ngImport: i0, template: `
|
|
48
48
|
<mat-card>
|
|
49
49
|
<mat-card-title>Recording file ID: {{recordingFile?.recordingFileId}}</mat-card-title>
|
|
50
50
|
<mat-card-content>
|
|
@@ -78,7 +78,7 @@ RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
78
78
|
</mat-card-content>
|
|
79
79
|
</mat-card>
|
|
80
80
|
`, isInline: true, components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }], directives: [{ type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecordingFileMetaComponent, decorators: [{
|
|
82
82
|
type: Component,
|
|
83
83
|
args: [{
|
|
84
84
|
selector: 'app-recording-file-meta',
|
|
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
123
123
|
}], recordingFile: [{
|
|
124
124
|
type: Input
|
|
125
125
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbWV0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW1ldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7O0FBeUNuRCxNQUFNLE9BQU8sMEJBQTBCO0lBdEN2QztRQXlDVyxjQUFTLEdBQXdCLElBQUksQ0FBQztRQUV2QyxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUE0QmxELGFBQVEsR0FBYSxJQUFJLENBQUM7UUFDMUIsU0FBSSxHQUF1QixJQUFJLENBQUM7S0FTakM7SUFwQ0MsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLGFBQWEsQ0FBQyxhQUFtQztRQUM1RCxJQUFJLENBQUMsY0FBYyxHQUFDLGFBQWEsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUM3QyxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUM7Z0JBQzNELElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQ3REO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBQyxJQUFJLENBQUMsUUFBUSxHQUFFLFNBQVMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDdkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRSxTQUFTLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3BFO1NBQ0Y7YUFBSTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUtELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsR0FBQyxJQUFJLENBQUM7UUFDWCxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7d0hBMUNVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLG1JQXBDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVDs0RkFHVSwwQkFBMEI7a0JBdEN0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUO29CQUNELE1BQU0sRUFBRSxFQUFFO2lCQUNYOzhCQUlVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUU8sYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlVXRpbH0gZnJvbSBcIi4vcmVjb3JkaW5nLWZpbGVcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlLCBTcHJSZWNvcmRpbmdGaWxlfSBmcm9tIFwiLi4vLi4vcmVjb3JkaW5nXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmctZmlsZS1tZXRhJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1jYXJkPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+UmVjb3JkaW5nIGZpbGUgSUQ6IHt7cmVjb3JkaW5nRmlsZT8ucmVjb3JkaW5nRmlsZUlkfX08L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8dGFibGU+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtQ29kZVwiPlxyXG4gICAgICAgICAgICA8dGQ+SXRlbWNvZGU6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7aXRlbUNvZGV9fTwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXVpZCAmJiAhaXRlbUNvZGVcIj5cclxuICAgICAgICAgICAgPHRkPlVVSUQ6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7dXVpZH19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGQ+U3RhcnRlZDo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCIhcmVjb3JkaW5nRmlsZT8uc3RhcnRlZERhdGUgJiYgcmVjb3JkaW5nRmlsZT8uZGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGQ+RGF0ZTo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdGaWxlPy5kYXRlfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW1Db2RlXCI+XHJcbiAgICAgICAgICAgIDx0ZD5Qcm9tcHQ6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7cmVjb3JkaW5nQXNQbGFpblRleHQoKX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwic2Vzc2lvbklkXCI+XHJcbiAgICAgICAgICAgIDx0ZD5TZXNzaW9uOjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57e3Nlc3Npb25JZH19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICBgLFxyXG4gIHN0eWxlczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0ZpbGVNZXRhQ29tcG9uZW50e1xyXG5cclxuXHJcbiAgQElucHV0KCkgc2Vzc2lvbklkOnN0cmluZyB8IG51bWJlciB8IG51bGw9bnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfcmVjb3JkaW5nRmlsZTpTcHJSZWNvcmRpbmdGaWxlfG51bGw9bnVsbDtcclxuXHJcbiAgZ2V0IHJlY29yZGluZ0ZpbGUoKTogU3ByUmVjb3JkaW5nRmlsZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlY29yZGluZ0ZpbGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcmVjb3JkaW5nRmlsZShyZWNvcmRpbmdGaWxlOlNwclJlY29yZGluZ0ZpbGV8bnVsbCl7XHJcbiAgICB0aGlzLl9yZWNvcmRpbmdGaWxlPXJlY29yZGluZ0ZpbGU7XHJcbiAgICBpZih0aGlzLl9yZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgIHRoaXMuaXRlbUNvZGUgPSB0aGlzLl9yZWNvcmRpbmdGaWxlLml0ZW1Db2RlO1xyXG4gICAgICBpZighdGhpcy5pdGVtQ29kZSAmJiB0aGlzLl9yZWNvcmRpbmdGaWxlLnJlY29yZGluZz8uaXRlbWNvZGUpe1xyXG4gICAgICAgIHRoaXMuaXRlbUNvZGU9dGhpcy5fcmVjb3JkaW5nRmlsZS5yZWNvcmRpbmcuaXRlbWNvZGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaXRlbUNvZGUpIHtcclxuXHJcbiAgICAgICAgdGhpcy51dWlkID0gbnVsbDtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiU3ByUmVjb3JkaW5nRmlsZTogXCIrdGhpcy5pdGVtQ29kZSsgXCIgVVVJRDogXCIrdGhpcy51dWlkKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXRlbUNvZGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudXVpZCA9IHRoaXMuX3JlY29yZGluZ0ZpbGU/LnV1aWQ7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIlJlY29yZGluZ0ZpbGU6IFwiK3RoaXMuaXRlbUNvZGUrIFwiIFVVSUQ6IFwiK3RoaXMudXVpZClcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaXRlbUNvZGU9bnVsbDtcclxuICAgICAgdGhpcy51dWlkPW51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpdGVtQ29kZTpzdHJpbmd8bnVsbD1udWxsO1xyXG4gIHV1aWQ6c3RyaW5nfG51bGx8dW5kZWZpbmVkPW51bGw7XHJcblxyXG4gIHJlY29yZGluZ0FzUGxhaW5UZXh0KCl7XHJcbiAgICBsZXQgdD1udWxsO1xyXG4gICAgaWYodGhpcy5fcmVjb3JkaW5nRmlsZSkge1xyXG4gICAgICB0ID0gUmVjb3JkaW5nRmlsZVV0aWwucmVjb3JkaW5nQXNQbGFpblRleHQodGhpcy5fcmVjb3JkaW5nRmlsZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdDtcclxuICB9XHJcbn1cclxuIl19
|