@aws-cdk/aws-ec2-alpha 2.174.1-alpha.0 → 2.175.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +385 -223
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +19 -0
- package/lib/ipam.d.ts +12 -0
- package/lib/ipam.js +13 -3
- package/lib/route.d.ts +7 -1
- package/lib/route.js +38 -11
- package/lib/subnet-v2.js +18 -3
- package/lib/vpc-v2-base.d.ts +23 -0
- package/lib/vpc-v2-base.js +7 -2
- package/lib/vpc-v2.d.ts +5 -0
- package/lib/vpc-v2.js +10 -4
- package/package.json +7 -7
- package/rosetta/default.ts-fixture +1 -1
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/README.md
CHANGED
|
@@ -645,3 +645,22 @@ SubnetV2.fromSubnetV2Attributes(this, 'ImportedSubnet', {
|
|
|
645
645
|
```
|
|
646
646
|
|
|
647
647
|
By importing existing VPCs and subnets, you can easily integrate your existing AWS infrastructure with new resources created through CDK. This is particularly useful when you need to work with pre-existing network configurations or when you're migrating existing infrastructure to CDK.
|
|
648
|
+
|
|
649
|
+
### Tagging VPC and its components
|
|
650
|
+
|
|
651
|
+
By default, when a resource name is given to the construct, it automatically adds a tag with the key `Name` and the value set to the provided resource name. To add additional custom tags, use the Tag Manager, like this: `Tags.of(myConstruct).add('key', 'value');`.
|
|
652
|
+
|
|
653
|
+
For example, if the `vpcName` is set to `TestVpc`, the following code will add a tag to the VPC with `key: Name` and `value: TestVpc`.
|
|
654
|
+
|
|
655
|
+
```ts
|
|
656
|
+
|
|
657
|
+
const vpc = new VpcV2(this, 'VPC-integ-test-tag', {
|
|
658
|
+
primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),
|
|
659
|
+
enableDnsHostnames: true,
|
|
660
|
+
enableDnsSupport: true,
|
|
661
|
+
vpcName: 'CDKintegTestVPC',
|
|
662
|
+
});
|
|
663
|
+
|
|
664
|
+
// Add custom tags if needed
|
|
665
|
+
Tags.of(vpc).add('Environment', 'Production');
|
|
666
|
+
```
|
package/lib/ipam.d.ts
CHANGED
|
@@ -120,6 +120,12 @@ export interface PoolOptions {
|
|
|
120
120
|
* @default - required in case of an IPv6, throws an error if not provided.
|
|
121
121
|
*/
|
|
122
122
|
readonly awsService?: AwsServiceName;
|
|
123
|
+
/**
|
|
124
|
+
* IPAM Pool resource name to be used for tagging
|
|
125
|
+
*
|
|
126
|
+
* @default - autogenerated by CDK if not provided
|
|
127
|
+
*/
|
|
128
|
+
readonly ipamPoolName?: string;
|
|
123
129
|
}
|
|
124
130
|
/**
|
|
125
131
|
* Options to provision CIDRs to an IPAM pool.
|
|
@@ -254,6 +260,12 @@ export declare class Ipam extends Resource {
|
|
|
254
260
|
* List of scopes created under this IPAM
|
|
255
261
|
*/
|
|
256
262
|
readonly scopes: IIpamScopeBase[];
|
|
263
|
+
/**
|
|
264
|
+
* IPAM name to be used for tagging
|
|
265
|
+
* @default no tag specified
|
|
266
|
+
* @attribute IpamName
|
|
267
|
+
*/
|
|
268
|
+
readonly ipamName?: string;
|
|
257
269
|
constructor(scope: Construct, id: string, props?: IpamProps);
|
|
258
270
|
/**
|
|
259
271
|
* Function to add custom scope to an existing IPAM
|
package/lib/ipam.js
CHANGED
|
@@ -65,6 +65,7 @@ var IpamScopeType;
|
|
|
65
65
|
*/
|
|
66
66
|
IpamScopeType["CUSTOM"] = "custom";
|
|
67
67
|
})(IpamScopeType || (exports.IpamScopeType = IpamScopeType = {}));
|
|
68
|
+
const NAME_TAG = 'Name';
|
|
68
69
|
/**
|
|
69
70
|
* Creates new IPAM Pool
|
|
70
71
|
* Pools enable you to organize your IP addresses according to your routing and security needs
|
|
@@ -91,6 +92,10 @@ class IpamPool extends aws_cdk_lib_1.Resource {
|
|
|
91
92
|
if (props.addressFamily === AddressFamily.IP_V6 && !props.awsService) {
|
|
92
93
|
throw new Error('awsService is required when addressFamily is set to ipv6');
|
|
93
94
|
}
|
|
95
|
+
//Add tags to the IPAM Pool if name is provided
|
|
96
|
+
if (props.ipamPoolName) {
|
|
97
|
+
aws_cdk_lib_1.Tags.of(this).add(NAME_TAG, props.ipamPoolName);
|
|
98
|
+
}
|
|
94
99
|
this._ipamPool = new aws_ec2_1.CfnIPAMPool(this, id, {
|
|
95
100
|
addressFamily: props.addressFamily,
|
|
96
101
|
provisionedCidrs: props.ipv4ProvisionedCidrs?.map(cidr => ({ cidr })),
|
|
@@ -131,6 +136,7 @@ class IpamScope extends aws_cdk_lib_1.Resource {
|
|
|
131
136
|
this._ipamScope = new aws_ec2_1.CfnIPAMScope(scope, 'IpamScope', {
|
|
132
137
|
ipamId: props.ipamId,
|
|
133
138
|
});
|
|
139
|
+
aws_cdk_lib_1.Tags.of(this._ipamScope).add(NAME_TAG, props.ipamScopeName ?? 'CustomIpamScope');
|
|
134
140
|
this.scopeId = this._ipamScope.attrIpamScopeId;
|
|
135
141
|
this.scopeType = IpamScopeType.CUSTOM;
|
|
136
142
|
this.scope = scope;
|
|
@@ -190,10 +196,14 @@ class Ipam extends aws_cdk_lib_1.Resource {
|
|
|
190
196
|
}
|
|
191
197
|
throw error;
|
|
192
198
|
}
|
|
199
|
+
if (props?.ipamName) {
|
|
200
|
+
aws_cdk_lib_1.Tags.of(this).add(NAME_TAG, props.ipamName);
|
|
201
|
+
}
|
|
193
202
|
if (!props?.operatingRegion && !aws_cdk_lib_1.Stack.of(this).region) {
|
|
194
203
|
throw new Error('Please provide at least one operating region');
|
|
195
204
|
}
|
|
196
205
|
this.operatingRegions = props?.operatingRegion ?? [aws_cdk_lib_1.Stack.of(this).region];
|
|
206
|
+
this.ipamName = props?.ipamName;
|
|
197
207
|
this._ipam = new aws_ec2_1.CfnIPAM(this, 'Ipam', {
|
|
198
208
|
operatingRegions: this.operatingRegions ? this.operatingRegions.map(region => ({ regionName: region })) : [],
|
|
199
209
|
});
|
|
@@ -236,7 +246,7 @@ class Ipam extends aws_cdk_lib_1.Resource {
|
|
|
236
246
|
}
|
|
237
247
|
exports.Ipam = Ipam;
|
|
238
248
|
_a = JSII_RTTI_SYMBOL_1;
|
|
239
|
-
Ipam[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.Ipam", version: "2.
|
|
249
|
+
Ipam[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.Ipam", version: "2.175.0-alpha.0" };
|
|
240
250
|
/**
|
|
241
251
|
* Function to create IpamPool under scope
|
|
242
252
|
* @internal
|
|
@@ -250,7 +260,7 @@ function createIpamPool(scope, id, scopeOptions, poolOptions, scopeId) {
|
|
|
250
260
|
throw new Error(`The provided locale '${poolOptions.locale}' is not in the operating regions.`);
|
|
251
261
|
}
|
|
252
262
|
return new IpamPool(scope, id, {
|
|
253
|
-
ipamPoolName:
|
|
263
|
+
ipamPoolName: poolOptions.ipamPoolName,
|
|
254
264
|
addressFamily: poolOptions.addressFamily,
|
|
255
265
|
ipv4ProvisionedCidrs: poolOptions.ipv4ProvisionedCidrs,
|
|
256
266
|
ipamScopeId: scopeId,
|
|
@@ -259,4 +269,4 @@ function createIpamPool(scope, id, scopeOptions, poolOptions, scopeId) {
|
|
|
259
269
|
awsService: poolOptions.awsService,
|
|
260
270
|
});
|
|
261
271
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaURBQTBGO0FBRTFGLDZDQUEyRDtBQUUzRDs7Ozs7R0FLRztBQUNILElBQVksYUFZWDtBQVpELFdBQVksYUFBYTtJQUN2Qjs7O09BR0c7SUFDSCwrQkFBYyxDQUFBO0lBRWQ7OztPQUdHO0lBQ0gsK0JBQWMsQ0FBQTtBQUNoQixDQUFDLEVBWlcsYUFBYSw2QkFBYixhQUFhLFFBWXhCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksc0JBVVg7QUFWRCxXQUFZLHNCQUFzQjtJQUNoQzs7T0FFRztJQUNILHlDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxzQkFBc0Isc0NBQXRCLHNCQUFzQixRQVVqQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsNkJBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLDhCQUFkLGNBQWMsUUFLekI7QUF5QkQ7O0dBRUc7QUFDSCxJQUFZLGFBVVg7QUFWRCxXQUFZLGFBQWE7SUFDdkI7O09BRUc7SUFDSCxvQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILGtDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxhQUFhLDZCQUFiLGFBQWEsUUFVeEI7QUF3TkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxRQUFTLFNBQVEsc0JBQVE7SUF3QjdCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxrQkFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxF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TCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuSVBBTSwgQ2ZuSVBBTVBvb2wsIENmbklQQU1Qb29sQ2lkciwgQ2ZuSVBBTVNjb3BlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExhenksIE5hbWVzLCBSZXNvdXJjZSwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYWRkcmVzcyBmYW1pbHkgZm9yIElQIGFkZHJlc3NlcyBpbiBhbiBJUEFNIHBvb2wuXG4gKiBJUF9WNCAtIFJlcHJlc2VudHMgdGhlIElQdjQgYWRkcmVzcyBmYW1pbHkuXG4gKiBJUF9WNiAtIFJlcHJlc2VudHMgdGhlIElQdjYgYWRkcmVzcyBmYW1pbHkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWFkZHJlc3NmYW1pbHlcbiAqL1xuZXhwb3J0IGVudW0gQWRkcmVzc0ZhbWlseSB7XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBJUHY0IGFkZHJlc3MgZmFtaWx5LlxuICAgKiBBbGxvd2VkIHVuZGVyIHB1YmxpYyBhbmQgcHJpdmF0ZSBwb29sLlxuICAgKi9cbiAgSVBfVjQgPSAnaXB2NCcsXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIElQdjYgYWRkcmVzcyBmYW1pbHkuXG4gICAqIE9ubHkgYWxsb3dlZCB1bmRlciBwdWJsaWMgcG9vbC5cbiAgICovXG4gIElQX1Y2ID0gJ2lwdjYnLFxufVxuXG4vKipcbiAqIFRoZSBJUCBhZGRyZXNzIHNvdXJjZSBmb3IgcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAqIE9ubHkgdXNlZCBmb3IgcHJvdmlzaW9uaW5nIElQIGFkZHJlc3MgQ0lEUnMgdG8gcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sI2Nmbi1lYzItaXBhbXBvb2wtcHVibGljaXBzb3VyY2VcbiAqL1xuZXhwb3J0IGVudW0gSXBhbVBvb2xQdWJsaWNJcFNvdXJjZSB7XG4gIC8qKlxuICAgKiBCWU9JUCBJcHY2IHRvIGJlIHJlZ2lzdGVyZWQgdW5kZXIgSVBBTVxuICAgKi9cbiAgQllPSVAgPSAnYnlvaXAnLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSXB2NiByYW5nZVxuICAgKi9cbiAgQU1BWk9OID0gJ2FtYXpvbicsXG59XG5cbi8qKlxuICogTGltaXRzIHdoaWNoIHNlcnZpY2UgaW4gQVdTIHRoYXQgdGhlIHBvb2wgY2FuIGJlIHVzZWQgaW5cbiAqL1xuZXhwb3J0IGVudW0gQXdzU2VydmljZU5hbWUge1xuICAvKipcbiAgICogIEFsbG93cyB1c2VycyB0byB1c2Ugc3BhY2UgZm9yIEVsYXN0aWMgSVAgYWRkcmVzc2VzIGFuZCBWUENzXG4gICAqL1xuICBFQzIgPSAnZWMyJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNyZWF0ZSBhIG5ldyBJcGFtIGluIHRoZSBhY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVByb3BzIHtcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBSZWdpb25zIGZvciBhbiBJUEFNLlxuICAgKiBPcGVyYXRpbmcgUmVnaW9ucyBhcmUgQVdTIFJlZ2lvbnMgd2hlcmUgdGhlIElQQU0gaXMgYWxsb3dlZCB0byBtYW5hZ2UgSVAgYWRkcmVzcyBDSURSc1xuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvcGVyYXRpbmcgUmVnaW9ucywgc2VlIFtDcmVhdGUgYW4gSVBBTV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tLy92cGMvbGF0ZXN0L2lwYW0vY3JlYXRlLWlwYW0uaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIElQQU0gVXNlciBHdWlkZSogLlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtLmh0bWwjY2ZuLWVjMi1pcGFtLW9wZXJhdGluZ3JlZ2lvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTdGFjay5yZWdpb24gaWYgZGVmaW5lZCBpbiB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGluZ1JlZ2lvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIElQQU0gdGhhdCBjYW4gYmUgdXNlZCBmb3IgdGFnZ2luZyByZXNvdXJjZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIG5vIG5hbWUgcHJvdmlkZWQsIG5vIHRhZ3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgSVBBTVxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVmZXJzIHRvIHR3byBwb3NzaWJsZSBzY29wZSB0eXBlcyB1bmRlciBJUEFNXG4gKi9cbmV4cG9ydCBlbnVtIElwYW1TY29wZVR5cGUge1xuICAvKipcbiAgICogRGVmYXVsdCBzY29wZXMgY3JlYXRlZCBieSBJUEFNXG4gICAqL1xuICBERUZBVUxUID0gJ2RlZmF1bHQnLFxuXG4gIC8qKlxuICAgKiBDdXN0b20gc2NvcGUgY3JlYXRlZCB1c2luZyBtZXRob2RcbiAgICovXG4gIENVU1RPTSA9ICdjdXN0b20nLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIGFuIElQQU0gcG9vbC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvb2xPcHRpb25zIHtcblxuICAvKipcbiAgICogYWRkcmVzc0ZhbWlseSAtIFRoZSBhZGRyZXNzIGZhbWlseSBvZiB0aGUgcG9vbCAoaXB2NCBvciBpcHY2KS5cbiAgICovXG4gIHJlYWRvbmx5IGFkZHJlc3NGYW1pbHk6IEFkZHJlc3NGYW1pbHk7XG5cbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBDSURScyBwcm92aXNpb25lZCB0byB0aGUgcG9vbC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBDSURScyBhcmUgcHJvdmlzaW9uZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwdjRQcm92aXNpb25lZENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgKEFXUyBSZWdpb24pIG9mIHRoZSBwb29sLiBTaG91bGQgYmUgb25lIG9mIHRoZSBJUEFNIG9wZXJhdGluZyByZWdpb24uXG4gICAqICBPbmx5IHJlc291cmNlcyBpbiB0aGUgc2FtZSBSZWdpb24gYXMgdGhlIGxvY2FsZSBvZiB0aGUgcG9vbCBjYW4gZ2V0IElQIGFkZHJlc3MgYWxsb2NhdGlvbnMgZnJvbSB0aGUgcG9vbC5cbiAgICogWW91IGNhbiBvbmx5IGFsbG9jYXRlIGEgQ0lEUiBmb3IgYSBWUEMsIGZvciBleGFtcGxlLCBmcm9tIGFuIElQQU0gcG9vbCB0aGF0IHNoYXJlcyBhIGxvY2FsZSB3aXRoIHRoZSBWUEPigJlzIFJlZ2lvbi5cbiAgICogTm90ZSB0aGF0IG9uY2UgeW91IGNob29zZSBhIExvY2FsZSBmb3IgYSBwb29sLCB5b3UgY2Fubm90IG1vZGlmeSBpdC4gSWYgeW91IGNob29zZSBhbiBBV1MgUmVnaW9uIGZvciBsb2NhbGUgdGhhdCBoYXMgbm90IGJlZW4gY29uZmlndXJlZCBhcyBhbiBvcGVyYXRpbmcgUmVnaW9uIGZvciB0aGUgSVBBTSwgeW91J2xsIGdldCBhbiBlcnJvci5cbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWxvY2FsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEN1cnJlbnQgb3BlcmF0aW5nIHJlZ2lvbiBvZiBJUEFNXG4gICAqL1xuICByZWFkb25seSBsb2NhbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJUCBhZGRyZXNzIHNvdXJjZSBmb3IgcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAgICogT25seSB1c2VkIGZvciBJUHY2IGFkZHJlc3NcbiAgICogT25seSBhbGxvd2VkIHZhbHVlcyB0byB0aGlzIGFyZSAnYnlvaXAnIG9yICdhbWF6b24nXG4gICAqXG4gICAqIEBkZWZhdWx0IGFtYXpvblxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljSXBTb3VyY2U/OiBJcGFtUG9vbFB1YmxpY0lwU291cmNlO1xuXG4gIC8qKlxuICAqIExpbWl0cyB3aGljaCBzZXJ2aWNlIGluIEFXUyB0aGF0IHRoZSBwb29sIGNhbiBiZSB1c2VkIGluLlxuICAqXG4gICogXCJlYzJcIiwgZm9yIGV4YW1wbGUsIGFsbG93cyB1c2VycyB0byB1c2Ugc3BhY2UgZm9yIEVsYXN0aWMgSVAgYWRkcmVzc2VzIGFuZCBWUENzLlxuICAqXG4gICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWF3c3NlcnZpY2VcbiAgKlxuICAqIEBkZWZhdWx0IC0gcmVxdWlyZWQgaW4gY2FzZSBvZiBhbiBJUHY2LCB0aHJvd3MgYW4gZXJyb3IgaWYgbm90IHByb3ZpZGVkLlxuICAqL1xuICByZWFkb25seSBhd3NTZXJ2aWNlPzogQXdzU2VydmljZU5hbWU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYW4gSVBBTSBwb29sLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWxcbiAqL1xuaW50ZXJmYWNlIElwYW1Qb29sUHJvcHMgZXh0ZW5kcyBQb29sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTY29wZSBpZCB3aGVyZSBwb29sIG5lZWRzIHRvIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1TY29wZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQQU0gcmVzb3VyY2UgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG9nZW5lcmF0ZWQgYnkgQ0RLIGlmIG5vdCBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVBvb2xOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gcHJvdmlzaW9uIENJRFJzIHRvIGFuIElQQU0gcG9vbC5cbiAqIFVzZWQgdG8gY3JlYXRlIGEgbmV3IElwYW1Qb29sQ2lkclxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sY2lkci5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVBvb2xDaWRyUHJvdmlzaW9uaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJcHY2IE5ldG1hc2sgbGVuZ3RoIGZvciB0aGUgQ0lEUlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHBvb2wgcHJvdmlzaW9uZWQgd2l0aG91dCBuZXRtYXNrIGxlbmd0aCwgbmVlZCBjaWRyIHJhbmdlIGluIHRoaXMgY2FzZVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NiBDSURSIGJsb2NrIGZvciB0aGUgSVBBTSBwb29sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcG9vbCBwcm92aXNpb25lZCB3aXRob3V0IG5ldG1hc2sgbGVuZ3RoLCBuZWVkIG5ldG1hc2sgbGVuZ3RoIGluIHRoaXMgY2FzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2lkcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbml0aW9uIHVzZWQgdG8gYWRkIG9yIGNyZWF0ZSBhIG5ldyBJUEFNIHBvb2xcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXBhbVBvb2wge1xuICAvKipcbiAqIFBvb2wgSUQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWUEMgY29uc3RydWN0XG4gKiBAYXR0cmlidXRlIElwYW1Qb29sSWRcbiAqL1xuICByZWFkb25seSBpcGFtUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBvb2wgQ0lEUiBmb3IgSVB2NiB0byBiZSBwcm92aXNpb25lZCB3aXRoIFB1YmxpYyBJUCBzb3VyY2Ugc2V0IHRvICdBbWF6b24nXG4gICAqL1xuICByZWFkb25seSBpcGFtQ2lkcnM6IENmbklQQU1Qb29sQ2lkcltdO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjQgdG8gYmUgcHJvdmlzaW9uZWQgdXNpbmcgSVBBTVxuICAgKiBSZXF1aXJlZCB0byBjaGVjayBmb3Igc3VibmV0IElQIHJhbmdlIGlzIHdpdGhpbiB0aGUgVlBDIHJhbmdlXG4gICAqL1xuICByZWFkb25seSBpcGFtSXB2NENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBhIElQdjYgYWRkcmVzcyB3aXRoIElQQU0gcG9vbFxuICAgKi9cbiAgcHJvdmlzaW9uQ2lkcihpZDogc3RyaW5nLCBvcHRpb25zOiBJcGFtUG9vbENpZHJQcm92aXNpb25pbmdPcHRpb25zKTogQ2ZuSVBBTVBvb2xDaWRyO1xuXG59XG5cbi8qKlxuICogSVBBTSBzY29wZSBpcyB0aGUgaGlnaGVzdC1sZXZlbCBjb250YWluZXIgd2l0aGluIElQQU0uIEFuIElQQU0gY29udGFpbnMgdHdvIGRlZmF1bHQgc2NvcGVzLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1zY29wZS5odG1sXG4gKi9cbmludGVyZmFjZSBJcGFtU2NvcGVQcm9wcyBleHRlbmRzIElwYW1TY29wZU9wdGlvbnMge1xuICAvKipcbiAgICogSVBBTSBpZCB0byB3aGljaCBzY29wZSBuZWVkcyB0byBiZSBhZGRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wZXJhdGluZyByZWdpb25zIGZvciB0aGUgSXBhbVxuICAgKiBSZXF1aXJlZCBpbiBvcmRlciB0byB2YWxpZGF0ZSB0aGUgbG9jYWxlIGJlaW5nIHNldCBvbiBwb29sXG4gICAqL1xuICByZWFkb25seSBpcGFtT3BlcmF0aW5nUmVnaW9uczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBpcGFtIHNjb3BlIGlkIHRvIGFkZCBhIHBvb2wgaW4gb3JkZXIgdG8gc3VwcG9ydCBkZWZhdWx0IHNjb3Blc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRocm93cyBhbiBlcnJvciBpZiBubyBzY29wZSBpZCBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVNjb3BlSWQ/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBCZWluZyB1c2VkIGluIElQQU0gY2xhc3MgdG8gYWRkIHBvb2xzIHRvIGRlZmF1bHQgc2NvcGUgY3JlYXRlZCBieSBJUEFNLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwYW1TY29wZU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBJUEFNIHNjb3BlIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRhZ2dpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB0YWdzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNjb3BlXG4gICAqL1xuICByZWFkb25seSBpcGFtU2NvcGVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIGFuIElQIEFkZHJlc3MgTWFuYWdlciAoSVBBTSkuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbS5odG1sfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIENJRFIgTWFzayBmb3IgVnBjXG4gICAqIE9ubHkgcmVxdWlyZWQgd2hlbiB1c2luZyBBV1MgSXBhbVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldG1hc2sgbGVuZ3RoIGZvciBJUEFNIGF0dGFjaGVkIHRvIFZQQyBzZWNvbmRhcnkgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgbmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NCBvciBhbiBJcHY2IElQQU0gcG9vbFxuICAgKiBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgQVdTIElwYW1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwb29sIGF0dGFjaGVkIHRvIFZQQyBzZWNvbmRhcnkgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVBvb2w/OiBJSXBhbVBvb2w7XG5cbiAgLyoqXG4gICAqIFJlcXVpcmVkIHRvIHNldCBTZWNvbmRhcnkgY2lkciBibG9jayByZXNvdXJjZSBuYW1lXG4gICAqIGluIG9yZGVyIHRvIGdlbmVyYXRlIHVuaXF1ZSBsb2dpY2FsIGlkIGZvciB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBjaWRyQmxvY2tOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBJcGFtU2NvcGUgQ2xhc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXBhbVNjb3BlQmFzZSB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBzY29wZSBvZiBzdGFjayB0byBiZSBwYXNzZWQgaW4gb3JkZXIgdG8gY3JlYXRlXG4gICAqIGEgbmV3IElQQU0gcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogRGVmYXVsdCBTY29wZSBpZHMgY3JlYXRlZCBieSB0aGUgSVBBTSBvciBhIG5ldyBSZXNvdXJjZSBpZFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHNjb3BlIHR5cGUgY2FuIGJlIGVpdGhlciBkZWZhdWx0IG9yIGN1c3RvbVxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVUeXBlPzogSXBhbVNjb3BlVHlwZTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gYWRkIGEgbmV3IHBvb2wgdG8gYW4gSVBBTSBzY29wZVxuICAgKi9cbiAgYWRkUG9vbChpZDogc3RyaW5nLCBvcHRpb25zOiBQb29sT3B0aW9ucyk6IElJcGFtUG9vbDtcblxufVxuXG4vKipcbiAqIENyZWF0ZXMgbmV3IElQQU0gUG9vbFxuICogUG9vbHMgZW5hYmxlIHlvdSB0byBvcmdhbml6ZSB5b3VyIElQIGFkZHJlc3NlcyBhY2NvcmRpbmcgdG8geW91ciByb3V0aW5nIGFuZCBzZWN1cml0eSBuZWVkc1xuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWxcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6SVBBTVBvb2xcbiAqIEBpbnRlcm5hbFxuICovXG5jbGFzcyBJcGFtUG9vbCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUlwYW1Qb29sIHtcblxuICAvKipcbiAgICogUG9vbCBJRCB0byBiZSBwYXNzZWQgdG8gdGhlIFZQQyBjb25zdHJ1Y3RcbiAgICogQGF0dHJpYnV0ZSBJcGFtUG9vbElkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBhbVBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjYgdG8gYmUgcHJvdmlzaW9uZWQgd2l0aCBQdWJsaWMgSVAgc291cmNlIHNldCB0byAnQW1hem9uJ1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1DaWRyczogQ2ZuSVBBTVBvb2xDaWRyW10gPSBbXTtcblxuICAvKipcbiAgICogUG9vbCBDSURSIGZvciBJUHY0IHRvIGJlIHByb3Zpc2lvbmVkIHVzaW5nIElQQU1cbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIHN1Ym5ldCBJUCByYW5nZSBpcyB3aXRoaW4gdGhlIFZQQyByYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1JcHY0Q2lkcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBpcGFtUG9vbCByZXNvdXJjZSBjcmVhdGVkIGluIHRoaXMgY2xhc3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lwYW1Qb29sOiBDZm5JUEFNUG9vbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSXBhbVBvb2xQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5pcGFtUG9vbE5hbWUgPz8gTGF6eS5zdHJpbmcoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDEyOCwgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnXycgfSksXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5hZGRyZXNzRmFtaWx5ID09PSBBZGRyZXNzRmFtaWx5LklQX1Y2ICYmICFwcm9wcy5hd3NTZXJ2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F3c1NlcnZpY2UgaXMgcmVxdWlyZWQgd2hlbiBhZGRyZXNzRmFtaWx5IGlzIHNldCB0byBpcHY2Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5faXBhbVBvb2wgPSBuZXcgQ2ZuSVBBTVBvb2wodGhpcywgaWQsIHtcbiAgICAgIGFkZHJlc3NGYW1pbHk6IHByb3BzLmFkZHJlc3NGYW1pbHksXG4gICAgICBwcm92aXNpb25lZENpZHJzOiBwcm9wcy5pcHY0UHJvdmlzaW9uZWRDaWRycz8ubWFwKGNpZHIgPT4gKHsgY2lkciB9KSksXG4gICAgICBsb2NhbGU6IHByb3BzLmxvY2FsZSxcbiAgICAgIGlwYW1TY29wZUlkOiBwcm9wcy5pcGFtU2NvcGVJZCxcbiAgICAgIHB1YmxpY0lwU291cmNlOiBwcm9wcy5wdWJsaWNJcFNvdXJjZSxcbiAgICAgIGF3c1NlcnZpY2U6IHByb3BzLmF3c1NlcnZpY2UsXG4gICAgfSk7XG4gICAgdGhpcy5pcGFtUG9vbElkID0gdGhpcy5faXBhbVBvb2wuYXR0cklwYW1Qb29sSWQ7XG5cbiAgICAvLyBQb3B1bGF0aW5nIHRvIGNoZWNrIGZvciBzdWJuZXQgcmFuZ2UgYWdhaW5zdCBhbGwgSVB2NCByYW5nZXMgYXNzaWduZWQgdG8gVlBDIGluY2x1ZGluZyBJUEFNXG4gICAgcHJvcHMuaXB2NFByb3Zpc2lvbmVkQ2lkcnM/Lm1hcChjaWRyID0+ICh0aGlzLmlwYW1JcHY0Q2lkcnMucHVzaChjaWRyKSkpO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLl9pcGFtUG9vbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIENJRFIgcHJvdmlzaW9uZWQgdG8gYW4gSVBBTSBwb29sLlxuICAgKiBAcGFyYW0gaWQgTmFtZSBvZiBSZXNvdXJjZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgYSBDSURSIG9yIG5ldG1hc2sgbGVuZ3RoIG11c3QgYmUgcHJvdmlkZWRcbiAgICogQHJldHVybnMgQVdTOjpFQzI6OklQQU1Qb29sQ2lkclxuICAgKi9cbiAgcHVibGljIHByb3Zpc2lvbkNpZHIoaWQ6IHN0cmluZywgb3B0aW9uczogSXBhbVBvb2xDaWRyUHJvdmlzaW9uaW5nT3B0aW9ucyk6IENmbklQQU1Qb29sQ2lkciB7XG4gICAgY29uc3QgY2lkciA9IG5ldyBDZm5JUEFNUG9vbENpZHIodGhpcywgaWQsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBpcGFtUG9vbElkOiB0aGlzLmlwYW1Qb29sSWQsXG4gICAgfSk7XG4gICAgdGhpcy5pcGFtQ2lkcnMucHVzaChjaWRyKTtcbiAgICByZXR1cm4gY2lkcjtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgY3VzdG9tIElwYW0gU2NvcGUsIGN1c3RvbSBJUEFNIHNjb3BlcyBjYW4gb25seSBiZSBwcml2YXRlXG4gKiAoY2FuIGJlIHVzZWQgZm9yIGFkZGluZyBjdXN0b20gc2NvcGVzIHRvIGFuIGV4aXN0aW5nIElQQU0pXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXNjb3BlLmh0bWxcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6SVBBTVNjb3BlXG4gKi9cbmNsYXNzIElwYW1TY29wZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUlwYW1TY29wZUJhc2Uge1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIHJlZmVyZW5jZSB0byBuZXdseSBjcmVhdGVkIFJlc291cmNlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9pcGFtU2NvcGU6IENmbklQQU1TY29wZTtcblxuICAvKipcbiAgICogSUQgZm9yIFJlc291cmNlIElwYW1TY29wZVxuICAgKiBAYXR0cmlidXRlIElwYW1TY29wZUlkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NvcGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyZSBpcGFtIHNjb3BlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBJcGFtU2NvcGVQcm9wcztcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHN0YWNrIHNjb3BlIHRvIGJlIHBhc3NlZCB0aHJvdWdoIGFkZFBvb2wgbWV0aG9kIGlub3JkZXIgdG8gY3JlYXRlIGEgbmV3IElwYW1Qb29sXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogRGVmaW5lcyBzY29wZSB0eXBlIGNhbiBiZSBlaXRoZXIgZGVmYXVsdCBvciBjdXN0b21cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY29wZVR5cGU6IElwYW1TY29wZVR5cGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1TY29wZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLl9pcGFtU2NvcGUgPSBuZXcgQ2ZuSVBBTVNjb3BlKHNjb3BlLCAnSXBhbVNjb3BlJywge1xuICAgICAgaXBhbUlkOiBwcm9wcy5pcGFtSWQsXG4gICAgfSk7XG4gICAgdGhpcy5zY29wZUlkID0gdGhpcy5faXBhbVNjb3BlLmF0dHJJcGFtU2NvcGVJZDtcbiAgICB0aGlzLnNjb3BlVHlwZSA9IElwYW1TY29wZVR5cGUuQ1VTVE9NO1xuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHBvb2wgdG8gdGhlIElQQU0gc2NvcGUuXG4gICAqIEBleHRlcm5hbFxuICAgKi9cbiAgYWRkUG9vbChpZDogc3RyaW5nLCBvcHRpb25zOiBQb29sT3B0aW9ucyk6IElJcGFtUG9vbCB7XG4gICAgcmV0dXJuIGNyZWF0ZUlwYW1Qb29sKHRoaXMuc2NvcGUsIGlkLCB0aGlzLnByb3BzLCBvcHRpb25zLCB0aGlzLnNjb3BlSWQpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBJUEFNIGRlZmF1bHQgc2NvcGVzLlxuICovXG5jbGFzcyBJcGFtU2NvcGVCYXNlIGltcGxlbWVudHMgSUlwYW1TY29wZUJhc2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBzY29wZTogQ29uc3RydWN0LFxuICAgIHJlYWRvbmx5IHNjb3BlSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBJcGFtU2NvcGVQcm9wcyxcbiAgICByZWFkb25seSBzY29wZVR5cGU/OiBJcGFtU2NvcGVUeXBlLFxuICApIHtcbiAgICB0aGlzLnNjb3BlVHlwZSA9IElwYW1TY29wZVR5cGUuREVGQVVMVDtcbiAgICBpZiAoIXByb3BzLmlwYW1TY29wZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lwYW1TY29wZUlkIGlzIHJlcXVpcmVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2NvcGVJZCA9IHByb3BzLmlwYW1TY29wZUlkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcG9vbCB0byB0aGUgSVBBTSBzY29wZS5cbiAgICogQGV4dGVybmFsXG4gICAqL1xuICBhZGRQb29sKGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBvb2xPcHRpb25zKTogSUlwYW1Qb29sIHtcbiAgICByZXR1cm4gY3JlYXRlSXBhbVBvb2wodGhpcy5zY29wZSwgaWQsIHRoaXMucHJvcHMsIG9wdGlvbnMsIHRoaXMuc2NvcGVJZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIG5ldyBJUEFNIHdpdGggZGVmYXVsdCBwdWJsaWMgYW5kIHByaXZhdGUgc2NvcGVcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICogQHJlc291cmNlIEFXUzo6RUMyOjpJUEFNXG4gKi9cbmV4cG9ydCBjbGFzcyBJcGFtIGV4dGVuZHMgUmVzb3VyY2Uge1xuICAvKipcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBkZWZhdWx0IHB1YmxpYyBJUEFNIHNjb3BlIHRocm91Z2ggYWRkIHBvb2wgbWV0aG9kLlxuICogVXNhZ2U6IFRvIGFkZCBhbiBJcGFtIFBvb2wgdG8gYSBkZWZhdWx0IHB1YmxpYyBzY29wZVxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1zY29wZS5odG1sXG4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHB1YmxpY1Njb3BlOiBJSXBhbVNjb3BlQmFzZTtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYWNjZXNzIHRvIGRlZmF1bHQgcHJpdmF0ZSBJUEFNIHNjb3BlIHRocm91Z2ggYWRkIHBvb2wgbWV0aG9kLlxuICAgKiBVc2FnZTogVG8gYWRkIGFuIElwYW0gUG9vbCB0byBhIGRlZmF1bHQgcHJpdmF0ZSBzY29wZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXNjb3BlLmh0bWxcbiAgICogKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGVTY29wZTogSUlwYW1TY29wZUJhc2U7XG5cbiAgLy8gUmVzb3VyY2UgSVBBTVxuICBwcml2YXRlIHJlYWRvbmx5IF9pcGFtOiBDZm5JUEFNO1xuICAvKipcbiAgICogQWNjZXNzIHRvIElwYW0gcmVzb3VyY2UgaWQgdGhhdCBjYW4gYmUgdXNlZCBsYXRlciB0byBhZGQgYSBjdXN0b20gcHJpdmF0ZSBzY29wZSB0byB0aGlzIElQQU1cbiAgICogQGF0dHJpYnV0ZSBJcGFtSWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcGFtSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBvcGVyYXRpbmcgcmVnaW9ucyBmb3IgSVBBTVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdGluZ1JlZ2lvbnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHNjb3BlcyBjcmVhdGVkIHVuZGVyIHRoaXMgSVBBTVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlczogSUlwYW1TY29wZUJhc2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSXBhbVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghcHJvcHM/Lm9wZXJhdGluZ1JlZ2lvbiAmJiAhU3RhY2sub2YodGhpcykucmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBwcm92aWRlIGF0IGxlYXN0IG9uZSBvcGVyYXRpbmcgcmVnaW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVyYXRpbmdSZWdpb25zID0gcHJvcHM/Lm9wZXJhdGluZ1JlZ2lvbiA/PyBbU3RhY2sub2YodGhpcykucmVnaW9uXTtcblxuICAgIHRoaXMuX2lwYW0gPSBuZXcgQ2ZuSVBBTSh0aGlzLCAnSXBhbScsIHtcbiAgICAgIG9wZXJhdGluZ1JlZ2lvbnM6IHRoaXMub3BlcmF0aW5nUmVnaW9ucyA/IHRoaXMub3BlcmF0aW5nUmVnaW9ucy5tYXAocmVnaW9uID0+ICh7IHJlZ2lvbk5hbWU6IHJlZ2lvbiB9KSkgOiBbXSxcbiAgICB9KTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5faXBhbTtcblxuICAgIHRoaXMuaXBhbUlkID0gdGhpcy5faXBhbS5hdHRySXBhbUlkO1xuICAgIHRoaXMucHVibGljU2NvcGUgPSBuZXcgSXBhbVNjb3BlQmFzZSh0aGlzLCAnRGVmYXVsdFB1YmxpY1Njb3BlJywge1xuICAgICAgaXBhbU9wZXJhdGluZ1JlZ2lvbnM6IHRoaXMub3BlcmF0aW5nUmVnaW9ucyxcbiAgICAgIGlwYW1JZDogdGhpcy5faXBhbS5hdHRySXBhbUlkLFxuICAgICAgaXBhbVNjb3BlSWQ6IHRoaXMuX2lwYW0uYXR0clB1YmxpY0RlZmF1bHRTY29wZUlkLFxuICAgIH0pO1xuICAgIHRoaXMucHJpdmF0ZVNjb3BlID0gbmV3IElwYW1TY29wZUJhc2UodGhpcywgJ0RlZmF1bHRQcml2YXRlU2NvcGUnLCB7XG4gICAgICBpcGFtT3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zLFxuICAgICAgaXBhbUlkOiB0aGlzLl9pcGFtLmF0dHJJcGFtSWQsXG4gICAgICBpcGFtU2NvcGVJZDogdGhpcy5faXBhbS5hdHRyUHJpdmF0ZURlZmF1bHRTY29wZUlkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zY29wZXMucHVzaCh0aGlzLnB1YmxpY1Njb3BlLCB0aGlzLnByaXZhdGVTY29wZSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBhZGQgY3VzdG9tIHNjb3BlIHRvIGFuIGV4aXN0aW5nIElQQU1cbiAgICogQ3VzdG9tIHNjb3BlcyBjYW4gb25seSBiZSBwcml2YXRlXG4gICAqL1xuICBwdWJsaWMgYWRkU2NvcGUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogSXBhbVNjb3BlT3B0aW9ucyk6IElJcGFtU2NvcGVCYXNlIHtcbiAgICBjb25zdCBpcGFtU2NvcGUgPSBuZXcgSXBhbVNjb3BlKHNjb3BlLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlwYW1JZDogdGhpcy5pcGFtSWQsXG4gICAgICBpcGFtT3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zLFxuICAgIH0pO1xuICAgIHRoaXMuc2NvcGVzLnB1c2goaXBhbVNjb3BlKTtcbiAgICByZXR1cm4gaXBhbVNjb3BlO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gY3JlYXRlIElwYW1Qb29sIHVuZGVyIHNjb3BlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSXBhbVBvb2woXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHNjb3BlT3B0aW9uczogSXBhbVNjb3BlUHJvcHMsXG4gIHBvb2xPcHRpb25zOiBQb29sT3B0aW9ucyxcbiAgc2NvcGVJZDogc3RyaW5nLFxuKTogSXBhbVBvb2wge1xuICBjb25zdCBpc0xvY2FsZUluT3BlcmF0aW5nUmVnaW9ucyA9IHNjb3BlT3B0aW9ucy5pcGFtT3BlcmF0aW5nUmVnaW9uc1xuICAgID8gc2NvcGVPcHRpb25zLmlwYW1PcGVyYXRpbmdSZWdpb25zLm1hcChyZWdpb24gPT4gKHsgcmVnaW9uTmFtZTogcmVnaW9uIH0pKVxuICAgICAgLnNvbWUocmVnaW9uID0+IHJlZ2lvbi5yZWdpb25OYW1lID09PSBwb29sT3B0aW9ucy5sb2NhbGUpXG4gICAgOiBmYWxzZTtcblxuICBpZiAoIWlzTG9jYWxlSW5PcGVyYXRpbmdSZWdpb25zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvdmlkZWQgbG9jYWxlICcke3Bvb2xPcHRpb25zLmxvY2FsZX0nIGlzIG5vdCBpbiB0aGUgb3BlcmF0aW5nIHJlZ2lvbnMuYCk7XG4gIH1cblxuICByZXR1cm4gbmV3IElwYW1Qb29sKHNjb3BlLCBpZCwge1xuICAgIGlwYW1Qb29sTmFtZTogaWQsXG4gICAgYWRkcmVzc0ZhbWlseTogcG9vbE9wdGlvbnMuYWRkcmVzc0ZhbWlseSxcbiAgICBpcHY0UHJvdmlzaW9uZWRDaWRyczogcG9vbE9wdGlvbnMuaXB2NFByb3Zpc2lvbmVkQ2lkcnMsXG4gICAgaXBhbVNjb3BlSWQ6IHNjb3BlSWQsXG4gICAgbG9jYWxlOiBwb29sT3B0aW9ucy5sb2NhbGUsXG4gICAgcHVibGljSXBTb3VyY2U6IHBvb2xPcHRpb25zLnB1YmxpY0lwU291cmNlLFxuICAgIGF3c1NlcnZpY2U6IHBvb2xPcHRpb25zLmF3c1NlcnZpY2UsXG4gIH0pO1xufVxuXG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaURBQTBGO0FBRTFGLDZDQUFpRTtBQUVqRTs7Ozs7R0FLRztBQUNILElBQVksYUFZWDtBQVpELFdBQVksYUFBYTtJQUN2Qjs7O09BR0c7SUFDSCwrQkFBYyxDQUFBO0lBRWQ7OztPQUdHO0lBQ0gsK0JBQWMsQ0FBQTtBQUNoQixDQUFDLEVBWlcsYUFBYSw2QkFBYixhQUFhLFFBWXhCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksc0JBVVg7QUFWRCxXQUFZLHNCQUFzQjtJQUNoQzs7T0FFRztJQUNILHlDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxzQkFBc0Isc0NBQXRCLHNCQUFzQixRQVVqQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsNkJBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLDhCQUFkLGNBQWMsUUFLekI7QUF5QkQ7O0dBRUc7QUFDSCxJQUFZLGFBVVg7QUFWRCxXQUFZLGFBQWE7SUFDdkI7O09BRUc7SUFDSCxvQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILGtDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxhQUFhLDZCQUFiLGFBQWEsUUFVeEI7QUE0REQsTUFBTSxRQUFRLEdBQVcsTUFBTSxDQUFDO0FBOEpoQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFFBQVMsU0FBUSxzQkFBUTtJQXdCN0IsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLGtCQUFJLENBQUMsTUFBTSxDQUFDO2dCQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQUssQ0FBQyxr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SSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzNELENBQUMsQ0FBQyxLQUFLLENBQUM7SUFFVixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixXQUFXLENBQUMsTUFBTSxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDN0IsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO1FBQ3RDLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYTtRQUN4QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO1FBQ3RELFdBQVcsRUFBRSxPQUFPO1FBQ3BCLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMxQixjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWM7UUFDMUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5JUEFNLCBDZm5JUEFNUG9vbCwgQ2ZuSVBBTVBvb2xDaWRyLCBDZm5JUEFNU2NvcGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTGF6eSwgTmFtZXMsIFJlc291cmNlLCBTdGFjaywgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBhZGRyZXNzIGZhbWlseSBmb3IgSVAgYWRkcmVzc2VzIGluIGFuIElQQU0gcG9vbC5cbiAqIElQX1Y0IC0gUmVwcmVzZW50cyB0aGUgSVB2NCBhZGRyZXNzIGZhbWlseS5cbiAqIElQX1Y2IC0gUmVwcmVzZW50cyB0aGUgSVB2NiBhZGRyZXNzIGZhbWlseS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sI2Nmbi1lYzItaXBhbXBvb2wtYWRkcmVzc2ZhbWlseVxuICovXG5leHBvcnQgZW51bSBBZGRyZXNzRmFtaWx5IHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIElQdjQgYWRkcmVzcyBmYW1pbHkuXG4gICAqIEFsbG93ZWQgdW5kZXIgcHVibGljIGFuZCBwcml2YXRlIHBvb2wuXG4gICAqL1xuICBJUF9WNCA9ICdpcHY0JyxcblxuICAvKipcbiAgICogUmVwcmVzZW50cyB0aGUgSVB2NiBhZGRyZXNzIGZhbWlseS5cbiAgICogT25seSBhbGxvd2VkIHVuZGVyIHB1YmxpYyBwb29sLlxuICAgKi9cbiAgSVBfVjYgPSAnaXB2NicsXG59XG5cbi8qKlxuICogVGhlIElQIGFkZHJlc3Mgc291cmNlIGZvciBwb29scyBpbiB0aGUgcHVibGljIHNjb3BlLlxuICogT25seSB1c2VkIGZvciBwcm92aXNpb25pbmcgSVAgYWRkcmVzcyBDSURScyB0byBwb29scyBpbiB0aGUgcHVibGljIHNjb3BlLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWwjY2ZuLWVjMi1pcGFtcG9vbC1wdWJsaWNpcHNvdXJjZVxuICovXG5leHBvcnQgZW51bSBJcGFtUG9vbFB1YmxpY0lwU291cmNlIHtcbiAgLyoqXG4gICAqIEJZT0lQIElwdjYgdG8gYmUgcmVnaXN0ZXJlZCB1bmRlciBJUEFNXG4gICAqL1xuICBCWU9JUCA9ICdieW9pcCcsXG5cbiAgLyoqXG4gICAqIEFtYXpvbiBQcm92aWRlZCBJcHY2IHJhbmdlXG4gICAqL1xuICBBTUFaT04gPSAnYW1hem9uJyxcbn1cblxuLyoqXG4gKiBMaW1pdHMgd2hpY2ggc2VydmljZSBpbiBBV1MgdGhhdCB0aGUgcG9vbCBjYW4gYmUgdXNlZCBpblxuICovXG5leHBvcnQgZW51bSBBd3NTZXJ2aWNlTmFtZSB7XG4gIC8qKlxuICAgKiAgQWxsb3dzIHVzZXJzIHRvIHVzZSBzcGFjZSBmb3IgRWxhc3RpYyBJUCBhZGRyZXNzZXMgYW5kIFZQQ3NcbiAgICovXG4gIEVDMiA9ICdlYzInLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY3JlYXRlIGEgbmV3IElwYW0gaW4gdGhlIGFjY291bnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtUHJvcHMge1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW5nIFJlZ2lvbnMgZm9yIGFuIElQQU0uXG4gICAqIE9wZXJhdGluZyBSZWdpb25zIGFyZSBBV1MgUmVnaW9ucyB3aGVyZSB0aGUgSVBBTSBpcyBhbGxvd2VkIHRvIG1hbmFnZSBJUCBhZGRyZXNzIENJRFJzXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG9wZXJhdGluZyBSZWdpb25zLCBzZWUgW0NyZWF0ZSBhbiBJUEFNXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vL3ZwYy9sYXRlc3QvaXBhbS9jcmVhdGUtaXBhbS5odG1sKSBpbiB0aGUgKkFtYXpvbiBWUEMgSVBBTSBVc2VyIEd1aWRlKiAuXG4gICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW0uaHRtbCNjZm4tZWMyLWlwYW0tb3BlcmF0aW5ncmVnaW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFN0YWNrLnJlZ2lvbiBpZiBkZWZpbmVkIGluIHRoZSBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW5nUmVnaW9uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgSVBBTSB0aGF0IGNhbiBiZSB1c2VkIGZvciB0YWdnaW5nIHJlc291cmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSWYgbm8gbmFtZSBwcm92aWRlZCwgbm8gdGFncyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBJUEFNXG4gICAqL1xuICByZWFkb25seSBpcGFtTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWZlcnMgdG8gdHdvIHBvc3NpYmxlIHNjb3BlIHR5cGVzIHVuZGVyIElQQU1cbiAqL1xuZXhwb3J0IGVudW0gSXBhbVNjb3BlVHlwZSB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHNjb3BlcyBjcmVhdGVkIGJ5IElQQU1cbiAgICovXG4gIERFRkFVTFQgPSAnZGVmYXVsdCcsXG5cbiAgLyoqXG4gICAqIEN1c3RvbSBzY29wZSBjcmVhdGVkIHVzaW5nIG1ldGhvZFxuICAgKi9cbiAgQ1VTVE9NID0gJ2N1c3RvbScsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgYW4gSVBBTSBwb29sLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9vbE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBhZGRyZXNzRmFtaWx5IC0gVGhlIGFkZHJlc3MgZmFtaWx5IG9mIHRoZSBwb29sIChpcHY0IG9yIGlwdjYpLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkcmVzc0ZhbWlseTogQWRkcmVzc0ZhbWlseTtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIENJRFJzIHByb3Zpc2lvbmVkIHRvIHRoZSBwb29sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIENJRFJzIGFyZSBwcm92aXNpb25lZFxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NFByb3Zpc2lvbmVkQ2lkcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGxvY2FsZSAoQVdTIFJlZ2lvbikgb2YgdGhlIHBvb2wuIFNob3VsZCBiZSBvbmUgb2YgdGhlIElQQU0gb3BlcmF0aW5nIHJlZ2lvbi5cbiAgICogIE9ubHkgcmVzb3VyY2VzIGluIHRoZSBzYW1lIFJlZ2lvbiBhcyB0aGUgbG9jYWxlIG9mIHRoZSBwb29sIGNhbiBnZXQgSVAgYWRkcmVzcyBhbGxvY2F0aW9ucyBmcm9tIHRoZSBwb29sLlxuICAgKiBZb3UgY2FuIG9ubHkgYWxsb2NhdGUgYSBDSURSIGZvciBhIFZQQywgZm9yIGV4YW1wbGUsIGZyb20gYW4gSVBBTSBwb29sIHRoYXQgc2hhcmVzIGEgbG9jYWxlIHdpdGggdGhlIFZQQ+KAmXMgUmVnaW9uLlxuICAgKiBOb3RlIHRoYXQgb25jZSB5b3UgY2hvb3NlIGEgTG9jYWxlIGZvciBhIHBvb2wsIHlvdSBjYW5ub3QgbW9kaWZ5IGl0LiBJZiB5b3UgY2hvb3NlIGFuIEFXUyBSZWdpb24gZm9yIGxvY2FsZSB0aGF0IGhhcyBub3QgYmVlbiBjb25maWd1cmVkIGFzIGFuIG9wZXJhdGluZyBSZWdpb24gZm9yIHRoZSBJUEFNLCB5b3UnbGwgZ2V0IGFuIGVycm9yLlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sI2Nmbi1lYzItaXBhbXBvb2wtbG9jYWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ3VycmVudCBvcGVyYXRpbmcgcmVnaW9uIG9mIElQQU1cbiAgICovXG4gIHJlYWRvbmx5IGxvY2FsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElQIGFkZHJlc3Mgc291cmNlIGZvciBwb29scyBpbiB0aGUgcHVibGljIHNjb3BlLlxuICAgKiBPbmx5IHVzZWQgZm9yIElQdjYgYWRkcmVzc1xuICAgKiBPbmx5IGFsbG93ZWQgdmFsdWVzIHRvIHRoaXMgYXJlICdieW9pcCcgb3IgJ2FtYXpvbidcbiAgICpcbiAgICogQGRlZmF1bHQgYW1hem9uXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNJcFNvdXJjZT86IElwYW1Qb29sUHVibGljSXBTb3VyY2U7XG5cbiAgLyoqXG4gICogTGltaXRzIHdoaWNoIHNlcnZpY2UgaW4gQVdTIHRoYXQgdGhlIHBvb2wgY2FuIGJlIHVzZWQgaW4uXG4gICpcbiAgKiBcImVjMlwiLCBmb3IgZXhhbXBsZSwgYWxsb3dzIHVzZXJzIHRvIHVzZSBzcGFjZSBmb3IgRWxhc3RpYyBJUCBhZGRyZXNzZXMgYW5kIFZQQ3MuXG4gICpcbiAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sI2Nmbi1lYzItaXBhbXBvb2wtYXdzc2VydmljZVxuICAqXG4gICogQGRlZmF1bHQgLSByZXF1aXJlZCBpbiBjYXNlIG9mIGFuIElQdjYsIHRocm93cyBhbiBlcnJvciBpZiBub3QgcHJvdmlkZWQuXG4gICovXG4gIHJlYWRvbmx5IGF3c1NlcnZpY2U/OiBBd3NTZXJ2aWNlTmFtZTtcblxuICAvKipcbiAgICogSVBBTSBQb29sIHJlc291cmNlIG5hbWUgdG8gYmUgdXNlZCBmb3IgdGFnZ2luZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG9nZW5lcmF0ZWQgYnkgQ0RLIGlmIG5vdCBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVBvb2xOYW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBOQU1FX1RBRzogc3RyaW5nID0gJ05hbWUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIElQQU0gcG9vbC5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sXG4gKi9cbmludGVyZmFjZSBJcGFtUG9vbFByb3BzIGV4dGVuZHMgUG9vbE9wdGlvbnMge1xuICAvKipcbiAgICogU2NvcGUgaWQgd2hlcmUgcG9vbCBuZWVkcyB0byBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBpcGFtU2NvcGVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gcHJvdmlzaW9uIENJRFJzIHRvIGFuIElQQU0gcG9vbC5cbiAqIFVzZWQgdG8gY3JlYXRlIGEgbmV3IElwYW1Qb29sQ2lkclxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sY2lkci5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVBvb2xDaWRyUHJvdmlzaW9uaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJcHY2IE5ldG1hc2sgbGVuZ3RoIGZvciB0aGUgQ0lEUlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHBvb2wgcHJvdmlzaW9uZWQgd2l0aG91dCBuZXRtYXNrIGxlbmd0aCwgbmVlZCBjaWRyIHJhbmdlIGluIHRoaXMgY2FzZVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NiBDSURSIGJsb2NrIGZvciB0aGUgSVBBTSBwb29sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcG9vbCBwcm92aXNpb25lZCB3aXRob3V0IG5ldG1hc2sgbGVuZ3RoLCBuZWVkIG5ldG1hc2sgbGVuZ3RoIGluIHRoaXMgY2FzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2lkcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbml0aW9uIHVzZWQgdG8gYWRkIG9yIGNyZWF0ZSBhIG5ldyBJUEFNIHBvb2xcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXBhbVBvb2wge1xuICAvKipcbiAqIFBvb2wgSUQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWUEMgY29uc3RydWN0XG4gKiBAYXR0cmlidXRlIElwYW1Qb29sSWRcbiAqL1xuICByZWFkb25seSBpcGFtUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBvb2wgQ0lEUiBmb3IgSVB2NiB0byBiZSBwcm92aXNpb25lZCB3aXRoIFB1YmxpYyBJUCBzb3VyY2Ugc2V0IHRvICdBbWF6b24nXG4gICAqL1xuICByZWFkb25seSBpcGFtQ2lkcnM6IENmbklQQU1Qb29sQ2lkcltdO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjQgdG8gYmUgcHJvdmlzaW9uZWQgdXNpbmcgSVBBTVxuICAgKiBSZXF1aXJlZCB0byBjaGVjayBmb3Igc3VibmV0IElQIHJhbmdlIGlzIHdpdGhpbiB0aGUgVlBDIHJhbmdlXG4gICAqL1xuICByZWFkb25seSBpcGFtSXB2NENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBhIElQdjYgYWRkcmVzcyB3aXRoIElQQU0gcG9vbFxuICAgKi9cbiAgcHJvdmlzaW9uQ2lkcihpZDogc3RyaW5nLCBvcHRpb25zOiBJcGFtUG9vbENpZHJQcm92aXNpb25pbmdPcHRpb25zKTogQ2ZuSVBBTVBvb2xDaWRyO1xuXG59XG5cbi8qKlxuICogSVBBTSBzY29wZSBpcyB0aGUgaGlnaGVzdC1sZXZlbCBjb250YWluZXIgd2l0aGluIElQQU0uIEFuIElQQU0gY29udGFpbnMgdHdvIGRlZmF1bHQgc2NvcGVzLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1zY29wZS5odG1sXG4gKi9cbmludGVyZmFjZSBJcGFtU2NvcGVQcm9wcyBleHRlbmRzIElwYW1TY29wZU9wdGlvbnMge1xuICAvKipcbiAgICogSVBBTSBpZCB0byB3aGljaCBzY29wZSBuZWVkcyB0byBiZSBhZGRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wZXJhdGluZyByZWdpb25zIGZvciB0aGUgSXBhbVxuICAgKiBSZXF1aXJlZCBpbiBvcmRlciB0byB2YWxpZGF0ZSB0aGUgbG9jYWxlIGJlaW5nIHNldCBvbiBwb29sXG4gICAqL1xuICByZWFkb25seSBpcGFtT3BlcmF0aW5nUmVnaW9uczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBpcGFtIHNjb3BlIGlkIHRvIGFkZCBhIHBvb2wgaW4gb3JkZXIgdG8gc3VwcG9ydCBkZWZhdWx0IHNjb3Blc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRocm93cyBhbiBlcnJvciBpZiBubyBzY29wZSBpZCBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVNjb3BlSWQ/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBCZWluZyB1c2VkIGluIElQQU0gY2xhc3MgdG8gYWRkIHBvb2xzIHRvIGRlZmF1bHQgc2NvcGUgY3JlYXRlZCBieSBJUEFNLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwYW1TY29wZU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBJUEFNIHNjb3BlIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRhZ2dpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB0YWdzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNjb3BlXG4gICAqL1xuICByZWFkb25seSBpcGFtU2NvcGVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIGFuIElQIEFkZHJlc3MgTWFuYWdlciAoSVBBTSkuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbS5odG1sfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIENJRFIgTWFzayBmb3IgVnBjXG4gICAqIE9ubHkgcmVxdWlyZWQgd2hlbiB1c2luZyBBV1MgSXBhbVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldG1hc2sgbGVuZ3RoIGZvciBJUEFNIGF0dGFjaGVkIHRvIFZQQyBzZWNvbmRhcnkgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgbmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NCBvciBhbiBJcHY2IElQQU0gcG9vbFxuICAgKiBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgQVdTIElwYW1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwb29sIGF0dGFjaGVkIHRvIFZQQyBzZWNvbmRhcnkgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVBvb2w/OiBJSXBhbVBvb2w7XG5cbiAgLyoqXG4gICAqIFJlcXVpcmVkIHRvIHNldCBTZWNvbmRhcnkgY2lkciBibG9jayByZXNvdXJjZSBuYW1lXG4gICAqIGluIG9yZGVyIHRvIGdlbmVyYXRlIHVuaXF1ZSBsb2dpY2FsIGlkIGZvciB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBjaWRyQmxvY2tOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBJcGFtU2NvcGUgQ2xhc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXBhbVNjb3BlQmFzZSB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBzY29wZSBvZiBzdGFjayB0byBiZSBwYXNzZWQgaW4gb3JkZXIgdG8gY3JlYXRlXG4gICAqIGEgbmV3IElQQU0gcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogRGVmYXVsdCBTY29wZSBpZHMgY3JlYXRlZCBieSB0aGUgSVBBTSBvciBhIG5ldyBSZXNvdXJjZSBpZFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHNjb3BlIHR5cGUgY2FuIGJlIGVpdGhlciBkZWZhdWx0IG9yIGN1c3RvbVxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVUeXBlPzogSXBhbVNjb3BlVHlwZTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gYWRkIGEgbmV3IHBvb2wgdG8gYW4gSVBBTSBzY29wZVxuICAgKi9cbiAgYWRkUG9vbChpZDogc3RyaW5nLCBvcHRpb25zOiBQb29sT3B0aW9ucyk6IElJcGFtUG9vbDtcblxufVxuXG4vKipcbiAqIENyZWF0ZXMgbmV3IElQQU0gUG9vbFxuICogUG9vbHMgZW5hYmxlIHlvdSB0byBvcmdhbml6ZSB5b3VyIElQIGFkZHJlc3NlcyBhY2NvcmRpbmcgdG8geW91ciByb3V0aW5nIGFuZCBzZWN1cml0eSBuZWVkc1xuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWxcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6SVBBTVBvb2xcbiAqIEBpbnRlcm5hbFxuICovXG5jbGFzcyBJcGFtUG9vbCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUlwYW1Qb29sIHtcblxuICAvKipcbiAgICogUG9vbCBJRCB0byBiZSBwYXNzZWQgdG8gdGhlIFZQQyBjb25zdHJ1Y3RcbiAgICogQGF0dHJpYnV0ZSBJcGFtUG9vbElkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBhbVBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjYgdG8gYmUgcHJvdmlzaW9uZWQgd2l0aCBQdWJsaWMgSVAgc291cmNlIHNldCB0byAnQW1hem9uJ1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1DaWRyczogQ2ZuSVBBTVBvb2xDaWRyW10gPSBbXTtcblxuICAvKipcbiAgICogUG9vbCBDSURSIGZvciBJUHY0IHRvIGJlIHByb3Zpc2lvbmVkIHVzaW5nIElQQU1cbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIHN1Ym5ldCBJUCByYW5nZSBpcyB3aXRoaW4gdGhlIFZQQyByYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1JcHY0Q2lkcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBpcGFtUG9vbCByZXNvdXJjZSBjcmVhdGVkIGluIHRoaXMgY2xhc3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lwYW1Qb29sOiBDZm5JUEFNUG9vbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSXBhbVBvb2xQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5pcGFtUG9vbE5hbWUgPz8gTGF6eS5zdHJpbmcoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDEyOCwgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnXycgfSksXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5hZGRyZXNzRmFtaWx5ID09PSBBZGRyZXNzRmFtaWx5LklQX1Y2ICYmICFwcm9wcy5hd3NTZXJ2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F3c1NlcnZpY2UgaXMgcmVxdWlyZWQgd2hlbiBhZGRyZXNzRmFtaWx5IGlzIHNldCB0byBpcHY2Jyk7XG4gICAgfVxuXG4gICAgLy9BZGQgdGFncyB0byB0aGUgSVBBTSBQb29sIGlmIG5hbWUgaXMgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuaXBhbVBvb2xOYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaXBhbVBvb2xOYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pcGFtUG9vbCA9IG5ldyBDZm5JUEFNUG9vbCh0aGlzLCBpZCwge1xuICAgICAgYWRkcmVzc0ZhbWlseTogcHJvcHMuYWRkcmVzc0ZhbWlseSxcbiAgICAgIHByb3Zpc2lvbmVkQ2lkcnM6IHByb3BzLmlwdjRQcm92aXNpb25lZENpZHJzPy5tYXAoY2lkciA9PiAoeyBjaWRyIH0pKSxcbiAgICAgIGxvY2FsZTogcHJvcHMubG9jYWxlLFxuICAgICAgaXBhbVNjb3BlSWQ6IHByb3BzLmlwYW1TY29wZUlkLFxuICAgICAgcHVibGljSXBTb3VyY2U6IHByb3BzLnB1YmxpY0lwU291cmNlLFxuICAgICAgYXdzU2VydmljZTogcHJvcHMuYXdzU2VydmljZSxcbiAgICB9KTtcbiAgICB0aGlzLmlwYW1Qb29sSWQgPSB0aGlzLl9pcGFtUG9vbC5hdHRySXBhbVBvb2xJZDtcblxuICAgIC8vIFBvcHVsYXRpbmcgdG8gY2hlY2sgZm9yIHN1Ym5ldCByYW5nZSBhZ2FpbnN0IGFsbCBJUHY0IHJhbmdlcyBhc3NpZ25lZCB0byBWUEMgaW5jbHVkaW5nIElQQU1cbiAgICBwcm9wcy5pcHY0UHJvdmlzaW9uZWRDaWRycz8ubWFwKGNpZHIgPT4gKHRoaXMuaXBhbUlwdjRDaWRycy5wdXNoKGNpZHIpKSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMuX2lwYW1Qb29sO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgQ0lEUiBwcm92aXNpb25lZCB0byBhbiBJUEFNIHBvb2wuXG4gICAqIEBwYXJhbSBpZCBOYW1lIG9mIFJlc291cmNlXG4gICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciBhIENJRFIgb3IgbmV0bWFzayBsZW5ndGggbXVzdCBiZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBBV1M6OkVDMjo6SVBBTVBvb2xDaWRyXG4gICAqL1xuICBwdWJsaWMgcHJvdmlzaW9uQ2lkcihpZDogc3RyaW5nLCBvcHRpb25zOiBJcGFtUG9vbENpZHJQcm92aXNpb25pbmdPcHRpb25zKTogQ2ZuSVBBTVBvb2xDaWRyIHtcbiAgICBjb25zdCBjaWRyID0gbmV3IENmbklQQU1Qb29sQ2lkcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlwYW1Qb29sSWQ6IHRoaXMuaXBhbVBvb2xJZCxcbiAgICB9KTtcbiAgICB0aGlzLmlwYW1DaWRycy5wdXNoKGNpZHIpO1xuICAgIHJldHVybiBjaWRyO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBjdXN0b20gSXBhbSBTY29wZSwgY3VzdG9tIElQQU0gc2NvcGVzIGNhbiBvbmx5IGJlIHByaXZhdGVcbiAqIChjYW4gYmUgdXNlZCBmb3IgYWRkaW5nIGN1c3RvbSBzY29wZXMgdG8gYW4gZXhpc3RpbmcgSVBBTSlcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICogQHJlc291cmNlIEFXUzo6RUMyOjpJUEFNU2NvcGVcbiAqL1xuY2xhc3MgSXBhbVNjb3BlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJSXBhbVNjb3BlQmFzZSB7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgcmVmZXJlbmNlIHRvIG5ld2x5IGNyZWF0ZWQgUmVzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lwYW1TY29wZTogQ2ZuSVBBTVNjb3BlO1xuXG4gIC8qKlxuICAgKiBJRCBmb3IgUmVzb3VyY2UgSXBhbVNjb3BlXG4gICAqIEBhdHRyaWJ1dGUgSXBhbVNjb3BlSWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY29wZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gY29uZmlndXJlIGlwYW0gc2NvcGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IElwYW1TY29wZVByb3BzO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gc3RhY2sgc2NvcGUgdG8gYmUgcGFzc2VkIHRocm91Z2ggYWRkUG9vbCBtZXRob2QgaW5vcmRlciB0byBjcmVhdGUgYSBuZXcgSXBhbVBvb2xcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHNjb3BlIHR5cGUgY2FuIGJlIGVpdGhlciBkZWZhdWx0IG9yIGN1c3RvbVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlVHlwZTogSXBhbVNjb3BlVHlwZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSXBhbVNjb3BlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuX2lwYW1TY29wZSA9IG5ldyBDZm5JUEFNU2NvcGUoc2NvcGUsICdJcGFtU2NvcGUnLCB7XG4gICAgICBpcGFtSWQ6IHByb3BzLmlwYW1JZCxcbiAgICB9KTtcbiAgICBUYWdzLm9mKHRoaXMuX2lwYW1TY29wZSkuYWRkKE5BTUVfVEFHLCBwcm9wcy5pcGFtU2NvcGVOYW1lID8/ICdDdXN0b21JcGFtU2NvcGUnKTtcbiAgICB0aGlzLnNjb3BlSWQgPSB0aGlzLl9pcGFtU2NvcGUuYXR0cklwYW1TY29wZUlkO1xuICAgIHRoaXMuc2NvcGVUeXBlID0gSXBhbVNjb3BlVHlwZS5DVVNUT007XG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcG9vbCB0byB0aGUgSVBBTSBzY29wZS5cbiAgICogQGV4dGVybmFsXG4gICAqL1xuICBhZGRQb29sKGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBvb2xPcHRpb25zKTogSUlwYW1Qb29sIHtcbiAgICByZXR1cm4gY3JlYXRlSXBhbVBvb2wodGhpcy5zY29wZSwgaWQsIHRoaXMucHJvcHMsIG9wdGlvbnMsIHRoaXMuc2NvcGVJZCk7XG4gIH1cblxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIElQQU0gZGVmYXVsdCBzY29wZXMuXG4gKi9cbmNsYXNzIElwYW1TY29wZUJhc2UgaW1wbGVtZW50cyBJSXBhbVNjb3BlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgcmVhZG9ubHkgc2NvcGVJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IElwYW1TY29wZVByb3BzLFxuICAgIHJlYWRvbmx5IHNjb3BlVHlwZT86IElwYW1TY29wZVR5cGUsXG4gICkge1xuICAgIHRoaXMuc2NvcGVUeXBlID0gSXBhbVNjb3BlVHlwZS5ERUZBVUxUO1xuICAgIGlmICghcHJvcHMuaXBhbVNjb3BlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaXBhbVNjb3BlSWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY29wZUlkID0gcHJvcHMuaXBhbVNjb3BlSWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwb29sIHRvIHRoZSBJUEFNIHNjb3BlLlxuICAgKiBAZXh0ZXJuYWxcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2wge1xuICAgIHJldHVybiBjcmVhdGVJcGFtUG9vbCh0aGlzLnNjb3BlLCBpZCwgdGhpcy5wcm9wcywgb3B0aW9ucywgdGhpcy5zY29wZUlkKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgbmV3IElQQU0gd2l0aCBkZWZhdWx0IHB1YmxpYyBhbmQgcHJpdmF0ZSBzY29wZVxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1zY29wZS5odG1sXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OklQQU1cbiAqL1xuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIC8qKlxuICogUHJvdmlkZXMgYWNjZXNzIHRvIGRlZmF1bHQgcHVibGljIElQQU0gc2NvcGUgdGhyb3VnaCBhZGQgcG9vbCBtZXRob2QuXG4gKiBVc2FnZTogVG8gYWRkIGFuIElwYW0gUG9vbCB0byBhIGRlZmF1bHQgcHVibGljIHNjb3BlXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXNjb3BlLmh0bWxcbiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGljU2NvcGU6IElJcGFtU2NvcGVCYXNlO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhY2Nlc3MgdG8gZGVmYXVsdCBwcml2YXRlIElQQU0gc2NvcGUgdGhyb3VnaCBhZGQgcG9vbCBtZXRob2QuXG4gICAqIFVzYWdlOiBUbyBhZGQgYW4gSXBhbSBQb29sIHRvIGEgZGVmYXVsdCBwcml2YXRlIHNjb3BlXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICAgKiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZVNjb3BlOiBJSXBhbVNjb3BlQmFzZTtcblxuICAvLyBSZXNvdXJjZSBJUEFNXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lwYW06IENmbklQQU07XG4gIC8qKlxuICAgKiBBY2Nlc3MgdG8gSXBhbSByZXNvdXJjZSBpZCB0aGF0IGNhbiBiZSB1c2VkIGxhdGVyIHRvIGFkZCBhIGN1c3RvbSBwcml2YXRlIHNjb3BlIHRvIHRoaXMgSVBBTVxuICAgKiBAYXR0cmlidXRlIElwYW1JZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG9wZXJhdGluZyByZWdpb25zIGZvciBJUEFNXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0aW5nUmVnaW9uczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2Ygc2NvcGVzIGNyZWF0ZWQgdW5kZXIgdGhpcyBJUEFNXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NvcGVzOiBJSXBhbVNjb3BlQmFzZVtdID0gW107XG5cbiAgLyoqXG4gICAqIElQQU0gbmFtZSB0byBiZSB1c2VkIGZvciB0YWdnaW5nXG4gICAqIEBkZWZhdWx0IG5vIHRhZyBzcGVjaWZpZWRcbiAgICogQGF0dHJpYnV0ZSBJcGFtTmFtZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1OYW1lPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSXBhbVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBpZiAocHJvcHM/LmlwYW1OYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaXBhbU5hbWUpO1xuICAgIH1cbiAgICBpZiAoIXByb3BzPy5vcGVyYXRpbmdSZWdpb24gJiYgIVN0YWNrLm9mKHRoaXMpLnJlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCBvbmUgb3BlcmF0aW5nIHJlZ2lvbicpO1xuICAgIH1cblxuICAgIHRoaXMub3BlcmF0aW5nUmVnaW9ucyA9IHByb3BzPy5vcGVyYXRpbmdSZWdpb24gPz8gW1N0YWNrLm9mKHRoaXMpLnJlZ2lvbl07XG4gICAgdGhpcy5pcGFtTmFtZSA9IHByb3BzPy5pcGFtTmFtZTtcblxuICAgIHRoaXMuX2lwYW0gPSBuZXcgQ2ZuSVBBTSh0aGlzLCAnSXBhbScsIHtcbiAgICAgIG9wZXJhdGluZ1JlZ2lvbnM6IHRoaXMub3BlcmF0aW5nUmVnaW9ucyA/IHRoaXMub3BlcmF0aW5nUmVnaW9ucy5tYXAocmVnaW9uID0+ICh7IHJlZ2lvbk5hbWU6IHJlZ2lvbiB9KSkgOiBbXSxcbiAgICB9KTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5faXBhbTtcblxuICAgIHRoaXMuaXBhbUlkID0gdGhpcy5faXBhbS5hdHRySXBhbUlkO1xuICAgIHRoaXMucHVibGljU2NvcGUgPSBuZXcgSXBhbVNjb3BlQmFzZSh0aGlzLCAnRGVmYXVsdFB1YmxpY1Njb3BlJywge1xuICAgICAgaXBhbU9wZXJhdGluZ1JlZ2lvbnM6IHRoaXMub3BlcmF0aW5nUmVnaW9ucyxcbiAgICAgIGlwYW1JZDogdGhpcy5faXBhbS5hdHRySXBhbUlkLFxuICAgICAgaXBhbVNjb3BlSWQ6IHRoaXMuX2lwYW0uYXR0clB1YmxpY0RlZmF1bHRTY29wZUlkLFxuICAgIH0pO1xuICAgIHRoaXMucHJpdmF0ZVNjb3BlID0gbmV3IElwYW1TY29wZUJhc2UodGhpcywgJ0RlZmF1bHRQcml2YXRlU2NvcGUnLCB7XG4gICAgICBpcGFtT3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zLFxuICAgICAgaXBhbUlkOiB0aGlzLl9pcGFtLmF0dHJJcGFtSWQsXG4gICAgICBpcGFtU2NvcGVJZDogdGhpcy5faXBhbS5hdHRyUHJpdmF0ZURlZmF1bHRTY29wZUlkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zY29wZXMucHVzaCh0aGlzLnB1YmxpY1Njb3BlLCB0aGlzLnByaXZhdGVTY29wZSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBhZGQgY3VzdG9tIHNjb3BlIHRvIGFuIGV4aXN0aW5nIElQQU1cbiAgICogQ3VzdG9tIHNjb3BlcyBjYW4gb25seSBiZSBwcml2YXRlXG4gICAqL1xuICBwdWJsaWMgYWRkU2NvcGUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogSXBhbVNjb3BlT3B0aW9ucyk6IElJcGFtU2NvcGVCYXNlIHtcbiAgICBjb25zdCBpcGFtU2NvcGUgPSBuZXcgSXBhbVNjb3BlKHNjb3BlLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlwYW1JZDogdGhpcy5pcGFtSWQsXG4gICAgICBpcGFtT3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zLFxuICAgIH0pO1xuICAgIHRoaXMuc2NvcGVzLnB1c2goaXBhbVNjb3BlKTtcbiAgICByZXR1cm4gaXBhbVNjb3BlO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gY3JlYXRlIElwYW1Qb29sIHVuZGVyIHNjb3BlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSXBhbVBvb2woXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHNjb3BlT3B0aW9uczogSXBhbVNjb3BlUHJvcHMsXG4gIHBvb2xPcHRpb25zOiBQb29sT3B0aW9ucyxcbiAgc2NvcGVJZDogc3RyaW5nLFxuKTogSXBhbVBvb2wge1xuICBjb25zdCBpc0xvY2FsZUluT3BlcmF0aW5nUmVnaW9ucyA9IHNjb3BlT3B0aW9ucy5pcGFtT3BlcmF0aW5nUmVnaW9uc1xuICAgID8gc2NvcGVPcHRpb25zLmlwYW1PcGVyYXRpbmdSZWdpb25zLm1hcChyZWdpb24gPT4gKHsgcmVnaW9uTmFtZTogcmVnaW9uIH0pKVxuICAgICAgLnNvbWUocmVnaW9uID0+IHJlZ2lvbi5yZWdpb25OYW1lID09PSBwb29sT3B0aW9ucy5sb2NhbGUpXG4gICAgOiBmYWxzZTtcblxuICBpZiAoIWlzTG9jYWxlSW5PcGVyYXRpbmdSZWdpb25zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvdmlkZWQgbG9jYWxlICcke3Bvb2xPcHRpb25zLmxvY2FsZX0nIGlzIG5vdCBpbiB0aGUgb3BlcmF0aW5nIHJlZ2lvbnMuYCk7XG4gIH1cblxuICByZXR1cm4gbmV3IElwYW1Qb29sKHNjb3BlLCBpZCwge1xuICAgIGlwYW1Qb29sTmFtZTogcG9vbE9wdGlvbnMuaXBhbVBvb2xOYW1lLFxuICAgIGFkZHJlc3NGYW1pbHk6IHBvb2xPcHRpb25zLmFkZHJlc3NGYW1pbHksXG4gICAgaXB2NFByb3Zpc2lvbmVkQ2lkcnM6IHBvb2xPcHRpb25zLmlwdjRQcm92aXNpb25lZENpZHJzLFxuICAgIGlwYW1TY29wZUlkOiBzY29wZUlkLFxuICAgIGxvY2FsZTogcG9vbE9wdGlvbnMubG9jYWxlLFxuICAgIHB1YmxpY0lwU291cmNlOiBwb29sT3B0aW9ucy5wdWJsaWNJcFNvdXJjZSxcbiAgICBhd3NTZXJ2aWNlOiBwb29sT3B0aW9ucy5hd3NTZXJ2aWNlLFxuICB9KTtcbn1cblxuIl19
|
package/lib/route.d.ts
CHANGED
|
@@ -261,6 +261,11 @@ export declare class VPNGatewayV2 extends Resource implements IRouteTarget {
|
|
|
261
261
|
* @resource AWS::EC2::NatGateway
|
|
262
262
|
*/
|
|
263
263
|
export declare class NatGateway extends Resource implements IRouteTarget {
|
|
264
|
+
/**
|
|
265
|
+
* Id of the NatGateway
|
|
266
|
+
* @attribute
|
|
267
|
+
*/
|
|
268
|
+
readonly natGatewayId: string;
|
|
264
269
|
/**
|
|
265
270
|
* The type of router used in the route.
|
|
266
271
|
*/
|
|
@@ -475,6 +480,7 @@ export declare class RouteTable extends Resource implements IRouteTable {
|
|
|
475
480
|
*
|
|
476
481
|
* @param destination The IPv4 or IPv6 CIDR block used for the destination match.
|
|
477
482
|
* @param target The gateway or endpoint targeted by the route.
|
|
483
|
+
* @param routeName The resource name of the route.
|
|
478
484
|
*/
|
|
479
|
-
addRoute(id: string, destination: string, target: RouteTargetType): void;
|
|
485
|
+
addRoute(id: string, destination: string, target: RouteTargetType, routeName?: string): void;
|
|
480
486
|
}
|