@cdklabs/multi-az-observability 0.0.1-alpha.41 → 0.0.1-alpha.43

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.
Files changed (37) hide show
  1. package/.jsii +155 -37
  2. package/API.md +120 -17
  3. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +2 -1
  4. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +4 -3
  5. package/lib/alarmsandrules/CanaryOperationZonalAlarmsAndRules.js +3 -2
  6. package/lib/alarmsandrules/ServerSideOperationZonalAlarmsAndRules.js +3 -2
  7. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.d.ts +10 -0
  8. package/lib/alarmsandrules/props/OperationAlarmsAndRulesProps.js +1 -1
  9. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  10. package/lib/basic_observability/BasicServiceMultiAZObservability.js +1 -1
  11. package/lib/canaries/src/canary.zip +0 -0
  12. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +85 -13
  13. package/lib/index.d.ts +1 -0
  14. package/lib/index.js +4 -2
  15. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  16. package/lib/outlier-detection/LatencyOutlierMetricAggregation.d.ts +22 -0
  17. package/lib/outlier-detection/LatencyOutlierMetricAggregation.js +27 -0
  18. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  19. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  20. package/lib/services/CanaryMetrics.js +1 -1
  21. package/lib/services/CanaryTestAvailabilityMetricsOverride.js +1 -1
  22. package/lib/services/CanaryTestLatencyMetricsOverride.js +1 -1
  23. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  24. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  25. package/lib/services/InstrumentedServiceMultiAZObservability.js +63 -29
  26. package/lib/services/Operation.js +1 -1
  27. package/lib/services/OperationAvailabilityMetricDetails.js +1 -1
  28. package/lib/services/OperationLatencyMetricDetails.js +1 -1
  29. package/lib/services/OperationMetricDetails.js +1 -1
  30. package/lib/services/Service.js +1 -1
  31. package/lib/services/ServiceAvailabilityMetricDetails.js +1 -1
  32. package/lib/services/ServiceLatencyMetricDetails.js +1 -1
  33. package/lib/services/ServiceMetricDetails.js +1 -1
  34. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.d.ts +49 -4
  35. package/lib/services/props/InstrumentedServiceMultiAZObservabilityProps.js +1 -1
  36. package/lib/services/props/MetricDimensions.js +1 -1
  37. package/package.json +8 -8
@@ -19,5 +19,5 @@ class ContributorInsightRuleDetails {
19
19
  }
20
20
  exports.ContributorInsightRuleDetails = ContributorInsightRuleDetails;
21
21
  _a = JSII_RTTI_SYMBOL_1;
22
- ContributorInsightRuleDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ContributorInsightRuleDetails", version: "0.0.1-alpha.41" };
22
+ ContributorInsightRuleDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ContributorInsightRuleDetails", version: "0.0.1-alpha.43" };
23
23
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQTs7O0dBR0c7QUFDSCxNQUFhLDZCQUE2QjtJQXdDeEMsWUFBWSxLQUF5QztRQUNuRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztRQUN6RCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDO0lBQ3pFLENBQUM7O0FBL0NILHNFQWdEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IElMb2dHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IElDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyB9IGZyb20gJy4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzUHJvcHMnO1xuXG4vKipcbiAqIFRoZSBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGUgZGV0YWlscyBmb3IgY3JlYXRpbmcgYW5cbiAqIGluc2lnaHQgcnVsZVxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHNcbmltcGxlbWVudHMgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIHtcbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXBzIHdoZXJlIENsb3VkV2F0Y2ggbG9ncyBmb3IgdGhlIG9wZXJhdGlvbiBhcmUgbG9jYXRlZC4gSWZcbiAgICogdGhpcyBpcyBub3QgcHJvdmlkZWQsIENvbnRyaWJ1dG9yIEluc2lnaHQgcnVsZXMgY2Fubm90IGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHM6IElMb2dHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB0aGUgbG9nIGZpbGVzIHRvIHRoZSBmaWVsZCB0aGF0IGluZGljYXRlcyB0aGUgbGF0ZW5jeVxuICAgKiBmb3IgdGhlIHJlc3BvbnNlLiBUaGlzIGNvdWxkIGVpdGhlciBiZSBzdWNjZXNzIGxhdGVuY3kgb3IgZmF1bHRcbiAgICogbGF0ZW5jeSBkZXBlbmRpbmcgb24gdGhlIGFsYXJtcyBhbmQgcnVsZXMgeW91IGFyZSBjcmVhdGluZy5cbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NMYXRlbmN5TWV0cmljSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIGxvZyBmaWxlcyB0byB0aGUgZmllbGQgdGhhdCBpZGVudGlmaWVzIHRoZSBvcGVyYXRpb25cbiAgICogdGhlIGxvZyBmaWxlIGlzIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWVKc29uUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB0aGUgbG9nIGZpbGVzIHRvIHRoZSBmaWVsZCB0aGF0IGlkZW50aWZpZXMgaWYgdGhlIHJlc3BvbnNlXG4gICAqIHJlc3VsdGVkIGluIGEgZmF1bHQsIGZvciBleGFtcGxlIHsgXCJGYXVsdFwiIDogMSB9IHdvdWxkIGhhdmUgYSBwYXRoIG9mICQuRmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0TWV0cmljSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIGxvZyBmaWxlcyB0byB0aGUgZmllbGQgdGhhdCBpZGVudGlmaWVzIHRoZSBBdmFpbGFiaWxpdHkgWm9uZVxuICAgKiBJZCB0aGF0IHRoZSByZXF1ZXN0IHdhcyBoYW5kbGVkIGluLCBmb3IgZXhhbXBsZSB7IFwiQVotSURcIjogXCJ1c2UxLWF6MVwiIH0gd291bGRcbiAgICogaGF2ZSBhIHBhdGggb2YgJC5BWi1JRFxuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZUlkSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEpTT04gcGF0aCB0byB0aGUgaW5zdGFuY2UgaWQgZmllbGQgaW4gdGhlIGxvZyBmaWxlcywgb25seSByZXF1aXJlZCBmb3Igc2VydmVyLXNpZGVcbiAgICogcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWRKc29uUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1Byb3BzKSB7XG4gICAgdGhpcy5hdmFpbGFiaWxpdHlab25lSWRKc29uUGF0aCA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmVJZEpzb25QYXRoO1xuICAgIHRoaXMuZmF1bHRNZXRyaWNKc29uUGF0aCA9IHByb3BzLmZhdWx0TWV0cmljSnNvblBhdGg7XG4gICAgdGhpcy5pbnN0YW5jZUlkSnNvblBhdGggPSBwcm9wcy5pbnN0YW5jZUlkSnNvblBhdGg7XG4gICAgdGhpcy5sb2dHcm91cHMgPSBwcm9wcy5sb2dHcm91cHM7XG4gICAgdGhpcy5vcGVyYXRpb25OYW1lSnNvblBhdGggPSBwcm9wcy5vcGVyYXRpb25OYW1lSnNvblBhdGg7XG4gICAgdGhpcy5zdWNjZXNzTGF0ZW5jeU1ldHJpY0pzb25QYXRoID0gcHJvcHMuc3VjY2Vzc0xhdGVuY3lNZXRyaWNKc29uUGF0aDtcbiAgfVxufVxuIl19
@@ -22,6 +22,7 @@ const OutlierDetectionAlgorithm_1 = require("../utilities/OutlierDetectionAlgori
22
22
  const StackWithDynamicSource_1 = require("../utilities/StackWithDynamicSource");
23
23
  const OperationAvailabilityMetricDetails_1 = require("./OperationAvailabilityMetricDetails");
24
24
  const OperationLatencyMetricDetails_1 = require("./OperationLatencyMetricDetails");
25
+ const LatencyOutlierMetricAggregation_1 = require("../outlier-detection/LatencyOutlierMetricAggregation");
25
26
  /**
26
27
  * An service that implements its own instrumentation to record
27
28
  * availability and latency metrics that can be used to create
@@ -197,30 +198,63 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
197
198
  }
198
199
  constructor(scope, id, props) {
199
200
  super(scope, id);
200
- let outlierThreshold;
201
- // Set defaults
202
- if (!props.outlierThreshold) {
203
- switch (props.outlierDetectionAlgorithm) {
204
- case OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.CHI_SQUARED:
205
- outlierThreshold = 0.05;
206
- break;
207
- case OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.IQR:
208
- outlierThreshold = 1.5;
209
- break;
210
- case OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.MAD:
211
- outlierThreshold = 3;
212
- break;
213
- case OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC:
214
- outlierThreshold = 0.7;
215
- break;
216
- case OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.Z_SCORE:
217
- outlierThreshold = 3;
218
- break;
219
- }
201
+ let availabilityOutlierDetectionAlgorithm = props.availabilityOutlierDetectionAlgorithm || OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC;
202
+ let availabilityOutlierThreshold;
203
+ let latencyOutlierDetectionAlgorithm = props.latencyOutlierDetectionAlgorithm || OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC;
204
+ let latencyOutlierThreshold;
205
+ // TEMP: Force outlier detection to be static until the Lambda outlier detection function is scalable
206
+ availabilityOutlierDetectionAlgorithm = OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC;
207
+ latencyOutlierDetectionAlgorithm = OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC;
208
+ availabilityOutlierThreshold = props.availabilityOutlierThreshold || 0.7;
209
+ latencyOutlierThreshold = props.latencyOutlierThreshold || 0.7;
210
+ if (props.latencyOutlierMetricAggregation == LatencyOutlierMetricAggregation_1.LatencyOutlierMetricAggregation.VALUE && latencyOutlierDetectionAlgorithm == OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC) {
211
+ throw new Error("You cannot use LatencyOutlierMetric.VALUE with OutlierDetectionAlgorithm.STATIC.");
212
+ }
213
+ /*if (!props.availabilityOutlierThreshold) {
214
+ switch (availabilityOutlierDetectionAlgorithm) {
215
+ case OutlierDetectionAlgorithm.CHI_SQUARED:
216
+ availabilityOutlierThreshold = 0.05;
217
+ break;
218
+ case OutlierDetectionAlgorithm.IQR:
219
+ availabilityOutlierThreshold = 1.5;
220
+ break;
221
+ case OutlierDetectionAlgorithm.MAD:
222
+ availabilityOutlierThreshold = 3;
223
+ break;
224
+ case OutlierDetectionAlgorithm.STATIC:
225
+ availabilityOutlierThreshold = 0.7;
226
+ break;
227
+ case OutlierDetectionAlgorithm.Z_SCORE:
228
+ availabilityOutlierThreshold = 3;
229
+ break;
230
+ }
220
231
  }
221
232
  else {
222
- outlierThreshold = props.outlierThreshold;
233
+ availabilityOutlierThreshold = props.availabilityOutlierThreshold;
223
234
  }
235
+
236
+ if (!props.latencyOutlierThreshold) {
237
+ switch (latencyOutlierDetectionAlgorithm) {
238
+ case OutlierDetectionAlgorithm.CHI_SQUARED:
239
+ latencyOutlierThreshold = 0.05;
240
+ break;
241
+ case OutlierDetectionAlgorithm.IQR:
242
+ latencyOutlierThreshold = 1.5;
243
+ break;
244
+ case OutlierDetectionAlgorithm.MAD:
245
+ latencyOutlierThreshold = 3;
246
+ break;
247
+ case OutlierDetectionAlgorithm.STATIC:
248
+ latencyOutlierThreshold = 0.7;
249
+ break;
250
+ case OutlierDetectionAlgorithm.Z_SCORE:
251
+ latencyOutlierThreshold = 3;
252
+ break;
253
+ }
254
+ }
255
+ else {
256
+ latencyOutlierThreshold = props.latencyOutlierThreshold;
257
+ }*/
224
258
  // Create the AZ mapper resource that all of the resources
225
259
  // will share
226
260
  this.azMapper = new AvailabilityZoneMapper_1.AvailabilityZoneMapper(this, 'AZMapper', {
@@ -236,7 +270,7 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
236
270
  }
237
271
  // Create the outlier detection lambda function stack if we're not
238
272
  // using static outlier detection
239
- if (props.outlierDetectionAlgorithm != OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC) {
273
+ if (availabilityOutlierDetectionAlgorithm != OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC || latencyOutlierDetectionAlgorithm != OutlierDetectionAlgorithm_1.OutlierDetectionAlgorithm.STATIC) {
240
274
  let outlierDetectionStack = new StackWithDynamicSource_1.StackWithDynamicSource(this, 'OutlierDetectionStack', {
241
275
  assetsBucketsParameterName: props.assetsBucketParameterName,
242
276
  assetsBucketPrefixParameterName: props.assetsBucketPrefixParameterName,
@@ -250,13 +284,14 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
250
284
  operation.operationName,
251
285
  new OperationAlarmsAndRules_1.OperationAlarmsAndRules(nestedStack, operation.operationName, {
252
286
  operation: operation,
253
- latencyOutlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
254
- availabilityOutlierDetectionAlgorithm: props.outlierDetectionAlgorithm,
255
- latencyOutlierThreshold: outlierThreshold,
256
- availabilityOutlierThreshold: outlierThreshold,
287
+ latencyOutlierDetectionAlgorithm: latencyOutlierDetectionAlgorithm,
288
+ availabilityOutlierDetectionAlgorithm: availabilityOutlierDetectionAlgorithm,
289
+ latencyOutlierThreshold: latencyOutlierThreshold,
290
+ availabilityOutlierThreshold: availabilityOutlierThreshold,
257
291
  loadBalancer: props.service.loadBalancer,
258
292
  azMapper: this.azMapper,
259
293
  outlierDetectionFunction: this.outlierDetectionFunction,
294
+ latencyOutlierMetricAggregation: props.latencyOutlierMetricAggregation
260
295
  }),
261
296
  ];
262
297
  }));
@@ -282,7 +317,6 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
282
317
  }).dashboard);
283
318
  });
284
319
  let dashboardStack = new aws_cdk_lib_1.NestedStack(this, 'ServiceDashboard', {});
