@pepperi-addons/ngx-lib 0.4.2-beta.262 → 0.4.2-beta.264
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/core/customization/customization.model.d.ts +2 -0
- package/draggable-items/draggable-item/draggable-item.component.d.ts +7 -6
- package/draggable-items/draggable-items.module.d.ts +7 -7
- package/esm2020/core/customization/customization.model.mjs +4 -1
- package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +13 -10
- package/esm2020/draggable-items/draggable-items.component.mjs +3 -3
- package/esm2020/draggable-items/draggable-items.module.mjs +11 -11
- package/esm2020/form/field-generator.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +3 -1
- package/esm2020/form/internal-form.component.mjs +3 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +25 -22
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +6 -2
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +5 -0
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +25 -22
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +6 -2
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +3 -0
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -200,12 +200,14 @@ export declare type PepSelectFieldType = 'select' | 'multi';
|
|
|
200
200
|
interface IPepSelectFieldOptions extends IPepFieldBaseOptions {
|
|
201
201
|
options?: IPepOption[];
|
|
202
202
|
type?: PepSelectFieldType;
|
|
203
|
+
autoSortOptions?: boolean;
|
|
203
204
|
}
|
|
204
205
|
export declare class PepSelectField extends PepFieldBase {
|
|
205
206
|
controlType: string;
|
|
206
207
|
options: IPepOption[];
|
|
207
208
|
type: PepSelectFieldType;
|
|
208
209
|
emptyOption: boolean;
|
|
210
|
+
autoSortOptions: boolean;
|
|
209
211
|
constructor(options?: IPepSelectFieldOptions);
|
|
210
212
|
update(options: IPepSelectFieldOptions): void;
|
|
211
213
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { PepStyleType } from '@pepperi-addons/ngx-lib';
|
|
3
3
|
import { IPepMenuItemClickEvent, PepMenuItem } from '@pepperi-addons/ngx-lib/menu';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class DraggableItemComponent implements OnInit {
|
|
6
6
|
title: string;
|
|
7
|
-
data: any;
|
|
8
|
-
disabled: boolean;
|
|
9
7
|
titlePrefix: string;
|
|
10
8
|
titleClassNames: string;
|
|
9
|
+
data: any;
|
|
10
|
+
disabled: boolean;
|
|
11
11
|
shadow: boolean;
|
|
12
12
|
styleType: PepStyleType;
|
|
13
13
|
toggleContent: boolean;
|
|
@@ -17,8 +17,9 @@ export declare class PepDraggableItemComponent {
|
|
|
17
17
|
contentToggle: EventEmitter<boolean>;
|
|
18
18
|
actionsMenuItemClick: EventEmitter<IPepMenuItemClickEvent>;
|
|
19
19
|
constructor();
|
|
20
|
+
ngOnInit(): void;
|
|
20
21
|
onToggleContent(): void;
|
|
21
22
|
onActionsMenuItemClick(item: IPepMenuItemClickEvent): void;
|
|
22
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DraggableItemComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DraggableItemComponent, "pep-draggable-item", never, { "title": "title"; "titlePrefix": "titlePrefix"; "titleClassNames": "titleClassNames"; "data": "data"; "disabled": "disabled"; "shadow": "shadow"; "styleType": "styleType"; "toggleContent": "toggleContent"; "isToggleContentOpen": "isToggleContentOpen"; "actionsMenu": "actionsMenu"; "menuStyleType": "menuStyleType"; }, { "contentToggle": "contentToggle"; "actionsMenuItemClick": "actionsMenuItemClick"; }, never, ["[pep-actions]", "[pep-toggle-content]"], false>;
|
|
24
25
|
}
|
|
@@ -4,16 +4,16 @@ import * as i1 from "./draggable-items.component";
|
|
|
4
4
|
import * as i2 from "./draggable-item/draggable-item.component";
|
|
5
5
|
import * as i3 from "@angular/common";
|
|
6
6
|
import * as i4 from "@angular/forms";
|
|
7
|
-
import * as i5 from "@
|
|
8
|
-
import * as i6 from "@pepperi-addons/ngx-lib";
|
|
9
|
-
import * as i7 from "@pepperi-addons/ngx-lib/
|
|
10
|
-
import * as i8 from "@pepperi-addons/ngx-lib/
|
|
11
|
-
import * as i9 from "@pepperi-addons/ngx-lib/
|
|
12
|
-
import * as i10 from "@
|
|
7
|
+
import * as i5 from "@pepperi-addons/ngx-lib";
|
|
8
|
+
import * as i6 from "@pepperi-addons/ngx-lib/button";
|
|
9
|
+
import * as i7 from "@pepperi-addons/ngx-lib/icon";
|
|
10
|
+
import * as i8 from "@pepperi-addons/ngx-lib/menu";
|
|
11
|
+
import * as i9 from "@pepperi-addons/ngx-lib/search";
|
|
12
|
+
import * as i10 from "@angular/cdk/drag-drop";
|
|
13
13
|
export declare class PepDraggableItemsModule {
|
|
14
14
|
private pepIconRegistry;
|
|
15
15
|
constructor(pepIconRegistry: PepIconRegistry);
|
|
16
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<PepDraggableItemsModule, never>;
|
|
17
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<PepDraggableItemsModule, [typeof i1.PepDraggableItemsComponent, typeof i2.
|
|
17
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<PepDraggableItemsModule, [typeof i1.PepDraggableItemsComponent, typeof i2.DraggableItemComponent], [typeof i3.CommonModule, typeof i4.ReactiveFormsModule, typeof i5.PepNgxLibModule, typeof i6.PepButtonModule, typeof i7.PepIconModule, typeof i8.PepMenuModule, typeof i9.PepSearchModule, typeof i10.DragDropModule], [typeof i1.PepDraggableItemsComponent, typeof i2.DraggableItemComponent]>;
|
|
18
18
|
static ɵinj: i0.ɵɵInjectorDeclaration<PepDraggableItemsModule>;
|
|
19
19
|
}
|
|
@@ -260,12 +260,15 @@ export class PepSelectField extends PepFieldBase {
|
|
|
260
260
|
super(options);
|
|
261
261
|
this.controlType = 'select';
|
|
262
262
|
this.options = [];
|
|
263
|
+
this.autoSortOptions = true;
|
|
263
264
|
this.type = options.type || 'select';
|
|
264
265
|
this.emptyOption = options.emptyOption;
|
|
266
|
+
this.autoSortOptions = options.autoSortOptions ?? true;
|
|
265
267
|
this.update(options);
|
|
266
268
|
}
|
|
267
269
|
update(options) {
|
|
268
270
|
super.update(options);
|
|
271
|
+
this.autoSortOptions = options.autoSortOptions ?? true;
|
|
269
272
|
this.options = options.options || [];
|
|
270
273
|
}
|
|
271
274
|
}
|
|
@@ -325,4 +328,4 @@ export class PepInternalMenuField extends PepFieldBase {
|
|
|
325
328
|
// this.hasSubMenu = options['hasSubMenu'];
|
|
326
329
|
}
|
|
327
330
|
}
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCekQsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEyQixNQUFNLENBQUM7QUFJM0Usb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF5QixLQUFLLENBQUM7QUFzQ3RFLE1BQU0sT0FBTyxZQUFZO0lBMkJyQix1QkFBdUI7SUFFdkIsWUFBWSxVQUFnQyxFQUFFO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFckMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLENB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O1FBRXRCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFNRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsWUFBWTtJQUdsRCwrQkFBK0I7SUFFL0IsWUFBWSxVQUF3QyxFQUFFO1FBQ2xELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUxuQixnQkFBVyxHQUFHLE1BQU0sQ0FBQztRQUNyQixZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQUt2QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLDJDQUEyQztJQUMvQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqIEFsbG93ZWQgbGF5b3V0IG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcExheW91dFR5cGUgPSAnZm9ybScgfCAnY2FyZCcgfCAndGFibGUnO1xuXG4vKiogQWxsb3dlZCBzdHlsZSBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBTdHlsZVR5cGUgPSAnd2VhaycgfCAnd2Vhay1pbnZlcnQnIHwgJ3dlYWstc3BlY2lhbCcgfCAncmVndWxhcicgfCAnc3Ryb25nJztcblxuLyoqIEFsbG93ZWQgc3R5bGUgc3RhdGUgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwU3R5bGVTdGF0ZVR5cGUgPSAnc3lzdGVtJyB8ICdjYXV0aW9uJyB8ICdzdWNjZXNzJztcblxuLyoqIEFsbG93ZWQgc2l6ZSBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBTaXplVHlwZSA9ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuXG4vKiogQWxsb3dlZCBob3Jpem9udGFsIGFsaWdubWVudCBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuLyoqIERlZmF1bHQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JztcblxuLyoqIEFsbG93ZWQgdmVydGljYWwgYWxpZ25tZW50IG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcFZlcnRpY2FsQWxpZ25tZW50ID0gJ3RvcCcgfCAnbWlkZGxlJyB8ICdib3R0b20nO1xuLyoqIERlZmF1bHQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9WRVJUSUNBTF9BTElHTk1FTlQ6IFBlcFZlcnRpY2FsQWxpZ25tZW50ID0gJ3RvcCc7XG5leHBvcnQgaW50ZXJmYWNlIElQZXBPcHRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8vIGV4cG9ydCB0eXBlIFBlcEZpZWxkQmFzZVR5cGUgPSAnJyB8IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlIHwgUGVwVGV4dGJveEZpZWxkVHlwZSB8XG4vLyAgICAgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZSB8IFBlcERhdGVGaWVsZFR5cGUgfCBQZXBDaGVja2JveEZpZWxkVHlwZSB8IFBlcFNlbGVjdEZpZWxkVHlwZTtcbmludGVyZmFjZSBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdmFsdWU/OiBhbnk7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XG4gICAgYWRkaXRpb25hbFZhbHVlPzogc3RyaW5nO1xuICAgIGtleT86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBhY2Nlc3Nvcnk/OiBzdHJpbmc7XG4gICAgbWFuZGF0b3J5PzogYm9vbGVhbjtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xuICAgIC8vIHR5cGU/OiBQZXBGaWVsZEJhc2VUeXBlO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGhpZGRlbj86IGJvb2xlYW47XG4gICAgcm93PzogbnVtYmVyO1xuICAgIHJvd1NwYW4/OiBudW1iZXI7XG4gICAgY29sPzogbnVtYmVyO1xuICAgIGNvbFNwYW4/OiBudW1iZXI7XG4gICAgeEFsaWdubWVudD86IFBlcEhvcml6b250YWxBbGlnbm1lbnQ7XG4gICAgeUFsaWdubWVudD86IFBlcFZlcnRpY2FsQWxpZ25tZW50O1xuICAgIG1heEZpZWxkQ2hhcmFjdGVycz86IG51bWJlcjtcbiAgICBtaW5WYWx1ZT86IG51bWJlcjtcbiAgICBtYXhWYWx1ZT86IG51bWJlcjtcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgdmlzaWJsZT86IGJvb2xlYW47ICAgIFxuICAgIGVtcHR5T3B0aW9uPzogYm9vbGVhbjsgICAgXG4gICAgLy8gbGFzdEZvY3VzRmllbGQ/OiBhbnk7XG4gICAgZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQ/OiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgUGVwRmllbGRCYXNlIHtcbiAgICB2YWx1ZTogYW55O1xuICAgIGZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gICAgYWRkaXRpb25hbFZhbHVlOiBzdHJpbmc7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBhY2Nlc3Nvcnk6IHN0cmluZztcbiAgICBtYW5kYXRvcnk6IGJvb2xlYW47XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgb3JkZXI6IG51bWJlcjtcbiAgICAvLyB0eXBlOiBzdHJpbmc7XG4gICAgY29udHJvbFR5cGU6IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIGhpZGRlbjogYm9vbGVhbjtcbiAgICByb3c6IG51bWJlcjtcbiAgICByb3dTcGFuOiBudW1iZXI7XG4gICAgY29sOiBudW1iZXI7XG4gICAgY29sU3BhbjogbnVtYmVyO1xuICAgIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQ7XG4gICAgeUFsaWdubWVudDogUGVwVmVydGljYWxBbGlnbm1lbnQ7XG4gICAgZ3JvdXBGaWVsZHM6IFBlcEZpZWxkQmFzZVtdO1xuICAgIG1heEZpZWxkQ2hhcmFjdGVyczogbnVtYmVyO1xuICAgIG1pblZhbHVlOiBudW1iZXI7XG4gICAgbWF4VmFsdWU6IG51bWJlcjtcbiAgICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgICB2aXNpYmxlOiBib29sZWFuOyAgICAgICAgXG4gICAgLy8gbGFzdEZvY3VzRmllbGQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5rZXkgPSBvcHRpb25zLmtleSB8fCAnJztcbiAgICAgICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWwgfHwgJyc7XG4gICAgICAgIHRoaXMuYWNjZXNzb3J5ID0gb3B0aW9ucy5hY2Nlc3NvcnkgfHwgJyc7XG4gICAgICAgIHRoaXMubWFuZGF0b3J5ID0gISFvcHRpb25zLm1hbmRhdG9yeTtcblxuICAgICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA/PyAxO1xuICAgICAgICB0aGlzLmNvbnRyb2xUeXBlID0gb3B0aW9ucy5jb250cm9sVHlwZSB8fCAnJztcbiAgICAgICAgLy8gdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICcnO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJztcbiAgICAgICAgdGhpcy5oaWRkZW4gPSAhIW9wdGlvbnMuaGlkZGVuO1xuXG4gICAgICAgIHRoaXMucm93ID0gb3B0aW9ucy5yb3cgPz8gMTtcbiAgICAgICAgdGhpcy5yb3dTcGFuID0gb3B0aW9ucy5yb3dTcGFuID8/IDE7XG4gICAgICAgIHRoaXMuY29sID0gb3B0aW9ucy5jb2wgPz8gMTtcbiAgICAgICAgdGhpcy5jb2xTcGFuID0gb3B0aW9ucy5jb2xTcGFuID8/IDE7XG5cbiAgICAgICAgdGhpcy54QWxpZ25tZW50ID0gb3B0aW9ucy54QWxpZ25tZW50ID8/IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgICAgIHRoaXMueUFsaWdubWVudCA9IG9wdGlvbnMueUFsaWdubWVudCA/PyBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOTUVOVDtcblxuICAgICAgICB0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyA9IG9wdGlvbnMubWF4RmllbGRDaGFyYWN0ZXJzID8/IDA7XG4gICAgICAgIHRoaXMubWluVmFsdWUgPSBvcHRpb25zLm1pblZhbHVlID8/IDA7XG4gICAgICAgIHRoaXMubWF4VmFsdWUgPSBvcHRpb25zLm1heFZhbHVlID8/IDA7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEJhc2VWYWxpZGF0b3JzKGlzQ2hlY2tib3ggPSBmYWxzZSk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoaXNDaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzID4gMCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzKSk7XG4gICAgICAgIH0gICAgICAgIFxuXG4gICAgICAgIC8vREktMjY3MjJcbiAgICAgICAgLy8gaWYgKHRoaXMubWluVmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pblZhbHVlKSk7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyBpZiAodGhpcy5tYXhWYWx1ZSkge1xuICAgICAgICAvLyAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KHRoaXMubWF4VmFsdWUpKTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gdGhpcy5nZXRCYXNlVmFsaWRhdG9ycygpO1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xuICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWUgPSBvcHRpb25zLmFkZGl0aW9uYWxWYWx1ZTtcblxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gISFvcHRpb25zLnJlYWRvbmx5O1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gISFvcHRpb25zLmRpc2FibGVkO1xuICAgICAgICB0aGlzLnZpc2libGUgPSAhIW9wdGlvbnMudmlzaWJsZTtcbiAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSBvcHRpb25zLnRleHRDb2xvciB8fCAnJztcbiAgICAgICAgLy8gdGhpcy5sYXN0Rm9jdXNGaWVsZCA9IG9wdGlvbnMubGFzdEZvY3VzRmllbGQgfHwgbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBQbGFjZWhvbGRlckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdwbGFjZWhvbGRlcic7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcFNlcGFyYXRvckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdzZXBhcmF0b3InO1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7ICAgICAgICBcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBBdHRhY2htZW50RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2F0dGFjaG1lbnQnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBJbmRpY2F0b3JzRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2luZGljYXRvcnMnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcFRleHRib3hGaWVsZFR5cGUgPVxuICAgIHwgJ3RleHQnXG4gICAgfCAnbGluaydcbiAgICB8ICdlbWFpbCdcbiAgICB8ICdwaG9uZSdcbiAgICB8ICdkdXJhdGlvbidcbiAgICB8ICdpbnQnXG4gICAgfCAncGVyY2VudGFnZSdcbiAgICB8ICdjdXJyZW5jeSdcbiAgICB8ICdyZWFsJztcbmludGVyZmFjZSBJUGVwVGV4dGJveEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICB0eXBlPzogUGVwVGV4dGJveEZpZWxkVHlwZTtcbiAgICByZWdleD86IHN0cmluZyB8IFJlZ0V4cDtcbiAgICAvLyByZWdleEVycm9yPzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFBlcFRleHRib3hGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAndGV4dGJveCc7XG4gICAgdHlwZTogUGVwVGV4dGJveEZpZWxkVHlwZSA9ICd0ZXh0JztcbiAgICByZWdleD86IHN0cmluZyB8IFJlZ0V4cDtcbiAgICAvLyByZWdleEVycm9yPzogc3RyaW5nO1xuICAgIGRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gTmFOO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3RleHQnO1xuICAgICAgICB0aGlzLnJlZ2V4ID0gb3B0aW9ucy5yZWdleCA/PyBudWxsO1xuICAgICAgICAvLyB0aGlzLnJlZ2V4RXJyb3IgPSBvcHRpb25zLnJlZ2V4RXJyb3IgPz8gbnVsbDtcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLmRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gb3B0aW9ucy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA/PyBOYU47XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAvLyBESS0xMTI5MiAtIGFkZCBjaGFuZ2VzIGZvciBsaW5rIGZpZWxkIGZvciB0aGUgXCJSZWFkIE9ubHkgZGlzcGxheSB2YWx1ZVwiIHByb3BcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb3JtYXR0ZWRWYWx1ZSAmJiB0aGlzLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHN1cGVyLmdldEJhc2VWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2VtYWlsJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICAgICAgICAgICAgL14oKFtePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Bob25lJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybigvXltcXGRcXC5cXC1cXCtcXChcXClcXCpcXCNdKyQvKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaW50JyB8fCB0aGlzLnR5cGUgPT09ICdyZWFsJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybigvXltcXC4sXFwtXFwrXFxkXSskLykpO1xuXG4gICAgICAgICAgICBpZiAoIWlzTmFOKHRoaXMubWluVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKHRoaXMubWluVmFsdWUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLm1heFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZih0aGlzLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgdGhpcy50eXBlID09PSAncGVyY2VudGFnZScpe1xuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLm1pblZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pblZhbHVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy5tYXhWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RleHQnICYmIHRoaXMucmVnZXgpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5yZWdleCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwTGlua0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdsaW5rJztcbiAgICB0eXBlOiBQZXBUZXh0Ym94RmllbGRUeXBlID0gJ2xpbmsnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcbiAgICAgICAgXG4gICAgICAgIC8vIERJLTIzMTY3IC0gQ29tbWVudCB0aGlzLlxuICAgICAgICAvLyAvLyBESS0xMTI5MiAtIGFkZCBjaGFuZ2VzIGZvciBsaW5rIGZpZWxkIGZvciB0aGUgXCJSZWFkIE9ubHkgZGlzcGxheSB2YWx1ZVwiIHByb3BcbiAgICAgICAgLy8gdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9XG4gICAgICAgIC8vICAgICB0aGlzLmRpc2FibGVkICYmIHRoaXMuZm9ybWF0dGVkVmFsdWUgJiYgdGhpcy52YWx1ZVxuICAgICAgICAvLyAgICAgICAgID8gdGhpcy5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAvLyAgICAgICAgIDogdGhpcy52YWx1ZTtcblxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcFRleHRhcmVhRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3RleHRhcmVhJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIC8vIHRoaXMudHlwZSA9ICd0ZXh0YXJlYSc7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcFNpZ25hdHVyZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICByZW5kZXJUaXRsZT86IGJvb2xlYW47XG4gICAgcmVuZGVyRW5sYXJnZUJ1dHRvbj86IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgUGVwUmljaEh0bWxUZXh0YXJlYUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdyaWNoaHRtbHRleHRhcmVhJzsgICAgXG4gICAgcmVuZGVyVGl0bGU6IGJvb2xlYW47XG4gICAgcmVuZGVyRW5sYXJnZUJ1dHRvbjogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnJlbmRlclRpdGxlID0gb3B0aW9ucy5yZW5kZXJUaXRsZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5yZW5kZXJUaXRsZSA6IHRydWU7XG4gICAgICAgIHRoaXMucmVuZGVyRW5sYXJnZUJ1dHRvbiA9IG9wdGlvbnMucmVuZGVyRW5sYXJnZUJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5yZW5kZXJFbmxhcmdlQnV0dG9uIDogdHJ1ZTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG59XG5leHBvcnQgY2xhc3MgUGVwU2lnbmF0dXJlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3NpZ25hdHVyZSc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW1hZ2VGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgaGFzQ2FtcGFpZ25GaWVsZD86IGFueTtcbiAgICBpbmRpY2F0b3JzRmllbGQ/OiBhbnk7XG4gICAgbWVudUZpZWxkPzogYW55O1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG4gICAgc2l6ZUxpbWl0TUI/OiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2UnO1xuICAgIGhhc0NhbXBhaWduRmllbGQgPSBudWxsO1xuICAgIGluZGljYXRvcnNGaWVsZCA9IG51bGw7XG4gICAgbWVudUZpZWxkID0gbnVsbDtcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcbiAgICBzaXplTGltaXRNQiA9IDU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW1hZ2VGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5oYXNDYW1wYWlnbkZpZWxkID0gb3B0aW9ucy5oYXNDYW1wYWlnbkZpZWxkIHx8IG51bGw7XG4gICAgICAgIHRoaXMuaW5kaWNhdG9yc0ZpZWxkID0gb3B0aW9ucy5pbmRpY2F0b3JzRmllbGQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5tZW51RmllbGQgPSBvcHRpb25zLm1lbnVGaWVsZCB8fCBudWxsO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgICAgIHRoaXMuc2l6ZUxpbWl0TUIgPSBvcHRpb25zLnNpemVMaW1pdE1CIHx8IDU7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcEltYWdlc0ZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xufVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEltYWdlc0ZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlID1cbiAgICB8ICdidXR0b24nXG4gICAgfCAncGFja2FnZUJ1dHRvbidcbiAgICB8ICdxcydcbiAgICB8ICdxc0Zvck1hdHJpeCc7XG5pbnRlcmZhY2UgSVBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgYWxsb3dEZWNpbWFsPzogYm9vbGVhbjtcbiAgICBub3RpZmljYXRpb25JbmZvPzogYW55O1xuICAgIHR5cGU/OiBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAncXMnO1xuICAgIGFsbG93RGVjaW1hbDogYm9vbGVhbjtcbiAgICBub3RpZmljYXRpb25JbmZvOiBhbnkgPSB7fTtcbiAgICB1cGRhdGVkRGF0YUNvdW50OiBudW1iZXI7XG4gICAgdHlwZTogUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZTtcbiAgICBkaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IE5hTjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVkRGF0YUNvdW50ID0gMDtcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdxcyc7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gb3B0aW9ucy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA/PyBOYU47XG5cbiAgICAgICAgdGhpcy5hbGxvd0RlY2ltYWwgPSBvcHRpb25zLmFsbG93RGVjaW1hbCB8fCBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JbmZvID0gb3B0aW9ucy5ub3RpZmljYXRpb25JbmZvO1xuICAgICAgICB0aGlzLnVwZGF0ZWREYXRhQ291bnQgKz0gMTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcERhdGVGaWVsZFR5cGUgPSAnZGF0ZXRpbWUnIHwgJ2RhdGUnO1xuaW50ZXJmYWNlIElQZXBEYXRlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHR5cGU/OiBQZXBEYXRlRmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcERhdGVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnZGF0ZSc7XG4gICAgdHlwZTogUGVwRGF0ZUZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBEYXRlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdkYXRlJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHN1cGVyLmdldEJhc2VWYWxpZGF0b3JzKCk7XG4gXG4gICAgICAgIGlmICghaXNOYU4odGhpcy5taW5WYWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pblZhbHVlKSk7XG4gICAgICAgIH1cbiBcbiAgICAgICAgaWYgKCFpc05hTih0aGlzLm1heFZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KHRoaXMubWF4VmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBDaGVja2JveEZpZWxkVHlwZSA9ICdjaGVja2JveCcgfCAnYm9vbGVhblRleHQnO1xuaW50ZXJmYWNlIElQZXBDaGVja2JveEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICB0eXBlPzogUGVwQ2hlY2tib3hGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwQ2hlY2tib3hGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnY2hlY2tib3gnO1xuICAgIHR5cGU6IFBlcENoZWNrYm94RmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcENoZWNrYm94RmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdjaGVja2JveCc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycyh0cnVlKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBTZWxlY3RGaWVsZFR5cGUgPSAnc2VsZWN0JyB8ICdtdWx0aSc7XG5pbnRlcmZhY2UgSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xuICAgIHR5cGU/OiBQZXBTZWxlY3RGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwU2VsZWN0RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3NlbGVjdCc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107ICAgIFxuICAgIHR5cGU6IFBlcFNlbGVjdEZpZWxkVHlwZTsgICAgXG4gICAgZW1wdHlPcHRpb246IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwU2VsZWN0RmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnc2VsZWN0JztcbiAgICAgICAgdGhpcy5lbXB0eU9wdGlvbiA9IG9wdGlvbnMuZW1wdHlPcHRpb247XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwU2VsZWN0RmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcEFkZHJlc3NGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgZ3JvdXBGaWVsZHM/OiBQZXBGaWVsZEJhc2VbXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBBZGRyZXNzRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2FkZHJlc3MnO1xuICAgIGdyb3VwRmllbGRzOiBQZXBGaWVsZEJhc2VbXSA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwQWRkcmVzc0ZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmdyb3VwRmllbGRzID0gb3B0aW9ucy5ncm91cEZpZWxkcyB8fCBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGUgPVxuICAgIHwgJ2J1dHRvbidcbiAgICB8ICdyZWZlcmVuY2UnXG4gICAgfCAnbGlzdG9mb2JqZWN0cyc7XG5pbnRlcmZhY2UgSVBlcEludGVybmFsQnV0dG9uRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHJlZmVyZW5jZU9iamVjdFR5cGU/OiBhbnk7XG4gICAgcmVmZXJlbmNlT2JqZWN0U3ViVHlwZT86IHN0cmluZztcbiAgICByZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGU/OiBzdHJpbmc7XG4gICAgdHlwZT86IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsQnV0dG9uRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2J1dHRvbic7XG4gICAgcmVmZXJlbmNlT2JqZWN0VHlwZTtcbiAgICByZWZlcmVuY2VPYmplY3RTdWJUeXBlID0gJyc7XG4gICAgcmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlID0gJyc7XG4gICAgdHlwZTogUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW50ZXJuYWxCdXR0b25GaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnJlZmVyZW5jZU9iamVjdFR5cGUgPSBvcHRpb25zLnJlZmVyZW5jZU9iamVjdFR5cGUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RTdWJUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RTdWJUeXBlIHx8IG51bGw7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlID1cbiAgICAgICAgICAgIG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlIHx8IG51bGw7XG5cbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdidXR0b24nO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBJbnRlcm5hbFBhZ2VGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb2JqZWN0SWQ/OiBzdHJpbmc7XG4gICAgcGFyZW50SWQ/OiBzdHJpbmc7XG4gICAgc2VhcmNoQ29kZT86IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbFBhZ2VGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnaW50ZXJuYWxQYWdlJztcbiAgICBvYmplY3RJZCA9ICcnO1xuICAgIHBhcmVudElkID0gJyc7XG4gICAgc2VhcmNoQ29kZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsUGFnZUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9iamVjdElkID0gb3B0aW9ucy5vYmplY3RJZCB8fCAnJztcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IG9wdGlvbnMucGFyZW50SWQgfHwgJyc7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29kZSA9IG9wdGlvbnMuc2VhcmNoQ29kZSB8fCAnJztcbiAgICB9XG59XG5cblxuaW50ZXJmYWNlIElQZXBJbnRlcm5hbENhcnVzZWxGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgc2VhcmNoQ29kZT86IHN0cmluZztcbiAgICBwYWdlSW5mbz86IGFueTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbENhcnVzZWxGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnaW50ZXJuYWxDYXJ1c2VsJztcbiAgICBzZWFyY2hDb2RlID0gJyc7XG4gICAgcGFnZUluZm87XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29kZSA9IG9wdGlvbnMuc2VhcmNoQ29kZSB8fCAnJztcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBJbnRlcm5hbENhcnVzZWxGaWVsZE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMucGFnZUluZm8gPSBvcHRpb25zLnBhZ2VJbmZvO1xuICAgIH1cbn1cblxuXG5pbnRlcmZhY2UgSVBlcEludGVybmFsTWVudUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xufVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsTWVudUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdtZW51JztcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcbiAgICAvLyBoYXNTdWJNZW51OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW50ZXJuYWxNZW51RmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICAgICAgLy8gdGhpcy5oYXNTdWJNZW51ID0gb3B0aW9uc1snaGFzU3ViTWVudSddO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwRmllbGRWYWx1ZUNoYW5nZUV2ZW50IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZXBGaWVsZENsaWNrRXZlbnQge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xuICAgIGV2ZW50V2hpY2g/OiBhbnk7XG4gICAgb3RoZXJEYXRhPzogYW55O1xufVxuIl19
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCekQsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEyQixNQUFNLENBQUM7QUFJM0Usb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF5QixLQUFLLENBQUM7QUFzQ3RFLE1BQU0sT0FBTyxZQUFZO0lBMkJyQix1QkFBdUI7SUFFdkIsWUFBWSxVQUFnQyxFQUFFO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFckMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLENB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LENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUUzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0M7UUFDbEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBTUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFlBQVk7SUFHbEQsK0JBQStCO0lBRS9CLFlBQVksVUFBd0MsRUFBRTtRQUNsRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMbkIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFDckIsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFLdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQywyQ0FBMkM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKiBBbGxvd2VkIGxheW91dCBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nIHwgJ2NhcmQnIHwgJ3RhYmxlJztcblxuLyoqIEFsbG93ZWQgc3R5bGUgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwU3R5bGVUeXBlID0gJ3dlYWsnIHwgJ3dlYWstaW52ZXJ0JyB8ICd3ZWFrLXNwZWNpYWwnIHwgJ3JlZ3VsYXInIHwgJ3N0cm9uZyc7XG5cbi8qKiBBbGxvd2VkIHN0eWxlIHN0YXRlIG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcFN0eWxlU3RhdGVUeXBlID0gJ3N5c3RlbScgfCAnY2F1dGlvbicgfCAnc3VjY2Vzcyc7XG5cbi8qKiBBbGxvd2VkIHNpemUgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwU2l6ZVR5cGUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuLyoqIEFsbG93ZWQgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbi8qKiBEZWZhdWx0IGhvcml6b250YWwgYWxpZ25tZW50LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSAnbGVmdCc7XG5cbi8qKiBBbGxvd2VkIHZlcnRpY2FsIGFsaWdubWVudCBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBWZXJ0aWNhbEFsaWdubWVudCA9ICd0b3AnIHwgJ21pZGRsZScgfCAnYm90dG9tJztcbi8qKiBEZWZhdWx0IGhvcml6b250YWwgYWxpZ25tZW50LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVkVSVElDQUxfQUxJR05NRU5UOiBQZXBWZXJ0aWNhbEFsaWdubWVudCA9ICd0b3AnO1xuZXhwb3J0IGludGVyZmFjZSBJUGVwT3B0aW9uIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgdHlwZSBQZXBGaWVsZEJhc2VUeXBlID0gJycgfCBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZSB8IFBlcFRleHRib3hGaWVsZFR5cGUgfFxuLy8gICAgIFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGUgfCBQZXBEYXRlRmllbGRUeXBlIHwgUGVwQ2hlY2tib3hGaWVsZFR5cGUgfCBQZXBTZWxlY3RGaWVsZFR5cGU7XG5pbnRlcmZhY2UgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHZhbHVlPzogYW55O1xuICAgIGZvcm1hdHRlZFZhbHVlPzogYW55O1xuICAgIGFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgYWNjZXNzb3J5Pzogc3RyaW5nO1xuICAgIG1hbmRhdG9yeT86IGJvb2xlYW47XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbiAgICAvLyB0eXBlPzogUGVwRmllbGRCYXNlVHlwZTtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHJvdz86IG51bWJlcjtcbiAgICByb3dTcGFuPzogbnVtYmVyO1xuICAgIGNvbD86IG51bWJlcjtcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xuICAgIHhBbGlnbm1lbnQ/OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50O1xuICAgIHlBbGlnbm1lbnQ/OiBQZXBWZXJ0aWNhbEFsaWdubWVudDtcbiAgICBtYXhGaWVsZENoYXJhY3RlcnM/OiBudW1iZXI7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuOyAgICBcbiAgICBlbXB0eU9wdGlvbj86IGJvb2xlYW47ICAgIFxuICAgIC8vIGxhc3RGb2N1c0ZpZWxkPzogYW55O1xuICAgIGRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50PzogbnVtYmVyO1xufVxuZXhwb3J0IGNsYXNzIFBlcEZpZWxkQmFzZSB7XG4gICAgdmFsdWU6IGFueTtcbiAgICBmb3JtYXR0ZWRWYWx1ZTogYW55O1xuICAgIGFkZGl0aW9uYWxWYWx1ZTogc3RyaW5nO1xuICAgIGtleTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYWNjZXNzb3J5OiBzdHJpbmc7XG4gICAgbWFuZGF0b3J5OiBib29sZWFuO1xuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIG9yZGVyOiBudW1iZXI7XG4gICAgLy8gdHlwZTogc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgcm93OiBudW1iZXI7XG4gICAgcm93U3BhbjogbnVtYmVyO1xuICAgIGNvbDogbnVtYmVyO1xuICAgIGNvbFNwYW46IG51bWJlcjtcbiAgICB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50O1xuICAgIHlBbGlnbm1lbnQ6IFBlcFZlcnRpY2FsQWxpZ25tZW50O1xuICAgIGdyb3VwRmllbGRzOiBQZXBGaWVsZEJhc2VbXTtcbiAgICBtYXhGaWVsZENoYXJhY3RlcnM6IG51bWJlcjtcbiAgICBtaW5WYWx1ZTogbnVtYmVyO1xuICAgIG1heFZhbHVlOiBudW1iZXI7XG4gICAgdGV4dENvbG9yOiBzdHJpbmc7XG4gICAgdmlzaWJsZTogYm9vbGVhbjsgICAgICAgIFxuICAgIC8vIGxhc3RGb2N1c0ZpZWxkOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMua2V5ID0gb3B0aW9ucy5rZXkgfHwgJyc7XG4gICAgICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xuICAgICAgICB0aGlzLmFjY2Vzc29yeSA9IG9wdGlvbnMuYWNjZXNzb3J5IHx8ICcnO1xuICAgICAgICB0aGlzLm1hbmRhdG9yeSA9ICEhb3B0aW9ucy5tYW5kYXRvcnk7XG5cbiAgICAgICAgdGhpcy5vcmRlciA9IG9wdGlvbnMub3JkZXIgPz8gMTtcbiAgICAgICAgdGhpcy5jb250cm9sVHlwZSA9IG9wdGlvbnMuY29udHJvbFR5cGUgfHwgJyc7XG4gICAgICAgIC8vIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IG9wdGlvbnMucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgICAgIHRoaXMuaGlkZGVuID0gISFvcHRpb25zLmhpZGRlbjtcblxuICAgICAgICB0aGlzLnJvdyA9IG9wdGlvbnMucm93ID8/IDE7XG4gICAgICAgIHRoaXMucm93U3BhbiA9IG9wdGlvbnMucm93U3BhbiA/PyAxO1xuICAgICAgICB0aGlzLmNvbCA9IG9wdGlvbnMuY29sID8/IDE7XG4gICAgICAgIHRoaXMuY29sU3BhbiA9IG9wdGlvbnMuY29sU3BhbiA/PyAxO1xuXG4gICAgICAgIHRoaXMueEFsaWdubWVudCA9IG9wdGlvbnMueEFsaWdubWVudCA/PyBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuICAgICAgICB0aGlzLnlBbGlnbm1lbnQgPSBvcHRpb25zLnlBbGlnbm1lbnQgPz8gREVGQVVMVF9WRVJUSUNBTF9BTElHTk1FTlQ7XG5cbiAgICAgICAgdGhpcy5tYXhGaWVsZENoYXJhY3RlcnMgPSBvcHRpb25zLm1heEZpZWxkQ2hhcmFjdGVycyA/PyAwO1xuICAgICAgICB0aGlzLm1pblZhbHVlID0gb3B0aW9ucy5taW5WYWx1ZSA/PyAwO1xuICAgICAgICB0aGlzLm1heFZhbHVlID0gb3B0aW9ucy5tYXhWYWx1ZSA/PyAwO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRCYXNlVmFsaWRhdG9ycyhpc0NoZWNrYm94ID0gZmFsc2UpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKGlzQ2hlY2tib3gpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyA+IDApIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heEZpZWxkQ2hhcmFjdGVycykpO1xuICAgICAgICB9ICAgICAgICBcblxuICAgICAgICAvL0RJLTI2NzIyXG4gICAgICAgIC8vIGlmICh0aGlzLm1pblZhbHVlKSB7XG4gICAgICAgIC8vICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5taW5WYWx1ZSkpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gaWYgKHRoaXMubWF4VmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlKSk7XG4gICAgICAgIC8vIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMuZ2V0QmFzZVZhbGlkYXRvcnMoKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gb3B0aW9ucy52YWx1ZTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IG9wdGlvbnMuZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbFZhbHVlID0gb3B0aW9ucy5hZGRpdGlvbmFsVmFsdWU7XG5cbiAgICAgICAgdGhpcy5yZWFkb25seSA9ICEhb3B0aW9ucy5yZWFkb25seTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICEhb3B0aW9ucy5kaXNhYmxlZDtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gISFvcHRpb25zLnZpc2libGU7XG4gICAgICAgIHRoaXMudGV4dENvbG9yID0gb3B0aW9ucy50ZXh0Q29sb3IgfHwgJyc7XG4gICAgICAgIC8vIHRoaXMubGFzdEZvY3VzRmllbGQgPSBvcHRpb25zLmxhc3RGb2N1c0ZpZWxkIHx8IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwUGxhY2Vob2xkZXJGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAncGxhY2Vob2xkZXInO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBTZXBhcmF0b3JGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnc2VwYXJhdG9yJztcbiAgICBcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpOyAgICAgICAgXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwQXR0YWNobWVudEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdhdHRhY2htZW50JztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwSW5kaWNhdG9yc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbmRpY2F0b3JzJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBUZXh0Ym94RmllbGRUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ2xpbmsnXG4gICAgfCAnZW1haWwnXG4gICAgfCAncGhvbmUnXG4gICAgfCAnZHVyYXRpb24nXG4gICAgfCAnaW50J1xuICAgIHwgJ3BlcmNlbnRhZ2UnXG4gICAgfCAnY3VycmVuY3knXG4gICAgfCAncmVhbCc7XG5pbnRlcmZhY2UgSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcFRleHRib3hGaWVsZFR5cGU7XG4gICAgcmVnZXg/OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgLy8gcmVnZXhFcnJvcj86IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBQZXBUZXh0Ym94RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3RleHRib3gnO1xuICAgIHR5cGU6IFBlcFRleHRib3hGaWVsZFR5cGUgPSAndGV4dCc7XG4gICAgcmVnZXg/OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgLy8gcmVnZXhFcnJvcj86IHN0cmluZztcbiAgICBkaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IE5hTjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICd0ZXh0JztcbiAgICAgICAgdGhpcy5yZWdleCA9IG9wdGlvbnMucmVnZXggPz8gbnVsbDtcbiAgICAgICAgLy8gdGhpcy5yZWdleEVycm9yID0gb3B0aW9ucy5yZWdleEVycm9yID8/IG51bGw7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwVGV4dGJveEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IG9wdGlvbnMuZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQgPz8gTmFOO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgLy8gREktMTEyOTIgLSBhZGQgY2hhbmdlcyBmb3IgbGluayBmaWVsZCBmb3IgdGhlIFwiUmVhZCBPbmx5IGRpc3BsYXkgdmFsdWVcIiBwcm9wXG4gICAgICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID1cbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkICYmIHRoaXMuZm9ybWF0dGVkVmFsdWUgJiYgdGhpcy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXG4gICAgICAgICAgICAgICAgICAgIC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdwaG9uZScpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFxkXFwuXFwtXFwrXFwoXFwpXFwqXFwjXSskLykpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2ludCcgfHwgdGhpcy50eXBlID09PSAncmVhbCcpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFwuLFxcLVxcK1xcZF0rJC8pKTtcblxuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLm1pblZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pblZhbHVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy5tYXhWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYodGhpcy50eXBlID09PSAnY3VycmVuY3knIHx8IHRoaXMudHlwZSA9PT0gJ3BlcmNlbnRhZ2UnKXtcbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy5taW5WYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5taW5WYWx1ZSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzTmFOKHRoaXMubWF4VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KHRoaXMubWF4VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZXh0JyAmJiB0aGlzLnJlZ2V4KSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucmVnZXgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcExpbmtGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnbGluayc7XG4gICAgdHlwZTogUGVwVGV4dGJveEZpZWxkVHlwZSA9ICdsaW5rJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwVGV4dGJveEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG4gICAgICAgIFxuICAgICAgICAvLyBESS0yMzE2NyAtIENvbW1lbnQgdGhpcy5cbiAgICAgICAgLy8gLy8gREktMTEyOTIgLSBhZGQgY2hhbmdlcyBmb3IgbGluayBmaWVsZCBmb3IgdGhlIFwiUmVhZCBPbmx5IGRpc3BsYXkgdmFsdWVcIiBwcm9wXG4gICAgICAgIC8vIHRoaXMuZm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAvLyAgICAgdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmZvcm1hdHRlZFZhbHVlICYmIHRoaXMudmFsdWVcbiAgICAgICAgLy8gICAgICAgICA/IHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgLy8gICAgICAgICA6IHRoaXMudmFsdWU7XG5cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBUZXh0YXJlYUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICd0ZXh0YXJlYSc7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICAvLyB0aGlzLnR5cGUgPSAndGV4dGFyZWEnO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgcmVuZGVyVGl0bGU/OiBib29sZWFuO1xuICAgIHJlbmRlckVubGFyZ2VCdXR0b24/OiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIFBlcFJpY2hIdG1sVGV4dGFyZWFGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAncmljaGh0bWx0ZXh0YXJlYSc7ICAgIFxuICAgIHJlbmRlclRpdGxlOiBib29sZWFuO1xuICAgIHJlbmRlckVubGFyZ2VCdXR0b246IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJUaXRsZSA9IG9wdGlvbnMucmVuZGVyVGl0bGUgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMucmVuZGVyVGl0bGUgOiB0cnVlO1xuICAgICAgICB0aGlzLnJlbmRlckVubGFyZ2VCdXR0b24gPSBvcHRpb25zLnJlbmRlckVubGFyZ2VCdXR0b24gIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMucmVuZGVyRW5sYXJnZUJ1dHRvbiA6IHRydWU7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcFNpZ25hdHVyZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xufVxuZXhwb3J0IGNsYXNzIFBlcFNpZ25hdHVyZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdzaWduYXR1cmUnO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFNpZ25hdHVyZUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcEltYWdlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIGhhc0NhbXBhaWduRmllbGQ/OiBhbnk7XG4gICAgaW5kaWNhdG9yc0ZpZWxkPzogYW55O1xuICAgIG1lbnVGaWVsZD86IGFueTtcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xuICAgIHNpemVMaW1pdE1CPzogbnVtYmVyO1xufVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ltYWdlJztcbiAgICBoYXNDYW1wYWlnbkZpZWxkID0gbnVsbDtcbiAgICBpbmRpY2F0b3JzRmllbGQgPSBudWxsO1xuICAgIG1lbnVGaWVsZCA9IG51bGw7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG4gICAgc2l6ZUxpbWl0TUIgPSA1O1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEltYWdlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuaGFzQ2FtcGFpZ25GaWVsZCA9IG9wdGlvbnMuaGFzQ2FtcGFpZ25GaWVsZCB8fCBudWxsO1xuICAgICAgICB0aGlzLmluZGljYXRvcnNGaWVsZCA9IG9wdGlvbnMuaW5kaWNhdG9yc0ZpZWxkIHx8IG51bGw7XG4gICAgICAgIHRoaXMubWVudUZpZWxkID0gb3B0aW9ucy5tZW51RmllbGQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgICAgICB0aGlzLnNpemVMaW1pdE1CID0gb3B0aW9ucy5zaXplTGltaXRNQiB8fCA1O1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBJbWFnZXNGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbWFnZXNGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2VzJztcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbWFnZXNGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZSA9XG4gICAgfCAnYnV0dG9uJ1xuICAgIHwgJ3BhY2thZ2VCdXR0b24nXG4gICAgfCAncXMnXG4gICAgfCAncXNGb3JNYXRyaXgnO1xuaW50ZXJmYWNlIElQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIGFsbG93RGVjaW1hbD86IGJvb2xlYW47XG4gICAgbm90aWZpY2F0aW9uSW5mbz86IGFueTtcbiAgICB0eXBlPzogUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3FzJztcbiAgICBhbGxvd0RlY2ltYWw6IGJvb2xlYW47XG4gICAgbm90aWZpY2F0aW9uSW5mbzogYW55ID0ge307XG4gICAgdXBkYXRlZERhdGFDb3VudDogbnVtYmVyO1xuICAgIHR5cGU6IFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGU7XG4gICAgZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQgPSBOYU47XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlZERhdGFDb3VudCA9IDA7XG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAncXMnO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IG9wdGlvbnMuZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQgPz8gTmFOO1xuXG4gICAgICAgIHRoaXMuYWxsb3dEZWNpbWFsID0gb3B0aW9ucy5hbGxvd0RlY2ltYWwgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uSW5mbyA9IG9wdGlvbnMubm90aWZpY2F0aW9uSW5mbztcbiAgICAgICAgdGhpcy51cGRhdGVkRGF0YUNvdW50ICs9IDE7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBEYXRlRmllbGRUeXBlID0gJ2RhdGV0aW1lJyB8ICdkYXRlJztcbmludGVyZmFjZSBJUGVwRGF0ZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICB0eXBlPzogUGVwRGF0ZUZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBEYXRlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2RhdGUnO1xuICAgIHR5cGU6IFBlcERhdGVGaWVsZFR5cGU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRGF0ZUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnZGF0ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycygpO1xuIFxuICAgICAgICBpZiAoIWlzTmFOKHRoaXMubWluVmFsdWUpKSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5taW5WYWx1ZSkpO1xuICAgICAgICB9XG4gXG4gICAgICAgIGlmICghaXNOYU4odGhpcy5tYXhWYWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwQ2hlY2tib3hGaWVsZFR5cGUgPSAnY2hlY2tib3gnIHwgJ2Jvb2xlYW5UZXh0JztcbmludGVyZmFjZSBJUGVwQ2hlY2tib3hGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcENoZWNrYm94RmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcENoZWNrYm94RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2NoZWNrYm94JztcbiAgICB0eXBlOiBQZXBDaGVja2JveEZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBDaGVja2JveEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnY2hlY2tib3gnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gc3VwZXIuZ2V0QmFzZVZhbGlkYXRvcnModHJ1ZSk7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwU2VsZWN0RmllbGRUeXBlID0gJ3NlbGVjdCcgfCAnbXVsdGknO1xuaW50ZXJmYWNlIElQZXBTZWxlY3RGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbiAgICB0eXBlPzogUGVwU2VsZWN0RmllbGRUeXBlO1xuICAgIGF1dG9Tb3J0T3B0aW9ucz86IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgUGVwU2VsZWN0RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3NlbGVjdCc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107ICAgIFxuICAgIHR5cGU6IFBlcFNlbGVjdEZpZWxkVHlwZTsgICAgXG4gICAgZW1wdHlPcHRpb246IGJvb2xlYW47XG4gICAgYXV0b1NvcnRPcHRpb25zID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTZWxlY3RGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdzZWxlY3QnO1xuICAgICAgICB0aGlzLmVtcHR5T3B0aW9uID0gb3B0aW9ucy5lbXB0eU9wdGlvbjtcbiAgICAgICAgdGhpcy5hdXRvU29ydE9wdGlvbnMgPSBvcHRpb25zLmF1dG9Tb3J0T3B0aW9ucyA/PyB0cnVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuYXV0b1NvcnRPcHRpb25zID0gb3B0aW9ucy5hdXRvU29ydE9wdGlvbnMgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBBZGRyZXNzRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIGdyb3VwRmllbGRzPzogUGVwRmllbGRCYXNlW107XG59XG5leHBvcnQgY2xhc3MgUGVwQWRkcmVzc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdhZGRyZXNzJztcbiAgICBncm91cEZpZWxkczogUGVwRmllbGRCYXNlW10gPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEFkZHJlc3NGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5ncm91cEZpZWxkcyA9IG9wdGlvbnMuZ3JvdXBGaWVsZHMgfHwgbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlID1cbiAgICB8ICdidXR0b24nXG4gICAgfCAncmVmZXJlbmNlJ1xuICAgIHwgJ2xpc3RvZm9iamVjdHMnO1xuaW50ZXJmYWNlIElQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICByZWZlcmVuY2VPYmplY3RUeXBlPzogYW55O1xuICAgIHJlZmVyZW5jZU9iamVjdFN1YlR5cGU/OiBzdHJpbmc7XG4gICAgcmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlPzogc3RyaW5nO1xuICAgIHR5cGU/OiBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdidXR0b24nO1xuICAgIHJlZmVyZW5jZU9iamVjdFR5cGU7XG4gICAgcmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9ICcnO1xuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9ICcnO1xuICAgIHR5cGU6IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQnV0dG9uRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RUeXBlIHx8IG51bGw7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9IG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSB8fCBudWxsO1xuICAgICAgICB0aGlzLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9XG4gICAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSB8fCBudWxsO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnYnV0dG9uJztcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxQYWdlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9iamVjdElkPzogc3RyaW5nO1xuICAgIHBhcmVudElkPzogc3RyaW5nO1xuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxQYWdlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsUGFnZSc7XG4gICAgb2JqZWN0SWQgPSAnJztcbiAgICBwYXJlbnRJZCA9ICcnO1xuICAgIHNlYXJjaENvZGUgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbFBhZ2VGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vYmplY3RJZCA9IG9wdGlvbnMub2JqZWN0SWQgfHwgJyc7XG4gICAgICAgIHRoaXMucGFyZW50SWQgPSBvcHRpb25zLnBhcmVudElkIHx8ICcnO1xuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XG4gICAgfVxufVxuXG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XG4gICAgcGFnZUluZm8/OiBhbnk7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsQ2FydXNlbCc7XG4gICAgc2VhcmNoQ29kZSA9ICcnO1xuICAgIHBhZ2VJbmZvO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQ2FydXNlbEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnBhZ2VJbmZvID0gb3B0aW9ucy5wYWdlSW5mbztcbiAgICB9XG59XG5cblxuaW50ZXJmYWNlIElQZXBJbnRlcm5hbE1lbnVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbE1lbnVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnbWVudSc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG4gICAgLy8gaGFzU3ViTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsTWVudUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgICAgIC8vIHRoaXMuaGFzU3ViTWVudSA9IG9wdGlvbnNbJ2hhc1N1Yk1lbnUnXTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpZWxkVmFsdWVDaGFuZ2VFdmVudCB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwRmllbGRDbGlja0V2ZW50IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbiAgICBldmVudFdoaWNoPzogYW55O1xuICAgIG90aGVyRGF0YT86IGFueTtcbn1cbiJdfQ==
|
|
@@ -3,12 +3,12 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "@pepperi-addons/ngx-lib/button";
|
|
5
5
|
import * as i3 from "@pepperi-addons/ngx-lib/menu";
|
|
6
|
-
export class
|
|
6
|
+
export class DraggableItemComponent {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.title = '';
|
|
9
|
-
this.disabled = false;
|
|
10
9
|
this.titlePrefix = '';
|
|
11
10
|
this.titleClassNames = '';
|
|
11
|
+
this.disabled = false;
|
|
12
12
|
this.shadow = true;
|
|
13
13
|
this.styleType = 'regular';
|
|
14
14
|
this.toggleContent = false;
|
|
@@ -19,6 +19,9 @@ export class PepDraggableItemComponent {
|
|
|
19
19
|
this.actionsMenuItemClick = new EventEmitter();
|
|
20
20
|
//
|
|
21
21
|
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
//
|
|
24
|
+
}
|
|
22
25
|
onToggleContent() {
|
|
23
26
|
if (this.toggleContent) {
|
|
24
27
|
this.isToggleContentOpen = !this.isToggleContentOpen;
|
|
@@ -29,21 +32,21 @@ export class PepDraggableItemComponent {
|
|
|
29
32
|
this.actionsMenuItemClick.emit(item);
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type:
|
|
35
|
+
DraggableItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DraggableItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
DraggableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DraggableItemComponent, selector: "pep-draggable-item", inputs: { title: "title", titlePrefix: "titlePrefix", titleClassNames: "titleClassNames", data: "data", disabled: "disabled", shadow: "shadow", styleType: "styleType", toggleContent: "toggleContent", isToggleContentOpen: "isToggleContentOpen", actionsMenu: "actionsMenu", menuStyleType: "menuStyleType" }, outputs: { contentToggle: "contentToggle", actionsMenuItemClick: "actionsMenuItemClick" }, ngImport: i0, template: "<div class=\"pep-draggable-item-container\" class=\"{{ styleType }}\" \n [ngClass]=\"{ 'shadow': shadow, 'disable': disabled, 'toggle-content': toggleContent, 'toggle-content-open': isToggleContentOpen }\"\n >\n <div class=\"\">\n <pep-button classNames=\"lock-events\" sizeType=\"xs\" iconName=\"system_move\"></pep-button>\n </div>\n <div class=\"item-title-container\" [ngClass]=\"{ 'shadow': shadow }\" (click)=\"onToggleContent();\">\n <span *ngIf=\"titlePrefix !== ''\" class=\"body-sm ellipsis item-title\">{{titlePrefix}}</span>\n <span *ngIf=\"title !== ''\" class=\"body-sm bold ellipsis item-title {{titleClassNames}}\" title=\"{{title}}\">{{title}}</span>\n </div>\n <div class=\"actions\">\n <pep-menu *ngIf=\"actionsMenu\" sizeType=\"xs\" [styleType]=\"menuStyleType\" [items]=\"actionsMenu\" (menuItemClick)=\"onActionsMenuItemClick($event)\"></pep-menu>\n <ng-content *ngIf=\"!actionsMenu\" select=\"[pep-actions]\"></ng-content>\n </div>\n <div *ngIf=\"toggleContent && isToggleContentOpen\" class=\"toggle-container\">\n <ng-content select=\"[pep-toggle-content]\"></ng-content>\n </div>\n</div>", styles: [":host{display:block}.pep-draggable-item-container{min-height:2.5rem;height:2.5rem;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:var(--pep-border-radius-md, .25rem);padding-inline:var(--pep-spacing-sm, .5rem)}.pep-draggable-item-container.shadow{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.pep-draggable-item-container.regular{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 30%))}.pep-draggable-item-container.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}.pep-draggable-item-container.disable{opacity:.35;pointer-events:none}.pep-draggable-item-container.toggle-content .item-title-container:hover{cursor:s-resize}.pep-draggable-item-container.toggle-content.toggle-content-open{height:unset;padding-top:var(--pep-spacing-sm, .5rem)}.pep-draggable-item-container.toggle-content.toggle-content-open .item-title-container:hover{cursor:n-resize}.pep-draggable-item-container .item-title-container{height:100%;display:flex;align-items:center;overflow-x:hidden;margin-inline:var(--pep-spacing-sm, .5rem)}.pep-draggable-item-container .item-title-container .item-title{display:block}.pep-draggable-item-container .actions{z-index:1;display:inline-flex;gap:var(--pep-spacing-xs, .25rem)}.pep-draggable-item-container .toggle-container{padding:var(--pep-spacing-md, .75rem) 0;grid-column:1/-1;display:grid;gap:var(--pep-spacing-lg, 1rem)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i3.PepMenuComponent, selector: "pep-menu", inputs: ["text", "iconName", "iconPosition", "type", "styleType", "sizeType", "classNames", "xPosition", "hideOnEmptyItems", "items", "selectedItem", "disabled"], outputs: ["stateChange", "menuItemClick", "menuClick"] }] });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DraggableItemComponent, decorators: [{
|
|
35
38
|
type: Component,
|
|
36
39
|
args: [{ selector: 'pep-draggable-item', template: "<div class=\"pep-draggable-item-container\" class=\"{{ styleType }}\" \n [ngClass]=\"{ 'shadow': shadow, 'disable': disabled, 'toggle-content': toggleContent, 'toggle-content-open': isToggleContentOpen }\"\n >\n <div class=\"\">\n <pep-button classNames=\"lock-events\" sizeType=\"xs\" iconName=\"system_move\"></pep-button>\n </div>\n <div class=\"item-title-container\" [ngClass]=\"{ 'shadow': shadow }\" (click)=\"onToggleContent();\">\n <span *ngIf=\"titlePrefix !== ''\" class=\"body-sm ellipsis item-title\">{{titlePrefix}}</span>\n <span *ngIf=\"title !== ''\" class=\"body-sm bold ellipsis item-title {{titleClassNames}}\" title=\"{{title}}\">{{title}}</span>\n </div>\n <div class=\"actions\">\n <pep-menu *ngIf=\"actionsMenu\" sizeType=\"xs\" [styleType]=\"menuStyleType\" [items]=\"actionsMenu\" (menuItemClick)=\"onActionsMenuItemClick($event)\"></pep-menu>\n <ng-content *ngIf=\"!actionsMenu\" select=\"[pep-actions]\"></ng-content>\n </div>\n <div *ngIf=\"toggleContent && isToggleContentOpen\" class=\"toggle-container\">\n <ng-content select=\"[pep-toggle-content]\"></ng-content>\n </div>\n</div>", styles: [":host{display:block}.pep-draggable-item-container{min-height:2.5rem;height:2.5rem;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-radius:var(--pep-border-radius-md, .25rem);padding-inline:var(--pep-spacing-sm, .5rem)}.pep-draggable-item-container.shadow{box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.16)}.pep-draggable-item-container.regular{background:hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),98%);box-shadow:var(--pep-shadow-xs-offset, 0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsl(var(--pep-color-regular-h, 0),var(--pep-color-regular-s, 0%),calc(var(--pep-color-regular-l, 10%) + 30%))}.pep-draggable-item-container.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}.pep-draggable-item-container.disable{opacity:.35;pointer-events:none}.pep-draggable-item-container.toggle-content .item-title-container:hover{cursor:s-resize}.pep-draggable-item-container.toggle-content.toggle-content-open{height:unset;padding-top:var(--pep-spacing-sm, .5rem)}.pep-draggable-item-container.toggle-content.toggle-content-open .item-title-container:hover{cursor:n-resize}.pep-draggable-item-container .item-title-container{height:100%;display:flex;align-items:center;overflow-x:hidden;margin-inline:var(--pep-spacing-sm, .5rem)}.pep-draggable-item-container .item-title-container .item-title{display:block}.pep-draggable-item-container .actions{z-index:1;display:inline-flex;gap:var(--pep-spacing-xs, .25rem)}.pep-draggable-item-container .toggle-container{padding:var(--pep-spacing-md, .75rem) 0;grid-column:1/-1;display:grid;gap:var(--pep-spacing-lg, 1rem)}\n"] }]
|
|
37
40
|
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
38
41
|
type: Input
|
|
39
|
-
}], data: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], disabled: [{
|
|
42
|
-
type: Input
|
|
43
42
|
}], titlePrefix: [{
|
|
44
43
|
type: Input
|
|
45
44
|
}], titleClassNames: [{
|
|
46
45
|
type: Input
|
|
46
|
+
}], data: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], disabled: [{
|
|
49
|
+
type: Input
|
|
47
50
|
}], shadow: [{
|
|
48
51
|
type: Input
|
|
49
52
|
}], styleType: [{
|
|
@@ -61,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
61
64
|
}], actionsMenuItemClick: [{
|
|
62
65
|
type: Output
|
|
63
66
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMvZHJhZ2dhYmxlLWl0ZW0vZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMvZHJhZ2dhYmxlLWl0ZW0vZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTNUYsTUFBTSxPQUFPLHNCQUFzQjtJQWlCL0I7UUFoQlMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGNBQVMsR0FBaUIsU0FBUyxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUU1QixnQkFBVyxHQUF1QixJQUFJLENBQUM7UUFDdkMsa0JBQWEsR0FBaUIsU0FBUyxDQUFDO1FBRXZDLGtCQUFhLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQseUJBQW9CLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO1FBRzlHLEVBQUU7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLEVBQUU7SUFDTixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBNEI7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzttSEFsQ1Esc0JBQXNCO3VHQUF0QixzQkFBc0IsdWNDVG5DLG1xQ0FpQk07MkZEUk8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjswRUFLckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGVwU3R5bGVUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgSVBlcE1lbnVJdGVtQ2xpY2tFdmVudCwgUGVwTWVudUl0ZW0gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9tZW51JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtZHJhZ2dhYmxlLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcmFnZ2FibGUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZ2dhYmxlLWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEcmFnZ2FibGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICAgIEBJbnB1dCgpIHRpdGxlUHJlZml4ID0gJyc7XG4gICAgQElucHV0KCkgdGl0bGVDbGFzc05hbWVzID0gJyc7XG4gICAgQElucHV0KCkgZGF0YTogYW55O1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hhZG93ID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzdHlsZVR5cGU6IFBlcFN0eWxlVHlwZSA9ICdyZWd1bGFyJztcbiAgICBASW5wdXQoKSB0b2dnbGVDb250ZW50ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNUb2dnbGVDb250ZW50T3BlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgYWN0aW9uc01lbnU6IEFycmF5PFBlcE1lbnVJdGVtPiA9IG51bGw7XG4gICAgQElucHV0KCkgbWVudVN0eWxlVHlwZTogUGVwU3R5bGVUeXBlID0gJ3JlZ3VsYXInO1xuXG4gICAgQE91dHB1dCgpIGNvbnRlbnRUb2dnbGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYWN0aW9uc01lbnVJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxJUGVwTWVudUl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG9uVG9nZ2xlQ29udGVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMudG9nZ2xlQ29udGVudCkge1xuICAgICAgICAgICAgdGhpcy5pc1RvZ2dsZUNvbnRlbnRPcGVuID0gIXRoaXMuaXNUb2dnbGVDb250ZW50T3BlbjtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFRvZ2dsZS5lbWl0KHRoaXMuaXNUb2dnbGVDb250ZW50T3Blbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGlvbnNNZW51SXRlbUNsaWNrKGl0ZW06IElQZXBNZW51SXRlbUNsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25zTWVudUl0ZW1DbGljay5lbWl0KGl0ZW0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwZXAtZHJhZ2dhYmxlLWl0ZW0tY29udGFpbmVyXCIgY2xhc3M9XCJ7eyBzdHlsZVR5cGUgfX1cIiBcbiAgICBbbmdDbGFzc109XCJ7ICdzaGFkb3cnOiBzaGFkb3csICdkaXNhYmxlJzogZGlzYWJsZWQsICd0b2dnbGUtY29udGVudCc6IHRvZ2dsZUNvbnRlbnQsICd0b2dnbGUtY29udGVudC1vcGVuJzogaXNUb2dnbGVDb250ZW50T3BlbiB9XCJcbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzc05hbWVzPVwibG9jay1ldmVudHNcIiBzaXplVHlwZT1cInhzXCIgaWNvbk5hbWU9XCJzeXN0ZW1fbW92ZVwiPjwvcGVwLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbS10aXRsZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdzaGFkb3cnOiBzaGFkb3cgfVwiIChjbGljayk9XCJvblRvZ2dsZUNvbnRlbnQoKTtcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZVByZWZpeCAhPT0gJydcIiBjbGFzcz1cImJvZHktc20gZWxsaXBzaXMgaXRlbS10aXRsZVwiPnt7dGl0bGVQcmVmaXh9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZSAhPT0gJydcIiBjbGFzcz1cImJvZHktc20gYm9sZCBlbGxpcHNpcyBpdGVtLXRpdGxlIHt7dGl0bGVDbGFzc05hbWVzfX1cIiB0aXRsZT1cInt7dGl0bGV9fVwiPnt7dGl0bGV9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8cGVwLW1lbnUgKm5nSWY9XCJhY3Rpb25zTWVudVwiIHNpemVUeXBlPVwieHNcIiBbc3R5bGVUeXBlXT1cIm1lbnVTdHlsZVR5cGVcIiBbaXRlbXNdPVwiYWN0aW9uc01lbnVcIiAobWVudUl0ZW1DbGljayk9XCJvbkFjdGlvbnNNZW51SXRlbUNsaWNrKCRldmVudClcIj48L3BlcC1tZW51PlxuICAgICAgICA8bmctY29udGVudCAqbmdJZj1cIiFhY3Rpb25zTWVudVwiIHNlbGVjdD1cIltwZXAtYWN0aW9uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRvZ2dsZUNvbnRlbnQgJiYgaXNUb2dnbGVDb250ZW50T3BlblwiIGNsYXNzPVwidG9nZ2xlLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcGVwLXRvZ2dsZS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -4,8 +4,8 @@ import { map, startWith } from 'rxjs/operators';
|
|
|
4
4
|
import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@
|
|
8
|
-
import * as i3 from "@
|
|
7
|
+
import * as i2 from "@pepperi-addons/ngx-lib/search";
|
|
8
|
+
import * as i3 from "@angular/cdk/drag-drop";
|
|
9
9
|
import * as i4 from "./draggable-item/draggable-item.component";
|
|
10
10
|
export class PepDraggableItemsComponent extends BaseDestroyerDirective {
|
|
11
11
|
constructor() {
|
|
@@ -66,7 +66,7 @@ export class PepDraggableItemsComponent extends BaseDestroyerDirective {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
PepDraggableItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDraggableItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
PepDraggableItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepDraggableItemsComponent, selector: "pep-draggable-items", inputs: { containerId: "containerId", showSearch: "showSearch", title: "title", titleType: "titleType", titleSizeType: "titleSizeType", itemPlaceholderType: "itemPlaceholderType", dropAreaIds: "dropAreaIds", items: "items" }, outputs: { itemDragStarted: "itemDragStarted", itemDragEnded: "itemDragEnded" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"containerId\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"title body-{{ titleSizeType }} bold ellipsis \" >{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" class=\"search-button\" sizeType=\"sm\" shrink=\"always\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\"></pep-search>\r\n </div>\r\n\r\n <div class=\"draggable-items-overflow\" [ngClass]=\"{ 'add-padding': titleType === 'with-bottom-border'}\">\r\n <div class=\"draggable-items-wrapper\">\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n \r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n </div>\r\n </div>\r\n</div>", styles: [".pep-draggable-items-container{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:hidden;padding-inline-end:var(--pep-spacing-xs, .25rem)}.pep-draggable-items-container .title-container{height:var(--pep-top-bar-field-height, 2.5rem);display:flex;gap:var(--pep-spacing-sm, .5rem);flex-flow:row;justify-content:space-between}.pep-draggable-items-container .title-container .title{align-self:center}.pep-draggable-items-container .title-container .search-button{display:flex;align-self:center}.pep-draggable-items-container .draggable-items-overflow{overflow:auto}.pep-draggable-items-container .draggable-items-overflow.add-padding{padding:var(--pep-spacing-lg, 1rem) 0}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper{display:flex;flex-direction:column;gap:var(--pep-spacing-sm, .5rem)}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .draggble-item{cursor:grab}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .draggble-item.cdk-drag-disabled{cursor:not-allowed}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .placeholder-item{height:2.5rem;border-radius:var(--pep-border-radius-md, .25rem);width:100%}\n", ".placeholder-item.none{opacity:0}.placeholder-item.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
69
|
+
PepDraggableItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepDraggableItemsComponent, selector: "pep-draggable-items", inputs: { containerId: "containerId", showSearch: "showSearch", title: "title", titleType: "titleType", titleSizeType: "titleSizeType", itemPlaceholderType: "itemPlaceholderType", dropAreaIds: "dropAreaIds", items: "items" }, outputs: { itemDragStarted: "itemDragStarted", itemDragEnded: "itemDragEnded" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"containerId\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"title body-{{ titleSizeType }} bold ellipsis \" >{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" class=\"search-button\" sizeType=\"sm\" shrink=\"always\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\"></pep-search>\r\n </div>\r\n\r\n <div class=\"draggable-items-overflow\" [ngClass]=\"{ 'add-padding': titleType === 'with-bottom-border'}\">\r\n <div class=\"draggable-items-wrapper\">\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n \r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n </div>\r\n </div>\r\n</div>", styles: [".pep-draggable-items-container{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:hidden;padding-inline-end:var(--pep-spacing-xs, .25rem)}.pep-draggable-items-container .title-container{height:var(--pep-top-bar-field-height, 2.5rem);display:flex;gap:var(--pep-spacing-sm, .5rem);flex-flow:row;justify-content:space-between}.pep-draggable-items-container .title-container .title{align-self:center}.pep-draggable-items-container .title-container .search-button{display:flex;align-self:center}.pep-draggable-items-container .draggable-items-overflow{overflow:auto}.pep-draggable-items-container .draggable-items-overflow.add-padding{padding:var(--pep-spacing-lg, 1rem) 0}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper{display:flex;flex-direction:column;gap:var(--pep-spacing-sm, .5rem)}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .draggble-item{cursor:grab}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .draggble-item.cdk-drag-disabled{cursor:not-allowed}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .placeholder-item{height:2.5rem;border-radius:var(--pep-border-radius-md, .25rem);width:100%}\n", ".placeholder-item.none{opacity:0}.placeholder-item.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PepSearchComponent, selector: "pep-search", inputs: ["triggerOn", "autoCompleteTop", "autoCompleteValues", "shrink", "value", "searchControl", "useAsWebComponent", "sizeType"], outputs: ["search", "autocompleteChange", "stateChange"] }, { kind: "directive", type: i3.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: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i4.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
70
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDraggableItemsComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
72
|
args: [{ selector: 'pep-draggable-items', template: "<div [id]=\"containerId\" class=\"pep-draggable-items-container\" cdkDropList [cdkDropListData]=\"filteredItems$ | async\"\r\n cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"dropAreaIds\">\r\n\r\n <div *ngIf=\"titleType !== 'none'\" class=\"title-container\"\r\n [ngClass]=\"{ 'pep-border-bottom': titleType === 'with-bottom-border'}\">\r\n <label class=\"title body-{{ titleSizeType }} bold ellipsis \" >{{title}}</label>\r\n <pep-search *ngIf=\"showSearch && items?.length > numberItemsToShowSearch\" class=\"search-button\" sizeType=\"sm\" shrink=\"always\"\r\n [searchControl]=\"searchControl\" triggerOn=\"keydown\"></pep-search>\r\n </div>\r\n\r\n <div class=\"draggable-items-overflow\" [ngClass]=\"{ 'add-padding': titleType === 'with-bottom-border'}\">\r\n <div class=\"draggable-items-wrapper\">\r\n <pep-draggable-item *ngFor=\"let item of filteredItems$ | async; let i=index;\" class=\"draggble-item\"\r\n [title]=\"item.title\" [data]=\"item.data\" [disabled]=\"item.disabled\" cdkDrag [cdkDragData]=\"item.data\"\r\n [cdkDragDisabled]=\"item.disabled\" (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\r\n \r\n <ng-container *ngIf=\"itemPlaceholderType !== 'regular'\">\r\n <div class=\"placeholder-item {{itemPlaceholderType}}\" *cdkDragPlaceholder></div>\r\n </ng-container>\r\n </pep-draggable-item>\r\n </div>\r\n </div>\r\n</div>", styles: [".pep-draggable-items-container{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:hidden;padding-inline-end:var(--pep-spacing-xs, .25rem)}.pep-draggable-items-container .title-container{height:var(--pep-top-bar-field-height, 2.5rem);display:flex;gap:var(--pep-spacing-sm, .5rem);flex-flow:row;justify-content:space-between}.pep-draggable-items-container .title-container .title{align-self:center}.pep-draggable-items-container .title-container .search-button{display:flex;align-self:center}.pep-draggable-items-container .draggable-items-overflow{overflow:auto}.pep-draggable-items-container .draggable-items-overflow.add-padding{padding:var(--pep-spacing-lg, 1rem) 0}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper{display:flex;flex-direction:column;gap:var(--pep-spacing-sm, .5rem)}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .draggble-item{cursor:grab}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .draggble-item.cdk-drag-disabled{cursor:not-allowed}.pep-draggable-items-container .draggable-items-overflow .draggable-items-wrapper .placeholder-item{height:2.5rem;border-radius:var(--pep-border-radius-md, .25rem);width:100%}\n", ".placeholder-item.none{opacity:0}.placeholder-item.weak{background:hsla(var(--pep-color-weak-h, 0),var(--pep-color-weak-s, 0%),var(--pep-color-weak-l, 10%),.08)}\n"] }]
|
|
@@ -7,7 +7,7 @@ import { PepSearchModule } from '@pepperi-addons/ngx-lib/search';
|
|
|
7
7
|
import { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';
|
|
8
8
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
9
9
|
import { PepDraggableItemsComponent } from './draggable-items.component';
|
|
10
|
-
import {
|
|
10
|
+
import { DraggableItemComponent } from './draggable-item/draggable-item.component';
|
|
11
11
|
import { PepIconModule, pepIconSystemMove, } from '@pepperi-addons/ngx-lib/icon';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@pepperi-addons/ngx-lib/icon";
|
|
@@ -21,44 +21,44 @@ export class PepDraggableItemsModule {
|
|
|
21
21
|
}
|
|
22
22
|
PepDraggableItemsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDraggableItemsModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
23
|
PepDraggableItemsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepDraggableItemsModule, declarations: [PepDraggableItemsComponent,
|
|
24
|
-
|
|
24
|
+
DraggableItemComponent], imports: [CommonModule,
|
|
25
25
|
ReactiveFormsModule,
|
|
26
|
-
DragDropModule,
|
|
27
26
|
PepNgxLibModule,
|
|
28
27
|
PepButtonModule,
|
|
29
28
|
PepIconModule,
|
|
30
29
|
PepMenuModule,
|
|
31
|
-
PepSearchModule
|
|
32
|
-
|
|
30
|
+
PepSearchModule,
|
|
31
|
+
DragDropModule], exports: [PepDraggableItemsComponent,
|
|
32
|
+
DraggableItemComponent] });
|
|
33
33
|
PepDraggableItemsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDraggableItemsModule, imports: [CommonModule,
|
|
34
34
|
ReactiveFormsModule,
|
|
35
|
-
DragDropModule,
|
|
36
35
|
PepNgxLibModule,
|
|
37
36
|
PepButtonModule,
|
|
38
37
|
PepIconModule,
|
|
39
38
|
PepMenuModule,
|
|
40
|
-
PepSearchModule
|
|
39
|
+
PepSearchModule,
|
|
40
|
+
DragDropModule] });
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDraggableItemsModule, decorators: [{
|
|
42
42
|
type: NgModule,
|
|
43
43
|
args: [{
|
|
44
44
|
declarations: [
|
|
45
45
|
PepDraggableItemsComponent,
|
|
46
|
-
|
|
46
|
+
DraggableItemComponent
|
|
47
47
|
],
|
|
48
48
|
imports: [
|
|
49
49
|
CommonModule,
|
|
50
50
|
ReactiveFormsModule,
|
|
51
|
-
DragDropModule,
|
|
52
51
|
PepNgxLibModule,
|
|
53
52
|
PepButtonModule,
|
|
54
53
|
PepIconModule,
|
|
55
54
|
PepMenuModule,
|
|
56
55
|
PepSearchModule,
|
|
56
|
+
DragDropModule
|
|
57
57
|
],
|
|
58
58
|
exports: [
|
|
59
59
|
PepDraggableItemsComponent,
|
|
60
|
-
|
|
60
|
+
DraggableItemComponent
|
|
61
61
|
],
|
|
62
62
|
}]
|
|
63
63
|
}], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWl0ZW1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZHJhZ2dhYmxlLWl0ZW1zL2RyYWdnYWJsZS1pdGVtcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQ0gsYUFBYSxFQUViLGlCQUFpQixHQUNwQixNQUFNLDhCQUE4QixDQUFDOzs7QUFzQnRDLE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQy9CLGlCQUFpQjtTQUNwQixDQUFDLENBQUM7SUFDUCxDQUFDOztvSEFMUSx1QkFBdUI7cUhBQXZCLHVCQUF1QixpQkFsQjVCLDBCQUEwQjtRQUMxQixzQkFBc0IsYUFHdEIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLGNBQWMsYUFHZCwwQkFBMEI7UUFDMUIsc0JBQXNCO3FIQUdqQix1QkFBdUIsWUFkNUIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLGNBQWM7MkZBT1QsdUJBQXVCO2tCQXBCbkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsMEJBQTBCO3dCQUMxQixzQkFBc0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDTCwwQkFBMEI7d0JBQzFCLHNCQUFzQjtxQkFDekI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBlcE5neExpYk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBQZXBTZWFyY2hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWFyY2gnO1xuaW1wb3J0IHsgUGVwTWVudU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL21lbnUnO1xuXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgeyBQZXBEcmFnZ2FibGVJdGVtc0NvbXBvbmVudCB9IGZyb20gJy4vZHJhZ2dhYmxlLWl0ZW1zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcmFnZ2FibGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kcmFnZ2FibGUtaXRlbS9kcmFnZ2FibGUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uU3lzdGVtTW92ZSxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFBlcERyYWdnYWJsZUl0ZW1zQ29tcG9uZW50LFxuICAgICAgICBEcmFnZ2FibGVJdGVtQ29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgUGVwTmd4TGliTW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFBlcEljb25Nb2R1bGUsXG4gICAgICAgIFBlcE1lbnVNb2R1bGUsXG4gICAgICAgIFBlcFNlYXJjaE1vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgUGVwRHJhZ2dhYmxlSXRlbXNDb21wb25lbnQsXG4gICAgICAgIERyYWdnYWJsZUl0ZW1Db21wb25lbnRcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBEcmFnZ2FibGVJdGVtc01vZHVsZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwZXBJY29uUmVnaXN0cnk6IFBlcEljb25SZWdpc3RyeSkge1xuICAgICAgICB0aGlzLnBlcEljb25SZWdpc3RyeS5yZWdpc3Rlckljb25zKFtcbiAgICAgICAgICAgIHBlcEljb25TeXN0ZW1Nb3ZlLFxuICAgICAgICBdKTtcbiAgICB9XG59XG4iXX0=
|