@rio-cloud/cdk-v2-constructs 4.33.5 → 4.34.1
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/.jsii +283 -39
- package/API.md +212 -0
- package/CHANGELOG.md +14 -0
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.d.ts +1 -1
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.js +2 -2
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +2 -2
- package/lib/datadogv2/datadog-monitor.d.ts +80 -4
- package/lib/datadogv2/datadog-monitor.js +31 -2
- package/package.json +1 -1
- package/version.json +1 -1
|
@@ -101,6 +101,17 @@ export declare enum MonitorNotificationPreset {
|
|
|
101
101
|
HIDE_HANDLES = "hide_handles",
|
|
102
102
|
HIDE_ALL = "hide_all"
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Options for onMissingData supported by Datadog.
|
|
106
|
+
*
|
|
107
|
+
* @see https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
|
|
108
|
+
*/
|
|
109
|
+
export declare enum MonitorOnMissingData {
|
|
110
|
+
DEFAULT = "default",
|
|
111
|
+
SHOW_NO_DATA = "show_no_data",
|
|
112
|
+
SHOW_AND_NOTIFY_NO_DATA = "show_and_notify_no_data",
|
|
113
|
+
RESOLVE = "resolve"
|
|
114
|
+
}
|
|
104
115
|
/**
|
|
105
116
|
* Options to override for Datadog monitors in case more specific settings are required.
|
|
106
117
|
*
|
|
@@ -111,6 +122,12 @@ export interface CfnDatadogMonitorOptions {
|
|
|
111
122
|
* Whether or not to include a sample of the logs
|
|
112
123
|
*/
|
|
113
124
|
readonly enableLogsSample?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Whether or not to send a list of samples when the monitor triggers.
|
|
127
|
+
*
|
|
128
|
+
* This is only used by CI Test and Pipeline monitors.
|
|
129
|
+
*/
|
|
130
|
+
readonly enableSamples?: boolean;
|
|
114
131
|
/**
|
|
115
132
|
* Message to include with a re-notification when renotify_interval is set
|
|
116
133
|
*/
|
|
@@ -120,6 +137,14 @@ export interface CfnDatadogMonitorOptions {
|
|
|
120
137
|
*
|
|
121
138
|
*/
|
|
122
139
|
readonly evaluationDelay?: number;
|
|
140
|
+
/**
|
|
141
|
+
* The time span after which groups with missing data are dropped from the monitor state.
|
|
142
|
+
*
|
|
143
|
+
* The minimum value is one hour, and the maximum value is 72 hours.
|
|
144
|
+
* Example values are: "60m", "1h", and "2d".
|
|
145
|
+
* This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.
|
|
146
|
+
*/
|
|
147
|
+
readonly groupRetentionDuration?: string;
|
|
123
148
|
/**
|
|
124
149
|
* Whether or not to include triggering tags into notification title'
|
|
125
150
|
*
|
|
@@ -146,12 +171,31 @@ export interface CfnDatadogMonitorOptions {
|
|
|
146
171
|
* Whether or not to notify tagged users when changes are made to the monitor
|
|
147
172
|
*/
|
|
148
173
|
readonly notifyAudit?: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Controls what granularity a monitor alerts on.
|
|
176
|
+
*
|
|
177
|
+
* Only available for monitors with groupings.
|
|
178
|
+
* For instance, a monitor grouped by `cluster`, `namespace`, and `pod` can be configured to only notify on each new `cluster` violating the alert conditions by setting `notify_by` to `["cluster"]`.
|
|
179
|
+
* Tags mentioned in `notify_by` must be a subset of the grouping tags in the query.
|
|
180
|
+
* For example, a query grouped by `cluster` and `namespace` cannot notify on `region`.
|
|
181
|
+
* Setting `notify_by` to `[*]` configures the monitor to notify as a simple-alert.
|
|
182
|
+
*/
|
|
183
|
+
readonly notifyBy?: string[];
|
|
149
184
|
/**
|
|
150
185
|
* Whether or not to notify when data stops reporting
|
|
151
186
|
*
|
|
152
187
|
* @defaultValue false
|
|
153
188
|
*/
|
|
154
189
|
readonly notifyNoData?: boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Controls how groups or monitors are treated if an evaluation does not return any data points.
|
|
192
|
+
*
|
|
193
|
+
* The default option results in different behavior depending on the monitor query type.
|
|
194
|
+
* For monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions.
|
|
195
|
+
* For monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status.
|
|
196
|
+
* This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.
|
|
197
|
+
*/
|
|
198
|
+
readonly onMissingData?: MonitorOnMissingData;
|
|
155
199
|
/**
|
|
156
200
|
* Number of minutes after the last notification before the monitor re-notifies on the current status
|
|
157
201
|
*/
|
|
@@ -162,6 +206,10 @@ export interface CfnDatadogMonitorOptions {
|
|
|
162
206
|
* @defaultValue false
|
|
163
207
|
*/
|
|
164
208
|
readonly requireFullWindow?: boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Configuration options for scheduling
|
|
211
|
+
*/
|
|
212
|
+
readonly schedulingOptions?: MonitorSchedulingOptions;
|
|
165
213
|
/**
|
|
166
214
|
* ID of the corresponding synthetics check
|
|
167
215
|
*/
|
|
@@ -201,19 +249,19 @@ export interface CfnDatadogMonitorOptions {
|
|
|
201
249
|
}
|
|
202
250
|
export interface CfnDatadogMonitorThresholds {
|
|
203
251
|
/**
|
|
204
|
-
*Threshold value for triggering an alert
|
|
252
|
+
* Threshold value for triggering an alert
|
|
205
253
|
*/
|
|
206
254
|
readonly critical?: number;
|
|
207
255
|
/**
|
|
208
|
-
*Threshold value for recovering from an alert state
|
|
256
|
+
* Threshold value for recovering from an alert state
|
|
209
257
|
*/
|
|
210
258
|
readonly criticalRecovery?: number;
|
|
211
259
|
/**
|
|
212
|
-
*Threshold value for recovering from an alert state
|
|
260
|
+
* Threshold value for recovering from an alert state
|
|
213
261
|
*/
|
|
214
262
|
readonly ok?: number;
|
|
215
263
|
/**
|
|
216
|
-
*Threshold value for triggering a warning
|
|
264
|
+
* Threshold value for triggering a warning
|
|
217
265
|
*/
|
|
218
266
|
readonly warning?: number;
|
|
219
267
|
/**
|
|
@@ -231,6 +279,34 @@ export interface CfnDatadogMonitorThresholdWindows {
|
|
|
231
279
|
*/
|
|
232
280
|
readonly recoveryWindow?: string;
|
|
233
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Configuration options for scheduling
|
|
284
|
+
*/
|
|
285
|
+
export interface MonitorSchedulingOptions {
|
|
286
|
+
readonly evaluationWindow?: MonitorSchedulingOptionsEvaluationWindow;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Configuration options for the evaluation window.
|
|
290
|
+
*
|
|
291
|
+
* If `hour_starts` is set, no other fields may be set.
|
|
292
|
+
* Otherwise, `day_starts` and `month_starts` must be set together.
|
|
293
|
+
*/
|
|
294
|
+
export interface MonitorSchedulingOptionsEvaluationWindow {
|
|
295
|
+
/**
|
|
296
|
+
* The time of the day at which a one day cumulative evaluation window starts.
|
|
297
|
+
*
|
|
298
|
+
* Must be defined in UTC time in `HH:mm` format.
|
|
299
|
+
*/
|
|
300
|
+
readonly dayStarts?: string;
|
|
301
|
+
/**
|
|
302
|
+
* The day of the month at which a one month cumulative evaluation window starts
|
|
303
|
+
*/
|
|
304
|
+
readonly monthStarts?: number;
|
|
305
|
+
/**
|
|
306
|
+
* The minute of the hour at which a one hour cumulative evaluation window starts
|
|
307
|
+
*/
|
|
308
|
+
readonly hourStarts?: number;
|
|
309
|
+
}
|
|
234
310
|
/**
|
|
235
311
|
* Wrapper around Datadog's CloudFormation `Datadog::Monitors::Monitor` with some RIO defaults applied.
|
|
236
312
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.DatadogMonitor = exports.MonitorNotificationPreset = exports.RenotifyStatuses = exports.DatadogMonitorQueryAlertType = void 0;
|
|
4
|
+
exports.DatadogMonitor = exports.MonitorOnMissingData = exports.MonitorNotificationPreset = exports.RenotifyStatuses = exports.DatadogMonitorQueryAlertType = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const cdk = require("aws-cdk-lib");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
@@ -54,6 +54,18 @@ var MonitorNotificationPreset;
|
|
|
54
54
|
MonitorNotificationPreset["HIDE_HANDLES"] = "hide_handles";
|
|
55
55
|
MonitorNotificationPreset["HIDE_ALL"] = "hide_all";
|
|
56
56
|
})(MonitorNotificationPreset || (exports.MonitorNotificationPreset = MonitorNotificationPreset = {}));
|
|
57
|
+
/**
|
|
58
|
+
* Options for onMissingData supported by Datadog.
|
|
59
|
+
*
|
|
60
|
+
* @see https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
|
|
61
|
+
*/
|
|
62
|
+
var MonitorOnMissingData;
|
|
63
|
+
(function (MonitorOnMissingData) {
|
|
64
|
+
MonitorOnMissingData["DEFAULT"] = "default";
|
|
65
|
+
MonitorOnMissingData["SHOW_NO_DATA"] = "show_no_data";
|
|
66
|
+
MonitorOnMissingData["SHOW_AND_NOTIFY_NO_DATA"] = "show_and_notify_no_data";
|
|
67
|
+
MonitorOnMissingData["RESOLVE"] = "resolve";
|
|
68
|
+
})(MonitorOnMissingData || (exports.MonitorOnMissingData = MonitorOnMissingData = {}));
|
|
57
69
|
/**
|
|
58
70
|
* Wrapper around Datadog's CloudFormation `Datadog::Monitors::Monitor` with some RIO defaults applied.
|
|
59
71
|
*
|
|
@@ -125,17 +137,21 @@ DatadogMonitor.DEFAULT_PRIORITY = 4;
|
|
|
125
137
|
function mapMonitorOptions(source) {
|
|
126
138
|
return {
|
|
127
139
|
EnableLogsSample: source?.enableLogsSample,
|
|
140
|
+
EnableSamples: source?.enableSamples,
|
|
128
141
|
EscalationMessage: source?.escalationMessage,
|
|
129
142
|
EvaluationDelay: source?.evaluationDelay,
|
|
143
|
+
GroupRetentionDuration: source?.groupRetentionDuration,
|
|
130
144
|
IncludeTags: source?.includeTags ?? true,
|
|
131
145
|
Locked: source?.locked,
|
|
132
146
|
MinLocationFailed: source?.minLocationFailed,
|
|
133
147
|
NewHostDelay: source?.newHostDelay,
|
|
134
148
|
NoDataTimeframe: source?.noDataTimeframe,
|
|
135
149
|
NotifyAudit: source?.notifyAudit,
|
|
150
|
+
NotifyBy: source?.notifyBy,
|
|
136
151
|
NotifyNoData: source?.notifyNoData ?? false,
|
|
137
152
|
RenotifyInterval: source?.renotifyInterval,
|
|
138
153
|
RequireFullWindow: source?.requireFullWindow ?? false,
|
|
154
|
+
SchedulingOptions: mapSchedulingOptionsProperties(source?.schedulingOptions),
|
|
139
155
|
SyntheticsCheckID: source?.syntheticsCheckID,
|
|
140
156
|
Thresholds: mapThresholdsProperties(source?.thresholds),
|
|
141
157
|
ThresholdWindows: mapThresholdWindowsProperties(source?.thresholdWindows),
|
|
@@ -146,9 +162,22 @@ function mapMonitorOptions(source) {
|
|
|
146
162
|
MinFailureDuration: source?.minFailureDuration,
|
|
147
163
|
NewGroupDelay: source?.newGroupDelay,
|
|
148
164
|
Variables: source?.variables,
|
|
165
|
+
OnMissingData: source?.onMissingData,
|
|
149
166
|
};
|
|
150
167
|
}
|
|
151
168
|
;
|
|
169
|
+
function mapSchedulingOptionsProperties(source) {
|
|
170
|
+
return source ? {
|
|
171
|
+
EvaluationWindow: mapSchedulingOptionsEvaluationWindowProperties(source.evaluationWindow),
|
|
172
|
+
} : undefined;
|
|
173
|
+
}
|
|
174
|
+
function mapSchedulingOptionsEvaluationWindowProperties(source) {
|
|
175
|
+
return source ? {
|
|
176
|
+
DayStarts: source.dayStarts,
|
|
177
|
+
MonthStarts: source.monthStarts,
|
|
178
|
+
HourStarts: source.hourStarts,
|
|
179
|
+
} : undefined;
|
|
180
|
+
}
|
|
152
181
|
function mapThresholdsProperties(source) {
|
|
153
182
|
return source ? {
|
|
154
183
|
Critical: source.critical,
|
|
@@ -164,4 +193,4 @@ function mapThresholdWindowsProperties(source) {
|
|
|
164
193
|
RecoveryWindow: source.recoveryWindow,
|
|
165
194
|
} : undefined;
|
|
166
195
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLGlFQUFpRjtBQUNqRiwwREFBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQW9LRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFdkIsTUFBTSxRQUFRLEdBQUcsaUNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxpQ0FBYyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLGlDQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSwrQ0FBd0IsRUFBRSxDQUFDO1FBRTlGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLDRCQUE0QixDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25NLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLEdBQUcsS0FBSyxDQUFDLGVBQWU7U0FDekIsQ0FBQztRQUVGLElBQUksa0JBQWtCLElBQUksZUFBZSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDdkUsZUFBZSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7WUFDdEMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxXQUFXLENBQUMsWUFBWSxDQUN0Qix5REFBeUQsRUFBRSw2QkFBNkIsRUFDeEYsMk1BQTJNLENBQzVNLENBQUM7U0FDSDtRQUVELHlJQUF5STtRQUN6SSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2xELElBQUksRUFBRSw0QkFBNEI7WUFDbEMsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDbEUsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUMxRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7Z0JBQzNDLElBQUksRUFBRTtvQkFDSixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7b0JBQzFCLGNBQWMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUMxQyxnQkFBZ0IsV0FBVyxDQUFDLFdBQVcsRUFBRTtvQkFDekMsV0FBVyxLQUFLLENBQUMsV0FBVyxFQUFFO29CQUM5QixRQUFRLFFBQVEsQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLG1CQUFtQixjQUFjLENBQUMsV0FBVyxFQUFFO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gscUdBQXFHO1FBQ3JHLGtFQUFrRTtRQUNsRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQXFEO1FBQzlFLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNyRixDQUFDOztBQXhFSCx3Q0EwRUM7OztBQXpFQzs7R0FFRztBQUNhLCtCQUFnQixHQUFHLENBQUMsQ0FBQztBQXdFdkMsU0FBUyxpQkFBaUIsQ0FBQyxNQUE0QztJQUNyRSxPQUFPO1FBQ0wsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGdCQUFnQjtRQUMxQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZTtRQUN4QyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsSUFBSSxJQUFJO1FBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTTtRQUN0QixpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWTtRQUNsQyxlQUFlLEVBQUUsTUFBTSxFQUFFLGVBQWU7UUFDeEMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXO1FBQ2hDLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxJQUFJLEtBQUs7UUFDM0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGdCQUFnQjtRQUMxQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLElBQUksS0FBSztRQUNyRCxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1FBQ3ZELGdCQUFnQixFQUFFLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztRQUN6RSw2QkFBNkIsRUFBRSxNQUFNLEVBQUUsNkJBQTZCO1FBQ3BFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUTtRQUMxQixtQkFBbUIsRUFBRSxNQUFNLEVBQUUsbUJBQW1CO1FBQ2hELGdCQUFnQixFQUFFLE1BQU0sRUFBRSxnQkFBZ0I7UUFDMUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGtCQUFrQjtRQUM5QyxhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWE7UUFDcEMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBQUEsQ0FBQztBQUdGLFNBQVMsdUJBQXVCLENBQUMsTUFBK0M7SUFDOUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7UUFDekMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtLQUN4QyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQUMsTUFBcUQ7SUFDMUYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2QsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYztLQUN0QyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4vZGF0YWRvZy1ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcblxuLyoqXG4gKiBXZWxsIGtub3duIG1vbml0b3IgdHlwZXMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAqL1xuZXhwb3J0IGVudW0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSB7XG4gIEFVRElUX0FMRVJUID0gJ2F1ZGl0IGFsZXJ0JyxcbiAgQ09NUE9TSVRFID0gJ2NvbXBvc2l0ZScsXG4gIEVWRU5UX0FMRVJUID0gJ2V2ZW50IGFsZXJ0JyxcbiAgRVZFTlRfVl8yX0FMRVJUID0gJ2V2ZW50LXYyIGFsZXJ0JyxcbiAgTE9HX0FMRVJUID0gJ2xvZyBhbGVydCcsXG4gIE1FVFJJQ19BTEVSVCA9ICdtZXRyaWMgYWxlcnQnLFxuICBQUk9DRVNTX0FMRVJUID0gJ3Byb2Nlc3MgYWxlcnQnLFxuICBRVUVSWV9BTEVSVCA9ICdxdWVyeSBhbGVydCcsXG4gIFNFUlZJQ0VfQ0hFQ0sgPSAnc2VydmljZSBjaGVjaycsXG4gIFNZTlRIRVRJQ1NfQUxFUlQgPSAnc3ludGhldGljcyBhbGVydCcsXG4gIFRSQUNFX0FOQUxZVElDU19BTEVSVCA9ICd0cmFjZS1hbmFseXRpY3MgYWxlcnQnLFxuICBTTE9fQUxFUlQgPSAnc2xvIGFsZXJ0JyxcbiAgUlVNX0FMRVJUID0gJ3J1bSBhbGVydCcsXG4gIENJX1BJUEVMSU5FU19BTEVSVCA9ICdjaS1waXBlbGluZXMgYWxlcnQnLFxuICBFUlJPUl9UUkFDS0lOR19BTEVSVCA9ICdlcnJvci10cmFja2luZyBhbGVydCcsXG4gIENJX1RFU1RTX0FMRVJUID0gJ2NpLXRlc3RzIGFsZXJ0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIHtAbGluayBEYXRhZG9nTW9uaXRvcn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nTW9uaXRvclByb3BzIHtcblxuICAvKipcbiAgICogQSBuYW1lIHN1ZmZpeCB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvcnMgbmFtZS5cbiAgICpcbiAgICogVGhlIG1vbml0b3IgbmFtZSBpcyBjb25jYXRlbmF0ZWQgZm9ybSBgPFRlYW1OYW1lPiA8c2VydmljZU5hbWUgcHJvcGVydHk+IDxuYW1lIHByb3BlcnR5PmBcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIG1vbml0b3IgYmVsb25ncy5cbiAgICpcbiAgICogVXNlZCB0byBnZW5lcmF0ZSB0aGUgbW9uaXRvciBuYW1lIGFzIHdlbGwgYSBhcHBseSB0aGUgYHNlcnZpY2VgIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9ycyB0eXBlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHNlYXJjaCBxdWVyeVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI2RlZmluZS10aGUtc2VhcmNoLXF1ZXJ5XG4gICAqL1xuICByZWFkb25seSBxdWVyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBwYXR0ZXJuIGZvciB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI21lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVG8gZXhwbGljaXRseSBkaXNhYmxlIG5vdGlmaWNhdGlvbnMgdXNlIHtAbGluayBOb05vdGlmaWNhdGlvbn0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnlcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbGVydCBwcmlvcml0eSBvZiB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDRcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpYyBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG1vbml0b3Igb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbk92ZXJyaWRlcz86IENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucztcblxuICAvKipcbiAgICogVGFncyB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvciBpbiBhZGRpdGlvbiB0byB0aGUgUklPIGRlZmF1bHQgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFUYWdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV2VsbCBrbm93biByZW5vdGlmaWNhdGlvbiBzZXR0aW5ncyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeS8jcmVub3RpZnlcbiAqL1xuZXhwb3J0IGVudW0gUmVub3RpZnlTdGF0dXNlcyB7XG4gIEFMRVJUID0gJ2FsZXJ0JyxcbiAgTk9fREFUQSA9ICdubyBkYXRhJyxcbiAgV0FSTiA9ICd3YXJuJ1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gbm90aWZpY2F0aW9uIHByZXNldHMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICovXG5leHBvcnQgZW51bSBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0IHtcbiAgU0hPV19BTEwgPSAnc2hvd19hbGwnLFxuICBISURFX1FVRVJZID0gJ2hpZGVfcXVlcnknLFxuICBISURFX0hBTkRMRVMgPSAnaGlkZV9oYW5kbGVzJyxcbiAgSElERV9BTEwgPSAnaGlkZV9hbGwnLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gb3ZlcnJpZGUgZm9yIERhdGFkb2cgbW9uaXRvcnMgaW4gY2FzZSBtb3JlIHNwZWNpZmljIHNldHRpbmdzIGFyZSByZXF1aXJlZC5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb259XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIHNhbXBsZSBvZiB0aGUgbG9nc1xuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nc1NhbXBsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gaW5jbHVkZSB3aXRoIGEgcmUtbm90aWZpY2F0aW9uIHdoZW4gcmVub3RpZnlfaW50ZXJ2YWwgaXMgc2V0XG4gICAqL1xuICByZWFkb25seSBlc2NhbGF0aW9uTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGRlbGF5IGV2YWx1YXRpb25cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0cmlnZ2VyaW5nIHRhZ3MgaW50byBub3RpZmljYXRpb24gdGl0bGUnXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVRhZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBjaGFuZ2VzIHRvIHRoaXMgbW9uaXRvciBzaG91bGQgYmUgcmVzdHJpY3RlZCB0byB0aGUgY3JlYXRvciBvciBhZG1pbnNcbiAgICovXG4gIHJlYWRvbmx5IGxvY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBsb2NhdGlvbnMgYWxsb3dlZCB0byBmYWlsIGJlZm9yZSB0cmlnZ2VyaW5nIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBtaW5Mb2NhdGlvbkZhaWxlZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGFsbG93IGEgaG9zdCB0byBzdGFydCByZXBvcnRpbmcgZGF0YSBiZWZvcmUgc3RhcnRpbmcgdGhlIGV2YWx1YXRpb24gb2YgbW9uaXRvciByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBuZXdIb3N0RGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtaW51dGVzIGRhdGEgc3RvcHBlZCByZXBvcnRpbmcgYmVmb3JlIG5vdGlmeWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgbm9EYXRhVGltZWZyYW1lPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgdGFnZ2VkIHVzZXJzIHdoZW4gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgbW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5QXVkaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBhZnRlciB0aGUgbGFzdCBub3RpZmljYXRpb24gYmVmb3JlIHRoZSBtb25pdG9yIHJlLW5vdGlmaWVzIG9uIHRoZSBjdXJyZW50IHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1vbml0b3IgcmVxdWlyZXMgYSBmdWxsIHdpbmRvdyBvZiBkYXRhIGJlZm9yZSBpdCBpcyBldmFsdWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUZ1bGxXaW5kb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBzeW50aGV0aWNzIGNoZWNrXG4gICAqL1xuICByZWFkb25seSBzeW50aGV0aWNzQ2hlY2tJRD86IG51bWJlcjtcblxuICByZWFkb25seSB0aHJlc2hvbGRzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZFdpbmRvd3M/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3M7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBob3VycyBvZiB0aGUgbW9uaXRvciBub3QgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIGl0IGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRIPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzaG91bGQgYmUgc2VudCBvbiB0aGUgY3VycmVudCBzdGF0dXMgYXQgdGhlIHByb3ZpZGVkIHJlLW5vdGlmaWNhdGlvbiBpbnRlcnZhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5T2NjdXJyZW5jZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlcyBvZiBtb25pdG9yIHN0YXR1c2VzIGZvciB3aGljaCByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgYXJlIHNlbnQuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeVN0YXR1c2VzPzogUmVub3RpZnlTdGF0dXNlc1tdO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0aGUgdGVzdCBzaG91bGQgYmUgaW4gZmFpbHVyZSBiZWZvcmUgYWxlcnRpbmcgKGludGVnZXIsIG51bWJlciBvZiBzZWNvbmRzLCBtYXggNzIwMCkuXG4gICAqL1xuICByZWFkb25seSBtaW5GYWlsdXJlRHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoaWNoIGluZm9ybWF0aW9uIHNob3VsZCBiZSBhZGRlZC9sZXR0IG91dCBmcm9tIHRoZSBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQuU0hPV19BTEx9XG4gICAqL1xuICByZWFkb25seSBtb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZT86IE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQ7XG5cbiAgLyoqXG4gICAqIFRpbWUgKGluIHNlY29uZHMpIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBncm91cHMuIEZvciBleGFtcGxlLCB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgaG9zdHMgd2hpbGUgdGhleSBpbml0aWFsaXplLiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICByZWFkb25seSBuZXdHcm91cERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIG1vbml0b3IgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMge1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IG9rPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhIHdhcm5pbmdcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGEgd2FybmluZyBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ1JlY292ZXJ5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcjogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICBjb25zdCBpc0F3c01ldHJpa01vbml0b3IgPSAocHJvcHMubW9uaXRvclR5cGUgPT09IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuTUVUUklDX0FMRVJUIHx8IHByb3BzLm1vbml0b3JUeXBlID09PSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJUKSAmJiBwcm9wcy5xdWVyeS5pbmRleE9mKCdhd3MuJykgPiAtMTtcbiAgICBjb25zdCBvcHRpb25PdmVycmlkZXMgPSB7XG4gICAgICAuLi5wcm9wcy5vcHRpb25PdmVycmlkZXMsXG4gICAgfTtcblxuICAgIGlmIChpc0F3c01ldHJpa01vbml0b3IgJiYgb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID0gOTAwO1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBjZGsuQW5ub3RhdGlvbnMub2YoY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICAgIGFubm90YXRpb25zLmFkZFdhcm5pbmdWMihcbiAgICAgICAgYEByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMvZGF0YWRvZ3YyL0RhdGFkb2dNb25pdG9yLyR7aWR9L0Nsb3VkTWV0cmljRXZhbHVhdGlvbkRlbGF5YCxcbiAgICAgICAgJ1xcbiDinYwgWW91ciBtb25pdG9yIGlzIGFsZXJ0aW5nIG9uIENsb3VkIE1ldHJpY3MgYnV0IHlvdSBoYXZlblxcJ3Qgc2V0IGFuIFxcJ29wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXlcXCcuXFxuIOKchSBJdFxcJ3MgYXV0b21hdGljYWxseSBzZXQgdG8gMTUgbWludXRlcywgYnV0IHBsZWFzZSBwcm92aWRlIGEgc3VpdGFibGUgdmFsdWUgb24geW91ciBvd24uXFxuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAgICB0aGlzLm1vbml0b3IgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdNb25pdG9yJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICAgIFF1ZXJ5OiBwcm9wcy5xdWVyeSxcbiAgICAgICAgTmFtZTogYCR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMubmFtZX1gLFxuICAgICAgICBNZXNzYWdlOiB0aGlzLmNvbmNhdGVuYXRlTWVzc2FnZSh7IG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsIG5vdGlmaWNhdGlvbiB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKG9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIFRhZ3M6IFtcbiAgICAgICAgICAuLi4ocHJvcHMuZXh0cmFUYWdzID8/IFtdKSxcbiAgICAgICAgICBgYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fWAsXG4gICAgICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHNlcnZpY2U6JHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIHRoZSBtb25pdG9yX2lkIGFzIHVzZWQgaW4gRGF0YWRvZ1xuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vYXBpL2xhdGVzdC9tb25pdG9ycy8jZ2V0LWEtbW9uaXRvcnMtZGV0YWlsc1xuICAgKlxuICAgKiBUaGlzIGFsbG93cyByZWZlcmVuY2luZyB0aGlzIG1vbml0b3IgaW4gb3RoZXIgY29uc3RydWN0cy9yZXNvdXJjZXMgKGUuZy4gU0xPcylcbiAgICovXG4gIGdldCBtb25pdG9ySWQoKSB7XG4gICAgLy8gcmV0dXJuIFJlZiBhcyBpdCByZXR1cm5zIHRoZSBJZCBhcyBzdHJpbmcgaW5zdGVhZCBvZiB0aGUgR2V0QXR0KElkKSB3aWhjaCByZXR1cm5zIHRoZSBpZCBhcyBudW1iZXJcbiAgICAvLyBodHRwczovL215LXJpby5zbGFjay5jb20vYXJjaGl2ZXMvQzAzNFdBRzNRVUEvcDE3MDg0MTk4NzEzOTg5NDlcbiAgICByZXR1cm4gY2RrLkZuLnJlZih0aGlzLm1vbml0b3IubG9naWNhbElkKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVNZXNzYWdlKHByb3BzOiB7bWVzc2FnZTogc3RyaW5nOyBub3RpZmljYXRpb246IElOb3RpZmljYXRpb259KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gbWFwTW9uaXRvck9wdGlvbnMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBFbmFibGVMb2dzU2FtcGxlOiBzb3VyY2U/LmVuYWJsZUxvZ3NTYW1wbGUsXG4gICAgRXNjYWxhdGlvbk1lc3NhZ2U6IHNvdXJjZT8uZXNjYWxhdGlvbk1lc3NhZ2UsXG4gICAgRXZhbHVhdGlvbkRlbGF5OiBzb3VyY2U/LmV2YWx1YXRpb25EZWxheSxcbiAgICBJbmNsdWRlVGFnczogc291cmNlPy5pbmNsdWRlVGFncyA/PyB0cnVlLFxuICAgIExvY2tlZDogc291cmNlPy5sb2NrZWQsXG4gICAgTWluTG9jYXRpb25GYWlsZWQ6IHNvdXJjZT8ubWluTG9jYXRpb25GYWlsZWQsXG4gICAgTmV3SG9zdERlbGF5OiBzb3VyY2U/Lm5ld0hvc3REZWxheSxcbiAgICBOb0RhdGFUaW1lZnJhbWU6IHNvdXJjZT8ubm9EYXRhVGltZWZyYW1lLFxuICAgIE5vdGlmeUF1ZGl0OiBzb3VyY2U/Lm5vdGlmeUF1ZGl0LFxuICAgIE5vdGlmeU5vRGF0YTogc291cmNlPy5ub3RpZnlOb0RhdGEgPz8gZmFsc2UsXG4gICAgUmVub3RpZnlJbnRlcnZhbDogc291cmNlPy5yZW5vdGlmeUludGVydmFsLFxuICAgIFJlcXVpcmVGdWxsV2luZG93OiBzb3VyY2U/LnJlcXVpcmVGdWxsV2luZG93ID8/IGZhbHNlLFxuICAgIFN5bnRoZXRpY3NDaGVja0lEOiBzb3VyY2U/LnN5bnRoZXRpY3NDaGVja0lELFxuICAgIFRocmVzaG9sZHM6IG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkcyksXG4gICAgVGhyZXNob2xkV2luZG93czogbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRXaW5kb3dzKSxcbiAgICBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZTogc291cmNlPy5tb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZSxcbiAgICBUaW1lb3V0SDogc291cmNlPy50aW1lb3V0SCxcbiAgICBSZW5vdGlmeU9jY3VycmVuY2VzOiBzb3VyY2U/LnJlbm90aWZ5T2NjdXJyZW5jZXMsXG4gICAgUmVub3RpZnlTdGF0dXNlczogc291cmNlPy5yZW5vdGlmeVN0YXR1c2VzLFxuICAgIE1pbkZhaWx1cmVEdXJhdGlvbjogc291cmNlPy5taW5GYWlsdXJlRHVyYXRpb24sXG4gICAgTmV3R3JvdXBEZWxheTogc291cmNlPy5uZXdHcm91cERlbGF5LFxuICAgIFZhcmlhYmxlczogc291cmNlPy52YXJpYWJsZXMsXG4gIH07XG59O1xuXG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgQ3JpdGljYWw6IHNvdXJjZS5jcml0aWNhbCxcbiAgICBDcml0aWNhbFJlY292ZXJ5OiBzb3VyY2UuY3JpdGljYWxSZWNvdmVyeSxcbiAgICBPSzogc291cmNlLm9rLFxuICAgIFdhcm5pbmc6IHNvdXJjZS53YXJuaW5nLFxuICAgIFdhcm5pbmdSZWNvdmVyeTogc291cmNlLndhcm5pbmdSZWNvdmVyeSxcbiAgfSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3MgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHNvdXJjZSA/IHtcbiAgICBUcmlnZ2VyV2luZG93OiBzb3VyY2UudHJpZ2dlcldpbmRvdyxcbiAgICBSZWNvdmVyeVdpbmRvdzogc291cmNlLnJlY292ZXJ5V2luZG93LFxuICB9IDogdW5kZWZpbmVkO1xufVxuIl19
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLGlFQUFpRjtBQUNqRiwwREFBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLG9CQUtYO0FBTEQsV0FBWSxvQkFBb0I7SUFDOUIsMkNBQW1CLENBQUE7SUFDbkIscURBQTZCLENBQUE7SUFDN0IsMkVBQW1ELENBQUE7SUFDbkQsMkNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBSy9CO0FBK09EOzs7Ozs7R0FNRztBQUNILE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBVzNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksY0FBYyxDQUFDLGdCQUFnQixDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBRyxpQ0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELE1BQU0sY0FBYyxHQUFHLGlDQUFjLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsaUNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLCtDQUF3QixFQUFFLENBQUM7UUFFOUYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssNEJBQTRCLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssNEJBQTRCLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbk0sTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxLQUFLLENBQUMsZUFBZTtTQUN6QixDQUFDO1FBRUYsSUFBSSxrQkFBa0IsSUFBSSxlQUFlLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRTtZQUN2RSxlQUFlLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztZQUN0QyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNELFdBQVcsQ0FBQyxZQUFZLENBQ3RCLHlEQUF5RCxFQUFFLDZCQUE2QixFQUN4RiwyTUFBMk0sQ0FDNU0sQ0FBQztTQUNIO1FBRUQseUlBQXlJO1FBQ3pJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDbEQsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUN2QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNsRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUM7Z0JBQzFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztnQkFDM0MsSUFBSSxFQUFFO29CQUNKLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztvQkFDMUIsY0FBYyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7b0JBQzFDLGdCQUFnQixXQUFXLENBQUMsV0FBVyxFQUFFO29CQUN6QyxXQUFXLEtBQUssQ0FBQyxXQUFXLEVBQUU7b0JBQzlCLFFBQVEsUUFBUSxDQUFDLFdBQVcsRUFBRTtvQkFDOUIsbUJBQW1CLGNBQWMsQ0FBQyxXQUFXLEVBQUU7aUJBQ2hEO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLFNBQVM7UUFDWCxxR0FBcUc7UUFDckcsa0VBQWtFO1FBQ2xFLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBcUQ7UUFDOUUsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3JGLENBQUM7O0FBeEVILHdDQTBFQzs7O0FBekVDOztHQUVHO0FBQ2EsK0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBd0V2QyxTQUFTLGlCQUFpQixDQUFDLE1BQTRDO0lBQ3JFLE9BQU87UUFDTCxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCO1FBQzFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsYUFBYTtRQUNwQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCO1FBQzVDLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZTtRQUN4QyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsc0JBQXNCO1FBQ3RELFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxJQUFJLElBQUk7UUFDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNO1FBQ3RCLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxpQkFBaUI7UUFDNUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZO1FBQ2xDLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZTtRQUN4QyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVc7UUFDaEMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRO1FBQzFCLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxJQUFJLEtBQUs7UUFDM0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGdCQUFnQjtRQUMxQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLElBQUksS0FBSztRQUNyRCxpQkFBaUIsRUFBRSw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUM7UUFDNUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQjtRQUM1QyxVQUFVLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUN2RCxnQkFBZ0IsRUFBRSw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7UUFDekUsNkJBQTZCLEVBQUUsTUFBTSxFQUFFLDZCQUE2QjtRQUNwRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVE7UUFDMUIsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLG1CQUFtQjtRQUNoRCxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCO1FBQzFDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxrQkFBa0I7UUFDOUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxhQUFhO1FBQ3BDLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztRQUM1QixhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWE7S0FDckMsQ0FBQztBQUNKLENBQUM7QUFBQSxDQUFDO0FBRUYsU0FBUyw4QkFBOEIsQ0FBQyxNQUE0QztJQUNsRixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxnQkFBZ0IsRUFBRSw4Q0FBOEMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7S0FDMUYsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLDhDQUE4QyxDQUFDLE1BQTREO0lBQ2xILE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNkLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztRQUMzQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO0tBQzlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxNQUErQztJQUM5RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtRQUN6QyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxNQUFxRDtJQUMxRixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDZCxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7UUFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO0tBQ3RDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uLCBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9kYXRhZG9nLW5vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vKipcbiAqIFdlbGwga25vd24gbW9uaXRvciB0eXBlcyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL3R5cGVzL1xuICovXG5leHBvcnQgZW51bSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlIHtcbiAgQVVESVRfQUxFUlQgPSAnYXVkaXQgYWxlcnQnLFxuICBDT01QT1NJVEUgPSAnY29tcG9zaXRlJyxcbiAgRVZFTlRfQUxFUlQgPSAnZXZlbnQgYWxlcnQnLFxuICBFVkVOVF9WXzJfQUxFUlQgPSAnZXZlbnQtdjIgYWxlcnQnLFxuICBMT0dfQUxFUlQgPSAnbG9nIGFsZXJ0JyxcbiAgTUVUUklDX0FMRVJUID0gJ21ldHJpYyBhbGVydCcsXG4gIFBST0NFU1NfQUxFUlQgPSAncHJvY2VzcyBhbGVydCcsXG4gIFFVRVJZX0FMRVJUID0gJ3F1ZXJ5IGFsZXJ0JyxcbiAgU0VSVklDRV9DSEVDSyA9ICdzZXJ2aWNlIGNoZWNrJyxcbiAgU1lOVEhFVElDU19BTEVSVCA9ICdzeW50aGV0aWNzIGFsZXJ0JyxcbiAgVFJBQ0VfQU5BTFlUSUNTX0FMRVJUID0gJ3RyYWNlLWFuYWx5dGljcyBhbGVydCcsXG4gIFNMT19BTEVSVCA9ICdzbG8gYWxlcnQnLFxuICBSVU1fQUxFUlQgPSAncnVtIGFsZXJ0JyxcbiAgQ0lfUElQRUxJTkVTX0FMRVJUID0gJ2NpLXBpcGVsaW5lcyBhbGVydCcsXG4gIEVSUk9SX1RSQUNLSU5HX0FMRVJUID0gJ2Vycm9yLXRyYWNraW5nIGFsZXJ0JyxcbiAgQ0lfVEVTVFNfQUxFUlQgPSAnY2ktdGVzdHMgYWxlcnQnLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2Yge0BsaW5rIERhdGFkb2dNb25pdG9yfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dNb25pdG9yUHJvcHMge1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgc3VmZml4IHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9ycyBuYW1lLlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciBuYW1lIGlzIGNvbmNhdGVuYXRlZCBmb3JtIGA8VGVhbU5hbWU+IDxzZXJ2aWNlTmFtZSBwcm9wZXJ0eT4gPG5hbWUgcHJvcGVydHk+YFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSB0byB3aGljaCB0aGUgbW9uaXRvciBiZWxvbmdzLlxuICAgKlxuICAgKiBVc2VkIHRvIGdlbmVyYXRlIHRoZSBtb25pdG9yIG5hbWUgYXMgd2VsbCBhIGFwcGx5IHRoZSBgc2VydmljZWAgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHR5cGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcnMgc2VhcmNoIHF1ZXJ5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jZGVmaW5lLXRoZS1zZWFyY2gtcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHBhdHRlcm4gZm9yIHRoZSBtb25pdG9yXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyBleHBsaWNpdGx5IGRpc2FibGUgbm90aWZpY2F0aW9ucyB1c2Uge0BsaW5rIE5vTm90aWZpY2F0aW9ufS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9ufVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uPzogSU5vdGlmaWNhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGFsZXJ0IHByaW9yaXR5IG9mIHRoZSBtb25pdG9yXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgNFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmljIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbW9uaXRvciBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uT3ZlcnJpZGVzPzogQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9yIGluIGFkZGl0aW9uIHRvIHRoZSBSSU8gZGVmYXVsdCB0YWdzXG4gICAqL1xuICByZWFkb25seSBleHRyYVRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBXZWxsIGtub3duIHJlbm90aWZpY2F0aW9uIHNldHRpbmdzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvbm90aWZ5LyNyZW5vdGlmeVxuICovXG5leHBvcnQgZW51bSBSZW5vdGlmeVN0YXR1c2VzIHtcbiAgQUxFUlQgPSAnYWxlcnQnLFxuICBOT19EQVRBID0gJ25vIGRhdGEnLFxuICBXQVJOID0gJ3dhcm4nXG59XG5cbi8qKlxuICogV2VsbCBrbm93biBub3RpZmljYXRpb24gcHJlc2V0cyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQge1xuICBTSE9XX0FMTCA9ICdzaG93X2FsbCcsXG4gIEhJREVfUVVFUlkgPSAnaGlkZV9xdWVyeScsXG4gIEhJREVfSEFORExFUyA9ICdoaWRlX2hhbmRsZXMnLFxuICBISURFX0FMTCA9ICdoaWRlX2FsbCcsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb25NaXNzaW5nRGF0YSBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JPbk1pc3NpbmdEYXRhIHtcbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcbiAgU0hPV19OT19EQVRBID0gJ3Nob3dfbm9fZGF0YScsXG4gIFNIT1dfQU5EX05PVElGWV9OT19EQVRBID0gJ3Nob3dfYW5kX25vdGlmeV9ub19kYXRhJyxcbiAgUkVTT0xWRSA9ICdyZXNvbHZlJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIG92ZXJyaWRlIGZvciBEYXRhZG9nIG1vbml0b3JzIGluIGNhc2UgbW9yZSBzcGVjaWZpYyBzZXR0aW5ncyBhcmUgcmVxdWlyZWQuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29ufVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBzYW1wbGUgb2YgdGhlIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUxvZ3NTYW1wbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzZW5kIGEgbGlzdCBvZiBzYW1wbGVzIHdoZW4gdGhlIG1vbml0b3IgdHJpZ2dlcnMuXG4gICAqXG4gICAqIFRoaXMgaXMgb25seSB1c2VkIGJ5IENJIFRlc3QgYW5kIFBpcGVsaW5lIG1vbml0b3JzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlU2FtcGxlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gaW5jbHVkZSB3aXRoIGEgcmUtbm90aWZpY2F0aW9uIHdoZW4gcmVub3RpZnlfaW50ZXJ2YWwgaXMgc2V0XG4gICAqL1xuICByZWFkb25seSBlc2NhbGF0aW9uTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGRlbGF5IGV2YWx1YXRpb25cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgc3BhbiBhZnRlciB3aGljaCBncm91cHMgd2l0aCBtaXNzaW5nIGRhdGEgYXJlIGRyb3BwZWQgZnJvbSB0aGUgbW9uaXRvciBzdGF0ZS5cbiAgICpcbiAgICogVGhlIG1pbmltdW0gdmFsdWUgaXMgb25lIGhvdXIsIGFuZCB0aGUgbWF4aW11bSB2YWx1ZSBpcyA3MiBob3Vycy5cbiAgICogRXhhbXBsZSB2YWx1ZXMgYXJlOiBcIjYwbVwiLCBcIjFoXCIsIGFuZCBcIjJkXCIuXG4gICAqIFRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBBUE0gVHJhY2UgQW5hbHl0aWNzLCBBdWRpdCBUcmFpbCwgQ0ksIEVycm9yIFRyYWNraW5nLCBFdmVudCwgTG9ncywgYW5kIFJVTSBtb25pdG9ycy5cbiAgICovXG4gIHJlYWRvbmx5IGdyb3VwUmV0ZW50aW9uRHVyYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdHJpZ2dlcmluZyB0YWdzIGludG8gbm90aWZpY2F0aW9uIHRpdGxlJ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVUYWdzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgY2hhbmdlcyB0byB0aGlzIG1vbml0b3Igc2hvdWxkIGJlIHJlc3RyaWN0ZWQgdG8gdGhlIGNyZWF0b3Igb3IgYWRtaW5zXG4gICAqL1xuICByZWFkb25seSBsb2NrZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbG9jYXRpb25zIGFsbG93ZWQgdG8gZmFpbCBiZWZvcmUgdHJpZ2dlcmluZyBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTG9jYXRpb25GYWlsZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWUgaW4gc2Vjb25kcyB0byBhbGxvdyBhIGhvc3QgdG8gc3RhcnQgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIHN0YXJ0aW5nIHRoZSBldmFsdWF0aW9uIG9mIG1vbml0b3IgcmVzdWx0c1xuICAgKi9cbiAgcmVhZG9ubHkgbmV3SG9zdERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBkYXRhIHN0b3BwZWQgcmVwb3J0aW5nIGJlZm9yZSBub3RpZnlpbmdcbiAgICovXG4gIHJlYWRvbmx5IG5vRGF0YVRpbWVmcmFtZT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gbm90aWZ5IHRhZ2dlZCB1c2VycyB3aGVuIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGhlIG1vbml0b3JcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmeUF1ZGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBncmFudWxhcml0eSBhIG1vbml0b3IgYWxlcnRzIG9uLlxuICAgKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBmb3IgbW9uaXRvcnMgd2l0aCBncm91cGluZ3MuXG4gICAqIEZvciBpbnN0YW5jZSwgYSBtb25pdG9yIGdyb3VwZWQgYnkgYGNsdXN0ZXJgLCBgbmFtZXNwYWNlYCwgYW5kIGBwb2RgIGNhbiBiZSBjb25maWd1cmVkIHRvIG9ubHkgbm90aWZ5IG9uIGVhY2ggbmV3IGBjbHVzdGVyYCB2aW9sYXRpbmcgdGhlIGFsZXJ0IGNvbmRpdGlvbnMgYnkgc2V0dGluZyBgbm90aWZ5X2J5YCB0byBgW1wiY2x1c3RlclwiXWAuXG4gICAqIFRhZ3MgbWVudGlvbmVkIGluIGBub3RpZnlfYnlgIG11c3QgYmUgYSBzdWJzZXQgb2YgdGhlIGdyb3VwaW5nIHRhZ3MgaW4gdGhlIHF1ZXJ5LlxuICAgKiBGb3IgZXhhbXBsZSwgYSBxdWVyeSBncm91cGVkIGJ5IGBjbHVzdGVyYCBhbmQgYG5hbWVzcGFjZWAgY2Fubm90IG5vdGlmeSBvbiBgcmVnaW9uYC5cbiAgICogU2V0dGluZyBgbm90aWZ5X2J5YCB0byBgWypdYCBjb25maWd1cmVzIHRoZSBtb25pdG9yIHRvIG5vdGlmeSBhcyBhIHNpbXBsZS1hbGVydC5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmeUJ5Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIG5vdGlmeSB3aGVuIGRhdGEgc3RvcHMgcmVwb3J0aW5nXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmeU5vRGF0YT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIGhvdyBncm91cHMgb3IgbW9uaXRvcnMgYXJlIHRyZWF0ZWQgaWYgYW4gZXZhbHVhdGlvbiBkb2VzIG5vdCByZXR1cm4gYW55IGRhdGEgcG9pbnRzLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBvcHRpb24gcmVzdWx0cyBpbiBkaWZmZXJlbnQgYmVoYXZpb3IgZGVwZW5kaW5nIG9uIHRoZSBtb25pdG9yIHF1ZXJ5IHR5cGUuXG4gICAqIEZvciBtb25pdG9ycyB1c2luZyBDb3VudCBxdWVyaWVzLCBhbiBlbXB0eSBtb25pdG9yIGV2YWx1YXRpb24gaXMgdHJlYXRlZCBhcyAwIGFuZCBpcyBjb21wYXJlZCB0byB0aGUgdGhyZXNob2xkIGNvbmRpdGlvbnMuXG4gICAqIEZvciBtb25pdG9ycyB1c2luZyBhbnkgcXVlcnkgdHlwZSBvdGhlciB0aGFuIENvdW50LCBmb3IgZXhhbXBsZSBHYXVnZSwgTWVhc3VyZSwgb3IgUmF0ZSwgdGhlIG1vbml0b3Igc2hvd3MgdGhlIGxhc3Qga25vd24gc3RhdHVzLlxuICAgKiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgQVBNIFRyYWNlIEFuYWx5dGljcywgQXVkaXQgVHJhaWwsIENJLCBFcnJvciBUcmFja2luZywgRXZlbnQsIExvZ3MsIGFuZCBSVU0gbW9uaXRvcnMuXG4gICAqL1xuICByZWFkb25seSBvbk1pc3NpbmdEYXRhPzogTW9uaXRvck9uTWlzc2luZ0RhdGE7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtaW51dGVzIGFmdGVyIHRoZSBsYXN0IG5vdGlmaWNhdGlvbiBiZWZvcmUgdGhlIG1vbml0b3IgcmUtbm90aWZpZXMgb24gdGhlIGN1cnJlbnQgc3RhdHVzXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeUludGVydmFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbW9uaXRvciByZXF1aXJlcyBhIGZ1bGwgd2luZG93IG9mIGRhdGEgYmVmb3JlIGl0IGlzIGV2YWx1YXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlRnVsbFdpbmRvdz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc2NoZWR1bGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGluZ09wdGlvbnM/OiBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBjb3JyZXNwb25kaW5nIHN5bnRoZXRpY3MgY2hlY2tcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoZXRpY3NDaGVja0lEPzogbnVtYmVyO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZHM/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHM7XG5cbiAgcmVhZG9ubHkgdGhyZXNob2xkV2luZG93cz86IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cztcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGhvdXJzIG9mIHRoZSBtb25pdG9yIG5vdCByZXBvcnRpbmcgZGF0YSBiZWZvcmUgaXQgYXV0b21hdGljYWxseSByZXNvbHZlc1xuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgcmUtbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHNob3VsZCBiZSBzZW50IG9uIHRoZSBjdXJyZW50IHN0YXR1cyBhdCB0aGUgcHJvdmlkZWQgcmUtbm90aWZpY2F0aW9uIGludGVydmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlPY2N1cnJlbmNlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHR5cGVzIG9mIG1vbml0b3Igc3RhdHVzZXMgZm9yIHdoaWNoIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBhcmUgc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5U3RhdHVzZXM/OiBSZW5vdGlmeVN0YXR1c2VzW107XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRoZSB0ZXN0IHNob3VsZCBiZSBpbiBmYWlsdXJlIGJlZm9yZSBhbGVydGluZyAoaW50ZWdlciwgbnVtYmVyIG9mIHNlY29uZHMsIG1heCA3MjAwKS5cbiAgICovXG4gIHJlYWRvbmx5IG1pbkZhaWx1cmVEdXJhdGlvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hpY2ggaW5mb3JtYXRpb24gc2hvdWxkIGJlIGFkZGVkL2xldHQgb3V0IGZyb20gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgTW9uaXRvck5vdGlmaWNhdGlvblByZXNldC5TSE9XX0FMTH1cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lPzogTW9uaXRvck5vdGlmaWNhdGlvblByZXNldDtcblxuICAvKipcbiAgICogVGltZSAoaW4gc2Vjb25kcykgdG8gc2tpcCBldmFsdWF0aW9ucyBmb3IgbmV3IGdyb3Vwcy4gRm9yIGV4YW1wbGUsIHRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBob3N0cyB3aGlsZSB0aGV5IGluaXRpYWxpemUuIE11c3QgYmUgYSBub24gbmVnYXRpdmUgaW50ZWdlci5cbiAgICovXG4gIHJlYWRvbmx5IG5ld0dyb3VwRGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVxdWVzdHMgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgbW9uaXRvciBxdWVyeS5cbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IG9iamVjdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkcyB7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbFJlY292ZXJ5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIHJlY292ZXJpbmcgZnJvbSBhbiBhbGVydCBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgb2s/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhIHdhcm5pbmdcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGEgd2FybmluZyBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ1JlY292ZXJ5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc2NoZWR1bGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGV2YWx1YXRpb25XaW5kb3c/OiBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGV2YWx1YXRpb24gd2luZG93LlxuICpcbiAqIElmIGBob3VyX3N0YXJ0c2AgaXMgc2V0LCBubyBvdGhlciBmaWVsZHMgbWF5IGJlIHNldC5cbiAqIE90aGVyd2lzZSwgYGRheV9zdGFydHNgIGFuZCBgbW9udGhfc3RhcnRzYCBtdXN0IGJlIHNldCB0b2dldGhlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93IHtcblxuICAvKipcbiAgICogVGhlIHRpbWUgb2YgdGhlIGRheSBhdCB3aGljaCBhIG9uZSBkYXkgY3VtdWxhdGl2ZSBldmFsdWF0aW9uIHdpbmRvdyBzdGFydHMuXG4gICAqXG4gICAqIE11c3QgYmUgZGVmaW5lZCBpbiBVVEMgdGltZSBpbiBgSEg6bW1gIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IGRheVN0YXJ0cz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRheSBvZiB0aGUgbW9udGggYXQgd2hpY2ggYSBvbmUgbW9udGggY3VtdWxhdGl2ZSBldmFsdWF0aW9uIHdpbmRvdyBzdGFydHNcbiAgICovXG4gIHJlYWRvbmx5IG1vbnRoU3RhcnRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWludXRlIG9mIHRoZSBob3VyIGF0IHdoaWNoIGEgb25lIGhvdXIgY3VtdWxhdGl2ZSBldmFsdWF0aW9uIHdpbmRvdyBzdGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGhvdXJTdGFydHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgRGF0YWRvZydzIENsb3VkRm9ybWF0aW9uIGBEYXRhZG9nOjpNb25pdG9yczo6TW9uaXRvcmAgd2l0aCBzb21lIFJJTyBkZWZhdWx0cyBhcHBsaWVkLlxuICpcbiAqIFRvIHVzZSB0aGlzIHRoZSBEYXRhZG9nIHJlc291cmNlcyBoYXZlIHRvIGJlIHtAbGluayBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9pbnRlZ3JhdGlvbnMvZ3VpZGUvYW1hem9uX2Nsb3VkZm9ybWF0aW9uL1xuICogfGVuYWJsZWQgaW4gdGhlIENsb3VkRm9ybWF0aW9uIHJlZ2lzdHJ5fSBvZiB0aGUgY29ycmVzcG9uZGluZyBBV1MgYWNjb3VudC4gVXN1YWxseSB0aGlzIGlzIGRvbmVcbiAqIGF1dG9tYXRpY2FsbHkgYnkgdGhlIERhdGFkb2cgSW50ZWdyYXRpb25zIChhY2NvdW50IG1vZHVsZSBBTkQgU2VydmljZUNhdGFsb2cpIHByb3ZpZGVkIGJ5IENMQUlELlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ01vbml0b3IgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogRGVmYXVsdCBwcmlvcml0eSBvZiBhIG1vbml0b3JcbiAgICovXG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1BSSU9SSVRZID0gNDtcblxuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByaW9yaXR5OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb25pdG9yOiBjZGsuQ2ZuUmVzb3VyY2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dNb25pdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJpb3JpdHkgPSBwcm9wcy5wcmlvcml0eSA/PyBEYXRhZG9nTW9uaXRvci5ERUZBVUxUX1BSSU9SSVRZO1xuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG5cbiAgICBjb25zdCB0ZWFtTmFtZSA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1OYW1lUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUlkZW50aWZpZXJQYXJhbWV0ZXIodGhpcyk7XG4gICAgY29uc3QgYWNjb3VudE5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRBY2NvdW50TmFtZVBhcmFtZXRlcih0aGlzKTtcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHByb3BzLm5vdGlmaWNhdGlvbiA/IHByb3BzLm5vdGlmaWNhdGlvbiA6IG5ldyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcblxuICAgIGNvbnN0IGlzQXdzTWV0cmlrTW9uaXRvciA9IChwcm9wcy5tb25pdG9yVHlwZSA9PT0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5NRVRSSUNfQUxFUlQgfHwgcHJvcHMubW9uaXRvclR5cGUgPT09IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQpICYmIHByb3BzLnF1ZXJ5LmluZGV4T2YoJ2F3cy4nKSA+IC0xO1xuICAgIGNvbnN0IG9wdGlvbk92ZXJyaWRlcyA9IHtcbiAgICAgIC4uLnByb3BzLm9wdGlvbk92ZXJyaWRlcyxcbiAgICB9O1xuXG4gICAgaWYgKGlzQXdzTWV0cmlrTW9uaXRvciAmJiBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXkgPSA5MDA7XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IGNkay5Bbm5vdGF0aW9ucy5vZihjZGsuU3RhY2sub2YodGhpcykpO1xuICAgICAgYW5ub3RhdGlvbnMuYWRkV2FybmluZ1YyKFxuICAgICAgICBgQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0cy9kYXRhZG9ndjIvRGF0YWRvZ01vbml0b3IvJHtpZH0vQ2xvdWRNZXRyaWNFdmFsdWF0aW9uRGVsYXlgLFxuICAgICAgICAnXFxuIOKdjCBZb3VyIG1vbml0b3IgaXMgYWxlcnRpbmcgb24gQ2xvdWQgTWV0cmljcyBidXQgeW91IGhhdmVuXFwndCBzZXQgYW4gXFwnb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheVxcJy5cXG4g4pyFIEl0XFwncyBhdXRvbWF0aWNhbGx5IHNldCB0byAxNSBtaW51dGVzLCBidXQgcGxlYXNlIHByb3ZpZGUgYSBzdWl0YWJsZSB2YWx1ZSBvbiB5b3VyIG93bi5cXG4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICAgIHRoaXMubW9uaXRvciA9IG5ldyBjZGsuQ2ZuUmVzb3VyY2UodGhpcywgJ01vbml0b3InLCB7XG4gICAgICB0eXBlOiAnRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3InLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBUeXBlOiBwcm9wcy5tb25pdG9yVHlwZSxcbiAgICAgICAgUXVlcnk6IHByb3BzLnF1ZXJ5LFxuICAgICAgICBOYW1lOiBgJHt0ZWFtTmFtZS5zdHJpbmdWYWx1ZX0gJHtwcm9wcy5zZXJ2aWNlTmFtZX0gJHtwcm9wcy5uYW1lfWAsXG4gICAgICAgIE1lc3NhZ2U6IHRoaXMuY29uY2F0ZW5hdGVNZXNzYWdlKHsgbWVzc2FnZTogcHJvcHMubWVzc2FnZSwgbm90aWZpY2F0aW9uIH0pLFxuICAgICAgICBQcmlvcml0eTogdGhpcy5wcmlvcml0eSxcbiAgICAgICAgT3B0aW9uczogbWFwTW9uaXRvck9wdGlvbnMob3B0aW9uT3ZlcnJpZGVzKSxcbiAgICAgICAgVGFnczogW1xuICAgICAgICAgIC4uLihwcm9wcy5leHRyYVRhZ3MgPz8gW10pLFxuICAgICAgICAgIGBhY2NvdW50X2lkOiR7Y2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnR9YCxcbiAgICAgICAgICBgYWNjb3VudF9uYW1lOiR7YWNjb3VudE5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgc2VydmljZToke3Byb3BzLnNlcnZpY2VOYW1lfWAsXG4gICAgICAgICAgYHRlYW06JHt0ZWFtTmFtZS5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICAgIGB0ZWFtX2lkZW50aWZpZXI6JHt0ZWFtSWRlbnRpZmllci5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW4gdGhlIG1vbml0b3JfaWQgYXMgdXNlZCBpbiBEYXRhZG9nXG4gICAqIFNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9hcGkvbGF0ZXN0L21vbml0b3JzLyNnZXQtYS1tb25pdG9ycy1kZXRhaWxzXG4gICAqXG4gICAqIFRoaXMgYWxsb3dzIHJlZmVyZW5jaW5nIHRoaXMgbW9uaXRvciBpbiBvdGhlciBjb25zdHJ1Y3RzL3Jlc291cmNlcyAoZS5nLiBTTE9zKVxuICAgKi9cbiAgZ2V0IG1vbml0b3JJZCgpIHtcbiAgICAvLyByZXR1cm4gUmVmIGFzIGl0IHJldHVybnMgdGhlIElkIGFzIHN0cmluZyBpbnN0ZWFkIG9mIHRoZSBHZXRBdHQoSWQpIHdpaGNoIHJldHVybnMgdGhlIGlkIGFzIG51bWJlclxuICAgIC8vIGh0dHBzOi8vbXktcmlvLnNsYWNrLmNvbS9hcmNoaXZlcy9DMDM0V0FHM1FVQS9wMTcwODQxOTg3MTM5ODk0OVxuICAgIHJldHVybiBjZGsuRm4ucmVmKHRoaXMubW9uaXRvci5sb2dpY2FsSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRlbmF0ZU1lc3NhZ2UocHJvcHM6IHttZXNzYWdlOiBzdHJpbmc7IG5vdGlmaWNhdGlvbjogSU5vdGlmaWNhdGlvbn0pIHtcbiAgICByZXR1cm4gYCR7cHJvcHMubWVzc2FnZX1cXG5cXG4ke3Byb3BzLm5vdGlmaWNhdGlvbi5nZW5lcmF0ZU1lc3NhZ2VBbm5vdGF0aW9uKHRoaXMpfWA7XG4gIH1cblxufVxuXG5mdW5jdGlvbiBtYXBNb25pdG9yT3B0aW9ucyhzb3VyY2U6IENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4ge1xuICAgIEVuYWJsZUxvZ3NTYW1wbGU6IHNvdXJjZT8uZW5hYmxlTG9nc1NhbXBsZSxcbiAgICBFbmFibGVTYW1wbGVzOiBzb3VyY2U/LmVuYWJsZVNhbXBsZXMsXG4gICAgRXNjYWxhdGlvbk1lc3NhZ2U6IHNvdXJjZT8uZXNjYWxhdGlvbk1lc3NhZ2UsXG4gICAgRXZhbHVhdGlvbkRlbGF5OiBzb3VyY2U/LmV2YWx1YXRpb25EZWxheSxcbiAgICBHcm91cFJldGVudGlvbkR1cmF0aW9uOiBzb3VyY2U/Lmdyb3VwUmV0ZW50aW9uRHVyYXRpb24sXG4gICAgSW5jbHVkZVRhZ3M6IHNvdXJjZT8uaW5jbHVkZVRhZ3MgPz8gdHJ1ZSxcbiAgICBMb2NrZWQ6IHNvdXJjZT8ubG9ja2VkLFxuICAgIE1pbkxvY2F0aW9uRmFpbGVkOiBzb3VyY2U/Lm1pbkxvY2F0aW9uRmFpbGVkLFxuICAgIE5ld0hvc3REZWxheTogc291cmNlPy5uZXdIb3N0RGVsYXksXG4gICAgTm9EYXRhVGltZWZyYW1lOiBzb3VyY2U/Lm5vRGF0YVRpbWVmcmFtZSxcbiAgICBOb3RpZnlBdWRpdDogc291cmNlPy5ub3RpZnlBdWRpdCxcbiAgICBOb3RpZnlCeTogc291cmNlPy5ub3RpZnlCeSxcbiAgICBOb3RpZnlOb0RhdGE6IHNvdXJjZT8ubm90aWZ5Tm9EYXRhID8/IGZhbHNlLFxuICAgIFJlbm90aWZ5SW50ZXJ2YWw6IHNvdXJjZT8ucmVub3RpZnlJbnRlcnZhbCxcbiAgICBSZXF1aXJlRnVsbFdpbmRvdzogc291cmNlPy5yZXF1aXJlRnVsbFdpbmRvdyA/PyBmYWxzZSxcbiAgICBTY2hlZHVsaW5nT3B0aW9uczogbWFwU2NoZWR1bGluZ09wdGlvbnNQcm9wZXJ0aWVzKHNvdXJjZT8uc2NoZWR1bGluZ09wdGlvbnMpLFxuICAgIFN5bnRoZXRpY3NDaGVja0lEOiBzb3VyY2U/LnN5bnRoZXRpY3NDaGVja0lELFxuICAgIFRocmVzaG9sZHM6IG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkcyksXG4gICAgVGhyZXNob2xkV2luZG93czogbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRXaW5kb3dzKSxcbiAgICBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZTogc291cmNlPy5tb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZSxcbiAgICBUaW1lb3V0SDogc291cmNlPy50aW1lb3V0SCxcbiAgICBSZW5vdGlmeU9jY3VycmVuY2VzOiBzb3VyY2U/LnJlbm90aWZ5T2NjdXJyZW5jZXMsXG4gICAgUmVub3RpZnlTdGF0dXNlczogc291cmNlPy5yZW5vdGlmeVN0YXR1c2VzLFxuICAgIE1pbkZhaWx1cmVEdXJhdGlvbjogc291cmNlPy5taW5GYWlsdXJlRHVyYXRpb24sXG4gICAgTmV3R3JvdXBEZWxheTogc291cmNlPy5uZXdHcm91cERlbGF5LFxuICAgIFZhcmlhYmxlczogc291cmNlPy52YXJpYWJsZXMsXG4gICAgT25NaXNzaW5nRGF0YTogc291cmNlPy5vbk1pc3NpbmdEYXRhLFxuICB9O1xufTtcblxuZnVuY3Rpb24gbWFwU2NoZWR1bGluZ09wdGlvbnNQcm9wZXJ0aWVzKHNvdXJjZTogTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgRXZhbHVhdGlvbldpbmRvdzogbWFwU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93UHJvcGVydGllcyhzb3VyY2UuZXZhbHVhdGlvbldpbmRvdyksXG4gIH0gOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvd1Byb3BlcnRpZXMoc291cmNlOiBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93IHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgRGF5U3RhcnRzOiBzb3VyY2UuZGF5U3RhcnRzLFxuICAgIE1vbnRoU3RhcnRzOiBzb3VyY2UubW9udGhTdGFydHMsXG4gICAgSG91clN0YXJ0czogc291cmNlLmhvdXJTdGFydHMsXG4gIH0gOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgQ3JpdGljYWw6IHNvdXJjZS5jcml0aWNhbCxcbiAgICBDcml0aWNhbFJlY292ZXJ5OiBzb3VyY2UuY3JpdGljYWxSZWNvdmVyeSxcbiAgICBPSzogc291cmNlLm9rLFxuICAgIFdhcm5pbmc6IHNvdXJjZS53YXJuaW5nLFxuICAgIFdhcm5pbmdSZWNvdmVyeTogc291cmNlLndhcm5pbmdSZWNvdmVyeSxcbiAgfSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3MgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHNvdXJjZSA/IHtcbiAgICBUcmlnZ2VyV2luZG93OiBzb3VyY2UudHJpZ2dlcldpbmRvdyxcbiAgICBSZWNvdmVyeVdpbmRvdzogc291cmNlLnJlY292ZXJ5V2luZG93LFxuICB9IDogdW5kZWZpbmVkO1xufVxuIl19
|
package/package.json
CHANGED
package/version.json
CHANGED