285
- // TOOD: Revamp service level dashboard and rethink alarms
286
320
  this.serviceDashboard = new ServiceAvailabilityAndLatencyDashboard_1.ServiceAvailabilityAndLatencyDashboard(dashboardStack, props.service.serviceName.toLowerCase(), {
287
321
  interval: props.interval ? props.interval : aws_cdk_lib_1.Duration.minutes(60),
288
322
  serviceAlarmsAndRules: this.serviceAlarms,
@@ -295,5 +329,5 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
295
329
  }
296
330
  exports.InstrumentedServiceMultiAZObservability = InstrumentedServiceMultiAZObservability;
297
331
  _a = JSII_RTTI_SYMBOL_1;
298
- InstrumentedServiceMultiAZObservability[_a] = { fqn: "@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservability", version: "0.0.1-alpha.41" };
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQW9EO0FBSXBELDJDQUFtRDtBQUNuRCxtREFBZ0Q7QUFHaEQsMkNBQXdDO0FBRXhDLCtEQUE0RDtBQUc1RCx1RkFBb0Y7QUFDcEYsbUZBQWdGO0FBQ2hGLCtFQUE0RTtBQUM1RSwrREFBNEQ7QUFDNUQsdURBQW9EO0FBRXBELHFIQUFrSDtBQUNsSCxpSEFBOEc7QUFDOUcsNEZBQXlGO0FBQ3pGLHNGQUFtRjtBQUNuRixnRkFBNkU7QUFDN0UsNkZBQTBGO0FBQzFGLG1GQUFnRjtBQUloRjs7OztHQUlHO0FBQ0gsTUFBYSx1Q0FDWCxTQUFRLHNCQUFTO0lBc0RqQjs7Ozs7T0FLRztJQUNLLGdCQUFnQixDQUN0QixLQUFpQixFQUNqQixLQUFtRDtRQUluRCxJQUFJLE1BQU0sR0FBRyxJQUFJLCtCQUFjLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1lBQ3ZELEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsb0JBQW9CLEVBQUUsR0FBRztZQUM3RCxlQUFlLEVBQ2QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLG9CQUFvQixFQUFFLGVBQWU7WUFDckUsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZ0IsQ0FBQyxPQUFPO2dCQUNqRCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLE9BQU87Z0JBQ3hDLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdkIsZUFBZSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMs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SSxtRkFBd0MsQ0FDMUMsY0FBYyxFQUNkLENBQUMsQ0FBQyxhQUFhLEVBQ2Y7b0JBQ0UsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7b0JBQ3pFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO3dCQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7d0JBQ2hCLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7aUJBQ3pCLENBQ0YsQ0FBQyxTQUFTLENBQ1osQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxjQUFjLEdBQWdCLElBQUkseUJBQVcsQ0FDL0MsSUFBSSxFQUNKLGtCQUFrQixFQUNsQixFQUFFLENBQ0gsQ0FBQztZQUVGLDBEQUEwRDtZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSwrRUFBc0MsQ0FDaEUsY0FBYyxFQUNkLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUN2QztnQkFDRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDekMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7YUFDOUMsQ0FDRixDQUFDLFNBQVMsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOztBQXpkSCwwRkEwZEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEYXNoYm9hcmQsIElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgSUxvZ0dyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlNZXRyaWNzIH0gZnJvbSAnLi9DYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkgfSBmcm9tICcuL0lJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHknO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4vSU9wZXJhdGlvbic7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL09wZXJhdGlvbic7XG5pbXBvcnQgeyBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyB9IGZyb20gJy4vcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vcHJvcHMvTWV0cmljRGltZW5zaW9ucyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9JT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4uL2FsYXJtc2FuZHJ1bGVzL0lTZXJ2aWNlQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2aWNlQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9TZXJ2aWNlQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4uL2F6bWFwcGVyL0F2YWlsYWJpbGl0eVpvbmVNYXBwZXInO1xuaW1wb3J0IHsgQ2FuYXJ5RnVuY3Rpb24gfSBmcm9tICcuLi9jYW5hcmllcy9DYW5hcnlGdW5jdGlvbic7XG5pbXBvcnQgeyBDYW5hcnlUZXN0IH0gZnJvbSAnLi4vY2FuYXJpZXMvQ2FuYXJ5VGVzdCc7XG5pbXBvcnQgeyBBZGRDYW5hcnlUZXN0UHJvcHMgfSBmcm9tICcuLi9jYW5hcmllcy9wcm9wcy9BZGRDYW5hcnlUZXN0UHJvcHMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZCB9IGZyb20gJy4uL2Rhc2hib2FyZHMvT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZCc7XG5pbXBvcnQgeyBTZXJ2aWNlQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZCB9IGZyb20gJy4uL2Rhc2hib2FyZHMvU2VydmljZUF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQnO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uJztcbmltcG9ydCB7IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gfSBmcm9tICcuLi91dGlsaXRpZXMvT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSc7XG5pbXBvcnQgeyBTdGFja1dpdGhEeW5hbWljU291cmNlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL1N0YWNrV2l0aER5bmFtaWNTb3VyY2UnO1xuaW1wb3J0IHsgT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyB9IGZyb20gJy4vT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyc7XG5pbXBvcnQgeyBPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyB9IGZyb20gJy4vT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL0lPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyB9IGZyb20gJy4vSU9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzJztcblxuLyoqXG4gKiBBbiBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBpdHMgb3duIGluc3RydW1lbnRhdGlvbiB0byByZWNvcmRcbiAqIGF2YWlsYWJpbGl0eSBhbmQgbGF0ZW5jeSBtZXRyaWNzIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlXG4gKiBhbGFybXMsIHJ1bGVzLCBhbmQgZGFzaGJvYXJkcyBmcm9tXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IHtcblxuICAvKipcbiAgICogS2V5IHJlcHJlc2VudHMgdGhlIG9wZXJhdGlvbiBuYW1lIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHNldFxuICAgKiBvZiB6b25hbCBhbGFybXMgYW5kIHJ1bGVzIGZvciB0aGF0IG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzOiB7XG4gICAgW2tleTogc3RyaW5nXTogSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbmRleCBpbnRvIHRoZSBkaWN0aW9uYXJ5IGJ5IG9wZXJhdGlvbiBuYW1lLCB0aGVuIGJ5IEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqIHRvIGdldCB0aGUgYWxhcm1zIHRoYXQgaW5kaWNhdGUgYW4gQVogc2hvd3MgaXNvbGF0ZWQgaW1wYWN0IGZyb20gYXZhaWxhYmlsaXR5XG4gICAqIG9yIGxhdGVuY3kgYXMgc2VlbiBieSBlaXRoZXIgdGhlIHNlcnZlci1zaWRlIG9yIGNhbmFyeS4gVGhlc2UgYXJlIHRoZSBhbGFybXNcbiAgICogeW91IHdvdWxkIHdhbnQgdG8gdXNlIHRvIHRyaWdnZXIgYXV0b21hdGlvbiB0byBldmFjdWF0ZSBhbiBBWi5cbiAgICovXG4gIHJlYWRvbmx5IHBlck9wZXJhdGlvblpvbmFsSW1wYWN0QWxhcm1zOiB7XG4gICAgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcbiAgfTtcblxuICAvKipcbiAgICogVGhlIGFsYXJtcyBhbmQgcnVsZXMgZm9yIHRoZSBvdmVyYWxsIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VBbGFybXM6IElTZXJ2aWNlQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXNoYm9hcmRzIGZvciBlYWNoIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRGFzaGJvYXJkcz86IERhc2hib2FyZFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBsZXZlbCBkYXNoYm9hcmRcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VEYXNoYm9hcmQ/OiBEYXNoYm9hcmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBWiBtYXBwZXIgY3VzdG9tIHJlc291cmNlIHVzZWQgdG8gbWFwIEFaIElkcyB0byBOYW1lcyBhbmQgdmljZSBhIHZlcnNhXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGF6TWFwcGVyOiBBdmFpbGFiaWxpdHlab25lTWFwcGVyO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgc2VydmljZSBpcyBjb25maWd1cmVkIHRvIGhhdmUgY2FuYXJ5IHRlc3RzIGNyZWF0ZWQsIHRoaXMgd2lsbFxuICAgKiBiZSB0aGUgbG9nIGdyb3VwIHdoZXJlIHRoZSBjYW5hcnkncyBsb2dzIGFyZSBzdG9yZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbG9nIGdyb3VwIGlzIGNyZWF0ZWQgaWYgdGhlIGNhbmFyeSBpcyBub3QgcmVxdWVzdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5TG9nR3JvdXA/OiBJTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyB0aGUgb3V0bGllciBkZXRlY3Rpb24gY2FsY3VsYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uPzogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoZSBjYW5hcnkgdGVzdGluZyBmdW5jdGlvbiBhbmQgdGVzdFxuICAgKiBldmVudHNcbiAgICogQHBhcmFtIHNjb3BlIFxuICAgKiBAcGFyYW0gcHJvcHMgXG4gICAqL1xuICBwcml2YXRlIHNldHVwQ2FuYXJ5VGVzdHMoXG4gICAgc2NvcGU6IElDb25zdHJ1Y3QsXG4gICAgcHJvcHM6IEluc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzLFxuICApIDogdm9pZCB7XG5cblxuICAgIGxldCBjYW5hcnkgPSBuZXcgQ2FuYXJ5RnVuY3Rpb24oc2NvcGUsICdDYW5hcnlGdW5jdGlvbicsIHtcbiAgICAgIHZwYzogcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLm5ldHdvcmtDb25maWd1cmF0aW9uPy52cGMsXG4gICAgICBzdWJuZXRTZWxlY3Rpb246XG4gICAgICAgcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLm5ldHdvcmtDb25maWd1cmF0aW9uPy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBodHRwVGltZW91dDogcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLnRpbWVvdXRcbiAgICAgICAgPyBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEudGltZW91dFxuICAgICAgICA6IER1cmF0aW9uLnNlY29uZHMoMiksXG4gICAgICBpZ25vcmVUbHNFcnJvcnM6IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS5pZ25vcmVUbHNFcnJvcnNcbiAgICAgICAgPyBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEuaWdub3JlVGxzRXJyb3JzXG4gICAgICAgIDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBwcm9wcy5zZXJ2aWNlLm9wZXJhdGlvbnMuZm9yRWFjaCgob3BlcmF0aW9uOiBJT3BlcmF0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAob3BlcmF0aW9uLm9wdE91dE9mU2VydmljZUNyZWF0ZWRDYW5hcnkgIT0gdHJ1ZSkge1xuICAgICAgICBsZXQgdGVzdFByb3BzOiBBZGRDYW5hcnlUZXN0UHJvcHMgPSBvcGVyYXRpb24uY2FuYXJ5VGVzdFByb3BzXG4gICAgICAgICAgPyBvcGVyYXRpb24uY2FuYXJ5VGVzdFByb3BzXG4gICAgICAgICAgOiAocHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMgYXMgQWRkQ2FuYXJ5VGVzdFByb3BzKTtcblxuICAgICAgICBsZXQgbmVzdGVkU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnQ2FuYXJ5VGVzdCcsXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IHRlc3QgPSBuZXcgQ2FuYXJ5VGVzdChuZXN0ZWRTdGFjaywgb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsIHtcbiAgICAgICAgICBmdW5jdGlvbjogY2FuYXJ5LmZ1bmN0aW9uLFxuICAgICAgICAgIHJlcXVlc3RDb3VudDogdGVzdFByb3BzLnJlcXVlc3RDb3VudCxcbiAgICAgICAgICByZWdpb25hbFJlcXVlc3RDb3VudDogdGVzdFByb3BzLnJlZ2lvbmFsUmVxdWVzdENvdW50XG4gICAgICAgICAgICA/IHRlc3RQcm9wcy5yZWdpb25hbFJlcXVlc3RDb3VudFxuICAgICAgICAgICAgOiB0ZXN0UHJvcHMucmVxdWVzdENvdW50LFxuICAgICAgICAgIHNjaGVkdWxlOiB0ZXN0UHJvcHMuc2NoZWR1bGUsXG4gICAgICAgICAgb3BlcmF0aW9uOiBvcGVyYXRpb24sXG4gICAgICAgICAgbG9hZEJhbGFuY2VyOiB0ZXN0UHJvcHMubG9hZEJhbGFuY2VyLFxuICAgICAgICAgIGhlYWRlcnM6IHRlc3RQcm9wcy5oZWFkZXJzLFxuICAgICAgICAgIHBvc3REYXRhOiB0ZXN0UHJvcHMucG9zdERhdGEsXG4gICAgICAgICAgYXpNYXBwZXI6IHRoaXMuYXpNYXBwZXIsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM7XG4gICAgICAgIGxldCBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscztcblxuICAgICAgICBpZiAob3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHM/LmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMpIHtcbiAgICAgICAgICBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgYWxhcm1TdGF0aXN0aWM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgZmF1bHRBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgZ3JhcGhlZEZhdWx0U3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZ3JhcGhlZEZhdWx0U3RhdGlzdGljcyxcbiAgICAgICAgICAgICAgZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBwZXJpb2Q6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnBlcmlvZCxcbiAgICAgICAgICAgICAgc3VjY2Vzc0FsYXJtVGhyZXNob2xkOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc01ldHJpY05hbWVzLFxuICAgICAgICAgICAgICB1bml0OiBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgIC5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLnVuaXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZpY2UuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZSkge1xuICAgICAgICAgIGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2VzcyddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0JywgJ0ZhaWx1cmUnXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcblxuICAgICAgICAgICAgICBhbGFybVN0YXRpc3RpYzpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgICAgICBmYXVsdEFsYXJtVGhyZXNob2xkOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlXG4gICAgICAgICAgICAgICAgICAuZmF1bHRBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgcGVyaW9kOiBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZS5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGVzdC5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczogWydTdWNjZXNzJ10sXG4gICAgICAgICAgICAgIGZhdWx0TWV0cmljTmFtZXM6IFsnRmF1bHQnLCAnRmFpbHVyZSddLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2UuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscz8uY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHMpIHtcbiAgICAgICAgICBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBhbGFybVN0YXRpc3RpYzpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgZ3JhcGhlZEZhdWx0U3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmdyYXBoZWRGYXVsdFN0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIGdyYXBoZWRTdWNjZXNzU3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmdyYXBoZWRTdWNjZXNzU3RhdGlzdGljcyxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBwZXJpb2Q6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgc3VjY2Vzc01ldHJpY05hbWVzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc01ldHJpY05hbWVzLFxuICAgICAgICAgICAgICB1bml0OiBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgIC51bml0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZSkge1xuICAgICAgICAgIGRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGVzdC5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczogWydTdWNjZXNzTGF0ZW5jeSddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0TGF0ZW5jeSddLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuXG4gICAgICAgICAgICAgIGFsYXJtU3RhdGlzdGljOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZS5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICAgIHBlcmlvZDogb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlLnBlcmlvZCxcbiAgICAgICAgICAgICAgc3VjY2Vzc0FsYXJtVGhyZXNob2xkOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGVzdC5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczogWydTdWNjZXNzTGF0ZW5jeSddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0TGF0ZW5jeSddLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2UuZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbmV3T3BlcmF0aW9uID0gbmV3IE9wZXJhdGlvbih7XG4gICAgICAgICAgc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBvcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgc2VydmVyU2lkZUxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBzZXJ2ZXJTaWRlQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6XG4gICAgICAgICAgICBvcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzLFxuICAgICAgICAgIHNlcnZpY2U6IG9wZXJhdGlvbi5zZXJ2aWNlLFxuICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgIHBhdGg6IG9wZXJhdGlvbi5wYXRoLFxuICAgICAgICAgIGNyaXRpY2FsOiBvcGVyYXRpb24uY3JpdGljYWwsXG4gICAgICAgICAgaHR0cE1ldGhvZHM6IG9wZXJhdGlvbi5odHRwTWV0aG9kcyxcbiAgICAgICAgICBjYW5hcnlNZXRyaWNEZXRhaWxzOiBuZXcgQ2FuYXJ5TWV0cmljcyh7XG4gICAgICAgICAgICBjYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOiBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzOiBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb3BzLnNlcnZpY2Uub3BlcmF0aW9uc1tpbmRleF0gPSBuZXdPcGVyYXRpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEluc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IG91dGxpZXJUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAgIC8vIFNldCBkZWZhdWx0c1xuICAgIGlmICghcHJvcHMub3V0bGllclRocmVzaG9sZCkge1xuICAgICAgc3dpdGNoIChwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtKSB7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5DSElfU1FVQVJFRDpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMC4wNTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLklRUjpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMS41O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uTUFEOlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSAzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDOlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSAwLjc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5aX1NDT1JFOlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSAzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRsaWVyVGhyZXNob2xkID0gcHJvcHMub3V0bGllclRocmVzaG9sZDtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIEFaIG1hcHBlciByZXNvdXJjZSB0aGF0IGFsbCBvZiB0aGUgcmVzb3VyY2VzXG4gICAgLy8gd2lsbCBzaGFyZVxuICAgIHRoaXMuYXpNYXBwZXIgPSBuZXcgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcih0aGlzLCAnQVpNYXBwZXInLCB7XG4gICAgICBhdmFpbGFiaWxpdHlab25lTmFtZXM6IHByb3BzLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBjYW5hcnkgdGVzdGluZyBzdGFjayBpZiB0aGUgdXNlciBwcm92aWRlZCBpbnB1dFxuICAgIGlmIChwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcykge1xuICAgICAgbGV0IGNhbmFyeVN0YWNrOiBTdGFja1dpdGhEeW5hbWljU291cmNlID0gbmV3IFN0YWNrV2l0aER5bmFtaWNTb3VyY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdDYW5hcnknLFxuICAgICAgICB7XG4gICAgICAgICAgYXNzZXRzQnVja2V0c1BhcmFtZXRlck5hbWU6IHByb3BzLmFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgYXNzZXRzQnVja2V0UHJlZml4UGFyYW1ldGVyTmFtZTpcbiAgICAgICAgICAgIHByb3BzLmFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWUsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNldHVwQ2FuYXJ5VGVzdHMoY2FuYXJ5U3RhY2ssIHByb3BzKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGxhbWJkYSBmdW5jdGlvbiBzdGFjayBpZiB3ZSdyZSBub3RcbiAgICAvLyB1c2luZyBzdGF0aWMgb3V0bGllciBkZXRlY3Rpb25cbiAgICBpZiAocHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSAhPSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLlNUQVRJQykge1xuICAgICAgbGV0IG91dGxpZXJEZXRlY3Rpb25TdGFjazogU3RhY2tXaXRoRHluYW1pY1NvdXJjZSA9XG4gICAgICAgIG5ldyBTdGFja1dpdGhEeW5hbWljU291cmNlKHRoaXMsICdPdXRsaWVyRGV0ZWN0aW9uU3RhY2snLCB7XG4gICAgICAgICAgYXNzZXRzQnVja2V0c1BhcmFtZXRlck5hbWU6IHByb3BzLmFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgYXNzZXRzQnVja2V0UHJlZml4UGFyYW1ldGVyTmFtZTpcbiAgICAgICAgICAgIHByb3BzLmFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWUsXG4gICAgICAgIH0pO1xuICBcbiAgICAgIHRoaXMub3V0bGllckRldGVjdGlvbkZ1bmN0aW9uID0gbmV3IE91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbihcbiAgICAgICAgb3V0bGllckRldGVjdGlvblN0YWNrLFxuICAgICAgICAnT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uJyxcbiAgICAgICAge30sXG4gICAgICApLmZ1bmN0aW9uO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgcGVyIG9wZXJhdGlvbiBhbGFybXMgYW5kIGNvbnRyaWJ1dG9yIGluc2lnaHQgcnVsZXNcbiAgICB0aGlzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zLm1hcCgob3BlcmF0aW9uOiBJT3BlcmF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBuZXN0ZWRTdGFjazogTmVzdGVkU3RhY2sgPSBuZXcgTmVzdGVkU3RhY2soXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdPcGVyYXRpb25BbGFybXNBbmRSdWxlc05lc3RlZFN0YWNrJyxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgIG5ldyBPcGVyYXRpb25BbGFybXNBbmRSdWxlcyhuZXN0ZWRTdGFjaywgb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uLFxuICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLFxuICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ6IG91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkOiBvdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgbG9hZEJhbGFuY2VyOiBwcm9wcy5zZXJ2aWNlLmxvYWRCYWxhbmNlcixcbiAgICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uOiB0aGlzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLnBlck9wZXJhdGlvblpvbmFsSW1wYWN0QWxhcm1zID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykubWFwKChbb3BlcmF0aW9uTmFtZSwgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNdKSA9PiB7XG4gICAgICAgIHJldHVybiBbb3BlcmF0aW9uTmFtZSwgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuYWdncmVnYXRlWm9uYWxBbGFybXNdO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGxldCBzZXJ2aWNlQWxhcm1zU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgdGhpcyxcbiAgICAgICdTZXJ2aWNlQWxhcm1zTmVzdGVkU3RhY2snLFxuICAgICk7XG5cbiAgICB0aGlzLnNlcnZpY2VBbGFybXMgPSBuZXcgU2VydmljZUFsYXJtc0FuZFJ1bGVzKFxuICAgICAgc2VydmljZUFsYXJtc1N0YWNrLFxuICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZSxcbiAgICAgIHtcbiAgICAgICAgcGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXM6IHRoaXMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMsXG4gICAgICAgIHNlcnZpY2U6IHByb3BzLnNlcnZpY2UsXG4gICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHByb3BzLmNyZWF0ZURhc2hib2FyZHMpIHtcbiAgICAgIHRoaXMub3BlcmF0aW9uRGFzaGJvYXJkcyA9IFtdO1xuXG4gICAgICBwcm9wcy5zZXJ2aWNlLm9wZXJhdGlvbnMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBsZXQgZGFzaGJvYXJkU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgeC5vcGVyYXRpb25OYW1lICsgJ0Rhc2hib2FyZCcsXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vcGVyYXRpb25EYXNoYm9hcmRzIS5wdXNoKFxuICAgICAgICAgIG5ldyBPcGVyYXRpb25BdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkKFxuICAgICAgICAgICAgZGFzaGJvYXJkU3RhY2ssXG4gICAgICAgICAgICB4Lm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzOiB0aGlzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzW3gub3BlcmF0aW9uTmFtZV0sXG4gICAgICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICAgICAgICBpbnRlcnZhbDogcHJvcHMuaW50ZXJ2YWxcbiAgICAgICAgICAgICAgICA/IHByb3BzLmludGVydmFsXG4gICAgICAgICAgICAgICAgOiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5kYXNoYm9hcmQsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGRhc2hib2FyZFN0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VEYXNoYm9hcmQnLFxuICAgICAgICB7fSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFRPT0Q6IFJldmFtcCBzZXJ2aWNlIGxldmVsIGRhc2hib2FyZCBhbmQgcmV0aGluayBhbGFybXNcbiAgICAgIHRoaXMuc2VydmljZURhc2hib2FyZCA9IG5ldyBTZXJ2aWNlQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZChcbiAgICAgICAgZGFzaGJvYXJkU3RhY2ssXG4gICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAge1xuICAgICAgICAgIGludGVydmFsOiBwcm9wcy5pbnRlcnZhbCA/IHByb3BzLmludGVydmFsIDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgICAgc2VydmljZUFsYXJtc0FuZFJ1bGVzOiB0aGlzLnNlcnZpY2VBbGFybXMsXG4gICAgICAgICAgc2VydmljZTogcHJvcHMuc2VydmljZSxcbiAgICAgICAgICBhek1hcHBlcjogdGhpcy5hek1hcHBlcixcbiAgICAgICAgICBvcGVyYXRpb25zRGFzaGJvYXJkOiB0aGlzLm9wZXJhdGlvbkRhc2hib2FyZHNcbiAgICAgICAgfSxcbiAgICAgICkuZGFzaGJvYXJkO1xuICAgIH1cbiAgfVxufVxuIl19
332
+ InstrumentedServiceMultiAZObservability[_a] = { fqn: "@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservability", version: "0.0.1-alpha.43" };
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQW9EO0FBSXBELDJDQUFtRDtBQUNuRCxtREFBZ0Q7QUFHaEQsMkNBQXdDO0FBRXhDLCtEQUE0RDtBQUc1RCx1RkFBb0Y7QUFDcEYsbUZBQWdGO0FBQ2hGLCtFQUE0RTtBQUM1RSwrREFBNEQ7QUFDNUQsdURBQW9EO0FBRXBELHFIQUFrSDtBQUNsSCxpSEFBOEc7QUFDOUcsNEZBQXlGO0FBQ3pGLHNGQUFtRjtBQUNuRixnRkFBNkU7QUFDN0UsNkZBQTBGO0FBQzFGLG1GQUFnRjtBQUdoRiwwR0FBdUc7QUFFdkc7Ozs7R0FJRztBQUNILE1BQWEsdUNBQ1gsU0FBUSxzQkFBUztJQXNEakI7Ozs7O09BS0c7SUFDSyxnQkFBZ0IsQ0FDdEIsS0FBaUIsRUFDakIsS0FBbUQ7UUFJbkQsSUFBSSxNQUFNLEdBQUcsSUFBSSwrQkFBYyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtZQUN2RCxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLG9CQUFvQixFQUFFLEdBQUc7WUFDN0QsZUFBZSxFQUNkLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlO1lBQ3JFLFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsT0FBTztnQkFDakQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZ0IsQ0FBQyxPQUFPO2dCQUN4QyxDQUFDLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLGVBQWUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsZUFBZTtnQkFDN0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZ0IsQ0FBQyxlQUFlO2dCQUNoRCxDQUFDLENBQUMsS0FBSztTQUNWLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQXFCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDeEUsSUFBSSxTQUFTLENBQUMsNEJBQTRCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25ELElBQUksU0FBUyxHQUF1QixTQUFTLENBQUMsZUFBZTtvQkFDM0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlO29CQUMzQixDQUFDLENBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFzQyxDQUFDO2dCQUUxRCxJQUFJLFdBQVcsR0FBZ0IsSUFBSSx5QkFBVyxDQUM1QyxJQUFJLEVBQ0osU0FBUyxDQUFDLGFBQWEsR0FBRyxZQUFZLEVBQ3RDLEVBQUUsQ0FDSCxDQUFDO2dCQUVGLElBQUksSUFBSSxHQUFHLElBQUksdUJBQVUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRTtvQkFDOUQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO29CQUN6QixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7b0JBQ3BDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxvQkFBb0I7d0JBQ2xELENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CO3dCQUNoQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVk7b0JBQzFCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtvQkFDNUIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWTtvQkFDcEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO29CQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7b0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtpQkFDeEIsQ0FBQyxDQUFDO2dCQUVILElBQUksZ0NBQXFFLENBQUM7Z0JBQzFFLElBQUksMkJBQTJELENBQUM7Z0JBRWhFLElBQUksU0FBUyxDQUFDLG1CQUFtQixFQUFFLCtCQUErQixFQUFFLENBQUM7b0JBQ25FLGdDQUFnQyxHQUFHLElBQUksdUVBQWtDLENBQ3ZFO3dCQUNFLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTt3QkFDdEMsZ0JBQWdCLEVBQUUsSUFBSSxtQ0FBZ0IsQ0FDcEMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUN0QyxPQUFPLEVBQ1AsUUFBUSxDQUNUO3dCQUNELGNBQWMsRUFDWixTQUFTLENBQUMsbUJBQW1CLENBQUMsK0JBQStCOzZCQUMxRCxjQUFjO3dCQUNuQixpQkFBaUIsRUFDZixTQUFTLENBQUMsbUJBQW1CLENBQUMsK0JBQStCOzZCQUMxRCxpQkFBaUI7d0JBQ3RCLGlCQUFpQixFQUNmLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0I7NkJBQzFELGlCQUFpQjt3QkFDdEIsbUJBQW1CLEVBQ2pCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0I7NkJBQzFELG1CQUFtQjt3QkFDeEIsZ0JBQWdCLEVBQ2QsU0FBUyxDQUFDLG1CQUFtQixDQUFDLCtCQUErQjs2QkFDMUQsZ0JBQWdCO3dCQUNyQixzQkFBc0IsRUFDcEIsU0FBUyxDQUFDLG1CQUFtQixDQUFDLCtCQUErQjs2QkFDMUQsc0JBQXNCO3dCQUMzQix3QkFBd0IsRUFDdEIsU0FBUyxDQUFDLG1CQUFtQixDQUFDLCtCQUErQjs2QkFDMUQsd0JBQXdCO3dCQUM3QixlQUFlLEVBQ2IsU0FBUyxDQUFDLG1CQUFtQixDQUFDLCtCQUErQjs2QkFDMUQsZUFBZTt3QkFDcEIsTUFBTSxFQUNKLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0I7NkJBQzFELE1BQU07d0JBQ1gscUJBQXFCLEVBQ25CLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0I7NkJBQzFELHFCQUFxQjt3QkFDMUIsa0JBQWtCLEVBQ2hCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0I7NkJBQzFELGtCQUFrQjt3QkFDdkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxtQkFBbUI7NkJBQ2hDLCtCQUErQixDQUFDLElBQUk7cUJBQ3hDLEVBQ0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FDbkQsQ0FBQztnQkFDSixDQUFDO3FCQUFNLElBQUksU0FBUyxDQUFDLHFDQUFxQyxFQUFFLENBQUM7b0JBQzNELGdDQUFnQyxHQUFHLElBQUksdUVBQWtDLENBQ3ZFO3dCQUNFLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTt3QkFDdEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO3dCQUNyQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQzt3QkFDL0IsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO3dCQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLG1DQUFnQixDQUNwQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQ3RDLE9BQU8sRUFDUCxRQUFRLENBQ1Q7d0JBRUQsY0FBYyxFQUNaLFNBQVMsQ0FBQyxxQ0FBcUM7NkJBQzVDLGNBQWM7d0JBQ25CLGlCQUFpQixFQUNmLFNBQVMsQ0FBQyxxQ0FBcUM7NkJBQzVDLGlCQUFpQjt3QkFDdEIsaUJBQWlCLEVBQ2YsU0FBUyxDQUFDLHFDQUFxQzs2QkFDNUMsaUJBQWlCO3dCQUN0QixtQkFBbUIsRUFDakIsU0FBUyxDQUFDLHFDQUFxQzs2QkFDNUMsbUJBQW1CO3dCQUN4QixNQUFNLEVBQUUsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLE1BQU07d0JBQzlELHFCQUFxQixFQUNuQixTQUFTLENBQUMscUNBQXFDOzZCQUM1QyxxQkFBcUI7cUJBQzNCLEVBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FDL0MsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sZ0NBQWdDLEdBQUcsSUFBSSx1RUFBa0MsQ0FDdkU7d0JBQ0UsYUFBYSxFQUFFLFNBQVMsQ0FBQyxhQUFhO3dCQUN0QyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7d0JBQ3JDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUFDO3dCQUMvQixnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7d0JBQ3RDLGdCQUFnQixFQUFFLElBQUksbUNBQWdCLENBQ3BDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFDdEMsT0FBTyxFQUNQLFFBQVEsQ0FDVDtxQkFDRixFQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQy9DLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBRSxDQUFDO29CQUM5RCwyQkFBMkIsR0FBRyxJQUFJLDZEQUE2QixDQUM3RDt3QkFDRSxhQUFhLEVBQUUsU0FBUyxDQUFDLGFBQWE7d0JBQ3RDLGdCQUFnQixFQUFFLElBQUksbUNBQWdCLENBQ3BDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFDdEMsT0FBTyxFQUNQLFFBQVEsQ0FDVDt3QkFDRCxjQUFjLEVBQ1osU0FBUyxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQjs2QkFDckQsY0FBYzt3QkFDbkIsaUJBQWlCLEVBQ2YsU0FBUyxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQjs2QkFDckQsaUJBQWlCO3dCQUN0QixpQkFBaUIsRUFDZixTQUFTLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCOzZCQUNyRCxpQkFBaUI7d0JBQ3RCLGdCQUFnQixFQUNkLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEI7NkJBQ3JELGdCQUFnQjt3QkFDckIsc0JBQXNCLEVBQ3BCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEI7NkJBQ3JELHNCQUFzQjt3QkFDM0Isd0JBQXdCLEVBQ3RCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEI7NkJBQ3JELHdCQUF3Qjt3QkFDN0IsZUFBZSxFQUNiLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEI7NkJBQ3JELGVBQWU7d0JBQ3BCLE1BQU0sRUFDSixTQUFTLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCOzZCQUNyRCxNQUFNO3dCQUNYLHFCQUFxQixFQUNuQixTQUFTLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCOzZCQUNyRCxxQkFBcUI7d0JBQzFCLGtCQUFrQixFQUNoQixTQUFTLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCOzZCQUNyRCxrQkFBa0I7d0JBQ3ZCLElBQUksRUFBRSxTQUFTLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCOzZCQUMzRCxJQUFJO3FCQUNSLEVBQ0QsU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FDOUMsQ0FBQztnQkFDSixDQUFDO3FCQUFNLElBQUksU0FBUyxDQUFDLGdDQUFnQyxFQUFFLENBQUM7b0JBQ3RELDJCQUEyQixHQUFHLElBQUksNkRBQTZCLENBQzdEO3dCQUNFLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTt3QkFDdEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO3dCQUNyQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDO3dCQUN0QyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3QkFDbEMsZ0JBQWdCLEVBQUUsSUFBSSxtQ0FBZ0IsQ0FDcEMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUN0QyxPQUFPLEVBQ1AsUUFBUSxDQUNUO3dCQUVELGNBQWMsRUFDWixTQUFTLENBQUMsZ0NBQWdDLENBQUMsY0FBYzt3QkFDM0QsaUJBQWlCLEVBQ2YsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLGlCQUFpQjt3QkFDOUQsaUJBQWlCLEVBQ2YsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLGlCQUFpQjt3QkFDOUQsTUFBTSxFQUFFLFNBQVMsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNO3dCQUN6RCxxQkFBcUIsRUFDbkIsU0FBUyxDQUFDLGdDQUFnQzs2QkFDdkMscUJBQXFCO3FCQUMzQixFQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQzFDLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLDJCQUEyQixHQUFHLElBQUksNkRBQTZCLENBQzdEO3dCQUNFLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTt3QkFDdEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO3dCQUNyQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDO3dCQUN0QyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3QkFDbEMsZ0JBQWdCLEVBQUUsSUFBSSxtQ0FBZ0IsQ0FDcEMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUN0QyxPQUFPLEVBQ1AsUUFBUSxDQUNUO3FCQUNGLEVBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FDMUMsQ0FBQztnQkFDSixDQUFDO2dCQUVELElBQUksWUFBWSxHQUFHLElBQUkscUJBQVMsQ0FBQztvQkFDL0IsbUNBQW1DLEVBQ2pDLFNBQVMsQ0FBQyxtQ0FBbUM7b0JBQy9DLDhCQUE4QixFQUM1QixTQUFTLENBQUMsOEJBQThCO29CQUMxQyx1Q0FBdUMsRUFDckMsU0FBUyxDQUFDLHVDQUF1QztvQkFDbkQsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO29CQUMxQixhQUFhLEVBQUUsU0FBUyxDQUFDLGFBQWE7b0JBQ3RDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtvQkFDcEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO29CQUM1QixXQUFXLEVBQUUsU0FBUyxDQUFDLFdBQVc7b0JBQ2xDLG1CQUFtQixFQUFFLElBQUksNkJBQWEsQ0FBQzt3QkFDckMsK0JBQStCLEVBQUUsZ0NBQWdDO3dCQUNqRSwwQkFBMEIsRUFBRSwyQkFBMkI7cUJBQ3hELENBQUM7aUJBQ0gsQ0FBQyxDQUFDO2dCQUVILEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUNqRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUQ7UUFFbkQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUlqQixJQUFJLHFDQUFxQyxHQUE4QixLQUFLLENBQUMscUNBQXFDLElBQUkscURBQXlCLENBQUMsTUFBTSxDQUFDO1FBQ3ZKLElBQUksNEJBQW9DLENBQUM7UUFFekMsSUFBSSxnQ0FBZ0MsR0FBOEIsS0FBSyxDQUFDLGdDQUFnQyxJQUFJLHFEQUF5QixDQUFDLE1BQU0sQ0FBQztRQUM3SSxJQUFJLHVCQUErQixDQUFDO1FBRXBDLHFHQUFxRztRQUNyRyxxQ0FBcUMsR0FBRyxxREFBeUIsQ0FBQyxNQUFNLENBQUM7UUFDekUsZ0NBQWdDLEdBQUcscURBQXlCLENBQUMsTUFBTSxDQUFDO1FBQ3BFLDRCQUE0QixHQUFHLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxHQUFHLENBQUE7UUFDeEUsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixJQUFJLEdBQUcsQ0FBQztRQUUvRCxJQUFJLEtBQUssQ0FBQywrQkFBK0IsSUFBSSxpRUFBK0IsQ0FBQyxLQUFLLElBQUksZ0NBQWdDLElBQUkscURBQXlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0osTUFBTSxJQUFJLEtBQUssQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0E0Q0c7UUFFSCwwREFBMEQ7UUFDMUQsYUFBYTtRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSwrQ0FBc0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNELHFCQUFxQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCO1NBQzNELENBQUMsQ0FBQztRQUVILDZEQUE2RDtRQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbEMsSUFBSSxXQUFXLEdBQTJCLElBQUksK0NBQXNCLENBQ2xFLElBQUksRUFDSixRQUFRLEVBQ1I7Z0JBQ0UsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtnQkFDM0QsK0JBQStCLEVBQzdCLEtBQUssQ0FBQywrQkFBK0I7YUFDeEMsQ0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsa0VBQWtFO1FBQ2xFLGlDQUFpQztRQUNqQyxJQUFJLHFDQUFxQyxJQUFJLHFEQUF5QixDQUFDLE1BQU0sSUFBSSxnQ0FBZ0MsSUFBSSxxREFBeUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0SixJQUFJLHFCQUFxQixHQUN2QixJQUFJLCtDQUFzQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtnQkFDeEQsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtnQkFDM0QsK0JBQStCLEVBQzdCLEtBQUssQ0FBQywrQkFBK0I7YUFDeEMsQ0FBQyxDQUFDO1lBRUwsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksbURBQXdCLENBQzFELHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsRUFBRSxDQUNILENBQUMsUUFBUSxDQUFDO1FBQ2IsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDbEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBcUIsRUFBRSxFQUFFO1lBQ3JELElBQUksV0FBVyxHQUFnQixJQUFJLHlCQUFXLENBQzVDLElBQUksRUFDSixTQUFTLENBQUMsYUFBYSxHQUFHLG9DQUFvQyxDQUMvRCxDQUFDO1lBRUYsT0FBTztnQkFDTCxTQUFTLENBQUMsYUFBYTtnQkFDdkIsSUFBSSxpREFBdUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRTtvQkFDaEUsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLGdDQUFnQyxFQUFFLGdDQUFnQztvQkFDbEUscUNBQXFDLEVBQUUscUNBQXFDO29CQUM1RSx1QkFBdUIsRUFBRSx1QkFBdUI7b0JBQ2hELDRCQUE0QixFQUFFLDRCQUE0QjtvQkFDMUQsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWTtvQkFDeEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN2Qix3QkFBd0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCO29CQUN2RCwrQkFBK0IsRUFBRSxLQUFLLENBQUMsK0JBQStCO2lCQUN2RSxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsNkJBQTZCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7WUFDL0YsT0FBTyxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLGtCQUFrQixHQUFnQixJQUFJLHlCQUFXLENBQ25ELElBQUksRUFDSiwwQkFBMEIsQ0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSw2Q0FBcUIsQ0FDNUMsa0JBQWtCLEVBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUN6QjtZQUNFLDBCQUEwQixFQUFFLElBQUksQ0FBQywwQkFBMEI7WUFDM0QsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUNGLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7WUFFOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksY0FBYyxHQUFnQixJQUFJLHlCQUFXLENBQy9DLElBQUksRUFDSixDQUFDLENBQUMsYUFBYSxHQUFHLFdBQVcsRUFDN0IsRUFBRSxDQUNILENBQUM7Z0JBRUYsSUFBSSxDQUFDLG1CQUFvQixDQUFDLElBQUksQ0FDNUIsSUFBSSxtRkFBd0MsQ0FDMUMsY0FBYyxFQUNkLENBQUMsQ0FBQyxhQUFhLEVBQ2Y7b0JBQ0UsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7b0JBQ3pFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO3dCQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7d0JBQ2hCLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7aUJBQ3pCLENBQ0YsQ0FBQyxTQUFTLENBQ1osQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxjQUFjLEdBQWdCLElBQUkseUJBQVcsQ0FDL0MsSUFBSSxFQUNKLGtCQUFrQixFQUNsQixFQUFFLENBQ0gsQ0FBQztZQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLCtFQUFzQyxDQUNoRSxjQUFjLEVBQ2QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQ3ZDO2dCQUNFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUN6QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjthQUM5QyxDQUNGLENBQUMsU0FBUyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7O0FBaGdCSCwwRkFpZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24sIE5lc3RlZFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRGFzaGJvYXJkLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2FuYXJ5TWV0cmljcyB9IGZyb20gJy4vQ2FuYXJ5TWV0cmljcyc7XG5pbXBvcnQgeyBJSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IH0gZnJvbSAnLi9JSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5JztcbmltcG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuL0lPcGVyYXRpb24nO1xuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSAnLi9PcGVyYXRpb24nO1xuaW1wb3J0IHsgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMgfSBmcm9tICcuL3Byb3BzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzJztcbmltcG9ydCB7IE1ldHJpY0RpbWVuc2lvbnMgfSBmcm9tICcuL3Byb3BzL01ldHJpY0RpbWVuc2lvbnMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi4vYWxhcm1zYW5kcnVsZXMvSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IE9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi4vYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgU2VydmljZUFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi4vYWxhcm1zYW5kcnVsZXMvU2VydmljZUFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXIgfSBmcm9tICcuLi9hem1hcHBlci9BdmFpbGFiaWxpdHlab25lTWFwcGVyJztcbmltcG9ydCB7IENhbmFyeUZ1bmN0aW9uIH0gZnJvbSAnLi4vY2FuYXJpZXMvQ2FuYXJ5RnVuY3Rpb24nO1xuaW1wb3J0IHsgQ2FuYXJ5VGVzdCB9IGZyb20gJy4uL2NhbmFyaWVzL0NhbmFyeVRlc3QnO1xuaW1wb3J0IHsgQWRkQ2FuYXJ5VGVzdFByb3BzIH0gZnJvbSAnLi4vY2FuYXJpZXMvcHJvcHMvQWRkQ2FuYXJ5VGVzdFByb3BzJztcbmltcG9ydCB7IE9wZXJhdGlvbkF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQgfSBmcm9tICcuLi9kYXNoYm9hcmRzL09wZXJhdGlvbkF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQnO1xuaW1wb3J0IHsgU2VydmljZUF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQgfSBmcm9tICcuLi9kYXNoYm9hcmRzL1NlcnZpY2VBdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkJztcbmltcG9ydCB7IE91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiB9IGZyb20gJy4uL291dGxpZXItZGV0ZWN0aW9uL091dGxpZXJEZXRlY3Rpb25GdW5jdGlvbic7XG5pbXBvcnQgeyBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtIH0gZnJvbSAnLi4vdXRpbGl0aWVzL091dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0nO1xuaW1wb3J0IHsgU3RhY2tXaXRoRHluYW1pY1NvdXJjZSB9IGZyb20gJy4uL3V0aWxpdGllcy9TdGFja1dpdGhEeW5hbWljU291cmNlJztcbmltcG9ydCB7IE9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL09wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL09wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL0lPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyc7XG5pbXBvcnQgeyBMYXRlbmN5T3V0bGllck1ldHJpY0FnZ3JlZ2F0aW9uIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vTGF0ZW5jeU91dGxpZXJNZXRyaWNBZ2dyZWdhdGlvbic7XG5cbi8qKlxuICogQW4gc2VydmljZSB0aGF0IGltcGxlbWVudHMgaXRzIG93biBpbnN0cnVtZW50YXRpb24gdG8gcmVjb3JkXG4gKiBhdmFpbGFiaWxpdHkgYW5kIGxhdGVuY3kgbWV0cmljcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZVxuICogYWxhcm1zLCBydWxlcywgYW5kIGRhc2hib2FyZHMgZnJvbVxuICovXG5leHBvcnQgY2xhc3MgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5XG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSUluc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eSB7XG5cbiAgLyoqXG4gICAqIEtleSByZXByZXNlbnRzIHRoZSBvcGVyYXRpb24gbmFtZSBhbmQgdGhlIHZhbHVlIGlzIHRoZSBzZXRcbiAgICogb2Ygem9uYWwgYWxhcm1zIGFuZCBydWxlcyBmb3IgdGhhdCBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlczoge1xuICAgIFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcztcbiAgfTtcblxuICAvKipcbiAgICogSW5kZXggaW50byB0aGUgZGljdGlvbmFyeSBieSBvcGVyYXRpb24gbmFtZSwgdGhlbiBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZFxuICAgKiB0byBnZXQgdGhlIGFsYXJtcyB0aGF0IGluZGljYXRlIGFuIEFaIHNob3dzIGlzb2xhdGVkIGltcGFjdCBmcm9tIGF2YWlsYWJpbGl0eVxuICAgKiBvciBsYXRlbmN5IGFzIHNlZW4gYnkgZWl0aGVyIHRoZSBzZXJ2ZXItc2lkZSBvciBjYW5hcnkuIFRoZXNlIGFyZSB0aGUgYWxhcm1zXG4gICAqIHlvdSB3b3VsZCB3YW50IHRvIHVzZSB0byB0cmlnZ2VyIGF1dG9tYXRpb24gdG8gZXZhY3VhdGUgYW4gQVouXG4gICAqL1xuICByZWFkb25seSBwZXJPcGVyYXRpb25ab25hbEltcGFjdEFsYXJtczoge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgYW5kIHJ1bGVzIGZvciB0aGUgb3ZlcmFsbCBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlQWxhcm1zOiBJU2VydmljZUFsYXJtc0FuZFJ1bGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgZGFzaGJvYXJkcyBmb3IgZWFjaCBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkRhc2hib2FyZHM/OiBEYXNoYm9hcmRbXTtcblxuICAvKipcbiAgICogVGhlIHNlcnZpY2UgbGV2ZWwgZGFzaGJvYXJkXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlRGFzaGJvYXJkPzogRGFzaGJvYXJkO1xuXG4gIC8qKlxuICAgKiBUaGUgQVogbWFwcGVyIGN1c3RvbSByZXNvdXJjZSB1c2VkIHRvIG1hcCBBWiBJZHMgdG8gTmFtZXMgYW5kIHZpY2UgYSB2ZXJzYVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhek1hcHBlcjogQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcjtcblxuICAvKipcbiAgICogSWYgdGhlIHNlcnZpY2UgaXMgY29uZmlndXJlZCB0byBoYXZlIGNhbmFyeSB0ZXN0cyBjcmVhdGVkLCB0aGlzIHdpbGxcbiAgICogYmUgdGhlIGxvZyBncm91cCB3aGVyZSB0aGUgY2FuYXJ5J3MgbG9ncyBhcmUgc3RvcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGxvZyBncm91cCBpcyBjcmVhdGVkIGlmIHRoZSBjYW5hcnkgaXMgbm90IHJlcXVlc3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeUxvZ0dyb3VwPzogSUxvZ0dyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGNhbGN1bGF0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbj86IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB1cCB0aGUgY2FuYXJ5IHRlc3RpbmcgZnVuY3Rpb24gYW5kIHRlc3RcbiAgICogZXZlbnRzXG4gICAqIEBwYXJhbSBzY29wZSBcbiAgICogQHBhcmFtIHByb3BzIFxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cENhbmFyeVRlc3RzKFxuICAgIHNjb3BlOiBJQ29uc3RydWN0LFxuICAgIHByb3BzOiBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyxcbiAgKSA6IHZvaWQge1xuXG5cbiAgICBsZXQgY2FuYXJ5ID0gbmV3IENhbmFyeUZ1bmN0aW9uKHNjb3BlLCAnQ2FuYXJ5RnVuY3Rpb24nLCB7XG4gICAgICB2cGM6IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS5uZXR3b3JrQ29uZmlndXJhdGlvbj8udnBjLFxuICAgICAgc3VibmV0U2VsZWN0aW9uOlxuICAgICAgIHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS5uZXR3b3JrQ29uZmlndXJhdGlvbj8uc3VibmV0U2VsZWN0aW9uLFxuICAgICAgaHR0cFRpbWVvdXQ6IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS50aW1lb3V0XG4gICAgICAgID8gcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLnRpbWVvdXRcbiAgICAgICAgOiBEdXJhdGlvbi5zZWNvbmRzKDIpLFxuICAgICAgaWdub3JlVGxzRXJyb3JzOiBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEuaWdub3JlVGxzRXJyb3JzXG4gICAgICAgID8gcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLmlnbm9yZVRsc0Vycm9yc1xuICAgICAgICA6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zLmZvckVhY2goKG9wZXJhdGlvbjogSU9wZXJhdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKG9wZXJhdGlvbi5vcHRPdXRPZlNlcnZpY2VDcmVhdGVkQ2FuYXJ5ICE9IHRydWUpIHtcbiAgICAgICAgbGV0IHRlc3RQcm9wczogQWRkQ2FuYXJ5VGVzdFByb3BzID0gb3BlcmF0aW9uLmNhbmFyeVRlc3RQcm9wc1xuICAgICAgICAgID8gb3BlcmF0aW9uLmNhbmFyeVRlc3RQcm9wc1xuICAgICAgICAgIDogKHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIGFzIEFkZENhbmFyeVRlc3RQcm9wcyk7XG5cbiAgICAgICAgbGV0IG5lc3RlZFN0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgJ0NhbmFyeVRlc3QnLFxuICAgICAgICAgIHt9LFxuICAgICAgICApO1xuXG4gICAgICAgIGxldCB0ZXN0ID0gbmV3IENhbmFyeVRlc3QobmVzdGVkU3RhY2ssIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLCB7XG4gICAgICAgICAgZnVuY3Rpb246IGNhbmFyeS5mdW5jdGlvbixcbiAgICAgICAgICByZXF1ZXN0Q291bnQ6IHRlc3RQcm9wcy5yZXF1ZXN0Q291bnQsXG4gICAgICAgICAgcmVnaW9uYWxSZXF1ZXN0Q291bnQ6IHRlc3RQcm9wcy5yZWdpb25hbFJlcXVlc3RDb3VudFxuICAgICAgICAgICAgPyB0ZXN0UHJvcHMucmVnaW9uYWxSZXF1ZXN0Q291bnRcbiAgICAgICAgICAgIDogdGVzdFByb3BzLnJlcXVlc3RDb3VudCxcbiAgICAgICAgICBzY2hlZHVsZTogdGVzdFByb3BzLnNjaGVkdWxlLFxuICAgICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uLFxuICAgICAgICAgIGxvYWRCYWxhbmNlcjogdGVzdFByb3BzLmxvYWRCYWxhbmNlcixcbiAgICAgICAgICBoZWFkZXJzOiB0ZXN0UHJvcHMuaGVhZGVycyxcbiAgICAgICAgICBwb3N0RGF0YTogdGVzdFByb3BzLnBvc3REYXRhLFxuICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzO1xuICAgICAgICBsZXQgZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzOiBJT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHM7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzPy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzKSB7XG4gICAgICAgICAgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY0RpbWVuc2lvbnM6IG5ldyBNZXRyaWNEaW1lbnNpb25zKFxuICAgICAgICAgICAgICAgIHsgT3BlcmF0aW9uOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSB9LFxuICAgICAgICAgICAgICAgICdBWi1JRCcsXG4gICAgICAgICAgICAgICAgJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGFsYXJtU3RhdGlzdGljOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICAgIGZhdWx0QWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmZhdWx0QWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIGZhdWx0TWV0cmljTmFtZXM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmZhdWx0TWV0cmljTmFtZXMsXG4gICAgICAgICAgICAgIGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmdyYXBoZWRGYXVsdFN0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIGdyYXBoZWRTdWNjZXNzU3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgcGVyaW9kOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc0FsYXJtVGhyZXNob2xkLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgdW5pdDogb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscy51bml0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGUpIHtcbiAgICAgICAgICBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiB0ZXN0Lm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgc3VjY2Vzc01ldHJpY05hbWVzOiBbJ1N1Y2Nlc3MnXSxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczogWydGYXVsdCcsICdGYWlsdXJlJ10sXG4gICAgICAgICAgICAgIG1ldHJpY0RpbWVuc2lvbnM6IG5ldyBNZXRyaWNEaW1lbnNpb25zKFxuICAgICAgICAgICAgICAgIHsgT3BlcmF0aW9uOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSB9LFxuICAgICAgICAgICAgICAgICdBWi1JRCcsXG4gICAgICAgICAgICAgICAgJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICksXG5cbiAgICAgICAgICAgICAgYWxhcm1TdGF0aXN0aWM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgZmF1bHRBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmZhdWx0QWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIHBlcmlvZDogb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGUucGVyaW9kLFxuICAgICAgICAgICAgICBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvcHMuc2VydmljZS5kZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2VzcyddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0JywgJ0ZhaWx1cmUnXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHM/LmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzKSB7XG4gICAgICAgICAgZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgYWxhcm1TdGF0aXN0aWM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmZhdWx0TWV0cmljTmFtZXMsXG4gICAgICAgICAgICAgIGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ncmFwaGVkRmF1bHRTdGF0aXN0aWNzLFxuICAgICAgICAgICAgICBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgcGVyaW9kOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAucGVyaW9kLFxuICAgICAgICAgICAgICBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgdW5pdDogb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAudW5pdCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcGVyYXRpb24uc2VydmljZS5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUpIHtcbiAgICAgICAgICBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2Vzc0xhdGVuY3knXSxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczogWydGYXVsdExhdGVuY3knXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcblxuICAgICAgICAgICAgICBhbGFybVN0YXRpc3RpYzpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUuYWxhcm1TdGF0aXN0aWMsXG4gICAgICAgICAgICAgIGRhdGFwb2ludHNUb0FsYXJtOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZS5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgICAgICBwZXJpb2Q6IG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZS5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvcHMuc2VydmljZS5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2Vzc0xhdGVuY3knXSxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczogWydGYXVsdExhdGVuY3knXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5ld09wZXJhdGlvbiA9IG5ldyBPcGVyYXRpb24oe1xuICAgICAgICAgIHNlcnZlclNpZGVBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZlclNpZGVBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIHNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzOlxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBzZXJ2aWNlOiBvcGVyYXRpb24uc2VydmljZSxcbiAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICBwYXRoOiBvcGVyYXRpb24ucGF0aCxcbiAgICAgICAgICBjcml0aWNhbDogb3BlcmF0aW9uLmNyaXRpY2FsLFxuICAgICAgICAgIGh0dHBNZXRob2RzOiBvcGVyYXRpb24uaHR0cE1ldGhvZHMsXG4gICAgICAgICAgY2FuYXJ5TWV0cmljRGV0YWlsczogbmV3IENhbmFyeU1ldHJpY3Moe1xuICAgICAgICAgICAgY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgICBjYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsczogZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcm9wcy5zZXJ2aWNlLm9wZXJhdGlvbnNbaW5kZXhdID0gbmV3T3BlcmF0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIFxuXG4gICAgbGV0IGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gPSBwcm9wcy5hdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtIHx8IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDO1xuICAgIGxldCBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkOiBudW1iZXI7XG5cbiAgICBsZXQgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gPSBwcm9wcy5sYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSB8fCBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLlNUQVRJQztcbiAgICBsZXQgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAgIC8vIFRFTVA6IEZvcmNlIG91dGxpZXIgZGV0ZWN0aW9uIHRvIGJlIHN0YXRpYyB1bnRpbCB0aGUgTGFtYmRhIG91dGxpZXIgZGV0ZWN0aW9uIGZ1bmN0aW9uIGlzIHNjYWxhYmxlXG4gICAgYXZhaWxhYmlsaXR5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSA9IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDO1xuICAgIGxhdGVuY3lPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtID0gT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUM7XG4gICAgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZCA9IHByb3BzLmF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQgfHwgMC43XG4gICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQgPSBwcm9wcy5sYXRlbmN5T3V0bGllclRocmVzaG9sZCB8fCAwLjc7XG5cbiAgICBpZiAocHJvcHMubGF0ZW5jeU91dGxpZXJNZXRyaWNBZ2dyZWdhdGlvbiA9PSBMYXRlbmN5T3V0bGllck1ldHJpY0FnZ3JlZ2F0aW9uLlZBTFVFICYmIGxhdGVuY3lPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtID09IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgY2Fubm90IHVzZSBMYXRlbmN5T3V0bGllck1ldHJpYy5WQUxVRSB3aXRoIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDLlwiKTtcbiAgICB9XG5cbiAgICAvKmlmICghcHJvcHMuYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZCkge1xuICAgICAgc3dpdGNoIChhdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtKSB7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5DSElfU1FVQVJFRDpcbiAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkID0gMC4wNTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLklRUjpcbiAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkID0gMS41O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uTUFEOlxuICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQgPSAzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDOlxuICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQgPSAwLjc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5aX1NDT1JFOlxuICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQgPSAzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQgPSBwcm9wcy5hdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkO1xuICAgIH1cblxuICAgIGlmICghcHJvcHMubGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQpIHtcbiAgICAgIHN3aXRjaCAobGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0pIHtcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLkNISV9TUVVBUkVEOlxuICAgICAgICAgIGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkID0gMC4wNTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLklRUjpcbiAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IDEuNTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLk1BRDpcbiAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IDM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUM6XG4gICAgICAgICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQgPSAwLjc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5aX1NDT1JFOlxuICAgICAgICAgIGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkID0gMztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IHByb3BzLmxhdGVuY3lPdXRsaWVyVGhyZXNob2xkO1xuICAgIH0qL1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBBWiBtYXBwZXIgcmVzb3VyY2UgdGhhdCBhbGwgb2YgdGhlIHJlc291cmNlc1xuICAgIC8vIHdpbGwgc2hhcmVcbiAgICB0aGlzLmF6TWFwcGVyID0gbmV3IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXIodGhpcywgJ0FaTWFwcGVyJywge1xuICAgICAgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzOiBwcm9wcy5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcyxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY2FuYXJ5IHRlc3Rpbmcgc3RhY2sgaWYgdGhlIHVzZXIgcHJvdmlkZWQgaW5wdXRcbiAgICBpZiAocHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMpIHtcbiAgICAgIGxldCBjYW5hcnlTdGFjazogU3RhY2tXaXRoRHluYW1pY1NvdXJjZSA9IG5ldyBTdGFja1dpdGhEeW5hbWljU291cmNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnQ2FuYXJ5JyxcbiAgICAgICAge1xuICAgICAgICAgIGFzc2V0c0J1Y2tldHNQYXJhbWV0ZXJOYW1lOiBwcm9wcy5hc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgIGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU6XG4gICAgICAgICAgICBwcm9wcy5hc3NldHNCdWNrZXRQcmVmaXhQYXJhbWV0ZXJOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXR1cENhbmFyeVRlc3RzKGNhbmFyeVN0YWNrLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBsYW1iZGEgZnVuY3Rpb24gc3RhY2sgaWYgd2UncmUgbm90XG4gICAgLy8gdXNpbmcgc3RhdGljIG91dGxpZXIgZGV0ZWN0aW9uXG4gICAgaWYgKGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gIT0gT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUMgfHwgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gIT0gT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUMpIHtcbiAgICAgIGxldCBvdXRsaWVyRGV0ZWN0aW9uU3RhY2s6IFN0YWNrV2l0aER5bmFtaWNTb3VyY2UgPVxuICAgICAgICBuZXcgU3RhY2tXaXRoRHluYW1pY1NvdXJjZSh0aGlzLCAnT3V0bGllckRldGVjdGlvblN0YWNrJywge1xuICAgICAgICAgIGFzc2V0c0J1Y2tldHNQYXJhbWV0ZXJOYW1lOiBwcm9wcy5hc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgIGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU6XG4gICAgICAgICAgICBwcm9wcy5hc3NldHNCdWNrZXRQcmVmaXhQYXJhbWV0ZXJOYW1lLFxuICAgICAgICB9KTtcbiAgXG4gICAgICB0aGlzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiA9IG5ldyBPdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24oXG4gICAgICAgIG91dGxpZXJEZXRlY3Rpb25TdGFjayxcbiAgICAgICAgJ091dGxpZXJEZXRlY3Rpb25GdW5jdGlvbicsXG4gICAgICAgIHt9LFxuICAgICAgKS5mdW5jdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIHBlciBvcGVyYXRpb24gYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgdGhpcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHByb3BzLnNlcnZpY2Uub3BlcmF0aW9ucy5tYXAoKG9wZXJhdGlvbjogSU9wZXJhdGlvbikgPT4ge1xuICAgICAgICBsZXQgbmVzdGVkU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNOZXN0ZWRTdGFjaycsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICBuZXcgT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMobmVzdGVkU3RhY2ssIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLCB7XG4gICAgICAgICAgICBvcGVyYXRpb246IG9wZXJhdGlvbixcbiAgICAgICAgICAgIGxhdGVuY3lPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZDogbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkOiBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgbG9hZEJhbGFuY2VyOiBwcm9wcy5zZXJ2aWNlLmxvYWRCYWxhbmNlcixcbiAgICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uOiB0aGlzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbixcbiAgICAgICAgICAgIGxhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb246IHByb3BzLmxhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb25cbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLnBlck9wZXJhdGlvblpvbmFsSW1wYWN0QWxhcm1zID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykubWFwKChbb3BlcmF0aW9uTmFtZSwgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNdKSA9PiB7XG4gICAgICAgIHJldHVybiBbb3BlcmF0aW9uTmFtZSwgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuYWdncmVnYXRlWm9uYWxBbGFybXNdO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGxldCBzZXJ2aWNlQWxhcm1zU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgdGhpcyxcbiAgICAgICdTZXJ2aWNlQWxhcm1zTmVzdGVkU3RhY2snLFxuICAgICk7XG5cbiAgICB0aGlzLnNlcnZpY2VBbGFybXMgPSBuZXcgU2VydmljZUFsYXJtc0FuZFJ1bGVzKFxuICAgICAgc2VydmljZUFsYXJtc1N0YWNrLFxuICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZSxcbiAgICAgIHtcbiAgICAgICAgcGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXM6IHRoaXMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMsXG4gICAgICAgIHNlcnZpY2U6IHByb3BzLnNlcnZpY2UsXG4gICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHByb3BzLmNyZWF0ZURhc2hib2FyZHMpIHtcbiAgICAgIHRoaXMub3BlcmF0aW9uRGFzaGJvYXJkcyA9IFtdO1xuXG4gICAgICBwcm9wcy5zZXJ2aWNlLm9wZXJhdGlvbnMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBsZXQgZGFzaGJvYXJkU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgeC5vcGVyYXRpb25OYW1lICsgJ0Rhc2hib2FyZCcsXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vcGVyYXRpb25EYXNoYm9hcmRzIS5wdXNoKFxuICAgICAgICAgIG5ldyBPcGVyYXRpb25BdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkKFxuICAgICAgICAgICAgZGFzaGJvYXJkU3RhY2ssXG4gICAgICAgICAgICB4Lm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzOiB0aGlzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzW3gub3BlcmF0aW9uTmFtZV0sXG4gICAgICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICAgICAgICBpbnRlcnZhbDogcHJvcHMuaW50ZXJ2YWxcbiAgICAgICAgICAgICAgICA/IHByb3BzLmludGVydmFsXG4gICAgICAgICAgICAgICAgOiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5kYXNoYm9hcmQsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGRhc2hib2FyZFN0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VEYXNoYm9hcmQnLFxuICAgICAgICB7fSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc2VydmljZURhc2hib2FyZCA9IG5ldyBTZXJ2aWNlQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZChcbiAgICAgICAgZGFzaGJvYXJkU3RhY2ssXG4gICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAge1xuICAgICAgICAgIGludGVydmFsOiBwcm9wcy5pbnRlcnZhbCA/IHByb3BzLmludGVydmFsIDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgICAgc2VydmljZUFsYXJtc0FuZFJ1bGVzOiB0aGlzLnNlcnZpY2VBbGFybXMsXG4gICAgICAgICAgc2VydmljZTogcHJvcHMuc2VydmljZSxcbiAgICAgICAgICBhek1hcHBlcjogdGhpcy5hek1hcHBlcixcbiAgICAgICAgICBvcGVyYXRpb25zRGFzaGJvYXJkOiB0aGlzLm9wZXJhdGlvbkRhc2hib2FyZHNcbiAgICAgICAgfSxcbiAgICAgICkuZGFzaGJvYXJkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -30,5 +30,5 @@ class Operation {
30
30
  }
31
31
  exports.Operation = Operation;
32
32
  _a = JSII_RTTI_SYMBOL_1;
33
- Operation[_a] = { fqn: "@cdklabs/multi-az-observability.Operation", version: "0.0.1-alpha.41" };
33
+ Operation[_a] = { fqn: "@cdklabs/multi-az-observability.Operation", version: "0.0.1-alpha.43" };
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL09wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFBOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBOEVwQixZQUFZLEtBQXFCO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxtQ0FBbUM7WUFDdEMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDO1FBQzVDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxLQUFLLENBQUMsOEJBQThCLENBQUM7UUFDM0UsSUFBSSxDQUFDLHVDQUF1QztZQUMxQyxLQUFLLENBQUMsdUNBQXVDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxxQ0FBcUM7WUFDeEMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQ0FBZ0M7WUFDbkMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUMsNEJBQTRCLENBQUM7SUFDekUsQ0FBQzs7QUFqR0gsOEJBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUNhbmFyeU1ldHJpY3MgfSBmcm9tICcuL0lDYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyB9IGZyb20gJy4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuL0lPcGVyYXRpb24nO1xuaW1wb3J0IHsgSVNlcnZpY2UgfSBmcm9tICcuL0lTZXJ2aWNlJztcbmltcG9ydCB7IE9wZXJhdGlvblByb3BzIH0gZnJvbSAnLi9wcm9wcy9PcGVyYXRpb25Qcm9wcyc7XG5pbXBvcnQgeyBBZGRDYW5hcnlUZXN0UHJvcHMgfSBmcm9tICcuLi9jYW5hcmllcy9wcm9wcy9BZGRDYW5hcnlUZXN0UHJvcHMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL0lPcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyB9IGZyb20gJy4vSU9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElDYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlIH0gZnJvbSAnLi9JQ2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZSc7XG5pbXBvcnQgeyBJQ2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUgfSBmcm9tICcuL0lDYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZSc7XG5cbi8qKlxuICogQSBzaW5nbGUgb3BlcmF0aW9uIHRoYXQgaXMgcGFydCBvZiBhIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbiBpbXBsZW1lbnRzIElPcGVyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlIG9wZXJhdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2U6IElTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBUaGUgSFRUUCBwYXRoIGZvciB0aGUgb3BlcmF0aW9uIGZvciBjYW5hcmllc1xuICAgKiAgdG8gcnVuIGFnYWluc3QsIHNvbWV0aGluZyBsaWtlIFwiL3Byb2R1Y3RzL2xpc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBsYXRlbmN5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscztcblxuICAvKipcbiAgICogT3B0aW9uYWwgbWV0cmljIGRldGFpbHMgaWYgdGhlIHNlcnZpY2UgaGFzIGEgY2FuYXJ5XG4gICAqL1xuICByZWFkb25seSBjYW5hcnlNZXRyaWNEZXRhaWxzPzogSUNhbmFyeU1ldHJpY3M7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSB2YWx1ZXMgZm9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHMgc28geW91IGNhblxuICAgKiB1c2UgdmFsdWVzIG90aGVyIHRoYW4gdGhlIHNlcnZpY2UgZGVmYXVsdHMgdG8gZGVmaW5lIHRoZSB0aHJlc2hvbGRzIGZvclxuICAgKiBhdmFpbGFiaWxpdHkuXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlPzogSUNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSB2YWx1ZXMgZm9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHMgc28geW91IGNhblxuICAgKiB1c2UgdmFsdWVzIG90aGVyIHRoYW4gdGhlIHNlcnZpY2UgZGVmYXVsdHMgdG8gZGVmaW5lIHRoZSB0aHJlc2hvbGRzIGZvclxuICAgKiBsYXRlbmN5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGU/OiBJQ2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBkZXRhaWxzIGZvciBjb250cmlidXRvciBpbnNpZ2h0cyBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzPzogSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhpcyBpcyBhIGNyaXRpY2FsIG9wZXJhdGlvbiBmb3IgdGhlIHNlcnZpY2VcbiAgICogYW5kIHdpbGwgYmUgaW5jbHVkZWQgaW4gc2VydmljZSBsZXZlbCBtZXRyaWNzIGFuZFxuICAgKiBkYXNoYm9hcmRzXG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGh0dHAgbWV0aG9kcyBzdXBwb3J0ZWQgYnkgdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE1ldGhvZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZiB0aGV5IGhhdmUgYmVlbiBhZGRlZCwgdGhlIHByb3BlcnRpZXMgZm9yXG4gICAqIGNyZWF0aW5nIG5ldyBjYW5hcnkgdGVzdHMgb24gdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RQcm9wcz86IEFkZENhbmFyeVRlc3RQcm9wcztcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgaWYgeW91IGhhdmUgZGVmaW5lZCBDYW5hcnlUZXN0UHJvcHMgZm9yIHlvdXJcbiAgICogc2VydmljZSwgd2hpY2ggYXBwbGllcyB0byBhbGwgb3BlcmF0aW9ucywgYnV0IHlvdSB3YW50IHRvXG4gICAqIG9wdCBvdXQgb2YgY3JlYXRpbmcgdGhlIGNhbmFyeSB0ZXN0IGZvciB0aGlzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgb3BlcmF0aW9uIGlzIG5vdCBvcHRlZCBvdXRcbiAgICovXG4gIHJlYWRvbmx5IG9wdE91dE9mU2VydmljZUNyZWF0ZWRDYW5hcnk/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBPcGVyYXRpb25Qcm9wcykge1xuICAgIHRoaXMuY2FuYXJ5TWV0cmljRGV0YWlscyA9IHByb3BzLmNhbmFyeU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5odHRwTWV0aG9kcyA9IHByb3BzLmh0dHBNZXRob2RzO1xuICAgIHRoaXMuY3JpdGljYWwgPSBwcm9wcy5jcml0aWNhbDtcbiAgICB0aGlzLm9wZXJhdGlvbk5hbWUgPSBwcm9wcy5vcGVyYXRpb25OYW1lO1xuICAgIHRoaXMucGF0aCA9IHByb3BzLnBhdGg7XG4gICAgdGhpcy5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyA9XG4gICAgICBwcm9wcy5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscztcbiAgICB0aGlzLnNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlscyA9IHByb3BzLnNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlscztcbiAgICB0aGlzLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyA9XG4gICAgICBwcm9wcy5zZXJ2ZXJTaWRlQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM7XG4gICAgdGhpcy5zZXJ2aWNlID0gcHJvcHMuc2VydmljZTtcbiAgICB0aGlzLmNhbmFyeVRlc3RQcm9wcyA9IHByb3BzLmNhbmFyeVRlc3RQcm9wcztcbiAgICB0aGlzLm9wdE91dE9mU2VydmljZUNyZWF0ZWRDYW5hcnkgPSBwcm9wcy5vcHRPdXRPZlNlcnZpY2VDcmVhdGVkQ2FuYXJ5O1xuICAgIHRoaXMuY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZSA9XG4gICAgICBwcm9wcy5jYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlO1xuICAgIHRoaXMuY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUgPVxuICAgICAgcHJvcHMuY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGU7XG4gICAgdGhpcy5vcHRPdXRPZlNlcnZpY2VDcmVhdGVkQ2FuYXJ5ID0gcHJvcHMub3B0T3V0T2ZTZXJ2aWNlQ3JlYXRlZENhbmFyeTtcbiAgfVxufVxuIl19
@@ -20,5 +20,5 @@ class OperationAvailabilityMetricDetails extends OperationMetricDetails_1.Operat
20
20
  }
