@cdklabs/multi-az-observability 0.0.1-alpha.30 → 0.0.1-alpha.32

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 (28) hide show
  1. package/.jsii +2 -2
  2. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  3. package/lib/basic_observability/BasicServiceDashboard.d.ts +0 -1
  4. package/lib/basic_observability/BasicServiceDashboard.js +4 -61
  5. package/lib/basic_observability/BasicServiceMultiAZObservability.js +4 -4
  6. package/lib/canaries/src/canary.zip +0 -0
  7. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +19 -15
  8. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.d.ts +1 -9
  9. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +596 -338
  10. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +5 -1
  11. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +1 -1
  12. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +1 -1
  13. package/lib/metrics/ApplicationLoadBalancerMetrics.js +50 -92
  14. package/lib/metrics/NatGatewayMetrics.d.ts +4 -1
  15. package/lib/metrics/NatGatewayMetrics.js +58 -1
  16. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  17. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  18. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  19. package/lib/services/CanaryMetrics.js +1 -1
  20. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  21. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  22. package/lib/services/InstrumentedServiceMultiAZObservability.js +10 -11
  23. package/lib/services/Operation.js +1 -1
  24. package/lib/services/OperationMetricDetails.js +1 -1
  25. package/lib/services/Service.js +1 -1
  26. package/lib/services/ServiceMetricDetails.js +1 -1
  27. package/lib/services/props/MetricDimensions.js +1 -1
  28. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import { CfnNatGateway } from "aws-cdk-lib/aws-ec2";
2
- import { IAlarm, IMetric } from "aws-cdk-lib/aws-cloudwatch";
2
+ import { IAlarm, IMetric, IWidget } from "aws-cdk-lib/aws-cloudwatch";
3
3
  import { Duration } from "aws-cdk-lib";
4
4
  import { IConstruct } from "constructs";
5
5
  import { IAvailabilityZoneMapper } from "../azmapper/IAvailabilityZoneMapper";
@@ -107,4 +107,7 @@ export declare class NatGatewayMetrics {
107
107
  }, azMapper: IAvailabilityZoneMapper, period: Duration): {
108
108
  [key: string]: IMetric;
109
109
  };
110
+ static generateNatGatewayWidgets(natgws: {
111
+ [key: string]: CfnNatGateway[];
112
+ }, azMapper: IAvailabilityZoneMapper, period: Duration, packetDropRateThreshold: number): IWidget[];
110
113
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NatGatewayMetrics = void 0;
4
4
  const MetricsHelper_1 = require("../utilities/MetricsHelper");
5
5
  const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
7
  const PacketLossOutlierAlgorithm_1 = require("../outlier-detection/PacketLossOutlierAlgorithm");
