@kiwibit/chart 1.0.14 → 1.0.16
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/README.md +89 -1
- package/esm2020/lib/chart.component.mjs +94 -17
- package/esm2020/lib/chart.module.mjs +8 -6
- package/fesm2015/kiwibit-chart.mjs +97 -21
- package/fesm2015/kiwibit-chart.mjs.map +1 -1
- package/fesm2020/kiwibit-chart.mjs +99 -21
- package/fesm2020/kiwibit-chart.mjs.map +1 -1
- package/lib/chart.component.d.ts +12 -1
- package/package.json +6 -7
- /package/{index.d.ts → kiwibit-chart.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
**kiwi-chart** is an Angular library designed to simplify the process of 2D charts generation.
|
|
4
4
|
|
|
5
|
+
### Latest versions @npm:
|
|
6
|
+
|
|
7
|
+
> **v15.x** for Angular >= **15.x**
|
|
8
|
+
>
|
|
9
|
+
> **v14.x** for Angular >= **14.x**
|
|
10
|
+
>
|
|
11
|
+
> **v1.0.x** for Angular <= **13.x**
|
|
12
|
+
|
|
5
13
|
# Installation
|
|
6
14
|
|
|
7
15
|
After creating a new Angular project simply run:
|
|
@@ -41,4 +49,84 @@ npm install @kiwibit/chart
|
|
|
41
49
|
| **@Input** [darkTheme] | boolean | false | Whether to activate the Dark Theme |
|
|
42
50
|
| **@Input** [darkThemeBackground] | string | | Background color for the Dark Theme |
|
|
43
51
|
| **@Output** (addPoint) | BasePoint | | When clicking in the chart area, emits a BasePoint containing the coordinates. To be available it requires the flag "clickToAddPoint" in the Chart model set to true. |
|
|
44
|
-
| **@Output** (chartHover) | BasePoint | | When hovering the chart area, emits a BasePoint containing the coordinates. |
|
|
52
|
+
| **@Output** (chartHover) | BasePoint | | When hovering the chart area, emits a BasePoint containing the coordinates. |
|
|
53
|
+
|
|
54
|
+
# Latest Updates
|
|
55
|
+
|
|
56
|
+
## [15.0.1] - 2022-11-30
|
|
57
|
+
### Added
|
|
58
|
+
- Added initial chart configuration if not passed as an input to the chart, in order to suppress the echarts warning.
|
|
59
|
+
|
|
60
|
+
## [15.0.0] - 2022-11-30
|
|
61
|
+
### Added
|
|
62
|
+
- Upgrade to Angular 15
|
|
63
|
+
|
|
64
|
+
## [14.0.0] - 2022-11-30
|
|
65
|
+
### Added
|
|
66
|
+
- Upgrade to Angular 14
|
|
67
|
+
|
|
68
|
+
## [1.0.13] - 2022-06-29
|
|
69
|
+
### Added
|
|
70
|
+
- Added "chartHover" Output property to emit the x and y coordinates when the cursor is hovering the chart area.
|
|
71
|
+
- Added opacity property in the Trace model.
|
|
72
|
+
|
|
73
|
+
## [1.0.12] - 2022-06-14
|
|
74
|
+
### Added
|
|
75
|
+
- Added animation duration in the chart model (as optional).
|
|
76
|
+
- Added maxAxesDecimals in the chart model (as optional).
|
|
77
|
+
### Changed
|
|
78
|
+
- Changed width of the chart in the grid option (to make the legend more readable when there's less space).
|
|
79
|
+
|
|
80
|
+
## [1.0.11] - 2022-06-09
|
|
81
|
+
### Added
|
|
82
|
+
- Added min and max values (as optional) for the x and y coordinate of the chart.
|
|
83
|
+
### Changed
|
|
84
|
+
- Minor fixes in the chart legend (increased width and changed inactive color for the dark theme).
|
|
85
|
+
|
|
86
|
+
## [1.0.10] - 2022-06-08
|
|
87
|
+
### Added
|
|
88
|
+
- Re-introduced manual change detection in the chart component.
|
|
89
|
+
- Added two different "Add Point" icons for both the light and dark theme.
|
|
90
|
+
|
|
91
|
+
## [1.0.9] - 2022-05-31
|
|
92
|
+
### Changed
|
|
93
|
+
- Minor changes to the chart rendering logic.
|
|
94
|
+
### Removed
|
|
95
|
+
- Removed manual change detection in the chart component.
|
|
96
|
+
|
|
97
|
+
## [1.0.7] - 2022-05-31
|
|
98
|
+
### Added
|
|
99
|
+
- Added Dark Theme for the chart.
|
|
100
|
+
- Added documentation for the Chart's models and component.
|
|
101
|
+
|
|
102
|
+
## [1.0.4] - 2022-03-30
|
|
103
|
+
### Added
|
|
104
|
+
- Added color property for the popints in a Trace.
|
|
105
|
+
|
|
106
|
+
## [1.0.3] - 2022-03-29
|
|
107
|
+
### Added
|
|
108
|
+
- Added a property in the Chart to choose if show the grid lines or not.
|
|
109
|
+
### Changed
|
|
110
|
+
- Changed the grid lines default color to #ccc.
|
|
111
|
+
### Removed
|
|
112
|
+
- Removed the automatic add of a point in the chart when clicking on add point control button. We just pass the data to father component which then decides whether to add a point or not.
|
|
113
|
+
- Removed point name from tooltip.
|
|
114
|
+
|
|
115
|
+
## [1.0.2] - 2022-03-28
|
|
116
|
+
### Changed
|
|
117
|
+
- scrollToZoom and clickToAddPoint are now optional and by default set to false.
|
|
118
|
+
### Fixed
|
|
119
|
+
- Rounded number to 3 decimals in the point tooltip.
|
|
120
|
+
### Removed
|
|
121
|
+
- Removed restore option in the toolbox.
|
|
122
|
+
|
|
123
|
+
## [1.0.1] - 2022-03-28
|
|
124
|
+
### Added
|
|
125
|
+
- Added property in the Trace model to make a Trace not selected in the legend by default.
|
|
126
|
+
### Changed
|
|
127
|
+
- Changed Unit of Measure format in the Axes labels.
|
|
128
|
+
- Changed default symbol of a Point.
|
|
129
|
+
|
|
130
|
+
## [1.0.0] - 2022-03-25
|
|
131
|
+
### Added
|
|
132
|
+
- First release of the kiwi-chart (version 1.0.0).
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
// Angular General
|
|
1
2
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
3
|
import { interval, Subject, takeUntil } from 'rxjs';
|
|
4
|
+
// Kiwi Chart
|
|
3
5
|
import { ADD_POINT_IMG_OFF_DARK, ADD_POINT_IMG_OFF_LIGHT, ADD_POINT_IMG_ON } from './constants/chart.constants';
|
|
4
|
-
import { ShapeVariant } from './models/chart.models';
|
|
6
|
+
import { ShapeVariant, TraceType } from './models/chart.models';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
8
|
+
import * as i1 from "ngx-echarts";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
8
10
|
export class KiwiChartComponent {
|
|
9
11
|
constructor(cd) {
|
|
10
12
|
this.cd = cd;
|
|
@@ -54,11 +56,28 @@ export class KiwiChartComponent {
|
|
|
54
56
|
this.chartHover = new EventEmitter();
|
|
55
57
|
/**
|
|
56
58
|
* The object used by echarts to initially create the Chart.
|
|
59
|
+
* Has a default configuration that can be totally overrided using specific properties.
|
|
57
60
|
*
|
|
58
61
|
* @type {EChartsOption}
|
|
59
62
|
* @memberof KiwiChartComponent
|
|
60
63
|
*/
|
|
61
|
-
this.chartOption = {
|
|
64
|
+
this.chartOption = {
|
|
65
|
+
title: {
|
|
66
|
+
text: 'Kiwi Chart'
|
|
67
|
+
},
|
|
68
|
+
xAxis: {
|
|
69
|
+
name: 'X'
|
|
70
|
+
},
|
|
71
|
+
yAxis: {
|
|
72
|
+
name: 'Y'
|
|
73
|
+
},
|
|
74
|
+
series: [
|
|
75
|
+
{
|
|
76
|
+
type: TraceType.LINE,
|
|
77
|
+
data: [[0, 0]]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
};
|
|
62
81
|
/**
|
|
63
82
|
* The instance of the Chart.
|
|
64
83
|
*
|
|
@@ -90,6 +109,8 @@ export class KiwiChartComponent {
|
|
|
90
109
|
* @memberof KiwiChartComponent
|
|
91
110
|
*/
|
|
92
111
|
this.MAX_DECIMALS = 3;
|
|
112
|
+
this.legendSelected = {};
|
|
113
|
+
this.isLegendClicked = false;
|
|
93
114
|
}
|
|
94
115
|
ngOnInit() {
|
|
95
116
|
/**
|
|
@@ -99,13 +120,30 @@ export class KiwiChartComponent {
|
|
|
99
120
|
*/
|
|
100
121
|
interval(200)
|
|
101
122
|
.pipe(takeUntil(this.destroyed$))
|
|
102
|
-
.subscribe(
|
|
103
|
-
|
|
123
|
+
.subscribe({
|
|
124
|
+
next: () => {
|
|
125
|
+
this.cd.detectChanges();
|
|
126
|
+
}
|
|
104
127
|
});
|
|
105
128
|
}
|
|
106
129
|
onChartInit(ec) {
|
|
107
130
|
this.echartsInstance = ec;
|
|
108
131
|
this.setupZrEventHandler(ec);
|
|
132
|
+
this.setupLegendEventHandler(ec);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* intercept a selection change event on the legend and save the state
|
|
136
|
+
* of all selections on the supporting variable legendSelected
|
|
137
|
+
*
|
|
138
|
+
* @param ec
|
|
139
|
+
*/
|
|
140
|
+
setupLegendEventHandler(ec) {
|
|
141
|
+
if (this.echartsInstance != null) {
|
|
142
|
+
this.echartsInstance.on('legendselectchanged', (params) => {
|
|
143
|
+
this.isLegendClicked = true;
|
|
144
|
+
this.legendSelected = params.selected;
|
|
145
|
+
});
|
|
146
|
+
}
|
|
109
147
|
}
|
|
110
148
|
setupZrEventHandler(ec) {
|
|
111
149
|
this.zr = ec.getZr();
|
|
@@ -153,6 +191,14 @@ export class KiwiChartComponent {
|
|
|
153
191
|
}
|
|
154
192
|
});
|
|
155
193
|
}
|
|
194
|
+
getLegendItemSelection(shape) {
|
|
195
|
+
if (this.isLegendClicked) {
|
|
196
|
+
return this.legendSelected[shape.name] ?? true;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return shape.selectedByDefault ?? true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
156
202
|
ngOnChanges(changes) {
|
|
157
203
|
let chart = changes['chart']?.currentValue;
|
|
158
204
|
if (chart) {
|
|
@@ -174,6 +220,7 @@ export class KiwiChartComponent {
|
|
|
174
220
|
toolbox: {
|
|
175
221
|
orient: 'horizontal',
|
|
176
222
|
left: 'center',
|
|
223
|
+
top: '25px',
|
|
177
224
|
feature: {
|
|
178
225
|
dataZoom: {
|
|
179
226
|
brushStyle: {
|
|
@@ -181,9 +228,26 @@ export class KiwiChartComponent {
|
|
|
181
228
|
borderWidth: 1,
|
|
182
229
|
borderType: 'dashed'
|
|
183
230
|
},
|
|
231
|
+
emphasis: {
|
|
232
|
+
iconStyle: {
|
|
233
|
+
textPosition: 'top'
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
saveAsImage: {
|
|
238
|
+
emphasis: {
|
|
239
|
+
iconStyle: {
|
|
240
|
+
textPosition: 'top'
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
restore: {
|
|
245
|
+
emphasis: {
|
|
246
|
+
iconStyle: {
|
|
247
|
+
textPosition: 'top'
|
|
248
|
+
}
|
|
249
|
+
}
|
|
184
250
|
},
|
|
185
|
-
saveAsImage: {},
|
|
186
|
-
restore: {},
|
|
187
251
|
myAddPoint: {
|
|
188
252
|
show: chart.clickToAddPoint ?? false,
|
|
189
253
|
title: chart.addPointCustomName ?? 'Add Point',
|
|
@@ -202,6 +266,11 @@ export class KiwiChartComponent {
|
|
|
202
266
|
}
|
|
203
267
|
}
|
|
204
268
|
});
|
|
269
|
+
},
|
|
270
|
+
emphasis: {
|
|
271
|
+
iconStyle: {
|
|
272
|
+
textPosition: 'top'
|
|
273
|
+
}
|
|
205
274
|
}
|
|
206
275
|
}
|
|
207
276
|
},
|
|
@@ -226,9 +295,12 @@ export class KiwiChartComponent {
|
|
|
226
295
|
inactiveColor: this.darkTheme ? '#8b8b8b' : '#ccc',
|
|
227
296
|
data: chart.shapes.map((shape) => ({
|
|
228
297
|
name: shape.name,
|
|
229
|
-
icon: 'circle'
|
|
298
|
+
icon: 'circle',
|
|
230
299
|
})),
|
|
231
|
-
selected: chart.shapes.reduce((accumulator, shape) => ({
|
|
300
|
+
selected: chart.shapes.reduce((accumulator, shape) => ({
|
|
301
|
+
...accumulator,
|
|
302
|
+
[shape.name]: this.getLegendItemSelection(shape),
|
|
303
|
+
}), {}),
|
|
232
304
|
show: chart.showLegend ?? false,
|
|
233
305
|
orient: 'vertical',
|
|
234
306
|
left: 'right',
|
|
@@ -339,8 +411,8 @@ export class KiwiChartComponent {
|
|
|
339
411
|
this.destroyed$.complete();
|
|
340
412
|
}
|
|
341
413
|
}
|
|
342
|
-
KiwiChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
343
|
-
KiwiChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
414
|
+
KiwiChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
415
|
+
KiwiChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: KiwiChartComponent, selector: "kiwi-chart", inputs: { chart: "chart", width: "width", height: "height", darkTheme: "darkTheme", darkThemeBackground: "darkThemeBackground" }, outputs: { addPoint: "addPoint", chartHover: "chartHover" }, usesOnChanges: true, ngImport: i0, template: `
|
|
344
416
|
<div
|
|
345
417
|
echarts
|
|
346
418
|
[options]="chartOption"
|
|
@@ -351,10 +423,12 @@ KiwiChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
351
423
|
(chartInit)="onChartInit($event)"
|
|
352
424
|
[theme]="darkTheme ? 'dark' : ''"
|
|
353
425
|
></div>
|
|
354
|
-
`, isInline: true, styles: [""],
|
|
355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
426
|
+
`, isInline: true, styles: [""], directives: [{ type: i1.NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "loading", "initOpts", "merge", "autoResize", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartPieSelectChanged", "chartPieSelected", "chartPieUnselected", "chartMapSelectChanged", "chartMapSelected", "chartMapUnselected", "chartAxisAreaSelected", "chartFocusNodeAdjacency", "chartUnfocusNodeAdjacency", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartRendered", "chartFinished"], exportAs: ["echarts"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartComponent, decorators: [{
|
|
356
428
|
type: Component,
|
|
357
|
-
args: [{
|
|
429
|
+
args: [{
|
|
430
|
+
selector: 'kiwi-chart',
|
|
431
|
+
template: `
|
|
358
432
|
<div
|
|
359
433
|
echarts
|
|
360
434
|
[options]="chartOption"
|
|
@@ -365,7 +439,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
|
|
|
365
439
|
(chartInit)="onChartInit($event)"
|
|
366
440
|
[theme]="darkTheme ? 'dark' : ''"
|
|
367
441
|
></div>
|
|
368
|
-
|
|
442
|
+
`,
|
|
443
|
+
styles: [`
|
|
444
|
+
`]
|
|
445
|
+
}]
|
|
369
446
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { chart: [{
|
|
370
447
|
type: Input
|
|
371
448
|
}], width: [{
|
|
@@ -381,4 +458,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
|
|
|
381
458
|
}], chartHover: [{
|
|
382
459
|
type: Output
|
|
383
460
|
}] } });
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l3aWJpdC9jaGFydC9zcmMvbGliL2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoSCxPQUFPLEVBQWdCLFlBQVksRUFBMkIsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWtCNUYsTUFBTSxPQUFPLGtCQUFrQjtJQStGN0IsWUFDVSxFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTlGL0I7Ozs7OztXQU1HO1FBQ00sVUFBSyxHQUFpQixJQUFJLENBQUM7UUFFcEM7Ozs7Ozs7V0FPRztRQUNNLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdkIsV0FBTSxHQUFXLE9BQU8sQ0FBQztRQUVsQzs7Ozs7OztXQU9HO1FBQ00sY0FBUyxHQUFZLEtBQUssQ0FBQztRQUdwQzs7Ozs7OztXQU9HO1FBQ08sYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBYSxDQUFDO1FBRTVFOzs7Ozs7V0FNRztRQUNPLGVBQVUsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUU5RTs7Ozs7V0FLRztRQUNILGdCQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUVoQzs7Ozs7V0FLRztRQUNILG9CQUFlLEdBQW1CLElBQUksQ0FBQztRQUV2Qzs7Ozs7V0FLRztRQUNILE9BQUUsR0FBK0IsSUFBSSxDQUFDO1FBRXRDOzs7Ozs7V0FNRztRQUNLLGVBQVUsR0FBa0IsSUFBSSxP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SSxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNqQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDO2FBQzVCO1lBQ0QsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSztTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7K0dBeldVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNRQWZuQjs7Ozs7Ozs7Ozs7R0FXVDsyRkFJVSxrQkFBa0I7a0JBakI5QixTQUFTOytCQUNFLFlBQVksWUFDWjs7Ozs7Ozs7Ozs7R0FXVDt3R0FhUSxLQUFLO3NCQUFiLEtBQUs7Z0JBVUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFVRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFVSSxRQUFRO3NCQUFqQixNQUFNO2dCQVNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tU2VyaWVzT3B0aW9uLCBFQ2hhcnRzLCBFQ2hhcnRzT3B0aW9uLCBMaW5lU2VyaWVzT3B0aW9uLCBTY2F0dGVyU2VyaWVzT3B0aW9uLCB6cmVuZGVyIH0gZnJvbSAnZWNoYXJ0cyc7XHJcbmltcG9ydCB7IGludGVydmFsLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQUREX1BPSU5UX0lNR19PRkZfREFSSywgQUREX1BPSU5UX0lNR19PRkZfTElHSFQsIEFERF9QT0lOVF9JTUdfT04gfSBmcm9tICcuL2NvbnN0YW50cy9jaGFydC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2hhcGUsIFNoYXBlVmFyaWFudCwgVHJhY2UsIFBvaW50LCBCYXNlUG9pbnQgfSBmcm9tICcuL21vZGVscy9jaGFydC5tb2RlbHMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2tpd2ktY2hhcnQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFxyXG4gICAgICBlY2hhcnRzIFxyXG4gICAgICBbb3B0aW9uc109XCJjaGFydE9wdGlvblwiIFxyXG4gICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgJ3dpZHRoJzogd2lkdGgsXHJcbiAgICAgICAgJ2hlaWdodCc6IGhlaWdodFxyXG4gICAgICB9XCJcclxuICAgICAgKGNoYXJ0SW5pdCk9XCJvbkNoYXJ0SW5pdCgkZXZlbnQpXCJcclxuICAgICAgW3RoZW1lXT1cImRhcmtUaGVtZSA/ICdkYXJrJyA6ICcnXCJcclxuICAgID48L2Rpdj4gXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEtpd2lDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgQ2hhcnQgT2JqZWN0IHJlbmRlcmVkIGJ5IHRoZSBjYW52YXMuIEZvciBhbGwgdGhlIGF2YWlsYWJsZSBvcHRpb25zIHJlZmVyIFxyXG4gICAqIHRvIENoYXJ0IGludGVyZmFjZSBpbiB0aGUgbW9kZWxzIGZvbGRlci5cclxuICAgKlxyXG4gICAqIEB0eXBlIHsoQ2hhcnQgfCBudWxsKX1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgY2hhcnQ6IENoYXJ0IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdpZHRoIGFuZCBIZWlnaHQgb2YgdGhlIGNoYXJ0IGFyZWEuIFRoZSBkaW1lbnNpb25zIHJlZmVyIHRvIHRoZSBmYXRoZXIgY29tcG9uZW50IFxyXG4gICAqIGludG8gd2hpY2ggdGhlIGtpd2ktY2hhcnQgaXMgaW5zZXJ0ZWQuIEZvciBleGFtcGxlIGluIGFuIGVtcHR5IHBhZ2UgdGhlIHdpZHRoL2hlaWdodCBcclxuICAgKiBvZiB0aGUgY2hhcnQgY2FuIHRha2UgdGhlIHdob2xlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgcGFnZS5cclxuICAgKlxyXG4gICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIEtpd2lDaGFydENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnNDgwcHgnO1xyXG5cclxuICAvKipcclxuICAgKiBUaGlzIHByb3BlcnR5IHNpbXBseSBhY3RpdmF0ZXMgb3Igbm90IHRoZSBkYXJrIHRoZW1lIG9mIHRoZSBjaGFydFxyXG4gICAqIGRlZmluZWQgYnkgdGhlIEVjaGFydHMgbGlicmFyeS4gSW4gYWRkaXRpb24gdGhlIGJhY2tncm91bmQgY29sb3IgY2FuIGJlIGN1c3RvbVxyXG4gICAqIHNvIHRoYXQgdGhlIGNoYXJ0IGNhbiBtYXRjaCB0aGUgYmFja2dyb3VuZCBvZiB0aGUgYXBwbGljYXRpb24gaW4gd2hpY2ggaXQncyB1c2VkLlxyXG4gICAqXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIEtpd2lDaGFydENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRhcmtUaGVtZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRhcmtUaGVtZUJhY2tncm91bmQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE91dHB1dCBldmVudCB1c2VkIHRvIGVtaXQgdG8gdGhlIGZhdGhlciBjb21wb25lbnQgdGhlIGNvb3JkaW5hdGVzXHJcbiAgICogb2YgdGhlIHBvaW50IGNsaWNrZWQgaW4gdGhlIGNoYXJ0IGFyZWEuIFRoaXMgZnVuY3Rpb25hbGl0eSB0byBiZSB1c2VkIG11c3RcclxuICAgKiBoYXZlIHRoZSBwcm9wZXJ0eSBcImNsaWNrVG9BZGRQb2ludFwiIGluIHRoZSBDaGFydCBvYmplY3Qgc2V0IHRvIHRydWUuXHJcbiAgICpcclxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPEJhc2VQb2ludD59XHJcbiAgICogQG1lbWJlcm9mIEtpd2lDaGFydENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhZGRQb2ludDogRXZlbnRFbWl0dGVyPEJhc2VQb2ludD4gPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2VQb2ludD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiB0aGUgY3Vyc29yIGhvdmVycyB0aGUgY2hhcnQgYXJlYSBpdCBlbWl0cyB0byB0aGUgZmF0aGVyIGNvbXBvbmVudCB0aGVcclxuICAgKiB4IGFuZCB5IGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIHRoZSBjaGFydCByZWZlcmVuY2Ugc3lzdGVtLlxyXG4gICAqXHJcbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxCYXNlUG9pbnQ+fVxyXG4gICAqIEBtZW1iZXJvZiBLaXdpQ2hhcnRDb21wb25lbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY2hhcnRIb3ZlcjogRXZlbnRFbWl0dGVyPEJhc2VQb2ludD4gPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2VQb2ludD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG9iamVjdCB1c2VkIGJ5IGVjaGFydHMgdG8gaW5pdGlhbGx5IGNyZWF0ZSB0aGUgQ2hhcnQuXHJcbiAgICpcclxuICAgKiBAdHlwZSB7RUNoYXJ0c09wdGlvbn1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY2hhcnRPcHRpb246IEVDaGFydHNPcHRpb24gPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBDaGFydC5cclxuICAgKlxyXG4gICAqIEB0eXBlIHsoRUNoYXJ0cyB8IG51bGwpfVxyXG4gICAqIEBtZW1iZXJvZiBLaXdpQ2hhcnRDb21wb25lbnRcclxuICAgKi9cclxuICBlY2hhcnRzSW5zdGFuY2U6IEVDaGFydHMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlZCB0byBwZXJmb3JtIGFjdGlvbnMgKGFzIHBvaW50IGFkZGl0aW9uIGJhc2VkIG9uIHRoZSBjdXJzb3IgcG9zaXRpb24pIG9uIHRoZSBjaGFydC5cclxuICAgKlxyXG4gICAqIEB0eXBlIHsoenJlbmRlci5aUmVuZGVyVHlwZSB8IG51bGwpfVxyXG4gICAqIEBtZW1iZXJvZiBLaXdpQ2hhcnRDb21wb25lbnRcclxuICAgKi9cclxuICB6cjogenJlbmRlci5aUmVuZGVyVHlwZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHVzZWQgdG8gdW5zdWJzY3JpYmUgb25jZSB0aGUgY29tcG9uZW50IGdldHMgZGVzdHJveWVkLlxyXG4gICAqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBAdHlwZSB7U3ViamVjdDx2b2lkPn1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmYXVsdCBudW1iZXIgb2YgZGVjaW1hbHMgdGhhdCBjYW4gaGF2ZVxyXG4gICAqIHRoZSB2YWx1ZXMgb24gdGhlIHggYW5kIHkgYXhlcy5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQHR5cGUge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfREVDSU1BTFM6IG51bWJlciA9IDM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8qKiBcclxuICAgICAqIFRoaXMgaXMgYSBtYW51YWwgY2hhbmdlIGRldGVjdGlvbiBydW5uaW5nIGV2ZXJ5IDIwMG1zLCB0aGUgbWVtb3J5IHNob3VsZCBub3QgYmUgbXVjaCBhZmZsaWN0ZWQuXHJcbiAgICAgKiBJdCdzIG5lY2Vzc2FyeSBiZWNhdXNlIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgY2hhcnQgKGZvciBleGFtcGxlIGFkZFBvaW50KSxcclxuICAgICAqIEFuZ3VsYXIgbG9zZXMgdGhlIGNoYW5nZSBkZXRlY3Rpb24gYW5kIHRoZSBwb2ludCBpcyBub3QgYWRkZWQgaW4gdGhlIGNoYXJ0IGNhbnZhcy5cclxuICAgICAqL1xyXG4gICAgaW50ZXJ2YWwoMjAwKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhcnRJbml0KGVjOiBFQ2hhcnRzKSB7XHJcbiAgICB0aGlzLmVjaGFydHNJbnN0YW5jZSA9IGVjO1xyXG4gICAgdGhpcy5zZXR1cFpyRXZlbnRIYW5kbGVyKGVjKTtcclxuICB9XHJcblxyXG4gIHNldHVwWnJFdmVudEhhbmRsZXIoZWM6IEVDaGFydHMpIHtcclxuICAgIHRoaXMuenIgPSBlYy5nZXRacigpO1xyXG4gICAgLyoqIFxyXG4gICAgICogSW50ZXJjZXB0cyB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIGNoYXJ0IChpZiB0aGUgY2xpY2tUb0FkZFBvaW50IHByb3BlcnR5IGlzIHNldCB0byB0cnVlKVxyXG4gICAgICogYW5kIGVtaXRzIHRoZSBwb2ludCBjb29yZGluYXRlcyB0byB0aGUgZmF0aGVyIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgdGhpcy56ci5vbignY2xpY2snLCBwYXJhbXMgPT4ge1xyXG4gICAgICBsZXQgb3B0aW9uOiBhbnkgPSBlYy5nZXRPcHRpb24oKTtcclxuICAgICAgbGV0IGFjdGl2ZSA9IG9wdGlvbj8udG9vbGJveD8uWzBdPy5mZWF0dXJlPy5teUFkZFBvaW50Py5pY29uU3RhdHVzO1xyXG4gICAgICBpZiAoYWN0aXZlICYmIHRoaXMuY2hhcnQ/LmNsaWNrVG9BZGRQb2ludCkge1xyXG4gICAgICAgIGNvbnN0IHBvaW50SW5QaXhlbCA9IFtwYXJhbXMub2Zmc2V0WCwgcGFyYW1zLm9mZnNldFldO1xyXG4gICAgICAgIGNvbnN0IHBvaW50SW5HcmlkID0gZWMuY29udmVydEZyb21QaXhlbCgnZ3JpZCcsIHBvaW50SW5QaXhlbCk7XHJcbiAgICAgICAgaWYgKGVjLmNvbnRhaW5QaXhlbCgnZ3JpZCcsIHBvaW50SW5QaXhlbCkgJiYgcG9pbnRJbkdyaWQpIHtcclxuICAgICAgICAgIGxldCBuZXdQb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9ID0ge1xyXG4gICAgICAgICAgICB4OiArcG9pbnRJbkdyaWRbMF0udG9GaXhlZCgzKSxcclxuICAgICAgICAgICAgeTogK3BvaW50SW5HcmlkWzFdLnRvRml4ZWQoMylcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmFkZFBvaW50LmVtaXQobmV3UG9pbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvKiogXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgcGVyZm9ybSBjdXN0b20gYWN0aW9ucyB3aGVuIHRoZSBtb3VzZSBpcyBob3ZlcmluZyB0aGUgY2hhcnQgYXJlYVxyXG4gICAgICovXHJcbiAgICB0aGlzLnpyLm9uKCdtb3VzZW1vdmUnLCBwYXJhbXMgPT4ge1xyXG4gICAgICBjb25zdCBwb2ludEluUGl4ZWwgPSBbcGFyYW1zLm9mZnNldFgsIHBhcmFtcy5vZmZzZXRZXTtcclxuICAgICAgY29uc3QgcG9pbnRJbkdyaWQgPSBlYy5jb252ZXJ0RnJvbVBpeGVsKCdncmlkJywgcG9pbnRJblBpeGVsKTtcclxuICAgICAgLyogXHJcbiAgICAgICAqIExvZ2ljIHRvIGVtaXQgdG8gdGhlIGZhdGhlciBjb21wb25lbnQgdGhlIHggYW5kIHkgY2RpbmF0ZXMgd2hlbiB0aGVcclxuICAgICAgICogY3Vyc29yIGlzIGhvdmVyaW5nIHRoZSBjaGFydCBhcmVhIC5cclxuICAgICAgICovXHJcbiAgICAgIGlmIChlYy5jb250YWluUGl4ZWwoJ2dyaWQnLCBwb2ludEluUGl4ZWwpICYmIHBvaW50SW5HcmlkKSB7XHJcbiAgICAgICAgbGV0IG5ld1BvaW50OiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0gPSB7XHJcbiAgICAgICAgICB4OiArcG9pbnRJbkdyaWRbMF0udG9GaXhlZCgzKSxcclxuICAgICAgICAgIHk6ICtwb2ludEluR3JpZFsxXS50b0ZpeGVkKDMpXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNoYXJ0SG92ZXIuZW1pdChuZXdQb2ludCk7XHJcbiAgICAgIH1cclxuICAgICAgLyogTG9naWMgdG8gY2hhbmdlIHRoZSBjdXJzb3IgaWNvbiB3aGVuIHRoZSBcIkNsaWNrIHRvIEFkZCBQb2ludFwiIGZlYXR1cmUgaXMgYWN0aXZlIGFuZCB2aWNldmVyc2EuICovXHJcbiAgICAgIGNvbnN0IG9wdGlvbjogYW55ID0gZWMuZ2V0T3B0aW9uKCk7XHJcbiAgICAgIGNvbnN0IGFkZFBvaW50SXNBY3RpdmUgPSBvcHRpb24/LnRvb2xib3g/LlswXT8uZmVhdHVyZT8ubXlBZGRQb2ludD8uaWNvblN0YXR1cztcclxuICAgICAgaWYgKGFkZFBvaW50SXNBY3RpdmUpIHtcclxuICAgICAgICB0aGlzLnpyPy5zZXRDdXJzb3JTdHlsZShcclxuICAgICAgICAgIGVjLmNvbnRhaW5QaXhlbCgnZ3JpZCcsIHBvaW50SW5QaXhlbCkgPyAnY29weScgOiAnZGVmYXVsdCdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGxldCBjaGFydDogQ2hhcnQgPSBjaGFuZ2VzWydjaGFydCddPy5jdXJyZW50VmFsdWU7XHJcbiAgICBpZiAoY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydE9wdGlvbiA9IHtcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgdGV4dDogY2hhcnQudGl0bGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBncmlkOiB7XHJcbiAgICAgICAgICB3aWR0aDogJzcwJSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5kYXJrVGhlbWUgPyB0aGlzLmRhcmtUaGVtZUJhY2tncm91bmQgPz8gJyMzMDMwMzAnIDogJ3RyYW5zcGFyZW50JywgdG9vbHRpcDoge1xyXG4gICAgICAgICAgYXhpc1BvaW50ZXI6IHtcclxuICAgICAgICAgICAgdHlwZTogJ2Nyb3NzJyxcclxuICAgICAgICAgICAgY3Jvc3NTdHlsZToge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAnI2JlYmViZSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbGJveDoge1xyXG4gICAgICAgICAgb3JpZW50OiAnaG9yaXpvbnRhbCcsXHJcbiAgICAgICAgICBsZWZ0OiAnY2VudGVyJyxcclxuICAgICAgICAgIGZlYXR1cmU6IHtcclxuICAgICAgICAgICAgZGF0YVpvb206IHtcclxuICAgICAgICAgICAgICBicnVzaFN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyMwMDAnLFxyXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDEsXHJcbiAgICAgICAgICAgICAgICBib3JkZXJUeXBlOiAnZGFzaGVkJ1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNhdmVBc0ltYWdlOiB7fSxcclxuICAgICAgICAgICAgcmVzdG9yZToge30sXHJcbiAgICAgICAgICAgIG15QWRkUG9pbnQ6IHtcclxuICAgICAgICAgICAgICBzaG93OiBjaGFydC5jbGlja1RvQWRkUG9pbnQgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgdGl0bGU6IGNoYXJ0LmFkZFBvaW50Q3VzdG9tTmFtZSA/PyAnQWRkIFBvaW50JyxcclxuICAgICAgICAgICAgICBpY29uOiB0aGlzLmRhcmtUaGVtZSA/IEFERF9QT0lOVF9JTUdfT0ZGX0RBUksgOiBBRERfUE9JTlRfSU1HX09GRl9MSUdIVCxcclxuICAgICAgICAgICAgICBpY29uU3RhdHVzOiBmYWxzZSxcclxuICAgICAgICAgICAgICBvbmNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3B0aW9uOiBhbnkgPSB0aGlzLmVjaGFydHNJbnN0YW5jZT8uZ2V0T3B0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3RhdHVzID0gb3B0aW9uLnRvb2xib3hbMF0uZmVhdHVyZS5teUFkZFBvaW50Lmljb25TdGF0dXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVjaGFydHNJbnN0YW5jZT8uc2V0T3B0aW9uKHtcclxuICAgICAgICAgICAgICAgICAgdG9vbGJveDoge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG15QWRkUG9pbnQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXR1czogIXN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogIXN0YXR1cyA/IEFERF9QT0lOVF9JTUdfT04gOiB0aGlzLmRhcmtUaGVtZSA/IEFERF9QT0lOVF9JTUdfT0ZGX0RBUksgOiBBRERfUE9JTlRfSU1HX09GRl9MSUdIVFxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YVpvb206IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ2luc2lkZScsXHJcbiAgICAgICAgICAgIHhBeGlzSW5kZXg6IFswXSxcclxuICAgICAgICAgICAgdGhyb3R0bGU6IDAsXHJcbiAgICAgICAgICAgIGZpbHRlck1vZGU6ICdub25lJyxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6ICFjaGFydC5zY3JvbGxUb1pvb20gPz8gdHJ1ZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogJ2luc2lkZScsXHJcbiAgICAgICAgICAgIHlBeGlzSW5kZXg6IFswXSxcclxuICAgICAgICAgICAgdGhyb3R0bGU6IDAsXHJcbiAgICAgICAgICAgIGZpbHRlck1vZGU6ICdub25lJyxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6ICFjaGFydC5zY3JvbGxUb1pvb20gPz8gdHJ1ZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgaW5hY3RpdmVDb2xvcjogdGhpcy5kYXJrVGhlbWUgPyAnIzhiOGI4YicgOiAnI2NjYycsXHJcbiAgICAgICAgICBkYXRhOiBjaGFydC5zaGFwZXMubWFwKFxyXG4gICAgICAgICAgICAoc2hhcGU6IFNoYXBlKSA9PiAoe1xyXG4gICAgICAgICAgICAgIG5hbWU6IHNoYXBlLm5hbWUsXHJcbiAgICAgICAgICAgICAgaWNvbjogJ2NpcmNsZSdcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBzZWxlY3RlZDogY2hhcnQuc2hhcGVzLnJlZHVjZSgoYWNjdW11bGF0b3IsIHNoYXBlOiBTaGFwZSkgPT4gKHsgLi4uYWNjdW11bGF0b3IsIFtzaGFwZS5uYW1lIGFzIHN0cmluZ106IHNoYXBlLnNlbGVjdGVkQnlEZWZhdWx0ID8/IHRydWUgfSksIHt9KSxcclxuICAgICAgICAgIHNob3c6IGNoYXJ0LnNob3dMZWdlbmQgPz8gZmFsc2UsXHJcbiAgICAgICAgICBvcmllbnQ6ICd2ZXJ0aWNhbCcsXHJcbiAgICAgICAgICBsZWZ0OiAncmlnaHQnLFxyXG4gICAgICAgICAgcGFkZGluZzogWzYwLCAyMF0sXHJcbiAgICAgICAgICB0eXBlOiAnc2Nyb2xsJyxcclxuICAgICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgICB3aWR0aDogMTIwLFxyXG4gICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXHJcbiAgICAgICAgICAgIG92ZXJmbG93OiAnYnJlYWsnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB4QXhpczoge1xyXG4gICAgICAgICAgdHlwZTogY2hhcnQueEF4aXNUeXBlLFxyXG4gICAgICAgICAgbmFtZTogY2hhcnQueEF4aXNVb20gPyBgJHtjaGFydC54QXhpc05hbWV9IFsgJHtjaGFydC54QXhpc1VvbX0gXWAgOiBjaGFydC54QXhpc05hbWUsXHJcbiAgICAgICAgICBuYW1lTG9jYXRpb246ICdtaWRkbGUnLFxyXG4gICAgICAgICAgbmFtZUdhcDogMzAsXHJcbiAgICAgICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICAgICAgc2hvdzogY2hhcnQuc2hvd0dyaWQgPz8gdHJ1ZSxcclxuICAgICAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHRoaXMuZGFya1RoZW1lID8gJyM1OTU5NTknIDogJyNjY2MnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBtaW46IGNoYXJ0LnhNaW4/LnRvRml4ZWQoY2hhcnQubWF4QXhlc0RlY2ltYWxzID8/IHRoaXMuTUFYX0RFQ0lNQUxTKSxcclxuICAgICAgICAgIG1heDogY2hhcnQueE1heD8udG9GaXhlZChjaGFydC5tYXhBeGVzRGVjaW1hbHMgPz8gdGhpcy5NQVhfREVDSU1BTFMpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeUF4aXM6IHtcclxuICAgICAgICAgIHR5cGU6IGNoYXJ0LnlBeGlzVHlwZSxcclxuICAgICAgICAgIG5hbWU6IGNoYXJ0LnlBeGlzVW9tID8gYCR7Y2hhcnQueUF4aXNOYW1lfSBbICR7Y2hhcnQueUF4aXNVb219IF1gIDogY2hhcnQueUF4aXNOYW1lLFxyXG4gICAgICAgICAgbmFtZUxvY2F0aW9uOiAnbWlkZGxlJyxcclxuICAgICAgICAgIG5hbWVHYXA6IDUwLFxyXG4gICAgICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgICAgIHNob3c6IGNoYXJ0LnNob3dHcmlkID8/IHRydWUsXHJcbiAgICAgICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGlzLmRhcmtUaGVtZSA/ICcjNTk1OTU5JyA6ICcjY2NjJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbWluOiBjaGFydC55TWluPy50b0ZpeGVkKGNoYXJ0Lm1heEF4ZXNEZWNpbWFscyA/PyB0aGlzLk1BWF9ERUNJTUFMUyksXHJcbiAgICAgICAgICBtYXg6IGNoYXJ0LnlNYXg/LnRvRml4ZWQoY2hhcnQubWF4QXhlc0RlY2ltYWxzID8/IHRoaXMuTUFYX0RFQ0lNQUxTKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNlcmllczogdGhpcy5jcmVhdGVTZXJpZXMoY2hhcnQuc2hhcGVzKSxcclxuICAgICAgICBhbmltYXRpb246IGNoYXJ0Lmhhc0FuaW1hdGlvbnMsXHJcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGNoYXJ0LmFuaW1hdGlvbkR1cmF0aW9uID8/IDUwMCxcclxuICAgICAgICBhbmltYXRpb25FYXNpbmc6ICdjdWJpY091dCdcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVNlcmllcyhzaGFwZXM6IFNoYXBlW10pOiBBcnJheTxMaW5lU2VyaWVzT3B0aW9uIHwgQ3VzdG9tU2VyaWVzT3B0aW9uIHwgU2NhdHRlclNlcmllc09wdGlvbj4ge1xyXG4gICAgbGV0IHNlcmllczogQXJyYXk8TGluZVNlcmllc09wdGlvbiB8IEN1c3RvbVNlcmllc09wdGlvbiB8IFNjYXR0ZXJTZXJpZXNPcHRpb24+ID0gW107XHJcbiAgICBzaGFwZXMuZm9yRWFjaChcclxuICAgICAgKHNoYXBlOiBTaGFwZSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoc2hhcGUudmFyaWFudCkge1xyXG4gICAgICAgICAgY2FzZSBTaGFwZVZhcmlhbnQuVFJBQ0U6XHJcbiAgICAgICAgICAgIHNlcmllcy5wdXNoKHRoaXMuY3JlYXRlVHJhY2Uoc2hhcGUgYXMgVHJhY2UpKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHJldHVybiBzZXJpZXM7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVUcmFjZSh0cmFjZTogVHJhY2UpOiBMaW5lU2VyaWVzT3B0aW9uIHwgU2NhdHRlclNlcmllc09wdGlvbiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0cmFjZS50eXBlLFxyXG4gICAgICBuYW1lOiB0cmFjZS5uYW1lLFxyXG4gICAgICBkYXRhOiB0cmFjZS5wb2ludHMubWFwKFxyXG4gICAgICAgIChwb2ludDogUG9pbnQpID0+ICh7XHJcbiAgICAgICAgICB2YWx1ZTogW3BvaW50LngsIHBvaW50LnldLFxyXG4gICAgICAgICAgc3ltYm9sOiBwb2ludC5zeW1ib2wgPz8gJ2NpcmNsZScsXHJcbiAgICAgICAgICBuYW1lOiBwb2ludC5uYW1lLFxyXG4gICAgICAgICAgc3ltYm9sU2l6ZTogcG9pbnQuc3ltYm9sU2l6ZSA/PyAyLFxyXG4gICAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBwb2ludC5jb2xvclxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVtcGhhc2lzOiB7XHJcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICAgICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgICAgICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgZm9ybWF0dGVyOiAoKSA9PiBgJHtwb2ludC5uYW1lID8/ICcnfWAsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOiAxMyxcclxuICAgICAgICAgICAgcGFkZGluZzogWzAsIDAsIDAsIDEwXSxcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCxcclxuICAgICAgICAgICAgb3ZlcmZsb3c6ICd0cnVuY2F0ZScsXHJcbiAgICAgICAgICAgIGVsbGlwc2lzOiAnLi4uJyxcclxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgICAgICBjb2xvcjogdGhpcy5kYXJrVGhlbWUgPyAnI2ZmZicgOiAnIzAwMCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0b29sdGlwOiB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlcjogKHsgdmFsdWUgfTogeyB2YWx1ZTogbnVtYmVyW10gfSkgPT4gYFxyXG4gICAgICAgICAgICAgIDxzdHJvbmc+JHt0aGlzLmNoYXJ0Py54QXhpc05hbWV9Ojwvc3Ryb25nPiAke3ZhbHVlWzBdLnRvRml4ZWQoMykucmVwbGFjZSgvWy4sXTAwMCQvLCBcIlwiKX1cclxuICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz4ke3RoaXMuY2hhcnQ/LnlBeGlzTmFtZX06PC9zdHJvbmc+ICR7dmFsdWVbMV0udG9GaXhlZCgzKS5yZXBsYWNlKC9bLixdMDAwJC8sIFwiXCIpfVxyXG4gICAgICAgICAgICBgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgY29sb3I6IHRyYWNlLmNvbG9yLFxyXG4gICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICB3aWR0aDogdHJhY2Uud2lkdGgsXHJcbiAgICAgICAgdHlwZTogdHJhY2Uuc3R5bGUsXHJcbiAgICAgICAgb3BhY2l0eTogdHJhY2Uub3BhY2l0eSA/PyAxXHJcbiAgICAgIH0sXHJcbiAgICAgIHNtb290aDogdHJhY2Uuc21vb3RoID8/IGZhbHNlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l3aWJpdC9jaGFydC9zcmMvbGliL2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEQsYUFBYTtBQUNiLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hILE9BQU8sRUFBZ0IsWUFBWSxFQUEyQixTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWtCdkcsTUFBTSxPQUFPLGtCQUFrQjtJQW1IN0IsWUFDVSxFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWxIL0I7Ozs7OztXQU1HO1FBQ00sVUFBSyxHQUFpQixJQUFJLENBQUM7UUFFcEM7Ozs7Ozs7V0FPRztRQUNNLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdkIsV0FBTSxHQUFXLE9BQU8sQ0FBQztRQUVsQzs7Ozs7OztXQU9HO1FBQ00sY0FBUyxHQUFZLEtBQUssQ0FBQztRQUdwQzs7Ozs7OztXQU9HO1FBQ08sYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBYSxDQUFDO1FBRTVFOzs7Ozs7V0FNRztRQUNPLGVBQVUsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUU5RTs7Ozs7O1dBTUc7UUFDSCxnQkFBVyxHQUFrQjtZQUMzQixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLFlBQVk7YUFDbkI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLEdBQUc7YUFDVjtZQUNELEtBQUssRUFB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RUFBRSxDQUFDOzt3QkFFOUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQzthQUN6RjtpQkFDRjthQUNGLENBQUMsQ0FDSDtZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2pCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUM7YUFDNUI7WUFDRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzsrR0FyYlUsa0JBQWtCO21HQUFsQixrQkFBa0Isc1FBZm5COzs7Ozs7Ozs7OztHQVdUOzJGQUlVLGtCQUFrQjtrQkFqQjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQztHQUNSLENBQUM7aUJBQ0g7d0dBVVUsS0FBSztzQkFBYixLQUFLO2dCQVVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBVUksUUFBUTtzQkFBakIsTUFBTTtnQkFTRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBHZW5lcmFsXHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbi8vIEVjaGFydHNcclxuaW1wb3J0IHsgQ3VzdG9tU2VyaWVzT3B0aW9uLCBFQ2hhcnRzLCBFQ2hhcnRzT3B0aW9uLCBMaW5lU2VyaWVzT3B0aW9uLCBTY2F0dGVyU2VyaWVzT3B0aW9uLCB6cmVuZGVyIH0gZnJvbSAnZWNoYXJ0cyc7XHJcbi8vIEtpd2kgQ2hhcnRcclxuaW1wb3J0IHsgQUREX1BPSU5UX0lNR19PRkZfREFSSywgQUREX1BPSU5UX0lNR19PRkZfTElHSFQsIEFERF9QT0lOVF9JTUdfT04gfSBmcm9tICcuL2NvbnN0YW50cy9jaGFydC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2hhcGUsIFNoYXBlVmFyaWFudCwgVHJhY2UsIFBvaW50LCBCYXNlUG9pbnQsIFRyYWNlVHlwZSB9IGZyb20gJy4vbW9kZWxzL2NoYXJ0Lm1vZGVscyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna2l3aS1jaGFydCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgXHJcbiAgICAgIGVjaGFydHMgXHJcbiAgICAgIFtvcHRpb25zXT1cImNoYXJ0T3B0aW9uXCIgXHJcbiAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAnd2lkdGgnOiB3aWR0aCxcclxuICAgICAgICAnaGVpZ2h0JzogaGVpZ2h0XHJcbiAgICAgIH1cIlxyXG4gICAgICAoY2hhcnRJbml0KT1cIm9uQ2hhcnRJbml0KCRldmVudClcIlxyXG4gICAgICBbdGhlbWVdPVwiZGFya1RoZW1lID8gJ2RhcmsnIDogJydcIlxyXG4gICAgPjwvZGl2PiBcclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS2l3aUNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBDaGFydCBPYmplY3QgcmVuZGVyZWQgYnkgdGhlIGNhbnZhcy4gRm9yIGFsbCB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgcmVmZXIgXHJcbiAgICogdG8gQ2hhcnQgaW50ZXJmYWNlIGluIHRoZSBtb2RlbHMgZm9sZGVyLlxyXG4gICAqXHJcbiAgICogQHR5cGUgeyhDaGFydCB8IG51bGwpfVxyXG4gICAqIEBtZW1iZXJvZiBLaXdpQ2hhcnRDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBjaGFydDogQ2hhcnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogV2lkdGggYW5kIEhlaWdodCBvZiB0aGUgY2hhcnQgYXJlYS4gVGhlIGRpbWVuc2lvbnMgcmVmZXIgdG8gdGhlIGZhdGhlciBjb21wb25lbnQgXHJcbiAgICogaW50byB3aGljaCB0aGUga2l3aS1jaGFydCBpcyBpbnNlcnRlZC4gRm9yIGV4YW1wbGUgaW4gYW4gZW1wdHkgcGFnZSB0aGUgd2lkdGgvaGVpZ2h0IFxyXG4gICAqIG9mIHRoZSBjaGFydCBjYW4gdGFrZSB0aGUgd2hvbGUgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBwYWdlLlxyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcxMDAlJztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICc0ODBweCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgcHJvcGVydHkgc2ltcGx5IGFjdGl2YXRlcyBvciBub3QgdGhlIGRhcmsgdGhlbWUgb2YgdGhlIGNoYXJ0XHJcbiAgICogZGVmaW5lZCBieSB0aGUgRWNoYXJ0cyBsaWJyYXJ5LiBJbiBhZGRpdGlvbiB0aGUgYmFja2dyb3VuZCBjb2xvciBjYW4gYmUgY3VzdG9tXHJcbiAgICogc28gdGhhdCB0aGUgY2hhcnQgY2FuIG1hdGNoIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBhcHBsaWNhdGlvbiBpbiB3aGljaCBpdCdzIHVzZWQuXHJcbiAgICpcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgZGFya1RoZW1lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGFya1RoZW1lQmFja2dyb3VuZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3V0cHV0IGV2ZW50IHVzZWQgdG8gZW1pdCB0byB0aGUgZmF0aGVyIGNvbXBvbmVudCB0aGUgY29vcmRpbmF0ZXNcclxuICAgKiBvZiB0aGUgcG9pbnQgY2xpY2tlZCBpbiB0aGUgY2hhcnQgYXJlYS4gVGhpcyBmdW5jdGlvbmFsaXR5IHRvIGJlIHVzZWQgbXVzdFxyXG4gICAqIGhhdmUgdGhlIHByb3BlcnR5IFwiY2xpY2tUb0FkZFBvaW50XCIgaW4gdGhlIENoYXJ0IG9iamVjdCBzZXQgdG8gdHJ1ZS5cclxuICAgKlxyXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8QmFzZVBvaW50Pn1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGFkZFBvaW50OiBFdmVudEVtaXR0ZXI8QmFzZVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QmFzZVBvaW50PigpO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRoZSBjdXJzb3IgaG92ZXJzIHRoZSBjaGFydCBhcmVhIGl0IGVtaXRzIHRvIHRoZSBmYXRoZXIgY29tcG9uZW50IHRoZVxyXG4gICAqIHggYW5kIHkgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhlIGNoYXJ0IHJlZmVyZW5jZSBzeXN0ZW0uXHJcbiAgICpcclxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPEJhc2VQb2ludD59XHJcbiAgICogQG1lbWJlcm9mIEtpd2lDaGFydENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjaGFydEhvdmVyOiBFdmVudEVtaXR0ZXI8QmFzZVBvaW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QmFzZVBvaW50PigpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgb2JqZWN0IHVzZWQgYnkgZWNoYXJ0cyB0byBpbml0aWFsbHkgY3JlYXRlIHRoZSBDaGFydC5cclxuICAgKiBIYXMgYSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgdG90YWxseSBvdmVycmlkZWQgdXNpbmcgc3BlY2lmaWMgcHJvcGVydGllcy5cclxuICAgKlxyXG4gICAqIEB0eXBlIHtFQ2hhcnRzT3B0aW9ufVxyXG4gICAqIEBtZW1iZXJvZiBLaXdpQ2hhcnRDb21wb25lbnRcclxuICAgKi9cclxuICBjaGFydE9wdGlvbjogRUNoYXJ0c09wdGlvbiA9IHtcclxuICAgIHRpdGxlOiB7XHJcbiAgICAgIHRleHQ6ICdLaXdpIENoYXJ0J1xyXG4gICAgfSxcclxuICAgIHhBeGlzOiB7XHJcbiAgICAgIG5hbWU6ICdYJ1xyXG4gICAgfSxcclxuICAgIHlBeGlzOiB7XHJcbiAgICAgIG5hbWU6ICdZJ1xyXG4gICAgfSxcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogVHJhY2VUeXBlLkxJTkUsXHJcbiAgICAgICAgZGF0YTogW1swLCAwXV1cclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgQ2hhcnQuXHJcbiAgICpcclxuICAgKiBAdHlwZSB7KEVDaGFydHMgfCBudWxsKX1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZWNoYXJ0c0luc3RhbmNlOiBFQ2hhcnRzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgdG8gcGVyZm9ybSBhY3Rpb25zIChhcyBwb2ludCBhZGRpdGlvbiBiYXNlZCBvbiB0aGUgY3Vyc29yIHBvc2l0aW9uKSBvbiB0aGUgY2hhcnQuXHJcbiAgICpcclxuICAgKiBAdHlwZSB7KHpyZW5kZXIuWlJlbmRlclR5cGUgfCBudWxsKX1cclxuICAgKiBAbWVtYmVyb2YgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgenI6IHpyZW5kZXIuWlJlbmRlclR5cGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViamVjdCB1c2VkIHRvIHVuc3Vic2NyaWJlIG9uY2UgdGhlIGNvbXBvbmVudCBnZXRzIGRlc3Ryb3llZC5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQHR5cGUge1N1YmplY3Q8dm9pZD59XHJcbiAgICogQG1lbWJlcm9mIEtpd2lDaGFydENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmF1bHQgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgY2FuIGhhdmVcclxuICAgKiB0aGUgdmFsdWVzIG9uIHRoZSB4IGFuZCB5IGF4ZXMuXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICogQG1lbWJlcm9mIEtpd2lDaGFydENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX0RFQ0lNQUxTOiBudW1iZXIgPSAzO1xyXG5cclxuICBwcml2YXRlIGxlZ2VuZFNlbGVjdGVkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIHByaXZhdGUgaXNMZWdlbmRDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8qKiBcclxuICAgICAqIFRoaXMgaXMgYSBtYW51YWwgY2hhbmdlIGRldGVjdGlvbiBydW5uaW5nIGV2ZXJ5IDIwMG1zLCB0aGUgbWVtb3J5IHNob3VsZCBub3QgYmUgbXVjaCBhZmZsaWN0ZWQuXHJcbiAgICAgKiBJdCdzIG5lY2Vzc2FyeSBiZWNhdXNlIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgY2hhcnQgKGZvciBleGFtcGxlIGFkZFBvaW50KSxcclxuICAgICAqIEFuZ3VsYXIgbG9zZXMgdGhlIGNoYW5nZSBkZXRlY3Rpb24gYW5kIHRoZSBwb2ludCBpcyBub3QgYWRkZWQgaW4gdGhlIGNoYXJ0IGNhbnZhcy5cclxuICAgICAqL1xyXG4gICAgaW50ZXJ2YWwoMjAwKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNoYXJ0SW5pdChlYzogRUNoYXJ0cykge1xyXG4gICAgdGhpcy5lY2hhcnRzSW5zdGFuY2UgPSBlYztcclxuICAgIHRoaXMuc2V0dXBackV2ZW50SGFuZGxlcihlYyk7XHJcbiAgICB0aGlzLnNldHVwTGVnZW5kRXZlbnRIYW5kbGVyKGVjKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGludGVyY2VwdCBhIHNlbGVjdGlvbiBjaGFuZ2UgZXZlbnQgb24gdGhlIGxlZ2VuZCBhbmQgc2F2ZSB0aGUgc3RhdGUgXHJcbiAgICogb2YgYWxsIHNlbGVjdGlvbnMgb24gdGhlIHN1cHBvcnRpbmcgdmFyaWFibGUgbGVnZW5kU2VsZWN0ZWRcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZWMgXHJcbiAgICovXHJcbiAgc2V0dXBMZWdlbmRFdmVudEhhbmRsZXIoZWM6IEVDaGFydHMpIHtcclxuICAgIGlmKHRoaXMuZWNoYXJ0c0luc3RhbmNlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5lY2hhcnRzSW5zdGFuY2Uub24oJ2xlZ2VuZHNlbGVjdGNoYW5nZWQnLCAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzTGVnZW5kQ2xpY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRTZWxlY3RlZCA9IHBhcmFtcy5zZWxlY3RlZDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAgXHJcbiAgfVxyXG5cclxuICBzZXR1cFpyRXZlbnRIYW5kbGVyKGVjOiBFQ2hhcnRzKSB7XHJcbiAgICB0aGlzLnpyID0gZWMuZ2V0WnIoKTtcclxuICAgIC8qKiBcclxuICAgICAqIEludGVyY2VwdHMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBjaGFydCAoaWYgdGhlIGNsaWNrVG9BZGRQb2ludCBwcm9wZXJ0eSBpcyBzZXQgdG8gdHJ1ZSlcclxuICAgICAqIGFuZCBlbWl0cyB0aGUgcG9pbnQgY29vcmRpbmF0ZXMgdG8gdGhlIGZhdGhlciBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHRoaXMuenIub24oJ2NsaWNrJywgcGFyYW1zID0+IHtcclxuICAgICAgbGV0IG9wdGlvbjogYW55ID0gZWMuZ2V0T3B0aW9uKCk7XHJcbiAgICAgIGxldCBhY3RpdmUgPSBvcHRpb24/LnRvb2xib3g/LlswXT8uZmVhdHVyZT8ubXlBZGRQb2ludD8uaWNvblN0YXR1cztcclxuICAgICAgaWYgKGFjdGl2ZSAmJiB0aGlzLmNoYXJ0Py5jbGlja1RvQWRkUG9pbnQpIHtcclxuICAgICAgICBjb25zdCBwb2ludEluUGl4ZWwgPSBbcGFyYW1zLm9mZnNldFgsIHBhcmFtcy5vZmZzZXRZXTtcclxuICAgICAgICBjb25zdCBwb2ludEluR3JpZCA9IGVjLmNvbnZlcnRGcm9tUGl4ZWwoJ2dyaWQnLCBwb2ludEluUGl4ZWwpO1xyXG4gICAgICAgIGlmIChlYy5jb250YWluUGl4ZWwoJ2dyaWQnLCBwb2ludEluUGl4ZWwpICYmIHBvaW50SW5HcmlkKSB7XHJcbiAgICAgICAgICBsZXQgbmV3UG9pbnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfSA9IHtcclxuICAgICAgICAgICAgeDogK3BvaW50SW5HcmlkWzBdLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICAgIHk6ICtwb2ludEluR3JpZFsxXS50b0ZpeGVkKDMpXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5hZGRQb2ludC5lbWl0KG5ld1BvaW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLyoqIFxyXG4gICAgICogVGhpcyBpcyB1c2VkIHBlcmZvcm0gY3VzdG9tIGFjdGlvbnMgd2hlbiB0aGUgbW91c2UgaXMgaG92ZXJpbmcgdGhlIGNoYXJ0IGFyZWFcclxuICAgICAqL1xyXG4gICAgdGhpcy56ci5vbignbW91c2Vtb3ZlJywgcGFyYW1zID0+IHtcclxuICAgICAgY29uc3QgcG9pbnRJblBpeGVsID0gW3BhcmFtcy5vZmZzZXRYLCBwYXJhbXMub2Zmc2V0WV07XHJcbiAgICAgIGNvbnN0IHBvaW50SW5HcmlkID0gZWMuY29udmVydEZyb21QaXhlbCgnZ3JpZCcsIHBvaW50SW5QaXhlbCk7XHJcbiAgICAgIC8qIFxyXG4gICAgICAgKiBMb2dpYyB0byBlbWl0IHRvIHRoZSBmYXRoZXIgY29tcG9uZW50IHRoZSB4IGFuZCB5IGNkaW5hdGVzIHdoZW4gdGhlXHJcbiAgICAgICAqIGN1cnNvciBpcyBob3ZlcmluZyB0aGUgY2hhcnQgYXJlYSAuXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAoZWMuY29udGFpblBpeGVsKCdncmlkJywgcG9pbnRJblBpeGVsKSAmJiBwb2ludEluR3JpZCkge1xyXG4gICAgICAgIGxldCBuZXdQb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9ID0ge1xyXG4gICAgICAgICAgeDogK3BvaW50SW5HcmlkWzBdLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICB5OiArcG9pbnRJbkdyaWRbMV0udG9GaXhlZCgzKVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jaGFydEhvdmVyLmVtaXQobmV3UG9pbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIC8qIExvZ2ljIHRvIGNoYW5nZSB0aGUgY3Vyc29yIGljb24gd2hlbiB0aGUgXCJDbGljayB0byBBZGQgUG9pbnRcIiBmZWF0dXJlIGlzIGFjdGl2ZSBhbmQgdmljZXZlcnNhLiAqL1xyXG4gICAgICBjb25zdCBvcHRpb246IGFueSA9IGVjLmdldE9wdGlvbigpO1xyXG4gICAgICBjb25zdCBhZGRQb2ludElzQWN0aXZlID0gb3B0aW9uPy50b29sYm94Py5bMF0/LmZlYXR1cmU/Lm15QWRkUG9pbnQ/Lmljb25TdGF0dXM7XHJcbiAgICAgIGlmIChhZGRQb2ludElzQWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy56cj8uc2V0Q3Vyc29yU3R5bGUoXHJcbiAgICAgICAgICBlYy5jb250YWluUGl4ZWwoJ2dyaWQnLCBwb2ludEluUGl4ZWwpID8gJ2NvcHknIDogJ2RlZmF1bHQnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRMZWdlbmRJdGVtU2VsZWN0aW9uKHNoYXBlOiBTaGFwZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYodGhpcy5pc0xlZ2VuZENsaWNrZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGVnZW5kU2VsZWN0ZWRbc2hhcGUubmFtZSBhcyBzdHJpbmddID8/IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHNoYXBlLnNlbGVjdGVkQnlEZWZhdWx0ID8/IHRydWVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGxldCBjaGFydDogQ2hhcnQgPSBjaGFuZ2VzWydjaGFydCddPy5jdXJyZW50VmFsdWU7XHJcbiAgICBpZiAoY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydE9wdGlvbiA9IHtcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgdGV4dDogY2hhcnQudGl0bGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBncmlkOiB7XHJcbiAgICAgICAgICB3aWR0aDogJzcwJSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5kYXJrVGhlbWUgPyB0aGlzLmRhcmtUaGVtZUJhY2tncm91bmQgPz8gJyMzMDMwMzAnIDogJ3RyYW5zcGFyZW50JywgdG9vbHRpcDoge1xyXG4gICAgICAgICAgYXhpc1BvaW50ZXI6IHtcclxuICAgICAgICAgICAgdHlwZTogJ2Nyb3NzJyxcclxuICAgICAgICAgICAgY3Jvc3NTdHlsZToge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAnI2JlYmViZSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbGJveDoge1xyXG4gICAgICAgICAgb3JpZW50OiAnaG9yaXpvbnRhbCcsXHJcbiAgICAgICAgICBsZWZ0OiAnY2VudGVyJyxcclxuICAgICAgICAgIHRvcDogJzI1cHgnLFxyXG4gICAgICAgICAgZmVhdHVyZToge1xyXG4gICAgICAgICAgICBkYXRhWm9vbToge1xyXG4gICAgICAgICAgICAgIGJydXNoU3R5bGU6IHtcclxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnIzAwMCcsXHJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMSxcclxuICAgICAgICAgICAgICAgIGJvcmRlclR5cGU6ICdkYXNoZWQnXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBlbXBoYXNpczoge1xyXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRleHRQb3NpdGlvbjogJ3RvcCdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNhdmVBc0ltYWdlOiB7XHJcbiAgICAgICAgICAgICAgZW1waGFzaXM6IHtcclxuICAgICAgICAgICAgICAgIGljb25TdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICB0ZXh0UG9zaXRpb246ICd0b3AnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZXN0b3JlOiB7XHJcbiAgICAgICAgICAgICAgZW1waGFzaXM6IHtcclxuICAgICAgICAgICAgICAgIGljb25TdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICB0ZXh0UG9zaXRpb246ICd0b3AnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBteUFkZFBvaW50OiB7XHJcbiAgICAgICAgICAgICAgc2hvdzogY2hhcnQuY2xpY2tUb0FkZFBvaW50ID8/IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiBjaGFydC5hZGRQb2ludEN1c3RvbU5hbWUgPz8gJ0FkZCBQb2ludCcsXHJcbiAgICAgICAgICAgICAgaWNvbjogdGhpcy5kYXJrVGhlbWUgPyBBRERfUE9JTlRfSU1HX09GRl9EQVJLIDogQUREX1BPSU5UX0lNR19PRkZfTElHSFQsXHJcbiAgICAgICAgICAgICAgaWNvblN0YXR1czogZmFsc2UsXHJcbiAgICAgICAgICAgICAgb25jbGljazogKCkgPT4geyAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGxldCBvcHRpb246IGFueSA9IHRoaXMuZWNoYXJ0c0luc3RhbmNlPy5nZXRPcHRpb24oKTtcclxuICAgICAgICAgICAgICAgIGxldCBzdGF0dXMgPSBvcHRpb24udG9vbGJveFswXS5mZWF0dXJlLm15QWRkUG9pbnQuaWNvblN0YXR1cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZWNoYXJ0c0luc3RhbmNlPy5zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICAgICAgICB0b29sYm94OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbXlBZGRQb2ludDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhdHVzOiAhc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAhc3RhdHVzID8gQUREX1BPSU5UX0lNR19PTiA6IHRoaXMuZGFya1RoZW1lID8gQUREX1BPSU5UX0lNR19PRkZfREFSSyA6IEFERF9QT0lOVF9JTUdfT0ZGX0xJR0hUXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVtcGhhc2lzOiB7IFxyXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRleHRQb3NpdGlvbjogJ3RvcCdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhWm9vbTogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiAnaW5zaWRlJyxcclxuICAgICAgICAgICAgeEF4aXNJbmRleDogWzBdLFxyXG4gICAgICAgICAgICB0aHJvdHRsZTogMCxcclxuICAgICAgICAgICAgZmlsdGVyTW9kZTogJ25vbmUnLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogIWNoYXJ0LnNjcm9sbFRvWm9vbSA/PyB0cnVlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiAnaW5zaWRlJyxcclxuICAgICAgICAgICAgeUF4aXNJbmRleDogWzBdLFxyXG4gICAgICAgICAgICB0aHJvdHRsZTogMCxcclxuICAgICAgICAgICAgZmlsdGVyTW9kZTogJ25vbmUnLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogIWNoYXJ0LnNjcm9sbFRvWm9vbSA/PyB0cnVlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBpbmFjdGl2ZUNvbG9yOiB0aGlzLmRhcmtUaGVtZSA/ICcjOGI4YjhiJyA6ICcjY2NjJyxcclxuICAgICAgICAgIGRhdGE6IGNoYXJ0LnNoYXBlcy5tYXAoXHJcbiAgICAgICAgICAgIChzaGFwZTogU2hhcGUpID0+ICh7XHJcbiAgICAgICAgICAgICAgbmFtZTogc2hhcGUubmFtZSxcclxuICAgICAgICAgICAgICBpY29uOiAnY2lyY2xlJyxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBzZWxlY3RlZDogY2hhcnQuc2hhcGVzLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjY3VtdWxhdG9yLCBzaGFwZTogU2hhcGUpID0+ICh7IFxyXG4gICAgICAgICAgICAgIC4uLmFjY3VtdWxhdG9yLCBcclxuICAgICAgICAgICAgICBbc2hhcGUubmFtZSBhcyBzdHJpbmddOiB0aGlzLmdldExlZ2VuZEl0ZW1TZWxlY3Rpb24oc2hhcGUpLFxyXG4gICAgICAgICAgICB9KSwgXHJcbiAgICAgICAgICB7fSksXHJcbiAgICAgICAgICBzaG93OiBjaGFydC5zaG93TGVnZW5kID8/IGZhbHNlLFxyXG4gICAgICAgICAgb3JpZW50OiAndmVydGljYWwnLFxyXG4gICAgICAgICAgbGVmdDogJ3JpZ2h0JyxcclxuICAgICAgICAgIHBhZGRpbmc6IFs2MCwgMjBdLFxyXG4gICAgICAgICAgdHlwZTogJ3Njcm9sbCcsXHJcbiAgICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxyXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2JyZWFrJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeEF4aXM6IHtcclxuICAgICAgICAgIHR5cGU6IGNoYXJ0LnhBeGlzVHlwZSxcclxuICAgICAgICAgIG5hbWU6IGNoYXJ0LnhBeGlzVW9tID8gYCR7Y2hhcnQueEF4aXNOYW1lfSBbICR7Y2hhcnQueEF4aXNVb219IF1gIDogY2hhcnQueEF4aXNOYW1lLFxyXG4gICAgICAgICAgbmFtZUxvY2F0aW9uOiAnbWlkZGxlJyxcclxuICAgICAgICAgIG5hbWVHYXA6IDMwLFxyXG4gICAgICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgICAgIHNob3c6IGNoYXJ0LnNob3dHcmlkID8/IHRydWUsXHJcbiAgICAgICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB0aGlzLmRhcmtUaGVtZSA/ICcjNTk1OTU5JyA6ICcjY2NjJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbWluOiBjaGFydC54TWluPy50b0ZpeGVkKGNoYXJ0Lm1heEF4ZXNEZWNpbWFscyA/PyB0aGlzLk1BWF9ERUNJTUFMUyksXHJcbiAgICAgICAgICBtYXg6IGNoYXJ0LnhNYXg/LnRvRml4ZWQoY2hhcnQubWF4QXhlc0RlY2ltYWxzID8/IHRoaXMuTUFYX0RFQ0lNQUxTKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHlBeGlzOiB7XHJcbiAgICAgICAgICB0eXBlOiBjaGFydC55QXhpc1R5cGUsXHJcbiAgICAgICAgICBuYW1lOiBjaGFydC55QXhpc1VvbSA/IGAke2NoYXJ0LnlBeGlzTmFtZX0gWyAke2NoYXJ0LnlBeGlzVW9tfSBdYCA6IGNoYXJ0LnlBeGlzTmFtZSxcclxuICAgICAgICAgIG5hbWVMb2NhdGlvbjogJ21pZGRsZScsXHJcbiAgICAgICAgICBuYW1lR2FwOiA1MCxcclxuICAgICAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgICAgICBzaG93OiBjaGFydC5zaG93R3JpZCA/PyB0cnVlLFxyXG4gICAgICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgICAgICBjb2xvcjogdGhpcy5kYXJrVGhlbWUgPyAnIzU5NTk1OScgOiAnI2NjYydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG1pbjogY2hhcnQueU1pbj8udG9GaXhlZChjaGFydC5tYXhBeGVzRGVjaW1hbHMgPz8gdGhpcy5NQVhfREVDSU1BTFMpLFxyXG4gICAgICAgICAgbWF4OiBjaGFydC55TWF4Py50b0ZpeGVkKGNoYXJ0Lm1heEF4ZXNEZWNpbWFscyA/PyB0aGlzLk1BWF9ERUNJTUFMUyksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzZXJpZXM6IHRoaXMuY3JlYXRlU2VyaWVzKGNoYXJ0LnNoYXBlcyksXHJcbiAgICAgICAgYW5pbWF0aW9uOiBjaGFydC5oYXNBbmltYXRpb25zLFxyXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBjaGFydC5hbmltYXRpb25EdXJhdGlvbiA/PyA1MDAsXHJcbiAgICAgICAgYW5pbWF0aW9uRWFzaW5nOiAnY3ViaWNPdXQnXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTZXJpZXMoc2hhcGVzOiBTaGFwZVtdKTogQXJyYXk8TGluZVNlcmllc09wdGlvbiB8IEN1c3RvbVNlcmllc09wdGlvbiB8IFNjYXR0ZXJTZXJpZXNPcHRpb24+IHtcclxuICAgIGxldCBzZXJpZXM6IEFycmF5PExpbmVTZXJpZXNPcHRpb24gfCBDdXN0b21TZXJpZXNPcHRpb24gfCBTY2F0dGVyU2VyaWVzT3B0aW9uPiA9IFtdO1xyXG4gICAgc2hhcGVzLmZvckVhY2goXHJcbiAgICAgIChzaGFwZTogU2hhcGUpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHNoYXBlLnZhcmlhbnQpIHtcclxuICAgICAgICAgIGNhc2UgU2hhcGVWYXJpYW50LlRSQUNFOlxyXG4gICAgICAgICAgICBzZXJpZXMucHVzaCh0aGlzLmNyZWF0ZVRyYWNlKHNoYXBlIGFzIFRyYWNlKSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gc2VyaWVzO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVHJhY2UodHJhY2U6IFRyYWNlKTogTGluZVNlcmllc09wdGlvbiB8IFNjYXR0ZXJTZXJpZXNPcHRpb24ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogdHJhY2UudHlwZSxcclxuICAgICAgbmFtZTogdHJhY2UubmFtZSxcclxuICAgICAgZGF0YTogdHJhY2UucG9pbnRzLm1hcChcclxuICAgICAgICAocG9pbnQ6IFBvaW50KSA9PiAoe1xyXG4gICAgICAgICAgdmFsdWU6IFtwb2ludC54LCBwb2ludC55XSxcclxuICAgICAgICAgIHN5bWJvbDogcG9pbnQuc3ltYm9sID8/ICdjaXJjbGUnLFxyXG4gICAgICAgICAgbmFtZTogcG9pbnQubmFtZSxcclxuICAgICAgICAgIHN5bWJvbFNpemU6IHBvaW50LnN5bWJvbFNpemUgPz8gMixcclxuICAgICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgICBjb2xvcjogcG9pbnQuY29sb3JcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlbXBoYXNpczoge1xyXG4gICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgICAgICAgdmVydGljYWxBbGlnbjogJ2JvdHRvbScsXHJcbiAgICAgICAgICAgIGZvcm1hdHRlcjogKCkgPT4gYCR7cG9pbnQubmFtZSA/PyAnJ31gLFxyXG4gICAgICAgICAgICBmb250U2l6ZTogMTMsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IFswLCAwLCAwLCAxMF0sXHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAsXHJcbiAgICAgICAgICAgIG92ZXJmbG93OiAndHJ1bmNhdGUnLFxyXG4gICAgICAgICAgICBlbGxpcHNpczogJy4uLicsXHJcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcclxuICAgICAgICAgICAgY29sb3I6IHRoaXMuZGFya1RoZW1lID8gJyNmZmYnIDogJyMwMDAnXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgdG9vbHRpcDoge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZXI6ICh7IHZhbHVlIH06IHsgdmFsdWU6IG51bWJlcltdIH0pID0+IGBcclxuICAgICAgICAgICAgICA8c3Ryb25nPiR7dGhpcy5jaGFydD8ueEF4aXNOYW1lfTo8L3N0cm9uZz4gJHt2YWx1ZVswXS50b0ZpeGVkKDMpLnJlcGxhY2UoL1suLF0wMDAkLywgXCJcIil9XHJcbiAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgIDxzdHJvbmc+JHt0aGlzLmNoYXJ0Py55QXhpc05hbWV9Ojwvc3Ryb25nPiAke3ZhbHVlWzFdLnRvRml4ZWQoMykucmVwbGFjZSgvWy4sXTAwMCQvLCBcIlwiKX1cclxuICAgICAgICAgICAgYFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIGNvbG9yOiB0cmFjZS5jb2xvcixcclxuICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgd2lkdGg6IHRyYWNlLndpZHRoLFxyXG4gICAgICAgIHR5cGU6IHRyYWNlLnN0eWxlLFxyXG4gICAgICAgIG9wYWNpdHk6IHRyYWNlLm9wYWNpdHkgPz8gMVxyXG4gICAgICB9LFxyXG4gICAgICBzbW9vdGg6IHRyYWNlLnNtb290aCA/PyBmYWxzZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -21,11 +21,13 @@ echarts.use([
|
|
|
21
21
|
]);
|
|
22
22
|
export class KiwiChartModule {
|
|
23
23
|
}
|
|
24
|
-
KiwiChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
KiwiChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
26
|
-
KiwiChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
KiwiChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25
|
+
KiwiChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartModule, declarations: [KiwiChartComponent], imports: [CommonModule, i1.NgxEchartsModule], exports: [KiwiChartComponent] });
|
|
26
|
+
KiwiChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartModule, imports: [[
|
|
27
|
+
CommonModule,
|
|
28
|
+
NgxEchartsModule.forRoot({ echarts })
|
|
29
|
+
]] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: KiwiChartModule, decorators: [{
|
|
29
31
|
type: NgModule,
|
|
30
32
|
args: [{
|
|
31
33
|
declarations: [
|
|
@@ -40,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
|
|
|
40
42
|
]
|
|
41
43
|
}]
|
|
42
44
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l3aWJpdC9jaGFydC9zcmMvbGliL2NoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ1YsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsU0FBUztJQUNULGNBQWM7SUFDZCxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixZQUFZO0NBQ2IsQ0FBQyxDQUFDO0FBZUgsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFWeEIsa0JBQWtCLGFBR2xCLFlBQVksa0NBSVosa0JBQWtCOzZHQUdULGVBQWUsWUFSakI7WUFDUCxZQUFZO1lBQ1osZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDdEM7MkZBS1UsZUFBZTtrQkFaM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBLaXdpQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5neEVjaGFydHNNb2R1bGUgfSBmcm9tICduZ3gtZWNoYXJ0cyc7XHJcbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSAnZWNoYXJ0cy9jb3JlJztcclxuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQsIFRvb2x0aXBDb21wb25lbnQsIEdyaWRDb21wb25lbnQsIExlZ2VuZENvbXBvbmVudCwgRGF0YVpvb21Db21wb25lbnQsIFRvb2xib3hDb21wb25lbnQgfSBmcm9tICdlY2hhcnRzL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBMaW5lQ2hhcnQsIFNjYXR0ZXJDaGFydCB9IGZyb20gJ2VjaGFydHMvY2hhcnRzJztcclxuaW1wb3J0IHsgQ2FudmFzUmVuZGVyZXIgfSBmcm9tICdlY2hhcnRzL3JlbmRlcmVycyc7XHJcbmVjaGFydHMudXNlKFtcclxuICBUaXRsZUNvbXBvbmVudCxcclxuICBUb29sdGlwQ29tcG9uZW50LFxyXG4gIEdyaWRDb21wb25lbnQsXHJcbiAgTGluZUNoYXJ0LFxyXG4gIENhbnZhc1JlbmRlcmVyLFxyXG4gIExlZ2VuZENvbXBvbmVudCxcclxuICBEYXRhWm9vbUNvbXBvbmVudCxcclxuICBUb29sYm94Q29tcG9uZW50LFxyXG4gIFNjYXR0ZXJDaGFydFxyXG5dKTtcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgS2l3aUNoYXJ0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBOZ3hFY2hhcnRzTW9kdWxlLmZvclJvb3QoeyBlY2hhcnRzIH0pXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBLaXdpQ2hhcnRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLaXdpQ2hhcnRNb2R1bGUgeyB9XHJcbiJdfQ==
|