21
21
  exports.OperationAvailabilityMetricDetails = OperationAvailabilityMetricDetails;
22
22
  _a = JSII_RTTI_SYMBOL_1;
23
- OperationAvailabilityMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationAvailabilityMetricDetails", version: "0.0.1-alpha.41" };
23
+ OperationAvailabilityMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationAvailabilityMetricDetails", version: "0.0.1-alpha.43" };
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9PcGVyYXRpb25BdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEscUVBQWtFO0FBR2xFOztHQUVHO0FBQ0gsTUFBYSxrQ0FBbUMsU0FBUSwrQ0FBc0I7SUFnQjFFLFlBQ0ksS0FBOEMsRUFDOUMsWUFBK0M7UUFFL0MsS0FBSyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQjtZQUN0RCxDQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFtQjtZQUMzQixDQUFDLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1FBRW5DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCO1lBQ3hELENBQUMsQ0FBQyxLQUFLLENBQUMscUJBQXFCO1lBQzdCLENBQUMsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7SUFDdkMsQ0FBQzs7QUE3QkwsZ0ZBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgfSBmcm9tIFwiLi9JT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1wiO1xuaW1wb3J0IHsgSVNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzIH0gZnJvbSBcIi4vSVNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSBcIi4vT3BlcmF0aW9uTWV0cmljRGV0YWlsc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSBcIi4vcHJvcHMvT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzXCI7XG5cbi8qKlxuICogQXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzIGZvciBhbiBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgZXh0ZW5kcyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzIGltcGxlbWVudHMgSU9wZXJhdGlvbkF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMge1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBhdmFpbGFiaWxpdHkgc3VjY2VzcyBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBtZWFzdXJpbmdcbiAgICAgKiBzdWNjZXNzIHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDk5LCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICAgKiBpZiBzdWNjZXNzIGRyb3BzIGJlbG93IDk5JS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6IG51bWJlcjtcbiAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGF2YWlsYWJpbGl0eSBmYXVsdCBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBtZWFzdXJpbmdcbiAgICAgKiBmYXVsdCByYXRlLCB0aGUgdGhyZXNob2xkIG1heSBiZSAxLCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICAgKiBpZiB0aGUgZmF1bHQgcmF0ZSBnb2VzIGFib3ZlIDElLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGZhdWx0QWxhcm1UaHJlc2hvbGQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm9wczogT3BlcmF0aW9uQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzLFxuICAgICAgICBkZWZhdWx0UHJvcHM6IElTZXJ2aWNlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIocHJvcHMsIGRlZmF1bHRQcm9wcyk7XG5cbiAgICAgICAgdGhpcy5mYXVsdEFsYXJtVGhyZXNob2xkID0gcHJvcHMuZmF1bHRBbGFybVRocmVzaG9sZFxuICAgICAgPyBwcm9wcy5mYXVsdEFsYXJtVGhyZXNob2xkXG4gICAgICA6IGRlZmF1bHRQcm9wcy5mYXVsdEFsYXJtVGhyZXNob2xkO1xuXG4gICAgICB0aGlzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCA9IHByb3BzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZFxuICAgICAgPyBwcm9wcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGRcbiAgICAgIDogZGVmYXVsdFByb3BzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZDtcbiAgICB9XG59Il19
@@ -17,5 +17,5 @@ class OperationLatencyMetricDetails extends OperationMetricDetails_1.OperationMe
17
17
  }
