@pepperi-addons/ngx-composite-lib 0.4.2-beta.111 → 0.4.2-beta.113
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/layout-builder/layout/layout.component.mjs +36 -14
- package/esm2020/layout-builder/layout-builder-internal.service.mjs +8 -8
- package/esm2020/layout-builder/layout-builder.component.mjs +2 -1
- package/esm2020/layout-builder/layout-builder.model.mjs +1 -1
- package/esm2020/layout-builder/layout-builder.module.mjs +4 -4
- package/esm2020/layout-builder/layout-builder.service.mjs +43 -19
- package/esm2020/layout-builder/main-editor/main-editor.component.mjs +1 -1
- package/esm2020/layout-builder/section/section.component.mjs +1 -1
- package/esm2020/layout-builder/section-block/section-block.component.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +92 -44
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +92 -44
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -1
- package/layout-builder/layout/layout.component.d.ts +7 -3
- package/layout-builder/layout-builder-internal.service.d.ts +2 -2
- package/layout-builder/layout-builder.model.d.ts +1 -0
- package/layout-builder/layout-builder.service.d.ts +9 -7
- package/package.json +1 -1
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { ViewChild, Component, EventEmitter, Input, Output, HostBinding } from '@angular/core';
|
|
2
2
|
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
|
|
3
|
+
import { BaseDestroyerDirective, PepGuid } from '@pepperi-addons/ngx-lib';
|
|
4
4
|
import { LayoutBuilderInternalService } from '../layout-builder-internal.service';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import { PepLayoutBuilderService } from '../layout-builder.service';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
import * as i1 from "../layout-builder-internal.service";
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "@
|
|
11
|
-
import * as i4 from "@pepperi-addons/ngx-lib/
|
|
12
|
-
import * as i5 from "@
|
|
13
|
-
import * as i6 from "
|
|
14
|
-
import * as i7 from "
|
|
8
|
+
import * as i2 from "../layout-builder.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@pepperi-addons/ngx-lib/skeleton-loader";
|
|
11
|
+
import * as i5 from "@pepperi-addons/ngx-lib/size-detector";
|
|
12
|
+
import * as i6 from "@angular/cdk/drag-drop";
|
|
13
|
+
import * as i7 from "../section/section.component";
|
|
14
|
+
import * as i8 from "@ngx-translate/core";
|
|
15
15
|
export class PepLayoutComponent extends BaseDestroyerDirective {
|
|
16
16
|
constructor(
|
|
17
17
|
// public customizationService: PepCustomizationService,
|
|
18
18
|
// public layoutService: PepLayoutService,
|
|
19
|
-
layoutBuilderInternalService, hostElement, renderer) {
|
|
19
|
+
layoutBuilderInternalService, hostElement, renderer, layoutBuilderService) {
|
|
20
20
|
super();
|
|
21
21
|
this.layoutBuilderInternalService = layoutBuilderInternalService;
|
|
22
22
|
this.hostElement = hostElement;
|
|
23
23
|
this.renderer = renderer;
|
|
24
|
+
this.layoutBuilderService = layoutBuilderService;
|
|
25
|
+
this._key = '';
|
|
24
26
|
this.blockTemplate = undefined;
|
|
25
27
|
this._showSkeleton = false;
|
|
26
28
|
this.layoutViewChange = new EventEmitter();
|
|
@@ -30,9 +32,14 @@ export class PepLayoutComponent extends BaseDestroyerDirective {
|
|
|
30
32
|
this.paddingInline = '1rem';
|
|
31
33
|
this.previewMode = false;
|
|
32
34
|
this._sectionsSubject = new BehaviorSubject([]);
|
|
33
|
-
this.layoutBuilderService = new PepLayoutBuilderService(layoutBuilderInternalService);
|
|
34
35
|
this.renderer.addClass(this.hostElement.nativeElement, 'pep-layout');
|
|
35
36
|
}
|
|
37
|
+
set key(value) {
|
|
38
|
+
this.setLayoutKey(value);
|
|
39
|
+
}
|
|
40
|
+
get key() {
|
|
41
|
+
return this._key;
|
|
42
|
+
}
|
|
36
43
|
set layoutView(value) {
|
|
37
44
|
this._layoutView = value;
|
|
38
45
|
this.layoutBuilderInternalService.loadLayoutBuilder(value);
|
|
@@ -63,6 +70,17 @@ export class PepLayoutComponent extends BaseDestroyerDirective {
|
|
|
63
70
|
get sections$() {
|
|
64
71
|
return this._sectionsSubject.asObservable();
|
|
65
72
|
}
|
|
73
|
+
setLayoutKey(layoutKey) {
|
|
74
|
+
// Set the key only once
|
|
75
|
+
if (this._key.length === 0) {
|
|
76
|
+
if (layoutKey.length === 0) {
|
|
77
|
+
layoutKey = PepGuid.newGuid();
|
|
78
|
+
}
|
|
79
|
+
this._key = layoutKey;
|
|
80
|
+
// Set the service map
|
|
81
|
+
this.layoutBuilderService.setLayoutBuilderInternalService(this._key, this.layoutBuilderInternalService);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
66
84
|
convertLayoutSizeType(size) {
|
|
67
85
|
let res;
|
|
68
86
|
if (size === 'lg') {
|
|
@@ -113,6 +131,8 @@ export class PepLayoutComponent extends BaseDestroyerDirective {
|
|
|
113
131
|
this.screenTypeChange.emit(screenType);
|
|
114
132
|
}
|
|
115
133
|
ngOnInit() {
|
|
134
|
+
// Set key for the layout if wasent set
|
|
135
|
+
this.setLayoutKey('');
|
|
116
136
|
/***********************************************************************************************/
|
|
117
137
|
/* Internal Events - for code usage
|
|
118
138
|
/***********************************************************************************************/
|
|
@@ -179,17 +199,19 @@ export class PepLayoutComponent extends BaseDestroyerDirective {
|
|
|
179
199
|
this.layoutBuilderInternalService.onSectionDragEnd(event);
|
|
180
200
|
}
|
|
181
201
|
}
|
|
182
|
-
PepLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutComponent, deps: [{ token: i1.LayoutBuilderInternalService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
PepLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLayoutComponent, selector: "pep-layout", inputs: { layoutView: "layoutView", blockTemplate: "blockTemplate", showSkeleton: "showSkeleton" }, outputs: { layoutViewChange: "layoutViewChange", screenTypeChange: "screenTypeChange" }, host: { properties: { "style.padding-inline": "this.paddingInline" } }, providers: [LayoutBuilderInternalService], viewQueries: [{ propertyName: "skeletonContainer", first: true, predicate: ["skeletonCont"], descendants: true, static: true }, { propertyName: "sectionsContainer", first: true, predicate: ["sectionsCont"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- For the top spacing -->\n<div class=\"top-spacing spacing-{{verticalSpacing}}\" ></div>\n<div #sectionsCont cdkDropListGroup class=\"sections-container gap-{{ sectionsGap }}\" [ngClass]=\"{'preview-state': previewMode }\" \n cdkDropList (cdkDropListDropped)=\"onSectionDropped($event)\" [ngStyle]=\"{'grid-auto-rows': getSectionsTemplateRows()}\"\n >\n <section *ngFor=\"let section of sections$ | async; let i=index;\" \n class=\"draggable-section \" [ngClass]=\"selectedScreenType === 'Phablet' ? 'margin-'+sectionsGap : ''\" [blockTemplate]=\"blockTemplate\"\n [key]=\"section.Key\" [name]=\"section.Name || ('LAYOUT_BUILDER.SECTION' | translate) + ' ' + (i+1)\" [split]=\"section.Split\" [height]=\"section.Height\"\n [columns]=\"section.Columns\" [padding]=\"section.Padding\" [collapseOnTablet]=\"section.CollapseOnTablet || false\" [hideIn]=\"section.Hide || []\" [columnsGap]=\"columnsGap\"\n >\n </section>\n</div>\n<div #skeletonCont class=\"skeleton-container \">\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"xl\" ></pep-skeleton-loader>\n <div class=\"split-skeleton-container\">\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n </div>\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"xl\" ></pep-skeleton-loader>\n\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n</div>\n<!-- For the bottom spacing -->\n<div class=\"bottom-spacing spacing-{{verticalSpacing}}\"></div>\n<pep-size-detector></pep-size-detector>", styles: [":host{display:grid;grid-template-areas:\"top-spacing\" \"content\" \"bottom-spacing\";grid-template-rows:auto 1fr auto;height:100%}.top-spacing{grid-area:top-spacing}.top-spacing.spacing-none{height:0}.top-spacing.spacing-sm{height:var(--pep-spacing-sm, .5rem)}.top-spacing.spacing-md{height:var(--pep-spacing-lg, 1rem)}.top-spacing.spacing-lg{height:var(--pep-spacing-2xl, 2rem)}.bottom-spacing{grid-area:bottom-spacing}.bottom-spacing.spacing-none{height:0}.bottom-spacing.spacing-sm{height:var(--pep-spacing-sm, .5rem)}.bottom-spacing.spacing-md{height:var(--pep-spacing-lg, 1rem)}.bottom-spacing.spacing-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-container{display:grid;grid-area:content;height:100%;gap:var(--pep-spacing-lg, 1rem);grid-template-rows:auto auto auto 1fr;opacity:0}.skeleton-container .split-skeleton-container{display:grid;height:10rem;gap:var(--pep-spacing-lg, 1rem);grid-auto-flow:column}.sections-container{z-index:11;grid-area:content;width:100%;max-width:inherit;overflow-x:unset;margin:0 auto;position:relative;display:grid;grid-row:1px;height:inherit;opacity:0}.sections-container.gap-none{gap:0}.sections-container.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.sections-container.gap-md{gap:var(--pep-spacing-lg, 1rem)}.sections-container.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.sections-container .draggable-section{display:block}.sections-container.preview-state section{display:contents}@keyframes in{0%{opacity:0;transform:translateY(-80);filter:blur(20px)}to{transform:translateY(0);opacity:1;filter:blur(0)}}.in{animation-name:in;animation-direction:normal;animation-duration:1.2s;animation-fill-mode:forwards}\n"], dependencies: [{ kind: "directive", type:
|
|
202
|
+
PepLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutComponent, deps: [{ token: i1.LayoutBuilderInternalService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.PepLayoutBuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
+
PepLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLayoutComponent, selector: "pep-layout", inputs: { key: "key", layoutView: "layoutView", blockTemplate: "blockTemplate", showSkeleton: "showSkeleton" }, outputs: { layoutViewChange: "layoutViewChange", screenTypeChange: "screenTypeChange" }, host: { properties: { "style.padding-inline": "this.paddingInline" } }, providers: [LayoutBuilderInternalService], viewQueries: [{ propertyName: "skeletonContainer", first: true, predicate: ["skeletonCont"], descendants: true, static: true }, { propertyName: "sectionsContainer", first: true, predicate: ["sectionsCont"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- For the top spacing -->\n<div class=\"top-spacing spacing-{{verticalSpacing}}\" ></div>\n<div #sectionsCont cdkDropListGroup class=\"sections-container gap-{{ sectionsGap }}\" [ngClass]=\"{'preview-state': previewMode }\" \n cdkDropList (cdkDropListDropped)=\"onSectionDropped($event)\" [ngStyle]=\"{'grid-auto-rows': getSectionsTemplateRows()}\"\n >\n <section *ngFor=\"let section of sections$ | async; let i=index;\" \n class=\"draggable-section \" [ngClass]=\"selectedScreenType === 'Phablet' ? 'margin-'+sectionsGap : ''\" [blockTemplate]=\"blockTemplate\"\n [key]=\"section.Key\" [name]=\"section.Name || ('LAYOUT_BUILDER.SECTION' | translate) + ' ' + (i+1)\" [split]=\"section.Split\" [height]=\"section.Height\"\n [columns]=\"section.Columns\" [padding]=\"section.Padding\" [collapseOnTablet]=\"section.CollapseOnTablet || false\" [hideIn]=\"section.Hide || []\" [columnsGap]=\"columnsGap\"\n >\n </section>\n</div>\n<div #skeletonCont class=\"skeleton-container \">\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"xl\" ></pep-skeleton-loader>\n <div class=\"split-skeleton-container\">\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n </div>\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"xl\" ></pep-skeleton-loader>\n\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n</div>\n<!-- For the bottom spacing -->\n<div class=\"bottom-spacing spacing-{{verticalSpacing}}\"></div>\n<pep-size-detector></pep-size-detector>", styles: [":host{display:grid;grid-template-areas:\"top-spacing\" \"content\" \"bottom-spacing\";grid-template-rows:auto 1fr auto;height:100%}.top-spacing{grid-area:top-spacing}.top-spacing.spacing-none{height:0}.top-spacing.spacing-sm{height:var(--pep-spacing-sm, .5rem)}.top-spacing.spacing-md{height:var(--pep-spacing-lg, 1rem)}.top-spacing.spacing-lg{height:var(--pep-spacing-2xl, 2rem)}.bottom-spacing{grid-area:bottom-spacing}.bottom-spacing.spacing-none{height:0}.bottom-spacing.spacing-sm{height:var(--pep-spacing-sm, .5rem)}.bottom-spacing.spacing-md{height:var(--pep-spacing-lg, 1rem)}.bottom-spacing.spacing-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-container{display:grid;grid-area:content;height:100%;gap:var(--pep-spacing-lg, 1rem);grid-template-rows:auto auto auto 1fr;opacity:0}.skeleton-container .split-skeleton-container{display:grid;height:10rem;gap:var(--pep-spacing-lg, 1rem);grid-auto-flow:column}.sections-container{z-index:11;grid-area:content;width:100%;max-width:inherit;overflow-x:unset;margin:0 auto;position:relative;display:grid;grid-row:1px;height:inherit;opacity:0}.sections-container.gap-none{gap:0}.sections-container.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.sections-container.gap-md{gap:var(--pep-spacing-lg, 1rem)}.sections-container.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.sections-container .draggable-section{display:block}.sections-container.preview-state section{display:contents}@keyframes in{0%{opacity:0;transform:translateY(-80);filter:blur(20px)}to{transform:translateY(0);opacity:1;filter:blur(0)}}.in{animation-name:in;animation-direction:normal;animation-duration:1.2s;animation-fill-mode:forwards}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.PepSkeletonLoaderComponent, selector: "pep-skeleton-loader", inputs: ["rowHeightType", "rowsNumber", "lastRowOffset"] }, { kind: "component", type: i5.PepSizeDetectorComponent, selector: "pep-size-detector", inputs: ["showScreenSize", "useAsWebComponent"], outputs: ["sizeChange"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: i7.SectionComponent, selector: "section", inputs: ["blockTemplate", "key", "name", "split", "height", "collapseOnTablet", "padding", "columns", "hideIn", "columnsGap"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
184
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLayoutComponent, decorators: [{
|
|
185
205
|
type: Component,
|
|
186
206
|
args: [{ selector: 'pep-layout', providers: [LayoutBuilderInternalService], template: "<!-- For the top spacing -->\n<div class=\"top-spacing spacing-{{verticalSpacing}}\" ></div>\n<div #sectionsCont cdkDropListGroup class=\"sections-container gap-{{ sectionsGap }}\" [ngClass]=\"{'preview-state': previewMode }\" \n cdkDropList (cdkDropListDropped)=\"onSectionDropped($event)\" [ngStyle]=\"{'grid-auto-rows': getSectionsTemplateRows()}\"\n >\n <section *ngFor=\"let section of sections$ | async; let i=index;\" \n class=\"draggable-section \" [ngClass]=\"selectedScreenType === 'Phablet' ? 'margin-'+sectionsGap : ''\" [blockTemplate]=\"blockTemplate\"\n [key]=\"section.Key\" [name]=\"section.Name || ('LAYOUT_BUILDER.SECTION' | translate) + ' ' + (i+1)\" [split]=\"section.Split\" [height]=\"section.Height\"\n [columns]=\"section.Columns\" [padding]=\"section.Padding\" [collapseOnTablet]=\"section.CollapseOnTablet || false\" [hideIn]=\"section.Hide || []\" [columnsGap]=\"columnsGap\"\n >\n </section>\n</div>\n<div #skeletonCont class=\"skeleton-container \">\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"xl\" ></pep-skeleton-loader>\n <div class=\"split-skeleton-container\">\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n </div>\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"xl\" ></pep-skeleton-loader>\n\n <pep-skeleton-loader [rowsNumber]=\"1\" [lastRowOffset]=\"false\" rowHeightType=\"max\" ></pep-skeleton-loader>\n</div>\n<!-- For the bottom spacing -->\n<div class=\"bottom-spacing spacing-{{verticalSpacing}}\"></div>\n<pep-size-detector></pep-size-detector>", styles: [":host{display:grid;grid-template-areas:\"top-spacing\" \"content\" \"bottom-spacing\";grid-template-rows:auto 1fr auto;height:100%}.top-spacing{grid-area:top-spacing}.top-spacing.spacing-none{height:0}.top-spacing.spacing-sm{height:var(--pep-spacing-sm, .5rem)}.top-spacing.spacing-md{height:var(--pep-spacing-lg, 1rem)}.top-spacing.spacing-lg{height:var(--pep-spacing-2xl, 2rem)}.bottom-spacing{grid-area:bottom-spacing}.bottom-spacing.spacing-none{height:0}.bottom-spacing.spacing-sm{height:var(--pep-spacing-sm, .5rem)}.bottom-spacing.spacing-md{height:var(--pep-spacing-lg, 1rem)}.bottom-spacing.spacing-lg{height:var(--pep-spacing-2xl, 2rem)}.skeleton-container{display:grid;grid-area:content;height:100%;gap:var(--pep-spacing-lg, 1rem);grid-template-rows:auto auto auto 1fr;opacity:0}.skeleton-container .split-skeleton-container{display:grid;height:10rem;gap:var(--pep-spacing-lg, 1rem);grid-auto-flow:column}.sections-container{z-index:11;grid-area:content;width:100%;max-width:inherit;overflow-x:unset;margin:0 auto;position:relative;display:grid;grid-row:1px;height:inherit;opacity:0}.sections-container.gap-none{gap:0}.sections-container.gap-sm{gap:var(--pep-spacing-sm, .5rem)}.sections-container.gap-md{gap:var(--pep-spacing-lg, 1rem)}.sections-container.gap-lg{gap:var(--pep-spacing-2xl, 2rem)}.sections-container .draggable-section{display:block}.sections-container.preview-state section{display:contents}@keyframes in{0%{opacity:0;transform:translateY(-80);filter:blur(20px)}to{transform:translateY(0);opacity:1;filter:blur(0)}}.in{animation-name:in;animation-direction:normal;animation-duration:1.2s;animation-fill-mode:forwards}\n"] }]
|
|
187
|
-
}], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { skeletonContainer: [{
|
|
207
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.PepLayoutBuilderService }]; }, propDecorators: { skeletonContainer: [{
|
|
188
208
|
type: ViewChild,
|
|
189
209
|
args: ['skeletonCont', { static: true }]
|
|
190
210
|
}], sectionsContainer: [{
|
|
191
211
|
type: ViewChild,
|
|
192
212
|
args: ['sectionsCont', { static: true }]
|
|
213
|
+
}], key: [{
|
|
214
|
+
type: Input
|
|
193
215
|
}], layoutView: [{
|
|
194
216
|
type: Input
|
|
195
217
|
}], blockTemplate: [{
|
|
@@ -204,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
204
226
|
type: HostBinding,
|
|
205
227
|
args: ['style.padding-inline']
|
|
206
228
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2xheW91dC1idWlsZGVyL2xheW91dC9sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0L2xheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThGLFNBQVMsRUFDbkYsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFFOUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFnRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7OztBQVFwRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBOEQxRDtJQUNJLHdEQUF3RDtJQUN4RCwwQ0FBMEM7SUFDbEMsNEJBQTBELEVBQzFELFdBQXVCLEVBQ3ZCLFFBQW1CO1FBRzNCLEtBQUssRUFBRSxDQUFDO1FBTEEsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUMxRCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBckR0QixrQkFBYSxHQUFpQyxTQUFTLENBQUM7UUFFekQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFVcEIscUJBQWdCLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEUs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NEJBQTRCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7K0dBOU1RLGtCQUFrQjttR0FBbEIsa0JBQWtCLDBTQUZoQixDQUFFLDRCQUE0QixDQUFFLG9TQ2YvQyw2eERBd0J1QzsyRkRQMUIsa0JBQWtCO2tCQU45QixTQUFTOytCQUNJLFlBQVksYUFHWCxDQUFFLDRCQUE0QixDQUFFO29LQUdFLGlCQUFpQjtzQkFBN0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNFLGlCQUFpQjtzQkFBN0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl2QyxVQUFVO3NCQURiLEtBQUs7Z0JBU0csYUFBYTtzQkFBckIsS0FBSztnQkFJRixZQUFZO3NCQURmLEtBQUs7Z0JBU0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFvQkcsYUFBYTtzQkFEdEIsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgQ29udGVudENoaWxkcmVuLFxuICAgIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RCaW5kaW5nLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VuZCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcm9wTGlzdCwgRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUsIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLCBQZXBMYXlvdXRTZXJ2aWNlLCBQZXBTY3JlZW5TaXplVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcbmltcG9ydCB7IElQZXBMYXlvdXRTZWN0aW9uLCBJUGVwTGF5b3V0VmlldywgUGVwTGF5b3V0U2l6ZVR5cGUgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGFWaWV3U2NyZWVuU2l6ZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBQZXBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uL2xheW91dC1idWlsZGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1sYXlvdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogWyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwTGF5b3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnc2tlbGV0b25Db250JywgeyBzdGF0aWM6IHRydWUgfSkgc2tlbGV0b25Db250YWluZXIhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25zQ29udCcsIHsgc3RhdGljOiB0cnVlIH0pIHNlY3Rpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgX2xheW91dFZpZXchOiBJUGVwTGF5b3V0VmlldztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRWaWV3KHZhbHVlOiBJUGVwTGF5b3V0Vmlldykge1xuICAgICAgICB0aGlzLl9sYXlvdXRWaWV3ID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5sb2FkTGF5b3V0QnVpbGRlcih2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBsYXlvdXRWaWV3KCk6IElQZXBMYXlvdXRWaWV3IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dFZpZXc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIHByaXZhdGUgX3Nob3dTa2VsZXRvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNob3dTa2VsZXRvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93U2tlbGV0b24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNob3dTa2VsZXRvbih2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzaG93U2tlbGV0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93U2tlbGV0b247XG4gICAgfVxuICAgIFxuICAgIEBPdXRwdXQoKSBsYXlvdXRWaWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBlcExheW91dFZpZXc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzY3JlZW5UeXBlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0YVZpZXdTY3JlZW5TaXplPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgX2hvcml6b250YWxTcGFjaW5nOiBQZXBMYXlvdXRTaXplVHlwZSB8IHVuZGVmaW5lZCA9ICdtZCc7XG4gICAgc2V0IGhvcml6b250YWxTcGFjaW5nKHZhbHVlOiBQZXBMYXlvdXRTaXplVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9ob3Jpem9udGFsU3BhY2luZyA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBhZGRpbmdJbmxpbmUgPSB0aGlzLmNvbnZlcnRMYXlvdXRTaXplVHlwZSh2YWx1ZSB8fCAnbWQnKTtcbiAgICB9XG4gICAgZ2V0IGhvcml6b250YWxTcGFjaW5nKCk6IFBlcExheW91dFNpemVUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxTcGFjaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZlcnRpY2FsU3BhY2luZzogUGVwTGF5b3V0U2l6ZVR5cGUgfCB1bmRlZmluZWQgPSAnbWQnO1xuICAgIHNldCB2ZXJ0aWNhbFNwYWNpbmcodmFsdWU6IFBlcExheW91dFNpemVUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3ZlcnRpY2FsU3BhY2luZyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdmVydGljYWxTcGFjaW5nKCk6IFBlcExheW91dFNpemVUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsU3BhY2luZztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBhZGRpbmctaW5saW5lJylcbiAgICBwcm90ZWN0ZWQgcGFkZGluZ0lubGluZSA9ICcxcmVtJztcbiAgICBcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgY29sdW1uc0dhcCE6IFBlcExheW91dFNpemVUeXBlO1xuICAgIHByb3RlY3RlZCBwcmV2aWV3TW9kZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfc2VjdGlvbnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8SVBlcExheW91dFNlY3Rpb25bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQZXBMYXlvdXRTZWN0aW9uW10+KFtdKTtcbiAgICBwcm90ZWN0ZWQgZ2V0IHNlY3Rpb25zJCgpOiBPYnNlcnZhYmxlPElQZXBMYXlvdXRTZWN0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlY3Rpb25zU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRTY3JlZW5UeXBlITogRGF0YVZpZXdTY3JlZW5TaXplO1xuXG4gICAgcHVibGljIGxheW91dEJ1aWxkZXJTZXJ2aWNlITogUGVwTGF5b3V0QnVpbGRlclNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgLy8gcHVibGljIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICAgICAgLy8gcHVibGljIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAvLyBwcml2YXRlIGRyYWdEcm9wU2VydmljZTogRHJhZ0Ryb3BcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZSA9IG5ldyBQZXBMYXlvdXRCdWlsZGVyU2VydmljZShsYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdwZXAtbGF5b3V0Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0TGF5b3V0U2l6ZVR5cGUoc2l6ZTogUGVwTGF5b3V0U2l6ZVR5cGUgfCAnbm9uZScpIHtcbiAgICAgICAgbGV0IHJlcztcblxuICAgICAgICBpZiAoc2l6ZSA9PT0gJ2xnJykge1xuICAgICAgICAgICAgcmVzID0gJzJyZW0nO1xuICAgICAgICB9IGVsc2UgaWYgKHNpemUgPT09ICdtZCcpIHtcbiAgICAgICAgICAgIHJlcyA9ICcxcmVtJztcbiAgICAgICAgfSBlbHNlIGlmIChzaXplID09PSAnc20nKSB7XG4gICAgICAgICAgICByZXMgPSAnMC41cmVtJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyA9ICcwJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhbmltYXRlU2tlbGV0b24oKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaG93U2tlbGV0b24pIHtcbiAgICAgICAgICAgIC8vIHRoaXMuc2VjdGlvbnNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ291dCcpO1xuICAgICAgICAgICAgdGhpcy5zZWN0aW9uc0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnaW4nKTtcbiAgICAgICAgICAgIHRoaXMuc2tlbGV0b25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2luJyk7XG4gICAgICAgICAgICAvLyB0aGlzLnNrZWxldG9uQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdvdXQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2luJyk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlY3Rpb25zQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdvdXQnKTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2tlbGV0b25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ291dCcpO1xuICAgICAgICAgICAgdGhpcy5za2VsZXRvbkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnaW4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGF5b3V0RGF0YVByb3BlcnRpZXMoKSB7XG4gICAgICAgIGNvbnN0IGxheW91dFZpZXcgPSB0aGlzLl9sYXlvdXRWaWV3O1xuXG4gICAgICAgIGlmIChsYXlvdXRWaWV3KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWN0aW9uc0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29lcmNlTnVtYmVyUHJvcGVydHkobGF5b3V0Vmlldy5MYXlvdXQuTWF4V2lkdGgsIDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoVG9TZXQgPSBtYXhXaWR0aCA9PT0gMCA/ICd1bnNldCcgOiBgJHttYXhXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNlY3Rpb25zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBtYXhXaWR0aFRvU2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5zZWN0aW9uc0dhcCA9IGxheW91dFZpZXcuTGF5b3V0LlNlY3Rpb25zR2FwIHx8ICdtZCc7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnNHYXAgPSBsYXlvdXRWaWV3LkxheW91dC5Db2x1bW5zR2FwIHx8ICdtZCc7XG5cbiAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbFNwYWNpbmcgPSBsYXlvdXRWaWV3LkxheW91dC5Ib3Jpem9udGFsU3BhY2luZztcbiAgICAgICAgICAgIHRoaXMudmVydGljYWxTcGFjaW5nID0gbGF5b3V0Vmlldy5MYXlvdXQuVmVydGljYWxTcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JlZW50VHlwZShzY3JlZW5TaXplOiBQZXBTY3JlZW5TaXplVHlwZSkge1xuICAgICAgICBjb25zdCBzY3JlZW5UeXBlID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldFNjcmVlblR5cGUoc2NyZWVuU2l6ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTY3JlZW5UeXBlID0gc2NyZWVuVHlwZTtcbiAgICAgICAgdGhpcy5zY3JlZW5UeXBlQ2hhbmdlLmVtaXQoc2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsIEV2ZW50cyAtIGZvciBjb2RlIHVzYWdlXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucHJldmlld01vZGVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChwcmV2aWV3TW9kZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3TW9kZSA9IHByZXZpZXdNb2RlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2VjdGlvbnNDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZWN0aW9uc1N1YmplY3QubmV4dChzZWN0aW9ucyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zaG93U2tlbGV0b25DaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaG93U2tlbGV0b246IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNob3dTa2VsZXRvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1NrZWxldG9uID0gc2hvd1NrZWxldG9uO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZVNrZWxldG9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5vblJlc2l6ZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAvLyAgICAgdGhpcy5zZXRTY3JlZW50VHlwZShzaXplKTtcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNjcmVlblNpemVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2NyZWVudFR5cGUoc2l6ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsIEV2ZW50cyAtIGZvciByYWlzZSB0byB0aGUgY2xpZW50XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubGF5b3V0Vmlld0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGxheW91dFZpZXc6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbGF5b3V0VmlldyA9IGxheW91dFZpZXc7XG4gICAgICAgICAgICB0aGlzLnNldExheW91dERhdGFQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICB0aGlzLmxheW91dFZpZXdDaGFuZ2UuZW1pdCh0aGlzLl9sYXlvdXRWaWV3KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U2VjdGlvbnNUZW1wbGF0ZVJvd3MoKSB7XG4gICAgICAgIGxldCBncmlkQXV0b1Jvd3MgPSAnJztcbiAgICAgICAgLy8gbGV0IGZpbGxIZWlnaHRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuc2VjdGlvbnMkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uczogYW55KSA9PiB7ICAgIFxuICAgICAgICAgICAgaWYgKHNlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKChzZWM6IElQZXBMYXlvdXRTZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKHNlYy5GaWxsSGVpZ2h0ID09PSB0cnVlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbGxIZWlnaHRDb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZEF1dG9Sb3dzICs9ICcgYXV0byc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkQXV0b1Jvd3MgKz0gJyBtaW4tY29udGVudCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvL2lmIGFsbCBhcmUgZmlsbCBoZWlnaHQgc2hvdWxkIHJldHVybiAxZnIgZm9yIGFsbFxuICAgICAgICAgICAgICAgIC8vaWYgbm90IHNob3VsZCByZXR1cm4gYXV0byBmb3IgZmlsbCBoZWlnaHQgYW5kIG1pbiBjb250ZW50IGZvciBub25lXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdyaWRBdXRvUm93cztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZ3JpZEF1dG9Sb3dzO1xuICAgIH1cblxuICAgIG9uU2VjdGlvbkRyb3BwZWQoZXZlbnQ6IENka0RyYWdEcm9wPGFueVtdPikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJvcHBlZChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbmQoZXZlbnQ6IENka0RyYWdFbmQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uU2VjdGlvbkRyYWdFbmQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIjwhLS0gRm9yIHRoZSB0b3Agc3BhY2luZyAtLT5cbjxkaXYgY2xhc3M9XCJ0b3Atc3BhY2luZyBzcGFjaW5nLXt7dmVydGljYWxTcGFjaW5nfX1cIiA+PC9kaXY+XG48ZGl2ICNzZWN0aW9uc0NvbnQgY2RrRHJvcExpc3RHcm91cCBjbGFzcz1cInNlY3Rpb25zLWNvbnRhaW5lciBnYXAte3sgc2VjdGlvbnNHYXAgfX1cIiBbbmdDbGFzc109XCJ7J3ByZXZpZXctc3RhdGUnOiBwcmV2aWV3TW9kZSB9XCIgIFxuICAgIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25TZWN0aW9uRHJvcHBlZCgkZXZlbnQpXCIgW25nU3R5bGVdPVwieydncmlkLWF1dG8tcm93cyc6IGdldFNlY3Rpb25zVGVtcGxhdGVSb3dzKCl9XCJcbiAgICA+XG4gICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnMkIHwgYXN5bmM7IGxldCBpPWluZGV4O1wiIFxuICAgICAgICBjbGFzcz1cImRyYWdnYWJsZS1zZWN0aW9uIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkU2NyZWVuVHlwZSA9PT0gJ1BoYWJsZXQnID8gJ21hcmdpbi0nK3NlY3Rpb25zR2FwIDogJydcIiBbYmxvY2tUZW1wbGF0ZV09XCJibG9ja1RlbXBsYXRlXCJcbiAgICAgICAgW2tleV09XCJzZWN0aW9uLktleVwiIFtuYW1lXT1cInNlY3Rpb24uTmFtZSB8fCAoJ0xBWU9VVF9CVUlMREVSLlNFQ1RJT04nIHwgdHJhbnNsYXRlKSArICcgJyArIChpKzEpXCIgW3NwbGl0XT1cInNlY3Rpb24uU3BsaXRcIiBbaGVpZ2h0XT1cInNlY3Rpb24uSGVpZ2h0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwic2VjdGlvbi5Db2x1bW5zXCIgW3BhZGRpbmddPVwic2VjdGlvbi5QYWRkaW5nXCIgW2NvbGxhcHNlT25UYWJsZXRdPVwic2VjdGlvbi5Db2xsYXBzZU9uVGFibGV0IHx8IGZhbHNlXCIgW2hpZGVJbl09XCJzZWN0aW9uLkhpZGUgfHwgW11cIiBbY29sdW1uc0dhcF09XCJjb2x1bW5zR2FwXCJcbiAgICAgICAgPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuPGRpdiAjc2tlbGV0b25Db250IGNsYXNzPVwic2tlbGV0b24tY29udGFpbmVyIFwiPlxuICAgIDxwZXAtc2tlbGV0b24tbG9hZGVyIFtyb3dzTnVtYmVyXT1cIjFcIiBbbGFzdFJvd09mZnNldF09XCJmYWxzZVwiIHJvd0hlaWdodFR5cGU9XCJ4bFwiID48L3BlcC1za2VsZXRvbi1sb2FkZXI+XG4gICAgPGRpdiBjbGFzcz1cInNwbGl0LXNrZWxldG9uLWNvbnRhaW5lclwiPlxuICAgICAgICA8cGVwLXNrZWxldG9uLWxvYWRlciBbcm93c051bWJlcl09XCIxXCIgW2xhc3RSb3dPZmZzZXRdPVwiZmFsc2VcIiByb3dIZWlnaHRUeXBlPVwibWF4XCIgPjwvcGVwLXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgPHBlcC1za2VsZXRvbi1sb2FkZXIgW3Jvd3NOdW1iZXJdPVwiMVwiIFtsYXN0Um93T2Zmc2V0XT1cImZhbHNlXCIgcm93SGVpZ2h0VHlwZT1cIm1heFwiID48L3BlcC1za2VsZXRvbi1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgPHBlcC1za2VsZXRvbi1sb2FkZXIgW3Jvd3NOdW1iZXJdPVwiMVwiIFtsYXN0Um93T2Zmc2V0XT1cImZhbHNlXCIgcm93SGVpZ2h0VHlwZT1cInhsXCIgPjwvcGVwLXNrZWxldG9uLWxvYWRlcj5cblxuICAgIDxwZXAtc2tlbGV0b24tbG9hZGVyIFtyb3dzTnVtYmVyXT1cIjFcIiBbbGFzdFJvd09mZnNldF09XCJmYWxzZVwiIHJvd0hlaWdodFR5cGU9XCJtYXhcIiA+PC9wZXAtc2tlbGV0b24tbG9hZGVyPlxuPC9kaXY+XG48IS0tIEZvciB0aGUgYm90dG9tIHNwYWNpbmcgLS0+XG48ZGl2IGNsYXNzPVwiYm90dG9tLXNwYWNpbmcgc3BhY2luZy17e3ZlcnRpY2FsU3BhY2luZ319XCI+PC9kaXY+XG48cGVwLXNpemUtZGV0ZWN0b3I+PC9wZXAtc2l6ZS1kZXRlY3Rvcj4iXX0=
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2xheW91dC1idWlsZGVyL2xheW91dC9sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0L2xheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThGLFNBQVMsRUFDbkYsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFFOUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUEyQixPQUFPLEVBQXVDLE1BQU0seUJBQXlCLENBQUM7QUFDeEksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbEYsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQVVuRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBcUUxRDtJQUNJLHdEQUF3RDtJQUN4RCwwQ0FBMEM7SUFDbEMsNEJBQTBELEVBQzFELFdBQXVCLEVBQ3ZCLFFBQW1CLEVBQ25CLG9CQUE2QztRQUVyRCxLQUFLLEVBQUUsQ0FBQztRQUxBLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBdkVqRCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBbUJULGtCQUFhLEdBQWlDLFNBQVMsQ0FBQztRQUV6RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQVVwQixx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RE4sS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBU0csYUFBYTtzQkFBckIsS0FBSztnQkFJRixZQUFZO3NCQURmLEtBQUs7Z0JBU0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFvQkcsYUFBYTtzQkFEdEIsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgQ29udGVudENoaWxkcmVuLFxuICAgIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RCaW5kaW5nLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VuZCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcm9wTGlzdCwgRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUsIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLCBQZXBHdWlkLCBQZXBMYXlvdXRTZXJ2aWNlLCBQZXBTY3JlZW5TaXplVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcbmltcG9ydCB7IElQZXBMYXlvdXRTZWN0aW9uLCBJUGVwTGF5b3V0VmlldywgUGVwTGF5b3V0U2l6ZVR5cGUgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGFWaWV3U2NyZWVuU2l6ZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBQZXBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uL2xheW91dC1idWlsZGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1sYXlvdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0xheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFBlcExheW91dENvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NrZWxldG9uQ29udCcsIHsgc3RhdGljOiB0cnVlIH0pIHNrZWxldG9uQ29udGFpbmVyITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdzZWN0aW9uc0NvbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWN0aW9uc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIF9rZXkgPSAnJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBrZXkodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldExheW91dEtleSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBrZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9sYXlvdXRWaWV3ITogSVBlcExheW91dFZpZXc7XG4gICAgQElucHV0KClcbiAgICBzZXQgbGF5b3V0Vmlldyh2YWx1ZTogSVBlcExheW91dFZpZXcpIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0VmlldyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubG9hZExheW91dEJ1aWxkZXIodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgbGF5b3V0VmlldygpOiBJUGVwTGF5b3V0VmlldyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXlvdXRWaWV3O1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGJsb2NrVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBwcml2YXRlIF9zaG93U2tlbGV0b24gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG93U2tlbGV0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1NrZWxldG9uID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zaG93U2tlbGV0b24odmFsdWUpO1xuICAgIH1cbiAgICBnZXQgc2hvd1NrZWxldG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1NrZWxldG9uO1xuICAgIH1cbiAgICBcbiAgICBAT3V0cHV0KCkgbGF5b3V0Vmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBMYXlvdXRWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2NyZWVuVHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGFWaWV3U2NyZWVuU2l6ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIF9ob3Jpem9udGFsU3BhY2luZzogUGVwTGF5b3V0U2l6ZVR5cGUgfCB1bmRlZmluZWQgPSAnbWQnO1xuICAgIHNldCBob3Jpem9udGFsU3BhY2luZyh2YWx1ZTogUGVwTGF5b3V0U2l6ZVR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faG9yaXpvbnRhbFNwYWNpbmcgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5wYWRkaW5nSW5saW5lID0gdGhpcy5jb252ZXJ0TGF5b3V0U2l6ZVR5cGUodmFsdWUgfHwgJ21kJyk7XG4gICAgfVxuICAgIGdldCBob3Jpem9udGFsU3BhY2luZygpOiBQZXBMYXlvdXRTaXplVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3Jpem9udGFsU3BhY2luZztcbiAgICB9XG5cbiAgICBwcml2YXRlIF92ZXJ0aWNhbFNwYWNpbmc6IFBlcExheW91dFNpemVUeXBlIHwgdW5kZWZpbmVkID0gJ21kJztcbiAgICBzZXQgdmVydGljYWxTcGFjaW5nKHZhbHVlOiBQZXBMYXlvdXRTaXplVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl92ZXJ0aWNhbFNwYWNpbmcgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHZlcnRpY2FsU3BhY2luZygpOiBQZXBMYXlvdXRTaXplVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbFNwYWNpbmc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wYWRkaW5nLWlubGluZScpXG4gICAgcHJvdGVjdGVkIHBhZGRpbmdJbmxpbmUgPSAnMXJlbSc7XG4gICAgXG4gICAgcHJvdGVjdGVkIHNlY3Rpb25zR2FwITogUGVwTGF5b3V0U2l6ZVR5cGU7XG4gICAgcHJvdGVjdGVkIGNvbHVtbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgcHJldmlld01vZGUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX3NlY3Rpb25zU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PElQZXBMYXlvdXRTZWN0aW9uW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJUGVwTGF5b3V0U2VjdGlvbltdPihbXSk7XG4gICAgcHJvdGVjdGVkIGdldCBzZWN0aW9ucyQoKTogT2JzZXJ2YWJsZTxJUGVwTGF5b3V0U2VjdGlvbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWN0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkU2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAvLyBwdWJsaWMgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICAvLyBwdWJsaWMgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlOiBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlclNlcnZpY2U6IFBlcExheW91dEJ1aWxkZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BlcC1sYXlvdXQnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExheW91dEtleShsYXlvdXRLZXk6IHN0cmluZykge1xuICAgICAgICAvLyBTZXQgdGhlIGtleSBvbmx5IG9uY2VcbiAgICAgICAgaWYgKHRoaXMuX2tleS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChsYXlvdXRLZXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgbGF5b3V0S2V5ID0gUGVwR3VpZC5uZXdHdWlkKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2tleSA9IGxheW91dEtleTtcblxuICAgICAgICAgICAgLy8gU2V0IHRoZSBzZXJ2aWNlIG1hcFxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVyU2VydmljZS5zZXRMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlKHRoaXMuX2tleSwgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydExheW91dFNpemVUeXBlKHNpemU6IFBlcExheW91dFNpemVUeXBlIHwgJ25vbmUnKSB7XG4gICAgICAgIGxldCByZXM7XG5cbiAgICAgICAgaWYgKHNpemUgPT09ICdsZycpIHtcbiAgICAgICAgICAgIHJlcyA9ICcycmVtJztcbiAgICAgICAgfSBlbHNlIGlmIChzaXplID09PSAnbWQnKSB7XG4gICAgICAgICAgICByZXMgPSAnMXJlbSc7XG4gICAgICAgIH0gZWxzZSBpZiAoc2l6ZSA9PT0gJ3NtJykge1xuICAgICAgICAgICAgcmVzID0gJzAuNXJlbSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgPSAnMCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYW5pbWF0ZVNrZWxldG9uKCkge1xuICAgICAgICBpZiAodGhpcy5fc2hvd1NrZWxldG9uKSB7XG4gICAgICAgICAgICAvLyB0aGlzLnNlY3Rpb25zQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdvdXQnKTtcbiAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2luJyk7XG4gICAgICAgICAgICB0aGlzLnNrZWxldG9uQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdpbicpO1xuICAgICAgICAgICAgLy8gdGhpcy5za2VsZXRvbkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnb3V0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlY3Rpb25zQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdpbicpO1xuICAgICAgICAgICAgLy8gdGhpcy5zZWN0aW9uc0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnb3V0Jyk7XG4gICAgICAgICAgICAvLyB0aGlzLnNrZWxldG9uQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdvdXQnKTtcbiAgICAgICAgICAgIHRoaXMuc2tlbGV0b25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2luJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExheW91dERhdGFQcm9wZXJ0aWVzKCkge1xuICAgICAgICBjb25zdCBsYXlvdXRWaWV3ID0gdGhpcy5fbGF5b3V0VmlldztcblxuICAgICAgICBpZiAobGF5b3V0Vmlldykge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VjdGlvbnNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvZXJjZU51bWJlclByb3BlcnR5KGxheW91dFZpZXcuTGF5b3V0Lk1heFdpZHRoLCAwKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhXaWR0aFRvU2V0ID0gbWF4V2lkdGggPT09IDAgPyAndW5zZXQnIDogYCR7bWF4V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zZWN0aW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnbWF4LXdpZHRoJywgbWF4V2lkdGhUb1NldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNHYXAgPSBsYXlvdXRWaWV3LkxheW91dC5TZWN0aW9uc0dhcCB8fCAnbWQnO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zR2FwID0gbGF5b3V0Vmlldy5MYXlvdXQuQ29sdW1uc0dhcCB8fCAnbWQnO1xuXG4gICAgICAgICAgICB0aGlzLmhvcml6b250YWxTcGFjaW5nID0gbGF5b3V0Vmlldy5MYXlvdXQuSG9yaXpvbnRhbFNwYWNpbmc7XG4gICAgICAgICAgICB0aGlzLnZlcnRpY2FsU3BhY2luZyA9IGxheW91dFZpZXcuTGF5b3V0LlZlcnRpY2FsU3BhY2luZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2NyZWVudFR5cGUoc2NyZWVuU2l6ZTogUGVwU2NyZWVuU2l6ZVR5cGUpIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRTY3JlZW5UeXBlKHNjcmVlblNpemUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2NyZWVuVHlwZSA9IHNjcmVlblR5cGU7XG4gICAgICAgIHRoaXMuc2NyZWVuVHlwZUNoYW5nZS5lbWl0KHNjcmVlblR5cGUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBTZXQga2V5IGZvciB0aGUgbGF5b3V0IGlmIHdhc2VudCBzZXRcbiAgICAgICAgdGhpcy5zZXRMYXlvdXRLZXkoJycpO1xuXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsIEV2ZW50cyAtIGZvciBjb2RlIHVzYWdlXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucHJldmlld01vZGVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChwcmV2aWV3TW9kZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3TW9kZSA9IHByZXZpZXdNb2RlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2VjdGlvbnNDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZWN0aW9uc1N1YmplY3QubmV4dChzZWN0aW9ucyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zaG93U2tlbGV0b25DaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaG93U2tlbGV0b246IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNob3dTa2VsZXRvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1NrZWxldG9uID0gc2hvd1NrZWxldG9uO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZVNrZWxldG9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5vblJlc2l6ZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAvLyAgICAgdGhpcy5zZXRTY3JlZW50VHlwZShzaXplKTtcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNjcmVlblNpemVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2NyZWVudFR5cGUoc2l6ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsIEV2ZW50cyAtIGZvciByYWlzZSB0byB0aGUgY2xpZW50XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubGF5b3V0Vmlld0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGxheW91dFZpZXc6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbGF5b3V0VmlldyA9IGxheW91dFZpZXc7XG4gICAgICAgICAgICB0aGlzLnNldExheW91dERhdGFQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICB0aGlzLmxheW91dFZpZXdDaGFuZ2UuZW1pdCh0aGlzLl9sYXlvdXRWaWV3KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U2VjdGlvbnNUZW1wbGF0ZVJvd3MoKSB7XG4gICAgICAgIGxldCBncmlkQXV0b1Jvd3MgPSAnJztcbiAgICAgICAgLy8gbGV0IGZpbGxIZWlnaHRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuc2VjdGlvbnMkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzZWN0aW9uczogYW55KSA9PiB7ICAgIFxuICAgICAgICAgICAgaWYgKHNlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKChzZWM6IElQZXBMYXlvdXRTZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKHNlYy5GaWxsSGVpZ2h0ID09PSB0cnVlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbGxIZWlnaHRDb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZEF1dG9Sb3dzICs9ICcgYXV0byc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkQXV0b1Jvd3MgKz0gJyBtaW4tY29udGVudCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvL2lmIGFsbCBhcmUgZmlsbCBoZWlnaHQgc2hvdWxkIHJldHVybiAxZnIgZm9yIGFsbFxuICAgICAgICAgICAgICAgIC8vaWYgbm90IHNob3VsZCByZXR1cm4gYXV0byBmb3IgZmlsbCBoZWlnaHQgYW5kIG1pbiBjb250ZW50IGZvciBub25lXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdyaWRBdXRvUm93cztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZ3JpZEF1dG9Sb3dzO1xuICAgIH1cblxuICAgIG9uU2VjdGlvbkRyb3BwZWQoZXZlbnQ6IENka0RyYWdEcm9wPGFueVtdPikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJvcHBlZChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbmQoZXZlbnQ6IENka0RyYWdFbmQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uU2VjdGlvbkRyYWdFbmQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIjwhLS0gRm9yIHRoZSB0b3Agc3BhY2luZyAtLT5cbjxkaXYgY2xhc3M9XCJ0b3Atc3BhY2luZyBzcGFjaW5nLXt7dmVydGljYWxTcGFjaW5nfX1cIiA+PC9kaXY+XG48ZGl2ICNzZWN0aW9uc0NvbnQgY2RrRHJvcExpc3RHcm91cCBjbGFzcz1cInNlY3Rpb25zLWNvbnRhaW5lciBnYXAte3sgc2VjdGlvbnNHYXAgfX1cIiBbbmdDbGFzc109XCJ7J3ByZXZpZXctc3RhdGUnOiBwcmV2aWV3TW9kZSB9XCIgIFxuICAgIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25TZWN0aW9uRHJvcHBlZCgkZXZlbnQpXCIgW25nU3R5bGVdPVwieydncmlkLWF1dG8tcm93cyc6IGdldFNlY3Rpb25zVGVtcGxhdGVSb3dzKCl9XCJcbiAgICA+XG4gICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnMkIHwgYXN5bmM7IGxldCBpPWluZGV4O1wiIFxuICAgICAgICBjbGFzcz1cImRyYWdnYWJsZS1zZWN0aW9uIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkU2NyZWVuVHlwZSA9PT0gJ1BoYWJsZXQnID8gJ21hcmdpbi0nK3NlY3Rpb25zR2FwIDogJydcIiBbYmxvY2tUZW1wbGF0ZV09XCJibG9ja1RlbXBsYXRlXCJcbiAgICAgICAgW2tleV09XCJzZWN0aW9uLktleVwiIFtuYW1lXT1cInNlY3Rpb24uTmFtZSB8fCAoJ0xBWU9VVF9CVUlMREVSLlNFQ1RJT04nIHwgdHJhbnNsYXRlKSArICcgJyArIChpKzEpXCIgW3NwbGl0XT1cInNlY3Rpb24uU3BsaXRcIiBbaGVpZ2h0XT1cInNlY3Rpb24uSGVpZ2h0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwic2VjdGlvbi5Db2x1bW5zXCIgW3BhZGRpbmddPVwic2VjdGlvbi5QYWRkaW5nXCIgW2NvbGxhcHNlT25UYWJsZXRdPVwic2VjdGlvbi5Db2xsYXBzZU9uVGFibGV0IHx8IGZhbHNlXCIgW2hpZGVJbl09XCJzZWN0aW9uLkhpZGUgfHwgW11cIiBbY29sdW1uc0dhcF09XCJjb2x1bW5zR2FwXCJcbiAgICAgICAgPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuPGRpdiAjc2tlbGV0b25Db250IGNsYXNzPVwic2tlbGV0b24tY29udGFpbmVyIFwiPlxuICAgIDxwZXAtc2tlbGV0b24tbG9hZGVyIFtyb3dzTnVtYmVyXT1cIjFcIiBbbGFzdFJvd09mZnNldF09XCJmYWxzZVwiIHJvd0hlaWdodFR5cGU9XCJ4bFwiID48L3BlcC1za2VsZXRvbi1sb2FkZXI+XG4gICAgPGRpdiBjbGFzcz1cInNwbGl0LXNrZWxldG9uLWNvbnRhaW5lclwiPlxuICAgICAgICA8cGVwLXNrZWxldG9uLWxvYWRlciBbcm93c051bWJlcl09XCIxXCIgW2xhc3RSb3dPZmZzZXRdPVwiZmFsc2VcIiByb3dIZWlnaHRUeXBlPVwibWF4XCIgPjwvcGVwLXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgPHBlcC1za2VsZXRvbi1sb2FkZXIgW3Jvd3NOdW1iZXJdPVwiMVwiIFtsYXN0Um93T2Zmc2V0XT1cImZhbHNlXCIgcm93SGVpZ2h0VHlwZT1cIm1heFwiID48L3BlcC1za2VsZXRvbi1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgPHBlcC1za2VsZXRvbi1sb2FkZXIgW3Jvd3NOdW1iZXJdPVwiMVwiIFtsYXN0Um93T2Zmc2V0XT1cImZhbHNlXCIgcm93SGVpZ2h0VHlwZT1cInhsXCIgPjwvcGVwLXNrZWxldG9uLWxvYWRlcj5cblxuICAgIDxwZXAtc2tlbGV0b24tbG9hZGVyIFtyb3dzTnVtYmVyXT1cIjFcIiBbbGFzdFJvd09mZnNldF09XCJmYWxzZVwiIHJvd0hlaWdodFR5cGU9XCJtYXhcIiA+PC9wZXAtc2tlbGV0b24tbG9hZGVyPlxuPC9kaXY+XG48IS0tIEZvciB0aGUgYm90dG9tIHNwYWNpbmcgLS0+XG48ZGl2IGNsYXNzPVwiYm90dG9tLXNwYWNpbmcgc3BhY2luZy17e3ZlcnRpY2FsU3BhY2luZ319XCI+PC9kaXY+XG48cGVwLXNpemUtZGV0ZWN0b3I+PC9wZXAtc2l6ZS1kZXRlY3Rvcj4iXX0=
|