@aws-cdk/aws-ec2-alpha 2.231.0-alpha.0 → 2.232.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 +32 -3
- package/.jsii.tabl.json.gz +0 -0
- package/eslint-suppressions.json +27 -0
- package/lib/ipam.d.ts +1 -1
- package/lib/ipam.js +3 -3
- package/lib/route.d.ts +2 -11
- package/lib/route.js +11 -11
- package/lib/subnet-v2.d.ts +1 -1
- package/lib/subnet-v2.js +6 -6
- package/lib/transit-gateway-association.d.ts +1 -8
- package/lib/transit-gateway-attachment.d.ts +1 -8
- package/lib/transit-gateway-route-table-association.d.ts +2 -2
- package/lib/transit-gateway-route-table-association.js +3 -3
- package/lib/transit-gateway-route-table-propagation.js +3 -3
- package/lib/transit-gateway-route-table.d.ts +3 -16
- package/lib/transit-gateway-route-table.js +5 -5
- package/lib/transit-gateway-route.d.ts +3 -12
- package/lib/transit-gateway-route.js +4 -4
- package/lib/transit-gateway-vpc-attachment.d.ts +1 -1
- package/lib/transit-gateway-vpc-attachment.js +6 -6
- package/lib/transit-gateway.d.ts +1 -30
- package/lib/transit-gateway.js +5 -5
- package/lib/util.js +1 -1
- package/lib/vpc-v2-base.d.ts +3 -34
- package/lib/vpc-v2-base.js +4 -4
- package/lib/vpc-v2.d.ts +1 -1
- package/lib/vpc-v2.js +7 -7
- package/package.json +6 -6
package/lib/vpc-v2.js
CHANGED
|
@@ -37,19 +37,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
37
37
|
exports.VpcV2 = exports.IpAddresses = void 0;
|
|
38
38
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
39
39
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
40
41
|
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
41
42
|
const core_1 = require("aws-cdk-lib/core");
|
|
42
|
-
const constructs_1 = require("constructs");
|
|
43
|
-
const vpc_v2_base_1 = require("./vpc-v2-base");
|
|
44
|
-
const subnet_v2_1 = require("./subnet-v2");
|
|
45
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
46
43
|
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
47
44
|
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
45
|
+
const constructs_1 = require("constructs");
|
|
46
|
+
const subnet_v2_1 = require("./subnet-v2");
|
|
47
|
+
const vpc_v2_base_1 = require("./vpc-v2-base");
|
|
48
48
|
/**
|
|
49
49
|
* IpAddress options to define VPC V2
|
|
50
50
|
*/
|
|
51
51
|
class IpAddresses {
|
|
52
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.IpAddresses", version: "2.
|
|
52
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.IpAddresses", version: "2.232.0-alpha.0" };
|
|
53
53
|
/**
|
|
54
54
|
* An IPv4 CIDR Range
|
|
55
55
|
*/
|
|
@@ -152,7 +152,7 @@ let VpcV2 = (() => {
|
|
|
152
152
|
VpcV2 = _classThis = _classDescriptor.value;
|
|
153
153
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
154
154
|
}
|
|
155
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2", version: "2.
|
|
155
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2", version: "2.232.0-alpha.0" };
|
|
156
156
|
/** Uniquely identifies this class. */
|
|
157
157
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.VpcV2';
|
|
158
158
|
/**
|
|
@@ -627,4 +627,4 @@ function validateIpv4address(cidr1, cidr2) {
|
|
|
627
627
|
(ip1.octet1 === 192 && ip1.octet2 === 168 && ip2.octet1 === 192 && ip2.octet2 === 168) ||
|
|
628
628
|
(ip1.octet1 === 172 && ip1.octet2 === 16 && ip2.octet1 === 172 && ip2.octet2 === 16); // CIDR ranges belong to same private IP address ranges
|
|
629
629
|
}
|
|
630
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLXYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLXYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEyRztBQUMzRywyQ0FBK0Y7QUFDL0YsMkNBQXFFO0FBRXJFLCtDQUFrRDtBQUNsRCwyQ0FBc0U7QUFDdEUsNkNBQWtEO0FBQ2xELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFrQzFFOztHQUVHO0FBQ0gsTUFBYSxXQUFXOztJQUN0Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxLQUE2Qjs7Ozs7Ozs7OztRQUNoRSxPQUFPLElBQUksa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2hEO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQTRCOzs7Ozs7Ozs7O1FBQ2pELE9BQU8sSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDdEM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBNEI7Ozs7Ozs7Ozs7UUFDakQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUN0QztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQTRCOzs7Ozs7Ozs7O1FBQzNELE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBb0M7Ozs7Ozs7Ozs7UUFDOUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1Qjs7QUFsQ0gsa0NBbUNDO0FBcUdEOztHQUVHO0FBQ0gsTUFBTSxRQUFRLEdBQVcsTUFBTSxDQUFDO0FBcUhoQzs7Ozs7O0dBTUc7SUFFVSxLQUFLOzRCQURqQixvQ0FBa0I7Ozs7c0JBQ1EsdUJBQVM7cUJBQWpC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blZQQywgQ2ZuVlBDQ2lkckJsb2NrLCBEZWZhdWx0SW5zdGFuY2VUZW5hbmN5LCBJU3VibmV0LCBTdWJuZXRUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBBcm4sIENmblJlc291cmNlLCBGZWF0dXJlRmxhZ3MsIExhenksIE5hbWVzLCBSZXNvdXJjZSwgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBEZXBlbmRlbmN5R3JvdXAsIElEZXBlbmRhYmxlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJcGFtT3B0aW9ucywgSUlwYW1Qb29sIH0gZnJvbSAnLi9pcGFtJztcbmltcG9ydCB7IElWcGNWMiwgVnBjVjJCYXNlIH0gZnJvbSAnLi92cGMtdjItYmFzZSc7XG5pbXBvcnQgeyBJU3VibmV0VjIsIFN1Ym5ldFYyLCBTdWJuZXRWMkF0dHJpYnV0ZXMgfSBmcm9tICcuL3N1Ym5ldC12Mic7XG5pbXBvcnQgeyBjeF9hcGksIHJlZ2lvbl9pbmZvIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuXG4vKipcbiAqIEFkZGl0aW9uYWwgcHJvcHMgbmVlZGVkIGZvciBzZWNvbmRhcnkgQWRkcmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY29uZGFyeUFkZHJlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCB0byBzZXQgU2Vjb25kYXJ5IGNpZHIgYmxvY2sgcmVzb3VyY2UgbmFtZVxuICAgKiBpbiBvcmRlciB0byBnZW5lcmF0ZSB1bmlxdWUgbG9naWNhbCBpZCBmb3IgdGhlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFkZGl0aW9uYWwgcHJvcHMgbmVlZGVkIGZvciBCWU9JUCBJUHY2IGFkZHJlc3MgcHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcHY2UG9vbFNlY29uZGFyeUFkZHJlc3NQcm9wcyBleHRlbmRzIFNlY29uZGFyeUFkZHJlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgSVB2NiBhZGRyZXNzIHBvb2wgZnJvbSB3aGljaCB0byBhbGxvY2F0ZSB0aGUgSVB2NiBDSURSIGJsb2NrLlxuICAgKiBOb3RlOiBCWU9JUCBQb29sIElEIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBJUEFNIFBvb2wgSUQuXG4gICAqIFRvIG9uYm9hcmQgeW91ciBJUHY2IGFkZHJlc3MgcmFuZ2UgdG8geW91ciBBV1MgYWNjb3VudCBwbGVhc2UgcmVmZXIgdG8gdGhlIGJlbG93IGRvY3VtZW50YXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnlvaXAtb25ib2FyZC5odG1sXG4gICAqL1xuICByZWFkb25seSBpcHY2UG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmFsaWQgSVB2NiBDSURSIGJsb2NrIGZyb20gdGhlIElQdjYgYWRkcmVzcyBwb29sIG9uYm9hcmRlZCB0byBBV1MgdXNpbmcgQllPSVAuXG4gICAqIFRoZSBtb3N0IHNwZWNpZmljIElQdjYgYWRkcmVzcyByYW5nZSB0aGF0IHlvdSBjYW4gYnJpbmcgaXMgLzQ4IGZvciBDSURScyB0aGF0IGFyZSBwdWJsaWNseSBhZHZlcnRpc2FibGVcbiAgICogYW5kIC81NiBmb3IgQ0lEUnMgdGhhdCBhcmUgbm90IHB1YmxpY2x5IGFkdmVydGlzYWJsZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWJ5b2lwLmh0bWwjYnlvaXAtZGVmaW5pdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGlwdjZDaWRyQmxvY2s6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJcEFkZHJlc3Mgb3B0aW9ucyB0byBkZWZpbmUgVlBDIFYyXG4gKi9cbmV4cG9ydCBjbGFzcyBJcEFkZHJlc3NlcyB7XG4gIC8qKlxuICAgKiBBbiBJUHY0IENJRFIgUmFuZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXB2NChpcHY0Q2lkcjogc3RyaW5nLCBwcm9wcz86IFNlY29uZGFyeUFkZHJlc3NQcm9wcyk6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBpcHY0Q2lkckFsbG9jYXRpb24oaXB2NENpZHIsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBJcHY0IElwYW0gUG9vbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpcHY0SXBhbShpcHY0SXBhbU9wdGlvbnM6IElwYW1PcHRpb25zKTogSUlwQWRkcmVzc2VzIHtcbiAgICByZXR1cm4gbmV3IElwYW1JcHY0KGlwdjRJcGFtT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQW4gSXB2NiBJcGFtIFBvb2xcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXB2NklwYW0oaXB2NklwYW1PcHRpb25zOiBJcGFtT3B0aW9ucyk6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBJcGFtSXB2NihpcHY2SXBhbU9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFtYXpvbiBQcm92aWRlZCBJcHY2IHJhbmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFtYXpvblByb3ZpZGVkSXB2Nihwcm9wczogU2Vjb25kYXJ5QWRkcmVzc1Byb3BzKSA6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBBbWF6b25Qcm92aWRlZChwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQSBCWU9JUCBJUHY2IGFkZHJlc3MgcG9vbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpcHY2QnlvaXBQb29sKHByb3BzOiBJcHY2UG9vbFNlY29uZGFyeUFkZHJlc3NQcm9wcyk6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBJcHY2UG9vbChwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zb2xpZGF0ZWQgcmV0dXJuIHBhcmFtZXRlcnMgdG8gcGFzcyB0byBWUEMgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ2lkck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBJUHY0IENJRFIgQmxvY2tcbiAgICpcbiAgICogQGRlZmF1bHQgJzEwLjAuMC4wLzE2J1xuICAgKi9cbiAgcmVhZG9ubHkgaXB2NENpZHJCbG9jaz86IHN0cmluZztcblxuICAvKipcbiAgICogQ0lEUiBNYXNrIGZvciBWcGNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgSVBBTSBJcHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NCBJUEFNIFBvb2xcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgSVBBTSBJcHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0SXBhbVBvb2w/OiBJSXBhbVBvb2w7XG5cbiAgLyoqXG4gICAqIENJRFIgTWFzayBmb3IgVnBjXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gT25seSByZXF1aXJlZCB3aGVuIHVzaW5nIEFXUyBJcGFtXG4gICAqL1xuICByZWFkb25seSBpcHY2TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NiBJUEFNIHBvb2wgaWQgZm9yIFZQQyByYW5nZSwgY2FuIG9ubHkgYmUgZGVmaW5lZFxuICAgKiB1bmRlciBwdWJsaWMgc2NvcGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwb29sIGlkXG4gICAqL1xuICByZWFkb25seSBpcHY2SXBhbVBvb2w/OiBJSXBhbVBvb2w7XG5cbiAgLyoqXG4gICAqIFVzZSBhbWF6b24gcHJvdmlkZWQgSVAgcmFuZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFtYXpvblByb3ZpZGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwZW5kZW5jeSB0byBhc3NvY2lhdGUgSXB2NiBDSURSIGJsb2NrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVwZW5kZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jaWVzPzogQ2ZuUmVzb3VyY2VbXTtcblxuICAvKipcbiAgICogUmVxdWlyZWQgdG8gc2V0IFNlY29uZGFyeSBjaWRyIGJsb2NrIHJlc291cmNlIG5hbWVcbiAgICogaW4gb3JkZXIgdG8gZ2VuZXJhdGUgdW5pcXVlIGxvZ2ljYWwgaWQgZm9yIHRoZSByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuYW1lIGZvciBwcmltYXJ5IGFkZHJlc3Nlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSVB2NCBDSURSIHByb3Zpc2lvbmVkIHVuZGVyIHBvb2xcbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIG92ZXJsYXBwaW5nIENJRFJzIGFmdGVyIHByb3Zpc2lvbmluZ1xuICAgKiBpcyBjb21wbGV0ZSB1bmRlciBJUEFNIHBvb2xcbiAgICogQGRlZmF1bHQgLSBubyBJUEFNIElQdjQgQ0lEUiByYW5nZSBpcyBwcm92aXNpb25lZCB1c2luZyBJUEFNXG4gICAqL1xuICByZWFkb25seSBpcHY0SXBhbVByb3Zpc2lvbmVkQ2lkcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSVB2NiBDSURSIGJsb2NrIGZyb20gdGhlIEJPWUlQIElQdjYgYWRkcmVzcyBwb29sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGlwdjZDaWRyQmxvY2s/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBCWU9JUCBJUHY2IGFkZHJlc3MgcG9vbCBmcm9tIHdoaWNoIHRvIGFsbG9jYXRlIHRoZSBJUHY2IENJRFIgYmxvY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NlBvb2xJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGlwIGFkZHJlc3MgYWxsb2NhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIElQQWRyZXNzIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXBBZGRyZXNzZXMge1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZGVmaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBsb2dpYyBvZlxuICAgKiBJUCBhZGRyZXNzIGFsbG9jYXRpb25cbiAgICovXG4gIGFsbG9jYXRlVnBjQ2lkcigpIDogVnBjQ2lkck9wdGlvbnM7XG5cbn1cblxuLyoqXG4gKiBOYW1lIHRhZyBjb25zdGFudFxuICovXG5jb25zdCBOQU1FX1RBRzogc3RyaW5nID0gJ05hbWUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIFZQQ1xuICogW2Rpc2FibGUtYXdzbGludDpmcm9tLW1ldGhvZF1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNWMlByb3BzIHtcblxuICAvKiogQSBtdXN0IElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIFZQQ1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtY2lkci1ibG9ja3MuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElwdjQgQ0lEUiBCbG9jayAoJzEwLjAuMC4wLzE2JylcbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnlBZGRyZXNzQmxvY2s/OiBJSXBBZGRyZXNzZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRhcnkgQ0lEUiBibG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBWUEMuXG4gICAqIENhbiBiZSAgSVB2NCBvciBJUHY2LCB0d28gSVB2NCByYW5nZXMgbXVzdCBmb2xsb3cgUkZDIzE5MTggY29udmVudGlvblxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL2xhdGVzdC91c2VyZ3VpZGUvdnBjLWNpZHItYmxvY2tzLmh0bWwjdnBjLXJlc2l6ZX0uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc2Vjb25kYXJ5IElQIGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeUFkZHJlc3NCbG9ja3M/OiBJSXBBZGRyZXNzZXNbXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlcyBsYXVuY2hlZCBpbiB0aGUgVlBDIGdldCBETlMgaG9zdG5hbWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEbnNIb3N0bmFtZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgRE5TIHJlc29sdXRpb24gaXMgc3VwcG9ydGVkIGZvciB0aGUgVlBDLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEbnNTdXBwb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdGVuYW5jeSBvZiBpbnN0YW5jZXMgbGF1bmNoZWQgaW50byB0aGUgVlBDLlxuICAgKlxuICAgKiBCeSBzZXR0aW5nIHRoaXMgdG8gZGVkaWNhdGVkIHRlbmFuY3ksIGluc3RhbmNlcyB3aWxsIGJlIGxhdW5jaGVkIG9uXG4gICAqIGhhcmR3YXJlIGRlZGljYXRlZCB0byBhIHNpbmdsZSBBV1MgY3VzdG9tZXIsIHVubGVzcyBzcGVjaWZpY2FsbHkgc3BlY2lmaWVkXG4gICAqIGF0IGluc3RhbmNlIGxhdW5jaCB0aW1lLiBQbGVhc2Ugbm90ZSwgbm90IGFsbCBpbnN0YW5jZSB0eXBlcyBhcmUgdXNhYmxlXG4gICAqIHdpdGggRGVkaWNhdGVkIHRlbmFuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IERlZmF1bHRJbnN0YW5jZVRlbmFuY3kuRGVmYXVsdCAoc2hhcmVkKSB0ZW5hbmN5XG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0SW5zdGFuY2VUZW5hbmN5PzogRGVmYXVsdEluc3RhbmNlVGVuYW5jeTtcblxuICAvKipcbiAgICogUGh5c2ljYWwgbmFtZSBmb3IgdGhlIFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG9nZW5lcmF0ZWQgYnkgQ0RLXG4gICAqL1xuICByZWFkb25seSB2cGNOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gaW1wb3J0IGEgVlBDIGNyZWF0ZWQgb3V0c2lkZSBvZiBDREsgc3RhY2tcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNWMkF0dHJpYnV0ZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIElEXG4gICAqIFJlZmVycyB0byBwaHlzaWNhbCBJZCBvZiB0aGUgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiBpbiB3aGljaCBpbXBvcnRlZCBWUEMgaXMgaG9zdGVkXG4gICAqIHJlcXVpcmVkIGluIGNhc2Ugb2YgY3Jvc3MgcmVnaW9uIFZQQ1xuICAgKiBhcyBnaXZlbiB2YWx1ZSB3aWxsIGJlIHVzZWQgdG8gc2V0IGZpZWxkIHJlZ2lvbiBmb3IgaW1wb3J0ZWQgVlBDLFxuICAgKiB3aGljaCB0aGVuIGxhdGVyIGNhbiBiZSB1c2VkIGZvciBlc3RhYmxpc2hpbmcgVlBDIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjb25zdHJ1Y3RlZCB3aXRoIHN0YWNrIHJlZ2lvbiB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEFXUyBhY2NvdW50IHRoYXQgb3ducyB0aGUgaW1wb3J0ZWQgVlBDXG4gICAqIHJlcXVpcmVkIGluIGNhc2Ugb2YgY3Jvc3MgYWNjb3VudCBWUENcbiAgICogYXMgZ2l2ZW4gdmFsdWUgd2lsbCBiZSB1c2VkIHRvIHNldCBmaWVsZCBhY2NvdW50IGZvciBpbXBvcnRlZCBWUEMsXG4gICAqIHdoaWNoIHRoZW4gbGF0ZXIgY2FuIGJlIHVzZWQgZm9yIGVzdGFibGlzaGluZyBWUEMgcGVlcmluZyBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNvbnN0cnVjdGVkIHdpdGggc3RhY2sgYWNjb3VudCB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXJBY2NvdW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaW1hcnkgVlBDIENJRFIgQmxvY2sgb2YgdGhlIGltcG9ydGVkIFZQQ1xuICAgKiBDYW4gb25seSBiZSBJUHY0XG4gICAqL1xuICByZWFkb25seSB2cGNDaWRyQmxvY2s6IHN0cmluZztcblxuICAvKipcbiAgICogQSBWUE4gR2F0ZXdheSBpcyBhdHRhY2hlZCB0byB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gVlBOIEdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IHZwbkdhdGV3YXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU3VibmV0cyBhc3NvY2lhdGVkIHdpdGggaW1wb3J0ZWQgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3VibmV0cyBwcm92aWRlZCB0byBiZSBpbXBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0cz86IFN1Ym5ldFYyQXR0cmlidXRlc1tdO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgU2Vjb25kYXJ5IENJRFIgYmxvY2tzIGFzc29jaWF0ZWQgd2l0aCBWUENcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzZWNvbmRhcnkgSVAgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgc2Vjb25kYXJ5Q2lkckJsb2Nrcz86IFZQQ0NpZHJCbG9ja2F0dHJpYnV0ZXNbXTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgZm91bmRhdGlvbiBmb3IgY3JlYXRpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgVlBDIHdpdGggYWR2YW5jZWQgZmVhdHVyZXMgc3VjaCBhcyBJUEFNIChJUCBBZGRyZXNzIE1hbmFnZW1lbnQpIGFuZCBJUHY2IHN1cHBvcnQuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuYXdzX2VjMi5WcGMuaHRtbHxBV1MgQ0RLIERvY3VtZW50YXRpb24gb24gVlBDc30uXG4gKlxuICogQHJlc291cmNlIEFXUzo6RUMyOjpWUENcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFZwY1YyIGV4dGVuZHMgVnBjVjJCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLlZwY1YyJztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgVlBDIGZyb20gZXhpc3RpbmcgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVnBjVjJBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBWcGNWMkF0dHJpYnV0ZXMpOiBJVnBjVjIge1xuICAgIC8qKlxuICAgICAqIEludGVybmFsIGNsYXNzIHRvIGFsbG93IHVzZXJzIHRvIGltcG9ydCBWUENcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBjbGFzcyBJbXBvcnRlZFZwY1YyIGV4dGVuZHMgVnBjVjJCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHZwY0Fybjogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldHM6IElTdWJuZXRWMltdID0gW107XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRWMltdID0gW107XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaXNvbGF0ZWRTdWJuZXRzOiBJU3VibmV0VjJbXSA9IFtdO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQ6IElEZXBlbmRhYmxlID0gbmV3IERlcGVuZGVuY3lHcm91cCgpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSBvd25lckFjY291bnRJZDogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7XG4gICAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXJ0aXRpb24/OiBzdHJpbmc7XG5cbiAgICAgIC8qXG4gICAgICAqIFJlZmVyZW5jZSB0byBhbGwgc2Vjb25kYXJ5IGJsb2NrcyBhdHRhY2hlZFxuICAgICAgKi9cbiAgICAgIHB1YmxpYyByZWFkb25seSBzZWNvbmRhcnlDaWRyQmxvY2s/OiBJVlBDQ2lkckJsb2NrW107XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVmZXJzIHRvIGFjdHVhbCBWUEMgUmVzb3VyY2UgYXR0cmlidXRlIGluIG5vbi1pbXBvcnRlZCBWUENcbiAgICAgICAqIFJlcXVpcmVkIHRvIGltcGxlbWVudCBoZXJlIGR1ZSB0byBleHRlbnNpb24gZnJvbSBCYXNlIGNsYXNzXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyByZWFkb25seSB2cGNDaWRyQmxvY2s6IHN0cmluZztcblxuICAgICAgLy8gUmVxdWlyZWQgdG8gZG8gQ0lEUiByYW5nZSB0ZXN0IG9uIGltcG9ydGVkIFZQQ3MgdG8gY3JlYXRlIG5ldyBzdWJuZXRzXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3Q6IENvbnN0cnVjdCwgY29uc3RydWN0SWQ6IHN0cmluZywgcHJvcHM6IFZwY1YyQXR0cmlidXRlcykge1xuICAgICAgICBzdXBlcihjb25zdHJ1Y3QsIGNvbnN0cnVjdElkKTtcbiAgICAgICAgdGhpcy52cGNJZCA9IHByb3BzLnZwY0lkLFxuICAgICAgICB0aGlzLnJlZ2lvbiA9IHByb3BzLnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICAgICAgdGhpcy5vd25lckFjY291bnRJZCA9IHByb3BzLm93bmVyQWNjb3VudElkID8/IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICAgICAgdGhpcy5fcGFydGl0aW9uID0gcmVnaW9uX2luZm8uUmVnaW9uSW5mby5nZXQodGhpcy5yZWdpb24pLnBhcnRpdGlvbixcbiAgICAgICAgdGhpcy52cGNBcm4gPSBBcm4uZm9ybWF0KHtcbiAgICAgICAgICBzZXJ2aWNlOiAnZWMyJyxcbiAgICAgICAgICByZXNvdXJjZTogJ3ZwYycsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLnZwY0lkLFxuICAgICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgICAgYWNjb3VudDogdGhpcy5vd25lckFjY291bnRJZCxcbiAgICAgICAgICBwYXJ0aXRpb246IHRoaXMuX3BhcnRpdGlvbixcbiAgICAgICAgfSwgdGhpcy5zdGFjayk7XG5cbiAgICAgICAgLy8gUG9wdWxhdGUgcmVnaW9uIGFuZCBhY2NvdW50IGZpZWxkcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCB1cCBwZWVyaW5nIGNvbm5lY3Rpb25cbiAgICAgICAgLy8gc2FtcGxlIHZwYyBBcm4gLSBhcm46YXdzOmVjMjp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOnZwYy92cGMtMDEyMzQ1Njc4OWFiY2RlZjBcbiAgICAgICAgdGhpcy5yZWdpb24gPSB0aGlzLnZwY0Fybi5zcGxpdCgnOicpWzNdO1xuICAgICAgICB0aGlzLm93bmVyQWNjb3VudElkID0gdGhpcy52cGNBcm4uc3BsaXQoJzonKVs0XTtcbiAgICAgICAgLy8gUmVmZXJzIHRvIGFjdHVhbCBWUEMgUmVzb3VyY2UgYXR0cmlidXRlIGluIG5vbi1pbXBvcnRlZCBWUENcbiAgICAgICAgdGhpcy52cGNDaWRyQmxvY2sgPSBwcm9wcy52cGNDaWRyQmxvY2s7XG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciBzdWJuZXQgcmFuZ2UgcmVsYXRlZCBjaGVja3NcbiAgICAgICAgdGhpcy5pcHY0Q2lkckJsb2NrID0gcHJvcHMudnBjQ2lkckJsb2NrO1xuICAgICAgICB0aGlzLl92cG5HYXRld2F5SWQgPSBwcm9wcy52cG5HYXRld2F5SWQ7XG5cbiAgICAgICAgaWYgKHByb3BzLnN1Ym5ldHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1Ym5ldCBvZiBwcm9wcy5zdWJuZXRzKSB7XG4gICAgICAgICAgICBpZiAoc3VibmV0LnN1Ym5ldFR5cGUgPT09IFN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyB8fCBzdWJuZXQuc3VibmV0VHlwZSA9PT0gU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfTkFUIHx8XG4gICAgICAgICAgICAgIHN1Ym5ldC5zdWJuZXRUeXBlIGFzIHN0cmluZyA9PT0gJ0RlcHJlY2F0ZWRfUHJpdmF0ZScpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcml2YXRlU3VibmV0cy5wdXNoKFN1Ym5ldFYyLmZyb21TdWJuZXRWMkF0dHJpYnV0ZXMoc2NvcGUsIHN1Ym5ldC5zdWJuZXROYW1lPz8gJ0ltcG9ydGVkUHJpdmF0ZVN1Ym5ldCcsIHN1Ym5ldCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdWJuZXQuc3VibmV0VHlwZSA9PT0gU3VibmV0VHlwZS5QVUJMSUMpIHtcbiAgICAgICAgICAgICAgdGhpcy5wdWJsaWNTdWJuZXRzLnB1c2goU3VibmV0VjIuZnJvbVN1Ym5ldFYyQXR0cmlidXRlcyhzY29wZSwgc3VibmV0LnN1Ym5ldE5hbWU/PyAnSW1wb3J0ZWRQdWJsaWNTdWJuZXQnLCBzdWJuZXQpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3VibmV0LnN1Ym5ldFR5cGUgYXMgc3RyaW5nID09PSAnRGVwcmVjYXRlZF9Jc29sYXRlZCcgfHwgc3VibmV0LnN1Ym5ldFR5cGUgPT09IFN1Ym5ldFR5cGUuUFJJVkFURV9JU09MQVRFRCkge1xuICAgICAgICAgICAgICB0aGlzLmlzb2xhdGVkU3VibmV0cy5wdXNoKFN1Ym5ldFYyLmZyb21TdWJuZXRWMkF0dHJpYnV0ZXMoc2NvcGUsIHN1Ym5ldC5zdWJuZXROYW1lPz8gJ0ltcG9ydGVkSXNvbGF0ZWRTdWJuZXQnLCBzdWJuZXQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWNvbmRhcnlDaWRyQmxvY2sgPSBwcm9wcy5zZWNvbmRhcnlDaWRyQmxvY2tzPy5tYXAoY2lkckJsb2NrID0+IFZQQ0NpZHJCbG9jay5mcm9tVlBDQ2lkckJsb2NrYXR0cmlidXRlcyhzY29wZSwgY2lkckJsb2NrLmNpZHJCbG9ja05hbWUgPz8gJ0ltcG9ydGVkU2Vjb25kYXJ5Q2lkckJsb2NrJywgeyAuLi5jaWRyQmxvY2sgfSkpO1xuICAgICAgICBpZiAocHJvcHMuc2Vjb25kYXJ5Q2lkckJsb2Nrcykge1xuICAgICAgICAgIGZvciAoY29uc3QgY2lkckJsb2NrIG9mIHByb3BzLnNlY29uZGFyeUNpZHJCbG9ja3MpIHtcbiAgICAgICAgICAgIGlmIChjaWRyQmxvY2suaXB2NElwYW1Qcm92aXNpb25lZENpZHJzKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXB2NElwYW1Qcm92aXNpb25lZENpZHJzLnB1c2goLi4uY2lkckJsb2NrLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRWcGNWMihzY29wZSwgaWQsIGF0dHJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGlzIFZQQ1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGNBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwY0NpZHJCbG9jazogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElQdjYgQ0lEUiBibG9ja3MgZm9yIHRoZSBWUEMuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLXZwYy5odG1sI2F3cy1yZXNvdXJjZS1lYzItdnBjLXJldHVybi12YWx1ZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcHY2Q2lkckJsb2Nrczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBvZiBpcHY0IGFkZHJlc3Nlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwQWRkcmVzc2VzOiBJSXBBZGRyZXNzZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgcmVwcmVzZW50aW5nIHRoZSBWUEMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmblZQQztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGluc3RhbmNlcyBsYXVuY2hlZCBpbiB0aGlzIFZQQyB3aWxsIGhhdmUgcHVibGljIEROUyBob3N0bmFtZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZG5zSG9zdG5hbWVzRW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIEROUyBzdXBwb3J0IGlzIGVuYWJsZWQgZm9yIHRoaXMgVlBDLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRuc1N1cHBvcnRFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJc29sYXRlZCBTdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBWUEMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXNvbGF0ZWRTdWJuZXRzOiBJU3VibmV0W107XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBTdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBWUEMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGljU3VibmV0czogSVN1Ym5ldFtdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgU3VibmV0cyB0aGF0IGFyZSBwYXJ0IG9mIHRoaXMgVlBDLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRzOiBJU3VibmV0W107XG5cbiAgLyoqXG4gICAqIFRvIGRlZmluZSBkZXBlbmRlbmN5IG9uIGludGVybmV0IGNvbm5lY3Rpdml0eVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQ6IElEZXBlbmRhYmxlO1xuXG4gIC8qKlxuICAgKiByZWZlcmVuY2UgdG8gYWxsIHNlY29uZGFyeSBibG9ja3MgYXR0YWNoZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWNvbmRhcnlDaWRyQmxvY2s/OiBJVlBDQ2lkckJsb2NrW10gPSBuZXcgQXJyYXk8SVZQQ0NpZHJCbG9jaz47XG5cbiAgLyoqXG4gICAqIElQdjQgQ0lEUiBwcm92aXNpb25lZCB1c2luZyBJUEFNIHBvb2xcbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIG92ZXJsYXBwaW5nIENJRFJzIGFmdGVyIHByb3Zpc2lvbmluZ1xuICAgKiBpcyBjb21wbGV0ZSB1bmRlciBJUEFNXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiBmb3IgdGhpcyBWUENcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgb3duZXIgZm9yIHRoaXMgVlBDXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3duZXJBY2NvdW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRm9yIHZhbGlkYXRpb24gdG8gZGVmaW5lIElQdjYgc3VibmV0cywgc2V0IHRvIHRydWUgaW4gY2FzZSBvZlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSVB2NiBjaWRyIHJhbmdlXG4gICAqIGlmIHRydWUsIElQdjYgYWRkcmVzc2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc3VibmV0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VJcHY2OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFZwY05hbWUgdG8gYmUgdXNlZCBmb3IgdGFnZ2luZyBpdHMgY29tcG9uZW50c1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjTmFtZT86IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgaXB2NENpZHJCbG9jazogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZwY1YyUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy52cGNOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiAxMjgsIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJ18nIH0pLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy52cGNOYW1lID0gcHJvcHMudnBjTmFtZTtcbiAgICB0aGlzLmlwQWRkcmVzc2VzID0gcHJvcHMucHJpbWFyeUFkZHJlc3NCbG9jayA/PyBJcEFkZHJlc3Nlcy5pcHY0KCcxMC4wLjAuMC8xNicpO1xuICAgIGNvbnN0IHZwY09wdGlvbnMgPSB0aGlzLmlwQWRkcmVzc2VzLmFsbG9jYXRlVnBjQ2lkcigpO1xuXG4gICAgdGhpcy5kbnNIb3N0bmFtZXNFbmFibGVkID0gcHJvcHMuZW5hYmxlRG5zSG9zdG5hbWVzID09IG51bGwgPyB0cnVlIDogcHJvcHMuZW5hYmxlRG5zSG9zdG5hbWVzO1xuICAgIHRoaXMuZG5zU3VwcG9ydEVuYWJsZWQgPSBwcm9wcy5lbmFibGVEbnNTdXBwb3J0ID09IG51bGwgPyB0cnVlIDogcHJvcHMuZW5hYmxlRG5zU3VwcG9ydDtcbiAgICBjb25zdCBpbnN0YW5jZVRlbmFuY3kgPSBwcm9wcy5kZWZhdWx0SW5zdGFuY2VUZW5hbmN5IHx8ICdkZWZhdWx0JztcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblZQQyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjaWRyQmxvY2s6IHZwY09wdGlvbnMuaXB2NENpZHJCbG9jaywgLy8gZm9yIElwdjQgYWRkcmVzc2VzIENJRFIgYmxvY2tcbiAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdGhpcy5kbnNIb3N0bmFtZXNFbmFibGVkLFxuICAgICAgZW5hYmxlRG5zU3VwcG9ydDogdGhpcy5kbnNTdXBwb3J0RW5hYmxlZCxcbiAgICAgIGlwdjRJcGFtUG9vbElkOiB2cGNPcHRpb25zLmlwdjRJcGFtUG9vbD8uaXBhbVBvb2xJZCwgLy8gZm9yIElwdjQgaXBhbSBvcHRpb25cbiAgICAgIGlwdjROZXRtYXNrTGVuZ3RoOiB2cGNPcHRpb25zLmlwdjROZXRtYXNrTGVuZ3RoLCAvLyBmb3IgSXB2NCBpcGFtIG9wdGlvblxuICAgICAgaW5zdGFuY2VUZW5hbmN5OiBpbnN0YW5jZVRlbmFuY3ksXG4gICAgfSk7XG5cbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcbiAgICB0aGlzLnZwY0NpZHJCbG9jayA9IHRoaXMucmVzb3VyY2UuYXR0ckNpZHJCbG9jaztcbiAgICBpZiAodnBjT3B0aW9ucy5pcHY0Q2lkckJsb2NrKSB7XG4gICAgICB0aGlzLmlwdjRDaWRyQmxvY2sgPSB2cGNPcHRpb25zLmlwdjRDaWRyQmxvY2s7XG4gICAgfVxuICAgIHRoaXMuaXB2NkNpZHJCbG9ja3MgPSB0aGlzLnJlc291cmNlLmF0dHJJcHY2Q2lkckJsb2NrcztcbiAgICB0aGlzLnZwY0lkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeF9hcGkuVVNFX1JFU09VUkNFSURfRk9SX1ZQQ1YyX01JR1JBVElPTikgP1xuICAgICAgdGhpcy5yZXNvdXJjZS5yZWYgOiB0aGlzLnJlc291cmNlLmF0dHJWcGNJZDtcbiAgICB0aGlzLnZwY0FybiA9IEFybi5mb3JtYXQoe1xuICAgICAgc2VydmljZTogJ2VjMicsXG4gICAgICByZXNvdXJjZTogJ3ZwYycsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMudnBjSWQsXG4gICAgfSwgdGhpcy5zdGFjayk7XG4gICAgdGhpcy5yZWdpb24gPSB0aGlzLnN0YWNrLnJlZ2lvbjtcbiAgICB0aGlzLm93bmVyQWNjb3VudElkID0gdGhpcy5zdGFjay5hY2NvdW50O1xuICAgIC8vIEFkZCB0YWcgdG8gdGhlIFZQQyB3aXRoIHRoZSBuYW1lIHByb3ZpZGVkIGluIHByb3BlcnRpZXNcbiAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMudnBjTmFtZSB8fCB0aGlzLm5vZGUucGF0aCk7XG4gICAgaWYgKHByb3BzLnNlY29uZGFyeUFkZHJlc3NCbG9ja3MpIHtcbiAgICAgIGNvbnN0IHNlY29uZGFyeUFkZHJlc3NCbG9ja3M6IElJcEFkZHJlc3Nlc1tdID0gcHJvcHMuc2Vjb25kYXJ5QWRkcmVzc0Jsb2NrcztcblxuICAgICAgZm9yIChjb25zdCBzZWNvbmRhcnlBZGRyZXNzQmxvY2sgb2Ygc2Vjb25kYXJ5QWRkcmVzc0Jsb2Nrcykge1xuICAgICAgICBjb25zdCBzZWNvbmRhcnlWcGNPcHRpb25zOiBWcGNDaWRyT3B0aW9ucyA9IHNlY29uZGFyeUFkZHJlc3NCbG9jay5hbGxvY2F0ZVZwY0NpZHIoKTtcbiAgICAgICAgaWYgKCFzZWNvbmRhcnlWcGNPcHRpb25zLmNpZHJCbG9ja05hbWUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NpZHIgQmxvY2sgTmFtZSBpcyByZXF1aXJlZCB0byBjcmVhdGUgc2Vjb25kYXJ5IElQIGFkZHJlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWNvbmRhcnlWcGNPcHRpb25zLmFtYXpvblByb3ZpZGVkIHx8IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NklwYW1Qb29sIHx8IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NlBvb2xJZCkge1xuICAgICAgICAgIHRoaXMudXNlSXB2NiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdmFsaWRhdGUgQ0lEUiByYW5nZXMgcGVyIFJGQyAxOTE4XG4gICAgICAgIGlmIChzZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRDaWRyQmxvY2shKSB7XG4gICAgICAgICAgY29uc3QgcmV0ID0gdmFsaWRhdGVJcHY0YWRkcmVzcyhzZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRDaWRyQmxvY2ssIHRoaXMucmVzb3VyY2UuY2lkckJsb2NrKTtcbiAgICAgICAgICBpZiAocmV0ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDSURSIGJsb2NrIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBSRkMgMTkxOCByYW5nZSBpbiB0aGUgVlBDJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycyEpIHtcbiAgICAgICAgICB0aGlzLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycz8ucHVzaCguLi5zZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdnBjQ2lkckJsb2NrID0gbmV3IFZQQ0NpZHJCbG9jayh0aGlzLCBzZWNvbmRhcnlWcGNPcHRpb25zLmNpZHJCbG9ja05hbWUsIHtcbiAgICAgICAgICB2cGNJZDogdGhpcy52cGNJZCxcbiAgICAgICAgICBjaWRyQmxvY2s6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NENpZHJCbG9jayxcbiAgICAgICAgICBpcHY0SXBhbVBvb2xJZDogc2Vjb25kYXJ5VnBjT3B0aW9ucy5pcHY0SXBhbVBvb2w/LmlwYW1Qb29sSWQsXG4gICAgICAgICAgaXB2NE5ldG1hc2tMZW5ndGg6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NE5ldG1hc2tMZW5ndGgsXG4gICAgICAgICAgaXB2Nk5ldG1hc2tMZW5ndGg6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2Nk5ldG1hc2tMZW5ndGgsXG4gICAgICAgICAgaXB2NklwYW1Qb29sSWQ6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NklwYW1Qb29sPy5pcGFtUG9vbElkLFxuICAgICAgICAgIGFtYXpvblByb3ZpZGVkSXB2NkNpZHJCbG9jazogc2Vjb25kYXJ5VnBjT3B0aW9ucy5hbWF6b25Qcm92aWRlZCxcbiAgICAgICAgICAvLyBCWU9JUCBJUHY2IEFkZHJlc3NcbiAgICAgICAgICBpcHY2Q2lkckJsb2NrOiBzZWNvbmRhcnlWcGNPcHRpb25zPy5pcHY2Q2lkckJsb2NrLFxuICAgICAgICAgIC8vIEJZT0lQIFBvb2wgZm9yIElQdjYgYWRkcmVzc1xuICAgICAgICAgIGlwdjZQb29sOiBzZWNvbmRhcnlWcGNPcHRpb25zPy5pcHY2UG9vbElkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNlY29uZGFyeVZwY09wdGlvbnMuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygc2Vjb25kYXJ5VnBjT3B0aW9ucy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIHZwY0NpZHJCbG9jay5ub2RlLmFkZERlcGVuZGVuY3koZGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ3JlYXRlIHNlY29uZGFyeSBibG9ja3MgZm9yIElwdjQgYW5kIElwdjZcbiAgICAgICAgdGhpcy5zZWNvbmRhcnlDaWRyQmxvY2s/LnB1c2godnBjQ2lkckJsb2NrKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbXB0eSBhcnJheSBmb3IgaXNvbGF0ZWQgc3VibmV0c1xuICAgICAqL1xuICAgIHRoaXMuaXNvbGF0ZWRTdWJuZXRzID0gbmV3IEFycmF5PElTdWJuZXQ+O1xuXG4gICAgLyoqXG4gICAgICogRW1wdHkgYXJyYXkgZm9yIHB1YmxpYyBzdWJuZXRzXG4gICAgICovXG4gICAgdGhpcy5wdWJsaWNTdWJuZXRzID0gbmV3IEFycmF5PElTdWJuZXQ+O1xuXG4gICAgLyoqXG4gICAgICogRW1wdHkgYXJyYXkgZm9yIHByaXZhdGUgc3VibmV0c1xuICAgICAqL1xuICAgIHRoaXMucHJpdmF0ZVN1Ym5ldHMgPSBuZXcgQXJyYXk8SVN1Ym5ldD47XG5cbiAgICAvKipcbiAgICAgKiBEZXBlbmRhYmxlIHRoYXQgY2FuIGJlIGRlcGVuZGVkIHVwb24gdG8gZm9yY2UgaW50ZXJuZXQgY29ubmVjdGl2aXR5IGVzdGFibGlzaGVkIG9uIHRoZSBWUENcbiAgICAgKiBBZGQgaWd3IHRvIHRoaXMgaWYgaXRzIGEgcHVibGljIHN1Ym5ldFxuICAgICAqL1xuICAgIHRoaXMuaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZCA9IHRoaXMuX2ludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQ7XG4gIH1cbn1cbi8qKlxuICogU3VwcG9ydHMgYXNzaWduaW5nIElQdjQgYWRkcmVzcyB0byBWUENcbiAqL1xuY2xhc3MgaXB2NENpZHJBbGxvY2F0aW9uIGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjaWRyQmxvY2s6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBwcm9wcz86IHsgY2lkckJsb2NrTmFtZTogc3RyaW5nfSkge1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIENJRFIgYmxvY2sgcHJvdmlkZWQgYnkgdGhlIHVzZXIgdG8gc2V0IElQdjRcbiAgICovXG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjRDaWRyQmxvY2s6IHRoaXMuY2lkckJsb2NrLFxuICAgICAgY2lkckJsb2NrTmFtZTogdGhpcy5wcm9wcz8uY2lkckJsb2NrTmFtZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogU3VwcG9ydHMgQW1hem9uIFByb3ZpZGVkIElwdjYgcmFuZ2VzXG4gKi9cbmNsYXNzIEFtYXpvblByb3ZpZGVkIGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gQW1hem9uLXByb3ZpZGVkIElQdjYgQ0lEUiByYW5nZSBmb3IgYSBWUEMuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgSUlwQWRkcmVzc2VzIGludGVyZmFjZSBhbmQgaXMgdXNlZCB0byBhbGxvY2F0ZSBhbiBBbWF6b24tcHJvdmlkZWRcbiAgICogSVB2NiBDSURSIHJhbmdlIGZvciBhIFZQQy4gV2hlbiBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGlzIHVzZWQgdG8gYWxsb2NhdGUgdGhlIFZQQyBDSURSLFxuICAgKiBBbWF6b24gd2lsbCBhdXRvbWF0aWNhbGx5IGFzc2lnbiBhbiBJUHY2IENJRFIgcmFuZ2UgZnJvbSBpdHMgcG9vbCBvZiBhdmFpbGFibGUgYWRkcmVzc2VzLlxuICAgKi9cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiB7IGNpZHJCbG9ja05hbWU6IHN0cmluZ30pIHt9XG5cbiAgYWxsb2NhdGVWcGNDaWRyKCk6IFZwY0NpZHJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgYW1hem9uUHJvdmlkZWQ6IHRydWUsXG4gICAgICBjaWRyQmxvY2tOYW1lOiB0aGlzLnByb3BzLmNpZHJCbG9ja05hbWUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVB2NCBhZGRyZXNzIHJhbmdlIG1hbmFnZWQgYnkgQVdTIElQIEFkZHJlc3MgTWFuYWdlciAoSVBBTSkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbS5odG1sXG4gKi9cbmNsYXNzIElwYW1JcHY2IGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogSXBhbU9wdGlvbnMpIHtcbiAgfVxuXG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjZOZXRtYXNrTGVuZ3RoOiB0aGlzLnByb3BzLm5ldG1hc2tMZW5ndGgsXG4gICAgICBpcHY2SXBhbVBvb2w6IHRoaXMucHJvcHMuaXBhbVBvb2wsXG4gICAgICBkZXBlbmRlbmNpZXM6IHRoaXMucHJvcHMuaXBhbVBvb2w/LmlwYW1DaWRycy5tYXAoYyA9PiBjIGFzIENmblJlc291cmNlKSxcbiAgICAgIGNpZHJCbG9ja05hbWU6IHRoaXMucHJvcHMuY2lkckJsb2NrTmFtZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJUHY0IGFkZHJlc3MgcmFuZ2UgbWFuYWdlZCBieSBBV1MgSVAgQWRkcmVzcyBNYW5hZ2VyIChJUEFNKS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtLmh0bWxcbiAqL1xuY2xhc3MgSXBhbUlwdjQgaW1wbGVtZW50cyBJSXBBZGRyZXNzZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBJcGFtT3B0aW9ucykge1xuICB9XG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjROZXRtYXNrTGVuZ3RoOiB0aGlzLnByb3BzLm5ldG1hc2tMZW5ndGgsXG4gICAgICBpcHY0SXBhbVBvb2w6IHRoaXMucHJvcHMuaXBhbVBvb2wsXG4gICAgICBjaWRyQmxvY2tOYW1lOiB0aGlzLnByb3BzPy5jaWRyQmxvY2tOYW1lLFxuICAgICAgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzOiB0aGlzLnByb3BzLmlwYW1Qb29sPy5pcGFtSXB2NENpZHJzLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBTdXBwb3J0cyBhc3NpZ25pbmcgSVB2NiBhZGRyZXNzIHRvIFZQQyBpbiBhbiBhZGRyZXNzIHBvb2xcbiAqL1xuY2xhc3MgSXB2NlBvb2wgaW1wbGVtZW50cyBJSXBBZGRyZXNzZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBJcHY2UG9vbFNlY29uZGFyeUFkZHJlc3NQcm9wcykge1xuICB9XG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjZDaWRyQmxvY2s6IHRoaXMucHJvcHMuaXB2NkNpZHJCbG9jayxcbiAgICAgIGlwdjZQb29sSWQ6IHRoaXMucHJvcHMuaXB2NlBvb2xJZCxcbiAgICAgIGNpZHJCbG9ja05hbWU6IHRoaXMucHJvcHM/LmNpZHJCbG9ja05hbWUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSB0byBjcmVhdGUgTDIgZm9yIFZQQyBDaWRyIEJsb2NrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZQQ0NpZHJCbG9jayB7XG4gIC8qKlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSXB2NlxuICAgKi9cbiAgcmVhZG9ubHkgYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrPyA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRhcnkgSVB2NCBDSURSIEJsb2NrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gQ0lEUiBibG9jayBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJUEFNIHBvb2wgZm9yIElQdjYgYWRkcmVzcyB0eXBlXG4gICAqL1xuICByZWFkb25seSBpcHY2SXBhbVBvb2xJZCA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQQU0gcG9vbCBmb3IgSVB2NCBhZGRyZXNzIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGlwdjRJcGFtUG9vbElkID86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElQdjYgQ0lEUiBibG9jayBmcm9tIHRoZSBzcGVjaWZpZWQgSVB2NiBhZGRyZXNzIHBvb2wuXG4gICAqL1xuICByZWFkb25seSBpcHY2Q2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIElQdjYgYWRkcmVzcyBwb29sIGZyb20gd2hpY2ggdG8gYWxsb2NhdGUgdGhlIElQdjYgQ0lEUiBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIFZQQ0NpZHJCbG9jayB1c2VkIGZvciBkZWZpbmluZyBhIG5ldyBDSURSIEJsb2NrXG4gKiBhbmQgYWxzbyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIENJRFJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWUENDaWRyQmxvY2thdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIEFtYXpvbiBQcm92aWRlZCBJcHY2XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2s/IDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNlY29uZGFyeSBJUHY0IENJRFIgQmxvY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBDSURSIGJsb2NrIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBjaWRyQmxvY2s/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRhcnkgSVB2NCBDSURSIEJsb2NrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gQ0lEUiBibG9jayBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmV0IG1hc2sgbGVuZ3RoIGZvciBJUHY2IGFkZHJlc3MgdHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIE5ldCBtYXNrIGxlbmd0aCBjb25maWd1cmVkIGZvciBJUHY2XG4gICAqL1xuICByZWFkb25seSBpcHY2TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogTmV0IG1hc2sgbGVuZ3RoIGZvciBJUHY0IGFkZHJlc3MgdHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIE5ldCBtYXNrIGxlbmd0aCBjb25maWd1cmVkIGZvciBJUHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSVBBTSBwb29sIGZvciBJUHY2IGFkZHJlc3MgdHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIElQQU0gcG9vbCBJZCBwcm92aWRlZCBmb3IgSVB2NlxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NklwYW1Qb29sSWQgPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJUEFNIHBvb2wgZm9yIElQdjQgYWRkcmVzcyB0eXBlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gSVBBTSBwb29sIElkIHByb3ZpZGVkIGZvciBJUHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0SXBhbVBvb2xJZCA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQdjQgQ0lEUiBwcm92aXNpb25lZCB1bmRlciBwb29sXG4gICAqIFJlcXVpcmVkIHRvIGNoZWNrIGZvciBvdmVybGFwcGluZyBDSURScyBhZnRlciBwcm92aXNpb25pbmdcbiAgICogaXMgY29tcGxldGUgdW5kZXIgSVBBTSBwb29sXG4gICAqIEBkZWZhdWx0IC0gbm8gSVBBTSBJUHY0IENJRFIgcmFuZ2UgaXMgcHJvdmlzaW9uZWQgdXNpbmcgSVBBTVxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBJUHY2IENJRFIgYmxvY2sgZnJvbSB0aGUgc3BlY2lmaWVkIElQdjYgYWRkcmVzcyBwb29sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIElQdjYgQ0lEUiBibG9jayBhc3NvY2lhdGVkIHdpdGggVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NkNpZHJCbG9jaz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBJUHY2IGFkZHJlc3MgcG9vbCBmcm9tIHdoaWNoIHRvIGFsbG9jYXRlIHRoZSBJUHY2IENJRFIgYmxvY2suXG4gICAqIE5vdGU6IEJZT0lQIFBvb2wgSUQgaXMgZGlmZmVyZW50IHRoYW4gSVBBTSBQb29sIElELlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIEJZT0lQIHBvb2wgYXNzb2NpYXRlZCB3aXRoIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBWUENDaWRyQmxvY2tcbiAqL1xuaW50ZXJmYWNlIFZQQ0NpZHJCbG9ja1Byb3BzIGV4dGVuZHMgVlBDQ2lkckJsb2NrYXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElkIGZvciBhc3NvY2lhdGluZyBDSURSIEJsb2NrIGFzIGEgc2Vjb25kYXJ5IGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgTDIgdG8gZGVmaW5lIGEgbmV3IFZQQyBDSURSIEJsb2NrXG4gKiBAaW50ZXJuYWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgVlBDQ2lkckJsb2NrIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVlBDQ2lkckJsb2NrIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLlZQQ0NpZHJCbG9jayc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBWUEMgQ0lEUiBCbG9ja1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVlBDQ2lkckJsb2NrYXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVlBDQ2lkckJsb2NrYXR0cmlidXRlcykgOiBJVlBDQ2lkckJsb2NrIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElWUENDaWRyQmxvY2sge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNpZHJCbG9jayA9IHByb3BzLmNpZHJCbG9jaztcbiAgICAgIHB1YmxpYyByZWFkb25seSBhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2sgPzogYm9vbGVhbiA9IHByb3BzLmFtYXpvblByb3ZpZGVkSXB2NkNpZHJCbG9jaztcbiAgICAgIHB1YmxpYyByZWFkb25seSBpcHY2SXBhbVBvb2xJZCA/OiBzdHJpbmcgPSBwcm9wcy5pcHY2SXBhbVBvb2xJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBpcHY0SXBhbVBvb2xJZCA/OiBzdHJpbmcgPSBwcm9wcy5pcHY0SXBhbVBvb2xJZDtcbiAgICAgIC8vIEJZT0lQIFBvb2wgQXR0cmlidXRlc1xuICAgICAgcHVibGljIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nID0gcHJvcHMuaXB2NlBvb2w7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaXB2NkNpZHJCbG9jaz86IHN0cmluZyA9IHByb3BzLmlwdjZDaWRyQmxvY2s7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmblZQQ0NpZHJCbG9jaztcblxuICBwdWJsaWMgcmVhZG9ubHkgY2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2s/OiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWFkb25seSBpcHY2SXBhbVBvb2xJZD86IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgaXB2NElwYW1Qb29sSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlwdjZDaWRyQmxvY2s/OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWUENDaWRyQmxvY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5WUENDaWRyQmxvY2sodGhpcywgaWQsIHByb3BzKTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcbiAgICB0aGlzLmNpZHJCbG9jayA9IHByb3BzLmNpZHJCbG9jaztcbiAgICB0aGlzLmlwdjZJcGFtUG9vbElkID0gcHJvcHMuaXB2NklwYW1Qb29sSWQ7XG4gICAgdGhpcy5pcHY0SXBhbVBvb2xJZCA9IHByb3BzLmlwdjRJcGFtUG9vbElkO1xuICAgIHRoaXMuYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrID0gcHJvcHMuYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrO1xuICAgIC8vIEJZT0lQIFBvb2wgYW5kIENJRFIgQmxvY2tcbiAgICB0aGlzLmlwdjZDaWRyQmxvY2sgPSBwcm9wcy5pcHY2Q2lkckJsb2NrO1xuICAgIHRoaXMuaXB2NlBvb2wgPSBwcm9wcy5pcHY2UG9vbDtcbiAgfVxufVxuXG4vLyBAaW50ZXJuYWwgRmlyc3QgdHdvIE9jdGV0IHRvIHZlcmlmeSBSRkMgMTkxOFxuaW50ZXJmYWNlIElQYWRkcmVzc0NvbmZpZyB7XG4gIG9jdGV0MTogbnVtYmVyO1xuICBvY3RldDI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgd2hldGhlciBhIHNlY29uZGFyeSBJUHY0IGFkZHJlc3MgaXMgd2l0aGluIHRoZSBzYW1lIHByaXZhdGUgSVAgYWRkcmVzcyByYW5nZSBhcyB0aGUgcHJpbWFyeSBJUHY0IGFkZHJlc3MuXG4gKlxuICogQHBhcmFtIGNpZHIxIFRoZSBzZWNvbmRhcnkgSVB2NCBDSURSIGJsb2NrIHRvIGJlIHZhbGlkYXRlZC5cbiAqIEBwYXJhbSBjaWRyMiBUaGUgcHJpbWFyeSBJUHY0IENJRFIgYmxvY2sgdG8gdmFsaWRhdGUgYWdhaW5zdC5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHNlY29uZGFyeSBJUHY0IENJRFIgYmxvY2sgaXMgd2l0aGluIHRoZSBzYW1lIHByaXZhdGUgSVAgYWRkcmVzcyByYW5nZSBhcyB0aGUgcHJpbWFyeSBJUHY0IENJRFIgYmxvY2ssIGZhbHNlIG90aGVyd2lzZS5cbiAqIEBpbnRlcm5hbFxuICogVGhlIHByaXZhdGUgSVAgYWRkcmVzcyByYW5nZXMgYXJlIGRlZmluZWQgYnkgUkZDIDE5MTggYXMgMTAuMC4wLjAvOCwgMTcyLjE2LjAuMC8xMiwgYW5kIDE5Mi4xNjguMC4wLzE2LlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUlwdjRhZGRyZXNzKGNpZHIxPzogc3RyaW5nLCBjaWRyMj86IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWNpZHIxIHx8ICFjaWRyMikge1xuICAgIHJldHVybiBmYWxzZTsgLy8gSGFuZGxlIGNhc2VzIHdoZXJlIENJRFIgcmFuZ2VzIGFyZSBub3QgcHJvdmlkZWRcbiAgfVxuXG4gIGNvbnN0IG9jdGV0c0NpZHIxOiBudW1iZXJbXSA9IGNpZHIxLnNwbGl0KCcuJykubWFwKG9jdGV0ID0+IHBhcnNlSW50KG9jdGV0LCAxMCkpO1xuICBjb25zdCBvY3RldHNDaWRyMjogbnVtYmVyW10gPSBjaWRyMi5zcGxpdCgnLicpLm1hcChvY3RldCA9PiBwYXJzZUludChvY3RldCwgMTApKTtcblxuICBpZiAob2N0ZXRzQ2lkcjEubGVuZ3RoICE9PSA0IHx8IG9jdGV0c0NpZHIyLmxlbmd0aCAhPT0gNCkge1xuICAgIHJldHVybiBmYWxzZTsgLy8gSGFuZGxlIGludmFsaWQgQ0lEUiByYW5nZXNcbiAgfVxuXG4gIGNvbnN0IGlwMTogSVBhZGRyZXNzQ29uZmlnID0ge1xuICAgIG9jdGV0MTogb2N0ZXRzQ2lkcjFbMF0sXG4gICAgb2N0ZXQyOiBvY3RldHNDaWRyMVsxXSxcbiAgfTtcblxuICBjb25zdCBpcDI6IElQYWRkcmVzc0NvbmZpZyA9IHtcbiAgICBvY3RldDE6IG9jdGV0c0NpZHIyWzBdLFxuICAgIG9jdGV0Mjogb2N0ZXRzQ2lkcjJbMV0sXG4gIH07XG5cbiAgcmV0dXJuIChpcDEub2N0ZXQxID09PSAxMCAmJiBpcDIub2N0ZXQxID09PSAxMCkgfHxcbiAgICAoaXAxLm9jdGV0MSA9PT0gMTkyICYmIGlwMS5vY3RldDIgPT09IDE2OCAmJiBpcDIub2N0ZXQxID09PSAxOTIgJiYgaXAyLm9jdGV0MiA9PT0gMTY4KSB8fFxuICAgIChpcDEub2N0ZXQxID09PSAxNzIgJiYgaXAxLm9jdGV0MiA9PT0gMTYgJiYgaXAyLm9jdGV0MSA9PT0gMTcyICYmIGlwMi5vY3RldDIgPT09IDE2KTsgLy8gQ0lEUiByYW5nZXMgYmVsb25nIHRvIHNhbWUgcHJpdmF0ZSBJUCBhZGRyZXNzIHJhbmdlc1xufVxuIl19
|
|
630
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLXYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLXYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFrRDtBQUNsRCxpREFBMkc7QUFDM0csMkNBQStGO0FBQy9GLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFDMUUsMkNBQXFFO0FBRXJFLDJDQUFzRTtBQUN0RSwrQ0FBa0Q7QUFrQ2xEOztHQUVHO0FBQ0gsTUFBYSxXQUFXOztJQUN0Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxLQUE2Qjs7Ozs7Ozs7OztRQUNoRSxPQUFPLElBQUksa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2hEO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQTRCOzs7Ozs7Ozs7O1FBQ2pELE9BQU8sSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDdEM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBNEI7Ozs7Ozs7Ozs7UUFDakQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUN0QztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQTRCOzs7Ozs7Ozs7O1FBQzNELE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBb0M7Ozs7Ozs7Ozs7UUFDOUQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1Qjs7QUFsQ0gsa0NBbUNDO0FBcUdEOztHQUVHO0FBQ0gsTUFBTSxRQUFRLEdBQVcsTUFBTSxDQUFDO0FBcUhoQzs7Ozs7O0dBTUc7SUFFVSxLQUFLOzRCQURqQixvQ0FBa0I7Ozs7c0JBQ1EsdUJBQVM7cUJBQWpC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X2FwaSwgcmVnaW9uX2luZm8gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5WUEMsIENmblZQQ0NpZHJCbG9jaywgRGVmYXVsdEluc3RhbmNlVGVuYW5jeSwgSVN1Ym5ldCwgU3VibmV0VHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQXJuLCBDZm5SZXNvdXJjZSwgRmVhdHVyZUZsYWdzLCBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFRhZ3MgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IENvbnN0cnVjdCwgRGVwZW5kZW5jeUdyb3VwLCBJRGVwZW5kYWJsZSB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSXBhbU9wdGlvbnMsIElJcGFtUG9vbCB9IGZyb20gJy4vaXBhbSc7XG5pbXBvcnQgeyBJU3VibmV0VjIsIFN1Ym5ldFYyLCBTdWJuZXRWMkF0dHJpYnV0ZXMgfSBmcm9tICcuL3N1Ym5ldC12Mic7XG5pbXBvcnQgeyBJVnBjVjIsIFZwY1YyQmFzZSB9IGZyb20gJy4vdnBjLXYyLWJhc2UnO1xuXG4vKipcbiAqIEFkZGl0aW9uYWwgcHJvcHMgbmVlZGVkIGZvciBzZWNvbmRhcnkgQWRkcmVzc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY29uZGFyeUFkZHJlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCB0byBzZXQgU2Vjb25kYXJ5IGNpZHIgYmxvY2sgcmVzb3VyY2UgbmFtZVxuICAgKiBpbiBvcmRlciB0byBnZW5lcmF0ZSB1bmlxdWUgbG9naWNhbCBpZCBmb3IgdGhlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFkZGl0aW9uYWwgcHJvcHMgbmVlZGVkIGZvciBCWU9JUCBJUHY2IGFkZHJlc3MgcHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcHY2UG9vbFNlY29uZGFyeUFkZHJlc3NQcm9wcyBleHRlbmRzIFNlY29uZGFyeUFkZHJlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgSVB2NiBhZGRyZXNzIHBvb2wgZnJvbSB3aGljaCB0byBhbGxvY2F0ZSB0aGUgSVB2NiBDSURSIGJsb2NrLlxuICAgKiBOb3RlOiBCWU9JUCBQb29sIElEIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBJUEFNIFBvb2wgSUQuXG4gICAqIFRvIG9uYm9hcmQgeW91ciBJUHY2IGFkZHJlc3MgcmFuZ2UgdG8geW91ciBBV1MgYWNjb3VudCBwbGVhc2UgcmVmZXIgdG8gdGhlIGJlbG93IGRvY3VtZW50YXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnlvaXAtb25ib2FyZC5odG1sXG4gICAqL1xuICByZWFkb25seSBpcHY2UG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmFsaWQgSVB2NiBDSURSIGJsb2NrIGZyb20gdGhlIElQdjYgYWRkcmVzcyBwb29sIG9uYm9hcmRlZCB0byBBV1MgdXNpbmcgQllPSVAuXG4gICAqIFRoZSBtb3N0IHNwZWNpZmljIElQdjYgYWRkcmVzcyByYW5nZSB0aGF0IHlvdSBjYW4gYnJpbmcgaXMgLzQ4IGZvciBDSURScyB0aGF0IGFyZSBwdWJsaWNseSBhZHZlcnRpc2FibGVcbiAgICogYW5kIC81NiBmb3IgQ0lEUnMgdGhhdCBhcmUgbm90IHB1YmxpY2x5IGFkdmVydGlzYWJsZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWJ5b2lwLmh0bWwjYnlvaXAtZGVmaW5pdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGlwdjZDaWRyQmxvY2s6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJcEFkZHJlc3Mgb3B0aW9ucyB0byBkZWZpbmUgVlBDIFYyXG4gKi9cbmV4cG9ydCBjbGFzcyBJcEFkZHJlc3NlcyB7XG4gIC8qKlxuICAgKiBBbiBJUHY0IENJRFIgUmFuZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXB2NChpcHY0Q2lkcjogc3RyaW5nLCBwcm9wcz86IFNlY29uZGFyeUFkZHJlc3NQcm9wcyk6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBpcHY0Q2lkckFsbG9jYXRpb24oaXB2NENpZHIsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBJcHY0IElwYW0gUG9vbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpcHY0SXBhbShpcHY0SXBhbU9wdGlvbnM6IElwYW1PcHRpb25zKTogSUlwQWRkcmVzc2VzIHtcbiAgICByZXR1cm4gbmV3IElwYW1JcHY0KGlwdjRJcGFtT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQW4gSXB2NiBJcGFtIFBvb2xcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXB2NklwYW0oaXB2NklwYW1PcHRpb25zOiBJcGFtT3B0aW9ucyk6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBJcGFtSXB2NihpcHY2SXBhbU9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFtYXpvbiBQcm92aWRlZCBJcHY2IHJhbmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFtYXpvblByb3ZpZGVkSXB2Nihwcm9wczogU2Vjb25kYXJ5QWRkcmVzc1Byb3BzKSA6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBBbWF6b25Qcm92aWRlZChwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQSBCWU9JUCBJUHY2IGFkZHJlc3MgcG9vbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpcHY2QnlvaXBQb29sKHByb3BzOiBJcHY2UG9vbFNlY29uZGFyeUFkZHJlc3NQcm9wcyk6IElJcEFkZHJlc3NlcyB7XG4gICAgcmV0dXJuIG5ldyBJcHY2UG9vbChwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zb2xpZGF0ZWQgcmV0dXJuIHBhcmFtZXRlcnMgdG8gcGFzcyB0byBWUEMgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ2lkck9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBJUHY0IENJRFIgQmxvY2tcbiAgICpcbiAgICogQGRlZmF1bHQgJzEwLjAuMC4wLzE2J1xuICAgKi9cbiAgcmVhZG9ubHkgaXB2NENpZHJCbG9jaz86IHN0cmluZztcblxuICAvKipcbiAgICogQ0lEUiBNYXNrIGZvciBWcGNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgSVBBTSBJcHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NCBJUEFNIFBvb2xcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgSVBBTSBJcHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0SXBhbVBvb2w/OiBJSXBhbVBvb2w7XG5cbiAgLyoqXG4gICAqIENJRFIgTWFzayBmb3IgVnBjXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gT25seSByZXF1aXJlZCB3aGVuIHVzaW5nIEFXUyBJcGFtXG4gICAqL1xuICByZWFkb25seSBpcHY2TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSXB2NiBJUEFNIHBvb2wgaWQgZm9yIFZQQyByYW5nZSwgY2FuIG9ubHkgYmUgZGVmaW5lZFxuICAgKiB1bmRlciBwdWJsaWMgc2NvcGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwb29sIGlkXG4gICAqL1xuICByZWFkb25seSBpcHY2SXBhbVBvb2w/OiBJSXBhbVBvb2w7XG5cbiAgLyoqXG4gICAqIFVzZSBhbWF6b24gcHJvdmlkZWQgSVAgcmFuZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFtYXpvblByb3ZpZGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwZW5kZW5jeSB0byBhc3NvY2lhdGUgSXB2NiBDSURSIGJsb2NrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVwZW5kZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jaWVzPzogQ2ZuUmVzb3VyY2VbXTtcblxuICAvKipcbiAgICogUmVxdWlyZWQgdG8gc2V0IFNlY29uZGFyeSBjaWRyIGJsb2NrIHJlc291cmNlIG5hbWVcbiAgICogaW4gb3JkZXIgdG8gZ2VuZXJhdGUgdW5pcXVlIGxvZ2ljYWwgaWQgZm9yIHRoZSByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuYW1lIGZvciBwcmltYXJ5IGFkZHJlc3Nlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSVB2NCBDSURSIHByb3Zpc2lvbmVkIHVuZGVyIHBvb2xcbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIG92ZXJsYXBwaW5nIENJRFJzIGFmdGVyIHByb3Zpc2lvbmluZ1xuICAgKiBpcyBjb21wbGV0ZSB1bmRlciBJUEFNIHBvb2xcbiAgICogQGRlZmF1bHQgLSBubyBJUEFNIElQdjQgQ0lEUiByYW5nZSBpcyBwcm92aXNpb25lZCB1c2luZyBJUEFNXG4gICAqL1xuICByZWFkb25seSBpcHY0SXBhbVByb3Zpc2lvbmVkQ2lkcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSVB2NiBDSURSIGJsb2NrIGZyb20gdGhlIEJPWUlQIElQdjYgYWRkcmVzcyBwb29sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGlwdjZDaWRyQmxvY2s/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBCWU9JUCBJUHY2IGFkZHJlc3MgcG9vbCBmcm9tIHdoaWNoIHRvIGFsbG9jYXRlIHRoZSBJUHY2IENJRFIgYmxvY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NlBvb2xJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGlwIGFkZHJlc3MgYWxsb2NhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIElQQWRyZXNzIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXBBZGRyZXNzZXMge1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZGVmaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBsb2dpYyBvZlxuICAgKiBJUCBhZGRyZXNzIGFsbG9jYXRpb25cbiAgICovXG4gIGFsbG9jYXRlVnBjQ2lkcigpIDogVnBjQ2lkck9wdGlvbnM7XG5cbn1cblxuLyoqXG4gKiBOYW1lIHRhZyBjb25zdGFudFxuICovXG5jb25zdCBOQU1FX1RBRzogc3RyaW5nID0gJ05hbWUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIFZQQ1xuICogW2Rpc2FibGUtYXdzbGludDpmcm9tLW1ldGhvZF1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNWMlByb3BzIHtcblxuICAvKiogQSBtdXN0IElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIFZQQ1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtY2lkci1ibG9ja3MuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElwdjQgQ0lEUiBCbG9jayAoJzEwLjAuMC4wLzE2JylcbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnlBZGRyZXNzQmxvY2s/OiBJSXBBZGRyZXNzZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRhcnkgQ0lEUiBibG9ja3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBWUEMuXG4gICAqIENhbiBiZSAgSVB2NCBvciBJUHY2LCB0d28gSVB2NCByYW5nZXMgbXVzdCBmb2xsb3cgUkZDIzE5MTggY29udmVudGlvblxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL2xhdGVzdC91c2VyZ3VpZGUvdnBjLWNpZHItYmxvY2tzLmh0bWwjdnBjLXJlc2l6ZX0uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc2Vjb25kYXJ5IElQIGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeUFkZHJlc3NCbG9ja3M/OiBJSXBBZGRyZXNzZXNbXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlcyBsYXVuY2hlZCBpbiB0aGUgVlBDIGdldCBETlMgaG9zdG5hbWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEbnNIb3N0bmFtZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgRE5TIHJlc29sdXRpb24gaXMgc3VwcG9ydGVkIGZvciB0aGUgVlBDLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEbnNTdXBwb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdGVuYW5jeSBvZiBpbnN0YW5jZXMgbGF1bmNoZWQgaW50byB0aGUgVlBDLlxuICAgKlxuICAgKiBCeSBzZXR0aW5nIHRoaXMgdG8gZGVkaWNhdGVkIHRlbmFuY3ksIGluc3RhbmNlcyB3aWxsIGJlIGxhdW5jaGVkIG9uXG4gICAqIGhhcmR3YXJlIGRlZGljYXRlZCB0byBhIHNpbmdsZSBBV1MgY3VzdG9tZXIsIHVubGVzcyBzcGVjaWZpY2FsbHkgc3BlY2lmaWVkXG4gICAqIGF0IGluc3RhbmNlIGxhdW5jaCB0aW1lLiBQbGVhc2Ugbm90ZSwgbm90IGFsbCBpbnN0YW5jZSB0eXBlcyBhcmUgdXNhYmxlXG4gICAqIHdpdGggRGVkaWNhdGVkIHRlbmFuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IERlZmF1bHRJbnN0YW5jZVRlbmFuY3kuRGVmYXVsdCAoc2hhcmVkKSB0ZW5hbmN5XG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0SW5zdGFuY2VUZW5hbmN5PzogRGVmYXVsdEluc3RhbmNlVGVuYW5jeTtcblxuICAvKipcbiAgICogUGh5c2ljYWwgbmFtZSBmb3IgdGhlIFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG9nZW5lcmF0ZWQgYnkgQ0RLXG4gICAqL1xuICByZWFkb25seSB2cGNOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gaW1wb3J0IGEgVlBDIGNyZWF0ZWQgb3V0c2lkZSBvZiBDREsgc3RhY2tcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNWMkF0dHJpYnV0ZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIElEXG4gICAqIFJlZmVycyB0byBwaHlzaWNhbCBJZCBvZiB0aGUgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiBpbiB3aGljaCBpbXBvcnRlZCBWUEMgaXMgaG9zdGVkXG4gICAqIHJlcXVpcmVkIGluIGNhc2Ugb2YgY3Jvc3MgcmVnaW9uIFZQQ1xuICAgKiBhcyBnaXZlbiB2YWx1ZSB3aWxsIGJlIHVzZWQgdG8gc2V0IGZpZWxkIHJlZ2lvbiBmb3IgaW1wb3J0ZWQgVlBDLFxuICAgKiB3aGljaCB0aGVuIGxhdGVyIGNhbiBiZSB1c2VkIGZvciBlc3RhYmxpc2hpbmcgVlBDIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjb25zdHJ1Y3RlZCB3aXRoIHN0YWNrIHJlZ2lvbiB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEFXUyBhY2NvdW50IHRoYXQgb3ducyB0aGUgaW1wb3J0ZWQgVlBDXG4gICAqIHJlcXVpcmVkIGluIGNhc2Ugb2YgY3Jvc3MgYWNjb3VudCBWUENcbiAgICogYXMgZ2l2ZW4gdmFsdWUgd2lsbCBiZSB1c2VkIHRvIHNldCBmaWVsZCBhY2NvdW50IGZvciBpbXBvcnRlZCBWUEMsXG4gICAqIHdoaWNoIHRoZW4gbGF0ZXIgY2FuIGJlIHVzZWQgZm9yIGVzdGFibGlzaGluZyBWUEMgcGVlcmluZyBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNvbnN0cnVjdGVkIHdpdGggc3RhY2sgYWNjb3VudCB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXJBY2NvdW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaW1hcnkgVlBDIENJRFIgQmxvY2sgb2YgdGhlIGltcG9ydGVkIFZQQ1xuICAgKiBDYW4gb25seSBiZSBJUHY0XG4gICAqL1xuICByZWFkb25seSB2cGNDaWRyQmxvY2s6IHN0cmluZztcblxuICAvKipcbiAgICogQSBWUE4gR2F0ZXdheSBpcyBhdHRhY2hlZCB0byB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gVlBOIEdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IHZwbkdhdGV3YXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU3VibmV0cyBhc3NvY2lhdGVkIHdpdGggaW1wb3J0ZWQgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3VibmV0cyBwcm92aWRlZCB0byBiZSBpbXBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0cz86IFN1Ym5ldFYyQXR0cmlidXRlc1tdO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgU2Vjb25kYXJ5IENJRFIgYmxvY2tzIGFzc29jaWF0ZWQgd2l0aCBWUENcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzZWNvbmRhcnkgSVAgYWRkcmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgc2Vjb25kYXJ5Q2lkckJsb2Nrcz86IFZQQ0NpZHJCbG9ja2F0dHJpYnV0ZXNbXTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgZm91bmRhdGlvbiBmb3IgY3JlYXRpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgVlBDIHdpdGggYWR2YW5jZWQgZmVhdHVyZXMgc3VjaCBhcyBJUEFNIChJUCBBZGRyZXNzIE1hbmFnZW1lbnQpIGFuZCBJUHY2IHN1cHBvcnQuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuYXdzX2VjMi5WcGMuaHRtbHxBV1MgQ0RLIERvY3VtZW50YXRpb24gb24gVlBDc30uXG4gKlxuICogQHJlc291cmNlIEFXUzo6RUMyOjpWUENcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFZwY1YyIGV4dGVuZHMgVnBjVjJCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLlZwY1YyJztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgVlBDIGZyb20gZXhpc3RpbmcgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVnBjVjJBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBWcGNWMkF0dHJpYnV0ZXMpOiBJVnBjVjIge1xuICAgIC8qKlxuICAgICAqIEludGVybmFsIGNsYXNzIHRvIGFsbG93IHVzZXJzIHRvIGltcG9ydCBWUENcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBjbGFzcyBJbXBvcnRlZFZwY1YyIGV4dGVuZHMgVnBjVjJCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHZwY0Fybjogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldHM6IElTdWJuZXRWMltdID0gW107XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRWMltdID0gW107XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaXNvbGF0ZWRTdWJuZXRzOiBJU3VibmV0VjJbXSA9IFtdO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQ6IElEZXBlbmRhYmxlID0gbmV3IERlcGVuZGVuY3lHcm91cCgpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSBvd25lckFjY291bnRJZDogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7XG4gICAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXJ0aXRpb24/OiBzdHJpbmc7XG5cbiAgICAgIC8qXG4gICAgICAqIFJlZmVyZW5jZSB0byBhbGwgc2Vjb25kYXJ5IGJsb2NrcyBhdHRhY2hlZFxuICAgICAgKi9cbiAgICAgIHB1YmxpYyByZWFkb25seSBzZWNvbmRhcnlDaWRyQmxvY2s/OiBJVlBDQ2lkckJsb2NrW107XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVmZXJzIHRvIGFjdHVhbCBWUEMgUmVzb3VyY2UgYXR0cmlidXRlIGluIG5vbi1pbXBvcnRlZCBWUENcbiAgICAgICAqIFJlcXVpcmVkIHRvIGltcGxlbWVudCBoZXJlIGR1ZSB0byBleHRlbnNpb24gZnJvbSBCYXNlIGNsYXNzXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyByZWFkb25seSB2cGNDaWRyQmxvY2s6IHN0cmluZztcblxuICAgICAgLy8gUmVxdWlyZWQgdG8gZG8gQ0lEUiByYW5nZSB0ZXN0IG9uIGltcG9ydGVkIFZQQ3MgdG8gY3JlYXRlIG5ldyBzdWJuZXRzXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3Q6IENvbnN0cnVjdCwgY29uc3RydWN0SWQ6IHN0cmluZywgcHJvcHM6IFZwY1YyQXR0cmlidXRlcykge1xuICAgICAgICBzdXBlcihjb25zdHJ1Y3QsIGNvbnN0cnVjdElkKTtcbiAgICAgICAgdGhpcy52cGNJZCA9IHByb3BzLnZwY0lkLFxuICAgICAgICB0aGlzLnJlZ2lvbiA9IHByb3BzLnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICAgICAgdGhpcy5vd25lckFjY291bnRJZCA9IHByb3BzLm93bmVyQWNjb3VudElkID8/IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICAgICAgdGhpcy5fcGFydGl0aW9uID0gcmVnaW9uX2luZm8uUmVnaW9uSW5mby5nZXQodGhpcy5yZWdpb24pLnBhcnRpdGlvbixcbiAgICAgICAgdGhpcy52cGNBcm4gPSBBcm4uZm9ybWF0KHtcbiAgICAgICAgICBzZXJ2aWNlOiAnZWMyJyxcbiAgICAgICAgICByZXNvdXJjZTogJ3ZwYycsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLnZwY0lkLFxuICAgICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICAgICAgYWNjb3VudDogdGhpcy5vd25lckFjY291bnRJZCxcbiAgICAgICAgICBwYXJ0aXRpb246IHRoaXMuX3BhcnRpdGlvbixcbiAgICAgICAgfSwgdGhpcy5zdGFjayk7XG5cbiAgICAgICAgLy8gUG9wdWxhdGUgcmVnaW9uIGFuZCBhY2NvdW50IGZpZWxkcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCB1cCBwZWVyaW5nIGNvbm5lY3Rpb25cbiAgICAgICAgLy8gc2FtcGxlIHZwYyBBcm4gLSBhcm46YXdzOmVjMjp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOnZwYy92cGMtMDEyMzQ1Njc4OWFiY2RlZjBcbiAgICAgICAgdGhpcy5yZWdpb24gPSB0aGlzLnZwY0Fybi5zcGxpdCgnOicpWzNdO1xuICAgICAgICB0aGlzLm93bmVyQWNjb3VudElkID0gdGhpcy52cGNBcm4uc3BsaXQoJzonKVs0XTtcbiAgICAgICAgLy8gUmVmZXJzIHRvIGFjdHVhbCBWUEMgUmVzb3VyY2UgYXR0cmlidXRlIGluIG5vbi1pbXBvcnRlZCBWUENcbiAgICAgICAgdGhpcy52cGNDaWRyQmxvY2sgPSBwcm9wcy52cGNDaWRyQmxvY2s7XG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciBzdWJuZXQgcmFuZ2UgcmVsYXRlZCBjaGVja3NcbiAgICAgICAgdGhpcy5pcHY0Q2lkckJsb2NrID0gcHJvcHMudnBjQ2lkckJsb2NrO1xuICAgICAgICB0aGlzLl92cG5HYXRld2F5SWQgPSBwcm9wcy52cG5HYXRld2F5SWQ7XG5cbiAgICAgICAgaWYgKHByb3BzLnN1Ym5ldHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1Ym5ldCBvZiBwcm9wcy5zdWJuZXRzKSB7XG4gICAgICAgICAgICBpZiAoc3VibmV0LnN1Ym5ldFR5cGUgPT09IFN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyB8fCBzdWJuZXQuc3VibmV0VHlwZSA9PT0gU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfTkFUIHx8XG4gICAgICAgICAgICAgIHN1Ym5ldC5zdWJuZXRUeXBlIGFzIHN0cmluZyA9PT0gJ0RlcHJlY2F0ZWRfUHJpdmF0ZScpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcml2YXRlU3VibmV0cy5wdXNoKFN1Ym5ldFYyLmZyb21TdWJuZXRWMkF0dHJpYnV0ZXMoc2NvcGUsIHN1Ym5ldC5zdWJuZXROYW1lPz8gJ0ltcG9ydGVkUHJpdmF0ZVN1Ym5ldCcsIHN1Ym5ldCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdWJuZXQuc3VibmV0VHlwZSA9PT0gU3VibmV0VHlwZS5QVUJMSUMpIHtcbiAgICAgICAgICAgICAgdGhpcy5wdWJsaWNTdWJuZXRzLnB1c2goU3VibmV0VjIuZnJvbVN1Ym5ldFYyQXR0cmlidXRlcyhzY29wZSwgc3VibmV0LnN1Ym5ldE5hbWU/PyAnSW1wb3J0ZWRQdWJsaWNTdWJuZXQnLCBzdWJuZXQpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3VibmV0LnN1Ym5ldFR5cGUgYXMgc3RyaW5nID09PSAnRGVwcmVjYXRlZF9Jc29sYXRlZCcgfHwgc3VibmV0LnN1Ym5ldFR5cGUgPT09IFN1Ym5ldFR5cGUuUFJJVkFURV9JU09MQVRFRCkge1xuICAgICAgICAgICAgICB0aGlzLmlzb2xhdGVkU3VibmV0cy5wdXNoKFN1Ym5ldFYyLmZyb21TdWJuZXRWMkF0dHJpYnV0ZXMoc2NvcGUsIHN1Ym5ldC5zdWJuZXROYW1lPz8gJ0ltcG9ydGVkSXNvbGF0ZWRTdWJuZXQnLCBzdWJuZXQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWNvbmRhcnlDaWRyQmxvY2sgPSBwcm9wcy5zZWNvbmRhcnlDaWRyQmxvY2tzPy5tYXAoY2lkckJsb2NrID0+IFZQQ0NpZHJCbG9jay5mcm9tVlBDQ2lkckJsb2NrYXR0cmlidXRlcyhzY29wZSwgY2lkckJsb2NrLmNpZHJCbG9ja05hbWUgPz8gJ0ltcG9ydGVkU2Vjb25kYXJ5Q2lkckJsb2NrJywgeyAuLi5jaWRyQmxvY2sgfSkpO1xuICAgICAgICBpZiAocHJvcHMuc2Vjb25kYXJ5Q2lkckJsb2Nrcykge1xuICAgICAgICAgIGZvciAoY29uc3QgY2lkckJsb2NrIG9mIHByb3BzLnNlY29uZGFyeUNpZHJCbG9ja3MpIHtcbiAgICAgICAgICAgIGlmIChjaWRyQmxvY2suaXB2NElwYW1Qcm92aXNpb25lZENpZHJzKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXB2NElwYW1Qcm92aXNpb25lZENpZHJzLnB1c2goLi4uY2lkckJsb2NrLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRWcGNWMihzY29wZSwgaWQsIGF0dHJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGlzIFZQQ1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGNBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwY0NpZHJCbG9jazogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElQdjYgQ0lEUiBibG9ja3MgZm9yIHRoZSBWUEMuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLXZwYy5odG1sI2F3cy1yZXNvdXJjZS1lYzItdnBjLXJldHVybi12YWx1ZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcHY2Q2lkckJsb2Nrczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBvZiBpcHY0IGFkZHJlc3Nlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwQWRkcmVzc2VzOiBJSXBBZGRyZXNzZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgcmVwcmVzZW50aW5nIHRoZSBWUEMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmblZQQztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGluc3RhbmNlcyBsYXVuY2hlZCBpbiB0aGlzIFZQQyB3aWxsIGhhdmUgcHVibGljIEROUyBob3N0bmFtZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZG5zSG9zdG5hbWVzRW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIEROUyBzdXBwb3J0IGlzIGVuYWJsZWQgZm9yIHRoaXMgVlBDLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRuc1N1cHBvcnRFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJc29sYXRlZCBTdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBWUEMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXNvbGF0ZWRTdWJuZXRzOiBJU3VibmV0W107XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBTdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBWUEMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGljU3VibmV0czogSVN1Ym5ldFtdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgU3VibmV0cyB0aGF0IGFyZSBwYXJ0IG9mIHRoaXMgVlBDLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRzOiBJU3VibmV0W107XG5cbiAgLyoqXG4gICAqIFRvIGRlZmluZSBkZXBlbmRlbmN5IG9uIGludGVybmV0IGNvbm5lY3Rpdml0eVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQ6IElEZXBlbmRhYmxlO1xuXG4gIC8qKlxuICAgKiByZWZlcmVuY2UgdG8gYWxsIHNlY29uZGFyeSBibG9ja3MgYXR0YWNoZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWNvbmRhcnlDaWRyQmxvY2s/OiBJVlBDQ2lkckJsb2NrW10gPSBuZXcgQXJyYXk8SVZQQ0NpZHJCbG9jaz47XG5cbiAgLyoqXG4gICAqIElQdjQgQ0lEUiBwcm92aXNpb25lZCB1c2luZyBJUEFNIHBvb2xcbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIG92ZXJsYXBwaW5nIENJRFJzIGFmdGVyIHByb3Zpc2lvbmluZ1xuICAgKiBpcyBjb21wbGV0ZSB1bmRlciBJUEFNXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiBmb3IgdGhpcyBWUENcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgb3duZXIgZm9yIHRoaXMgVlBDXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3duZXJBY2NvdW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRm9yIHZhbGlkYXRpb24gdG8gZGVmaW5lIElQdjYgc3VibmV0cywgc2V0IHRvIHRydWUgaW4gY2FzZSBvZlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSVB2NiBjaWRyIHJhbmdlXG4gICAqIGlmIHRydWUsIElQdjYgYWRkcmVzc2VzIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc3VibmV0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VJcHY2OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFZwY05hbWUgdG8gYmUgdXNlZCBmb3IgdGFnZ2luZyBpdHMgY29tcG9uZW50c1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjTmFtZT86IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgaXB2NENpZHJCbG9jazogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZwY1YyUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy52cGNOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiAxMjgsIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJ18nIH0pLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy52cGNOYW1lID0gcHJvcHMudnBjTmFtZTtcbiAgICB0aGlzLmlwQWRkcmVzc2VzID0gcHJvcHMucHJpbWFyeUFkZHJlc3NCbG9jayA/PyBJcEFkZHJlc3Nlcy5pcHY0KCcxMC4wLjAuMC8xNicpO1xuICAgIGNvbnN0IHZwY09wdGlvbnMgPSB0aGlzLmlwQWRkcmVzc2VzLmFsbG9jYXRlVnBjQ2lkcigpO1xuXG4gICAgdGhpcy5kbnNIb3N0bmFtZXNFbmFibGVkID0gcHJvcHMuZW5hYmxlRG5zSG9zdG5hbWVzID09IG51bGwgPyB0cnVlIDogcHJvcHMuZW5hYmxlRG5zSG9zdG5hbWVzO1xuICAgIHRoaXMuZG5zU3VwcG9ydEVuYWJsZWQgPSBwcm9wcy5lbmFibGVEbnNTdXBwb3J0ID09IG51bGwgPyB0cnVlIDogcHJvcHMuZW5hYmxlRG5zU3VwcG9ydDtcbiAgICBjb25zdCBpbnN0YW5jZVRlbmFuY3kgPSBwcm9wcy5kZWZhdWx0SW5zdGFuY2VUZW5hbmN5IHx8ICdkZWZhdWx0JztcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblZQQyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjaWRyQmxvY2s6IHZwY09wdGlvbnMuaXB2NENpZHJCbG9jaywgLy8gZm9yIElwdjQgYWRkcmVzc2VzIENJRFIgYmxvY2tcbiAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdGhpcy5kbnNIb3N0bmFtZXNFbmFibGVkLFxuICAgICAgZW5hYmxlRG5zU3VwcG9ydDogdGhpcy5kbnNTdXBwb3J0RW5hYmxlZCxcbiAgICAgIGlwdjRJcGFtUG9vbElkOiB2cGNPcHRpb25zLmlwdjRJcGFtUG9vbD8uaXBhbVBvb2xJZCwgLy8gZm9yIElwdjQgaXBhbSBvcHRpb25cbiAgICAgIGlwdjROZXRtYXNrTGVuZ3RoOiB2cGNPcHRpb25zLmlwdjROZXRtYXNrTGVuZ3RoLCAvLyBmb3IgSXB2NCBpcGFtIG9wdGlvblxuICAgICAgaW5zdGFuY2VUZW5hbmN5OiBpbnN0YW5jZVRlbmFuY3ksXG4gICAgfSk7XG5cbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcbiAgICB0aGlzLnZwY0NpZHJCbG9jayA9IHRoaXMucmVzb3VyY2UuYXR0ckNpZHJCbG9jaztcbiAgICBpZiAodnBjT3B0aW9ucy5pcHY0Q2lkckJsb2NrKSB7XG4gICAgICB0aGlzLmlwdjRDaWRyQmxvY2sgPSB2cGNPcHRpb25zLmlwdjRDaWRyQmxvY2s7XG4gICAgfVxuICAgIHRoaXMuaXB2NkNpZHJCbG9ja3MgPSB0aGlzLnJlc291cmNlLmF0dHJJcHY2Q2lkckJsb2NrcztcbiAgICB0aGlzLnZwY0lkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeF9hcGkuVVNFX1JFU09VUkNFSURfRk9SX1ZQQ1YyX01JR1JBVElPTikgP1xuICAgICAgdGhpcy5yZXNvdXJjZS5yZWYgOiB0aGlzLnJlc291cmNlLmF0dHJWcGNJZDtcbiAgICB0aGlzLnZwY0FybiA9IEFybi5mb3JtYXQoe1xuICAgICAgc2VydmljZTogJ2VjMicsXG4gICAgICByZXNvdXJjZTogJ3ZwYycsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMudnBjSWQsXG4gICAgfSwgdGhpcy5zdGFjayk7XG4gICAgdGhpcy5yZWdpb24gPSB0aGlzLnN0YWNrLnJlZ2lvbjtcbiAgICB0aGlzLm93bmVyQWNjb3VudElkID0gdGhpcy5zdGFjay5hY2NvdW50O1xuICAgIC8vIEFkZCB0YWcgdG8gdGhlIFZQQyB3aXRoIHRoZSBuYW1lIHByb3ZpZGVkIGluIHByb3BlcnRpZXNcbiAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMudnBjTmFtZSB8fCB0aGlzLm5vZGUucGF0aCk7XG4gICAgaWYgKHByb3BzLnNlY29uZGFyeUFkZHJlc3NCbG9ja3MpIHtcbiAgICAgIGNvbnN0IHNlY29uZGFyeUFkZHJlc3NCbG9ja3M6IElJcEFkZHJlc3Nlc1tdID0gcHJvcHMuc2Vjb25kYXJ5QWRkcmVzc0Jsb2NrcztcblxuICAgICAgZm9yIChjb25zdCBzZWNvbmRhcnlBZGRyZXNzQmxvY2sgb2Ygc2Vjb25kYXJ5QWRkcmVzc0Jsb2Nrcykge1xuICAgICAgICBjb25zdCBzZWNvbmRhcnlWcGNPcHRpb25zOiBWcGNDaWRyT3B0aW9ucyA9IHNlY29uZGFyeUFkZHJlc3NCbG9jay5hbGxvY2F0ZVZwY0NpZHIoKTtcbiAgICAgICAgaWYgKCFzZWNvbmRhcnlWcGNPcHRpb25zLmNpZHJCbG9ja05hbWUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NpZHIgQmxvY2sgTmFtZSBpcyByZXF1aXJlZCB0byBjcmVhdGUgc2Vjb25kYXJ5IElQIGFkZHJlc3MnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWNvbmRhcnlWcGNPcHRpb25zLmFtYXpvblByb3ZpZGVkIHx8IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NklwYW1Qb29sIHx8IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NlBvb2xJZCkge1xuICAgICAgICAgIHRoaXMudXNlSXB2NiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdmFsaWRhdGUgQ0lEUiByYW5nZXMgcGVyIFJGQyAxOTE4XG4gICAgICAgIGlmIChzZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRDaWRyQmxvY2shKSB7XG4gICAgICAgICAgY29uc3QgcmV0ID0gdmFsaWRhdGVJcHY0YWRkcmVzcyhzZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRDaWRyQmxvY2ssIHRoaXMucmVzb3VyY2UuY2lkckJsb2NrKTtcbiAgICAgICAgICBpZiAocmV0ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDSURSIGJsb2NrIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBSRkMgMTkxOCByYW5nZSBpbiB0aGUgVlBDJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycyEpIHtcbiAgICAgICAgICB0aGlzLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycz8ucHVzaCguLi5zZWNvbmRhcnlWcGNPcHRpb25zLmlwdjRJcGFtUHJvdmlzaW9uZWRDaWRycyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdnBjQ2lkckJsb2NrID0gbmV3IFZQQ0NpZHJCbG9jayh0aGlzLCBzZWNvbmRhcnlWcGNPcHRpb25zLmNpZHJCbG9ja05hbWUsIHtcbiAgICAgICAgICB2cGNJZDogdGhpcy52cGNJZCxcbiAgICAgICAgICBjaWRyQmxvY2s6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NENpZHJCbG9jayxcbiAgICAgICAgICBpcHY0SXBhbVBvb2xJZDogc2Vjb25kYXJ5VnBjT3B0aW9ucy5pcHY0SXBhbVBvb2w/LmlwYW1Qb29sSWQsXG4gICAgICAgICAgaXB2NE5ldG1hc2tMZW5ndGg6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NE5ldG1hc2tMZW5ndGgsXG4gICAgICAgICAgaXB2Nk5ldG1hc2tMZW5ndGg6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2Nk5ldG1hc2tMZW5ndGgsXG4gICAgICAgICAgaXB2NklwYW1Qb29sSWQ6IHNlY29uZGFyeVZwY09wdGlvbnMuaXB2NklwYW1Qb29sPy5pcGFtUG9vbElkLFxuICAgICAgICAgIGFtYXpvblByb3ZpZGVkSXB2NkNpZHJCbG9jazogc2Vjb25kYXJ5VnBjT3B0aW9ucy5hbWF6b25Qcm92aWRlZCxcbiAgICAgICAgICAvLyBCWU9JUCBJUHY2IEFkZHJlc3NcbiAgICAgICAgICBpcHY2Q2lkckJsb2NrOiBzZWNvbmRhcnlWcGNPcHRpb25zPy5pcHY2Q2lkckJsb2NrLFxuICAgICAgICAgIC8vIEJZT0lQIFBvb2wgZm9yIElQdjYgYWRkcmVzc1xuICAgICAgICAgIGlwdjZQb29sOiBzZWNvbmRhcnlWcGNPcHRpb25zPy5pcHY2UG9vbElkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNlY29uZGFyeVZwY09wdGlvbnMuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygc2Vjb25kYXJ5VnBjT3B0aW9ucy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIHZwY0NpZHJCbG9jay5ub2RlLmFkZERlcGVuZGVuY3koZGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ3JlYXRlIHNlY29uZGFyeSBibG9ja3MgZm9yIElwdjQgYW5kIElwdjZcbiAgICAgICAgdGhpcy5zZWNvbmRhcnlDaWRyQmxvY2s/LnB1c2godnBjQ2lkckJsb2NrKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbXB0eSBhcnJheSBmb3IgaXNvbGF0ZWQgc3VibmV0c1xuICAgICAqL1xuICAgIHRoaXMuaXNvbGF0ZWRTdWJuZXRzID0gbmV3IEFycmF5PElTdWJuZXQ+O1xuXG4gICAgLyoqXG4gICAgICogRW1wdHkgYXJyYXkgZm9yIHB1YmxpYyBzdWJuZXRzXG4gICAgICovXG4gICAgdGhpcy5wdWJsaWNTdWJuZXRzID0gbmV3IEFycmF5PElTdWJuZXQ+O1xuXG4gICAgLyoqXG4gICAgICogRW1wdHkgYXJyYXkgZm9yIHByaXZhdGUgc3VibmV0c1xuICAgICAqL1xuICAgIHRoaXMucHJpdmF0ZVN1Ym5ldHMgPSBuZXcgQXJyYXk8SVN1Ym5ldD47XG5cbiAgICAvKipcbiAgICAgKiBEZXBlbmRhYmxlIHRoYXQgY2FuIGJlIGRlcGVuZGVkIHVwb24gdG8gZm9yY2UgaW50ZXJuZXQgY29ubmVjdGl2aXR5IGVzdGFibGlzaGVkIG9uIHRoZSBWUENcbiAgICAgKiBBZGQgaWd3IHRvIHRoaXMgaWYgaXRzIGEgcHVibGljIHN1Ym5ldFxuICAgICAqL1xuICAgIHRoaXMuaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZCA9IHRoaXMuX2ludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQ7XG4gIH1cbn1cbi8qKlxuICogU3VwcG9ydHMgYXNzaWduaW5nIElQdjQgYWRkcmVzcyB0byBWUENcbiAqL1xuY2xhc3MgaXB2NENpZHJBbGxvY2F0aW9uIGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjaWRyQmxvY2s6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBwcm9wcz86IHsgY2lkckJsb2NrTmFtZTogc3RyaW5nfSkge1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIENJRFIgYmxvY2sgcHJvdmlkZWQgYnkgdGhlIHVzZXIgdG8gc2V0IElQdjRcbiAgICovXG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjRDaWRyQmxvY2s6IHRoaXMuY2lkckJsb2NrLFxuICAgICAgY2lkckJsb2NrTmFtZTogdGhpcy5wcm9wcz8uY2lkckJsb2NrTmFtZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogU3VwcG9ydHMgQW1hem9uIFByb3ZpZGVkIElwdjYgcmFuZ2VzXG4gKi9cbmNsYXNzIEFtYXpvblByb3ZpZGVkIGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gQW1hem9uLXByb3ZpZGVkIElQdjYgQ0lEUiByYW5nZSBmb3IgYSBWUEMuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgSUlwQWRkcmVzc2VzIGludGVyZmFjZSBhbmQgaXMgdXNlZCB0byBhbGxvY2F0ZSBhbiBBbWF6b24tcHJvdmlkZWRcbiAgICogSVB2NiBDSURSIHJhbmdlIGZvciBhIFZQQy4gV2hlbiBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGlzIHVzZWQgdG8gYWxsb2NhdGUgdGhlIFZQQyBDSURSLFxuICAgKiBBbWF6b24gd2lsbCBhdXRvbWF0aWNhbGx5IGFzc2lnbiBhbiBJUHY2IENJRFIgcmFuZ2UgZnJvbSBpdHMgcG9vbCBvZiBhdmFpbGFibGUgYWRkcmVzc2VzLlxuICAgKi9cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiB7IGNpZHJCbG9ja05hbWU6IHN0cmluZ30pIHt9XG5cbiAgYWxsb2NhdGVWcGNDaWRyKCk6IFZwY0NpZHJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgYW1hem9uUHJvdmlkZWQ6IHRydWUsXG4gICAgICBjaWRyQmxvY2tOYW1lOiB0aGlzLnByb3BzLmNpZHJCbG9ja05hbWUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVB2NCBhZGRyZXNzIHJhbmdlIG1hbmFnZWQgYnkgQVdTIElQIEFkZHJlc3MgTWFuYWdlciAoSVBBTSkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbS5odG1sXG4gKi9cbmNsYXNzIElwYW1JcHY2IGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogSXBhbU9wdGlvbnMpIHtcbiAgfVxuXG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjZOZXRtYXNrTGVuZ3RoOiB0aGlzLnByb3BzLm5ldG1hc2tMZW5ndGgsXG4gICAgICBpcHY2SXBhbVBvb2w6IHRoaXMucHJvcHMuaXBhbVBvb2wsXG4gICAgICBkZXBlbmRlbmNpZXM6IHRoaXMucHJvcHMuaXBhbVBvb2w/LmlwYW1DaWRycy5tYXAoYyA9PiBjIGFzIENmblJlc291cmNlKSxcbiAgICAgIGNpZHJCbG9ja05hbWU6IHRoaXMucHJvcHMuY2lkckJsb2NrTmFtZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJUHY0IGFkZHJlc3MgcmFuZ2UgbWFuYWdlZCBieSBBV1MgSVAgQWRkcmVzcyBNYW5hZ2VyIChJUEFNKS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtLmh0bWxcbiAqL1xuY2xhc3MgSXBhbUlwdjQgaW1wbGVtZW50cyBJSXBBZGRyZXNzZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBJcGFtT3B0aW9ucykge1xuICB9XG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjROZXRtYXNrTGVuZ3RoOiB0aGlzLnByb3BzLm5ldG1hc2tMZW5ndGgsXG4gICAgICBpcHY0SXBhbVBvb2w6IHRoaXMucHJvcHMuaXBhbVBvb2wsXG4gICAgICBjaWRyQmxvY2tOYW1lOiB0aGlzLnByb3BzPy5jaWRyQmxvY2tOYW1lLFxuICAgICAgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzOiB0aGlzLnByb3BzLmlwYW1Qb29sPy5pcGFtSXB2NENpZHJzLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBTdXBwb3J0cyBhc3NpZ25pbmcgSVB2NiBhZGRyZXNzIHRvIFZQQyBpbiBhbiBhZGRyZXNzIHBvb2xcbiAqL1xuY2xhc3MgSXB2NlBvb2wgaW1wbGVtZW50cyBJSXBBZGRyZXNzZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBJcHY2UG9vbFNlY29uZGFyeUFkZHJlc3NQcm9wcykge1xuICB9XG4gIGFsbG9jYXRlVnBjQ2lkcigpOiBWcGNDaWRyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwdjZDaWRyQmxvY2s6IHRoaXMucHJvcHMuaXB2NkNpZHJCbG9jayxcbiAgICAgIGlwdjZQb29sSWQ6IHRoaXMucHJvcHMuaXB2NlBvb2xJZCxcbiAgICAgIGNpZHJCbG9ja05hbWU6IHRoaXMucHJvcHM/LmNpZHJCbG9ja05hbWUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSB0byBjcmVhdGUgTDIgZm9yIFZQQyBDaWRyIEJsb2NrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZQQ0NpZHJCbG9jayB7XG4gIC8qKlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSXB2NlxuICAgKi9cbiAgcmVhZG9ubHkgYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrPyA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRhcnkgSVB2NCBDSURSIEJsb2NrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gQ0lEUiBibG9jayBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJUEFNIHBvb2wgZm9yIElQdjYgYWRkcmVzcyB0eXBlXG4gICAqL1xuICByZWFkb25seSBpcHY2SXBhbVBvb2xJZCA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQQU0gcG9vbCBmb3IgSVB2NCBhZGRyZXNzIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGlwdjRJcGFtUG9vbElkID86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElQdjYgQ0lEUiBibG9jayBmcm9tIHRoZSBzcGVjaWZpZWQgSVB2NiBhZGRyZXNzIHBvb2wuXG4gICAqL1xuICByZWFkb25seSBpcHY2Q2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIElQdjYgYWRkcmVzcyBwb29sIGZyb20gd2hpY2ggdG8gYWxsb2NhdGUgdGhlIElQdjYgQ0lEUiBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIFZQQ0NpZHJCbG9jayB1c2VkIGZvciBkZWZpbmluZyBhIG5ldyBDSURSIEJsb2NrXG4gKiBhbmQgYWxzbyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIENJRFJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWUENDaWRyQmxvY2thdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIEFtYXpvbiBQcm92aWRlZCBJcHY2XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2s/IDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNlY29uZGFyeSBJUHY0IENJRFIgQmxvY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBDSURSIGJsb2NrIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBjaWRyQmxvY2s/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRhcnkgSVB2NCBDSURSIEJsb2NrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gQ0lEUiBibG9jayBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmV0IG1hc2sgbGVuZ3RoIGZvciBJUHY2IGFkZHJlc3MgdHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIE5ldCBtYXNrIGxlbmd0aCBjb25maWd1cmVkIGZvciBJUHY2XG4gICAqL1xuICByZWFkb25seSBpcHY2TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogTmV0IG1hc2sgbGVuZ3RoIGZvciBJUHY0IGFkZHJlc3MgdHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIE5ldCBtYXNrIGxlbmd0aCBjb25maWd1cmVkIGZvciBJUHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0TmV0bWFza0xlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSVBBTSBwb29sIGZvciBJUHY2IGFkZHJlc3MgdHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIElQQU0gcG9vbCBJZCBwcm92aWRlZCBmb3IgSVB2NlxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NklwYW1Qb29sSWQgPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJUEFNIHBvb2wgZm9yIElQdjQgYWRkcmVzcyB0eXBlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gSVBBTSBwb29sIElkIHByb3ZpZGVkIGZvciBJUHY0XG4gICAqL1xuICByZWFkb25seSBpcHY0SXBhbVBvb2xJZCA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQdjQgQ0lEUiBwcm92aXNpb25lZCB1bmRlciBwb29sXG4gICAqIFJlcXVpcmVkIHRvIGNoZWNrIGZvciBvdmVybGFwcGluZyBDSURScyBhZnRlciBwcm92aXNpb25pbmdcbiAgICogaXMgY29tcGxldGUgdW5kZXIgSVBBTSBwb29sXG4gICAqIEBkZWZhdWx0IC0gbm8gSVBBTSBJUHY0IENJRFIgcmFuZ2UgaXMgcHJvdmlzaW9uZWQgdXNpbmcgSVBBTVxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NElwYW1Qcm92aXNpb25lZENpZHJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBJUHY2IENJRFIgYmxvY2sgZnJvbSB0aGUgc3BlY2lmaWVkIElQdjYgYWRkcmVzcyBwb29sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIElQdjYgQ0lEUiBibG9jayBhc3NvY2lhdGVkIHdpdGggVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NkNpZHJCbG9jaz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBJUHY2IGFkZHJlc3MgcG9vbCBmcm9tIHdoaWNoIHRvIGFsbG9jYXRlIHRoZSBJUHY2IENJRFIgYmxvY2suXG4gICAqIE5vdGU6IEJZT0lQIFBvb2wgSUQgaXMgZGlmZmVyZW50IHRoYW4gSVBBTSBQb29sIElELlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIEJZT0lQIHBvb2wgYXNzb2NpYXRlZCB3aXRoIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBWUENDaWRyQmxvY2tcbiAqL1xuaW50ZXJmYWNlIFZQQ0NpZHJCbG9ja1Byb3BzIGV4dGVuZHMgVlBDQ2lkckJsb2NrYXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElkIGZvciBhc3NvY2lhdGluZyBDSURSIEJsb2NrIGFzIGEgc2Vjb25kYXJ5IGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgTDIgdG8gZGVmaW5lIGEgbmV3IFZQQyBDSURSIEJsb2NrXG4gKiBAaW50ZXJuYWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgVlBDQ2lkckJsb2NrIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVlBDQ2lkckJsb2NrIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLlZQQ0NpZHJCbG9jayc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBWUEMgQ0lEUiBCbG9ja1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVlBDQ2lkckJsb2NrYXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVlBDQ2lkckJsb2NrYXR0cmlidXRlcykgOiBJVlBDQ2lkckJsb2NrIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElWUENDaWRyQmxvY2sge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNpZHJCbG9jayA9IHByb3BzLmNpZHJCbG9jaztcbiAgICAgIHB1YmxpYyByZWFkb25seSBhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2sgPzogYm9vbGVhbiA9IHByb3BzLmFtYXpvblByb3ZpZGVkSXB2NkNpZHJCbG9jaztcbiAgICAgIHB1YmxpYyByZWFkb25seSBpcHY2SXBhbVBvb2xJZCA/OiBzdHJpbmcgPSBwcm9wcy5pcHY2SXBhbVBvb2xJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBpcHY0SXBhbVBvb2xJZCA/OiBzdHJpbmcgPSBwcm9wcy5pcHY0SXBhbVBvb2xJZDtcbiAgICAgIC8vIEJZT0lQIFBvb2wgQXR0cmlidXRlc1xuICAgICAgcHVibGljIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nID0gcHJvcHMuaXB2NlBvb2w7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaXB2NkNpZHJCbG9jaz86IHN0cmluZyA9IHByb3BzLmlwdjZDaWRyQmxvY2s7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmblZQQ0NpZHJCbG9jaztcblxuICBwdWJsaWMgcmVhZG9ubHkgY2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2s/OiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWFkb25seSBpcHY2SXBhbVBvb2xJZD86IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgaXB2NElwYW1Qb29sSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlwdjZDaWRyQmxvY2s/OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlwdjZQb29sPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWUENDaWRyQmxvY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5WUENDaWRyQmxvY2sodGhpcywgaWQsIHByb3BzKTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcbiAgICB0aGlzLmNpZHJCbG9jayA9IHByb3BzLmNpZHJCbG9jaztcbiAgICB0aGlzLmlwdjZJcGFtUG9vbElkID0gcHJvcHMuaXB2NklwYW1Qb29sSWQ7XG4gICAgdGhpcy5pcHY0SXBhbVBvb2xJZCA9IHByb3BzLmlwdjRJcGFtUG9vbElkO1xuICAgIHRoaXMuYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrID0gcHJvcHMuYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrO1xuICAgIC8vIEJZT0lQIFBvb2wgYW5kIENJRFIgQmxvY2tcbiAgICB0aGlzLmlwdjZDaWRyQmxvY2sgPSBwcm9wcy5pcHY2Q2lkckJsb2NrO1xuICAgIHRoaXMuaXB2NlBvb2wgPSBwcm9wcy5pcHY2UG9vbDtcbiAgfVxufVxuXG4vLyBAaW50ZXJuYWwgRmlyc3QgdHdvIE9jdGV0IHRvIHZlcmlmeSBSRkMgMTkxOFxuaW50ZXJmYWNlIElQYWRkcmVzc0NvbmZpZyB7XG4gIG9jdGV0MTogbnVtYmVyO1xuICBvY3RldDI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgd2hldGhlciBhIHNlY29uZGFyeSBJUHY0IGFkZHJlc3MgaXMgd2l0aGluIHRoZSBzYW1lIHByaXZhdGUgSVAgYWRkcmVzcyByYW5nZSBhcyB0aGUgcHJpbWFyeSBJUHY0IGFkZHJlc3MuXG4gKlxuICogQHBhcmFtIGNpZHIxIFRoZSBzZWNvbmRhcnkgSVB2NCBDSURSIGJsb2NrIHRvIGJlIHZhbGlkYXRlZC5cbiAqIEBwYXJhbSBjaWRyMiBUaGUgcHJpbWFyeSBJUHY0IENJRFIgYmxvY2sgdG8gdmFsaWRhdGUgYWdhaW5zdC5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHNlY29uZGFyeSBJUHY0IENJRFIgYmxvY2sgaXMgd2l0aGluIHRoZSBzYW1lIHByaXZhdGUgSVAgYWRkcmVzcyByYW5nZSBhcyB0aGUgcHJpbWFyeSBJUHY0IENJRFIgYmxvY2ssIGZhbHNlIG90aGVyd2lzZS5cbiAqIEBpbnRlcm5hbFxuICogVGhlIHByaXZhdGUgSVAgYWRkcmVzcyByYW5nZXMgYXJlIGRlZmluZWQgYnkgUkZDIDE5MTggYXMgMTAuMC4wLjAvOCwgMTcyLjE2LjAuMC8xMiwgYW5kIDE5Mi4xNjguMC4wLzE2LlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUlwdjRhZGRyZXNzKGNpZHIxPzogc3RyaW5nLCBjaWRyMj86IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWNpZHIxIHx8ICFjaWRyMikge1xuICAgIHJldHVybiBmYWxzZTsgLy8gSGFuZGxlIGNhc2VzIHdoZXJlIENJRFIgcmFuZ2VzIGFyZSBub3QgcHJvdmlkZWRcbiAgfVxuXG4gIGNvbnN0IG9jdGV0c0NpZHIxOiBudW1iZXJbXSA9IGNpZHIxLnNwbGl0KCcuJykubWFwKG9jdGV0ID0+IHBhcnNlSW50KG9jdGV0LCAxMCkpO1xuICBjb25zdCBvY3RldHNDaWRyMjogbnVtYmVyW10gPSBjaWRyMi5zcGxpdCgnLicpLm1hcChvY3RldCA9PiBwYXJzZUludChvY3RldCwgMTApKTtcblxuICBpZiAob2N0ZXRzQ2lkcjEubGVuZ3RoICE9PSA0IHx8IG9jdGV0c0NpZHIyLmxlbmd0aCAhPT0gNCkge1xuICAgIHJldHVybiBmYWxzZTsgLy8gSGFuZGxlIGludmFsaWQgQ0lEUiByYW5nZXNcbiAgfVxuXG4gIGNvbnN0IGlwMTogSVBhZGRyZXNzQ29uZmlnID0ge1xuICAgIG9jdGV0MTogb2N0ZXRzQ2lkcjFbMF0sXG4gICAgb2N0ZXQyOiBvY3RldHNDaWRyMVsxXSxcbiAgfTtcblxuICBjb25zdCBpcDI6IElQYWRkcmVzc0NvbmZpZyA9IHtcbiAgICBvY3RldDE6IG9jdGV0c0NpZHIyWzBdLFxuICAgIG9jdGV0Mjogb2N0ZXRzQ2lkcjJbMV0sXG4gIH07XG5cbiAgcmV0dXJuIChpcDEub2N0ZXQxID09PSAxMCAmJiBpcDIub2N0ZXQxID09PSAxMCkgfHxcbiAgICAoaXAxLm9jdGV0MSA9PT0gMTkyICYmIGlwMS5vY3RldDIgPT09IDE2OCAmJiBpcDIub2N0ZXQxID09PSAxOTIgJiYgaXAyLm9jdGV0MiA9PT0gMTY4KSB8fFxuICAgIChpcDEub2N0ZXQxID09PSAxNzIgJiYgaXAxLm9jdGV0MiA9PT0gMTYgJiYgaXAyLm9jdGV0MSA9PT0gMTcyICYmIGlwMi5vY3RldDIgPT09IDE2KTsgLy8gQ0lEUiByYW5nZXMgYmVsb25nIHRvIHNhbWUgcHJpdmF0ZSBJUCBhZGRyZXNzIHJhbmdlc1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-ec2-alpha",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.232.0-alpha.0",
|
|
5
5
|
"description": "The CDK construct library for VPC V2",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -78,17 +78,17 @@
|
|
|
78
78
|
},
|
|
79
79
|
"license": "Apache-2.0",
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
81
|
+
"@aws-cdk/cdk-build-tools": "2.232.0-alpha.0",
|
|
82
82
|
"@aws-cdk/integ-runner": "^2.192.2",
|
|
83
|
-
"@aws-cdk/integ-tests-alpha": "^2.
|
|
84
|
-
"@aws-cdk/pkglint": "2.
|
|
83
|
+
"@aws-cdk/integ-tests-alpha": "^2.232.0-alpha.0",
|
|
84
|
+
"@aws-cdk/pkglint": "2.232.0-alpha.0",
|
|
85
85
|
"@types/jest": "^29.5.14",
|
|
86
|
-
"aws-cdk-lib": "2.
|
|
86
|
+
"aws-cdk-lib": "2.232.0",
|
|
87
87
|
"jest": "^29.7.0"
|
|
88
88
|
},
|
|
89
89
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
90
90
|
"peerDependencies": {
|
|
91
|
-
"aws-cdk-lib": "^2.
|
|
91
|
+
"aws-cdk-lib": "^2.232.0",
|
|
92
92
|
"constructs": "^10.0.0"
|
|
93
93
|
},
|
|
94
94
|
"separate-module": false,
|