18
18
  exports.OperationLatencyMetricDetails = OperationLatencyMetricDetails;
19
19
  _a = JSII_RTTI_SYMBOL_1;
20
- OperationLatencyMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationLatencyMetricDetails", version: "0.0.1-alpha.41" };
20
+ OperationLatencyMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationLatencyMetricDetails", version: "0.0.1-alpha.43" };
21
21
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxRUFBa0U7QUFHbEU7O0dBRUc7QUFDSCxNQUFhLDZCQUE4QixTQUFRLCtDQUFzQjtJQVFyRSxZQUNJLEtBQXlDLEVBQ3pDLFlBQTBDO1FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUI7WUFDeEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxxQkFBcUI7WUFDN0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztJQUN2QyxDQUFDOztBQWpCTCxzRUFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzIH0gZnJvbSBcIi4vSU9wZXJhdGlvbkxhdGVuY3lNZXRyaWNEZXRhaWxzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlsc1Byb3BzIH0gZnJvbSBcIi4vcHJvcHMvT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHNQcm9wc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gXCIuL09wZXJhdGlvbk1ldHJpY0RldGFpbHNcIjtcbmltcG9ydCB7IElTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHMgfSBmcm9tIFwiLi9JU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzXCI7XG5cbi8qKlxuICogTGF0ZW5jeSBtZXRyaWMgZGV0YWlscyBmb3IgYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25MYXRlbmN5TWV0cmljRGV0YWlscyBleHRlbmRzIE9wZXJhdGlvbk1ldHJpY0RldGFpbHMgaW1wbGVtZW50cyBJT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHMge1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBsYXRlbmN5IHN1Y2Nlc3MgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgc3VjY2Vzc1xuICAgICAqIGxhdGVuY3kgZXhjZWVkcyA1MDAgbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3VjY2Vzc0FsYXJtVGhyZXNob2xkOiBEdXJhdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm9wczogT3BlcmF0aW9uTGF0ZW5jeU1ldHJpY0RldGFpbHNQcm9wcyxcbiAgICAgICAgZGVmYXVsdFByb3BzOiBJU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICkge1xuICAgICAgICBzdXBlcihwcm9wcywgZGVmYXVsdFByb3BzKTtcblxuICAgICAgdGhpcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGQgPSBwcm9wcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGRcbiAgICAgID8gcHJvcHMuc3VjY2Vzc0FsYXJtVGhyZXNob2xkXG4gICAgICA6IGRlZmF1bHRQcm9wcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGQ7XG4gICAgfVxufSJdfQ==
@@ -40,5 +40,5 @@ class OperationMetricDetails {
40
40
  }
