Socket
Socket
Sign inDemoInstall

@aws-cdk/aws-cloudformation

Package Overview
Dependencies
Maintainers
4
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-cloudformation - npm Package Compare versions

Comparing version 0.20.0 to 0.21.0

206

lib/cloudformation.generated.d.ts
import cdk = require('@aws-cdk/cdk');
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
*/
export interface CfnCustomResourceProps {
/**
* ``AWS::CloudFormation::CustomResource.ServiceToken``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken
*/
serviceToken: string | cdk.Token;
}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
*/
export declare class CfnCustomResource extends cdk.Resource {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly resourceTypeName = "AWS::CloudFormation::CustomResource";
/**
* Creates a new ``AWS::CloudFormation::CustomResource``.
*
* @param parent the ``cdk.Construct`` this ``CfnCustomResource`` is a part of
* @param name the name of the resource in the ``cdk.Construct`` tree
* @param properties the properties of this ``CfnCustomResource``
*/
constructor(parent: cdk.Construct, name: string, properties: CfnCustomResourceProps);
readonly propertyOverrides: CfnCustomResourceProps;
protected renderProperties(properties: any): {
[key: string]: any;
};
}
export declare namespace cloudformation {

@@ -14,2 +45,3 @@ /**

/**
* @deprecated "cloudformation.CustomResource" will be deprecated in a future release in favor of "CfnCustomResource" (see https://github.com/awslabs/aws-cdk/issues/878)
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html

@@ -36,2 +68,54 @@ */

}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html
*/
export interface CfnMacroProps {
/**
* ``AWS::CloudFormation::Macro.FunctionName``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-functionname
*/
functionName: string | cdk.Token;
/**
* ``AWS::CloudFormation::Macro.Name``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-name
*/
name: string | cdk.Token;
/**
* ``AWS::CloudFormation::Macro.Description``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-description
*/
description?: string | cdk.Token;
/**
* ``AWS::CloudFormation::Macro.LogGroupName``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-loggroupname
*/
logGroupName?: string | cdk.Token;
/**
* ``AWS::CloudFormation::Macro.LogRoleARN``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-logrolearn
*/
logRoleArn?: string | cdk.Token;
}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html
*/
export declare class CfnMacro extends cdk.Resource {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly resourceTypeName = "AWS::CloudFormation::Macro";
readonly macroName: string;
/**
* Creates a new ``AWS::CloudFormation::Macro``.
*
* @param parent the ``cdk.Construct`` this ``CfnMacro`` is a part of
* @param name the name of the resource in the ``cdk.Construct`` tree
* @param properties the properties of this ``CfnMacro``
*/
constructor(parent: cdk.Construct, name: string, properties: CfnMacroProps);
readonly propertyOverrides: CfnMacroProps;
protected renderProperties(properties: any): {
[key: string]: any;
};
}
export declare namespace cloudformation {

@@ -69,2 +153,3 @@ /**

/**
* @deprecated "cloudformation.MacroResource" will be deprecated in a future release in favor of "CfnMacro" (see https://github.com/awslabs/aws-cdk/issues/878)
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html

@@ -92,2 +177,56 @@ */

}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html
*/
export interface CfnStackProps {
/**
* ``AWS::CloudFormation::Stack.TemplateURL``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl
*/
templateUrl: string | cdk.Token;
/**
* ``AWS::CloudFormation::Stack.NotificationARNs``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns
*/
notificationArns?: Array<string | cdk.Token> | cdk.Token;
/**
* ``AWS::CloudFormation::Stack.Parameters``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters
*/
parameters?: {
[key: string]: (string | cdk.Token);
} | cdk.Token;
/**
* ``AWS::CloudFormation::Stack.Tags``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags
*/
tags?: Array<cdk.Tag | cdk.Token> | cdk.Token;
/**
* ``AWS::CloudFormation::Stack.TimeoutInMinutes``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes
*/
timeoutInMinutes?: number | cdk.Token;
}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html
*/
export declare class CfnStack extends cdk.Resource {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly resourceTypeName = "AWS::CloudFormation::Stack";
readonly stackId: string;
/**
* Creates a new ``AWS::CloudFormation::Stack``.
*
* @param parent the ``cdk.Construct`` this ``CfnStack`` is a part of
* @param name the name of the resource in the ``cdk.Construct`` tree
* @param properties the properties of this ``CfnStack``
*/
constructor(parent: cdk.Construct, name: string, properties: CfnStackProps);
readonly propertyOverrides: CfnStackProps;
protected renderProperties(properties: any): {
[key: string]: any;
};
}
export declare namespace cloudformation {

@@ -127,2 +266,3 @@ /**

/**
* @deprecated "cloudformation.StackResource" will be deprecated in a future release in favor of "CfnStack" (see https://github.com/awslabs/aws-cdk/issues/878)
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html

@@ -150,2 +290,48 @@ */

}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html
*/
export interface CfnWaitConditionProps {
/**
* ``AWS::CloudFormation::WaitCondition.Count``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count
*/
count?: number | cdk.Token;
/**
* ``AWS::CloudFormation::WaitCondition.Handle``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle
*/
handle?: string | cdk.Token;
/**
* ``AWS::CloudFormation::WaitCondition.Timeout``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout
*/
timeout?: string | cdk.Token;
}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html
*/
export declare class CfnWaitCondition extends cdk.Resource {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly resourceTypeName = "AWS::CloudFormation::WaitCondition";
/**
* @cloudformation_attribute Data
*/
readonly waitConditionData: WaitConditionData;
readonly waitConditionName: string;
/**
* Creates a new ``AWS::CloudFormation::WaitCondition``.
*
* @param parent the ``cdk.Construct`` this ``CfnWaitCondition`` is a part of
* @param name the name of the resource in the ``cdk.Construct`` tree
* @param properties the properties of this ``CfnWaitCondition``
*/
constructor(parent: cdk.Construct, name: string, properties?: CfnWaitConditionProps);
readonly propertyOverrides: CfnWaitConditionProps;
protected renderProperties(properties: any): {
[key: string]: any;
};
}
export declare namespace cloudformation {

@@ -173,2 +359,3 @@ /**

/**
* @deprecated "cloudformation.WaitConditionResource" will be deprecated in a future release in favor of "CfnWaitCondition" (see https://github.com/awslabs/aws-cdk/issues/878)
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html

@@ -203,4 +390,23 @@ */

}
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html
*/
export declare class CfnWaitConditionHandle extends cdk.Resource {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly resourceTypeName = "AWS::CloudFormation::WaitConditionHandle";
readonly waitConditionHandleUrl: string;
/**
* Creates a new ``AWS::CloudFormation::WaitConditionHandle``.
*
* @param parent the ``cdk.Construct`` this ``CfnWaitConditionHandle`` is a part of
* @param name the name of the resource in the ``cdk.Construct`` tree
* @param properties the properties of this ``CfnWaitConditionHandle``
*/
constructor(parent: cdk.Construct, name: string);
}
export declare namespace cloudformation {
/**
* @deprecated "cloudformation.WaitConditionHandleResource" will be deprecated in a future release in favor of "CfnWaitConditionHandle" (see https://github.com/awslabs/aws-cdk/issues/878)
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html

@@ -207,0 +413,0 @@ */

4

lib/custom-resource.d.ts
import lambda = require('@aws-cdk/aws-lambda');
import sns = require('@aws-cdk/aws-sns');
import cdk = require('@aws-cdk/cdk');
import { cloudformation } from './cloudformation.generated';
import { CfnCustomResource } from './cloudformation.generated';
/**

@@ -61,3 +61,3 @@ * Collection of arbitrary properties

*/
export declare class CustomResource extends cloudformation.CustomResource {
export declare class CustomResource extends CfnCustomResource {
private readonly userProperties?;

@@ -64,0 +64,0 @@ constructor(parent: cdk.Construct, name: string, props: CustomResourceProps);

@@ -11,3 +11,3 @@ "use strict";

*/
class CustomResource extends cloudformation_generated_1.cloudformation.CustomResource {
class CustomResource extends cloudformation_generated_1.CfnCustomResource {
constructor(parent, name, props) {

@@ -62,2 +62,2 @@ if (!!props.lambdaProvider === !!props.topicProvider) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3VzdG9tLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EseUVBQTREO0FBc0Q1RDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGNBQWUsU0FBUSx5Q0FBYyxDQUFDLGNBQWM7SUFNL0QsWUFBWSxNQUFxQixFQUFFLElBQVksRUFBRSxLQUEwQjtRQUN6RSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztTQUNwRjtRQUVELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ2xCLFlBQVksRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWMsQ0FBQyxRQUFRO1NBQ3RHLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUV2QyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQixDQUFDLFVBQWU7UUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxZQUFvQjtRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxZQUFZLEdBQUcsQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsWUFBWSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsUUFBUSxHQUFHLENBQUMsQ0FBQztTQUM3RztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FFRjtBQS9DRCx3Q0ErQ0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLEtBQWlCO0lBQzVDLE1BQU0sR0FBRyxHQUFlLEVBQUUsQ0FBQztJQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMvQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGFtYmRhID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWxhbWJkYScpO1xuaW1wb3J0IHNucyA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1zbnMnKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IGNsb3VkZm9ybWF0aW9uIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbi5nZW5lcmF0ZWQnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgYXJiaXRyYXJ5IHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IHR5cGUgUHJvcGVydGllcyA9IHtba2V5OiBzdHJpbmddOiBhbnl9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gcHJvdmlkZSBhIExhbWJkYS1iYWNrZWQgY3VzdG9tIHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIHByb3ZpZGVyIHRoYXQgaW1wbGVtZW50cyB0aGlzIGN1c3RvbSByZXNvdXJjZS5cbiAgICpcbiAgICogV2UgcmVjb21tZW5kIHVzaW5nIGEgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uIGZvciB0aGlzLlxuICAgKlxuICAgKiBPcHRpb25hbCwgZXhhY3RseSBvbmUgb2YgbGFtZGFQcm92aWRlciBvciB0b3BpY1Byb3ZpZGVyIG11c3QgYmUgc2V0LlxuICAgKi9cbiAgbGFtYmRhUHJvdmlkZXI/OiBsYW1iZGEuRnVuY3Rpb25SZWY7XG5cbiAgLyoqXG4gICAqIFRoZSBTTlMgVG9waWMgZm9yIHRoZSBwcm92aWRlciB0aGF0IGltcGxlbWVudHMgdGhpcyBjdXN0b20gcmVzb3VyY2UuXG4gICAqXG4gICAqIE9wdGlvbmFsLCBleGFjdGx5IG9uZSBvZiBsYW1kYVByb3ZpZGVyIG9yIHRvcGljUHJvdmlkZXIgbXVzdCBiZSBzZXQuXG4gICAqL1xuICB0b3BpY1Byb3ZpZGVyPzogc25zLlRvcGljUmVmO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIExhbWJkYVxuICAgKi9cbiAgcHJvcGVydGllcz86IFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIEZvciBjdXN0b20gcmVzb3VyY2VzLCB5b3UgY2FuIHNwZWNpZnkgQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2VcbiAgICogKHRoZSBkZWZhdWx0KSBhcyB0aGUgcmVzb3VyY2UgdHlwZSwgb3IgeW91IGNhbiBzcGVjaWZ5IHlvdXIgb3duIHJlc291cmNlXG4gICAqIHR5cGUgbmFtZS4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIFwiQ3VzdG9tOjpNeUN1c3RvbVJlc291cmNlVHlwZU5hbWVcIi5cbiAgICpcbiAgICogQ3VzdG9tIHJlc291cmNlIHR5cGUgbmFtZXMgbXVzdCBiZWdpbiB3aXRoIFwiQ3VzdG9tOjpcIiBhbmQgY2FuIGluY2x1ZGVcbiAgICogYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogX0AtLiBZb3UgY2FuIHNwZWNpZnlcbiAgICogYSBjdXN0b20gcmVzb3VyY2UgdHlwZSBuYW1lIHVwIHRvIGEgbWF4aW11bSBsZW5ndGggb2YgNjAgY2hhcmFjdGVycy4gWW91XG4gICAqIGNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgZHVyaW5nIGFuIHVwZGF0ZS5cbiAgICpcbiAgICogVXNpbmcgeW91ciBvd24gcmVzb3VyY2UgdHlwZSBuYW1lcyBoZWxwcyB5b3UgcXVpY2tseSBkaWZmZXJlbnRpYXRlIHRoZVxuICAgKiB0eXBlcyBvZiBjdXN0b20gcmVzb3VyY2VzIGluIHlvdXIgc3RhY2suIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIHR3byBjdXN0b21cbiAgICogcmVzb3VyY2VzIHRoYXQgY29uZHVjdCB0d28gZGlmZmVyZW50IHBpbmcgdGVzdHMsIHlvdSBjb3VsZCBuYW1lIHRoZWlyIHR5cGVcbiAgICogYXMgQ3VzdG9tOjpQaW5nVGVzdGVyIHRvIG1ha2UgdGhlbSBlYXNpbHkgaWRlbnRpZmlhYmxlIGFzIHBpbmcgdGVzdGVyc1xuICAgKiAoaW5zdGVhZCBvZiB1c2luZyBBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSkuXG4gICAqXG4gICAqIEBzZWVcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWNmbi1jdXN0b21yZXNvdXJjZS5odG1sI2F3cy1jZm4tcmVzb3VyY2UtdHlwZS1uYW1lXG4gICAqL1xuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3VzdG9tIHJlc291cmNlIHRoYXQgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSBMYW1iZGFcbiAqXG4gKiBBcyBhIGN1c3RvbSByZXNvdXJjZSBhdXRob3IsIHlvdSBzaG91bGQgYmUgcHVibGlzaGluZyBhIHN1YmNsYXNzIG9mIHRoaXMgY2xhc3NcbiAqIHRoYXQgaGlkZXMgdGhlIGNob2ljZSBvZiBwcm92aWRlciwgYW5kIGFjY2VwdHMgYSBzdHJvbmdseS10eXBlZCBwcm9wZXJ0aWVzXG4gKiBvYmplY3Qgd2l0aCB0aGUgcHJvcGVydGllcyB5b3VyIHByb3ZpZGVyIGFjY2VwdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZSBleHRlbmRzIGNsb3VkZm9ybWF0aW9uLkN1c3RvbVJlc291cmNlIHtcbiAgLy8gTmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgdXNpbmcgaW5oZXJpdGFuY2UgYmVjYXVzZSB3ZSBtdXN0IG92ZXJyaWRlIHRoZSBgcmVuZGVyUHJvcGVydGllc2BcbiAgLy8gVGhlIGdlbmVyYXRlZCBwcm9wcyBjbGFzc2VzIHdpbGwgbmV2ZXIgcmVuZGVyIHByb3BlcnRpZXMgdGhhdCB0aGV5IGRvbid0IGtub3cgYWJvdXQuXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvcGVydGllcz86IFByb3BlcnRpZXM7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBDdXN0b21SZXNvdXJjZVByb3BzKSB7XG4gICAgaWYgKCEhcHJvcHMubGFtYmRhUHJvdmlkZXIgPT09ICEhcHJvcHMudG9waWNQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGFjdGx5IG9uZSBvZiBcImxhbWJkYVByb3ZpZGVyXCIgb3IgXCJ0b3BpY1Byb3ZpZGVyXCIgbXVzdCBiZSBzZXQuJyk7XG4gICAgfVxuXG4gICAgc3VwZXIocGFyZW50LCBuYW1lLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3BzLmxhbWJkYVByb3ZpZGVyID8gcHJvcHMubGFtYmRhUHJvdmlkZXIuZnVuY3Rpb25Bcm4gOiBwcm9wcy50b3BpY1Byb3ZpZGVyIS50b3BpY0FyblxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyUHJvcGVydGllcyA9IHByb3BzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAocHJvcHMucmVzb3VyY2VUeXBlKSB7XG4gICAgICB0aGlzLnVzZUN1c3RvbVJlc291cmNlVHlwZShwcm9wcy5yZXNvdXJjZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSByZW5kZXJQcm9wZXJ0aWVzIHRvIG1peCBpbiB0aGUgdXNlci1kZWZpbmVkIHByb3BlcnRpZXNcbiAgICovXG4gIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IGFueSk6IHtba2V5OiBzdHJpbmddOiBhbnl9ICB7XG4gICAgY29uc3QgcHJvcHMgPSBzdXBlci5yZW5kZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXMpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHByb3BzLCB1cHBlcmNhc2VQcm9wZXJ0aWVzKHRoaXMudXNlclByb3BlcnRpZXMgfHwge30pKTtcbiAgfVxuXG4gIHByaXZhdGUgdXNlQ3VzdG9tUmVzb3VyY2VUeXBlKHJlc291cmNlVHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCFyZXNvdXJjZVR5cGUuc3RhcnRzV2l0aCgnQ3VzdG9tOjonKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b20gcmVzb3VyY2UgdHlwZSBtdXN0IGJlZ2luIHdpdGggXCJDdXN0b206OlwiICgke3Jlc291cmNlVHlwZX0pYCk7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZU5hbWUgPSByZXNvdXJjZVR5cGUuc3Vic3RyKHJlc291cmNlVHlwZS5pbmRleE9mKCc6OicpICsgMik7XG4gICAgaWYgKHR5cGVOYW1lLmxlbmd0aCA+IDYwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEN1c3RvbSByZXNvdXJjZSB0eXBlIGxlbmd0aCA+IDYwICgke3Jlc291cmNlVHlwZX0pYCk7XG4gICAgfVxuXG4gICAgaWYgKCEvXlthLXowLTlfQC1dKyQvaS50ZXN0KHR5cGVOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b20gcmVzb3VyY2UgdHlwZSBuYW1lIGNhbiBvbmx5IGluY2x1ZGUgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIF9ALSAoJHt0eXBlTmFtZX0pYCk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRPdmVycmlkZSgnVHlwZScsIHJlc291cmNlVHlwZSk7XG4gIH1cblxufVxuXG4vKipcbiAqIFVwcGVyY2FzZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGV2ZXJ5IHByb3BlcnR5IG5hbWVcbiAqXG4gKiBJdCdzIGN1c3RvbWFyeSBmb3IgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyB0byBzdGFydCB3aXRoIGNhcGl0YWxzLCBhbmQgb3VyXG4gKiBwcm9wZXJ0aWVzIHRvIHN0YXJ0IHdpdGggbG93ZXJjYXNlLCBzbyB0aGlzIGZ1bmN0aW9uIHRyYW5zbGF0ZXMgZnJvbSBvbmVcbiAqIHRvIHRoZSBvdGhlclxuICovXG5mdW5jdGlvbiB1cHBlcmNhc2VQcm9wZXJ0aWVzKHByb3BzOiBQcm9wZXJ0aWVzKTogUHJvcGVydGllcyB7XG4gIGNvbnN0IHJldDogUHJvcGVydGllcyA9IHt9O1xuICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHVwcGVyID0ga2V5LnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpICsga2V5LnN1YnN0cigxKTtcbiAgICByZXRbdXBwZXJdID0gcHJvcHNba2V5XTtcbiAgfSk7XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3VzdG9tLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EseUVBQStEO0FBc0QvRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGNBQWUsU0FBUSw0Q0FBaUI7SUFNbkQsWUFBWSxNQUFxQixFQUFFLElBQVksRUFBRSxLQUEwQjtRQUN6RSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztTQUNwRjtRQUVELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ2xCLFlBQVksRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWMsQ0FBQyxRQUFRO1NBQ3RHLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUV2QyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQixDQUFDLFVBQWU7UUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxZQUFvQjtRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxZQUFZLEdBQUcsQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsWUFBWSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsUUFBUSxHQUFHLENBQUMsQ0FBQztTQUM3RztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FFRjtBQS9DRCx3Q0ErQ0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLEtBQWlCO0lBQzVDLE1BQU0sR0FBRyxHQUFlLEVBQUUsQ0FBQztJQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMvQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGFtYmRhID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWxhbWJkYScpO1xuaW1wb3J0IHNucyA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1zbnMnKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IENmbkN1c3RvbVJlc291cmNlIH0gZnJvbSAnLi9jbG91ZGZvcm1hdGlvbi5nZW5lcmF0ZWQnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgYXJiaXRyYXJ5IHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IHR5cGUgUHJvcGVydGllcyA9IHtba2V5OiBzdHJpbmddOiBhbnl9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gcHJvdmlkZSBhIExhbWJkYS1iYWNrZWQgY3VzdG9tIHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIHByb3ZpZGVyIHRoYXQgaW1wbGVtZW50cyB0aGlzIGN1c3RvbSByZXNvdXJjZS5cbiAgICpcbiAgICogV2UgcmVjb21tZW5kIHVzaW5nIGEgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uIGZvciB0aGlzLlxuICAgKlxuICAgKiBPcHRpb25hbCwgZXhhY3RseSBvbmUgb2YgbGFtZGFQcm92aWRlciBvciB0b3BpY1Byb3ZpZGVyIG11c3QgYmUgc2V0LlxuICAgKi9cbiAgbGFtYmRhUHJvdmlkZXI/OiBsYW1iZGEuRnVuY3Rpb25SZWY7XG5cbiAgLyoqXG4gICAqIFRoZSBTTlMgVG9waWMgZm9yIHRoZSBwcm92aWRlciB0aGF0IGltcGxlbWVudHMgdGhpcyBjdXN0b20gcmVzb3VyY2UuXG4gICAqXG4gICAqIE9wdGlvbmFsLCBleGFjdGx5IG9uZSBvZiBsYW1kYVByb3ZpZGVyIG9yIHRvcGljUHJvdmlkZXIgbXVzdCBiZSBzZXQuXG4gICAqL1xuICB0b3BpY1Byb3ZpZGVyPzogc25zLlRvcGljUmVmO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIExhbWJkYVxuICAgKi9cbiAgcHJvcGVydGllcz86IFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIEZvciBjdXN0b20gcmVzb3VyY2VzLCB5b3UgY2FuIHNwZWNpZnkgQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2VcbiAgICogKHRoZSBkZWZhdWx0KSBhcyB0aGUgcmVzb3VyY2UgdHlwZSwgb3IgeW91IGNhbiBzcGVjaWZ5IHlvdXIgb3duIHJlc291cmNlXG4gICAqIHR5cGUgbmFtZS4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIFwiQ3VzdG9tOjpNeUN1c3RvbVJlc291cmNlVHlwZU5hbWVcIi5cbiAgICpcbiAgICogQ3VzdG9tIHJlc291cmNlIHR5cGUgbmFtZXMgbXVzdCBiZWdpbiB3aXRoIFwiQ3VzdG9tOjpcIiBhbmQgY2FuIGluY2x1ZGVcbiAgICogYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogX0AtLiBZb3UgY2FuIHNwZWNpZnlcbiAgICogYSBjdXN0b20gcmVzb3VyY2UgdHlwZSBuYW1lIHVwIHRvIGEgbWF4aW11bSBsZW5ndGggb2YgNjAgY2hhcmFjdGVycy4gWW91XG4gICAqIGNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgZHVyaW5nIGFuIHVwZGF0ZS5cbiAgICpcbiAgICogVXNpbmcgeW91ciBvd24gcmVzb3VyY2UgdHlwZSBuYW1lcyBoZWxwcyB5b3UgcXVpY2tseSBkaWZmZXJlbnRpYXRlIHRoZVxuICAgKiB0eXBlcyBvZiBjdXN0b20gcmVzb3VyY2VzIGluIHlvdXIgc3RhY2suIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIHR3byBjdXN0b21cbiAgICogcmVzb3VyY2VzIHRoYXQgY29uZHVjdCB0d28gZGlmZmVyZW50IHBpbmcgdGVzdHMsIHlvdSBjb3VsZCBuYW1lIHRoZWlyIHR5cGVcbiAgICogYXMgQ3VzdG9tOjpQaW5nVGVzdGVyIHRvIG1ha2UgdGhlbSBlYXNpbHkgaWRlbnRpZmlhYmxlIGFzIHBpbmcgdGVzdGVyc1xuICAgKiAoaW5zdGVhZCBvZiB1c2luZyBBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSkuXG4gICAqXG4gICAqIEBzZWVcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWNmbi1jdXN0b21yZXNvdXJjZS5odG1sI2F3cy1jZm4tcmVzb3VyY2UtdHlwZS1uYW1lXG4gICAqL1xuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3VzdG9tIHJlc291cmNlIHRoYXQgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSBMYW1iZGFcbiAqXG4gKiBBcyBhIGN1c3RvbSByZXNvdXJjZSBhdXRob3IsIHlvdSBzaG91bGQgYmUgcHVibGlzaGluZyBhIHN1YmNsYXNzIG9mIHRoaXMgY2xhc3NcbiAqIHRoYXQgaGlkZXMgdGhlIGNob2ljZSBvZiBwcm92aWRlciwgYW5kIGFjY2VwdHMgYSBzdHJvbmdseS10eXBlZCBwcm9wZXJ0aWVzXG4gKiBvYmplY3Qgd2l0aCB0aGUgcHJvcGVydGllcyB5b3VyIHByb3ZpZGVyIGFjY2VwdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZSBleHRlbmRzIENmbkN1c3RvbVJlc291cmNlIHtcbiAgLy8gTmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgdXNpbmcgaW5oZXJpdGFuY2UgYmVjYXVzZSB3ZSBtdXN0IG92ZXJyaWRlIHRoZSBgcmVuZGVyUHJvcGVydGllc2BcbiAgLy8gVGhlIGdlbmVyYXRlZCBwcm9wcyBjbGFzc2VzIHdpbGwgbmV2ZXIgcmVuZGVyIHByb3BlcnRpZXMgdGhhdCB0aGV5IGRvbid0IGtub3cgYWJvdXQuXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvcGVydGllcz86IFByb3BlcnRpZXM7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBDdXN0b21SZXNvdXJjZVByb3BzKSB7XG4gICAgaWYgKCEhcHJvcHMubGFtYmRhUHJvdmlkZXIgPT09ICEhcHJvcHMudG9waWNQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGFjdGx5IG9uZSBvZiBcImxhbWJkYVByb3ZpZGVyXCIgb3IgXCJ0b3BpY1Byb3ZpZGVyXCIgbXVzdCBiZSBzZXQuJyk7XG4gICAgfVxuXG4gICAgc3VwZXIocGFyZW50LCBuYW1lLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3BzLmxhbWJkYVByb3ZpZGVyID8gcHJvcHMubGFtYmRhUHJvdmlkZXIuZnVuY3Rpb25Bcm4gOiBwcm9wcy50b3BpY1Byb3ZpZGVyIS50b3BpY0FyblxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyUHJvcGVydGllcyA9IHByb3BzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAocHJvcHMucmVzb3VyY2VUeXBlKSB7XG4gICAgICB0aGlzLnVzZUN1c3RvbVJlc291cmNlVHlwZShwcm9wcy5yZXNvdXJjZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSByZW5kZXJQcm9wZXJ0aWVzIHRvIG1peCBpbiB0aGUgdXNlci1kZWZpbmVkIHByb3BlcnRpZXNcbiAgICovXG4gIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IGFueSk6IHtba2V5OiBzdHJpbmddOiBhbnl9ICB7XG4gICAgY29uc3QgcHJvcHMgPSBzdXBlci5yZW5kZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXMpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHByb3BzLCB1cHBlcmNhc2VQcm9wZXJ0aWVzKHRoaXMudXNlclByb3BlcnRpZXMgfHwge30pKTtcbiAgfVxuXG4gIHByaXZhdGUgdXNlQ3VzdG9tUmVzb3VyY2VUeXBlKHJlc291cmNlVHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCFyZXNvdXJjZVR5cGUuc3RhcnRzV2l0aCgnQ3VzdG9tOjonKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b20gcmVzb3VyY2UgdHlwZSBtdXN0IGJlZ2luIHdpdGggXCJDdXN0b206OlwiICgke3Jlc291cmNlVHlwZX0pYCk7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZU5hbWUgPSByZXNvdXJjZVR5cGUuc3Vic3RyKHJlc291cmNlVHlwZS5pbmRleE9mKCc6OicpICsgMik7XG4gICAgaWYgKHR5cGVOYW1lLmxlbmd0aCA+IDYwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEN1c3RvbSByZXNvdXJjZSB0eXBlIGxlbmd0aCA+IDYwICgke3Jlc291cmNlVHlwZX0pYCk7XG4gICAgfVxuXG4gICAgaWYgKCEvXlthLXowLTlfQC1dKyQvaS50ZXN0KHR5cGVOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b20gcmVzb3VyY2UgdHlwZSBuYW1lIGNhbiBvbmx5IGluY2x1ZGUgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIF9ALSAoJHt0eXBlTmFtZX0pYCk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRPdmVycmlkZSgnVHlwZScsIHJlc291cmNlVHlwZSk7XG4gIH1cblxufVxuXG4vKipcbiAqIFVwcGVyY2FzZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGV2ZXJ5IHByb3BlcnR5IG5hbWVcbiAqXG4gKiBJdCdzIGN1c3RvbWFyeSBmb3IgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyB0byBzdGFydCB3aXRoIGNhcGl0YWxzLCBhbmQgb3VyXG4gKiBwcm9wZXJ0aWVzIHRvIHN0YXJ0IHdpdGggbG93ZXJjYXNlLCBzbyB0aGlzIGZ1bmN0aW9uIHRyYW5zbGF0ZXMgZnJvbSBvbmVcbiAqIHRvIHRoZSBvdGhlclxuICovXG5mdW5jdGlvbiB1cHBlcmNhc2VQcm9wZXJ0aWVzKHByb3BzOiBQcm9wZXJ0aWVzKTogUHJvcGVydGllcyB7XG4gIGNvbnN0IHJldDogUHJvcGVydGllcyA9IHt9O1xuICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHVwcGVyID0ga2V5LnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpICsga2V5LnN1YnN0cigxKTtcbiAgICByZXRbdXBwZXJdID0gcHJvcHNba2V5XTtcbiAgfSk7XG4gIHJldHVybiByZXQ7XG59XG4iXX0=

@@ -83,3 +83,3 @@ import codepipeline = require('@aws-cdk/aws-codepipeline-api');

*/
role?: iam.Role;
role?: iam.IRole;
/**

@@ -151,3 +151,3 @@ * Acknowledge certain changes made as part of deployment

export declare abstract class PipelineCloudFormationDeployAction extends PipelineCloudFormationAction {
readonly role: iam.Role;
readonly role: iam.IRole;
constructor(parent: cdk.Construct, id: string, props: PipelineCloudFormationDeployActionProps, configuration: any);

@@ -154,0 +154,0 @@ /**

@@ -279,2 +279,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBpcGVsaW5lLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4REFBZ0U7QUFDaEUsd0NBQXlDO0FBQ3pDLG9DQUFxQztBQThDckM7O0dBRUc7QUFDSCxNQUFzQiw0QkFBNkIsU0FBUSxZQUFZLENBQUMsTUFBTTtJQVE1RSxZQUFZLE1BQXFCLEVBQUUsRUFBVSxFQUFFLEtBQXdDLEVBQUUsYUFBbUI7UUFDMUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFVBQVUsRUFBRSxDQUFDO2dCQUNiLFVBQVUsRUFBRSxDQUFDO2FBQ2Q7WUFDRCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFFBQVEsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDLE1BQU07WUFDNUMsYUFBYSxrQkFDWCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFDMUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQ2pDLGFBQWEsQ0FDakI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLGtCQUFrQjtnQkFDbkUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0NBQ0Y7QUFqQ0Qsb0VBaUNDO0FBWUQ7O0dBRUc7QUFDSCxNQUFhLDhCQUErQixTQUFR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b2RlcGlwZWxpbmUtYXBpJyk7XG5pbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgY29tbW9uIHRvIGFsbCBDbG91ZEZvcm1hdGlvbiBhY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkFjdGlvblByb3BzIGV4dGVuZHMgY29kZXBpcGVsaW5lLkNvbW1vbkFjdGlvblByb3BzLFxuICAgIGNvZGVwaXBlbGluZS5Db21tb25BY3Rpb25Db25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gYXBwbHkgdGhpcyBhY3Rpb24gdG9cbiAgICovXG4gIHN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBmaWxlbmFtZSBpbiB0aGUgb3V0cHV0IGFydGlmYWN0IHRvIHN0b3JlIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gY2FsbCdzIHJlc3VsdC5cbiAgICpcbiAgICogVGhlIGZpbGUgd2lsbCBjb250YWluIHRoZSByZXN1bHQgb2YgdGhlIGNhbGwgdG8gQVdTIENsb3VkRm9ybWF0aW9uIChmb3IgZXhhbXBsZVxuICAgKiB0aGUgY2FsbCB0byBVcGRhdGVTdGFjayBvciBDcmVhdGVDaGFuZ2VTZXQpLlxuICAgKlxuICAgKiBBV1MgQ29kZVBpcGVsaW5lIGFkZHMgdGhlIGZpbGUgdG8gdGhlIG91dHB1dCBhcnRpZmFjdCBhZnRlciBwZXJmb3JtaW5nXG4gICAqIHRoZSBzcGVjaWZpZWQgYWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBvdXRwdXQgYXJ0aWZhY3QgZ2VuZXJhdGVkXG4gICAqL1xuICBvdXRwdXRGaWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG91dHB1dCBhcnRpZmFjdCB0byBnZW5lcmF0ZVxuICAgKlxuICAgKiBPbmx5IGFwcGxpZWQgaWYgYG91dHB1dEZpbGVOYW1lYCBpcyBzZXQgYXMgd2VsbC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYXJ0aWZhY3QgbmFtZS5cbiAgICovXG4gIG91dHB1dEFydGlmYWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdGhlIGdpdmVuIEFjdGlvbiByZXNpZGVzIGluLlxuICAgKiBOb3RlIHRoYXQgYSBjcm9zcy1yZWdpb24gUGlwZWxpbmUgcmVxdWlyZXMgcmVwbGljYXRpb24gYnVja2V0cyB0byBmdW5jdGlvbiBjb3JyZWN0bHkuXG4gICAqIFlvdSBjYW4gcHJvdmlkZSB0aGVpciBuYW1lcyB3aXRoIHRoZSB7QGxpbmsgUGlwZWxpbmVQcm9wcyNjcm9zc1JlZ2lvblJlcGxpY2F0aW9uQnVja2V0c30gcHJvcGVydHkuXG4gICAqIElmIHlvdSBkb24ndCwgdGhlIENvZGVQaXBlbGluZSBDb25zdHJ1Y3Qgd2lsbCBjcmVhdGUgbmV3IFN0YWNrcyBpbiB5b3VyIENESyBhcHAgY29udGFpbmluZyB0aG9zZSBidWNrZXRzLFxuICAgKiB0aGF0IHlvdSB3aWxsIG5lZWQgdG8gYGNkayBkZXBsb3lgIGJlZm9yZSBkZXBsb3lpbmcgdGhlIG1haW4sIFBpcGVsaW5lLWNvbnRhaW5pbmcgU3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBBY3Rpb24gcmVzaWRlcyBpbiB0aGUgc2FtZSByZWdpb24gYXMgdGhlIFBpcGVsaW5lXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgQWN0aW9ucyB0aGF0IGV4ZWN1dGUgQ2xvdWRGb3JtYXRpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25BY3Rpb24gZXh0ZW5kcyBjb2RlcGlwZWxpbmUuQWN0aW9uIHtcbiAgLyoqXG4gICAqIE91dHB1dCBhcnRpZmFjdCBjb250YWluaW5nIHRoZSBDbG91ZEZvcm1hdGlvbiBjYWxsIHJlc3BvbnNlXG4gICAqXG4gICAqIE9ubHkgcHJlc2VudCBpZiBjb25maWd1cmVkIGJ5IHBhc3NpbmcgYG91dHB1dEZpbGVOYW1lYC5cbiAgICovXG4gIHB1YmxpYyBvdXRwdXRBcnRpZmFjdD86IGNvZGVwaXBlbGluZS5BcnRpZmFjdDtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uUHJvcHMsIGNvbmZpZ3VyYXRpb24/OiBhbnkpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkLCB7XG4gICAgICBzdGFnZTogcHJvcHMuc3RhZ2UsXG4gICAgICBydW5PcmRlcjogcHJvcHMucnVuT3JkZXIsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFydGlmYWN0Qm91bmRzOiB7XG4gICAgICAgIG1pbklucHV0czogMCxcbiAgICAgICAgbWF4SW5wdXRzOiAxMCxcbiAgICAgICAgbWluT3V0cHV0czogMCxcbiAgICAgICAgbWF4T3V0cHV0czogMSxcbiAgICAgIH0sXG4gICAgICBwcm92aWRlcjogJ0Nsb3VkRm9ybWF0aW9uJyxcbiAgICAgIGNhdGVnb3J5OiBjb2RlcGlwZWxpbmUuQWN0aW9uQ2F0ZWdvcnkuRGVwbG95LFxuICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICBTdGFja05hbWU6IHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgT3V0cHV0RmlsZU5hbWU6IHByb3BzLm91dHB1dEZpbGVOYW1lLFxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLm91dHB1dEZpbGVOYW1lKSB7XG4gICAgICB0aGlzLm91dHB1dEFydGlmYWN0ID0gdGhpcy5hZGRPdXRwdXRBcnRpZmFjdChwcm9wcy5vdXRwdXRBcnRpZmFjdE5hbWUgfHxcbiAgICAgICAgKHByb3BzLnN0YWdlLm5hbWUgKyB0aGlzLmlkICsgJ0FydGlmYWN0JykpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBQaXBlbGluZUV4ZWN1dGVDaGFuZ2VTZXRBY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVFeGVjdXRlQ2hhbmdlU2V0QWN0aW9uUHJvcHMgZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2hhbmdlIHNldCB0byBleGVjdXRlLlxuICAgKi9cbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvZGVQaXBlbGluZSBhY3Rpb24gdG8gZXhlY3V0ZSBhIHByZXBhcmVkIGNoYW5nZSBzZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBQaXBlbGluZUV4ZWN1dGVDaGFuZ2VTZXRBY3Rpb24gZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uIHtcbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVFeGVjdXRlQ2hhbmdlU2V0QWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkLCBwcm9wcywge1xuICAgICAgQWN0aW9uTW9kZTogJ0NIQU5HRV9TRVRfRVhFQ1VURScsXG4gICAgICBDaGFuZ2VTZXROYW1lOiBwcm9wcy5jaGFuZ2VTZXROYW1lLFxuICAgIH0pO1xuXG4gICAgU2luZ2xldG9uUG9saWN5LmZvclJvbGUocHJvcHMuc3RhZ2UucGlwZWxpbmUucm9sZSlcbiAgICAgICAgICAgICAgICAgICAuZ3JhbnRFeGVjdXRlQ2hhbmdlU2V0KHByb3BzKTtcbiAgfVxufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggQmVjYXVzZSBvZiBsb25nIFVSTHMgaW4gZG9jdW1lbnRhdGlvblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGNvbW1vbiB0byBDbG91ZEZvcm1hdGlvbiBhY3Rpb25zIHRoYXQgc3RhZ2UgZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUNsb3VkRm9ybWF0aW9uRGVwbG95QWN0aW9uUHJvcHMgZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogSUFNIHJvbGUgdG8gYXNzdW1lIHdoZW4gZGVwbG95aW5nIGNoYW5nZXMuXG4gICAqXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIGEgZnJlc2ggcm9sZSBpcyBjcmVhdGVkLiBUaGUgcm9sZSBpcyBjcmVhdGVkIHdpdGggemVyb1xuICAgKiBwZXJtaXNzaW9ucyB1bmxlc3MgYGFkbWluUGVybWlzc2lvbnNgIGlzIHRydWUsIGluIHdoaWNoIGNhc2UgdGhlIHJvbGUgd2lsbCBoYXZlXG4gICAqIGZ1bGwgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEEgZnJlc2ggcm9sZSB3aXRoIGZ1bGwgb3Igbm8gcGVybWlzc2lvbnMgKGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgYGFkbWluUGVybWlzc2lvbnNgKS5cbiAgICovXG4gIHJvbGU/OiBpYW0uUm9sZTtcblxuICAvKipcbiAgICogQWNrbm93bGVkZ2UgY2VydGFpbiBjaGFuZ2VzIG1hZGUgYXMgcGFydCBvZiBkZXBsb3ltZW50XG4gICAqXG4gICAqIEZvciBzdGFja3MgdGhhdCBjb250YWluIGNlcnRhaW4gcmVzb3VyY2VzLCBleHBsaWNpdCBhY2tub3dsZWRnZW1lbnQgdGhhdCBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogbWlnaHQgY3JlYXRlIG9yIHVwZGF0ZSB0aG9zZSByZXNvdXJjZXMuIEZvciBleGFtcGxlLCB5b3UgbXVzdCBzcGVjaWZ5IGBBbm9ueW1vdXNJQU1gIG9yIGBOYW1lZElBTWBcbiAgICogaWYgeW91ciBzdGFjayB0ZW1wbGF0ZSBjb250YWlucyBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJlc291cmNlcy4gRm9yIG1vcmVcbiAgICogaW5mb3JtYXRpb24gc2VlIHRoZSBsaW5rIGJlbG93LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWlhbS10ZW1wbGF0ZS5odG1sI3VzaW5nLWlhbS1jYXBhYmlsaXRpZXNcbiAgICogQGRlZmF1bHQgTm9uZSwgdW5sZXNzIGBhZG1pblBlcm1pc3Npb25zYCBpcyB0cnVlXG4gICAqL1xuICBjYXBhYmlsaXRpZXM/OiBDbG91ZEZvcm1hdGlvbkNhcGFiaWxpdGllcztcblxuICAvKipcbiAgICogV2hldGhlciB0byBncmFudCBmdWxsIHBlcm1pc3Npb25zIHRvIENsb3VkRm9ybWF0aW9uIHdoaWxlIGRlcGxveWluZyB0aGlzIHRlbXBsYXRlLlxuICAgKlxuICAgKiBTZXR0aW5nIHRoaXMgdG8gYHRydWVgIGFmZmVjdHMgdGhlIGRlZmF1bHRzIGZvciBgcm9sZWAgYW5kIGBjYXBhYmlsaXRpZXNgLCBpZiB5b3VcbiAgICogZG9uJ3Qgc3BlY2lmeSBhbnkgYWx0ZXJuYXRpdmVzLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCByb2xlIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGZvciB5b3Ugd2lsbCBoYXZlIGZ1bGwgKGkuZS4sIGAqYClcbiAgICogcGVybWlzc2lvbnMgb24gYWxsIHJlc291cmNlcywgYW5kIHRoZSBkZXBsb3ltZW50IHdpbGwgaGF2ZSBuYW1lZCBJQU1cbiAgICogY2FwYWJpbGl0aWVzIChpLmUuLCBhYmxlIHRvIGNyZWF0ZSBhbGwgSUFNIHJlc291cmNlcykuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBzaG9ydGhhbmQgdGhhdCB5b3UgY2FuIHVzZSBpZiB5b3UgZnVsbHkgdHJ1c3QgdGhlIHRlbXBsYXRlcyB0aGF0XG4gICAqIGFyZSBkZXBsb3llZCBpbiB0aGlzIHBpcGVsaW5lLiBJZiB5b3Ugd2FudCBtb3JlIGZpbmUtZ3JhaW5lZCBwZXJtaXNzaW9ucyxcbiAgICogdXNlIGBhZGRUb1JvbGVQb2xpY3lgIGFuZCBgY2FwYWJpbGl0aWVzYCB0byBjb250cm9sIHdoYXQgdGhlIENsb3VkRm9ybWF0aW9uXG4gICAqIGRlcGxveW1lbnQgaXMgYWxsb3dlZCB0byBkby5cbiAgICovXG4gIGFkbWluUGVybWlzc2lvbnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElucHV0IGFydGlmYWN0IHRvIHVzZSBmb3IgdGVtcGxhdGUgcGFyYW1ldGVycyB2YWx1ZXMgYW5kIHN0YWNrIHBvbGljeS5cbiAgICpcbiAgICogVGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gZmlsZSBzaG91bGQgY29udGFpbiBhIEpTT04gb2JqZWN0IHRoYXQgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOlxuICAgKiBgeyBcIlBhcmFtZXRlcnNcIjogey4uLn0sIFwiVGFnc1wiOiB7Li4ufSwgXCJTdGFja1BvbGljeVwiOiB7Li4uIH19YC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sXG4gICAqIHNlZSBbQVdTIENsb3VkRm9ybWF0aW9uIEFydGlmYWN0c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvY29udGludW91cy1kZWxpdmVyeS1jb2RlcGlwZWxpbmUtY2ZuLWFydGlmYWN0cy5odG1sKS5cbiAgICpcbiAgICogTm90ZSB0aGF0IGlmIHlvdSBpbmNsdWRlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyBwYXNzd29yZHMsIHJlc3RyaWN0IGFjY2VzcyB0byB0aGlzXG4gICAqIGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gaW5wdXQgYXJ0aWZhY3RzXG4gICAqL1xuICB0ZW1wbGF0ZUNvbmZpZ3VyYXRpb24/OiBjb2RlcGlwZWxpbmUuQXJ0aWZhY3RQYXRoO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHRlbXBsYXRlIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIFRlbXBsYXRlIHBhcmFtZXRlcnMgc3BlY2lmaWVkIGhlcmUgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGVtcGxhdGUgcGFyYW1ldGVyc1xuICAgKiBmb3VuZCBpbiB0aGUgYXJ0aWZhY3Qgc3BlY2lmaWVkIGJ5IHRoZSBgdGVtcGxhdGVDb25maWd1cmF0aW9uYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogV2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGUgdGVtcGxhdGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIHNwZWNpZnlcbiAgICogbW9zdCBvZiB5b3VyIHBhcmFtZXRlciB2YWx1ZXMuIFVzZSBwYXJhbWV0ZXIgb3ZlcnJpZGVzIHRvIHNwZWNpZnkgb25seVxuICAgKiBkeW5hbWljIHBhcmFtZXRlciB2YWx1ZXMgKHZhbHVlcyB0aGF0IGFyZSB1bmtub3duIHVudGlsIHlvdSBydW4gdGhlXG4gICAqIHBpcGVsaW5lKS5cbiAgICpcbiAgICogQWxsIHBhcmFtZXRlciBuYW1lcyBtdXN0IGJlIHByZXNlbnQgaW4gdGhlIHN0YWNrIHRlbXBsYXRlLlxuICAgKlxuICAgKiBOb3RlOiB0aGUgZW50aXJlIG9iamVjdCBjYW5ub3QgYmUgbW9yZSB0aGFuIDFrQi5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gb3ZlcnJpZGVzXG4gICAqL1xuICBwYXJhbWV0ZXJPdmVycmlkZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcbn1cbi8vIHRzbGludDplbmFibGU6bWF4LWxpbmUtbGVuZ3RoXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIENsb3VkRm9ybWF0aW9uIGFjdGlvbnMgdGhhdCBleGVjdXRlIG9yIHN0YWdlIGRlcGxveW1lbnRzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkRlcGxveUFjdGlvbiBleHRlbmRzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGU7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkRlcGxveUFjdGlvblByb3BzLCBjb25maWd1cmF0aW9uOiBhbnkpIHtcbiAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBwcm9wcy5hZG1pblBlcm1pc3Npb25zICYmIHByb3BzLmNhcGFiaWxpdGllcyA9PT0gdW5kZWZpbmVkID8gQ2xvdWRGb3JtYXRpb25DYXBhYmlsaXRpZXMuTmFtZWRJQU0gOiBwcm9wcy5jYXBhYmlsaXRpZXM7XG4gICAgc3VwZXIocGFyZW50LCBpZCwgcHJvcHMsIHtcbiAgICAgIC4uLmNvbmZpZ3VyYXRpb24sXG4gICAgICAvLyBOb25lIGV2YWx1YXRlcyB0byBlbXB0eSBzdHJpbmcgd2hpY2ggaXMgZmFsc2V5IGFuZCByZXN1bHRzIGluIHVuZGVmaW5lZFxuICAgICAgQ2FwYWJpbGl0aWVzOiAoY2FwYWJpbGl0aWVzICYmIGNhcGFiaWxpdGllcy50b1N0cmluZygpKSB8fCB1bmRlZmluZWQsXG4gICAgICBSb2xlQXJuOiBuZXcgY2RrLlRva2VuKCgpID0+IHRoaXMucm9sZS5yb2xlQXJuKSxcbiAgICAgIFBhcmFtZXRlck92ZXJyaWRlczogY2RrLkNsb3VkRm9ybWF0aW9uSlNPTi5zdHJpbmdpZnkocHJvcHMucGFyYW1ldGVyT3ZlcnJpZGVzKSxcbiAgICAgIFRlbXBsYXRlQ29uZmlndXJhdGlvbjogcHJvcHMudGVtcGxhdGVDb25maWd1cmF0aW9uID8gcHJvcHMudGVtcGxhdGVDb25maWd1cmF0aW9uLmxvY2F0aW9uIDogdW5kZWZpbmVkLFxuICAgICAgU3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMucm9sZSkge1xuICAgICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdSb2xlJywge1xuICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnY2xvdWRmb3JtYXRpb24uYW1hem9uYXdzLmNvbScpXG4gICAgICB9KTtcblxuICAgICAgaWYgKHByb3BzLmFkbWluUGVybWlzc2lvbnMpIHtcbiAgICAgICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KCkuYWRkQWN0aW9uKCcqJykuYWRkQWxsUmVzb3VyY2VzKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIFNpbmdsZXRvblBvbGljeS5mb3JSb2xlKHByb3BzLnN0YWdlLnBpcGVsaW5lLnJvbGUpLmdyYW50UGFzc1JvbGUodGhpcy5yb2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc3RhdGVtZW50IHRvIHRoZSBzZXJ2aWNlIHJvbGUgYXNzdW1lZCBieSBDbG91ZEZvcm1hdGlvbiB3aGlsZSBleGVjdXRpbmcgdGhpcyBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCkge1xuICAgIHJldHVybiB0aGlzLnJvbGUuYWRkVG9Qb2xpY3koc3RhdGVtZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBQaXBlbGluZUNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVDcmVhdGVSZXBsYWNlQ2hhbmdlU2V0QWN0aW9uUHJvcHMgZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uRGVwbG95QWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2hhbmdlIHNldCB0byBjcmVhdGUgb3IgdXBkYXRlLlxuICAgKi9cbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBhcnRpZmFjdCB3aXRoIHRoZSBDaGFuZ2VTZXQncyBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgKi9cbiAgdGVtcGxhdGVQYXRoOiBjb2RlcGlwZWxpbmUuQXJ0aWZhY3RQYXRoO1xufVxuXG4vKipcbiAqIENvZGVQaXBlbGluZSBhY3Rpb24gdG8gcHJlcGFyZSBhIGNoYW5nZSBzZXQuXG4gKlxuICogQ3JlYXRlcyB0aGUgY2hhbmdlIHNldCBpZiBpdCBkb2Vzbid0IGV4aXN0IGJhc2VkIG9uIHRoZSBzdGFjayBuYW1lIGFuZCB0ZW1wbGF0ZSB0aGF0IHlvdSBzdWJtaXQuXG4gKiBJZiB0aGUgY2hhbmdlIHNldCBleGlzdHMsIEFXUyBDbG91ZEZvcm1hdGlvbiBkZWxldGVzIGl0LCBhbmQgdGhlbiBjcmVhdGVzIGEgbmV3IG9uZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBpcGVsaW5lQ3JlYXRlUmVwbGFjZUNoYW5nZVNldEFjdGlvbiBleHRlbmRzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25EZXBsb3lBY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQsIHByb3BzLCB7XG4gICAgICBBY3Rpb25Nb2RlOiAnQ0hBTkdFX1NFVF9SRVBMQUNFJyxcbiAgICAgIENoYW5nZVNldE5hbWU6IHByb3BzLmNoYW5nZVNldE5hbWUsXG4gICAgICBUZW1wbGF0ZVBhdGg6IHByb3BzLnRlbXBsYXRlUGF0aC5sb2NhdGlvbixcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkSW5wdXRBcnRpZmFjdChwcm9wcy50ZW1wbGF0ZVBhdGguYXJ0aWZhY3QpO1xuICAgIGlmIChwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24gJiYgcHJvcHMudGVtcGxhdGVDb25maWd1cmF0aW9uLmFydGlmYWN0Lm5hbWUgIT09IHByb3BzLnRlbXBsYXRlUGF0aC5hcnRpZmFjdC5uYW1lKSB7XG4gICAgICB0aGlzLmFkZElucHV0QXJ0aWZhY3QocHJvcHMudGVtcGxhdGVDb25maWd1cmF0aW9uLmFydGlmYWN0KTtcbiAgICB9XG5cbiAgICBTaW5nbGV0b25Qb2xpY3kuZm9yUm9sZShwcm9wcy5zdGFnZS5waXBlbGluZS5yb2xlKS5ncmFudENyZWF0ZVJlcGxhY2VDaGFuZ2VTZXQocHJvcHMpO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIFBpcGVsaW5lQ3JlYXRlVXBkYXRlU3RhY2tBY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVDcmVhdGVVcGRhdGVTdGFja0FjdGlvblByb3BzIGV4dGVuZHMgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkRlcGxveUFjdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIElucHV0IGFydGlmYWN0IHdpdGggdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHRvIGRlcGxveVxuICAgKi9cbiAgdGVtcGxhdGVQYXRoOiBjb2RlcGlwZWxpbmUuQXJ0aWZhY3RQYXRoO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBzdGFjayBpZiBpdCdzIGluIGEgZmFpbGVkIHN0YXRlLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlIGFuZCB0aGUgc3RhY2sgaXMgaW4gYSBmYWlsZWQgc3RhdGUgKG9uZSBvZlxuICAgKiBST0xMQkFDS19DT01QTEVURSwgUk9MTEJBQ0tfRkFJTEVELCBDUkVBVEVfRkFJTEVELCBERUxFVEVfRkFJTEVELCBvclxuICAgKiBVUERBVEVfUk9MTEJBQ0tfRkFJTEVEKSwgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgdGhlIHN0YWNrIGFuZCB0aGVuXG4gICAqIGNyZWF0ZXMgYSBuZXcgc3RhY2suXG4gICAqXG4gICAqIElmIHRoaXMgaXMgbm90IHNldCB0byB0cnVlIGFuZCB0aGUgc3RhY2sgaXMgaW4gYSBmYWlsZWQgc3RhdGUsXG4gICAqIHRoZSBkZXBsb3ltZW50IGZhaWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVwbGFjZU9uRmFpbHVyZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29kZVBpcGVsaW5lIGFjdGlvbiB0byBkZXBsb3kgYSBzdGFjay5cbiAqXG4gKiBDcmVhdGVzIHRoZSBzdGFjayBpZiB0aGUgc3BlY2lmaWVkIHN0YWNrIGRvZXNuJ3QgZXhpc3QuIElmIHRoZSBzdGFjayBleGlzdHMsXG4gKiBBV1MgQ2xvdWRGb3JtYXRpb24gdXBkYXRlcyB0aGUgc3RhY2suIFVzZSB0aGlzIGFjdGlvbiB0byB1cGRhdGUgZXhpc3RpbmdcbiAqIHN0YWNrcy5cbiAqXG4gKiBBV1MgQ29kZVBpcGVsaW5lIHdvbid0IHJlcGxhY2UgdGhlIHN0YWNrLCBhbmQgd2lsbCBmYWlsIGRlcGxveW1lbnQgaWYgdGhlXG4gKiBzdGFjayBpcyBpbiBhIGZhaWxlZCBzdGF0ZS4gVXNlIGBSZXBsYWNlT25GYWlsdXJlYCBmb3IgYW4gYWN0aW9uIHRoYXRcbiAqIHdpbGwgZGVsZXRlIGFuZCByZWNyZWF0ZSB0aGUgc3RhY2sgdG8gdHJ5IGFuZCByZWNvdmVyIGZyb20gZmFpbGVkIHN0YXRlcy5cbiAqXG4gKiBVc2UgdGhpcyBhY3Rpb24gdG8gYXV0b21hdGljYWxseSByZXBsYWNlIGZhaWxlZCBzdGFja3Mgd2l0aG91dCByZWNvdmVyaW5nIG9yXG4gKiB0cm91Ymxlc2hvb3RpbmcgdGhlbS4gWW91IHdvdWxkIHR5cGljYWxseSBjaG9vc2UgdGhpcyBtb2RlIGZvciB0ZXN0aW5nLlxuICovXG5leHBvcnQgY2xhc3MgUGlwZWxpbmVDcmVhdGVVcGRhdGVTdGFja0FjdGlvbiBleHRlbmRzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25EZXBsb3lBY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUNyZWF0ZVVwZGF0ZVN0YWNrQWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkLCBwcm9wcywge1xuICAgICAgQWN0aW9uTW9kZTogcHJvcHMucmVwbGFjZU9uRmFpbHVyZSA/ICdSRVBMQUNFX09OX0ZBSUxVUkUnIDogJ0NSRUFURV9VUERBVEUnLFxuICAgICAgVGVtcGxhdGVQYXRoOiBwcm9wcy50ZW1wbGF0ZVBhdGgubG9jYXRpb25cbiAgICB9KTtcblxuICAgIHRoaXMuYWRkSW5wdXRBcnRpZmFjdChwcm9wcy50ZW1wbGF0ZVBhdGguYXJ0aWZhY3QpO1xuICAgIGlmIChwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24gJiYgcHJvcHMudGVtcGxhdGVDb25maWd1cmF0aW9uLmFydGlmYWN0Lm5hbWUgIT09IHByb3BzLnRlbXBsYXRlUGF0aC5hcnRpZmFjdC5uYW1lKSB7XG4gICAgICB0aGlzLmFkZElucHV0QXJ0aWZhY3QocHJvcHMudGVtcGxhdGVDb25maWd1cmF0aW9uLmFydGlmYWN0KTtcbiAgICB9XG5cbiAgICBTaW5nbGV0b25Qb2xpY3kuZm9yUm9sZShwcm9wcy5zdGFnZS5waXBlbGluZS5yb2xlKS5ncmFudENyZWF0ZVVwZGF0ZVN0YWNrKHByb3BzKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBQaXBlbGluZURlbGV0ZVN0YWNrQWN0aW9uLlxuICovXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lRGVsZXRlU3RhY2tBY3Rpb25Qcm9wcyBleHRlbmRzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25EZXBsb3lBY3Rpb25Qcm9wcyB7XG59XG5cbi8qKlxuICogQ29kZVBpcGVsaW5lIGFjdGlvbiB0byBkZWxldGUgYSBzdGFjay5cbiAqXG4gKiBEZWxldGVzIGEgc3RhY2suIElmIHlvdSBzcGVjaWZ5IGEgc3RhY2sgdGhhdCBkb2Vzbid0IGV4aXN0LCB0aGUgYWN0aW9uIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHlcbiAqIHdpdGhvdXQgZGVsZXRpbmcgYSBzdGFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIFBpcGVsaW5lRGVsZXRlU3RhY2tBY3Rpb24gZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uRGVwbG95QWN0aW9uIHtcbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVEZWxldGVTdGFja0FjdGlvblByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBpZCwgcHJvcHMsIHtcbiAgICAgIEFjdGlvbk1vZGU6ICdERUxFVEVfT05MWScsXG4gICAgfSk7XG4gICAgU2luZ2xldG9uUG9saWN5LmZvclJvbGUocHJvcHMuc3RhZ2UucGlwZWxpbmUucm9sZSkuZ3JhbnREZWxldGVTdGFjayhwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYXBhYmlsaXRpZXMgdGhhdCBhZmZlY3Qgd2hldGhlciBDbG91ZEZvcm1hdGlvbiBpcyBhbGxvd2VkIHRvIGNoYW5nZSBJQU0gcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBlbnVtIENsb3VkRm9ybWF0aW9uQ2FwYWJpbGl0aWVzIHtcbiAgLyoqXG4gICAqIE5vIElBTSBDYXBhYmlsaXRpZXNcbiAgICpcbiAgICogUGFzcyB0aGlzIGNhcGFiaWxpdHkgaWYgeW91IHdpc2ggdG8gYmxvY2sgdGhlIGNyZWF0aW9uIElBTSByZXNvdXJjZXMuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWlhbS10ZW1wbGF0ZS5odG1sI3VzaW5nLWlhbS1jYXBhYmlsaXRpZXNcbiAgICovXG4gIE5vbmUgPSAnJyxcblxuICAvKipcbiAgICogQ2FwYWJpbGl0eSB0byBjcmVhdGUgYW5vbnltb3VzIElBTSByZXNvdXJjZXNcbiAgICpcbiAgICogUGFzcyB0aGlzIGNhcGFiaWxpdHkgaWYgeW91J3JlIG9ubHkgY3JlYXRpbmcgYW5vbnltb3VzIHJlc291cmNlcy5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctaWFtLXRlbXBsYXRlLmh0bWwjdXNpbmctaWFtLWNhcGFiaWxpdGllc1xuICAgKi9cbiAgQW5vbnltb3VzSUFNID0gJ0NBUEFCSUxJVFlfSUFNJyxcblxuICAvKipcbiAgICogQ2FwYWJpbGl0eSB0byBjcmVhdGUgbmFtZWQgSUFNIHJlc291cmNlcy5cbiAgICpcbiAgICogUGFzcyB0aGlzIGNhcGFiaWxpdHkgaWYgeW91J3JlIGNyZWF0aW5nIElBTSByZXNvdXJjZXMgdGhhdCBoYXZlIHBoeXNpY2FsXG4gICAqIG5hbWVzLlxuICAgKlxuICAgKiBgQ2xvdWRGb3JtYXRpb25DYXBhYmlsaXRpZXMuTmFtZWRJQU1gIGltcGxpZXMgYENsb3VkRm9ybWF0aW9uQ2FwYWJpbGl0aWVzLklBTWA7IHlvdSBkb24ndCBoYXZlIHRvIHBhc3MgYm90aC5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctaWFtLXRlbXBsYXRlLmh0bWwjdXNpbmctaWFtLWNhcGFiaWxpdGllc1xuICAgKi9cbiAgTmFtZWRJQU0gPSAnQ0FQQUJJTElUWV9OQU1FRF9JQU0nLFxufVxuXG4vKipcbiAqIE1hbmFnZXMgYSBidW5jaCBvZiBzaW5nbGV0b24teSBzdGF0ZW1lbnRzIG9uIHRoZSBwb2xpY3kgb2YgYW4gSUFNIFJvbGUuXG4gKiBEZWRpY2F0ZWQgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBhZGQgc3BlY2lmaWMgcGVybWlzc2lvbnMgdG8gdGhlIHJvbGUgcG9saWN5XG4gKiB1c2luZyBhcyBmZXcgc3RhdGVtZW50cyBhcyBwb3NzaWJsZSAoYWRkaW5nIHJlc291cmNlcyB0byBleGlzdGluZyBjb21wYXRpYmxlXG4gKiBzdGF0ZW1lbnRzIGluc3RlYWQgb2YgYWRkaW5nIG5ldyBzdGF0ZW1lbnRzIHdoZW5ldmVyIHBvc3NpYmxlKS5cbiAqXG4gKiBTdGF0ZW1lbnRzIGNyZWF0ZWQgb3V0c2lkZSBvZiB0aGlzIGNsYXNzIGFyZSBub3QgY29uc2lkZXJlZCB3aGVuIGFkZGluZyBuZXdcbiAqIHBlcm1pc3Npb25zLlxuICovXG5jbGFzcyBTaW5nbGV0b25Qb2xpY3kgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE9idGFpbiBhIFNpbmdsZXRvblBvbGljeSBmb3IgYSBnaXZlbiByb2xlLlxuICAgKiBAcGFyYW0gcm9sZSB0aGUgUm9sZSB0aGlzIHBvbGljeSBpcyBib3VuZCB0by5cbiAgICogQHJldHVybnMgdGhlIFNpbmdsZXRvblBvbGljeSBmb3IgdGhpcyByb2xlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JSb2xlKHJvbGU6IGlhbS5Sb2xlKTogU2luZ2xldG9uUG9saWN5IHtcbiAgICBjb25zdCBmb3VuZCA9IHJvbGUudHJ5RmluZENoaWxkKFNpbmdsZXRvblBvbGljeS5VVUlEKTtcbiAgICByZXR1cm4gKGZvdW5kIGFzIFNpbmdsZXRvblBvbGljeSkgfHwgbmV3IFNpbmdsZXRvblBvbGljeShyb2xlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVVSUQgPSAnODM4OWU3NWYtMDgxMC00ODM4LWJmNjQtZDZmODVhOTVjZjgzJztcblxuICBwcml2YXRlIHN0YXRlbWVudHM6IHsgW2tleTogc3RyaW5nXTogaWFtLlBvbGljeVN0YXRlbWVudCB9ID0ge307XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvbGU6IGlhbS5Sb2xlKSB7XG4gICAgc3VwZXIocm9sZSwgU2luZ2xldG9uUG9saWN5LlVVSUQpO1xuICB9XG5cbiAgcHVibGljIGdyYW50RXhlY3V0ZUNoYW5nZVNldChwcm9wczogeyBzdGFja05hbWU6IHN0cmluZywgY2hhbmdlU2V0TmFtZTogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVtZW50Rm9yKHtcbiAgICAgIGFjdGlvbnM6IFsnY2xvdWRmb3JtYXRpb246RXhlY3V0ZUNoYW5nZVNldCddLFxuICAgICAgY29uZGl0aW9uczoge8KgU3RyaW5nRXF1YWxzOiB7ICdjbG91ZGZvcm1hdGlvbjpDaGFuZ2VTZXROYW1lJzogcHJvcHMuY2hhbmdlU2V0TmFtZSB9IH0sXG4gICAgfSkuYWRkUmVzb3VyY2Uoc3RhY2tBcm5Gcm9tUHJvcHMocHJvcHMpKTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudENyZWF0ZVJlcGxhY2VDaGFuZ2VTZXQocHJvcHM6IHsgc3RhY2tOYW1lOiBzdHJpbmcsIGNoYW5nZVNldE5hbWU6IHN0cmluZywgcmVnaW9uPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlbWVudEZvcih7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdjbG91ZGZvcm1hdGlvbjpDcmVhdGVDaGFuZ2VTZXQnLFxuICAgICAgICAnY2xvdWRmb3JtYXRpb246RGVsZXRlQ2hhbmdlU2V0JyxcbiAgICAgICAgJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlQ2hhbmdlU2V0JyxcbiAgICAgICAgJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tzJyxcbiAgICAgIF0sXG4gICAgICBjb25kaXRpb25zOiB7IFN0cmluZ0VxdWFsc0lmRXhpc3RzOiB7ICdjbG91ZGZvcm1hdGlvbjpDaGFuZ2VTZXROYW1lJzogcHJvcHMuY2hhbmdlU2V0TmFtZSB9IH0sXG4gICAgfSkuYWRkUmVzb3VyY2Uoc3RhY2tBcm5Gcm9tUHJvcHMocHJvcHMpKTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudENyZWF0ZVVwZGF0ZVN0YWNrKHByb3BzOiB7IHN0YWNrTmFtZTogc3RyaW5nLCByZXBsYWNlT25GYWlsdXJlPzogYm9vbGVhbiwgcmVnaW9uPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb25zID0gW1xuICAgICAgJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2sqJyxcbiAgICAgICdjbG91ZGZvcm1hdGlvbjpDcmVhdGVTdGFjaycsXG4gICAgICAnY2xvdWRmb3JtYXRpb246VXBkYXRlU3RhY2snLFxuICAgICAgJ2Nsb3VkZm9ybWF0aW9uOkdldFRlbXBsYXRlKicsXG4gICAgICAnY2xvdWRmb3JtYXRpb246VmFsaWRhdGVUZW1wbGF0ZScsXG4gICAgICAnY2xvdWRmb3JtYXRpb246R2V0U3RhY2tQb2xpY3knLFxuICAgICAgJ2Nsb3VkZm9ybWF0aW9uOlNldFN0YWNrUG9saWN5JyxcbiAgICBdO1xuICAgIGlmIChwcm9wcy5yZXBsYWNlT25GYWlsdXJlKSB7XG4gICAgICBhY3Rpb25zLnB1c2goJ2Nsb3VkZm9ybWF0aW9uOkRlbGV0ZVN0YWNrJyk7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVtZW50Rm9yKHsgYWN0aW9ucyB9KS5hZGRSZXNvdXJjZShzdGFja0FybkZyb21Qcm9wcyhwcm9wcykpO1xuICB9XG5cbiAgcHVibGljIGdyYW50RGVsZXRlU3RhY2socHJvcHM6IHsgc3RhY2tOYW1lOiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZW1lbnRGb3Ioe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnY2xvdWRmb3JtYXRpb246RGVzY3JpYmVTdGFjayonLFxuICAgICAgICAnY2xvdWRmb3JtYXRpb246RGVsZXRlU3RhY2snLFxuICAgICAgXVxuICAgIH0pLmFkZFJlc291cmNlKHN0YWNrQXJuRnJvbVByb3BzKHByb3BzKSk7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRQYXNzUm9sZShyb2xlOiBpYW0uUm9sZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVtZW50Rm9yKHsgYWN0aW9uczogWydpYW06UGFzc1JvbGUnXSB9KS5hZGRSZXNvdXJjZShyb2xlLnJvbGVBcm4pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZW1lbnRGb3IodGVtcGxhdGU6IFN0YXRlbWVudFRlbXBsYXRlKTogaWFtLlBvbGljeVN0YXRlbWVudCB7XG4gICAgY29uc3Qga2V5ID0ga2V5Rm9yKHRlbXBsYXRlKTtcbiAgICBpZiAoIShrZXkgaW4gdGhpcy5zdGF0ZW1lbnRzKSkge1xuICAgICAgdGhpcy5zdGF0ZW1lbnRzW2tleV0gPSBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCgpLmFkZEFjdGlvbnMoLi4udGVtcGxhdGUuYWN0aW9ucyk7XG4gICAgICBpZiAodGVtcGxhdGUuY29uZGl0aW9ucykge1xuICAgICAgICB0aGlzLnN0YXRlbWVudHNba2V5XS5hZGRDb25kaXRpb25zKHRlbXBsYXRlLmNvbmRpdGlvbnMpO1xuICAgICAgfVxuICAgICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KHRoaXMuc3RhdGVtZW50c1trZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50c1trZXldO1xuXG4gICAgZnVuY3Rpb24ga2V5Rm9yKHByb3BzOiBTdGF0ZW1lbnRUZW1wbGF0ZSk6IHN0cmluZyB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gYCR7cHJvcHMuYWN0aW9ucy5zb3J0KCkuam9pbignXFx4MUYnKX1gO1xuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IGZvcm1hdENvbmRpdGlvbnMocHJvcHMuY29uZGl0aW9ucyk7XG4gICAgICByZXR1cm4gYCR7YWN0aW9uc31cXHgxRCR7Y29uZGl0aW9uc31gO1xuXG4gICAgICBmdW5jdGlvbiBmb3JtYXRDb25kaXRpb25zKGNvbmQ/OiBTdGF0ZW1lbnRDb25kaXRpb24pOiBzdHJpbmcge1xuICAgICAgICBpZiAoY29uZCA9PSBudWxsKSB7IHJldHVybiAnJzsgfVxuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGZvciAoY29uc3Qgb3Agb2YgT2JqZWN0LmtleXMoY29uZCkuc29ydCgpKSB7XG4gICAgICAgICAgcmVzdWx0ICs9IGAke29wfVxceDFFYDtcbiAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSBjb25kW29wXTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBPYmplY3Qua2V5cyhjb25kaXRpb24pLnNvcnQoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb25kaXRpb25bYXR0cmlidXRlXTtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgJHt2YWx1ZX1cXHgxRmA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBTdGF0ZW1lbnRUZW1wbGF0ZSB7XG4gIGFjdGlvbnM6IHN0cmluZ1tdO1xuICBjb25kaXRpb25zPzogU3RhdGVtZW50Q29uZGl0aW9uO1xufVxuXG50eXBlIFN0YXRlbWVudENvbmRpdGlvbiA9IHsgW29wOiBzdHJpbmddOiB7IFthdHRyaWJ1dGU6IHN0cmluZ106IHN0cmluZyB9IH07XG5cbmZ1bmN0aW9uIHN0YWNrQXJuRnJvbVByb3BzKHByb3BzOiB7IHN0YWNrTmFtZTogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gIHJldHVybiBjZGsuQXJuVXRpbHMuZnJvbUNvbXBvbmVudHMoe1xuICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgIHNlcnZpY2U6ICdjbG91ZGZvcm1hdGlvbicsXG4gICAgcmVzb3VyY2U6ICdzdGFjaycsXG4gICAgcmVzb3VyY2VOYW1lOiBgJHtwcm9wcy5zdGFja05hbWV9LypgXG4gIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBpcGVsaW5lLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4REFBZ0U7QUFDaEUsd0NBQXlDO0FBQ3pDLG9DQUFxQztBQThDckM7O0dBRUc7QUFDSCxNQUFzQiw0QkFBNkIsU0FBUSxZQUFZLENBQUMsTUFBTTtJQVE1RSxZQUFZLE1BQXFCLEVBQUUsRUFBVSxFQUFFLEtBQXdDLEVBQUUsYUFBbUI7UUFDMUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFVBQVUsRUFBRSxDQUFDO2dCQUNiLFVBQVUsRUFBRSxDQUFDO2FBQ2Q7WUFDRCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFFBQVEsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDLE1BQU07WUFDNUMsYUFBYSxrQkFDWCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFDMUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQ2pDLGFBQWEsQ0FDakI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLGtCQUFrQjtnQkFDbkUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0NBQ0Y7QUFqQ0Qsb0VBaUNDO0FBWUQ7O0dBRUc7QUFDSCxNQUFhLDhCQUErQixTQUFR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b2RlcGlwZWxpbmUtYXBpJyk7XG5pbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgY29tbW9uIHRvIGFsbCBDbG91ZEZvcm1hdGlvbiBhY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkFjdGlvblByb3BzIGV4dGVuZHMgY29kZXBpcGVsaW5lLkNvbW1vbkFjdGlvblByb3BzLFxuICAgIGNvZGVwaXBlbGluZS5Db21tb25BY3Rpb25Db25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdG8gYXBwbHkgdGhpcyBhY3Rpb24gdG9cbiAgICovXG4gIHN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBmaWxlbmFtZSBpbiB0aGUgb3V0cHV0IGFydGlmYWN0IHRvIHN0b3JlIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gY2FsbCdzIHJlc3VsdC5cbiAgICpcbiAgICogVGhlIGZpbGUgd2lsbCBjb250YWluIHRoZSByZXN1bHQgb2YgdGhlIGNhbGwgdG8gQVdTIENsb3VkRm9ybWF0aW9uIChmb3IgZXhhbXBsZVxuICAgKiB0aGUgY2FsbCB0byBVcGRhdGVTdGFjayBvciBDcmVhdGVDaGFuZ2VTZXQpLlxuICAgKlxuICAgKiBBV1MgQ29kZVBpcGVsaW5lIGFkZHMgdGhlIGZpbGUgdG8gdGhlIG91dHB1dCBhcnRpZmFjdCBhZnRlciBwZXJmb3JtaW5nXG4gICAqIHRoZSBzcGVjaWZpZWQgYWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBvdXRwdXQgYXJ0aWZhY3QgZ2VuZXJhdGVkXG4gICAqL1xuICBvdXRwdXRGaWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG91dHB1dCBhcnRpZmFjdCB0byBnZW5lcmF0ZVxuICAgKlxuICAgKiBPbmx5IGFwcGxpZWQgaWYgYG91dHB1dEZpbGVOYW1lYCBpcyBzZXQgYXMgd2VsbC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYXJ0aWZhY3QgbmFtZS5cbiAgICovXG4gIG91dHB1dEFydGlmYWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdGhlIGdpdmVuIEFjdGlvbiByZXNpZGVzIGluLlxuICAgKiBOb3RlIHRoYXQgYSBjcm9zcy1yZWdpb24gUGlwZWxpbmUgcmVxdWlyZXMgcmVwbGljYXRpb24gYnVja2V0cyB0byBmdW5jdGlvbiBjb3JyZWN0bHkuXG4gICAqIFlvdSBjYW4gcHJvdmlkZSB0aGVpciBuYW1lcyB3aXRoIHRoZSB7QGxpbmsgUGlwZWxpbmVQcm9wcyNjcm9zc1JlZ2lvblJlcGxpY2F0aW9uQnVja2V0c30gcHJvcGVydHkuXG4gICAqIElmIHlvdSBkb24ndCwgdGhlIENvZGVQaXBlbGluZSBDb25zdHJ1Y3Qgd2lsbCBjcmVhdGUgbmV3IFN0YWNrcyBpbiB5b3VyIENESyBhcHAgY29udGFpbmluZyB0aG9zZSBidWNrZXRzLFxuICAgKiB0aGF0IHlvdSB3aWxsIG5lZWQgdG8gYGNkayBkZXBsb3lgIGJlZm9yZSBkZXBsb3lpbmcgdGhlIG1haW4sIFBpcGVsaW5lLWNvbnRhaW5pbmcgU3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBBY3Rpb24gcmVzaWRlcyBpbiB0aGUgc2FtZSByZWdpb24gYXMgdGhlIFBpcGVsaW5lXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgQWN0aW9ucyB0aGF0IGV4ZWN1dGUgQ2xvdWRGb3JtYXRpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25BY3Rpb24gZXh0ZW5kcyBjb2RlcGlwZWxpbmUuQWN0aW9uIHtcbiAgLyoqXG4gICAqIE91dHB1dCBhcnRpZmFjdCBjb250YWluaW5nIHRoZSBDbG91ZEZvcm1hdGlvbiBjYWxsIHJlc3BvbnNlXG4gICAqXG4gICAqIE9ubHkgcHJlc2VudCBpZiBjb25maWd1cmVkIGJ5IHBhc3NpbmcgYG91dHB1dEZpbGVOYW1lYC5cbiAgICovXG4gIHB1YmxpYyBvdXRwdXRBcnRpZmFjdD86IGNvZGVwaXBlbGluZS5BcnRpZmFjdDtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uUHJvcHMsIGNvbmZpZ3VyYXRpb24/OiBhbnkpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkLCB7XG4gICAgICBzdGFnZTogcHJvcHMuc3RhZ2UsXG4gICAgICBydW5PcmRlcjogcHJvcHMucnVuT3JkZXIsXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFydGlmYWN0Qm91bmRzOiB7XG4gICAgICAgIG1pbklucHV0czogMCxcbiAgICAgICAgbWF4SW5wdXRzOiAxMCxcbiAgICAgICAgbWluT3V0cHV0czogMCxcbiAgICAgICAgbWF4T3V0cHV0czogMSxcbiAgICAgIH0sXG4gICAgICBwcm92aWRlcjogJ0Nsb3VkRm9ybWF0aW9uJyxcbiAgICAgIGNhdGVnb3J5OiBjb2RlcGlwZWxpbmUuQWN0aW9uQ2F0ZWdvcnkuRGVwbG95LFxuICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICBTdGFja05hbWU6IHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgT3V0cHV0RmlsZU5hbWU6IHByb3BzLm91dHB1dEZpbGVOYW1lLFxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLm91dHB1dEZpbGVOYW1lKSB7XG4gICAgICB0aGlzLm91dHB1dEFydGlmYWN0ID0gdGhpcy5hZGRPdXRwdXRBcnRpZmFjdChwcm9wcy5vdXRwdXRBcnRpZmFjdE5hbWUgfHxcbiAgICAgICAgKHByb3BzLnN0YWdlLm5hbWUgKyB0aGlzLmlkICsgJ0FydGlmYWN0JykpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBQaXBlbGluZUV4ZWN1dGVDaGFuZ2VTZXRBY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVFeGVjdXRlQ2hhbmdlU2V0QWN0aW9uUHJvcHMgZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2hhbmdlIHNldCB0byBleGVjdXRlLlxuICAgKi9cbiAgY2hhbmdlU2V0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvZGVQaXBlbGluZSBhY3Rpb24gdG8gZXhlY3V0ZSBhIHByZXBhcmVkIGNoYW5nZSBzZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBQaXBlbGluZUV4ZWN1dGVDaGFuZ2VTZXRBY3Rpb24gZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uIHtcbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVFeGVjdXRlQ2hhbmdlU2V0QWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkLCBwcm9wcywge1xuICAgICAgQWN0aW9uTW9kZTogJ0NIQU5HRV9TRVRfRVhFQ1VURScsXG4gICAgICBDaGFuZ2VTZXROYW1lOiBwcm9wcy5jaGFuZ2VTZXROYW1lLFxuICAgIH0pO1xuXG4gICAgU2luZ2xldG9uUG9saWN5LmZvclJvbGUocHJvcHMuc3RhZ2UucGlwZWxpbmUucm9sZSlcbiAgICAgICAgICAgICAgICAgICAuZ3JhbnRFeGVjdXRlQ2hhbmdlU2V0KHByb3BzKTtcbiAgfVxufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggQmVjYXVzZSBvZiBsb25nIFVSTHMgaW4gZG9jdW1lbnRhdGlvblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGNvbW1vbiB0byBDbG91ZEZvcm1hdGlvbiBhY3Rpb25zIHRoYXQgc3RhZ2UgZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUNsb3VkRm9ybWF0aW9uRGVwbG95QWN0aW9uUHJvcHMgZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogSUFNIHJvbGUgdG8gYXNzdW1lIHdoZW4gZGVwbG95aW5nIGNoYW5nZXMuXG4gICAqXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIGEgZnJlc2ggcm9sZSBpcyBjcmVhdGVkLiBUaGUgcm9sZSBpcyBjcmVhdGVkIHdpdGggemVyb1xuICAgKiBwZXJtaXNzaW9ucyB1bmxlc3MgYGFkbWluUGVybWlzc2lvbnNgIGlzIHRydWUsIGluIHdoaWNoIGNhc2UgdGhlIHJvbGUgd2lsbCBoYXZlXG4gICAqIGZ1bGwgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEEgZnJlc2ggcm9sZSB3aXRoIGZ1bGwgb3Igbm8gcGVybWlzc2lvbnMgKGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgYGFkbWluUGVybWlzc2lvbnNgKS5cbiAgICovXG4gIHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIEFja25vd2xlZGdlIGNlcnRhaW4gY2hhbmdlcyBtYWRlIGFzIHBhcnQgb2YgZGVwbG95bWVudFxuICAgKlxuICAgKiBGb3Igc3RhY2tzIHRoYXQgY29udGFpbiBjZXJ0YWluIHJlc291cmNlcywgZXhwbGljaXQgYWNrbm93bGVkZ2VtZW50IHRoYXQgQVdTIENsb3VkRm9ybWF0aW9uXG4gICAqIG1pZ2h0IGNyZWF0ZSBvciB1cGRhdGUgdGhvc2UgcmVzb3VyY2VzLiBGb3IgZXhhbXBsZSwgeW91IG11c3Qgc3BlY2lmeSBgQW5vbnltb3VzSUFNYCBvciBgTmFtZWRJQU1gXG4gICAqIGlmIHlvdXIgc3RhY2sgdGVtcGxhdGUgY29udGFpbnMgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByZXNvdXJjZXMuIEZvciBtb3JlXG4gICAqIGluZm9ybWF0aW9uIHNlZSB0aGUgbGluayBiZWxvdy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1pYW0tdGVtcGxhdGUuaHRtbCN1c2luZy1pYW0tY2FwYWJpbGl0aWVzXG4gICAqIEBkZWZhdWx0IE5vbmUsIHVubGVzcyBgYWRtaW5QZXJtaXNzaW9uc2AgaXMgdHJ1ZVxuICAgKi9cbiAgY2FwYWJpbGl0aWVzPzogQ2xvdWRGb3JtYXRpb25DYXBhYmlsaXRpZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZ3JhbnQgZnVsbCBwZXJtaXNzaW9ucyB0byBDbG91ZEZvcm1hdGlvbiB3aGlsZSBkZXBsb3lpbmcgdGhpcyB0ZW1wbGF0ZS5cbiAgICpcbiAgICogU2V0dGluZyB0aGlzIHRvIGB0cnVlYCBhZmZlY3RzIHRoZSBkZWZhdWx0cyBmb3IgYHJvbGVgIGFuZCBgY2FwYWJpbGl0aWVzYCwgaWYgeW91XG4gICAqIGRvbid0IHNwZWNpZnkgYW55IGFsdGVybmF0aXZlcy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgcm9sZSB0aGF0IHdpbGwgYmUgY3JlYXRlZCBmb3IgeW91IHdpbGwgaGF2ZSBmdWxsIChpLmUuLCBgKmApXG4gICAqIHBlcm1pc3Npb25zIG9uIGFsbCByZXNvdXJjZXMsIGFuZCB0aGUgZGVwbG95bWVudCB3aWxsIGhhdmUgbmFtZWQgSUFNXG4gICAqIGNhcGFiaWxpdGllcyAoaS5lLiwgYWJsZSB0byBjcmVhdGUgYWxsIElBTSByZXNvdXJjZXMpLlxuICAgKlxuICAgKiBUaGlzIGlzIGEgc2hvcnRoYW5kIHRoYXQgeW91IGNhbiB1c2UgaWYgeW91IGZ1bGx5IHRydXN0IHRoZSB0ZW1wbGF0ZXMgdGhhdFxuICAgKiBhcmUgZGVwbG95ZWQgaW4gdGhpcyBwaXBlbGluZS4gSWYgeW91IHdhbnQgbW9yZSBmaW5lLWdyYWluZWQgcGVybWlzc2lvbnMsXG4gICAqIHVzZSBgYWRkVG9Sb2xlUG9saWN5YCBhbmQgYGNhcGFiaWxpdGllc2AgdG8gY29udHJvbCB3aGF0IHRoZSBDbG91ZEZvcm1hdGlvblxuICAgKiBkZXBsb3ltZW50IGlzIGFsbG93ZWQgdG8gZG8uXG4gICAqL1xuICBhZG1pblBlcm1pc3Npb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBhcnRpZmFjdCB0byB1c2UgZm9yIHRlbXBsYXRlIHBhcmFtZXRlcnMgdmFsdWVzIGFuZCBzdGFjayBwb2xpY3kuXG4gICAqXG4gICAqIFRoZSB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uIGZpbGUgc2hvdWxkIGNvbnRhaW4gYSBKU09OIG9iamVjdCB0aGF0IHNob3VsZCBsb29rIGxpa2UgdGhpczpcbiAgICogYHsgXCJQYXJhbWV0ZXJzXCI6IHsuLi59LCBcIlRhZ3NcIjogey4uLn0sIFwiU3RhY2tQb2xpY3lcIjogey4uLiB9fWAuIEZvciBtb3JlIGluZm9ybWF0aW9uLFxuICAgKiBzZWUgW0FXUyBDbG91ZEZvcm1hdGlvbiBBcnRpZmFjdHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2NvbnRpbnVvdXMtZGVsaXZlcnktY29kZXBpcGVsaW5lLWNmbi1hcnRpZmFjdHMuaHRtbCkuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBpZiB5b3UgaW5jbHVkZSBzZW5zaXRpdmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgcGFzc3dvcmRzLCByZXN0cmljdCBhY2Nlc3MgdG8gdGhpc1xuICAgKiBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIGlucHV0IGFydGlmYWN0c1xuICAgKi9cbiAgdGVtcGxhdGVDb25maWd1cmF0aW9uPzogY29kZXBpcGVsaW5lLkFydGlmYWN0UGF0aDtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIHNwZWNpZmllZCBoZXJlIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRlbXBsYXRlIHBhcmFtZXRlcnNcbiAgICogZm91bmQgaW4gdGhlIGFydGlmYWN0IHNwZWNpZmllZCBieSB0aGUgYHRlbXBsYXRlQ29uZmlndXJhdGlvbmAgcHJvcGVydHkuXG4gICAqXG4gICAqIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBzcGVjaWZ5XG4gICAqIG1vc3Qgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLiBVc2UgcGFyYW1ldGVyIG92ZXJyaWRlcyB0byBzcGVjaWZ5IG9ubHlcbiAgICogZHluYW1pYyBwYXJhbWV0ZXIgdmFsdWVzICh2YWx1ZXMgdGhhdCBhcmUgdW5rbm93biB1bnRpbCB5b3UgcnVuIHRoZVxuICAgKiBwaXBlbGluZSkuXG4gICAqXG4gICAqIEFsbCBwYXJhbWV0ZXIgbmFtZXMgbXVzdCBiZSBwcmVzZW50IGluIHRoZSBzdGFjayB0ZW1wbGF0ZS5cbiAgICpcbiAgICogTm90ZTogdGhlIGVudGlyZSBvYmplY3QgY2Fubm90IGJlIG1vcmUgdGhhbiAxa0IuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIG92ZXJyaWRlc1xuICAgKi9cbiAgcGFyYW1ldGVyT3ZlcnJpZGVzPzogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG59XG4vLyB0c2xpbnQ6ZW5hYmxlOm1heC1saW5lLWxlbmd0aFxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFsbCBDbG91ZEZvcm1hdGlvbiBhY3Rpb25zIHRoYXQgZXhlY3V0ZSBvciBzdGFnZSBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25EZXBsb3lBY3Rpb24gZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uQWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUNsb3VkRm9ybWF0aW9uRGVwbG95QWN0aW9uUHJvcHMsIGNvbmZpZ3VyYXRpb246IGFueSkge1xuICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IHByb3BzLmFkbWluUGVybWlzc2lvbnMgJiYgcHJvcHMuY2FwYWJpbGl0aWVzID09PSB1bmRlZmluZWQgPyBDbG91ZEZvcm1hdGlvbkNhcGFiaWxpdGllcy5OYW1lZElBTSA6IHByb3BzLmNhcGFiaWxpdGllcztcbiAgICBzdXBlcihwYXJlbnQsIGlkLCBwcm9wcywge1xuICAgICAgLi4uY29uZmlndXJhdGlvbixcbiAgICAgIC8vIE5vbmUgZXZhbHVhdGVzIHRvIGVtcHR5IHN0cmluZyB3aGljaCBpcyBmYWxzZXkgYW5kIHJlc3VsdHMgaW4gdW5kZWZpbmVkXG4gICAgICBDYXBhYmlsaXRpZXM6IChjYXBhYmlsaXRpZXMgJiYgY2FwYWJpbGl0aWVzLnRvU3RyaW5nKCkpIHx8IHVuZGVmaW5lZCxcbiAgICAgIFJvbGVBcm46IG5ldyBjZGsuVG9rZW4oKCkgPT4gdGhpcy5yb2xlLnJvbGVBcm4pLFxuICAgICAgUGFyYW1ldGVyT3ZlcnJpZGVzOiBjZGsuQ2xvdWRGb3JtYXRpb25KU09OLnN0cmluZ2lmeShwcm9wcy5wYXJhbWV0ZXJPdmVycmlkZXMpLFxuICAgICAgVGVtcGxhdGVDb25maWd1cmF0aW9uOiBwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24gPyBwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24ubG9jYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICBTdGFja05hbWU6IHByb3BzLnN0YWNrTmFtZSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5yb2xlKSB7XG4gICAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1JvbGUnLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdjbG91ZGZvcm1hdGlvbi5hbWF6b25hd3MuY29tJylcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocHJvcHMuYWRtaW5QZXJtaXNzaW9ucykge1xuICAgICAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoKS5hZGRBY3Rpb24oJyonKS5hZGRBbGxSZXNvdXJjZXMoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgU2luZ2xldG9uUG9saWN5LmZvclJvbGUocHJvcHMuc3RhZ2UucGlwZWxpbmUucm9sZSkuZ3JhbnRQYXNzUm9sZSh0aGlzLnJvbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBzdGF0ZW1lbnQgdG8gdGhlIHNlcnZpY2Ugcm9sZSBhc3N1bWVkIGJ5IENsb3VkRm9ybWF0aW9uIHdoaWxlIGV4ZWN1dGluZyB0aGlzIGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMucm9sZS5hZGRUb1BvbGljeShzdGF0ZW1lbnQpO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIFBpcGVsaW5lQ3JlYXRlUmVwbGFjZUNoYW5nZVNldEFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUNyZWF0ZVJlcGxhY2VDaGFuZ2VTZXRBY3Rpb25Qcm9wcyBleHRlbmRzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25EZXBsb3lBY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBjaGFuZ2Ugc2V0IHRvIGNyZWF0ZSBvciB1cGRhdGUuXG4gICAqL1xuICBjaGFuZ2VTZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IGFydGlmYWN0IHdpdGggdGhlIENoYW5nZVNldCdzIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICB0ZW1wbGF0ZVBhdGg6IGNvZGVwaXBlbGluZS5BcnRpZmFjdFBhdGg7XG59XG5cbi8qKlxuICogQ29kZVBpcGVsaW5lIGFjdGlvbiB0byBwcmVwYXJlIGEgY2hhbmdlIHNldC5cbiAqXG4gKiBDcmVhdGVzIHRoZSBjaGFuZ2Ugc2V0IGlmIGl0IGRvZXNuJ3QgZXhpc3QgYmFzZWQgb24gdGhlIHN0YWNrIG5hbWUgYW5kIHRlbXBsYXRlIHRoYXQgeW91IHN1Ym1pdC5cbiAqIElmIHRoZSBjaGFuZ2Ugc2V0IGV4aXN0cywgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgaXQsIGFuZCB0aGVuIGNyZWF0ZXMgYSBuZXcgb25lLlxuICovXG5leHBvcnQgY2xhc3MgUGlwZWxpbmVDcmVhdGVSZXBsYWNlQ2hhbmdlU2V0QWN0aW9uIGV4dGVuZHMgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkRlcGxveUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQ3JlYXRlUmVwbGFjZUNoYW5nZVNldEFjdGlvblByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBpZCwgcHJvcHMsIHtcbiAgICAgIEFjdGlvbk1vZGU6ICdDSEFOR0VfU0VUX1JFUExBQ0UnLFxuICAgICAgQ2hhbmdlU2V0TmFtZTogcHJvcHMuY2hhbmdlU2V0TmFtZSxcbiAgICAgIFRlbXBsYXRlUGF0aDogcHJvcHMudGVtcGxhdGVQYXRoLmxvY2F0aW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRJbnB1dEFydGlmYWN0KHByb3BzLnRlbXBsYXRlUGF0aC5hcnRpZmFjdCk7XG4gICAgaWYgKHByb3BzLnRlbXBsYXRlQ29uZmlndXJhdGlvbiAmJiBwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24uYXJ0aWZhY3QubmFtZSAhPT0gcHJvcHMudGVtcGxhdGVQYXRoLmFydGlmYWN0Lm5hbWUpIHtcbiAgICAgIHRoaXMuYWRkSW5wdXRBcnRpZmFjdChwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24uYXJ0aWZhY3QpO1xuICAgIH1cblxuICAgIFNpbmdsZXRvblBvbGljeS5mb3JSb2xlKHByb3BzLnN0YWdlLnBpcGVsaW5lLnJvbGUpLmdyYW50Q3JlYXRlUmVwbGFjZUNoYW5nZVNldChwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgUGlwZWxpbmVDcmVhdGVVcGRhdGVTdGFja0FjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUNyZWF0ZVVwZGF0ZVN0YWNrQWN0aW9uUHJvcHMgZXh0ZW5kcyBQaXBlbGluZUNsb3VkRm9ybWF0aW9uRGVwbG95QWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogSW5wdXQgYXJ0aWZhY3Qgd2l0aCB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgdG8gZGVwbG95XG4gICAqL1xuICB0ZW1wbGF0ZVBhdGg6IGNvZGVwaXBlbGluZS5BcnRpZmFjdFBhdGg7XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIHN0YWNrIGlmIGl0J3MgaW4gYSBmYWlsZWQgc3RhdGUuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUgYW5kIHRoZSBzdGFjayBpcyBpbiBhIGZhaWxlZCBzdGF0ZSAob25lIG9mXG4gICAqIFJPTExCQUNLX0NPTVBMRVRFLCBST0xMQkFDS19GQUlMRUQsIENSRUFURV9GQUlMRUQsIERFTEVURV9GQUlMRUQsIG9yXG4gICAqIFVQREFURV9ST0xMQkFDS19GQUlMRUQpLCBBV1MgQ2xvdWRGb3JtYXRpb24gZGVsZXRlcyB0aGUgc3RhY2sgYW5kIHRoZW5cbiAgICogY3JlYXRlcyBhIG5ldyBzdGFjay5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBub3Qgc2V0IHRvIHRydWUgYW5kIHRoZSBzdGFjayBpcyBpbiBhIGZhaWxlZCBzdGF0ZSxcbiAgICogdGhlIGRlcGxveW1lbnQgZmFpbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZXBsYWNlT25GYWlsdXJlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb2RlUGlwZWxpbmUgYWN0aW9uIHRvIGRlcGxveSBhIHN0YWNrLlxuICpcbiAqIENyZWF0ZXMgdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgc3RhY2sgZG9lc24ndCBleGlzdC4gSWYgdGhlIHN0YWNrIGV4aXN0cyxcbiAqIEFXUyBDbG91ZEZvcm1hdGlvbiB1cGRhdGVzIHRoZSBzdGFjay4gVXNlIHRoaXMgYWN0aW9uIHRvIHVwZGF0ZSBleGlzdGluZ1xuICogc3RhY2tzLlxuICpcbiAqIEFXUyBDb2RlUGlwZWxpbmUgd29uJ3QgcmVwbGFjZSB0aGUgc3RhY2ssIGFuZCB3aWxsIGZhaWwgZGVwbG95bWVudCBpZiB0aGVcbiAqIHN0YWNrIGlzIGluIGEgZmFpbGVkIHN0YXRlLiBVc2UgYFJlcGxhY2VPbkZhaWx1cmVgIGZvciBhbiBhY3Rpb24gdGhhdFxuICogd2lsbCBkZWxldGUgYW5kIHJlY3JlYXRlIHRoZSBzdGFjayB0byB0cnkgYW5kIHJlY292ZXIgZnJvbSBmYWlsZWQgc3RhdGVzLlxuICpcbiAqIFVzZSB0aGlzIGFjdGlvbiB0byBhdXRvbWF0aWNhbGx5IHJlcGxhY2UgZmFpbGVkIHN0YWNrcyB3aXRob3V0IHJlY292ZXJpbmcgb3JcbiAqIHRyb3VibGVzaG9vdGluZyB0aGVtLiBZb3Ugd291bGQgdHlwaWNhbGx5IGNob29zZSB0aGlzIG1vZGUgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBQaXBlbGluZUNyZWF0ZVVwZGF0ZVN0YWNrQWN0aW9uIGV4dGVuZHMgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkRlcGxveUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQ3JlYXRlVXBkYXRlU3RhY2tBY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQsIHByb3BzLCB7XG4gICAgICBBY3Rpb25Nb2RlOiBwcm9wcy5yZXBsYWNlT25GYWlsdXJlID8gJ1JFUExBQ0VfT05fRkFJTFVSRScgOiAnQ1JFQVRFX1VQREFURScsXG4gICAgICBUZW1wbGF0ZVBhdGg6IHByb3BzLnRlbXBsYXRlUGF0aC5sb2NhdGlvblxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRJbnB1dEFydGlmYWN0KHByb3BzLnRlbXBsYXRlUGF0aC5hcnRpZmFjdCk7XG4gICAgaWYgKHByb3BzLnRlbXBsYXRlQ29uZmlndXJhdGlvbiAmJiBwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24uYXJ0aWZhY3QubmFtZSAhPT0gcHJvcHMudGVtcGxhdGVQYXRoLmFydGlmYWN0Lm5hbWUpIHtcbiAgICAgIHRoaXMuYWRkSW5wdXRBcnRpZmFjdChwcm9wcy50ZW1wbGF0ZUNvbmZpZ3VyYXRpb24uYXJ0aWZhY3QpO1xuICAgIH1cblxuICAgIFNpbmdsZXRvblBvbGljeS5mb3JSb2xlKHByb3BzLnN0YWdlLnBpcGVsaW5lLnJvbGUpLmdyYW50Q3JlYXRlVXBkYXRlU3RhY2socHJvcHMpO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIFBpcGVsaW5lRGVsZXRlU3RhY2tBY3Rpb24uXG4gKi9cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVEZWxldGVTdGFja0FjdGlvblByb3BzIGV4dGVuZHMgUGlwZWxpbmVDbG91ZEZvcm1hdGlvbkRlcGxveUFjdGlvblByb3BzIHtcbn1cblxuLyoqXG4gKiBDb2RlUGlwZWxpbmUgYWN0aW9uIHRvIGRlbGV0ZSBhIHN0YWNrLlxuICpcbiAqIERlbGV0ZXMgYSBzdGFjay4gSWYgeW91IHNwZWNpZnkgYSBzdGFjayB0aGF0IGRvZXNuJ3QgZXhpc3QsIHRoZSBhY3Rpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseVxuICogd2l0aG91dCBkZWxldGluZyBhIHN0YWNrLlxuICovXG5leHBvcnQgY2xhc3MgUGlwZWxpbmVEZWxldGVTdGFja0FjdGlvbiBleHRlbmRzIFBpcGVsaW5lQ2xvdWRGb3JtYXRpb25EZXBsb3lBY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZURlbGV0ZVN0YWNrQWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkLCBwcm9wcywge1xuICAgICAgQWN0aW9uTW9kZTogJ0RFTEVURV9PTkxZJyxcbiAgICB9KTtcbiAgICBTaW5nbGV0b25Qb2xpY3kuZm9yUm9sZShwcm9wcy5zdGFnZS5waXBlbGluZS5yb2xlKS5ncmFudERlbGV0ZVN0YWNrKHByb3BzKTtcbiAgfVxufVxuXG4vKipcbiAqIENhcGFiaWxpdGllcyB0aGF0IGFmZmVjdCB3aGV0aGVyIENsb3VkRm9ybWF0aW9uIGlzIGFsbG93ZWQgdG8gY2hhbmdlIElBTSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGVudW0gQ2xvdWRGb3JtYXRpb25DYXBhYmlsaXRpZXMge1xuICAvKipcbiAgICogTm8gSUFNIENhcGFiaWxpdGllc1xuICAgKlxuICAgKiBQYXNzIHRoaXMgY2FwYWJpbGl0eSBpZiB5b3Ugd2lzaCB0byBibG9jayB0aGUgY3JlYXRpb24gSUFNIHJlc291cmNlcy5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctaWFtLXRlbXBsYXRlLmh0bWwjdXNpbmctaWFtLWNhcGFiaWxpdGllc1xuICAgKi9cbiAgTm9uZSA9ICcnLFxuXG4gIC8qKlxuICAgKiBDYXBhYmlsaXR5IHRvIGNyZWF0ZSBhbm9ueW1vdXMgSUFNIHJlc291cmNlc1xuICAgKlxuICAgKiBQYXNzIHRoaXMgY2FwYWJpbGl0eSBpZiB5b3UncmUgb25seSBjcmVhdGluZyBhbm9ueW1vdXMgcmVzb3VyY2VzLlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1pYW0tdGVtcGxhdGUuaHRtbCN1c2luZy1pYW0tY2FwYWJpbGl0aWVzXG4gICAqL1xuICBBbm9ueW1vdXNJQU0gPSAnQ0FQQUJJTElUWV9JQU0nLFxuXG4gIC8qKlxuICAgKiBDYXBhYmlsaXR5IHRvIGNyZWF0ZSBuYW1lZCBJQU0gcmVzb3VyY2VzLlxuICAgKlxuICAgKiBQYXNzIHRoaXMgY2FwYWJpbGl0eSBpZiB5b3UncmUgY3JlYXRpbmcgSUFNIHJlc291cmNlcyB0aGF0IGhhdmUgcGh5c2ljYWxcbiAgICogbmFtZXMuXG4gICAqXG4gICAqIGBDbG91ZEZvcm1hdGlvbkNhcGFiaWxpdGllcy5OYW1lZElBTWAgaW1wbGllcyBgQ2xvdWRGb3JtYXRpb25DYXBhYmlsaXRpZXMuSUFNYDsgeW91IGRvbid0IGhhdmUgdG8gcGFzcyBib3RoLlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1pYW0tdGVtcGxhdGUuaHRtbCN1c2luZy1pYW0tY2FwYWJpbGl0aWVzXG4gICAqL1xuICBOYW1lZElBTSA9ICdDQVBBQklMSVRZX05BTUVEX0lBTScsXG59XG5cbi8qKlxuICogTWFuYWdlcyBhIGJ1bmNoIG9mIHNpbmdsZXRvbi15IHN0YXRlbWVudHMgb24gdGhlIHBvbGljeSBvZiBhbiBJQU0gUm9sZS5cbiAqIERlZGljYXRlZCBtZXRob2RzIGNhbiBiZSB1c2VkIHRvIGFkZCBzcGVjaWZpYyBwZXJtaXNzaW9ucyB0byB0aGUgcm9sZSBwb2xpY3lcbiAqIHVzaW5nIGFzIGZldyBzdGF0ZW1lbnRzIGFzIHBvc3NpYmxlIChhZGRpbmcgcmVzb3VyY2VzIHRvIGV4aXN0aW5nIGNvbXBhdGlibGVcbiAqIHN0YXRlbWVudHMgaW5zdGVhZCBvZiBhZGRpbmcgbmV3IHN0YXRlbWVudHMgd2hlbmV2ZXIgcG9zc2libGUpLlxuICpcbiAqIFN0YXRlbWVudHMgY3JlYXRlZCBvdXRzaWRlIG9mIHRoaXMgY2xhc3MgYXJlIG5vdCBjb25zaWRlcmVkIHdoZW4gYWRkaW5nIG5ld1xuICogcGVybWlzc2lvbnMuXG4gKi9cbmNsYXNzIFNpbmdsZXRvblBvbGljeSBleHRlbmRzIGNkay5Db25zdHJ1Y3Qge1xuICAvKipcbiAgICogT2J0YWluIGEgU2luZ2xldG9uUG9saWN5IGZvciBhIGdpdmVuIHJvbGUuXG4gICAqIEBwYXJhbSByb2xlIHRoZSBSb2xlIHRoaXMgcG9saWN5IGlzIGJvdW5kIHRvLlxuICAgKiBAcmV0dXJucyB0aGUgU2luZ2xldG9uUG9saWN5IGZvciB0aGlzIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvclJvbGUocm9sZTogaWFtLlJvbGUpOiBTaW5nbGV0b25Qb2xpY3kge1xuICAgIGNvbnN0IGZvdW5kID0gcm9sZS50cnlGaW5kQ2hpbGQoU2luZ2xldG9uUG9saWN5LlVVSUQpO1xuICAgIHJldHVybiAoZm91bmQgYXMgU2luZ2xldG9uUG9saWN5KSB8fCBuZXcgU2luZ2xldG9uUG9saWN5KHJvbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVVJRCA9ICc4Mzg5ZTc1Zi0wODEwLTQ4MzgtYmY2NC1kNmY4NWE5NWNmODMnO1xuXG4gIHByaXZhdGUgc3RhdGVtZW50czogeyBba2V5OiBzdHJpbmddOiBpYW0uUG9saWN5U3RhdGVtZW50IH0gPSB7fTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGUpIHtcbiAgICBzdXBlcihyb2xlLCBTaW5nbGV0b25Qb2xpY3kuVVVJRCk7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRFeGVjdXRlQ2hhbmdlU2V0KHByb3BzOiB7IHN0YWNrTmFtZTogc3RyaW5nLCBjaGFuZ2VTZXROYW1lOiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZW1lbnRGb3Ioe1xuICAgICAgYWN0aW9uczogWydjbG91ZGZvcm1hdGlvbjpFeGVjdXRlQ2hhbmdlU2V0J10sXG4gICAgICBjb25kaXRpb25zOiB7wqBTdHJpbmdFcXVhbHM6IHsgJ2Nsb3VkZm9ybWF0aW9uOkNoYW5nZVNldE5hbWUnOiBwcm9wcy5jaGFuZ2VTZXROYW1lIH0gfSxcbiAgICB9KS5hZGRSZXNvdXJjZShzdGFja0FybkZyb21Qcm9wcyhwcm9wcykpO1xuICB9XG5cbiAgcHVibGljIGdyYW50Q3JlYXRlUmVwbGFjZUNoYW5nZVNldChwcm9wczogeyBzdGFja05hbWU6IHN0cmluZywgY2hhbmdlU2V0TmFtZTogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVtZW50Rm9yKHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2Nsb3VkZm9ybWF0aW9uOkNyZWF0ZUNoYW5nZVNldCcsXG4gICAgICAgICdjbG91ZGZvcm1hdGlvbjpEZWxldGVDaGFuZ2VTZXQnLFxuICAgICAgICAnY2xvdWRmb3JtYXRpb246RGVzY3JpYmVDaGFuZ2VTZXQnLFxuICAgICAgICAnY2xvdWRmb3JtYXRpb246RGVzY3JpYmVTdGFja3MnLFxuICAgICAgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHsgU3RyaW5nRXF1YWxzSWZFeGlzdHM6IHsgJ2Nsb3VkZm9ybWF0aW9uOkNoYW5nZVNldE5hbWUnOiBwcm9wcy5jaGFuZ2VTZXROYW1lIH0gfSxcbiAgICB9KS5hZGRSZXNvdXJjZShzdGFja0FybkZyb21Qcm9wcyhwcm9wcykpO1xuICB9XG5cbiAgcHVibGljIGdyYW50Q3JlYXRlVXBkYXRlU3RhY2socHJvcHM6IHsgc3RhY2tOYW1lOiBzdHJpbmcsIHJlcGxhY2VPbkZhaWx1cmU/OiBib29sZWFuLCByZWdpb24/OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbXG4gICAgICAnY2xvdWRmb3JtYXRpb246RGVzY3JpYmVTdGFjayonLFxuICAgICAgJ2Nsb3VkZm9ybWF0aW9uOkNyZWF0ZVN0YWNrJyxcbiAgICAgICdjbG91ZGZvcm1hdGlvbjpVcGRhdGVTdGFjaycsXG4gICAgICAnY2xvdWRmb3JtYXRpb246R2V0VGVtcGxhdGUqJyxcbiAgICAgICdjbG91ZGZvcm1hdGlvbjpWYWxpZGF0ZVRlbXBsYXRlJyxcbiAgICAgICdjbG91ZGZvcm1hdGlvbjpHZXRTdGFja1BvbGljeScsXG4gICAgICAnY2xvdWRmb3JtYXRpb246U2V0U3RhY2tQb2xpY3knLFxuICAgIF07XG4gICAgaWYgKHByb3BzLnJlcGxhY2VPbkZhaWx1cmUpIHtcbiAgICAgIGFjdGlvbnMucHVzaCgnY2xvdWRmb3JtYXRpb246RGVsZXRlU3RhY2snKTtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZW1lbnRGb3IoeyBhY3Rpb25zIH0pLmFkZFJlc291cmNlKHN0YWNrQXJuRnJvbVByb3BzKHByb3BzKSk7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnREZWxldGVTdGFjayhwcm9wczogeyBzdGFja05hbWU6IHN0cmluZywgcmVnaW9uPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlbWVudEZvcih7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrKicsXG4gICAgICAgICdjbG91ZGZvcm1hdGlvbjpEZWxldGVTdGFjaycsXG4gICAgICBdXG4gICAgfSkuYWRkUmVzb3VyY2Uoc3RhY2tBcm5Gcm9tUHJvcHMocHJvcHMpKTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudFBhc3NSb2xlKHJvbGU6IGlhbS5JUm9sZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVtZW50Rm9yKHsgYWN0aW9uczogWydpYW06UGFzc1JvbGUnXSB9KS5hZGRSZXNvdXJjZShyb2xlLnJvbGVBcm4pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZW1lbnRGb3IodGVtcGxhdGU6IFN0YXRlbWVudFRlbXBsYXRlKTogaWFtLlBvbGljeVN0YXRlbWVudCB7XG4gICAgY29uc3Qga2V5ID0ga2V5Rm9yKHRlbXBsYXRlKTtcbiAgICBpZiAoIShrZXkgaW4gdGhpcy5zdGF0ZW1lbnRzKSkge1xuICAgICAgdGhpcy5zdGF0ZW1lbnRzW2tleV0gPSBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCgpLmFkZEFjdGlvbnMoLi4udGVtcGxhdGUuYWN0aW9ucyk7XG4gICAgICBpZiAodGVtcGxhdGUuY29uZGl0aW9ucykge1xuICAgICAgICB0aGlzLnN0YXRlbWVudHNba2V5XS5hZGRDb25kaXRpb25zKHRlbXBsYXRlLmNvbmRpdGlvbnMpO1xuICAgICAgfVxuICAgICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KHRoaXMuc3RhdGVtZW50c1trZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50c1trZXldO1xuXG4gICAgZnVuY3Rpb24ga2V5Rm9yKHByb3BzOiBTdGF0ZW1lbnRUZW1wbGF0ZSk6IHN0cmluZyB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gYCR7cHJvcHMuYWN0aW9ucy5zb3J0KCkuam9pbignXFx4MUYnKX1gO1xuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IGZvcm1hdENvbmRpdGlvbnMocHJvcHMuY29uZGl0aW9ucyk7XG4gICAgICByZXR1cm4gYCR7YWN0aW9uc31cXHgxRCR7Y29uZGl0aW9uc31gO1xuXG4gICAgICBmdW5jdGlvbiBmb3JtYXRDb25kaXRpb25zKGNvbmQ/OiBTdGF0ZW1lbnRDb25kaXRpb24pOiBzdHJpbmcge1xuICAgICAgICBpZiAoY29uZCA9PSBudWxsKSB7IHJldHVybiAnJzsgfVxuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGZvciAoY29uc3Qgb3Agb2YgT2JqZWN0LmtleXMoY29uZCkuc29ydCgpKSB7XG4gICAgICAgICAgcmVzdWx0ICs9IGAke29wfVxceDFFYDtcbiAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSBjb25kW29wXTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBPYmplY3Qua2V5cyhjb25kaXRpb24pLnNvcnQoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb25kaXRpb25bYXR0cmlidXRlXTtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgJHt2YWx1ZX1cXHgxRmA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBTdGF0ZW1lbnRUZW1wbGF0ZSB7XG4gIGFjdGlvbnM6IHN0cmluZ1tdO1xuICBjb25kaXRpb25zPzogU3RhdGVtZW50Q29uZGl0aW9uO1xufVxuXG50eXBlIFN0YXRlbWVudENvbmRpdGlvbiA9IHsgW29wOiBzdHJpbmddOiB7IFthdHRyaWJ1dGU6IHN0cmluZ106IHN0cmluZyB9IH07XG5cbmZ1bmN0aW9uIHN0YWNrQXJuRnJvbVByb3BzKHByb3BzOiB7IHN0YWNrTmFtZTogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gIHJldHVybiBjZGsuQXJuVXRpbHMuZnJvbUNvbXBvbmVudHMoe1xuICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgIHNlcnZpY2U6ICdjbG91ZGZvcm1hdGlvbicsXG4gICAgcmVzb3VyY2U6ICdzdGFjaycsXG4gICAgcmVzb3VyY2VOYW1lOiBgJHtwcm9wcy5zdGFja05hbWV9LypgXG4gIH0pO1xufVxuIl19
{
"name": "@aws-cdk/aws-cloudformation",
"version": "0.20.0",
"version": "0.21.0",
"description": "CDK Constructs for AWS CloudFormation",

@@ -59,26 +59,29 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "^0.20.0",
"@aws-cdk/aws-events": "^0.20.0",
"@aws-cdk/assert": "^0.21.0",
"@aws-cdk/aws-events": "^0.21.0",
"@types/lodash": "^4.14.118",
"cdk-build-tools": "^0.20.0",
"cdk-integ-tools": "^0.20.0",
"cfn2ts": "^0.20.0",
"cdk-build-tools": "^0.21.0",
"cdk-integ-tools": "^0.21.0",
"cfn2ts": "^0.21.0",
"lodash": "^4.17.11",
"pkglint": "^0.20.0"
"pkglint": "^0.21.0"
},
"dependencies": {
"@aws-cdk/aws-codepipeline-api": "^0.20.0",
"@aws-cdk/aws-iam": "^0.20.0",
"@aws-cdk/aws-lambda": "^0.20.0",
"@aws-cdk/aws-sns": "^0.20.0",
"@aws-cdk/cdk": "^0.20.0"
"@aws-cdk/aws-codepipeline-api": "^0.21.0",
"@aws-cdk/aws-iam": "^0.21.0",
"@aws-cdk/aws-lambda": "^0.21.0",
"@aws-cdk/aws-sns": "^0.21.0",
"@aws-cdk/cdk": "^0.21.0"
},
"homepage": "https://github.com/awslabs/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-codepipeline-api": "^0.20.0",
"@aws-cdk/aws-iam": "^0.20.0",
"@aws-cdk/aws-lambda": "^0.20.0",
"@aws-cdk/aws-sns": "^0.20.0",
"@aws-cdk/cdk": "^0.20.0"
"@aws-cdk/aws-codepipeline-api": "^0.21.0",
"@aws-cdk/aws-iam": "^0.21.0",
"@aws-cdk/aws-lambda": "^0.21.0",
"@aws-cdk/aws-sns": "^0.21.0",
"@aws-cdk/cdk": "^0.21.0"
},
"engines": {
"node": ">= 8.10.0"
}
}

@@ -6,7 +6,7 @@ "use strict";

const fs = require("fs");
const cloudformation = require("../lib");
const lib_1 = require("../lib");
class DemoResource extends cdk.Construct {
constructor(parent, name, props) {
super(parent, name);
const resource = new cloudformation.CustomResource(this, 'Resource', {
const resource = new lib_1.CustomResource(this, 'Resource', {
lambdaProvider: new lambda.SingletonFunction(this, 'Singleton', {

@@ -44,2 +44,2 @@ uuid: 'f7d4f730-4ee1-11e8-9c2d-fa7ae01bbebc',

app.run();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcudHJpdmlhbC1sYW1iZGEtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy50cml2aWFsLWxhbWJkYS1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhDQUErQztBQUMvQyxvQ0FBcUM7QUFDckMseUJBQTBCO0FBQzFCLHlDQUEwQztBQWMxQyxNQUFNLFlBQWEsU0FBUSxHQUFHLENBQUMsU0FBUztJQUd0QyxZQUFZLE1BQXFCLEVBQUUsSUFBWSxFQUFFLEtBQXdCO1FBQ3ZFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbkUsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQzlELElBQUksRUFBRSxzQ0FBc0M7Z0JBQzVDLHlGQUF5RjtnQkFDekYsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3ZHLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixPQUFPLEVBQUUsR0FBRztnQkFDWixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2FBQ2pDLENBQUM7WUFDRixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLGVBQWdCLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDckMsWUFBWSxNQUFlLEVBQUUsSUFBWSxFQUFFLEtBQXNCO1FBQy9ELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDdEQsT0FBTyxFQUFFLDJCQUEyQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxxQ0FBcUM7UUFDckMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN0QyxXQUFXLEVBQUUscURBQXFEO1lBQ2xFLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQixJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUU1QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGFtYmRhID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWxhbWJkYScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCBjbG91ZGZvcm1hdGlvbiA9IHJlcXVpcmUoJy4uL2xpYicpO1xuXG5pbnRlcmZhY2UgRGVtb1Jlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogTWVzc2FnZSB0byBlY2hvXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgdG8gZmFpbCB0aGUgQ1JFQVRFIGludm9jYXRpb25cbiAgICovXG4gIGZhaWxDcmVhdGU/OiBib29sZWFuO1xufVxuXG5jbGFzcyBEZW1vUmVzb3VyY2UgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBEZW1vUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBjbG91ZGZvcm1hdGlvbi5DdXN0b21SZXNvdXJjZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBsYW1iZGFQcm92aWRlcjogbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnU2luZ2xldG9uJywge1xuICAgICAgICB1dWlkOiAnZjdkNGY3MzAtNGVlMS0xMWU4LTljMmQtZmE3YWUwMWJiZWJjJyxcbiAgICAgICAgLy8gVGhpcyBtYWtlcyB0aGUgZGVtbyBvbmx5IHdvcmsgYXMgdG9wLWxldmVsIFR5cGVTY3JpcHQgcHJvZ3JhbSwgYnV0IHRoYXQncyBmaW5lIGZvciBub3dcbiAgICAgICAgY29kZTogbmV3IGxhbWJkYS5JbmxpbmVDb2RlKGZzLnJlYWRGaWxlU3luYygnaW50ZWcudHJpdmlhbC1sYW1iZGEtcHJvdmlkZXIucHknLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKSxcbiAgICAgICAgaGFuZGxlcjogJ2luZGV4Lm1haW4nLFxuICAgICAgICB0aW1lb3V0OiAzMDAsXG4gICAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlB5dGhvbjI3LFxuICAgICAgfSksXG4gICAgICBwcm9wZXJ0aWVzOiBwcm9wc1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc291cmNlLmdldEF0dCgnUmVzcG9uc2UnKS50b1N0cmluZygpO1xuICB9XG59XG5cbi8qKlxuICogQSBzdGFjayB0aGF0IG9ubHkgc2V0cyB1cCB0aGUgQ3VzdG9tUmVzb3VyY2UgYW5kIHNob3dzIGhvdyB0byBnZXQgYW4gYXR0cmlidXRlIGZyb20gaXRcbiAqL1xuY2xhc3MgU3VjY2VlZGluZ1N0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQXBwLCBuYW1lOiBzdHJpbmcsIHByb3BzPzogY2RrLlN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIG5hbWUsIHByb3BzKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IERlbW9SZXNvdXJjZSh0aGlzLCAnRGVtb1Jlc291cmNlJywge1xuICAgICAgbWVzc2FnZTogJ0N1c3RvbVJlc291cmNlIHNheXMgaGVsbG8nLFxuICAgIH0pO1xuXG4gICAgLy8gUHVibGlzaCB0aGUgY3VzdG9tIHJlc291cmNlIG91dHB1dFxuICAgIG5ldyBjZGsuT3V0cHV0KHRoaXMsICdSZXNwb25zZU1lc3NhZ2UnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSBtZXNzYWdlIHRoYXQgY2FtZSBiYWNrIGZyb20gdGhlIEN1c3RvbSBSZXNvdXJjZScsXG4gICAgICB2YWx1ZTogcmVzb3VyY2UucmVzcG9uc2VcbiAgICB9KTtcbiAgfVxufVxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcblxubmV3IFN1Y2NlZWRpbmdTdGFjayhhcHAsICdTdWNjZWVkaW5nU3RhY2snKTtcblxuYXBwLnJ1bigpO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcudHJpdmlhbC1sYW1iZGEtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy50cml2aWFsLWxhbWJkYS1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhDQUErQztBQUMvQyxvQ0FBcUM7QUFDckMseUJBQTBCO0FBQzFCLGdDQUF3QztBQWN4QyxNQUFNLFlBQWEsU0FBUSxHQUFHLENBQUMsU0FBUztJQUd0QyxZQUFZLE1BQXFCLEVBQUUsSUFBWSxFQUFFLEtBQXdCO1FBQ3ZFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDcEQsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQzlELElBQUksRUFBRSxzQ0FBc0M7Z0JBQzVDLHlGQUF5RjtnQkFDekYsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3ZHLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixPQUFPLEVBQUUsR0FBRztnQkFDWixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2FBQ2pDLENBQUM7WUFDRixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLGVBQWdCLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDckMsWUFBWSxNQUFlLEVBQUUsSUFBWSxFQUFFLEtBQXNCO1FBQy9ELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDdEQsT0FBTyxFQUFFLDJCQUEyQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxxQ0FBcUM7UUFDckMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN0QyxXQUFXLEVBQUUscURBQXFEO1lBQ2xFLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQixJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUU1QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGFtYmRhID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWxhbWJkYScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCB7IEN1c3RvbVJlc291cmNlIH0gZnJvbSAnLi4vbGliJztcblxuaW50ZXJmYWNlIERlbW9SZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gZWNob1xuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIHRvIGZhaWwgdGhlIENSRUFURSBpbnZvY2F0aW9uXG4gICAqL1xuICBmYWlsQ3JlYXRlPzogYm9vbGVhbjtcbn1cblxuY2xhc3MgRGVtb1Jlc291cmNlIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByZXNwb25zZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogRGVtb1Jlc291cmNlUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIG5hbWUpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbGFtYmRhUHJvdmlkZXI6IG5ldyBsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24odGhpcywgJ1NpbmdsZXRvbicsIHtcbiAgICAgICAgdXVpZDogJ2Y3ZDRmNzMwLTRlZTEtMTFlOC05YzJkLWZhN2FlMDFiYmViYycsXG4gICAgICAgIC8vIFRoaXMgbWFrZXMgdGhlIGRlbW8gb25seSB3b3JrIGFzIHRvcC1sZXZlbCBUeXBlU2NyaXB0IHByb2dyYW0sIGJ1dCB0aGF0J3MgZmluZSBmb3Igbm93XG4gICAgICAgIGNvZGU6IG5ldyBsYW1iZGEuSW5saW5lQ29kZShmcy5yZWFkRmlsZVN5bmMoJ2ludGVnLnRyaXZpYWwtbGFtYmRhLXByb3ZpZGVyLnB5JywgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5tYWluJyxcbiAgICAgICAgdGltZW91dDogMzAwLFxuICAgICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QeXRob24yNyxcbiAgICAgIH0pLFxuICAgICAgcHJvcGVydGllczogcHJvcHNcbiAgICB9KTtcblxuICAgIHRoaXMucmVzcG9uc2UgPSByZXNvdXJjZS5nZXRBdHQoJ1Jlc3BvbnNlJykudG9TdHJpbmcoKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc3RhY2sgdGhhdCBvbmx5IHNldHMgdXAgdGhlIEN1c3RvbVJlc291cmNlIGFuZCBzaG93cyBob3cgdG8gZ2V0IGFuIGF0dHJpYnV0ZSBmcm9tIGl0XG4gKi9cbmNsYXNzIFN1Y2NlZWRpbmdTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkFwcCwgbmFtZTogc3RyaW5nLCBwcm9wcz86IGNkay5TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBuYW1lLCBwcm9wcyk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBEZW1vUmVzb3VyY2UodGhpcywgJ0RlbW9SZXNvdXJjZScsIHtcbiAgICAgIG1lc3NhZ2U6ICdDdXN0b21SZXNvdXJjZSBzYXlzIGhlbGxvJyxcbiAgICB9KTtcblxuICAgIC8vIFB1Ymxpc2ggdGhlIGN1c3RvbSByZXNvdXJjZSBvdXRwdXRcbiAgICBuZXcgY2RrLk91dHB1dCh0aGlzLCAnUmVzcG9uc2VNZXNzYWdlJywge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgbWVzc2FnZSB0aGF0IGNhbWUgYmFjayBmcm9tIHRoZSBDdXN0b20gUmVzb3VyY2UnLFxuICAgICAgdmFsdWU6IHJlc291cmNlLnJlc3BvbnNlXG4gICAgfSk7XG4gIH1cbn1cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5cbm5ldyBTdWNjZWVkaW5nU3RhY2soYXBwLCAnU3VjY2VlZGluZ1N0YWNrJyk7XG5cbmFwcC5ydW4oKTtcbiJdfQ==

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc