@effect-aws/client-cloudwatch-logs 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @effect-aws/client-cloudwatch-logs
|
|
2
2
|
|
|
3
|
+
## 1.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`b24f980`](https://github.com/floydspace/effect-aws/commit/b24f98045ee3383c54d1152054e5b77f01d5f5e3) Thanks [@floydspace](https://github.com/floydspace)! - update services
|
|
8
|
+
|
|
3
9
|
## 1.1.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import { type CloudWatchLogsClient, type CloudWatchLogsClientConfig, type AssociateKmsKeyCommandInput, type AssociateKmsKeyCommandOutput, type CancelExportTaskCommandInput, type CancelExportTaskCommandOutput, type CreateDeliveryCommandInput, type CreateDeliveryCommandOutput, type CreateExportTaskCommandInput, type CreateExportTaskCommandOutput, type CreateLogAnomalyDetectorCommandInput, type CreateLogAnomalyDetectorCommandOutput, type CreateLogGroupCommandInput, type CreateLogGroupCommandOutput, type CreateLogStreamCommandInput, type CreateLogStreamCommandOutput, type DeleteAccountPolicyCommandInput, type DeleteAccountPolicyCommandOutput, type DeleteDataProtectionPolicyCommandInput, type DeleteDataProtectionPolicyCommandOutput, type DeleteDeliveryCommandInput, type DeleteDeliveryCommandOutput, type DeleteDeliveryDestinationCommandInput, type DeleteDeliveryDestinationCommandOutput, type DeleteDeliveryDestinationPolicyCommandInput, type DeleteDeliveryDestinationPolicyCommandOutput, type DeleteDeliverySourceCommandInput, type DeleteDeliverySourceCommandOutput, type DeleteDestinationCommandInput, type DeleteDestinationCommandOutput, type DeleteLogAnomalyDetectorCommandInput, type DeleteLogAnomalyDetectorCommandOutput, type DeleteLogGroupCommandInput, type DeleteLogGroupCommandOutput, type DeleteLogStreamCommandInput, type DeleteLogStreamCommandOutput, type DeleteMetricFilterCommandInput, type DeleteMetricFilterCommandOutput, type DeleteQueryDefinitionCommandInput, type DeleteQueryDefinitionCommandOutput, type DeleteResourcePolicyCommandInput, type DeleteResourcePolicyCommandOutput, type DeleteRetentionPolicyCommandInput, type DeleteRetentionPolicyCommandOutput, type DeleteSubscriptionFilterCommandInput, type DeleteSubscriptionFilterCommandOutput, type DescribeAccountPoliciesCommandInput, type DescribeAccountPoliciesCommandOutput, type DescribeConfigurationTemplatesCommandInput, type DescribeConfigurationTemplatesCommandOutput, type DescribeDeliveriesCommandInput, type DescribeDeliveriesCommandOutput, type DescribeDeliveryDestinationsCommandInput, type DescribeDeliveryDestinationsCommandOutput, type DescribeDeliverySourcesCommandInput, type DescribeDeliverySourcesCommandOutput, type DescribeDestinationsCommandInput, type DescribeDestinationsCommandOutput, type DescribeExportTasksCommandInput, type DescribeExportTasksCommandOutput, type DescribeLogGroupsCommandInput, type DescribeLogGroupsCommandOutput, type DescribeLogStreamsCommandInput, type DescribeLogStreamsCommandOutput, type DescribeMetricFiltersCommandInput, type DescribeMetricFiltersCommandOutput, type DescribeQueriesCommandInput, type DescribeQueriesCommandOutput, type DescribeQueryDefinitionsCommandInput, type DescribeQueryDefinitionsCommandOutput, type DescribeResourcePoliciesCommandInput, type DescribeResourcePoliciesCommandOutput, type DescribeSubscriptionFiltersCommandInput, type DescribeSubscriptionFiltersCommandOutput, type DisassociateKmsKeyCommandInput, type DisassociateKmsKeyCommandOutput, type FilterLogEventsCommandInput, type FilterLogEventsCommandOutput, type GetDataProtectionPolicyCommandInput, type GetDataProtectionPolicyCommandOutput, type GetDeliveryCommandInput, type GetDeliveryCommandOutput, type GetDeliveryDestinationCommandInput, type GetDeliveryDestinationCommandOutput, type GetDeliveryDestinationPolicyCommandInput, type GetDeliveryDestinationPolicyCommandOutput, type GetDeliverySourceCommandInput, type GetDeliverySourceCommandOutput, type GetLogAnomalyDetectorCommandInput, type GetLogAnomalyDetectorCommandOutput, type GetLogEventsCommandInput, type GetLogEventsCommandOutput, type GetLogGroupFieldsCommandInput, type GetLogGroupFieldsCommandOutput, type GetLogRecordCommandInput, type GetLogRecordCommandOutput, type GetQueryResultsCommandInput, type GetQueryResultsCommandOutput, type ListAnomaliesCommandInput, type ListAnomaliesCommandOutput, type ListLogAnomalyDetectorsCommandInput, type ListLogAnomalyDetectorsCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type ListTagsLogGroupCommandInput, type ListTagsLogGroupCommandOutput, type PutAccountPolicyCommandInput, type PutAccountPolicyCommandOutput, type PutDataProtectionPolicyCommandInput, type PutDataProtectionPolicyCommandOutput, type PutDeliveryDestinationCommandInput, type PutDeliveryDestinationCommandOutput, type PutDeliveryDestinationPolicyCommandInput, type PutDeliveryDestinationPolicyCommandOutput, type PutDeliverySourceCommandInput, type PutDeliverySourceCommandOutput, type PutDestinationCommandInput, type PutDestinationCommandOutput, type PutDestinationPolicyCommandInput, type PutDestinationPolicyCommandOutput, type PutLogEventsCommandInput, type PutLogEventsCommandOutput, type PutMetricFilterCommandInput, type PutMetricFilterCommandOutput, type PutQueryDefinitionCommandInput, type PutQueryDefinitionCommandOutput, type PutResourcePolicyCommandInput, type PutResourcePolicyCommandOutput, type PutRetentionPolicyCommandInput, type PutRetentionPolicyCommandOutput, type PutSubscriptionFilterCommandInput, type PutSubscriptionFilterCommandOutput, type StartLiveTailCommandInput, type StartLiveTailCommandOutput, type StartQueryCommandInput, type StartQueryCommandOutput, type StopQueryCommandInput, type StopQueryCommandOutput, type TagLogGroupCommandInput, type TagLogGroupCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type TestMetricFilterCommandInput, type TestMetricFilterCommandOutput, type UntagLogGroupCommandInput, type UntagLogGroupCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAnomalyCommandInput, type UpdateAnomalyCommandOutput, type UpdateDeliveryConfigurationCommandInput, type UpdateDeliveryConfigurationCommandOutput, type UpdateLogAnomalyDetectorCommandInput, type UpdateLogAnomalyDetectorCommandOutput } from "@aws-sdk/client-cloudwatch-logs";
|
|
4
|
+
import { type CloudWatchLogsClient, type CloudWatchLogsClientConfig, type AssociateKmsKeyCommandInput, type AssociateKmsKeyCommandOutput, type CancelExportTaskCommandInput, type CancelExportTaskCommandOutput, type CreateDeliveryCommandInput, type CreateDeliveryCommandOutput, type CreateExportTaskCommandInput, type CreateExportTaskCommandOutput, type CreateLogAnomalyDetectorCommandInput, type CreateLogAnomalyDetectorCommandOutput, type CreateLogGroupCommandInput, type CreateLogGroupCommandOutput, type CreateLogStreamCommandInput, type CreateLogStreamCommandOutput, type DeleteAccountPolicyCommandInput, type DeleteAccountPolicyCommandOutput, type DeleteDataProtectionPolicyCommandInput, type DeleteDataProtectionPolicyCommandOutput, type DeleteDeliveryCommandInput, type DeleteDeliveryCommandOutput, type DeleteDeliveryDestinationCommandInput, type DeleteDeliveryDestinationCommandOutput, type DeleteDeliveryDestinationPolicyCommandInput, type DeleteDeliveryDestinationPolicyCommandOutput, type DeleteDeliverySourceCommandInput, type DeleteDeliverySourceCommandOutput, type DeleteDestinationCommandInput, type DeleteDestinationCommandOutput, type DeleteIndexPolicyCommandInput, type DeleteIndexPolicyCommandOutput, type DeleteIntegrationCommandInput, type DeleteIntegrationCommandOutput, type DeleteLogAnomalyDetectorCommandInput, type DeleteLogAnomalyDetectorCommandOutput, type DeleteLogGroupCommandInput, type DeleteLogGroupCommandOutput, type DeleteLogStreamCommandInput, type DeleteLogStreamCommandOutput, type DeleteMetricFilterCommandInput, type DeleteMetricFilterCommandOutput, type DeleteQueryDefinitionCommandInput, type DeleteQueryDefinitionCommandOutput, type DeleteResourcePolicyCommandInput, type DeleteResourcePolicyCommandOutput, type DeleteRetentionPolicyCommandInput, type DeleteRetentionPolicyCommandOutput, type DeleteSubscriptionFilterCommandInput, type DeleteSubscriptionFilterCommandOutput, type DeleteTransformerCommandInput, type DeleteTransformerCommandOutput, type DescribeAccountPoliciesCommandInput, type DescribeAccountPoliciesCommandOutput, type DescribeConfigurationTemplatesCommandInput, type DescribeConfigurationTemplatesCommandOutput, type DescribeDeliveriesCommandInput, type DescribeDeliveriesCommandOutput, type DescribeDeliveryDestinationsCommandInput, type DescribeDeliveryDestinationsCommandOutput, type DescribeDeliverySourcesCommandInput, type DescribeDeliverySourcesCommandOutput, type DescribeDestinationsCommandInput, type DescribeDestinationsCommandOutput, type DescribeExportTasksCommandInput, type DescribeExportTasksCommandOutput, type DescribeFieldIndexesCommandInput, type DescribeFieldIndexesCommandOutput, type DescribeIndexPoliciesCommandInput, type DescribeIndexPoliciesCommandOutput, type DescribeLogGroupsCommandInput, type DescribeLogGroupsCommandOutput, type DescribeLogStreamsCommandInput, type DescribeLogStreamsCommandOutput, type DescribeMetricFiltersCommandInput, type DescribeMetricFiltersCommandOutput, type DescribeQueriesCommandInput, type DescribeQueriesCommandOutput, type DescribeQueryDefinitionsCommandInput, type DescribeQueryDefinitionsCommandOutput, type DescribeResourcePoliciesCommandInput, type DescribeResourcePoliciesCommandOutput, type DescribeSubscriptionFiltersCommandInput, type DescribeSubscriptionFiltersCommandOutput, type DisassociateKmsKeyCommandInput, type DisassociateKmsKeyCommandOutput, type FilterLogEventsCommandInput, type FilterLogEventsCommandOutput, type GetDataProtectionPolicyCommandInput, type GetDataProtectionPolicyCommandOutput, type GetDeliveryCommandInput, type GetDeliveryCommandOutput, type GetDeliveryDestinationCommandInput, type GetDeliveryDestinationCommandOutput, type GetDeliveryDestinationPolicyCommandInput, type GetDeliveryDestinationPolicyCommandOutput, type GetDeliverySourceCommandInput, type GetDeliverySourceCommandOutput, type GetIntegrationCommandInput, type GetIntegrationCommandOutput, type GetLogAnomalyDetectorCommandInput, type GetLogAnomalyDetectorCommandOutput, type GetLogEventsCommandInput, type GetLogEventsCommandOutput, type GetLogGroupFieldsCommandInput, type GetLogGroupFieldsCommandOutput, type GetLogRecordCommandInput, type GetLogRecordCommandOutput, type GetQueryResultsCommandInput, type GetQueryResultsCommandOutput, type GetTransformerCommandInput, type GetTransformerCommandOutput, type ListAnomaliesCommandInput, type ListAnomaliesCommandOutput, type ListIntegrationsCommandInput, type ListIntegrationsCommandOutput, type ListLogAnomalyDetectorsCommandInput, type ListLogAnomalyDetectorsCommandOutput, type ListLogGroupsForQueryCommandInput, type ListLogGroupsForQueryCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type ListTagsLogGroupCommandInput, type ListTagsLogGroupCommandOutput, type PutAccountPolicyCommandInput, type PutAccountPolicyCommandOutput, type PutDataProtectionPolicyCommandInput, type PutDataProtectionPolicyCommandOutput, type PutDeliveryDestinationCommandInput, type PutDeliveryDestinationCommandOutput, type PutDeliveryDestinationPolicyCommandInput, type PutDeliveryDestinationPolicyCommandOutput, type PutDeliverySourceCommandInput, type PutDeliverySourceCommandOutput, type PutDestinationCommandInput, type PutDestinationCommandOutput, type PutDestinationPolicyCommandInput, type PutDestinationPolicyCommandOutput, type PutIndexPolicyCommandInput, type PutIndexPolicyCommandOutput, type PutIntegrationCommandInput, type PutIntegrationCommandOutput, type PutLogEventsCommandInput, type PutLogEventsCommandOutput, type PutMetricFilterCommandInput, type PutMetricFilterCommandOutput, type PutQueryDefinitionCommandInput, type PutQueryDefinitionCommandOutput, type PutResourcePolicyCommandInput, type PutResourcePolicyCommandOutput, type PutRetentionPolicyCommandInput, type PutRetentionPolicyCommandOutput, type PutSubscriptionFilterCommandInput, type PutSubscriptionFilterCommandOutput, type PutTransformerCommandInput, type PutTransformerCommandOutput, type StartLiveTailCommandInput, type StartLiveTailCommandOutput, type StartQueryCommandInput, type StartQueryCommandOutput, type StopQueryCommandInput, type StopQueryCommandOutput, type TagLogGroupCommandInput, type TagLogGroupCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type TestMetricFilterCommandInput, type TestMetricFilterCommandOutput, type TestTransformerCommandInput, type TestTransformerCommandOutput, type UntagLogGroupCommandInput, type UntagLogGroupCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAnomalyCommandInput, type UpdateAnomalyCommandOutput, type UpdateDeliveryConfigurationCommandInput, type UpdateDeliveryConfigurationCommandOutput, type UpdateLogAnomalyDetectorCommandInput, type UpdateLogAnomalyDetectorCommandOutput } from "@aws-sdk/client-cloudwatch-logs";
|
|
5
5
|
import { Effect, Layer } from "effect";
|
|
6
6
|
import { CloudWatchLogsClientInstance } from "./CloudWatchLogsClientInstance";
|
|
7
7
|
import { CloudWatchLogsClientInstanceConfig } from "./CloudWatchLogsClientInstanceConfig";
|
|
@@ -74,6 +74,14 @@ interface CloudWatchLogsService$ {
|
|
|
74
74
|
* @see {@link DeleteDestinationCommand}
|
|
75
75
|
*/
|
|
76
76
|
deleteDestination(args: DeleteDestinationCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteDestinationCommandOutput, SdkError | InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
77
|
+
/**
|
|
78
|
+
* @see {@link DeleteIndexPolicyCommand}
|
|
79
|
+
*/
|
|
80
|
+
deleteIndexPolicy(args: DeleteIndexPolicyCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteIndexPolicyCommandOutput, SdkError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
81
|
+
/**
|
|
82
|
+
* @see {@link DeleteIntegrationCommand}
|
|
83
|
+
*/
|
|
84
|
+
deleteIntegration(args: DeleteIntegrationCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteIntegrationCommandOutput, SdkError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | ValidationError>;
|
|
77
85
|
/**
|
|
78
86
|
* @see {@link DeleteLogAnomalyDetectorCommand}
|
|
79
87
|
*/
|
|
@@ -106,6 +114,10 @@ interface CloudWatchLogsService$ {
|
|
|
106
114
|
* @see {@link DeleteSubscriptionFilterCommand}
|
|
107
115
|
*/
|
|
108
116
|
deleteSubscriptionFilter(args: DeleteSubscriptionFilterCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteSubscriptionFilterCommandOutput, SdkError | InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
117
|
+
/**
|
|
118
|
+
* @see {@link DeleteTransformerCommand}
|
|
119
|
+
*/
|
|
120
|
+
deleteTransformer(args: DeleteTransformerCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteTransformerCommandOutput, SdkError | InvalidOperationError | InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
109
121
|
/**
|
|
110
122
|
* @see {@link DescribeAccountPoliciesCommand}
|
|
111
123
|
*/
|
|
@@ -134,6 +146,14 @@ interface CloudWatchLogsService$ {
|
|
|
134
146
|
* @see {@link DescribeExportTasksCommand}
|
|
135
147
|
*/
|
|
136
148
|
describeExportTasks(args: DescribeExportTasksCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeExportTasksCommandOutput, SdkError | InvalidParameterError | ServiceUnavailableError>;
|
|
149
|
+
/**
|
|
150
|
+
* @see {@link DescribeFieldIndexesCommand}
|
|
151
|
+
*/
|
|
152
|
+
describeFieldIndexes(args: DescribeFieldIndexesCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeFieldIndexesCommandOutput, SdkError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
153
|
+
/**
|
|
154
|
+
* @see {@link DescribeIndexPoliciesCommand}
|
|
155
|
+
*/
|
|
156
|
+
describeIndexPolicies(args: DescribeIndexPoliciesCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeIndexPoliciesCommandOutput, SdkError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
137
157
|
/**
|
|
138
158
|
* @see {@link DescribeLogGroupsCommand}
|
|
139
159
|
*/
|
|
@@ -190,6 +210,10 @@ interface CloudWatchLogsService$ {
|
|
|
190
210
|
* @see {@link GetDeliverySourceCommand}
|
|
191
211
|
*/
|
|
192
212
|
getDeliverySource(args: GetDeliverySourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetDeliverySourceCommandOutput, SdkError | ResourceNotFoundError | ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError>;
|
|
213
|
+
/**
|
|
214
|
+
* @see {@link GetIntegrationCommand}
|
|
215
|
+
*/
|
|
216
|
+
getIntegration(args: GetIntegrationCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetIntegrationCommandOutput, SdkError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
193
217
|
/**
|
|
194
218
|
* @see {@link GetLogAnomalyDetectorCommand}
|
|
195
219
|
*/
|
|
@@ -210,14 +234,26 @@ interface CloudWatchLogsService$ {
|
|
|
210
234
|
* @see {@link GetQueryResultsCommand}
|
|
211
235
|
*/
|
|
212
236
|
getQueryResults(args: GetQueryResultsCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetQueryResultsCommandOutput, SdkError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
237
|
+
/**
|
|
238
|
+
* @see {@link GetTransformerCommand}
|
|
239
|
+
*/
|
|
240
|
+
getTransformer(args: GetTransformerCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetTransformerCommandOutput, SdkError | InvalidOperationError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
213
241
|
/**
|
|
214
242
|
* @see {@link ListAnomaliesCommand}
|
|
215
243
|
*/
|
|
216
244
|
listAnomalies(args: ListAnomaliesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListAnomaliesCommandOutput, SdkError | InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
245
|
+
/**
|
|
246
|
+
* @see {@link ListIntegrationsCommand}
|
|
247
|
+
*/
|
|
248
|
+
listIntegrations(args: ListIntegrationsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListIntegrationsCommandOutput, SdkError | InvalidParameterError | ServiceUnavailableError>;
|
|
217
249
|
/**
|
|
218
250
|
* @see {@link ListLogAnomalyDetectorsCommand}
|
|
219
251
|
*/
|
|
220
252
|
listLogAnomalyDetectors(args: ListLogAnomalyDetectorsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListLogAnomalyDetectorsCommandOutput, SdkError | InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
253
|
+
/**
|
|
254
|
+
* @see {@link ListLogGroupsForQueryCommand}
|
|
255
|
+
*/
|
|
256
|
+
listLogGroupsForQuery(args: ListLogGroupsForQueryCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListLogGroupsForQueryCommandOutput, SdkError | AccessDeniedError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
221
257
|
/**
|
|
222
258
|
* @see {@link ListTagsForResourceCommand}
|
|
223
259
|
*/
|
|
@@ -254,6 +290,14 @@ interface CloudWatchLogsService$ {
|
|
|
254
290
|
* @see {@link PutDestinationPolicyCommand}
|
|
255
291
|
*/
|
|
256
292
|
putDestinationPolicy(args: PutDestinationPolicyCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutDestinationPolicyCommandOutput, SdkError | InvalidParameterError | OperationAbortedError | ServiceUnavailableError>;
|
|
293
|
+
/**
|
|
294
|
+
* @see {@link PutIndexPolicyCommand}
|
|
295
|
+
*/
|
|
296
|
+
putIndexPolicy(args: PutIndexPolicyCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutIndexPolicyCommandOutput, SdkError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
297
|
+
/**
|
|
298
|
+
* @see {@link PutIntegrationCommand}
|
|
299
|
+
*/
|
|
300
|
+
putIntegration(args: PutIntegrationCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutIntegrationCommandOutput, SdkError | InvalidParameterError | LimitExceededError | ServiceUnavailableError | ValidationError>;
|
|
257
301
|
/**
|
|
258
302
|
* @see {@link PutLogEventsCommand}
|
|
259
303
|
*/
|
|
@@ -261,7 +305,7 @@ interface CloudWatchLogsService$ {
|
|
|
261
305
|
/**
|
|
262
306
|
* @see {@link PutMetricFilterCommand}
|
|
263
307
|
*/
|
|
264
|
-
putMetricFilter(args: PutMetricFilterCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutMetricFilterCommandOutput, SdkError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
308
|
+
putMetricFilter(args: PutMetricFilterCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutMetricFilterCommandOutput, SdkError | InvalidOperationError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
265
309
|
/**
|
|
266
310
|
* @see {@link PutQueryDefinitionCommand}
|
|
267
311
|
*/
|
|
@@ -277,7 +321,11 @@ interface CloudWatchLogsService$ {
|
|
|
277
321
|
/**
|
|
278
322
|
* @see {@link PutSubscriptionFilterCommand}
|
|
279
323
|
*/
|
|
280
|
-
putSubscriptionFilter(args: PutSubscriptionFilterCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutSubscriptionFilterCommandOutput, SdkError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
324
|
+
putSubscriptionFilter(args: PutSubscriptionFilterCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutSubscriptionFilterCommandOutput, SdkError | InvalidOperationError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
325
|
+
/**
|
|
326
|
+
* @see {@link PutTransformerCommand}
|
|
327
|
+
*/
|
|
328
|
+
putTransformer(args: PutTransformerCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutTransformerCommandOutput, SdkError | InvalidOperationError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError>;
|
|
281
329
|
/**
|
|
282
330
|
* @see {@link StartLiveTailCommand}
|
|
283
331
|
*/
|
|
@@ -302,6 +350,10 @@ interface CloudWatchLogsService$ {
|
|
|
302
350
|
* @see {@link TestMetricFilterCommand}
|
|
303
351
|
*/
|
|
304
352
|
testMetricFilter(args: TestMetricFilterCommandInput, options?: HttpHandlerOptions): Effect.Effect<TestMetricFilterCommandOutput, SdkError | InvalidParameterError | ServiceUnavailableError>;
|
|
353
|
+
/**
|
|
354
|
+
* @see {@link TestTransformerCommand}
|
|
355
|
+
*/
|
|
356
|
+
testTransformer(args: TestTransformerCommandInput, options?: HttpHandlerOptions): Effect.Effect<TestTransformerCommandOutput, SdkError | InvalidOperationError | InvalidParameterError | ServiceUnavailableError>;
|
|
305
357
|
/**
|
|
306
358
|
* @see {@link UntagLogGroupCommand}
|
|
307
359
|
*/
|
|
@@ -344,6 +396,8 @@ declare const CloudWatchLogsService_base: import("effect/Context").TagClass<Clou
|
|
|
344
396
|
deleteDeliveryDestinationPolicy: (args: DeleteDeliveryDestinationPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteDeliveryDestinationPolicyCommandOutput, ConflictError | ResourceNotFoundError | ServiceUnavailableError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
345
397
|
deleteDeliverySource: (args: DeleteDeliverySourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteDeliverySourceCommandOutput, ConflictError | ResourceNotFoundError | ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
346
398
|
deleteDestination: (args: DeleteDestinationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteDestinationCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
399
|
+
deleteIndexPolicy: (args: DeleteIndexPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteIndexPolicyCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
400
|
+
deleteIntegration: (args: DeleteIntegrationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteIntegrationCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
347
401
|
deleteLogAnomalyDetector: (args: DeleteLogAnomalyDetectorCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteLogAnomalyDetectorCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
348
402
|
deleteLogGroup: (args: DeleteLogGroupCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteLogGroupCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
349
403
|
deleteLogStream: (args: DeleteLogStreamCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteLogStreamCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
@@ -352,6 +406,7 @@ declare const CloudWatchLogsService_base: import("effect/Context").TagClass<Clou
|
|
|
352
406
|
deleteResourcePolicy: (args: DeleteResourcePolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteResourcePolicyCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
353
407
|
deleteRetentionPolicy: (args: DeleteRetentionPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteRetentionPolicyCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
354
408
|
deleteSubscriptionFilter: (args: DeleteSubscriptionFilterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteSubscriptionFilterCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
409
|
+
deleteTransformer: (args: DeleteTransformerCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteTransformerCommandOutput, InvalidOperationError | InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
355
410
|
describeAccountPolicies: (args: DescribeAccountPoliciesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeAccountPoliciesCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
356
411
|
describeConfigurationTemplates: (args: DescribeConfigurationTemplatesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeConfigurationTemplatesCommandOutput, ResourceNotFoundError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
357
412
|
describeDeliveries: (args: DescribeDeliveriesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeDeliveriesCommandOutput, ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
@@ -359,6 +414,8 @@ declare const CloudWatchLogsService_base: import("effect/Context").TagClass<Clou
|
|
|
359
414
|
describeDeliverySources: (args: DescribeDeliverySourcesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeDeliverySourcesCommandOutput, ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
360
415
|
describeDestinations: (args: DescribeDestinationsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeDestinationsCommandOutput, InvalidParameterError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
361
416
|
describeExportTasks: (args: DescribeExportTasksCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeExportTasksCommandOutput, InvalidParameterError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
417
|
+
describeFieldIndexes: (args: DescribeFieldIndexesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeFieldIndexesCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
418
|
+
describeIndexPolicies: (args: DescribeIndexPoliciesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeIndexPoliciesCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
362
419
|
describeLogGroups: (args: DescribeLogGroupsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeLogGroupsCommandOutput, InvalidParameterError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
363
420
|
describeLogStreams: (args: DescribeLogStreamsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeLogStreamsCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
364
421
|
describeMetricFilters: (args: DescribeMetricFiltersCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeMetricFiltersCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
@@ -373,13 +430,17 @@ declare const CloudWatchLogsService_base: import("effect/Context").TagClass<Clou
|
|
|
373
430
|
getDeliveryDestination: (args: GetDeliveryDestinationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetDeliveryDestinationCommandOutput, ResourceNotFoundError | ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
374
431
|
getDeliveryDestinationPolicy: (args: GetDeliveryDestinationPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetDeliveryDestinationPolicyCommandOutput, ResourceNotFoundError | ServiceUnavailableError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
375
432
|
getDeliverySource: (args: GetDeliverySourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetDeliverySourceCommandOutput, ResourceNotFoundError | ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
433
|
+
getIntegration: (args: GetIntegrationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetIntegrationCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
376
434
|
getLogAnomalyDetector: (args: GetLogAnomalyDetectorCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetLogAnomalyDetectorCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
377
435
|
getLogEvents: (args: GetLogEventsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetLogEventsCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
378
436
|
getLogGroupFields: (args: GetLogGroupFieldsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetLogGroupFieldsCommandOutput, InvalidParameterError | LimitExceededError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
379
437
|
getLogRecord: (args: GetLogRecordCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetLogRecordCommandOutput, InvalidParameterError | LimitExceededError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
380
438
|
getQueryResults: (args: GetQueryResultsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetQueryResultsCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
439
|
+
getTransformer: (args: GetTransformerCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetTransformerCommandOutput, InvalidOperationError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
381
440
|
listAnomalies: (args: ListAnomaliesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListAnomaliesCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
441
|
+
listIntegrations: (args: ListIntegrationsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListIntegrationsCommandOutput, InvalidParameterError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
382
442
|
listLogAnomalyDetectors: (args: ListLogAnomalyDetectorsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListLogAnomalyDetectorsCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
443
|
+
listLogGroupsForQuery: (args: ListLogGroupsForQueryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListLogGroupsForQueryCommandOutput, AccessDeniedError | InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
383
444
|
listTagsForResource: (args: ListTagsForResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListTagsForResourceCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
384
445
|
listTagsLogGroup: (args: ListTagsLogGroupCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListTagsLogGroupCommandOutput, ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
385
446
|
putAccountPolicy: (args: PutAccountPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutAccountPolicyCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
@@ -389,18 +450,22 @@ declare const CloudWatchLogsService_base: import("effect/Context").TagClass<Clou
|
|
|
389
450
|
putDeliverySource: (args: PutDeliverySourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutDeliverySourceCommandOutput, ConflictError | ResourceNotFoundError | ServiceQuotaExceededError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
390
451
|
putDestination: (args: PutDestinationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutDestinationCommandOutput, InvalidParameterError | OperationAbortedError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
391
452
|
putDestinationPolicy: (args: PutDestinationPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutDestinationPolicyCommandOutput, InvalidParameterError | OperationAbortedError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
453
|
+
putIndexPolicy: (args: PutIndexPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutIndexPolicyCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
454
|
+
putIntegration: (args: PutIntegrationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutIntegrationCommandOutput, InvalidParameterError | LimitExceededError | ServiceUnavailableError | ValidationError | SdkError, CloudWatchLogsService>;
|
|
392
455
|
putLogEvents: (args: PutLogEventsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutLogEventsCommandOutput, DataAlreadyAcceptedError | InvalidParameterError | InvalidSequenceTokenError | ResourceNotFoundError | ServiceUnavailableError | UnrecognizedClientError | SdkError, CloudWatchLogsService>;
|
|
393
|
-
putMetricFilter: (args: PutMetricFilterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutMetricFilterCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
456
|
+
putMetricFilter: (args: PutMetricFilterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutMetricFilterCommandOutput, InvalidOperationError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
394
457
|
putQueryDefinition: (args: PutQueryDefinitionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutQueryDefinitionCommandOutput, InvalidParameterError | LimitExceededError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
395
458
|
putResourcePolicy: (args: PutResourcePolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutResourcePolicyCommandOutput, InvalidParameterError | LimitExceededError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
396
459
|
putRetentionPolicy: (args: PutRetentionPolicyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutRetentionPolicyCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
397
|
-
putSubscriptionFilter: (args: PutSubscriptionFilterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutSubscriptionFilterCommandOutput, InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
460
|
+
putSubscriptionFilter: (args: PutSubscriptionFilterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutSubscriptionFilterCommandOutput, InvalidOperationError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
461
|
+
putTransformer: (args: PutTransformerCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutTransformerCommandOutput, InvalidOperationError | InvalidParameterError | LimitExceededError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
398
462
|
startLiveTail: (args: StartLiveTailCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartLiveTailCommandOutput, AccessDeniedError | InvalidOperationError | InvalidParameterError | LimitExceededError | ResourceNotFoundError | SdkError, CloudWatchLogsService>;
|
|
399
463
|
startQuery: (args: StartQueryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartQueryCommandOutput, InvalidParameterError | LimitExceededError | MalformedQueryError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
400
464
|
stopQuery: (args: StopQueryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StopQueryCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
401
465
|
tagLogGroup: (args: TagLogGroupCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TagLogGroupCommandOutput, InvalidParameterError | ResourceNotFoundError | SdkError, CloudWatchLogsService>;
|
|
402
466
|
tagResource: (args: TagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TagResourceCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | TooManyTagsError | SdkError, CloudWatchLogsService>;
|
|
403
467
|
testMetricFilter: (args: TestMetricFilterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TestMetricFilterCommandOutput, InvalidParameterError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
468
|
+
testTransformer: (args: TestTransformerCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TestTransformerCommandOutput, InvalidOperationError | InvalidParameterError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
404
469
|
untagLogGroup: (args: UntagLogGroupCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UntagLogGroupCommandOutput, ResourceNotFoundError | SdkError, CloudWatchLogsService>;
|
|
405
470
|
untagResource: (args: UntagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UntagResourceCommandOutput, InvalidParameterError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
406
471
|
updateAnomaly: (args: UpdateAnomalyCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateAnomalyCommandOutput, InvalidParameterError | OperationAbortedError | ResourceNotFoundError | ServiceUnavailableError | SdkError, CloudWatchLogsService>;
|
|
@@ -25,6 +25,8 @@ const commands = {
|
|
|
25
25
|
DeleteDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.DeleteDeliveryDestinationPolicyCommand,
|
|
26
26
|
DeleteDeliverySourceCommand: client_cloudwatch_logs_1.DeleteDeliverySourceCommand,
|
|
27
27
|
DeleteDestinationCommand: client_cloudwatch_logs_1.DeleteDestinationCommand,
|
|
28
|
+
DeleteIndexPolicyCommand: client_cloudwatch_logs_1.DeleteIndexPolicyCommand,
|
|
29
|
+
DeleteIntegrationCommand: client_cloudwatch_logs_1.DeleteIntegrationCommand,
|
|
28
30
|
DeleteLogAnomalyDetectorCommand: client_cloudwatch_logs_1.DeleteLogAnomalyDetectorCommand,
|
|
29
31
|
DeleteLogGroupCommand: client_cloudwatch_logs_1.DeleteLogGroupCommand,
|
|
30
32
|
DeleteLogStreamCommand: client_cloudwatch_logs_1.DeleteLogStreamCommand,
|
|
@@ -33,6 +35,7 @@ const commands = {
|
|
|
33
35
|
DeleteResourcePolicyCommand: client_cloudwatch_logs_1.DeleteResourcePolicyCommand,
|
|
34
36
|
DeleteRetentionPolicyCommand: client_cloudwatch_logs_1.DeleteRetentionPolicyCommand,
|
|
35
37
|
DeleteSubscriptionFilterCommand: client_cloudwatch_logs_1.DeleteSubscriptionFilterCommand,
|
|
38
|
+
DeleteTransformerCommand: client_cloudwatch_logs_1.DeleteTransformerCommand,
|
|
36
39
|
DescribeAccountPoliciesCommand: client_cloudwatch_logs_1.DescribeAccountPoliciesCommand,
|
|
37
40
|
DescribeConfigurationTemplatesCommand: client_cloudwatch_logs_1.DescribeConfigurationTemplatesCommand,
|
|
38
41
|
DescribeDeliveriesCommand: client_cloudwatch_logs_1.DescribeDeliveriesCommand,
|
|
@@ -40,6 +43,8 @@ const commands = {
|
|
|
40
43
|
DescribeDeliverySourcesCommand: client_cloudwatch_logs_1.DescribeDeliverySourcesCommand,
|
|
41
44
|
DescribeDestinationsCommand: client_cloudwatch_logs_1.DescribeDestinationsCommand,
|
|
42
45
|
DescribeExportTasksCommand: client_cloudwatch_logs_1.DescribeExportTasksCommand,
|
|
46
|
+
DescribeFieldIndexesCommand: client_cloudwatch_logs_1.DescribeFieldIndexesCommand,
|
|
47
|
+
DescribeIndexPoliciesCommand: client_cloudwatch_logs_1.DescribeIndexPoliciesCommand,
|
|
43
48
|
DescribeLogGroupsCommand: client_cloudwatch_logs_1.DescribeLogGroupsCommand,
|
|
44
49
|
DescribeLogStreamsCommand: client_cloudwatch_logs_1.DescribeLogStreamsCommand,
|
|
45
50
|
DescribeMetricFiltersCommand: client_cloudwatch_logs_1.DescribeMetricFiltersCommand,
|
|
@@ -54,13 +59,17 @@ const commands = {
|
|
|
54
59
|
GetDeliveryDestinationCommand: client_cloudwatch_logs_1.GetDeliveryDestinationCommand,
|
|
55
60
|
GetDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.GetDeliveryDestinationPolicyCommand,
|
|
56
61
|
GetDeliverySourceCommand: client_cloudwatch_logs_1.GetDeliverySourceCommand,
|
|
62
|
+
GetIntegrationCommand: client_cloudwatch_logs_1.GetIntegrationCommand,
|
|
57
63
|
GetLogAnomalyDetectorCommand: client_cloudwatch_logs_1.GetLogAnomalyDetectorCommand,
|
|
58
64
|
GetLogEventsCommand: client_cloudwatch_logs_1.GetLogEventsCommand,
|
|
59
65
|
GetLogGroupFieldsCommand: client_cloudwatch_logs_1.GetLogGroupFieldsCommand,
|
|
60
66
|
GetLogRecordCommand: client_cloudwatch_logs_1.GetLogRecordCommand,
|
|
61
67
|
GetQueryResultsCommand: client_cloudwatch_logs_1.GetQueryResultsCommand,
|
|
68
|
+
GetTransformerCommand: client_cloudwatch_logs_1.GetTransformerCommand,
|
|
62
69
|
ListAnomaliesCommand: client_cloudwatch_logs_1.ListAnomaliesCommand,
|
|
70
|
+
ListIntegrationsCommand: client_cloudwatch_logs_1.ListIntegrationsCommand,
|
|
63
71
|
ListLogAnomalyDetectorsCommand: client_cloudwatch_logs_1.ListLogAnomalyDetectorsCommand,
|
|
72
|
+
ListLogGroupsForQueryCommand: client_cloudwatch_logs_1.ListLogGroupsForQueryCommand,
|
|
64
73
|
ListTagsForResourceCommand: client_cloudwatch_logs_1.ListTagsForResourceCommand,
|
|
65
74
|
ListTagsLogGroupCommand: client_cloudwatch_logs_1.ListTagsLogGroupCommand,
|
|
66
75
|
PutAccountPolicyCommand: client_cloudwatch_logs_1.PutAccountPolicyCommand,
|
|
@@ -70,18 +79,22 @@ const commands = {
|
|
|
70
79
|
PutDeliverySourceCommand: client_cloudwatch_logs_1.PutDeliverySourceCommand,
|
|
71
80
|
PutDestinationCommand: client_cloudwatch_logs_1.PutDestinationCommand,
|
|
72
81
|
PutDestinationPolicyCommand: client_cloudwatch_logs_1.PutDestinationPolicyCommand,
|
|
82
|
+
PutIndexPolicyCommand: client_cloudwatch_logs_1.PutIndexPolicyCommand,
|
|
83
|
+
PutIntegrationCommand: client_cloudwatch_logs_1.PutIntegrationCommand,
|
|
73
84
|
PutLogEventsCommand: client_cloudwatch_logs_1.PutLogEventsCommand,
|
|
74
85
|
PutMetricFilterCommand: client_cloudwatch_logs_1.PutMetricFilterCommand,
|
|
75
86
|
PutQueryDefinitionCommand: client_cloudwatch_logs_1.PutQueryDefinitionCommand,
|
|
76
87
|
PutResourcePolicyCommand: client_cloudwatch_logs_1.PutResourcePolicyCommand,
|
|
77
88
|
PutRetentionPolicyCommand: client_cloudwatch_logs_1.PutRetentionPolicyCommand,
|
|
78
89
|
PutSubscriptionFilterCommand: client_cloudwatch_logs_1.PutSubscriptionFilterCommand,
|
|
90
|
+
PutTransformerCommand: client_cloudwatch_logs_1.PutTransformerCommand,
|
|
79
91
|
StartLiveTailCommand: client_cloudwatch_logs_1.StartLiveTailCommand,
|
|
80
92
|
StartQueryCommand: client_cloudwatch_logs_1.StartQueryCommand,
|
|
81
93
|
StopQueryCommand: client_cloudwatch_logs_1.StopQueryCommand,
|
|
82
94
|
TagLogGroupCommand: client_cloudwatch_logs_1.TagLogGroupCommand,
|
|
83
95
|
TagResourceCommand: client_cloudwatch_logs_1.TagResourceCommand,
|
|
84
96
|
TestMetricFilterCommand: client_cloudwatch_logs_1.TestMetricFilterCommand,
|
|
97
|
+
TestTransformerCommand: client_cloudwatch_logs_1.TestTransformerCommand,
|
|
85
98
|
UntagLogGroupCommand: client_cloudwatch_logs_1.UntagLogGroupCommand,
|
|
86
99
|
UntagResourceCommand: client_cloudwatch_logs_1.UntagResourceCommand,
|
|
87
100
|
UpdateAnomalyCommand: client_cloudwatch_logs_1.UpdateAnomalyCommand,
|
|
@@ -161,4 +174,4 @@ exports.CloudWatchLogsServiceLayer = exports.BaseCloudWatchLogsServiceLayer.pipe
|
|
|
161
174
|
* @deprecated use CloudWatchLogs.defaultLayer instead
|
|
162
175
|
*/
|
|
163
176
|
exports.DefaultCloudWatchLogsServiceLayer = CloudWatchLogsService.defaultLayer;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0dBRUc7QUFDSCw0RUF3T3lDO0FBQ3pDLG1DQUFxRDtBQUNyRCxpRkFHd0M7QUFDeEMsNkZBSThDO0FBQzlDLHFDQXFCa0I7QUFhbEIsTUFBTSxRQUFRLEdBQUc7SUFDZixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQix1QkFBdUIsRUFBdkIsZ0RBQXVCO0lBQ3ZCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLDBCQUEwQixFQUExQixtREFBMEI7SUFDMUIsaUNBQWlDLEVBQWpDLDBEQUFpQztJQUNqQyxxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLGdDQUFnQyxFQUFoQyx5REFBZ0M7SUFDaEMsc0NBQXNDLEVBQXRDLCtEQUFzQztJQUN0QywyQkFBMkIsRUFBM0Isb0RBQTJCO0lBQzNCLHdCQUF3QixFQUF4QixpREFBd0I7SUFDeEIsK0JBQStCLEVBQS9CLHdEQUErQjtJQUMvQixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLHNCQUFzQixFQUF0QiwrQ0FBc0I7SUFDdEIseUJBQXlCLEVBQXpCLGtEQUF5QjtJQUN6Qiw0QkFBNEIsRUFBNUIscURBQTRCO0lBQzVCLDJCQUEyQixFQUEzQixvREFBMkI7SUFDM0IsNEJBQTRCLEVBQTVCLHFEQUE0QjtJQUM1QiwrQkFBK0IsRUFBL0Isd0RBQStCO0lBQy9CLDhCQUE4QixFQUE5Qix1REFBOEI7SUFDOUIscUNBQXFDLEVBQXJDLDhEQUFxQztJQUNyQyx5QkFBeUIsRUFBekIsa0RBQXlCO0lBQ3pCLG1DQUFtQyxFQUFu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RUFDckIsaUNBQXlCLENBQzFCLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBRyxzQ0FBOEIsQ0FBQyxJQUFJLENBQzNFLGNBQUssQ0FBQyxPQUFPLENBQUMsZ0VBQWlDLENBQUMsQ0FDakQsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLGlDQUFpQyxHQUM1QyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgQ2xvdWRXYXRjaExvZ3NDbGllbnQsXG4gIHR5cGUgQ2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWcsXG4gIEFzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgR2V0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ1JlY29yZENvbW1hbmQsXG4gIHR5cGUgR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ1JlY29yZENvbW1hbmRPdXRwdXQsXG4gIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gIHR5cGUgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBbm9tYWxpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgUHV0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TGl2ZVRhaWxDb21tYW5kLFxuICB0eXBlIFN0YXJ0TGl2ZVRhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICB0eXBlIFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIHR5cGUgU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIFVudGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFub21hbHlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQW5vbWFseUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBEYXRhQWxyZWFkeUFjY2VwdGVkRXJyb3IsXG4gIEludmFsaWRPcGVyYXRpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckVycm9yLFxuICBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIE1hbGZvcm1lZFF1ZXJ5RXJyb3IsXG4gIE9wZXJhdGlvbkFib3J0ZWRFcnJvcixcbiAgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IsXG4gIFRocm90dGxpbmdFcnJvcixcbiAgVG9vTWFueVRhZ3NFcnJvcixcbiAgVW5yZWNvZ25pemVkQ2xpZW50RXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQsXG4gIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQsXG4gIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICBEZWxldGVMb2dHcm91cENvbW1hbmQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kLFxuICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kLFxuICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQsXG4gIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQsXG4gIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQsXG4gIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlDb21tYW5kLFxuICBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgR2V0TG9nRXZlbnRzQ29tbWFuZCxcbiAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kLFxuICBHZXRMb2dSZWNvcmRDb21tYW5kLFxuICBHZXRRdWVyeVJlc3VsdHNDb21tYW5kLFxuICBMaXN0QW5vbWFsaWVzQ29tbWFuZCxcbiAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBQdXREZXN0aW5hdGlvbkNvbW1hbmQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0TG9nRXZlbnRzQ29tbWFuZCxcbiAgUHV0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kLFxuICBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kLFxuICBTdGFydExpdmVUYWlsQ29tbWFuZCxcbiAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVBbm9tYWx5Q29tbWFuZCxcbiAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlS21zS2V5Q29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZUttc0tleShcbiAgICBhcmdzOiBBc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRGVsaXZlcnkoXG4gICAgYXJnczogQ3JlYXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dTdHJlYW0oXG4gICAgYXJnczogQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWNjb3VudFBvbGljeShcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnkoXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nR3JvdXAoXG4gICAgYXJnczogRGVsZXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxvZ1N0cmVhbShcbiAgICBhcmdzOiBEZWxldGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVNZXRyaWNGaWx0ZXIoXG4gICAgYXJnczogRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUXVlcnlEZWZpbml0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmV0ZW50aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlcihcbiAgICBhcmdzOiBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQWNjb3VudFBvbGljaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMoXG4gICAgYXJnczogRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZWxpdmVyaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcnlTb3VyY2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlc3RpbmF0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFeHBvcnRUYXNrcyhcbiAgICBhcmdzOiBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxvZ0dyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxvZ1N0cmVhbXMoXG4gICAgYXJnczogRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTWV0cmljRmlsdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVF1ZXJpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVRdWVyaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlUXVlcmllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc291cmNlUG9saWNpZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZH1cbiAgICovXG4gIGRpc2Fzc29jaWF0ZUttc0tleShcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBmaWx0ZXJMb2dFdmVudHMoXG4gICAgYXJnczogRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnkoXG4gICAgYXJnczogR2V0RGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0V2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dFdmVudHMoXG4gICAgYXJnczogR2V0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nR3JvdXBGaWVsZHMoXG4gICAgYXJnczogR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9nUmVjb3JkQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ1JlY29yZChcbiAgICBhcmdzOiBHZXRMb2dSZWNvcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMb2dSZWNvcmRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmR9XG4gICAqL1xuICBnZXRRdWVyeVJlc3VsdHMoXG4gICAgYXJnczogR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFub21hbGllc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QW5vbWFsaWVzKFxuICAgIGFyZ3M6IExpc3RBbm9tYWxpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QW5vbWFsaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TG9nQW5vbWFseURldGVjdG9ycyhcbiAgICBhcmdzOiBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzTG9nR3JvdXAoXG4gICAgYXJnczogTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QWNjb3VudFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRBY2NvdW50UG9saWN5KFxuICAgIGFyZ3M6IFB1dEFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXREYXRhUHJvdGVjdGlvblBvbGljeShcbiAgICBhcmdzOiBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0RGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0RGVzdGluYXRpb24oXG4gICAgYXJnczogUHV0RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgcHV0TG9nRXZlbnRzKFxuICAgIGFyZ3M6IFB1dExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGF0YUFscmVhZHlBY2NlcHRlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTZXF1ZW5jZVRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFVucmVjb2duaXplZENsaWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBwdXRNZXRyaWNGaWx0ZXIoXG4gICAgYXJnczogUHV0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0TWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXRRdWVyeURlZmluaXRpb24oXG4gICAgYXJnczogUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFJldGVudGlvblBvbGljeShcbiAgICBhcmdzOiBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBwdXRTdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgYXJnczogUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0TGl2ZVRhaWxDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRMaXZlVGFpbChcbiAgICBhcmdzOiBTdGFydExpdmVUYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFF1ZXJ5Q29tbWFuZH1cbiAgICovXG4gIHN0YXJ0UXVlcnkoXG4gICAgYXJnczogU3RhcnRRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0UXVlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRRdWVyeUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBzdG9wUXVlcnkoXG4gICAgYXJnczogU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdGFnTG9nR3JvdXAoXG4gICAgYXJnczogVGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgdGVzdE1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHVudGFnTG9nR3JvdXAoXG4gICAgYXJnczogVW50YWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFub21hbHlDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQW5vbWFseShcbiAgICBhcmdzOiBVcGRhdGVBbm9tYWx5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQW5vbWFseUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL0Nsb3VkV2F0Y2hMb2dzU2VydmljZVwiLFxuKTxDbG91ZFdhdGNoTG9nc1NlcnZpY2UsIENsb3VkV2F0Y2hMb2dzU2VydmljZSQ+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KFxuICAgIHRoaXMsXG4gICAgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSxcbiAgKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogQ2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKFxuICAgICAgZGVmYXVsdENvbmZpZzogQ2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWcsXG4gICAgKSA9PiBDbG91ZFdhdGNoTG9nc0NsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IENsb3VkV2F0Y2hMb2dzID0gQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIENsb3VkV2F0Y2hMb2dzLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZSxcbiAgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQ2xvdWRXYXRjaExvZ3MubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPSBCYXNlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBDbG91ZFdhdGNoTG9ncy5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdENsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyID1cbiAgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0dBRUc7QUFDSCw0RUErUXlDO0FBQ3pDLG1DQUFxRDtBQUNyRCxpRkFHd0M7QUFDeEMsNkZBSThDO0FBQzlDLHFDQXFCa0I7QUFhbEIsTUFBTSxRQUFRLEdBQUc7SUFDZixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQix1QkFBdUIsRUFBdkIsZ0RBQXVCO0lBQ3ZCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLDBCQUEwQixFQUExQixtREFBMEI7SUFDMUIsaUNBQWlDLEVBQWpDLDBEQUFpQztJQUNqQyxxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLGdDQUFnQyxFQUFoQyx5REFBZ0M7SUFDaEMsc0NBQXNDLEVBQXRDLCtEQUFzQztJQUN0QywyQkFBMkIsRUFBM0Isb0RBQTJCO0lBQzNCLHdCQUF3QixFQUF4QixpREFBd0I7SUFDeEIsd0JBQXdCLEVBQXhCLGlEQUF3QjtJQUN4Qix3QkFBd0IsRUFBeEIsaURBQXdCO0lBQ3hCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLHlCQUF5QixFQUF6QixrREFBeUI7SUFDekIsNEJBQTRCLEVBQTVCLHFEQUE0QjtJQUM1QiwyQkFBMkIsRUFBM0Isb0RBQTJCO0lBQzNCLDRCQUE0QixFQUE1QixxREFBNEI7SUFDNUIsK0JBQStCLEVBQS9CLHdEQUErQjtJQUMvQix3QkFBd0IsRUFBeEIsaURBQXdCO0lBQ3hCLDhCQUE4QixFQUE5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V2pCO0FBQ1ksK0JBQVMsR0FBRyxDQUMxQixRQUV5QixFQUN6QixFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsaUNBQXlCLENBQUMsQ0FBQyxJQUFJLENBQ2hELGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDViwyREFBNEIsRUFDNUIsZUFBTSxDQUFDLEdBQUcsQ0FBQyxrRkFBNkMsRUFBRSxRQUFRLENBQUMsQ0FDcEUsQ0FDRixDQUNGLEFBWnNCLENBWXJCO0FBR047Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFHLHFCQUFxQixDQUFDO0FBRXBEOzs7O0dBSUc7QUFDVSxRQUFBLDhCQUE4QixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3hELHFCQUFxQixFQUNyQixpQ0FBeUIsQ0FDMUIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLDBCQUEwQixHQUFHLHNDQUE4QixDQUFDLElBQUksQ0FDM0UsY0FBSyxDQUFDLE9BQU8sQ0FBQyxnRUFBaUMsQ0FBQyxDQUNqRCxDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsaUNBQWlDLEdBQzVDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBDbG91ZFdhdGNoTG9nc0NsaWVudCxcbiAgdHlwZSBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZyxcbiAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kLFxuICB0eXBlIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVF1ZXJpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBGaWx0ZXJMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldERlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgR2V0SW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIEdldEludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kLFxuICB0eXBlIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nUmVjb3JkQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dSZWNvcmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nUmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCxcbiAgdHlwZSBHZXRRdWVyeVJlc3VsdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZE91dHB1dCxcbiAgR2V0VHJhbnNmb3JtZXJDb21tYW5kLFxuICB0eXBlIEdldFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFub21hbGllc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFub21hbGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QW5vbWFsaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEludGVncmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEludGVncmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICB0eXBlIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCxcbiAgdHlwZSBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgUHV0QWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgUHV0RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dERlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0SW5kZXhQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEluZGV4UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dEluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0SW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dEludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dEludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0TG9nRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBQdXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgUHV0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0TWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgUHV0VHJhbnNmb3JtZXJDb21tYW5kLFxuICB0eXBlIFB1dFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gIHR5cGUgU3RhcnRMaXZlVGFpbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydExpdmVUYWlsQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRRdWVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgU3RvcFF1ZXJ5Q29tbWFuZCxcbiAgdHlwZSBTdG9wUXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgVGFnTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIFRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgdHlwZSBUZXN0VHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgVW50YWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQW5vbWFseUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBbm9tYWx5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3NcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UsXG4gIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIG1ha2VEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvcixcbiAgSW52YWxpZE9wZXJhdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRTZXF1ZW5jZVRva2VuRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkUXVlcnlFcnJvcixcbiAgT3BlcmF0aW9uQWJvcnRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBVbnJlY29nbml6ZWRDbGllbnRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kLFxuICBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kLFxuICBDcmVhdGVMb2dTdHJlYW1Db21tYW5kLFxuICBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICBEZWxldGVMb2dHcm91cENvbW1hbmQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kLFxuICBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQsXG4gIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kLFxuICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIEdldEludGVncmF0aW9uQ29tbWFuZCxcbiAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgR2V0TG9nRXZlbnRzQ29tbWFuZCxcbiAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kLFxuICBHZXRMb2dSZWNvcmRDb21tYW5kLFxuICBHZXRRdWVyeVJlc3VsdHNDb21tYW5kLFxuICBHZXRUcmFuc2Zvcm1lckNvbW1hbmQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZCxcbiAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBQdXREZXN0aW5hdGlvbkNvbW1hbmQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0SW5kZXhQb2xpY3lDb21tYW5kLFxuICBQdXRJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgUHV0VHJhbnNmb3JtZXJDb21tYW5kLFxuICBTdGFydExpdmVUYWlsQ29tbWFuZCxcbiAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVBbm9tYWx5Q29tbWFuZCxcbiAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlS21zS2V5Q29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZUttc0tleShcbiAgICBhcmdzOiBBc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRGVsaXZlcnkoXG4gICAgYXJnczogQ3JlYXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dTdHJlYW0oXG4gICAgYXJnczogQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWNjb3VudFBvbGljeShcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnkoXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbmRleFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbmRleFBvbGljeShcbiAgICBhcmdzOiBEZWxldGVJbmRleFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUludGVncmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dHcm91cChcbiAgICBhcmdzOiBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nU3RyZWFtKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVRdWVyeURlZmluaXRpb24oXG4gICAgYXJnczogRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXRlbnRpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgIGFyZ3M6IERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVHJhbnNmb3JtZXIoXG4gICAgYXJnczogRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjY291bnRQb2xpY2llcyhcbiAgICBhcmdzOiBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJ5U291cmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXhwb3J0VGFza3MoXG4gICAgYXJnczogRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVGaWVsZEluZGV4ZXMoXG4gICAgYXJnczogRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbmRleFBvbGljaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxvZ0dyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxvZ1N0cmVhbXMoXG4gICAgYXJnczogRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTWV0cmljRmlsdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVF1ZXJpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVRdWVyaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlUXVlcmllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc291cmNlUG9saWNpZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZH1cbiAgICovXG4gIGRpc2Fzc29jaWF0ZUttc0tleShcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBmaWx0ZXJMb2dFdmVudHMoXG4gICAgYXJnczogRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnkoXG4gICAgYXJnczogR2V0RGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0SW50ZWdyYXRpb24oXG4gICAgYXJnczogR2V0SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nRXZlbnRzKFxuICAgIGFyZ3M6IEdldExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0dyb3VwRmllbGRzKFxuICAgIGFyZ3M6IEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ1JlY29yZENvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dSZWNvcmQoXG4gICAgYXJnczogR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nUmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRRdWVyeVJlc3VsdHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0UXVlcnlSZXN1bHRzKFxuICAgIGFyZ3M6IEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFRyYW5zZm9ybWVyQ29tbWFuZH1cbiAgICovXG4gIGdldFRyYW5zZm9ybWVyKFxuICAgIGFyZ3M6IEdldFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VHJhbnNmb3JtZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbm9tYWxpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFub21hbGllcyhcbiAgICBhcmdzOiBMaXN0QW5vbWFsaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEludGVncmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW50ZWdyYXRpb25zKFxuICAgIGFyZ3M6IExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzKFxuICAgIGFyZ3M6IExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBsaXN0TG9nR3JvdXBzRm9yUXVlcnkoXG4gICAgYXJnczogTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NMb2dHcm91cChcbiAgICBhcmdzOiBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRBY2NvdW50UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEFjY291bnRQb2xpY3koXG4gICAgYXJnczogUHV0QWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXREZXN0aW5hdGlvbihcbiAgICBhcmdzOiBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEluZGV4UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEluZGV4UG9saWN5KFxuICAgIGFyZ3M6IFB1dEluZGV4UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0SW5kZXhQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0SW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0SW50ZWdyYXRpb24oXG4gICAgYXJnczogUHV0SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIHB1dExvZ0V2ZW50cyhcbiAgICBhcmdzOiBQdXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRDbGllbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0TWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXRRdWVyeURlZmluaXRpb24oXG4gICAgYXJnczogUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFJldGVudGlvblBvbGljeShcbiAgICBhcmdzOiBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBwdXRTdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgYXJnczogUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0VHJhbnNmb3JtZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0VHJhbnNmb3JtZXIoXG4gICAgYXJnczogUHV0VHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0TGl2ZVRhaWxDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRMaXZlVGFpbChcbiAgICBhcmdzOiBTdGFydExpdmVUYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFF1ZXJ5Q29tbWFuZH1cbiAgICovXG4gIHN0YXJ0UXVlcnkoXG4gICAgYXJnczogU3RhcnRRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0UXVlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRRdWVyeUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBzdG9wUXVlcnkoXG4gICAgYXJnczogU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdGFnTG9nR3JvdXAoXG4gICAgYXJnczogVGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgdGVzdE1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0VHJhbnNmb3JtZXJDb21tYW5kfVxuICAgKi9cbiAgdGVzdFRyYW5zZm9ybWVyKFxuICAgIGFyZ3M6IFRlc3RUcmFuc2Zvcm1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdW50YWdMb2dHcm91cChcbiAgICBhcmdzOiBVbnRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQW5vbWFseUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBbm9tYWx5KFxuICAgIGFyZ3M6IFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBbm9tYWx5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248Q2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlXCIsXG4pPENsb3VkV2F0Y2hMb2dzU2VydmljZSwgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gICAgdGhpcyxcbiAgICBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLFxuICApLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoXG4gICAgICBkZWZhdWx0Q29uZmlnOiBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZyxcbiAgICApID0+IENsb3VkV2F0Y2hMb2dzQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIENsb3VkV2F0Y2hMb2dzU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgQ2xvdWRXYXRjaExvZ3MgPSBDbG91ZFdhdGNoTG9nc1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQ2xvdWRXYXRjaExvZ3MuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLFxuICBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBDbG91ZFdhdGNoTG9ncy5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9IEJhc2VDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIENsb3VkV2F0Y2hMb2dzLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPVxuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
|
|
@@ -2,7 +2,7 @@ var _a;
|
|
|
2
2
|
/**
|
|
3
3
|
* @since 1.0.0
|
|
4
4
|
*/
|
|
5
|
-
import { CloudWatchLogsServiceException, AssociateKmsKeyCommand, CancelExportTaskCommand, CreateDeliveryCommand, CreateExportTaskCommand, CreateLogAnomalyDetectorCommand, CreateLogGroupCommand, CreateLogStreamCommand, DeleteAccountPolicyCommand, DeleteDataProtectionPolicyCommand, DeleteDeliveryCommand, DeleteDeliveryDestinationCommand, DeleteDeliveryDestinationPolicyCommand, DeleteDeliverySourceCommand, DeleteDestinationCommand, DeleteLogAnomalyDetectorCommand, DeleteLogGroupCommand, DeleteLogStreamCommand, DeleteMetricFilterCommand, DeleteQueryDefinitionCommand, DeleteResourcePolicyCommand, DeleteRetentionPolicyCommand, DeleteSubscriptionFilterCommand, DescribeAccountPoliciesCommand, DescribeConfigurationTemplatesCommand, DescribeDeliveriesCommand, DescribeDeliveryDestinationsCommand, DescribeDeliverySourcesCommand, DescribeDestinationsCommand, DescribeExportTasksCommand, DescribeLogGroupsCommand, DescribeLogStreamsCommand, DescribeMetricFiltersCommand, DescribeQueriesCommand, DescribeQueryDefinitionsCommand, DescribeResourcePoliciesCommand, DescribeSubscriptionFiltersCommand, DisassociateKmsKeyCommand, FilterLogEventsCommand, GetDataProtectionPolicyCommand, GetDeliveryCommand, GetDeliveryDestinationCommand, GetDeliveryDestinationPolicyCommand, GetDeliverySourceCommand, GetLogAnomalyDetectorCommand, GetLogEventsCommand, GetLogGroupFieldsCommand, GetLogRecordCommand, GetQueryResultsCommand, ListAnomaliesCommand, ListLogAnomalyDetectorsCommand, ListTagsForResourceCommand, ListTagsLogGroupCommand, PutAccountPolicyCommand, PutDataProtectionPolicyCommand, PutDeliveryDestinationCommand, PutDeliveryDestinationPolicyCommand, PutDeliverySourceCommand, PutDestinationCommand, PutDestinationPolicyCommand, PutLogEventsCommand, PutMetricFilterCommand, PutQueryDefinitionCommand, PutResourcePolicyCommand, PutRetentionPolicyCommand, PutSubscriptionFilterCommand, StartLiveTailCommand, StartQueryCommand, StopQueryCommand, TagLogGroupCommand, TagResourceCommand, TestMetricFilterCommand, UntagLogGroupCommand, UntagResourceCommand, UpdateAnomalyCommand, UpdateDeliveryConfigurationCommand, UpdateLogAnomalyDetectorCommand, } from "@aws-sdk/client-cloudwatch-logs";
|
|
5
|
+
import { CloudWatchLogsServiceException, AssociateKmsKeyCommand, CancelExportTaskCommand, CreateDeliveryCommand, CreateExportTaskCommand, CreateLogAnomalyDetectorCommand, CreateLogGroupCommand, CreateLogStreamCommand, DeleteAccountPolicyCommand, DeleteDataProtectionPolicyCommand, DeleteDeliveryCommand, DeleteDeliveryDestinationCommand, DeleteDeliveryDestinationPolicyCommand, DeleteDeliverySourceCommand, DeleteDestinationCommand, DeleteIndexPolicyCommand, DeleteIntegrationCommand, DeleteLogAnomalyDetectorCommand, DeleteLogGroupCommand, DeleteLogStreamCommand, DeleteMetricFilterCommand, DeleteQueryDefinitionCommand, DeleteResourcePolicyCommand, DeleteRetentionPolicyCommand, DeleteSubscriptionFilterCommand, DeleteTransformerCommand, DescribeAccountPoliciesCommand, DescribeConfigurationTemplatesCommand, DescribeDeliveriesCommand, DescribeDeliveryDestinationsCommand, DescribeDeliverySourcesCommand, DescribeDestinationsCommand, DescribeExportTasksCommand, DescribeFieldIndexesCommand, DescribeIndexPoliciesCommand, DescribeLogGroupsCommand, DescribeLogStreamsCommand, DescribeMetricFiltersCommand, DescribeQueriesCommand, DescribeQueryDefinitionsCommand, DescribeResourcePoliciesCommand, DescribeSubscriptionFiltersCommand, DisassociateKmsKeyCommand, FilterLogEventsCommand, GetDataProtectionPolicyCommand, GetDeliveryCommand, GetDeliveryDestinationCommand, GetDeliveryDestinationPolicyCommand, GetDeliverySourceCommand, GetIntegrationCommand, GetLogAnomalyDetectorCommand, GetLogEventsCommand, GetLogGroupFieldsCommand, GetLogRecordCommand, GetQueryResultsCommand, GetTransformerCommand, ListAnomaliesCommand, ListIntegrationsCommand, ListLogAnomalyDetectorsCommand, ListLogGroupsForQueryCommand, ListTagsForResourceCommand, ListTagsLogGroupCommand, PutAccountPolicyCommand, PutDataProtectionPolicyCommand, PutDeliveryDestinationCommand, PutDeliveryDestinationPolicyCommand, PutDeliverySourceCommand, PutDestinationCommand, PutDestinationPolicyCommand, PutIndexPolicyCommand, PutIntegrationCommand, PutLogEventsCommand, PutMetricFilterCommand, PutQueryDefinitionCommand, PutResourcePolicyCommand, PutRetentionPolicyCommand, PutSubscriptionFilterCommand, PutTransformerCommand, StartLiveTailCommand, StartQueryCommand, StopQueryCommand, TagLogGroupCommand, TagResourceCommand, TestMetricFilterCommand, TestTransformerCommand, UntagLogGroupCommand, UntagResourceCommand, UpdateAnomalyCommand, UpdateDeliveryConfigurationCommand, UpdateLogAnomalyDetectorCommand, } from "@aws-sdk/client-cloudwatch-logs";
|
|
6
6
|
import { Data, Effect, Layer, Record } from "effect";
|
|
7
7
|
import { CloudWatchLogsClientInstance, CloudWatchLogsClientInstanceLayer, } from "./CloudWatchLogsClientInstance";
|
|
8
8
|
import { DefaultCloudWatchLogsClientConfigLayer, makeDefaultCloudWatchLogsClientInstanceConfig, CloudWatchLogsClientInstanceConfig, } from "./CloudWatchLogsClientInstanceConfig";
|
|
@@ -22,6 +22,8 @@ const commands = {
|
|
|
22
22
|
DeleteDeliveryDestinationPolicyCommand,
|
|
23
23
|
DeleteDeliverySourceCommand,
|
|
24
24
|
DeleteDestinationCommand,
|
|
25
|
+
DeleteIndexPolicyCommand,
|
|
26
|
+
DeleteIntegrationCommand,
|
|
25
27
|
DeleteLogAnomalyDetectorCommand,
|
|
26
28
|
DeleteLogGroupCommand,
|
|
27
29
|
DeleteLogStreamCommand,
|
|
@@ -30,6 +32,7 @@ const commands = {
|
|
|
30
32
|
DeleteResourcePolicyCommand,
|
|
31
33
|
DeleteRetentionPolicyCommand,
|
|
32
34
|
DeleteSubscriptionFilterCommand,
|
|
35
|
+
DeleteTransformerCommand,
|
|
33
36
|
DescribeAccountPoliciesCommand,
|
|
34
37
|
DescribeConfigurationTemplatesCommand,
|
|
35
38
|
DescribeDeliveriesCommand,
|
|
@@ -37,6 +40,8 @@ const commands = {
|
|
|
37
40
|
DescribeDeliverySourcesCommand,
|
|
38
41
|
DescribeDestinationsCommand,
|
|
39
42
|
DescribeExportTasksCommand,
|
|
43
|
+
DescribeFieldIndexesCommand,
|
|
44
|
+
DescribeIndexPoliciesCommand,
|
|
40
45
|
DescribeLogGroupsCommand,
|
|
41
46
|
DescribeLogStreamsCommand,
|
|
42
47
|
DescribeMetricFiltersCommand,
|
|
@@ -51,13 +56,17 @@ const commands = {
|
|
|
51
56
|
GetDeliveryDestinationCommand,
|
|
52
57
|
GetDeliveryDestinationPolicyCommand,
|
|
53
58
|
GetDeliverySourceCommand,
|
|
59
|
+
GetIntegrationCommand,
|
|
54
60
|
GetLogAnomalyDetectorCommand,
|
|
55
61
|
GetLogEventsCommand,
|
|
56
62
|
GetLogGroupFieldsCommand,
|
|
57
63
|
GetLogRecordCommand,
|
|
58
64
|
GetQueryResultsCommand,
|
|
65
|
+
GetTransformerCommand,
|
|
59
66
|
ListAnomaliesCommand,
|
|
67
|
+
ListIntegrationsCommand,
|
|
60
68
|
ListLogAnomalyDetectorsCommand,
|
|
69
|
+
ListLogGroupsForQueryCommand,
|
|
61
70
|
ListTagsForResourceCommand,
|
|
62
71
|
ListTagsLogGroupCommand,
|
|
63
72
|
PutAccountPolicyCommand,
|
|
@@ -67,18 +76,22 @@ const commands = {
|
|
|
67
76
|
PutDeliverySourceCommand,
|
|
68
77
|
PutDestinationCommand,
|
|
69
78
|
PutDestinationPolicyCommand,
|
|
79
|
+
PutIndexPolicyCommand,
|
|
80
|
+
PutIntegrationCommand,
|
|
70
81
|
PutLogEventsCommand,
|
|
71
82
|
PutMetricFilterCommand,
|
|
72
83
|
PutQueryDefinitionCommand,
|
|
73
84
|
PutResourcePolicyCommand,
|
|
74
85
|
PutRetentionPolicyCommand,
|
|
75
86
|
PutSubscriptionFilterCommand,
|
|
87
|
+
PutTransformerCommand,
|
|
76
88
|
StartLiveTailCommand,
|
|
77
89
|
StartQueryCommand,
|
|
78
90
|
StopQueryCommand,
|
|
79
91
|
TagLogGroupCommand,
|
|
80
92
|
TagResourceCommand,
|
|
81
93
|
TestMetricFilterCommand,
|
|
94
|
+
TestTransformerCommand,
|
|
82
95
|
UntagLogGroupCommand,
|
|
83
96
|
UntagResourceCommand,
|
|
84
97
|
UpdateAnomalyCommand,
|
|
@@ -157,4 +170,4 @@ export const CloudWatchLogsServiceLayer = BaseCloudWatchLogsServiceLayer.pipe(La
|
|
|
157
170
|
* @deprecated use CloudWatchLogs.defaultLayer instead
|
|
158
171
|
*/
|
|
159
172
|
export const DefaultCloudWatchLogsServiceLayer = CloudWatchLogsService.defaultLayer;
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsOEJBQThCLEVBRzlCLHNCQUFzQixFQUd0Qix1QkFBdUIsRUFHdkIscUJBQXFCLEVBR3JCLHVCQUF1QixFQUd2QiwrQkFBK0IsRUFHL0IscUJBQXFCLEVBR3JCLHNCQUFzQixFQUd0QiwwQkFBMEIsRUFHMUIsaUNBQWlDLEVBR2pDLHFCQUFxQixFQUdyQixnQ0FBZ0MsRUFHaEMsc0NBQXNDLEVBR3RDLDJCQUEyQixFQUczQix3QkFBd0IsRUFHeEIsK0JBQStCLEVBRy9CLHFCQUFxQixFQUdyQixzQkFBc0IsRUFHdEIseUJBQXlCLEVBR3pCLDRCQUE0QixFQUc1QiwyQkFBMkIsRUFHM0IsNEJBQTRCLEVBRzVCLCtCQUErQixFQUcvQiw4QkFBOEIsRUFHOUIscUNBQXFDLEVBR3JDLHlCQUF5QixFQUd6QixtQ0FBbUMsRUFHbkMsOEJBQThCLEVBRzlCLDJCQUEyQixFQUczQiwwQkFBMEIsRUFHMUIsd0JBQXdCLEVBR3hCLHlCQUF5QixFQUd6Qiw0QkFBNEIsRUFHNUIsc0JBQXNCLEVBR3RCLCtCQUErQixFQUcvQiwrQkFBK0IsRUFHL0Isa0NBQWtDLEVBR2xDLHlCQUF5QixFQUd6QixzQkFBc0IsRUFHdEIsOEJBQThCLEVBRzlCLGtCQUFrQixFQUdsQiw2QkFBNkIsRUFHN0IsbUNBQW1DLEVBR25DLHdCQUF3QixFQUd4Qiw0QkFBNEIsRUFHNUIsbUJBQW1CLEVBR25CLHdCQUF3QixFQUd4QixtQkFBbUIsRUFHbkIsc0JBQXNCLEVBR3RCLG9CQUFvQixFQUdwQiw4QkFBOEIsRUFHOUIsMEJBQTBCLEVBRzFCLHVCQUF1QixFQUd2Qix1QkFBdUIsRUFHdkIsOEJBQThCLEVBRzlCLDZCQUE2QixFQUc3QixtQ0FBbUMsRUFH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QUFLLENBQUMsT0FBTyxDQUNYLEtBQUssQ0FBQyxNQUFNLENBQ1YsNEJBQTRCLEVBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLEVBQUUsUUFBUSxDQUFDLENBQ3BFLENBQ0YsQ0FDRixBQVpzQixDQVlyQjtBQUdOOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUM7QUFFcEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3hELHFCQUFxQixFQUNyQix5QkFBeUIsQ0FDMUIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyw4QkFBOEIsQ0FBQyxJQUFJLENBQzNFLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FDakQsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FDNUMscUJBQXFCLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIENsb3VkV2F0Y2hMb2dzQ2xpZW50LFxuICB0eXBlIENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnLFxuICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZUttc0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgdHlwZSBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEZWxpdmVyeUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICB0eXBlIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVMb2dTdHJlYW1Db21tYW5kLFxuICB0eXBlIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEZWxpdmVyeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICB0eXBlIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICBEZWxldGVMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVMb2dTdHJlYW1Db21tYW5kLFxuICB0eXBlIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUXVlcmllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVF1ZXJpZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICB0eXBlIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBGaWx0ZXJMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXREZWxpdmVyeUNvbW1hbmQsXG4gIHR5cGUgR2V0RGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICB0eXBlIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICBHZXRMb2dFdmVudHNDb21tYW5kLFxuICB0eXBlIEdldExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmQsXG4gIHR5cGUgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kT3V0cHV0LFxuICBHZXRMb2dSZWNvcmRDb21tYW5kLFxuICB0eXBlIEdldExvZ1JlY29yZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dSZWNvcmRDb21tYW5kT3V0cHV0LFxuICBHZXRRdWVyeVJlc3VsdHNDb21tYW5kLFxuICB0eXBlIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRRdWVyeVJlc3VsdHNDb21tYW5kT3V0cHV0LFxuICBMaXN0QW5vbWFsaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QW5vbWFsaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBbm9tYWxpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmQsXG4gIHR5cGUgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dEFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBQdXREZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXRMb2dFdmVudHNDb21tYW5kLFxuICB0eXBlIFB1dExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICB0eXBlIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICB0eXBlIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kLFxuICB0eXBlIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kT3V0cHV0LFxuICBTdGFydExpdmVUYWlsQ29tbWFuZCxcbiAgdHlwZSBTdGFydExpdmVUYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0TGl2ZVRhaWxDb21tYW5kT3V0cHV0LFxuICBTdGFydFF1ZXJ5Q29tbWFuZCxcbiAgdHlwZSBTdGFydFF1ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0UXVlcnlDb21tYW5kT3V0cHV0LFxuICBTdG9wUXVlcnlDb21tYW5kLFxuICB0eXBlIFN0b3BRdWVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wUXVlcnlDb21tYW5kT3V0cHV0LFxuICBUYWdMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgVGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICBVbnRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBbm9tYWx5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBbm9tYWx5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFub21hbHlDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9nc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZSxcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9DbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9DbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRGF0YUFscmVhZHlBY2NlcHRlZEVycm9yLFxuICBJbnZhbGlkT3BlcmF0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJFcnJvcixcbiAgSW52YWxpZFNlcXVlbmNlVG9rZW5FcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBNYWxmb3JtZWRRdWVyeUVycm9yLFxuICBPcGVyYXRpb25BYm9ydGVkRXJyb3IsXG4gIFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yLFxuICBUaHJvdHRsaW5nRXJyb3IsXG4gIFRvb01hbnlUYWdzRXJyb3IsXG4gIFVucmVjb2duaXplZENsaWVudEVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICBDcmVhdGVEZWxpdmVyeUNvbW1hbmQsXG4gIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kLFxuICBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICBDcmVhdGVMb2dHcm91cENvbW1hbmQsXG4gIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kLFxuICBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgRGVsZXRlTG9nR3JvdXBDb21tYW5kLFxuICBEZWxldGVMb2dTdHJlYW1Db21tYW5kLFxuICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kLFxuICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgR2V0TG9nUmVjb3JkQ29tbWFuZCxcbiAgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCxcbiAgTGlzdEFub21hbGllc0NvbW1hbmQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgUHV0RGVzdGluYXRpb25Db21tYW5kLFxuICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICBTdG9wUXVlcnlDb21tYW5kLFxuICBUYWdMb2dHcm91cENvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZUttc0tleUNvbW1hbmR9XG4gICAqL1xuICBhc3NvY2lhdGVLbXNLZXkoXG4gICAgYXJnczogQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbEV4cG9ydFRhc2soXG4gICAgYXJnczogQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURlbGl2ZXJ5KFxuICAgIGFyZ3M6IENyZWF0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUV4cG9ydFRhc2soXG4gICAgYXJnczogQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ0dyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVMb2dTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nU3RyZWFtKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFjY291bnRQb2xpY3koXG4gICAgYXJnczogRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5KFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVzdGluYXRpb24oXG4gICAgYXJnczogRGVsZXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxvZ0dyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dTdHJlYW0oXG4gICAgYXJnczogRGVsZXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVF1ZXJ5RGVmaW5pdGlvbihcbiAgICBhcmdzOiBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJldGVudGlvblBvbGljeShcbiAgICBhcmdzOiBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgYXJnczogRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjY291bnRQb2xpY2llcyhcbiAgICBhcmdzOiBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJ5U291cmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXhwb3J0VGFza3MoXG4gICAgYXJnczogRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMb2dHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMb2dTdHJlYW1zKFxuICAgIGFyZ3M6IERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU1ldHJpY0ZpbHRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUXVlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZVF1ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVRdWVyeURlZmluaXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVLbXNLZXkoXG4gICAgYXJnczogRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGaWx0ZXJMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZmlsdGVyTG9nRXZlbnRzKFxuICAgIGFyZ3M6IEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldERhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5KFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5U291cmNlKFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nRXZlbnRzKFxuICAgIGFyZ3M6IEdldExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0dyb3VwRmllbGRzKFxuICAgIGFyZ3M6IEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ1JlY29yZENvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dSZWNvcmQoXG4gICAgYXJnczogR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nUmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRRdWVyeVJlc3VsdHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0UXVlcnlSZXN1bHRzKFxuICAgIGFyZ3M6IEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbm9tYWxpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFub21hbGllcyhcbiAgICBhcmdzOiBMaXN0QW5vbWFsaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdExvZ0Fub21hbHlEZXRlY3RvcnMoXG4gICAgYXJnczogTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0xvZ0dyb3VwKFxuICAgIGFyZ3M6IExpc3RUYWdzTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEFjY291bnRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0QWNjb3VudFBvbGljeShcbiAgICBhcmdzOiBQdXRBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5RGVzdGluYXRpb24oXG4gICAgYXJnczogUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeShcbiAgICBhcmdzOiBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5U291cmNlKFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dERlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IFB1dERlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXREZXN0aW5hdGlvblBvbGljeShcbiAgICBhcmdzOiBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIHB1dExvZ0V2ZW50cyhcbiAgICBhcmdzOiBQdXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRDbGllbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0TWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0UXVlcnlEZWZpbml0aW9uKFxuICAgIGFyZ3M6IFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXRlbnRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0U3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgIGFyZ3M6IFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydExpdmVUYWlsQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0TGl2ZVRhaWwoXG4gICAgYXJnczogU3RhcnRMaXZlVGFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TGl2ZVRhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBzdGFydFF1ZXJ5KFxuICAgIGFyZ3M6IFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUXVlcnlFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wUXVlcnlDb21tYW5kfVxuICAgKi9cbiAgc3RvcFF1ZXJ5KFxuICAgIGFyZ3M6IFN0b3BRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHRhZ0xvZ0dyb3VwKFxuICAgIGFyZ3M6IFRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIHRlc3RNZXRyaWNGaWx0ZXIoXG4gICAgYXJnczogVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICB1bnRhZ0xvZ0dyb3VwKFxuICAgIGFyZ3M6IFVudGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBbm9tYWx5Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFub21hbHkoXG4gICAgYXJnczogVXBkYXRlQW5vbWFseUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFub21hbHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIENsb3VkV2F0Y2hMb2dzU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkV2F0Y2hMb2dzU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWNsb3Vkd2F0Y2gtbG9ncy9DbG91ZFdhdGNoTG9nc1NlcnZpY2VcIixcbik8Q2xvdWRXYXRjaExvZ3NTZXJ2aWNlLCBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdChcbiAgICB0aGlzLFxuICAgIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UsXG4gICkucGlwZShcbiAgICBMYXllci5wcm92aWRlKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChcbiAgICAgIGRlZmF1bHRDb25maWc6IENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnLFxuICAgICkgPT4gQ2xvdWRXYXRjaExvZ3NDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBDbG91ZFdhdGNoTG9ncyA9IENsb3VkV2F0Y2hMb2dzU2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBDbG91ZFdhdGNoTG9ncy5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZUNsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2UsXG4gIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIENsb3VkV2F0Y2hMb2dzLmxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IENsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyID0gQmFzZUNsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQ2xvdWRXYXRjaExvZ3MuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9XG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZS5kZWZhdWx0TGF5ZXI7XG4iXX0=
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsOEJBQThCLEVBRzlCLHNCQUFzQixFQUd0Qix1QkFBdUIsRUFHdkIscUJBQXFCLEVBR3JCLHVCQUF1QixFQUd2QiwrQkFBK0IsRUFHL0IscUJBQXFCLEVBR3JCLHNCQUFzQixFQUd0QiwwQkFBMEIsRUFHMUIsaUNBQWlDLEVBR2pDLHFCQUFxQixFQUdyQixnQ0FBZ0MsRUFHaEMsc0NBQXNDLEVBR3RDLDJCQUEyQixFQUczQix3QkFBd0IsRUFHeEIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4QiwrQkFBK0IsRUFHL0IscUJBQXFCLEVBR3JCLHNCQUFzQixFQUd0Qix5QkFBeUIsRUFHekIsNEJBQTRCLEVBRzVCLDJCQUEyQixFQUczQiw0QkFBNEIsRUFHNUIsK0JBQStCLEVBRy9CLHdCQUF3QixFQUd4Qiw4QkFBOEIsRUFHOUIscUNBQXFDLEVBR3JDLHlCQUF5QixFQUd6QixtQ0FBbUMsRUFHbkMsOEJBQThCLEVBRzlCLDJCQUEyQixFQUczQiwwQkFBMEIsRUFHMUIsMkJBQTJCLEVBRzNCLDRCQUE0QixFQUc1Qix3QkFBd0IsRUFHeEIseUJBQXlCLEVBR3pCLDRCQUE0QixFQUc1QixzQkFBc0IsRUFHdEIsK0JBQStCLEVBRy9CLCtCQUErQixFQUcvQixrQ0FBa0MsRUFHbEMseUJBQXlCLEVBR3pCLHNCQUFzQixFQUd0Qiw4QkFBOEIsRUFHOUIsa0JBQWtCLEVBR2xCLDZCQUE2QixFQUc3QixtQ0FBbUMsRUFHbkMsd0JBQXdCLEVBR3hCLHFCQUFxQixFQUdyQiw0QkFBNEIsRUFHNUIsbUJBQW1CLEVBR25CLHdCQUF3QixFQUd4QixtQkFBbUIsRUFHbkIsc0JBQXNCLEVBR3RCLHFCQUFxQixFQUdyQixvQkFBb0IsRUFH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QUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLEVBQ2hELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBSyxDQUFDLE1BQU0sQ0FDVixrQ0FBa0MsRUFDbEMsNkNBQTZDLENBQUMsSUFBSSxDQUNoRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksK0JBQVMsR0FBRyxDQUMxQixRQUV5QixFQUN6QixFQUFFLENBQ0YsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQ2hELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBSyxDQUFDLE1BQU0sQ0FDViw0QkFBNEIsRUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsRUFBRSxRQUFRLENBQUMsQ0FDcEUsQ0FDRixDQUNGLEFBWnNCLENBWXJCO0FBR047Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQztBQUVwRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDeEQscUJBQXFCLEVBQ3JCLHlCQUF5QixDQUMxQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDhCQUE4QixDQUFDLElBQUksQ0FDM0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUNqRCxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUM1QyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgQ2xvdWRXYXRjaExvZ3NDbGllbnQsXG4gIHR5cGUgQ2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWcsXG4gIEFzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbmRleFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbmRleFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldEludGVncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgR2V0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ1JlY29yZENvbW1hbmQsXG4gIHR5cGUgR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ1JlY29yZENvbW1hbmRPdXRwdXQsXG4gIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gIHR5cGUgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gIEdldFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgdHlwZSBHZXRUcmFuc2Zvcm1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBbm9tYWxpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEludGVncmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmQsXG4gIHR5cGUgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dEluZGV4UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRJbmRleFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRJbmRleFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dEludGVncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXRJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgUHV0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFB1dFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgdHlwZSBQdXRUcmFuc2Zvcm1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TGl2ZVRhaWxDb21tYW5kLFxuICB0eXBlIFN0YXJ0TGl2ZVRhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICB0eXBlIFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIHR5cGUgU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQsXG4gIHR5cGUgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIFVudGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFub21hbHlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQW5vbWFseUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBEYXRhQWxyZWFkeUFjY2VwdGVkRXJyb3IsXG4gIEludmFsaWRPcGVyYXRpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckVycm9yLFxuICBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIE1hbGZvcm1lZFF1ZXJ5RXJyb3IsXG4gIE9wZXJhdGlvbkFib3J0ZWRFcnJvcixcbiAgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IsXG4gIFRocm90dGxpbmdFcnJvcixcbiAgVG9vTWFueVRhZ3NFcnJvcixcbiAgVW5yZWNvZ25pemVkQ2xpZW50RXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQsXG4gIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQsXG4gIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICBEZWxldGVJbmRleFBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgRGVsZXRlTG9nR3JvdXBDb21tYW5kLFxuICBEZWxldGVMb2dTdHJlYW1Db21tYW5kLFxuICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kLFxuICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kLFxuICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCxcbiAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCxcbiAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZCxcbiAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREZWxpdmVyeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBHZXRJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgR2V0TG9nUmVjb3JkQ29tbWFuZCxcbiAgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCxcbiAgR2V0VHJhbnNmb3JtZXJDb21tYW5kLFxuICBMaXN0QW5vbWFsaWVzQ29tbWFuZCxcbiAgTGlzdEludGVncmF0aW9uc0NvbW1hbmQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgUHV0RGVzdGluYXRpb25Db21tYW5kLFxuICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dEluZGV4UG9saWN5Q29tbWFuZCxcbiAgUHV0SW50ZWdyYXRpb25Db21tYW5kLFxuICBQdXRMb2dFdmVudHNDb21tYW5kLFxuICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIFB1dFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICBTdG9wUXVlcnlDb21tYW5kLFxuICBUYWdMb2dHcm91cENvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZUttc0tleUNvbW1hbmR9XG4gICAqL1xuICBhc3NvY2lhdGVLbXNLZXkoXG4gICAgYXJnczogQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbEV4cG9ydFRhc2soXG4gICAgYXJnczogQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURlbGl2ZXJ5KFxuICAgIGFyZ3M6IENyZWF0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUV4cG9ydFRhc2soXG4gICAgYXJnczogQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ0dyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVMb2dTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nU3RyZWFtKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFjY291bnRQb2xpY3koXG4gICAgYXJnczogRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5KFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVzdGluYXRpb24oXG4gICAgYXJnczogRGVsZXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5kZXhQb2xpY3koXG4gICAgYXJnczogRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbmRleFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbnRlZ3JhdGlvbihcbiAgICBhcmdzOiBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nR3JvdXAoXG4gICAgYXJnczogRGVsZXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxvZ1N0cmVhbShcbiAgICBhcmdzOiBEZWxldGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVNZXRyaWNGaWx0ZXIoXG4gICAgYXJnczogRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUXVlcnlEZWZpbml0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmV0ZW50aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlcihcbiAgICBhcmdzOiBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVRyYW5zZm9ybWVyKFxuICAgIGFyZ3M6IERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVBY2NvdW50UG9saWNpZXMoXG4gICAgYXJnczogRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlcyhcbiAgICBhcmdzOiBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJpZXMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZWxpdmVyeVNvdXJjZXMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVzdGluYXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV4cG9ydFRhc2tzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRmllbGRJbmRleGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5kZXhQb2xpY2llcyhcbiAgICBhcmdzOiBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMb2dHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMb2dTdHJlYW1zKFxuICAgIGFyZ3M6IERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU1ldHJpY0ZpbHRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUXVlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZVF1ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVRdWVyeURlZmluaXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVLbXNLZXkoXG4gICAgYXJnczogRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGaWx0ZXJMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZmlsdGVyTG9nRXZlbnRzKFxuICAgIGFyZ3M6IEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldERhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5KFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5U291cmNlKFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEludGVncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEludGVncmF0aW9uKFxuICAgIGFyZ3M6IEdldEludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0SW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0V2ZW50cyhcbiAgICBhcmdzOiBHZXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dHcm91cEZpZWxkcyhcbiAgICBhcmdzOiBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dSZWNvcmRDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nUmVjb3JkKFxuICAgIGFyZ3M6IEdldExvZ1JlY29yZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ1JlY29yZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZH1cbiAgICovXG4gIGdldFF1ZXJ5UmVzdWx0cyhcbiAgICBhcmdzOiBHZXRRdWVyeVJlc3VsdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRRdWVyeVJlc3VsdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRUcmFuc2Zvcm1lckNvbW1hbmR9XG4gICAqL1xuICBnZXRUcmFuc2Zvcm1lcihcbiAgICBhcmdzOiBHZXRUcmFuc2Zvcm1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QW5vbWFsaWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBbm9tYWxpZXMoXG4gICAgYXJnczogTGlzdEFub21hbGllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBbm9tYWxpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEludGVncmF0aW9ucyhcbiAgICBhcmdzOiBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEludGVncmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TG9nQW5vbWFseURldGVjdG9ycyhcbiAgICBhcmdzOiBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kfVxuICAgKi9cbiAgbGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5KFxuICAgIGFyZ3M6IExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzTG9nR3JvdXAoXG4gICAgYXJnczogTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QWNjb3VudFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRBY2NvdW50UG9saWN5KFxuICAgIGFyZ3M6IFB1dEFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXREYXRhUHJvdGVjdGlvblBvbGljeShcbiAgICBhcmdzOiBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0RGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0RGVzdGluYXRpb24oXG4gICAgYXJnczogUHV0RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRJbmRleFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRJbmRleFBvbGljeShcbiAgICBhcmdzOiBQdXRJbmRleFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEludGVncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dEludGVncmF0aW9uKFxuICAgIGFyZ3M6IFB1dEludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0SW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dExvZ0V2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBwdXRMb2dFdmVudHMoXG4gICAgYXJnczogUHV0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEYXRhQWxyZWFkeUFjY2VwdGVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFNlcXVlbmNlVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVW5yZWNvZ25pemVkQ2xpZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIHB1dE1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0UXVlcnlEZWZpbml0aW9uKFxuICAgIGFyZ3M6IFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXRlbnRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0U3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgIGFyZ3M6IFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFRyYW5zZm9ybWVyQ29tbWFuZH1cbiAgICovXG4gIHB1dFRyYW5zZm9ybWVyKFxuICAgIGFyZ3M6IFB1dFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0VHJhbnNmb3JtZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydExpdmVUYWlsQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0TGl2ZVRhaWwoXG4gICAgYXJnczogU3RhcnRMaXZlVGFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TGl2ZVRhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBzdGFydFF1ZXJ5KFxuICAgIGFyZ3M6IFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUXVlcnlFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wUXVlcnlDb21tYW5kfVxuICAgKi9cbiAgc3RvcFF1ZXJ5KFxuICAgIGFyZ3M6IFN0b3BRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHRhZ0xvZ0dyb3VwKFxuICAgIGFyZ3M6IFRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIHRlc3RNZXRyaWNGaWx0ZXIoXG4gICAgYXJnczogVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZH1cbiAgICovXG4gIHRlc3RUcmFuc2Zvcm1lcihcbiAgICBhcmdzOiBUZXN0VHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0VHJhbnNmb3JtZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHVudGFnTG9nR3JvdXAoXG4gICAgYXJnczogVW50YWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFub21hbHlDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQW5vbWFseShcbiAgICBhcmdzOiBVcGRhdGVBbm9tYWx5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQW5vbWFseUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL0Nsb3VkV2F0Y2hMb2dzU2VydmljZVwiLFxuKTxDbG91ZFdhdGNoTG9nc1NlcnZpY2UsIENsb3VkV2F0Y2hMb2dzU2VydmljZSQ+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KFxuICAgIHRoaXMsXG4gICAgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSxcbiAgKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogQ2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKFxuICAgICAgZGVmYXVsdENvbmZpZzogQ2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWcsXG4gICAgKSA9PiBDbG91ZFdhdGNoTG9nc0NsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IENsb3VkV2F0Y2hMb2dzID0gQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIENsb3VkV2F0Y2hMb2dzLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZSxcbiAgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQ2xvdWRXYXRjaExvZ3MubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPSBCYXNlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBDbG91ZFdhdGNoTG9ncy5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdENsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyID1cbiAgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
|