41
41
  exports.OperationMetricDetails = OperationMetricDetails;
42
42
  _a = JSII_RTTI_SYMBOL_1;
43
- OperationMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationMetricDetails", version: "0.0.1-alpha.41" };
43
+ OperationMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationMetricDetails", version: "0.0.1-alpha.43" };
44
44
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTWV0cmljRGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9PcGVyYXRpb25NZXRyaWNEZXRhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0E7O0dBRUc7QUFDSCxNQUFzQixzQkFBc0I7SUF1RTFDLFlBQ0UsS0FBa0MsRUFDbEMsWUFBbUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYztZQUN4QyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFDdEIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUI7WUFDOUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7WUFDekIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQjtZQUM5QyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtZQUN6QixDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCO1lBQzVDLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hCLENBQUMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7UUFDbEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxzQkFBc0I7WUFDeEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxzQkFBc0I7WUFDOUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztRQUN4QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QjtZQUM1RCxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUF3QjtZQUNoQyxDQUFDLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDO1FBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWU7WUFDMUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlO1lBQ3ZCLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0I7WUFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7WUFDMUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDOztBQXZHSCx3REF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFVuaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4vSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSVNlcnZpY2VNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JU2VydmljZU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vcHJvcHMvTWV0cmljRGltZW5zaW9ucyc7XG5pbXBvcnQgeyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzUHJvcHMgfSBmcm9tICcuL3Byb3BzL09wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcyc7XG5cbi8qKlxuICogR2VuZXJpYyBtZXRyaWMgZGV0YWlscyBmb3IgYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzIGltcGxlbWVudHMgSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGVzZSBtZXRyaWMgZGV0YWlscyBhcmUgZm9yXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZFdhdGNoIG1ldHJpYyBuYW1lc3BhY2UgZm9yIHRoZXNlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY05hbWVzcGFjZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2Ygc3VjY2VzcyBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXRyaWNOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lcyBvZiBmYXVsdCBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0TWV0cmljTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGlzdGljIHVzZWQgZm9yIGFsYXJtcywgZm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzIHRoaXMgc2hvdWxkXG4gICAqIGJlIFwiU3VtXCIsIGZvciBsYXRlbmN5IG1ldHJpY3MgaXQgY291bGQgc29tZXRoaW5nIGxpa2UgXCJwOTlcIiBvciBcInA5OS45XCJcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtU3RhdGlzdGljOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBzdWNjZXNzZXMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzLCB0aGlzIHdpbGwgYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCB3aWxsIGJlIGp1c3QgXCJwOTlcIlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBmYXVsdHMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzLCB0aGlzIHdpbGwgYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCB3aWxsIGJlIGp1c3QgXCJwOTlcIlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhcGhlZEZhdWx0U3RhdGlzdGljcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pdCB1c2VkIGZvciB0aGVzZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSB1bml0OiBVbml0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgcGVyaW9kOiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBldmFsdWF0aW9uIHBlcmlvZHMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbHRpeSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF0YXBvaW50cyB0byBhbGFybSBvbiBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsaXR5IGFsYXJtc1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YXBvaW50c1RvQWxhcm06IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1ldHJpYyBkaW1lbnNpb25zIGZvciB0aGlzIG9wZXJhdGlvbiwgbXVzdCBiZSBpbXBsZW1lbnRlZFxuICAgKiBhcyBhIGNvbmNyZXRlIGNsYXNzIGJ5IHRoZSB1c2VyXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNEaW1lbnNpb25zOiBNZXRyaWNEaW1lbnNpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3BzOiBPcGVyYXRpb25NZXRyaWNEZXRhaWxzUHJvcHMsXG4gICAgZGVmYXVsdFByb3BzOiBJU2VydmljZU1ldHJpY0RldGFpbHMsXG4gICkge1xuICAgIHRoaXMuYWxhcm1TdGF0aXN0aWMgPSBwcm9wcy5hbGFybVN0YXRpc3RpY1xuICAgICAgPyBwcm9wcy5hbGFybVN0YXRpc3RpY1xuICAgICAgOiBkZWZhdWx0UHJvcHMuYWxhcm1TdGF0aXN0aWM7XG4gICAgdGhpcy5kYXRhcG9pbnRzVG9BbGFybSA9IHByb3BzLmRhdGFwb2ludHNUb0FsYXJtXG4gICAgICA/IHByb3BzLmRhdGFwb2ludHNUb0FsYXJtXG4gICAgICA6IGRlZmF1bHRQcm9wcy5kYXRhcG9pbnRzVG9BbGFybTtcbiAgICB0aGlzLmV2YWx1YXRpb25QZXJpb2RzID0gcHJvcHMuZXZhbHVhdGlvblBlcmlvZHNcbiAgICAgID8gcHJvcHMuZXZhbHVhdGlvblBlcmlvZHNcbiAgICAgIDogZGVmYXVsdFByb3BzLmV2YWx1YXRpb25QZXJpb2RzOyAgICBcbiAgICB0aGlzLmZhdWx0TWV0cmljTmFtZXMgPSBwcm9wcy5mYXVsdE1ldHJpY05hbWVzXG4gICAgICA/IHByb3BzLmZhdWx0TWV0cmljTmFtZXNcbiAgICAgIDogZGVmYXVsdFByb3BzLmZhdWx0TWV0cmljTmFtZXM7XG4gICAgdGhpcy5ncmFwaGVkRmF1bHRTdGF0aXN0aWNzID0gcHJvcHMuZ3JhcGhlZEZhdWx0U3RhdGlzdGljc1xuICAgICAgPyBwcm9wcy5ncmFwaGVkRmF1bHRTdGF0aXN0aWNzXG4gICAgICA6IGRlZmF1bHRQcm9wcy5ncmFwaGVkRmF1bHRTdGF0aXN0aWNzO1xuICAgIHRoaXMuZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzID0gcHJvcHMuZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzXG4gICAgICA/IHByb3BzLmdyYXBoZWRTdWNjZXNzU3RhdGlzdGljc1xuICAgICAgOiBkZWZhdWx0UHJvcHMuZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzO1xuICAgIHRoaXMubWV0cmljTmFtZXNwYWNlID0gcHJvcHMubWV0cmljTmFtZXNwYWNlXG4gICAgICA/IHByb3BzLm1ldHJpY05hbWVzcGFjZVxuICAgICAgOiBkZWZhdWx0UHJvcHMubWV0cmljTmFtZXNwYWNlO1xuICAgIHRoaXMub3BlcmF0aW9uTmFtZSA9IHByb3BzLm9wZXJhdGlvbk5hbWU7XG4gICAgdGhpcy5wZXJpb2QgPSBwcm9wcy5wZXJpb2QgPyBwcm9wcy5wZXJpb2QgOiBkZWZhdWx0UHJvcHMucGVyaW9kO1xuICAgIHRoaXMuc3VjY2Vzc01ldHJpY05hbWVzID0gcHJvcHMuc3VjY2Vzc01ldHJpY05hbWVzXG4gICAgICA/IHByb3BzLnN1Y2Nlc3NNZXRyaWNOYW1lc1xuICAgICAgOiBkZWZhdWx0UHJvcHMuc3VjY2Vzc01ldHJpY05hbWVzO1xuICAgIHRoaXMudW5pdCA9IHByb3BzLnVuaXQgPyBwcm9wcy51bml0IDogZGVmYXVsdFByb3BzLnVuaXQ7XG4gICAgdGhpcy5tZXRyaWNEaW1lbnNpb25zID0gcHJvcHMubWV0cmljRGltZW5zaW9ucztcbiAgfVxufVxuIl19
@@ -32,5 +32,5 @@ class Service {
32
32
  }
