Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-cdk/aws-sns

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-sns - npm Package Compare versions

Comparing version 0.9.1 to 0.9.2

15

lib/sns.generated.d.ts

@@ -51,3 +51,3 @@ import cdk = require('@aws-cdk/cdk');

static readonly resourceTypeName: string;
readonly ref: SubscriptionArn;
readonly subscriptionArn: string;
/**

@@ -66,5 +66,2 @@ * Creates a new ``AWS::SNS::Subscription``.

}
export declare class SubscriptionArn extends cdk.Arn {
private readonly thisIsASubscriptionArn;
}
export declare namespace cloudformation {

@@ -102,4 +99,4 @@ /**

*/
readonly topicName: TopicName;
readonly ref: TopicArn;
readonly topicName: string;
readonly topicArn: string;
/**

@@ -135,8 +132,2 @@ * Creates a new ``AWS::SNS::Topic``.

}
export declare class TopicName extends cdk.CloudFormationToken {
private readonly thisIsATopicName;
}
export declare class TopicArn extends cdk.Arn {
private readonly thisIsATopicArn;
}
export declare namespace cloudformation {

@@ -143,0 +134,0 @@ /**

34

lib/sns.generated.js

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

// See: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
// @cfn2ts:meta@ {"generated":"2018-09-14T09:08:38.727Z","fingerprint":"WUrPNLmwS+472gpEg/Fk+rMdkEpUs8LUg2ZTu+Xwlzo="}
// @cfn2ts:meta@ {"generated":"2018-09-20T12:55:37.454Z","fingerprint":"WUrPNLmwS+472gpEg/Fk+rMdkEpUs8LUg2ZTu+Xwlzo="}
Object.defineProperty(exports, "__esModule", { value: true });

@@ -68,3 +68,3 @@ // tslint:disable:max-line-length | This is generated code - line lengths are difficult to control

super(parent, name, { type: SubscriptionResource.resourceTypeName, properties });
this.ref = new SubscriptionArn({ Ref: this.logicalId }, `${this.logicalId}.Ref`);
this.subscriptionArn = this.ref.toString();
}

@@ -81,10 +81,2 @@ renderProperties() {

})(cloudformation = exports.cloudformation || (exports.cloudformation = {}));
class SubscriptionArn extends cdk.Arn {
constructor() {
super(...arguments);
// @ts-ignore: private but unused on purpose.
this.thisIsASubscriptionArn = true;
}
}
exports.SubscriptionArn = SubscriptionArn;
(function (cloudformation) {

@@ -139,4 +131,4 @@ /**

super(parent, name, { type: TopicResource.resourceTypeName, properties });
this.topicName = new TopicName(this.getAtt('TopicName'));
this.ref = new TopicArn({ Ref: this.logicalId }, `${this.logicalId}.Ref`);
this.topicName = this.getAtt('TopicName').toString();
this.topicArn = this.ref.toString();
}

@@ -188,18 +180,2 @@ renderProperties() {

})(cloudformation = exports.cloudformation || (exports.cloudformation = {}));
class TopicName extends cdk.CloudFormationToken {
constructor() {
super(...arguments);
// @ts-ignore: private but unused on purpose.
this.thisIsATopicName = true;
}
}
exports.TopicName = TopicName;
class TopicArn extends cdk.Arn {
constructor() {
super(...arguments);
// @ts-ignore: private but unused on purpose.
this.thisIsATopicArn = true;
}
}
exports.TopicArn = TopicArn;
(function (cloudformation) {

@@ -267,2 +243,2 @@ /**

})(cloudformation = exports.cloudformation || (exports.cloudformation = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNucy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtFQUErRTtBQUMvRSwrREFBK0Q7QUFDL0QsOEZBQThGO0FBQzlGLHNIQUFzSDs7QUFFdEgsa0dBQWtHO0FBRWxHLG9DQUFxQztBQUVyQyxJQUFpQixjQUFjLENBNkc5QjtBQTdHRCxXQUFpQixjQUFjO0lBMEMzQjs7Ozs7O09BTUc7SUFDSCxTQUFTLGtDQUFrQyxDQUFDLFVBQWU7UUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUFFO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxD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LGNBQWMsRUFBRSxHQUFHLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztZQUNyRSxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ3hFLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFhLG1CQUFvQixTQUFRLEdBQUcsQ0FBQyxRQUFRO1FBTWpEOzs7Ozs7V0FNRztRQUNILFlBQVksTUFBcUIsRUFBRSxJQUFZLEVBQUUsVUFBb0M7WUFDakYsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNoRixHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVTLGdCQUFnQjtZQUN0QixPQUFPLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQzs7SUFwQkQ7O09BRUc7SUFDb0Isb0NBQWdCLEdBQUcsdUJBQXVCLENBQUM7SUFKekQsa0NBQW1CLHNCQXNCL0IsQ0FBQTtBQUNMLENBQUMsRUE1RWdCLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBNEU5QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDEyLTIwMTggQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuLy8gU2VlOiBkb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvY2ZuLXJlc291cmNlLXNwZWNpZmljYXRpb24uaHRtbFxuLy8gQGNmbjJ0czptZXRhQCB7XCJnZW5lcmF0ZWRcIjpcIjIwMTgtMDktMTRUMDk6MDg6MzguNzI3WlwiLFwiZmluZ2VycHJpbnRcIjpcIldVclBOTG13Uys0NzJncEVnL0ZrK3JNZGtFcFVzOExVZzJaVHUrWHdsem89XCJ9XG5cbi8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCB8IFRoaXMgaXMgZ2VuZXJhdGVkIGNvZGUgLSBsaW5lIGxlbmd0aHMgYXJlIGRpZmZpY3VsdCB0byBjb250cm9sXG5cbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcblxuZXhwb3J0IG5hbWVzcGFjZSBjbG91ZGZvcm1hdGlvbiB7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlN1YnNjcmlwdGlvbi5EZWxpdmVyeVBvbGljeWBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1kZWxpdmVyeXBvbGljeVxuICAgICAgICAgKi9cbiAgICAgICAgZGVsaXZlcnlQb2xpY3k/OiBvYmplY3QgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlN1YnNjcmlwdGlvbi5FbmRwb2ludGBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLWVuZHBvaW50XG4gICAgICAgICAqL1xuICAgICAgICBlbmRwb2ludD86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLkZpbHRlclBvbGljeWBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1maWx0ZXJwb2xpY3lcbiAgICAgICAgICovXG4gICAgICAgIGZpbHRlclBvbGljeT86IG9iamVjdCB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLlByb3RvY29sYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sI2Nmbi1zbnMtcHJvdG9jb2xcbiAgICAgICAgICovXG4gICAgICAgIHByb3RvY29sPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6U05TOjpTdWJzY3JpcHRpb24uUmF3TWVzc2FnZURlbGl2ZXJ5YGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sI2Nmbi1zbnMtc3Vic2NyaXB0aW9uLXJhd21lc3NhZ2VkZWxpdmVyeVxuICAgICAgICAgKi9cbiAgICAgICAgcmF3TWVzc2FnZURlbGl2ZXJ5PzogYm9vbGVhbiB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLlJlZ2lvbmBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1yZWdpb25cbiAgICAgICAgICovXG4gICAgICAgIHJlZ2lvbj86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLlRvcGljQXJuYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sI3RvcGljYXJuXG4gICAgICAgICAqL1xuICAgICAgICB0b3BpY0Fybj86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFN1YnNjcmlwdGlvblJlc291cmNlUHJvcHNgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignZGVsaXZlcnlQb2xpY3knLCBjZGsudmFsaWRhdGVPYmplY3QpKHByb3BlcnRpZXMuZGVsaXZlcnlQb2xpY3kpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdlbmRwb2ludCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5lbmRwb2ludCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2ZpbHRlclBvbGljeScsIGNkay52YWxpZGF0ZU9iamVjdCkocHJvcGVydGllcy5maWx0ZXJQb2xpY3kpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdwcm90b2NvbCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5wcm90b2NvbCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Jhd01lc3NhZ2VEZWxpdmVyeScsIGNkay52YWxpZGF0ZUJvb2xlYW4pKHByb3BlcnRpZXMucmF3TWVzc2FnZURlbGl2ZXJ5KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncmVnaW9uJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnJlZ2lvbikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3RvcGljQXJuJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnRvcGljQXJuKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzXCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpTdWJzY3JpcHRpb25gYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgU3Vic2NyaXB0aW9uUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3Vic2NyaXB0aW9uUmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIERlbGl2ZXJ5UG9saWN5OiBjZGsub2JqZWN0VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmRlbGl2ZXJ5UG9saWN5KSxcbiAgICAgICAgICAgIEVuZHBvaW50OiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmVuZHBvaW50KSxcbiAgICAgICAgICAgIEZpbHRlclBvbGljeTogY2RrLm9iamVjdFRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5maWx0ZXJQb2xpY3kpLFxuICAgICAgICAgICAgUHJvdG9jb2w6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMucHJvdG9jb2wpLFxuICAgICAgICAgICAgUmF3TWVzc2FnZURlbGl2ZXJ5OiBjZGsuYm9vbGVhblRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5yYXdNZXNzYWdlRGVsaXZlcnkpLFxuICAgICAgICAgICAgUmVnaW9uOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnJlZ2lvbiksXG4gICAgICAgICAgICBUb3BpY0FybjogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy50b3BpY0FybiksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblJlc291cmNlIGV4dGVuZHMgY2RrLlJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAgICAgICAqL1xuICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlc291cmNlVHlwZU5hbWUgPSBcIkFXUzo6U05TOjpTdWJzY3JpcHRpb25cIjtcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHJlZjogU3Vic2NyaXB0aW9uQXJuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IGBgQVdTOjpTTlM6OlN1YnNjcmlwdGlvbmBgLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0gcGFyZW50ICAgICB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdGhpcyBgYFN1YnNjcmlwdGlvblJlc291cmNlYGAgaXMgYSBwYXJ0IG9mXG4gICAgICAgICAqIEBwYXJhbSBuYW1lICAgICAgIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdHJlZVxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGBgU3Vic2NyaXB0aW9uUmVzb3VyY2VgYFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM/OiBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzKSB7XG4gICAgICAgICAgICBzdXBlcihwYXJlbnQsIG5hbWUsIHsgdHlwZTogU3Vic2NyaXB0aW9uUmVzb3VyY2UucmVzb3VyY2VUeXBlTmFtZSwgcHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIHRoaXMucmVmID0gbmV3IFN1YnNjcmlwdGlvbkFybih7IFJlZjogdGhpcy5sb2dpY2FsSWQgfSwgYCR7dGhpcy5sb2dpY2FsSWR9LlJlZmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvblJlc291cmNlUHJvcHNUb0Nsb3VkRm9ybWF0aW9uKGNkay5yZXNvbHZlKHRoaXMucHJvcGVydGllcykpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uQXJuIGV4dGVuZHMgY2RrLkFybiB7XG4gICAgLy8gQHRzLWlnbm9yZTogcHJpdmF0ZSBidXQgdW51c2VkIG9uIHB1cnBvc2UuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aGlzSXNBU3Vic2NyaXB0aW9uQXJuID0gdHJ1ZTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBjbG91ZGZvcm1hdGlvbiB7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbFxuICAgICAqL1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVG9waWNSZXNvdXJjZVByb3BzIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlRvcGljLkRpc3BsYXlOYW1lYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbCNjZm4tc25zLXRvcGljLWRpc3BsYXluYW1lXG4gICAgICAgICAqL1xuICAgICAgICBkaXNwbGF5TmFtZT86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6VG9waWMuU3Vic2NyaXB0aW9uYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbCNjZm4tc25zLXRvcGljLXN1YnNjcmlwdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgc3Vic2NyaXB0aW9uPzogQXJyYXk8VG9waWNSZXNvdXJjZS5TdWJzY3JpcHRpb25Qcm9wZXJ0eSB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuPiB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6VG9waWMuVG9waWNOYW1lYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbCNjZm4tc25zLXRvcGljLXRvcGljbmFtZVxuICAgICAgICAgKi9cbiAgICAgICAgdG9waWNOYW1lPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgYFRvcGljUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBUb3BpY1Jlc291cmNlUHJvcHNgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBUb3BpY1Jlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdkaXNwbGF5TmFtZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5kaXNwbGF5TmFtZSkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3N1YnNjcmlwdGlvbicsIGNkay5saXN0VmFsaWRhdG9yKFRvcGljUmVzb3VyY2VfU3Vic2NyaXB0aW9uUHJvcGVydHlWYWxpZGF0b3IpKShwcm9wZXJ0aWVzLnN1YnNjcmlwdGlvbikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3RvcGljTmFtZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy50b3BpY05hbWUpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlRvcGljUmVzb3VyY2VQcm9wc1wiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OlNOUzo6VG9waWNgYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgVG9waWNSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpUb3BpY2BgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvcGljUmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBUb3BpY1Jlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgRGlzcGxheU5hbWU6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuZGlzcGxheU5hbWUpLFxuICAgICAgICAgICAgU3Vic2NyaXB0aW9uOiBjZGsubGlzdE1hcHBlcih0b3BpY1Jlc291cmNlU3Vic2NyaXB0aW9uUHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKShwcm9wZXJ0aWVzLnN1YnNjcmlwdGlvbiksXG4gICAgICAgICAgICBUb3BpY05hbWU6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMudG9waWNOYW1lKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy10b3BpYy5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGNsYXNzIFRvcGljUmVzb3VyY2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgICAgICovXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVzb3VyY2VUeXBlTmFtZSA9IFwiQVdTOjpTTlM6OlRvcGljXCI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBjbG91ZGZvcm1hdGlvbl9hdHRyaWJ1dGUgVG9waWNOYW1lXG4gICAgICAgICAqL1xuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNOYW1lOiBUb3BpY05hbWU7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSByZWY6IFRvcGljQXJuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IGBgQVdTOjpTTlM6OlRvcGljYGAuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBwYXJlbnQgICAgIHRoZSBgYGNkay5Db25zdHJ1Y3RgYCB0aGlzIGBgVG9waWNSZXNvdXJjZWBgIGlzIGEgcGFydCBvZlxuICAgICAgICAgKiBAcGFyYW0gbmFtZSAgICAgICB0aGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgaW4gdGhlIGBgY2RrLkNvbnN0cnVjdGBgIHRyZWVcbiAgICAgICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBgYFRvcGljUmVzb3VyY2VgYFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM/OiBUb3BpY1Jlc291cmNlUHJvcHMpIHtcbiAgICAgICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSwgeyB0eXBlOiBUb3BpY1Jlc291cmNlLnJlc291cmNlVHlwZU5hbWUsIHByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgICB0aGlzLnRvcGljTmFtZSA9IG5ldyBUb3BpY05hbWUodGhpcy5nZXRBdHQoJ1RvcGljTmFtZScpKTtcbiAgICAgICAgICAgIHRoaXMucmVmID0gbmV3IFRvcGljQXJuKHsgUmVmOiB0aGlzLmxvZ2ljYWxJZCB9LCBgJHt0aGlzLmxvZ2ljYWxJZH0uUmVmYCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyUHJvcGVydGllcygpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgICAgICByZXR1cm4gdG9waWNSZXNvdXJjZVByb3BzVG9DbG91ZEZvcm1hdGlvbihjZGsucmVzb2x2ZSh0aGlzLnByb3BlcnRpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgVG9waWNSZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1zdWJzY3JpcHRpb24uaHRtbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25Qcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgVG9waWNSZXNvdXJjZS5TdWJzY3JpcHRpb25Qcm9wZXJ0eS5FbmRwb2ludGBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXRvcGljLXN1YnNjcmlwdGlvbi1lbmRwb2ludFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBlbmRwb2ludDogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgVG9waWNSZXNvdXJjZS5TdWJzY3JpcHRpb25Qcm9wZXJ0eS5Qcm90b2NvbGBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXRvcGljLXN1YnNjcmlwdGlvbi1wcm90b2NvbFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBwcm90b2NvbDogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgU3Vic2NyaXB0aW9uUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgU3Vic2NyaXB0aW9uUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBUb3BpY1Jlc291cmNlX1N1YnNjcmlwdGlvblByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignZW5kcG9pbnQnLCBjZGsucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMuZW5kcG9pbnQpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdlbmRwb2ludCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5lbmRwb2ludCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Byb3RvY29sJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnByb3RvY29sKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncHJvdG9jb2wnLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucHJvdG9jb2wpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlN1YnNjcmlwdGlvblByb3BlcnR5XCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpUb3BpYy5TdWJzY3JpcHRpb25gYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgU3Vic2NyaXB0aW9uUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpTTlM6OlRvcGljLlN1YnNjcmlwdGlvbmBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvcGljUmVzb3VyY2VTdWJzY3JpcHRpb25Qcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBUb3BpY1Jlc291cmNlX1N1YnNjcmlwdGlvblByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIEVuZHBvaW50OiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmVuZHBvaW50KSxcbiAgICAgICAgICAgIFByb3RvY29sOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnByb3RvY29sKSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUb3BpY05hbWUgZXh0ZW5kcyBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbiB7XG4gICAgLy8gQHRzLWlnbm9yZTogcHJpdmF0ZSBidXQgdW51c2VkIG9uIHB1cnBvc2UuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aGlzSXNBVG9waWNOYW1lID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFRvcGljQXJuIGV4dGVuZHMgY2RrLkFybiB7XG4gICAgLy8gQHRzLWlnbm9yZTogcHJpdmF0ZSBidXQgdW51c2VkIG9uIHB1cnBvc2UuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aGlzSXNBVG9waWNBcm4gPSB0cnVlO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIGNsb3VkZm9ybWF0aW9uIHtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1wb2xpY3kuaHRtbFxuICAgICAqL1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVG9waWNQb2xpY3lSZXNvdXJjZVByb3BzIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlRvcGljUG9saWN5LlBvbGljeURvY3VtZW50YGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtcG9saWN5Lmh0bWwjY2ZuLXNucy10b3BpY3BvbGljeS1wb2xpY3lkb2N1bWVudFxuICAgICAgICAgKi9cbiAgICAgICAgcG9saWN5RG9jdW1lbnQ6IG9iamVjdCB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6VG9waWNQb2xpY3kuVG9waWNzYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtcG9saWN5Lmh0bWwjY2ZuLXNucy10b3BpY3BvbGljeS10b3BpY3NcbiAgICAgICAgICovXG4gICAgICAgIHRvcGljczogQXJyYXk8c3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW4+IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgYFRvcGljUG9saWN5UmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBUb3BpY1BvbGljeVJlc291cmNlUHJvcHNgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBUb3BpY1BvbGljeVJlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdwb2xpY3lEb2N1bWVudCcsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5wb2xpY3lEb2N1bWVudCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3BvbGljeURvY3VtZW50JywgY2RrLnZhbGlkYXRlT2JqZWN0KShwcm9wZXJ0aWVzLnBvbGljeURvY3VtZW50KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigndG9waWNzJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnRvcGljcykpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3RvcGljcycsIGNkay5saXN0VmFsaWRhdG9yKGNkay52YWxpZGF0ZVN0cmluZykpKHByb3BlcnRpZXMudG9waWNzKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJUb3BpY1BvbGljeVJlc291cmNlUHJvcHNcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpTTlM6OlRvcGljUG9saWN5YGAgcmVzb3VyY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFRvcGljUG9saWN5UmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OlNOUzo6VG9waWNQb2xpY3lgYCByZXNvdXJjZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b3BpY1BvbGljeVJlc291cmNlUHJvcHNUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXM6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICAgICAgVG9waWNQb2xpY3lSZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFBvbGljeURvY3VtZW50OiBjZGsub2JqZWN0VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnBvbGljeURvY3VtZW50KSxcbiAgICAgICAgICAgIFRvcGljczogY2RrLmxpc3RNYXBwZXIoY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24pKHByb3BlcnRpZXMudG9waWNzKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1wb2xpY3kuaHRtbFxuICAgICAqL1xuICAgIGV4cG9ydCBjbGFzcyBUb3BpY1BvbGljeVJlc291cmNlIGV4dGVuZHMgY2RrLlJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAgICAgICAqL1xuICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlc291cmNlVHlwZU5hbWUgPSBcIkFXUzo6U05TOjpUb3BpY1BvbGljeVwiO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IGBgQVdTOjpTTlM6OlRvcGljUG9saWN5YGAuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBwYXJlbnQgICAgIHRoZSBgYGNkay5Db25zdHJ1Y3RgYCB0aGlzIGBgVG9waWNQb2xpY3lSZXNvdXJjZWBgIGlzIGEgcGFydCBvZlxuICAgICAgICAgKiBAcGFyYW0gbmFtZSAgICAgICB0aGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgaW4gdGhlIGBgY2RrLkNvbnN0cnVjdGBgIHRyZWVcbiAgICAgICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBgYFRvcGljUG9saWN5UmVzb3VyY2VgYFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM6IFRvcGljUG9saWN5UmVzb3VyY2VQcm9wcykge1xuICAgICAgICAgICAgc3VwZXIocGFyZW50LCBuYW1lLCB7IHR5cGU6IFRvcGljUG9saWN5UmVzb3VyY2UucmVzb3VyY2VUeXBlTmFtZSwgcHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIGNkay5yZXF1aXJlUHJvcGVydHkocHJvcGVydGllcywgJ3BvbGljeURvY3VtZW50JywgdGhpcyk7XG4gICAgICAgICAgICBjZGsucmVxdWlyZVByb3BlcnR5KHByb3BlcnRpZXMsICd0b3BpY3MnLCB0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgICAgIHJldHVybiB0b3BpY1BvbGljeVJlc291cmNlUHJvcHNUb0Nsb3VkRm9ybWF0aW9uKGNkay5yZXNvbHZlKHRoaXMucHJvcGVydGllcykpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNucy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtFQUErRTtBQUMvRSwrREFBK0Q7QUFDL0QsOEZBQThGO0FBQzlGLHNIQUFzSDs7QUFFdEgsa0dBQWtHO0FBRWxHLG9DQUFxQztBQUVyQyxJQUFpQixjQUFjLENBNkc5QjtBQTdHRCxXQUFpQixjQUFjO0lBMEMzQjs7Ozs7O09BTUc7SUFDSCxTQUFTLGtDQUFrQyxDQUFDLFVBQWU7UUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUFFO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxD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QVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVTLGdCQUFnQjtZQUN0QixPQUFPLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQzs7SUFwQkQ7O09BRUc7SUFDb0Isb0NBQWdCLEdBQUcsdUJBQXVCLENBQUM7SUFKekQsa0NBQW1CLHNCQXNCL0IsQ0FBQTtBQUNMLENBQUMsRUE1RWdCLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBNEU5QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDEyLTIwMTggQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuLy8gU2VlOiBkb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvY2ZuLXJlc291cmNlLXNwZWNpZmljYXRpb24uaHRtbFxuLy8gQGNmbjJ0czptZXRhQCB7XCJnZW5lcmF0ZWRcIjpcIjIwMTgtMDktMjBUMTI6NTU6MzcuNDU0WlwiLFwiZmluZ2VycHJpbnRcIjpcIldVclBOTG13Uys0NzJncEVnL0ZrK3JNZGtFcFVzOExVZzJaVHUrWHdsem89XCJ9XG5cbi8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCB8IFRoaXMgaXMgZ2VuZXJhdGVkIGNvZGUgLSBsaW5lIGxlbmd0aHMgYXJlIGRpZmZpY3VsdCB0byBjb250cm9sXG5cbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcblxuZXhwb3J0IG5hbWVzcGFjZSBjbG91ZGZvcm1hdGlvbiB7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlN1YnNjcmlwdGlvbi5EZWxpdmVyeVBvbGljeWBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1kZWxpdmVyeXBvbGljeVxuICAgICAgICAgKi9cbiAgICAgICAgZGVsaXZlcnlQb2xpY3k/OiBvYmplY3QgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlN1YnNjcmlwdGlvbi5FbmRwb2ludGBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLWVuZHBvaW50XG4gICAgICAgICAqL1xuICAgICAgICBlbmRwb2ludD86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLkZpbHRlclBvbGljeWBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1maWx0ZXJwb2xpY3lcbiAgICAgICAgICovXG4gICAgICAgIGZpbHRlclBvbGljeT86IG9iamVjdCB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLlByb3RvY29sYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sI2Nmbi1zbnMtcHJvdG9jb2xcbiAgICAgICAgICovXG4gICAgICAgIHByb3RvY29sPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6U05TOjpTdWJzY3JpcHRpb24uUmF3TWVzc2FnZURlbGl2ZXJ5YGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sI2Nmbi1zbnMtc3Vic2NyaXB0aW9uLXJhd21lc3NhZ2VkZWxpdmVyeVxuICAgICAgICAgKi9cbiAgICAgICAgcmF3TWVzc2FnZURlbGl2ZXJ5PzogYm9vbGVhbiB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLlJlZ2lvbmBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1yZWdpb25cbiAgICAgICAgICovXG4gICAgICAgIHJlZ2lvbj86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uLlRvcGljQXJuYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sI3RvcGljYXJuXG4gICAgICAgICAqL1xuICAgICAgICB0b3BpY0Fybj86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFN1YnNjcmlwdGlvblJlc291cmNlUHJvcHNgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignZGVsaXZlcnlQb2xpY3knLCBjZGsudmFsaWRhdGVPYmplY3QpKHByb3BlcnRpZXMuZGVsaXZlcnlQb2xpY3kpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdlbmRwb2ludCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5lbmRwb2ludCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2ZpbHRlclBvbGljeScsIGNkay52YWxpZGF0ZU9iamVjdCkocHJvcGVydGllcy5maWx0ZXJQb2xpY3kpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdwcm90b2NvbCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5wcm90b2NvbCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Jhd01lc3NhZ2VEZWxpdmVyeScsIGNkay52YWxpZGF0ZUJvb2xlYW4pKHByb3BlcnRpZXMucmF3TWVzc2FnZURlbGl2ZXJ5KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncmVnaW9uJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnJlZ2lvbikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3RvcGljQXJuJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnRvcGljQXJuKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzXCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpTdWJzY3JpcHRpb25gYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgU3Vic2NyaXB0aW9uUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OlNOUzo6U3Vic2NyaXB0aW9uYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3Vic2NyaXB0aW9uUmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIERlbGl2ZXJ5UG9saWN5OiBjZGsub2JqZWN0VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmRlbGl2ZXJ5UG9saWN5KSxcbiAgICAgICAgICAgIEVuZHBvaW50OiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmVuZHBvaW50KSxcbiAgICAgICAgICAgIEZpbHRlclBvbGljeTogY2RrLm9iamVjdFRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5maWx0ZXJQb2xpY3kpLFxuICAgICAgICAgICAgUHJvdG9jb2w6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMucHJvdG9jb2wpLFxuICAgICAgICAgICAgUmF3TWVzc2FnZURlbGl2ZXJ5OiBjZGsuYm9vbGVhblRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5yYXdNZXNzYWdlRGVsaXZlcnkpLFxuICAgICAgICAgICAgUmVnaW9uOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnJlZ2lvbiksXG4gICAgICAgICAgICBUb3BpY0FybjogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy50b3BpY0FybiksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc25zLXN1YnNjcmlwdGlvbi5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblJlc291cmNlIGV4dGVuZHMgY2RrLlJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAgICAgICAqL1xuICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlc291cmNlVHlwZU5hbWUgPSBcIkFXUzo6U05TOjpTdWJzY3JpcHRpb25cIjtcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHN1YnNjcmlwdGlvbkFybjogc3RyaW5nO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IGBgQVdTOjpTTlM6OlN1YnNjcmlwdGlvbmBgLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0gcGFyZW50ICAgICB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdGhpcyBgYFN1YnNjcmlwdGlvblJlc291cmNlYGAgaXMgYSBwYXJ0IG9mXG4gICAgICAgICAqIEBwYXJhbSBuYW1lICAgICAgIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdHJlZVxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGBgU3Vic2NyaXB0aW9uUmVzb3VyY2VgYFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM/OiBTdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzKSB7XG4gICAgICAgICAgICBzdXBlcihwYXJlbnQsIG5hbWUsIHsgdHlwZTogU3Vic2NyaXB0aW9uUmVzb3VyY2UucmVzb3VyY2VUeXBlTmFtZSwgcHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uQXJuID0gdGhpcy5yZWYudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpcHRpb25SZXNvdXJjZVByb3BzVG9DbG91ZEZvcm1hdGlvbihjZGsucmVzb2x2ZSh0aGlzLnByb3BlcnRpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBjbG91ZGZvcm1hdGlvbiB7XG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbFxuICAgICAqL1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVG9waWNSZXNvdXJjZVByb3BzIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpTTlM6OlRvcGljLkRpc3BsYXlOYW1lYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbCNjZm4tc25zLXRvcGljLWRpc3BsYXluYW1lXG4gICAgICAgICAqL1xuICAgICAgICBkaXNwbGF5TmFtZT86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6VG9waWMuU3Vic2NyaXB0aW9uYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbCNjZm4tc25zLXRvcGljLXN1YnNjcmlwdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgc3Vic2NyaXB0aW9uPzogQXJyYXk8VG9waWNSZXNvdXJjZS5TdWJzY3JpcHRpb25Qcm9wZXJ0eSB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuPiB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6VG9waWMuVG9waWNOYW1lYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zbnMtdG9waWMuaHRtbCNjZm4tc25zLXRvcGljLXRvcGljbmFtZVxuICAgICAgICAgKi9cbiAgICAgICAgdG9waWNOYW1lPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgYFRvcGljUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBUb3BpY1Jlc291cmNlUHJvcHNgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBUb3BpY1Jlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdkaXNwbGF5TmFtZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5kaXNwbGF5TmFtZSkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3N1YnNjcmlwdGlvbicsIGNkay5saXN0VmFsaWRhdG9yKFRvcGljUmVzb3VyY2VfU3Vic2NyaXB0aW9uUHJvcGVydHlWYWxpZGF0b3IpKShwcm9wZXJ0aWVzLnN1YnNjcmlwdGlvbikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3RvcGljTmFtZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy50b3BpY05hbWUpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlRvcGljUmVzb3VyY2VQcm9wc1wiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OlNOUzo6VG9waWNgYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgVG9waWNSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpUb3BpY2BgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvcGljUmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBUb3BpY1Jlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgRGlzcGxheU5hbWU6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuZGlzcGxheU5hbWUpLFxuICAgICAgICAgICAgU3Vic2NyaXB0aW9uOiBjZGsubGlzdE1hcHBlcih0b3BpY1Jlc291cmNlU3Vic2NyaXB0aW9uUHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKShwcm9wZXJ0aWVzLnN1YnNjcmlwdGlvbiksXG4gICAgICAgICAgICBUb3BpY05hbWU6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMudG9waWNOYW1lKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy10b3BpYy5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGNsYXNzIFRvcGljUmVzb3VyY2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgICAgICovXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVzb3VyY2VUeXBlTmFtZSA9IFwiQVdTOjpTTlM6OlRvcGljXCI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBjbG91ZGZvcm1hdGlvbl9hdHRyaWJ1dGUgVG9waWNOYW1lXG4gICAgICAgICAqL1xuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNOYW1lOiBzdHJpbmc7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IGBgQVdTOjpTTlM6OlRvcGljYGAuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBwYXJlbnQgICAgIHRoZSBgYGNkay5Db25zdHJ1Y3RgYCB0aGlzIGBgVG9waWNSZXNvdXJjZWBgIGlzIGEgcGFydCBvZlxuICAgICAgICAgKiBAcGFyYW0gbmFtZSAgICAgICB0aGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgaW4gdGhlIGBgY2RrLkNvbnN0cnVjdGBgIHRyZWVcbiAgICAgICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBgYFRvcGljUmVzb3VyY2VgYFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3RydWN0b3IocGFyZW50OiBjZGsuQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM/OiBUb3BpY1Jlc291cmNlUHJvcHMpIHtcbiAgICAgICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSwgeyB0eXBlOiBUb3BpY1Jlc291cmNlLnJlc291cmNlVHlwZU5hbWUsIHByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgICB0aGlzLnRvcGljTmFtZSA9IHRoaXMuZ2V0QXR0KCdUb3BpY05hbWUnKS50b1N0cmluZygpO1xuICAgICAgICAgICAgdGhpcy50b3BpY0FybiA9IHRoaXMucmVmLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyUHJvcGVydGllcygpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgICAgICByZXR1cm4gdG9waWNSZXNvdXJjZVByb3BzVG9DbG91ZEZvcm1hdGlvbihjZGsucmVzb2x2ZSh0aGlzLnByb3BlcnRpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgVG9waWNSZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1zdWJzY3JpcHRpb24uaHRtbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25Qcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgVG9waWNSZXNvdXJjZS5TdWJzY3JpcHRpb25Qcm9wZXJ0eS5FbmRwb2ludGBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXRvcGljLXN1YnNjcmlwdGlvbi1lbmRwb2ludFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBlbmRwb2ludDogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgVG9waWNSZXNvdXJjZS5TdWJzY3JpcHRpb25Qcm9wZXJ0eS5Qcm90b2NvbGBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXRvcGljLXN1YnNjcmlwdGlvbi1wcm90b2NvbFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBwcm90b2NvbDogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgU3Vic2NyaXB0aW9uUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgU3Vic2NyaXB0aW9uUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBUb3BpY1Jlc291cmNlX1N1YnNjcmlwdGlvblByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignZW5kcG9pbnQnLCBjZGsucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMuZW5kcG9pbnQpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdlbmRwb2ludCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5lbmRwb2ludCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Byb3RvY29sJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnByb3RvY29sKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncHJvdG9jb2wnLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucHJvdG9jb2wpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlN1YnNjcmlwdGlvblByb3BlcnR5XCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpUb3BpYy5TdWJzY3JpcHRpb25gYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgU3Vic2NyaXB0aW9uUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpTTlM6OlRvcGljLlN1YnNjcmlwdGlvbmBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvcGljUmVzb3VyY2VTdWJzY3JpcHRpb25Qcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBUb3BpY1Jlc291cmNlX1N1YnNjcmlwdGlvblByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIEVuZHBvaW50OiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmVuZHBvaW50KSxcbiAgICAgICAgICAgIFByb3RvY29sOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnByb3RvY29sKSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgY2xvdWRmb3JtYXRpb24ge1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtc25zLXBvbGljeS5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBUb3BpY1BvbGljeVJlc291cmNlUHJvcHMge1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OlNOUzo6VG9waWNQb2xpY3kuUG9saWN5RG9jdW1lbnRgYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1wb2xpY3kuaHRtbCNjZm4tc25zLXRvcGljcG9saWN5LXBvbGljeWRvY3VtZW50XG4gICAgICAgICAqL1xuICAgICAgICBwb2xpY3lEb2N1bWVudDogb2JqZWN0IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6U05TOjpUb3BpY1BvbGljeS5Ub3BpY3NgYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXNucy1wb2xpY3kuaHRtbCNjZm4tc25zLXRvcGljcG9saWN5LXRvcGljc1xuICAgICAgICAgKi9cbiAgICAgICAgdG9waWNzOiBBcnJheTxzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbj4gfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgVG9waWNQb2xpY3lSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFRvcGljUG9saWN5UmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFRvcGljUG9saWN5UmVzb3VyY2VQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3BvbGljeURvY3VtZW50JywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnBvbGljeURvY3VtZW50KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncG9saWN5RG9jdW1lbnQnLCBjZGsudmFsaWRhdGVPYmplY3QpKHByb3BlcnRpZXMucG9saWN5RG9jdW1lbnQpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCd0b3BpY3MnLCBjZGsucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMudG9waWNzKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigndG9waWNzJywgY2RrLmxpc3RWYWxpZGF0b3IoY2RrLnZhbGlkYXRlU3RyaW5nKSkocHJvcGVydGllcy50b3BpY3MpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlRvcGljUG9saWN5UmVzb3VyY2VQcm9wc1wiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OlNOUzo6VG9waWNQb2xpY3lgYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgVG9waWNQb2xpY3lSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6U05TOjpUb3BpY1BvbGljeWBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvcGljUG9saWN5UmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBUb3BpY1BvbGljeVJlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgUG9saWN5RG9jdW1lbnQ6IGNkay5vYmplY3RUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMucG9saWN5RG9jdW1lbnQpLFxuICAgICAgICAgICAgVG9waWNzOiBjZGsubGlzdE1hcHBlcihjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbikocHJvcGVydGllcy50b3BpY3MpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtc25zLXBvbGljeS5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGNsYXNzIFRvcGljUG9saWN5UmVzb3VyY2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgICAgICovXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVzb3VyY2VUeXBlTmFtZSA9IFwiQVdTOjpTTlM6OlRvcGljUG9saWN5XCI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZXMgYSBuZXcgYGBBV1M6OlNOUzo6VG9waWNQb2xpY3lgYC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIHBhcmVudCAgICAgdGhlIGBgY2RrLkNvbnN0cnVjdGBgIHRoaXMgYGBUb3BpY1BvbGljeVJlc291cmNlYGAgaXMgYSBwYXJ0IG9mXG4gICAgICAgICAqIEBwYXJhbSBuYW1lICAgICAgIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdHJlZVxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGBgVG9waWNQb2xpY3lSZXNvdXJjZWBgXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcGVydGllczogVG9waWNQb2xpY3lSZXNvdXJjZVByb3BzKSB7XG4gICAgICAgICAgICBzdXBlcihwYXJlbnQsIG5hbWUsIHsgdHlwZTogVG9waWNQb2xpY3lSZXNvdXJjZS5yZXNvdXJjZVR5cGVOYW1lLCBwcm9wZXJ0aWVzIH0pO1xuICAgICAgICAgICAgY2RrLnJlcXVpcmVQcm9wZXJ0eShwcm9wZXJ0aWVzLCAncG9saWN5RG9jdW1lbnQnLCB0aGlzKTtcbiAgICAgICAgICAgIGNkay5yZXF1aXJlUHJvcGVydHkocHJvcGVydGllcywgJ3RvcGljcycsIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICAgICAgcmV0dXJuIHRvcGljUG9saWN5UmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24oY2RrLnJlc29sdmUodGhpcy5wcm9wZXJ0aWVzKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=

@@ -8,3 +8,2 @@ import cloudwatch = require('@aws-cdk/aws-cloudwatch');

import cdk = require('@aws-cdk/cdk');
import { TopicArn, TopicName } from './sns.generated';
import { Subscription, SubscriptionProtocol } from './subscription';

@@ -19,4 +18,4 @@ /**

static import(parent: cdk.Construct, name: string, props: TopicRefProps): TopicRef;
abstract readonly topicArn: TopicArn;
abstract readonly topicName: TopicName;
abstract readonly topicArn: string;
abstract readonly topicName: string;
/**

@@ -99,4 +98,4 @@ * Controls automatic creation of policy objects.

*/
asEventRuleTarget(_ruleArn: events.RuleArn, _ruleId: string): events.EventRuleTargetProps;
readonly alarmActionArn: cdk.Arn;
asEventRuleTarget(_ruleArn: string, _ruleId: string): events.EventRuleTargetProps;
readonly alarmActionArn: string;
/**

@@ -137,3 +136,3 @@ * Construct a Metric object for the current topic for the given metric

*/
asBucketNotificationDestination(bucketArn: cdk.Arn, bucketId: string): s3n.BucketNotificationDestinationProps;
asBucketNotificationDestination(bucketArn: string, bucketId: string): s3n.BucketNotificationDestinationProps;
}

