@netforbpo/aws-cdk-aws-connect-lib 0.2.2 → 0.2.4

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.
@@ -1,10 +1,44 @@
1
1
  "use strict";
2
- var _a, _b;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
3
35
  Object.defineProperty(exports, "__esModule", { value: true });
4
36
  exports.HoursOfOperation = exports.HoursOfOperationDefinition = exports.HoursOfOperationDayOfWeek = void 0;
5
37
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
38
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const cxschema = require("aws-cdk-lib/cloud-assembly-schema");
39
+ const cxschema = __importStar(require("aws-cdk-lib/cloud-assembly-schema"));
40
+ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
41
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
8
42
  var HoursOfOperationDayOfWeek;
9
43
  (function (HoursOfOperationDayOfWeek) {
10
44
  HoursOfOperationDayOfWeek["SUNDAY"] = "SUNDAY";
@@ -16,9 +50,11 @@ var HoursOfOperationDayOfWeek;
16
50
  HoursOfOperationDayOfWeek["SATURDAY"] = "SATURDAY";
17
51
  })(HoursOfOperationDayOfWeek || (exports.HoursOfOperationDayOfWeek = HoursOfOperationDayOfWeek = {}));
18
52
  class HoursOfOperationDefinition {
53
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperationDefinition", version: "0.2.4" };
19
54
  static dayOfWeek(day, startTime, endTime) {
20
55
  return new HoursOfOperationDefinition({ config: { dayOfWeek: day, startTime: startTime, endTime: endTime } });
21
56
  }
57
+ props;
22
58
  constructor(props) {
23
59
  this.props = props;
24
60
  }
@@ -46,24 +82,28 @@ class HoursOfOperationDefinition {
46
82
  }
47
83
  }
48
84
  exports.HoursOfOperationDefinition = HoursOfOperationDefinition;