33
33
  exports.Service = Service;
34
34
  _a = JSII_RTTI_SYMBOL_1;
35
- Service[_a] = { fqn: "@cdklabs/multi-az-observability.Service", version: "0.0.1-alpha.41" };
35
+ Service[_a] = { fqn: "@cdklabs/multi-az-observability.Service", version: "0.0.1-alpha.43" };
36
36
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBWUE7O0dBRUc7QUFDSCxNQUFhLE9BQU87SUF5RWxCLFlBQVksS0FBbUI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdDQUFnQztZQUNuQyxLQUFLLENBQUMsZ0NBQWdDLENBQUM7UUFDekMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQztRQUNyRSxJQUFJLENBQUMsb0NBQW9DO1lBQ3ZDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFNBQXFCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O0FBL0ZILDBCQWdHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUxvYWRCYWxhbmNlclYyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIH0gZnJvbSAnLi9JQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4vSU9wZXJhdGlvbic7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4vSVNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVByb3BzIH0gZnJvbSAnLi9wcm9wcy9TZXJ2aWNlUHJvcHMnO1xuaW1wb3J0IHsgQWRkQ2FuYXJ5VGVzdFByb3BzIH0gZnJvbSAnLi4vY2FuYXJpZXMvcHJvcHMvQWRkQ2FuYXJ5VGVzdFByb3BzJztcbmltcG9ydCB7IElTZXJ2aWNlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyB9IGZyb20gJy4vSVNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IElTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHMgfSBmcm9tICcuL0lTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHMnO1xuXG4vKipcbiAqIFRoZSByZXByZXNlbnRhdGlvbiBvZiBhIHNlcnZpY2UgY29tcG9zZWQgb2YgbXVsdGlwbGUgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgU2VydmljZSBpbXBsZW1lbnRzIElTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHlvdXIgc2VydmljZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGJhc2UgZW5kcG9pbnQgZm9yIHRoaXMgc2VydmljZSwgbGlrZSBcImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tXCIuIE9wZXJhdGlvbiBwYXRocyB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoaXMgZW5kcG9pbnQgZm9yIGNhbmFyeSB0ZXN0aW5nIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZmF1bHQgY291bnQgdGhyZXNob2xkIHRoYXQgaW5kaWNhdGVzIHRoZSBzZXJ2aWNlIGlzIHVuaGVhbHRoeS4gVGhpcyBpcyBhbiBhYnNvbHV0ZSB2YWx1ZSBvZiBmYXVsdHNcbiAgICogYmVpbmcgcHJvZHVjZWQgYnkgYWxsIGNyaXRpY2FsIG9wZXJhdGlvbnMgaW4gYWdncmVnYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRDb3VudFRocmVzaG9sZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGhlIEF2YWlsYWJpbGl0eSBab25lIG5hbWVzIHVzZWQgYnkgdGhpcyBhcHBsaWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCBmb3Igd2hpY2ggbWV0cmljcyBmb3IgdGhlIHNlcnZpY2Ugc2hvdWxkIGJlIGFnZ3JlZ2F0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb25zIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25zOiBJT3BlcmF0aW9uW107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkIGJhbGFuY2VyIHRoaXMgc2VydmljZSBzaXRzIGJlaGluZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGxvYWQgYmFsYW5jZXIgbWV0cmljcyB3aWxsIGJlIGluY2x1ZGVkIGluXG4gICAqIGRhc2hib2FyZHMgYW5kIGl0cyBBUk4gd2lsbCBub3QgYmUgYWRkZWQgdG8gdG9wIGxldmVsIEFaXG4gICAqIGFsYXJtIGRlc2NyaXB0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlcj86IElMb2FkQmFsYW5jZXJWMjtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZXNlIHNldHRpbmdzIGlmIHlvdSB3YW50IHRvIGF1dG9tYXRpY2FsbHkgYWRkIGNhbmFyeVxuICAgKiB0ZXN0cyB0byB5b3VyIG9wZXJhdGlvbnMuIE9wZXJhdGlvbnMgY2FuIGluZGl2aWR1YWxseSBvcHQgb3V0XG4gICAqIG9mIGNhbmFyeSB0ZXN0IGNyZWF0aW9uIGlmIHlvdSBkZWZpbmUgdGhpcyBzZXR0aW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpYyBjYW5hcnkgdGVzdHMgd2lsbCBub3QgYmUgY3JlYXRlZCBmb3JcbiAgICogb3BlcmF0aW9ucyBpbiB0aGlzIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlUZXN0UHJvcHM/OiBBZGRDYW5hcnlUZXN0UHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHNldHRpbmdzIHRoYXQgYXJlIHVzZWQgZm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzXG4gICAqIGZvciBhbGwgb3BlcmF0aW9ucyB1bmxlc3Mgc3BlY2lmaWNhbGx5IG92ZXJyaWRkZW4gaW4gYW5cbiAgICogb3BlcmF0aW9uIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSVNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBzZXR0aW5ncyB0aGF0IGFyZSB1c2VkIGZvciBhdmFpbGFiaWxpdHkgbWV0cmljc1xuICAgKiBmb3IgYWxsIG9wZXJhdGlvbnMgdW5sZXNzIHNwZWNpZmljYWxseSBvdmVycmlkZGVuIGluIGFuXG4gICAqIG9wZXJhdGlvbiBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzOiBJU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBzZXR0aW5ncyB0aGF0IGFyZSB1c2VkIGZvciBjb250cmlidXRvciBpbnNpZ2h0XG4gICAqIHJ1bGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlZmF1bHRzIGFyZSBwcm92aWRlZCBhbmQgbXVzdCBiZSBzcGVjaWZpZWQgcGVyIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzPzogSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTZXJ2aWNlUHJvcHMpIHtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gcHJvcHMuc2VydmljZU5hbWU7XG4gICAgdGhpcy5hdmFpbGFiaWxpdHlab25lTmFtZXMgPSBwcm9wcy5hdmFpbGFiaWxpdHlab25lTmFtZXM7XG4gICAgdGhpcy5iYXNlVXJsID0gcHJvcHMuYmFzZVVybDtcbiAgICB0aGlzLmZhdWx0Q291bnRUaHJlc2hvbGQgPSBwcm9wcy5mYXVsdENvdW50VGhyZXNob2xkO1xuICAgIHRoaXMub3BlcmF0aW9ucyA9IFtdO1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyID0gcHJvcHMubG9hZEJhbGFuY2VyO1xuICAgIHRoaXMuY2FuYXJ5VGVzdFByb3BzID0gcHJvcHMuY2FuYXJ5VGVzdFByb3BzO1xuICAgIHRoaXMuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPVxuICAgICAgcHJvcHMuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBwcm9wcy5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5kZWZhdWx0Q29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgPVxuICAgICAgcHJvcHMuZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gb3BlcmF0aW9uIHRvIHRoaXMgc2VydmljZSBhbmQgc2V0cyB0aGUgb3BlcmF0aW9uJ3NcbiAgICogc2VydmljZSBwcm9wZXJ0eVxuICAgKi9cbiAgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogSU9wZXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMub3BlcmF0aW9ucy5wdXNoKG9wZXJhdGlvbik7XG4gIH1cbn1cbiJdfQ==
@@ -16,5 +16,5 @@ class ServiceAvailabilityMetricDetails extends ServiceMetricDetails_1.ServiceMet
16
16
  }