@@ -144,4 +143,4 @@ /**

export interface TopicRefProps {
topicArn: TopicArn;
topicName: TopicName;
topicArn: string;
topicName: string;
}

@@ -148,0 +147,0 @@ /**

@@ -7,3 +7,2 @@ "use strict";

const policy_1 = require("./policy");
const sns_generated_1 = require("./sns.generated");
const subscription_1 = require("./subscription");

@@ -35,4 +34,4 @@ /**

return {
topicArn: new sns_generated_1.TopicArn(new cdk.Output(this, 'TopicArn', { value: this.topicArn }).makeImportValue()),
topicName: new sns_generated_1.TopicName(new cdk.Output(this, 'TopicName', { value: this.topicName }).makeImportValue()),
topicArn: new cdk.Output(this, 'TopicArn', { value: this.topicArn }).makeImportValue().toString(),
topicName: new cdk.Output(this, 'TopicName', { value: this.topicName }).makeImportValue().toString(),
};

@@ -266,2 +265,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9waWMtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXVEO0FBSXZELHFEQUFzRDtBQUV0RCxvQ0FBcUM7QUFDckMscUNBQXVDO0FBQ3ZDLG1EQUFzRDtBQUN0RCxpREFBb0U7QUFFcEU7O0dBRUc7QUFDSCxNQUFzQixRQUFTLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUFBcEQ7O1FBcUJJLDREQUE0RDtRQUMzQyxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRXREOzs7V0FHRztRQUNLLCtCQUEwQixHQUFHLEtBQUssQ0FBQztJQXFRL0MsQ0FBQztJQWhTRzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBcUIsRUFBRSxJQUFZLEVBQUUsS0FBb0I7UUFDMUUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUF3QkQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsT0FBTztZQUNILFFBQVEsRUFBRSxJQUFJLHdCQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEcsU0FBUyxFQUFFLElBQUkseUJBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMzRyxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLFFBQThCO1FBQzNFLElBQUksMkJBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3pC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Q2pFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFIZCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFJeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvdWR3YXRjaCA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1jbG91ZHdhdGNoJyk7XG5pbXBvcnQgZXZlbnRzID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWV2ZW50cycpO1xuaW1wb3J0IGlhbSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1pYW0nKTtcbmltcG9ydCBsYW1iZGEgPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtbGFtYmRhJyk7XG5pbXBvcnQgczNuID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLXMzLW5vdGlmaWNhdGlvbnMnKTtcbmltcG9ydCBzcXMgPSByZXF1aXJlKCdAYXdzLWNkay9hd3Mtc3FzJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgeyBUb3BpY1BvbGljeSB9IGZyb20gJy4vcG9saWN5JztcbmltcG9ydCB7IFRvcGljQXJuLCBUb3BpY05hbWUgfSBmcm9tICcuL3Nucy5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJzY3JpcHRpb25Qcm90b2NvbCB9IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuLyoqXG4gKiBFaXRoZXIgYSBuZXcgb3IgaW1wb3J0ZWQgVG9waWNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvcGljUmVmIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCBpbXBsZW1lbnRzIGV2ZW50cy5JRXZlbnRSdWxlVGFyZ2V0LCBjbG91ZHdhdGNoLklBbGFybUFjdGlvbiwgczNuLklCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbiB7XG4gICAgLyoqXG4gICAgICogSW1wb3J0IGEgVG9waWMgZGVmaW5lZCBlbHNld2hlcmVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGltcG9ydChwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IFRvcGljUmVmUHJvcHMpOiBUb3BpY1JlZiB7XG4gICAgICAgIHJldHVybiBuZXcgSW1wb3J0ZWRUb3BpYyhwYXJlbnQsIG5hbWUsIHByb3BzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdG9waWNBcm46IFRvcGljQXJuO1xuXG4gICAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRvcGljTmFtZTogVG9waWNOYW1lO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgYXV0b21hdGljIGNyZWF0aW9uIG9mIHBvbGljeSBvYmplY3RzLlxuICAgICAqXG4gICAgICogU2V0IGJ5IHN1YmNsYXNzZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIHBvbGljeT86IFRvcGljUG9saWN5O1xuXG4gICAgLyoqIEJ1Y2tldHMgcGVybWl0dGVkIHRvIHNlbmQgbm90aWZpY2F0aW9ucyB0byB0aGlzIHRvcGljICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZnlpbmdCdWNrZXRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHJlc291cmNlIHBvbGljeSB0aGF0IGFsbG93cyBDbG91ZFdhdGNoIGV2ZW50cyB0byBwdWJsaXNoXG4gICAgICogbm90aWZpY2F0aW9ucyB0byB0aGlzIHRvcGljIGhhdmUgYmVlbiBhZGRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGV2ZW50UnVsZVRhcmdldFBvbGljeUFkZGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFeHBvcnQgdGhpcyBUb3BpY1xuICAgICAqL1xuICAgIHB1YmxpYyBleHBvcnQoKTogVG9waWNSZWZQcm9wcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3BpY0FybjogbmV3IFRvcGljQXJuKG5ldyBjZGsuT3V0cHV0KHRoaXMsICdUb3BpY0FybicsIHsgdmFsdWU6IHRoaXMudG9waWNBcm4gfSkubWFrZUltcG9ydFZhbHVlKCkpLFxuICAgICAgICAgICAgdG9waWNOYW1lOiBuZXcgVG9waWNOYW1lKG5ldyBjZGsuT3V0cHV0KHRoaXMsICdUb3BpY05hbWUnLCB7IHZhbHVlOiB0aGlzLnRvcGljTmFtZSB9KS5tYWtlSW1wb3J0VmFsdWUoKSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlIHNvbWUgZW5kcG9pbnQgdG8gdGhpcyB0b3BpY1xuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmUobmFtZTogc3RyaW5nLCBlbmRwb2ludDogc3RyaW5nLCBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wpIHtcbiAgICAgICAgbmV3IFN1YnNjcmlwdGlvbih0aGlzLCBuYW1lLCB7XG4gICAgICAgICAgICB0b3BpYzogdGhpcyxcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgcHJvdG9jb2xcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIHRvcGljIHRvIGFuIFNRUyBxdWV1ZS5cbiAgICAgKlxuICAgICAqIFRoZSBxdWV1ZSByZXNvdXJjZSBwb2xpY3kgd2lsbCBiZSB1cGRhdGVkIHRvIGFsbG93IHRoaXMgU05TIHRvcGljIHRvIHNlbmRcbiAgICAgKiBtZXNzYWdlcyB0byB0aGUgcXVldWUuXG4gICAgICpcbiAgICAgKiBUT0RPOiBjaGFuZ2UgdG8gUXVldWVSZWYuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgc3Vic2NyaXB0aW9uIG5hbWVcbiAgICAgKiBAcGFyYW0gcXVldWUgVGhlIHRhcmdldCBxdWV1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmVRdWV1ZShxdWV1ZTogc3FzLlF1ZXVlUmVmKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbk5hbWUgPSBxdWV1ZS5pZCArICdTdWJzY3JpcHRpb24nO1xuICAgICAgICBpZiAodGhpcy50cnlGaW5kQ2hpbGQoc3Vic2NyaXB0aW9uTmFtZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQSBzdWJzY3JpcHRpb24gYmV0d2VlbiB0aGUgdG9waWMgJHt0aGlzLmlkfSBhbmQgdGhlIHF1ZXVlICR7cXVldWUuaWR9IGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZSB1c2UgdGhlIHF1ZXVlIG5hbWUgYXMgdGhlIHN1YnNjcmlwdGlvbidzLiB0aGVyZSdzIG5vIG1lYW5pbmcgdG8gc3Vic2NyaWJpbmdcbiAgICAgICAgLy8gdGhlIHNhbWUgcXVldWUgdHdpY2Ugb24gdGhlIHNhbWUgdG9waWMuXG4gICAgICAgIGNvbnN0IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24odGhpcywgc3Vic2NyaXB0aW9uTmFtZSwge1xuICAgICAgICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAgICAgICBlbmRwb2ludDogcXVldWUucXVldWVBcm4sXG4gICAgICAgICAgICBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wuU3FzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGFkZCBhIHN0YXRlbWVudCB0byB0aGUgcXVldWUgcmVzb3VyY2UgcG9saWN5IHdoaWNoIGFsbG93cyB0aGlzIHRvcGljXG4gICAgICAgIC8vIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIHF1ZXVlLlxuICAgICAgICBxdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBjZGsuUG9saWN5U3RhdGVtZW50KClcbiAgICAgICAgICAgIC5hZGRSZXNvdXJjZShxdWV1ZS5xdWV1ZUFybilcbiAgICAgICAgICAgIC5hZGRBY3Rpb24oJ3NxczpTZW5kTWVzc2FnZScpXG4gICAgICAgICAgICAuYWRkU2VydmljZVByaW5jaXBhbCgnc25zLmFtYXpvbmF3cy5jb20nKVxuICAgICAgICAgICAgLnNldENvbmRpdGlvbignQXJuRXF1YWxzJywgeyAnYXdzOlNvdXJjZUFybic6IHRoaXMudG9waWNBcm4gfSkpO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIFRvcGljIHRvIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIExhbWJkYSdzIHJlc291cmNlIHBvbGljeSB3aWxsIGJlIHVwZGF0ZWQgdG8gYWxsb3cgdGhpcyB0b3BpYyB0b1xuICAgICAqIGludm9rZSB0aGUgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWUgZm9yIHRoZSBzdWJzY3JpcHRpb25cbiAgICAgKiBAcGFyYW0gbGFtYmRhRnVuY3Rpb24gVGhlIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc3Vic2NyaWJlTGFtYmRhKGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb25SZWYpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTmFtZSA9IGxhbWJkYUZ1bmN0aW9uLmlkICsgJ1N1YnNjcmlwdGlvbic7XG5cbiAgICAgICAgaWYgKHRoaXMudHJ5RmluZENoaWxkKHN1YnNjcmlwdGlvbk5hbWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgc3Vic2NyaXB0aW9uIGJldHdlZW4gdGhlIHRvcGljICR7dGhpcy5pZH0gYW5kIHRoZSBsYW1iZGEgJHtsYW1iZGFGdW5jdGlvbi5pZH0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24odGhpcywgc3Vic2NyaXB0aW9uTmFtZSwge1xuICAgICAgICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAgICAgICBlbmRwb2ludDogbGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAgICAgICBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wuTGFtYmRhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxhbWJkYUZ1bmN0aW9uLmFkZFBlcm1pc3Npb24odGhpcy5pZCwge1xuICAgICAgICAgICAgc291cmNlQXJuOiB0aGlzLnRvcGljQXJuLFxuICAgICAgICAgICAgcHJpbmNpcGFsOiBuZXcgY2RrLlNlcnZpY2VQcmluY2lwYWwoJ3Nucy5hbWF6b25hd3MuY29tJyksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIHRvcGljIHRvIGFuIGVtYWlsIGFkZHJlc3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWUgZm9yIHRoZSBzdWJzY3JpcHRpb25cbiAgICAgKiBAcGFyYW0gZW1haWxBZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHVzZS5cbiAgICAgKiBAcGFyYW0ganNvbkZvcm1hdCBUcnVlIGlmIHRoZSBlbWFpbCBjb250ZW50IHNob3VsZCBiZSBpbiBKU09OIGZvcm1hdCAoZGVmYXVsdCBpcyBmYWxzZSkuXG4gICAgICovXG4gICAgcHVibGljIHN1YnNjcmliZUVtYWlsKG5hbWU6IHN0cmluZywgZW1haWxBZGRyZXNzOiBzdHJpbmcsIG9wdGlvbnM/OiBFbWFpbFN1YnNjcmlwdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSAob3B0aW9ucyAmJiBvcHRpb25zLmpzb24gPyBTdWJzY3JpcHRpb25Qcm90b2NvbC5FbWFpbEpzb24gOiBTdWJzY3JpcHRpb25Qcm90b2NvbC5FbWFpbCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24odGhpcywgbmFtZSwge1xuICAgICAgICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAgICAgICBlbmRwb2ludDogZW1haWxBZGRyZXNzLFxuICAgICAgICAgICAgcHJvdG9jb2xcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIHRvcGljIHRvIGFuIGh0dHA6Ly8gb3IgaHR0cHM6Ly8gVVJMLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgQSBuYW1lIGZvciB0aGUgc3Vic2NyaXB0aW9uXG4gICAgICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIGludm9rZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmVVcmwobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZykge1xuICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdodHRwczovLycpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VSTCBtdXN0IHN0YXJ0IHdpdGggZWl0aGVyIGh0dHA6Ly8gb3IgaHR0cHM6Ly8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOicpID8gU3Vic2NyaXB0aW9uUHJvdG9jb2wuSHR0cHMgOiBTdWJzY3JpcHRpb25Qcm90b2NvbC5IdHRwO1xuXG4gICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uKHRoaXMsIG5hbWUsIHtcbiAgICAgICAgICAgIHRvcGljOiB0aGlzLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHVybCxcbiAgICAgICAgICAgIHByb3RvY29sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIElBTSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdG9waWMuXG4gICAgICpcbiAgICAgKiBJZiB0aGlzIHRvcGljIHdhcyBjcmVhdGVkIGluIHRoaXMgc3RhY2sgKGBuZXcgVG9waWNgKSwgYSB0b3BpYyBwb2xpY3lcbiAgICAgKiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1BvbGljeWAuIElmXG4gICAgICogdGhlIHRvcGljIGlzIGltcHJvdGVkIChgVG9waWMuaW1wb3J0YCksIHRoZW4gdGhpcyBpcyBhIG5vLW9wLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogY2RrLlBvbGljeVN0YXRlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMucG9saWN5ICYmIHRoaXMuYXV0b0NyZWF0ZVBvbGljeSkge1xuICAgICAgICAgICAgdGhpcy5wb2xpY3kgPSBuZXcgVG9waWNQb2xpY3kodGhpcywgJ1BvbGljeScsIHsgdG9waWNzOiBbIHRoaXMgXSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBvbGljeSkge1xuICAgICAgICAgICAgLy8gc3RhdGVtZW50cyBtdXN0IGJlIHVuaXF1ZSwgc28gd2UgdXNlIHRoZSBzdGF0ZW1lbnQgaW5kZXguXG4gICAgICAgICAgICAvLyBwb3RhbnRpYWxseSBTSURzIGNhbiBjaGFuZ2UgYXMgYSByZXN1bHQgb2Ygb3JkZXIgY2hhbmdlLCBidXQgdGhpcyBzaG91bGRcbiAgICAgICAgICAgIC8vIG5vdCBoYXZlIGFuIGltcGFjdCBvbiB0aGUgcG9saWN5IGV2YWx1YXRpb24uXG4gICAgICAgICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9BY2Nlc3NQb2xpY3lMYW5ndWFnZV9TcGVjaWFsSW5mby5odG1sXG4gICAgICAgICAgICBzdGF0ZW1lbnQuZGVzY3JpYmUodGhpcy5wb2xpY3kuZG9jdW1lbnQuc3RhdGVtZW50Q291bnQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB0aGlzLnBvbGljeS5kb2N1bWVudC5hZGRTdGF0ZW1lbnQoc3RhdGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdyYW50IHRvcGljIHB1Ymxpc2hpbmcgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGlkZW50aXR5XG4gICAgICovXG4gICAgcHVibGljIGdyYW50UHVibGlzaChpZGVudGl0eT86IGlhbS5JSWRlbnRpdHlSZXNvdXJjZSkge1xuICAgICAgICBpZiAoIWlkZW50aXR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZGVudGl0eS5hZGRUb1BvbGljeShuZXcgY2RrLlBvbGljeVN0YXRlbWVudCgpXG4gICAgICAgICAgICAuYWRkUmVzb3VyY2UodGhpcy50b3BpY0FybilcbiAgICAgICAgICAgIC5hZGRBY3Rpb25zKCdzbnM6UHVibGlzaCcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgUnVsZVRhcmdldCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRyaWdnZXIgdGhpcyBTTlMgdG9waWMgYXMgYVxuICAgICAqIHJlc3VsdCBmcm9tIGEgQ2xvdWRXYXRjaCBldmVudC5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9yZXNvdXJjZS1iYXNlZC1wb2xpY2llcy1jd2UuaHRtbCNzbnMtcGVybWlzc2lvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgYXNFdmVudFJ1bGVUYXJnZXQoX3J1bGVBcm46IGV2ZW50cy5SdWxlQXJuLCBfcnVsZUlkOiBzdHJpbmcpOiBldmVudHMuRXZlbnRSdWxlVGFyZ2V0UHJvcHMge1xuICAgICAgICBpZiAoIXRoaXMuZXZlbnRSdWxlVGFyZ2V0UG9saWN5QWRkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgY2RrLlBvbGljeVN0YXRlbWVudCgpXG4gICAgICAgICAgICAgICAgLmFkZEFjdGlvbignc25zOlB1Ymxpc2gnKVxuICAgICAgICAgICAgICAgIC5hZGRQcmluY2lwYWwobmV3IGNkay5TZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpKVxuICAgICAgICAgICAgICAgIC5hZGRSZXNvdXJjZSh0aGlzLnRvcGljQXJuKSk7XG5cbiAgICAgICAgICAgIHRoaXMuZXZlbnRSdWxlVGFyZ2V0UG9saWN5QWRkZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgYXJuOiB0aGlzLnRvcGljQXJuLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWxhcm1BY3Rpb25Bcm4oKTogY2RrLkFybiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvcGljQXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIE1ldHJpYyBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHRvcGljIGZvciB0aGUgZ2l2ZW4gbWV0cmljXG4gICAgICovXG4gICAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9TTlMnLFxuICAgICAgICAgICAgZGltZW5zaW9uczogeyBUb3BpY05hbWU6IHRoaXMudG9waWNOYW1lIH0sXG4gICAgICAgICAgICBtZXRyaWNOYW1lLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0cmljIGZvciB0aGUgc2l6ZSBvZiBtZXNzYWdlcyBwdWJsaXNoZWQgdGhyb3VnaCB0aGlzIHRvcGljXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAgICovXG4gICAgcHVibGljIG1ldHJpY1B1Ymxpc2hTaXplKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1B1Ymxpc2hTaXplJywgcHJvcHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldHJpYyBmb3IgdGhlIG51bWJlciBvZiBtZXNzYWdlcyBwdWJsaXNoZWQgdGhyb3VnaCB0aGlzIHRvcGljXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgbWV0cmljTnVtYmVyT2ZNZXNzYWdlc1B1Ymxpc2hlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljQ3VzdG9taXphdGlvbik6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0cmljKCdOdW1iZXJPZk1lc3NhZ2VzUHVibGlzaGVkJywgeyBzdGF0aXN0aWM6ICdzdW0nLCAuLi5wcm9wcyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRyaWMgZm9yIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgdGhhdCBmYWlsZWQgdG8gcHVibGlzaCB0aHJvdWdoIHRoaXMgdG9waWNcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgICAqL1xuICAgIHB1YmxpYyBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRmFpbGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ051bWJlck9mTWVzc2FnZXNGYWlsZWQnLCB7IHN0YXRpc3RpYzogJ3N1bScsIC4uLnByb3BzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldHJpYyBmb3IgdGhlIG51bWJlciBvZiBtZXNzYWdlcyB0aGF0IHdlcmUgc3VjY2Vzc2Z1bGx5IGRlbGl2ZXJlZCB0aHJvdWdoIHRoaXMgdG9waWNcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgICAqL1xuICAgIHB1YmxpYyBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRGVsaXZlcmVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ051bWJlck9mTWVzc2FnZXNEZWxpdmVyZWQnLCB7IHN0YXRpc3RpYzogJ3N1bScsIC4uLnByb3BzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgdGhlIElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbiBpbnRlcmZhY2UsIGFsbG93aW5nIHRvcGljcyB0byBiZSB1c2VkXG4gICAgICogYXMgYnVja2V0IG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVja2V0QXJuIFRoZSBBUk4gb2YgdGhlIGJ1Y2tldCBzZW5kaW5nIHRoZSBub3RpZmljYXRpb25zXG4gICAgICogQHBhcmFtIGJ1Y2tldElkIEEgdW5pcXVlIElEIG9mIHRoZSBidWNrZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgYXNCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbihidWNrZXRBcm46IGNkay5Bcm4sIGJ1Y2tldElkOiBzdHJpbmcpOiBzM24uQnVja2V0Tm90aWZpY2F0aW9uRGVzdGluYXRpb25Qcm9wcyB7XG4gICAgICAgIC8vIGFsbG93IHRoaXMgYnVja2V0IHRvIHNuczpwdWJsaXNoIHRvIHRoaXMgdG9waWMgKGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGEgcGVybWlzc2lvbilcbiAgICAgICAgaWYgKCF0aGlzLm5vdGlmeWluZ0J1Y2tldHMuaGFzKGJ1Y2tldElkKSkge1xuXG4gICAgICAgICAgICB0aGlzLmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGNkay5Qb2xpY3lTdGF0ZW1lbnQoKVxuICAgICAgICAgICAgICAgIC5hZGRTZXJ2aWNlUHJpbmNpcGFsKCdzMy5hbWF6b25hd3MuY29tJylcbiAgICAgICAgICAgICAgICAuYWRkQWN0aW9uKCdzbnM6UHVibGlzaCcpXG4gICAgICAgICAgICAgICAgLmFkZFJlc291cmNlKHRoaXMudG9waWNBcm4pXG4gICAgICAgICAgICAgICAgLmFkZENvbmRpdGlvbignQXJuTGlrZScsIHsgXCJhd3M6U291cmNlQXJuXCI6IGJ1Y2tldEFybiB9KSk7XG5cbiAgICAgICAgICAgIHRoaXMubm90aWZ5aW5nQnVja2V0cy5hZGQoYnVja2V0SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFybjogdGhpcy50b3BpY0FybixcbiAgICAgICAgICAgIHR5cGU6IHMzbi5CdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvblR5cGUuVG9waWMsXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFsgdGhpcy5wb2xpY3khIF0gLy8gbWFrZSBzdXJlIHRoZSB0b3BpYyBwb2xpY3kgcmVzb3VyY2UgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIG5vdGlmaWNhdGlvbiBjb25maWdcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKlxuICogQW4gaW1wb3J0ZWQgdG9waWNcbiAqL1xuY2xhc3MgSW1wb3J0ZWRUb3BpYyBleHRlbmRzIFRvcGljUmVmIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm46IFRvcGljQXJuO1xuICAgIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWU6IFRvcGljTmFtZTtcblxuICAgIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IFRvcGljUmVmUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocGFyZW50LCBuYW1lKTtcbiAgICAgICAgdGhpcy50b3BpY0FybiA9IHByb3BzLnRvcGljQXJuO1xuICAgICAgICB0aGlzLnRvcGljTmFtZSA9IHByb3BzLnRvcGljTmFtZTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVmZXJlbmNlIHRvIGFuIGV4dGVybmFsIHRvcGljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljUmVmUHJvcHMge1xuICAgIHRvcGljQXJuOiBUb3BpY0FybjtcbiAgICB0b3BpY05hbWU6IFRvcGljTmFtZTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBlbWFpbCBzdWJzY3JpcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtYWlsU3Vic2NyaXB0aW9uT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIHRoZSBmdWxsIG5vdGlmaWNhdGlvbiBKU09OIHNob3VsZCBiZSBzZW50IHRvIHRoZSBlbWFpbFxuICAgICAqIGFkZHJlc3Mgb3IganVzdCB0aGUgbWVzc2FnZSB0ZXh0LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgTWVzc2FnZSB0ZXh0IChmYWxzZSlcbiAgICAgKi9cbiAgICBqc29uPzogYm9vbGVhblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9waWMtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXVEO0FBSXZELHFEQUFzRDtBQUV0RCxvQ0FBcUM7QUFDckMscUNBQXVDO0FBQ3ZDLGlEQUFvRTtBQUVwRTs7R0FFRztBQUNILE1BQXNCLFFBQVMsU0FBUSxHQUFHLENBQUMsU0FBUztJQUFwRDs7UUFxQkksNERBQTREO1FBQzNDLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFdEQ7OztXQUdHO1FBQ0ssK0JBQTBCLEdBQUcsS0FBSyxDQUFDO0lBcVEvQyxDQUFDO0lBaFNHOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFxQixFQUFFLElBQVksRUFBRSxLQUFvQjtRQUMxRSxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQXdCRDs7T0FFRztJQUNJLE1BQU07UUFDVCxPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUNqRyxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFO1NBQ3ZHLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBOEI7UUFDM0UsSUFBSSwyQkFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDekIsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFR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QUFJLENBQUMsQ0FBQztRQUhkLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUl4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjbG91ZHdhdGNoID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWNsb3Vkd2F0Y2gnKTtcbmltcG9ydCBldmVudHMgPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtZXZlbnRzJyk7XG5pbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGxhbWJkYSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnKTtcbmltcG9ydCBzM24gPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtczMtbm90aWZpY2F0aW9ucycpO1xuaW1wb3J0IHNxcyA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1zcXMnKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IFRvcGljUG9saWN5IH0gZnJvbSAnLi9wb2xpY3knO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJzY3JpcHRpb25Qcm90b2NvbCB9IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuLyoqXG4gKiBFaXRoZXIgYSBuZXcgb3IgaW1wb3J0ZWQgVG9waWNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvcGljUmVmIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCBpbXBsZW1lbnRzIGV2ZW50cy5JRXZlbnRSdWxlVGFyZ2V0LCBjbG91ZHdhdGNoLklBbGFybUFjdGlvbiwgczNuLklCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbiB7XG4gICAgLyoqXG4gICAgICogSW1wb3J0IGEgVG9waWMgZGVmaW5lZCBlbHNld2hlcmVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGltcG9ydChwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IFRvcGljUmVmUHJvcHMpOiBUb3BpY1JlZiB7XG4gICAgICAgIHJldHVybiBuZXcgSW1wb3J0ZWRUb3BpYyhwYXJlbnQsIG5hbWUsIHByb3BzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcblxuICAgIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0b3BpY05hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xzIGF1dG9tYXRpYyBjcmVhdGlvbiBvZiBwb2xpY3kgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIFNldCBieSBzdWJjbGFzc2VzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBwb2xpY3k/OiBUb3BpY1BvbGljeTtcblxuICAgIC8qKiBCdWNrZXRzIHBlcm1pdHRlZCB0byBzZW5kIG5vdGlmaWNhdGlvbnMgdG8gdGhpcyB0b3BpYyAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZ5aW5nQnVja2V0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIHRoZSByZXNvdXJjZSBwb2xpY3kgdGhhdCBhbGxvd3MgQ2xvdWRXYXRjaCBldmVudHMgdG8gcHVibGlzaFxuICAgICAqIG5vdGlmaWNhdGlvbnMgdG8gdGhpcyB0b3BpYyBoYXZlIGJlZW4gYWRkZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBldmVudFJ1bGVUYXJnZXRQb2xpY3lBZGRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXhwb3J0IHRoaXMgVG9waWNcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwb3J0KCk6IFRvcGljUmVmUHJvcHMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9waWNBcm46IG5ldyBjZGsuT3V0cHV0KHRoaXMsICdUb3BpY0FybicsIHsgdmFsdWU6IHRoaXMudG9waWNBcm4gfSkubWFrZUltcG9ydFZhbHVlKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRvcGljTmFtZTogbmV3IGNkay5PdXRwdXQodGhpcywgJ1RvcGljTmFtZScsIHsgdmFsdWU6IHRoaXMudG9waWNOYW1lIH0pLm1ha2VJbXBvcnRWYWx1ZSgpLnRvU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlIHNvbWUgZW5kcG9pbnQgdG8gdGhpcyB0b3BpY1xuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmUobmFtZTogc3RyaW5nLCBlbmRwb2ludDogc3RyaW5nLCBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wpIHtcbiAgICAgICAgbmV3IFN1YnNjcmlwdGlvbih0aGlzLCBuYW1lLCB7XG4gICAgICAgICAgICB0b3BpYzogdGhpcyxcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgcHJvdG9jb2xcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIHRvcGljIHRvIGFuIFNRUyBxdWV1ZS5cbiAgICAgKlxuICAgICAqIFRoZSBxdWV1ZSByZXNvdXJjZSBwb2xpY3kgd2lsbCBiZSB1cGRhdGVkIHRvIGFsbG93IHRoaXMgU05TIHRvcGljIHRvIHNlbmRcbiAgICAgKiBtZXNzYWdlcyB0byB0aGUgcXVldWUuXG4gICAgICpcbiAgICAgKiBUT0RPOiBjaGFuZ2UgdG8gUXVldWVSZWYuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgc3Vic2NyaXB0aW9uIG5hbWVcbiAgICAgKiBAcGFyYW0gcXVldWUgVGhlIHRhcmdldCBxdWV1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmVRdWV1ZShxdWV1ZTogc3FzLlF1ZXVlUmVmKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbk5hbWUgPSBxdWV1ZS5pZCArICdTdWJzY3JpcHRpb24nO1xuICAgICAgICBpZiAodGhpcy50cnlGaW5kQ2hpbGQoc3Vic2NyaXB0aW9uTmFtZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQSBzdWJzY3JpcHRpb24gYmV0d2VlbiB0aGUgdG9waWMgJHt0aGlzLmlkfSBhbmQgdGhlIHF1ZXVlICR7cXVldWUuaWR9IGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZSB1c2UgdGhlIHF1ZXVlIG5hbWUgYXMgdGhlIHN1YnNjcmlwdGlvbidzLiB0aGVyZSdzIG5vIG1lYW5pbmcgdG8gc3Vic2NyaWJpbmdcbiAgICAgICAgLy8gdGhlIHNhbWUgcXVldWUgdHdpY2Ugb24gdGhlIHNhbWUgdG9waWMuXG4gICAgICAgIGNvbnN0IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24odGhpcywgc3Vic2NyaXB0aW9uTmFtZSwge1xuICAgICAgICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAgICAgICBlbmRwb2ludDogcXVldWUucXVldWVBcm4sXG4gICAgICAgICAgICBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wuU3FzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGFkZCBhIHN0YXRlbWVudCB0byB0aGUgcXVldWUgcmVzb3VyY2UgcG9saWN5IHdoaWNoIGFsbG93cyB0aGlzIHRvcGljXG4gICAgICAgIC8vIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIHF1ZXVlLlxuICAgICAgICBxdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBjZGsuUG9saWN5U3RhdGVtZW50KClcbiAgICAgICAgICAgIC5hZGRSZXNvdXJjZShxdWV1ZS5xdWV1ZUFybilcbiAgICAgICAgICAgIC5hZGRBY3Rpb24oJ3NxczpTZW5kTWVzc2FnZScpXG4gICAgICAgICAgICAuYWRkU2VydmljZVByaW5jaXBhbCgnc25zLmFtYXpvbmF3cy5jb20nKVxuICAgICAgICAgICAgLnNldENvbmRpdGlvbignQXJuRXF1YWxzJywgeyAnYXdzOlNvdXJjZUFybic6IHRoaXMudG9waWNBcm4gfSkpO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIFRvcGljIHRvIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIExhbWJkYSdzIHJlc291cmNlIHBvbGljeSB3aWxsIGJlIHVwZGF0ZWQgdG8gYWxsb3cgdGhpcyB0b3BpYyB0b1xuICAgICAqIGludm9rZSB0aGUgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWUgZm9yIHRoZSBzdWJzY3JpcHRpb25cbiAgICAgKiBAcGFyYW0gbGFtYmRhRnVuY3Rpb24gVGhlIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc3Vic2NyaWJlTGFtYmRhKGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb25SZWYpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTmFtZSA9IGxhbWJkYUZ1bmN0aW9uLmlkICsgJ1N1YnNjcmlwdGlvbic7XG5cbiAgICAgICAgaWYgKHRoaXMudHJ5RmluZENoaWxkKHN1YnNjcmlwdGlvbk5hbWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgc3Vic2NyaXB0aW9uIGJldHdlZW4gdGhlIHRvcGljICR7dGhpcy5pZH0gYW5kIHRoZSBsYW1iZGEgJHtsYW1iZGFGdW5jdGlvbi5pZH0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24odGhpcywgc3Vic2NyaXB0aW9uTmFtZSwge1xuICAgICAgICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAgICAgICBlbmRwb2ludDogbGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAgICAgICBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wuTGFtYmRhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxhbWJkYUZ1bmN0aW9uLmFkZFBlcm1pc3Npb24odGhpcy5pZCwge1xuICAgICAgICAgICAgc291cmNlQXJuOiB0aGlzLnRvcGljQXJuLFxuICAgICAgICAgICAgcHJpbmNpcGFsOiBuZXcgY2RrLlNlcnZpY2VQcmluY2lwYWwoJ3Nucy5hbWF6b25hd3MuY29tJyksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIHRvcGljIHRvIGFuIGVtYWlsIGFkZHJlc3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWUgZm9yIHRoZSBzdWJzY3JpcHRpb25cbiAgICAgKiBAcGFyYW0gZW1haWxBZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHVzZS5cbiAgICAgKiBAcGFyYW0ganNvbkZvcm1hdCBUcnVlIGlmIHRoZSBlbWFpbCBjb250ZW50IHNob3VsZCBiZSBpbiBKU09OIGZvcm1hdCAoZGVmYXVsdCBpcyBmYWxzZSkuXG4gICAgICovXG4gICAgcHVibGljIHN1YnNjcmliZUVtYWlsKG5hbWU6IHN0cmluZywgZW1haWxBZGRyZXNzOiBzdHJpbmcsIG9wdGlvbnM/OiBFbWFpbFN1YnNjcmlwdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSAob3B0aW9ucyAmJiBvcHRpb25zLmpzb24gPyBTdWJzY3JpcHRpb25Qcm90b2NvbC5FbWFpbEpzb24gOiBTdWJzY3JpcHRpb25Qcm90b2NvbC5FbWFpbCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24odGhpcywgbmFtZSwge1xuICAgICAgICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAgICAgICBlbmRwb2ludDogZW1haWxBZGRyZXNzLFxuICAgICAgICAgICAgcHJvdG9jb2xcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHRoaXMgU05TIHRvcGljIHRvIGFuIGh0dHA6Ly8gb3IgaHR0cHM6Ly8gVVJMLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgQSBuYW1lIGZvciB0aGUgc3Vic2NyaXB0aW9uXG4gICAgICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIGludm9rZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmVVcmwobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZykge1xuICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdodHRwczovLycpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VSTCBtdXN0IHN0YXJ0IHdpdGggZWl0aGVyIGh0dHA6Ly8gb3IgaHR0cHM6Ly8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOicpID8gU3Vic2NyaXB0aW9uUHJvdG9jb2wuSHR0cHMgOiBTdWJzY3JpcHRpb25Qcm90b2NvbC5IdHRwO1xuXG4gICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uKHRoaXMsIG5hbWUsIHtcbiAgICAgICAgICAgIHRvcGljOiB0aGlzLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHVybCxcbiAgICAgICAgICAgIHByb3RvY29sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIElBTSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdG9waWMuXG4gICAgICpcbiAgICAgKiBJZiB0aGlzIHRvcGljIHdhcyBjcmVhdGVkIGluIHRoaXMgc3RhY2sgKGBuZXcgVG9waWNgKSwgYSB0b3BpYyBwb2xpY3lcbiAgICAgKiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1BvbGljeWAuIElmXG4gICAgICogdGhlIHRvcGljIGlzIGltcHJvdGVkIChgVG9waWMuaW1wb3J0YCksIHRoZW4gdGhpcyBpcyBhIG5vLW9wLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogY2RrLlBvbGljeVN0YXRlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMucG9saWN5ICYmIHRoaXMuYXV0b0NyZWF0ZVBvbGljeSkge1xuICAgICAgICAgICAgdGhpcy5wb2xpY3kgPSBuZXcgVG9waWNQb2xpY3kodGhpcywgJ1BvbGljeScsIHsgdG9waWNzOiBbIHRoaXMgXSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBvbGljeSkge1xuICAgICAgICAgICAgLy8gc3RhdGVtZW50cyBtdXN0IGJlIHVuaXF1ZSwgc28gd2UgdXNlIHRoZSBzdGF0ZW1lbnQgaW5kZXguXG4gICAgICAgICAgICAvLyBwb3RhbnRpYWxseSBTSURzIGNhbiBjaGFuZ2UgYXMgYSByZXN1bHQgb2Ygb3JkZXIgY2hhbmdlLCBidXQgdGhpcyBzaG91bGRcbiAgICAgICAgICAgIC8vIG5vdCBoYXZlIGFuIGltcGFjdCBvbiB0aGUgcG9saWN5IGV2YWx1YXRpb24uXG4gICAgICAgICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9BY2Nlc3NQb2xpY3lMYW5ndWFnZV9TcGVjaWFsSW5mby5odG1sXG4gICAgICAgICAgICBzdGF0ZW1lbnQuZGVzY3JpYmUodGhpcy5wb2xpY3kuZG9jdW1lbnQuc3RhdGVtZW50Q291bnQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB0aGlzLnBvbGljeS5kb2N1bWVudC5hZGRTdGF0ZW1lbnQoc3RhdGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdyYW50IHRvcGljIHB1Ymxpc2hpbmcgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGlkZW50aXR5XG4gICAgICovXG4gICAgcHVibGljIGdyYW50UHVibGlzaChpZGVudGl0eT86IGlhbS5JSWRlbnRpdHlSZXNvdXJjZSkge1xuICAgICAgICBpZiAoIWlkZW50aXR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZGVudGl0eS5hZGRUb1BvbGljeShuZXcgY2RrLlBvbGljeVN0YXRlbWVudCgpXG4gICAgICAgICAgICAuYWRkUmVzb3VyY2UodGhpcy50b3BpY0FybilcbiAgICAgICAgICAgIC5hZGRBY3Rpb25zKCdzbnM6UHVibGlzaCcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgUnVsZVRhcmdldCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRyaWdnZXIgdGhpcyBTTlMgdG9waWMgYXMgYVxuICAgICAqIHJlc3VsdCBmcm9tIGEgQ2xvdWRXYXRjaCBldmVudC5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9yZXNvdXJjZS1iYXNlZC1wb2xpY2llcy1jd2UuaHRtbCNzbnMtcGVybWlzc2lvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgYXNFdmVudFJ1bGVUYXJnZXQoX3J1bGVBcm46IHN0cmluZywgX3J1bGVJZDogc3RyaW5nKTogZXZlbnRzLkV2ZW50UnVsZVRhcmdldFByb3BzIHtcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50UnVsZVRhcmdldFBvbGljeUFkZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGNkay5Qb2xpY3lTdGF0ZW1lbnQoKVxuICAgICAgICAgICAgICAgIC5hZGRBY3Rpb24oJ3NuczpQdWJsaXNoJylcbiAgICAgICAgICAgICAgICAuYWRkUHJpbmNpcGFsKG5ldyBjZGsuU2VydmljZVByaW5jaXBhbCgnZXZlbnRzLmFtYXpvbmF3cy5jb20nKSlcbiAgICAgICAgICAgICAgICAuYWRkUmVzb3VyY2UodGhpcy50b3BpY0FybikpO1xuXG4gICAgICAgICAgICB0aGlzLmV2ZW50UnVsZVRhcmdldFBvbGljeUFkZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICAgIGFybjogdGhpcy50b3BpY0FybixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFsYXJtQWN0aW9uQXJuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvcGljQXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIE1ldHJpYyBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHRvcGljIGZvciB0aGUgZ2l2ZW4gbWV0cmljXG4gICAgICovXG4gICAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ0FXUy9TTlMnLFxuICAgICAgICAgICAgZGltZW5zaW9uczogeyBUb3BpY05hbWU6IHRoaXMudG9waWNOYW1lIH0sXG4gICAgICAgICAgICBtZXRyaWNOYW1lLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0cmljIGZvciB0aGUgc2l6ZSBvZiBtZXNzYWdlcyBwdWJsaXNoZWQgdGhyb3VnaCB0aGlzIHRvcGljXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAgICovXG4gICAgcHVibGljIG1ldHJpY1B1Ymxpc2hTaXplKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1B1Ymxpc2hTaXplJywgcHJvcHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldHJpYyBmb3IgdGhlIG51bWJlciBvZiBtZXNzYWdlcyBwdWJsaXNoZWQgdGhyb3VnaCB0aGlzIHRvcGljXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgbWV0cmljTnVtYmVyT2ZNZXNzYWdlc1B1Ymxpc2hlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljQ3VzdG9taXphdGlvbik6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0cmljKCdOdW1iZXJPZk1lc3NhZ2VzUHVibGlzaGVkJywgeyBzdGF0aXN0aWM6ICdzdW0nLCAuLi5wcm9wcyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRyaWMgZm9yIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgdGhhdCBmYWlsZWQgdG8gcHVibGlzaCB0aHJvdWdoIHRoaXMgdG9waWNcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgICAqL1xuICAgIHB1YmxpYyBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRmFpbGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ051bWJlck9mTWVzc2FnZXNGYWlsZWQnLCB7IHN0YXRpc3RpYzogJ3N1bScsIC4uLnByb3BzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldHJpYyBmb3IgdGhlIG51bWJlciBvZiBtZXNzYWdlcyB0aGF0IHdlcmUgc3VjY2Vzc2Z1bGx5IGRlbGl2ZXJlZCB0aHJvdWdoIHRoaXMgdG9waWNcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgICAqL1xuICAgIHB1YmxpYyBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRGVsaXZlcmVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNDdXN0b21pemF0aW9uKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ051bWJlck9mTWVzc2FnZXNEZWxpdmVyZWQnLCB7IHN0YXRpc3RpYzogJ3N1bScsIC4uLnByb3BzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgdGhlIElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbiBpbnRlcmZhY2UsIGFsbG93aW5nIHRvcGljcyB0byBiZSB1c2VkXG4gICAgICogYXMgYnVja2V0IG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVja2V0QXJuIFRoZSBBUk4gb2YgdGhlIGJ1Y2tldCBzZW5kaW5nIHRoZSBub3RpZmljYXRpb25zXG4gICAgICogQHBhcmFtIGJ1Y2tldElkIEEgdW5pcXVlIElEIG9mIHRoZSBidWNrZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgYXNCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbihidWNrZXRBcm46IHN0cmluZywgYnVja2V0SWQ6IHN0cmluZyk6IHMzbi5CdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvblByb3BzIHtcbiAgICAgICAgLy8gYWxsb3cgdGhpcyBidWNrZXQgdG8gc25zOnB1Ymxpc2ggdG8gdGhpcyB0b3BpYyAoaWYgaXQgZG9lc24ndCBhbHJlYWR5IGhhdmUgYSBwZXJtaXNzaW9uKVxuICAgICAgICBpZiAoIXRoaXMubm90aWZ5aW5nQnVja2V0cy5oYXMoYnVja2V0SWQpKSB7XG5cbiAgICAgICAgICAgIHRoaXMuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgY2RrLlBvbGljeVN0YXRlbWVudCgpXG4gICAgICAgICAgICAgICAgLmFkZFNlcnZpY2VQcmluY2lwYWwoJ3MzLmFtYXpvbmF3cy5jb20nKVxuICAgICAgICAgICAgICAgIC5hZGRBY3Rpb24oJ3NuczpQdWJsaXNoJylcbiAgICAgICAgICAgICAgICAuYWRkUmVzb3VyY2UodGhpcy50b3BpY0FybilcbiAgICAgICAgICAgICAgICAuYWRkQ29uZGl0aW9uKCdBcm5MaWtlJywgeyBcImF3czpTb3VyY2VBcm5cIjogYnVja2V0QXJuIH0pKTtcblxuICAgICAgICAgICAgdGhpcy5ub3RpZnlpbmdCdWNrZXRzLmFkZChidWNrZXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYXJuOiB0aGlzLnRvcGljQXJuLFxuICAgICAgICAgICAgdHlwZTogczNuLkJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZS5Ub3BpYyxcbiAgICAgICAgICAgIGRlcGVuZGVuY2llczogWyB0aGlzLnBvbGljeSEgXSAvLyBtYWtlIHN1cmUgdGhlIHRvcGljIHBvbGljeSByZXNvdXJjZSBpcyBjcmVhdGVkIGJlZm9yZSB0aGUgbm90aWZpY2F0aW9uIGNvbmZpZ1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBvcnRlZCB0b3BpY1xuICovXG5jbGFzcyBJbXBvcnRlZFRvcGljIGV4dGVuZHMgVG9waWNSZWYge1xuICAgIHB1YmxpYyByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWU6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IFRvcGljUmVmUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocGFyZW50LCBuYW1lKTtcbiAgICAgICAgdGhpcy50b3BpY0FybiA9IHByb3BzLnRvcGljQXJuO1xuICAgICAgICB0aGlzLnRvcGljTmFtZSA9IHByb3BzLnRvcGljTmFtZTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVmZXJlbmNlIHRvIGFuIGV4dGVybmFsIHRvcGljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljUmVmUHJvcHMge1xuICAgIHRvcGljQXJuOiBzdHJpbmc7XG4gICAgdG9waWNOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZW1haWwgc3Vic2NyaXB0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWFpbFN1YnNjcmlwdGlvbk9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgZnVsbCBub3RpZmljYXRpb24gSlNPTiBzaG91bGQgYmUgc2VudCB0byB0aGUgZW1haWxcbiAgICAgKiBhZGRyZXNzIG9yIGp1c3QgdGhlIG1lc3NhZ2UgdGV4dC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IE1lc3NhZ2UgdGV4dCAoZmFsc2UpXG4gICAgICovXG4gICAganNvbj86IGJvb2xlYW5cbn1cbiJdfQ==
import { Construct } from '@aws-cdk/cdk';
import { TopicArn, TopicName } from './sns.generated';
import { TopicRef } from './topic-ref';

@@ -29,6 +28,6 @@ /**

export declare class Topic extends TopicRef {
readonly topicArn: TopicArn;
readonly topicName: TopicName;
readonly topicArn: string;
readonly topicName: string;
protected readonly autoCreatePolicy: boolean;
constructor(parent: Construct, name: string, props?: TopicProps);
}

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

exports.Topic = Topic;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLG1EQUFzRTtBQUN0RSwyQ0FBdUM7QUF5QnZDOztHQUVHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsb0JBQVE7SUFNL0IsWUFBWSxNQUFpQixFQUFFLElBQVksRUFBRSxRQUFvQixFQUFFO1FBQy9ELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFITCxxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFLaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSw4QkFBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0NBQ0o7QUFqQkQsc0JBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCAgfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgY2xvdWRmb3JtYXRpb24sIFRvcGljQXJuLCBUb3BpY05hbWUgfSBmcm9tICcuL3Nucy5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgVG9waWNSZWYgfSBmcm9tICcuL3RvcGljLXJlZic7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgU05TIHRvcGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9waWNQcm9wcyB7XG4gICAgLyoqXG4gICAgICogQSBkZXZlbG9wZXItZGVmaW5lZCBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGlzIFNOUyB0b3BpYy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IE5vbmVcbiAgICAgKi9cbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgbmFtZSBmb3IgdGhlIHRvcGljLlxuICAgICAqXG4gICAgICogSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBBV1MgQ2xvdWRGb3JtYXRpb24gZ2VuZXJhdGVzIGEgdW5pcXVlXG4gICAgICogcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIHRvcGljIG5hbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLFxuICAgICAqIHNlZSBOYW1lIFR5cGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBHZW5lcmF0ZWQgbmFtZVxuICAgICAqL1xuICAgIHRvcGljTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG5ldyBTTlMgdG9waWNcbiAqL1xuZXhwb3J0IGNsYXNzIFRvcGljIGV4dGVuZHMgVG9waWNSZWYge1xuICAgIHB1YmxpYyByZWFkb25seSB0b3BpY0FybjogVG9waWNBcm47XG4gICAgcHVibGljIHJlYWRvbmx5IHRvcGljTmFtZTogVG9waWNOYW1lO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IFRvcGljUHJvcHMgPSB7fSkge1xuICAgICAgICBzdXBlcihwYXJlbnQsIG5hbWUpO1xuXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGNsb3VkZm9ybWF0aW9uLlRvcGljUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgICAgICAgZGlzcGxheU5hbWU6IHByb3BzLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgdG9waWNOYW1lOiBwcm9wcy50b3BpY05hbWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50b3BpY0FybiA9IHJlc291cmNlLnJlZjtcbiAgICAgICAgdGhpcy50b3BpY05hbWUgPSByZXNvdXJjZS50b3BpY05hbWU7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLG1EQUFpRDtBQUNqRCwyQ0FBdUM7QUF5QnZDOztHQUVHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsb0JBQVE7SUFNL0IsWUFBWSxNQUFpQixFQUFFLElBQVksRUFBRSxRQUFvQixFQUFFO1FBQy9ELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFITCxxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFLaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSw4QkFBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0NBQ0o7QUFqQkQsc0JBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCAgfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgY2xvdWRmb3JtYXRpb24gfSBmcm9tICcuL3Nucy5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgVG9waWNSZWYgfSBmcm9tICcuL3RvcGljLXJlZic7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgU05TIHRvcGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9waWNQcm9wcyB7XG4gICAgLyoqXG4gICAgICogQSBkZXZlbG9wZXItZGVmaW5lZCBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGlzIFNOUyB0b3BpYy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IE5vbmVcbiAgICAgKi9cbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgbmFtZSBmb3IgdGhlIHRvcGljLlxuICAgICAqXG4gICAgICogSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBBV1MgQ2xvdWRGb3JtYXRpb24gZ2VuZXJhdGVzIGEgdW5pcXVlXG4gICAgICogcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIHRvcGljIG5hbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLFxuICAgICAqIHNlZSBOYW1lIFR5cGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBHZW5lcmF0ZWQgbmFtZVxuICAgICAqL1xuICAgIHRvcGljTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG5ldyBTTlMgdG9waWNcbiAqL1xuZXhwb3J0IGNsYXNzIFRvcGljIGV4dGVuZHMgVG9waWNSZWYge1xuICAgIHB1YmxpYyByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWU6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBUb3BpY1Byb3BzID0ge30pIHtcbiAgICAgICAgc3VwZXIocGFyZW50LCBuYW1lKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBjbG91ZGZvcm1hdGlvbi5Ub3BpY1Jlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBwcm9wcy5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHRvcGljTmFtZTogcHJvcHMudG9waWNOYW1lXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudG9waWNBcm4gPSByZXNvdXJjZS5yZWY7XG4gICAgICAgIHRoaXMudG9waWNOYW1lID0gcmVzb3VyY2UudG9waWNOYW1lO1xuICAgIH1cbn1cbiJdfQ==
{
"name": "@aws-cdk/aws-sns",
"version": "0.9.1",
"version": "0.9.2",
"description": "CDK Constructs for AWS SNS",

@@ -55,19 +55,19 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "^0.9.1",
"@aws-cdk/aws-s3": "^0.9.1",
"cdk-build-tools": "^0.9.1",
"cdk-integ-tools": "^0.9.1",
"cfn2ts": "^0.9.1",
"pkglint": "^0.9.1"
"@aws-cdk/assert": "^0.9.2",
"@aws-cdk/aws-s3": "^0.9.2",
"cdk-build-tools": "^0.9.2",
"cdk-integ-tools": "^0.9.2",
"cfn2ts": "^0.9.2",
"pkglint": "^0.9.2"
},
"dependencies": {
"@aws-cdk/aws-cloudwatch": "^0.9.1",
"@aws-cdk/aws-events": "^0.9.1",
"@aws-cdk/aws-iam": "^0.9.1",
"@aws-cdk/aws-lambda": "^0.9.1",
"@aws-cdk/aws-s3-notifications": "^0.9.1",
"@aws-cdk/aws-sqs": "^0.9.1",
"@aws-cdk/cdk": "^0.9.1"
"@aws-cdk/aws-cloudwatch": "^0.9.2",
"@aws-cdk/aws-events": "^0.9.2",
"@aws-cdk/aws-iam": "^0.9.2",
"@aws-cdk/aws-lambda": "^0.9.2",
"@aws-cdk/aws-s3-notifications": "^0.9.2",
"@aws-cdk/aws-sqs": "^0.9.2",
"@aws-cdk/cdk": "^0.9.2"
},
"homepage": "https://github.com/awslabs/aws-cdk"
}

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