7
8
  /**
8
9
  * Provides functions for getting CloudWatch metrics and alarms for NAT Gateways.
@@ -295,6 +296,62 @@ class NatGatewayMetrics {
295
296
  });
296
297
  return usingMetrics;
297
298
  }
299
+ static generateNatGatewayWidgets(natgws, azMapper, period, packetDropRateThreshold) {
300
+ let widgets = [];
301
+ widgets.push(new aws_cloudwatch_1.TextWidget({
302
+ markdown: 'NAT Gateway Metrics',
303
+ height: 2,
304
+ width: 24,
305
+ }));
306
+ let totalPacketsMetrics = NatGatewayMetrics.getTotalPacketCountForEveryAZ(natgws, azMapper, period);
307
+ let packetDropMetrics = NatGatewayMetrics.getTotalPacketDropsForEveryAZ(natgws, azMapper, period);
308
+ let packetDropRateMetrics = NatGatewayMetrics.getTotalPacketDropRateForEveryAZ(natgws, azMapper, period);
309
+ widgets.push(new aws_cloudwatch_1.GraphWidget({
310
+ height: 6,
311
+ width: 8,
312
+ title: aws_cdk_lib_1.Aws.REGION + ' NAT Gateway Total Packets',
313
+ region: aws_cdk_lib_1.Aws.REGION,
314
+ left: Object.values(totalPacketsMetrics),
315
+ statistic: 'Sum',
316
+ leftYAxis: {
317
+ min: 0,
318
+ label: 'Count',
319
+ showUnits: false,
320
+ }
321
+ }));
322
+ widgets.push(new aws_cloudwatch_1.GraphWidget({
323
+ height: 6,
324
+ width: 8,
325
+ title: aws_cdk_lib_1.Aws.REGION + ' NAT Gateway Dropped Packets',
326
+ region: aws_cdk_lib_1.Aws.REGION,
327
+ left: Object.values(packetDropMetrics),
328
+ statistic: 'Sum',
329
+ leftYAxis: {
330
+ min: 0,
331
+ label: 'Count',
332
+ showUnits: false,
333
+ }
334
+ }));
335
+ widgets.push(new aws_cloudwatch_1.GraphWidget({
336
+ height: 6,
337
+ width: 8,
338
+ title: aws_cdk_lib_1.Aws.REGION + ' NAT Gateway Dropped Packet Rate',
339
+ region: aws_cdk_lib_1.Aws.REGION,
340
+ left: Object.values(packetDropRateMetrics),
341
+ leftYAxis: {
342
+ min: 0,
343
+ label: 'Percent',
344
+ showUnits: false,
345
+ },
346
+ leftAnnotations: [
347
+ {
348
+ label: "High Severity",
349
+ value: packetDropRateThreshold
350
+ }
351
+ ]
352
+ }));
353
+ return widgets;
354
+ }
298
355
  }
299
356
  exports.NatGatewayMetrics = NatGatewayMetrics;
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0R2F0ZXdheU1ldHJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0cmljcy9OYXRHYXRld2F5TWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4REFBMkQ7QUFDM0QsK0RBQStJO0FBSS9JLGdHQUE2RjtBQUU3Rjs7R0FFRztBQUNILE1BQWEsaUJBQWlCO0lBRTFCOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FDbkMsTUFBdUIsRUFDdkIsa0JBQTBCLEVBQzFCLE1BQWdCLEVBQ2hCLE1BQWUsRUFDZixLQUFjO1FBR2QsSUFBSSxTQUFTLEdBQVcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDZCQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkUsSUFBSSxzQkFBc0IsR0FBNkIsRUFBRSxDQUFDO1FBRTFELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFvQixFQUFFLEtBQWEsRUFBQyxFQUFFO1lBRWxELHNCQUFzQixDQUFDLEdBQUcsU0FBUyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSx1QkFBTSxDQUFDO2dCQUMxRCxVQUFVLEVBQUUsa0JBQWtCO2dCQUM5QixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixTQUFTLEVBQUUsc0JBQUssQ0FBQyxHQUFHO2dCQUNwQixJQUFJLEVBQUUscUJBQUksQ0FBQyxLQUFLO2dCQUNoQixLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixhQUFhLEVBQUU7b0JBQ2IsWUFBWSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7aUJBQ3JDO2dCQUNELE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksK0JBQWMsQ0FBQztZQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFD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K0IsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLDZCQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFNUosU0FBUyxHQUFHLDZCQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKO0FBM1lELDhDQTJZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk5hdEdhdGV3YXkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlclwiO1xuaW1wb3J0IHsgQWxhcm0sIENvbXBhcmlzb25PcGVyYXRvciwgSUFsYXJtLCBJTWV0cmljLCBNYXRoRXhwcmVzc2lvbiwgTWV0cmljLCBTdGF0cywgVHJlYXRNaXNzaW5nRGF0YSwgVW5pdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXIgfSBmcm9tIFwiLi4vYXptYXBwZXIvSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXJcIjtcbmltcG9ydCB7IFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSBcIi4uL291dGxpZXItZGV0ZWN0aW9uL1BhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtXCI7XG5cbi8qKlxuICogUHJvdmlkZXMgZnVuY3Rpb25zIGZvciBnZXR0aW5nIENsb3VkV2F0Y2ggbWV0cmljcyBhbmQgYWxhcm1zIGZvciBOQVQgR2F0ZXdheXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXRHYXRld2F5TWV0cmljcyB7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb3VudCBvZiBwYWNrZXQgZHJvcHMgZm9yIGFsbCBOQVQgR2F0ZXdheXMgdGhhdCBiZWxvbmcgdG8gdGhlIHByb3ZpZGVkIEFaXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXZhaWxhYmlsaXR5Wm9uZUlkIFxuICAgICAqIEBwYXJhbSBwZXJpb2QgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgc3RhdGljIGdldERyb3BwZWRQYWNrZXRDb3VudE1ldHJpY0ZvckFaKFxuICAgICAgICBuYXRnd3M6IENmbk5hdEdhdGV3YXlbXSxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcsXG4gICAgICAgIHBlcmlvZDogRHVyYXRpb24sXG4gICAgICAgIHByZWZpeD86IHN0cmluZyxcbiAgICAgICAgY29sb3I/OiBzdHJpbmdcbiAgICApIDogSU1ldHJpYyBcbiAgICB7XG4gICAgICAgIGxldCBrZXlwcmVmaXg6IHN0cmluZyA9IHByZWZpeCA/IHByZWZpeCA6IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcbiAgICAgICAgbGV0IHBhY2tldERyb3BDb3VudE1ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuXG4gICAgICAgIG5hdGd3cy5mb3JFYWNoKChuYXRndzogQ2ZuTmF0R2F0ZXdheSwgaW5kZXg6IG51bWJlcik9PiB7XG4gICAgICAgIFxuICAgICAgICAgICAgcGFja2V0RHJvcENvdW50TWV0cmljc1tgJHtrZXlwcmVmaXh9JHtpbmRleH1gXSA9IG5ldyBNZXRyaWMoe1xuICAgICAgICAgICAgICBtZXRyaWNOYW1lOiAnUGFja2V0c0Ryb3BDb3VudCcsXG4gICAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9OQVRHYXRld2F5JyxcbiAgICAgICAgICAgICAgc3RhdGlzdGljOiBTdGF0cy5TVU0sXG4gICAgICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgICAgICBOYXRHYXRld2F5SWQ6IG5hdGd3LmF0dHJOYXRHYXRld2F5SWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgICAgIGV4cHJlc3Npb246IE9iamVjdC5rZXlzKHBhY2tldERyb3BDb3VudE1ldHJpY3MpLmpvaW4oXCIrXCIpLFxuICAgICAgICAgIHVzaW5nTWV0cmljczogcGFja2V0RHJvcENvdW50TWV0cmljcyxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICBsYWJlbDogYXZhaWxhYmlsaXR5Wm9uZUlkLCBcbiAgICAgICAgICBjb2xvcjogY29sb3JcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBwYWNrZXQgZHJvcCByYXRlIGZvciBhbGwgTkFUIEdhdGV3YXlzIHRoYXQgYmVsb25nIHRvIHRoZSBwcm92aWRlZCBBWlxuICAgICAqIEBwYXJhbSBuYXRnd3MgXG4gICAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZCBcbiAgICAgKiBAcGFyYW0gcGVyaW9kIFxuICAgICAqIEByZXR1cm5zIFBlcmNlbnQgb2YgcGFja2V0IGRyb3BzIGxpa2UgNTIlXG4gICAgICovXG4gICAgc3RhdGljIGdldERyb3BwZWRQYWNrZXRSYXRlTWV0cmljRm9yQVooXG4gICAgICAgIG5hdGd3czogQ2ZuTmF0R2F0ZXdheVtdLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyxcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgICAgICAgcHJlZml4Pzogc3RyaW5nLFxuICAgICAgICBjb2xvcj86IHN0cmluZ1xuICAgICkgOiBJTWV0cmljIFxuICAgIHtcbiAgICAgICAgXG4gICAgICAgIGxldCBrZXlwcmVmaXggPSBwcmVmaXggPyBwcmVmaXggOiBNZXRyaWNzSGVscGVyLm5leHRDaGFyKCk7XG5cbiAgICAgICAgbGV0IHBhY2tldERyb3BDb3VudE1ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuICAgICAgICBsZXQgcGFja2V0c0luRnJvbVNvdXJjZU1ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuICAgICAgICBsZXQgcGFja2V0c0luRnJvbURlc3RpbmF0aW9uTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIFxuICAgICAgICBuYXRnd3MuZm9yRWFjaCgobmF0Z3c6IENmbk5hdEdhdGV3YXksIGluZGV4OiBudW1iZXIpPT4ge1xuXG4gICAgICAgICAgcGFja2V0RHJvcENvdW50TWV0cmljc1tgJHtrZXlwcmVmaXh9JHtpbmRleH0xYF0gPSBuZXcgTWV0cmljKHtcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdQYWNrZXRzRHJvcENvdW50JyxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9OQVRHYXRld2F5JyxcbiAgICAgICAgICAgIHN0YXRpc3RpYzogU3RhdHMuU1VNLFxuICAgICAgICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQgKyAnIHBhY2tldCBkcm9wcycsXG4gICAgICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgICAgIE5hdEdhdGV3YXlJZDogbmF0Z3cuYXR0ck5hdEdhdGV3YXlJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICB9KTtcbiAgICAgIFxuICAgICAgICAgIC8vIENhbGN1bGF0ZSBwYWNrZXRzIGluIGZyb20gc291cmNlXG4gICAgICAgICAgcGFja2V0c0luRnJvbVNvdXJjZU1ldHJpY3NbYCR7a2V5cHJlZml4fSR7aW5kZXh9MmBdID0gbmV3IE1ldHJpYyh7XG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnUGFja2V0c0luRnJvbVNvdXJjZScsXG4gICAgICAgICAgICBuYW1lc3BhY2U6ICdBV1MvTkFUR2F0ZXdheScsXG4gICAgICAgICAgICBzdGF0aXN0aWM6IFN0YXRzLlNVTSxcbiAgICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgICBsYWJlbDogYXZhaWxhYmlsaXR5Wm9uZUlkICsgJyBwYWNrZXRzIGluIGZyb20gc291cmNlJyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgICAgTmF0R2F0ZXdheUlkOiBuYXRndy5hdHRyTmF0R2F0ZXdheUlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIH0pO1xuICAgICAgXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHBhY2tldHMgaW4gZnJvbSBkZXN0aW5hdGlvblxuICAgICAgICAgIHBhY2tldHNJbkZyb21EZXN0aW5hdGlvbk1ldHJpY3NbYCR7a2V5cHJlZml4fSR7aW5kZXh9M2BdID0gbmV3IE1ldHJpYyh7XG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnUGFja2V0c0luRnJvbURlc3RpbmF0aW9uJyxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9OQVRHYXRld2F5JyxcbiAgICAgICAgICAgIHN0YXRpc3RpYzogU3RhdHMuU1VNLFxuICAgICAgICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQgKyAnIHBhY2tldHMgaW4gZnJvbSBkZXN0aW5hdGlvbicsXG4gICAgICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgICAgIE5hdEdhdGV3YXlJZDogbmF0Z3cuYXR0ck5hdEdhdGV3YXlJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAga2V5cHJlZml4ID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcihrZXlwcmVmaXgpO1xuXG4gICAgICAgIGxldCBwYWNrZXREcm9wVG90YWw6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgICAgIGV4cHJlc3Npb246IE9iamVjdC5rZXlzKHBhY2tldERyb3BDb3VudE1ldHJpY3MpLmpvaW4oXCIrXCIpLFxuICAgICAgICAgIHVzaW5nTWV0cmljczogcGFja2V0RHJvcENvdW50TWV0cmljcyxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZFxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgcGFja2V0c0luRnJvbVNvdXJjZVRvdGFsOiBJTWV0cmljID0gbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgICAgICBleHByZXNzaW9uOiBPYmplY3Qua2V5cyhwYWNrZXRzSW5Gcm9tU291cmNlTWV0cmljcykuam9pbihcIitcIiksXG4gICAgICAgICAgdXNpbmdNZXRyaWNzOiBwYWNrZXRzSW5Gcm9tU291cmNlTWV0cmljcyxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZFxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgcGFja2V0c0luRnJvbURlc3RpbmF0aW9uVG90YWw6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgICAgIGV4cHJlc3Npb246IE9iamVjdC5rZXlzKHBhY2tldHNJbkZyb21EZXN0aW5hdGlvbk1ldHJpY3MpLmpvaW4oXCIrXCIpLFxuICAgICAgICAgIHVzaW5nTWV0cmljczogcGFja2V0c0luRnJvbURlc3RpbmF0aW9uTWV0cmljcyxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZFxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgdXNpbmdNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuICAgICAgICB1c2luZ01ldHJpY3NbYCR7a2V5cHJlZml4fTFgXSA9IHBhY2tldERyb3BUb3RhbDtcbiAgICAgICAgdXNpbmdNZXRyaWNzW2Ake2tleXByZWZpeH0yYF0gPSBwYWNrZXRzSW5Gcm9tU291cmNlVG90YWw7XG4gICAgICAgIHVzaW5nTWV0cmljc1tgJHtrZXlwcmVmaXh9M2BdID0gcGFja2V0c0luRnJvbURlc3RpbmF0aW9uVG90YWw7XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBvZiBkcm9wcGVkIHBhY2tldHMgZm9yIHRoZSBOQVQgR1dcbiAgICAgICAgcmV0dXJuIG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICAgICAgZXhwcmVzc2lvbjogYCgke2tleXByZWZpeH0xIC8gKCR7a2V5cHJlZml4fTIgKyAke2tleXByZWZpeH0zKSkgKiAxMDBgLFxuICAgICAgICAgIHVzaW5nTWV0cmljczogdXNpbmdNZXRyaWNzLFxuICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgY29sb3I6IGNvbG9yXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgcGFja2V0IGNvdW50IGZvciBhbGwgTkFUIEdhdGV3YXlzIHRoYXQgYmVsb25nIHRvIHRoZSBwcm92aWRlZCBBWlxuICAgICAqIEBwYXJhbSBuYXRnd3MgXG4gICAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZCBcbiAgICAgKiBAcGFyYW0gcGVyaW9kIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRUb3RhbFBhY2tldENvdW50TWV0cmljRm9yQVooXG4gICAgICAgIG5hdGd3czogQ2ZuTmF0R2F0ZXdheVtdLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyxcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgICAgICAgcHJlZml4Pzogc3RyaW5nLFxuICAgICAgICBjb2xvcj86IHN0cmluZ1xuICAgICkgOiBJTWV0cmljIFxuICAgIHtcbiAgICAgICAgbGV0IGtleXByZWZpeCA9IHByZWZpeCA/IHByZWZpeCA6IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcbiAgICAgICAgbGV0IHVzaW5nTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIFxuICAgICAgICBuYXRnd3MuZm9yRWFjaCgobmF0Z3c6IENmbk5hdEdhdGV3YXksIGluZGV4OiBudW1iZXIpPT4ge1xuICAgICAgXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHBhY2tldHMgaW4gZnJvbSBzb3VyY2VcbiAgICAgICAgICB1c2luZ01ldHJpY3NbYCR7a2V5cHJlZml4fSR7aW5kZXh9MWBdID0gbmV3IE1ldHJpYyh7XG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnUGFja2V0c0luRnJvbVNvdXJjZScsXG4gICAgICAgICAgICBuYW1lc3BhY2U6ICdBV1MvTkFUR2F0ZXdheScsXG4gICAgICAgICAgICBzdGF0aXN0aWM6IFN0YXRzLlNVTSxcbiAgICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgICBsYWJlbDogYXZhaWxhYmlsaXR5Wm9uZUlkICsgJyBwYWNrZXRzIGluIGZyb20gc291cmNlJyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgICAgTmF0R2F0ZXdheUlkOiBuYXRndy5hdHRyTmF0R2F0ZXdheUlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIH0pO1xuICAgICAgXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHBhY2tldHMgaW4gZnJvbSBkZXN0aW5hdGlvblxuICAgICAgICAgIHVzaW5nTWV0cmljc1tgJHtrZXlwcmVmaXh9JHtpbmRleH0yYF0gPSBuZXcgTWV0cmljKHtcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdQYWNrZXRzSW5Gcm9tRGVzdGluYXRpb24nLFxuICAgICAgICAgICAgbmFtZXNwYWNlOiAnQVdTL05BVEdhdGV3YXknLFxuICAgICAgICAgICAgc3RhdGlzdGljOiBTdGF0cy5TVU0sXG4gICAgICAgICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCArICcgcGFja2V0cyBpbiBmcm9tIGRlc3RpbmF0aW9uJyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgICAgTmF0R2F0ZXdheUlkOiBuYXRndy5hdHRyTmF0R2F0ZXdheUlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDYWxjdWxhdGUgdG90YWwgcGFja2V0cyBpbiBmcm9tIHNvdXJjZXMgYW5kIGRlc3RpbmF0aW9uc1xuICAgICAgICByZXR1cm4gbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgICAgICBleHByZXNzaW9uOiBPYmplY3Qua2V5cyh1c2luZ01ldHJpY3MpLmpvaW4oXCIrXCIpLFxuICAgICAgICAgIHVzaW5nTWV0cmljczogdXNpbmdNZXRyaWNzLFxuICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgY29sb3I6IGNvbG9yXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAgICogUmV0dXJucyBhbiBhbGFybSBpbmRpY2F0aW5nIGlmIHRoZSBxdWFudGl0eSBvZiBwYWNrZXQgZHJvcHMgaW4gYSBzaW5nbGUgQVogYWNyb3NzIGFsbCBOQVQgR2F0ZXdheXMgaW4gdGhhdFxuICAgICAgICogQVogZXhjZWVkcyBhIHRocmVzaG9sZCBjb21wYXJlZCB0byBhbGwgcGFja2V0IGxvc3MgYWNyb3NzIGFsbCBBWnMuXG4gICAgICAgKiBcbiAgICAgICAqIEZvciBleGFtcGxlOlxuICAgICAgICogXG4gICAgICAgKiBBID0gMTUwIHBhY2tldHNcbiAgICAgICAqIEIgPSAxNzUgcGFja2V0c1xuICAgICAgICogQyA9IDE2MCBwYWNrZXRzXG4gICAgICAgKiBcbiAgICAgICAqIEFuZCB0aGUgc2VsZWN0ZWQgQVogaXMgXCJBXCIsIHRoZW4gdGhlIGNhbGN1bGF0aW9uIGlzIDE1MCAvICgxNTAgKyAxNzUgKyAxNjApLlxuICAgICAgICogXG4gICAgICAgKiBAcGFyYW0gc2NvcGUgXG4gICAgICAgKiBAcGFyYW0gbmF0Z3dzIFxuICAgICAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZCBcbiAgICAgICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lIFxuICAgICAgICogQHBhcmFtIHRocmVzaG9sZCBcbiAgICAgICAqIEBwYXJhbSBwZXJpb2QgXG4gICAgICAgKiBAcGFyYW0gZXZhbHVhdGlvblBlcmlvZHMgXG4gICAgICAgKiBAcGFyYW0gZGF0YXBvaW50c1RvQWxhcm0gXG4gICAgICAgKiBAcmV0dXJucyBcbiAgICAgICAqL1xuICAgIHN0YXRpYyBpc0FaQW5PdXRsaWVyRm9yUGFja2V0TG9zc05BVEdXKFxuICAgICAgICBzY29wZTogSUNvbnN0cnVjdCxcbiAgICAgICAgbmF0Z3dzOiB7W2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdfSwgXG4gICAgICAgIGFsZ29yaXRobTogUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0sXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZyxcbiAgICAgICAgYXpNYXBwZXI6IElBdmFpbGFiaWxpdHlab25lTWFwcGVyLFxuICAgICAgICB0aHJlc2hvbGQ6IG51bWJlcixcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcixcbiAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06IG51bWJlclxuICAgICkgOiBJQWxhcm0ge1xuICAgICAgICBsZXQgYXpQYWNrZXREcm9wQ291bnRNZXRyaWNzOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY30gPSB7fTtcbiAgICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nID0gYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKSk7XG4gICAgICAgIGxldCBrZXlwcmVmaXg6IHN0cmluZyA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcblxuICAgICAgICBPYmplY3Qua2V5cyhuYXRnd3MpLmZvckVhY2goKGF6OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBsZXQgYXpMZXR0ZXIgPSBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgbGV0IGF6SWQgPSBhek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG4gICAgICAgICAgYXpQYWNrZXREcm9wQ291bnRNZXRyaWNzW2F6TGV0dGVyXSA9IE5hdEdhdGV3YXlNZXRyaWNzLmdldERyb3BwZWRQYWNrZXRDb3VudE1ldHJpY0ZvckFaKG5hdGd3c1thel0sIGF6SWQsIHBlcmlvZCwga2V5cHJlZml4KTtcblxuICAgICAgICAgIGtleXByZWZpeCA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoa2V5cHJlZml4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3dpdGNoIChhbGdvcml0aG0pIHtcbiAgICAgICAgICBjYXNlIFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtLlNUQVRJQzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbGFybShcbiAgICAgICAgICAgICAgc2NvcGUsIFxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpICsgXCItcGFja2V0LWxvc3Mtb3V0bGllclwiLCBcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICBtZXRyaWM6IG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IGAoJHthdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpfSAvICgke09iamVjdC5rZXlzKGF6UGFja2V0RHJvcENvdW50TWV0cmljcykuam9pbihcIitcIil9KSkgKiAxMDBgLFxuICAgICAgICAgICAgICAgICAgICB1c2luZ01ldHJpY3M6IGF6UGFja2V0RHJvcENvdW50TWV0cmljcyxcbiAgICAgICAgICAgICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQgKyBcIi1wYWNrZXQtbG9zcy1wZXJjZW50YWdlLW9mLXRvdGFsXCJcbiAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgIHRocmVzaG9sZDogdGhyZXNob2xkLFxuICAgICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBkYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgICAgICAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgICAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5JR05PUkVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSAgICAgXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhbGFybSB0byBkZXRlcm1pbmUgaXMgdGhlIHBhY2tldCBsb3NzIHJhdGUgaW4gYSBzaW5nbGUgQVogYWNyb3NzIGFsbCBOQVQgR2F0ZXdheXMgcHJvdmlkZWRcbiAgICAgKiBmb3IgdGhhdCBBWiBleGNlZWQgdGhlIHByb3ZpZGVkIHRocmVzaG9sZC5cbiAgICAgKiBAcGFyYW0gc2NvcGUgXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXZhaWxhYmlsaXR5Wm9uZUlkIFxuICAgICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lIFxuICAgICAqIEBwYXJhbSB0aHJlc2hvbGQgXG4gICAgICogQHBhcmFtIHBlcmlvZCBcbiAgICAgKiBAcGFyYW0gZXZhbHVhdGlvblBlcmlvZHMgXG4gICAgICogQHBhcmFtIGRhdGFwb2ludHNUb0FsYXJtIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHN0YXRpYyBpc1RoZXJlQW5BWlBhY2tldExvc3NJbXBhY3ROQVRHVyhcbiAgICAgICAgc2NvcGU6IElDb25zdHJ1Y3QsXG4gICAgICAgIG5hdGd3czogQ2ZuTmF0R2F0ZXdheVtdLCBcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZyxcbiAgICAgICAgdGhyZXNob2xkOiBudW1iZXIsXG4gICAgICAgIHBlcmlvZDogRHVyYXRpb24sXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBudW1iZXIsXG4gICAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBudW1iZXJcbiAgICAgICkgOiBJQWxhcm0ge1xuICAgICAgICAvLyBDYWxjdWxhdGUgYSBwZXJjZW50YWdlIG9mIGRyb3BwZWQgcGFja2V0cyBmb3IgdGhlIE5BVCBHV1xuICAgICAgICBsZXQgcGFja2V0RHJvcFBlcmNlbnRhZ2U6IElNZXRyaWMgPSBOYXRHYXRld2F5TWV0cmljcy5nZXREcm9wcGVkUGFja2V0UmF0ZU1ldHJpY0ZvckFaKG5hdGd3cywgYXZhaWxhYmlsaXR5Wm9uZUlkLCBwZXJpb2QpO1xuICAgIFxuICAgICAgICAvLyBDcmVhdGUgYW4gYWxhcm0gZm9yIHRoaXMgTkFUIEdXIGlmIHBhY2tldCBkcm9wcyBleGNlZWQgdGhlIHNwZWNpZmllZCB0aHJlc2hvbGRcbiAgICAgICAgcmV0dXJuIG5ldyBBbGFybShcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpICsgXCItcGFja2V0LWRyb3AtaW1wYWN0LWFsYXJtXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgK1xuICAgICAgICAgICAgICAnLXBhY2tldC1kcm9wLWltcGFjdCcsXG4gICAgICAgICAgICBhY3Rpb25zRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBtZXRyaWM6IHBhY2tldERyb3BQZXJjZW50YWdlLFxuICAgICAgICAgICAgdGhyZXNob2xkOiB0aHJlc2hvbGQsXG4gICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IGV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06IGRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5JR05PUkVcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY291bnQgb2YgYWxsIHBhY2tldHMgZnJvbSBhbGwgTkFUIEdhdGV3YXlzIGluIGVhY2ggcHJvdmlkZWQgQXZhaWxhYmlsaXR5IFpvbmUuXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXpNYXBwZXIgXG4gICAgICogQHBhcmFtIHBlcmlvZCBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0VG90YWxQYWNrZXRDb3VudEZvckV2ZXJ5QVooXG4gICAgICAgIG5hdGd3czoge1trZXk6IHN0cmluZ106IENmbk5hdEdhdGV3YXlbXX0sXG4gICAgICAgIGF6TWFwcGVyOiBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcixcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvblxuICAgICkgOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY31cbiAgICB7XG4gICAgICAgIGxldCB1c2luZ01ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuICAgICAgICBsZXQga2V5cHJlZml4OiBzdHJpbmcgPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKCk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMobmF0Z3dzKS5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQgPSBhek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgICAgICAgIHVzaW5nTWV0cmljc1thekxldHRlcl0gPSB0aGlzLmdldFRvdGFsUGFja2V0Q291bnRNZXRyaWNGb3JBWihuYXRnd3NbYXZhaWxhYmlsaXR5Wm9uZV0sIGF2YWlsYWJpbGl0eVpvbmVJZCwgcGVyaW9kLCBrZXlwcmVmaXgsIE1ldHJpY3NIZWxwZXIuY29sb3JzW2luZGV4XSk7XG5cbiAgICAgICAgICAgIGtleXByZWZpeCA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoa2V5cHJlZml4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHVzaW5nTWV0cmljcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb3VudCBvZiBwYWNrZXQgZHJvcHMgZnJvbSBhbGwgTkFUIEdhdGV3YXlzIGluIGVhY2ggcHJvdmlkZWQgQXZhaWxhYmlsaXR5IFpvbmUuXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXpNYXBwZXIgXG4gICAgICogQHBhcmFtIHBlcmlvZCBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0VG90YWxQYWNrZXREcm9wc0ZvckV2ZXJ5QVooXG4gICAgICAgIG5hdGd3czoge1trZXk6IHN0cmluZ106IENmbk5hdEdhdGV3YXlbXX0sXG4gICAgICAgIGF6TWFwcGVyOiBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcixcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvblxuICAgICkgOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY31cbiAgICB7XG4gICAgICAgIGxldCB1c2luZ01ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuICAgICAgICBsZXQga2V5cHJlZml4OiBzdHJpbmcgPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKCk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMobmF0Z3dzKS5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQgPSBhek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgICAgICAgIHVzaW5nTWV0cmljc1thekxldHRlcl0gPSB0aGlzLmdldERyb3BwZWRQYWNrZXRDb3VudE1ldHJpY0ZvckFaKG5hdGd3c1thdmFpbGFiaWxpdHlab25lXSwgYXZhaWxhYmlsaXR5Wm9uZUlkLCBwZXJpb2QsIGtleXByZWZpeCwgTWV0cmljc0hlbHBlci5jb2xvcnNbaW5kZXhdKTtcblxuICAgICAgICAgICAga2V5cHJlZml4ID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcihrZXlwcmVmaXgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdXNpbmdNZXRyaWNzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHBhY2tldCBkcm9wIHJhdGUgZnJvbSBhbGwgTkFUIEdhdGV3YXlzIGluIGVhY2ggcHJvdmlkZWQgQXZhaWxhYmlsaXR5IFpvbmUuXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXpNYXBwZXIgXG4gICAgICogQHBhcmFtIHBlcmlvZCBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0VG90YWxQYWNrZXREcm9wUmF0ZUZvckV2ZXJ5QVooXG4gICAgICAgIG5hdGd3czoge1trZXk6IHN0cmluZ106IENmbk5hdEdhdGV3YXlbXX0sXG4gICAgICAgIGF6TWFwcGVyOiBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcixcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvblxuICAgICkgOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY31cbiAgICB7XG4gICAgICAgIGxldCB1c2luZ01ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuICAgICAgICBsZXQga2V5cHJlZml4OiBzdHJpbmcgPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKCk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMobmF0Z3dzKS5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQgPSBhek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgICAgICAgIHVzaW5nTWV0cmljc1thekxldHRlcl0gPSB0aGlzLmdldERyb3BwZWRQYWNrZXRSYXRlTWV0cmljRm9yQVoobmF0Z3dzW2F2YWlsYWJpbGl0eVpvbmVdLCBhdmFpbGFiaWxpdHlab25lSWQsIHBlcmlvZCwga2V5cHJlZml4LCBNZXRyaWNzSGVscGVyLmNvbG9yc1tpbmRleF0pO1xuXG4gICAgICAgICAgICBrZXlwcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleXByZWZpeCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB1c2luZ01ldHJpY3M7XG4gICAgfVxufSJdfQ==
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0R2F0ZXdheU1ldHJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0cmljcy9OYXRHYXRld2F5TWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4REFBMkQ7QUFDM0QsK0RBQWlMO0FBQ2pMLDZDQUE0QztBQUc1QyxnR0FBNkY7QUFFN0Y7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQUUxQjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZ0NBQWdDLENBQ25DLE1BQXVCLEVBQ3ZCLGtCQUEwQixFQUMxQixNQUFnQixFQUNoQixNQUFlLEVBQ2YsS0FBYztRQUdkLElBQUksU0FBUyxHQUFXLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyw2QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25FLElBQUksc0JBQXNCLEdBQTZCLEVBQUUsQ0FBQztRQUUxRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBb0IsRUFBRSxLQUFhLEVBQUMsRUFBRTtZQUVsRCxzQkFBc0IsQ0FBQyxHQUFHLFNBQVMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksdUJBQU0sQ0FBQztnQkFDMUQsVUFBVSxFQUFFLGtCQUFrQjtnQkFDOUIsU0FBUyxFQUFFLGdCQUFnQjtnQkFDM0IsU0FBUyxFQUFFLHNCQUFLLENBQUMsR0FBRztnQkFDcEIsSUFBSSxFQUFFLHFCQUFJLENBQUMsS0FBSztnQkFDaEIsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsYUFBYSxFQUFFO29CQUNiLFlBQVksRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2lCQUNyQztnQkFDRCxNQUFNLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLCtCQUFjLENBQUM7WUFDeEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUMs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuTmF0R2F0ZXdheSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBNZXRyaWNzSGVscGVyIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyXCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBHcmFwaFdpZGdldCwgSUFsYXJtLCBJTWV0cmljLCBJV2lkZ2V0LCBNYXRoRXhwcmVzc2lvbiwgTWV0cmljLCBTdGF0cywgVGV4dFdpZGdldCwgVHJlYXRNaXNzaW5nRGF0YSwgVW5pdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHsgQXdzLCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gXCIuLi9hem1hcHBlci9JQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclwiO1xuaW1wb3J0IHsgUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0gfSBmcm9tIFwiLi4vb3V0bGllci1kZXRlY3Rpb24vUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG1cIjtcblxuLyoqXG4gKiBQcm92aWRlcyBmdW5jdGlvbnMgZm9yIGdldHRpbmcgQ2xvdWRXYXRjaCBtZXRyaWNzIGFuZCBhbGFybXMgZm9yIE5BVCBHYXRld2F5cy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5hdEdhdGV3YXlNZXRyaWNzIHtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGNvdW50IG9mIHBhY2tldCBkcm9wcyBmb3IgYWxsIE5BVCBHYXRld2F5cyB0aGF0IGJlbG9uZyB0byB0aGUgcHJvdmlkZWQgQVpcbiAgICAgKiBAcGFyYW0gbmF0Z3dzIFxuICAgICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lSWQgXG4gICAgICogQHBhcmFtIHBlcmlvZCBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0RHJvcHBlZFBhY2tldENvdW50TWV0cmljRm9yQVooXG4gICAgICAgIG5hdGd3czogQ2ZuTmF0R2F0ZXdheVtdLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyxcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgICAgICAgcHJlZml4Pzogc3RyaW5nLFxuICAgICAgICBjb2xvcj86IHN0cmluZ1xuICAgICkgOiBJTWV0cmljIFxuICAgIHtcbiAgICAgICAgbGV0IGtleXByZWZpeDogc3RyaW5nID0gcHJlZml4ID8gcHJlZml4IDogTWV0cmljc0hlbHBlci5uZXh0Q2hhcigpO1xuICAgICAgICBsZXQgcGFja2V0RHJvcENvdW50TWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG5cbiAgICAgICAgbmF0Z3dzLmZvckVhY2goKG5hdGd3OiBDZm5OYXRHYXRld2F5LCBpbmRleDogbnVtYmVyKT0+IHtcbiAgICAgICAgXG4gICAgICAgICAgICBwYWNrZXREcm9wQ291bnRNZXRyaWNzW2Ake2tleXByZWZpeH0ke2luZGV4fWBdID0gbmV3IE1ldHJpYyh7XG4gICAgICAgICAgICAgIG1ldHJpY05hbWU6ICdQYWNrZXRzRHJvcENvdW50JyxcbiAgICAgICAgICAgICAgbmFtZXNwYWNlOiAnQVdTL05BVEdhdGV3YXknLFxuICAgICAgICAgICAgICBzdGF0aXN0aWM6IFN0YXRzLlNVTSxcbiAgICAgICAgICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgICAgICAgIE5hdEdhdGV3YXlJZDogbmF0Z3cuYXR0ck5hdEdhdGV3YXlJZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocGFja2V0RHJvcENvdW50TWV0cmljcykuam9pbihcIitcIiksXG4gICAgICAgICAgdXNpbmdNZXRyaWNzOiBwYWNrZXREcm9wQ291bnRNZXRyaWNzLFxuICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQsIFxuICAgICAgICAgIGNvbG9yOiBjb2xvclxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHBhY2tldCBkcm9wIHJhdGUgZm9yIGFsbCBOQVQgR2F0ZXdheXMgdGhhdCBiZWxvbmcgdG8gdGhlIHByb3ZpZGVkIEFaXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXZhaWxhYmlsaXR5Wm9uZUlkIFxuICAgICAqIEBwYXJhbSBwZXJpb2QgXG4gICAgICogQHJldHVybnMgUGVyY2VudCBvZiBwYWNrZXQgZHJvcHMgbGlrZSA1MiVcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0RHJvcHBlZFBhY2tldFJhdGVNZXRyaWNGb3JBWihcbiAgICAgICAgbmF0Z3dzOiBDZm5OYXRHYXRld2F5W10sXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nLFxuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLFxuICAgICAgICBwcmVmaXg/OiBzdHJpbmcsXG4gICAgICAgIGNvbG9yPzogc3RyaW5nXG4gICAgKSA6IElNZXRyaWMgXG4gICAge1xuICAgICAgICBcbiAgICAgICAgbGV0IGtleXByZWZpeCA9IHByZWZpeCA/IHByZWZpeCA6IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcblxuICAgICAgICBsZXQgcGFja2V0RHJvcENvdW50TWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIGxldCBwYWNrZXRzSW5Gcm9tU291cmNlTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIGxldCBwYWNrZXRzSW5Gcm9tRGVzdGluYXRpb25NZXRyaWNzOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY30gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIG5hdGd3cy5mb3JFYWNoKChuYXRndzogQ2ZuTmF0R2F0ZXdheSwgaW5kZXg6IG51bWJlcik9PiB7XG5cbiAgICAgICAgICBwYWNrZXREcm9wQ291bnRNZXRyaWNzW2Ake2tleXByZWZpeH0ke2luZGV4fTFgXSA9IG5ldyBNZXRyaWMoe1xuICAgICAgICAgICAgbWV0cmljTmFtZTogJ1BhY2tldHNEcm9wQ291bnQnLFxuICAgICAgICAgICAgbmFtZXNwYWNlOiAnQVdTL05BVEdhdGV3YXknLFxuICAgICAgICAgICAgc3RhdGlzdGljOiBTdGF0cy5TVU0sXG4gICAgICAgICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCArICcgcGFja2V0IGRyb3BzJyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgICAgTmF0R2F0ZXdheUlkOiBuYXRndy5hdHRyTmF0R2F0ZXdheUlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIH0pO1xuICAgICAgXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHBhY2tldHMgaW4gZnJvbSBzb3VyY2VcbiAgICAgICAgICBwYWNrZXRzSW5Gcm9tU291cmNlTWV0cmljc1tgJHtrZXlwcmVmaXh9JHtpbmRleH0yYF0gPSBuZXcgTWV0cmljKHtcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdQYWNrZXRzSW5Gcm9tU291cmNlJyxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9OQVRHYXRld2F5JyxcbiAgICAgICAgICAgIHN0YXRpc3RpYzogU3RhdHMuU1VNLFxuICAgICAgICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQgKyAnIHBhY2tldHMgaW4gZnJvbSBzb3VyY2UnLFxuICAgICAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgICAgICBOYXRHYXRld2F5SWQ6IG5hdGd3LmF0dHJOYXRHYXRld2F5SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgfSk7XG4gICAgICBcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgcGFja2V0cyBpbiBmcm9tIGRlc3RpbmF0aW9uXG4gICAgICAgICAgcGFja2V0c0luRnJvbURlc3RpbmF0aW9uTWV0cmljc1tgJHtrZXlwcmVmaXh9JHtpbmRleH0zYF0gPSBuZXcgTWV0cmljKHtcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdQYWNrZXRzSW5Gcm9tRGVzdGluYXRpb24nLFxuICAgICAgICAgICAgbmFtZXNwYWNlOiAnQVdTL05BVEdhdGV3YXknLFxuICAgICAgICAgICAgc3RhdGlzdGljOiBTdGF0cy5TVU0sXG4gICAgICAgICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCArICcgcGFja2V0cyBpbiBmcm9tIGRlc3RpbmF0aW9uJyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICAgICAgTmF0R2F0ZXdheUlkOiBuYXRndy5hdHRyTmF0R2F0ZXdheUlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBrZXlwcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleXByZWZpeCk7XG5cbiAgICAgICAgbGV0IHBhY2tldERyb3BUb3RhbDogSU1ldHJpYyA9IG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocGFja2V0RHJvcENvdW50TWV0cmljcykuam9pbihcIitcIiksXG4gICAgICAgICAgdXNpbmdNZXRyaWNzOiBwYWNrZXREcm9wQ291bnRNZXRyaWNzLFxuICAgICAgICAgIHBlcmlvZDogcGVyaW9kXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBwYWNrZXRzSW5Gcm9tU291cmNlVG90YWw6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgICAgIGV4cHJlc3Npb246IE9iamVjdC5rZXlzKHBhY2tldHNJbkZyb21Tb3VyY2VNZXRyaWNzKS5qb2luKFwiK1wiKSxcbiAgICAgICAgICB1c2luZ01ldHJpY3M6IHBhY2tldHNJbkZyb21Tb3VyY2VNZXRyaWNzLFxuICAgICAgICAgIHBlcmlvZDogcGVyaW9kXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBwYWNrZXRzSW5Gcm9tRGVzdGluYXRpb25Ub3RhbDogSU1ldHJpYyA9IG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocGFja2V0c0luRnJvbURlc3RpbmF0aW9uTWV0cmljcykuam9pbihcIitcIiksXG4gICAgICAgICAgdXNpbmdNZXRyaWNzOiBwYWNrZXRzSW5Gcm9tRGVzdGluYXRpb25NZXRyaWNzLFxuICAgICAgICAgIHBlcmlvZDogcGVyaW9kXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB1c2luZ01ldHJpY3M6IHsgW2tleTogc3RyaW5nXTogSU1ldHJpYyB9ID0ge307XG4gICAgICAgIHVzaW5nTWV0cmljc1tgJHtrZXlwcmVmaXh9MWBdID0gcGFja2V0RHJvcFRvdGFsO1xuICAgICAgICB1c2luZ01ldHJpY3NbYCR7a2V5cHJlZml4fTJgXSA9IHBhY2tldHNJbkZyb21Tb3VyY2VUb3RhbDtcbiAgICAgICAgdXNpbmdNZXRyaWNzW2Ake2tleXByZWZpeH0zYF0gPSBwYWNrZXRzSW5Gcm9tRGVzdGluYXRpb25Ub3RhbDtcblxuICAgICAgICAvLyBDYWxjdWxhdGUgYSBwZXJjZW50YWdlIG9mIGRyb3BwZWQgcGFja2V0cyBmb3IgdGhlIE5BVCBHV1xuICAgICAgICByZXR1cm4gbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgICAgICBleHByZXNzaW9uOiBgKCR7a2V5cHJlZml4fTEgLyAoJHtrZXlwcmVmaXh9MiArICR7a2V5cHJlZml4fTMpKSAqIDEwMGAsXG4gICAgICAgICAgdXNpbmdNZXRyaWNzOiB1c2luZ01ldHJpY3MsXG4gICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICBjb2xvcjogY29sb3JcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBwYWNrZXQgY291bnQgZm9yIGFsbCBOQVQgR2F0ZXdheXMgdGhhdCBiZWxvbmcgdG8gdGhlIHByb3ZpZGVkIEFaXG4gICAgICogQHBhcmFtIG5hdGd3cyBcbiAgICAgKiBAcGFyYW0gYXZhaWxhYmlsaXR5Wm9uZUlkIFxuICAgICAqIEBwYXJhbSBwZXJpb2QgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgc3RhdGljIGdldFRvdGFsUGFja2V0Q291bnRNZXRyaWNGb3JBWihcbiAgICAgICAgbmF0Z3dzOiBDZm5OYXRHYXRld2F5W10sXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nLFxuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLFxuICAgICAgICBwcmVmaXg/OiBzdHJpbmcsXG4gICAgICAgIGNvbG9yPzogc3RyaW5nXG4gICAgKSA6IElNZXRyaWMgXG4gICAge1xuICAgICAgICBsZXQga2V5cHJlZml4ID0gcHJlZml4ID8gcHJlZml4IDogTWV0cmljc0hlbHBlci5uZXh0Q2hhcigpO1xuICAgICAgICBsZXQgdXNpbmdNZXRyaWNzOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY30gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIG5hdGd3cy5mb3JFYWNoKChuYXRndzogQ2ZuTmF0R2F0ZXdheSwgaW5kZXg6IG51bWJlcik9PiB7XG4gICAgICBcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgcGFja2V0cyBpbiBmcm9tIHNvdXJjZVxuICAgICAgICAgIHVzaW5nTWV0cmljc1tgJHtrZXlwcmVmaXh9JHtpbmRleH0xYF0gPSBuZXcgTWV0cmljKHtcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdQYWNrZXRzSW5Gcm9tU291cmNlJyxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9OQVRHYXRld2F5JyxcbiAgICAgICAgICAgIHN0YXRpc3RpYzogU3RhdHMuU1VNLFxuICAgICAgICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgICAgICAgIGxhYmVsOiBhdmFpbGFiaWxpdHlab25lSWQgKyAnIHBhY2tldHMgaW4gZnJvbSBzb3VyY2UnLFxuICAgICAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgICAgICBOYXRHYXRld2F5SWQ6IG5hdGd3LmF0dHJOYXRHYXRld2F5SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgfSk7XG4gICAgICBcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgcGFja2V0cyBpbiBmcm9tIGRlc3RpbmF0aW9uXG4gICAgICAgICAgdXNpbmdNZXRyaWNzW2Ake2tleXByZWZpeH0ke2luZGV4fTJgXSA9IG5ldyBNZXRyaWMoe1xuICAgICAgICAgICAgbWV0cmljTmFtZTogJ1BhY2tldHNJbkZyb21EZXN0aW5hdGlvbicsXG4gICAgICAgICAgICBuYW1lc3BhY2U6ICdBV1MvTkFUR2F0ZXdheScsXG4gICAgICAgICAgICBzdGF0aXN0aWM6IFN0YXRzLlNVTSxcbiAgICAgICAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAgICAgICBsYWJlbDogYXZhaWxhYmlsaXR5Wm9uZUlkICsgJyBwYWNrZXRzIGluIGZyb20gZGVzdGluYXRpb24nLFxuICAgICAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgICAgICBOYXRHYXRld2F5SWQ6IG5hdGd3LmF0dHJOYXRHYXRld2F5SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0b3RhbCBwYWNrZXRzIGluIGZyb20gc291cmNlcyBhbmQgZGVzdGluYXRpb25zXG4gICAgICAgIHJldHVybiBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgICAgIGV4cHJlc3Npb246IE9iamVjdC5rZXlzKHVzaW5nTWV0cmljcykuam9pbihcIitcIiksXG4gICAgICAgICAgdXNpbmdNZXRyaWNzOiB1c2luZ01ldHJpY3MsXG4gICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICBjb2xvcjogY29sb3JcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICAgKiBSZXR1cm5zIGFuIGFsYXJtIGluZGljYXRpbmcgaWYgdGhlIHF1YW50aXR5IG9mIHBhY2tldCBkcm9wcyBpbiBhIHNpbmdsZSBBWiBhY3Jvc3MgYWxsIE5BVCBHYXRld2F5cyBpbiB0aGF0XG4gICAgICAgKiBBWiBleGNlZWRzIGEgdGhyZXNob2xkIGNvbXBhcmVkIHRvIGFsbCBwYWNrZXQgbG9zcyBhY3Jvc3MgYWxsIEFacy5cbiAgICAgICAqIFxuICAgICAgICogRm9yIGV4YW1wbGU6XG4gICAgICAgKiBcbiAgICAgICAqIEEgPSAxNTAgcGFja2V0c1xuICAgICAgICogQiA9IDE3NSBwYWNrZXRzXG4gICAgICAgKiBDID0gMTYwIHBhY2tldHNcbiAgICAgICAqIFxuICAgICAgICogQW5kIHRoZSBzZWxlY3RlZCBBWiBpcyBcIkFcIiwgdGhlbiB0aGUgY2FsY3VsYXRpb24gaXMgMTUwIC8gKDE1MCArIDE3NSArIDE2MCkuXG4gICAgICAgKiBcbiAgICAgICAqIEBwYXJhbSBzY29wZSBcbiAgICAgICAqIEBwYXJhbSBuYXRnd3MgXG4gICAgICAgKiBAcGFyYW0gYXZhaWxhYmlsaXR5Wm9uZUlkIFxuICAgICAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmUgXG4gICAgICAgKiBAcGFyYW0gdGhyZXNob2xkIFxuICAgICAgICogQHBhcmFtIHBlcmlvZCBcbiAgICAgICAqIEBwYXJhbSBldmFsdWF0aW9uUGVyaW9kcyBcbiAgICAgICAqIEBwYXJhbSBkYXRhcG9pbnRzVG9BbGFybSBcbiAgICAgICAqIEByZXR1cm5zIFxuICAgICAgICovXG4gICAgc3RhdGljIGlzQVpBbk91dGxpZXJGb3JQYWNrZXRMb3NzTkFUR1coXG4gICAgICAgIHNjb3BlOiBJQ29uc3RydWN0LFxuICAgICAgICBuYXRnd3M6IHtba2V5OiBzdHJpbmddOiBDZm5OYXRHYXRld2F5W119LCBcbiAgICAgICAgYWxnb3JpdGhtOiBQYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobSxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nLFxuICAgICAgICBhek1hcHBlcjogSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXIsXG4gICAgICAgIHRocmVzaG9sZDogbnVtYmVyLFxuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogbnVtYmVyLFxuICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogbnVtYmVyXG4gICAgKSA6IElBbGFybSB7XG4gICAgICAgIGxldCBhelBhY2tldERyb3BDb3VudE1ldHJpY3M6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfSA9IHt9O1xuICAgICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcgPSBhek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpKTtcbiAgICAgICAgbGV0IGtleXByZWZpeDogc3RyaW5nID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcigpO1xuXG4gICAgICAgIE9iamVjdC5rZXlzKG5hdGd3cykuZm9yRWFjaCgoYXo6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGxldCBhekxldHRlciA9IGF6LnN1YnN0cmluZyhhei5sZW5ndGggLSAxKTtcbiAgICAgICAgICBsZXQgYXpJZCA9IGF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcbiAgICAgICAgICBhelBhY2tldERyb3BDb3VudE1ldHJpY3NbYXpMZXR0ZXJdID0gTmF0R2F0ZXdheU1ldHJpY3MuZ2V0RHJvcHBlZFBhY2tldENvdW50TWV0cmljRm9yQVoobmF0Z3dzW2F6XSwgYXpJZCwgcGVyaW9kLCBrZXlwcmVmaXgpO1xuXG4gICAgICAgICAga2V5cHJlZml4ID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcihrZXlwcmVmaXgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzd2l0Y2ggKGFsZ29yaXRobSkge1xuICAgICAgICAgIGNhc2UgUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0uU1RBVElDOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFsYXJtKFxuICAgICAgICAgICAgICBzY29wZSwgXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKGF2YWlsYWJpbGl0eVpvbmUubGVuZ3RoIC0gMSkgKyBcIi1wYWNrZXQtbG9zcy1vdXRsaWVyXCIsIFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgIG1ldHJpYzogbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogYCgke2F2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKGF2YWlsYWJpbGl0eVpvbmUubGVuZ3RoIC0gMSl9IC8gKCR7T2JqZWN0LmtleXMoYXpQYWNrZXREcm9wQ291bnRNZXRyaWNzKS5qb2luKFwiK1wiKX0pKSAqIDEwMGAsXG4gICAgICAgICAgICAgICAgICAgIHVzaW5nTWV0cmljczogYXpQYWNrZXREcm9wQ291bnRNZXRyaWNzLFxuICAgICAgICAgICAgICAgICAgICBwZXJpb2Q6IHBlcmlvZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGF2YWlsYWJpbGl0eVpvbmVJZCArIFwiLXBhY2tldC1sb3NzLXBlcmNlbnRhZ2Utb2YtdG90YWxcIlxuICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgdGhyZXNob2xkOiB0aHJlc2hvbGQsXG4gICAgICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06IGRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICAgICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLklHTk9SRVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9ICAgICBcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFsYXJtIHRvIGRldGVybWluZSBpcyB0aGUgcGFja2V0IGxvc3MgcmF0ZSBpbiBhIHNpbmdsZSBBWiBhY3Jvc3MgYWxsIE5BVCBHYXRld2F5cyBwcm92aWRlZFxuICAgICAqIGZvciB0aGF0IEFaIGV4Y2VlZCB0aGUgcHJvdmlkZWQgdGhyZXNob2xkLlxuICAgICAqIEBwYXJhbSBzY29wZSBcbiAgICAgKiBAcGFyYW0gbmF0Z3dzIFxuICAgICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lSWQgXG4gICAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmUgXG4gICAgICogQHBhcmFtIHRocmVzaG9sZCBcbiAgICAgKiBAcGFyYW0gcGVyaW9kIFxuICAgICAqIEBwYXJhbSBldmFsdWF0aW9uUGVyaW9kcyBcbiAgICAgKiBAcGFyYW0gZGF0YXBvaW50c1RvQWxhcm0gXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgc3RhdGljIGlzVGhlcmVBbkFaUGFja2V0TG9zc0ltcGFjdE5BVEdXKFxuICAgICAgICBzY29wZTogSUNvbnN0cnVjdCxcbiAgICAgICAgbmF0Z3dzOiBDZm5OYXRHYXRld2F5W10sIFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nLFxuICAgICAgICB0aHJlc2hvbGQ6IG51bWJlcixcbiAgICAgICAgcGVyaW9kOiBEdXJhdGlvbixcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcixcbiAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06IG51bWJlclxuICAgICAgKSA6IElBbGFybSB7XG4gICAgICAgIC8vIENhbGN1bGF0ZSBhIHBlcmNlbnRhZ2Ugb2YgZHJvcHBlZCBwYWNrZXRzIGZvciB0aGUgTkFUIEdXXG4gICAgICAgIGxldCBwYWNrZXREcm9wUGVyY2VudGFnZTogSU1ldHJpYyA9IE5hdEdhdGV3YXlNZXRyaWNzLmdldERyb3BwZWRQYWNrZXRSYXRlTWV0cmljRm9yQVoobmF0Z3dzLCBhdmFpbGFiaWxpdHlab25lSWQsIHBlcmlvZCk7XG4gICAgXG4gICAgICAgIC8vIENyZWF0ZSBhbiBhbGFybSBmb3IgdGhpcyBOQVQgR1cgaWYgcGFja2V0IGRyb3BzIGV4Y2VlZCB0aGUgc3BlY2lmaWVkIHRocmVzaG9sZFxuICAgICAgICByZXR1cm4gbmV3IEFsYXJtKFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmUuc3Vic3RyaW5nKGF2YWlsYWJpbGl0eVpvbmUubGVuZ3RoIC0gMSkgKyBcIi1wYWNrZXQtZHJvcC1pbXBhY3QtYWxhcm1cIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGFybU5hbWU6XG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCArXG4gICAgICAgICAgICAgICctcGFja2V0LWRyb3AtaW1wYWN0JyxcbiAgICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIG1ldHJpYzogcGFja2V0RHJvcFBlcmNlbnRhZ2UsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IHRocmVzaG9sZCxcbiAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLklHTk9SRVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb3VudCBvZiBhbGwgcGFja2V0cyBmcm9tIGFsbCBOQVQgR2F0ZXdheXMgaW4gZWFjaCBwcm92aWRlZCBBdmFpbGFiaWxpdHkgWm9uZS5cbiAgICAgKiBAcGFyYW0gbmF0Z3dzIFxuICAgICAqIEBwYXJhbSBhek1hcHBlciBcbiAgICAgKiBAcGFyYW0gcGVyaW9kIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRUb3RhbFBhY2tldENvdW50Rm9yRXZlcnlBWihcbiAgICAgICAgbmF0Z3dzOiB7W2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdfSxcbiAgICAgICAgYXpNYXBwZXI6IElBdmFpbGFiaWxpdHlab25lTWFwcGVyLFxuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uXG4gICAgKSA6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfVxuICAgIHtcbiAgICAgICAgbGV0IHVzaW5nTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIGxldCBrZXlwcmVmaXg6IHN0cmluZyA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcblxuICAgICAgICBPYmplY3Qua2V5cyhuYXRnd3MpLmZvckVhY2goKGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZCA9IGF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgICAgICAgdXNpbmdNZXRyaWNzW2F6TGV0dGVyXSA9IHRoaXMuZ2V0VG90YWxQYWNrZXRDb3VudE1ldHJpY0ZvckFaKG5hdGd3c1thdmFpbGFiaWxpdHlab25lXSwgYXZhaWxhYmlsaXR5Wm9uZUlkLCBwZXJpb2QsIGtleXByZWZpeCwgTWV0cmljc0hlbHBlci5jb2xvcnNbaW5kZXhdKTtcblxuICAgICAgICAgICAga2V5cHJlZml4ID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcihrZXlwcmVmaXgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdXNpbmdNZXRyaWNzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGNvdW50IG9mIHBhY2tldCBkcm9wcyBmcm9tIGFsbCBOQVQgR2F0ZXdheXMgaW4gZWFjaCBwcm92aWRlZCBBdmFpbGFiaWxpdHkgWm9uZS5cbiAgICAgKiBAcGFyYW0gbmF0Z3dzIFxuICAgICAqIEBwYXJhbSBhek1hcHBlciBcbiAgICAgKiBAcGFyYW0gcGVyaW9kIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRUb3RhbFBhY2tldERyb3BzRm9yRXZlcnlBWihcbiAgICAgICAgbmF0Z3dzOiB7W2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdfSxcbiAgICAgICAgYXpNYXBwZXI6IElBdmFpbGFiaWxpdHlab25lTWFwcGVyLFxuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uXG4gICAgKSA6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfVxuICAgIHtcbiAgICAgICAgbGV0IHVzaW5nTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIGxldCBrZXlwcmVmaXg6IHN0cmluZyA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcblxuICAgICAgICBPYmplY3Qua2V5cyhuYXRnd3MpLmZvckVhY2goKGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZCA9IGF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgICAgICAgdXNpbmdNZXRyaWNzW2F6TGV0dGVyXSA9IHRoaXMuZ2V0RHJvcHBlZFBhY2tldENvdW50TWV0cmljRm9yQVoobmF0Z3dzW2F2YWlsYWJpbGl0eVpvbmVdLCBhdmFpbGFiaWxpdHlab25lSWQsIHBlcmlvZCwga2V5cHJlZml4LCBNZXRyaWNzSGVscGVyLmNvbG9yc1tpbmRleF0pO1xuXG4gICAgICAgICAgICBrZXlwcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleXByZWZpeCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB1c2luZ01ldHJpY3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcGFja2V0IGRyb3AgcmF0ZSBmcm9tIGFsbCBOQVQgR2F0ZXdheXMgaW4gZWFjaCBwcm92aWRlZCBBdmFpbGFiaWxpdHkgWm9uZS5cbiAgICAgKiBAcGFyYW0gbmF0Z3dzIFxuICAgICAqIEBwYXJhbSBhek1hcHBlciBcbiAgICAgKiBAcGFyYW0gcGVyaW9kIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRUb3RhbFBhY2tldERyb3BSYXRlRm9yRXZlcnlBWihcbiAgICAgICAgbmF0Z3dzOiB7W2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdfSxcbiAgICAgICAgYXpNYXBwZXI6IElBdmFpbGFiaWxpdHlab25lTWFwcGVyLFxuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uXG4gICAgKSA6IHtba2V5OiBzdHJpbmddOiBJTWV0cmljfVxuICAgIHtcbiAgICAgICAgbGV0IHVzaW5nTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0ge307XG4gICAgICAgIGxldCBrZXlwcmVmaXg6IHN0cmluZyA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoKTtcblxuICAgICAgICBPYmplY3Qua2V5cyhuYXRnd3MpLmZvckVhY2goKGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZCA9IGF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgICAgICAgdXNpbmdNZXRyaWNzW2F6TGV0dGVyXSA9IHRoaXMuZ2V0RHJvcHBlZFBhY2tldFJhdGVNZXRyaWNGb3JBWihuYXRnd3NbYXZhaWxhYmlsaXR5Wm9uZV0sIGF2YWlsYWJpbGl0eVpvbmVJZCwgcGVyaW9kLCBrZXlwcmVmaXgsIE1ldHJpY3NIZWxwZXIuY29sb3JzW2luZGV4XSk7XG5cbiAgICAgICAgICAgIGtleXByZWZpeCA9IE1ldHJpY3NIZWxwZXIubmV4dENoYXIoa2V5cHJlZml4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHVzaW5nTWV0cmljcztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2VuZXJhdGVOYXRHYXRld2F5V2lkZ2V0cyhcbiAgICAgIG5hdGd3czoge1trZXk6IHN0cmluZ106IENmbk5hdEdhdGV3YXlbXX0sXG4gICAgICBhek1hcHBlcjogSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXIsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLFxuICAgICAgcGFja2V0RHJvcFJhdGVUaHJlc2hvbGQ6IG51bWJlcixcbiAgICApOiBJV2lkZ2V0W10ge1xuICAgICAgbGV0IHdpZGdldHM6IElXaWRnZXRbXSA9IFtdO1xuICBcbiAgICAgIHdpZGdldHMucHVzaChcbiAgICAgICAgbmV3IFRleHRXaWRnZXQoe1xuICAgICAgICAgIG1hcmtkb3duOiAnTkFUIEdhdGV3YXkgTWV0cmljcycsXG4gICAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgfSksXG4gICAgICApO1xuICBcbiAgICAgIGxldCB0b3RhbFBhY2tldHNNZXRyaWNzOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY30gPSBOYXRHYXRld2F5TWV0cmljcy5nZXRUb3RhbFBhY2tldENvdW50Rm9yRXZlcnlBWihuYXRnd3MsIGF6TWFwcGVyLCBwZXJpb2QpO1xuICAgICAgbGV0IHBhY2tldERyb3BNZXRyaWNzOiB7W2tleTogc3RyaW5nXTogSU1ldHJpY30gPSBOYXRHYXRld2F5TWV0cmljcy5nZXRUb3RhbFBhY2tldERyb3BzRm9yRXZlcnlBWihuYXRnd3MsIGF6TWFwcGVyLCBwZXJpb2QpO1xuICAgICAgbGV0IHBhY2tldERyb3BSYXRlTWV0cmljczoge1trZXk6IHN0cmluZ106IElNZXRyaWN9ID0gTmF0R2F0ZXdheU1ldHJpY3MuZ2V0VG90YWxQYWNrZXREcm9wUmF0ZUZvckV2ZXJ5QVoobmF0Z3dzLCBhek1hcHBlciwgcGVyaW9kKTtcbiAgXG4gICAgICB3aWRnZXRzLnB1c2goXG4gICAgICAgIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgICAgaGVpZ2h0OiA2LFxuICAgICAgICAgIHdpZHRoOiA4LFxuICAgICAgICAgIHRpdGxlOiBBd3MuUkVHSU9OICsgJyBOQVQgR2F0ZXdheSBUb3RhbCBQYWNrZXRzJyxcbiAgICAgICAgICByZWdpb246IEF3cy5SRUdJT04sXG4gICAgICAgICAgbGVmdDogT2JqZWN0LnZhbHVlcyh0b3RhbFBhY2tldHNNZXRyaWNzKSxcbiAgICAgICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgICAgICAgIGxlZnRZQXhpczoge1xuICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgbGFiZWw6ICdDb3VudCcsXG4gICAgICAgICAgICBzaG93VW5pdHM6IGZhbHNlLFxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICBcbiAgICAgIHdpZGdldHMucHVzaChcbiAgICAgICAgbmV3IEdyYXBoV2lkZ2V0KHtcbiAgICAgICAgICBoZWlnaHQ6IDYsXG4gICAgICAgICAgd2lkdGg6IDgsXG4gICAgICAgICAgdGl0bGU6IEF3cy5SRUdJT04gKyAnIE5BVCBHYXRld2F5IERyb3BwZWQgUGFja2V0cycsXG4gICAgICAgICAgcmVnaW9uOiBBd3MuUkVHSU9OLFxuICAgICAgICAgIGxlZnQ6IE9iamVjdC52YWx1ZXMocGFja2V0RHJvcE1ldHJpY3MpLFxuICAgICAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgICAgICAgbGVmdFlBeGlzOiB7XG4gICAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgICBsYWJlbDogJ0NvdW50JyxcbiAgICAgICAgICAgIHNob3dVbml0czogZmFsc2UsXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIFxuICAgICAgd2lkZ2V0cy5wdXNoKFxuICAgICAgICBuZXcgR3JhcGhXaWRnZXQoe1xuICAgICAgICAgIGhlaWdodDogNixcbiAgICAgICAgICB3aWR0aDogOCxcbiAgICAgICAgICB0aXRsZTogQXdzLlJFR0lPTiArICcgTkFUIEdhdGV3YXkgRHJvcHBlZCBQYWNrZXQgUmF0ZScsXG4gICAgICAgICAgcmVnaW9uOiBBd3MuUkVHSU9OLFxuICAgICAgICAgIGxlZnQ6IE9iamVjdC52YWx1ZXMocGFja2V0RHJvcFJhdGVNZXRyaWNzKSxcbiAgICAgICAgICBsZWZ0WUF4aXM6IHtcbiAgICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICAgIGxhYmVsOiAnUGVyY2VudCcsXG4gICAgICAgICAgICBzaG93VW5pdHM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGVmdEFubm90YXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiBcIkhpZ2ggU2V2ZXJpdHlcIixcbiAgICAgICAgICAgICAgdmFsdWU6IHBhY2tldERyb3BSYXRlVGhyZXNob2xkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIFxuICAgICAgcmV0dXJuIHdpZGdldHM7XG4gICAgfVxufSJdfQ==
@@ -15,5 +15,5 @@ class CanaryMetrics {
15
15
  }
16
16
  exports.CanaryMetrics = CanaryMetrics;
17
17
  _a = JSII_RTTI_SYMBOL_1;
18
- CanaryMetrics[_a] = { fqn: "@cdklabs/multi-az-observability.CanaryMetrics", version: "0.0.1-alpha.30" };
18
+ CanaryMetrics[_a] = { fqn: "@cdklabs/multi-az-observability.CanaryMetrics", version: "0.0.1-alpha.32" };
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5TWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9DYW5hcnlNZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUE7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFXeEIsWUFBWSxLQUF3QjtRQUNsQyxJQUFJLENBQUMsK0JBQStCO1lBQ2xDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQztRQUN4QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUFDO0lBQ3JFLENBQUM7O0FBZkgsc0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUNhbmFyeU1ldHJpY3MgfSBmcm9tICcuL0lDYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JT3BlcmF0aW9uTWV0cmljRGV0YWlscyc7XG5pbXBvcnQgeyBDYW5hcnlNZXRyaWNQcm9wcyB9IGZyb20gJy4vcHJvcHMvQ2FuYXJ5TWV0cmljUHJvcHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgbWV0cmljcyBmb3IgYSBjYW5hcnkgdGVzdGluZyBhIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIENhbmFyeU1ldHJpY3MgaW1wbGVtZW50cyBJQ2FuYXJ5TWV0cmljcyB7XG4gIC8qKlxuICAgKiBUaGUgY2FuYXJ5IGF2YWlsYWJpbGl0eSBtZXRyaWMgZGV0YWlsc1xuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgbGF0ZW5jeSBtZXRyaWMgZGV0YWlsc1xuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBDYW5hcnlNZXRyaWNQcm9wcykge1xuICAgIHRoaXMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyA9XG4gICAgICBwcm9wcy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzO1xuICAgIHRoaXMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBwcm9wcy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlscztcbiAgfVxufVxuIl19
@@ -19,5 +19,5 @@ class CanaryTestMetricsOverride {
19
19
  }
20
20
  exports.CanaryTestMetricsOverride = CanaryTestMetricsOverride;
21
21
  _a = JSII_RTTI_SYMBOL_1;
22
- CanaryTestMetricsOverride[_a] = { fqn: "@cdklabs/multi-az-observability.CanaryTestMetricsOverride", version: "0.0.1-alpha.30" };
22
+ CanaryTestMetricsOverride[_a] = { fqn: "@cdklabs/multi-az-observability.CanaryTestMetricsOverride", version: "0.0.1-alpha.32" };
23
23
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9DYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUE7OztHQUdHO0FBQ0gsTUFBYSx5QkFBeUI7SUFvQ3BDLFlBQVksS0FBcUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDakQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztRQUN6RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7O0FBM0NILDhEQTRDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUNhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGUgfSBmcm9tICcuL0lDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlJztcbmltcG9ydCB7IENhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGVQcm9wcyB9IGZyb20gJy4vcHJvcHMvQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzJztcblxuLyoqXG4gKiBQcm92aWRlcyBvdmVycmlkZXMgZm9yIHRoZSBkZWZhdWx0IG1ldHJpYyBzZXR0aW5nc1xuICogdXNlZCBmb3IgdGhlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBjYW5hcnkgdGVzdHNcbiAqL1xuZXhwb3J0IGNsYXNzIENhbmFyeVRlc3RNZXRyaWNzT3ZlcnJpZGUgaW1wbGVtZW50cyBJQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZSB7XG4gIC8qKlxuICAgKiBUaGUgc3RhdGlzdGljIHVzZWQgZm9yIGFsYXJtcywgZm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzIHRoaXMgc2hvdWxkXG4gICAqIGJlIFwiU3VtXCIsIGZvciBsYXRlbmN5IG1ldHJpY3MgaXQgY291bGQgc29tZXRoaW5nIGxpa2UgXCJwOTlcIiBvciBcInA5OS45XCJcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtU3RhdGlzdGljPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgcGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZXZhbHVhdGlvbiBwZXJpb2RzIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWx0aXkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXRhcG9pbnRzIHRvIGFsYXJtIG9uIGZvciBsYXRlbmN5IGFuZCBhdmFpbGFiaWxpdHkgYWxhcm1zXG4gICAqL1xuICByZWFkb25seSBkYXRhcG9pbnRzVG9BbGFybT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBzdWNjZXNzIG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBzdWNjZXNzIHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDk5LCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgc3VjY2VzcyBkcm9wcyBiZWxvdyA5OSUuXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIGFsYXJtcyBhc3NvY2lhdGVkIHdpdGggZmF1bHQgbWV0cmljcywgZm9yIGV4YW1wbGUgaWYgbWVhc3VyaW5nXG4gICAqIGZhdWx0IHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDEsIG1lYW5pbmcgeW91IHdvdWxkIHdhbnQgYW4gYWxhcm0gdGhhdCB0cmlnZ2Vyc1xuICAgKiBpZiB0aGUgZmF1bHQgcmF0ZSBnb2VzIGFib3ZlIDElLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRBbGFybVRocmVzaG9sZD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZVByb3BzKSB7XG4gICAgdGhpcy5hbGFybVN0YXRpc3RpYyA9IHByb3BzLmFsYXJtU3RhdGlzdGljO1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kO1xuICAgIHRoaXMuZXZhbHVhdGlvblBlcmlvZHMgPSBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcztcbiAgICB0aGlzLmRhdGFwb2ludHNUb0FsYXJtID0gcHJvcHMuZGF0YXBvaW50c1RvQWxhcm07XG4gICAgdGhpcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGQgPSBwcm9wcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGQ7XG4gICAgdGhpcy5mYXVsdEFsYXJtVGhyZXNob2xkID0gcHJvcHMuZmF1bHRBbGFybVRocmVzaG9sZDtcbiAgfVxufVxuIl19
@@ -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.30" };
22
+ ContributorInsightRuleDetails[_a] = { fqn: "@cdklabs/multi-az-observability.ContributorInsightRuleDetails", version: "0.0.1-alpha.32" };
23
23
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQTs7O0dBR0c7QUFDSCxNQUFhLDZCQUE2QjtJQXdDeEMsWUFBWSxLQUF5QztRQUNuRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztRQUN6RCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDO0lBQ3pFLENBQUM7O0FBL0NILHNFQWdEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IElMb2dHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IElDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyB9IGZyb20gJy4vSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzJztcbmltcG9ydCB7IENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzUHJvcHMnO1xuXG4vKipcbiAqIFRoZSBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGUgZGV0YWlscyBmb3IgY3JlYXRpbmcgYW5cbiAqIGluc2lnaHQgcnVsZVxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHNcbmltcGxlbWVudHMgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIHtcbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXBzIHdoZXJlIENsb3VkV2F0Y2ggbG9ncyBmb3IgdGhlIG9wZXJhdGlvbiBhcmUgbG9jYXRlZC4gSWZcbiAgICogdGhpcyBpcyBub3QgcHJvdmlkZWQsIENvbnRyaWJ1dG9yIEluc2lnaHQgcnVsZXMgY2Fubm90IGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHM6IElMb2dHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB0aGUgbG9nIGZpbGVzIHRvIHRoZSBmaWVsZCB0aGF0IGluZGljYXRlcyB0aGUgbGF0ZW5jeVxuICAgKiBmb3IgdGhlIHJlc3BvbnNlLiBUaGlzIGNvdWxkIGVpdGhlciBiZSBzdWNjZXNzIGxhdGVuY3kgb3IgZmF1bHRcbiAgICogbGF0ZW5jeSBkZXBlbmRpbmcgb24gdGhlIGFsYXJtcyBhbmQgcnVsZXMgeW91IGFyZSBjcmVhdGluZy5cbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NMYXRlbmN5TWV0cmljSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIGxvZyBmaWxlcyB0byB0aGUgZmllbGQgdGhhdCBpZGVudGlmaWVzIHRoZSBvcGVyYXRpb25cbiAgICogdGhlIGxvZyBmaWxlIGlzIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWVKc29uUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB0aGUgbG9nIGZpbGVzIHRvIHRoZSBmaWVsZCB0aGF0IGlkZW50aWZpZXMgaWYgdGhlIHJlc3BvbnNlXG4gICAqIHJlc3VsdGVkIGluIGEgZmF1bHQsIGZvciBleGFtcGxlIHsgXCJGYXVsdFwiIDogMSB9IHdvdWxkIGhhdmUgYSBwYXRoIG9mICQuRmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0TWV0cmljSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIGxvZyBmaWxlcyB0byB0aGUgZmllbGQgdGhhdCBpZGVudGlmaWVzIHRoZSBBdmFpbGFiaWxpdHkgWm9uZVxuICAgKiBJZCB0aGF0IHRoZSByZXF1ZXN0IHdhcyBoYW5kbGVkIGluLCBmb3IgZXhhbXBsZSB7IFwiQVotSURcIjogXCJ1c2UxLWF6MVwiIH0gd291bGRcbiAgICogaGF2ZSBhIHBhdGggb2YgJC5BWi1JRFxuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZUlkSnNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEpTT04gcGF0aCB0byB0aGUgaW5zdGFuY2UgaWQgZmllbGQgaW4gdGhlIGxvZyBmaWxlcywgb25seSByZXF1aXJlZCBmb3Igc2VydmVyLXNpZGVcbiAgICogcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWRKc29uUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1Byb3BzKSB7XG4gICAgdGhpcy5hdmFpbGFiaWxpdHlab25lSWRKc29uUGF0aCA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmVJZEpzb25QYXRoO1xuICAgIHRoaXMuZmF1bHRNZXRyaWNKc29uUGF0aCA9IHByb3BzLmZhdWx0TWV0cmljSnNvblBhdGg7XG4gICAgdGhpcy5pbnN0YW5jZUlkSnNvblBhdGggPSBwcm9wcy5pbnN0YW5jZUlkSnNvblBhdGg7XG4gICAgdGhpcy5sb2dHcm91cHMgPSBwcm9wcy5sb2dHcm91cHM7XG4gICAgdGhpcy5vcGVyYXRpb25OYW1lSnNvblBhdGggPSBwcm9wcy5vcGVyYXRpb25OYW1lSnNvblBhdGg7XG4gICAgdGhpcy5zdWNjZXNzTGF0ZW5jeU1ldHJpY0pzb25QYXRoID0gcHJvcHMuc3VjY2Vzc0xhdGVuY3lNZXRyaWNKc29uUGF0aDtcbiAgfVxufVxuIl19
@@ -276,15 +276,13 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
276
276
  this.operationDashboards = [];
277
277
  props.service.operations.forEach((x) => {
278
278
  let dashboardStack = new aws_cdk_lib_1.NestedStack(this, x.operationName + 'Dashboard', {});
279
- if (this.operationDashboards) {
280
- this.operationDashboards.push(new OperationAvailabilityAndLatencyDashboard_1.OperationAvailabilityAndLatencyDashboard(dashboardStack, x.operationName, {
281
- operationAlarmsAndRules: this.perOperationAlarmsAndRules[x.operationName],
282
- azMapper: this.azMapper,
283
- interval: props.interval
284
- ? props.interval
285
- : aws_cdk_lib_1.Duration.minutes(60),
286
- }).dashboard);
287
- }
279
+ this.operationDashboards.push(new OperationAvailabilityAndLatencyDashboard_1.OperationAvailabilityAndLatencyDashboard(dashboardStack, x.operationName, {
280
+ operationAlarmsAndRules: this.perOperationAlarmsAndRules[x.operationName],
281
+ azMapper: this.azMapper,
282
+ interval: props.interval
283
+ ? props.interval
284
+ : aws_cdk_lib_1.Duration.minutes(60),
285
+ }).dashboard);
288
286
  });
289
287
  let dashboardStack = new aws_cdk_lib_1.NestedStack(this, 'ServiceDashboard', {});
290
288
  // TOOD: Revamp service level dashboard and rethink alarms
@@ -294,11 +292,12 @@ class InstrumentedServiceMultiAZObservability extends constructs_1.Construct {
294
292
  aggregateRegionalAlarm: this.serviceAlarms.regionalFaultCountServerSideAlarm,
295
293
  zonalAggregateAlarms: this.serviceAlarms.zonalAggregateIsolatedImpactAlarms,
296
294
  azMapper: this.azMapper,
295
+ operationsDashboard: this.operationDashboards
297
296
  }).dashboard;
298
297
  }
299
298
  }
300
299
  }
301
300
  exports.InstrumentedServiceMultiAZObservability = InstrumentedServiceMultiAZObservability;
302
301
  _a = JSII_RTTI_SYMBOL_1;
303
- InstrumentedServiceMultiAZObservability[_a] = { fqn: "@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservability", version: "0.0.1-alpha.30" };
304
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQW9EO0FBSXBELDJDQUFtRDtBQUNuRCxtREFBZ0Q7QUFJaEQsMkNBQXdDO0FBQ3hDLHFFQUFrRTtBQUVsRSwrREFBNEQ7QUFHNUQsdUZBQW9GO0FBQ3BGLG1GQUFnRjtBQUNoRiwrRUFBNEU7QUFDNUUsK0RBQTREO0FBQzVELHVEQUFvRDtBQUVwRCxxSEFBa0g7QUFDbEgsaUhBQThHO0FBQzlHLDRGQUF5RjtBQUN6RixzRkFBbUY7QUFDbkYsZ0ZBQTZFO0FBRTdFOzs7O0dBSUc7QUFDSCxNQUFhLHVDQUNYLFNBQVEsc0JBQVM7SUFzRGpCOzs7OztPQUtHO0lBQ0ssZ0JBQWdCLENBQ3RCLEtBQWlCLEVBQ2pCLEtBQW1EO1FBSW5ELElBQUksTUFBTSxHQUFHLElBQUksK0JBQWMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7WUFDdkQsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHO1lBQzdELGVBQWUsRUFDZCxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsb0JBQW9CLEVBQUUsZUFBZTtZQUNyRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLE9BQU87Z0JBQ2pELENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsT0FBTztnQkFDeEMsQ0FBQyxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN2QixlQUFlLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLGVB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QVE7YUFDeEIsQ0FDRixDQUFDLFNBQVMsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOztBQW5lSCwwRkFvZUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEYXNoYm9hcmQsIElBbGFybSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgSUxvZ0dyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlNZXRyaWNzIH0gZnJvbSAnLi9DYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkgfSBmcm9tICcuL0lJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHknO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4vSU9wZXJhdGlvbic7XG5pbXBvcnQgeyBJT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4vSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSAnLi9PcGVyYXRpb24nO1xuaW1wb3J0IHsgT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4vT3BlcmF0aW9uTWV0cmljRGV0YWlscyc7XG5pbXBvcnQgeyBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyB9IGZyb20gJy4vcHJvcHMvSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vcHJvcHMvTWV0cmljRGltZW5zaW9ucyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9JT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4uL2FsYXJtc2FuZHJ1bGVzL0lTZXJ2aWNlQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2aWNlQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9TZXJ2aWNlQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4uL2F6bWFwcGVyL0F2YWlsYWJpbGl0eVpvbmVNYXBwZXInO1xuaW1wb3J0IHsgQ2FuYXJ5RnVuY3Rpb24gfSBmcm9tICcuLi9jYW5hcmllcy9DYW5hcnlGdW5jdGlvbic7XG5pbXBvcnQgeyBDYW5hcnlUZXN0IH0gZnJvbSAnLi4vY2FuYXJpZXMvQ2FuYXJ5VGVzdCc7XG5pbXBvcnQgeyBBZGRDYW5hcnlUZXN0UHJvcHMgfSBmcm9tICcuLi9jYW5hcmllcy9wcm9wcy9BZGRDYW5hcnlUZXN0UHJvcHMnO1xuaW1wb3J0IHsgT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZCB9IGZyb20gJy4uL2Rhc2hib2FyZHMvT3BlcmF0aW9uQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZCc7XG5pbXBvcnQgeyBTZXJ2aWNlQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZCB9IGZyb20gJy4uL2Rhc2hib2FyZHMvU2VydmljZUF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQnO1xuaW1wb3J0IHsgT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uJztcbmltcG9ydCB7IE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gfSBmcm9tICcuLi91dGlsaXRpZXMvT3V0bGllckRldGVjdGlvbkFsZ29yaXRobSc7XG5pbXBvcnQgeyBTdGFja1dpdGhEeW5hbWljU291cmNlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL1N0YWNrV2l0aER5bmFtaWNTb3VyY2UnO1xuXG4vKipcbiAqIEFuIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGl0cyBvd24gaW5zdHJ1bWVudGF0aW9uIHRvIHJlY29yZFxuICogYXZhaWxhYmlsaXR5IGFuZCBsYXRlbmN5IG1ldHJpY3MgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGVcbiAqIGFsYXJtcywgcnVsZXMsIGFuZCBkYXNoYm9hcmRzIGZyb21cbiAqL1xuZXhwb3J0IGNsYXNzIEluc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkge1xuICAvKipcbiAgICogS2V5IHJlcHJlc2VudHMgdGhlIG9wZXJhdGlvbiBuYW1lIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHNldFxuICAgKiBvZiB6b25hbCBhbGFybXMgYW5kIHJ1bGVzIGZvciB0aGF0IG9wZXJhdGlvbi4gVGhlIHZhbHVlcyB0aGVtc2VsdmVzXG4gICAqIGFyZSBkaWN0aW9uYXJpZXMgdGhhdCBoYXZlIGEga2V5IGZvciBlYWNoIEFaIElELlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlczoge1xuICAgIFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcztcbiAgfTtcblxuICAvKipcbiAgICogSW5kZXggaW50byB0aGUgZGljdGlvbmFyeSBieSBvcGVyYXRpb24gbmFtZSwgdGhlbiBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZFxuICAgKiB0byBnZXQgdGhlIGFsYXJtcyB0aGF0IGluZGljYXRlIGFuIEFaIHNob3dzIGlzb2xhdGVkIGltcGFjdCBmcm9tIGF2YWlsYWJpbGl0eVxuICAgKiBvciBsYXRlbmN5IGFzIHNlZW4gYnkgZWl0aGVyIHRoZSBzZXJ2ZXItc2lkZSBvciBjYW5hcnkuIFRoZXNlIGFyZSB0aGUgYWxhcm1zXG4gICAqIHlvdSB3b3VsZCB3YW50IHRvIHVzZSB0byB0cmlnZ2VyIGF1dG9tYXRpb24gdG8gZXZhY3VhdGUgYW4gQVouXG4gICAqL1xuICByZWFkb25seSBwZXJPcGVyYXRpb25ab25hbEltcGFjdEFsYXJtczoge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgYW5kIHJ1bGVzIGZvciB0aGUgb3ZlcmFsbCBzZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlQWxhcm1zOiBJU2VydmljZUFsYXJtc0FuZFJ1bGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgZGFzaGJvYXJkcyBmb3IgZWFjaCBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkRhc2hib2FyZHM/OiBEYXNoYm9hcmRbXTtcblxuICAvKipcbiAgICogVGhlIHNlcnZpY2UgbGV2ZWwgZGFzaGJvYXJkXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlRGFzaGJvYXJkPzogRGFzaGJvYXJkO1xuXG4gIC8qKlxuICAgKiBUaGUgQVogbWFwcGVyIGN1c3RvbSByZXNvdXJjZSB1c2VkIHRvIG1hcCBBWiBJZHMgdG8gTmFtZXMgYW5kIHZpY2UgYSB2ZXJzYVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhek1hcHBlcjogQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcjtcblxuICAvKipcbiAgICogSWYgdGhlIHNlcnZpY2UgaXMgY29uZmlndXJlZCB0byBoYXZlIGNhbmFyeSB0ZXN0cyBjcmVhdGVkLCB0aGlzIHdpbGxcbiAgICogYmUgdGhlIGxvZyBncm91cCB3aGVyZSB0aGUgY2FuYXJ5J3MgbG9ncyBhcmUgc3RvcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGxvZyBncm91cCBpcyBjcmVhdGVkIGlmIHRoZSBjYW5hcnkgaXMgbm90IHJlcXVlc3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeUxvZ0dyb3VwPzogSUxvZ0dyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGNhbGN1bGF0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbj86IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB1cCB0aGUgY2FuYXJ5IHRlc3RpbmcgZnVuY3Rpb24gYW5kIHRlc3RcbiAgICogZXZlbnRzXG4gICAqIEBwYXJhbSBzY29wZSBcbiAgICogQHBhcmFtIHByb3BzIFxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cENhbmFyeVRlc3RzKFxuICAgIHNjb3BlOiBJQ29uc3RydWN0LFxuICAgIHByb3BzOiBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyxcbiAgKSA6IHZvaWQge1xuXG5cbiAgICBsZXQgY2FuYXJ5ID0gbmV3IENhbmFyeUZ1bmN0aW9uKHNjb3BlLCAnQ2FuYXJ5RnVuY3Rpb24nLCB7XG4gICAgICB2cGM6IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS5uZXR3b3JrQ29uZmlndXJhdGlvbj8udnBjLFxuICAgICAgc3VibmV0U2VsZWN0aW9uOlxuICAgICAgIHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS5uZXR3b3JrQ29uZmlndXJhdGlvbj8uc3VibmV0U2VsZWN0aW9uLFxuICAgICAgaHR0cFRpbWVvdXQ6IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS50aW1lb3V0XG4gICAgICAgID8gcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLnRpbWVvdXRcbiAgICAgICAgOiBEdXJhdGlvbi5zZWNvbmRzKDIpLFxuICAgICAgaWdub3JlVGxzRXJyb3JzOiBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEuaWdub3JlVGxzRXJyb3JzXG4gICAgICAgID8gcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLmlnbm9yZVRsc0Vycm9yc1xuICAgICAgICA6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zLmZvckVhY2goKG9wZXJhdGlvbjogSU9wZXJhdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKG9wZXJhdGlvbi5vcHRPdXRPZlNlcnZpY2VDcmVhdGVkQ2FuYXJ5ICE9IHRydWUpIHtcbiAgICAgICAgbGV0IHRlc3RQcm9wczogQWRkQ2FuYXJ5VGVzdFByb3BzID0gb3BlcmF0aW9uLmNhbmFyeVRlc3RQcm9wc1xuICAgICAgICAgID8gb3BlcmF0aW9uLmNhbmFyeVRlc3RQcm9wc1xuICAgICAgICAgIDogKHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIGFzIEFkZENhbmFyeVRlc3RQcm9wcyk7XG5cbiAgICAgICAgbGV0IG5lc3RlZFN0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgJ0NhbmFyeVRlc3QnLFxuICAgICAgICAgIHt9LFxuICAgICAgICApO1xuXG4gICAgICAgIGxldCB0ZXN0ID0gbmV3IENhbmFyeVRlc3QobmVzdGVkU3RhY2ssIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLCB7XG4gICAgICAgICAgZnVuY3Rpb246IGNhbmFyeS5mdW5jdGlvbixcbiAgICAgICAgICByZXF1ZXN0Q291bnQ6IHRlc3RQcm9wcy5yZXF1ZXN0Q291bnQsXG4gICAgICAgICAgcmVnaW9uYWxSZXF1ZXN0Q291bnQ6IHRlc3RQcm9wcy5yZWdpb25hbFJlcXVlc3RDb3VudFxuICAgICAgICAgICAgPyB0ZXN0UHJvcHMucmVnaW9uYWxSZXF1ZXN0Q291bnRcbiAgICAgICAgICAgIDogdGVzdFByb3BzLnJlcXVlc3RDb3VudCxcbiAgICAgICAgICBzY2hlZHVsZTogdGVzdFByb3BzLnNjaGVkdWxlLFxuICAgICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uLFxuICAgICAgICAgIGxvYWRCYWxhbmNlcjogdGVzdFByb3BzLmxvYWRCYWxhbmNlcixcbiAgICAgICAgICBoZWFkZXJzOiB0ZXN0UHJvcHMuaGVhZGVycyxcbiAgICAgICAgICBwb3N0RGF0YTogdGVzdFByb3BzLnBvc3REYXRhLFxuICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzO1xuICAgICAgICBsZXQgZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzOiBJT3BlcmF0aW9uTWV0cmljRGV0YWlscztcblxuICAgICAgICBpZiAob3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHM/LmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMpIHtcbiAgICAgICAgICBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgYWxhcm1TdGF0aXN0aWM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgZmF1bHRBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgZ3JhcGhlZEZhdWx0U3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZ3JhcGhlZEZhdWx0U3RhdGlzdGljcyxcbiAgICAgICAgICAgICAgZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBwZXJpb2Q6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnBlcmlvZCxcbiAgICAgICAgICAgICAgc3VjY2Vzc0FsYXJtVGhyZXNob2xkOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc01ldHJpY05hbWVzLFxuICAgICAgICAgICAgICB1bml0OiBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgIC5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLnVuaXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZpY2UuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZSkge1xuICAgICAgICAgIGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbk1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2VzcyddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0JywgJ0ZhaWx1cmUnXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcblxuICAgICAgICAgICAgICBhbGFybVN0YXRpc3RpYzpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgICAgICBmYXVsdEFsYXJtVGhyZXNob2xkOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0QXZhaWxhYmlsaXR5TWV0cmljc092ZXJyaWRlXG4gICAgICAgICAgICAgICAgICAuZmF1bHRBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgcGVyaW9kOiBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZS5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGVzdC5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczogWydTdWNjZXNzJ10sXG4gICAgICAgICAgICAgIGZhdWx0TWV0cmljTmFtZXM6IFsnRmF1bHQnLCAnRmFpbHVyZSddLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2UuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscz8uY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHMpIHtcbiAgICAgICAgICBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY0RpbWVuc2lvbnM6IG5ldyBNZXRyaWNEaW1lbnNpb25zKFxuICAgICAgICAgICAgICAgIHsgT3BlcmF0aW9uOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSB9LFxuICAgICAgICAgICAgICAgICdBWi1JRCcsXG4gICAgICAgICAgICAgICAgJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGFsYXJtU3RhdGlzdGljOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuYWxhcm1TdGF0aXN0aWMsXG4gICAgICAgICAgICAgIGRhdGFwb2ludHNUb0FsYXJtOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICAgIGZhdWx0QWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5mYXVsdEFsYXJtVGhyZXNob2xkLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgZ3JhcGhlZEZhdWx0U3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmdyYXBoZWRGYXVsdFN0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIGdyYXBoZWRTdWNjZXNzU3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmdyYXBoZWRTdWNjZXNzU3RhdGlzdGljcyxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBwZXJpb2Q6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgc3VjY2Vzc01ldHJpY05hbWVzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc01ldHJpY05hbWVzLFxuICAgICAgICAgICAgICB1bml0OiBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgIC51bml0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZSkge1xuICAgICAgICAgIGRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiB0ZXN0Lm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgc3VjY2Vzc01ldHJpY05hbWVzOiBbJ1N1Y2Nlc3NMYXRlbmN5J10sXG4gICAgICAgICAgICAgIGZhdWx0TWV0cmljTmFtZXM6IFsnRmF1bHRMYXRlbmN5J10sXG4gICAgICAgICAgICAgIG1ldHJpY0RpbWVuc2lvbnM6IG5ldyBNZXRyaWNEaW1lbnNpb25zKFxuICAgICAgICAgICAgICAgIHsgT3BlcmF0aW9uOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSB9LFxuICAgICAgICAgICAgICAgICdBWi1JRCcsXG4gICAgICAgICAgICAgICAgJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICksXG5cbiAgICAgICAgICAgICAgYWxhcm1TdGF0aXN0aWM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUuZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZS5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgZmF1bHRBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5mYXVsdEFsYXJtVGhyZXNob2xkLFxuICAgICAgICAgICAgICBwZXJpb2Q6IG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZS5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvcHMuc2VydmljZS5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGVzdC5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczogWydTdWNjZXNzTGF0ZW5jeSddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0TGF0ZW5jeSddLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2UuZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbmV3T3BlcmF0aW9uID0gbmV3IE9wZXJhdGlvbih7XG4gICAgICAgICAgc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBvcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgc2VydmVyU2lkZUxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICBzZXJ2ZXJTaWRlQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6XG4gICAgICAgICAgICBvcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzLFxuICAgICAgICAgIHNlcnZpY2U6IG9wZXJhdGlvbi5zZXJ2aWNlLFxuICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgIHBhdGg6IG9wZXJhdGlvbi5wYXRoLFxuICAgICAgICAgIGNyaXRpY2FsOiBvcGVyYXRpb24uY3JpdGljYWwsXG4gICAgICAgICAgaHR0cE1ldGhvZHM6IG9wZXJhdGlvbi5odHRwTWV0aG9kcyxcbiAgICAgICAgICBjYW5hcnlNZXRyaWNEZXRhaWxzOiBuZXcgQ2FuYXJ5TWV0cmljcyh7XG4gICAgICAgICAgICBjYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOiBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzOiBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb3BzLnNlcnZpY2Uub3BlcmF0aW9uc1tpbmRleF0gPSBuZXdPcGVyYXRpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEluc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IG91dGxpZXJUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAgIC8vIFNldCBkZWZhdWx0c1xuICAgIGlmICghcHJvcHMub3V0bGllclRocmVzaG9sZCkge1xuICAgICAgc3dpdGNoIChwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtKSB7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5DSElfU1FVQVJFRDpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMC4wNTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLklRUjpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMS41O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uTUFEOlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSAzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uU1RBVElDOlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSAwLjc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5aX1NDT1JFOlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRsaWVyVGhyZXNob2xkID0gcHJvcHMub3V0bGllclRocmVzaG9sZDtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIEFaIG1hcHBlciByZXNvdXJjZSB0aGF0IGFsbCBvZiB0aGUgcmVzb3VyY2VzXG4gICAgLy8gd2lsbCBzaGFyZVxuICAgIHRoaXMuYXpNYXBwZXIgPSBuZXcgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcih0aGlzLCAnQVpNYXBwZXInLCB7XG4gICAgICBhdmFpbGFiaWxpdHlab25lTmFtZXM6IHByb3BzLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBjYW5hcnkgdGVzdGluZyBzdGFjayBpZiB0aGUgdXNlciBwcm92aWRlZCBpbnB1dFxuICAgIGlmIChwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcykge1xuICAgICAgbGV0IGNhbmFyeVN0YWNrOiBTdGFja1dpdGhEeW5hbWljU291cmNlID0gbmV3IFN0YWNrV2l0aER5bmFtaWNTb3VyY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdDYW5hcnknLFxuICAgICAgICB7XG4gICAgICAgICAgYXNzZXRzQnVja2V0c1BhcmFtZXRlck5hbWU6IHByb3BzLmFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgYXNzZXRzQnVja2V0UHJlZml4UGFyYW1ldGVyTmFtZTpcbiAgICAgICAgICAgIHByb3BzLmFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWUsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNldHVwQ2FuYXJ5VGVzdHMoY2FuYXJ5U3RhY2ssIHByb3BzKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIG91dGxpZXIgZGV0ZWN0aW9uIGxhbWJkYSBmdW5jdGlvbiBzdGFjayBpZiB3ZSdyZSBub3RcbiAgICAvLyB1c2luZyBzdGF0aWMgb3V0bGllciBkZXRlY3Rpb25cbiAgICBpZiAocHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSAhPSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLlNUQVRJQykge1xuICAgICAgbGV0IG91dGxpZXJEZXRlY3Rpb25TdGFjazogU3RhY2tXaXRoRHluYW1pY1NvdXJjZSA9XG4gICAgICAgIG5ldyBTdGFja1dpdGhEeW5hbWljU291cmNlKHRoaXMsICdPdXRsaWVyRGV0ZWN0aW9uU3RhY2snLCB7XG4gICAgICAgICAgYXNzZXRzQnVja2V0c1BhcmFtZXRlck5hbWU6IHByb3BzLmFzc2V0c0J1Y2tldFBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgYXNzZXRzQnVja2V0UHJlZml4UGFyYW1ldGVyTmFtZTpcbiAgICAgICAgICAgIHByb3BzLmFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWUsXG4gICAgICAgIH0pO1xuICBcbiAgICAgIHRoaXMub3V0bGllckRldGVjdGlvbkZ1bmN0aW9uID0gbmV3IE91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbihcbiAgICAgICAgb3V0bGllckRldGVjdGlvblN0YWNrLFxuICAgICAgICAnT3V0bGllckRldGVjdGlvbkZ1bmN0aW9uJyxcbiAgICAgICAge30sXG4gICAgICApLmZ1bmN0aW9uO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgcGVyIG9wZXJhdGlvbiBhbGFybXMgYW5kIGNvbnRyaWJ1dG9yIGluc2lnaHQgcnVsZXNcbiAgICB0aGlzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zLm1hcCgob3BlcmF0aW9uOiBJT3BlcmF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBuZXN0ZWRTdGFjazogTmVzdGVkU3RhY2sgPSBuZXcgTmVzdGVkU3RhY2soXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdPcGVyYXRpb25BbGFybXNBbmRSdWxlc05lc3RlZFN0YWNrJyxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgIG5ldyBPcGVyYXRpb25BbGFybXNBbmRSdWxlcyhuZXN0ZWRTdGFjaywgb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uLFxuICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLFxuICAgICAgICAgICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ6IG91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkOiBvdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgbG9hZEJhbGFuY2VyOiBwcm9wcy5zZXJ2aWNlLmxvYWRCYWxhbmNlcixcbiAgICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICAgICAgb3V0bGllckRldGVjdGlvbkZ1bmN0aW9uOiB0aGlzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbixcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLnBlck9wZXJhdGlvblpvbmFsSW1wYWN0QWxhcm1zID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIFtrZXksIHZhbHVlLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwXTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBsZXQgc2VydmljZUFsYXJtc1N0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgIHRoaXMsXG4gICAgICAnU2VydmljZUFsYXJtc05lc3RlZFN0YWNrJyxcbiAgICApO1xuXG4gICAgdGhpcy5zZXJ2aWNlQWxhcm1zID0gbmV3IFNlcnZpY2VBbGFybXNBbmRSdWxlcyhcbiAgICAgIHNlcnZpY2VBbGFybXNTdGFjayxcbiAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUsXG4gICAgICB7XG4gICAgICAgIHBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzOiB0aGlzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzLFxuICAgICAgICBzZXJ2aWNlOiBwcm9wcy5zZXJ2aWNlLFxuICAgICAgICBhek1hcHBlcjogdGhpcy5hek1hcHBlcixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5jcmVhdGVEYXNoYm9hcmRzKSB7XG4gICAgICB0aGlzLm9wZXJhdGlvbkRhc2hib2FyZHMgPSBbXTtcblxuICAgICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgbGV0IGRhc2hib2FyZFN0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHgub3BlcmF0aW9uTmFtZSArICdEYXNoYm9hcmQnLFxuICAgICAgICAgIHt9LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbkRhc2hib2FyZHMpIHtcbiAgICAgICAgICB0aGlzLm9wZXJhdGlvbkRhc2hib2FyZHMucHVzaChcbiAgICAgICAgICAgIG5ldyBPcGVyYXRpb25BdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkKFxuICAgICAgICAgICAgICBkYXNoYm9hcmRTdGFjayxcbiAgICAgICAgICAgICAgeC5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXM6IHRoaXMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNbeC5vcGVyYXRpb25OYW1lXSxcbiAgICAgICAgICAgICAgICBhek1hcHBlcjogdGhpcy5hek1hcHBlcixcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogcHJvcHMuaW50ZXJ2YWxcbiAgICAgICAgICAgICAgICAgID8gcHJvcHMuaW50ZXJ2YWxcbiAgICAgICAgICAgICAgICAgIDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApLmRhc2hib2FyZCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGRhc2hib2FyZFN0YWNrOiBOZXN0ZWRTdGFjayA9IG5ldyBOZXN0ZWRTdGFjayhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VEYXNoYm9hcmQnLFxuICAgICAgICB7fSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFRPT0Q6IFJldmFtcCBzZXJ2aWNlIGxldmVsIGRhc2hib2FyZCBhbmQgcmV0aGluayBhbGFybXNcbiAgICAgIHRoaXMuc2VydmljZURhc2hib2FyZCA9IG5ldyBTZXJ2aWNlQXZhaWxhYmlsaXR5QW5kTGF0ZW5jeURhc2hib2FyZChcbiAgICAgICAgZGFzaGJvYXJkU3RhY2ssXG4gICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAge1xuICAgICAgICAgIGludGVydmFsOiBwcm9wcy5pbnRlcnZhbCA/IHByb3BzLmludGVydmFsIDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgICAgc2VydmljZTogcHJvcHMuc2VydmljZSxcbiAgICAgICAgICBhZ2dyZWdhdGVSZWdpb25hbEFsYXJtOlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlQWxhcm1zLnJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybSxcbiAgICAgICAgICB6b25hbEFnZ3JlZ2F0ZUFsYXJtczpcbiAgICAgICAgICAgIHRoaXMuc2VydmljZUFsYXJtcy56b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zLFxuICAgICAgICAgIGF6TWFwcGVyOiB0aGlzLmF6TWFwcGVyLFxuICAgICAgICB9LFxuICAgICAgKS5kYXNoYm9hcmQ7XG4gICAgfVxuICB9XG59XG4iXX0=
302
+ InstrumentedServiceMultiAZObservability[_a] = { fqn: "@cdklabs/multi-az-observability.InstrumentedServiceMultiAZObservability", version: "0.0.1-alpha.32" };
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQW9EO0FBSXBELDJDQUFtRDtBQUNuRCxtREFBZ0Q7QUFJaEQsMkNBQXdDO0FBQ3hDLHFFQUFrRTtBQUVsRSwrREFBNEQ7QUFHNUQsdUZBQW9GO0FBQ3BGLG1GQUFnRjtBQUNoRiwrRUFBNEU7QUFDNUUsK0RBQTREO0FBQzVELHVEQUFvRDtBQUVwRCxxSEFBa0g7QUFDbEgsaUhBQThHO0FBQzlHLDRGQUF5RjtBQUN6RixzRkFBbUY7QUFDbkYsZ0ZBQTZFO0FBRTdFOzs7O0dBSUc7QUFDSCxNQUFhLHVDQUNYLFNBQVEsc0JBQVM7SUFzRGpCOzs7OztPQUtHO0lBQ0ssZ0JBQWdCLENBQ3RCLEtBQWlCLEVBQ2pCLEtBQW1EO1FBSW5ELElBQUksTUFBTSxHQUFHLElBQUksK0JBQWMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7WUFDdkQsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHO1lBQzdELGVBQWUsRUFDZCxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsb0JBQW9CLEVBQUUsZUFBZTtZQUNyRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLE9BQU87Z0JBQ2pELENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsT0FBTztnQkFDeEMsQ0FBQyxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN2QixlQUFlLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLGVB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Q0FBQyxTQUFTLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzs7QUFsZUgsMEZBbWVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgRHVyYXRpb24sIE5lc3RlZFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRGFzaGJvYXJkLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2FuYXJ5TWV0cmljcyB9IGZyb20gJy4vQ2FuYXJ5TWV0cmljcyc7XG5pbXBvcnQgeyBJSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IH0gZnJvbSAnLi9JSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5JztcbmltcG9ydCB7IElPcGVyYXRpb24gfSBmcm9tICcuL0lPcGVyYXRpb24nO1xuaW1wb3J0IHsgSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMgfSBmcm9tICcuL0lPcGVyYXRpb25NZXRyaWNEZXRhaWxzJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vT3BlcmF0aW9uJztcbmltcG9ydCB7IE9wZXJhdGlvbk1ldHJpY0RldGFpbHMgfSBmcm9tICcuL09wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMgfSBmcm9tICcuL3Byb3BzL0luc3RydW1lbnRlZFNlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzJztcbmltcG9ydCB7IE1ldHJpY0RpbWVuc2lvbnMgfSBmcm9tICcuL3Byb3BzL01ldHJpY0RpbWVuc2lvbnMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi4vYWxhcm1zYW5kcnVsZXMvSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuLi9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IE9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi4vYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgU2VydmljZUFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi4vYWxhcm1zYW5kcnVsZXMvU2VydmljZUFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXIgfSBmcm9tICcuLi9hem1hcHBlci9BdmFpbGFiaWxpdHlab25lTWFwcGVyJztcbmltcG9ydCB7IENhbmFyeUZ1bmN0aW9uIH0gZnJvbSAnLi4vY2FuYXJpZXMvQ2FuYXJ5RnVuY3Rpb24nO1xuaW1wb3J0IHsgQ2FuYXJ5VGVzdCB9IGZyb20gJy4uL2NhbmFyaWVzL0NhbmFyeVRlc3QnO1xuaW1wb3J0IHsgQWRkQ2FuYXJ5VGVzdFByb3BzIH0gZnJvbSAnLi4vY2FuYXJpZXMvcHJvcHMvQWRkQ2FuYXJ5VGVzdFByb3BzJztcbmltcG9ydCB7IE9wZXJhdGlvbkF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQgfSBmcm9tICcuLi9kYXNoYm9hcmRzL09wZXJhdGlvbkF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQnO1xuaW1wb3J0IHsgU2VydmljZUF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQgfSBmcm9tICcuLi9kYXNoYm9hcmRzL1NlcnZpY2VBdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkJztcbmltcG9ydCB7IE91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiB9IGZyb20gJy4uL291dGxpZXItZGV0ZWN0aW9uL091dGxpZXJEZXRlY3Rpb25GdW5jdGlvbic7XG5pbXBvcnQgeyBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtIH0gZnJvbSAnLi4vdXRpbGl0aWVzL091dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0nO1xuaW1wb3J0IHsgU3RhY2tXaXRoRHluYW1pY1NvdXJjZSB9IGZyb20gJy4uL3V0aWxpdGllcy9TdGFja1dpdGhEeW5hbWljU291cmNlJztcblxuLyoqXG4gKiBBbiBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBpdHMgb3duIGluc3RydW1lbnRhdGlvbiB0byByZWNvcmRcbiAqIGF2YWlsYWJpbGl0eSBhbmQgbGF0ZW5jeSBtZXRyaWNzIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlXG4gKiBhbGFybXMsIHJ1bGVzLCBhbmQgZGFzaGJvYXJkcyBmcm9tXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IHtcbiAgLyoqXG4gICAqIEtleSByZXByZXNlbnRzIHRoZSBvcGVyYXRpb24gbmFtZSBhbmQgdGhlIHZhbHVlIGlzIHRoZSBzZXRcbiAgICogb2Ygem9uYWwgYWxhcm1zIGFuZCBydWxlcyBmb3IgdGhhdCBvcGVyYXRpb24uIFRoZSB2YWx1ZXMgdGhlbXNlbHZlc1xuICAgKiBhcmUgZGljdGlvbmFyaWVzIHRoYXQgaGF2ZSBhIGtleSBmb3IgZWFjaCBBWiBJRC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluZGV4IGludG8gdGhlIGRpY3Rpb25hcnkgYnkgb3BlcmF0aW9uIG5hbWUsIHRoZW4gYnkgQXZhaWxhYmlsaXR5IFpvbmUgSWRcbiAgICogdG8gZ2V0IHRoZSBhbGFybXMgdGhhdCBpbmRpY2F0ZSBhbiBBWiBzaG93cyBpc29sYXRlZCBpbXBhY3QgZnJvbSBhdmFpbGFiaWxpdHlcbiAgICogb3IgbGF0ZW5jeSBhcyBzZWVuIGJ5IGVpdGhlciB0aGUgc2VydmVyLXNpZGUgb3IgY2FuYXJ5LiBUaGVzZSBhcmUgdGhlIGFsYXJtc1xuICAgKiB5b3Ugd291bGQgd2FudCB0byB1c2UgdG8gdHJpZ2dlciBhdXRvbWF0aW9uIHRvIGV2YWN1YXRlIGFuIEFaLlxuICAgKi9cbiAgcmVhZG9ubHkgcGVyT3BlcmF0aW9uWm9uYWxJbXBhY3RBbGFybXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgYWxhcm1zIGFuZCBydWxlcyBmb3IgdGhlIG92ZXJhbGwgc2VydmljZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZUFsYXJtczogSVNlcnZpY2VBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGRhc2hib2FyZHMgZm9yIGVhY2ggb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25EYXNoYm9hcmRzPzogRGFzaGJvYXJkW107XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIGxldmVsIGRhc2hib2FyZFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZURhc2hib2FyZD86IERhc2hib2FyZDtcblxuICAvKipcbiAgICogVGhlIEFaIG1hcHBlciBjdXN0b20gcmVzb3VyY2UgdXNlZCB0byBtYXAgQVogSWRzIHRvIE5hbWVzIGFuZCB2aWNlIGEgdmVyc2FcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYXpNYXBwZXI6IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXI7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzZXJ2aWNlIGlzIGNvbmZpZ3VyZWQgdG8gaGF2ZSBjYW5hcnkgdGVzdHMgY3JlYXRlZCwgdGhpcyB3aWxsXG4gICAqIGJlIHRoZSBsb2cgZ3JvdXAgd2hlcmUgdGhlIGNhbmFyeSdzIGxvZ3MgYXJlIHN0b3JlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBsb2cgZ3JvdXAgaXMgY3JlYXRlZCBpZiB0aGUgY2FuYXJ5IGlzIG5vdCByZXF1ZXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlMb2dHcm91cD86IElMb2dHcm91cDtcblxuICAvKipcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBjYWxjdWxhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBvdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24/OiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIGNhbmFyeSB0ZXN0aW5nIGZ1bmN0aW9uIGFuZCB0ZXN0XG4gICAqIGV2ZW50c1xuICAgKiBAcGFyYW0gc2NvcGUgXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICovXG4gIHByaXZhdGUgc2V0dXBDYW5hcnlUZXN0cyhcbiAgICBzY29wZTogSUNvbnN0cnVjdCxcbiAgICBwcm9wczogSW5zdHJ1bWVudGVkU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMsXG4gICkgOiB2b2lkIHtcblxuXG4gICAgbGV0IGNhbmFyeSA9IG5ldyBDYW5hcnlGdW5jdGlvbihzY29wZSwgJ0NhbmFyeUZ1bmN0aW9uJywge1xuICAgICAgdnBjOiBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEubmV0d29ya0NvbmZpZ3VyYXRpb24/LnZwYyxcbiAgICAgIHN1Ym5ldFNlbGVjdGlvbjpcbiAgICAgICBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEubmV0d29ya0NvbmZpZ3VyYXRpb24/LnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGh0dHBUaW1lb3V0OiBwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyEudGltZW91dFxuICAgICAgICA/IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS50aW1lb3V0XG4gICAgICAgIDogRHVyYXRpb24uc2Vjb25kcygyKSxcbiAgICAgIGlnbm9yZVRsc0Vycm9yczogcHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMhLmlnbm9yZVRsc0Vycm9yc1xuICAgICAgICA/IHByb3BzLnNlcnZpY2UuY2FuYXJ5VGVzdFByb3BzIS5pZ25vcmVUbHNFcnJvcnNcbiAgICAgICAgOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHByb3BzLnNlcnZpY2Uub3BlcmF0aW9ucy5mb3JFYWNoKChvcGVyYXRpb246IElPcGVyYXRpb24sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChvcGVyYXRpb24ub3B0T3V0T2ZTZXJ2aWNlQ3JlYXRlZENhbmFyeSAhPSB0cnVlKSB7XG4gICAgICAgIGxldCB0ZXN0UHJvcHM6IEFkZENhbmFyeVRlc3RQcm9wcyA9IG9wZXJhdGlvbi5jYW5hcnlUZXN0UHJvcHNcbiAgICAgICAgICA/IG9wZXJhdGlvbi5jYW5hcnlUZXN0UHJvcHNcbiAgICAgICAgICA6IChwcm9wcy5zZXJ2aWNlLmNhbmFyeVRlc3RQcm9wcyBhcyBBZGRDYW5hcnlUZXN0UHJvcHMpO1xuXG4gICAgICAgIGxldCBuZXN0ZWRTdGFjazogTmVzdGVkU3RhY2sgPSBuZXcgTmVzdGVkU3RhY2soXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdDYW5hcnlUZXN0JyxcbiAgICAgICAgICB7fSxcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgdGVzdCA9IG5ldyBDYW5hcnlUZXN0KG5lc3RlZFN0YWNrLCBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSwge1xuICAgICAgICAgIGZ1bmN0aW9uOiBjYW5hcnkuZnVuY3Rpb24sXG4gICAgICAgICAgcmVxdWVzdENvdW50OiB0ZXN0UHJvcHMucmVxdWVzdENvdW50LFxuICAgICAgICAgIHJlZ2lvbmFsUmVxdWVzdENvdW50OiB0ZXN0UHJvcHMucmVnaW9uYWxSZXF1ZXN0Q291bnRcbiAgICAgICAgICAgID8gdGVzdFByb3BzLnJlZ2lvbmFsUmVxdWVzdENvdW50XG4gICAgICAgICAgICA6IHRlc3RQcm9wcy5yZXF1ZXN0Q291bnQsXG4gICAgICAgICAgc2NoZWR1bGU6IHRlc3RQcm9wcy5zY2hlZHVsZSxcbiAgICAgICAgICBvcGVyYXRpb246IG9wZXJhdGlvbixcbiAgICAgICAgICBsb2FkQmFsYW5jZXI6IHRlc3RQcm9wcy5sb2FkQmFsYW5jZXIsXG4gICAgICAgICAgaGVhZGVyczogdGVzdFByb3BzLmhlYWRlcnMsXG4gICAgICAgICAgcG9zdERhdGE6IHRlc3RQcm9wcy5wb3N0RGF0YSxcbiAgICAgICAgICBhek1hcHBlcjogdGhpcy5hek1hcHBlcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOiBJT3BlcmF0aW9uTWV0cmljRGV0YWlscztcbiAgICAgICAgbGV0IGRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzPy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzKSB7XG4gICAgICAgICAgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY0RpbWVuc2lvbnM6IG5ldyBNZXRyaWNEaW1lbnNpb25zKFxuICAgICAgICAgICAgICAgIHsgT3BlcmF0aW9uOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSB9LFxuICAgICAgICAgICAgICAgICdBWi1JRCcsXG4gICAgICAgICAgICAgICAgJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGFsYXJtU3RhdGlzdGljOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICAgIGZhdWx0QWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmZhdWx0QWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIGZhdWx0TWV0cmljTmFtZXM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmZhdWx0TWV0cmljTmFtZXMsXG4gICAgICAgICAgICAgIGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmdyYXBoZWRGYXVsdFN0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIGdyYXBoZWRTdWNjZXNzU3RhdGlzdGljczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgcGVyaW9kOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5wZXJpb2QsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc0FsYXJtVGhyZXNob2xkLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgdW5pdDogb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscy51bml0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGUpIHtcbiAgICAgICAgICBkZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyA9IG5ldyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiB0ZXN0Lm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgc3VjY2Vzc01ldHJpY05hbWVzOiBbJ1N1Y2Nlc3MnXSxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczogWydGYXVsdCcsICdGYWlsdXJlJ10sXG4gICAgICAgICAgICAgIG1ldHJpY0RpbWVuc2lvbnM6IG5ldyBNZXRyaWNEaW1lbnNpb25zKFxuICAgICAgICAgICAgICAgIHsgT3BlcmF0aW9uOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSB9LFxuICAgICAgICAgICAgICAgICdBWi1JRCcsXG4gICAgICAgICAgICAgICAgJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICksXG5cbiAgICAgICAgICAgICAgYWxhcm1TdGF0aXN0aWM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICAgICAgZmF1bHRBbGFybVRocmVzaG9sZDpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZVxuICAgICAgICAgICAgICAgICAgLmZhdWx0QWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIHBlcmlvZDogb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGUucGVyaW9kLFxuICAgICAgICAgICAgICBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGVcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvcHMuc2VydmljZS5kZWZhdWx0QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbk1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2VzcyddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0JywgJ0ZhaWx1cmUnXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHM/LmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzKSB7XG4gICAgICAgICAgZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbk1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBhbGFybVN0YXRpc3RpYzpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmFsYXJtU3RhdGlzdGljLFxuICAgICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgICAgICBmYXVsdEFsYXJtVGhyZXNob2xkOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAuZmF1bHRBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLmZhdWx0TWV0cmljTmFtZXMsXG4gICAgICAgICAgICAgIGdyYXBoZWRGYXVsdFN0YXRpc3RpY3M6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ncmFwaGVkRmF1bHRTdGF0aXN0aWNzLFxuICAgICAgICAgICAgICBncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3M6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3MsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLm1ldHJpY05hbWVzcGFjZSxcbiAgICAgICAgICAgICAgcGVyaW9kOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlNZXRyaWNEZXRhaWxzLmNhbmFyeUxhdGVuY3lNZXRyaWNEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAucGVyaW9kLFxuICAgICAgICAgICAgICBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAgIC5zdWNjZXNzQWxhcm1UaHJlc2hvbGQsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgLnN1Y2Nlc3NNZXRyaWNOYW1lcyxcbiAgICAgICAgICAgICAgdW5pdDogb3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHMuY2FuYXJ5TGF0ZW5jeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAudW5pdCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcGVyYXRpb24uc2VydmljZS5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUpIHtcbiAgICAgICAgICBkZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBuZXcgT3BlcmF0aW9uTWV0cmljRGV0YWlscyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogdGVzdC5tZXRyaWNOYW1lc3BhY2UsXG4gICAgICAgICAgICAgIHN1Y2Nlc3NNZXRyaWNOYW1lczogWydTdWNjZXNzTGF0ZW5jeSddLFxuICAgICAgICAgICAgICBmYXVsdE1ldHJpY05hbWVzOiBbJ0ZhdWx0TGF0ZW5jeSddLFxuICAgICAgICAgICAgICBtZXRyaWNEaW1lbnNpb25zOiBuZXcgTWV0cmljRGltZW5zaW9ucyhcbiAgICAgICAgICAgICAgICB7IE9wZXJhdGlvbjogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgfSxcbiAgICAgICAgICAgICAgICAnQVotSUQnLFxuICAgICAgICAgICAgICAgICdSZWdpb24nLFxuICAgICAgICAgICAgICApLFxuXG4gICAgICAgICAgICAgIGFsYXJtU3RhdGlzdGljOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5jYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZS5hbGFybVN0YXRpc3RpYyxcbiAgICAgICAgICAgICAgZGF0YXBvaW50c1RvQWxhcm06XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlLmRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgICAgIGZhdWx0QWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlXG4gICAgICAgICAgICAgICAgICAuZmF1bHRBbGFybVRocmVzaG9sZCxcbiAgICAgICAgICAgICAgcGVyaW9kOiBvcGVyYXRpb24uY2FuYXJ5VGVzdExhdGVuY3lNZXRyaWNzT3ZlcnJpZGUucGVyaW9kLFxuICAgICAgICAgICAgICBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlXG4gICAgICAgICAgICAgICAgICAuc3VjY2Vzc0FsYXJtVGhyZXNob2xkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2UuZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzID0gbmV3IE9wZXJhdGlvbk1ldHJpY0RldGFpbHMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IHRlc3QubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgICAgICBzdWNjZXNzTWV0cmljTmFtZXM6IFsnU3VjY2Vzc0xhdGVuY3knXSxcbiAgICAgICAgICAgICAgZmF1bHRNZXRyaWNOYW1lczogWydGYXVsdExhdGVuY3knXSxcbiAgICAgICAgICAgICAgbWV0cmljRGltZW5zaW9uczogbmV3IE1ldHJpY0RpbWVuc2lvbnMoXG4gICAgICAgICAgICAgICAgeyBPcGVyYXRpb246IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lIH0sXG4gICAgICAgICAgICAgICAgJ0FaLUlEJyxcbiAgICAgICAgICAgICAgICAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLmRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5ld09wZXJhdGlvbiA9IG5ldyBPcGVyYXRpb24oe1xuICAgICAgICAgIHNlcnZlclNpZGVBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZlclNpZGVBdmFpbGFiaWxpdHlNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIHNlcnZlclNpZGVMYXRlbmN5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzOlxuICAgICAgICAgICAgb3BlcmF0aW9uLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBzZXJ2aWNlOiBvcGVyYXRpb24uc2VydmljZSxcbiAgICAgICAgICBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICBwYXRoOiBvcGVyYXRpb24ucGF0aCxcbiAgICAgICAgICBjcml0aWNhbDogb3BlcmF0aW9uLmNyaXRpY2FsLFxuICAgICAgICAgIGh0dHBNZXRob2RzOiBvcGVyYXRpb24uaHR0cE1ldGhvZHMsXG4gICAgICAgICAgY2FuYXJ5TWV0cmljRGV0YWlsczogbmV3IENhbmFyeU1ldHJpY3Moe1xuICAgICAgICAgICAgY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgICBjYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlsczogZGVmYXVsdExhdGVuY3lNZXRyaWNEZXRhaWxzLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcm9wcy5zZXJ2aWNlLm9wZXJhdGlvbnNbaW5kZXhdID0gbmV3T3BlcmF0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBJbnN0cnVtZW50ZWRTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGxldCBvdXRsaWVyVGhyZXNob2xkOiBudW1iZXI7XG5cbiAgICAvLyBTZXQgZGVmYXVsdHNcbiAgICBpZiAoIXByb3BzLm91dGxpZXJUaHJlc2hvbGQpIHtcbiAgICAgIHN3aXRjaCAocHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uQ0hJX1NRVUFSRUQ6XG4gICAgICAgICAgb3V0bGllclRocmVzaG9sZCA9IDAuMDU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5JUVI6XG4gICAgICAgICAgb3V0bGllclRocmVzaG9sZCA9IDEuNTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLk1BRDpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLlNUQVRJQzpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMC43O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0uWl9TQ09SRTpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3V0bGllclRocmVzaG9sZCA9IHByb3BzLm91dGxpZXJUaHJlc2hvbGQ7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBBWiBtYXBwZXIgcmVzb3VyY2UgdGhhdCBhbGwgb2YgdGhlIHJlc291cmNlc1xuICAgIC8vIHdpbGwgc2hhcmVcbiAgICB0aGlzLmF6TWFwcGVyID0gbmV3IEF2YWlsYWJpbGl0eVpvbmVNYXBwZXIodGhpcywgJ0FaTWFwcGVyJywge1xuICAgICAgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzOiBwcm9wcy5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcyxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY2FuYXJ5IHRlc3Rpbmcgc3RhY2sgaWYgdGhlIHVzZXIgcHJvdmlkZWQgaW5wdXRcbiAgICBpZiAocHJvcHMuc2VydmljZS5jYW5hcnlUZXN0UHJvcHMpIHtcbiAgICAgIGxldCBjYW5hcnlTdGFjazogU3RhY2tXaXRoRHluYW1pY1NvdXJjZSA9IG5ldyBTdGFja1dpdGhEeW5hbWljU291cmNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnQ2FuYXJ5JyxcbiAgICAgICAge1xuICAgICAgICAgIGFzc2V0c0J1Y2tldHNQYXJhbWV0ZXJOYW1lOiBwcm9wcy5hc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgIGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU6XG4gICAgICAgICAgICBwcm9wcy5hc3NldHNCdWNrZXRQcmVmaXhQYXJhbWV0ZXJOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXR1cENhbmFyeVRlc3RzKGNhbmFyeVN0YWNrLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBsYW1iZGEgZnVuY3Rpb24gc3RhY2sgaWYgd2UncmUgbm90XG4gICAgLy8gdXNpbmcgc3RhdGljIG91dGxpZXIgZGV0ZWN0aW9uXG4gICAgaWYgKHByb3BzLm91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0gIT0gT3V0bGllckRldGVjdGlvbkFsZ29yaXRobS5TVEFUSUMpIHtcbiAgICAgIGxldCBvdXRsaWVyRGV0ZWN0aW9uU3RhY2s6IFN0YWNrV2l0aER5bmFtaWNTb3VyY2UgPVxuICAgICAgICBuZXcgU3RhY2tXaXRoRHluYW1pY1NvdXJjZSh0aGlzLCAnT3V0bGllckRldGVjdGlvblN0YWNrJywge1xuICAgICAgICAgIGFzc2V0c0J1Y2tldHNQYXJhbWV0ZXJOYW1lOiBwcm9wcy5hc3NldHNCdWNrZXRQYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgIGFzc2V0c0J1Y2tldFByZWZpeFBhcmFtZXRlck5hbWU6XG4gICAgICAgICAgICBwcm9wcy5hc3NldHNCdWNrZXRQcmVmaXhQYXJhbWV0ZXJOYW1lLFxuICAgICAgICB9KTtcbiAgXG4gICAgICB0aGlzLm91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbiA9IG5ldyBPdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24oXG4gICAgICAgIG91dGxpZXJEZXRlY3Rpb25TdGFjayxcbiAgICAgICAgJ091dGxpZXJEZXRlY3Rpb25GdW5jdGlvbicsXG4gICAgICAgIHt9LFxuICAgICAgKS5mdW5jdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIHBlciBvcGVyYXRpb24gYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgdGhpcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHByb3BzLnNlcnZpY2Uub3BlcmF0aW9ucy5tYXAoKG9wZXJhdGlvbjogSU9wZXJhdGlvbikgPT4ge1xuICAgICAgICBsZXQgbmVzdGVkU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNOZXN0ZWRTdGFjaycsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICBuZXcgT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMobmVzdGVkU3RhY2ssIG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLCB7XG4gICAgICAgICAgICBvcGVyYXRpb246IG9wZXJhdGlvbixcbiAgICAgICAgICAgIGxhdGVuY3lPdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtOiBwcm9wcy5vdXRsaWVyRGV0ZWN0aW9uQWxnb3JpdGhtLFxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobTogcHJvcHMub3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICAgIGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkOiBvdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZDogb3V0bGllclRocmVzaG9sZCxcbiAgICAgICAgICAgIGxvYWRCYWxhbmNlcjogcHJvcHMuc2VydmljZS5sb2FkQmFsYW5jZXIsXG4gICAgICAgICAgICBhek1hcHBlcjogdGhpcy5hek1hcHBlcixcbiAgICAgICAgICAgIG91dGxpZXJEZXRlY3Rpb25GdW5jdGlvbjogdGhpcy5vdXRsaWVyRGV0ZWN0aW9uRnVuY3Rpb24sXG4gICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5wZXJPcGVyYXRpb25ab25hbEltcGFjdEFsYXJtcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIHJldHVybiBba2V5LCB2YWx1ZS5hZ2dyZWdhdGVab25hbEFsYXJtc01hcF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgbGV0IHNlcnZpY2VBbGFybXNTdGFjazogTmVzdGVkU3RhY2sgPSBuZXcgTmVzdGVkU3RhY2soXG4gICAgICB0aGlzLFxuICAgICAgJ1NlcnZpY2VBbGFybXNOZXN0ZWRTdGFjaycsXG4gICAgKTtcblxuICAgIHRoaXMuc2VydmljZUFsYXJtcyA9IG5ldyBTZXJ2aWNlQWxhcm1zQW5kUnVsZXMoXG4gICAgICBzZXJ2aWNlQWxhcm1zU3RhY2ssXG4gICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLFxuICAgICAge1xuICAgICAgICBwZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlczogdGhpcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcyxcbiAgICAgICAgc2VydmljZTogcHJvcHMuc2VydmljZSxcbiAgICAgICAgYXpNYXBwZXI6IHRoaXMuYXpNYXBwZXIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAocHJvcHMuY3JlYXRlRGFzaGJvYXJkcykge1xuICAgICAgdGhpcy5vcGVyYXRpb25EYXNoYm9hcmRzID0gW107XG5cbiAgICAgIHByb3BzLnNlcnZpY2Uub3BlcmF0aW9ucy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIGxldCBkYXNoYm9hcmRTdGFjazogTmVzdGVkU3RhY2sgPSBuZXcgTmVzdGVkU3RhY2soXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB4Lm9wZXJhdGlvbk5hbWUgKyAnRGFzaGJvYXJkJyxcbiAgICAgICAgICB7fSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm9wZXJhdGlvbkRhc2hib2FyZHMhLnB1c2goXG4gICAgICAgICAgbmV3IE9wZXJhdGlvbkF2YWlsYWJpbGl0eUFuZExhdGVuY3lEYXNoYm9hcmQoXG4gICAgICAgICAgICBkYXNoYm9hcmRTdGFjayxcbiAgICAgICAgICAgIHgub3BlcmF0aW9uTmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXM6IHRoaXMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNbeC5vcGVyYXRpb25OYW1lXSxcbiAgICAgICAgICAgICAgYXpNYXBwZXI6IHRoaXMuYXpNYXBwZXIsXG4gICAgICAgICAgICAgIGludGVydmFsOiBwcm9wcy5pbnRlcnZhbFxuICAgICAgICAgICAgICAgID8gcHJvcHMuaW50ZXJ2YWxcbiAgICAgICAgICAgICAgICA6IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLmRhc2hib2FyZCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgZGFzaGJvYXJkU3RhY2s6IE5lc3RlZFN0YWNrID0gbmV3IE5lc3RlZFN0YWNrKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnU2VydmljZURhc2hib2FyZCcsXG4gICAgICAgIHt9LFxuICAgICAgKTtcblxuICAgICAgLy8gVE9PRDogUmV2YW1wIHNlcnZpY2UgbGV2ZWwgZGFzaGJvYXJkIGFuZCByZXRoaW5rIGFsYXJtc1xuICAgICAgdGhpcy5zZXJ2aWNlRGFzaGJvYXJkID0gbmV3IFNlcnZpY2VBdmFpbGFiaWxpdHlBbmRMYXRlbmN5RGFzaGJvYXJkKFxuICAgICAgICBkYXNoYm9hcmRTdGFjayxcbiAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB7XG4gICAgICAgICAgaW50ZXJ2YWw6IHByb3BzLmludGVydmFsID8gcHJvcHMuaW50ZXJ2YWwgOiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgICBzZXJ2aWNlOiBwcm9wcy5zZXJ2aWNlLFxuICAgICAgICAgIGFnZ3JlZ2F0ZVJlZ2lvbmFsQWxhcm06XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2VBbGFybXMucmVnaW9uYWxGYXVsdENvdW50U2VydmVyU2lkZUFsYXJtLFxuICAgICAgICAgIHpvbmFsQWdncmVnYXRlQWxhcm1zOlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlQWxhcm1zLnpvbmFsQWdncmVnYXRlSXNvbGF0ZWRJbXBhY3RBbGFybXMsXG4gICAgICAgICAgYXpNYXBwZXI6IHRoaXMuYXpNYXBwZXIsXG4gICAgICAgICAgb3BlcmF0aW9uc0Rhc2hib2FyZDogdGhpcy5vcGVyYXRpb25EYXNoYm9hcmRzXG4gICAgICAgIH0sXG4gICAgICApLmRhc2hib2FyZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -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.30" };
33
+ Operation[_a] = { fqn: "@cdklabs/multi-az-observability.Operation", version: "0.0.1-alpha.32" };
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL09wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVdBOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBOEVwQixZQUFZLEtBQXFCO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxtQ0FBbUM7WUFDdEMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDO1FBQzVDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxLQUFLLENBQUMsOEJBQThCLENBQUM7UUFDM0UsSUFBSSxDQUFDLHVDQUF1QztZQUMxQyxLQUFLLENBQUMsdUNBQXVDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxxQ0FBcUM7WUFDeEMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQ0FBZ0M7WUFDbkMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUMsNEJBQTRCLENBQUM7SUFDekUsQ0FBQzs7QUFqR0gsOEJBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUNhbmFyeU1ldHJpY3MgfSBmcm9tICcuL0lDYW5hcnlNZXRyaWNzJztcbmltcG9ydCB7IElDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlIH0gZnJvbSAnLi9JQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZSc7XG5pbXBvcnQgeyBJQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgfSBmcm9tICcuL0lDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnLi9JT3BlcmF0aW9uJztcbmltcG9ydCB7IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JT3BlcmF0aW9uTWV0cmljRGV0YWlscyc7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4vSVNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlcmF0aW9uUHJvcHMgfSBmcm9tICcuL3Byb3BzL09wZXJhdGlvblByb3BzJztcbmltcG9ydCB7IEFkZENhbmFyeVRlc3RQcm9wcyB9IGZyb20gJy4uL2NhbmFyaWVzL3Byb3BzL0FkZENhbmFyeVRlc3RQcm9wcyc7XG5cbi8qKlxuICogQSBzaW5nbGUgb3BlcmF0aW9uIHRoYXQgaXMgcGFydCBvZiBhIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbiBpbXBsZW1lbnRzIElPcGVyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlIG9wZXJhdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2U6IElTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBUaGUgSFRUUCBwYXRoIGZvciB0aGUgb3BlcmF0aW9uIGZvciBjYW5hcmllc1xuICAgKiAgdG8gcnVuIGFnYWluc3QsIHNvbWV0aGluZyBsaWtlIFwiL3Byb2R1Y3RzL2xpc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgYXZhaWxhYmlsaXR5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczogSU9wZXJhdGlvbk1ldHJpY0RldGFpbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSBsYXRlbmN5IG1ldHJpYyBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHM6IElPcGVyYXRpb25NZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBtZXRyaWMgZGV0YWlscyBpZiB0aGUgc2VydmljZSBoYXMgYSBjYW5hcnlcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeU1ldHJpY0RldGFpbHM/OiBJQ2FuYXJ5TWV0cmljcztcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIHZhbHVlcyBmb3IgYXV0b21hdGljYWxseSBjcmVhdGVkIGNhbmFyeSB0ZXN0cyBzbyB5b3UgY2FuXG4gICAqIHVzZSB2YWx1ZXMgb3RoZXIgdGhhbiB0aGUgc2VydmljZSBkZWZhdWx0cyB0byBkZWZpbmUgdGhlIHRocmVzaG9sZHMgZm9yXG4gICAqIGF2YWlsYWJpbGl0eS5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGU/OiBJQ2FuYXJ5VGVzdE1ldHJpY3NPdmVycmlkZTtcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIHZhbHVlcyBmb3IgYXV0b21hdGljYWxseSBjcmVhdGVkIGNhbmFyeSB0ZXN0cyBzbyB5b3UgY2FuXG4gICAqIHVzZSB2YWx1ZXMgb3RoZXIgdGhhbiB0aGUgc2VydmljZSBkZWZhdWx0cyB0byBkZWZpbmUgdGhlIHRocmVzaG9sZHMgZm9yXG4gICAqIGxhdGVuY3kuXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlUZXN0TGF0ZW5jeU1ldHJpY3NPdmVycmlkZT86IElDYW5hcnlUZXN0TWV0cmljc092ZXJyaWRlO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgZGV0YWlscyBmb3IgY29udHJpYnV0b3IgaW5zaWdodHMgcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscz86IElDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoaXMgaXMgYSBjcml0aWNhbCBvcGVyYXRpb24gZm9yIHRoZSBzZXJ2aWNlXG4gICAqIGFuZCB3aWxsIGJlIGluY2x1ZGVkIGluIHNlcnZpY2UgbGV2ZWwgbWV0cmljcyBhbmRcbiAgICogZGFzaGJvYXJkc1xuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZHMgc3VwcG9ydGVkIGJ5IHRoZSBvcGVyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGh0dHBNZXRob2RzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWYgdGhleSBoYXZlIGJlZW4gYWRkZWQsIHRoZSBwcm9wZXJ0aWVzIGZvclxuICAgKiBjcmVhdGluZyBuZXcgY2FuYXJ5IHRlc3RzIG9uIHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlUZXN0UHJvcHM/OiBBZGRDYW5hcnlUZXN0UHJvcHM7XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIGlmIHlvdSBoYXZlIGRlZmluZWQgQ2FuYXJ5VGVzdFByb3BzIGZvciB5b3VyXG4gICAqIHNlcnZpY2UsIHdoaWNoIGFwcGxpZXMgdG8gYWxsIG9wZXJhdGlvbnMsIGJ1dCB5b3Ugd2FudCB0b1xuICAgKiBvcHQgb3V0IG9mIGNyZWF0aW5nIHRoZSBjYW5hcnkgdGVzdCBmb3IgdGhpcyBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIG9wZXJhdGlvbiBpcyBub3Qgb3B0ZWQgb3V0XG4gICAqL1xuICByZWFkb25seSBvcHRPdXRPZlNlcnZpY2VDcmVhdGVkQ2FuYXJ5PzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogT3BlcmF0aW9uUHJvcHMpIHtcbiAgICB0aGlzLmNhbmFyeU1ldHJpY0RldGFpbHMgPSBwcm9wcy5jYW5hcnlNZXRyaWNEZXRhaWxzO1xuICAgIHRoaXMuaHR0cE1ldGhvZHMgPSBwcm9wcy5odHRwTWV0aG9kcztcbiAgICB0aGlzLmNyaXRpY2FsID0gcHJvcHMuY3JpdGljYWw7XG4gICAgdGhpcy5vcGVyYXRpb25OYW1lID0gcHJvcHMub3BlcmF0aW9uTmFtZTtcbiAgICB0aGlzLnBhdGggPSBwcm9wcy5wYXRoO1xuICAgIHRoaXMuc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPVxuICAgICAgcHJvcHMuc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBwcm9wcy5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5zZXJ2ZXJTaWRlQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgPVxuICAgICAgcHJvcHMuc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2U7XG4gICAgdGhpcy5jYW5hcnlUZXN0UHJvcHMgPSBwcm9wcy5jYW5hcnlUZXN0UHJvcHM7XG4gICAgdGhpcy5vcHRPdXRPZlNlcnZpY2VDcmVhdGVkQ2FuYXJ5ID0gcHJvcHMub3B0T3V0T2ZTZXJ2aWNlQ3JlYXRlZENhbmFyeTtcbiAgICB0aGlzLmNhbmFyeVRlc3RBdmFpbGFiaWxpdHlNZXRyaWNzT3ZlcnJpZGUgPVxuICAgICAgcHJvcHMuY2FuYXJ5VGVzdEF2YWlsYWJpbGl0eU1ldHJpY3NPdmVycmlkZTtcbiAgICB0aGlzLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlID1cbiAgICAgIHByb3BzLmNhbmFyeVRlc3RMYXRlbmN5TWV0cmljc092ZXJyaWRlO1xuICAgIHRoaXMub3B0T3V0T2ZTZXJ2aWNlQ3JlYXRlZENhbmFyeSA9IHByb3BzLm9wdE91dE9mU2VydmljZUNyZWF0ZWRDYW5hcnk7XG4gIH1cbn1cbiJdfQ==
@@ -46,5 +46,5 @@ class OperationMetricDetails {
46
46
  }
47
47
  exports.OperationMetricDetails = OperationMetricDetails;
48
48
  _a = JSII_RTTI_SYMBOL_1;
49
- OperationMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationMetricDetails", version: "0.0.1-alpha.30" };
49
+ OperationMetricDetails[_a] = { fqn: "@cdklabs/multi-az-observability.OperationMetricDetails", version: "0.0.1-alpha.32" };
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uTWV0cmljRGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9PcGVyYXRpb25NZXRyaWNEZXRhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0E7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQXFGakMsWUFDRSxLQUFrQyxFQUNsQyxZQUFtQztRQUVuQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjO1lBQ3hDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYztZQUN0QixDQUFDLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQjtZQUM5QyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtZQUN6QixDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCO1lBQzlDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO1lBQ3pCLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUI7WUFDbEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBbUI7WUFDM0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQjtZQUM1QyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QixDQUFDLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCO1lBQ3hELENBQUMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO1lBQzlCLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUM7UUFDeEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQyx3QkFBd0I7WUFDNUQsQ0FBQyxDQUFDLEtBQUssQ0FBQyx3QkFBd0I7WUFDaEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlO1lBQzFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZTtZQUN2QixDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCO1lBQ3RELENBQUMsQ0FBQyxLQUFLLENBQUMscUJBQXFCO1lBQzdCLENBQUMsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0I7WUFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7WUFDMUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDOztBQTNISCx3REE0SEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFVuaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uTWV0cmljRGV0YWlscyB9IGZyb20gJy4vSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgSVNlcnZpY2VNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JU2VydmljZU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgTWV0cmljRGltZW5zaW9ucyB9IGZyb20gJy4vcHJvcHMvTWV0cmljRGltZW5zaW9ucyc7XG5pbXBvcnQgeyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzUHJvcHMgfSBmcm9tICcuL3Byb3BzL09wZXJhdGlvbk1ldHJpY0RldGFpbHNQcm9wcyc7XG5cbi8qKlxuICogR2VuZXJpYyBtZXRyaWMgZGV0YWlscyBmb3IgYW4gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25NZXRyaWNEZXRhaWxzIGltcGxlbWVudHMgSU9wZXJhdGlvbk1ldHJpY0RldGFpbHMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGVzZSBtZXRyaWMgZGV0YWlscyBhcmUgZm9yXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZFdhdGNoIG1ldHJpYyBuYW1lc3BhY2UgZm9yIHRoZXNlIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY05hbWVzcGFjZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgb2Ygc3VjY2VzcyBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXRyaWNOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lcyBvZiBmYXVsdCBpbmRpY2F0aW5nIG1ldHJpY3NcbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0TWV0cmljTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGlzdGljIHVzZWQgZm9yIGFsYXJtcywgZm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzIHRoaXMgc2hvdWxkXG4gICAqIGJlIFwiU3VtXCIsIGZvciBsYXRlbmN5IG1ldHJpY3MgaXQgY291bGQgc29tZXRoaW5nIGxpa2UgXCJwOTlcIiBvciBcInA5OS45XCJcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtU3RhdGlzdGljOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBzdWNjZXNzZXMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzLCB0aGlzIHdpbGwgYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCB3aWxsIGJlIGp1c3QgXCJwOTlcIlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhcGhlZFN1Y2Nlc3NTdGF0aXN0aWNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWNzIGZvciBmYXVsdHMgeW91IHdhbnQgdG8gYXBwZWFyIG9uIGRhc2hib2FyZHMsIGZvciBleGFtcGxlLCB3aXRoXG4gICAqIGxhdGVuY3kgbWV0cmljcywgeW91IG1pZ2h0IHdhbnQgcDUwLCBwOTksIGFuZCB0bTk5LiBGb3IgYXZhaWxhYmlsaXR5XG4gICAqIG1ldHJpY3MgdGhpcyB3aWxsIHR5cGljYWxseSBqdXN0IGJlIFwiU3VtXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRm9yIGF2YWlsYWJpbGl0eSBtZXRyaWNzLCB0aGlzIHdpbGwgYmUgXCJTdW1cIiwgZm9yIGxhdGVuY3kgbWV0cmljcyBpdCB3aWxsIGJlIGp1c3QgXCJwOTlcIlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhcGhlZEZhdWx0U3RhdGlzdGljcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pdCB1c2VkIGZvciB0aGVzZSBtZXRyaWNzXG4gICAqL1xuICByZWFkb25seSB1bml0OiBVbml0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIGZvciB0aGUgbWV0cmljc1xuICAgKi9cbiAgcmVhZG9ubHkgcGVyaW9kOiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBldmFsdWF0aW9uIHBlcmlvZHMgZm9yIGxhdGVuY3kgYW5kIGF2YWlsYWJpbHRpeSBhbGFybXNcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF0YXBvaW50cyB0byBhbGFybSBvbiBmb3IgbGF0ZW5jeSBhbmQgYXZhaWxhYmlsaXR5IGFsYXJtc1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YXBvaW50c1RvQWxhcm06IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBzdWNjZXNzIG1ldHJpY3MsIGZvciBleGFtcGxlIGlmIG1lYXN1cmluZ1xuICAgKiBzdWNjZXNzIHJhdGUsIHRoZSB0aHJlc2hvbGQgbWF5IGJlIDk5LCBtZWFuaW5nIHlvdSB3b3VsZCB3YW50IGFuIGFsYXJtIHRoYXQgdHJpZ2dlcnNcbiAgICogaWYgc3VjY2VzcyBkcm9wcyBiZWxvdyA5OSUuXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzQWxhcm1UaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBmb3IgYWxhcm1zIGFzc29jaWF0ZWQgd2l0aCBmYXVsdCBtZXRyaWNzLCBmb3IgZXhhbXBsZSBpZiBtZWFzdXJpbmdcbiAgICogZmF1bHQgcmF0ZSwgdGhlIHRocmVzaG9sZCBtYXkgYmUgMSwgbWVhbmluZyB5b3Ugd291bGQgd2FudCBhbiBhbGFybSB0aGF0IHRyaWdnZXJzXG4gICAqIGlmIHRoZSBmYXVsdCByYXRlIGdvZXMgYWJvdmUgMSUuXG4gICAqL1xuICByZWFkb25seSBmYXVsdEFsYXJtVGhyZXNob2xkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgZGltZW5zaW9ucyBmb3IgdGhpcyBvcGVyYXRpb24sIG11c3QgYmUgaW1wbGVtZW50ZWRcbiAgICogYXMgYSBjb25jcmV0ZSBjbGFzcyBieSB0aGUgdXNlclxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljRGltZW5zaW9uczogTWV0cmljRGltZW5zaW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9wczogT3BlcmF0aW9uTWV0cmljRGV0YWlsc1Byb3BzLFxuICAgIGRlZmF1bHRQcm9wczogSVNlcnZpY2VNZXRyaWNEZXRhaWxzLFxuICApIHtcbiAgICB0aGlzLmFsYXJtU3RhdGlzdGljID0gcHJvcHMuYWxhcm1TdGF0aXN0aWNcbiAgICAgID8gcHJvcHMuYWxhcm1TdGF0aXN0aWNcbiAgICAgIDogZGVmYXVsdFByb3BzLmFsYXJtU3RhdGlzdGljO1xuICAgIHRoaXMuZGF0YXBvaW50c1RvQWxhcm0gPSBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybVxuICAgICAgPyBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybVxuICAgICAgOiBkZWZhdWx0UHJvcHMuZGF0YXBvaW50c1RvQWxhcm07XG4gICAgdGhpcy5ldmFsdWF0aW9uUGVyaW9kcyA9IHByb3BzLmV2YWx1YXRpb25QZXJpb2RzXG4gICAgICA/IHByb3BzLmV2YWx1YXRpb25QZXJpb2RzXG4gICAgICA6IGRlZmF1bHRQcm9wcy5ldmFsdWF0aW9uUGVyaW9kcztcbiAgICB0aGlzLmZhdWx0QWxhcm1UaHJlc2hvbGQgPSBwcm9wcy5mYXVsdEFsYXJtVGhyZXNob2xkXG4gICAgICA/IHByb3BzLmZhdWx0QWxhcm1UaHJlc2hvbGRcbiAgICAgIDogZGVmYXVsdFByb3BzLmZhdWx0QWxhcm1UaHJlc2hvbGQ7XG4gICAgdGhpcy5mYXVsdE1ldHJpY05hbWVzID0gcHJvcHMuZmF1bHRNZXRyaWNOYW1lc1xuICAgICAgPyBwcm9wcy5mYXVsdE1ldHJpY05hbWVzXG4gICAgICA6IGRlZmF1bHRQcm9wcy5mYXVsdE1ldHJpY05hbWVzO1xuICAgIHRoaXMuZ3JhcGhlZEZhdWx0U3RhdGlzdGljcyA9IHByb3BzLmdyYXBoZWRGYXVsdFN0YXRpc3RpY3NcbiAgICAgID8gcHJvcHMuZ3JhcGhlZEZhdWx0U3RhdGlzdGljc1xuICAgICAgOiBkZWZhdWx0UHJvcHMuZ3JhcGhlZEZhdWx0U3RhdGlzdGljcztcbiAgICB0aGlzLmdyYXBoZWRTdWNjZXNzU3RhdGlzdGljcyA9IHByb3BzLmdyYXBoZWRTdWNjZXNzU3RhdGlzdGljc1xuICAgICAgPyBwcm9wcy5ncmFwaGVkU3VjY2Vzc1N0YXRpc3RpY3NcbiAgICAgIDogZGVmYXVsdFByb3BzLmdyYXBoZWRTdWNjZXNzU3RhdGlzdGljcztcbiAgICB0aGlzLm1ldHJpY05hbWVzcGFjZSA9IHByb3BzLm1ldHJpY05hbWVzcGFjZVxuICAgICAgPyBwcm9wcy5tZXRyaWNOYW1lc3BhY2VcbiAgICAgIDogZGVmYXVsdFByb3BzLm1ldHJpY05hbWVzcGFjZTtcbiAgICB0aGlzLm9wZXJhdGlvbk5hbWUgPSBwcm9wcy5vcGVyYXRpb25OYW1lO1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kID8gcHJvcHMucGVyaW9kIDogZGVmYXVsdFByb3BzLnBlcmlvZDtcbiAgICB0aGlzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZCA9IHByb3BzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZFxuICAgICAgPyBwcm9wcy5zdWNjZXNzQWxhcm1UaHJlc2hvbGRcbiAgICAgIDogZGVmYXVsdFByb3BzLnN1Y2Nlc3NBbGFybVRocmVzaG9sZDtcbiAgICB0aGlzLnN1Y2Nlc3NNZXRyaWNOYW1lcyA9IHByb3BzLnN1Y2Nlc3NNZXRyaWNOYW1lc1xuICAgICAgPyBwcm9wcy5zdWNjZXNzTWV0cmljTmFtZXNcbiAgICAgIDogZGVmYXVsdFByb3BzLnN1Y2Nlc3NNZXRyaWNOYW1lcztcbiAgICB0aGlzLnVuaXQgPSBwcm9wcy51bml0ID8gcHJvcHMudW5pdCA6IGRlZmF1bHRQcm9wcy51bml0O1xuICAgIHRoaXMubWV0cmljRGltZW5zaW9ucyA9IHByb3BzLm1ldHJpY0RpbWVuc2lvbnM7XG4gIH1cbn1cbiJdfQ==
@@ -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.30" };
35
+ Service[_a] = { fqn: "@cdklabs/multi-az-observability.Service", version: "0.0.1-alpha.32" };
36
36
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBV0E7O0dBRUc7QUFDSCxNQUFhLE9BQU87SUF5RWxCLFlBQVksS0FBbUI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdDQUFnQztZQUNuQyxLQUFLLENBQUMsZ0NBQWdDLENBQUM7UUFDekMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQztRQUNyRSxJQUFJLENBQUMsb0NBQW9DO1lBQ3ZDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFNBQXFCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O0FBL0ZILDBCQWdHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUxvYWRCYWxhbmNlclYyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzIH0gZnJvbSAnLi9JQ29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4vSU9wZXJhdGlvbic7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4vSVNlcnZpY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VNZXRyaWNEZXRhaWxzIH0gZnJvbSAnLi9JU2VydmljZU1ldHJpY0RldGFpbHMnO1xuaW1wb3J0IHsgU2VydmljZVByb3BzIH0gZnJvbSAnLi9wcm9wcy9TZXJ2aWNlUHJvcHMnO1xuaW1wb3J0IHsgQWRkQ2FuYXJ5VGVzdFByb3BzIH0gZnJvbSAnLi4vY2FuYXJpZXMvcHJvcHMvQWRkQ2FuYXJ5VGVzdFByb3BzJztcblxuLyoqXG4gKiBUaGUgcmVwcmVzZW50YXRpb24gb2YgYSBzZXJ2aWNlIGNvbXBvc2VkIG9mIG11bHRpcGxlIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2UgaW1wbGVtZW50cyBJU2VydmljZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB5b3VyIHNlcnZpY2VcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGVuZHBvaW50IGZvciB0aGlzIHNlcnZpY2UsIGxpa2UgXCJodHRwczovL3d3dy5leGFtcGxlLmNvbVwiLiBPcGVyYXRpb24gcGF0aHMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGlzIGVuZHBvaW50IGZvciBjYW5hcnkgdGVzdGluZyB0aGUgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZhdWx0IGNvdW50IHRocmVzaG9sZCB0aGF0IGluZGljYXRlcyB0aGUgc2VydmljZSBpcyB1bmhlYWx0aHkuIFRoaXMgaXMgYW4gYWJzb2x1dGUgdmFsdWUgb2YgZmF1bHRzXG4gICAqIGJlaW5nIHByb2R1Y2VkIGJ5IGFsbCBjcml0aWNhbCBvcGVyYXRpb25zIGluIGFnZ3JlZ2F0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0Q291bnRUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcyB1c2VkIGJ5IHRoaXMgYXBwbGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJpb2QgZm9yIHdoaWNoIG1ldHJpY3MgZm9yIHRoZSBzZXJ2aWNlIHNob3VsZCBiZSBhZ2dyZWdhdGVkXG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q6IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBwYXJ0IG9mIHRoaXMgc2VydmljZVxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uczogSU9wZXJhdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9hZCBiYWxhbmNlciB0aGlzIHNlcnZpY2Ugc2l0cyBiZWhpbmRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBsb2FkIGJhbGFuY2VyIG1ldHJpY3Mgd2lsbCBiZSBpbmNsdWRlZCBpblxuICAgKiBkYXNoYm9hcmRzIGFuZCBpdHMgQVJOIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRvcCBsZXZlbCBBWlxuICAgKiBhbGFybSBkZXNjcmlwdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXI/OiBJTG9hZEJhbGFuY2VyVjI7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGVzZSBzZXR0aW5ncyBpZiB5b3Ugd2FudCB0byBhdXRvbWF0aWNhbGx5IGFkZCBjYW5hcnlcbiAgICogdGVzdHMgdG8geW91ciBvcGVyYXRpb25zLiBPcGVyYXRpb25zIGNhbiBpbmRpdmlkdWFsbHkgb3B0IG91dFxuICAgKiBvZiBjYW5hcnkgdGVzdCBjcmVhdGlvbiBpZiB5b3UgZGVmaW5lIHRoaXMgc2V0dGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvbWF0aWMgY2FuYXJ5IHRlc3RzIHdpbGwgbm90IGJlIGNyZWF0ZWQgZm9yXG4gICAqIG9wZXJhdGlvbnMgaW4gdGhpcyBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuYXJ5VGVzdFByb3BzPzogQWRkQ2FuYXJ5VGVzdFByb3BzO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBzZXR0aW5ncyB0aGF0IGFyZSB1c2VkIGZvciBhdmFpbGFiaWxpdHkgbWV0cmljc1xuICAgKiBmb3IgYWxsIG9wZXJhdGlvbnMgdW5sZXNzIHNwZWNpZmljYWxseSBvdmVycmlkZGVuIGluIGFuXG4gICAqIG9wZXJhdGlvbiBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6IElTZXJ2aWNlTWV0cmljRGV0YWlscztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBhcmUgdXNlZCBmb3IgYXZhaWxhYmlsaXR5IG1ldHJpY3NcbiAgICogZm9yIGFsbCBvcGVyYXRpb25zIHVubGVzcyBzcGVjaWZpY2FsbHkgb3ZlcnJpZGRlbiBpbiBhblxuICAgKiBvcGVyYXRpb24gZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRMYXRlbmN5TWV0cmljRGV0YWlsczogSVNlcnZpY2VNZXRyaWNEZXRhaWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBzZXR0aW5ncyB0aGF0IGFyZSB1c2VkIGZvciBjb250cmlidXRvciBpbnNpZ2h0XG4gICAqIHJ1bGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlZmF1bHRzIGFyZSBwcm92aWRlZCBhbmQgbXVzdCBiZSBzcGVjaWZpZWQgcGVyIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzPzogSUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTZXJ2aWNlUHJvcHMpIHtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gcHJvcHMuc2VydmljZU5hbWU7XG4gICAgdGhpcy5hdmFpbGFiaWxpdHlab25lTmFtZXMgPSBwcm9wcy5hdmFpbGFiaWxpdHlab25lTmFtZXM7XG4gICAgdGhpcy5iYXNlVXJsID0gcHJvcHMuYmFzZVVybDtcbiAgICB0aGlzLmZhdWx0Q291bnRUaHJlc2hvbGQgPSBwcm9wcy5mYXVsdENvdW50VGhyZXNob2xkO1xuICAgIHRoaXMub3BlcmF0aW9ucyA9IFtdO1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyID0gcHJvcHMubG9hZEJhbGFuY2VyO1xuICAgIHRoaXMuY2FuYXJ5VGVzdFByb3BzID0gcHJvcHMuY2FuYXJ5VGVzdFByb3BzO1xuICAgIHRoaXMuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMgPVxuICAgICAgcHJvcHMuZGVmYXVsdEF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHMgPSBwcm9wcy5kZWZhdWx0TGF0ZW5jeU1ldHJpY0RldGFpbHM7XG4gICAgdGhpcy5kZWZhdWx0Q29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHMgPVxuICAgICAgcHJvcHMuZGVmYXVsdENvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gb3BlcmF0aW9uIHRvIHRoaXMgc2VydmljZSBhbmQgc2V0cyB0aGUgb3BlcmF0aW9uJ3NcbiAgICogc2VydmljZSBwcm9wZXJ0eVxuICAgKi9cbiAgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogSU9wZXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMub3BlcmF0aW9ucy5wdXNoKG9wZXJhdGlvbik7XG4gIH1cbn1cbiJdfQ==