17
17
  exports.ServiceAvailabilityMetricDetails = ServiceAvailabilityMetricDetails;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ServiceAvailabilityMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ServiceAvailabilityMetricDetails", version: "0.0.1-alpha.41" };
19
+ ServiceAvailabilityMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ServiceAvailabilityMetricDetails", version: "0.0.1-alpha.43" };
20
20
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxpRUFBOEQ7QUFFOUQ7O0dBRUc7QUFDSCxNQUFhLGdDQUFpQyxTQUFRLDJDQUFvQjtJQWV4RSxZQUFZLEtBQTRDO1FBQ3RELEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztJQUMzRCxDQUFDOztBQW5CSCw0RUFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgfSBmcm9tIFwiLi9JU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcIjtcbmltcG9ydCB7IFNlcnZpY2VBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzUHJvcHMgfSBmcm9tIFwiLi9wcm9wcy9TZXJ2aWNlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzXCI7XG5pbXBvcnQgeyBTZXJ2aWNlTWV0cmljRGV0YWlscyB9IGZyb20gXCIuL1NlcnZpY2VNZXRyaWNEZXRhaWxzXCI7XG5cbi8qKlxuICogRGVmYXVsdCBhdmFpbGFiaWxpdHkgbWV0cmljIGRldGFpbHMgZm9yIGEgc2VydmljZVxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgZXh0ZW5kcyBTZXJ2aWNlTWV0cmljRGV0YWlscyBpbXBsZW1lbnRzIElTZXJ2aWNlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyB7XG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciBhbGFybXMgYXNzb2NpYXRlZCB3aXRoIGF2YWlsYWJpbGl0eSBzdWNjZXNzIG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBzdWNjZXNzIHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDk5LCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgc3VjY2VzcyBkcm9wcyBiZWxvdyA5OSUuXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBhdmFpbGFiaWxpdHkgZmF1bHQgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIGZhdWx0IHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDEsIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiB0aGUgZmF1bHQgcmF0ZSBnb2VzIGFib3ZlIDElLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRBbGFybVRocmVzaG9sZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTZXJ2aWNlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1Byb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuZmF1bHRBbGFybVRocmVzaG9sZCA9IHByb3BzLmZhdWx0QWxhcm1UaHJlc2hvbGQ7XG4gICAgdGhpcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGQgPSBwcm9wcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGQ7XG4gIH1cbn0iXX0=
@@ -15,5 +15,5 @@ class ServiceLatencyMetricDetails extends ServiceMetricDetails_1.ServiceMetricDe
15
15
  }
16
16
  exports.ServiceLatencyMetricDetails = ServiceLatencyMetricDetails;
17
17
  _a = JSII_RTTI_SYMBOL_1;
18
- ServiceLatencyMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ServiceLatencyMetricDetails", version: "0.0.1-alpha.41" };
18
+ ServiceLatencyMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ServiceLatencyMetricDetails", version: "0.0.1-alpha.43" };
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL1NlcnZpY2VMYXRlbmN5TWV0cmljRGV0YWlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLGlFQUE4RDtBQUU5RDs7R0FFRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsMkNBQW9CO0lBTy9ELFlBQVksS0FBdUM7UUFDakQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztJQUMzRCxDQUFDOztBQVZQLGtFQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHMgfSBmcm9tIFwiLi9JU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzXCI7XG5pbXBvcnQgeyBTZXJ2aWNlTGF0ZW5jeU1ldHJpY0RldGFpbHNQcm9wcyB9IGZyb20gXCIuL3Byb3BzL1NlcnZpY2VMYXRlbmN5TWV0cmljRGV0YWlsc1Byb3BzXCI7XG5pbXBvcnQgeyBTZXJ2aWNlTWV0cmljRGV0YWlscyB9IGZyb20gXCIuL1NlcnZpY2VNZXRyaWNEZXRhaWxzXCI7XG5cbi8qKlxuICogRGVmYXVsdCBsYXRlbmN5IG1ldHJpYyBkZXRhaWxzIGZvciBhIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VMYXRlbmN5TWV0cmljRGV0YWlscyBleHRlbmRzIFNlcnZpY2VNZXRyaWNEZXRhaWxzIGltcGxlbWVudHMgSVNlcnZpY2VMYXRlbmN5TWV0cmljRGV0YWlscyB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSB0aHJlc2hvbGQgZm9yIGFsYXJtcyBhc3NvY2lhdGVkIHdpdGggbGF0ZW5jeSBzdWNjZXNzIG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIHN1Y2Nlc3NcbiAgICAgICAqIGxhdGVuY3kgZXhjZWVkcyA1MDAgbWlsbGlzZWNvbmRzXG4gICAgICAgKi9cbiAgICAgIHJlYWRvbmx5IHN1Y2Nlc3NBbGFybVRocmVzaG9sZDogRHVyYXRpb247XG4gICAgXG4gICAgICBjb25zdHJ1Y3Rvcihwcm9wczogU2VydmljZUxhdGVuY3lNZXRyaWNEZXRhaWxzUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCA9IHByb3BzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZDtcbiAgICAgIH1cbn0iXX0=
@@ -22,5 +22,5 @@ class ServiceMetricDetails {
22
22
  }
23
23
  exports.ServiceMetricDetails = ServiceMetricDetails;
24
24
  _a = JSII_RTTI_SYMBOL_1;
25
- ServiceMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ServiceMetricDetails", version: "0.0.1-alpha.41" };
25
+ ServiceMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ServiceMetricDetails", version: "0.0.1-alpha.43" };
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZU1ldHJpY0RldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvU2VydmljZU1ldHJpY0RldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQTs7R0FFRztBQUNILE1BQXNCLG9CQUFvQjtJQTREeEMsWUFBWSxLQUFnQztRQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztRQUMzRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixDQUFDO1FBQy9ELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQzs7QUF2RUgsb0RBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBVbml0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSVNlcnZpY2VNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JU2VydmljZU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgU2VydmljZU1ldHJpY0RldGFpbHNQcm9wcyB9IGZyb20gJy4vcHJvcHMvU2VydmljZU1ldHJpY0RldGFpbHNQcm9wcyc7XG5cbi8qKlxuICogRGVmYXVsdCBtZXRyaWMgZGV0YWlscyBmb3IgYSBzZXJ2aWNlXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZXJ2aWNlTWV0cmljRGV0YWlscyBpbXBsZW1lbnRzIElTZXJ2aWNlTWV0cmljRGV0YWlscyB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRXYXRjaCBtZXRyaWMgbmFtZXNwYWNlIGZvciB0aGVzZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNOYW1lc3BhY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHN1Y2Nlc3MgaW5kaWNhdGluZyBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzTWV0cmljTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2YgZmF1bHQgaW5kaWNhdGluZyBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSBmYXVsdE1ldHJpY05hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRpc3RpYyB1c2VkIGZvciBhbGFybXMsIGZvciBhdmFpbGFiaWxpdHkgbWV0cmljcyB0aGlzIHNob3VsZFxuICAgKiBiZSBcIlN1bVwiLCBmb3IgbGF0ZW5jeSBtZXRyaWNzIGl0IGNvdWxkIHNvbWV0aGluZyBsaWtlIFwicDk5XCIgb3IgXCJwOTkuOVwiXG4gICAqL1xuICByZWFkb25seSBhbGFybVN0YXRpc3RpYzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGlzdGljcyBmb3Igc3VjY2Vzc2VzIHlvdSB3YW50IHRvIGFwcGVhciBvbiBkYXNoYm9hcmRzLCBmb3IgZXhhbXBsZSwgd2l0aFxuICAgKiBsYXRlbmN5IG1ldHJpY3MsIHlvdSBtaWdodCB3YW50IHA1MCwgcDk5LCBhbmQgdG05OS4gRm9yIGF2YWlsYWJpbGl0eVxuICAgKiBtZXRyaWNzIHRoaXMgd2lsbCB0eXBpY2FsbHkganVzdCBiZSBcIlN1bVwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZvciBhdmFpbGFiaWxpdHkgbWV0cmljcywgdGhpcyB3aWxsIGJlIFwiU3VtXCIsIGZvciBsYXRlbmN5IG1ldHJpY3MgaXQgd2lsbCBiZSBqdXN0IFwicDk5XCJcbiAgICovXG4gIHJlYWRvbmx5IGdyYXBoZWRTdWNjZXNzU3RhdGlzdGljcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGlzdGljcyBmb3IgZmF1bHRzIHlvdSB3YW50IHRvIGFwcGVhciBvbiBkYXNoYm9hcmRzLCBmb3IgZXhhbXBsZSwgd2l0aFxuICAgKiBsYXRlbmN5IG1ldHJpY3MsIHlvdSBtaWdodCB3YW50IHA1MCwgcDk5LCBhbmQgdG05OS4gRm9yIGF2YWlsYWJpbGl0eVxuICAgKiBtZXRyaWNzIHRoaXMgd2lsbCB0eXBpY2FsbHkganVzdCBiZSBcIlN1bVwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZvciBhdmFpbGFiaWxpdHkgbWV0cmljcywgdGhpcyB3aWxsIGJlIFwiU3VtXCIsIGZvciBsYXRlbmN5IG1ldHJpY3MgaXQgd2lsbCBiZSBqdXN0IFwicDk5XCJcbiAgICovXG4gIHJlYWRvbmx5IGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXQgdXNlZCBmb3IgdGhlc2UgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgdW5pdDogVW5pdDtcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCBmb3IgdGhlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZXZhbHVhdGlvbiBwZXJpb2RzIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWx0aXkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uUGVyaW9kczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdG8gYWxhcm0gb24gZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbGl0eSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFNlcnZpY2VNZXRyaWNEZXRhaWxzUHJvcHMpIHtcbiAgICB0aGlzLmFsYXJtU3RhdGlzdGljID0gcHJvcHMuYWxhcm1TdGF0aXN0aWM7XG4gICAgdGhpcy5kYXRhcG9pbnRzVG9BbGFybSA9IHByb3BzLmRhdGFwb2ludHNUb0FsYXJtO1xuICAgIHRoaXMuZXZhbHVhdGlvblBlcmlvZHMgPSBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcztcbiAgICB0aGlzLmZhdWx0TWV0cmljTmFtZXMgPSBwcm9wcy5mYXVsdE1ldHJpY05hbWVzO1xuICAgIHRoaXMuZ3JhcGhlZEZhdWx0U3RhdGlzdGljcyA9IHByb3BzLmdyYXBoZWRGYXVsdFN0YXRpc3RpY3M7XG4gICAgdGhpcy5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3MgPSBwcm9wcy5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M7XG4gICAgdGhpcy5tZXRyaWNOYW1lc3BhY2UgPSBwcm9wcy5tZXRyaWNOYW1lc3BhY2U7XG4gICAgdGhpcy5wZXJpb2QgPSBwcm9wcy5wZXJpb2Q7XG4gICAgdGhpcy5zdWNjZXNzTWV0cmljTmFtZXMgPSBwcm9wcy5zdWNjZXNzTWV0cmljTmFtZXM7XG4gICAgdGhpcy51bml0ID0gcHJvcHMudW5pdDtcbiAgfVxufVxuIl19
@@ -1,6 +1,7 @@
1
1
  import { Duration } from 'aws-cdk-lib';
2
2
  import { OutlierDetectionAlgorithm } from '../../utilities/OutlierDetectionAlgorithm';
3
3
  import { IService } from '../IService';
4
+ import { LatencyOutlierMetricAggregation } from '../../outlier-detection/LatencyOutlierMetricAggregation';
4
5
  /**
5
6
  * The properties for adding alarms and dashboards
6
7
  * for an instrumented service.
@@ -19,7 +20,7 @@ export interface InstrumentedServiceMultiAZObservabilityProps {
19
20
  readonly createDashboards?: boolean;
20
21
  /**
21
22
  * The outlier threshold for determining if an AZ is an
22
- * outlier for latency or faults. This number is interpreted
23
+ * outlier for faults. This number is interpreted
23
24
  * differently for different outlier algorithms. When used with
24
25
  * STATIC, the number should be between 0 and 1 to represent the
25
26
  * percentage of errors (like .7) that an AZ must be responsible
@@ -39,11 +40,55 @@ export interface InstrumentedServiceMultiAZObservabilityProps {
39
40
  *
40
41
  * @default - Depends on the outlier detection algorithm selected
41
42
  */
42
- readonly outlierThreshold?: number;
43
+ readonly availabilityOutlierThreshold?: number;
43
44
  /**
44
- * The algorithm to use for performing outlier detection
45
+ * The algorithm to use for performing outlier detection for availability metrics
46
+ *
47
+ * ** Currently only STATIC is supported **
48
+ *
49
+ * @default OutlierDetectionAlgorithm.STATIC
50
+ */
51
+ readonly availabilityOutlierDetectionAlgorithm?: OutlierDetectionAlgorithm;
52
+ /**
53
+ * The outlier threshold for determining if an AZ is an
54
+ * outlier for latency. This number is interpreted
55
+ * differently for different outlier algorithms. When used with
56
+ * STATIC, the number should be between 0 and 1 to represent the
57
+ * percentage of errors (like .7) that an AZ must be responsible
58
+ * for to be considered an outlier. When used with CHI_SQUARED, it
59
+ * represents the p value that indicates statistical significance, like
60
+ * 0.05 which means the skew has less than or equal to a 5% chance of
61
+ * occuring. When used with Z_SCORE it indicates how many standard
62
+ * deviations to evaluate for an AZ being an outlier, typically 3 is
63
+ * standard for Z_SCORE.
64
+ *
65
+ * Standard defaults based on the outlier detection algorithm:
66
+ * STATIC: 0.7
67
+ * CHI_SQUARED: 0.05
68
+ * Z_SCORE: 3
69
+ * IQR: 1.5
70
+ * MAD: 3
71
+ *
72
+ * @default - Depends on the outlier detection algorithm selected
73
+ */
74
+ readonly latencyOutlierThreshold?: number;
75
+ /**
76
+ * The algorithm to use for performing outlier detection for latency metrics
77
+ *
78
+ * ** Currently only STATIC is supported **
79
+ *
80
+ * @default OutlierDetectionAlgorithm.STATIC
81
+ */
82
+ readonly latencyOutlierDetectionAlgorithm?: OutlierDetectionAlgorithm;
83
+ /**
84
+ * The metric for latency to use in outlier detection, which means whether
85
+ * the algorithm uses a count of requests exceeding your latency threshold or
86
+ * whether it uses the actual latency values at your latency alarm threshold
87
+ * statistic.
88
+ *
89
+ * @default LatencyOutlierMetric.COUNT
45
90
  */
