ca-components 1.0.57 → 1.0.58
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/esm2022/lib/components/ca-chart/ca-chart.component.mjs +107 -33
- package/esm2022/lib/components/ca-chart/enums/chart-colors.enum.mjs +1 -1
- package/esm2022/lib/components/ca-chart/enums/chart-event-properties.enum.mjs +3 -1
- package/esm2022/lib/components/ca-chart/enums/chart-font-properties.enum.mjs +6 -0
- package/esm2022/lib/components/ca-chart/enums/index.mjs +2 -1
- package/esm2022/lib/components/ca-chart/models/chart-base-dataset.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/models/chart-config.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/utils/helpers/chart.helper.mjs +17 -26
- package/esm2022/lib/components/ca-collapsible-filter/ca-collapsible-filter.component.mjs +76 -0
- package/esm2022/lib/components/ca-filters/ca-filter.component.mjs +17 -4
- package/esm2022/lib/components/ca-filters/pipes/filter-conditions-user-box.pipe.mjs +4 -2
- package/esm2022/lib/components/ca-filters/pipes/filter-popover-conditions.pipe.mjs +1 -2
- package/esm2022/lib/components/ca-input/ca-input.component.mjs +2 -2
- package/esm2022/lib/components/ca-input/config/ca-input.config.mjs +1 -1
- package/esm2022/lib/components/ca-input/pipes/input-placeholder-icon-right.pipe.mjs +11 -1
- package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +2 -2
- package/esm2022/lib/components/ca-progress-range/ca-progress-range.component.mjs +38 -19
- package/esm2022/lib/components/ca-progress-range/enums/index.mjs +2 -1
- package/esm2022/lib/components/ca-progress-range/enums/progress-range-tooltip-position.enum.mjs +6 -0
- package/esm2022/lib/components/ca-progress-range/models/index.mjs +1 -2
- package/esm2022/lib/components/ca-progress-range/utils/constants/ca-progress-range.constants.mjs +6 -1
- package/esm2022/lib/components/ca-progress-range/utils/directives/index.mjs +4 -0
- package/esm2022/lib/components/ca-progress-range/utils/directives/progress-range-svg.directive.mjs +42 -0
- package/esm2022/lib/components/ca-progress-range/utils/directives/progress-range-tooltip-arrow-position.directive.mjs +34 -0
- package/esm2022/lib/components/ca-progress-range/utils/directives/progress-range-tooltip.directive.mjs +45 -0
- package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.mjs +2 -2
- package/esm2022/lib/pipes/dropdown-load-status-color.pipe.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +397 -101
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-chart/ca-chart.component.d.ts +1 -0
- package/lib/components/ca-chart/enums/chart-colors.enum.d.ts +1 -0
- package/lib/components/ca-chart/enums/chart-event-properties.enum.d.ts +3 -1
- package/lib/components/ca-chart/enums/chart-font-properties.enum.d.ts +4 -0
- package/lib/components/ca-chart/enums/index.d.ts +1 -0
- package/lib/components/ca-chart/models/chart-base-dataset.model.d.ts +2 -1
- package/lib/components/ca-chart/models/chart-config.model.d.ts +2 -0
- package/lib/components/ca-chart/utils/helpers/chart.helper.d.ts +2 -3
- package/lib/components/ca-collapsible-filter/ca-collapsible-filter.component.d.ts +20 -0
- package/lib/components/ca-filters/ca-filter.component.d.ts +4 -1
- package/lib/components/ca-filters/pipes/filter-conditions-user-box.pipe.d.ts +2 -1
- package/lib/components/ca-input/config/ca-input.config.d.ts +1 -0
- package/lib/components/ca-progress-range/ca-progress-range.component.d.ts +14 -9
- package/lib/components/ca-progress-range/enums/index.d.ts +1 -0
- package/lib/components/ca-progress-range/enums/progress-range-tooltip-position.enum.d.ts +4 -0
- package/lib/components/ca-progress-range/models/index.d.ts +0 -1
- package/lib/components/ca-progress-range/utils/constants/ca-progress-range.constants.d.ts +5 -0
- package/lib/components/ca-progress-range/utils/directives/index.d.ts +3 -0
- package/lib/components/ca-progress-range/utils/directives/progress-range-svg.directive.d.ts +12 -0
- package/lib/components/ca-progress-range/utils/directives/progress-range-tooltip-arrow-position.directive.d.ts +14 -0
- package/lib/components/ca-progress-range/utils/directives/progress-range-tooltip.directive.d.ts +15 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/assets/ca-components/svg/progress-range/progress-range-last-price-bar.svg +13 -6
- package/esm2022/lib/components/ca-progress-range/models/progress-range-data.model.mjs +0 -2
- package/lib/components/ca-progress-range/models/progress-range-data.model.d.ts +0 -8
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Component, Input, ViewChild, } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { Chart, } from 'chart.js/auto';
|
|
4
3
|
import { AngularSvgIconModule } from 'angular-svg-icon';
|
|
5
|
-
//
|
|
6
|
-
import {
|
|
7
|
-
|
|
4
|
+
// Charts
|
|
5
|
+
import { Chart, } from 'chart.js/auto';
|
|
6
|
+
import annotationPlugin from 'chartjs-plugin-annotation';
|
|
7
|
+
// Enums
|
|
8
|
+
import { ChartEventProperties, ChartPluginIdsStringEnum, CubicInterpolationStringEnum, ChartEventTypesStringEnum, ChartFontPropertiesStringEnum, } from './enums';
|
|
9
|
+
// Helpers
|
|
8
10
|
import { ChartHelper } from './utils/helpers';
|
|
9
|
-
//Guards
|
|
11
|
+
// Guards
|
|
10
12
|
import { ChartTypeGuard } from './utils/guards';
|
|
11
13
|
//Config
|
|
12
14
|
import { CaBaseChartDatasetConfig } from './config';
|
|
@@ -16,7 +18,17 @@ import * as i2 from "angular-svg-icon";
|
|
|
16
18
|
export class CaChartComponent {
|
|
17
19
|
set chartConfig(value) {
|
|
18
20
|
this._chartConfig = value;
|
|
19
|
-
this.isChartDataAvailable =
|
|
21
|
+
this.isChartDataAvailable = false;
|
|
22
|
+
this._chartConfig.chartData.datasets.forEach((item) => {
|
|
23
|
+
item.data.forEach((value) => {
|
|
24
|
+
if (Array.isArray(value)) {
|
|
25
|
+
if (value[0] !== 0 || value[1] !== 0)
|
|
26
|
+
this.isChartDataAvailable = true;
|
|
27
|
+
}
|
|
28
|
+
else if (value !== 0)
|
|
29
|
+
this.isChartDataAvailable = true;
|
|
30
|
+
});
|
|
31
|
+
});
|
|
20
32
|
}
|
|
21
33
|
//for testing hover state on dataset
|
|
22
34
|
set isDatasetHovered(value) {
|
|
@@ -30,13 +42,17 @@ export class CaChartComponent {
|
|
|
30
42
|
this.isChartDataAvailable = true;
|
|
31
43
|
}
|
|
32
44
|
ngOnChanges(changes) {
|
|
33
|
-
if (this.isChartDataAvailable &&
|
|
34
|
-
!changes['chartConfig'].firstChange)
|
|
45
|
+
if (this.isChartDataAvailable && !changes['chartConfig'].firstChange)
|
|
35
46
|
this.updateChart();
|
|
36
47
|
}
|
|
37
48
|
ngAfterViewInit() {
|
|
38
|
-
if (this.isChartDataAvailable)
|
|
49
|
+
if (this.isChartDataAvailable) {
|
|
50
|
+
this.initializeAnnotationPlugin();
|
|
39
51
|
this.createChart();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
initializeAnnotationPlugin() {
|
|
55
|
+
Chart.register(annotationPlugin);
|
|
40
56
|
}
|
|
41
57
|
updateDatasetBackgroundOnHover(dataSetLabel, color, isDatasetHovered) {
|
|
42
58
|
if (isDatasetHovered) {
|
|
@@ -71,40 +87,69 @@ export class CaChartComponent {
|
|
|
71
87
|
this.setChartOptionsProperties();
|
|
72
88
|
this.setChartDataProperties();
|
|
73
89
|
this.setChartPluginsProperties();
|
|
74
|
-
const yAxis = this._chartConfig.chartOptions.scales?.['y-axis-0'];
|
|
75
|
-
const max = Number(yAxis?.max) || 0;
|
|
76
|
-
const min = Number(yAxis?.min) || 0.01;
|
|
77
90
|
this.chart = new Chart(this.chartContext, {
|
|
78
91
|
type: this._chartConfig.chartType,
|
|
79
|
-
data:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
data: this._chartConfig.chartData,
|
|
93
|
+
options: this._chartConfig.chartOptions,
|
|
94
|
+
plugins: this.plugins,
|
|
95
|
+
});
|
|
96
|
+
this.chart.config.data.datasets = [
|
|
97
|
+
...this._chartConfig?.
|
|
98
|
+
chartData?.
|
|
99
|
+
datasets?.map((item, indx) => {
|
|
100
|
+
if (!item.shiftValue)
|
|
83
101
|
return {
|
|
84
102
|
...item,
|
|
85
|
-
backgroundColor: item?.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
ChartHelper.normalize(item.shiftValue, min, max) :
|
|
90
|
-
0) : item?.color1,
|
|
103
|
+
backgroundColor: item?.color &&
|
|
104
|
+
item?.color2 &&
|
|
105
|
+
item?.color !== item?.color2 ?
|
|
106
|
+
ChartHelper.createGradient(this.chartContext, this.chartCanvas, item?.color, item?.color2) : item?.color,
|
|
91
107
|
fill: item?.fill || false
|
|
92
108
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
109
|
+
this._chartConfig.chartOptions.plugins = {
|
|
110
|
+
...this._chartConfig.chartOptions.plugins,
|
|
111
|
+
annotation: {
|
|
112
|
+
annotations: {
|
|
113
|
+
...this._chartConfig.chartOptions.plugins?.annotation?.annotations,
|
|
114
|
+
[item.label]: {
|
|
115
|
+
id: `annotation-${indx}`,
|
|
116
|
+
type: 'line',
|
|
117
|
+
scaleID: item.yAxisId || 'y-axis-0',
|
|
118
|
+
value: item.shiftValue,
|
|
119
|
+
borderColor: item.color,
|
|
120
|
+
borderWidth: item.borderWidth || 2,
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
const yScale = this.chart.scales[ChartEventProperties.Y_AXIS_0];
|
|
126
|
+
const shiftValuePx = yScale.getPixelForValue(item.shiftValue || 0);
|
|
127
|
+
return {
|
|
128
|
+
...item,
|
|
129
|
+
backgroundColor: ChartHelper.createGradientWithShiftValue(this.chartContext, this.chartCanvas, item.color || '', item.color2 || '', shiftValuePx / (yScale.bottom + yScale.top), true),
|
|
130
|
+
borderColor: ChartHelper.createGradientWithShiftValue(this.chartContext, this.chartCanvas, item.color || '', item.color2 || '', shiftValuePx / (yScale.bottom + yScale.top)),
|
|
131
|
+
fill: true
|
|
132
|
+
};
|
|
133
|
+
})
|
|
134
|
+
];
|
|
135
|
+
this.chart.update();
|
|
98
136
|
}
|
|
99
137
|
updateChart() {
|
|
100
138
|
this.chart?.destroy();
|
|
101
139
|
this.createChart();
|
|
102
140
|
}
|
|
103
141
|
setChartOptionsProperties() {
|
|
142
|
+
const labels = this._chartConfig.chartData.labels;
|
|
104
143
|
this._chartConfig.chartOptions = {
|
|
105
144
|
responsive: true,
|
|
106
145
|
maintainAspectRatio: false,
|
|
107
146
|
clip: false,
|
|
147
|
+
layout: {
|
|
148
|
+
padding: {
|
|
149
|
+
top: 0,
|
|
150
|
+
bottom: -25
|
|
151
|
+
}
|
|
152
|
+
},
|
|
108
153
|
plugins: {
|
|
109
154
|
legend: {
|
|
110
155
|
display: false,
|
|
@@ -112,7 +157,33 @@ export class CaChartComponent {
|
|
|
112
157
|
},
|
|
113
158
|
scales: {
|
|
114
159
|
x: {
|
|
115
|
-
|
|
160
|
+
title: {
|
|
161
|
+
display: true,
|
|
162
|
+
},
|
|
163
|
+
position: 'bottom',
|
|
164
|
+
grid: {
|
|
165
|
+
display: false,
|
|
166
|
+
},
|
|
167
|
+
ticks: {
|
|
168
|
+
padding: 0,
|
|
169
|
+
color: "#919191" /* ChartColorsStringEnum.X_AXIS_LABEL_COLOR */,
|
|
170
|
+
font: {
|
|
171
|
+
size: 11,
|
|
172
|
+
family: ChartFontPropertiesStringEnum.FONT_FAMILY_MONTSERRAT,
|
|
173
|
+
weight: ChartFontPropertiesStringEnum.FONT_WEIGHT_BOLDER,
|
|
174
|
+
},
|
|
175
|
+
autoSkip: true,
|
|
176
|
+
autoSkipPadding: 12,
|
|
177
|
+
maxRotation: 0,
|
|
178
|
+
minRotation: 0,
|
|
179
|
+
//ispis lable u 2 reda za dane - ceka se dizaj za prikaz dana
|
|
180
|
+
callback: function (value, index) {
|
|
181
|
+
const label = labels[index];
|
|
182
|
+
const multiLineLabel = label ? label.split(' ') : [];
|
|
183
|
+
return multiLineLabel;
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
display: this._chartConfig.showXAxisLabels,
|
|
116
187
|
beginAtZero: true,
|
|
117
188
|
offset: true,
|
|
118
189
|
},
|
|
@@ -128,6 +199,7 @@ export class CaChartComponent {
|
|
|
128
199
|
setChartDataProperties() {
|
|
129
200
|
if ((this._chartConfig.chartType = "line" /* ChartTypesStringEnum.LINE */)) {
|
|
130
201
|
this._chartConfig.chartData.datasets.forEach((dataset) => {
|
|
202
|
+
dataset.order = dataset.order;
|
|
131
203
|
if (ChartTypeGuard.isLineDataset(dataset)) {
|
|
132
204
|
dataset.tension = dataset.tension ?? 0.5;
|
|
133
205
|
dataset.cubicInterpolationMode =
|
|
@@ -151,6 +223,9 @@ export class CaChartComponent {
|
|
|
151
223
|
{
|
|
152
224
|
id: ChartPluginIdsStringEnum.HIGHLIGHT_SEGMENT_ON_HOVER,
|
|
153
225
|
afterEvent: (chart, event) => {
|
|
226
|
+
if (!this._chartConfig.showTooltipBackground) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
154
229
|
const nativeEvent = event.event.native;
|
|
155
230
|
if (event.event.type === ChartEventTypesStringEnum.MOUSE_OUT &&
|
|
156
231
|
hoveredIndex !== null) {
|
|
@@ -191,10 +266,9 @@ export class CaChartComponent {
|
|
|
191
266
|
chartData.datasets.forEach((dataset, index) => {
|
|
192
267
|
if (dataset.type == "line" /* ChartTypesStringEnum.LINE */ ||
|
|
193
268
|
dataset.type == "bar" /* ChartTypesStringEnum.BAR */) {
|
|
194
|
-
const yAxisID = this._chartConfig.isMultiYAxis
|
|
195
|
-
`y-axis-${index}`
|
|
196
|
-
dataset.yAxisId ||
|
|
197
|
-
'y-axis-0';
|
|
269
|
+
const yAxisID = this._chartConfig.isMultiYAxis
|
|
270
|
+
? `y-axis-${index}`
|
|
271
|
+
: dataset.yAxisId || 'y-axis-0';
|
|
198
272
|
chartData.datasets[index] = {
|
|
199
273
|
...dataset,
|
|
200
274
|
yAxisID,
|
|
@@ -234,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
234
308
|
}], isDatasetHovered: [{
|
|
235
309
|
type: Input
|
|
236
310
|
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU87QUFDUCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUV4Qiw0QkFBNEIsRUFDNUIseUJBQXlCLEdBQzFCLE1BQU0sU0FBUyxDQUFDO0FBRWpCLFNBQVM7QUFDVCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVVoRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBVXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsSUFBYSxXQUFXLENBQUMsS0FBMEI7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFD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QUFDLE1BQU07b0JBQ3hDLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1QsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLEdBQUcsRUFBRSxnQkFBZ0I7d0JBQ3JCLEdBQUcsRUFBRSxnQkFBZ0I7d0JBQ3JCLHFFQUFxRTt3QkFDckUsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUztxQkFDckM7aUJBQ0YsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTdSVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix1UkN0RDdCLGdvQkF5QkEsOEdEMkJZLFlBQVksdU5BQUUsb0JBQW9COzs0RkFFakMsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLGNBQWMsY0FHWixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUM7MEVBR25CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFFWCxXQUFXO3NCQUF2QixLQUFLO2dCQU1PLGdCQUFnQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnQsXG4gIENoYXJ0VHlwZSxcbiAgTGluZWFyU2NhbGUsXG4gIFBsdWdpbixcbn0gZnJvbSAnY2hhcnQuanMvYXV0byc7XG5pbXBvcnQgeyBBbnlPYmplY3QgfSBmcm9tICdjaGFydC5qcy9kaXN0L3R5cGVzL2Jhc2ljJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vRW51bXNcbmltcG9ydCB7XG4gIENoYXJ0Q29sb3JzU3RyaW5nRW51bSxcbiAgQ2hhcnRFdmVudFByb3BlcnRpZXMsXG4gIENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bSxcbiAgQ2hhcnRUeXBlc1N0cmluZ0VudW0sXG4gIEN1YmljSW50ZXJwb2xhdGlvblN0cmluZ0VudW0sXG4gIENoYXJ0RXZlbnRUeXBlc1N0cmluZ0VudW0sXG59IGZyb20gJy4vZW51bXMnO1xuXG4vL0hlbHBlcnNcbmltcG9ydCB7IENoYXJ0SGVscGVyIH0gZnJvbSAnLi91dGlscy9oZWxwZXJzJztcblxuLy9HdWFyZHNcbmltcG9ydCB7IENoYXJ0VHlwZUd1YXJkIH0gZnJvbSAnLi91dGlscy9ndWFyZHMnO1xuXG4vL01vZGVsc1xuaW1wb3J0IHtcbiAgSUNoYXJ0RGF0YSxcbiAgSUxpbmVEYXRhc2V0LFxuICBJQ2hhcnRDb25maWd1cmF0aW9uLFxuICBJQmFzZURhdGFzZXRcbn0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vL0NvbmZpZ1xuaW1wb3J0IHsgQ2FCYXNlQ2hhcnREYXRhc2V0Q29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFuZ3VsYXJTdmdJY29uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpIGNoYXJ0Q2FudmFzITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBzZXQgY2hhcnRDb25maWcodmFsdWU6IElDaGFydENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLl9jaGFydENvbmZpZyA9IHZhbHVlO1xuICAgIHRoaXMuaXNDaGFydERhdGFBdmFpbGFibGUgPSB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEuZGF0YXNldHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8vZm9yIHRlc3RpbmcgaG92ZXIgc3RhdGUgb24gZGF0YXNldFxuICBASW5wdXQoKSBzZXQgaXNEYXRhc2V0SG92ZXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzRGF0YXNldEhvdmVyZWQgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy51cGRhdGVEYXRhc2V0QmFja2dyb3VuZE9uSG92ZXIoXG4gICAgICAgICdTYWxlcycsXG4gICAgICAgICcjNjY5MkYxJyxcbiAgICAgICAgdGhpcy5faXNEYXRhc2V0SG92ZXJlZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0ITogQ2hhcnQ7XG4gIHByaXZhdGUgY2hhcnRDb250ZXh0ITogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICBwcml2YXRlIHBsdWdpbnM/OiBQbHVnaW48Q2hhcnRUeXBlLCBBbnlPYmplY3Q+W107XG4gIHByaXZhdGUgX2lzRGF0YXNldEhvdmVyZWQhOiBib29sZWFuO1xuICBwcml2YXRlIG9yaWdpbmFsQ2hhcnREYXRhc2V0ID1cbiAgICBDYUJhc2VDaGFydERhdGFzZXRDb25maWcuZ2V0QmFzZUNoYXJ0RGF0YXNldENvbmZpZygpO1xuXG4gIHB1YmxpYyBfY2hhcnRDb25maWchOiBJQ2hhcnRDb25maWd1cmF0aW9uO1xuICBwdWJsaWMgaXNDaGFydERhdGFBdmFpbGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNDaGFydERhdGFBdmFpbGFibGUgJiZcbiAgICAgICFjaGFuZ2VzWydjaGFydENvbmZpZyddLmZpcnN0Q2hhbmdlXG4gICAgKVxuICAgICAgdGhpcy51cGRhdGVDaGFydCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlKVxuICAgICAgdGhpcy5jcmVhdGVDaGFydCgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURhdGFzZXRCYWNrZ3JvdW5kT25Ib3ZlcihcbiAgICBkYXRhU2V0TGFiZWw6IHN0cmluZyxcbiAgICBjb2xvcjogc3RyaW5nLFxuICAgIGlzRGF0YXNldEhvdmVyZWQ6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKGlzRGF0YXNldEhvdmVyZWQpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxDaGFydERhdGFzZXQgPSBKU09OLnBhcnNlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEuZGF0YXNldHMpXG4gICAgICApO1xuICAgICAgY29uc3QgZ3JhZGllbnQgPSBDaGFydEhlbHBlci5jcmVhdGVHcmFkaWVudChcbiAgICAgICAgdGhpcy5jaGFydENvbnRleHQsXG4gICAgICAgIHRoaXMuY2hhcnRDYW52YXMsXG4gICAgICAgIGNvbG9yLFxuICAgICAgICBjb2xvclxuICAgICAgKTtcbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cyA9XG4gICAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cy5tYXAoKGRhdGFzZXQpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YXNldC5sYWJlbCA9PT0gZGF0YVNldExhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgICAgICBmaWxsOiB0cnVlLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGdyYWRpZW50LFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogY29sb3IsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJDb2xvcldpdGhPcGFjaXR5ID0gQ2hhcnRIZWxwZXIucmdiVG9SZ2JhKFxuICAgICAgICAgICAgICBkYXRhc2V0LmJvcmRlckNvbG9yLFxuICAgICAgICAgICAgICAwLjJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgICAgICBmaWxsOiBmYWxzZSxcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGJvcmRlckNvbG9yV2l0aE9wYWNpdHksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlXG4gICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEuZGF0YXNldHMgPSBKU09OLnBhcnNlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLm9yaWdpbmFsQ2hhcnREYXRhc2V0KVxuICAgICAgKTtcblxuICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNoYXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnRDb250ZXh0ID0gdGhpcy5jaGFydENhbnZhcy5uYXRpdmVFbGVtZW50LmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5zZXRDaGFydE9wdGlvbnNQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5zZXRDaGFydERhdGFQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5zZXRDaGFydFBsdWdpbnNQcm9wZXJ0aWVzKCk7XG5cbiAgICBjb25zdCB5QXhpcyA9IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0T3B0aW9ucy5zY2FsZXM/LlsneS1heGlzLTAnXTtcbiAgICBjb25zdCBtYXggPSBOdW1iZXIoeUF4aXM/Lm1heCkgfHwgMDtcbiAgICBjb25zdCBtaW4gPSBOdW1iZXIoeUF4aXM/Lm1pbikgfHwgMC4wMTtcblxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydENvbnRleHQsIHtcbiAgICAgIHR5cGU6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0VHlwZSxcbiAgICAgIGRhdGE6XG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YSxcbiAgICAgICAgZGF0YXNldHM6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cy5tYXAoKGl0ZW06IElCYXNlRGF0YXNldCkgPT4ge1xuICAgICAgICAgIGl0ZW0uc2hpZnRWYWx1ZVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBpdGVtPy5jb2xvcjEgJiYgaXRlbT8uY29sb3IyID9cbiAgICAgICAgICAgICAgQ2hhcnRIZWxwZXIuY3JlYXRlQ3VzdG9tR3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFydENvbnRleHQsXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFydENhbnZhcyxcbiAgICAgICAgICAgICAgICBpdGVtPy5jb2xvcjEsXG4gICAgICAgICAgICAgICAgaXRlbT8uY29sb3IyLFxuICAgICAgICAgICAgICAgIC8vIFRPRE8gYWRqdXN0LCBoYXZlIHRoaXMgcGFyYW0gc29tZXRoaW5nIGxpa2UgdGhpczpcbiAgICAgICAgICAgICAgICBpdGVtLnNoaWZ0VmFsdWUgP1xuICAgICAgICAgICAgICAgICAgQ2hhcnRIZWxwZXIubm9ybWFsaXplKGl0ZW0uc2hpZnRWYWx1ZSwgbWluLCBtYXgpIDpcbiAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICkgOiBpdGVtPy5jb2xvcjEsXG4gICAgICAgICAgICBmaWxsOiBpdGVtPy5maWxsIHx8IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0T3B0aW9ucyxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydD8uZGVzdHJveSgpO1xuICAgIHRoaXMuY3JlYXRlQ2hhcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRPcHRpb25zUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMgPSB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBjbGlwOiBmYWxzZSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICBvZmZzZXQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgbWF4OiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGFydERhdGFQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmICgodGhpcy5fY2hhcnRDb25maWcuY2hhcnRUeXBlID0gQ2hhcnRUeXBlc1N0cmluZ0VudW0uTElORSkpIHtcbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cy5mb3JFYWNoKChkYXRhc2V0KSA9PiB7XG4gICAgICAgIGlmIChDaGFydFR5cGVHdWFyZC5pc0xpbmVEYXRhc2V0KGRhdGFzZXQpKSB7XG4gICAgICAgICAgZGF0YXNldC50ZW5zaW9uID0gZGF0YXNldC50ZW5zaW9uID8/IDAuNTtcbiAgICAgICAgICBkYXRhc2V0LmN1YmljSW50ZXJwb2xhdGlvbk1vZGUgPVxuICAgICAgICAgICAgZGF0YXNldC5jdWJpY0ludGVycG9sYXRpb25Nb2RlID8/XG4gICAgICAgICAgICBDdWJpY0ludGVycG9sYXRpb25TdHJpbmdFbnVtLk1PTk9UT05FO1xuICAgICAgICAgIGRhdGFzZXQucG9pbnRCb3JkZXJDb2xvciA9XG4gICAgICAgICAgICBkYXRhc2V0LnBvaW50Qm9yZGVyQ29sb3IgPz8gQ2hhcnRDb2xvcnNTdHJpbmdFbnVtLlRSQU5TUEFSRU5UO1xuICAgICAgICAgIGRhdGFzZXQucG9pbnRCYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgZGF0YXNldC5wb2ludEJhY2tncm91bmRDb2xvciA/PyBDaGFydENvbG9yc1N0cmluZ0VudW0uVFJBTlNQQVJFTlQ7XG4gICAgICAgICAgZGF0YXNldC5wb2ludEJvcmRlcldpZHRoID0gZGF0YXNldC5wb2ludEJvcmRlcldpZHRoID8/IDI7XG4gICAgICAgICAgZGF0YXNldC5zcGFuR2FwcyA9IGRhdGFzZXQuc3BhbkdhcHMgPz8gZmFsc2U7XG4gICAgICAgICAgZGF0YXNldC5zaG93TGluZSA9IGRhdGFzZXQuc2hvd0xpbmUgPz8gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnNldE11bHRpcGxlWUF4aXModGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENoYXJ0UGx1Z2luc1Byb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgbGV0IGhvdmVyZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICB0aGlzLnBsdWdpbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiBDaGFydFBsdWdpbklkc1N0cmluZ0VudW0uSElHSExJR0hUX1NFR01FTlRfT05fSE9WRVIsXG4gICAgICAgIGFmdGVyRXZlbnQ6IChjaGFydCwgZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBuYXRpdmVFdmVudCA9IGV2ZW50LmV2ZW50Lm5hdGl2ZSBhcyBNb3VzZUV2ZW50O1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuZXZlbnQudHlwZSA9PT0gQ2hhcnRFdmVudFR5cGVzU3RyaW5nRW51bS5NT1VTRV9PVVQgJiZcbiAgICAgICAgICAgIGhvdmVyZWRJbmRleCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaG92ZXJlZEluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuZHJhdygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1vdXNlSG9yaXpvbnRhbENvb3JkaW5hdGUgPSBuYXRpdmVFdmVudFtDaGFydEV2ZW50UHJvcGVydGllcy5YXTtcbiAgICAgICAgICBjb25zdCB4U2NhbGUgPSB0aGlzLmNoYXJ0LnNjYWxlc1tDaGFydEV2ZW50UHJvcGVydGllcy5YXSBhc1xuICAgICAgICAgICAgfCBDYXRlZ29yeVNjYWxlXG4gICAgICAgICAgICB8IExpbmVhclNjYWxlO1xuXG4gICAgICAgICAgY29uc3QgdGlja1Bvc2l0aW9ucyA9IENoYXJ0SGVscGVyLmNhbGN1bGF0ZVRpY2tQb3NpdGlvbnMoeFNjYWxlKTtcbiAgICAgICAgICBjb25zdCBuZXdIb3ZlcmVkSW5kZXggPSB0aWNrUG9zaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgICAgICh0aWNrUG9zKSA9PlxuICAgICAgICAgICAgICBtb3VzZUhvcml6b250YWxDb29yZGluYXRlID5cbiAgICAgICAgICAgICAgdGlja1BvcyAtICh0aWNrUG9zaXRpb25zWzFdIC0gdGlja1Bvc2l0aW9uc1swXSkgLyAyICYmXG4gICAgICAgICAgICAgIG1vdXNlSG9yaXpvbnRhbENvb3JkaW5hdGUgPD1cbiAgICAgICAgICAgICAgdGlja1BvcyArICh0aWNrUG9zaXRpb25zWzFdIC0gdGlja1Bvc2l0aW9uc1swXSkgLyAyXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChuZXdIb3ZlcmVkSW5kZXggIT09IGhvdmVyZWRJbmRleCkge1xuICAgICAgICAgICAgaG92ZXJlZEluZGV4ID0gbmV3SG92ZXJlZEluZGV4ID09PSAtMSA/IG51bGwgOiBuZXdIb3ZlcmVkSW5kZXg7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0LmRyYXcoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGJlZm9yZURyYXc6ICgpID0+IHtcbiAgICAgICAgICBpZiAoaG92ZXJlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIGNoYXJ0QXJlYSxcbiAgICAgICAgICAgICAgc2NhbGVzOiB7IHg6IHhTY2FsZSB9LFxuICAgICAgICAgICAgfSA9IHRoaXMuY2hhcnQ7XG4gICAgICAgICAgICBDaGFydEhlbHBlci5oaWdobGlnaHRTZWdtZW50KFxuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgICAgICAgeFNjYWxlIGFzIENhdGVnb3J5U2NhbGUgfCBMaW5lYXJTY2FsZSxcbiAgICAgICAgICAgICAgY2hhcnRBcmVhLFxuICAgICAgICAgICAgICB0aGlzLl9jaGFydENvbmZpZy5oZWlnaHQsXG4gICAgICAgICAgICAgIGhvdmVyZWRJbmRleFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogQ2hhcnRQbHVnaW5JZHNTdHJpbmdFbnVtLkhJR0hMSUdIVF9QT0lOVF9PTl9IT1ZFUixcbiAgICAgICAgYWZ0ZXJEcmF3OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGhvdmVyZWRJbmRleCAhPT0gbnVsbClcbiAgICAgICAgICAgIENoYXJ0SGVscGVyLmhpZ2hsaWdodFBvaW50KFxuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgICAgICAgdGhpcy5jaGFydCxcbiAgICAgICAgICAgICAgaG92ZXJlZEluZGV4LFxuICAgICAgICAgICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGFcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHNldE11bHRpcGxlWUF4aXMoY2hhcnREYXRhOiBJQ2hhcnREYXRhPElMaW5lRGF0YXNldD4pOiB2b2lkIHtcbiAgICBsZXQgYWJzb2x1dGVNYXg6IG51bWJlcjtcbiAgICBjaGFydERhdGEuZGF0YXNldHMuZm9yRWFjaCgoZGF0YXNldCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgZGF0YXNldC50eXBlID09IENoYXJ0VHlwZXNTdHJpbmdFbnVtLkxJTkUgfHxcbiAgICAgICAgZGF0YXNldC50eXBlID09IENoYXJ0VHlwZXNTdHJpbmdFbnVtLkJBUlxuICAgICAgKSB7XG5cbiAgICAgICAgY29uc3QgeUF4aXNJRCA9IHRoaXMuX2NoYXJ0Q29uZmlnLmlzTXVsdGlZQXhpcyA/XG4gICAgICAgICAgYHktYXhpcy0ke2luZGV4fWAgOlxuICAgICAgICAgIGRhdGFzZXQueUF4aXNJZCB8fFxuICAgICAgICAgICd5LWF4aXMtMCc7XG5cbiAgICAgICAgY2hhcnREYXRhLmRhdGFzZXRzW2luZGV4XSA9IHtcbiAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgIHlBeGlzSUQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1pblZhbHVlID0gQ2hhcnRIZWxwZXIuY2FsY3VsYXRlTWluVmFsdWUoZGF0YXNldC5kYXRhIGFzIG51bWJlcltdKTtcbiAgICAgICAgY29uc3QgbWF4VmFsdWUgPSBDaGFydEhlbHBlci5jYWxjdWxhdGVNYXhWYWx1ZShkYXRhc2V0LmRhdGEgYXMgbnVtYmVyW10pO1xuICAgICAgICBpZiAoIWFic29sdXRlTWF4IHx8IG1heFZhbHVlID4gYWJzb2x1dGVNYXgpIGFic29sdXRlTWF4ID0gbWF4VmFsdWU7XG4gICAgICAgIGNvbnN0IHBhZGRpbmcgPSBtYXhWYWx1ZSAqIDAuMDM7XG4gICAgICAgIGNvbnN0IG1pblZhbHVlQWRqdXN0ZWQgPSBwYWRkaW5nID09IDAgPyBtaW5WYWx1ZSArIDAuMSA6IDA7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlQWRqdXN0ZWQgPSBhYnNvbHV0ZU1heCArIHBhZGRpbmc7XG5cbiAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnRPcHRpb25zLnNjYWxlcyA9IHtcbiAgICAgICAgICAuLi50aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMuc2NhbGVzLFxuICAgICAgICAgIFt5QXhpc0lEXToge1xuICAgICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICAgIG1pbjogbWluVmFsdWVBZGp1c3RlZCxcbiAgICAgICAgICAgIG1heDogbWF4VmFsdWVBZGp1c3RlZCxcbiAgICAgICAgICAgIC8vIE92byBqZSBqYWtvIGJpdG5vLCBtb3JhbW8gb3Z1IG9zdSBzYSBzdGFja2VkIHBhcmFtZXRyb20gbmFtamVzdGl0aVxuICAgICAgICAgICAgc3RhY2tlZDogdGhpcy5fY2hhcnRDb25maWcuaXNTdGFja2VkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NoYXJ0RGF0YUF2YWlsYWJsZTsgZWxzZSBub0RhdGFUZW1wbGF0ZVwiPlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgaGVpZ2h0OiBfY2hhcnRDb25maWcuaGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiBfY2hhcnRDb25maWcud2lkdGggKyAnJScsXG4gICAgfVwiXG4gID5cbiAgICA8Y2FudmFzICNjaGFydENhbnZhcz4gPC9jYW52YXM+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI25vRGF0YVRlbXBsYXRlPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgIGhlaWdodDogX2NoYXJ0Q29uZmlnLmhlaWdodCArICdweCcsXG4gICAgICB3aWR0aDogX2NoYXJ0Q29uZmlnLndpZHRoICsgJyUnLFxuICAgIH1cIlxuICA+XG4gICAgPHN2Zy1pY29uXG4gICAgICBbc3JjXT1cIl9jaGFydENvbmZpZy5ub0RhdGFJbWFnZVwiXG4gICAgICBhbHQ9XCJObyBkYXRhIGF2YWlsYWJsZVwiXG4gICAgICBjbGFzcz1cIm5vLWRhdGEtc3ZnXCJcbiAgICA+PC9zdmctaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxTQUFTO0FBQ1QsT0FBTyxFQUVMLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLGdCQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBRXpELFFBQVE7QUFDUixPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUV4Qiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDZCQUE2QixHQUM5QixNQUFNLFNBQVMsQ0FBQztBQUVqQixVQUFVO0FBQ1YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLFNBQVM7QUFDVCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFVaEQsUUFBUTtBQUNSLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQVNwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLElBQWEsV0FBVyxDQUFDLEtBQTBCO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxL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QixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRVgsV0FBVztzQkFBdkIsS0FBSztnQkFrQk8sZ0JBQWdCO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBbnlPYmplY3QgfSBmcm9tICdjaGFydC5qcy9kaXN0L3R5cGVzL2Jhc2ljJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIENoYXJ0c1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnQsXG4gIENoYXJ0VHlwZSxcbiAgTGluZWFyU2NhbGUsXG4gIFBsdWdpbixcbn0gZnJvbSAnY2hhcnQuanMvYXV0byc7XG5pbXBvcnQgYW5ub3RhdGlvblBsdWdpbiBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcblxuLy8gRW51bXNcbmltcG9ydCB7XG4gIENoYXJ0Q29sb3JzU3RyaW5nRW51bSxcbiAgQ2hhcnRFdmVudFByb3BlcnRpZXMsXG4gIENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bSxcbiAgQ2hhcnRUeXBlc1N0cmluZ0VudW0sXG4gIEN1YmljSW50ZXJwb2xhdGlvblN0cmluZ0VudW0sXG4gIENoYXJ0RXZlbnRUeXBlc1N0cmluZ0VudW0sXG4gIENoYXJ0Rm9udFByb3BlcnRpZXNTdHJpbmdFbnVtLFxufSBmcm9tICcuL2VudW1zJztcblxuLy8gSGVscGVyc1xuaW1wb3J0IHsgQ2hhcnRIZWxwZXIgfSBmcm9tICcuL3V0aWxzL2hlbHBlcnMnO1xuXG4vLyBHdWFyZHNcbmltcG9ydCB7IENoYXJ0VHlwZUd1YXJkIH0gZnJvbSAnLi91dGlscy9ndWFyZHMnO1xuXG4vL01vZGVsc1xuaW1wb3J0IHtcbiAgSUNoYXJ0RGF0YSxcbiAgSUxpbmVEYXRhc2V0LFxuICBJQ2hhcnRDb25maWd1cmF0aW9uLFxuICBJQmFzZURhdGFzZXRcbn0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vL0NvbmZpZ1xuaW1wb3J0IHsgQ2FCYXNlQ2hhcnREYXRhc2V0Q29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2EtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2EtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBbmd1bGFyU3ZnSWNvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENhQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnY2hhcnRDYW52YXMnKSBjaGFydENhbnZhcyE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgc2V0IGNoYXJ0Q29uZmlnKHZhbHVlOiBJQ2hhcnRDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5fY2hhcnRDb25maWcgPSB2YWx1ZTtcbiAgICB0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzLmZvckVhY2goKGl0ZW06IElCYXNlRGF0YXNldCkgPT4ge1xuICAgICAgaXRlbS5kYXRhLmZvckVhY2goKHZhbHVlOiBudW1iZXIgfCBudW1iZXJbXSkgPT4ge1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGlmICh2YWx1ZVswXSAhPT0gMCB8fCB2YWx1ZVsxXSAhPT0gMClcbiAgICAgICAgICAgIHRoaXMuaXNDaGFydERhdGFBdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpZiAodmFsdWUgIT09IDApXG4gICAgICAgICAgICB0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlID0gdHJ1ZTtcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8vZm9yIHRlc3RpbmcgaG92ZXIgc3RhdGUgb24gZGF0YXNldFxuICBASW5wdXQoKSBzZXQgaXNEYXRhc2V0SG92ZXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzRGF0YXNldEhvdmVyZWQgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy51cGRhdGVEYXRhc2V0QmFja2dyb3VuZE9uSG92ZXIoXG4gICAgICAgICdTYWxlcycsXG4gICAgICAgICcjNjY5MkYxJyxcbiAgICAgICAgdGhpcy5faXNEYXRhc2V0SG92ZXJlZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0ITogQ2hhcnQ7XG4gIHByaXZhdGUgY2hhcnRDb250ZXh0ITogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICBwcml2YXRlIHBsdWdpbnM/OiBQbHVnaW48Q2hhcnRUeXBlLCBBbnlPYmplY3Q+W107XG4gIHByaXZhdGUgX2lzRGF0YXNldEhvdmVyZWQhOiBib29sZWFuO1xuICBwcml2YXRlIG9yaWdpbmFsQ2hhcnREYXRhc2V0ID1cbiAgICBDYUJhc2VDaGFydERhdGFzZXRDb25maWcuZ2V0QmFzZUNoYXJ0RGF0YXNldENvbmZpZygpO1xuXG4gIHB1YmxpYyBfY2hhcnRDb25maWchOiBJQ2hhcnRDb25maWd1cmF0aW9uO1xuICBwdWJsaWMgaXNDaGFydERhdGFBdmFpbGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlICYmICFjaGFuZ2VzWydjaGFydENvbmZpZyddLmZpcnN0Q2hhbmdlKVxuICAgICAgdGhpcy51cGRhdGVDaGFydCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVBbm5vdGF0aW9uUGx1Z2luKCk7XG4gICAgICB0aGlzLmNyZWF0ZUNoYXJ0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQW5ub3RhdGlvblBsdWdpbigpOiB2b2lkIHtcbiAgICBDaGFydC5yZWdpc3Rlcihhbm5vdGF0aW9uUGx1Z2luKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEYXRhc2V0QmFja2dyb3VuZE9uSG92ZXIoXG4gICAgZGF0YVNldExhYmVsOiBzdHJpbmcsXG4gICAgY29sb3I6IHN0cmluZyxcbiAgICBpc0RhdGFzZXRIb3ZlcmVkOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmIChpc0RhdGFzZXRIb3ZlcmVkKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsQ2hhcnREYXRhc2V0ID0gSlNPTi5wYXJzZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGdyYWRpZW50ID0gQ2hhcnRIZWxwZXIuY3JlYXRlR3JhZGllbnQoXG4gICAgICAgIHRoaXMuY2hhcnRDb250ZXh0LFxuICAgICAgICB0aGlzLmNoYXJ0Q2FudmFzLFxuICAgICAgICBjb2xvcixcbiAgICAgICAgY29sb3JcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cyA9XG4gICAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cy5tYXAoKGRhdGFzZXQpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YXNldC5sYWJlbCA9PT0gZGF0YVNldExhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgICAgICBmaWxsOiB0cnVlLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGdyYWRpZW50LFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogY29sb3IsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJDb2xvcldpdGhPcGFjaXR5ID0gQ2hhcnRIZWxwZXIucmdiVG9SZ2JhKFxuICAgICAgICAgICAgICBkYXRhc2V0LmJvcmRlckNvbG9yLFxuICAgICAgICAgICAgICAwLjJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgICAgICBmaWxsOiBmYWxzZSxcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGJvcmRlckNvbG9yV2l0aE9wYWNpdHksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlXG4gICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEuZGF0YXNldHMgPSBKU09OLnBhcnNlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLm9yaWdpbmFsQ2hhcnREYXRhc2V0KVxuICAgICAgKTtcblxuICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNoYXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnRDb250ZXh0ID0gdGhpcy5jaGFydENhbnZhcy5uYXRpdmVFbGVtZW50LmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5zZXRDaGFydE9wdGlvbnNQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5zZXRDaGFydERhdGFQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5zZXRDaGFydFBsdWdpbnNQcm9wZXJ0aWVzKCk7XG5cbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRDb250ZXh0LCB7XG4gICAgICB0eXBlOiB0aGlzLl9jaGFydENvbmZpZy5jaGFydFR5cGUsXG4gICAgICBkYXRhOiB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEsXG4gICAgICBvcHRpb25zOiB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMsXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYXJ0LmNvbmZpZy5kYXRhLmRhdGFzZXRzID0gW1xuICAgICAgLi4udGhpcy5fY2hhcnRDb25maWc/LlxuICAgICAgICBjaGFydERhdGE/LlxuICAgICAgICBkYXRhc2V0cz8ubWFwKChpdGVtOiBJQmFzZURhdGFzZXQsIGluZHg6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5zaGlmdFZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOlxuICAgICAgICAgICAgICAgIGl0ZW0/LmNvbG9yICYmXG4gICAgICAgICAgICAgICAgICBpdGVtPy5jb2xvcjIgJiZcbiAgICAgICAgICAgICAgICAgIGl0ZW0/LmNvbG9yICE9PSBpdGVtPy5jb2xvcjIgP1xuICAgICAgICAgICAgICAgICAgQ2hhcnRIZWxwZXIuY3JlYXRlR3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnRDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q2FudmFzLFxuICAgICAgICAgICAgICAgICAgICBpdGVtPy5jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgaXRlbT8uY29sb3IyICxcbiAgICAgICAgICAgICAgICAgICkgOiBpdGVtPy5jb2xvcixcbiAgICAgICAgICAgICAgZmlsbDogaXRlbT8uZmlsbCB8fCBmYWxzZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnRPcHRpb25zLnBsdWdpbnMgPSB7XG4gICAgICAgICAgICAuLi50aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMucGx1Z2lucyxcbiAgICAgICAgICAgIGFubm90YXRpb246IHtcbiAgICAgICAgICAgICAgYW5ub3RhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMucGx1Z2lucz8uYW5ub3RhdGlvbj8uYW5ub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgW2l0ZW0ubGFiZWxdOiB7XG4gICAgICAgICAgICAgICAgICBpZDogYGFubm90YXRpb24tJHtpbmR4fWAsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgICAgICAgICAgICBzY2FsZUlEOiBpdGVtLnlBeGlzSWQgfHwgJ3ktYXhpcy0wJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnNoaWZ0VmFsdWUsXG4gICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogaXRlbS5jb2xvcixcbiAgICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoOiBpdGVtLmJvcmRlcldpZHRoIHx8IDIsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCB5U2NhbGUgPSB0aGlzLmNoYXJ0LnNjYWxlc1tDaGFydEV2ZW50UHJvcGVydGllcy5ZX0FYSVNfMF0gYXNcbiAgICAgICAgICAgIHwgQ2F0ZWdvcnlTY2FsZVxuICAgICAgICAgICAgfCBMaW5lYXJTY2FsZTtcbiAgICAgICAgICBjb25zdCBzaGlmdFZhbHVlUHg6IG51bWJlciA9IHlTY2FsZS5nZXRQaXhlbEZvclZhbHVlKGl0ZW0uc2hpZnRWYWx1ZSB8fCAwKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBDaGFydEhlbHBlci5jcmVhdGVHcmFkaWVudFdpdGhTaGlmdFZhbHVlKFxuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgICAgICAgdGhpcy5jaGFydENhbnZhcyxcbiAgICAgICAgICAgICAgaXRlbS5jb2xvciB8fCAnJyxcbiAgICAgICAgICAgICAgaXRlbS5jb2xvcjIgfHwgJycsXG4gICAgICAgICAgICAgIHNoaWZ0VmFsdWVQeCAvICh5U2NhbGUuYm90dG9tICsgeVNjYWxlLnRvcCksXG4gICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBib3JkZXJDb2xvcjpcbiAgICAgICAgICAgICAgQ2hhcnRIZWxwZXIuY3JlYXRlR3JhZGllbnRXaXRoU2hpZnRWYWx1ZShcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q2FudmFzLFxuICAgICAgICAgICAgICAgIGl0ZW0uY29sb3IgfHwgJycsXG4gICAgICAgICAgICAgICAgaXRlbS5jb2xvcjIgfHwgJycsXG4gICAgICAgICAgICAgICAgc2hpZnRWYWx1ZVB4IC8gKHlTY2FsZS5ib3R0b20gKyB5U2NhbGUudG9wKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgZmlsbDogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICBdO1xuICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNoYXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnQ/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNyZWF0ZUNoYXJ0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldENoYXJ0T3B0aW9uc1Byb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbGFiZWxzID0gdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmxhYmVscztcbiAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMgPSB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBjbGlwOiBmYWxzZSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGJvdHRvbTogLTI1XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIGxlZ2VuZDoge1xuICAgICAgICAgIGRpc3BsYXk6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNjYWxlczoge1xuICAgICAgICB4OiB7XG4gICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgIGNvbG9yOiBDaGFydENvbG9yc1N0cmluZ0VudW0uWF9BWElTX0xBQkVMX0NPTE9SLFxuICAgICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgICBzaXplOiAxMSxcbiAgICAgICAgICAgICAgZmFtaWx5OiBDaGFydEZvbnRQcm9wZXJ0aWVzU3RyaW5nRW51bS5GT05UX0ZBTUlMWV9NT05UU0VSUkFULFxuICAgICAgICAgICAgICB3ZWlnaHQ6IENoYXJ0Rm9udFByb3BlcnRpZXNTdHJpbmdFbnVtLkZPTlRfV0VJR0hUX0JPTERFUixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdXRvU2tpcDogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9Ta2lwUGFkZGluZzogMTIsXG4gICAgICAgICAgICBtYXhSb3RhdGlvbjogMCxcbiAgICAgICAgICAgIG1pblJvdGF0aW9uOiAwLFxuICAgICAgICAgICAgLy9pc3BpcyBsYWJsZSB1IDIgcmVkYSB6YSBkYW5lIC0gY2VrYSBzZSBkaXphaiB6YSBwcmlrYXogZGFuYVxuICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGxhYmVsc1tpbmRleF07XG4gICAgICAgICAgICAgIGNvbnN0IG11bHRpTGluZUxhYmVsID0gbGFiZWwgPyBsYWJlbC5zcGxpdCgnICcpIDogW107XG4gICAgICAgICAgICAgIHJldHVybiBtdWx0aUxpbmVMYWJlbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkaXNwbGF5OiB0aGlzLl9jaGFydENvbmZpZy5zaG93WEF4aXNMYWJlbHMsXG4gICAgICAgICAgYmVnaW5BdFplcm86IHRydWUsXG4gICAgICAgICAgb2Zmc2V0OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB5OiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgICAgYmVnaW5BdFplcm86IHRydWUsXG4gICAgICAgICAgbWluOiAwLFxuICAgICAgICAgIG1heDogMSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnREYXRhUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0VHlwZSA9IENoYXJ0VHlwZXNTdHJpbmdFbnVtLkxJTkUpKSB7XG4gICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEuZGF0YXNldHMuZm9yRWFjaCgoZGF0YXNldCkgPT4ge1xuICAgICAgICBkYXRhc2V0Lm9yZGVyID0gZGF0YXNldC5vcmRlcjtcbiAgICAgICAgaWYgKENoYXJ0VHlwZUd1YXJkLmlzTGluZURhdGFzZXQoZGF0YXNldCkpIHtcbiAgICAgICAgICBkYXRhc2V0LnRlbnNpb24gPSBkYXRhc2V0LnRlbnNpb24gPz8gMC41O1xuICAgICAgICAgIGRhdGFzZXQuY3ViaWNJbnRlcnBvbGF0aW9uTW9kZSA9XG4gICAgICAgICAgICBkYXRhc2V0LmN1YmljSW50ZXJwb2xhdGlvbk1vZGUgPz9cbiAgICAgICAgICAgIEN1YmljSW50ZXJwb2xhdGlvblN0cmluZ0VudW0uTU9OT1RPTkU7XG4gICAgICAgICAgZGF0YXNldC5wb2ludEJvcmRlckNvbG9yID1cbiAgICAgICAgICAgIGRhdGFzZXQucG9pbnRCb3JkZXJDb2xvciA/PyBDaGFydENvbG9yc1N0cmluZ0VudW0uVFJBTlNQQVJFTlQ7XG4gICAgICAgICAgZGF0YXNldC5wb2ludEJhY2tncm91bmRDb2xvciA9XG4gICAgICAgICAgICBkYXRhc2V0LnBvaW50QmFja2dyb3VuZENvbG9yID8/IENoYXJ0Q29sb3JzU3RyaW5nRW51bS5UUkFOU1BBUkVOVDtcbiAgICAgICAgICBkYXRhc2V0LnBvaW50Qm9yZGVyV2lkdGggPSBkYXRhc2V0LnBvaW50Qm9yZGVyV2lkdGggPz8gMjtcbiAgICAgICAgICBkYXRhc2V0LnNwYW5HYXBzID0gZGF0YXNldC5zcGFuR2FwcyA/PyBmYWxzZTtcbiAgICAgICAgICBkYXRhc2V0LnNob3dMaW5lID0gZGF0YXNldC5zaG93TGluZSA/PyB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2V0TXVsdGlwbGVZQXhpcyh0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRQbHVnaW5zUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBsZXQgaG92ZXJlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHRoaXMucGx1Z2lucyA9IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bS5ISUdITElHSFRfU0VHTUVOVF9PTl9IT1ZFUixcbiAgICAgICAgYWZ0ZXJFdmVudDogKGNoYXJ0LCBldmVudCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5fY2hhcnRDb25maWcuc2hvd1Rvb2x0aXBCYWNrZ3JvdW5kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbmF0aXZlRXZlbnQgPSBldmVudC5ldmVudC5uYXRpdmUgYXMgTW91c2VFdmVudDtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50LnR5cGUgPT09IENoYXJ0RXZlbnRUeXBlc1N0cmluZ0VudW0uTU9VU0VfT1VUICYmXG4gICAgICAgICAgICBob3ZlcmVkSW5kZXggIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRJbmRleCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0LmRyYXcoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBtb3VzZUhvcml6b250YWxDb29yZGluYXRlID0gbmF0aXZlRXZlbnRbQ2hhcnRFdmVudFByb3BlcnRpZXMuWF07XG4gICAgICAgICAgY29uc3QgeFNjYWxlID0gdGhpcy5jaGFydC5zY2FsZXNbQ2hhcnRFdmVudFByb3BlcnRpZXMuWF0gYXNcbiAgICAgICAgICAgIHwgQ2F0ZWdvcnlTY2FsZVxuICAgICAgICAgICAgfCBMaW5lYXJTY2FsZTtcblxuICAgICAgICAgIGNvbnN0IHRpY2tQb3NpdGlvbnMgPSBDaGFydEhlbHBlci5jYWxjdWxhdGVUaWNrUG9zaXRpb25zKHhTY2FsZSk7XG4gICAgICAgICAgY29uc3QgbmV3SG92ZXJlZEluZGV4ID0gdGlja1Bvc2l0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgICAgICAodGlja1BvcykgPT5cbiAgICAgICAgICAgICAgbW91c2VIb3Jpem9udGFsQ29vcmRpbmF0ZSA+XG4gICAgICAgICAgICAgIHRpY2tQb3MgLSAodGlja1Bvc2l0aW9uc1sxXSAtIHRpY2tQb3NpdGlvbnNbMF0pIC8gMiAmJlxuICAgICAgICAgICAgICBtb3VzZUhvcml6b250YWxDb29yZGluYXRlIDw9XG4gICAgICAgICAgICAgIHRpY2tQb3MgKyAodGlja1Bvc2l0aW9uc1sxXSAtIHRpY2tQb3NpdGlvbnNbMF0pIC8gMlxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobmV3SG92ZXJlZEluZGV4ICE9PSBob3ZlcmVkSW5kZXgpIHtcbiAgICAgICAgICAgIGhvdmVyZWRJbmRleCA9IG5ld0hvdmVyZWRJbmRleCA9PT0gLTEgPyBudWxsIDogbmV3SG92ZXJlZEluZGV4O1xuICAgICAgICAgICAgdGhpcy5jaGFydC5kcmF3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBiZWZvcmVEcmF3OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGhvdmVyZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBjaGFydEFyZWEsXG4gICAgICAgICAgICAgIHNjYWxlczogeyB4OiB4U2NhbGUgfSxcbiAgICAgICAgICAgIH0gPSB0aGlzLmNoYXJ0O1xuICAgICAgICAgICAgQ2hhcnRIZWxwZXIuaGlnaGxpZ2h0U2VnbWVudChcbiAgICAgICAgICAgICAgdGhpcy5jaGFydENvbnRleHQsXG4gICAgICAgICAgICAgIHhTY2FsZSBhcyBDYXRlZ29yeVNjYWxlIHwgTGluZWFyU2NhbGUsXG4gICAgICAgICAgICAgIGNoYXJ0QXJlYSxcbiAgICAgICAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuaGVpZ2h0LFxuICAgICAgICAgICAgICBob3ZlcmVkSW5kZXhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bS5ISUdITElHSFRfUE9JTlRfT05fSE9WRVIsXG4gICAgICAgIGFmdGVyRHJhdzogKCkgPT4ge1xuICAgICAgICAgIGlmIChob3ZlcmVkSW5kZXggIT09IG51bGwpXG4gICAgICAgICAgICBDaGFydEhlbHBlci5oaWdobGlnaHRQb2ludChcbiAgICAgICAgICAgICAgdGhpcy5jaGFydENvbnRleHQsXG4gICAgICAgICAgICAgIHRoaXMuY2hhcnQsXG4gICAgICAgICAgICAgIGhvdmVyZWRJbmRleCxcbiAgICAgICAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRNdWx0aXBsZVlBeGlzKGNoYXJ0RGF0YTogSUNoYXJ0RGF0YTxJTGluZURhdGFzZXQ+KTogdm9pZCB7XG4gICAgbGV0IGFic29sdXRlTWF4OiBudW1iZXI7XG4gICAgY2hhcnREYXRhLmRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGRhdGFzZXQudHlwZSA9PSBDaGFydFR5cGVzU3RyaW5nRW51bS5MSU5FIHx8XG4gICAgICAgIGRhdGFzZXQudHlwZSA9PSBDaGFydFR5cGVzU3RyaW5nRW51bS5CQVJcbiAgICAgICkge1xuICAgICAgICBjb25zdCB5QXhpc0lEID0gdGhpcy5fY2hhcnRDb25maWcuaXNNdWx0aVlBeGlzXG4gICAgICAgICAgPyBgeS1heGlzLSR7aW5kZXh9YFxuICAgICAgICAgIDogZGF0YXNldC55QXhpc0lkIHx8ICd5LWF4aXMtMCc7XG5cbiAgICAgICAgY2hhcnREYXRhLmRhdGFzZXRzW2luZGV4XSA9IHtcbiAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgIHlBeGlzSUQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1pblZhbHVlID0gQ2hhcnRIZWxwZXIuY2FsY3VsYXRlTWluVmFsdWUoXG4gICAgICAgICAgZGF0YXNldC5kYXRhIGFzIG51bWJlcltdXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlID0gQ2hhcnRIZWxwZXIuY2FsY3VsYXRlTWF4VmFsdWUoXG4gICAgICAgICAgZGF0YXNldC5kYXRhIGFzIG51bWJlcltdXG4gICAgICAgICk7XG4gICAgICAgIGlmICghYWJzb2x1dGVNYXggfHwgbWF4VmFsdWUgPiBhYnNvbHV0ZU1heCkgYWJzb2x1dGVNYXggPSBtYXhWYWx1ZTtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IG1heFZhbHVlICogMC4wMztcbiAgICAgICAgY29uc3QgbWluVmFsdWVBZGp1c3RlZCA9IHBhZGRpbmcgPT0gMCA/IG1pblZhbHVlICsgMC4xIDogMDtcbiAgICAgICAgY29uc3QgbWF4VmFsdWVBZGp1c3RlZCA9IGFic29sdXRlTWF4ICsgcGFkZGluZztcblxuICAgICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMuc2NhbGVzID0ge1xuICAgICAgICAgIC4uLnRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0T3B0aW9ucy5zY2FsZXMsXG4gICAgICAgICAgW3lBeGlzSURdOiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLFxuICAgICAgICAgICAgbWluOiBtaW5WYWx1ZUFkanVzdGVkLFxuICAgICAgICAgICAgbWF4OiBtYXhWYWx1ZUFkanVzdGVkLFxuICAgICAgICAgICAgLy8gT3ZvIGplIGpha28gYml0bm8sIG1vcmFtbyBvdnUgb3N1IHNhIHN0YWNrZWQgcGFyYW1ldHJvbSBuYW1qZXN0aXRpXG4gICAgICAgICAgICBzdGFja2VkOiB0aGlzLl9jaGFydENvbmZpZy5pc1N0YWNrZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ2hhcnREYXRhQXZhaWxhYmxlOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IF9jaGFydENvbmZpZy5oZWlnaHQgKyAncHgnLFxuICAgICAgd2lkdGg6IF9jaGFydENvbmZpZy53aWR0aCArICclJyxcbiAgICB9XCJcbiAgPlxuICAgIDxjYW52YXMgI2NoYXJ0Q2FudmFzPiA8L2NhbnZhcz5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgaGVpZ2h0OiBfY2hhcnRDb25maWcuaGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiBfY2hhcnRDb25maWcud2lkdGggKyAnJScsXG4gICAgfVwiXG4gID5cbiAgICA8c3ZnLWljb25cbiAgICAgIFtzcmNdPVwiX2NoYXJ0Q29uZmlnLm5vRGF0YUltYWdlXCJcbiAgICAgIGFsdD1cIk5vIGRhdGEgYXZhaWxhYmxlXCJcbiAgICAgIGNsYXNzPVwibm8tZGF0YS1zdmdcIlxuICAgID48L3N2Zy1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29sb3JzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jaGFydC9lbnVtcy9jaGFydC1jb2xvcnMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gQ2hhcnRDb2xvcnNTdHJpbmdFbnVtIHtcbiAgV0hJVEUgPSAnI0ZGRkZGRicsXG4gIEhPVkVSX1NFR01FTlQgPSAnI0VFRUVFRScsXG4gIFhfQVhJU19MQUJFTF9DT0xPUiA9ICcjOTE5MTkxJyxcbiAgVFJBTlNQQVJFTlQgPSAndHJhbnNwYXJlbnQnLFxufVxuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export var ChartEventProperties;
|
|
2
2
|
(function (ChartEventProperties) {
|
|
3
3
|
ChartEventProperties["X"] = "x";
|
|
4
|
+
ChartEventProperties["Y"] = "y";
|
|
5
|
+
ChartEventProperties["Y_AXIS_0"] = "y-axis-0";
|
|
4
6
|
})(ChartEventProperties || (ChartEventProperties = {}));
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZXZlbnQtcHJvcGVydGllcy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvZW51bXMvY2hhcnQtZXZlbnQtcHJvcGVydGllcy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIsK0JBQU8sQ0FBQTtJQUNQLCtCQUFPLENBQUE7SUFDUCw2Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUkvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENoYXJ0RXZlbnRQcm9wZXJ0aWVzIHtcbiAgICBYID0gJ3gnLFxuICAgIFkgPSAneScsXG4gICAgWV9BWElTXzAgPSAneS1heGlzLTAnXG59Il19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var ChartFontPropertiesStringEnum;
|
|
2
|
+
(function (ChartFontPropertiesStringEnum) {
|
|
3
|
+
ChartFontPropertiesStringEnum["FONT_FAMILY_MONTSERRAT"] = "Montserrat";
|
|
4
|
+
ChartFontPropertiesStringEnum["FONT_WEIGHT_BOLDER"] = "bolder";
|
|
5
|
+
})(ChartFontPropertiesStringEnum || (ChartFontPropertiesStringEnum = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZm9udC1wcm9wZXJ0aWVzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jaGFydC9lbnVtcy9jaGFydC1mb250LXByb3BlcnRpZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSw2QkFHWDtBQUhELFdBQVksNkJBQTZCO0lBQ3JDLHNFQUFxQyxDQUFBO0lBQ3JDLDhEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBR3hDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2hhcnRGb250UHJvcGVydGllc1N0cmluZ0VudW0ge1xuICAgIEZPTlRfRkFNSUxZX01PTlRTRVJSQVQgPSAnTW9udHNlcnJhdCcsXG4gICAgRk9OVF9XRUlHSFRfQk9MREVSID0gJ2JvbGRlcidcbn0iXX0=
|
|
@@ -5,4 +5,5 @@ export * from './chart-plugin-ids.enum';
|
|
|
5
5
|
export * from './chart-event-types.enum';
|
|
6
6
|
export * from './chart-event-properties.enum';
|
|
7
7
|
export * from './chart-images.enum';
|
|
8
|
-
|
|
8
|
+
export * from './chart-font-properties.enum';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jaGFydC9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NoYXJ0LXR5cGVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jdWJpYy1pbnRlcnBvbGF0aW9uLW1vZGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWNvbG9ycy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtcGx1Z2luLWlkcy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtZXZlbnQtdHlwZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWV2ZW50LXByb3BlcnRpZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWltYWdlcy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtZm9udC1wcm9wZXJ0aWVzLmVudW0nO1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYmFzZS1kYXRhc2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvbW9kZWxzL2NoYXJ0LWJhc2UtZGF0YXNldC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnRUeXBlUmVnaXN0cnkgfSBmcm9tICdjaGFydC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJhc2VEYXRhc2V0IHtcbiAgdHlwZToga2V5b2YgQ2hhcnRUeXBlUmVnaXN0cnk7XG4gIG9yZGVyPzogbnVtYmVyO1xuICBsYWJlbDogc3RyaW5nO1xuICBkYXRhOiBudW1iZXJbXSB8IFtudW1iZXIsIG51bWJlcl1bXTtcbiAgYm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIGJvcmRlcldpZHRoPzogbnVtYmVyO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmcgfCBDYW52YXNHcmFkaWVudDtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGNvbG9yRWRnZVZhbHVlPzogbnVtYmVyO1xuICBjb2xvcjI/OiBzdHJpbmc7XG4gIGZpbGw/OiBib29sZWFuO1xuICB5QXhpc0lkPzogc3RyaW5nO1xuICBzaGlmdFZhbHVlPzogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvbW9kZWxzL2NoYXJ0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnRPcHRpb25zLCBDaGFydFR5cGUgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBJQmFzZURhdGFzZXQsIElDaGFydERhdGEgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDaGFydENvbmZpZ3VyYXRpb24ge1xuICBjaGFydFR5cGU6IENoYXJ0VHlwZTtcbiAgY2hhcnREYXRhOiBJQ2hhcnREYXRhPElCYXNlRGF0YXNldD47XG4gIGNoYXJ0T3B0aW9uczogQ2hhcnRPcHRpb25zO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgbm9EYXRhSW1hZ2U6IHN0cmluZztcbiAgaXNNdWx0aVlBeGlzPzogYm9vbGVhbjtcbiAgaXNTdGFja2VkPzogYm9vbGVhbjtcbiAgc2hvd1Rvb2x0aXBCYWNrZ3JvdW5kPzogYm9vbGVhblxuICBzaG93WEF4aXNMYWJlbHM/OiBib29sZWFuXG59XG4iXX0=
|
|
@@ -30,32 +30,31 @@ export class ChartHelper {
|
|
|
30
30
|
static calculateMaxValue(data) {
|
|
31
31
|
return Math.max(...data);
|
|
32
32
|
}
|
|
33
|
-
static createGradient(chartContext, chartCanvas,
|
|
33
|
+
static createGradient(chartContext, chartCanvas, color, color2) {
|
|
34
34
|
const gradient = chartContext.createLinearGradient(0, 0, 0, chartCanvas.nativeElement.height);
|
|
35
35
|
const opacity = 0.4;
|
|
36
|
-
const fillColorTop = this.hexToRgba(
|
|
36
|
+
const fillColorTop = this.hexToRgba(color, opacity);
|
|
37
37
|
const fillColorBottom = this.hexToRgba(color2, 1);
|
|
38
38
|
gradient.addColorStop(0, fillColorTop);
|
|
39
39
|
gradient.addColorStop(0.8, fillColorBottom);
|
|
40
40
|
return gradient;
|
|
41
41
|
}
|
|
42
|
-
static
|
|
43
|
-
if (!color1 || !color2)
|
|
44
|
-
return;
|
|
42
|
+
static createGradientWithShiftValue(chartContext, chartCanvas, color, color2, shiftValue, hasFade) {
|
|
45
43
|
const gradient = chartContext.createLinearGradient(0, 0, 0, chartCanvas.nativeElement.height);
|
|
46
|
-
const fillColorTop = this.hexToRgba(
|
|
47
|
-
const fillColorBottom = this.hexToRgba(color2,
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
gradient.addColorStop(
|
|
53
|
-
gradient.addColorStop(
|
|
54
|
-
gradient
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
gradient.addColorStop(color1EdgeValue || 1, fillColorBottom);
|
|
44
|
+
const fillColorTop = this.hexToRgba(color, 0.8);
|
|
45
|
+
const fillColorBottom = this.hexToRgba(color2, 0.8);
|
|
46
|
+
const adjustedShiftValue = (shiftValue) / 2;
|
|
47
|
+
if (!hasFade) {
|
|
48
|
+
gradient.addColorStop(0, fillColorTop);
|
|
49
|
+
gradient.addColorStop(adjustedShiftValue, fillColorTop);
|
|
50
|
+
gradient.addColorStop(adjustedShiftValue, fillColorBottom);
|
|
51
|
+
gradient.addColorStop(0.5, fillColorBottom);
|
|
52
|
+
return gradient;
|
|
58
53
|
}
|
|
54
|
+
gradient.addColorStop(0, fillColorTop);
|
|
55
|
+
gradient.addColorStop(adjustedShiftValue, "#FFFFFF" /* ChartColorsStringEnum.WHITE */);
|
|
56
|
+
gradient.addColorStop(adjustedShiftValue, fillColorBottom);
|
|
57
|
+
gradient.addColorStop(0.5, "#FFFFFF" /* ChartColorsStringEnum.WHITE */);
|
|
59
58
|
return gradient;
|
|
60
59
|
}
|
|
61
60
|
static calculateTickPositions(xScale) {
|
|
@@ -103,13 +102,5 @@ export class ChartHelper {
|
|
|
103
102
|
const segmentStart = tickPositions[index] - segmentWidth / 2;
|
|
104
103
|
return { segmentStart, segmentWidth };
|
|
105
104
|
}
|
|
106
|
-
static normalize(value, min, max) {
|
|
107
|
-
if (!max || !min)
|
|
108
|
-
return;
|
|
109
|
-
var delta = max - min;
|
|
110
|
-
if (!delta)
|
|
111
|
-
return 0;
|
|
112
|
-
return 1 - ((value - min) / delta);
|
|
113
|
-
}
|
|
114
105
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvdXRpbHMvaGVscGVycy9jaGFydC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixFQUFFLFVBQWtCLENBQUM7UUFDcEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDekIsUUFBUTtpQkFDTCxLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUUxQixPQUFPLFFBQVEsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssT0FBTyxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBYyxjQUFjLEVBQUUsT0FBZTtRQUM1RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBDLElB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QUFFLENBQUM7UUFFaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUMvQixNQUFtQyxFQUNuQyxLQUFhO1FBRWIsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDdEQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBRXpCLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBDaGFydCwge1xuICBDYXRlZ29yeVNjYWxlLFxuICBDaGFydEFyZWEsXG4gIExpbmVhclNjYWxlLFxufSBmcm9tICdjaGFydC5qcy9hdXRvJztcbmltcG9ydCB7IENoYXJ0Q29sb3JzU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IElCYXNlRGF0YXNldCwgSUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBDaGFydEhlbHBlciB7XG4gIHN0YXRpYyBoZXhUb1JnYmEoY29sb3JIZXg6IHN0cmluZywgb3BhY2l0eTogbnVtYmVyID0gMSk6IHN0cmluZyB7XG4gICAgY29sb3JIZXggPSBjb2xvckhleC5yZXBsYWNlKC9eIy8sICcnKTtcblxuICAgIGlmIChjb2xvckhleC5sZW5ndGggPT09IDMpIHtcbiAgICAgIGNvbG9ySGV4XG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoY2hhcikgPT4gY2hhciArIGNoYXIpXG4gICAgICAgIC5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaWdpbnQgPSBwYXJzZUludChjb2xvckhleCwgMTYpO1xuICAgIGNvbnN0IHJlZCA9IChiaWdpbnQgPj4gMTYpICYgMjU1O1xuICAgIGNvbnN0IGdyZWVuID0gKGJpZ2ludCA+PiA4KSAmIDI1NTtcbiAgICBjb25zdCBibHVlID0gYmlnaW50ICYgMjU1O1xuXG4gICAgcmV0dXJuIGByZ2JhKCR7cmVkfSwgJHtncmVlbn0sICR7Ymx1ZX0sICR7b3BhY2l0eX0pYDtcbiAgfVxuXG4gIHN0YXRpYyByZ2JUb1JnYmEocmdiOiBzdHJpbmcgPSAncmdiKDAsIDAsIDApJywgb3BhY2l0eTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCByZ2JWYWx1ZXMgPSByZ2IubWF0Y2goL1xcZCsvZyk7XG5cbiAgICBpZiAocmdiVmFsdWVzICYmIHJnYlZhbHVlcy5sZW5ndGggPT09IDMpIHtcbiAgICAgIGNvbnN0IHJlZCA9IHJnYlZhbHVlc1swXTtcbiAgICAgIGNvbnN0IGdyZWVuID0gcmdiVmFsdWVzWzFdO1xuICAgICAgY29uc3QgYmx1ZSA9IHJnYlZhbHVlc1syXTtcblxuICAgICAgcmV0dXJuIGByZ2JhKCR7cmVkfSwgJHtncmVlbn0sICR7Ymx1ZX0sICR7b3BhY2l0eX0pYDtcbiAgICB9IGVsc2UgcmV0dXJuIHJnYjtcbiAgfVxuXG4gIHN0YXRpYyBjYWxjdWxhdGVNaW5WYWx1ZShkYXRhOiBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKC4uLmRhdGEpO1xuICB9XG5cbiAgc3RhdGljIGNhbGN1bGF0ZU1heFZhbHVlKGRhdGE6IG51bWJlcltdKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoLi4uZGF0YSk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlR3JhZGllbnQoXG4gICAgY2hhcnRDb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY2hhcnRDYW52YXM6IEVsZW1lbnRSZWYsXG4gICAgY29sb3IxOiBzdHJpbmcsXG4gICAgY29sb3IyOiBzdHJpbmdcbiAgKTogQ2FudmFzR3JhZGllbnQge1xuICAgIGNvbnN0IGdyYWRpZW50ID0gY2hhcnRDb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgY2hhcnRDYW52YXMubmF0aXZlRWxlbWVudC5oZWlnaHRcbiAgICApO1xuXG4gICAgY29uc3Qgb3BhY2l0eSA9IDAuNDtcbiAgICBjb25zdCBmaWxsQ29sb3JUb3AgPSB0aGlzLmhleFRvUmdiYShjb2xvcjEsIG9wYWNpdHkpO1xuICAgIGNvbnN0IGZpbGxDb2xvckJvdHRvbSA9IHRoaXMuaGV4VG9SZ2JhKGNvbG9yMiwgMSk7XG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsIGZpbGxDb2xvclRvcCk7XG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuOCwgZmlsbENvbG9yQm90dG9tKTtcblxuICAgIHJldHVybiBncmFkaWVudDtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVDdXN0b21HcmFkaWVudChcbiAgICBjaGFydENvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCxcbiAgICBjaGFydENhbnZhczogRWxlbWVudFJlZixcbiAgICBjb2xvcjE6IHN0cmluZyxcbiAgICBjb2xvcjI6IHN0cmluZyxcbiAgICBjb2xvcjFFZGdlVmFsdWU/OiBudW1iZXIsXG4gICAgY29sb3IyRWRnZVZhbHVlPzogbnVtYmVyXG4gICkge1xuICAgIGlmICghY29sb3IxIHx8ICFjb2xvcjIpIHJldHVybjtcbiAgICBjb25zdCBncmFkaWVudCA9IGNoYXJ0Q29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIGNoYXJ0Q2FudmFzLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0XG4gICAgKTtcblxuICAgIGNvbnN0IGZpbGxDb2xvclRvcCA9IHRoaXMuaGV4VG9SZ2JhKGNvbG9yMSwgMSk7XG4gICAgY29uc3QgZmlsbENvbG9yQm90dG9tID0gdGhpcy5oZXhUb1JnYmEoY29sb3IyLCAxKTtcbiAgICBjb25zdCB3aGl0ZVRvcCA9IHRoaXMuaGV4VG9SZ2JhKGNvbG9yMSwgMC4yKTtcbiAgICBjb25zdCB3aGl0ZUJvdHRvbSA9IHRoaXMuaGV4VG9SZ2JhKGNvbG9yMiwgMC4yKTtcblxuICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcChjb2xvcjJFZGdlVmFsdWUgfHwgMCwgZmlsbENvbG9yVG9wKTtcbiAgICBpZiAoY29sb3IxRWRnZVZhbHVlKSB7XG4gICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoY29sb3IxRWRnZVZhbHVlLCB3aGl0ZVRvcCk7XG4gICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoY29sb3IxRWRnZVZhbHVlLCBmaWxsQ29sb3JCb3R0b20pO1xuICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsIHdoaXRlQm90dG9tKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKGNvbG9yMUVkZ2VWYWx1ZSB8fCAxLCBmaWxsQ29sb3JCb3R0b20pO1xuICAgIH1cblxuICAgIHJldHVybiBncmFkaWVudDtcbiAgfVxuXG4gIHN0YXRpYyBjYWxjdWxhdGVUaWNrUG9zaXRpb25zKHhTY2FsZTogQ2F0ZWdvcnlTY2FsZSB8IExpbmVhclNjYWxlKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB4U2NhbGUudGlja3MubWFwKChfLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgeFNjYWxlLmdldFBpeGVsRm9yVGljayhpbmRleClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGhpZ2hsaWdodFNlZ21lbnQoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgeFNjYWxlOiBDYXRlZ29yeVNjYWxlIHwgTGluZWFyU2NhbGUsXG4gICAgY2hhcnRBcmVhOiBDaGFydEFyZWEsXG4gICAgY2hhcnRIZWlnaHQ6IG51bWJlcixcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2VnbWVudFN0YXJ0LCBzZWdtZW50V2lkdGggfSA9IENoYXJ0SGVscGVyLmdldFNlZ21lbnRQb3NpdGlvbihcbiAgICAgIHhTY2FsZSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgICBjb25zdCBib3JkZXJSYWRpdXMgPSAyO1xuXG4gICAgY3R4LnNhdmUoKTtcbiAgICBjdHguZmlsbFN0eWxlID0gQ2hhcnRDb2xvcnNTdHJpbmdFbnVtLkhPVkVSX1NFR01FTlQ7XG5cbiAgICAvLyBEcmF3IHNlZ21lbnQgd2l0aCBib3JkZXItcmFkaXVzIGF0IHRoZSB0b3AgY29ybmVyc1xuICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICBjdHgubW92ZVRvKHNlZ21lbnRTdGFydCArIGJvcmRlclJhZGl1cywgY2hhcnRBcmVhLnRvcCk7XG4gICAgY3R4LmxpbmVUbyhzZWdtZW50U3RhcnQgKyBzZWdtZW50V2lkdGggLSBib3JkZXJSYWRpdXMsIGNoYXJ0QXJlYS50b3ApO1xuICAgIGN0eC5hcmNUbyhcbiAgICAgIHNlZ21lbnRTdGFydCArIHNlZ21lbnRXaWR0aCxcbiAgICAgIGNoYXJ0QXJlYS50b3AsXG4gICAgICBzZWdtZW50U3RhcnQgKyBzZWdtZW50V2lkdGgsXG4gICAgICBjaGFydEFyZWEudG9wICsgYm9yZGVyUmFkaXVzLFxuICAgICAgYm9yZGVyUmFkaXVzXG4gICAgKTtcbiAgICBjdHgubGluZVRvKHNlZ21lbnRTdGFydCArIHNlZ21lbnRXaWR0aCwgY2hhcnRIZWlnaHQpO1xuICAgIGN0eC5saW5lVG8oc2VnbWVudFN0YXJ0LCBjaGFydEhlaWdodCk7XG4gICAgY3R4LmxpbmVUbyhzZWdtZW50U3RhcnQsIGNoYXJ0QXJlYS50b3AgKyBib3JkZXJSYWRpdXMpO1xuICAgIGN0eC5hcmNUbyhcbiAgICAgIHNlZ21lbnRTdGFydCxcbiAgICAgIGNoYXJ0QXJlYS50b3AsXG4gICAgICBzZWdtZW50U3RhcnQgKyBib3JkZXJSYWRpdXMsXG4gICAgICBjaGFydEFyZWEudG9wLFxuICAgICAgYm9yZGVyUmFkaXVzXG4gICAgKTtcbiAgICBjdHguY2xvc2VQYXRoKCk7XG5cbiAgICBjdHguZmlsbCgpO1xuICAgIGN0eC5yZXN0b3JlKCk7XG4gIH1cblxuICBzdGF0aWMgaGlnaGxpZ2h0UG9pbnQoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY2hhcnQ6IENoYXJ0LFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgY2hhcnREYXRhOiBJQ2hhcnREYXRhPElCYXNlRGF0YXNldD5cbiAgKTogdm9pZCB7XG4gICAgY2hhcnREYXRhLmRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkgPT4ge1xuICAgICAgY29uc3QgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG4gICAgICBjb25zdCBwb2ludCA9IG1ldGEuZGF0YVtpbmRleF07XG5cbiAgICAgIGlmICghcG9pbnQpIHJldHVybjtcblxuICAgICAgY3R4LnNhdmUoKTtcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGN0eC5hcmMocG9pbnQueCwgcG9pbnQueSwgNCwgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgY3R4LmZpbGxTdHlsZSA9IENoYXJ0Q29sb3JzU3RyaW5nRW51bS5XSElURTtcbiAgICAgIGN0eC5maWxsKCk7XG4gICAgICBjdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGN0eC5zdHJva2VTdHlsZSA9XG4gICAgICAgIGRhdGFzZXQuYm9yZGVyQ29sb3IgfHwgQ2hhcnRDb2xvcnNTdHJpbmdFbnVtLlRSQU5TUEFSRU5UO1xuICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgY3R4LnJlc3RvcmUoKTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0U2VnbWVudFBvc2l0aW9uKFxuICAgIHhTY2FsZTogQ2F0ZWdvcnlTY2FsZSB8IExpbmVhclNjYWxlLFxuICAgIGluZGV4OiBudW1iZXJcbiAgKTogeyBzZWdtZW50U3RhcnQ6IG51bWJlcjsgc2VnbWVudFdpZHRoOiBudW1iZXIgfSB7XG4gICAgY29uc3QgdGlja1Bvc2l0aW9ucyA9IENoYXJ0SGVscGVyLmNhbGN1bGF0ZVRpY2tQb3NpdGlvbnMoeFNjYWxlKTtcbiAgICBjb25zdCBzZWdtZW50V2lkdGggPSB0aWNrUG9zaXRpb25zWzFdIC0gdGlja1Bvc2l0aW9uc1swXTtcbiAgICBjb25zdCBzZWdtZW50U3RhcnQgPSB0aWNrUG9zaXRpb25zW2luZGV4XSAtIHNlZ21lbnRXaWR0aCAvIDI7XG4gICAgcmV0dXJuIHsgc2VnbWVudFN0YXJ0LCBzZWdtZW50V2lkdGggfTtcbiAgfVxuXG4gIHN0YXRpYyBub3JtYWxpemUodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSB7XG4gICAgaWYgKCFtYXggfHwgIW1pbikgcmV0dXJuO1xuXG4gICAgdmFyIGRlbHRhID0gbWF4IC0gbWluO1xuXG4gICAgaWYgKCFkZWx0YSkgcmV0dXJuIDA7XG5cbiAgICByZXR1cm4gMSAtICgodmFsdWUgLSBtaW4pIC8gZGVsdGEpO1xuICB9XG5cbn1cbiJdfQ==
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvdXRpbHMvaGVscGVycy9jaGFydC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixFQUFFLFVBQWtCLENBQUM7UUFDcEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDekIsUUFBUTtpQkFDTCxLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUUxQixPQUFPLFFBQVEsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssT0FBTyxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBYyxjQUFjLEVBQUUsT0FBZTtRQUM1RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBDLElB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QUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUMvQixNQUFtQyxFQUNuQyxLQUFhO1FBRWIsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgQ2hhcnQsIHtcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnRBcmVhLFxuICBMaW5lYXJTY2FsZSxcbn0gZnJvbSAnY2hhcnQuanMvYXV0byc7XG5pbXBvcnQgeyBDaGFydENvbG9yc1N0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBJQmFzZURhdGFzZXQsIElDaGFydERhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgQ2hhcnRIZWxwZXIge1xuICBzdGF0aWMgaGV4VG9SZ2JhKGNvbG9ySGV4OiBzdHJpbmcsIG9wYWNpdHk6IG51bWJlciA9IDEpOiBzdHJpbmcge1xuICAgIGNvbG9ySGV4ID0gY29sb3JIZXgucmVwbGFjZSgvXiMvLCAnJyk7XG5cbiAgICBpZiAoY29sb3JIZXgubGVuZ3RoID09PSAzKSB7XG4gICAgICBjb2xvckhleFxuICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgIC5tYXAoKGNoYXIpID0+IGNoYXIgKyBjaGFyKVxuICAgICAgICAuam9pbignJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYmlnaW50ID0gcGFyc2VJbnQoY29sb3JIZXgsIDE2KTtcbiAgICBjb25zdCByZWQgPSAoYmlnaW50ID4+IDE2KSAmIDI1NTtcbiAgICBjb25zdCBncmVlbiA9IChiaWdpbnQgPj4gOCkgJiAyNTU7XG4gICAgY29uc3QgYmx1ZSA9IGJpZ2ludCAmIDI1NTtcblxuICAgIHJldHVybiBgcmdiYSgke3JlZH0sICR7Z3JlZW59LCAke2JsdWV9LCAke29wYWNpdHl9KWA7XG4gIH1cblxuICBzdGF0aWMgcmdiVG9SZ2JhKHJnYjogc3RyaW5nID0gJ3JnYigwLCAwLCAwKScsIG9wYWNpdHk6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgcmdiVmFsdWVzID0gcmdiLm1hdGNoKC9cXGQrL2cpO1xuXG4gICAgaWYgKHJnYlZhbHVlcyAmJiByZ2JWYWx1ZXMubGVuZ3RoID09PSAzKSB7XG4gICAgICBjb25zdCByZWQgPSByZ2JWYWx1ZXNbMF07XG4gICAgICBjb25zdCBncmVlbiA9IHJnYlZhbHVlc1sxXTtcbiAgICAgIGNvbnN0IGJsdWUgPSByZ2JWYWx1ZXNbMl07XG5cbiAgICAgIHJldHVybiBgcmdiYSgke3JlZH0sICR7Z3JlZW59LCAke2JsdWV9LCAke29wYWNpdHl9KWA7XG4gICAgfSBlbHNlIHJldHVybiByZ2I7XG4gIH1cblxuICBzdGF0aWMgY2FsY3VsYXRlTWluVmFsdWUoZGF0YTogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1pbiguLi5kYXRhKTtcbiAgfVxuXG4gIHN0YXRpYyBjYWxjdWxhdGVNYXhWYWx1ZShkYXRhOiBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KC4uLmRhdGEpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUdyYWRpZW50KFxuICAgIGNoYXJ0Q29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICAgIGNoYXJ0Q2FudmFzOiBFbGVtZW50UmVmLFxuICAgIGNvbG9yOiBzdHJpbmcsXG4gICAgY29sb3IyOiBzdHJpbmdcbiAgKTogQ2FudmFzR3JhZGllbnQge1xuICAgIGNvbnN0IGdyYWRpZW50ID0gY2hhcnRDb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgY2hhcnRDYW52YXMubmF0aXZlRWxlbWVudC5oZWlnaHRcbiAgICApO1xuXG4gICAgY29uc3Qgb3BhY2l0eSA9IDAuNDtcbiAgICBjb25zdCBmaWxsQ29sb3JUb3AgPSB0aGlzLmhleFRvUmdiYShjb2xvciwgb3BhY2l0eSk7XG4gICAgY29uc3QgZmlsbENvbG9yQm90dG9tID0gdGhpcy5oZXhUb1JnYmEoY29sb3IyLCAxKTtcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgZmlsbENvbG9yVG9wKTtcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMC44LCBmaWxsQ29sb3JCb3R0b20pO1xuXG4gICAgcmV0dXJuIGdyYWRpZW50O1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUdyYWRpZW50V2l0aFNoaWZ0VmFsdWUoXG4gICAgY2hhcnRDb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY2hhcnRDYW52YXM6IEVsZW1lbnRSZWYsXG4gICAgY29sb3I6IHN0cmluZyxcbiAgICBjb2xvcjI6IHN0cmluZyxcbiAgICBzaGlmdFZhbHVlOiBudW1iZXIsXG4gICAgaGFzRmFkZT86IGJvb2xlYW5cbiAgKTogQ2FudmFzR3JhZGllbnQge1xuICAgIGNvbnN0IGdyYWRpZW50ID0gY2hhcnRDb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgY2hhcnRDYW52YXMubmF0aXZlRWxlbWVudC5oZWlnaHRcbiAgICApO1xuXG4gICAgY29uc3QgZmlsbENvbG9yVG9wID0gdGhpcy5oZXhUb1JnYmEoY29sb3IsIDAuOCk7XG4gICAgY29uc3QgZmlsbENvbG9yQm90dG9tID0gdGhpcy5oZXhUb1JnYmEoY29sb3IyLCAwLjgpO1xuXG4gICAgY29uc3QgYWRqdXN0ZWRTaGlmdFZhbHVlOiBudW1iZXIgPSAoc2hpZnRWYWx1ZSkgLyAyO1xuXG4gICAgaWYgKCFoYXNGYWRlKSB7XG4gICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgZmlsbENvbG9yVG9wKTtcbiAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcChhZGp1c3RlZFNoaWZ0VmFsdWUsIGZpbGxDb2xvclRvcCk7XG4gICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoYWRqdXN0ZWRTaGlmdFZhbHVlLCBmaWxsQ29sb3JCb3R0b20pO1xuICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgZmlsbENvbG9yQm90dG9tKTtcbiAgICAgIHJldHVybiBncmFkaWVudDtcbiAgICB9XG5cbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgZmlsbENvbG9yVG9wKTtcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoYWRqdXN0ZWRTaGlmdFZhbHVlLCBDaGFydENvbG9yc1N0cmluZ0VudW0uV0hJVEUpO1xuICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcChhZGp1c3RlZFNoaWZ0VmFsdWUsIGZpbGxDb2xvckJvdHRvbSk7XG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuNSwgQ2hhcnRDb2xvcnNTdHJpbmdFbnVtLldISVRFKTtcblxuICAgIHJldHVybiBncmFkaWVudDtcbiAgfVxuXG4gIHN0YXRpYyBjYWxjdWxhdGVUaWNrUG9zaXRpb25zKHhTY2FsZTogQ2F0ZWdvcnlTY2FsZSB8IExpbmVhclNjYWxlKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB4U2NhbGUudGlja3MubWFwKChfLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgeFNjYWxlLmdldFBpeGVsRm9yVGljayhpbmRleClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGhpZ2hsaWdodFNlZ21lbnQoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgeFNjYWxlOiBDYXRlZ29yeVNjYWxlIHwgTGluZWFyU2NhbGUsXG4gICAgY2hhcnRBcmVhOiBDaGFydEFyZWEsXG4gICAgY2hhcnRIZWlnaHQ6IG51bWJlcixcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2VnbWVudFN0YXJ0LCBzZWdtZW50V2lkdGggfSA9IENoYXJ0SGVscGVyLmdldFNlZ21lbnRQb3NpdGlvbihcbiAgICAgIHhTY2FsZSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgICBjb25zdCBib3JkZXJSYWRpdXMgPSAyO1xuXG4gICAgY3R4LnNhdmUoKTtcbiAgICBjdHguZmlsbFN0eWxlID0gQ2hhcnRDb2xvcnNTdHJpbmdFbnVtLkhPVkVSX1NFR01FTlQ7XG5cbiAgICAvLyBEcmF3IHNlZ21lbnQgd2l0aCBib3JkZXItcmFkaXVzIGF0IHRoZSB0b3AgY29ybmVyc1xuICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICBjdHgubW92ZVRvKHNlZ21lbnRTdGFydCArIGJvcmRlclJhZGl1cywgY2hhcnRBcmVhLnRvcCk7XG4gICAgY3R4LmxpbmVUbyhzZWdtZW50U3RhcnQgKyBzZWdtZW50V2lkdGggLSBib3JkZXJSYWRpdXMsIGNoYXJ0QXJlYS50b3ApO1xuICAgIGN0eC5hcmNUbyhcbiAgICAgIHNlZ21lbnRTdGFydCArIHNlZ21lbnRXaWR0aCxcbiAgICAgIGNoYXJ0QXJlYS50b3AsXG4gICAgICBzZWdtZW50U3RhcnQgKyBzZWdtZW50V2lkdGgsXG4gICAgICBjaGFydEFyZWEudG9wICsgYm9yZGVyUmFkaXVzLFxuICAgICAgYm9yZGVyUmFkaXVzXG4gICAgKTtcbiAgICBjdHgubGluZVRvKHNlZ21lbnRTdGFydCArIHNlZ21lbnRXaWR0aCwgY2hhcnRIZWlnaHQpO1xuICAgIGN0eC5saW5lVG8oc2VnbWVudFN0YXJ0LCBjaGFydEhlaWdodCk7XG4gICAgY3R4LmxpbmVUbyhzZWdtZW50U3RhcnQsIGNoYXJ0QXJlYS50b3AgKyBib3JkZXJSYWRpdXMpO1xuICAgIGN0eC5hcmNUbyhcbiAgICAgIHNlZ21lbnRTdGFydCxcbiAgICAgIGNoYXJ0QXJlYS50b3AsXG4gICAgICBzZWdtZW50U3RhcnQgKyBib3JkZXJSYWRpdXMsXG4gICAgICBjaGFydEFyZWEudG9wLFxuICAgICAgYm9yZGVyUmFkaXVzXG4gICAgKTtcbiAgICBjdHguY2xvc2VQYXRoKCk7XG5cbiAgICBjdHguZmlsbCgpO1xuICAgIGN0eC5yZXN0b3JlKCk7XG4gIH1cblxuICBzdGF0aWMgaGlnaGxpZ2h0UG9pbnQoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY2hhcnQ6IENoYXJ0LFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgY2hhcnREYXRhOiBJQ2hhcnREYXRhPElCYXNlRGF0YXNldD5cbiAgKTogdm9pZCB7XG4gICAgY2hhcnREYXRhLmRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkgPT4ge1xuICAgICAgY29uc3QgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG4gICAgICBjb25zdCBwb2ludCA9IG1ldGEuZGF0YVtpbmRleF07XG5cbiAgICAgIGlmICghcG9pbnQpIHJldHVybjtcblxuICAgICAgY3R4LnNhdmUoKTtcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGN0eC5hcmMocG9pbnQueCwgcG9pbnQueSwgNCwgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgY3R4LmZpbGxTdHlsZSA9IENoYXJ0Q29sb3JzU3RyaW5nRW51bS5XSElURTtcbiAgICAgIGN0eC5maWxsKCk7XG4gICAgICBjdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGN0eC5zdHJva2VTdHlsZSA9XG4gICAgICAgIGRhdGFzZXQuYm9yZGVyQ29sb3IgfHwgQ2hhcnRDb2xvcnNTdHJpbmdFbnVtLlRSQU5TUEFSRU5UO1xuICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgY3R4LnJlc3RvcmUoKTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0U2VnbWVudFBvc2l0aW9uKFxuICAgIHhTY2FsZTogQ2F0ZWdvcnlTY2FsZSB8IExpbmVhclNjYWxlLFxuICAgIGluZGV4OiBudW1iZXJcbiAgKTogeyBzZWdtZW50U3RhcnQ6IG51bWJlcjsgc2VnbWVudFdpZHRoOiBudW1iZXIgfSB7XG4gICAgY29uc3QgdGlja1Bvc2l0aW9ucyA9IENoYXJ0SGVscGVyLmNhbGN1bGF0ZVRpY2tQb3NpdGlvbnMoeFNjYWxlKTtcbiAgICBjb25zdCBzZWdtZW50V2lkdGggPSB0aWNrUG9zaXRpb25zWzFdIC0gdGlja1Bvc2l0aW9uc1swXTtcbiAgICBjb25zdCBzZWdtZW50U3RhcnQgPSB0aWNrUG9zaXRpb25zW2luZGV4XSAtIHNlZ21lbnRXaWR0aCAvIDI7XG4gICAgcmV0dXJuIHsgc2VnbWVudFN0YXJ0LCBzZWdtZW50V2lkdGggfTtcbiAgfVxuXG59XG4iXX0=
|