49
- _a = JSII_RTTI_SYMBOL_1;
50
- HoursOfOperationDefinition[_a] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperationDefinition", version: "0.2.2" };
51
85
  class HoursOfOperation extends aws_cdk_lib_1.Resource {
86
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperation", version: "0.2.4" };
52
87
  static fromLookup(scope, id, options) {
53
- throw new Error('Not implemented (CcApiContextProvider lacking features - PR #1015)');
54
- if (aws_cdk_lib_1.Token.isUnresolved(options.hoursOfOperationName)
88
+ if (aws_cdk_lib_1.Token.isUnresolved(options.name)
55
89
  || aws_cdk_lib_1.Token.isUnresolved(options.instanceArn)
90
+ || aws_cdk_lib_1.Token.isUnresolved(options.hoursOfOperationId)
56
91
  || aws_cdk_lib_1.Token.isUnresolved(options.hoursOfOperationArn)) {
57
- throw new aws_cdk_lib_1.ValidationError('All arguments to HoursOfOperation.fromLookup() must be concrete (no Tokens)', scope);
92
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `Arguments`, 'All arguments to HoursOfOperation.fromLookup() must be concrete (no Tokens)', scope);
58
93
  }
59
94
  const filter = {};
60
- filter.resourceModel.InstanceArn = options.instanceArn;
95
+ filter.resourceModel = {
96
+ InstanceArn: options.instanceArn,
97
+ };
61
98
  if (options.hoursOfOperationArn) {
62
99
  filter.exactIdentifier = options.hoursOfOperationArn;
63
100
  }
64
- if (options.hoursOfOperationName) {
65
- filter.propertyMatch || (filter.propertyMatch = {});
66
- filter.propertyMatch.Name = options.hoursOfOperationName;
101
+ else if (options.hoursOfOperationId) {
102
+ filter.exactIdentifier = `${options.instanceArn}/operating-hours/${options.hoursOfOperationId}`;
103
+ }
104
+ if (options.name) {
105
+ filter.propertyMatch ||= {};
106
+ filter.propertyMatch.Name = options.name;
67
107
  }
68
108
  const response = aws_cdk_lib_1.ContextProvider.getValue(scope, {
69
109
  provider: cxschema.ContextProvider.CC_API_PROVIDER,
@@ -85,10 +125,13 @@ class HoursOfOperation extends aws_cdk_lib_1.Resource {
85
125
  }
86
126
  return new LookedUpHoursOfOperation(scope, id, instance ?? DUMMY_HOURS_OF_OPERATION_PROPS, instance === undefined);
87
127
  }
128
+ instance;
129
+ resource;
88
130
  constructor(scope, id, props) {
89
131
  super(scope, id);
132
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
90
133
  this.instance = props.instance;
91
- this.hoursOfOperation = new aws_cdk_lib_1.aws_connect.CfnHoursOfOperation(this, 'HoursOfOperation', {
134
+ this.resource = new aws_cdk_lib_1.aws_connect.CfnHoursOfOperation(this, 'HoursOfOperation', {
92
135
  config: this.buildHOOConfig(props.definitions),
93
136
  name: props.name,
94
137
  timeZone: props.timeZone ?? 'UTC',
@@ -110,27 +153,30 @@ class HoursOfOperation extends aws_cdk_lib_1.Resource {
110
153
  return this.instance.instanceArn;
111
154
  }
112
155
  get hoursOfOperationArn() {
113
- return this.hoursOfOperation.attrHoursOfOperationArn;
156
+ return this.resource.attrHoursOfOperationArn;
114
157
  }
115
158
  }
116
159
  exports.HoursOfOperation = HoursOfOperation;
117
- _b = JSII_RTTI_SYMBOL_1;
118
- HoursOfOperation[_b] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperation", version: "0.2.2" };
119
160
  const DUMMY_HOURS_OF_OPERATION_PROPS = {
120
161
  instanceArn: 'instance-arn',
121
162
  hoursOfOperationArn: 'hours-of-operation-arn',
122
163
  hoursOfOperationName: 'hours-of-operation-name',
123
164
  };
124
165
  class LookedUpHoursOfOperation extends aws_cdk_lib_1.Resource {
166
+ hoursOfOperationArn;
167
+ instanceArn;
168
+ hoursOfOperationName;
169
+ incompleteDefinition;
125
170
  constructor(scope, id, props, isIncomplete) {
126
171
  super(scope, id, {
127
172
  region: props.region,
128
173
  account: props.ownerAccountId,
129
174
  });
175
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
130
176
  this.hoursOfOperationArn = props.hoursOfOperationArn;
131
177
  this.instanceArn = props.instanceArn;
132
178
  this.hoursOfOperationName = props.hoursOfOperationName;
133
- this.incompleteInstanceDefinition = isIncomplete;
179
+ this.incompleteDefinition = isIncomplete;
134
180
  }
135
181
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cnNfb2Zfb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hvdXJzX29mX29wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQU9xQjtBQUNyQiw4REFBOEQ7QUFJOUQsSUFBWSx5QkFRWDtBQVJELFdBQVkseUJBQXlCO0lBQ25DLDhDQUFpQixDQUFBO0lBQ2pCLDhDQUFpQixDQUFBO0lBQ2pCLGdEQUFtQixDQUFBO0lBQ25CLG9EQUF1QixDQUFBO0lBQ3ZCLGtEQUFxQixDQUFBO0lBQ3JCLDhDQUFpQixDQUFBO0lBQ2pCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFSVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQVFwQztBQWFELE1BQWEsMEJBQTBCO0lBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBOEIsRUFBRSxTQUFpQixFQUFFLE9BQWU7UUFDakYsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUlELFlBQW9CLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxD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ckMsV0FBVyxFQUFFLGNBQWM7SUFDM0IsbUJBQW1CLEVBQUUsd0JBQXdCO0lBQzdDLG9CQUFvQixFQUFFLHlCQUF5QjtDQUNoRCxDQUFDO0FBRUYsTUFBTSx3QkFBeUIsU0FBUSxzQkFBUTtJQU03QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQVUsRUFBRSxZQUFxQjtRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLGNBQWM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztRQUN2RCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsWUFBWSxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGF3c19jb25uZWN0IGFzIGNvbm5lY3QsXG4gIENvbnRleHRQcm92aWRlcixcbiAgSVJlc291cmNlLFxuICBSZXNvdXJjZSxcbiAgVG9rZW4sXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnYXdzLWNkay1saWIvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUluc3RhbmNlIH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBlbnVtIEhvdXJzT2ZPcGVyYXRpb25EYXlPZldlZWsge1xuICBTVU5EQVkgPSAnU1VOREFZJyxcbiAgTU9OREFZID0gJ01PTkRBWScsXG4gIFRVRVNEQVkgPSAnVFVFU0RBWScsXG4gIFdFRE5FU0RBWSA9ICdXRURORVNEQVknLFxuICBUSFVSU0RBWSA9ICdUSFVSU0RBWScsXG4gIEZSSURBWSA9ICdGUklEQVknLFxuICBTQVRVUkRBWSA9ICdTQVRVUkRBWScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhvdXJzT2ZPcGVyYXRpb24gZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYXR0YWNoZWQgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgaG91cnMgb2Ygb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaG91cnNPZk9wZXJhdGlvbkFybjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSG91cnNPZk9wZXJhdGlvbkRlZmluaXRpb24ge1xuICBzdGF0aWMgZGF5T2ZXZWVrKGRheTogSG91cnNPZk9wZXJhdGlvbkRheU9mV2Vlaywgc3RhcnRUaW1lOiBzdHJpbmcsIGVuZFRpbWU6IHN0cmluZyk6IEhvdXJzT2ZPcGVyYXRpb25EZWZpbml0aW9uIHtcbiAgICByZXR1cm4gbmV3IEhvdXJzT2ZPcGVyYXRpb25EZWZpbml0aW9uKHsgY29uZmlnOiB7IGRheU9mV2VlazogZGF5LCBzdGFydFRpbWU6IHN0YXJ0VGltZSwgZW5kVGltZTogZW5kVGltZSB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogYW55O1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuXG4gIHNwbGl0VGltZSh0aW1lOiBzdHJpbmcpOiBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb24uSG91cnNPZk9wZXJhdGlvblRpbWVTbGljZVByb3BlcnR5IHtcbiAgICBjb25zdCBbaG91cnMsIG1pbnV0ZXNdID0gdGltZS5zcGxpdCgnOicpO1xuICAgIHJldHVybiB7IGhvdXJzOiBwYXJzZUludChob3VycyksIG1pbnV0ZXM6IHBhcnNlSW50KG1pbnV0ZXMpIH07XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ2NvbmZpZycgaW4gdGhpcy5wcm9wcyA/ICdjb25maWcnIDogJ292ZXJyaWRlJztcbiAgfVxuXG4gIGFzQ29uZmlnKCk6IGNvbm5lY3QuQ2ZuSG91cnNPZk9wZXJhdGlvbi5Ib3Vyc09mT3BlcmF0aW9uQ29uZmlnUHJvcGVydHkgfCBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb24uSG91cnNPZk9wZXJhdGlvbk92ZXJyaWRlQ29uZmlnUHJvcGVydHkge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbmZpZykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF5OiB0aGlzLnByb3BzLmNvbmZpZy5kYXlPZldlZWssXG4gICAgICAgIHN0YXJ0VGltZTogdGhpcy5zcGxpdFRpbWUodGhpcy5wcm9wcy5jb25maWcuc3RhcnRUaW1lKSxcbiAgICAgICAgZW5kVGltZTogdGhpcy5zcGxpdFRpbWUodGhpcy5wcm9wcy5jb25maWcuZW5kVGltZSksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5vdmVycmlkZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRlZmluaXRpb24nKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb3Vyc09mT3BlcmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIEFXUyBjb25uZWN0IGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgaG91cnMgb2Ygb3BlcmF0aW9uIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2U6IElJbnN0YW5jZTtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBob3VycyBvZiBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaW1lem9uZSB0byBkZWZpbmUgdGhlIGhvdXJzIG9mIG9wZXJhdGlvbiBpbi4gRGVmYXVsdHMgdG8gVVRDLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZVpvbmU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiB0aGUgc2V0IG9mIGRlZmluaXRpb25zIGZvciB0aGUgaG91cnMgb2Ygb3BlcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZWZpbml0aW9ucz86IEhvdXJzT2ZPcGVyYXRpb25EZWZpbml0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG91cnNPZk9wZXJhdGlvbkxvb2t1cE9wdGlvbnMge1xuICByZWFkb25seSBpbnN0YW5jZUFybjogc3RyaW5nO1xuICByZWFkb25seSBob3Vyc09mT3BlcmF0aW9uQXJuPzogc3RyaW5nO1xuICByZWFkb25seSBob3Vyc09mT3BlcmF0aW9uTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEhvdXJzT2ZPcGVyYXRpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElIb3Vyc09mT3BlcmF0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tTG9va3VwKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEhvdXJzT2ZPcGVyYXRpb25Mb29rdXBPcHRpb25zKTogSUhvdXJzT2ZPcGVyYXRpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIChDY0FwaUNvbnRleHRQcm92aWRlciBsYWNraW5nIGZlYXR1cmVzIC0gUFIgIzEwMTUpJyk7XG5cbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuaG91cnNPZk9wZXJhdGlvbk5hbWUpXG4gICAgICAgIHx8IFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLmluc3RhbmNlQXJuKVxuICAgICAgICB8fCBUb2tlbi5pc1VucmVzb2x2ZWQob3B0aW9ucy5ob3Vyc09mT3BlcmF0aW9uQXJuKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignQWxsIGFyZ3VtZW50cyB0byBIb3Vyc09mT3BlcmF0aW9uLmZyb21Mb29rdXAoKSBtdXN0IGJlIGNvbmNyZXRlIChubyBUb2tlbnMpJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge307XG5cbiAgICBmaWx0ZXIucmVzb3VyY2VNb2RlbC5JbnN0YW5jZUFybiA9IG9wdGlvbnMuaW5zdGFuY2VBcm47XG4gICAgaWYgKG9wdGlvbnMuaG91cnNPZk9wZXJhdGlvbkFybikge1xuICAgICAgZmlsdGVyLmV4YWN0SWRlbnRpZmllciA9IG9wdGlvbnMuaG91cnNPZk9wZXJhdGlvbkFybjtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaG91cnNPZk9wZXJhdGlvbk5hbWUpIHtcbiAgICAgIGZpbHRlci5wcm9wZXJ0eU1hdGNoIHx8PSB7fTtcbiAgICAgIGZpbHRlci5wcm9wZXJ0eU1hdGNoLk5hbWUgPSBvcHRpb25zLmhvdXJzT2ZPcGVyYXRpb25OYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUoc2NvcGUsIHtcbiAgICAgIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSLFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgdHlwZU5hbWU6ICdBV1M6OkNvbm5lY3Q6OkhvdXJzT2ZPcGVyYXRpb24nLFxuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIHByb3BlcnRpZXNUb1JldHVybjogWydIb3Vyc09mT3BlcmF0aW9uQXJuJywgJ05hbWUnXSxcbiAgICAgICAgZXhwZWN0ZWRNYXRjaENvdW50OiAnZXhhY3RseS1vbmUnLFxuICAgICAgfSBhcyBjeHNjaGVtYS5DY0FwaUNvbnRleHRRdWVyeSxcbiAgICAgIGR1bW15VmFsdWU6IHVuZGVmaW5lZCxcbiAgICB9KS52YWx1ZTtcblxuICAgIGxldCBpbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2VbMF0pIHtcbiAgICAgIGluc3RhbmNlID0ge1xuICAgICAgICBpbnN0YW5jZUFybjogb3B0aW9ucy5pbnN0YW5jZUFybixcbiAgICAgICAgaG91cnNPZk9wZXJhdGlvbkFybjogcmVzcG9uc2VbMF0uSG91cnNPZk9wZXJhdGlvbkFybixcbiAgICAgICAgaG91cnNPZk9wZXJhdGlvbk5hbWU6IHJlc3BvbnNlWzBdLk5hbWUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExvb2tlZFVwSG91cnNPZk9wZXJhdGlvbihzY29wZSwgaWQsIGluc3RhbmNlID8/IERVTU1ZX0hPVVJTX09GX09QRVJBVElPTl9QUk9QUywgaW5zdGFuY2UgPT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICByZWFkb25seSBpbnN0YW5jZTogSUluc3RhbmNlO1xuICByZWFkb25seSBob3Vyc09mT3BlcmF0aW9uOiBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEhvdXJzT2ZPcGVyYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmluc3RhbmNlID0gcHJvcHMuaW5zdGFuY2U7XG4gICAgdGhpcy5ob3Vyc09mT3BlcmF0aW9uID0gbmV3IGNvbm5lY3QuQ2ZuSG91cnNPZk9wZXJhdGlvbihcbiAgICAgIHRoaXMsICdIb3Vyc09mT3BlcmF0aW9uJywge1xuICAgICAgICBjb25maWc6IHRoaXMuYnVpbGRIT09Db25maWcocHJvcHMuZGVmaW5pdGlvbnMpLFxuICAgICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgICB0aW1lWm9uZTogcHJvcHMudGltZVpvbmUgPz8gJ1VUQycsXG4gICAgICAgIGluc3RhbmNlQXJuOiB0aGlzLmluc3RhbmNlQXJuLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEhPT0NvbmZpZyhkZWZpbml0aW9ucz86IEhvdXJzT2ZPcGVyYXRpb25EZWZpbml0aW9uW10pOiBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb24uSG91cnNPZk9wZXJhdGlvbkNvbmZpZ1Byb3BlcnR5W10ge1xuICAgIGNvbnN0IGNvbmZpZ3M6IGNvbm5lY3QuQ2ZuSG91cnNPZk9wZXJhdGlvbi5Ib3Vyc09mT3BlcmF0aW9uQ29uZmlnUHJvcGVydHlbXSA9IFtdO1xuICAgIGlmIChkZWZpbml0aW9ucykge1xuICAgICAgZGVmaW5pdGlvbnMuZm9yRWFjaCgoZGVmKSA9PiB7XG4gICAgICAgIGlmIChkZWYudHlwZSA9PT0gJ2NvbmZpZycpIHtcbiAgICAgICAgICBjb25maWdzLnB1c2goZGVmLmFzQ29uZmlnKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlncztcbiAgfVxuXG4gIGdldCBpbnN0YW5jZUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmluc3RhbmNlQXJuO1xuICB9XG5cbiAgZ2V0IGhvdXJzT2ZPcGVyYXRpb25Bcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ob3Vyc09mT3BlcmF0aW9uLmF0dHJIb3Vyc09mT3BlcmF0aW9uQXJuO1xuICB9XG59XG5cbmNvbnN0IERVTU1ZX0hPVVJTX09GX09QRVJBVElPTl9QUk9QUyA9IHtcbiAgaW5zdGFuY2VBcm46ICdpbnN0YW5jZS1hcm4nLFxuICBob3Vyc09mT3BlcmF0aW9uQXJuOiAnaG91cnMtb2Ytb3BlcmF0aW9uLWFybicsXG4gIGhvdXJzT2ZPcGVyYXRpb25OYW1lOiAnaG91cnMtb2Ytb3BlcmF0aW9uLW5hbWUnLFxufTtcblxuY2xhc3MgTG9va2VkVXBIb3Vyc09mT3BlcmF0aW9uIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJSG91cnNPZk9wZXJhdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSBob3Vyc09mT3BlcmF0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZUFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaG91cnNPZk9wZXJhdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGluY29tcGxldGVJbnN0YW5jZURlZmluaXRpb246IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGFueSwgaXNJbmNvbXBsZXRlOiBib29sZWFuKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzLm93bmVyQWNjb3VudElkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5ob3Vyc09mT3BlcmF0aW9uQXJuID0gcHJvcHMuaG91cnNPZk9wZXJhdGlvbkFybjtcbiAgICB0aGlzLmluc3RhbmNlQXJuID0gcHJvcHMuaW5zdGFuY2VBcm47XG4gICAgdGhpcy5ob3Vyc09mT3BlcmF0aW9uTmFtZSA9IHByb3BzLmhvdXJzT2ZPcGVyYXRpb25OYW1lO1xuICAgIHRoaXMuaW5jb21wbGV0ZUluc3RhbmNlRGVmaW5pdGlvbiA9IGlzSW5jb21wbGV0ZTtcbiAgfVxufSJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cnNfb2Zfb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hvdXJzX29mX29wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBT3FCO0FBQ3JCLDRFQUE4RDtBQUM5RCw0RUFBNEQ7QUFDNUQsOEVBQThFO0FBSTlFLElBQVkseUJBUVg7QUFSRCxXQUFZLHlCQUF5QjtJQUNuQyw4Q0FBaUIsQ0FBQTtJQUNqQiw4Q0FBaUIsQ0FBQTtJQUNqQixnREFBbUIsQ0FBQTtJQUNuQixvREFBdUIsQ0FBQTtJQUN2QixrREFBcUIsQ0FBQTtJQUNyQiw4Q0FBaUIsQ0FBQTtJQUNqQixrREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcseUJBQXlCLHlDQUF6Qix5QkFBeUIsUUFRcEM7QUFhRCxNQUFhLDBCQUEwQjs7SUFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUE4QixFQUFFLFNBQWlCLEVBQUUsT0FBZTtRQUNqRixPQUFPLElBQUksMEJBQTBCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRWdCLEtBQUssQ0FBTTtJQUU1QixZQUFvQixLQUFVO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ2hFLENBQUM7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cG9ydCB7XG4gIGF3c19jb25uZWN0IGFzIGNvbm5lY3QsXG4gIENvbnRleHRQcm92aWRlcixcbiAgSVJlc291cmNlLFxuICBSZXNvdXJjZSxcbiAgVG9rZW4sXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnYXdzLWNkay1saWIvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElJbnN0YW5jZSB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgZW51bSBIb3Vyc09mT3BlcmF0aW9uRGF5T2ZXZWVrIHtcbiAgU1VOREFZID0gJ1NVTkRBWScsXG4gIE1PTkRBWSA9ICdNT05EQVknLFxuICBUVUVTREFZID0gJ1RVRVNEQVknLFxuICBXRURORVNEQVkgPSAnV0VETkVTREFZJyxcbiAgVEhVUlNEQVkgPSAnVEhVUlNEQVknLFxuICBGUklEQVkgPSAnRlJJREFZJyxcbiAgU0FUVVJEQVkgPSAnU0FUVVJEQVknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIb3Vyc09mT3BlcmF0aW9uIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGF0dGFjaGVkIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGhvdXJzIG9mIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGhvdXJzT2ZPcGVyYXRpb25Bcm46IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEhvdXJzT2ZPcGVyYXRpb25EZWZpbml0aW9uIHtcbiAgc3RhdGljIGRheU9mV2VlayhkYXk6IEhvdXJzT2ZPcGVyYXRpb25EYXlPZldlZWssIHN0YXJ0VGltZTogc3RyaW5nLCBlbmRUaW1lOiBzdHJpbmcpOiBIb3Vyc09mT3BlcmF0aW9uRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBIb3Vyc09mT3BlcmF0aW9uRGVmaW5pdGlvbih7IGNvbmZpZzogeyBkYXlPZldlZWs6IGRheSwgc3RhcnRUaW1lOiBzdGFydFRpbWUsIGVuZFRpbWU6IGVuZFRpbWUgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IGFueTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICBzcGxpdFRpbWUodGltZTogc3RyaW5nKTogY29ubmVjdC5DZm5Ib3Vyc09mT3BlcmF0aW9uLkhvdXJzT2ZPcGVyYXRpb25UaW1lU2xpY2VQcm9wZXJ0eSB7XG4gICAgY29uc3QgW2hvdXJzLCBtaW51dGVzXSA9IHRpbWUuc3BsaXQoJzonKTtcbiAgICByZXR1cm4geyBob3VyczogcGFyc2VJbnQoaG91cnMpLCBtaW51dGVzOiBwYXJzZUludChtaW51dGVzKSB9O1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuICdjb25maWcnIGluIHRoaXMucHJvcHMgPyAnY29uZmlnJyA6ICdvdmVycmlkZSc7XG4gIH1cblxuICBhc0NvbmZpZygpOiBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb24uSG91cnNPZk9wZXJhdGlvbkNvbmZpZ1Byb3BlcnR5IHwgY29ubmVjdC5DZm5Ib3Vyc09mT3BlcmF0aW9uLkhvdXJzT2ZPcGVyYXRpb25PdmVycmlkZUNvbmZpZ1Byb3BlcnR5IHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb25maWcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRheTogdGhpcy5wcm9wcy5jb25maWcuZGF5T2ZXZWVrLFxuICAgICAgICBzdGFydFRpbWU6IHRoaXMuc3BsaXRUaW1lKHRoaXMucHJvcHMuY29uZmlnLnN0YXJ0VGltZSksXG4gICAgICAgIGVuZFRpbWU6IHRoaXMuc3BsaXRUaW1lKHRoaXMucHJvcHMuY29uZmlnLmVuZFRpbWUpLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMub3ZlcnJpZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkZWZpbml0aW9uJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG91cnNPZk9wZXJhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgY29ubmVjdCBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGhvdXJzIG9mIG9wZXJhdGlvbiB0by5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlOiBJSW5zdGFuY2U7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaG91cnMgb2Ygb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGltZXpvbmUgdG8gZGVmaW5lIHRoZSBob3VycyBvZiBvcGVyYXRpb24gaW4uIERlZmF1bHRzIHRvIFVUQy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVab25lPzogc3RyaW5nO1xuICAvKipcbiAgICogdGhlIHNldCBvZiBkZWZpbml0aW9ucyBmb3IgdGhlIGhvdXJzIG9mIG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5pdGlvbnM/OiBIb3Vyc09mT3BlcmF0aW9uRGVmaW5pdGlvbltdO1xuICAvKipcbiAgICogVE9ETzogQWRkIGluIE92ZXJyaWRlc1xuICAgKiBUT0RPOiBBZGQgaW4gUGFyZW50IEhvdXJzT2ZPcGVyYXRpb25cbiAgICogVE9ETzogQWRkIGluIENoaWxkIEhvdXJzT2ZPcGVyYXRpb25cbiAgICovXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG91cnNPZk9wZXJhdGlvbkxvb2t1cE9wdGlvbnMge1xuICByZWFkb25seSBpbnN0YW5jZUFybjogc3RyaW5nO1xuICByZWFkb25seSBob3Vyc09mT3BlcmF0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGhvdXJzT2ZPcGVyYXRpb25Bcm4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBIb3Vyc09mT3BlcmF0aW9uIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJSG91cnNPZk9wZXJhdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxvb2t1cChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBIb3Vyc09mT3BlcmF0aW9uTG9va3VwT3B0aW9ucyk6IElIb3Vyc09mT3BlcmF0aW9uIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMubmFtZSlcbiAgICAgICAgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuaW5zdGFuY2VBcm4pXG4gICAgICAgIHx8IFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLmhvdXJzT2ZPcGVyYXRpb25JZClcbiAgICAgICAgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuaG91cnNPZk9wZXJhdGlvbkFybikpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEFyZ3VtZW50c2AsICdBbGwgYXJndW1lbnRzIHRvIEhvdXJzT2ZPcGVyYXRpb24uZnJvbUxvb2t1cCgpIG11c3QgYmUgY29uY3JldGUgKG5vIFRva2VucyknLCBzY29wZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7fTtcblxuICAgIGZpbHRlci5yZXNvdXJjZU1vZGVsID0ge1xuICAgICAgSW5zdGFuY2VBcm46IG9wdGlvbnMuaW5zdGFuY2VBcm4sXG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5ob3Vyc09mT3BlcmF0aW9uQXJuKSB7XG4gICAgICBmaWx0ZXIuZXhhY3RJZGVudGlmaWVyID0gb3B0aW9ucy5ob3Vyc09mT3BlcmF0aW9uQXJuO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5ob3Vyc09mT3BlcmF0aW9uSWQpIHtcbiAgICAgIGZpbHRlci5leGFjdElkZW50aWZpZXIgPSBgJHtvcHRpb25zLmluc3RhbmNlQXJufS9vcGVyYXRpbmctaG91cnMvJHtvcHRpb25zLmhvdXJzT2ZPcGVyYXRpb25JZH1gO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaCB8fD0ge307XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaC5OYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUoc2NvcGUsIHtcbiAgICAgIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSLFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgdHlwZU5hbWU6ICdBV1M6OkNvbm5lY3Q6OkhvdXJzT2ZPcGVyYXRpb24nLFxuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIHByb3BlcnRpZXNUb1JldHVybjogWydIb3Vyc09mT3BlcmF0aW9uQXJuJywgJ05hbWUnXSxcbiAgICAgICAgZXhwZWN0ZWRNYXRjaENvdW50OiAnZXhhY3RseS1vbmUnLFxuICAgICAgfSBhcyBjeHNjaGVtYS5DY0FwaUNvbnRleHRRdWVyeSxcbiAgICAgIGR1bW15VmFsdWU6IHVuZGVmaW5lZCxcbiAgICB9KS52YWx1ZTtcblxuICAgIGxldCBpbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2VbMF0pIHtcbiAgICAgIGluc3RhbmNlID0ge1xuICAgICAgICBpbnN0YW5jZUFybjogb3B0aW9ucy5pbnN0YW5jZUFybixcbiAgICAgICAgaG91cnNPZk9wZXJhdGlvbkFybjogcmVzcG9uc2VbMF0uSG91cnNPZk9wZXJhdGlvbkFybixcbiAgICAgICAgaG91cnNPZk9wZXJhdGlvbk5hbWU6IHJlc3BvbnNlWzBdLk5hbWUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExvb2tlZFVwSG91cnNPZk9wZXJhdGlvbihzY29wZSwgaWQsIGluc3RhbmNlID8/IERVTU1ZX0hPVVJTX09GX09QRVJBVElPTl9QUk9QUywgaW5zdGFuY2UgPT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICByZWFkb25seSBpbnN0YW5jZTogSUluc3RhbmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEhvdXJzT2ZPcGVyYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLmluc3RhbmNlID0gcHJvcHMuaW5zdGFuY2U7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb24oXG4gICAgICB0aGlzLCAnSG91cnNPZk9wZXJhdGlvbicsIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLmJ1aWxkSE9PQ29uZmlnKHByb3BzLmRlZmluaXRpb25zKSxcbiAgICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgdGltZVpvbmU6IHByb3BzLnRpbWVab25lID8/ICdVVEMnLFxuICAgICAgICBpbnN0YW5jZUFybjogdGhpcy5pbnN0YW5jZUFybixcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRIT09Db25maWcoZGVmaW5pdGlvbnM/OiBIb3Vyc09mT3BlcmF0aW9uRGVmaW5pdGlvbltdKTogY29ubmVjdC5DZm5Ib3Vyc09mT3BlcmF0aW9uLkhvdXJzT2ZPcGVyYXRpb25Db25maWdQcm9wZXJ0eVtdIHtcbiAgICBjb25zdCBjb25maWdzOiBjb25uZWN0LkNmbkhvdXJzT2ZPcGVyYXRpb24uSG91cnNPZk9wZXJhdGlvbkNvbmZpZ1Byb3BlcnR5W10gPSBbXTtcbiAgICBpZiAoZGVmaW5pdGlvbnMpIHtcbiAgICAgIGRlZmluaXRpb25zLmZvckVhY2goKGRlZikgPT4ge1xuICAgICAgICBpZiAoZGVmLnR5cGUgPT09ICdjb25maWcnKSB7XG4gICAgICAgICAgY29uZmlncy5wdXNoKGRlZi5hc0NvbmZpZygpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ3M7XG4gIH1cblxuICBnZXQgaW5zdGFuY2VBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnN0YW5jZS5pbnN0YW5jZUFybjtcbiAgfVxuXG4gIGdldCBob3Vyc09mT3BlcmF0aW9uQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuYXR0ckhvdXJzT2ZPcGVyYXRpb25Bcm47XG4gIH1cbn1cblxuY29uc3QgRFVNTVlfSE9VUlNfT0ZfT1BFUkFUSU9OX1BST1BTID0ge1xuICBpbnN0YW5jZUFybjogJ2luc3RhbmNlLWFybicsXG4gIGhvdXJzT2ZPcGVyYXRpb25Bcm46ICdob3Vycy1vZi1vcGVyYXRpb24tYXJuJyxcbiAgaG91cnNPZk9wZXJhdGlvbk5hbWU6ICdob3Vycy1vZi1vcGVyYXRpb24tbmFtZScsXG59O1xuXG5jbGFzcyBMb29rZWRVcEhvdXJzT2ZPcGVyYXRpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElIb3Vyc09mT3BlcmF0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGhvdXJzT2ZPcGVyYXRpb25Bcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBob3Vyc09mT3BlcmF0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5jb21wbGV0ZURlZmluaXRpb246IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGFueSwgaXNJbmNvbXBsZXRlOiBib29sZWFuKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzLm93bmVyQWNjb3VudElkLFxuICAgIH0pO1xuXG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5ob3Vyc09mT3BlcmF0aW9uQXJuID0gcHJvcHMuaG91cnNPZk9wZXJhdGlvbkFybjtcbiAgICB0aGlzLmluc3RhbmNlQXJuID0gcHJvcHMuaW5zdGFuY2VBcm47XG4gICAgdGhpcy5ob3Vyc09mT3BlcmF0aW9uTmFtZSA9IHByb3BzLmhvdXJzT2ZPcGVyYXRpb25OYW1lO1xuICAgIHRoaXMuaW5jb21wbGV0ZURlZmluaXRpb24gPSBpc0luY29tcGxldGU7XG4gIH1cbn0iXX0=
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './types';
1
2
  export * from './instance';
2
3
  export * from './contact_flow';
3
4
  export * from './contact_flow_module';
package/lib/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
17
18
  __exportStar(require("./instance"), exports);
18
19
  __exportStar(require("./contact_flow"), exports);
19
20
  __exportStar(require("./contact_flow_module"), exports);
@@ -28,4 +29,4 @@ __exportStar(require("./user"), exports);
28
29
  __exportStar(require("./routing_profile"), exports);
29
30
  __exportStar(require("./security_profile"), exports);
30
31
  __exportStar(require("./storage_config"), exports);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQixpREFBK0I7QUFDL0Isd0RBQXNDO0FBQ3RDLHVEQUFxQztBQUNyQywrREFBNkM7QUFDN0MsMENBQXdCO0FBQ3hCLGlEQUErQjtBQUMvQixrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLG9EQUFrQztBQUNsQyx5Q0FBdUI7QUFDdkIsb0RBQWtDO0FBQ2xDLHFEQUFtQztBQUNuQyxtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdF9mbG93JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdF9mbG93X21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hvdXJzX29mX29wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyYWZmaWNfZGlzdHJpYnV0aW9uX2dyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi9waG9uZV9udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbWFpbF9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVpY2tfY29ubmVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2hpZXJhcmNoeV9ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0aW5nX3Byb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWN1cml0eV9wcm9maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZV9jb25maWcnOyJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLHdEQUFzQztBQUN0Qyx1REFBcUM7QUFDckMsK0RBQTZDO0FBQzdDLDBDQUF3QjtBQUN4QixpREFBK0I7QUFDL0Isa0RBQWdDO0FBQ2hDLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMseUNBQXVCO0FBQ3ZCLG9EQUFrQztBQUNsQyxxREFBbUM7QUFDbkMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdF9mbG93JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdF9mbG93X21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hvdXJzX29mX29wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyYWZmaWNfZGlzdHJpYnV0aW9uX2dyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi9waG9uZV9udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbWFpbF9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVpY2tfY29ubmVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2hpZXJhcmNoeV9ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0aW5nX3Byb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWN1cml0eV9wcm9maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZV9jb25maWcnO1xuIl19
package/lib/instance.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { aws_connect as connect, aws_lambda as lambda, aws_lex as lex, IResource, RemovalPolicy, Resource, ResourceProps } from 'aws-cdk-lib';
1
+ import { aws_lambda as lambda, aws_lex as lex, IResource, RemovalPolicy, Resource, ResourceProps } from 'aws-cdk-lib';
2
2
  import { Construct } from 'constructs';
3
3
  import { StorageConfig } from './storage_config';
4
4
  export declare enum IdentityManagementType {
@@ -18,6 +18,10 @@ export interface OtherConfigProps {
18
18
  * Whether contact lens is enabled. (CONTACT_LENS)
19
19
  */
20
20
  readonly contactLens?: boolean;
21
+ /**
22
+ * Whether message streaming is enabled. (MESSAGE_STREAMING)
23
+ */
24
+ readonly messageStreaming?: boolean;
21
25
  /**
22
26
  * Whether enhanced chat monitoring is enabled. (ENHANCED_CHAT_MONITORING)
23
27
  */
@@ -93,12 +97,12 @@ export interface InstanceProps {
93
97
  *
94
98
  * currently that list is the following:
95
99
  *
100
+ * AUTO_MUTE_AGENT_ON_HOLD
96
101
  * AUTOMATED_INTERACTION_LOG
97
102
  * BOT_MANAGEMENT
98
103
  * ENABLE_BOT_ANALYTICS_AND_TRANSCRIPTS
99
104
  * FORECASTING_PLANNING_SCHEDULING
100
105
  * MAX_PACKAGE
101
- * MESSAGE_STREAMING
102
106
  */
103
107
  readonly customAttributes?: Record<string, boolean>;
104
108
  /**
@@ -154,7 +158,7 @@ declare abstract class InstanceBase extends Resource implements IInstance {
154
158
  }
155
159
  export declare class Instance extends InstanceBase {
156
160
  static fromLookup(scope: Construct, id: string, options: InstanceLookupOptions): IInstance;
157
- readonly instance: connect.CfnInstance;
161
+ private readonly resource;
158
162
  readonly instanceName?: string;
159
163
  constructor(scope: Construct, id: string, props: InstanceProps);
160
164
  private setupCustomAttributes;
package/lib/instance.js CHANGED
@@ -1,11 +1,45 @@
1
1
  "use strict";
2
- var _a;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
3
35
  Object.defineProperty(exports, "__esModule", { value: true });
4
36
  exports.Instance = exports.IdentityManagementType = void 0;
5
37
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const path = require("path");
38
+ const path = __importStar(require("path"));
7
39
  const aws_cdk_lib_1 = require("aws-cdk-lib");
8
- const cxschema = require("aws-cdk-lib/cloud-assembly-schema");
40
+ const cxschema = __importStar(require("aws-cdk-lib/cloud-assembly-schema"));
41
+ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
42
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
9
43
  const constructs_1 = require("constructs");
10
44
  var IdentityManagementType;
11
45
  (function (IdentityManagementType) {
@@ -14,9 +48,10 @@ var IdentityManagementType;
14
48
  IdentityManagementType["EXISTING_DIRECTORY"] = "EXISTING_DIRECTORY";
15
49
  })(IdentityManagementType || (exports.IdentityManagementType = IdentityManagementType = {}));
16
50
  class InstanceBase extends aws_cdk_lib_1.Resource {
51
+ storageResourceTypes = new Set();
52
+ removalPolicy;
17
53
  constructor(scope, id, props, removalPolicy) {
18
54
  super(scope, id, props);
19
- this.storageResourceTypes = new Set();
20
55
  this.removalPolicy = removalPolicy;
21
56
  }
22
57
  addStorageConfig(config, id = undefined) {
@@ -48,15 +83,20 @@ class InstanceBase extends aws_cdk_lib_1.Resource {
48
83
  }
49
84
  }
50
85
  class LookedUpInstance extends InstanceBase {
86
+ instanceId;
87
+ instanceArn;
88
+ instanceName;
89
+ incompleteDefinition;
51
90
  constructor(scope, id, props, isIncomplete) {
52
91
  super(scope, id, {
53
92
  region: props.region,
54
93
  account: props.ownerAccountId,
55
94
  });
95
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
56
96
  this.instanceId = props.instanceId;
57
97
  this.instanceArn = props.instanceArn;
58
98
  this.instanceName = props.instanceName;
59
- this.incompleteInstanceDefinition = isIncomplete;
99
+ this.incompleteDefinition = isIncomplete;
60
100
  }
61
101
  }
62
102
  const DUMMY_INSTANCE_PROPS = {
@@ -64,22 +104,23 @@ const DUMMY_INSTANCE_PROPS = {
64
104
  instanceId: 'instance-12345',
65
105
  };
66
106
  class Instance extends InstanceBase {
107
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.Instance", version: "0.2.4" };
67
108
  static fromLookup(scope, id, options) {
68
109
  if (aws_cdk_lib_1.Token.isUnresolved(options.instanceId)
69
110
  || aws_cdk_lib_1.Token.isUnresolved(options.instanceName)
70
111
  || aws_cdk_lib_1.Token.isUnresolved(options.instanceArn)) {
71
- throw new aws_cdk_lib_1.ValidationError('All arguments to Instance.fromLookup() must be concrete (no Tokens)', scope);
112
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `Arguments`, 'All arguments to Instance.fromLookup() must be concrete (no Tokens)', scope);
72
113
  }
73
114
  const filter = {};
74
115
  if (options.instanceArn) {
75
116
  filter.exactIdentifier = options.instanceArn;
76
117
  }
77
118
  if (options.instanceId) {
78
- filter.propertyMatch || (filter.propertyMatch = {});
119
+ filter.propertyMatch ||= {};
79
120
  filter.propertyMatch.Id = options.instanceId;
80
121
  }
81
122
  if (options.instanceName) {
82
- filter.propertyMatch || (filter.propertyMatch = {});
123
+ filter.propertyMatch ||= {};
83
124
  filter.propertyMatch.InstanceAlias = options.instanceName;
84
125
  }
85
126
  const response = aws_cdk_lib_1.ContextProvider.getValue(scope, {
@@ -87,7 +128,7 @@ class Instance extends InstanceBase {
87
128
  props: {
88
129
  typeName: 'AWS::Connect::Instance',
89
130
  ...filter,
90
- propertiesToReturn: ['Arn', 'InstanceAlias', 'Id', 'Tags'],
131
+ propertiesToReturn: ['Arn', 'InstanceAlias', 'Id'],
91
132
  expectedMatchCount: 'exactly-one',
92
133
  },
93
134
  dummyValue: undefined,
@@ -102,8 +143,11 @@ class Instance extends InstanceBase {
102
143
  }
103
144
  return new LookedUpInstance(scope, id, instance ?? DUMMY_INSTANCE_PROPS, instance === undefined);
104
145
  }
146
+ resource;
147
+ instanceName;
105
148
  constructor(scope, id, props) {
106
149
  super(scope, id, undefined, props.removalPolicy);
150
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
107
151
  const attributes = {
108
152
  ...props.telephonyConfig,
109
153
  ...props.pollyConfig,
@@ -116,12 +160,12 @@ class Instance extends InstanceBase {
116
160
  aws_cdk_lib_1.Annotations.of(this).addError('instanceAlias is required when identityType is set to CONNECT_MANAGED or SAML');
117
161
  }
118
162
  this.instanceName = props.instanceAlias;
119
- this.instance = new aws_cdk_lib_1.aws_connect.CfnInstance(this, 'Instance', {
163
+ this.resource = new aws_cdk_lib_1.aws_connect.CfnInstance(this, 'Instance', {
120
164
  attributes,
121
165
  identityManagementType: props.identityType,
122
166
  instanceAlias: props.instanceAlias,
123
167
  });
124
- this.instance.applyRemovalPolicy(props.removalPolicy, { default: aws_cdk_lib_1.RemovalPolicy.DESTROY });
168
+ this.resource.applyRemovalPolicy(props.removalPolicy, { default: aws_cdk_lib_1.RemovalPolicy.DESTROY });
125
169
  if (props.storageConfigs) {
126
170
  for (const config of props.storageConfigs) {
127
171
  this.addStorageConfig(config);
@@ -135,16 +179,15 @@ class Instance extends InstanceBase {
135
179
  new UpdateInstanceAttributes(this, 'UpdateCustomAttributes', this, customAttributes);
136
180
  }
137
181
  get instanceArn() {
138
- return this.instance.attrArn;
182
+ return this.resource.attrArn;
139
183
  }
140
184
  get instanceId() {
141
- return this.instance.ref;
185
+ return this.resource.ref;
142
186
  }
143
187
  }
144
188
  exports.Instance = Instance;
145
- _a = JSII_RTTI_SYMBOL_1;
146
- Instance[_a] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.Instance", version: "0.2.2" };
147
189
  class UpdateInstanceAttributes extends constructs_1.Construct {
190
+ static CUSTOM_ATTRIBUTES_FUNCTION_UUID = 'cb2f6b5c-f0aa-11f0-ac10-5b484827145c';
148
191
  constructor(scope, id, instance, attributes) {
149
192
  super(scope, id);
150
193
  const setupFunc = new aws_cdk_lib_1.aws_lambda.SingletonFunction(this, 'CustomAttributeFunc', {
@@ -188,5 +231,4 @@ class UpdateInstanceAttributes extends constructs_1.Construct {
188
231
  });
189
232
  }
190
233
  }
191
- UpdateInstanceAttributes.CUSTOM_ATTRIBUTES_FUNCTION_UUID = 'cb2f6b5c-f0aa-11f0-ac10-5b484827145c';
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsNkNBYXFCO0FBQ3JCLDhEQUE4RDtBQUM5RCwyQ0FBdUM7QUFHdkMsSUFBWSxzQkFJWDtBQUpELFdBQVksc0JBQXNCO0lBQ2hDLHVDQUFhLENBQUE7SUFDYiw2REFBbUMsQ0FBQTtJQUNuQyxtRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBSlcsc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFJakM7QUFrSkQsTUFBZSxZQUFhLFNBQVEsc0JBQVE7SUFRMUMsWUFBc0IsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUIsRUFBRSxhQUE2QjtRQUN0RyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUpsQix5QkFBb0IsR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUtqRSxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBcUIsRUFBRSxLQUF5QixTQUFTO1FBQ3hFLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN2RCx5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLE1BQU0sQ0FBQyxZQUFZLG1CQUFtQixDQUFDLENBQUM7WUFDaEcsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUIseUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGtEQUFrRCxNQUFNLENBQUMsWUFBWSxvQkFBb0IsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDN0ksT0FBTztRQUNU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Q0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFoRHVCLHdEQUErQixHQUFHLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIEFubm90YXRpb25zLFxuICBjdXN0b21fcmVzb3VyY2VzIGFzIGNyLFxuICBhd3NfY29ubmVjdCBhcyBjb25uZWN0LFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xleCBhcyBsZXgsXG4gIGF3c19sb2dzIGFzIGxvZ3MsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBDb250ZXh0UHJvdmlkZXIsIEN1c3RvbVJlc291cmNlLCBEdXJhdGlvbixcbiAgSVJlc291cmNlLCBSZW1vdmFsUG9saWN5LFxuICBSZXNvdXJjZSwgUmVzb3VyY2VQcm9wcyxcbiAgVG9rZW4sXG4gIFZhbGlkYXRpb25FcnJvciwgRm4sXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ2F3cy1jZGstbGliL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFN0b3JhZ2VDb25maWcsIFN0b3JhZ2VSZXNvdXJjZVR5cGUgfSBmcm9tICcuL3N0b3JhZ2VfY29uZmlnJztcblxuZXhwb3J0IGVudW0gSWRlbnRpdHlNYW5hZ2VtZW50VHlwZSB7XG4gIFNBTUwgPSAnU0FNTCcsXG4gIENPTk5FQ1RfTUFOQUdFRCA9ICdDT05ORUNUX01BTkFHRUQnLFxuICBFWElTVElOR19ESVJFQ1RPUlkgPSAnRVhJU1RJTkdfRElSRUNUT1JZJyxcbn1cblxuLyoqXG4gKiBBbGwgb3RoZXIgY29uZmlnIHByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3RoZXJDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbnRhY3QgZmxvdyBsb2dzIGFyZSBlbmFibGVkLiAoQ09OVEFDVEZMT1dfTE9HUylcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhY3RmbG93TG9ncz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbnRhY3QgbGVucyBpcyBlbmFibGVkLiAoQ09OVEFDVF9MRU5TKVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFjdExlbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBlbmhhbmNlZCBjaGF0IG1vbml0b3JpbmcgaXMgZW5hYmxlZC4gKEVOSEFOQ0VEX0NIQVRfTU9OSVRPUklORylcbiAgICovXG4gIHJlYWRvbmx5IGVuaGFuY2VkQ2hhdE1vbml0b3Jpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBoaWdoIHZvbHVtZSBvdXRib3VuZCBpcyBlbmFibGVkLiAoSElHSF9WT0xVTUVfT1VUQk9VTkQpXG4gICAqL1xuICByZWFkb25seSBoaWdoVm9sdW1lT3V0Qm91bmQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBlbmhhbmNlZCBjb250YWN0IG1vbml0b3JpbmcgaXMgZW5hYmxlZC4gKEVOSEFOQ0VEX0NPTlRBQ1RfTU9OSVRPUklORylcbiAgICovXG4gIHJlYWRvbmx5IGVuaGFuY2VkQ29udGFjdE1vbml0b3Jpbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbGVwaG9ueUNvbmZpZ1Byb3BzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgZWFybHkgbWVkaWEgaXMgZW5hYmxlZCAoRUFSTFlfTUVESUEpXG4gICAqL1xuICByZWFkb25seSBlYXJseU1lZGlhRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIGluYm91bmQgY2FsbHMgYXJlIGFsbG93ZWQuIChJTkJPVU5EX0NBTExTKVxuICAgKi9cbiAgcmVhZG9ubHkgaW5ib3VuZENhbGxzOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBtdWx0aSBwYXJ0eSBjaGF0IGlzIGVuYWJsZWQuIChNVUxUSV9QQVJUWV9DSEFUX0NPTkZFUkVOQ0UpXG4gICAqL1xuICByZWFkb25seSBtdWx0aVBhcnR5Q2hhdENvbmZlcmVuY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBtdWx0aSBwYXJ0eSBjb25mZXJlbmNlIGlzIGVuYWJsZWQuIChNVUxUSV9QQVJUWV9DT05GRVJFTkNFKVxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGlQYXJ0eUNvbmZlcmVuY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvdXRib3VuZCBjYWxscyBhcmUgYWxsb3dlZC4gKE9VVEJPVU5EX0NBTExTKVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0Ym91bmRDYWxsczogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2xseUNvbmZpZ1Byb3BzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSByZXNvbHZlIGJlc3Qgdm9pY2VzLiAoQVVUT19SRVNPTFZFX0JFU1RfVk9JQ0VTKVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1Jlc29sdmVCZXN0Vm9pY2VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlQ3VzdG9tVHRzVm9pY2VzIGlzIGVuYWJsZWQgKFVTRV9DVVNUT01fVFRTX1ZPSUNFUylcbiAgICovXG4gIHJlYWRvbmx5IHVzZUN1c3RvbVR0c1ZvaWNlcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpdHkgdHlwZSBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5VHlwZTogSWRlbnRpdHlNYW5hZ2VtZW50VHlwZTtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBhbGlhcywgcmVxdWlyZWQgd2hlbiBpZGVudGl0eVR5cGUgaXMgc2V0IHRvIENPTk5FQ1RfTUFOQUdFRCBvciBTQU1MLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VBbGlhcz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIGEgc2ltcGxlQUQgb3IgTWljcm9zb2Z0IEFEICheZC1bMC05YS1mXXsxMH0kKSwgcmVxdWlyZWQgd2hlbiBpZGVudGl0eVR5cGUgaXMgc2V0IHRvIEVYSVNUSU5HX0RJUkVDVE9SWS5cbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdG9yeUlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGVsZXBob255IHByb3BlcnRpZXMuICBSZXF1aXJlZCAoZHVlIHRvIHJlcXVpcmVkIHNldHRpbmcgb2YgaW5ib3VuZCAmIG91dGJvdW5kIGNhbGwgY29uZmlndXJhdGlvbilcbiAgICovXG4gIHJlYWRvbmx5IHRlbGVwaG9ueUNvbmZpZzogVGVsZXBob255Q29uZmlnUHJvcHM7XG4gIC8qKlxuICAgKiBQb2xseSBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSBwb2xseUNvbmZpZz86IFBvbGx5Q29uZmlnUHJvcHM7XG4gIC8qKlxuICAgKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSBvdGhlckNvbmZpZz86IE90aGVyQ29uZmlnUHJvcHM7XG4gIC8qKlxuICAgKiBEZWZpbmUgYW55IG90aGVyIGluc3RhbmNlIGF0dHJpYnV0ZSBjb25maWcgaGVyZS5cbiAgICpcbiAgICogY3VycmVudGx5IHRoYXQgbGlzdCBpcyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiBBVVRPTUFURURfSU5URVJBQ1RJT05fTE9HXG4gICAqIEJPVF9NQU5BR0VNRU5UXG4gICAqIEVOQUJMRV9CT1RfQU5BTFlUSUNTX0FORF9UUkFOU0NSSVBUU1xuICAgKiBGT1JFQ0FTVElOR19QTEFOTklOR19TQ0hFRFVMSU5HXG4gICAqIE1BWF9QQUNLQUdFXG4gICAqIE1FU1NBR0VfU1RSRUFNSU5HXG4gICAqL1xuICByZWFkb25seSBjdXN0b21BdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIC8qKlxuICAgKiBTdG9yYWdlIGNvbmZpZ3VyYXRpb25zIChjYW4gYWxzbyB1c2UgYWRkU3RvcmFnZUNvbmZpZygpIHRvIGFkZCBjb25maWdzIGxhdGVyKVxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZUNvbmZpZ3M/OiBTdG9yYWdlQ29uZmlnW107XG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlbW92YWwgcG9saWN5IGZvciB0aGUgaW5zdGFuY2UuIHRoZSBkZWZhdWx0IGlzIFJlbW92YWxQb2xpY3kuREVTVFJPWS5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbnN0YW5jZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UgaWRlbnRpZmllci5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBuYW1lLiAgTWF5IG5vdCBhbHdheXMgYmUgYXZhaWxhYmxlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmc7XG5cbiAgYWRkU3RvcmFnZUNvbmZpZyhjb25maWc6IFN0b3JhZ2VDb25maWcsIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkO1xuXG4gIGFzc29jaWF0ZUxhbWJkYUZ1bmN0aW9uKGlkOiBzdHJpbmcsIGZ1bmM6IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkO1xuXG4gIGFzc29jaWF0ZUxleEJvdChpZDogc3RyaW5nLCBib3Q6IGxleC5JQm90QWxpYXNSZWYpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlTG9va3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiB0aGUgSUQgb2YgdGhlIGNvbm5lY3QgaW5zdGFuY2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdCBpbnN0YW5jZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UgQXJuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUFybj86IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgSW5zdGFuY2VCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJSW5zdGFuY2Uge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZztcblxuICBwcml2YXRlIHN0b3JhZ2VSZXNvdXJjZVR5cGVzOiBTZXQ8U3RvcmFnZVJlc291cmNlVHlwZT4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogUmVzb3VyY2VQcm9wcywgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3kpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLnJlbW92YWxQb2xpY3kgPSByZW1vdmFsUG9saWN5O1xuICB9XG5cbiAgYWRkU3RvcmFnZUNvbmZpZyhjb25maWc6IFN0b3JhZ2VDb25maWcsIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy5zdG9yYWdlUmVzb3VyY2VUeXBlcy5oYXMoY29uZmlnLnJlc291cmNlVHlwZSkpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZEVycm9yKGBEdXBsaWNhdGUgcmVzb3VyY2VUeXBlICR7Y29uZmlnLnJlc291cmNlVHlwZX0gaW4gc3RvcmFnZUNvbmZpZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWNvbmZpZy5jaGVja0NvbmZpZygpKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRFcnJvcihgSW52YWxpZCBzdG9yYWdlIGNvbmZpZ3VyYXRpb24gZm9yIHJlc291cmNlVHlwZSAke2NvbmZpZy5yZXNvdXJjZVR5cGV9IGFuZCBzdG9yYWdlVHlwZSAke2NvbmZpZy5zdG9yYWdlVHlwZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlUmVzb3VyY2VUeXBlcy5hZGQoY29uZmlnLnJlc291cmNlVHlwZSk7XG4gICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBjb25uZWN0LkNmbkluc3RhbmNlU3RvcmFnZUNvbmZpZyh0aGlzLCBpZCB8fCBgU3RvcmFnZUNvbmZpZy0ke2NvbmZpZy5yZXNvdXJjZVR5cGV9YCwgY29uZmlnLmFzU3RvcmFnZUNvbmZpZ1Byb3BzKHRoaXMuaW5zdGFuY2VBcm4pKTtcbiAgICBzdG9yYWdlLmFwcGx5UmVtb3ZhbFBvbGljeShjb25maWcucmVtb3ZhbFBvbGljeSwgeyBkZWZhdWx0OiB0aGlzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIH0pO1xuICB9XG5cbiAgYXNzb2NpYXRlTGFtYmRhRnVuY3Rpb24oaWQ6IHN0cmluZywgZnVuYzogbGFtYmRhLklGdW5jdGlvbikge1xuICAgIG5ldyBjb25uZWN0LkNmbkludGVncmF0aW9uQXNzb2NpYXRpb24odGhpcywgaWQsIHtcbiAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2VBcm4sXG4gICAgICBpbnRlZ3JhdGlvblR5cGU6ICdMQU1CREFfRlVOQ1RJT04nLFxuICAgICAgaW50ZWdyYXRpb25Bcm46IGZ1bmMuZnVuY3Rpb25Bcm4sXG4gICAgfSk7XG4gIH1cblxuICBhc3NvY2lhdGVMZXhCb3QoaWQ6IHN0cmluZywgYm90OiBsZXguSUJvdEFsaWFzUmVmKSB7XG4gICAgbmV3IGNvbm5lY3QuQ2ZuSW50ZWdyYXRpb25Bc3NvY2lhdGlvbih0aGlzLCBpZCwge1xuICAgICAgaW5zdGFuY2VJZDogdGhpcy5pbnN0YW5jZUFybixcbiAgICAgIGludGVncmF0aW9uVHlwZTogJ0xFWF9CT1QnLFxuICAgICAgaW50ZWdyYXRpb25Bcm46IGJvdC5ib3RBbGlhc1JlZi5ib3RBbGlhc0FybixcbiAgICB9KTtcbiAgfVxufVxuXG5jbGFzcyBMb29rZWRVcEluc3RhbmNlIGV4dGVuZHMgSW5zdGFuY2VCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGluY29tcGxldGVJbnN0YW5jZURlZmluaXRpb246IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGFueSwgaXNJbmNvbXBsZXRlOiBib29sZWFuKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzLm93bmVyQWNjb3VudElkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnN0YW5jZUlkID0gcHJvcHMuaW5zdGFuY2VJZDtcbiAgICB0aGlzLmluc3RhbmNlQXJuID0gcHJvcHMuaW5zdGFuY2VBcm47XG4gICAgdGhpcy5pbnN0YW5jZU5hbWUgPSBwcm9wcy5pbnN0YW5jZU5hbWU7XG4gICAgdGhpcy5pbmNvbXBsZXRlSW5zdGFuY2VEZWZpbml0aW9uID0gaXNJbmNvbXBsZXRlO1xuICB9XG59XG5cbmNvbnN0IERVTU1ZX0lOU1RBTkNFX1BST1BTID0ge1xuICBpbnN0YW5jZUFybjogJ2luc3RhbmNlLWFybicsXG4gIGluc3RhbmNlSWQ6ICdpbnN0YW5jZS0xMjM0NScsXG59O1xuXG5leHBvcnQgY2xhc3MgSW5zdGFuY2UgZXh0ZW5kcyBJbnN0YW5jZUJhc2Uge1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb29rdXAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogSW5zdGFuY2VMb29rdXBPcHRpb25zKTogSUluc3RhbmNlIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuaW5zdGFuY2VJZClcbiAgICAgICAgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuaW5zdGFuY2VOYW1lKVxuICAgICAgICB8fCBUb2tlbi5pc1VucmVzb2x2ZWQob3B0aW9ucy5pbnN0YW5jZUFybikpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0FsbCBhcmd1bWVudHMgdG8gSW5zdGFuY2UuZnJvbUxvb2t1cCgpIG11c3QgYmUgY29uY3JldGUgKG5vIFRva2VucyknLCBzY29wZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7fTtcblxuICAgIGlmIChvcHRpb25zLmluc3RhbmNlQXJuKSB7XG4gICAgICBmaWx0ZXIuZXhhY3RJZGVudGlmaWVyID0gb3B0aW9ucy5pbnN0YW5jZUFybjtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbnN0YW5jZUlkKSB7XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaCB8fD0ge307XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaC5JZCA9IG9wdGlvbnMuaW5zdGFuY2VJZDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaW5zdGFuY2VOYW1lKSB7XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaCB8fD0ge307XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaC5JbnN0YW5jZUFsaWFzID0gb3B0aW9ucy5pbnN0YW5jZU5hbWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUoc2NvcGUsIHtcbiAgICAgIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSLFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgdHlwZU5hbWU6ICdBV1M6OkNvbm5lY3Q6Okluc3RhbmNlJyxcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICBwcm9wZXJ0aWVzVG9SZXR1cm46IFsnQXJuJywgJ0luc3RhbmNlQWxpYXMnLCAnSWQnLCAnVGFncyddLFxuICAgICAgICBleHBlY3RlZE1hdGNoQ291bnQ6ICdleGFjdGx5LW9uZScsXG4gICAgICB9IGFzIGN4c2NoZW1hLkNjQXBpQ29udGV4dFF1ZXJ5LFxuICAgICAgZHVtbXlWYWx1ZTogdW5kZWZpbmVkLFxuICAgIH0pLnZhbHVlO1xuXG4gICAgbGV0IGluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZVswXSkge1xuICAgICAgaW5zdGFuY2UgPSB7XG4gICAgICAgIGluc3RhbmNlQXJuOiByZXNwb25zZVswXS5Bcm4sXG4gICAgICAgIGluc3RhbmNlSWQ6IHJlc3BvbnNlWzBdLklkLFxuICAgICAgICBpbnN0YW5jZU5hbWU6IHJlc3BvbnNlWzBdLkluc3RhbmNlQWxpYXMsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExvb2tlZFVwSW5zdGFuY2Uoc2NvcGUsIGlkLCBpbnN0YW5jZSA/PyBEVU1NWV9JTlNUQU5DRV9QUk9QUywgaW5zdGFuY2UgPT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICByZWFkb25seSBpbnN0YW5jZTogY29ubmVjdC5DZm5JbnN0YW5jZTtcbiAgcmVhZG9ubHkgaW5zdGFuY2VOYW1lPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB1bmRlZmluZWQsIHByb3BzLnJlbW92YWxQb2xpY3kpO1xuXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IHtcbiAgICAgIC4uLnByb3BzLnRlbGVwaG9ueUNvbmZpZyxcbiAgICAgIC4uLnByb3BzLnBvbGx5Q29uZmlnLFxuICAgICAgLi4ucHJvcHMub3RoZXJDb25maWcsXG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5pZGVudGl0eVR5cGUgPT09IElkZW50aXR5TWFuYWdlbWVudFR5cGUuRVhJU1RJTkdfRElSRUNUT1JZICYmICFwcm9wcy5kaXJlY3RvcnlJZCkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoJ2RpcmVjdG9yeUlkIGlzIHJlcXVpcmVkIHdoZW4gaWRlbnRpdHlUeXBlIGlzIHNldCB0byBFWElTVElOR19ESVJFQ1RPUlknKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmlkZW50aXR5VHlwZSAhPT0gSWRlbnRpdHlNYW5hZ2VtZW50VHlwZS5FWElTVElOR19ESVJFQ1RPUlkgJiYgIXByb3BzLmluc3RhbmNlQWxpYXMpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZEVycm9yKCdpbnN0YW5jZUFsaWFzIGlzIHJlcXVpcmVkIHdoZW4gaWRlbnRpdHlUeXBlIGlzIHNldCB0byBDT05ORUNUX01BTkFHRUQgb3IgU0FNTCcpO1xuICAgIH1cblxuICAgIHRoaXMuaW5zdGFuY2VOYW1lID0gcHJvcHMuaW5zdGFuY2VBbGlhcztcbiAgICB0aGlzLmluc3RhbmNlID0gbmV3IGNvbm5lY3QuQ2ZuSW5zdGFuY2UodGhpcywgJ0luc3RhbmNlJywge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIGlkZW50aXR5TWFuYWdlbWVudFR5cGU6IHByb3BzLmlkZW50aXR5VHlwZSxcbiAgICAgIGluc3RhbmNlQWxpYXM6IHByb3BzLmluc3RhbmNlQWxpYXMsXG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSwgeyBkZWZhdWx0OiBSZW1vdmFsUG9saWN5LkRFU1RST1kgfSk7XG5cbiAgICBpZiAocHJvcHMuc3RvcmFnZUNvbmZpZ3MpIHtcbiAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHByb3BzLnN0b3JhZ2VDb25maWdzKSB7XG4gICAgICAgIHRoaXMuYWRkU3RvcmFnZUNvbmZpZyhjb25maWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5jdXN0b21BdHRyaWJ1dGVzICYmIE9iamVjdC5rZXlzKHByb3BzLmN1c3RvbUF0dHJpYnV0ZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0dXBDdXN0b21BdHRyaWJ1dGVzKHByb3BzLmN1c3RvbUF0dHJpYnV0ZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBDdXN0b21BdHRyaWJ1dGVzKGN1c3RvbUF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSB7XG4gICAgbmV3IFVwZGF0ZUluc3RhbmNlQXR0cmlidXRlcyh0aGlzLCAnVXBkYXRlQ3VzdG9tQXR0cmlidXRlcycsIHRoaXMsIGN1c3RvbUF0dHJpYnV0ZXMpO1xuICB9XG5cbiAgZ2V0IGluc3RhbmNlQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UuYXR0ckFybjtcbiAgfVxuXG4gIGdldCBpbnN0YW5jZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UucmVmO1xuICB9XG59XG5cbmNsYXNzIFVwZGF0ZUluc3RhbmNlQXR0cmlidXRlcyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENVU1RPTV9BVFRSSUJVVEVTX0ZVTkNUSU9OX1VVSUQgPSAnY2IyZjZiNWMtZjBhYS0xMWYwLWFjMTAtNWI0ODQ4MjcxNDVjJztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBpbnN0YW5jZTogSUluc3RhbmNlLCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPikge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBzZXR1cEZ1bmMgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsICdDdXN0b21BdHRyaWJ1dGVGdW5jJywge1xuICAgICAgdXVpZDogVXBkYXRlSW5zdGFuY2VBdHRyaWJ1dGVzLkNVU1RPTV9BVFRSSUJVVEVTX0ZVTkNUSU9OX1VVSUQsXG4gICAgICBsYW1iZGFQdXJwb3NlOiAnQ3VzdG9tQXR0cmlidXRlU2V0dXAnLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTIsXG4gICAgICBoYW5kbGVyOiAnYXBwLm9uX2V2ZW50JyxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnbGFtYmRhcycsICdpbnN0YW5jZV9hdHRyaWJ1dGVzJykpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAodGhpcywgJ0N1c3RvbUF0dHJpYnV0ZUxvZ0dyb3VwJywge1xuICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX0RBWSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsICdDdXN0b21BdHRyaWJ1dGVQcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBzZXR1cEZ1bmMsXG4gICAgICBsb2dHcm91cDogZ3JvdXAsXG4gICAgfSk7XG5cbiAgICBzZXR1cEZ1bmMuYWRkVG9Sb2xlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnY29ubmVjdDpVcGRhdGVJbnN0YW5jZUF0dHJpYnV0ZSddLFxuICAgICAgcmVzb3VyY2VzOiBbaW5zdGFuY2UuaW5zdGFuY2VBcm5dLFxuICAgIH0pKTtcbiAgICBzZXR1cEZ1bmMuYWRkVG9Sb2xlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2lhbTpEZWxldGVSb2xlUG9saWN5JyxcbiAgICAgICAgJ2lhbTpQdXRSb2xlUG9saWN5JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgRm4uc3ViKCdhcm46JHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke0FXUzo6QWNjb3VudElkfTpyb2xlL2F3cy1zZXJ2aWNlLXJvbGUvY29ubmVjdC5hbWF6b25hd3MuY29tLyonKSxcbiAgICAgIF0sXG4gICAgfSkpO1xuXG4gICAgbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdTZXR1cEN1c3RvbUF0dHJpYnV0ZXMnLCB7XG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkNvbm5lY3RJbnN0YW5jZUN1c3RvbUF0dHJpYnV0ZXMnLFxuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIEluc3RhbmNlSWQ6IGluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgICAgIEN1c3RvbUF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59Il19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3Qiw2Q0FhcUI7QUFDckIsNEVBQThEO0FBQzlELDRFQUE0RDtBQUM1RCw4RUFBOEU7QUFDOUUsMkNBQXVDO0FBR3ZDLElBQVksc0JBSVg7QUFKRCxXQUFZLHNCQUFzQjtJQUNoQyx1Q0FBYSxDQUFBO0lBQ2IsNkRBQW1DLENBQUE7SUFDbkMsbUVBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQUpXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBSWpDO0FBc0pELE1BQWUsWUFBYSxTQUFRLHNCQUFRO0lBS2xDLG9CQUFvQixHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xELGFBQWEsQ0FBaUI7SUFFL0MsWUFBc0IsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUIsRUFBRSxhQUE2QjtRQUN0RyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBcUIsRUFBRSxLQUF5QixTQUFTO1FBQ3hFLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN2RCx5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLE1BQU0sQ0FBQyxZQUFZLG1CQUFtQixDQUFDLENBQUM7WUFDaEcsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUIseUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFD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LHNCQUFzQjtnQkFDdEIsbUJBQW1CO2FBQ3BCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULGdCQUFFLENBQUMsR0FBRyxDQUFDLDRGQUE0RixDQUFDO2FBQ3JHO1NBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ2hELFlBQVksRUFBRSx5Q0FBeUM7WUFDdkQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7Z0JBQy9CLGdCQUFnQixFQUFFLFVBQVU7YUFDN0I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIEFubm90YXRpb25zLFxuICBjdXN0b21fcmVzb3VyY2VzIGFzIGNyLFxuICBhd3NfY29ubmVjdCBhcyBjb25uZWN0LFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xleCBhcyBsZXgsXG4gIGF3c19sb2dzIGFzIGxvZ3MsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBDb250ZXh0UHJvdmlkZXIsIEN1c3RvbVJlc291cmNlLCBEdXJhdGlvbixcbiAgSVJlc291cmNlLCBSZW1vdmFsUG9saWN5LFxuICBSZXNvdXJjZSwgUmVzb3VyY2VQcm9wcyxcbiAgVG9rZW4sXG4gIFZhbGlkYXRpb25FcnJvciwgRm4sXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ2F3cy1jZGstbGliL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBTdG9yYWdlQ29uZmlnLCBTdG9yYWdlUmVzb3VyY2VUeXBlIH0gZnJvbSAnLi9zdG9yYWdlX2NvbmZpZyc7XG5cbmV4cG9ydCBlbnVtIElkZW50aXR5TWFuYWdlbWVudFR5cGUge1xuICBTQU1MID0gJ1NBTUwnLFxuICBDT05ORUNUX01BTkFHRUQgPSAnQ09OTkVDVF9NQU5BR0VEJyxcbiAgRVhJU1RJTkdfRElSRUNUT1JZID0gJ0VYSVNUSU5HX0RJUkVDVE9SWScsXG59XG5cbi8qKlxuICogQWxsIG90aGVyIGNvbmZpZyBwcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE90aGVyQ29uZmlnUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciBjb250YWN0IGZsb3cgbG9ncyBhcmUgZW5hYmxlZC4gKENPTlRBQ1RGTE9XX0xPR1MpXG4gICAqL1xuICByZWFkb25seSBjb250YWN0Zmxvd0xvZ3M/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBjb250YWN0IGxlbnMgaXMgZW5hYmxlZC4gKENPTlRBQ1RfTEVOUylcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhY3RMZW5zPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgbWVzc2FnZSBzdHJlYW1pbmcgaXMgZW5hYmxlZC4gKE1FU1NBR0VfU1RSRUFNSU5HKVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZVN0cmVhbWluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIGVuaGFuY2VkIGNoYXQgbW9uaXRvcmluZyBpcyBlbmFibGVkLiAoRU5IQU5DRURfQ0hBVF9NT05JVE9SSU5HKVxuICAgKi9cbiAgcmVhZG9ubHkgZW5oYW5jZWRDaGF0TW9uaXRvcmluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIGhpZ2ggdm9sdW1lIG91dGJvdW5kIGlzIGVuYWJsZWQuIChISUdIX1ZPTFVNRV9PVVRCT1VORClcbiAgICovXG4gIHJlYWRvbmx5IGhpZ2hWb2x1bWVPdXRCb3VuZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIGVuaGFuY2VkIGNvbnRhY3QgbW9uaXRvcmluZyBpcyBlbmFibGVkLiAoRU5IQU5DRURfQ09OVEFDVF9NT05JVE9SSU5HKVxuICAgKi9cbiAgcmVhZG9ubHkgZW5oYW5jZWRDb250YWN0TW9uaXRvcmluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVsZXBob255Q29uZmlnUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciBlYXJseSBtZWRpYSBpcyBlbmFibGVkIChFQVJMWV9NRURJQSlcbiAgICovXG4gIHJlYWRvbmx5IGVhcmx5TWVkaWFFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgaW5ib3VuZCBjYWxscyBhcmUgYWxsb3dlZC4gKElOQk9VTkRfQ0FMTFMpXG4gICAqL1xuICByZWFkb25seSBpbmJvdW5kQ2FsbHM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG11bHRpIHBhcnR5IGNoYXQgaXMgZW5hYmxlZC4gKE1VTFRJX1BBUlRZX0NIQVRfQ09ORkVSRU5DRSlcbiAgICovXG4gIHJlYWRvbmx5IG11bHRpUGFydHlDaGF0Q29uZmVyZW5jZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG11bHRpIHBhcnR5IGNvbmZlcmVuY2UgaXMgZW5hYmxlZC4gKE1VTFRJX1BBUlRZX0NPTkZFUkVOQ0UpXG4gICAqL1xuICByZWFkb25seSBtdWx0aVBhcnR5Q29uZmVyZW5jZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG91dGJvdW5kIGNhbGxzIGFyZSBhbGxvd2VkLiAoT1VUQk9VTkRfQ0FMTFMpXG4gICAqL1xuICByZWFkb25seSBvdXRib3VuZENhbGxzOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvbGx5Q29uZmlnUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IHJlc29sdmUgYmVzdCB2b2ljZXMuIChBVVRPX1JFU09MVkVfQkVTVF9WT0lDRVMpXG4gICAqL1xuICByZWFkb25seSBhdXRvUmVzb2x2ZUJlc3RWb2ljZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB1c2VDdXN0b21UdHNWb2ljZXMgaXMgZW5hYmxlZCAoVVNFX0NVU1RPTV9UVFNfVk9JQ0VTKVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlQ3VzdG9tVHRzVm9pY2VzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGl0eSB0eXBlIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHlUeXBlOiBJZGVudGl0eU1hbmFnZW1lbnRUeXBlO1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIGFsaWFzLCByZXF1aXJlZCB3aGVuIGlkZW50aXR5VHlwZSBpcyBzZXQgdG8gQ09OTkVDVF9NQU5BR0VEIG9yIFNBTUwuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUFsaWFzPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgYSBzaW1wbGVBRCBvciBNaWNyb3NvZnQgQUQgKF5kLVswLTlhLWZdezEwfSQpLCByZXF1aXJlZCB3aGVuIGlkZW50aXR5VHlwZSBpcyBzZXQgdG8gRVhJU1RJTkdfRElSRUNUT1JZLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlyZWN0b3J5SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZWxlcGhvbnkgcHJvcGVydGllcy4gIFJlcXVpcmVkIChkdWUgdG8gcmVxdWlyZWQgc2V0dGluZyBvZiBpbmJvdW5kICYgb3V0Ym91bmQgY2FsbCBjb25maWd1cmF0aW9uKVxuICAgKi9cbiAgcmVhZG9ubHkgdGVsZXBob255Q29uZmlnOiBUZWxlcGhvbnlDb25maWdQcm9wcztcbiAgLyoqXG4gICAqIFBvbGx5IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IHBvbGx5Q29uZmlnPzogUG9sbHlDb25maWdQcm9wcztcbiAgLyoqXG4gICAqIE90aGVyIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IG90aGVyQ29uZmlnPzogT3RoZXJDb25maWdQcm9wcztcbiAgLyoqXG4gICAqIERlZmluZSBhbnkgb3RoZXIgaW5zdGFuY2UgYXR0cmlidXRlIGNvbmZpZyBoZXJlLlxuICAgKlxuICAgKiBjdXJyZW50bHkgdGhhdCBsaXN0IGlzIHRoZSBmb2xsb3dpbmc6XG4gICAqXG4gICAqIEFVVE9fTVVURV9BR0VOVF9PTl9IT0xEXG4gICAqIEFVVE9NQVRFRF9JTlRFUkFDVElPTl9MT0dcbiAgICogQk9UX01BTkFHRU1FTlRcbiAgICogRU5BQkxFX0JPVF9BTkFMWVRJQ1NfQU5EX1RSQU5TQ1JJUFRTXG4gICAqIEZPUkVDQVNUSU5HX1BMQU5OSU5HX1NDSEVEVUxJTkdcbiAgICogTUFYX1BBQ0tBR0VcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgLyoqXG4gICAqIFN0b3JhZ2UgY29uZmlndXJhdGlvbnMgKGNhbiBhbHNvIHVzZSBhZGRTdG9yYWdlQ29uZmlnKCkgdG8gYWRkIGNvbmZpZ3MgbGF0ZXIpXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlQ29uZmlncz86IFN0b3JhZ2VDb25maWdbXTtcbiAgLyoqXG4gICAqIFNldCB0aGUgcmVtb3ZhbCBwb2xpY3kgZm9yIHRoZSBpbnN0YW5jZS4gdGhlIGRlZmF1bHQgaXMgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUluc3RhbmNlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBpZGVudGlmaWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG5hbWUuICBNYXkgbm90IGFsd2F5cyBiZSBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZztcblxuICBhZGRTdG9yYWdlQ29uZmlnKGNvbmZpZzogU3RvcmFnZUNvbmZpZywgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQ7XG5cbiAgYXNzb2NpYXRlTGFtYmRhRnVuY3Rpb24oaWQ6IHN0cmluZywgZnVuYzogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQ7XG5cbiAgYXNzb2NpYXRlTGV4Qm90KGlkOiBzdHJpbmcsIGJvdDogbGV4LklCb3RBbGlhc1JlZik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VMb29rdXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIHRoZSBJRCBvZiB0aGUgY29ubmVjdCBpbnN0YW5jZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb25uZWN0IGluc3RhbmNlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBBcm5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlQXJuPzogc3RyaW5nO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBJbnN0YW5jZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElJbnN0YW5jZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpbnN0YW5jZUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgaW5zdGFuY2VOYW1lPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgc3RvcmFnZVJlc291cmNlVHlwZXM6IFNldDxTdG9yYWdlUmVzb3VyY2VUeXBlPiA9IG5ldyBTZXQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBSZXNvdXJjZVByb3BzLCByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMucmVtb3ZhbFBvbGljeSA9IHJlbW92YWxQb2xpY3k7XG4gIH1cblxuICBhZGRTdG9yYWdlQ29uZmlnKGNvbmZpZzogU3RvcmFnZUNvbmZpZywgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLnN0b3JhZ2VSZXNvdXJjZVR5cGVzLmhhcyhjb25maWcucmVzb3VyY2VUeXBlKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoYER1cGxpY2F0ZSByZXNvdXJjZVR5cGUgJHtjb25maWcucmVzb3VyY2VUeXBlfSBpbiBzdG9yYWdlQ29uZmlnYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY29uZmlnLmNoZWNrQ29uZmlnKCkpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZEVycm9yKGBJbnZhbGlkIHN0b3JhZ2UgY29uZmlndXJhdGlvbiBmb3IgcmVzb3VyY2VUeXBlICR7Y29uZmlnLnJlc291cmNlVHlwZX0gYW5kIHN0b3JhZ2VUeXBlICR7Y29uZmlnLnN0b3JhZ2VUeXBlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2VSZXNvdXJjZVR5cGVzLmFkZChjb25maWcucmVzb3VyY2VUeXBlKTtcbiAgICBjb25zdCBzdG9yYWdlID0gbmV3IGNvbm5lY3QuQ2ZuSW5zdGFuY2VTdG9yYWdlQ29uZmlnKHRoaXMsIGlkIHx8IGBTdG9yYWdlQ29uZmlnLSR7Y29uZmlnLnJlc291cmNlVHlwZX1gLCBjb25maWcuYXNTdG9yYWdlQ29uZmlnUHJvcHModGhpcy5pbnN0YW5jZUFybikpO1xuICAgIHN0b3JhZ2UuYXBwbHlSZW1vdmFsUG9saWN5KGNvbmZpZy5yZW1vdmFsUG9saWN5LCB7IGRlZmF1bHQ6IHRoaXMucmVtb3ZhbFBvbGljeSB8fCBSZW1vdmFsUG9saWN5LkRFU1RST1kgfSk7XG4gIH1cblxuICBhc3NvY2lhdGVMYW1iZGFGdW5jdGlvbihpZDogc3RyaW5nLCBmdW5jOiBsYW1iZGEuSUZ1bmN0aW9uKSB7XG4gICAgbmV3IGNvbm5lY3QuQ2ZuSW50ZWdyYXRpb25Bc3NvY2lhdGlvbih0aGlzLCBpZCwge1xuICAgICAgaW5zdGFuY2VJZDogdGhpcy5pbnN0YW5jZUFybixcbiAgICAgIGludGVncmF0aW9uVHlwZTogJ0xBTUJEQV9GVU5DVElPTicsXG4gICAgICBpbnRlZ3JhdGlvbkFybjogZnVuYy5mdW5jdGlvbkFybixcbiAgICB9KTtcbiAgfVxuXG4gIGFzc29jaWF0ZUxleEJvdChpZDogc3RyaW5nLCBib3Q6IGxleC5JQm90QWxpYXNSZWYpIHtcbiAgICBuZXcgY29ubmVjdC5DZm5JbnRlZ3JhdGlvbkFzc29jaWF0aW9uKHRoaXMsIGlkLCB7XG4gICAgICBpbnN0YW5jZUlkOiB0aGlzLmluc3RhbmNlQXJuLFxuICAgICAgaW50ZWdyYXRpb25UeXBlOiAnTEVYX0JPVCcsXG4gICAgICBpbnRlZ3JhdGlvbkFybjogYm90LmJvdEFsaWFzUmVmLmJvdEFsaWFzQXJuLFxuICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIExvb2tlZFVwSW5zdGFuY2UgZXh0ZW5kcyBJbnN0YW5jZUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5jb21wbGV0ZURlZmluaXRpb246IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGFueSwgaXNJbmNvbXBsZXRlOiBib29sZWFuKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzLm93bmVyQWNjb3VudElkLFxuICAgIH0pO1xuXG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5pbnN0YW5jZUlkID0gcHJvcHMuaW5zdGFuY2VJZDtcbiAgICB0aGlzLmluc3RhbmNlQXJuID0gcHJvcHMuaW5zdGFuY2VBcm47XG4gICAgdGhpcy5pbnN0YW5jZU5hbWUgPSBwcm9wcy5pbnN0YW5jZU5hbWU7XG4gICAgdGhpcy5pbmNvbXBsZXRlRGVmaW5pdGlvbiA9IGlzSW5jb21wbGV0ZTtcbiAgfVxufVxuXG5jb25zdCBEVU1NWV9JTlNUQU5DRV9QUk9QUyA9IHtcbiAgaW5zdGFuY2VBcm46ICdpbnN0YW5jZS1hcm4nLFxuICBpbnN0YW5jZUlkOiAnaW5zdGFuY2UtMTIzNDUnLFxufTtcblxuZXhwb3J0IGNsYXNzIEluc3RhbmNlIGV4dGVuZHMgSW5zdGFuY2VCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tTG9va3VwKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEluc3RhbmNlTG9va3VwT3B0aW9ucyk6IElJbnN0YW5jZSB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLmluc3RhbmNlSWQpXG4gICAgICAgIHx8IFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLmluc3RhbmNlTmFtZSlcbiAgICAgICAgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuaW5zdGFuY2VBcm4pKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBBcmd1bWVudHNgLCAnQWxsIGFyZ3VtZW50cyB0byBJbnN0YW5jZS5mcm9tTG9va3VwKCkgbXVzdCBiZSBjb25jcmV0ZSAobm8gVG9rZW5zKScsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHt9O1xuXG4gICAgaWYgKG9wdGlvbnMuaW5zdGFuY2VBcm4pIHtcbiAgICAgIGZpbHRlci5leGFjdElkZW50aWZpZXIgPSBvcHRpb25zLmluc3RhbmNlQXJuO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmluc3RhbmNlSWQpIHtcbiAgICAgIGZpbHRlci5wcm9wZXJ0eU1hdGNoIHx8PSB7fTtcbiAgICAgIGZpbHRlci5wcm9wZXJ0eU1hdGNoLklkID0gb3B0aW9ucy5pbnN0YW5jZUlkO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5pbnN0YW5jZU5hbWUpIHtcbiAgICAgIGZpbHRlci5wcm9wZXJ0eU1hdGNoIHx8PSB7fTtcbiAgICAgIGZpbHRlci5wcm9wZXJ0eU1hdGNoLkluc3RhbmNlQWxpYXMgPSBvcHRpb25zLmluc3RhbmNlTmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSA9IENvbnRleHRQcm92aWRlci5nZXRWYWx1ZShzY29wZSwge1xuICAgICAgcHJvdmlkZXI6IGN4c2NoZW1hLkNvbnRleHRQcm92aWRlci5DQ19BUElfUFJPVklERVIsXG4gICAgICBwcm9wczoge1xuICAgICAgICB0eXBlTmFtZTogJ0FXUzo6Q29ubmVjdDo6SW5zdGFuY2UnLFxuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIHByb3BlcnRpZXNUb1JldHVybjogWydBcm4nLCAnSW5zdGFuY2VBbGlhcycsICdJZCddLFxuICAgICAgICBleHBlY3RlZE1hdGNoQ291bnQ6ICdleGFjdGx5LW9uZScsXG4gICAgICB9IGFzIGN4c2NoZW1hLkNjQXBpQ29udGV4dFF1ZXJ5LFxuICAgICAgZHVtbXlWYWx1ZTogdW5kZWZpbmVkLFxuICAgIH0pLnZhbHVlO1xuXG4gICAgbGV0IGluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZVswXSkge1xuICAgICAgaW5zdGFuY2UgPSB7XG4gICAgICAgIGluc3RhbmNlQXJuOiByZXNwb25zZVswXS5Bcm4sXG4gICAgICAgIGluc3RhbmNlSWQ6IHJlc3BvbnNlWzBdLklkLFxuICAgICAgICBpbnN0YW5jZU5hbWU6IHJlc3BvbnNlWzBdLkluc3RhbmNlQWxpYXMsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExvb2tlZFVwSW5zdGFuY2Uoc2NvcGUsIGlkLCBpbnN0YW5jZSA/PyBEVU1NWV9JTlNUQU5DRV9QUk9QUywgaW5zdGFuY2UgPT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBjb25uZWN0LkNmbkluc3RhbmNlO1xuICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEluc3RhbmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHVuZGVmaW5lZCwgcHJvcHMucmVtb3ZhbFBvbGljeSk7XG5cbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzID0ge1xuICAgICAgLi4ucHJvcHMudGVsZXBob255Q29uZmlnLFxuICAgICAgLi4ucHJvcHMucG9sbHlDb25maWcsXG4gICAgICAuLi5wcm9wcy5vdGhlckNvbmZpZyxcbiAgICB9O1xuXG4gICAgaWYgKHByb3BzLmlkZW50aXR5VHlwZSA9PT0gSWRlbnRpdHlNYW5hZ2VtZW50VHlwZS5FWElTVElOR19ESVJFQ1RPUlkgJiYgIXByb3BzLmRpcmVjdG9yeUlkKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRFcnJvcignZGlyZWN0b3J5SWQgaXMgcmVxdWlyZWQgd2hlbiBpZGVudGl0eVR5cGUgaXMgc2V0IHRvIEVYSVNUSU5HX0RJUkVDVE9SWScpO1xuICAgIH1cbiAgICBpZiAocHJvcHMuaWRlbnRpdHlUeXBlICE9PSBJZGVudGl0eU1hbmFnZW1lbnRUeXBlLkVYSVNUSU5HX0RJUkVDVE9SWSAmJiAhcHJvcHMuaW5zdGFuY2VBbGlhcykge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoJ2luc3RhbmNlQWxpYXMgaXMgcmVxdWlyZWQgd2hlbiBpZGVudGl0eVR5cGUgaXMgc2V0IHRvIENPTk5FQ1RfTUFOQUdFRCBvciBTQU1MJyk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnN0YW5jZU5hbWUgPSBwcm9wcy5pbnN0YW5jZUFsaWFzO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgY29ubmVjdC5DZm5JbnN0YW5jZSh0aGlzLCAnSW5zdGFuY2UnLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgICAgaWRlbnRpdHlNYW5hZ2VtZW50VHlwZTogcHJvcHMuaWRlbnRpdHlUeXBlLFxuICAgICAgaW5zdGFuY2VBbGlhczogcHJvcHMuaW5zdGFuY2VBbGlhcyxcbiAgICB9KTtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7IGRlZmF1bHQ6IFJlbW92YWxQb2xpY3kuREVTVFJPWSB9KTtcblxuICAgIGlmIChwcm9wcy5zdG9yYWdlQ29uZmlncykge1xuICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgcHJvcHMuc3RvcmFnZUNvbmZpZ3MpIHtcbiAgICAgICAgdGhpcy5hZGRTdG9yYWdlQ29uZmlnKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmN1c3RvbUF0dHJpYnV0ZXMgJiYgT2JqZWN0LmtleXMocHJvcHMuY3VzdG9tQXR0cmlidXRlcykubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZXR1cEN1c3RvbUF0dHJpYnV0ZXMocHJvcHMuY3VzdG9tQXR0cmlidXRlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEN1c3RvbUF0dHJpYnV0ZXMoY3VzdG9tQXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4pIHtcbiAgICBuZXcgVXBkYXRlSW5zdGFuY2VBdHRyaWJ1dGVzKHRoaXMsICdVcGRhdGVDdXN0b21BdHRyaWJ1dGVzJywgdGhpcywgY3VzdG9tQXR0cmlidXRlcyk7XG4gIH1cblxuICBnZXQgaW5zdGFuY2VBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hdHRyQXJuO1xuICB9XG5cbiAgZ2V0IGluc3RhbmNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5yZWY7XG4gIH1cbn1cblxuY2xhc3MgVXBkYXRlSW5zdGFuY2VBdHRyaWJ1dGVzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ1VTVE9NX0FUVFJJQlVURVNfRlVOQ1RJT05fVVVJRCA9ICdjYjJmNmI1Yy1mMGFhLTExZjAtYWMxMC01YjQ4NDgyNzE0NWMnO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGluc3RhbmNlOiBJSW5zdGFuY2UsIGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHNldHVwRnVuYyA9IG5ldyBsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24odGhpcywgJ0N1c3RvbUF0dHJpYnV0ZUZ1bmMnLCB7XG4gICAgICB1dWlkOiBVcGRhdGVJbnN0YW5jZUF0dHJpYnV0ZXMuQ1VTVE9NX0FUVFJJQlVURVNfRlVOQ1RJT05fVVVJRCxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdDdXN0b21BdHRyaWJ1dGVTZXR1cCcsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIGhhbmRsZXI6ICdhcHAub25fZXZlbnQnLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdsYW1iZGFzJywgJ2luc3RhbmNlX2F0dHJpYnV0ZXMnKSksXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgbG9ncy5Mb2dHcm91cCh0aGlzLCAnQ3VzdG9tQXR0cmlidXRlTG9nR3JvdXAnLCB7XG4gICAgICByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgY3IuUHJvdmlkZXIodGhpcywgJ0N1c3RvbUF0dHJpYnV0ZVByb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IHNldHVwRnVuYyxcbiAgICAgIGxvZ0dyb3VwOiBncm91cCxcbiAgICB9KTtcblxuICAgIHNldHVwRnVuYy5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydjb25uZWN0OlVwZGF0ZUluc3RhbmNlQXR0cmlidXRlJ10sXG4gICAgICByZXNvdXJjZXM6IFtpbnN0YW5jZS5pbnN0YW5jZUFybl0sXG4gICAgfSkpO1xuICAgIHNldHVwRnVuYy5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnaWFtOkRlbGV0ZVJvbGVQb2xpY3knLFxuICAgICAgICAnaWFtOlB1dFJvbGVQb2xpY3knLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICBGbi5zdWIoJ2Fybjoke0FXUzo6UGFydGl0aW9ufTppYW06OiR7QVdTOjpBY2NvdW50SWR9OnJvbGUvYXdzLXNlcnZpY2Utcm9sZS9jb25uZWN0LmFtYXpvbmF3cy5jb20vKicpLFxuICAgICAgXSxcbiAgICB9KSk7XG5cbiAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1NldHVwQ3VzdG9tQXR0cmlidXRlcycsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6Q29ubmVjdEluc3RhbmNlQ3VzdG9tQXR0cmlidXRlcycsXG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgSW5zdGFuY2VJZDogaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgQ3VzdG9tQXR0cmlidXRlczogYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -1,4 +1,4 @@
1
- import { aws_connect as connect, IResource, Resource } from 'aws-cdk-lib';
1
+ import { IResource, Resource } from 'aws-cdk-lib';
2
2
  import { Construct } from 'constructs';
3
3
  import { IInstance } from './instance';
4
4
  import { ITrafficDistributionGroup } from './traffic_distribution_group';
@@ -44,7 +44,7 @@ export interface PhoneNumberProps {
44
44
  readonly sourcePhoneNumberArn?: string;
45
45
  }
46
46
  export declare class PhoneNumber extends Resource implements IPhoneNumber {
47
- readonly phoneNumber: connect.CfnPhoneNumber;
47
+ private readonly resource;
48
48
  constructor(scope: Construct, id: string, props: PhoneNumberProps);
49
49
  get phoneNumberArn(): string;
50
50
  }