46
- readonly outlierDetectionAlgorithm: OutlierDetectionAlgorithm;
91
+ readonly latencyOutlierMetricAggregation?: LatencyOutlierMetricAggregation;
47
92
  /**
48
93
  * The interval used in the dashboard, defaults to
49
94
  * 60 minutes.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9PdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vSVNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBhZGRpbmcgYWxhcm1zIGFuZCBkYXNoYm9hcmRzXG4gKiBmb3IgYW4gaW5zdHJ1bWVudGVkIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhhdCB0aGUgYWxhcm1zIGFuZCBkYXNoYm9hcmRzIGFyZSBiZWluZyBjcmF0ZWQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogSVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGNyZWF0ZSBwZXIgb3BlcmF0aW9uIGFuZCBvdmVyYWxsIHNlcnZpY2VcbiAgICogZGFzaGJvYXJkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkYXNoYm9hcmRzIGFyZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBsYXRlbmN5IG9yIGZhdWx0cy4gVGhpcyBudW1iZXIgaXMgaW50ZXJwcmV0ZWRcbiAgICogZGlmZmVyZW50bHkgZm9yIGRpZmZlcmVudCBvdXRsaWVyIGFsZ29yaXRobXMuIFdoZW4gdXNlZCB3aXRoXG4gICAqIFNUQVRJQywgdGhlIG51bWJlciBzaG91bGQgYmUgYmV0d2VlbiAwIGFuZCAxIHRvIHJlcHJlc2VudCB0aGVcbiAgICogcGVyY2VudGFnZSBvZiBlcnJvcnMgKGxpa2UgLjcpIHRoYXQgYW4gQVogbXVzdCBiZSByZXNwb25zaWJsZVxuICAgKiBmb3IgdG8gYmUgY29uc2lkZXJlZCBhbiBvdXRsaWVyLiBXaGVuIHVzZWQgd2l0aCBDSElfU1FVQVJFRCwgaXRcbiAgICogcmVwcmVzZW50cyB0aGUgcCB2YWx1ZSB0aGF0IGluZGljYXRlcyBzdGF0aXN0aWNhbCBzaWduaWZpY2FuY2UsIGxpa2VcbiAgICogMC4wNSB3aGljaCBtZWFucyB0aGUgc2tldyBoYXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGEgNSUgY2hhbmNlIG9mXG4gICAqIG9jY3VyaW5nLiBXaGVuIHVzZWQgd2l0aCBaX1NDT1JFIGl0IGluZGljYXRlcyBob3cgbWFueSBzdGFuZGFyZFxuICAgKiBkZXZpYXRpb25zIHRvIGV2YWx1YXRlIGZvciBhbiBBWiBiZWluZyBhbiBvdXRsaWVyLCB0eXBpY2FsbHkgMyBpc1xuICAgKiBzdGFuZGFyZCBmb3IgWl9TQ09SRS5cbiAgICpcbiAgICogU3RhbmRhcmQgZGVmYXVsdHMgYmFzZWQgb24gdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGFsZ29yaXRobTpcbiAgICogU1RBVElDOiAwLjdcbiAgICogQ0hJX1NRVUFSRUQ6IDAuMDVcbiAgICogWl9TQ09SRTogM1xuICAgKiBJUVI6IDEuNVxuICAgKiBNQUQ6IDNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBlbmRzIG9uIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0gc2VsZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGdvcml0aG0gdG8gdXNlIGZvciBwZXJmb3JtaW5nIG91dGxpZXIgZGV0ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBvdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgZGFzaGJvYXJkLCBkZWZhdWx0cyB0b1xuICAgKiA2MCBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDYwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkXG4gICAqIGFzc2V0IGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBub3QgdXNpbmcgYSBzdGF0aWMgYnVja2V0IHRvIGRlcGxveSBhc3NldHMsIGZvciBleGFtcGxlXG4gICAqIHlvdSBhcmUgc3ludGhpbmcgdGhpcyBhbmQgaXQgZ2V0cyB1cGxvYWRlZCB0byBhIGJ1Y2tldCB0aGF0IHVzZXMgYSBwcmVmaXhcbiAgICogdGhhdCBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IHByZWZpeCBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoaXMgcHJvcGVydHkgb25seSB0YWtlcyBlZmZlY3QgaWYgeW91XG4gICAqIGRlZmluZWQgdGhlIGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvYmplY3QgcHJlZml4IHdpbGwgYmUgYWRkZWQgdG8geW91ciBjdXN0b20gYXNzZXRzIGxvY2F0aW9uLlxuICAgKiBIb3dldmVyLCBpZiB5b3UgaGF2ZSBvdmVycmlkZGVuIHNvbWV0aGluZyBsaWtlIHRoZSAnQnVja2V0UHJlZml4JyBwcm9wZXJ0eVxuICAgKiBpbiB5b3VyIHN0YWNrIHN5bnRoZXNpemVyIHdpdGggYSB2YXJpYWJsZSBsaWtlIFwiJHtBc3NldHNCdWNrZXRQcmVmaXhcIixcbiAgICogeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgdGhpcyBwcm9wZXJ0eSBzbyBpdCBkb2Vzbid0IGNhdXNlIGEgcmVmZXJlbmNlIGVycm9yXG4gICAqIGV2ZW4gaWYgdGhlIHByZWZpeCB2YWx1ZSBpcyBibGFuay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9PdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vSVNlcnZpY2UnO1xuaW1wb3J0IHsgTGF0ZW5jeU91dGxpZXJNZXRyaWNBZ2dyZWdhdGlvbiB9IGZyb20gJy4uLy4uL291dGxpZXItZGV0ZWN0aW9uL0xhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb24nO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBhZGRpbmcgYWxhcm1zIGFuZCBkYXNoYm9hcmRzXG4gKiBmb3IgYW4gaW5zdHJ1bWVudGVkIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhhdCB0aGUgYWxhcm1zIGFuZCBkYXNoYm9hcmRzIGFyZSBiZWluZyBjcmF0ZWQgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZTogSVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGNyZWF0ZSBwZXIgb3BlcmF0aW9uIGFuZCBvdmVyYWxsIHNlcnZpY2VcbiAgICogZGFzaGJvYXJkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkYXNoYm9hcmRzIGFyZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEYXNoYm9hcmRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBmYXVsdHMuIFRoaXMgbnVtYmVyIGlzIGludGVycHJldGVkXG4gICAqIGRpZmZlcmVudGx5IGZvciBkaWZmZXJlbnQgb3V0bGllciBhbGdvcml0aG1zLiBXaGVuIHVzZWQgd2l0aFxuICAgKiBTVEFUSUMsIHRoZSBudW1iZXIgc2hvdWxkIGJlIGJldHdlZW4gMCBhbmQgMSB0byByZXByZXNlbnQgdGhlXG4gICAqIHBlcmNlbnRhZ2Ugb2YgZXJyb3JzIChsaWtlIC43KSB0aGF0IGFuIEFaIG11c3QgYmUgcmVzcG9uc2libGVcbiAgICogZm9yIHRvIGJlIGNvbnNpZGVyZWQgYW4gb3V0bGllci4gV2hlbiB1c2VkIHdpdGggQ0hJX1NRVUFSRUQsIGl0XG4gICAqIHJlcHJlc2VudHMgdGhlIHAgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgc3RhdGlzdGljYWwgc2lnbmlmaWNhbmNlLCBsaWtlXG4gICAqIDAuMDUgd2hpY2ggbWVhbnMgdGhlIHNrZXcgaGFzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBhIDUlIGNoYW5jZSBvZlxuICAgKiBvY2N1cmluZy4gV2hlbiB1c2VkIHdpdGggWl9TQ09SRSBpdCBpbmRpY2F0ZXMgaG93IG1hbnkgc3RhbmRhcmRcbiAgICogZGV2aWF0aW9ucyB0byBldmFsdWF0ZSBmb3IgYW4gQVogYmVpbmcgYW4gb3V0bGllciwgdHlwaWNhbGx5IDMgaXNcbiAgICogc3RhbmRhcmQgZm9yIFpfU0NPUkUuXG4gICAqXG4gICAqIFN0YW5kYXJkIGRlZmF1bHRzIGJhc2VkIG9uIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG06XG4gICAqIFNUQVRJQzogMC43XG4gICAqIENISV9TUVVBUkVEOiAwLjA1XG4gICAqIFpfU0NPUkU6IDNcbiAgICogSVFSOiAxLjVcbiAgICogTUFEOiAzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVwZW5kcyBvbiB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtIHNlbGVjdGVkXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgcGVyZm9ybWluZyBvdXRsaWVyIGRldGVjdGlvbiBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3NcbiAgICogXG4gICAqICoqIEN1cnJlbnRseSBvbmx5IFNUQVRJQyBpcyBzdXBwb3J0ZWQgKipcbiAgICogXG4gICAqIEBkZWZhdWx0IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtPzogT3V0bGllckRldGVjdGlvbkFsZ29yaXRobTtcblxuICAvKipcbiAgICogVGhlIG91dGxpZXIgdGhyZXNob2xkIGZvciBkZXRlcm1pbmluZyBpZiBhbiBBWiBpcyBhblxuICAgKiBvdXRsaWVyIGZvciBsYXRlbmN5LiBUaGlzIG51bWJlciBpcyBpbnRlcnByZXRlZFxuICAgKiBkaWZmZXJlbnRseSBmb3IgZGlmZmVyZW50IG91dGxpZXIgYWxnb3JpdGhtcy4gV2hlbiB1c2VkIHdpdGhcbiAgICogU1RBVElDLCB0aGUgbnVtYmVyIHNob3VsZCBiZSBiZXR3ZWVuIDAgYW5kIDEgdG8gcmVwcmVzZW50IHRoZVxuICAgKiBwZXJjZW50YWdlIG9mIGVycm9ycyAobGlrZSAuNykgdGhhdCBhbiBBWiBtdXN0IGJlIHJlc3BvbnNpYmxlXG4gICAqIGZvciB0byBiZSBjb25zaWRlcmVkIGFuIG91dGxpZXIuIFdoZW4gdXNlZCB3aXRoIENISV9TUVVBUkVELCBpdFxuICAgKiByZXByZXNlbnRzIHRoZSBwIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHN0YXRpc3RpY2FsIHNpZ25pZmljYW5jZSwgbGlrZVxuICAgKiAwLjA1IHdoaWNoIG1lYW5zIHRoZSBza2V3IGhhcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYSA1JSBjaGFuY2Ugb2ZcbiAgICogb2NjdXJpbmcuIFdoZW4gdXNlZCB3aXRoIFpfU0NPUkUgaXQgaW5kaWNhdGVzIGhvdyBtYW55IHN0YW5kYXJkXG4gICAqIGRldmlhdGlvbnMgdG8gZXZhbHVhdGUgZm9yIGFuIEFaIGJlaW5nIGFuIG91dGxpZXIsIHR5cGljYWxseSAzIGlzXG4gICAqIHN0YW5kYXJkIGZvciBaX1NDT1JFLlxuICAgKlxuICAgKiBTdGFuZGFyZCBkZWZhdWx0cyBiYXNlZCBvbiB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtOlxuICAgKiBTVEFUSUM6IDAuN1xuICAgKiBDSElfU1FVQVJFRDogMC4wNVxuICAgKiBaX1NDT1JFOiAzXG4gICAqIElRUjogMS41XG4gICAqIE1BRDogM1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlcGVuZHMgb24gdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGFsZ29yaXRobSBzZWxlY3RlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGdvcml0aG0gdG8gdXNlIGZvciBwZXJmb3JtaW5nIG91dGxpZXIgZGV0ZWN0aW9uIGZvciBsYXRlbmN5IG1ldHJpY3NcbiAgICogXG4gICAqICoqIEN1cnJlbnRseSBvbmx5IFNUQVRJQyBpcyBzdXBwb3J0ZWQgKipcbiAgICogXG4gICAqIEBkZWZhdWx0IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDXG4gICAqL1xuICByZWFkb25seSBsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobT86IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG07XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgZm9yIGxhdGVuY3kgdG8gdXNlIGluIG91dGxpZXIgZGV0ZWN0aW9uLCB3aGljaCBtZWFucyB3aGV0aGVyXG4gICAqIHRoZSBhbGdvcml0aG0gdXNlcyBhIGNvdW50IG9mIHJlcXVlc3RzIGV4Y2VlZGluZyB5b3VyIGxhdGVuY3kgdGhyZXNob2xkIG9yXG4gICAqIHdoZXRoZXIgaXQgdXNlcyB0aGUgYWN0dWFsIGxhdGVuY3kgdmFsdWVzIGF0IHlvdXIgbGF0ZW5jeSBhbGFybSB0aHJlc2hvbGRcbiAgICogc3RhdGlzdGljLlxuICAgKiBcbiAgICogQGRlZmF1bHQgTGF0ZW5jeU91dGxpZXJNZXRyaWMuQ09VTlRcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyTWV0cmljQWdncmVnYXRpb24/OiBMYXRlbmN5T3V0bGllck1ldHJpY0FnZ3JlZ2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgZGFzaGJvYXJkLCBkZWZhdWx0cyB0b1xuICAgKiA2MCBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDYwIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHlvdSBhcmUgbm90IHVzaW5nIGEgc3RhdGljIGJ1Y2tldCB0byBkZXBsb3kgYXNzZXRzLCBmb3IgZXhhbXBsZVxuICAgKiB5b3UgYXJlIHN5bnRoaW5nIHRoaXMgYW5kIGl0IGdldHMgdXBsb2FkZWQgdG8gYSBidWNrZXQgd2hvc2UgbmFtZVxuICAgKiBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IGxvY2F0aW9uIENESyBwcm92aWRlcyBieVxuICAgKiBkZWZhdWx0IGZvciBidW5kbGVkIGFzc2V0cy4gVGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhpcyBjb250cnVjdCBuZWVkc1xuICAgKiB0byBoYXZlIGEgcGFyYW1ldGVyIGRlZmluZWQgdGhhdCB1c2VzIHRoaXMgbmFtZS4gVGhlIHVuZGVybHlpbmdcbiAgICogc3RhY2tzIGluIHRoaXMgY29uc3RydWN0IHRoYXQgZGVwbG95IGFzc2V0cyB3aWxsIGNvcHkgdGhlIHBhcmVudCBzdGFjaydzXG4gICAqIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBhc3NldHMgd2lsbCBiZSB1cGxvYWRlZCB0byB0aGUgZGVmYXVsdCBkZWZpbmVkXG4gICAqIGFzc2V0IGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzQnVja2V0UGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBub3QgdXNpbmcgYSBzdGF0aWMgYnVja2V0IHRvIGRlcGxveSBhc3NldHMsIGZvciBleGFtcGxlXG4gICAqIHlvdSBhcmUgc3ludGhpbmcgdGhpcyBhbmQgaXQgZ2V0cyB1cGxvYWRlZCB0byBhIGJ1Y2tldCB0aGF0IHVzZXMgYSBwcmVmaXhcbiAgICogdGhhdCBpcyB1bmtub3duIHRvIHlvdSAobWF5YmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2VudHJhbCBDSS9DRCBzeXN0ZW0pXG4gICAqIGFuZCBpcyBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciB0byB5b3VyIHN0YWNrLCBzcGVjaWZ5IHRoYXQgcGFyYW1ldGVyXG4gICAqIG5hbWUgaGVyZS4gSXQgd2lsbCBvdmVycmlkZSB0aGUgYnVja2V0IHByZWZpeCBDREsgcHJvdmlkZXMgYnlcbiAgICogZGVmYXVsdCBmb3IgYnVuZGxlZCBhc3NldHMuIFRoaXMgcHJvcGVydHkgb25seSB0YWtlcyBlZmZlY3QgaWYgeW91XG4gICAqIGRlZmluZWQgdGhlIGFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUuIFRoZSBzdGFjayBjb250YWluaW5nIHRoaXMgY29udHJ1Y3QgbmVlZHNcbiAgICogdG8gaGF2ZSBhIHBhcmFtZXRlciBkZWZpbmVkIHRoYXQgdXNlcyB0aGlzIG5hbWUuIFRoZSB1bmRlcmx5aW5nXG4gICAqIHN0YWNrcyBpbiB0aGlzIGNvbnN0cnVjdCB0aGF0IGRlcGxveSBhc3NldHMgd2lsbCBjb3B5IHRoZSBwYXJlbnQgc3RhY2snc1xuICAgKiB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvYmplY3QgcHJlZml4IHdpbGwgYmUgYWRkZWQgdG8geW91ciBjdXN0b20gYXNzZXRzIGxvY2F0aW9uLlxuICAgKiBIb3dldmVyLCBpZiB5b3UgaGF2ZSBvdmVycmlkZGVuIHNvbWV0aGluZyBsaWtlIHRoZSAnQnVja2V0UHJlZml4JyBwcm9wZXJ0eVxuICAgKiBpbiB5b3VyIHN0YWNrIHN5bnRoZXNpemVyIHdpdGggYSB2YXJpYWJsZSBsaWtlIFwiJHtBc3NldHNCdWNrZXRQcmVmaXhcIixcbiAgICogeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgdGhpcyBwcm9wZXJ0eSBzbyBpdCBkb2Vzbid0IGNhdXNlIGEgcmVmZXJlbmNlIGVycm9yXG4gICAqIGV2ZW4gaWYgdGhlIHByZWZpeCB2YWx1ZSBpcyBibGFuay5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG59XG4iXX0=