@nova-design-system/nova-angular-18 3.21.1-beta.0 → 3.23.0
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/dist/nova-components/esm2022/lib/providers/notification-service.component.mjs +3 -1
- package/dist/nova-components/esm2022/lib/providers/notification.service.mjs +3 -4
- package/dist/nova-components/esm2022/lib/stencil-generated/components.mjs +271 -127
- package/dist/nova-components/fesm2022/nova-components.mjs +273 -128
- package/dist/nova-components/fesm2022/nova-components.mjs.map +1 -1
- package/dist/nova-components/lib/stencil-generated/components.d.ts +127 -36
- package/package.json +1 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* auto-generated angular directive proxies */
|
|
4
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
-
import { ProxyCmp
|
|
4
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
|
|
5
|
+
import { ProxyCmp } from './angular-component-lib/utils';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
let NvAccordion = class NvAccordion {
|
|
8
8
|
constructor(c, r, z) {
|
|
9
9
|
this.z = z;
|
|
10
|
+
this.openIndexesChanged = new EventEmitter();
|
|
10
11
|
c.detach();
|
|
11
12
|
this.el = r.nativeElement;
|
|
12
|
-
proxyOutputs(this, this.el, ['openIndexesChanged']);
|
|
13
13
|
}
|
|
14
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvAccordion, selector: "nv-accordion", inputs: { data: "data", mode: "mode", openIndexes: "openIndexes" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvAccordion, selector: "nv-accordion", inputs: { data: "data", mode: "mode", openIndexes: "openIndexes" }, outputs: { openIndexesChanged: "openIndexesChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16
16
|
};
|
|
17
17
|
NvAccordion = __decorate([
|
|
18
18
|
ProxyCmp({
|
|
@@ -29,18 +29,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29
29
|
template: '<ng-content></ng-content>',
|
|
30
30
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
31
31
|
inputs: ['data', 'mode', 'openIndexes'],
|
|
32
|
+
outputs: ['openIndexesChanged'],
|
|
32
33
|
standalone: false
|
|
33
34
|
}]
|
|
34
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
35
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { openIndexesChanged: [{
|
|
36
|
+
type: Output
|
|
37
|
+
}] } });
|
|
35
38
|
let NvAccordionItem = class NvAccordionItem {
|
|
36
39
|
constructor(c, r, z) {
|
|
37
40
|
this.z = z;
|
|
41
|
+
this.itemToggle = new EventEmitter();
|
|
38
42
|
c.detach();
|
|
39
43
|
this.el = r.nativeElement;
|
|
40
|
-
proxyOutputs(this, this.el, ['itemToggle']);
|
|
41
44
|
}
|
|
42
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvAccordionItem, selector: "nv-accordion-item", inputs: { disabled: "disabled", itemTitle: "itemTitle", maxContentHeight: "maxContentHeight", mode: "mode", open: "open", subtitle: "subtitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvAccordionItem, selector: "nv-accordion-item", inputs: { disabled: "disabled", itemTitle: "itemTitle", maxContentHeight: "maxContentHeight", mode: "mode", open: "open", subtitle: "subtitle" }, outputs: { itemToggle: "itemToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
47
|
};
|
|
45
48
|
NvAccordionItem = __decorate([
|
|
46
49
|
ProxyCmp({
|
|
@@ -57,18 +60,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
57
60
|
template: '<ng-content></ng-content>',
|
|
58
61
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
59
62
|
inputs: ['disabled', 'itemTitle', 'maxContentHeight', 'mode', 'open', 'subtitle'],
|
|
63
|
+
outputs: ['itemToggle'],
|
|
60
64
|
standalone: false
|
|
61
65
|
}]
|
|
62
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
66
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { itemToggle: [{
|
|
67
|
+
type: Output
|
|
68
|
+
}] } });
|
|
63
69
|
let NvAlert = class NvAlert {
|
|
64
70
|
constructor(c, r, z) {
|
|
65
71
|
this.z = z;
|
|
72
|
+
this.hiddenChanged = new EventEmitter();
|
|
73
|
+
this.hiddenChangedComplete = new EventEmitter();
|
|
74
|
+
this.closeClicked = new EventEmitter();
|
|
66
75
|
c.detach();
|
|
67
76
|
this.el = r.nativeElement;
|
|
68
|
-
proxyOutputs(this, this.el, ['hiddenChanged', 'hiddenChangedComplete', 'closeClicked']);
|
|
69
77
|
}
|
|
70
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvAlert, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvAlert, selector: "nv-alert", inputs: { color: "color", dismissible: "dismissible", feedback: "feedback", hasNoAnimations: "hasNoAnimations", heading: "heading", hidden: "hidden", icon: "icon", message: "message", preventAutoClose: "preventAutoClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvAlert, selector: "nv-alert", inputs: { color: "color", dismissible: "dismissible", feedback: "feedback", hasNoAnimations: "hasNoAnimations", heading: "heading", hidden: "hidden", icon: "icon", message: "message", preventAutoClose: "preventAutoClose" }, outputs: { hiddenChanged: "hiddenChanged", hiddenChangedComplete: "hiddenChangedComplete", closeClicked: "closeClicked" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
80
|
};
|
|
73
81
|
NvAlert = __decorate([
|
|
74
82
|
ProxyCmp({
|
|
@@ -84,9 +92,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
84
92
|
template: '<ng-content></ng-content>',
|
|
85
93
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
86
94
|
inputs: ['color', 'dismissible', 'feedback', 'hasNoAnimations', 'heading', 'hidden', 'icon', 'message', 'preventAutoClose'],
|
|
95
|
+
outputs: ['hiddenChanged', 'hiddenChangedComplete', 'closeClicked'],
|
|
87
96
|
standalone: false
|
|
88
97
|
}]
|
|
89
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
98
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { hiddenChanged: [{
|
|
99
|
+
type: Output
|
|
100
|
+
}], hiddenChangedComplete: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], closeClicked: [{
|
|
103
|
+
type: Output
|
|
104
|
+
}] } });
|
|
90
105
|
let NvAvatar = class NvAvatar {
|
|
91
106
|
constructor(c, r, z) {
|
|
92
107
|
this.z = z;
|
|
@@ -116,12 +131,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
116
131
|
let NvBadge = class NvBadge {
|
|
117
132
|
constructor(c, r, z) {
|
|
118
133
|
this.z = z;
|
|
134
|
+
this.closeClicked = new EventEmitter();
|
|
135
|
+
this.hiddenChanged = new EventEmitter();
|
|
136
|
+
this.hiddenChangedComplete = new EventEmitter();
|
|
119
137
|
c.detach();
|
|
120
138
|
this.el = r.nativeElement;
|
|
121
|
-
proxyOutputs(this, this.el, ['closeClicked', 'hiddenChanged', 'hiddenChangedComplete']);
|
|
122
139
|
}
|
|
123
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvBadge, selector: "nv-badge", inputs: { color: "color", dismissal: "dismissal", dismissible: "dismissible", hidden: "hidden", icon: "icon", iconLocation: "iconLocation", isIconOnly: "isIconOnly", label: "label", leadIcon: "leadIcon", preventAutoClose: "preventAutoClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvBadge, selector: "nv-badge", inputs: { color: "color", dismissal: "dismissal", dismissible: "dismissible", hidden: "hidden", icon: "icon", iconLocation: "iconLocation", isIconOnly: "isIconOnly", label: "label", leadIcon: "leadIcon", preventAutoClose: "preventAutoClose" }, outputs: { closeClicked: "closeClicked", hiddenChanged: "hiddenChanged", hiddenChangedComplete: "hiddenChangedComplete" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
125
142
|
};
|
|
126
143
|
NvBadge = __decorate([
|
|
127
144
|
ProxyCmp({
|
|
@@ -137,9 +154,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
137
154
|
template: '<ng-content></ng-content>',
|
|
138
155
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
139
156
|
inputs: ['color', 'dismissal', 'dismissible', 'hidden', 'icon', 'iconLocation', 'isIconOnly', 'label', 'leadIcon', 'preventAutoClose'],
|
|
157
|
+
outputs: ['closeClicked', 'hiddenChanged', 'hiddenChangedComplete'],
|
|
140
158
|
standalone: false
|
|
141
159
|
}]
|
|
142
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
160
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { closeClicked: [{
|
|
161
|
+
type: Output
|
|
162
|
+
}], hiddenChanged: [{
|
|
163
|
+
type: Output
|
|
164
|
+
}], hiddenChangedComplete: [{
|
|
165
|
+
type: Output
|
|
166
|
+
}] } });
|
|
143
167
|
let NvBreadcrumb = class NvBreadcrumb {
|
|
144
168
|
constructor(c, r, z) {
|
|
145
169
|
this.z = z;
|
|
@@ -245,12 +269,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
245
269
|
let NvCalendar = class NvCalendar {
|
|
246
270
|
constructor(c, r, z) {
|
|
247
271
|
this.z = z;
|
|
272
|
+
this.singleDateChange = new EventEmitter();
|
|
273
|
+
this.rangeDateChange = new EventEmitter();
|
|
274
|
+
this.valueChanged = new EventEmitter();
|
|
248
275
|
c.detach();
|
|
249
276
|
this.el = r.nativeElement;
|
|
250
|
-
proxyOutputs(this, this.el, ['singleDateChange', 'rangeDateChange', 'valueChanged']);
|
|
251
277
|
}
|
|
252
278
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvCalendar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvCalendar, selector: "nv-calendar", inputs: { cancelLabel: "cancelLabel", dateFormat: "dateFormat", disabledDates: "disabledDates", firstDayOfWeek: "firstDayOfWeek", locale: "locale", max: "max", min: "min", numberOfCalendars: "numberOfCalendars", primaryLabel: "primaryLabel", rangeValue: "rangeValue", selectionType: "selectionType", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", singleValue: "singleValue", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
279
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvCalendar, selector: "nv-calendar", inputs: { cancelLabel: "cancelLabel", dateFormat: "dateFormat", disabledDates: "disabledDates", firstDayOfWeek: "firstDayOfWeek", locale: "locale", max: "max", min: "min", numberOfCalendars: "numberOfCalendars", primaryLabel: "primaryLabel", rangeValue: "rangeValue", selectionType: "selectionType", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", singleValue: "singleValue", value: "value" }, outputs: { singleDateChange: "singleDateChange", rangeDateChange: "rangeDateChange", valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
254
280
|
};
|
|
255
281
|
NvCalendar = __decorate([
|
|
256
282
|
ProxyCmp({
|
|
@@ -267,9 +293,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
267
293
|
template: '<ng-content></ng-content>',
|
|
268
294
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
269
295
|
inputs: ['cancelLabel', 'dateFormat', 'disabledDates', 'firstDayOfWeek', 'locale', 'max', 'min', 'numberOfCalendars', 'primaryLabel', 'rangeValue', 'selectionType', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'singleValue', 'value'],
|
|
296
|
+
outputs: ['singleDateChange', 'rangeDateChange', 'valueChanged'],
|
|
270
297
|
standalone: false
|
|
271
298
|
}]
|
|
272
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
299
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { singleDateChange: [{
|
|
300
|
+
type: Output
|
|
301
|
+
}], rangeDateChange: [{
|
|
302
|
+
type: Output
|
|
303
|
+
}], valueChanged: [{
|
|
304
|
+
type: Output
|
|
305
|
+
}] } });
|
|
273
306
|
let NvCol = class NvCol {
|
|
274
307
|
constructor(c, r, z) {
|
|
275
308
|
this.z = z;
|
|
@@ -299,12 +332,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
299
332
|
let NvDatagrid = class NvDatagrid {
|
|
300
333
|
constructor(c, r, z) {
|
|
301
334
|
this.z = z;
|
|
335
|
+
this.action = new EventEmitter();
|
|
336
|
+
this.selectedRows = new EventEmitter();
|
|
337
|
+
this.stateChanged = new EventEmitter();
|
|
302
338
|
c.detach();
|
|
303
339
|
this.el = r.nativeElement;
|
|
304
|
-
proxyOutputs(this, this.el, ['action', 'selectedRows', 'stateChanged']);
|
|
305
340
|
}
|
|
306
341
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvDatagrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvDatagrid, selector: "nv-datagrid", inputs: { autoGenerateColumns: "autoGenerateColumns", columns: "columns", data: "data", enableGlobalFilter: "enableGlobalFilter", enablePagination: "enablePagination", enableRowSelection: "enableRowSelection", enableSorting: "enableSorting", fallbackValue: "fallbackValue", globalFilterPosition: "globalFilterPosition", noColumnsNoDataMessage: "noColumnsNoDataMessage", noDataMessage: "noDataMessage", pageSize: "pageSize", pageSizes: "pageSizes", state: "state" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
342
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvDatagrid, selector: "nv-datagrid", inputs: { autoGenerateColumns: "autoGenerateColumns", columns: "columns", data: "data", enableGlobalFilter: "enableGlobalFilter", enablePagination: "enablePagination", enableRowSelection: "enableRowSelection", enableSorting: "enableSorting", fallbackValue: "fallbackValue", globalFilterPosition: "globalFilterPosition", noColumnsNoDataMessage: "noColumnsNoDataMessage", noDataMessage: "noDataMessage", pageSize: "pageSize", pageSizes: "pageSizes", state: "state" }, outputs: { action: "action", selectedRows: "selectedRows", stateChanged: "stateChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
308
343
|
};
|
|
309
344
|
NvDatagrid = __decorate([
|
|
310
345
|
ProxyCmp({
|
|
@@ -320,9 +355,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
320
355
|
template: '<ng-content></ng-content>',
|
|
321
356
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
322
357
|
inputs: ['autoGenerateColumns', 'columns', 'data', 'enableGlobalFilter', 'enablePagination', 'enableRowSelection', 'enableSorting', 'fallbackValue', 'globalFilterPosition', 'noColumnsNoDataMessage', 'noDataMessage', 'pageSize', 'pageSizes', 'state'],
|
|
358
|
+
outputs: ['action', 'selectedRows', 'stateChanged'],
|
|
323
359
|
standalone: false
|
|
324
360
|
}]
|
|
325
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
361
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { action: [{
|
|
362
|
+
type: Output
|
|
363
|
+
}], selectedRows: [{
|
|
364
|
+
type: Output
|
|
365
|
+
}], stateChanged: [{
|
|
366
|
+
type: Output
|
|
367
|
+
}] } });
|
|
326
368
|
let NvDatagridcolumn = class NvDatagridcolumn {
|
|
327
369
|
constructor(c, r, z) {
|
|
328
370
|
this.z = z;
|
|
@@ -352,12 +394,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
352
394
|
let NvDialog = class NvDialog {
|
|
353
395
|
constructor(c, r, z) {
|
|
354
396
|
this.z = z;
|
|
397
|
+
this.openChanged = new EventEmitter();
|
|
355
398
|
c.detach();
|
|
356
399
|
this.el = r.nativeElement;
|
|
357
|
-
proxyOutputs(this, this.el, ['openChanged']);
|
|
358
400
|
}
|
|
359
401
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvDialog, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
360
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvDialog, selector: "nv-dialog", inputs: { autofocus: "autofocus", clickOutside: "clickOutside", controlled: "controlled", full: "full", open: "open", undismissable: "undismissable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
402
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvDialog, selector: "nv-dialog", inputs: { autofocus: "autofocus", clickOutside: "clickOutside", controlled: "controlled", full: "full", open: "open", undismissable: "undismissable" }, outputs: { openChanged: "openChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
361
403
|
};
|
|
362
404
|
NvDialog = __decorate([
|
|
363
405
|
ProxyCmp({
|
|
@@ -374,18 +416,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
374
416
|
template: '<ng-content></ng-content>',
|
|
375
417
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
376
418
|
inputs: ['autofocus', 'clickOutside', 'controlled', 'full', 'open', 'undismissable'],
|
|
419
|
+
outputs: ['openChanged'],
|
|
377
420
|
standalone: false
|
|
378
421
|
}]
|
|
379
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
422
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { openChanged: [{
|
|
423
|
+
type: Output
|
|
424
|
+
}] } });
|
|
380
425
|
let NvDialogfooter = class NvDialogfooter {
|
|
381
426
|
constructor(c, r, z) {
|
|
382
427
|
this.z = z;
|
|
428
|
+
this.dialogCanceled = new EventEmitter();
|
|
429
|
+
this.dialogPrimaryClicked = new EventEmitter();
|
|
383
430
|
c.detach();
|
|
384
431
|
this.el = r.nativeElement;
|
|
385
|
-
proxyOutputs(this, this.el, ['dialogCanceled', 'dialogPrimaryClicked']);
|
|
386
432
|
}
|
|
387
433
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvDialogfooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
388
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvDialogfooter, selector: "nv-dialogfooter", inputs: { cancelLabel: "cancelLabel", danger: "danger", disabled: "disabled", form: "form", leadingIcon: "leadingIcon", primaryButtonType: "primaryButtonType", primaryLabel: "primaryLabel", trailingIcon: "trailingIcon", undismissable: "undismissable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
434
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvDialogfooter, selector: "nv-dialogfooter", inputs: { cancelLabel: "cancelLabel", danger: "danger", disabled: "disabled", form: "form", leadingIcon: "leadingIcon", primaryButtonType: "primaryButtonType", primaryLabel: "primaryLabel", trailingIcon: "trailingIcon", undismissable: "undismissable" }, outputs: { dialogCanceled: "dialogCanceled", dialogPrimaryClicked: "dialogPrimaryClicked" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
389
435
|
};
|
|
390
436
|
NvDialogfooter = __decorate([
|
|
391
437
|
ProxyCmp({
|
|
@@ -401,9 +447,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
401
447
|
template: '<ng-content></ng-content>',
|
|
402
448
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
403
449
|
inputs: ['cancelLabel', 'danger', 'disabled', 'form', 'leadingIcon', 'primaryButtonType', 'primaryLabel', 'trailingIcon', 'undismissable'],
|
|
450
|
+
outputs: ['dialogCanceled', 'dialogPrimaryClicked'],
|
|
404
451
|
standalone: false
|
|
405
452
|
}]
|
|
406
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
453
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dialogCanceled: [{
|
|
454
|
+
type: Output
|
|
455
|
+
}], dialogPrimaryClicked: [{
|
|
456
|
+
type: Output
|
|
457
|
+
}] } });
|
|
407
458
|
let NvDialogheader = class NvDialogheader {
|
|
408
459
|
constructor(c, r, z) {
|
|
409
460
|
this.z = z;
|
|
@@ -433,16 +484,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
433
484
|
let NvFieldcheckbox = class NvFieldcheckbox {
|
|
434
485
|
constructor(c, r, z) {
|
|
435
486
|
this.z = z;
|
|
487
|
+
this.checkedChanged = new EventEmitter();
|
|
436
488
|
c.detach();
|
|
437
489
|
this.el = r.nativeElement;
|
|
438
|
-
proxyOutputs(this, this.el, ['checkedChanged']);
|
|
439
490
|
}
|
|
440
491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldcheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
441
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldcheckbox, selector: "nv-fieldcheckbox", inputs: { autofocus: "autofocus", checked: "checked", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", hideLabel: "hideLabel", indeterminate: "indeterminate", inputId: "inputId", label: "label", labelBefore: "labelBefore", labelPlacement: "labelPlacement", message: "message", name: "name", readonly: "readonly", required: "required", validation: "validation", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
492
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldcheckbox, selector: "nv-fieldcheckbox", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", checked: "checked", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", hideLabel: "hideLabel", indeterminate: "indeterminate", inputId: "inputId", label: "label", labelBefore: "labelBefore", labelPlacement: "labelPlacement", message: "message", name: "name", readonly: "readonly", required: "required", validation: "validation", value: "value" }, outputs: { checkedChanged: "checkedChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
442
493
|
};
|
|
443
494
|
NvFieldcheckbox = __decorate([
|
|
444
495
|
ProxyCmp({
|
|
445
|
-
inputs: ['autofocus', 'checked', 'description', 'disabled', 'error', 'errorDescription', 'hideLabel', 'indeterminate', 'inputId', 'label', 'labelBefore', 'labelPlacement', 'message', 'name', 'readonly', 'required', 'validation', 'value']
|
|
496
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'checked', 'description', 'disabled', 'error', 'errorDescription', 'hideLabel', 'indeterminate', 'inputId', 'label', 'labelBefore', 'labelPlacement', 'message', 'name', 'readonly', 'required', 'validation', 'value']
|
|
446
497
|
})
|
|
447
498
|
], NvFieldcheckbox);
|
|
448
499
|
export { NvFieldcheckbox };
|
|
@@ -453,23 +504,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
453
504
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
454
505
|
template: '<ng-content></ng-content>',
|
|
455
506
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
456
|
-
inputs: ['autofocus', 'checked', 'description', 'disabled', 'error', 'errorDescription', 'hideLabel', 'indeterminate', 'inputId', 'label', 'labelBefore', 'labelPlacement', 'message', 'name', 'readonly', 'required', 'validation', 'value'],
|
|
507
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'checked', 'description', 'disabled', 'error', 'errorDescription', 'hideLabel', 'indeterminate', 'inputId', 'label', 'labelBefore', 'labelPlacement', 'message', 'name', 'readonly', 'required', 'validation', 'value'],
|
|
508
|
+
outputs: ['checkedChanged'],
|
|
457
509
|
standalone: false
|
|
458
510
|
}]
|
|
459
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
511
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { checkedChanged: [{
|
|
512
|
+
type: Output
|
|
513
|
+
}] } });
|
|
460
514
|
let NvFielddate = class NvFielddate {
|
|
461
515
|
constructor(c, r, z) {
|
|
462
516
|
this.z = z;
|
|
517
|
+
this.valueChanged = new EventEmitter();
|
|
463
518
|
c.detach();
|
|
464
519
|
this.el = r.nativeElement;
|
|
465
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
466
520
|
}
|
|
467
521
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFielddate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
468
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddate, selector: "nv-fielddate", inputs: { autofocus: "autofocus", dateFormat: "dateFormat", description: "description", disabled: "disabled", disabledDates: "disabledDates", error: "error", errorDescription: "errorDescription", firstDayOfWeek: "firstDayOfWeek", fluid: "fluid", inputId: "inputId", label: "label", locale: "locale", max: "max", min: "min", name: "name", numberOfCalendars: "numberOfCalendars", placeholder: "placeholder", readonly: "readonly", required: "required", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", success: "success", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
522
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddate, selector: "nv-fielddate", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", dateFormat: "dateFormat", description: "description", disabled: "disabled", disabledDates: "disabledDates", error: "error", errorDescription: "errorDescription", firstDayOfWeek: "firstDayOfWeek", fluid: "fluid", inputId: "inputId", label: "label", locale: "locale", max: "max", min: "min", name: "name", numberOfCalendars: "numberOfCalendars", placeholder: "placeholder", readonly: "readonly", required: "required", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", success: "success", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
469
523
|
};
|
|
470
524
|
NvFielddate = __decorate([
|
|
471
525
|
ProxyCmp({
|
|
472
|
-
inputs: ['autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'inputId', 'label', 'locale', 'max', 'min', 'name', 'numberOfCalendars', 'placeholder', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'success', 'value'],
|
|
526
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'inputId', 'label', 'locale', 'max', 'min', 'name', 'numberOfCalendars', 'placeholder', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'success', 'value'],
|
|
473
527
|
methods: ['clear']
|
|
474
528
|
})
|
|
475
529
|
], NvFielddate);
|
|
@@ -481,23 +535,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
481
535
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
482
536
|
template: '<ng-content></ng-content>',
|
|
483
537
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
484
|
-
inputs: ['autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'inputId', 'label', 'locale', 'max', 'min', 'name', 'numberOfCalendars', 'placeholder', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'success', 'value'],
|
|
538
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'inputId', 'label', 'locale', 'max', 'min', 'name', 'numberOfCalendars', 'placeholder', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'success', 'value'],
|
|
539
|
+
outputs: ['valueChanged'],
|
|
485
540
|
standalone: false
|
|
486
541
|
}]
|
|
487
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
542
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
543
|
+
type: Output
|
|
544
|
+
}] } });
|
|
488
545
|
let NvFielddaterange = class NvFielddaterange {
|
|
489
546
|
constructor(c, r, z) {
|
|
490
547
|
this.z = z;
|
|
548
|
+
this.dateRangeChange = new EventEmitter();
|
|
549
|
+
this.valueChanged = new EventEmitter();
|
|
491
550
|
c.detach();
|
|
492
551
|
this.el = r.nativeElement;
|
|
493
|
-
proxyOutputs(this, this.el, ['dateRangeChange', 'valueChanged']);
|
|
494
552
|
}
|
|
495
553
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFielddaterange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
496
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddaterange, selector: "nv-fielddaterange", inputs: { autofocus: "autofocus", dateFormat: "dateFormat", description: "description", disabled: "disabled", disabledDates: "disabledDates", endInputId: "endInputId", endName: "endName", endPlaceholder: "endPlaceholder", error: "error", errorDescription: "errorDescription", firstDayOfWeek: "firstDayOfWeek", fluid: "fluid", label: "label", locale: "locale", max: "max", min: "min", numberOfCalendars: "numberOfCalendars", readonly: "readonly", required: "required", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", startInputId: "startInputId", startName: "startName", startPlaceholder: "startPlaceholder", success: "success", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
554
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddaterange, selector: "nv-fielddaterange", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", dateFormat: "dateFormat", description: "description", disabled: "disabled", disabledDates: "disabledDates", endInputId: "endInputId", endName: "endName", endPlaceholder: "endPlaceholder", error: "error", errorDescription: "errorDescription", firstDayOfWeek: "firstDayOfWeek", fluid: "fluid", label: "label", locale: "locale", max: "max", min: "min", numberOfCalendars: "numberOfCalendars", readonly: "readonly", required: "required", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", startInputId: "startInputId", startName: "startName", startPlaceholder: "startPlaceholder", success: "success", value: "value" }, outputs: { dateRangeChange: "dateRangeChange", valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
497
555
|
};
|
|
498
556
|
NvFielddaterange = __decorate([
|
|
499
557
|
ProxyCmp({
|
|
500
|
-
inputs: ['autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'endInputId', 'endName', 'endPlaceholder', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'label', 'locale', 'max', 'min', 'numberOfCalendars', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'startInputId', 'startName', 'startPlaceholder', 'success', 'value'],
|
|
558
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'endInputId', 'endName', 'endPlaceholder', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'label', 'locale', 'max', 'min', 'numberOfCalendars', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'startInputId', 'startName', 'startPlaceholder', 'success', 'value'],
|
|
501
559
|
methods: ['clear']
|
|
502
560
|
})
|
|
503
561
|
], NvFielddaterange);
|
|
@@ -509,23 +567,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
509
567
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
510
568
|
template: '<ng-content></ng-content>',
|
|
511
569
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
512
|
-
inputs: ['autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'endInputId', 'endName', 'endPlaceholder', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'label', 'locale', 'max', 'min', 'numberOfCalendars', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'startInputId', 'startName', 'startPlaceholder', 'success', 'value'],
|
|
570
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'dateFormat', 'description', 'disabled', 'disabledDates', 'endInputId', 'endName', 'endPlaceholder', 'error', 'errorDescription', 'firstDayOfWeek', 'fluid', 'label', 'locale', 'max', 'min', 'numberOfCalendars', 'readonly', 'required', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'startInputId', 'startName', 'startPlaceholder', 'success', 'value'],
|
|
571
|
+
outputs: ['dateRangeChange', 'valueChanged'],
|
|
513
572
|
standalone: false
|
|
514
573
|
}]
|
|
515
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
574
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dateRangeChange: [{
|
|
575
|
+
type: Output
|
|
576
|
+
}], valueChanged: [{
|
|
577
|
+
type: Output
|
|
578
|
+
}] } });
|
|
516
579
|
let NvFielddropdown = class NvFielddropdown {
|
|
517
580
|
constructor(c, r, z) {
|
|
518
581
|
this.z = z;
|
|
582
|
+
this.valueChanged = new EventEmitter();
|
|
583
|
+
this.filterTextChanged = new EventEmitter();
|
|
584
|
+
this.openChanged = new EventEmitter();
|
|
585
|
+
this.dropdownItemSelected = new EventEmitter();
|
|
519
586
|
c.detach();
|
|
520
587
|
this.el = r.nativeElement;
|
|
521
|
-
proxyOutputs(this, this.el, ['valueChanged', 'filterTextChanged', 'openChanged', 'dropdownItemSelected']);
|
|
522
588
|
}
|
|
523
589
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFielddropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
524
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddropdown, selector: "nv-fielddropdown", inputs: { autocomplete: "autocomplete", autofocus: "autofocus", controlledFilter: "controlledFilter", debounceDelay: "debounceDelay", description: "description", disabled: "disabled", emptyResult: "emptyResult", error: "error", errorDescription: "errorDescription", filterable: "filterable", fluid: "fluid", inputId: "inputId", label: "label", maxHeight: "maxHeight", name: "name", openOnSelect: "openOnSelect", options: "options", placeholder: "placeholder", readonly: "readonly", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
590
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddropdown, selector: "nv-fielddropdown", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autocomplete: "autocomplete", autofocus: "autofocus", controlledFilter: "controlledFilter", debounceDelay: "debounceDelay", description: "description", disabled: "disabled", emptyResult: "emptyResult", error: "error", errorDescription: "errorDescription", filterMode: "filterMode", filterable: "filterable", fluid: "fluid", fuzzyThreshold: "fuzzyThreshold", inputId: "inputId", label: "label", locale: "locale", maxHeight: "maxHeight", maxResults: "maxResults", name: "name", openOnSelect: "openOnSelect", options: "options", placeholder: "placeholder", readonly: "readonly", required: "required", startFilterAt: "startFilterAt", truncatedResultsText: "truncatedResultsText", value: "value", workerThreshold: "workerThreshold" }, outputs: { valueChanged: "valueChanged", filterTextChanged: "filterTextChanged", openChanged: "openChanged", dropdownItemSelected: "dropdownItemSelected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
525
591
|
};
|
|
526
592
|
NvFielddropdown = __decorate([
|
|
527
593
|
ProxyCmp({
|
|
528
|
-
inputs: ['autocomplete', 'autofocus', 'controlledFilter', 'debounceDelay', 'description', 'disabled', 'emptyResult', 'error', 'errorDescription', 'filterable', 'fluid', 'inputId', 'label', 'maxHeight', 'name', 'openOnSelect', 'options', 'placeholder', 'readonly', 'required', 'value'],
|
|
594
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'controlledFilter', 'debounceDelay', 'description', 'disabled', 'emptyResult', 'error', 'errorDescription', 'filterMode', 'filterable', 'fluid', 'fuzzyThreshold', 'inputId', 'label', 'locale', 'maxHeight', 'maxResults', 'name', 'openOnSelect', 'options', 'placeholder', 'readonly', 'required', 'startFilterAt', 'truncatedResultsText', 'value', 'workerThreshold'],
|
|
529
595
|
methods: ['clearFilter', 'toggleDropdown']
|
|
530
596
|
})
|
|
531
597
|
], NvFielddropdown);
|
|
@@ -537,19 +603,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
537
603
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
538
604
|
template: '<ng-content></ng-content>',
|
|
539
605
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
540
|
-
inputs: ['autocomplete', 'autofocus', 'controlledFilter', 'debounceDelay', 'description', 'disabled', 'emptyResult', 'error', 'errorDescription', 'filterable', 'fluid', 'inputId', 'label', 'maxHeight', 'name', 'openOnSelect', 'options', 'placeholder', 'readonly', 'required', 'value'],
|
|
606
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'controlledFilter', 'debounceDelay', 'description', 'disabled', 'emptyResult', 'error', 'errorDescription', 'filterMode', 'filterable', 'fluid', 'fuzzyThreshold', 'inputId', 'label', 'locale', 'maxHeight', 'maxResults', 'name', 'openOnSelect', 'options', 'placeholder', 'readonly', 'required', 'startFilterAt', 'truncatedResultsText', 'value', 'workerThreshold'],
|
|
607
|
+
outputs: ['valueChanged', 'filterTextChanged', 'openChanged', 'dropdownItemSelected'],
|
|
541
608
|
standalone: false
|
|
542
609
|
}]
|
|
543
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
610
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
611
|
+
type: Output
|
|
612
|
+
}], filterTextChanged: [{
|
|
613
|
+
type: Output
|
|
614
|
+
}], openChanged: [{
|
|
615
|
+
type: Output
|
|
616
|
+
}], dropdownItemSelected: [{
|
|
617
|
+
type: Output
|
|
618
|
+
}] } });
|
|
544
619
|
let NvFielddropdownitem = class NvFielddropdownitem {
|
|
545
620
|
constructor(c, r, z) {
|
|
546
621
|
this.z = z;
|
|
622
|
+
this.dropdownItemSelected = new EventEmitter();
|
|
547
623
|
c.detach();
|
|
548
624
|
this.el = r.nativeElement;
|
|
549
|
-
proxyOutputs(this, this.el, ['dropdownItemSelected']);
|
|
550
625
|
}
|
|
551
626
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFielddropdownitem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
552
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddropdownitem, selector: "nv-fielddropdownitem", inputs: { detached: "detached", disabled: "disabled", label: "label", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
627
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddropdownitem, selector: "nv-fielddropdownitem", inputs: { detached: "detached", disabled: "disabled", label: "label", selected: "selected", value: "value" }, outputs: { dropdownItemSelected: "dropdownItemSelected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
553
628
|
};
|
|
554
629
|
NvFielddropdownitem = __decorate([
|
|
555
630
|
ProxyCmp({
|
|
@@ -565,18 +640,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
565
640
|
template: '<ng-content></ng-content>',
|
|
566
641
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
567
642
|
inputs: ['detached', 'disabled', 'label', 'selected', 'value'],
|
|
643
|
+
outputs: ['dropdownItemSelected'],
|
|
568
644
|
standalone: false
|
|
569
645
|
}]
|
|
570
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
646
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dropdownItemSelected: [{
|
|
647
|
+
type: Output
|
|
648
|
+
}] } });
|
|
571
649
|
let NvFielddropdownitemcheck = class NvFielddropdownitemcheck {
|
|
572
650
|
constructor(c, r, z) {
|
|
573
651
|
this.z = z;
|
|
652
|
+
this.itemChecked = new EventEmitter();
|
|
574
653
|
c.detach();
|
|
575
654
|
this.el = r.nativeElement;
|
|
576
|
-
proxyOutputs(this, this.el, ['itemChecked']);
|
|
577
655
|
}
|
|
578
656
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFielddropdownitemcheck, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
579
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddropdownitemcheck, selector: "nv-fielddropdownitemcheck", inputs: { checked: "checked", description: "description", disabled: "disabled", group: "group", label: "label", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
657
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFielddropdownitemcheck, selector: "nv-fielddropdownitemcheck", inputs: { checked: "checked", description: "description", disabled: "disabled", group: "group", label: "label", value: "value" }, outputs: { itemChecked: "itemChecked" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
580
658
|
};
|
|
581
659
|
NvFielddropdownitemcheck = __decorate([
|
|
582
660
|
ProxyCmp({
|
|
@@ -592,22 +670,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
592
670
|
template: '<ng-content></ng-content>',
|
|
593
671
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
594
672
|
inputs: ['checked', 'description', 'disabled', 'group', 'label', 'value'],
|
|
673
|
+
outputs: ['itemChecked'],
|
|
595
674
|
standalone: false
|
|
596
675
|
}]
|
|
597
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
676
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { itemChecked: [{
|
|
677
|
+
type: Output
|
|
678
|
+
}] } });
|
|
598
679
|
let NvFieldmultiselect = class NvFieldmultiselect {
|
|
599
680
|
constructor(c, r, z) {
|
|
600
681
|
this.z = z;
|
|
682
|
+
this.valueChanged = new EventEmitter();
|
|
683
|
+
this.filterTextChanged = new EventEmitter();
|
|
601
684
|
c.detach();
|
|
602
685
|
this.el = r.nativeElement;
|
|
603
|
-
proxyOutputs(this, this.el, ['valueChanged', 'filterTextChanged']);
|
|
604
686
|
}
|
|
605
687
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldmultiselect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
606
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldmultiselect, selector: "nv-fieldmultiselect", inputs: { autocomplete: "autocomplete", autofocus: "autofocus", badgeLabel: "badgeLabel", debounceDelay: "debounceDelay", description: "description", deselectAllLabel: "deselectAllLabel", disabled: "disabled", emptyResult: "emptyResult", enableSelectAll: "enableSelectAll", error: "error", errorDescription: "errorDescription", filterText: "filterText", filterable: "filterable", fluid: "fluid", inputId: "inputId", label: "label", maxHeight: "maxHeight", name: "name", open: "open", options: "options", placeholder: "placeholder", readonly: "readonly", required: "required", selectAllLabel: "selectAllLabel", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
688
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldmultiselect, selector: "nv-fieldmultiselect", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autocomplete: "autocomplete", autofocus: "autofocus", badgeLabel: "badgeLabel", debounceDelay: "debounceDelay", description: "description", deselectAllLabel: "deselectAllLabel", disabled: "disabled", emptyResult: "emptyResult", enableSelectAll: "enableSelectAll", error: "error", errorDescription: "errorDescription", filterMode: "filterMode", filterText: "filterText", filterable: "filterable", fluid: "fluid", fuzzyThreshold: "fuzzyThreshold", inputId: "inputId", label: "label", locale: "locale", maxHeight: "maxHeight", maxResults: "maxResults", name: "name", open: "open", options: "options", placeholder: "placeholder", readonly: "readonly", required: "required", selectAllLabel: "selectAllLabel", startFilterAt: "startFilterAt", truncatedResultsText: "truncatedResultsText", value: "value", workerThreshold: "workerThreshold" }, outputs: { valueChanged: "valueChanged", filterTextChanged: "filterTextChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
607
689
|
};
|
|
608
690
|
NvFieldmultiselect = __decorate([
|
|
609
691
|
ProxyCmp({
|
|
610
|
-
inputs: ['autocomplete', 'autofocus', 'badgeLabel', 'debounceDelay', 'description', 'deselectAllLabel', 'disabled', 'emptyResult', 'enableSelectAll', 'error', 'errorDescription', 'filterText', 'filterable', 'fluid', 'inputId', 'label', 'maxHeight', 'name', 'open', 'options', 'placeholder', 'readonly', 'required', 'selectAllLabel', 'value'],
|
|
692
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'badgeLabel', 'debounceDelay', 'description', 'deselectAllLabel', 'disabled', 'emptyResult', 'enableSelectAll', 'error', 'errorDescription', 'filterMode', 'filterText', 'filterable', 'fluid', 'fuzzyThreshold', 'inputId', 'label', 'locale', 'maxHeight', 'maxResults', 'name', 'open', 'options', 'placeholder', 'readonly', 'required', 'selectAllLabel', 'startFilterAt', 'truncatedResultsText', 'value', 'workerThreshold'],
|
|
611
693
|
methods: ['getFilterText', 'resetFilter', 'getSelectedValues', 'selectAll', 'deselectAll', 'toggleSelectAll']
|
|
612
694
|
})
|
|
613
695
|
], NvFieldmultiselect);
|
|
@@ -619,23 +701,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
619
701
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
620
702
|
template: '<ng-content></ng-content>',
|
|
621
703
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
622
|
-
inputs: ['autocomplete', 'autofocus', 'badgeLabel', 'debounceDelay', 'description', 'deselectAllLabel', 'disabled', 'emptyResult', 'enableSelectAll', 'error', 'errorDescription', 'filterText', 'filterable', 'fluid', 'inputId', 'label', 'maxHeight', 'name', 'open', 'options', 'placeholder', 'readonly', 'required', 'selectAllLabel', 'value'],
|
|
704
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'badgeLabel', 'debounceDelay', 'description', 'deselectAllLabel', 'disabled', 'emptyResult', 'enableSelectAll', 'error', 'errorDescription', 'filterMode', 'filterText', 'filterable', 'fluid', 'fuzzyThreshold', 'inputId', 'label', 'locale', 'maxHeight', 'maxResults', 'name', 'open', 'options', 'placeholder', 'readonly', 'required', 'selectAllLabel', 'startFilterAt', 'truncatedResultsText', 'value', 'workerThreshold'],
|
|
705
|
+
outputs: ['valueChanged', 'filterTextChanged'],
|
|
623
706
|
standalone: false
|
|
624
707
|
}]
|
|
625
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
708
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
709
|
+
type: Output
|
|
710
|
+
}], filterTextChanged: [{
|
|
711
|
+
type: Output
|
|
712
|
+
}] } });
|
|
626
713
|
let NvFieldnumber = class NvFieldnumber {
|
|
627
714
|
constructor(c, r, z) {
|
|
628
715
|
this.z = z;
|
|
716
|
+
this.valueChanged = new EventEmitter();
|
|
629
717
|
c.detach();
|
|
630
718
|
this.el = r.nativeElement;
|
|
631
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
632
719
|
}
|
|
633
720
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldnumber, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
634
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldnumber, selector: "nv-fieldnumber", inputs: { autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", max: "max", message: "message", min: "min", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", step: "step", success: "success", validation: "validation", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
721
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldnumber, selector: "nv-fieldnumber", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", max: "max", message: "message", min: "min", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", step: "step", success: "success", validation: "validation", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
635
722
|
};
|
|
636
723
|
NvFieldnumber = __decorate([
|
|
637
724
|
ProxyCmp({
|
|
638
|
-
inputs: ['autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'max', 'message', 'min', 'name', 'placeholder', 'readonly', 'required', 'step', 'success', 'validation', 'value']
|
|
725
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'max', 'message', 'min', 'name', 'placeholder', 'readonly', 'required', 'step', 'success', 'validation', 'value']
|
|
639
726
|
})
|
|
640
727
|
], NvFieldnumber);
|
|
641
728
|
export { NvFieldnumber };
|
|
@@ -646,23 +733,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
646
733
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
647
734
|
template: '<ng-content></ng-content>',
|
|
648
735
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
649
|
-
inputs: ['autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'max', 'message', 'min', 'name', 'placeholder', 'readonly', 'required', 'step', 'success', 'validation', 'value'],
|
|
736
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'max', 'message', 'min', 'name', 'placeholder', 'readonly', 'required', 'step', 'success', 'validation', 'value'],
|
|
737
|
+
outputs: ['valueChanged'],
|
|
650
738
|
standalone: false
|
|
651
739
|
}]
|
|
652
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
740
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
741
|
+
type: Output
|
|
742
|
+
}] } });
|
|
653
743
|
let NvFieldpassword = class NvFieldpassword {
|
|
654
744
|
constructor(c, r, z) {
|
|
655
745
|
this.z = z;
|
|
746
|
+
this.valueChanged = new EventEmitter();
|
|
656
747
|
c.detach();
|
|
657
748
|
this.el = r.nativeElement;
|
|
658
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
659
749
|
}
|
|
660
750
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldpassword, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
661
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldpassword, selector: "nv-fieldpassword", inputs: { autocomplete: "autocomplete", autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", hidePasswordIcon: "hidePasswordIcon", inputId: "inputId", label: "label", maxlength: "maxlength", minlength: "minlength", mode: "mode", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", showPassword: "showPassword", success: "success", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
751
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldpassword, selector: "nv-fieldpassword", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autocomplete: "autocomplete", autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", hidePasswordIcon: "hidePasswordIcon", inputId: "inputId", label: "label", maxlength: "maxlength", minlength: "minlength", mode: "mode", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", showPassword: "showPassword", success: "success", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
662
752
|
};
|
|
663
753
|
NvFieldpassword = __decorate([
|
|
664
754
|
ProxyCmp({
|
|
665
|
-
inputs: ['autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'hidePasswordIcon', 'inputId', 'label', 'maxlength', 'minlength', 'mode', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showPassword', 'success', 'value']
|
|
755
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'hidePasswordIcon', 'inputId', 'label', 'maxlength', 'minlength', 'mode', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showPassword', 'success', 'value']
|
|
666
756
|
})
|
|
667
757
|
], NvFieldpassword);
|
|
668
758
|
export { NvFieldpassword };
|
|
@@ -673,19 +763,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
673
763
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
674
764
|
template: '<ng-content></ng-content>',
|
|
675
765
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
676
|
-
inputs: ['autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'hidePasswordIcon', 'inputId', 'label', 'maxlength', 'minlength', 'mode', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showPassword', 'success', 'value'],
|
|
766
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'hidePasswordIcon', 'inputId', 'label', 'maxlength', 'minlength', 'mode', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showPassword', 'success', 'value'],
|
|
767
|
+
outputs: ['valueChanged'],
|
|
677
768
|
standalone: false
|
|
678
769
|
}]
|
|
679
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
770
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
771
|
+
type: Output
|
|
772
|
+
}] } });
|
|
680
773
|
let NvFieldradio = class NvFieldradio {
|
|
681
774
|
constructor(c, r, z) {
|
|
682
775
|
this.z = z;
|
|
776
|
+
this.checkedChanged = new EventEmitter();
|
|
683
777
|
c.detach();
|
|
684
778
|
this.el = r.nativeElement;
|
|
685
|
-
proxyOutputs(this, this.el, ['checkedChanged']);
|
|
686
779
|
}
|
|
687
780
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldradio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
688
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldradio, selector: "nv-fieldradio", inputs: { autofocus: "autofocus", checked: "checked", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", inputId: "inputId", label: "label", labelBefore: "labelBefore", labelPlacement: "labelPlacement", message: "message", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
781
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldradio, selector: "nv-fieldradio", inputs: { autofocus: "autofocus", checked: "checked", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", inputId: "inputId", label: "label", labelBefore: "labelBefore", labelPlacement: "labelPlacement", message: "message", name: "name", value: "value" }, outputs: { checkedChanged: "checkedChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
689
782
|
};
|
|
690
783
|
NvFieldradio = __decorate([
|
|
691
784
|
ProxyCmp({
|
|
@@ -701,22 +794,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
701
794
|
template: '<ng-content></ng-content>',
|
|
702
795
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
703
796
|
inputs: ['autofocus', 'checked', 'description', 'disabled', 'error', 'errorDescription', 'inputId', 'label', 'labelBefore', 'labelPlacement', 'message', 'name', 'value'],
|
|
797
|
+
outputs: ['checkedChanged'],
|
|
704
798
|
standalone: false
|
|
705
799
|
}]
|
|
706
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
800
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { checkedChanged: [{
|
|
801
|
+
type: Output
|
|
802
|
+
}] } });
|
|
707
803
|
let NvFieldselect = class NvFieldselect {
|
|
708
804
|
constructor(c, r, z) {
|
|
709
805
|
this.z = z;
|
|
806
|
+
this.valueChanged = new EventEmitter();
|
|
710
807
|
c.detach();
|
|
711
808
|
this.el = r.nativeElement;
|
|
712
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
713
809
|
}
|
|
714
810
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldselect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
715
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldselect, selector: "nv-fieldselect", inputs: { autofocus: "autofocus", description: "description", disabled: "disabled", displayValue: "displayValue", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", message: "message", multiple: "multiple", name: "name", options: "options", readonly: "readonly", required: "required", success: "success", validation: "validation", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
811
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldselect, selector: "nv-fieldselect", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", description: "description", disabled: "disabled", displayValue: "displayValue", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", message: "message", multiple: "multiple", name: "name", options: "options", readonly: "readonly", required: "required", success: "success", validation: "validation", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
716
812
|
};
|
|
717
813
|
NvFieldselect = __decorate([
|
|
718
814
|
ProxyCmp({
|
|
719
|
-
inputs: ['autofocus', 'description', 'disabled', 'displayValue', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'message', 'multiple', 'name', 'options', 'readonly', 'required', 'success', 'validation', 'value']
|
|
815
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'description', 'disabled', 'displayValue', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'message', 'multiple', 'name', 'options', 'readonly', 'required', 'success', 'validation', 'value']
|
|
720
816
|
})
|
|
721
817
|
], NvFieldselect);
|
|
722
818
|
export { NvFieldselect };
|
|
@@ -727,19 +823,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
727
823
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
728
824
|
template: '<ng-content></ng-content>',
|
|
729
825
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
730
|
-
inputs: ['autofocus', 'description', 'disabled', 'displayValue', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'message', 'multiple', 'name', 'options', 'readonly', 'required', 'success', 'validation', 'value'],
|
|
826
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'description', 'disabled', 'displayValue', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'message', 'multiple', 'name', 'options', 'readonly', 'required', 'success', 'validation', 'value'],
|
|
827
|
+
outputs: ['valueChanged'],
|
|
731
828
|
standalone: false
|
|
732
829
|
}]
|
|
733
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
830
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
831
|
+
type: Output
|
|
832
|
+
}] } });
|
|
734
833
|
let NvFieldslider = class NvFieldslider {
|
|
735
834
|
constructor(c, r, z) {
|
|
736
835
|
this.z = z;
|
|
836
|
+
this.valueChanged = new EventEmitter();
|
|
737
837
|
c.detach();
|
|
738
838
|
this.el = r.nativeElement;
|
|
739
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
740
839
|
}
|
|
741
840
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldslider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
742
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldslider, selector: "nv-fieldslider", inputs: { description: "description", disabled: "disabled", endInputId: "endInputId", endName: "endName", error: "error", errorDescription: "errorDescription", fluid: "fluid", hasField: "hasField", hideLabel: "hideLabel", label: "label", labelAfterValue: "labelAfterValue", labelBeforeValue: "labelBeforeValue", max: "max", min: "min", name: "name", range: "range", readonly: "readonly", showTicks: "showTicks", snap: "snap", snapTicks: "snapTicks", startInputId: "startInputId", step: "step", success: "success", ticks: "ticks", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
841
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldslider, selector: "nv-fieldslider", inputs: { description: "description", disabled: "disabled", endInputId: "endInputId", endName: "endName", error: "error", errorDescription: "errorDescription", fluid: "fluid", hasField: "hasField", hideLabel: "hideLabel", label: "label", labelAfterValue: "labelAfterValue", labelBeforeValue: "labelBeforeValue", max: "max", min: "min", name: "name", range: "range", readonly: "readonly", showTicks: "showTicks", snap: "snap", snapTicks: "snapTicks", startInputId: "startInputId", step: "step", success: "success", ticks: "ticks", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
743
842
|
};
|
|
744
843
|
NvFieldslider = __decorate([
|
|
745
844
|
ProxyCmp({
|
|
@@ -755,22 +854,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
755
854
|
template: '<ng-content></ng-content>',
|
|
756
855
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
757
856
|
inputs: ['description', 'disabled', 'endInputId', 'endName', 'error', 'errorDescription', 'fluid', 'hasField', 'hideLabel', 'label', 'labelAfterValue', 'labelBeforeValue', 'max', 'min', 'name', 'range', 'readonly', 'showTicks', 'snap', 'snapTicks', 'startInputId', 'step', 'success', 'ticks', 'value'],
|
|
857
|
+
outputs: ['valueChanged'],
|
|
758
858
|
standalone: false
|
|
759
859
|
}]
|
|
760
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
860
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
861
|
+
type: Output
|
|
862
|
+
}] } });
|
|
761
863
|
let NvFieldtext = class NvFieldtext {
|
|
762
864
|
constructor(c, r, z) {
|
|
763
865
|
this.z = z;
|
|
866
|
+
this.valueChanged = new EventEmitter();
|
|
764
867
|
c.detach();
|
|
765
868
|
this.el = r.nativeElement;
|
|
766
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
767
869
|
}
|
|
768
870
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldtext, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
769
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldtext, selector: "nv-fieldtext", inputs: { autocomplete: "autocomplete", autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", maxlength: "maxlength", message: "message", minlength: "minlength", multiple: "multiple", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", success: "success", textInputType: "textInputType", type: "type", validation: "validation", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
871
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldtext, selector: "nv-fieldtext", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autocomplete: "autocomplete", autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", maxlength: "maxlength", message: "message", minlength: "minlength", multiple: "multiple", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", success: "success", textInputType: "textInputType", type: "type", validation: "validation", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
770
872
|
};
|
|
771
873
|
NvFieldtext = __decorate([
|
|
772
874
|
ProxyCmp({
|
|
773
|
-
inputs: ['autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'success', 'textInputType', 'type', 'validation', 'value']
|
|
875
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'success', 'textInputType', 'type', 'validation', 'value']
|
|
774
876
|
})
|
|
775
877
|
], NvFieldtext);
|
|
776
878
|
export { NvFieldtext };
|
|
@@ -781,23 +883,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
781
883
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
782
884
|
template: '<ng-content></ng-content>',
|
|
783
885
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
784
|
-
inputs: ['autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'success', 'textInputType', 'type', 'validation', 'value'],
|
|
886
|
+
inputs: ['ariaRequiredAttr', 'autocomplete', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'success', 'textInputType', 'type', 'validation', 'value'],
|
|
887
|
+
outputs: ['valueChanged'],
|
|
785
888
|
standalone: false
|
|
786
889
|
}]
|
|
787
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
890
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
891
|
+
type: Output
|
|
892
|
+
}] } });
|
|
788
893
|
let NvFieldtextarea = class NvFieldtextarea {
|
|
789
894
|
constructor(c, r, z) {
|
|
790
895
|
this.z = z;
|
|
896
|
+
this.valueChanged = new EventEmitter();
|
|
791
897
|
c.detach();
|
|
792
898
|
this.el = r.nativeElement;
|
|
793
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
794
899
|
}
|
|
795
900
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldtextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
796
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldtextarea, selector: "nv-fieldtextarea", inputs: { autofocus: "autofocus", autosize: "autosize", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", maxlength: "maxlength", message: "message", minlength: "minlength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", resize: "resize", rows: "rows", success: "success", validation: "validation", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
901
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldtextarea, selector: "nv-fieldtextarea", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", autosize: "autosize", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", fluid: "fluid", inputId: "inputId", label: "label", maxlength: "maxlength", message: "message", minlength: "minlength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", resize: "resize", rows: "rows", success: "success", validation: "validation", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
797
902
|
};
|
|
798
903
|
NvFieldtextarea = __decorate([
|
|
799
904
|
ProxyCmp({
|
|
800
|
-
inputs: ['autofocus', 'autosize', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'success', 'validation', 'value']
|
|
905
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'autosize', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'success', 'validation', 'value']
|
|
801
906
|
})
|
|
802
907
|
], NvFieldtextarea);
|
|
803
908
|
export { NvFieldtextarea };
|
|
@@ -808,23 +913,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
808
913
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
809
914
|
template: '<ng-content></ng-content>',
|
|
810
915
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
811
|
-
inputs: ['autofocus', 'autosize', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'success', 'validation', 'value'],
|
|
916
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'autosize', 'description', 'disabled', 'error', 'errorDescription', 'fluid', 'inputId', 'label', 'maxlength', 'message', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'success', 'validation', 'value'],
|
|
917
|
+
outputs: ['valueChanged'],
|
|
812
918
|
standalone: false
|
|
813
919
|
}]
|
|
814
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
920
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
921
|
+
type: Output
|
|
922
|
+
}] } });
|
|
815
923
|
let NvFieldtime = class NvFieldtime {
|
|
816
924
|
constructor(c, r, z) {
|
|
817
925
|
this.z = z;
|
|
926
|
+
this.valueChanged = new EventEmitter();
|
|
818
927
|
c.detach();
|
|
819
928
|
this.el = r.nativeElement;
|
|
820
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
821
929
|
}
|
|
822
930
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvFieldtime, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
823
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldtime, selector: "nv-fieldtime", inputs: { autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", format: "format", inputId: "inputId", label: "label", max: "max", min: "min", name: "name", open: "open", readonly: "readonly", required: "required", step: "step", success: "success", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
931
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvFieldtime, selector: "nv-fieldtime", inputs: { ariaRequiredAttr: "ariaRequiredAttr", autofocus: "autofocus", description: "description", disabled: "disabled", error: "error", errorDescription: "errorDescription", format: "format", inputId: "inputId", label: "label", max: "max", min: "min", name: "name", open: "open", readonly: "readonly", required: "required", step: "step", success: "success", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
824
932
|
};
|
|
825
933
|
NvFieldtime = __decorate([
|
|
826
934
|
ProxyCmp({
|
|
827
|
-
inputs: ['autofocus', 'description', 'disabled', 'error', 'errorDescription', 'format', 'inputId', 'label', 'max', 'min', 'name', 'open', 'readonly', 'required', 'step', 'success', 'value']
|
|
935
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'format', 'inputId', 'label', 'max', 'min', 'name', 'open', 'readonly', 'required', 'step', 'success', 'value']
|
|
828
936
|
})
|
|
829
937
|
], NvFieldtime);
|
|
830
938
|
export { NvFieldtime };
|
|
@@ -835,10 +943,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
835
943
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
836
944
|
template: '<ng-content></ng-content>',
|
|
837
945
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
838
|
-
inputs: ['autofocus', 'description', 'disabled', 'error', 'errorDescription', 'format', 'inputId', 'label', 'max', 'min', 'name', 'open', 'readonly', 'required', 'step', 'success', 'value'],
|
|
946
|
+
inputs: ['ariaRequiredAttr', 'autofocus', 'description', 'disabled', 'error', 'errorDescription', 'format', 'inputId', 'label', 'max', 'min', 'name', 'open', 'readonly', 'required', 'step', 'success', 'value'],
|
|
947
|
+
outputs: ['valueChanged'],
|
|
839
948
|
standalone: false
|
|
840
949
|
}]
|
|
841
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
950
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
951
|
+
type: Output
|
|
952
|
+
}] } });
|
|
842
953
|
let NvIcon = class NvIcon {
|
|
843
954
|
constructor(c, r, z) {
|
|
844
955
|
this.z = z;
|
|
@@ -920,12 +1031,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
920
1031
|
let NvMenu = class NvMenu {
|
|
921
1032
|
constructor(c, r, z) {
|
|
922
1033
|
this.z = z;
|
|
1034
|
+
this.menuitemSelected = new EventEmitter();
|
|
923
1035
|
c.detach();
|
|
924
1036
|
this.el = r.nativeElement;
|
|
925
|
-
proxyOutputs(this, this.el, ['menuitemSelected']);
|
|
926
1037
|
}
|
|
927
1038
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
928
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvMenu, selector: "nv-menu", inputs: { disableCloseOnSelect: "disableCloseOnSelect", items: "items", nested: "nested", open: "open", placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1039
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvMenu, selector: "nv-menu", inputs: { disableCloseOnSelect: "disableCloseOnSelect", items: "items", nested: "nested", open: "open", placement: "placement" }, outputs: { menuitemSelected: "menuitemSelected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
929
1040
|
};
|
|
930
1041
|
NvMenu = __decorate([
|
|
931
1042
|
ProxyCmp({
|
|
@@ -942,18 +1053,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
942
1053
|
template: '<ng-content></ng-content>',
|
|
943
1054
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
944
1055
|
inputs: ['disableCloseOnSelect', 'items', 'nested', 'open', 'placement'],
|
|
1056
|
+
outputs: ['menuitemSelected'],
|
|
945
1057
|
standalone: false
|
|
946
1058
|
}]
|
|
947
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1059
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { menuitemSelected: [{
|
|
1060
|
+
type: Output
|
|
1061
|
+
}] } });
|
|
948
1062
|
let NvMenuitem = class NvMenuitem {
|
|
949
1063
|
constructor(c, r, z) {
|
|
950
1064
|
this.z = z;
|
|
1065
|
+
this.menuitemSelected = new EventEmitter();
|
|
951
1066
|
c.detach();
|
|
952
1067
|
this.el = r.nativeElement;
|
|
953
|
-
proxyOutputs(this, this.el, ['menuitemSelected']);
|
|
954
1068
|
}
|
|
955
1069
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvMenuitem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
956
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvMenuitem, selector: "nv-menuitem", inputs: { disabled: "disabled", hasSubmenu: "hasSubmenu", icon: "icon", label: "label", name: "name", shortcut: "shortcut" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1070
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvMenuitem, selector: "nv-menuitem", inputs: { disabled: "disabled", hasSubmenu: "hasSubmenu", icon: "icon", label: "label", name: "name", shortcut: "shortcut" }, outputs: { menuitemSelected: "menuitemSelected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
957
1071
|
};
|
|
958
1072
|
NvMenuitem = __decorate([
|
|
959
1073
|
ProxyCmp({
|
|
@@ -969,18 +1083,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
969
1083
|
template: '<ng-content></ng-content>',
|
|
970
1084
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
971
1085
|
inputs: ['disabled', 'hasSubmenu', 'icon', 'label', 'name', 'shortcut'],
|
|
1086
|
+
outputs: ['menuitemSelected'],
|
|
972
1087
|
standalone: false
|
|
973
1088
|
}]
|
|
974
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1089
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { menuitemSelected: [{
|
|
1090
|
+
type: Output
|
|
1091
|
+
}] } });
|
|
975
1092
|
let NvNotification = class NvNotification {
|
|
976
1093
|
constructor(c, r, z) {
|
|
977
1094
|
this.z = z;
|
|
1095
|
+
this.hiddenChanged = new EventEmitter();
|
|
978
1096
|
c.detach();
|
|
979
1097
|
this.el = r.nativeElement;
|
|
980
|
-
proxyOutputs(this, this.el, ['hiddenChanged']);
|
|
981
1098
|
}
|
|
982
1099
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
983
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvNotification, selector: "nv-notification", inputs: { dismissible: "dismissible", emphasis: "emphasis", feedback: "feedback", heading: "heading", hidden: "hidden", icon: "icon", initiallyHidden: "initiallyHidden", message: "message", uid: "uid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvNotification, selector: "nv-notification", inputs: { dismissible: "dismissible", emphasis: "emphasis", feedback: "feedback", heading: "heading", hidden: "hidden", icon: "icon", initiallyHidden: "initiallyHidden", message: "message", uid: "uid" }, outputs: { hiddenChanged: "hiddenChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
984
1101
|
};
|
|
985
1102
|
NvNotification = __decorate([
|
|
986
1103
|
ProxyCmp({
|
|
@@ -997,9 +1114,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
997
1114
|
template: '<ng-content></ng-content>',
|
|
998
1115
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
999
1116
|
inputs: ['dismissible', 'emphasis', 'feedback', 'heading', 'hidden', 'icon', 'initiallyHidden', 'message', 'uid'],
|
|
1117
|
+
outputs: ['hiddenChanged'],
|
|
1000
1118
|
standalone: false
|
|
1001
1119
|
}]
|
|
1002
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1120
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { hiddenChanged: [{
|
|
1121
|
+
type: Output
|
|
1122
|
+
}] } });
|
|
1003
1123
|
let NvNotificationBullet = class NvNotificationBullet {
|
|
1004
1124
|
constructor(c, r, z) {
|
|
1005
1125
|
this.z = z;
|
|
@@ -1055,12 +1175,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1055
1175
|
let NvPopover = class NvPopover {
|
|
1056
1176
|
constructor(c, r, z) {
|
|
1057
1177
|
this.z = z;
|
|
1178
|
+
this.openChanged = new EventEmitter();
|
|
1058
1179
|
c.detach();
|
|
1059
1180
|
this.el = r.nativeElement;
|
|
1060
|
-
proxyOutputs(this, this.el, ['openChanged']);
|
|
1061
1181
|
}
|
|
1062
1182
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1063
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvPopover, selector: "nv-popover", inputs: { disableFlip: "disableFlip", enterDelay: "enterDelay", groupName: "groupName", hasArrow: "hasArrow", nested: "nested", offset: "offset", open: "open", placement: "placement", shiftPadding: "shiftPadding", strategy: "strategy", triggerMode: "triggerMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvPopover, selector: "nv-popover", inputs: { disableFlip: "disableFlip", enterDelay: "enterDelay", groupName: "groupName", hasArrow: "hasArrow", nested: "nested", offset: "offset", open: "open", placement: "placement", shiftPadding: "shiftPadding", strategy: "strategy", triggerMode: "triggerMode" }, outputs: { openChanged: "openChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1064
1184
|
};
|
|
1065
1185
|
NvPopover = __decorate([
|
|
1066
1186
|
ProxyCmp({
|
|
@@ -1077,9 +1197,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1077
1197
|
template: '<ng-content></ng-content>',
|
|
1078
1198
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1079
1199
|
inputs: ['disableFlip', 'enterDelay', 'groupName', 'hasArrow', 'nested', 'offset', 'open', 'placement', 'shiftPadding', 'strategy', 'triggerMode'],
|
|
1200
|
+
outputs: ['openChanged'],
|
|
1080
1201
|
standalone: false
|
|
1081
1202
|
}]
|
|
1082
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1203
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { openChanged: [{
|
|
1204
|
+
type: Output
|
|
1205
|
+
}] } });
|
|
1083
1206
|
let NvRow = class NvRow {
|
|
1084
1207
|
constructor(c, r, z) {
|
|
1085
1208
|
this.z = z;
|
|
@@ -1107,12 +1230,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1107
1230
|
let NvSidebar = class NvSidebar {
|
|
1108
1231
|
constructor(c, r, z) {
|
|
1109
1232
|
this.z = z;
|
|
1233
|
+
this.openChanged = new EventEmitter();
|
|
1110
1234
|
c.detach();
|
|
1111
1235
|
this.el = r.nativeElement;
|
|
1112
|
-
proxyOutputs(this, this.el, ['openChanged']);
|
|
1113
1236
|
}
|
|
1114
1237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvSidebar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvSidebar, selector: "nv-sidebar", inputs: { activePath: "activePath", notificationEmphasis: "notificationEmphasis", notificationIntention: "notificationIntention", open: "open", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvSidebar, selector: "nv-sidebar", inputs: { activePath: "activePath", notificationEmphasis: "notificationEmphasis", notificationIntention: "notificationIntention", open: "open", type: "type" }, outputs: { openChanged: "openChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1116
1239
|
};
|
|
1117
1240
|
NvSidebar = __decorate([
|
|
1118
1241
|
ProxyCmp({
|
|
@@ -1128,9 +1251,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1128
1251
|
template: '<ng-content></ng-content>',
|
|
1129
1252
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1130
1253
|
inputs: ['activePath', 'notificationEmphasis', 'notificationIntention', 'open', 'type'],
|
|
1254
|
+
outputs: ['openChanged'],
|
|
1131
1255
|
standalone: false
|
|
1132
1256
|
}]
|
|
1133
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1257
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { openChanged: [{
|
|
1258
|
+
type: Output
|
|
1259
|
+
}] } });
|
|
1134
1260
|
let NvSidebarcontent = class NvSidebarcontent {
|
|
1135
1261
|
constructor(c, r, z) {
|
|
1136
1262
|
this.z = z;
|
|
@@ -1334,12 +1460,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1334
1460
|
let NvSplit = class NvSplit {
|
|
1335
1461
|
constructor(c, r, z) {
|
|
1336
1462
|
this.z = z;
|
|
1463
|
+
this.sizesChanged = new EventEmitter();
|
|
1337
1464
|
c.detach();
|
|
1338
1465
|
this.el = r.nativeElement;
|
|
1339
|
-
proxyOutputs(this, this.el, ['sizesChanged']);
|
|
1340
1466
|
}
|
|
1341
1467
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvSplit, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1342
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvSplit, selector: "nv-split", inputs: { direction: "direction", gutterSize: "gutterSize", minSizes: "minSizes", sizes: "sizes" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1468
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvSplit, selector: "nv-split", inputs: { direction: "direction", gutterSize: "gutterSize", minSizes: "minSizes", sizes: "sizes" }, outputs: { sizesChanged: "sizesChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1343
1469
|
};
|
|
1344
1470
|
NvSplit = __decorate([
|
|
1345
1471
|
ProxyCmp({
|
|
@@ -1356,9 +1482,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1356
1482
|
template: '<ng-content></ng-content>',
|
|
1357
1483
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1358
1484
|
inputs: ['direction', 'gutterSize', 'minSizes', 'sizes'],
|
|
1485
|
+
outputs: ['sizesChanged'],
|
|
1359
1486
|
standalone: false
|
|
1360
1487
|
}]
|
|
1361
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1488
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { sizesChanged: [{
|
|
1489
|
+
type: Output
|
|
1490
|
+
}] } });
|
|
1362
1491
|
let NvStack = class NvStack {
|
|
1363
1492
|
constructor(c, r, z) {
|
|
1364
1493
|
this.z = z;
|
|
@@ -1412,12 +1541,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1412
1541
|
let NvTableheader = class NvTableheader {
|
|
1413
1542
|
constructor(c, r, z) {
|
|
1414
1543
|
this.z = z;
|
|
1544
|
+
this.sortDirectionChanged = new EventEmitter();
|
|
1415
1545
|
c.detach();
|
|
1416
1546
|
this.el = r.nativeElement;
|
|
1417
|
-
proxyOutputs(this, this.el, ['sortDirectionChanged']);
|
|
1418
1547
|
}
|
|
1419
1548
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvTableheader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1420
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTableheader, selector: "nv-tableheader", inputs: { sortDirection: "sortDirection", sortable: "sortable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1549
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTableheader, selector: "nv-tableheader", inputs: { sortDirection: "sortDirection", sortable: "sortable" }, outputs: { sortDirectionChanged: "sortDirectionChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1421
1550
|
};
|
|
1422
1551
|
NvTableheader = __decorate([
|
|
1423
1552
|
ProxyCmp({
|
|
@@ -1433,18 +1562,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1433
1562
|
template: '<ng-content></ng-content>',
|
|
1434
1563
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1435
1564
|
inputs: ['sortDirection', 'sortable'],
|
|
1565
|
+
outputs: ['sortDirectionChanged'],
|
|
1436
1566
|
standalone: false
|
|
1437
1567
|
}]
|
|
1438
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1568
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { sortDirectionChanged: [{
|
|
1569
|
+
type: Output
|
|
1570
|
+
}] } });
|
|
1439
1571
|
let NvToggle = class NvToggle {
|
|
1440
1572
|
constructor(c, r, z) {
|
|
1441
1573
|
this.z = z;
|
|
1574
|
+
this.checkedChanged = new EventEmitter();
|
|
1442
1575
|
c.detach();
|
|
1443
1576
|
this.el = r.nativeElement;
|
|
1444
|
-
proxyOutputs(this, this.el, ['checkedChanged']);
|
|
1445
1577
|
}
|
|
1446
1578
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1447
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvToggle, selector: "nv-toggle", inputs: { checked: "checked", description: "description", disabled: "disabled", hideLabel: "hideLabel", inputId: "inputId", label: "label", labelPlacement: "labelPlacement", name: "name", readonly: "readonly", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1579
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvToggle, selector: "nv-toggle", inputs: { checked: "checked", description: "description", disabled: "disabled", hideLabel: "hideLabel", inputId: "inputId", label: "label", labelPlacement: "labelPlacement", name: "name", readonly: "readonly", value: "value" }, outputs: { checkedChanged: "checkedChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1448
1580
|
};
|
|
1449
1581
|
NvToggle = __decorate([
|
|
1450
1582
|
ProxyCmp({
|
|
@@ -1460,18 +1592,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1460
1592
|
template: '<ng-content></ng-content>',
|
|
1461
1593
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1462
1594
|
inputs: ['checked', 'description', 'disabled', 'hideLabel', 'inputId', 'label', 'labelPlacement', 'name', 'readonly', 'value'],
|
|
1595
|
+
outputs: ['checkedChanged'],
|
|
1463
1596
|
standalone: false
|
|
1464
1597
|
}]
|
|
1465
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1598
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { checkedChanged: [{
|
|
1599
|
+
type: Output
|
|
1600
|
+
}] } });
|
|
1466
1601
|
let NvTogglebutton = class NvTogglebutton {
|
|
1467
1602
|
constructor(c, r, z) {
|
|
1468
1603
|
this.z = z;
|
|
1604
|
+
this.toggled = new EventEmitter();
|
|
1469
1605
|
c.detach();
|
|
1470
1606
|
this.el = r.nativeElement;
|
|
1471
|
-
proxyOutputs(this, this.el, ['toggled']);
|
|
1472
1607
|
}
|
|
1473
1608
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvTogglebutton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1474
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTogglebutton, selector: "nv-togglebutton", inputs: { active: "active", disabled: "disabled", emphasis: "emphasis", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1609
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTogglebutton, selector: "nv-togglebutton", inputs: { active: "active", disabled: "disabled", emphasis: "emphasis", size: "size", value: "value" }, outputs: { toggled: "toggled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1475
1610
|
};
|
|
1476
1611
|
NvTogglebutton = __decorate([
|
|
1477
1612
|
ProxyCmp({
|
|
@@ -1487,18 +1622,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1487
1622
|
template: '<ng-content></ng-content>',
|
|
1488
1623
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1489
1624
|
inputs: ['active', 'disabled', 'emphasis', 'size', 'value'],
|
|
1625
|
+
outputs: ['toggled'],
|
|
1490
1626
|
standalone: false
|
|
1491
1627
|
}]
|
|
1492
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1628
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { toggled: [{
|
|
1629
|
+
type: Output
|
|
1630
|
+
}] } });
|
|
1493
1631
|
let NvTogglebuttongroup = class NvTogglebuttongroup {
|
|
1494
1632
|
constructor(c, r, z) {
|
|
1495
1633
|
this.z = z;
|
|
1634
|
+
this.valueChanged = new EventEmitter();
|
|
1496
1635
|
c.detach();
|
|
1497
1636
|
this.el = r.nativeElement;
|
|
1498
|
-
proxyOutputs(this, this.el, ['valueChanged']);
|
|
1499
1637
|
}
|
|
1500
1638
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvTogglebuttongroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1501
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTogglebuttongroup, selector: "nv-togglebuttongroup", inputs: { emphasis: "emphasis", enforceValue: "enforceValue", exclusive: "exclusive", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1639
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTogglebuttongroup, selector: "nv-togglebuttongroup", inputs: { emphasis: "emphasis", enforceValue: "enforceValue", exclusive: "exclusive", size: "size", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1502
1640
|
};
|
|
1503
1641
|
NvTogglebuttongroup = __decorate([
|
|
1504
1642
|
ProxyCmp({
|
|
@@ -1514,18 +1652,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1514
1652
|
template: '<ng-content></ng-content>',
|
|
1515
1653
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1516
1654
|
inputs: ['emphasis', 'enforceValue', 'exclusive', 'size', 'value'],
|
|
1655
|
+
outputs: ['valueChanged'],
|
|
1517
1656
|
standalone: false
|
|
1518
1657
|
}]
|
|
1519
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1658
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { valueChanged: [{
|
|
1659
|
+
type: Output
|
|
1660
|
+
}] } });
|
|
1520
1661
|
let NvTooltip = class NvTooltip {
|
|
1521
1662
|
constructor(c, r, z) {
|
|
1522
1663
|
this.z = z;
|
|
1664
|
+
this.openChanged = new EventEmitter();
|
|
1523
1665
|
c.detach();
|
|
1524
1666
|
this.el = r.nativeElement;
|
|
1525
|
-
proxyOutputs(this, this.el, ['openChanged']);
|
|
1526
1667
|
}
|
|
1527
1668
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1528
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTooltip, selector: "nv-tooltip", inputs: { enterDelay: "enterDelay", message: "message", placement: "placement", strategy: "strategy" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1669
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NvTooltip, selector: "nv-tooltip", inputs: { enterDelay: "enterDelay", message: "message", placement: "placement", strategy: "strategy" }, outputs: { openChanged: "openChanged" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1529
1670
|
};
|
|
1530
1671
|
NvTooltip = __decorate([
|
|
1531
1672
|
ProxyCmp({
|
|
@@ -1541,7 +1682,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1541
1682
|
template: '<ng-content></ng-content>',
|
|
1542
1683
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1543
1684
|
inputs: ['enterDelay', 'message', 'placement', 'strategy'],
|
|
1685
|
+
outputs: ['openChanged'],
|
|
1544
1686
|
standalone: false
|
|
1545
1687
|
}]
|
|
1546
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]
|
|
1547
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBaUJoRSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOytHQU5VLFdBQVc7bUdBQVgsV0FBVyx3SEFMWiwyQkFBMkI7O0FBSzFCLFdBQVc7SUFadkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdkMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztLQUMzQixDQUFDO0dBU1csV0FBVyxDQU92Qjs7NEZBUFksV0FBVztrQkFSdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0s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ViwyQkFBMkI7O0FBSzFCLFNBQVM7SUFYckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDO0tBQzNELENBQUM7R0FTVyxTQUFTLENBT3JCOzs0RkFQWSxTQUFTO2tCQVJyQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7b0JBQzFELFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0Bub3ZhLWRlc2lnbi1zeXN0ZW0vbm92YS13ZWJjb21wb25lbnRzJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0YScsICdtb2RlJywgJ29wZW5JbmRleGVzJ10sXG4gIG1ldGhvZHM6IFsnb3BlbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRhJywgJ21vZGUnLCAnb3BlbkluZGV4ZXMnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkFjY29yZGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wZW5JbmRleGVzQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuTnZBY2NvcmRpb24ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGl0ZW0ncyBvcGVuIHN0YXRlIGNoYW5nZXMgQGJpbmQgb3BlbkluZGV4ZXNcbiAgICovXG4gIG9wZW5JbmRleGVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcltdPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2l0ZW1UaXRsZScsICdtYXhDb250ZW50SGVpZ2h0JywgJ21vZGUnLCAnb3BlbicsICdzdWJ0aXRsZSddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2l0ZW1UaXRsZScsICdtYXhDb250ZW50SGVpZ2h0JywgJ21vZGUnLCAnb3BlbicsICdzdWJ0aXRsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkFjY29yZGlvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkFjY29yZGlvbkl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52QWNjb3JkaW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTnZBY2NvcmRpb25JdGVtIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gdG9nZ2xlIChoZWFkZXIgY2xpY2sgb3IgcHJvZ3JhbW1hdGljIGNoYW5nZSlcbiAgICovXG4gIGl0ZW1Ub2dnbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc21pc3NpYmxlJywgJ2ZlZWRiYWNrJywgJ2hhc05vQW5pbWF0aW9ucycsICdoZWFkaW5nJywgJ2hpZGRlbicsICdpY29uJywgJ21lc3NhZ2UnLCAncHJldmVudEF1dG9DbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYWxlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc21pc3NpYmxlJywgJ2ZlZWRiYWNrJywgJ2hhc05vQW5pbWF0aW9ucycsICdoZWFkaW5nJywgJ2hpZGRlbicsICdpY29uJywgJ21lc3NhZ2UnLCAncHJldmVudEF1dG9DbG9zZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkFsZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZBbGVydEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2hpZGRlbkNoYW5nZWQnLCAnaGlkZGVuQ2hhbmdlZENvbXBsZXRlJywgJ2Nsb3NlQ2xpY2tlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkFsZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5OdkFsZXJ0IHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlICdoaWRkZW4nIHByb3AgY2hhbmdlcywgcmVmbGVjdGluZyBhIGNoYW5nZSBpbiB2aXNpYmlsaXR5LlxuUGFzc2VzIGhpZGRlbiB2YWx1ZSB0byB0aGUgZGV0YWlsLiBAYmluZCBoaWRkZW5cbiAgICovXG4gIGhpZGRlbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGFuaW1hdGlvbnMgY29tcGxldGUsIGRldGFpbCBpbmNsdWRlcyB0aGUgaGlkZGVuIHZhbHVlLlxuICAgKi9cbiAgaGlkZGVuQ2hhbmdlZENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbG9zZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIGNsb3NlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWx0JywgJ2NvbG9yJywgJ2luaXRpYWxzJywgJ2xhcmdlJywgJ21lZGl1bScsICdzaXplJywgJ3NtYWxsJywgJ3NyYycsICd0ZXh0JywgJ3VybCcsICd4bGFyZ2UnLCAneHNtYWxsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvcicsICdpbml0aWFscycsICdsYXJnZScsICdtZWRpdW0nLCAnc2l6ZScsICdzbWFsbCcsICdzcmMnLCAndGV4dCcsICd1cmwnLCAneGxhcmdlJywgJ3hzbWFsbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QXZhdGFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZBdmF0YXIgZXh0ZW5kcyBDb21wb25lbnRzLk52QXZhdGFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc21pc3NhbCcsICdkaXNtaXNzaWJsZScsICdoaWRkZW4nLCAnaWNvbicsICdpY29uTG9jYXRpb24nLCAnaXNJY29uT25seScsICdsYWJlbCcsICdsZWFkSWNvbicsICdwcmV2ZW50QXV0b0Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzbWlzc2FsJywgJ2Rpc21pc3NpYmxlJywgJ2hpZGRlbicsICdpY29uJywgJ2ljb25Mb2NhdGlvbicsICdpc0ljb25Pbmx5JywgJ2xhYmVsJywgJ2xlYWRJY29uJywgJ3ByZXZlbnRBdXRvQ2xvc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QmFkZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZUNsaWNrZWQnLCAnaGlkZGVuQ2hhbmdlZCcsICdoaWRkZW5DaGFuZ2VkQ29tcGxldGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuTnZCYWRnZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJhZGdlIGlzIGRpc21pc3NlZC5cbiAgICovXG4gIGNsb3NlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlICdoaWRkZW4nIHByb3AgY2hhbmdlcywgcmVmbGVjdGluZyBhIGNoYW5nZSBpbiB2aXNpYmlsaXR5LlxuUGFzc2VzIGhpZGRlbiB2YWx1ZSB0byB0aGUgZGV0YWlsLlxuICAgKi9cbiAgaGlkZGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYW5pbWF0aW9ucyBjb21wbGV0ZSwgZGV0YWlsIGluY2x1ZGVzIHRoZSBoaWRkZW4gdmFsdWUuXG4gICAqL1xuICBoaWRkZW5DaGFuZ2VkQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnLCAndG9vbHRpcCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXJyZW50JywgJ3Rvb2x0aXAnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkJyZWFkY3J1bWJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkJyZWFkY3J1bWIgZXh0ZW5kcyBDb21wb25lbnRzLk52QnJlYWRjcnVtYiB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZCcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QnJlYWRjcnVtYnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkJyZWFkY3J1bWJzIGV4dGVuZHMgQ29tcG9uZW50cy5OdkJyZWFkY3J1bWJzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkYW5nZXInLCAnZGlzYWJsZVRhYmluZGV4JywgJ2Rpc2FibGVkJywgJ2VtcGhhc2lzJywgJ2ZsdWlkJywgJ2Zvcm0nLCAnbG9hZGluZycsICdzaXplJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2RhbmdlcicsICdkaXNhYmxlVGFiaW5kZXgnLCAnZGlzYWJsZWQnLCAnZW1waGFzaXMnLCAnZmx1aWQnLCAnZm9ybScsICdsb2FkaW5nJywgJ3NpemUnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk52QnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2VtcGhhc2lzJywgJ2ZsdWlkJywgJ29yaWVudGF0aW9uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWJ1dHRvbmdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydlbXBoYXNpcycsICdmbHVpZCcsICdvcmllbnRhdGlvbicsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52QnV0dG9uZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkJ1dHRvbmdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZCdXR0b25ncm91cCBleHRlbmRzIENvbXBvbmVudHMuTnZCdXR0b25ncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYW5jZWxMYWJlbCcsICdkYXRlRm9ybWF0JywgJ2Rpc2FibGVkRGF0ZXMnLCAnZmlyc3REYXlPZldlZWsnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbnVtYmVyT2ZDYWxlbmRhcnMnLCAncHJpbWFyeUxhYmVsJywgJ3JhbmdlVmFsdWUnLCAnc2VsZWN0aW9uVHlwZScsICdzaG9ydGN1dHMnLCAnc2hvcnRjdXRzUGxhY2VtZW50JywgJ3Nob3dBY3Rpb25zJywgJ3Nob3dXZWVrTnVtYmVycycsICdzaW5nbGVWYWx1ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2NsZWFyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1jYWxlbmRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FuY2VsTGFiZWwnLCAnZGF0ZUZvcm1hdCcsICdkaXNhYmxlZERhdGVzJywgJ2ZpcnN0RGF5T2ZXZWVrJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ251bWJlck9mQ2FsZW5kYXJzJywgJ3ByaW1hcnlMYWJlbCcsICdyYW5nZVZhbHVlJywgJ3NlbGVjdGlvblR5cGUnLCAnc2hvcnRjdXRzJywgJ3Nob3J0Y3V0c1BsYWNlbWVudCcsICdzaG93QWN0aW9ucycsICdzaG93V2Vla051bWJlcnMnLCAnc2luZ2xlVmFsdWUnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52Q2FsZW5kYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaW5nbGVEYXRlQ2hhbmdlJywgJ3JhbmdlRGF0ZUNoYW5nZScsICd2YWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZDYWxlbmRhciBleHRlbmRzIENvbXBvbmVudHMuTnZDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBzaW5nbGUgZGF0ZSBpcyBzZWxlY3RlZFxuICAgKi9cbiAgc2luZ2xlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgZGF0ZSByYW5nZSBpcyBzZWxlY3RlZFxuICAgKi9cbiAgcmFuZ2VEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SFRNTE52Q2FsZW5kYXJFbGVtZW50WydyYW5nZVZhbHVlJ10+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdW5pZmllZCB2YWx1ZSBjaGFuZ2VzIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtY29sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52Q29sIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZDb2xFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkNvbCBleHRlbmRzIENvbXBvbmVudHMuTnZDb2wge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0dlbmVyYXRlQ29sdW1ucycsICdjb2x1bW5zJywgJ2RhdGEnLCAnZW5hYmxlR2xvYmFsRmlsdGVyJywgJ2VuYWJsZVBhZ2luYXRpb24nLCAnZW5hYmxlUm93U2VsZWN0aW9uJywgJ2VuYWJsZVNvcnRpbmcnLCAnZmFsbGJhY2tWYWx1ZScsICdnbG9iYWxGaWx0ZXJQb3NpdGlvbicsICdub0NvbHVtbnNOb0RhdGFNZXNzYWdlJywgJ25vRGF0YU1lc3NhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVzJywgJ3N0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kYXRhZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0dlbmVyYXRlQ29sdW1ucycsICdjb2x1bW5zJywgJ2RhdGEnLCAnZW5hYmxlR2xvYmFsRmlsdGVyJywgJ2VuYWJsZVBhZ2luYXRpb24nLCAnZW5hYmxlUm93U2VsZWN0aW9uJywgJ2VuYWJsZVNvcnRpbmcnLCAnZmFsbGJhY2tWYWx1ZScsICdnbG9iYWxGaWx0ZXJQb3NpdGlvbicsICdub0NvbHVtbnNOb0RhdGFNZXNzYWdlJywgJ25vRGF0YU1lc3NhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVzJywgJ3N0YXRlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RGF0YWdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkRhdGFncmlkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYWN0aW9uJywgJ3NlbGVjdGVkUm93cycsICdzdGF0ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZEYXRhZ3JpZCBleHRlbmRzIENvbXBvbmVudHMuTnZEYXRhZ3JpZCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIHRyaWdnZXJlZCBvbiBhIGNlbGwuXG4gICAqL1xuICBhY3Rpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IC8qKiAqIEtleSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkICovIGtleUFjdGlvbjogc3RyaW5nOyAvKiogKiBEZXRhaWxzIG9mIHRoZSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkICovIGRldGFpbHM6IGFueTsgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzZWxlY3Rpb24gb2YgdGhlIHJvd3MgYXJlIGNoYW5nZWQuXG4gICAqL1xuICBzZWxlY3RlZFJvd3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnlbXT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzdGF0ZSBpcyBjaGFuZ2VkIEBiaW5kIHN0YXRlXG4gICAqL1xuICBzdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IC8qKiAqIEdsb2JhbCBmaWx0ZXIgc2VhcmNoIHRlcm0gKi8gZ2xvYmFsRmlsdGVyU2VhcmNoVGVybTogc3RyaW5nOyAvKiogKiBQYWdpbmF0aW9uIFN0YXRlICovIHBhZ2luYXRpb25TdGF0ZTogeyAvKiogKiBQYWdlIEluZGV4ICovIHBhZ2VJbmRleDogbnVtYmVyOyAvKiogKiBQYWdlIFNpemUgKi8gcGFnZVNpemU6IG51bWJlcjsgfTsgLyoqICogU29ydGluZyB0aGUgY29sdW1ucyAqLyBzb3J0aW5nU3RhdGU6IHsgLyoqICogRGVzY2VuZGluZyAqLyBkZXNjOiBib29sZWFuOyAvKiogKiBDb2x1bW4gSWQgKi8gaWQ6IHN0cmluZzsgfVtdOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc29yJywgJ2dyb3VwJywgJ2hlYWRlcicsICdyZXBlYXRUZW1wbGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZGF0YWdyaWRjb2x1bW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnYWNjZXNzb3InLCByZXF1aXJlZDogdHJ1ZSB9LCAnZ3JvdXAnLCAnaGVhZGVyJywgJ3JlcGVhdFRlbXBsYXRlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RGF0YWdyaWRjb2x1bW4ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkRhdGFncmlkY29sdW1uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZEYXRhZ3JpZGNvbHVtbiBleHRlbmRzIENvbXBvbmVudHMuTnZEYXRhZ3JpZGNvbHVtbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnY2xpY2tPdXRzaWRlJywgJ2NvbnRyb2xsZWQnLCAnZnVsbCcsICdvcGVuJywgJ3VuZGlzbWlzc2FibGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjbGlja091dHNpZGUnLCAnY29udHJvbGxlZCcsICdmdWxsJywgJ29wZW4nLCAndW5kaXNtaXNzYWJsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkRpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RGlhbG9nRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnb3BlbkNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLk52RGlhbG9nIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NpbmcgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIGNsZWFudXAsIGRhdGEtY2FwdHVyZSwgZXRjLiBAYmluZCBvcGVuXG4gICAqL1xuICBvcGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FuY2VsTGFiZWwnLCAnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2Zvcm0nLCAnbGVhZGluZ0ljb24nLCAncHJpbWFyeUJ1dHRvblR5cGUnLCAncHJpbWFyeUxhYmVsJywgJ3RyYWlsaW5nSWNvbicsICd1bmRpc21pc3NhYmxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kaWFsb2dmb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbmNlbExhYmVsJywgJ2RhbmdlcicsICdkaXNhYmxlZCcsICdmb3JtJywgJ2xlYWRpbmdJY29uJywgJ3ByaW1hcnlCdXR0b25UeXBlJywgJ3ByaW1hcnlMYWJlbCcsICd0cmFpbGluZ0ljb24nLCAndW5kaXNtaXNzYWJsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkRpYWxvZ2Zvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RGlhbG9nZm9vdGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZGlhbG9nQ2FuY2VsZWQnLCAnZGlhbG9nUHJpbWFyeUNsaWNrZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZEaWFsb2dmb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk52RGlhbG9nZm9vdGVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FuY2VsIGJ1dHRvbiBpcyBjbGlja2VkLiBUaGlzIHdpbGwgY2xvc2UgdGhlIGRpYWxvZy5cbiAgICovXG4gIGRpYWxvZ0NhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBjbGlja2VkLiBUaGlzIGFsbG93cyB0byBoYW5kbGUgdGhlXG5wcmltYXJ5IGFjdGlvbiBhbmQgcG90ZW50aWFsIGRhdGEgY2FwdHVyZSBiZWZvcmUgY2xvc2luZyB0aGUgZGlhbG9nLlxuICAgKi9cbiAgZGlhbG9nUHJpbWFyeUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnc3ViaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZGlhbG9naGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ3N1YmhlYWRpbmcnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZEaWFsb2doZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkRpYWxvZ2hlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RGlhbG9naGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5OdkRpYWxvZ2hlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnY2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2hpZGVMYWJlbCcsICdpbmRldGVybWluYXRlJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbGFiZWxCZWZvcmUnLCAnbGFiZWxQbGFjZW1lbnQnLCAnbWVzc2FnZScsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnaGlkZUxhYmVsJywgJ2luZGV0ZXJtaW5hdGUnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsYWJlbEJlZm9yZScsICdsYWJlbFBsYWNlbWVudCcsICdtZXNzYWdlJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvbicsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkY2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkY2hlY2tib3hFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGVja2VkQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkY2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRjaGVja2JveCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGVja2VkIHN0YXRlIGNoYW5nZXMuIEBiaW5kIGNoZWNrZWRcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnZGF0ZUZvcm1hdCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdkaXNhYmxlZERhdGVzJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmlyc3REYXlPZldlZWsnLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ251bWJlck9mQ2FsZW5kYXJzJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3J0Y3V0cycsICdzaG9ydGN1dHNQbGFjZW1lbnQnLCAnc2hvd0FjdGlvbnMnLCAnc2hvd1dlZWtOdW1iZXJzJywgJ3N1Y2Nlc3MnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRkYXRlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnZGF0ZUZvcm1hdCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdkaXNhYmxlZERhdGVzJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmlyc3REYXlPZldlZWsnLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ251bWJlck9mQ2FsZW5kYXJzJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3J0Y3V0cycsICdzaG9ydGN1dHNQbGFjZW1lbnQnLCAnc2hvd0FjdGlvbnMnLCAnc2hvd1dlZWtOdW1iZXJzJywgJ3N1Y2Nlc3MnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGRhdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkZGF0ZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkZGF0ZSBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZGRhdGUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzICh1bmlmaWVkIHZhbHVlIGJpbmRpbmcpLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkYXRlRm9ybWF0JywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkRGF0ZXMnLCAnZW5kSW5wdXRJZCcsICdlbmROYW1lJywgJ2VuZFBsYWNlaG9sZGVyJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmlyc3REYXlPZldlZWsnLCAnZmx1aWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbnVtYmVyT2ZDYWxlbmRhcnMnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2hvcnRjdXRzJywgJ3Nob3J0Y3V0c1BsYWNlbWVudCcsICdzaG93QWN0aW9ucycsICdzaG93V2Vla051bWJlcnMnLCAnc3RhcnRJbnB1dElkJywgJ3N0YXJ0TmFtZScsICdzdGFydFBsYWNlaG9sZGVyJywgJ3N1Y2Nlc3MnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRkYXRlcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkYXRlRm9ybWF0JywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkRGF0ZXMnLCAnZW5kSW5wdXRJZCcsICdlbmROYW1lJywgJ2VuZFBsYWNlaG9sZGVyJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmlyc3REYXlPZldlZWsnLCAnZmx1aWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbnVtYmVyT2ZDYWxlbmRhcnMnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2hvcnRjdXRzJywgJ3Nob3J0Y3V0c1BsYWNlbWVudCcsICdzaG93QWN0aW9ucycsICdzaG93V2Vla051bWJlcnMnLCAnc3RhcnRJbnB1dElkJywgJ3N0YXJ0TmFtZScsICdzdGFydFBsYWNlaG9sZGVyJywgJ3N1Y2Nlc3MnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGRhdGVyYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRkYXRlcmFuZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkYXRlUmFuZ2VDaGFuZ2UnLCAndmFsdWVDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRkYXRlcmFuZ2UgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRkYXRlcmFuZ2Uge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkYXRlIHJhbmdlIGNoYW5nZXMuXG4gICAqL1xuICBkYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MTnZDYWxlbmRhckVsZW1lbnRFdmVudE1hcFsncmFuZ2VEYXRlQ2hhbmdlJ10+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdW5pZmllZCB2YWx1ZSBjaGFuZ2VzIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdjb250cm9sbGVkRmlsdGVyJywgJ2RlYm91bmNlRGVsYXknLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZW1wdHlSZXN1bHQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaWx0ZXJhYmxlJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4SGVpZ2h0JywgJ25hbWUnLCAnb3Blbk9uU2VsZWN0JywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhckZpbHRlcicsICd0b2dnbGVEcm9wZG93biddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRkcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdjb250cm9sbGVkRmlsdGVyJywgJ2RlYm91bmNlRGVsYXknLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZW1wdHlSZXN1bHQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaWx0ZXJhYmxlJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4SGVpZ2h0JywgJ25hbWUnLCAnb3Blbk9uU2VsZWN0JywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGRyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZGRyb3Bkb3duRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2VkJywgJ2ZpbHRlclRleHRDaGFuZ2VkJywgJ29wZW5DaGFuZ2VkJywgJ2Ryb3Bkb3duSXRlbVNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRkcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZGRyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy4gQGJpbmQgdmFsdWVcbiAgICovXG4gIHZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBmaWx0ZXIgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGZpbHRlclRleHRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGRyb3Bkb3duIG9wZW5lZCBvciBjbG9zZWQuXG4gICAqL1xuICBvcGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxOdlBvcG92ZXJFbGVtZW50RXZlbnRNYXBbJ29wZW5DaGFuZ2VkJ10+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBpdGVtIGlzIGNsaWNrZWQuXG4gICAqL1xuICBkcm9wZG93bkl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxOdkZpZWxkZHJvcGRvd25pdGVtRWxlbWVudEV2ZW50TWFwWydkcm9wZG93bkl0ZW1TZWxlY3RlZCddPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RldGFjaGVkJywgJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZGRyb3Bkb3duaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGV0YWNoZWQnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGRyb3Bkb3duaXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRkcm9wZG93bml0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkcm9wZG93bkl0ZW1TZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkZHJvcGRvd25pdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5OdkZpZWxkZHJvcGRvd25pdGVtIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZHJvcGRvd24gaXRlbSBpcyBzZWxlY3RlZC5cbiAgICovXG4gIGRyb3Bkb3duSXRlbVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyAvKiogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbS4gKi8gbGFiZWw/OiBzdHJpbmc7IC8qKiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGVtLiAqLyB2YWx1ZTogc3RyaW5nOyAvKiogSXMgdGhlIGl0ZW0gZGV0YWNoZWQ/ICovIGRldGFjaGVkPzogYm9vbGVhbjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2dyb3VwJywgJ2xhYmVsJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZGRyb3Bkb3duaXRlbWNoZWNrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2dyb3VwJywgJ2xhYmVsJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRkcm9wZG93bml0ZW1jaGVjayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRkcm9wZG93bml0ZW1jaGVja0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2l0ZW1DaGVja2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRkcm9wZG93bml0ZW1jaGVjayBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZGRyb3Bkb3duaXRlbWNoZWNrIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tib3ggaXMgdG9nZ2xlZC5cbkl0IHByb3ZpZGVzIGRldGFpbHMgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBpdGVtQ2hlY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGl0ZW0gKi8gdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgLyoqICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgY3VycmVudGx5IGNoZWNrZWQgKi8gY2hlY2tlZDogYm9vbGVhbjsgLyoqICogVGhlIGdyb3VwIHRoaXMgaXRlbSBiZWxvbmdzIHRvLCBpZiBhbnkgKi8gZ3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdiYWRnZUxhYmVsJywgJ2RlYm91bmNlRGVsYXknLCAnZGVzY3JpcHRpb24nLCAnZGVzZWxlY3RBbGxMYWJlbCcsICdkaXNhYmxlZCcsICdlbXB0eVJlc3VsdCcsICdlbmFibGVTZWxlY3RBbGwnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaWx0ZXJUZXh0JywgJ2ZpbHRlcmFibGUnLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtYXhIZWlnaHQnLCAnbmFtZScsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2VsZWN0QWxsTGFiZWwnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydnZXRGaWx0ZXJUZXh0JywgJ3Jlc2V0RmlsdGVyJywgJ2dldFNlbGVjdGVkVmFsdWVzJywgJ3NlbGVjdEFsbCcsICdkZXNlbGVjdEFsbCcsICd0b2dnbGVTZWxlY3RBbGwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkbXVsdGlzZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnYmFkZ2VMYWJlbCcsICdkZWJvdW5jZURlbGF5JywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2VsZWN0QWxsTGFiZWwnLCAnZGlzYWJsZWQnLCAnZW1wdHlSZXN1bHQnLCAnZW5hYmxlU2VsZWN0QWxsJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmlsdGVyVGV4dCcsICdmaWx0ZXJhYmxlJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4SGVpZ2h0JywgJ25hbWUnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbExhYmVsJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRtdWx0aXNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRtdWx0aXNlbGVjdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlZCcsICdmaWx0ZXJUZXh0Q2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkbXVsdGlzZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRtdWx0aXNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlcyBjaGFuZ2UuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBmaWx0ZXIgdGV4dCBjaGFuZ2VzLlxuICAgKi9cbiAgZmlsdGVyVGV4dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtYXgnLCAnbWVzc2FnZScsICdtaW4nLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3N1Y2Nlc3MnLCAndmFsaWRhdGlvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRudW1iZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4JywgJ21lc3NhZ2UnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3RlcCcsICdzdWNjZXNzJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZG51bWJlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRudW1iZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2YWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZGaWVsZG51bWJlciBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZG51bWJlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXIgfCBudWxsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmbHVpZCcsICdoaWRlUGFzc3dvcmRJY29uJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21pbmxlbmd0aCcsICdtb2RlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaG93UGFzc3dvcmQnLCAnc3VjY2VzcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRwYXNzd29yZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2hpZGVQYXNzd29yZEljb24nLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWlubGVuZ3RoJywgJ21vZGUnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3dQYXNzd29yZCcsICdzdWNjZXNzJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRwYXNzd29yZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRwYXNzd29yZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkcGFzc3dvcmQgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRwYXNzd29yZCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2NoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xhYmVsQmVmb3JlJywgJ2xhYmVsUGxhY2VtZW50JywgJ21lc3NhZ2UnLCAnbmFtZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRyYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2NoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xhYmVsQmVmb3JlJywgJ2xhYmVsUGxhY2VtZW50JywgJ21lc3NhZ2UnLCAnbmFtZScsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkcmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkcmFkaW9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGVja2VkQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkcmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRyYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGVja2VkIHN0YXRlIGNoYW5nZXMuIEBiaW5kIGNoZWNrZWRcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZGlzcGxheVZhbHVlJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtZXNzYWdlJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWNjZXNzJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZGlzcGxheVZhbHVlJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtZXNzYWdlJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWNjZXNzJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRzZWxlY3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2YWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZGaWVsZHNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZHNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZW5kSW5wdXRJZCcsICdlbmROYW1lJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaGFzRmllbGQnLCAnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ2xhYmVsQWZ0ZXJWYWx1ZScsICdsYWJlbEJlZm9yZVZhbHVlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyYW5nZScsICdyZWFkb25seScsICdzaG93VGlja3MnLCAnc25hcCcsICdzbmFwVGlja3MnLCAnc3RhcnRJbnB1dElkJywgJ3N0ZXAnLCAnc3VjY2VzcycsICd0aWNrcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRzbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2VuZElucHV0SWQnLCAnZW5kTmFtZScsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2hhc0ZpZWxkJywgJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdsYWJlbEFmdGVyVmFsdWUnLCAnbGFiZWxCZWZvcmVWYWx1ZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmFuZ2UnLCAncmVhZG9ubHknLCAnc2hvd1RpY2tzJywgJ3NuYXAnLCAnc25hcFRpY2tzJywgJ3N0YXJ0SW5wdXRJZCcsICdzdGVwJywgJ3N1Y2Nlc3MnLCAndGlja3MnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHNsaWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRzbGlkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2YWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZGaWVsZHNsaWRlciBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZHNsaWRlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNsaWRlciB2YWx1ZXMgY2hhbmdlLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21lc3NhZ2UnLCAnbWlubGVuZ3RoJywgJ211bHRpcGxlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWNjZXNzJywgJ3RleHRJbnB1dFR5cGUnLCAndHlwZScsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmbHVpZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtZXNzYWdlJywgJ21pbmxlbmd0aCcsICdtdWx0aXBsZScsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3VjY2VzcycsICd0ZXh0SW5wdXRUeXBlJywgJ3R5cGUnLCAndmFsaWRhdGlvbicsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkdGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGR0ZXh0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGR0ZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5OdkZpZWxkdGV4dCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2F1dG9zaXplJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWVzc2FnZScsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzdWNjZXNzJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdhdXRvc2l6ZScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21lc3NhZ2UnLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncmVzaXplJywgJ3Jvd3MnLCAnc3VjY2VzcycsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGR0ZXh0YXJlYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGR0ZXh0YXJlYUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkdGV4dGFyZWEgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGR0ZXh0YXJlYSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRleHRhcmVhIHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZm9ybWF0JywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3RlcCcsICdzdWNjZXNzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2Zvcm1hdCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAnc3VjY2VzcycsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkdGltZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGR0aW1lRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGR0aW1lIGV4dGVuZHMgQ29tcG9uZW50cy5OdkZpZWxkdGltZSB7XG4gIC8qKlxuICAgKiBFbWl0IGFuIGV2ZW50IHdoZW4gdGhlIHRpbWUgdmFsdWUgY2hhbmdlcy5cblRoZSBldmVudCBkZXRhaWwgY29udGFpbnMgdGhlIG5ldyB0aW1lIHZhbHVlIGluIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHRoZSBmb3JtYXQgcHJvcGVydHkuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ25hbWUnLCAnc2l6ZScsICdzbWFsbCcsICd4bGFyZ2UnLCAneHNtYWxsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdsYXJnZScsICdtZWRpdW0nLCAnbmFtZScsICdzaXplJywgJ3NtYWxsJywgJ3hsYXJnZScsICd4c21hbGwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZJY29uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5Odkljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Rpc2FibGVUYWJpbmRleCcsICdkaXNhYmxlZCcsICdlbXBoYXNpcycsICdsb2FkaW5nJywgJ25hbWUnLCAnc2hhcGUnLCAnc2l6ZScsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1pY29uYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlzYWJsZVRhYmluZGV4JywgJ2Rpc2FibGVkJywgJ2VtcGhhc2lzJywgJ2xvYWRpbmcnLCAnbmFtZScsICdzaGFwZScsICdzaXplJywgJ3R5cGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZJY29uYnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZJY29uYnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZJY29uYnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5Odkljb25idXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtbG9hZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52TG9hZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZMb2FkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkxvYWRlciBleHRlbmRzIENvbXBvbmVudHMuTnZMb2FkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnaXRlbXMnLCAnbmVzdGVkJywgJ29wZW4nLCAncGxhY2VtZW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnaXRlbXMnLCAnbmVzdGVkJywgJ29wZW4nLCAncGxhY2VtZW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52TWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52TWVudUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21lbnVpdGVtU2VsZWN0ZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5Odk1lbnUge1xuICAvKipcbiAgICogRW1pdHRlZCBmcm9tIG52LW1lbnVpdGVtIGVsZW1lbnRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgaWQgYW5kIG5hbWUgd2hlblxuc2VsZWN0ZWQgKHZpYSBjbGljayBvciBrZXlib2FyZCkuIFRoaXMgZXZlbnQgbGlzdGVuZXIgY2FuIGJlIGF0dGFjaGVkIHRvXG5laXRoZXIgdGhlIG52LW1lbnUgb3IgdGhlIG52LW1lbnVpdGVtIGVsZW1lbnQuXG4gICAqL1xuICBtZW51aXRlbVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SFRNTE52TWVudWl0ZW1FbGVtZW50RXZlbnRNYXBbJ21lbnVpdGVtU2VsZWN0ZWQnXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoYXNTdWJtZW51JywgJ2ljb24nLCAnbGFiZWwnLCAnbmFtZScsICdzaG9ydGN1dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtbWVudWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hhc1N1Ym1lbnUnLCAnaWNvbicsICdsYWJlbCcsICduYW1lJywgJ3Nob3J0Y3V0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52TWVudWl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdk1lbnVpdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWVudWl0ZW1TZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdk1lbnVpdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5Odk1lbnVpdGVtIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgaXRlbSBpcyBzZWxlY3RlZCAoY2xpY2sgb3Iga2V5cHJlc3MpLiBXaWxsIGluY2x1ZGUgdGhlXG5pZCBhbmQgbmFtZSBvZiB0aGUgbWVudSBpdGVtLlxuICAgKi9cbiAgbWVudWl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogVGhlIGlkIG9mIHRoZSBtZW51IGl0ZW0gdGhhdCB3YXMgc2VsZWN0ZWQuICovIGlkPzogSFRNTEVsZW1lbnRbJ2lkJ107IC8qKiAqIFRoZSBuYW1lIG9mIHRoZSBtZW51IGl0ZW0gdGhhdCB3YXMgc2VsZWN0ZWQuICovIG5hbWU/OiBzdHJpbmc7IC8qKiAqIEluZGljYXRlcyBpZiB0aGUgbWVudSBpdGVtIGhhcyBhIG5lc3RlZCBzdWJtZW51LiAqLyBoYXNTdWJtZW51PzogYm9vbGVhbjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNtaXNzaWJsZScsICdlbXBoYXNpcycsICdmZWVkYmFjaycsICdoZWFkaW5nJywgJ2hpZGRlbicsICdpY29uJywgJ2luaXRpYWxseUhpZGRlbicsICdtZXNzYWdlJywgJ3VpZCddLFxuICBtZXRob2RzOiBbJ2Rpc21pc3MnLCAnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtbm90aWZpY2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNtaXNzaWJsZScsICdlbXBoYXNpcycsICdmZWVkYmFjaycsICdoZWFkaW5nJywgJ2hpZGRlbicsICdpY29uJywgJ2luaXRpYWxseUhpZGRlbicsICdtZXNzYWdlJywgJ3VpZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdk5vdGlmaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52Tm90aWZpY2F0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaGlkZGVuQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdk5vdGlmaWNhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTnZOb3RpZmljYXRpb24ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgJ2hpZGRlbicgcHJvcCBjaGFuZ2VzLCByZWZsZWN0aW5nIGEgY2hhbmdlIGluIHZpc2liaWxpdHkuXG5QYXNzZXMgaGlkZGVuIHZhbHVlIHRvIHRoZSBkZXRhaWwuIEBiaW5kIGhpZGRlblxuICAgKi9cbiAgaGlkZGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udHJhc3RpbmdCb3JkZXInLCAnY291bnQnLCAnZW1waGFzaXMnLCAnaW50ZW50aW9uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LW5vdGlmaWNhdGlvbi1idWxsZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRyYXN0aW5nQm9yZGVyJywgJ2NvdW50JywgJ2VtcGhhc2lzJywgJ2ludGVudGlvbicsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52Tm90aWZpY2F0aW9uQnVsbGV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZOb3RpZmljYXRpb25CdWxsZXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdk5vdGlmaWNhdGlvbkJ1bGxldCBleHRlbmRzIENvbXBvbmVudHMuTnZOb3RpZmljYXRpb25CdWxsZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LW5vdGlmaWNhdGlvbmNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncG9zaXRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZOb3RpZmljYXRpb25jb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdk5vdGlmaWNhdGlvbmNvbnRhaW5lckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52Tm90aWZpY2F0aW9uY29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5Odk5vdGlmaWNhdGlvbmNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlRmxpcCcsICdlbnRlckRlbGF5JywgJ2dyb3VwTmFtZScsICdoYXNBcnJvdycsICduZXN0ZWQnLCAnb2Zmc2V0JywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NoaWZ0UGFkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyTW9kZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXBvcG92ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVGbGlwJywgJ2VudGVyRGVsYXknLCAnZ3JvdXBOYW1lJywgJ2hhc0Fycm93JywgJ25lc3RlZCcsICdvZmZzZXQnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2hpZnRQYWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3RyaWdnZXJNb2RlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52UG9wb3ZlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52UG9wb3ZlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wZW5DaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52UG9wb3ZlciBleHRlbmRzIENvbXBvbmVudHMuTnZQb3BvdmVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBpcyB0b2dnbGVkLiBAYmluZCBvcGVuXG4gICAqL1xuICBvcGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52Um93RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZSb3cgZXh0ZW5kcyBDb21wb25lbnRzLk52Um93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZVBhdGgnLCAnbm90aWZpY2F0aW9uRW1waGFzaXMnLCAnbm90aWZpY2F0aW9uSW50ZW50aW9uJywgJ29wZW4nLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlUGF0aCcsICdub3RpZmljYXRpb25FbXBoYXNpcycsICdub3RpZmljYXRpb25JbnRlbnRpb24nLCAnb3BlbicsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U2lkZWJhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wZW5DaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhciBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgb3BlbiBzdGF0ZSBjaGFuZ2VzLiBAYmluZCBvcGVuXG4gICAqL1xuICBvcGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXNpZGViYXJjb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcmNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlNpZGViYXJjb250ZW50RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTaWRlYmFyY29udGVudCBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFyY29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcmRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZTaWRlYmFyZGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U2lkZWJhcmRpdmlkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlNpZGViYXJkaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5OdlNpZGViYXJkaXZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFyZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcmZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U2lkZWJhcmZvb3RlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhcmZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFyZm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFyZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcmdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTaWRlYmFyZ3JvdXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlNpZGViYXJncm91cCBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFyZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXNpZGViYXJoZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZTaWRlYmFyaGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTaWRlYmFyaGVhZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTaWRlYmFyaGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5OdlNpZGViYXJoZWFkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2VkTG9nbycsICdsYWJlbCcsICdsb2dvJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFybG9nbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2VkTG9nbycsICdsYWJlbCcsICdsb2dvJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcmxvZ28ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlNpZGViYXJsb2dvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTaWRlYmFybG9nbyBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFybG9nbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY29sbGFwc2libGUnLCAnaWNvbicsICdub3RpZmljYXRpb25Db3VudCcsICdvcGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFybmF2aXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NvbGxhcHNpYmxlJywgJ2ljb24nLCAnbm90aWZpY2F0aW9uQ291bnQnLCAnb3BlbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJuYXZpdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTaWRlYmFybmF2aXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhcm5hdml0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhcm5hdml0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFybmF2c3ViaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcm5hdnN1Yml0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlNpZGViYXJuYXZzdWJpdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTaWRlYmFybmF2c3ViaXRlbSBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFybmF2c3ViaXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXJlY3Rpb24nLCAnZ3V0dGVyU2l6ZScsICdtaW5TaXplcycsICdzaXplcyddLFxuICBtZXRob2RzOiBbJ3NldFNpemVzJywgJ2dldFNpemVzJywgJ2NvbGxhcHNlJywgJ2Rlc3Ryb3knXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXNwbGl0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXJlY3Rpb24nLCAnZ3V0dGVyU2l6ZScsICdtaW5TaXplcycsICdzaXplcyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNwbGl0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTcGxpdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpemVzQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlNwbGl0IGV4dGVuZHMgQ29tcG9uZW50cy5OdlNwbGl0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBwYW5lIHNpemVzIGFyZSB1cGRhdGVkIChlaXRoZXIgdmlhIGRyYWdnaW5nIG9yIHByb2dyYW1tYXRpY2FsbHkpLiBAYmluZCBzaXplc1xuICAgKi9cbiAgc2l6ZXNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlsbCcsICdmbGV4JywgJ2Z1bGwnLCAnZ3V0dGVyJywgJ3ZlcnRpY2FsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zdGFjaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlsbCcsICdmbGV4JywgJ2Z1bGwnLCAnZ3V0dGVyJywgJ3ZlcnRpY2FsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U3RhY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlN0YWNrRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTdGFjayBleHRlbmRzIENvbXBvbmVudHMuTnZTdGFjayB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52VGFibGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5OdlRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NvcnREaXJlY3Rpb24nLCAnc29ydGFibGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXRhYmxlaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzb3J0RGlyZWN0aW9uJywgJ3NvcnRhYmxlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52VGFibGVoZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlRhYmxlaGVhZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc29ydERpcmVjdGlvbkNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZUYWJsZWhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuTnZUYWJsZWhlYWRlciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNvcnQgZGlyZWN0aW9uIGNoYW5nZXMuIFBheWxvYWQgaXMgdGhlIG5ldyBzb3J0XG5kaXJlY3Rpb24uXG4gICAqL1xuICBzb3J0RGlyZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hpZGVMYWJlbCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xhYmVsUGxhY2VtZW50JywgJ25hbWUnLCAncmVhZG9ubHknLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoaWRlTGFiZWwnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsYWJlbFBsYWNlbWVudCcsICduYW1lJywgJ3JlYWRvbmx5JywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52VG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZUb2dnbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGVja2VkQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuTnZUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLiBAYmluZCBjaGVja2VkXG4gICAqL1xuICBjaGVja2VkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Rpc2FibGVkJywgJ2VtcGhhc2lzJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXRvZ2dsZWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Rpc2FibGVkJywgJ2VtcGhhc2lzJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZUb2dnbGVidXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlRvZ2dsZWJ1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RvZ2dsZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZUb2dnbGVidXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk52VG9nZ2xlYnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIHRvZ2dsZWQuXG4gICAqL1xuICB0b2dnbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyAvKiogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnV0dG9uLiAqLyB2YWx1ZTogc3RyaW5nOyAvKiogSWYgdGhlIGJ1dHRvbiBpcyBhY3RpdmUgd2hlbiBjbGlja2VkLiAqLyBhY3RpdmU6IGJvb2xlYW47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZW1waGFzaXMnLCAnZW5mb3JjZVZhbHVlJywgJ2V4Y2x1c2l2ZScsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi10b2dnbGVidXR0b25ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZW1waGFzaXMnLCAnZW5mb3JjZVZhbHVlJywgJ2V4Y2x1c2l2ZScsICdzaXplJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52VG9nZ2xlYnV0dG9uZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlRvZ2dsZWJ1dHRvbmdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52VG9nZ2xlYnV0dG9uZ3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLk52VG9nZ2xlYnV0dG9uZ3JvdXAge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCB0b2dnbGUgYnV0dG9ucyBjaGFuZ2UuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydlbnRlckRlbGF5JywgJ21lc3NhZ2UnLCAncGxhY2VtZW50JywgJ3N0cmF0ZWd5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydlbnRlckRlbGF5JywgJ21lc3NhZ2UnLCAncGxhY2VtZW50JywgJ3N0cmF0ZWd5J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52VG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52VG9vbHRpcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wZW5DaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuTnZUb29sdGlwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9vbHRpcCBpcyBvcGVuZWQgb3IgY2xvc2VkLiBCdWJibGVzIHVwIGZyb20gdGhlIHBvcG92ZXJcbmVsZW1lbnQuXG4gICAqL1xuICBvcGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG4iXX0=
|
|
1688
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { openChanged: [{
|
|
1689
|
+
type: Output
|
|
1690
|
+
}] } });
|
|
1691
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBa0JsRCxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBR3RCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFEMUQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFdkUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTlUsV0FBVzttR0FBWCxXQUFXLCtLQU5aLDJCQUEyQjs7QUFNMUIsV0FBVztJQWJ2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0tBQzNCLENBQUM7R0FVVyxXQUFXLENBT3ZCOzs0RkFQWSxXQUFXO2tCQVR2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztvQkFDdkMsT0FB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V0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7b0JBQ2xFLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCO29JQUdXLFlBQVk7c0JBQXJCLE1BQU07O0FBNEJGLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUdwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBRDFELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFL0QsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTlUsU0FBUzttR0FBVCxTQUFTLG1NQU5WLDJCQUEyQjs7QUFNMUIsU0FBUztJQVpyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7S0FDM0QsQ0FBQztHQVVXLFNBQVMsQ0FPckI7OzRGQVBZLFNBQVM7a0JBVHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQztvQkFDMUQsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7b0lBR1csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0Bub3ZhLWRlc2lnbi1zeXN0ZW0vbm92YS13ZWJjb21wb25lbnRzJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0YScsICdtb2RlJywgJ29wZW5JbmRleGVzJ10sXG4gIG1ldGhvZHM6IFsnb3BlbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRhJywgJ21vZGUnLCAnb3BlbkluZGV4ZXMnXSxcbiAgb3V0cHV0czogWydvcGVuSW5kZXhlc0NoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkFjY29yZGlvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBvcGVuSW5kZXhlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcltdPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk52QWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBpdGVtJ3Mgb3BlbiBzdGF0ZSBjaGFuZ2VzIEBiaW5kIG9wZW5JbmRleGVzXG4gICAqL1xuICBvcGVuSW5kZXhlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXJbXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpdGVtVGl0bGUnLCAnbWF4Q29udGVudEhlaWdodCcsICdtb2RlJywgJ29wZW4nLCAnc3VidGl0bGUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpdGVtVGl0bGUnLCAnbWF4Q29udGVudEhlaWdodCcsICdtb2RlJywgJ29wZW4nLCAnc3VidGl0bGUnXSxcbiAgb3V0cHV0czogWydpdGVtVG9nZ2xlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52QWNjb3JkaW9uSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QWNjb3JkaW9uSXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBpdGVtVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZBY2NvcmRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5OdkFjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCBvbiB0b2dnbGUgKGhlYWRlciBjbGljayBvciBwcm9ncmFtbWF0aWMgY2hhbmdlKVxuICAgKi9cbiAgaXRlbVRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzbWlzc2libGUnLCAnZmVlZGJhY2snLCAnaGFzTm9BbmltYXRpb25zJywgJ2hlYWRpbmcnLCAnaGlkZGVuJywgJ2ljb24nLCAnbWVzc2FnZScsICdwcmV2ZW50QXV0b0Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1hbGVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzbWlzc2libGUnLCAnZmVlZGJhY2snLCAnaGFzTm9BbmltYXRpb25zJywgJ2hlYWRpbmcnLCAnaGlkZGVuJywgJ2ljb24nLCAnbWVzc2FnZScsICdwcmV2ZW50QXV0b0Nsb3NlJ10sXG4gIG91dHB1dHM6IFsnaGlkZGVuQ2hhbmdlZCcsICdoaWRkZW5DaGFuZ2VkQ29tcGxldGUnLCAnY2xvc2VDbGlja2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52QWxlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkFsZXJ0RWxlbWVudDtcbiAgQE91dHB1dCgpIGhpZGRlbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PigpO1xuICBAT3V0cHV0KCkgaGlkZGVuQ2hhbmdlZENvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj4oKTtcbiAgQE91dHB1dCgpIGNsb3NlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52QWxlcnQgZXh0ZW5kcyBDb21wb25lbnRzLk52QWxlcnQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgJ2hpZGRlbicgcHJvcCBjaGFuZ2VzLCByZWZsZWN0aW5nIGEgY2hhbmdlIGluIHZpc2liaWxpdHkuXG5QYXNzZXMgaGlkZGVuIHZhbHVlIHRvIHRoZSBkZXRhaWwuIEBiaW5kIGhpZGRlblxuICAgKi9cbiAgaGlkZGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYW5pbWF0aW9ucyBjb21wbGV0ZSwgZGV0YWlsIGluY2x1ZGVzIHRoZSBoaWRkZW4gdmFsdWUuXG4gICAqL1xuICBoaWRkZW5DaGFuZ2VkQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbHQnLCAnY29sb3InLCAnaW5pdGlhbHMnLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ3NpemUnLCAnc21hbGwnLCAnc3JjJywgJ3RleHQnLCAndXJsJywgJ3hsYXJnZScsICd4c21hbGwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWx0JywgJ2NvbG9yJywgJ2luaXRpYWxzJywgJ2xhcmdlJywgJ21lZGl1bScsICdzaXplJywgJ3NtYWxsJywgJ3NyYycsICd0ZXh0JywgJ3VybCcsICd4bGFyZ2UnLCAneHNtYWxsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52QXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZBdmF0YXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuTnZBdmF0YXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzbWlzc2FsJywgJ2Rpc21pc3NpYmxlJywgJ2hpZGRlbicsICdpY29uJywgJ2ljb25Mb2NhdGlvbicsICdpc0ljb25Pbmx5JywgJ2xhYmVsJywgJ2xlYWRJY29uJywgJ3ByZXZlbnRBdXRvQ2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdkaXNtaXNzYWwnLCAnZGlzbWlzc2libGUnLCAnaGlkZGVuJywgJ2ljb24nLCAnaWNvbkxvY2F0aW9uJywgJ2lzSWNvbk9ubHknLCAnbGFiZWwnLCAnbGVhZEljb24nLCAncHJldmVudEF1dG9DbG9zZSddLFxuICBvdXRwdXRzOiBbJ2Nsb3NlQ2xpY2tlZCcsICdoaWRkZW5DaGFuZ2VkJywgJ2hpZGRlbkNoYW5nZWRDb21wbGV0ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZCYWRnZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBjbG9zZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBAT3V0cHV0KCkgaGlkZGVuQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+KCk7XG4gIEBPdXRwdXQoKSBoaWRkZW5DaGFuZ2VkQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5OdkJhZGdlIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYmFkZ2UgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgJ2hpZGRlbicgcHJvcCBjaGFuZ2VzLCByZWZsZWN0aW5nIGEgY2hhbmdlIGluIHZpc2liaWxpdHkuXG5QYXNzZXMgaGlkZGVuIHZhbHVlIHRvIHRoZSBkZXRhaWwuXG4gICAqL1xuICBoaWRkZW5DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBhbmltYXRpb25zIGNvbXBsZXRlLCBkZXRhaWwgaW5jbHVkZXMgdGhlIGhpZGRlbiB2YWx1ZS5cbiAgICovXG4gIGhpZGRlbkNoYW5nZWRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VycmVudCcsICd0b29sdGlwJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnLCAndG9vbHRpcCcsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52QnJlYWRjcnVtYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QnJlYWRjcnVtYkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52QnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuTnZCcmVhZGNydW1iIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1icmVhZGNydW1icycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkJyZWFkY3J1bWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZCcmVhZGNydW1ic0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52QnJlYWRjcnVtYnMgZXh0ZW5kcyBDb21wb25lbnRzLk52QnJlYWRjcnVtYnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2RhbmdlcicsICdkaXNhYmxlVGFiaW5kZXgnLCAnZGlzYWJsZWQnLCAnZW1waGFzaXMnLCAnZmx1aWQnLCAnZm9ybScsICdsb2FkaW5nJywgJ3NpemUnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGFuZ2VyJywgJ2Rpc2FibGVUYWJpbmRleCcsICdkaXNhYmxlZCcsICdlbXBoYXNpcycsICdmbHVpZCcsICdmb3JtJywgJ2xvYWRpbmcnLCAnc2l6ZScsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuTnZCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZW1waGFzaXMnLCAnZmx1aWQnLCAnb3JpZW50YXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtYnV0dG9uZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2VtcGhhc2lzJywgJ2ZsdWlkJywgJ29yaWVudGF0aW9uJywgJ3NpemUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZCdXR0b25ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52QnV0dG9uZ3JvdXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkJ1dHRvbmdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5OdkJ1dHRvbmdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbmNlbExhYmVsJywgJ2RhdGVGb3JtYXQnLCAnZGlzYWJsZWREYXRlcycsICdmaXJzdERheU9mV2VlaycsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICdudW1iZXJPZkNhbGVuZGFycycsICdwcmltYXJ5TGFiZWwnLCAncmFuZ2VWYWx1ZScsICdzZWxlY3Rpb25UeXBlJywgJ3Nob3J0Y3V0cycsICdzaG9ydGN1dHNQbGFjZW1lbnQnLCAnc2hvd0FjdGlvbnMnLCAnc2hvd1dlZWtOdW1iZXJzJywgJ3NpbmdsZVZhbHVlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnY2xlYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWNhbGVuZGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYW5jZWxMYWJlbCcsICdkYXRlRm9ybWF0JywgJ2Rpc2FibGVkRGF0ZXMnLCAnZmlyc3REYXlPZldlZWsnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbnVtYmVyT2ZDYWxlbmRhcnMnLCAncHJpbWFyeUxhYmVsJywgJ3JhbmdlVmFsdWUnLCAnc2VsZWN0aW9uVHlwZScsICdzaG9ydGN1dHMnLCAnc2hvcnRjdXRzUGxhY2VtZW50JywgJ3Nob3dBY3Rpb25zJywgJ3Nob3dXZWVrTnVtYmVycycsICdzaW5nbGVWYWx1ZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3NpbmdsZURhdGVDaGFuZ2UnLCAncmFuZ2VEYXRlQ2hhbmdlJywgJ3ZhbHVlQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkNhbGVuZGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZDYWxlbmRhckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzaW5nbGVEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgcmFuZ2VEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MTnZDYWxlbmRhckVsZW1lbnRbJ3JhbmdlVmFsdWUnXT4+KCk7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52Q2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLk52Q2FsZW5kYXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgc2luZ2xlIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICovXG4gIHNpbmdsZURhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIGRhdGUgcmFuZ2UgaXMgc2VsZWN0ZWRcbiAgICovXG4gIHJhbmdlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxOdkNhbGVuZGFyRWxlbWVudFsncmFuZ2VWYWx1ZSddPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVuaWZpZWQgdmFsdWUgY2hhbmdlcyBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWNvbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkNvbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52Q29sRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZDb2wgZXh0ZW5kcyBDb21wb25lbnRzLk52Q29sIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9HZW5lcmF0ZUNvbHVtbnMnLCAnY29sdW1ucycsICdkYXRhJywgJ2VuYWJsZUdsb2JhbEZpbHRlcicsICdlbmFibGVQYWdpbmF0aW9uJywgJ2VuYWJsZVJvd1NlbGVjdGlvbicsICdlbmFibGVTb3J0aW5nJywgJ2ZhbGxiYWNrVmFsdWUnLCAnZ2xvYmFsRmlsdGVyUG9zaXRpb24nLCAnbm9Db2x1bW5zTm9EYXRhTWVzc2FnZScsICdub0RhdGFNZXNzYWdlJywgJ3BhZ2VTaXplJywgJ3BhZ2VTaXplcycsICdzdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZGF0YWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9HZW5lcmF0ZUNvbHVtbnMnLCAnY29sdW1ucycsICdkYXRhJywgJ2VuYWJsZUdsb2JhbEZpbHRlcicsICdlbmFibGVQYWdpbmF0aW9uJywgJ2VuYWJsZVJvd1NlbGVjdGlvbicsICdlbmFibGVTb3J0aW5nJywgJ2ZhbGxiYWNrVmFsdWUnLCAnZ2xvYmFsRmlsdGVyUG9zaXRpb24nLCAnbm9Db2x1bW5zTm9EYXRhTWVzc2FnZScsICdub0RhdGFNZXNzYWdlJywgJ3BhZ2VTaXplJywgJ3BhZ2VTaXplcycsICdzdGF0ZSddLFxuICBvdXRwdXRzOiBbJ2FjdGlvbicsICdzZWxlY3RlZFJvd3MnLCAnc3RhdGVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RGF0YWdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkRhdGFncmlkRWxlbWVudDtcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyAvKiogKiBLZXkgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCAqLyBrZXlBY3Rpb246IHN0cmluZzsgLyoqICogRGV0YWlscyBvZiB0aGUgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCAqLyBkZXRhaWxzOiBhbnk7IH0+PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnlbXT4+KCk7XG4gIEBPdXRwdXQoKSBzdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogR2xvYmFsIGZpbHRlciBzZWFyY2ggdGVybSAqLyBnbG9iYWxGaWx0ZXJTZWFyY2hUZXJtOiBzdHJpbmc7IC8qKiAqIFBhZ2luYXRpb24gU3RhdGUgKi8gcGFnaW5hdGlvblN0YXRlOiB7IC8qKiAqIFBhZ2UgSW5kZXggKi8gcGFnZUluZGV4OiBudW1iZXI7IC8qKiAqIFBhZ2UgU2l6ZSAqLyBwYWdlU2l6ZTogbnVtYmVyOyB9OyAvKiogKiBTb3J0aW5nIHRoZSBjb2x1bW5zICovIHNvcnRpbmdTdGF0ZTogeyAvKiogKiBEZXNjZW5kaW5nICovIGRlc2M6IGJvb2xlYW47IC8qKiAqIENvbHVtbiBJZCAqLyBpZDogc3RyaW5nOyB9W107IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkRhdGFncmlkIGV4dGVuZHMgQ29tcG9uZW50cy5OdkRhdGFncmlkIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBhY3Rpb24gaXMgdHJpZ2dlcmVkIG9uIGEgY2VsbC5cbiAgICovXG4gIGFjdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogS2V5IGFjdGlvbiB0byBiZSBwZXJmb3JtZWQgKi8ga2V5QWN0aW9uOiBzdHJpbmc7IC8qKiAqIERldGFpbHMgb2YgdGhlIGFjdGlvbiB0byBiZSBwZXJmb3JtZWQgKi8gZGV0YWlsczogYW55OyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGlvbiBvZiB0aGUgcm93cyBhcmUgY2hhbmdlZC5cbiAgICovXG4gIHNlbGVjdGVkUm93czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueVtdPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHN0YXRlIGlzIGNoYW5nZWQgQGJpbmQgc3RhdGVcbiAgICovXG4gIHN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogR2xvYmFsIGZpbHRlciBzZWFyY2ggdGVybSAqLyBnbG9iYWxGaWx0ZXJTZWFyY2hUZXJtOiBzdHJpbmc7IC8qKiAqIFBhZ2luYXRpb24gU3RhdGUgKi8gcGFnaW5hdGlvblN0YXRlOiB7IC8qKiAqIFBhZ2UgSW5kZXggKi8gcGFnZUluZGV4OiBudW1iZXI7IC8qKiAqIFBhZ2UgU2l6ZSAqLyBwYWdlU2l6ZTogbnVtYmVyOyB9OyAvKiogKiBTb3J0aW5nIHRoZSBjb2x1bW5zICovIHNvcnRpbmdTdGF0ZTogeyAvKiogKiBEZXNjZW5kaW5nICovIGRlc2M6IGJvb2xlYW47IC8qKiAqIENvbHVtbiBJZCAqLyBpZDogc3RyaW5nOyB9W107IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzb3InLCAnZ3JvdXAnLCAnaGVhZGVyJywgJ3JlcGVhdFRlbXBsYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kYXRhZ3JpZGNvbHVtbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFt7IG5hbWU6ICdhY2Nlc3NvcicsIHJlcXVpcmVkOiB0cnVlIH0sICdncm91cCcsICdoZWFkZXInLCAncmVwZWF0VGVtcGxhdGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZEYXRhZ3JpZGNvbHVtbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RGF0YWdyaWRjb2x1bW5FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkRhdGFncmlkY29sdW1uIGV4dGVuZHMgQ29tcG9uZW50cy5OdkRhdGFncmlkY29sdW1uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjbGlja091dHNpZGUnLCAnY29udHJvbGxlZCcsICdmdWxsJywgJ29wZW4nLCAndW5kaXNtaXNzYWJsZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2NsaWNrT3V0c2lkZScsICdjb250cm9sbGVkJywgJ2Z1bGwnLCAnb3BlbicsICd1bmRpc21pc3NhYmxlJ10sXG4gIG91dHB1dHM6IFsnb3BlbkNoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkRpYWxvZ0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5OdkRpYWxvZyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zaW5nIGluIG9yZGVyIHRvIGFsbG93IGZvciBjbGVhbnVwLCBkYXRhLWNhcHR1cmUsIGV0Yy4gQGJpbmQgb3BlblxuICAgKi9cbiAgb3BlbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbmNlbExhYmVsJywgJ2RhbmdlcicsICdkaXNhYmxlZCcsICdmb3JtJywgJ2xlYWRpbmdJY29uJywgJ3ByaW1hcnlCdXR0b25UeXBlJywgJ3ByaW1hcnlMYWJlbCcsICd0cmFpbGluZ0ljb24nLCAndW5kaXNtaXNzYWJsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZGlhbG9nZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYW5jZWxMYWJlbCcsICdkYW5nZXInLCAnZGlzYWJsZWQnLCAnZm9ybScsICdsZWFkaW5nSWNvbicsICdwcmltYXJ5QnV0dG9uVHlwZScsICdwcmltYXJ5TGFiZWwnLCAndHJhaWxpbmdJY29uJywgJ3VuZGlzbWlzc2FibGUnXSxcbiAgb3V0cHV0czogWydkaWFsb2dDYW5jZWxlZCcsICdkaWFsb2dQcmltYXJ5Q2xpY2tlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkRpYWxvZ2Zvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RGlhbG9nZm9vdGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIGRpYWxvZ0NhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgQE91dHB1dCgpIGRpYWxvZ1ByaW1hcnlDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZEaWFsb2dmb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk52RGlhbG9nZm9vdGVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FuY2VsIGJ1dHRvbiBpcyBjbGlja2VkLiBUaGlzIHdpbGwgY2xvc2UgdGhlIGRpYWxvZy5cbiAgICovXG4gIGRpYWxvZ0NhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBjbGlja2VkLiBUaGlzIGFsbG93cyB0byBoYW5kbGUgdGhlXG5wcmltYXJ5IGFjdGlvbiBhbmQgcG90ZW50aWFsIGRhdGEgY2FwdHVyZSBiZWZvcmUgY2xvc2luZyB0aGUgZGlhbG9nLlxuICAgKi9cbiAgZGlhbG9nUHJpbWFyeUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnc3ViaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZGlhbG9naGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ3N1YmhlYWRpbmcnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZEaWFsb2doZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkRpYWxvZ2hlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RGlhbG9naGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5OdkRpYWxvZ2hlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcmlhUmVxdWlyZWRBdHRyJywgJ2F1dG9mb2N1cycsICdjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnaGlkZUxhYmVsJywgJ2luZGV0ZXJtaW5hdGUnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsYWJlbEJlZm9yZScsICdsYWJlbFBsYWNlbWVudCcsICdtZXNzYWdlJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRjaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvZm9jdXMnLCAnY2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2hpZGVMYWJlbCcsICdpbmRldGVybWluYXRlJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbGFiZWxCZWZvcmUnLCAnbGFiZWxQbGFjZW1lbnQnLCAnbWVzc2FnZScsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydjaGVja2VkQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkY2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkY2hlY2tib3hFbGVtZW50O1xuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkY2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRjaGVja2JveCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGVja2VkIHN0YXRlIGNoYW5nZXMuIEBiaW5kIGNoZWNrZWRcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcmlhUmVxdWlyZWRBdHRyJywgJ2F1dG9mb2N1cycsICdkYXRlRm9ybWF0JywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkRGF0ZXMnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaXJzdERheU9mV2VlaycsICdmbHVpZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbnVtYmVyT2ZDYWxlbmRhcnMnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2hvcnRjdXRzJywgJ3Nob3J0Y3V0c1BsYWNlbWVudCcsICdzaG93QWN0aW9ucycsICdzaG93V2Vla051bWJlcnMnLCAnc3VjY2VzcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2NsZWFyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZGRhdGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2RhdGVGb3JtYXQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWREYXRlcycsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZpcnN0RGF5T2ZXZWVrJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdudW1iZXJPZkNhbGVuZGFycycsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaG9ydGN1dHMnLCAnc2hvcnRjdXRzUGxhY2VtZW50JywgJ3Nob3dBY3Rpb25zJywgJ3Nob3dXZWVrTnVtYmVycycsICdzdWNjZXNzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRkYXRlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZGRhdGVFbGVtZW50O1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkZGF0ZSBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZGRhdGUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzICh1bmlmaWVkIHZhbHVlIGJpbmRpbmcpLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2RhdGVGb3JtYXQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWREYXRlcycsICdlbmRJbnB1dElkJywgJ2VuZE5hbWUnLCAnZW5kUGxhY2Vob2xkZXInLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaXJzdERheU9mV2VlaycsICdmbHVpZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICdudW1iZXJPZkNhbGVuZGFycycsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaG9ydGN1dHMnLCAnc2hvcnRjdXRzUGxhY2VtZW50JywgJ3Nob3dBY3Rpb25zJywgJ3Nob3dXZWVrTnVtYmVycycsICdzdGFydElucHV0SWQnLCAnc3RhcnROYW1lJywgJ3N0YXJ0UGxhY2Vob2xkZXInLCAnc3VjY2VzcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2NsZWFyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZGRhdGVyYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvZm9jdXMnLCAnZGF0ZUZvcm1hdCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdkaXNhYmxlZERhdGVzJywgJ2VuZElucHV0SWQnLCAnZW5kTmFtZScsICdlbmRQbGFjZWhvbGRlcicsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZpcnN0RGF5T2ZXZWVrJywgJ2ZsdWlkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ251bWJlck9mQ2FsZW5kYXJzJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3J0Y3V0cycsICdzaG9ydGN1dHNQbGFjZW1lbnQnLCAnc2hvd0FjdGlvbnMnLCAnc2hvd1dlZWtOdW1iZXJzJywgJ3N0YXJ0SW5wdXRJZCcsICdzdGFydE5hbWUnLCAnc3RhcnRQbGFjZWhvbGRlcicsICdzdWNjZXNzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnZGF0ZVJhbmdlQ2hhbmdlJywgJ3ZhbHVlQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkZGF0ZXJhbmdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZGRhdGVyYW5nZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBkYXRlUmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxOdkNhbGVuZGFyRWxlbWVudEV2ZW50TWFwWydyYW5nZURhdGVDaGFuZ2UnXT4+KCk7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRkYXRlcmFuZ2UgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRkYXRlcmFuZ2Uge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkYXRlIHJhbmdlIGNoYW5nZXMuXG4gICAqL1xuICBkYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MTnZDYWxlbmRhckVsZW1lbnRFdmVudE1hcFsncmFuZ2VEYXRlQ2hhbmdlJ10+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdW5pZmllZCB2YWx1ZSBjaGFuZ2VzIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvY29tcGxldGUnLCAnYXV0b2ZvY3VzJywgJ2NvbnRyb2xsZWRGaWx0ZXInLCAnZGVib3VuY2VEZWxheScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlbXB0eVJlc3VsdCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyYWJsZScsICdmbHVpZCcsICdmdXp6eVRocmVzaG9sZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXhIZWlnaHQnLCAnbWF4UmVzdWx0cycsICduYW1lJywgJ29wZW5PblNlbGVjdCcsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N0YXJ0RmlsdGVyQXQnLCAndHJ1bmNhdGVkUmVzdWx0c1RleHQnLCAndmFsdWUnLCAnd29ya2VyVGhyZXNob2xkJ10sXG4gIG1ldGhvZHM6IFsnY2xlYXJGaWx0ZXInLCAndG9nZ2xlRHJvcGRvd24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdjb250cm9sbGVkRmlsdGVyJywgJ2RlYm91bmNlRGVsYXknLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZW1wdHlSZXN1bHQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmFibGUnLCAnZmx1aWQnLCAnZnV6enlUaHJlc2hvbGQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4SGVpZ2h0JywgJ21heFJlc3VsdHMnLCAnbmFtZScsICdvcGVuT25TZWxlY3QnLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdGFydEZpbHRlckF0JywgJ3RydW5jYXRlZFJlc3VsdHNUZXh0JywgJ3ZhbHVlJywgJ3dvcmtlclRocmVzaG9sZCddLFxuICBvdXRwdXRzOiBbJ3ZhbHVlQ2hhbmdlZCcsICdmaWx0ZXJUZXh0Q2hhbmdlZCcsICdvcGVuQ2hhbmdlZCcsICdkcm9wZG93bkl0ZW1TZWxlY3RlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkZHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkZHJvcGRvd25FbGVtZW50O1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgZmlsdGVyVGV4dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+KCk7XG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SFRNTE52UG9wb3ZlckVsZW1lbnRFdmVudE1hcFsnb3BlbkNoYW5nZWQnXT4+KCk7XG4gIEBPdXRwdXQoKSBkcm9wZG93bkl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SFRNTE52RmllbGRkcm9wZG93bml0ZW1FbGVtZW50RXZlbnRNYXBbJ2Ryb3Bkb3duSXRlbVNlbGVjdGVkJ10+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkZHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRkcm9wZG93biB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZmlsdGVyIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBmaWx0ZXJUZXh0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBkcm9wZG93biBvcGVuZWQgb3IgY2xvc2VkLlxuICAgKi9cbiAgb3BlbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MTnZQb3BvdmVyRWxlbWVudEV2ZW50TWFwWydvcGVuQ2hhbmdlZCddPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYW4gaXRlbSBpcyBjbGlja2VkLiBQcm9wYWdhdGlvbiBwcmV2ZW50ZWQgaW4gbGlzdGVuZXIuXG4gICAqL1xuICBkcm9wZG93bkl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxOdkZpZWxkZHJvcGRvd25pdGVtRWxlbWVudEV2ZW50TWFwWydkcm9wZG93bkl0ZW1TZWxlY3RlZCddPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RldGFjaGVkJywgJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZGRyb3Bkb3duaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGV0YWNoZWQnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydkcm9wZG93bkl0ZW1TZWxlY3RlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkZHJvcGRvd25pdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZGRyb3Bkb3duaXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBkcm9wZG93bkl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyAvKiogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbS4gKi8gbGFiZWw/OiBzdHJpbmc7IC8qKiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGVtLiAqLyB2YWx1ZTogc3RyaW5nOyAvKiogSXMgdGhlIGl0ZW0gZGV0YWNoZWQ/ICovIGRldGFjaGVkPzogYm9vbGVhbjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRkcm9wZG93bml0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRkcm9wZG93bml0ZW0ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBkcm9wZG93biBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgZHJvcGRvd25JdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IC8qKiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGVtLiAqLyBsYWJlbD86IHN0cmluZzsgLyoqIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGl0ZW0uICovIHZhbHVlOiBzdHJpbmc7IC8qKiBJcyB0aGUgaXRlbSBkZXRhY2hlZD8gKi8gZGV0YWNoZWQ/OiBib29sZWFuOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZ3JvdXAnLCAnbGFiZWwnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkZHJvcGRvd25pdGVtY2hlY2snLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZ3JvdXAnLCAnbGFiZWwnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydpdGVtQ2hlY2tlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkZHJvcGRvd25pdGVtY2hlY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkZHJvcGRvd25pdGVtY2hlY2tFbGVtZW50O1xuICBAT3V0cHV0KCkgaXRlbUNoZWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGl0ZW0gKi8gdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgLyoqICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgY3VycmVudGx5IGNoZWNrZWQgKi8gY2hlY2tlZDogYm9vbGVhbjsgLyoqICogVGhlIGdyb3VwIHRoaXMgaXRlbSBiZWxvbmdzIHRvLCBpZiBhbnkgKi8gZ3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkZHJvcGRvd25pdGVtY2hlY2sgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRkcm9wZG93bml0ZW1jaGVjayB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrYm94IGlzIHRvZ2dsZWQuXG5JdCBwcm92aWRlcyBkZXRhaWxzIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBpdGVtLlxuICAgKi9cbiAgaXRlbUNoZWNrZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IC8qKiAqIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpdGVtICovIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7IC8qKiAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGN1cnJlbnRseSBjaGVja2VkICovIGNoZWNrZWQ6IGJvb2xlYW47IC8qKiAqIFRoZSBncm91cCB0aGlzIGl0ZW0gYmVsb25ncyB0bywgaWYgYW55ICovIGdyb3VwPzogc3RyaW5nIHwgdW5kZWZpbmVkOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdiYWRnZUxhYmVsJywgJ2RlYm91bmNlRGVsYXknLCAnZGVzY3JpcHRpb24nLCAnZGVzZWxlY3RBbGxMYWJlbCcsICdkaXNhYmxlZCcsICdlbXB0eVJlc3VsdCcsICdlbmFibGVTZWxlY3RBbGwnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlclRleHQnLCAnZmlsdGVyYWJsZScsICdmbHVpZCcsICdmdXp6eVRocmVzaG9sZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXhIZWlnaHQnLCAnbWF4UmVzdWx0cycsICduYW1lJywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzZWxlY3RBbGxMYWJlbCcsICdzdGFydEZpbHRlckF0JywgJ3RydW5jYXRlZFJlc3VsdHNUZXh0JywgJ3ZhbHVlJywgJ3dvcmtlclRocmVzaG9sZCddLFxuICBtZXRob2RzOiBbJ2dldEZpbHRlclRleHQnLCAncmVzZXRGaWx0ZXInLCAnZ2V0U2VsZWN0ZWRWYWx1ZXMnLCAnc2VsZWN0QWxsJywgJ2Rlc2VsZWN0QWxsJywgJ3RvZ2dsZVNlbGVjdEFsbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRtdWx0aXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvY29tcGxldGUnLCAnYXV0b2ZvY3VzJywgJ2JhZGdlTGFiZWwnLCAnZGVib3VuY2VEZWxheScsICdkZXNjcmlwdGlvbicsICdkZXNlbGVjdEFsbExhYmVsJywgJ2Rpc2FibGVkJywgJ2VtcHR5UmVzdWx0JywgJ2VuYWJsZVNlbGVjdEFsbCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyVGV4dCcsICdmaWx0ZXJhYmxlJywgJ2ZsdWlkJywgJ2Z1enp5VGhyZXNob2xkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heEhlaWdodCcsICdtYXhSZXN1bHRzJywgJ25hbWUnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbExhYmVsJywgJ3N0YXJ0RmlsdGVyQXQnLCAndHJ1bmNhdGVkUmVzdWx0c1RleHQnLCAndmFsdWUnLCAnd29ya2VyVGhyZXNob2xkJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJywgJ2ZpbHRlclRleHRDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRtdWx0aXNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRtdWx0aXNlbGVjdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj4oKTtcbiAgQE91dHB1dCgpIGZpbHRlclRleHRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkbXVsdGlzZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRtdWx0aXNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlcyBjaGFuZ2UuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBmaWx0ZXIgdGV4dCBjaGFuZ2VzLlxuICAgKi9cbiAgZmlsdGVyVGV4dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmbHVpZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ21heCcsICdtZXNzYWdlJywgJ21pbicsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAnc3VjY2VzcycsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZG51bWJlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmbHVpZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ21heCcsICdtZXNzYWdlJywgJ21pbicsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAnc3VjY2VzcycsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRudW1iZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkbnVtYmVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyIHwgbnVsbD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRudW1iZXIgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRudW1iZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyIHwgbnVsbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcmlhUmVxdWlyZWRBdHRyJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmbHVpZCcsICdoaWRlUGFzc3dvcmRJY29uJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21pbmxlbmd0aCcsICdtb2RlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaG93UGFzc3dvcmQnLCAnc3VjY2VzcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRwYXNzd29yZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYVJlcXVpcmVkQXR0cicsICdhdXRvY29tcGxldGUnLCAnYXV0b2ZvY3VzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaGlkZVBhc3N3b3JkSWNvbicsICdpbnB1dElkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtaW5sZW5ndGgnLCAnbW9kZScsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2hvd1Bhc3N3b3JkJywgJ3N1Y2Nlc3MnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHBhc3N3b3JkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZHBhc3N3b3JkRWxlbWVudDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZGaWVsZHBhc3N3b3JkIGV4dGVuZHMgQ29tcG9uZW50cy5OdkZpZWxkcGFzc3dvcmQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsYWJlbEJlZm9yZScsICdsYWJlbFBsYWNlbWVudCcsICdtZXNzYWdlJywgJ25hbWUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsYWJlbEJlZm9yZScsICdsYWJlbFBsYWNlbWVudCcsICdtZXNzYWdlJywgJ25hbWUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydjaGVja2VkQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkcmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkcmFkaW9FbGVtZW50O1xuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkcmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRyYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGVja2VkIHN0YXRlIGNoYW5nZXMuIEBiaW5kIGNoZWNrZWRcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcmlhUmVxdWlyZWRBdHRyJywgJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdkaXNwbGF5VmFsdWUnLCAnZXJyb3InLCAnZXJyb3JEZXNjcmlwdGlvbicsICdmbHVpZCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ21lc3NhZ2UnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N1Y2Nlc3MnLCAndmFsaWRhdGlvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRzZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Rpc3BsYXlWYWx1ZScsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWVzc2FnZScsICdtdWx0aXBsZScsICduYW1lJywgJ29wdGlvbnMnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3VjY2VzcycsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRzZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdkZpZWxkc2VsZWN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZGaWVsZHNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZHNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuIEBiaW5kIHZhbHVlXG4gICAqL1xuICB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZW5kSW5wdXRJZCcsICdlbmROYW1lJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaGFzRmllbGQnLCAnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ2xhYmVsQWZ0ZXJWYWx1ZScsICdsYWJlbEJlZm9yZVZhbHVlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyYW5nZScsICdyZWFkb25seScsICdzaG93VGlja3MnLCAnc25hcCcsICdzbmFwVGlja3MnLCAnc3RhcnRJbnB1dElkJywgJ3N0ZXAnLCAnc3VjY2VzcycsICd0aWNrcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRzbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2VuZElucHV0SWQnLCAnZW5kTmFtZScsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2hhc0ZpZWxkJywgJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdsYWJlbEFmdGVyVmFsdWUnLCAnbGFiZWxCZWZvcmVWYWx1ZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmFuZ2UnLCAncmVhZG9ubHknLCAnc2hvd1RpY2tzJywgJ3NuYXAnLCAnc25hcFRpY2tzJywgJ3N0YXJ0SW5wdXRJZCcsICdzdGVwJywgJ3N1Y2Nlc3MnLCAndGlja3MnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHNsaWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52RmllbGRzbGlkZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXJbXT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52RmllbGRzbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLk52RmllbGRzbGlkZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzbGlkZXIgdmFsdWVzIGNoYW5nZS4gQGJpbmQgdmFsdWVcbiAgICovXG4gIHZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcltdPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21lc3NhZ2UnLCAnbWlubGVuZ3RoJywgJ211bHRpcGxlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWNjZXNzJywgJ3RleHRJbnB1dFR5cGUnLCAndHlwZScsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvckRlc2NyaXB0aW9uJywgJ2ZsdWlkJywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21lc3NhZ2UnLCAnbWlubGVuZ3RoJywgJ211bHRpcGxlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWNjZXNzJywgJ3RleHRJbnB1dFR5cGUnLCAndHlwZScsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGR0ZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZHRleHRFbGVtZW50O1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkdGV4dCBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZHRleHQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2F1dG9zaXplJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWVzc2FnZScsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzdWNjZXNzJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2F1dG9zaXplJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZmx1aWQnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWVzc2FnZScsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzdWNjZXNzJywgJ3ZhbGlkYXRpb24nLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHRleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZHRleHRhcmVhRWxlbWVudDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZGaWVsZHRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5OdkZpZWxkdGV4dGFyZWEge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0ZXh0YXJlYSB2YWx1ZSBjaGFuZ2VzLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZm9ybWF0JywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3RlcCcsICdzdWNjZXNzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFSZXF1aXJlZEF0dHInLCAnYXV0b2ZvY3VzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yRGVzY3JpcHRpb24nLCAnZm9ybWF0JywgJ2lucHV0SWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3RlcCcsICdzdWNjZXNzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGR0aW1lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZGaWVsZHRpbWVFbGVtZW50O1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdkZpZWxkdGltZSBleHRlbmRzIENvbXBvbmVudHMuTnZGaWVsZHRpbWUge1xuICAvKipcbiAgICogRW1pdCBhbiBldmVudCB3aGVuIHRoZSB0aW1lIHZhbHVlIGNoYW5nZXMuXG5UaGUgZXZlbnQgZGV0YWlsIGNvbnRhaW5zIHRoZSBuZXcgdGltZSB2YWx1ZSBpbiB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSB0aGUgZm9ybWF0IHByb3BlcnR5LiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2xhcmdlJywgJ21lZGl1bScsICduYW1lJywgJ3NpemUnLCAnc21hbGwnLCAneGxhcmdlJywgJ3hzbWFsbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ25hbWUnLCAnc2l6ZScsICdzbWFsbCcsICd4bGFyZ2UnLCAneHNtYWxsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52SWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52SWNvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52SWNvbiBleHRlbmRzIENvbXBvbmVudHMuTnZJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkaXNhYmxlVGFiaW5kZXgnLCAnZGlzYWJsZWQnLCAnZW1waGFzaXMnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtaWNvbmJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Rpc2FibGVUYWJpbmRleCcsICdkaXNhYmxlZCcsICdlbXBoYXNpcycsICdsb2FkaW5nJywgJ25hbWUnLCAnc2hhcGUnLCAnc2l6ZScsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52SWNvbmJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52SWNvbmJ1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52SWNvbmJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuTnZJY29uYnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnc2l6ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdkxvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52TG9hZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLk52TG9hZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVDbG9zZU9uU2VsZWN0JywgJ2l0ZW1zJywgJ25lc3RlZCcsICdvcGVuJywgJ3BsYWNlbWVudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVDbG9zZU9uU2VsZWN0JywgJ2l0ZW1zJywgJ25lc3RlZCcsICdvcGVuJywgJ3BsYWNlbWVudCddLFxuICBvdXRwdXRzOiBbJ21lbnVpdGVtU2VsZWN0ZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZNZW51RWxlbWVudDtcbiAgQE91dHB1dCgpIG1lbnVpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxOdk1lbnVpdGVtRWxlbWVudEV2ZW50TWFwWydtZW51aXRlbVNlbGVjdGVkJ10+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdk1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk52TWVudSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIGZyb20gbnYtbWVudWl0ZW0gZWxlbWVudHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBpZCBhbmQgbmFtZSB3aGVuXG5zZWxlY3RlZCAodmlhIGNsaWNrIG9yIGtleWJvYXJkKS4gVGhpcyBldmVudCBsaXN0ZW5lciBjYW4gYmUgYXR0YWNoZWQgdG9cbmVpdGhlciB0aGUgbnYtbWVudSBvciB0aGUgbnYtbWVudWl0ZW0gZWxlbWVudC5cbiAgICovXG4gIG1lbnVpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MTnZNZW51aXRlbUVsZW1lbnRFdmVudE1hcFsnbWVudWl0ZW1TZWxlY3RlZCddPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hhc1N1Ym1lbnUnLCAnaWNvbicsICdsYWJlbCcsICduYW1lJywgJ3Nob3J0Y3V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1tZW51aXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGFzU3VibWVudScsICdpY29uJywgJ2xhYmVsJywgJ25hbWUnLCAnc2hvcnRjdXQnXSxcbiAgb3V0cHV0czogWydtZW51aXRlbVNlbGVjdGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52TWVudWl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdk1lbnVpdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIG1lbnVpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgLyoqICogVGhlIGlkIG9mIHRoZSBtZW51IGl0ZW0gdGhhdCB3YXMgc2VsZWN0ZWQuICovIGlkPzogSFRNTEVsZW1lbnRbJ2lkJ107IC8qKiAqIFRoZSBuYW1lIG9mIHRoZSBtZW51IGl0ZW0gdGhhdCB3YXMgc2VsZWN0ZWQuICovIG5hbWU/OiBzdHJpbmc7IC8qKiAqIEluZGljYXRlcyBpZiB0aGUgbWVudSBpdGVtIGhhcyBhIG5lc3RlZCBzdWJtZW51LiAqLyBoYXNTdWJtZW51PzogYm9vbGVhbjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52TWVudWl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk52TWVudWl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgbWVudSBpdGVtIGlzIHNlbGVjdGVkIChjbGljayBvciBrZXlwcmVzcykuIFdpbGwgaW5jbHVkZSB0aGVcbmlkIGFuZCBuYW1lIG9mIHRoZSBtZW51IGl0ZW0uXG4gICAqL1xuICBtZW51aXRlbVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyAvKiogKiBUaGUgaWQgb2YgdGhlIG1lbnUgaXRlbSB0aGF0IHdhcyBzZWxlY3RlZC4gKi8gaWQ/OiBIVE1MRWxlbWVudFsnaWQnXTsgLyoqICogVGhlIG5hbWUgb2YgdGhlIG1lbnUgaXRlbSB0aGF0IHdhcyBzZWxlY3RlZC4gKi8gbmFtZT86IHN0cmluZzsgLyoqICogSW5kaWNhdGVzIGlmIHRoZSBtZW51IGl0ZW0gaGFzIGEgbmVzdGVkIHN1Ym1lbnUuICovIGhhc1N1Ym1lbnU/OiBib29sZWFuOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc21pc3NpYmxlJywgJ2VtcGhhc2lzJywgJ2ZlZWRiYWNrJywgJ2hlYWRpbmcnLCAnaGlkZGVuJywgJ2ljb24nLCAnaW5pdGlhbGx5SGlkZGVuJywgJ21lc3NhZ2UnLCAndWlkJ10sXG4gIG1ldGhvZHM6IFsnZGlzbWlzcycsICdzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1ub3RpZmljYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc21pc3NpYmxlJywgJ2VtcGhhc2lzJywgJ2ZlZWRiYWNrJywgJ2hlYWRpbmcnLCAnaGlkZGVuJywgJ2ljb24nLCAnaW5pdGlhbGx5SGlkZGVuJywgJ21lc3NhZ2UnLCAndWlkJ10sXG4gIG91dHB1dHM6IFsnaGlkZGVuQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdk5vdGlmaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52Tm90aWZpY2F0aW9uRWxlbWVudDtcbiAgQE91dHB1dCgpIGhpZGRlbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdk5vdGlmaWNhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTnZOb3RpZmljYXRpb24ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgJ2hpZGRlbicgcHJvcCBjaGFuZ2VzLCByZWZsZWN0aW5nIGEgY2hhbmdlIGluIHZpc2liaWxpdHkuXG5QYXNzZXMgaGlkZGVuIHZhbHVlIHRvIHRoZSBkZXRhaWwuIEBiaW5kIGhpZGRlblxuICAgKi9cbiAgaGlkZGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udHJhc3RpbmdCb3JkZXInLCAnY291bnQnLCAnZW1waGFzaXMnLCAnaW50ZW50aW9uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LW5vdGlmaWNhdGlvbi1idWxsZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRyYXN0aW5nQm9yZGVyJywgJ2NvdW50JywgJ2VtcGhhc2lzJywgJ2ludGVudGlvbicsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52Tm90aWZpY2F0aW9uQnVsbGV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZOb3RpZmljYXRpb25CdWxsZXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdk5vdGlmaWNhdGlvbkJ1bGxldCBleHRlbmRzIENvbXBvbmVudHMuTnZOb3RpZmljYXRpb25CdWxsZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LW5vdGlmaWNhdGlvbmNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncG9zaXRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZOb3RpZmljYXRpb25jb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdk5vdGlmaWNhdGlvbmNvbnRhaW5lckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52Tm90aWZpY2F0aW9uY29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5Odk5vdGlmaWNhdGlvbmNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlRmxpcCcsICdlbnRlckRlbGF5JywgJ2dyb3VwTmFtZScsICdoYXNBcnJvdycsICduZXN0ZWQnLCAnb2Zmc2V0JywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NoaWZ0UGFkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyTW9kZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXBvcG92ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVGbGlwJywgJ2VudGVyRGVsYXknLCAnZ3JvdXBOYW1lJywgJ2hhc0Fycm93JywgJ25lc3RlZCcsICdvZmZzZXQnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2hpZnRQYWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3RyaWdnZXJNb2RlJ10sXG4gIG91dHB1dHM6IFsnb3BlbkNoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZQb3BvdmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZQb3BvdmVyRWxlbWVudDtcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5OdlBvcG92ZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIGlzIHRvZ2dsZWQuIEBiaW5kIG9wZW5cbiAgICovXG4gIG9wZW5DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52Um93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZSb3dFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlJvdyBleHRlbmRzIENvbXBvbmVudHMuTnZSb3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlUGF0aCcsICdub3RpZmljYXRpb25FbXBoYXNpcycsICdub3RpZmljYXRpb25JbnRlbnRpb24nLCAnb3BlbicsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmVQYXRoJywgJ25vdGlmaWNhdGlvbkVtcGhhc2lzJywgJ25vdGlmaWNhdGlvbkludGVudGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgb3V0cHV0czogWydvcGVuQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlNpZGViYXJFbGVtZW50O1xuICBAT3V0cHV0KCkgb3BlbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlNpZGViYXIgZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIG9wZW4gc3RhdGUgY2hhbmdlcy4gQGJpbmQgb3BlblxuICAgKi9cbiAgb3BlbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFyY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJjb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTaWRlYmFyY29udGVudEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhcmNvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhcmNvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXNpZGViYXJkaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcmRpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlNpZGViYXJkaXZpZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTaWRlYmFyZGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFyZGl2aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcmZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJmb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlNpZGViYXJmb290ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlNpZGViYXJmb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhcmZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcmdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U2lkZWJhcmdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZTaWRlYmFyZ3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhcmdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zaWRlYmFyaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52U2lkZWJhcmhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U2lkZWJhcmhlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhcmhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuTnZTaWRlYmFyaGVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZExvZ28nLCAnbGFiZWwnLCAnbG9nbyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcmxvZ28nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZExvZ28nLCAnbGFiZWwnLCAnbG9nbyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJsb2dvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTaWRlYmFybG9nb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhcmxvZ28gZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhcmxvZ28ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NvbGxhcHNpYmxlJywgJ2ljb24nLCAnbm90aWZpY2F0aW9uQ291bnQnLCAnb3BlbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcm5hdml0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjb2xsYXBzaWJsZScsICdpY29uJywgJ25vdGlmaWNhdGlvbkNvdW50JywgJ29wZW4nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZTaWRlYmFybmF2aXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U2lkZWJhcm5hdml0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlNpZGViYXJuYXZpdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5OdlNpZGViYXJuYXZpdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcm5hdnN1Yml0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJuYXZzdWJpdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZTaWRlYmFybmF2c3ViaXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U2lkZWJhcm5hdnN1Yml0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk52U2lkZWJhcm5hdnN1Yml0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlyZWN0aW9uJywgJ2d1dHRlclNpemUnLCAnbWluU2l6ZXMnLCAnc2l6ZXMnXSxcbiAgbWV0aG9kczogWydzZXRTaXplcycsICdnZXRTaXplcycsICdjb2xsYXBzZScsICdkZXN0cm95J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1zcGxpdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlyZWN0aW9uJywgJ2d1dHRlclNpemUnLCAnbWluU2l6ZXMnLCAnc2l6ZXMnXSxcbiAgb3V0cHV0czogWydzaXplc0NoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZTcGxpdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U3BsaXRFbGVtZW50O1xuICBAT3V0cHV0KCkgc2l6ZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXJbXT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52U3BsaXQgZXh0ZW5kcyBDb21wb25lbnRzLk52U3BsaXQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHBhbmUgc2l6ZXMgYXJlIHVwZGF0ZWQgKGVpdGhlciB2aWEgZHJhZ2dpbmcgb3IgcHJvZ3JhbW1hdGljYWxseSkuIEBiaW5kIHNpemVzXG4gICAqL1xuICBzaXplc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXJbXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaWxsJywgJ2ZsZXgnLCAnZnVsbCcsICdndXR0ZXInLCAndmVydGljYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXN0YWNrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaWxsJywgJ2ZsZXgnLCAnZnVsbCcsICdndXR0ZXInLCAndmVydGljYWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZTdGFjayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52U3RhY2tFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlN0YWNrIGV4dGVuZHMgQ29tcG9uZW50cy5OdlN0YWNrIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZUYWJsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52VGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLk52VGFibGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc29ydERpcmVjdGlvbicsICdzb3J0YWJsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtdGFibGVoZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NvcnREaXJlY3Rpb24nLCAnc29ydGFibGUnXSxcbiAgb3V0cHV0czogWydzb3J0RGlyZWN0aW9uQ2hhbmdlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOdlRhYmxlaGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTnZUYWJsZWhlYWRlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzb3J0RGlyZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTnZUYWJsZWhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuTnZUYWJsZWhlYWRlciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNvcnQgZGlyZWN0aW9uIGNoYW5nZXMuIFBheWxvYWQgaXMgdGhlIG5ldyBzb3J0XG5kaXJlY3Rpb24uXG4gICAqL1xuICBzb3J0RGlyZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hpZGVMYWJlbCcsICdpbnB1dElkJywgJ2xhYmVsJywgJ2xhYmVsUGxhY2VtZW50JywgJ25hbWUnLCAncmVhZG9ubHknLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoaWRlTGFiZWwnLCAnaW5wdXRJZCcsICdsYWJlbCcsICdsYWJlbFBsYWNlbWVudCcsICduYW1lJywgJ3JlYWRvbmx5JywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnY2hlY2tlZENoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlRvZ2dsZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBjaGVja2VkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52VG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5OdlRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGVja2VkIHN0YXRlIGNoYW5nZXMuIEBiaW5kIGNoZWNrZWRcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlzYWJsZWQnLCAnZW1waGFzaXMnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtdG9nZ2xlYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlzYWJsZWQnLCAnZW1waGFzaXMnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3RvZ2dsZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTnZUb2dnbGVidXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlRvZ2dsZWJ1dHRvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0b2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IC8qKiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBidXR0b24uICovIHZhbHVlOiBzdHJpbmc7IC8qKiBJZiB0aGUgYnV0dG9uIGlzIGFjdGl2ZSB3aGVuIGNsaWNrZWQuICovIGFjdGl2ZTogYm9vbGVhbjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52VG9nZ2xlYnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5OdlRvZ2dsZWJ1dHRvbiB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBpcyB0b2dnbGVkLiBXaWxsIGJ1YmJsZSB1cCBzbyB0aGF0IHRoZVxubnYtdG9nZ2xlYnV0dG9uZ3JvdXAgY2FuIHVwZGF0ZSB0aGUgc3RhdGUuXG4gICAqL1xuICB0b2dnbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyAvKiogVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnV0dG9uLiAqLyB2YWx1ZTogc3RyaW5nOyAvKiogSWYgdGhlIGJ1dHRvbiBpcyBhY3RpdmUgd2hlbiBjbGlja2VkLiAqLyBhY3RpdmU6IGJvb2xlYW47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZW1waGFzaXMnLCAnZW5mb3JjZVZhbHVlJywgJ2V4Y2x1c2l2ZScsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi10b2dnbGVidXR0b25ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZW1waGFzaXMnLCAnZW5mb3JjZVZhbHVlJywgJ2V4Y2x1c2l2ZScsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndmFsdWVDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52VG9nZ2xlYnV0dG9uZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxOdlRvZ2dsZWJ1dHRvbmdyb3VwRWxlbWVudDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBOdlRvZ2dsZWJ1dHRvbmdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5OdlRvZ2dsZWJ1dHRvbmdyb3VwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgdG9nZ2xlIGJ1dHRvbnMgY2hhbmdlLiBAYmluZCB2YWx1ZVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZW50ZXJEZWxheScsICdtZXNzYWdlJywgJ3BsYWNlbWVudCcsICdzdHJhdGVneSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnYtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZW50ZXJEZWxheScsICdtZXNzYWdlJywgJ3BsYWNlbWVudCcsICdzdHJhdGVneSddLFxuICBvdXRwdXRzOiBbJ29wZW5DaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIE52VG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE52VG9vbHRpcEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE52VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuTnZUb29sdGlwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9vbHRpcCBpcyBvcGVuZWQgb3IgY2xvc2VkLiBCdWJibGVzIHVwIGZyb20gdGhlIHBvcG92ZXJcbmVsZW1lbnQuXG4gICAqL1xuICBvcGVuQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG4iXX0=
|