awscdk-construct-mediaconnect-flow 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +60 -13
- package/API.md +33 -0
- package/lib/LiveFeedFromFile.d.ts +3 -0
- package/lib/LiveFeedFromFile.js +9 -4
- package/package.json +5 -5
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"aws-cdk-lib": "^2.203.1",
|
|
11
|
-
"awscdk-construct-medialive-channel": "^0.0.
|
|
11
|
+
"awscdk-construct-medialive-channel": "^0.0.9",
|
|
12
12
|
"constructs": "^10.0.5"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -4116,6 +4116,22 @@
|
|
|
4116
4116
|
"primitive": "number"
|
|
4117
4117
|
}
|
|
4118
4118
|
},
|
|
4119
|
+
{
|
|
4120
|
+
"abstract": true,
|
|
4121
|
+
"docs": {
|
|
4122
|
+
"stability": "stable"
|
|
4123
|
+
},
|
|
4124
|
+
"immutable": true,
|
|
4125
|
+
"locationInModule": {
|
|
4126
|
+
"filename": "src/LiveFeedFromFile.ts",
|
|
4127
|
+
"line": 35
|
|
4128
|
+
},
|
|
4129
|
+
"name": "height",
|
|
4130
|
+
"optional": true,
|
|
4131
|
+
"type": {
|
|
4132
|
+
"primitive": "number"
|
|
4133
|
+
}
|
|
4134
|
+
},
|
|
4119
4135
|
{
|
|
4120
4136
|
"abstract": true,
|
|
4121
4137
|
"docs": {
|
|
@@ -4147,6 +4163,22 @@
|
|
|
4147
4163
|
"type": {
|
|
4148
4164
|
"primitive": "string"
|
|
4149
4165
|
}
|
|
4166
|
+
},
|
|
4167
|
+
{
|
|
4168
|
+
"abstract": true,
|
|
4169
|
+
"docs": {
|
|
4170
|
+
"stability": "stable"
|
|
4171
|
+
},
|
|
4172
|
+
"immutable": true,
|
|
4173
|
+
"locationInModule": {
|
|
4174
|
+
"filename": "src/LiveFeedFromFile.ts",
|
|
4175
|
+
"line": 34
|
|
4176
|
+
},
|
|
4177
|
+
"name": "width",
|
|
4178
|
+
"optional": true,
|
|
4179
|
+
"type": {
|
|
4180
|
+
"primitive": "number"
|
|
4181
|
+
}
|
|
4150
4182
|
}
|
|
4151
4183
|
],
|
|
4152
4184
|
"symbolId": "src/LiveFeedFromFile:EncoderSettings"
|
|
@@ -4212,7 +4244,7 @@
|
|
|
4212
4244
|
},
|
|
4213
4245
|
"locationInModule": {
|
|
4214
4246
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4215
|
-
"line":
|
|
4247
|
+
"line": 55
|
|
4216
4248
|
},
|
|
4217
4249
|
"parameters": [
|
|
4218
4250
|
{
|
|
@@ -4238,7 +4270,7 @@
|
|
|
4238
4270
|
"kind": "class",
|
|
4239
4271
|
"locationInModule": {
|
|
4240
4272
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4241
|
-
"line":
|
|
4273
|
+
"line": 50
|
|
4242
4274
|
},
|
|
4243
4275
|
"name": "LiveFeedFromFile",
|
|
4244
4276
|
"properties": [
|
|
@@ -4249,7 +4281,7 @@
|
|
|
4249
4281
|
"immutable": true,
|
|
4250
4282
|
"locationInModule": {
|
|
4251
4283
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4252
|
-
"line":
|
|
4284
|
+
"line": 51
|
|
4253
4285
|
},
|
|
4254
4286
|
"name": "flow",
|
|
4255
4287
|
"type": {
|
|
@@ -4263,7 +4295,22 @@
|
|
|
4263
4295
|
"immutable": true,
|
|
4264
4296
|
"locationInModule": {
|
|
4265
4297
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4266
|
-
"line":
|
|
4298
|
+
"line": 53
|
|
4299
|
+
},
|
|
4300
|
+
"name": "ndiDiscoveryServer",
|
|
4301
|
+
"optional": true,
|
|
4302
|
+
"type": {
|
|
4303
|
+
"fqn": "aws-cdk-lib.aws_ec2.Instance"
|
|
4304
|
+
}
|
|
4305
|
+
},
|
|
4306
|
+
{
|
|
4307
|
+
"docs": {
|
|
4308
|
+
"stability": "stable"
|
|
4309
|
+
},
|
|
4310
|
+
"immutable": true,
|
|
4311
|
+
"locationInModule": {
|
|
4312
|
+
"filename": "src/LiveFeedFromFile.ts",
|
|
4313
|
+
"line": 52
|
|
4267
4314
|
},
|
|
4268
4315
|
"name": "vpc",
|
|
4269
4316
|
"optional": true,
|
|
@@ -4284,7 +4331,7 @@
|
|
|
4284
4331
|
"kind": "interface",
|
|
4285
4332
|
"locationInModule": {
|
|
4286
4333
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4287
|
-
"line":
|
|
4334
|
+
"line": 38
|
|
4288
4335
|
},
|
|
4289
4336
|
"name": "LiveFeedFromFileProps",
|
|
4290
4337
|
"properties": [
|
|
@@ -4296,7 +4343,7 @@
|
|
|
4296
4343
|
"immutable": true,
|
|
4297
4344
|
"locationInModule": {
|
|
4298
4345
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4299
|
-
"line":
|
|
4346
|
+
"line": 39
|
|
4300
4347
|
},
|
|
4301
4348
|
"name": "file",
|
|
4302
4349
|
"type": {
|
|
@@ -4311,7 +4358,7 @@
|
|
|
4311
4358
|
"immutable": true,
|
|
4312
4359
|
"locationInModule": {
|
|
4313
4360
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4314
|
-
"line":
|
|
4361
|
+
"line": 43
|
|
4315
4362
|
},
|
|
4316
4363
|
"name": "autoStart",
|
|
4317
4364
|
"optional": true,
|
|
@@ -4327,7 +4374,7 @@
|
|
|
4327
4374
|
"immutable": true,
|
|
4328
4375
|
"locationInModule": {
|
|
4329
4376
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4330
|
-
"line":
|
|
4377
|
+
"line": 40
|
|
4331
4378
|
},
|
|
4332
4379
|
"name": "encoderSpec",
|
|
4333
4380
|
"optional": true,
|
|
@@ -4343,7 +4390,7 @@
|
|
|
4343
4390
|
"immutable": true,
|
|
4344
4391
|
"locationInModule": {
|
|
4345
4392
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4346
|
-
"line":
|
|
4393
|
+
"line": 41
|
|
4347
4394
|
},
|
|
4348
4395
|
"name": "source",
|
|
4349
4396
|
"optional": true,
|
|
@@ -4359,7 +4406,7 @@
|
|
|
4359
4406
|
"immutable": true,
|
|
4360
4407
|
"locationInModule": {
|
|
4361
4408
|
"filename": "src/LiveFeedFromFile.ts",
|
|
4362
|
-
"line":
|
|
4409
|
+
"line": 42
|
|
4363
4410
|
},
|
|
4364
4411
|
"name": "vpcConfig",
|
|
4365
4412
|
"optional": true,
|
|
@@ -4498,6 +4545,6 @@
|
|
|
4498
4545
|
"symbolId": "src/LiveFeedFromFile:VpcConfig"
|
|
4499
4546
|
}
|
|
4500
4547
|
},
|
|
4501
|
-
"version": "0.0.
|
|
4502
|
-
"fingerprint": "
|
|
4548
|
+
"version": "0.0.6",
|
|
4549
|
+
"fingerprint": "OXI0IGq0nd+p3SGpjxhRRpgkGznJ0fV9jytilIyRWQo="
|
|
4503
4550
|
}
|
package/API.md
CHANGED
|
@@ -100,6 +100,7 @@ Any object.
|
|
|
100
100
|
| --- | --- | --- |
|
|
101
101
|
| <code><a href="#awscdk-construct-mediaconnect-flow.LiveFeedFromFile.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
102
102
|
| <code><a href="#awscdk-construct-mediaconnect-flow.LiveFeedFromFile.property.flow">flow</a></code> | <code>aws-cdk-lib.aws_mediaconnect.CfnFlow</code> | *No description.* |
|
|
103
|
+
| <code><a href="#awscdk-construct-mediaconnect-flow.LiveFeedFromFile.property.ndiDiscoveryServer">ndiDiscoveryServer</a></code> | <code>aws-cdk-lib.aws_ec2.Instance</code> | *No description.* |
|
|
103
104
|
| <code><a href="#awscdk-construct-mediaconnect-flow.LiveFeedFromFile.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
|
|
104
105
|
|
|
105
106
|
---
|
|
@@ -126,6 +127,16 @@ public readonly flow: CfnFlow;
|
|
|
126
127
|
|
|
127
128
|
---
|
|
128
129
|
|
|
130
|
+
##### `ndiDiscoveryServer`<sup>Optional</sup> <a name="ndiDiscoveryServer" id="awscdk-construct-mediaconnect-flow.LiveFeedFromFile.property.ndiDiscoveryServer"></a>
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
public readonly ndiDiscoveryServer: Instance;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
- *Type:* aws-cdk-lib.aws_ec2.Instance
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
129
140
|
##### `vpc`<sup>Optional</sup> <a name="vpc" id="awscdk-construct-mediaconnect-flow.LiveFeedFromFile.property.vpc"></a>
|
|
130
141
|
|
|
131
142
|
```typescript
|
|
@@ -156,8 +167,10 @@ const encoderSettings: EncoderSettings = { ... }
|
|
|
156
167
|
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.framerateDenominator">framerateDenominator</a></code> | <code>number</code> | *No description.* |
|
|
157
168
|
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.framerateNumerator">framerateNumerator</a></code> | <code>number</code> | *No description.* |
|
|
158
169
|
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.gopLengthInSeconds">gopLengthInSeconds</a></code> | <code>number</code> | *No description.* |
|
|
170
|
+
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.height">height</a></code> | <code>number</code> | *No description.* |
|
|
159
171
|
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.scanType">scanType</a></code> | <code>string</code> | *No description.* |
|
|
160
172
|
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.timecodeBurninPrefix">timecodeBurninPrefix</a></code> | <code>string</code> | *No description.* |
|
|
173
|
+
| <code><a href="#awscdk-construct-mediaconnect-flow.EncoderSettings.property.width">width</a></code> | <code>number</code> | *No description.* |
|
|
161
174
|
|
|
162
175
|
---
|
|
163
176
|
|
|
@@ -191,6 +204,16 @@ public readonly gopLengthInSeconds: number;
|
|
|
191
204
|
|
|
192
205
|
---
|
|
193
206
|
|
|
207
|
+
##### `height`<sup>Optional</sup> <a name="height" id="awscdk-construct-mediaconnect-flow.EncoderSettings.property.height"></a>
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
public readonly height: number;
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
- *Type:* number
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
194
217
|
##### `scanType`<sup>Optional</sup> <a name="scanType" id="awscdk-construct-mediaconnect-flow.EncoderSettings.property.scanType"></a>
|
|
195
218
|
|
|
196
219
|
```typescript
|
|
@@ -211,6 +234,16 @@ public readonly timecodeBurninPrefix: string;
|
|
|
211
234
|
|
|
212
235
|
---
|
|
213
236
|
|
|
237
|
+
##### `width`<sup>Optional</sup> <a name="width" id="awscdk-construct-mediaconnect-flow.EncoderSettings.property.width"></a>
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
public readonly width: number;
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
- *Type:* number
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
214
247
|
### FileSpec <a name="FileSpec" id="awscdk-construct-mediaconnect-flow.FileSpec"></a>
|
|
215
248
|
|
|
216
249
|
#### Initializer <a name="Initializer" id="awscdk-construct-mediaconnect-flow.FileSpec.Initializer"></a>
|
|
@@ -21,6 +21,8 @@ export interface EncoderSettings {
|
|
|
21
21
|
readonly framerateNumerator?: number;
|
|
22
22
|
readonly framerateDenominator?: number;
|
|
23
23
|
readonly scanType?: 'PROGRESSIVE' | 'INTERLACED';
|
|
24
|
+
readonly width?: number;
|
|
25
|
+
readonly height?: number;
|
|
24
26
|
}
|
|
25
27
|
export interface LiveFeedFromFileProps {
|
|
26
28
|
readonly file: FileSpec;
|
|
@@ -32,6 +34,7 @@ export interface LiveFeedFromFileProps {
|
|
|
32
34
|
export declare class LiveFeedFromFile extends Construct {
|
|
33
35
|
readonly flow: CfnFlow;
|
|
34
36
|
readonly vpc?: ec2.IVpc;
|
|
37
|
+
readonly ndiDiscoveryServer?: ec2.Instance;
|
|
35
38
|
constructor(scope: Construct, id: string, props: LiveFeedFromFileProps);
|
|
36
39
|
}
|
|
37
40
|
export declare function startFlow(scope: Construct, id: string, flowArn: string): Date;
|
package/lib/LiveFeedFromFile.js
CHANGED
|
@@ -22,9 +22,11 @@ class LiveFeedFromFile extends constructs_1.Construct {
|
|
|
22
22
|
const { file, encoderSpec = {
|
|
23
23
|
gopLengthInSeconds: 2,
|
|
24
24
|
timecodeBurninPrefix: 'Ch',
|
|
25
|
-
framerateNumerator:
|
|
26
|
-
framerateDenominator:
|
|
25
|
+
framerateNumerator: 30,
|
|
26
|
+
framerateDenominator: 1,
|
|
27
27
|
scanType: 'PROGRESSIVE',
|
|
28
|
+
width: 1920,
|
|
29
|
+
height: 1080,
|
|
28
30
|
}, source = {
|
|
29
31
|
protocol: 'SRT',
|
|
30
32
|
type: 'STANDARD-SOURCE',
|
|
@@ -70,6 +72,7 @@ class LiveFeedFromFile extends constructs_1.Construct {
|
|
|
70
72
|
ndiState: 'ENABLED',
|
|
71
73
|
};
|
|
72
74
|
sg && sg.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcpRange(5961, 65535), description);
|
|
75
|
+
this.ndiDiscoveryServer = instance;
|
|
73
76
|
}
|
|
74
77
|
// Create a secret
|
|
75
78
|
const randomstring = Math.random().toString(36).slice(-8);
|
|
@@ -174,6 +177,8 @@ class LiveFeedFromFile extends constructs_1.Construct {
|
|
|
174
177
|
framerateNumerator: encoderSpec.framerateNumerator,
|
|
175
178
|
framerateDenominator: encoderSpec.framerateDenominator,
|
|
176
179
|
scanType: encoderSpec.scanType,
|
|
180
|
+
width: encoderSpec.width,
|
|
181
|
+
height: encoderSpec.height,
|
|
177
182
|
},
|
|
178
183
|
vpc: source.type === 'VPC-SOURCE' && vpc ? {
|
|
179
184
|
publicAddressAllocationIds: [eip.attrAllocationId],
|
|
@@ -190,7 +195,7 @@ class LiveFeedFromFile extends constructs_1.Construct {
|
|
|
190
195
|
}
|
|
191
196
|
exports.LiveFeedFromFile = LiveFeedFromFile;
|
|
192
197
|
_a = JSII_RTTI_SYMBOL_1;
|
|
193
|
-
LiveFeedFromFile[_a] = { fqn: "awscdk-construct-mediaconnect-flow.LiveFeedFromFile", version: "0.0.
|
|
198
|
+
LiveFeedFromFile[_a] = { fqn: "awscdk-construct-mediaconnect-flow.LiveFeedFromFile", version: "0.0.6" };
|
|
194
199
|
function createNdiDiscoveryServer(scope, vpc) {
|
|
195
200
|
const description = 'Allow NDI Discovery Service';
|
|
196
201
|
const sg = new ec2.SecurityGroup(scope, 'NDISecurityGroup', {
|
|
@@ -307,4 +312,4 @@ function startFlow(scope, id, flowArn) {
|
|
|
307
312
|
});
|
|
308
313
|
return new Date();
|
|
309
314
|
}
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUZlZWRGcm9tRmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MaXZlRmVlZEZyb21GaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUE0VkEsOEJBNkJDOztBQXpYRCxpQ0FBaUM7QUFDakMsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsbUVBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCxtRUFBOEc7QUFDOUcsMkZBQTZFO0FBQzdFLDJDQUF1QztBQW1DdkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDOUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFDakMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUU5QyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBSTdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQ0osSUFBSSxFQUNKLFdBQVcsR0FBRztZQUNaLGtCQUFrQixFQUFFLENBQUM7WUFDckIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsUUFBUSxFQUFFLGFBQWE7U0FDeEIsRUFDRCxNQUFNLEdBQUc7WUFDUCxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxpQkFBaUI7U0FDeEIsRUFDRCxTQUFTLEVBQ1QsU0FBUyxHQUFHLElBQUksR0FDakIsR0FBRyxLQUFLLENBQUM7UUFFVixNQUFNLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFFBQVEsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixLQUFLLEtBQUs7b0JBQ1IsT0FBTyxLQUFLLENBQUM7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QUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ25FLGlDQUFpQztZQUNqQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO1NBQ25DO1FBQ0QseUdBQXlHO1FBQ3pHLE1BQU0sRUFBRSwwQ0FBdUIsQ0FBQyxZQUFZLENBQUM7WUFDM0MsU0FBUyxFQUFFLDBDQUF1QixDQUFDLFlBQVk7U0FDaEQsQ0FBQztLQUNILENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuRmxvdyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWNvbm5lY3QnO1xuaW1wb3J0ICogYXMgYXNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSwgQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3ksIFBoeXNpY2FsUmVzb3VyY2VJZCB9IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgTWVkaWFMaXZlLCBzdGFydENoYW5uZWwgfSBmcm9tICdhd3NjZGstY29uc3RydWN0LW1lZGlhbGl2ZS1jaGFubmVsJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTcGVjIHtcbiAgcmVhZG9ubHkgdHlwZT86ICdNUDRfRklMRScgfCAnVFNfRklMRSc7IC8vIFR5cGUgb2YgdGhlIGlucHV0IGZpbGVcbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7IC8vIFMzIFVSTCBvZiB0aGUgaW5wdXQgZmlsZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVTb3VyY2VTcGVjIHtcbiAgcmVhZG9ubHkgcHJvdG9jb2w6ICdSVFAnIHwgJ1JUUC1GRUMnIHwgJ1NSVCc7IC8vIFByb3RvY29sIG9mIHRoZSBsaXZlIHNvdXJjZVxuICByZWFkb25seSB0eXBlOiAnU1RBTkRBUkQtU09VUkNFJyB8ICdWUEMtU09VUkNFJzsgLy8gVHlwZSBvZiB0aGUgbGl2ZSBzb3VyY2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWcge1xuICByZWFkb25seSBwcm9wczogZWMyLlZwY1Byb3BzO1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lPzogc3RyaW5nO1xuICByZWFkb25seSBzdWJuZXRJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlTkRJPzogYm9vbGVhbjsgLy8gU2V0dGluZ3MgZm9yIE5ESSBvdXRwdXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbmNvZGVyU2V0dGluZ3Mge1xuICByZWFkb25seSBnb3BMZW5ndGhJblNlY29uZHM/OiBudW1iZXI7IC8vIFRoZSBsZW5ndGggb2YgdGhlIEdPUCBpbiBzZWNvbmRzLlxuICByZWFkb25seSB0aW1lY29kZUJ1cm5pblByZWZpeD86IHN0cmluZzsgLy8gVGhlIHByZWZpeCBmb3IgdGhlIHRpbWVjb2RlIGJ1cm4taW4uXG4gIHJlYWRvbmx5IGZyYW1lcmF0ZU51bWVyYXRvcj86IG51bWJlcjsgLy8gVGhlIG51bWVyYXRvciBmb3IgdGhlIGZyYW1lcmF0ZS5cbiAgcmVhZG9ubHkgZnJhbWVyYXRlRGVub21pbmF0b3I/OiBudW1iZXI7IC8vIFRoZSBkZW5vbWluYXRvciBmb3IgdGhlIGZyYW1lcmF0ZS5cbiAgcmVhZG9ubHkgc2NhblR5cGU/OiAnUFJPR1JFU1NJVkUnIHwgJ0lOVEVSTEFDRUQnOyAvLyBUaGUgc2NhbiB0eXBlLlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVGZWVkRnJvbUZpbGVQcm9wcyB7XG4gIHJlYWRvbmx5IGZpbGU6IEZpbGVTcGVjOyAvLyBGaWxlIHNwZWNpZmljYXRpb25cbiAgcmVhZG9ubHkgZW5jb2RlclNwZWM/OiBFbmNvZGVyU2V0dGluZ3M7IC8vIE9wdGlvbmFsIGVuY29kZXIgc2V0dGluZ3MgZm9yIE1lZGlhTGl2ZVxuICByZWFkb25seSBzb3VyY2U/OiBMaXZlU291cmNlU3BlYzsgLy8gT3B0aW9uYWwgbGl2ZSBzb3VyY2Ugc3BlY2lmaWNhdGlvblxuICByZWFkb25seSB2cGNDb25maWc/OiBWcGNDb25maWc7IC8vIFNldHRpbmdzIGZvciBWUEMuIFJlcXVpcmVkIHdoZW4gdGhlIHNvdXJjZSB0eXBlIGlzIFZQQy1TT1VSQ0UgYW5kL29yIFZQQyBvdXRwdXRzIHdpbGwgYmUgYWRkZWQgdG8gdGhpcyBmbG93LlxuICByZWFkb25seSBhdXRvU3RhcnQ/OiBib29sZWFuOyAvLyBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgc3RhcnQgdGhlIE1lZGlhTGl2ZSBjaGFubmVsIGFuZCBNZWRpYUNvbm5lY3QgZmxvd1xufVxuXG5jb25zdCBzb3VyY2VJbmdlc3RQb3J0ID0gNTAwMDtcbmNvbnN0IGRpc2NvdmVyeVNlcnZlclBvcnQgPSA1OTU5O1xuY29uc3QgVlBDX0lOVEVSRkFDRV9OQU1FID0gJ3ZwY0ludGVyZmFjZU5hbWUnO1xuXG5leHBvcnQgY2xhc3MgTGl2ZUZlZWRGcm9tRmlsZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBmbG93OiBDZm5GbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExpdmVGZWVkRnJvbUZpbGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBmaWxlLFxuICAgICAgZW5jb2RlclNwZWMgPSB7XG4gICAgICAgIGdvcExlbmd0aEluU2Vjb25kczogMixcbiAgICAgICAgdGltZWNvZGVCdXJuaW5QcmVmaXg6ICdDaCcsXG4gICAgICAgIGZyYW1lcmF0ZU51bWVyYXRvcjogMzAwMDAsXG4gICAgICAgIGZyYW1lcmF0ZURlbm9taW5hdG9yOiAxMDAxLFxuICAgICAgICBzY2FuVHlwZTogJ1BST0dSRVNTSVZFJyxcbiAgICAgIH0sXG4gICAgICBzb3VyY2UgPSB7XG4gICAgICAgIHByb3RvY29sOiAnU1JUJyxcbiAgICAgICAgdHlwZTogJ1NUQU5EQVJELVNPVVJDRScsXG4gICAgICB9LFxuICAgICAgdnBjQ29uZmlnLFxuICAgICAgYXV0b1N0YXJ0ID0gdHJ1ZSxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCB1dWlkID0gYCR7Y3J5cHRvLnJhbmRvbVVVSUQoKX1gO1xuICAgIGNvbnN0IHByb3RvY29sID0gKCgpID0+IHtcbiAgICAgIHN3aXRjaCAoc291cmNlLnByb3RvY29sKSB7XG4gICAgICAgIGNhc2UgJ1JUUCc6XG4gICAgICAgICAgcmV0dXJuICdydHAnO1xuICAgICAgICBjYXNlICdSVFAtRkVDJzpcbiAgICAgICAgICByZXR1cm4gJ3J0cC1mZWMnO1xuICAgICAgICBjYXNlICdTUlQnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnc3J0LWxpc3RlbmVyJztcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgLy8gQ3JlYXRlIGEgVlBDXG4gICAgY29uc3QgdnBjID0gdnBjQ29uZmlnID8gbmV3IGVjMi5WcGModGhpcywgJ1ZQQycsIHZwY0NvbmZpZy5wcm9wcykgOiB1bmRlZmluZWQ7XG4gICAgdnBjICYmIHZwYy5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG5cbiAgICAvLyBBbGxvY2F0ZSBhbiBFbGFzdGljIElQIGZvciB0aGUgVlBDIGludGVyZmFjZVxuICAgIGNvbnN0IGVpcCA9IHZwYyA/IG5ldyBlYzIuQ2ZuRUlQKHRoaXMsICdFSVAnLCB7XG4gICAgICBkb21haW46ICd2cGMnLCAvLyBFbnN1cmUgdGhlIEVJUCBpcyBhbGxvY2F0ZWQgaW4gdGhlIFZQQ1xuICAgIH0pIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ3JlYXRlIGEgc2VjdXJpdHkgZ3JvdXAgdG8gYWxsb3cgcHVzaCBpbnB1dFxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gJ0FsbG93IFB1c2ggaW5wdXQgZnJvbSBNZWRpYUxpdmUnO1xuICAgIGNvbnN0IHNnID0gdnBjID8gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsICdTZWN1cml0eUdyb3VwJywge1xuICAgICAgdnBjLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pOiB1bmRlZmluZWQ7XG4gICAgc2cgJiYgc2cuYXBwbHlSZW1vdmFsUG9saWN5KGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuICAgIHNnICYmIHNnLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgZWMyLlBlZXIuYW55SXB2NCgpLFxuICAgICAgZWMyLlBvcnQudWRwKHNvdXJjZUluZ2VzdFBvcnQpLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBhbiBOREkgZGlzY292ZXJ5IHNlcnZlclxuICAgIGxldCBuZGlDb25maWc6IENmbkZsb3cuTmRpQ29uZmlnUHJvcGVydHkgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHZwYyAmJiB2cGNDb25maWc/LmVuYWJsZU5ESSkge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVOZGlEaXNjb3ZlcnlTZXJ2ZXIodGhpcywgdnBjKTtcbiAgICAgIG5kaUNvbmZpZyA9IHtcbiAgICAgICAgbmRpRGlzY292ZXJ5U2VydmVyczogW3tcbiAgICAgICAgICBkaXNjb3ZlcnlTZXJ2ZXJBZGRyZXNzOiBpbnN0YW5jZS5pbnN0YW5jZVByaXZhdGVJcCwgLy8gVXNlIHRoZSBwcml2YXRlIElQIG9mIHRoZSBOREkgRGlzY292ZXJ5IFNlcnZlclxuICAgICAgICAgIHZwY0ludGVyZmFjZUFkYXB0ZXI6IFZQQ19JTlRFUkZBQ0VfTkFNRSxcbiAgICAgICAgICBkaXNjb3ZlcnlTZXJ2ZXJQb3J0LFxuICAgICAgICB9XSxcbiAgICAgICAgbmRpU3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgIH07XG4gICAgICBzZyAmJiBzZy5hZGRJbmdyZXNzUnVsZShcbiAgICAgICAgZWMyLlBlZXIuYW55SXB2NCgpLFxuICAgICAgICBlYzIuUG9ydC50Y3BSYW5nZSg1OTYxLCA2NTUzNSksXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBzZWNyZXRcbiAgICBjb25zdCByYW5kb21zdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgtOCk7XG4gICAgY29uc3Qgc291cmNlUGFzc3dvcmQgPSBuZXcgYXNtLlNlY3JldCh0aGlzLCAnU291cmNlUGFzc3dvcmQnLCB7XG4gICAgICBzZWNyZXROYW1lOiBgc2VjcmV0LSR7dXVpZH1gLFxuICAgICAgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHtcbiAgICAgICAgc2VjcmV0U3RyaW5nVGVtcGxhdGU6IEpTT04uc3RyaW5naWZ5KHsgcGFzc3dvcmQ6IHJhbmRvbXN0cmluZyB9KSxcbiAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6ICdwYXNzd29yZCcsXG4gICAgICAgIGV4Y2x1ZGVQdW5jdHVhdGlvbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGFuIElBTSByb2xlIGZvciBNZWRpYUNvbm5lY3QgdG8gYWNjZXNzIHRoZSBWUENcbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdNZWRpYUNvbm5lY3RSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ21lZGlhY29ubmVjdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBwb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbc291cmNlUGFzc3dvcmQuc2VjcmV0QXJuXSxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzZWNyZXRzbWFuYWdlcjpHZXRSZXNvdXJjZVBvbGljeScsXG4gICAgICAgICAgICAgICAgJ3NlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlJyxcbiAgICAgICAgICAgICAgICAnc2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXQnLFxuICAgICAgICAgICAgICAgICdzZWNyZXRzbWFuYWdlcjpMaXN0U2VjcmV0VmVyc2lvbklkcycsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBbWF6b25WUENGdWxsQWNjZXNzJyksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGEgTWVkaWFDb25uZWN0IGZsb3dcbiAgICBjb25zdCBmbG93ID0gbmV3IENmbkZsb3codGhpcywgJ015Q2ZuRmxvdycsIHtcbiAgICAgIG5hbWU6IGBsY3AtZGVtby0ke3V1aWR9YCxcbiAgICAgIHNvdXJjZToge1xuICAgICAgICBuYW1lOiBgbGNwLWRlbW8tc291cmNlLSR7dXVpZH1gLFxuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgLy8gbWF4TGF0ZW5jeTogMjAwMCxcbiAgICAgICAgLy8gbWluTGF0ZW5jeTogMTAwMCxcbiAgICAgICAgLy8gdnBjSW50ZXJmYWNlTmFtZTogVlBDX0lOVEVSRkFDRV9OQU1FLFxuICAgICAgICB3aGl0ZWxpc3RDaWRyOiBzb3VyY2UudHlwZSA9PT0gJ1NUQU5EQVJELVNPVVJDRScgPyAnMC4wLjAuMC8wJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgZGVjcnlwdGlvbjoge1xuICAgICAgICAgIC8vIGFsZ29yaXRobTogJ2FlczEyOCcsXG4gICAgICAgICAgcm9sZUFybjogcm9sZS5yb2xlQXJuLFxuICAgICAgICAgIHNlY3JldEFybjogc291cmNlUGFzc3dvcmQuc2VjcmV0QXJuLFxuICAgICAgICB9LFxuICAgICAgICAvLyBzb3VyY2VJbmdlc3RQb3J0OiBgJHtzb3VyY2VJbmdlc3RQb3J0fWAsXG4gICAgICAgIHZwY0ludGVyZmFjZU5hbWU6IHNvdXJjZS50eXBlID09PSAnVlBDLVNPVVJDRScgPyBWUENfSU5URVJGQUNFX05BTUUgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogdnBjQ29uZmlnPy5hdmFpbGFiaWxpdHlab25lID8/IHZwYz8uYXZhaWxhYmlsaXR5Wm9uZXNbMF0sXG4gICAgICBmbG93U2l6ZTogdnBjQ29uZmlnPy5lbmFibGVOREkgPyAnTEFSR0UnIDogJ01FRElVTScsXG4gICAgICBuZGlDb25maWcsXG4gICAgICBzb3VyY2VNb25pdG9yaW5nQ29uZmlnOiB7XG4gICAgICAgIHRodW1ibmFpbFN0YXRlOiAnRU5BQkxFRCcsXG4gICAgICAgIGNvbnRlbnRRdWFsaXR5QW5hbHlzaXNTdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgfSxcbiAgICAgIHZwY0ludGVyZmFjZXM6IHZwYyA/IFt7XG4gICAgICAgIG5hbWU6IFZQQ19JTlRFUkZBQ0VfTkFNRSxcbiAgICAgICAgcm9sZUFybjogcm9sZS5yb2xlQXJuLFxuICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBbc2chLnNlY3VyaXR5R3JvdXBJZF0sXG4gICAgICAgIHN1Ym5ldElkOiB2cGNDb25maWc/LnN1Ym5ldElkID8/IHZwYy5wcml2YXRlU3VibmV0c1swXS5zdWJuZXRJZCxcbiAgICAgIH1dIDogW10sXG4gICAgfSk7XG4gICAgZmxvdy5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG5cbiAgICAvLyBTdGFydCB0aGUgTWVkaWFDb25uZWN0IEZsb3dcbiAgICBhdXRvU3RhcnQgJiYgc3RhcnRGbG93KHRoaXMsICdTdGFydE1lZGlhQ29ubmVjdEZsb3cnLCBmbG93LmF0dHJGbG93QXJuKTtcblxuICAgIC8vIENyZWF0ZSBNZWRpYUxpdmUgY2hhbm5lbFxuICAgIGNvbnN0IGVtbCA9IG5ldyBNZWRpYUxpdmUodGhpcywgJ01lZGlhTGl2ZScsIHtcbiAgICAgIHNvdXJjZXM6IFt7IHVybDogZmlsZS51cmwucmVwbGFjZSgnczM6Ly8nLCAnczNzc2w6Ly8nKSwgdHlwZTogZmlsZS50eXBlID8/ICdNUDRfRklMRScgfV0sXG4gICAgICBkZXN0aW5hdGlvbnM6IFt7XG4gICAgICAgIGlkOiAnU1JUJyxcbiAgICAgICAgc3J0U2V0dGluZ3M6IFt7XG4gICAgICAgICAgdXJsOiBgc3J0Oi8vJHtmbG93LmF0dHJTb3VyY2VJbmdlc3RJcH06JHtmbG93LmF0dHJTb3VyY2VTb3VyY2VJbmdlc3RQb3J0fWAsIC8vIFVzZSB0aGUgTWVkaWFDb25uZWN0IEZsb3cgVVJMXG4gICAgICAgICAgZW5jcnlwdGlvblBhc3NwaHJhc2VTZWNyZXRBcm46IHNvdXJjZVBhc3N3b3JkLnNlY3JldEFybixcbiAgICAgICAgfV0sXG4gICAgICB9XSxcbiAgICAgIGNoYW5uZWxDbGFzczogJ1NJTkdMRV9QSVBFTElORScsXG4gICAgICBlbmNvZGVyU3BlYzoge1xuICAgICAgICBvdXRwdXRHcm91cFNldHRpbmdzTGlzdDogW3tcbiAgICAgICAgICBzcnRHcm91cFNldHRpbmdzOiB7XG4gICAgICAgICAgICBpbnB1dExvc3NBY3Rpb246ICdEUk9QX1RTJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9XSxcbiAgICAgICAgb3V0cHV0U2V0dGluZ3NMaXN0OiBbe1xuICAgICAgICAgIC8vIEFkZCB2YWxpZCBPdXRwdXRTZXR0aW5nc1Byb3BlcnR5IGZpZWxkcyBoZXJlIGlmIG5lZWRlZFxuICAgICAgICAgIHNydE91dHB1dFNldHRpbmdzOiB7XG4gICAgICAgICAgICBsYXRlbmN5OiAyMDAwLCAvLyBMYXRlbmN5IGluIG1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgZGVzdGluYXRpb246IHtcbiAgICAgICAgICAgICAgZGVzdGluYXRpb25SZWZJZDogJ1NSVCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW5jcnlwdGlvblR5cGU6ICdBRVMxMjgnLCAvLyBFbmNyeXB0aW9uIHR5cGVcbiAgICAgICAgICAgIGNvbnRhaW5lclNldHRpbmdzOiB7XG4gICAgICAgICAgICAgIG0yVHNTZXR0aW5nczoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH1dLFxuICAgICAgICBnb3BMZW5ndGhJblNlY29uZHM6IGVuY29kZXJTcGVjLmdvcExlbmd0aEluU2Vjb25kcyA/PyAyLFxuICAgICAgICB0aW1lY29kZUJ1cm5pblByZWZpeDogZW5jb2RlclNwZWMudGltZWNvZGVCdXJuaW5QcmVmaXgsXG4gICAgICAgIGZyYW1lcmF0ZU51bWVyYXRvcjogZW5jb2RlclNwZWMuZnJhbWVyYXRlTnVtZXJhdG9yLFxuICAgICAgICBmcmFtZXJhdGVEZW5vbWluYXRvcjogZW5jb2RlclNwZWMuZnJhbWVyYXRlRGVub21pbmF0b3IsXG4gICAgICAgIHNjYW5UeXBlOiBlbmNvZGVyU3BlYy5zY2FuVHlwZSxcbiAgICAgIH0sXG4gICAgICB2cGM6IHNvdXJjZS50eXBlID09PSAnVlBDLVNPVVJDRScgJiYgdnBjID8ge1xuICAgICAgICBwdWJsaWNBZGRyZXNzQWxsb2NhdGlvbklkczogW2VpcCEuYXR0ckFsbG9jYXRpb25JZF0sXG4gICAgICAgIHN1Ym5ldElkczogW3ZwYy5wcml2YXRlU3VibmV0c1swXS5zdWJuZXRJZF0sXG4gICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IFtzZyEuc2VjdXJpdHlHcm91cElkXSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICBzZWNyZXQ6IHNvdXJjZVBhc3N3b3JkLFxuICAgIH0pO1xuXG4gICAgLy8gU3RhcnQgdGhlIE1lZGlhTGl2ZSBjaGFubmVsXG4gICAgYXV0b1N0YXJ0ICYmIHN0YXJ0Q2hhbm5lbCh0aGlzLCAnU3RhcnRNZWRpYUxpdmVDaGFubmVsJywgZW1sLmNoYW5uZWwucmVmKTtcblxuICAgIHRoaXMuZmxvdyA9IGZsb3c7XG4gICAgdGhpcy52cGMgPSB2cGM7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlTmRpRGlzY292ZXJ5U2VydmVyKHNjb3BlOiBDb25zdHJ1Y3QsIHZwYzogZWMyLklWcGMpOiBlYzIuSW5zdGFuY2Uge1xuICBjb25zdCBkZXNjcmlwdGlvbiA9ICdBbGxvdyBOREkgRGlzY292ZXJ5IFNlcnZpY2UnO1xuICBjb25zdCBzZyA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cChzY29wZSwgJ05ESVNlY3VyaXR5R3JvdXAnLCB7XG4gICAgdnBjLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gIH0pO1xuICBzZy5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gIHNnLmFkZEluZ3Jlc3NSdWxlKFxuICAgIGVjMi5QZWVyLmFueUlwdjQoKSxcbiAgICBlYzIuUG9ydC50Y3AoZGlzY292ZXJ5U2VydmVyUG9ydCksXG4gICAgZGVzY3JpcHRpb24sXG4gICk7XG4gIGNvbnN0IGluc3RhbmNlID0gbmV3IGVjMi5JbnN0YW5jZShzY29wZSwgJ0luc3RhbmNlJywge1xuICAgIHZwYyxcbiAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoZWMyLkluc3RhbmNlQ2xhc3MuQlVSU1RBQkxFMywgZWMyLkluc3RhbmNlU2l6ZS5NSUNSTyksXG4gICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4MjAyMygpLFxuICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyB9LFxuICAgIHNlY3VyaXR5R3JvdXA6IHNnLFxuICB9KTtcbiAgaW5zdGFuY2UuYXBwbHlSZW1vdmFsUG9saWN5KGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuICAvLyBHZXQgdGhlIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgSUQgZm9yIHRoZSBpbnN0YW5jZVxuICBjb25zdCBjZm5JbnN0YW5jZSA9IGluc3RhbmNlLm5vZGUuZGVmYXVsdENoaWxkIGFzIGNkay5DZm5SZXNvdXJjZTtcbiAgY29uc3QgbG9naWNhbElkID0gY2ZuSW5zdGFuY2UubG9naWNhbElkO1xuICBpbnN0YW5jZS5hcHBseUNsb3VkRm9ybWF0aW9uSW5pdChlYzIuQ2xvdWRGb3JtYXRpb25Jbml0LmZyb21Db25maWdTZXRzKHtcbiAgICBjb25maWdTZXRzOiB7XG4gICAgICAvLyBBcHBsaWVzIHRoZSBjb25maWdzIGJlbG93IGluIHRoaXMgb3JkZXJcbiAgICAgIGRlZmF1bHQ6IFsnY29uZmlnSW5zdGFuY2UnLCAnZmluYWxpemUnXSxcbiAgICB9LFxuICAgIGNvbmZpZ3M6IHtcbiAgICAgIGNvbmZpZ0luc3RhbmNlOiBuZXcgZWMyLkluaXRDb25maWcoW1xuICAgICAgICAvLyBOREkgRGlzY292ZXJ5IFNlcnZpY2Ugc2NyaXB0XG4gICAgICAgIGVjMi5Jbml0RmlsZS5mcm9tU3RyaW5nKFxuICAgICAgICAgICcvZXRjL3N5c3RlbWQvbmRpLWRpc2NvdmVyeS5zZXJ2aWNlJyxcbiAgICAgICAgICBgW1VuaXRdXG4gICAgICAgICAgRGVzY3JpcHRpb249TkRJIERpc2NvdmVyeSBTZXJ2aWNlXG4gICAgICAgICAgXG4gICAgICAgICAgW1NlcnZpY2VdXG4gICAgICAgICAgRXhlY1N0YXJ0UHJlPS9iaW4vc2xlZXAgMzBcbiAgICAgICAgICBVc2VyPWVjMi11c2VyXG4gICAgICAgICAgV29ya2luZ0RpcmVjdG9yeT0vaG9tZS9lYzItdXNlci9iaW4veDg2XzY0LWxpbnV4LWdudVxuICAgICAgICAgIEV4ZWNTdGFydD0vaG9tZS9lYzItdXNlci9iaW4veDg2XzY0LWxpbnV4LWdudS9uZGktZGlzY292ZXJ5LXNlcnZlclxuICAgICAgICAgIFJlc3RhcnQ9YWx3YXlzXG5cbiAgICAgICAgICBbSW5zdGFsbF1cbiAgICAgICAgICBXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldFxuICAgICAgICBgKSxcbiAgICAgICAgLy8gTkRJIERpc2NvdmVyeSBTZXJ2ZXIgSW5zdGFsbGF0aW9uIHNjcmlwdFxuICAgICAgICBlYzIuSW5pdEZpbGUuZnJvbVN0cmluZyhcbiAgICAgICAgICAnL3RtcC9pbnN0YWxsLW5kaS1kaXNjb3Zlcnkuc2gnLFxuICAgICAgICAgIGAjIS9iaW4vYmFzaCAteGVcbiAgICAgICAgICBjZCAvaG9tZS9lYzItdXNlclxuXG4gICAgICAgICAgI0luc3RhbGwgdXBkYXRlc1xuICAgICAgICAgIHl1bSB1cGRhdGUgLXlcblxuICAgICAgICAgICNEb3dubG9hZCB0aGUgTkRJIExpbnV4IFNESyBhbmQgZXh0cmFjdCBpdCBhbmQgcnVuIHRoZSBpbnN0YWxsIHNjcmlwdFxuICAgICAgICAgIHdnZXQgaHR0cHM6Ly9kb3dubG9hZHMubmRpLnR2L1NESy9ORElfU0RLX0xpbnV4L0luc3RhbGxfTkRJX1NES192Nl9MaW51eC50YXIuZ3pcbiAgICAgICAgICB0YXIgLXh6ZiBJbnN0YWxsX05ESV9TREtfdjZfTGludXgudGFyLmd6XG4gICAgICAgICAgeWVzIHwgc3VkbyAuL0luc3RhbGxfTkRJX1NES192Nl9MaW51eC5zaFxuXG4gICAgICAgICAgI0NsZWFuIHVwIGFuZCBwcmVwYXJlIGRpcmVjdG9yaWVzXG4gICAgICAgICAgcm0gLWYgSW5zdGFsbF9ORElfU0RLX3Y2X0xpbnV4LnRhci5nelxuICAgICAgICAgIHJtIC1mIEluc3RhbGxfTkRJX1NES192Nl9MaW51eC5zaFxuICAgICAgICAgIGNwIC1yICdOREkgU0RLIGZvciBMaW51eCcvKiAuL1xuICAgICAgICAgIHJtIC1yICdOREkgU0RLIGZvciBMaW51eCcvXG4gICAgICAgIGApLFxuICAgICAgICAvLyBJbnN0YWxsIHRoZSBOREkgRGlzY292ZXJ5IFNlcnZpY2VcbiAgICAgICAgZWMyLkluaXRDb21tYW5kLnNoZWxsQ29tbWFuZCgnc3VkbyBiYXNoIC90bXAvaW5zdGFsbC1uZGktZGlzY292ZXJ5LnNoJyksXG4gICAgICAgIC8vIFJ1biB0aGUgTkRJIERpc2NvdmVyeSBTZXJ2aWNlXG4gICAgICAgIGVjMi5Jbml0Q29tbWFuZC5zaGVsbENvbW1hbmQoJ3N1ZG8gc3lzdGVtY3RsIGVuYWJsZSAvZXRjL3N5c3RlbWQvbmRpLWRpc2NvdmVyeS5zZXJ2aWNlJyksXG4gICAgICBdKSxcbiAgICAgIGZpbmFsaXplOiBuZXcgZWMyLkluaXRDb25maWcoW1xuICAgICAgICAvLyBTdGFydCB0aGUgTkRJIERpc2NvdmVyeSBTZXJ2aWNlXG4gICAgICAgIGVjMi5Jbml0Q29tbWFuZC5zaGVsbENvbW1hbmQoXG4gICAgICAgICAgY2RrLkZuLnN1YignL29wdC9hd3MvYmluL2Nmbi1zaWduYWwgLWUgJD8gLS1zdGFjayAke1N0YWNrTmFtZX0gLS1yZXNvdXJjZSAke1Jlc291cmNlfSAtLXJlZ2lvbiAke1JlZ2lvbn0nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTdGFja05hbWU6IGNkay5Bd3MuU1RBQ0tfTkFNRSxcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IGxvZ2ljYWxJZCxcbiAgICAgICAgICAgICAgUmVnaW9uOiBjZGsuQXdzLlJFR0lPTixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgfSxcbiAgfSkpO1xuICBpbnN0YW5jZS5hZGRVc2VyRGF0YShjZGsuRm4uc3ViKGBcbiAgICAjIS9iaW4vYmFzaCAteGVcbiAgICB5dW0gaW5zdGFsbCAteSBhd3MtY2ZuLWJvb3RzdHJhcFxuICAgIHN1ZG8gL29wdC9hd3MvYmluL2Nmbi1pbml0IC0tY29uZmlnc2V0cyBkZWZhdWx0IC12IC0tc3RhY2sgXFwke1N0YWNrTmFtZX0gLS1yZXNvdXJjZSBcXCR7UmVzb3VyY2V9IC0tcmVnaW9uIFxcJHtSZWdpb259XG4gICAgc3VkbyByZWJvb3RcbiAgYCwge1xuICAgIFN0YWNrTmFtZTogY2RrLkF3cy5TVEFDS19OQU1FLFxuICAgIFJlc291cmNlOiBsb2dpY2FsSWQsXG4gICAgUmVnaW9uOiBjZGsuQXdzLlJFR0lPTixcbiAgfSkpO1xuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFydEZsb3coc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZmxvd0Fybjogc3RyaW5nKTogRGF0ZSB7XG4gIC8vIFN0YXJ0IGNoYW5uZWxcbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHNjb3BlLCBpZCwge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnTWVkaWFDb25uZWN0JyxcbiAgICAgIGFjdGlvbjogJ1N0YXJ0RmxvdycsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIEZsb3dBcm46IGZsb3dBcm4sXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoYCR7Y3J5cHRvLnJhbmRvbVVVSUQoKX1gKSxcbiAgICAgIC8vIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZzogJyonLFxuICAgICAgb3V0cHV0UGF0aHM6IFsnRmxvd0FybicsICdTdGF0dXMnXSxcbiAgICB9LFxuICAgIG9uRGVsZXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnTWVkaWFDb25uZWN0JyxcbiAgICAgIGFjdGlvbjogJ1N0b3BGbG93JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgRmxvd0FybjogZmxvd0FybixcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihgJHtjcnlwdG8ucmFuZG9tVVVJRCgpfWApLFxuICAgICAgLy8gaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiAnKicsXG4gICAgICBvdXRwdXRQYXRoczogWydGbG93QXJuJywgJ1N0YXR1cyddLFxuICAgIH0sXG4gICAgLy9XaWxsIGlnbm9yZSBhbnkgcmVzb3VyY2UgYW5kIHVzZSB0aGUgYXNzdW1lZFJvbGVBcm4gYXMgcmVzb3VyY2UgYW5kICdzdHM6QXNzdW1lUm9sZScgZm9yIHNlcnZpY2U6YWN0aW9uXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgcmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgfSksXG4gIH0pO1xuICByZXR1cm4gbmV3IERhdGUoKTtcbn1cbiJdfQ==
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUZlZWRGcm9tRmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MaXZlRmVlZEZyb21GaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFvV0EsOEJBNkJDOztBQWpZRCxpQ0FBaUM7QUFDakMsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsbUVBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCxtRUFBOEc7QUFDOUcsMkZBQTZFO0FBQzdFLDJDQUF1QztBQXFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDOUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFDakMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUU5QyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBSzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQ0osSUFBSSxFQUNKLFdBQVcsR0FBRztZQUNaLGtCQUFrQixFQUFFLENBQUM7WUFDckIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsUUFBUSxFQUFFLGFBQWE7WUFDdkIsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtTQUNiLEVBQ0QsTUFBTSxHQUFHO1lBQ1AsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsaUJBQWlCO1NBQ3hCLEVBQ0QsU0FBUyxFQUNULFNBQVMsR0FBRyxJQUFJLEdBQ2pCLEdBQUcsS0FBSyxDQUFDO1FBRVYsTUFBTSxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNyQixRQUFRLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FB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LENBQUM7U0FDbkM7UUFDRCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsY0FBYztZQUN2QixNQUFNLEVBQUUsVUFBVTtZQUNsQixVQUFVLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLE9BQU87YUFDakI7WUFDRCxrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNuRSxpQ0FBaUM7WUFDakMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztTQUNuQztRQUNELHlHQUF5RztRQUN6RyxNQUFNLEVBQUUsMENBQXVCLENBQUMsWUFBWSxDQUFDO1lBQzNDLFNBQVMsRUFBRSwwQ0FBdUIsQ0FBQyxZQUFZO1NBQ2hELENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmbkZsb3cgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCAqIGFzIGFzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgQXdzQ3VzdG9tUmVzb3VyY2UsIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LCBQaHlzaWNhbFJlc291cmNlSWQgfSBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IE1lZGlhTGl2ZSwgc3RhcnRDaGFubmVsIH0gZnJvbSAnYXdzY2RrLWNvbnN0cnVjdC1tZWRpYWxpdmUtY2hhbm5lbCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlU3BlYyB7XG4gIHJlYWRvbmx5IHR5cGU/OiAnTVA0X0ZJTEUnIHwgJ1RTX0ZJTEUnOyAvLyBUeXBlIG9mIHRoZSBpbnB1dCBmaWxlXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nOyAvLyBTMyBVUkwgb2YgdGhlIGlucHV0IGZpbGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXZlU291cmNlU3BlYyB7XG4gIHJlYWRvbmx5IHByb3RvY29sOiAnUlRQJyB8ICdSVFAtRkVDJyB8ICdTUlQnOyAvLyBQcm90b2NvbCBvZiB0aGUgbGl2ZSBzb3VyY2VcbiAgcmVhZG9ubHkgdHlwZTogJ1NUQU5EQVJELVNPVVJDRScgfCAnVlBDLVNPVVJDRSc7IC8vIFR5cGUgb2YgdGhlIGxpdmUgc291cmNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbiAgcmVhZG9ubHkgcHJvcHM6IGVjMi5WcGNQcm9wcztcbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc3VibmV0SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZU5EST86IGJvb2xlYW47IC8vIFNldHRpbmdzIGZvciBOREkgb3V0cHV0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jb2RlclNldHRpbmdzIHtcbiAgcmVhZG9ubHkgZ29wTGVuZ3RoSW5TZWNvbmRzPzogbnVtYmVyOyAvLyBUaGUgbGVuZ3RoIG9mIHRoZSBHT1AgaW4gc2Vjb25kcy5cbiAgcmVhZG9ubHkgdGltZWNvZGVCdXJuaW5QcmVmaXg/OiBzdHJpbmc7IC8vIFRoZSBwcmVmaXggZm9yIHRoZSB0aW1lY29kZSBidXJuLWluLlxuICByZWFkb25seSBmcmFtZXJhdGVOdW1lcmF0b3I/OiBudW1iZXI7IC8vIFRoZSBudW1lcmF0b3IgZm9yIHRoZSBmcmFtZXJhdGUuXG4gIHJlYWRvbmx5IGZyYW1lcmF0ZURlbm9taW5hdG9yPzogbnVtYmVyOyAvLyBUaGUgZGVub21pbmF0b3IgZm9yIHRoZSBmcmFtZXJhdGUuXG4gIHJlYWRvbmx5IHNjYW5UeXBlPzogJ1BST0dSRVNTSVZFJyB8ICdJTlRFUkxBQ0VEJzsgLy8gVGhlIHNjYW4gdHlwZS5cbiAgcmVhZG9ubHkgd2lkdGg/OiBudW1iZXI7IC8vIFRoZSB3aWR0aCBvZiB0aGUgdmlkZW8uXG4gIHJlYWRvbmx5IGhlaWdodD86IG51bWJlcjsgLy8gVGhlIGhlaWdodCBvZiB0aGUgdmlkZW8uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGl2ZUZlZWRGcm9tRmlsZVByb3BzIHtcbiAgcmVhZG9ubHkgZmlsZTogRmlsZVNwZWM7IC8vIEZpbGUgc3BlY2lmaWNhdGlvblxuICByZWFkb25seSBlbmNvZGVyU3BlYz86IEVuY29kZXJTZXR0aW5nczsgLy8gT3B0aW9uYWwgZW5jb2RlciBzZXR0aW5ncyBmb3IgTWVkaWFMaXZlXG4gIHJlYWRvbmx5IHNvdXJjZT86IExpdmVTb3VyY2VTcGVjOyAvLyBPcHRpb25hbCBsaXZlIHNvdXJjZSBzcGVjaWZpY2F0aW9uXG4gIHJlYWRvbmx5IHZwY0NvbmZpZz86IFZwY0NvbmZpZzsgLy8gU2V0dGluZ3MgZm9yIFZQQy4gUmVxdWlyZWQgd2hlbiB0aGUgc291cmNlIHR5cGUgaXMgVlBDLVNPVVJDRSBhbmQvb3IgVlBDIG91dHB1dHMgd2lsbCBiZSBhZGRlZCB0byB0aGlzIGZsb3cuXG4gIHJlYWRvbmx5IGF1dG9TdGFydD86IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBzdGFydCB0aGUgTWVkaWFMaXZlIGNoYW5uZWwgYW5kIE1lZGlhQ29ubmVjdCBmbG93XG59XG5cbmNvbnN0IHNvdXJjZUluZ2VzdFBvcnQgPSA1MDAwO1xuY29uc3QgZGlzY292ZXJ5U2VydmVyUG9ydCA9IDU5NTk7XG5jb25zdCBWUENfSU5URVJGQUNFX05BTUUgPSAndnBjSW50ZXJmYWNlTmFtZSc7XG5cbmV4cG9ydCBjbGFzcyBMaXZlRmVlZEZyb21GaWxlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGZsb3c6IENmbkZsb3c7XG4gIHB1YmxpYyByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcbiAgcHVibGljIHJlYWRvbmx5IG5kaURpc2NvdmVyeVNlcnZlcj86IGVjMi5JbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGl2ZUZlZWRGcm9tRmlsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGZpbGUsXG4gICAgICBlbmNvZGVyU3BlYyA9IHtcbiAgICAgICAgZ29wTGVuZ3RoSW5TZWNvbmRzOiAyLFxuICAgICAgICB0aW1lY29kZUJ1cm5pblByZWZpeDogJ0NoJyxcbiAgICAgICAgZnJhbWVyYXRlTnVtZXJhdG9yOiAzMCxcbiAgICAgICAgZnJhbWVyYXRlRGVub21pbmF0b3I6IDEsXG4gICAgICAgIHNjYW5UeXBlOiAnUFJPR1JFU1NJVkUnLFxuICAgICAgICB3aWR0aDogMTkyMCxcbiAgICAgICAgaGVpZ2h0OiAxMDgwLFxuICAgICAgfSxcbiAgICAgIHNvdXJjZSA9IHtcbiAgICAgICAgcHJvdG9jb2w6ICdTUlQnLFxuICAgICAgICB0eXBlOiAnU1RBTkRBUkQtU09VUkNFJyxcbiAgICAgIH0sXG4gICAgICB2cGNDb25maWcsXG4gICAgICBhdXRvU3RhcnQgPSB0cnVlLFxuICAgIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IHV1aWQgPSBgJHtjcnlwdG8ucmFuZG9tVVVJRCgpfWA7XG4gICAgY29uc3QgcHJvdG9jb2wgPSAoKCkgPT4ge1xuICAgICAgc3dpdGNoIChzb3VyY2UucHJvdG9jb2wpIHtcbiAgICAgICAgY2FzZSAnUlRQJzpcbiAgICAgICAgICByZXR1cm4gJ3J0cCc7XG4gICAgICAgIGNhc2UgJ1JUUC1GRUMnOlxuICAgICAgICAgIHJldHVybiAncnRwLWZlYyc7XG4gICAgICAgIGNhc2UgJ1NSVCc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdzcnQtbGlzdGVuZXInO1xuICAgICAgfVxuICAgIH0pKCk7XG5cbiAgICAvLyBDcmVhdGUgYSBWUENcbiAgICBjb25zdCB2cGMgPSB2cGNDb25maWcgPyBuZXcgZWMyLlZwYyh0aGlzLCAnVlBDJywgdnBjQ29uZmlnLnByb3BzKSA6IHVuZGVmaW5lZDtcbiAgICB2cGMgJiYgdnBjLmFwcGx5UmVtb3ZhbFBvbGljeShjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgIC8vIEFsbG9jYXRlIGFuIEVsYXN0aWMgSVAgZm9yIHRoZSBWUEMgaW50ZXJmYWNlXG4gICAgY29uc3QgZWlwID0gdnBjID8gbmV3IGVjMi5DZm5FSVAodGhpcywgJ0VJUCcsIHtcbiAgICAgIGRvbWFpbjogJ3ZwYycsIC8vIEVuc3VyZSB0aGUgRUlQIGlzIGFsbG9jYXRlZCBpbiB0aGUgVlBDXG4gICAgfSkgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDcmVhdGUgYSBzZWN1cml0eSBncm91cCB0byBhbGxvdyBwdXNoIGlucHV0XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSAnQWxsb3cgUHVzaCBpbnB1dCBmcm9tIE1lZGlhTGl2ZSc7XG4gICAgY29uc3Qgc2cgPSB2cGMgPyBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICB2cGMsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk6IHVuZGVmaW5lZDtcbiAgICBzZyAmJiBzZy5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgc2cgJiYgc2cuYWRkSW5ncmVzc1J1bGUoXG4gICAgICBlYzIuUGVlci5hbnlJcHY0KCksXG4gICAgICBlYzIuUG9ydC51ZHAoc291cmNlSW5nZXN0UG9ydCksXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGFuIE5ESSBkaXNjb3Zlcnkgc2VydmVyXG4gICAgbGV0IG5kaUNvbmZpZzogQ2ZuRmxvdy5OZGlDb25maWdQcm9wZXJ0eSB8IHVuZGVmaW5lZDtcbiAgICBpZiAodnBjICYmIHZwY0NvbmZpZz8uZW5hYmxlTkRJKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZU5kaURpc2NvdmVyeVNlcnZlcih0aGlzLCB2cGMpO1xuICAgICAgbmRpQ29uZmlnID0ge1xuICAgICAgICBuZGlEaXNjb3ZlcnlTZXJ2ZXJzOiBbe1xuICAgICAgICAgIGRpc2NvdmVyeVNlcnZlckFkZHJlc3M6IGluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZUlwLCAvLyBVc2UgdGhlIHByaXZhdGUgSVAgb2YgdGhlIE5ESSBEaXNjb3ZlcnkgU2VydmVyXG4gICAgICAgICAgdnBjSW50ZXJmYWNlQWRhcHRlcjogVlBDX0lOVEVSRkFDRV9OQU1FLFxuICAgICAgICAgIGRpc2NvdmVyeVNlcnZlclBvcnQsXG4gICAgICAgIH1dLFxuICAgICAgICBuZGlTdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgfTtcbiAgICAgIHNnICYmIHNnLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgICBlYzIuUGVlci5hbnlJcHY0KCksXG4gICAgICAgIGVjMi5Qb3J0LnRjcFJhbmdlKDU5NjEsIDY1NTM1KSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICApO1xuICAgICAgdGhpcy5uZGlEaXNjb3ZlcnlTZXJ2ZXIgPSBpbnN0YW5jZTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBzZWNyZXRcbiAgICBjb25zdCByYW5kb21zdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgtOCk7XG4gICAgY29uc3Qgc291cmNlUGFzc3dvcmQgPSBuZXcgYXNtLlNlY3JldCh0aGlzLCAnU291cmNlUGFzc3dvcmQnLCB7XG4gICAgICBzZWNyZXROYW1lOiBgc2VjcmV0LSR7dXVpZH1gLFxuICAgICAgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHtcbiAgICAgICAgc2VjcmV0U3RyaW5nVGVtcGxhdGU6IEpTT04uc3RyaW5naWZ5KHsgcGFzc3dvcmQ6IHJhbmRvbXN0cmluZyB9KSxcbiAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6ICdwYXNzd29yZCcsXG4gICAgICAgIGV4Y2x1ZGVQdW5jdHVhdGlvbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGFuIElBTSByb2xlIGZvciBNZWRpYUNvbm5lY3QgdG8gYWNjZXNzIHRoZSBWUENcbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdNZWRpYUNvbm5lY3RSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ21lZGlhY29ubmVjdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBwb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbc291cmNlUGFzc3dvcmQuc2VjcmV0QXJuXSxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzZWNyZXRzbWFuYWdlcjpHZXRSZXNvdXJjZVBvbGljeScsXG4gICAgICAgICAgICAgICAgJ3NlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlJyxcbiAgICAgICAgICAgICAgICAnc2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXQnLFxuICAgICAgICAgICAgICAgICdzZWNyZXRzbWFuYWdlcjpMaXN0U2VjcmV0VmVyc2lvbklkcycsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBbWF6b25WUENGdWxsQWNjZXNzJyksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGEgTWVkaWFDb25uZWN0IGZsb3dcbiAgICBjb25zdCBmbG93ID0gbmV3IENmbkZsb3codGhpcywgJ015Q2ZuRmxvdycsIHtcbiAgICAgIG5hbWU6IGBsY3AtZGVtby0ke3V1aWR9YCxcbiAgICAgIHNvdXJjZToge1xuICAgICAgICBuYW1lOiBgbGNwLWRlbW8tc291cmNlLSR7dXVpZH1gLFxuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgLy8gbWF4TGF0ZW5jeTogMjAwMCxcbiAgICAgICAgLy8gbWluTGF0ZW5jeTogMTAwMCxcbiAgICAgICAgLy8gdnBjSW50ZXJmYWNlTmFtZTogVlBDX0lOVEVSRkFDRV9OQU1FLFxuICAgICAgICB3aGl0ZWxpc3RDaWRyOiBzb3VyY2UudHlwZSA9PT0gJ1NUQU5EQVJELVNPVVJDRScgPyAnMC4wLjAuMC8wJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgZGVjcnlwdGlvbjoge1xuICAgICAgICAgIC8vIGFsZ29yaXRobTogJ2FlczEyOCcsXG4gICAgICAgICAgcm9sZUFybjogcm9sZS5yb2xlQXJuLFxuICAgICAgICAgIHNlY3JldEFybjogc291cmNlUGFzc3dvcmQuc2VjcmV0QXJuLFxuICAgICAgICB9LFxuICAgICAgICAvLyBzb3VyY2VJbmdlc3RQb3J0OiBgJHtzb3VyY2VJbmdlc3RQb3J0fWAsXG4gICAgICAgIHZwY0ludGVyZmFjZU5hbWU6IHNvdXJjZS50eXBlID09PSAnVlBDLVNPVVJDRScgPyBWUENfSU5URVJGQUNFX05BTUUgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogdnBjQ29uZmlnPy5hdmFpbGFiaWxpdHlab25lID8/IHZwYz8uYXZhaWxhYmlsaXR5Wm9uZXNbMF0sXG4gICAgICBmbG93U2l6ZTogdnBjQ29uZmlnPy5lbmFibGVOREkgPyAnTEFSR0UnIDogJ01FRElVTScsXG4gICAgICBuZGlDb25maWcsXG4gICAgICBzb3VyY2VNb25pdG9yaW5nQ29uZmlnOiB7XG4gICAgICAgIHRodW1ibmFpbFN0YXRlOiAnRU5BQkxFRCcsXG4gICAgICAgIGNvbnRlbnRRdWFsaXR5QW5hbHlzaXNTdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgfSxcbiAgICAgIHZwY0ludGVyZmFjZXM6IHZwYyA/IFt7XG4gICAgICAgIG5hbWU6IFZQQ19JTlRFUkZBQ0VfTkFNRSxcbiAgICAgICAgcm9sZUFybjogcm9sZS5yb2xlQXJuLFxuICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBbc2chLnNlY3VyaXR5R3JvdXBJZF0sXG4gICAgICAgIHN1Ym5ldElkOiB2cGNDb25maWc/LnN1Ym5ldElkID8/IHZwYy5wcml2YXRlU3VibmV0c1swXS5zdWJuZXRJZCxcbiAgICAgIH1dIDogW10sXG4gICAgfSk7XG4gICAgZmxvdy5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG5cbiAgICAvLyBTdGFydCB0aGUgTWVkaWFDb25uZWN0IEZsb3dcbiAgICBhdXRvU3RhcnQgJiYgc3RhcnRGbG93KHRoaXMsICdTdGFydE1lZGlhQ29ubmVjdEZsb3cnLCBmbG93LmF0dHJGbG93QXJuKTtcblxuICAgIC8vIENyZWF0ZSBNZWRpYUxpdmUgY2hhbm5lbFxuICAgIGNvbnN0IGVtbCA9IG5ldyBNZWRpYUxpdmUodGhpcywgJ01lZGlhTGl2ZScsIHtcbiAgICAgIHNvdXJjZXM6IFt7IHVybDogZmlsZS51cmwucmVwbGFjZSgnczM6Ly8nLCAnczNzc2w6Ly8nKSwgdHlwZTogZmlsZS50eXBlID8/ICdNUDRfRklMRScgfV0sXG4gICAgICBkZXN0aW5hdGlvbnM6IFt7XG4gICAgICAgIGlkOiAnU1JUJyxcbiAgICAgICAgc3J0U2V0dGluZ3M6IFt7XG4gICAgICAgICAgdXJsOiBgc3J0Oi8vJHtmbG93LmF0dHJTb3VyY2VJbmdlc3RJcH06JHtmbG93LmF0dHJTb3VyY2VTb3VyY2VJbmdlc3RQb3J0fWAsIC8vIFVzZSB0aGUgTWVkaWFDb25uZWN0IEZsb3cgVVJMXG4gICAgICAgICAgZW5jcnlwdGlvblBhc3NwaHJhc2VTZWNyZXRBcm46IHNvdXJjZVBhc3N3b3JkLnNlY3JldEFybixcbiAgICAgICAgfV0sXG4gICAgICB9XSxcbiAgICAgIGNoYW5uZWxDbGFzczogJ1NJTkdMRV9QSVBFTElORScsXG4gICAgICBlbmNvZGVyU3BlYzoge1xuICAgICAgICBvdXRwdXRHcm91cFNldHRpbmdzTGlzdDogW3tcbiAgICAgICAgICBzcnRHcm91cFNldHRpbmdzOiB7XG4gICAgICAgICAgICBpbnB1dExvc3NBY3Rpb246ICdEUk9QX1RTJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9XSxcbiAgICAgICAgb3V0cHV0U2V0dGluZ3NMaXN0OiBbe1xuICAgICAgICAgIC8vIEFkZCB2YWxpZCBPdXRwdXRTZXR0aW5nc1Byb3BlcnR5IGZpZWxkcyBoZXJlIGlmIG5lZWRlZFxuICAgICAgICAgIHNydE91dHB1dFNldHRpbmdzOiB7XG4gICAgICAgICAgICBsYXRlbmN5OiAyMDAwLCAvLyBMYXRlbmN5IGluIG1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgZGVzdGluYXRpb246IHtcbiAgICAgICAgICAgICAgZGVzdGluYXRpb25SZWZJZDogJ1NSVCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW5jcnlwdGlvblR5cGU6ICdBRVMxMjgnLCAvLyBFbmNyeXB0aW9uIHR5cGVcbiAgICAgICAgICAgIGNvbnRhaW5lclNldHRpbmdzOiB7XG4gICAgICAgICAgICAgIG0yVHNTZXR0aW5nczoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH1dLFxuICAgICAgICBnb3BMZW5ndGhJblNlY29uZHM6IGVuY29kZXJTcGVjLmdvcExlbmd0aEluU2Vjb25kcyA/PyAyLFxuICAgICAgICB0aW1lY29kZUJ1cm5pblByZWZpeDogZW5jb2RlclNwZWMudGltZWNvZGVCdXJuaW5QcmVmaXgsXG4gICAgICAgIGZyYW1lcmF0ZU51bWVyYXRvcjogZW5jb2RlclNwZWMuZnJhbWVyYXRlTnVtZXJhdG9yLFxuICAgICAgICBmcmFtZXJhdGVEZW5vbWluYXRvcjogZW5jb2RlclNwZWMuZnJhbWVyYXRlRGVub21pbmF0b3IsXG4gICAgICAgIHNjYW5UeXBlOiBlbmNvZGVyU3BlYy5zY2FuVHlwZSxcbiAgICAgICAgd2lkdGg6IGVuY29kZXJTcGVjLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IGVuY29kZXJTcGVjLmhlaWdodCxcbiAgICAgIH0sXG4gICAgICB2cGM6IHNvdXJjZS50eXBlID09PSAnVlBDLVNPVVJDRScgJiYgdnBjID8ge1xuICAgICAgICBwdWJsaWNBZGRyZXNzQWxsb2NhdGlvbklkczogW2VpcCEuYXR0ckFsbG9jYXRpb25JZF0sXG4gICAgICAgIHN1Ym5ldElkczogW3ZwYy5wcml2YXRlU3VibmV0c1swXS5zdWJuZXRJZF0sXG4gICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IFtzZyEuc2VjdXJpdHlHcm91cElkXSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICBzZWNyZXQ6IHNvdXJjZVBhc3N3b3JkLFxuICAgIH0pO1xuXG4gICAgLy8gU3RhcnQgdGhlIE1lZGlhTGl2ZSBjaGFubmVsXG4gICAgYXV0b1N0YXJ0ICYmIHN0YXJ0Q2hhbm5lbCh0aGlzLCAnU3RhcnRNZWRpYUxpdmVDaGFubmVsJywgZW1sLmNoYW5uZWwucmVmKTtcblxuICAgIHRoaXMuZmxvdyA9IGZsb3c7XG4gICAgdGhpcy52cGMgPSB2cGM7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlTmRpRGlzY292ZXJ5U2VydmVyKHNjb3BlOiBDb25zdHJ1Y3QsIHZwYzogZWMyLklWcGMpOiBlYzIuSW5zdGFuY2Uge1xuICBjb25zdCBkZXNjcmlwdGlvbiA9ICdBbGxvdyBOREkgRGlzY292ZXJ5IFNlcnZpY2UnO1xuICBjb25zdCBzZyA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cChzY29wZSwgJ05ESVNlY3VyaXR5R3JvdXAnLCB7XG4gICAgdnBjLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gIH0pO1xuICBzZy5hcHBseVJlbW92YWxQb2xpY3koY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gIHNnLmFkZEluZ3Jlc3NSdWxlKFxuICAgIGVjMi5QZWVyLmFueUlwdjQoKSxcbiAgICBlYzIuUG9ydC50Y3AoZGlzY292ZXJ5U2VydmVyUG9ydCksXG4gICAgZGVzY3JpcHRpb24sXG4gICk7XG4gIGNvbnN0IGluc3RhbmNlID0gbmV3IGVjMi5JbnN0YW5jZShzY29wZSwgJ0luc3RhbmNlJywge1xuICAgIHZwYyxcbiAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoZWMyLkluc3RhbmNlQ2xhc3MuQlVSU1RBQkxFMywgZWMyLkluc3RhbmNlU2l6ZS5NSUNSTyksXG4gICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4MjAyMygpLFxuICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyB9LFxuICAgIHNlY3VyaXR5R3JvdXA6IHNnLFxuICB9KTtcbiAgaW5zdGFuY2UuYXBwbHlSZW1vdmFsUG9saWN5KGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuICAvLyBHZXQgdGhlIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgSUQgZm9yIHRoZSBpbnN0YW5jZVxuICBjb25zdCBjZm5JbnN0YW5jZSA9IGluc3RhbmNlLm5vZGUuZGVmYXVsdENoaWxkIGFzIGNkay5DZm5SZXNvdXJjZTtcbiAgY29uc3QgbG9naWNhbElkID0gY2ZuSW5zdGFuY2UubG9naWNhbElkO1xuICBpbnN0YW5jZS5hcHBseUNsb3VkRm9ybWF0aW9uSW5pdChlYzIuQ2xvdWRGb3JtYXRpb25Jbml0LmZyb21Db25maWdTZXRzKHtcbiAgICBjb25maWdTZXRzOiB7XG4gICAgICAvLyBBcHBsaWVzIHRoZSBjb25maWdzIGJlbG93IGluIHRoaXMgb3JkZXJcbiAgICAgIGRlZmF1bHQ6IFsnY29uZmlnSW5zdGFuY2UnLCAnZmluYWxpemUnXSxcbiAgICB9LFxuICAgIGNvbmZpZ3M6IHtcbiAgICAgIGNvbmZpZ0luc3RhbmNlOiBuZXcgZWMyLkluaXRDb25maWcoW1xuICAgICAgICAvLyBOREkgRGlzY292ZXJ5IFNlcnZpY2Ugc2NyaXB0XG4gICAgICAgIGVjMi5Jbml0RmlsZS5mcm9tU3RyaW5nKFxuICAgICAgICAgICcvZXRjL3N5c3RlbWQvbmRpLWRpc2NvdmVyeS5zZXJ2aWNlJyxcbiAgICAgICAgICBgW1VuaXRdXG4gICAgICAgICAgRGVzY3JpcHRpb249TkRJIERpc2NvdmVyeSBTZXJ2aWNlXG4gICAgICAgICAgXG4gICAgICAgICAgW1NlcnZpY2VdXG4gICAgICAgICAgRXhlY1N0YXJ0UHJlPS9iaW4vc2xlZXAgMzBcbiAgICAgICAgICBVc2VyPWVjMi11c2VyXG4gICAgICAgICAgV29ya2luZ0RpcmVjdG9yeT0vaG9tZS9lYzItdXNlci9iaW4veDg2XzY0LWxpbnV4LWdudVxuICAgICAgICAgIEV4ZWNTdGFydD0vaG9tZS9lYzItdXNlci9iaW4veDg2XzY0LWxpbnV4LWdudS9uZGktZGlzY292ZXJ5LXNlcnZlclxuICAgICAgICAgIFJlc3RhcnQ9YWx3YXlzXG5cbiAgICAgICAgICBbSW5zdGFsbF1cbiAgICAgICAgICBXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldFxuICAgICAgICBgKSxcbiAgICAgICAgLy8gTkRJIERpc2NvdmVyeSBTZXJ2ZXIgSW5zdGFsbGF0aW9uIHNjcmlwdFxuICAgICAgICBlYzIuSW5pdEZpbGUuZnJvbVN0cmluZyhcbiAgICAgICAgICAnL3RtcC9pbnN0YWxsLW5kaS1kaXNjb3Zlcnkuc2gnLFxuICAgICAgICAgIGAjIS9iaW4vYmFzaCAteGVcbiAgICAgICAgICBjZCAvaG9tZS9lYzItdXNlclxuXG4gICAgICAgICAgI0luc3RhbGwgdXBkYXRlc1xuICAgICAgICAgIHl1bSB1cGRhdGUgLXlcblxuICAgICAgICAgICNEb3dubG9hZCB0aGUgTkRJIExpbnV4IFNESyBhbmQgZXh0cmFjdCBpdCBhbmQgcnVuIHRoZSBpbnN0YWxsIHNjcmlwdFxuICAgICAgICAgIHdnZXQgaHR0cHM6Ly9kb3dubG9hZHMubmRpLnR2L1NESy9ORElfU0RLX0xpbnV4L0luc3RhbGxfTkRJX1NES192Nl9MaW51eC50YXIuZ3pcbiAgICAgICAgICB0YXIgLXh6ZiBJbnN0YWxsX05ESV9TREtfdjZfTGludXgudGFyLmd6XG4gICAgICAgICAgeWVzIHwgc3VkbyAuL0luc3RhbGxfTkRJX1NES192Nl9MaW51eC5zaFxuXG4gICAgICAgICAgI0NsZWFuIHVwIGFuZCBwcmVwYXJlIGRpcmVjdG9yaWVzXG4gICAgICAgICAgcm0gLWYgSW5zdGFsbF9ORElfU0RLX3Y2X0xpbnV4LnRhci5nelxuICAgICAgICAgIHJtIC1mIEluc3RhbGxfTkRJX1NES192Nl9MaW51eC5zaFxuICAgICAgICAgIGNwIC1yICdOREkgU0RLIGZvciBMaW51eCcvKiAuL1xuICAgICAgICAgIHJtIC1yICdOREkgU0RLIGZvciBMaW51eCcvXG4gICAgICAgIGApLFxuICAgICAgICAvLyBJbnN0YWxsIHRoZSBOREkgRGlzY292ZXJ5IFNlcnZpY2VcbiAgICAgICAgZWMyLkluaXRDb21tYW5kLnNoZWxsQ29tbWFuZCgnc3VkbyBiYXNoIC90bXAvaW5zdGFsbC1uZGktZGlzY292ZXJ5LnNoJyksXG4gICAgICAgIC8vIFJ1biB0aGUgTkRJIERpc2NvdmVyeSBTZXJ2aWNlXG4gICAgICAgIGVjMi5Jbml0Q29tbWFuZC5zaGVsbENvbW1hbmQoJ3N1ZG8gc3lzdGVtY3RsIGVuYWJsZSAvZXRjL3N5c3RlbWQvbmRpLWRpc2NvdmVyeS5zZXJ2aWNlJyksXG4gICAgICBdKSxcbiAgICAgIGZpbmFsaXplOiBuZXcgZWMyLkluaXRDb25maWcoW1xuICAgICAgICAvLyBTdGFydCB0aGUgTkRJIERpc2NvdmVyeSBTZXJ2aWNlXG4gICAgICAgIGVjMi5Jbml0Q29tbWFuZC5zaGVsbENvbW1hbmQoXG4gICAgICAgICAgY2RrLkZuLnN1YignL29wdC9hd3MvYmluL2Nmbi1zaWduYWwgLWUgJD8gLS1zdGFjayAke1N0YWNrTmFtZX0gLS1yZXNvdXJjZSAke1Jlc291cmNlfSAtLXJlZ2lvbiAke1JlZ2lvbn0nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTdGFja05hbWU6IGNkay5Bd3MuU1RBQ0tfTkFNRSxcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IGxvZ2ljYWxJZCxcbiAgICAgICAgICAgICAgUmVnaW9uOiBjZGsuQXdzLlJFR0lPTixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgfSxcbiAgfSkpO1xuICBpbnN0YW5jZS5hZGRVc2VyRGF0YShjZGsuRm4uc3ViKGBcbiAgICAjIS9iaW4vYmFzaCAteGVcbiAgICB5dW0gaW5zdGFsbCAteSBhd3MtY2ZuLWJvb3RzdHJhcFxuICAgIHN1ZG8gL29wdC9hd3MvYmluL2Nmbi1pbml0IC0tY29uZmlnc2V0cyBkZWZhdWx0IC12IC0tc3RhY2sgXFwke1N0YWNrTmFtZX0gLS1yZXNvdXJjZSBcXCR7UmVzb3VyY2V9IC0tcmVnaW9uIFxcJHtSZWdpb259XG4gICAgc3VkbyByZWJvb3RcbiAgYCwge1xuICAgIFN0YWNrTmFtZTogY2RrLkF3cy5TVEFDS19OQU1FLFxuICAgIFJlc291cmNlOiBsb2dpY2FsSWQsXG4gICAgUmVnaW9uOiBjZGsuQXdzLlJFR0lPTixcbiAgfSkpO1xuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFydEZsb3coc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZmxvd0Fybjogc3RyaW5nKTogRGF0ZSB7XG4gIC8vIFN0YXJ0IGNoYW5uZWxcbiAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHNjb3BlLCBpZCwge1xuICAgIG9uQ3JlYXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnTWVkaWFDb25uZWN0JyxcbiAgICAgIGFjdGlvbjogJ1N0YXJ0RmxvdycsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIEZsb3dBcm46IGZsb3dBcm4sXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoYCR7Y3J5cHRvLnJhbmRvbVVVSUQoKX1gKSxcbiAgICAgIC8vIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZzogJyonLFxuICAgICAgb3V0cHV0UGF0aHM6IFsnRmxvd0FybicsICdTdGF0dXMnXSxcbiAgICB9LFxuICAgIG9uRGVsZXRlOiB7XG4gICAgICBzZXJ2aWNlOiAnTWVkaWFDb25uZWN0JyxcbiAgICAgIGFjdGlvbjogJ1N0b3BGbG93JyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgRmxvd0FybjogZmxvd0FybixcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihgJHtjcnlwdG8ucmFuZG9tVVVJRCgpfWApLFxuICAgICAgLy8gaWdub3JlRXJyb3JDb2Rlc01hdGNoaW5nOiAnKicsXG4gICAgICBvdXRwdXRQYXRoczogWydGbG93QXJuJywgJ1N0YXR1cyddLFxuICAgIH0sXG4gICAgLy9XaWxsIGlnbm9yZSBhbnkgcmVzb3VyY2UgYW5kIHVzZSB0aGUgYXNzdW1lZFJvbGVBcm4gYXMgcmVzb3VyY2UgYW5kICdzdHM6QXNzdW1lUm9sZScgZm9yIHNlcnZpY2U6YWN0aW9uXG4gICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgcmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgfSksXG4gIH0pO1xuICByZXR1cm4gbmV3IERhdGUoKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@stylistic/eslint-plugin": "^2",
|
|
38
38
|
"@types/jest": "^30.0.0",
|
|
39
|
-
"@types/node": "^24.0.
|
|
39
|
+
"@types/node": "^24.0.10",
|
|
40
40
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
41
41
|
"@typescript-eslint/parser": "^8",
|
|
42
42
|
"commit-and-tag-version": "^12",
|
|
43
43
|
"eslint": "^9",
|
|
44
44
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
45
45
|
"eslint-plugin-import": "^2.32.0",
|
|
46
|
-
"jest": "^30.0.
|
|
46
|
+
"jest": "^30.0.4",
|
|
47
47
|
"jest-junit": "^16",
|
|
48
48
|
"jsii": "~5.8.10",
|
|
49
49
|
"jsii-diff": "^1.112.0",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"constructs": "^10.0.5"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"aws-cdk-lib": "^2.
|
|
64
|
-
"awscdk-construct-medialive-channel": "^0.0.
|
|
63
|
+
"aws-cdk-lib": "^2.204.0",
|
|
64
|
+
"awscdk-construct-medialive-channel": "^0.0.9",
|
|
65
65
|
"constructs": "^10.4.2"
|
|
66
66
|
},
|
|
67
67
|
"keywords": [
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public"
|
|
76
76
|
},
|
|
77
|
-
"version": "0.0.
|
|
77
|
+
"version": "0.0.6",
|
|
78
78
|
"jest": {
|
|
79
79
|
"coverageProvider": "v8",
|
|
80
80
|
"testMatch": [
|