Socket
Socket
Sign inDemoInstall

@aws-cdk/assets

Package Overview
Dependencies
Maintainers
5
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/assets - npm Package Compare versions

Comparing version 0.25.3 to 0.26.0

2

lib/asset.d.ts

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

*/
addResourceMetadata(resource: cdk.Resource, resourceProperty: string): void;
addResourceMetadata(resource: cdk.CfnResource, resourceProperty: string): void;
/**

@@ -88,0 +88,0 @@ * Grants read permissions to the principal on the asset's S3 object.

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

// the name of the bucket and the S3 key where the code lives.
const bucketParam = new cdk.Parameter(this, 'S3Bucket', {
const bucketParam = new cdk.CfnParameter(this, 'S3Bucket', {
type: 'String',
description: `S3 bucket for asset "${this.node.path}"`,
});
const keyParam = new cdk.Parameter(this, 'S3VersionKey', {
const keyParam = new cdk.CfnParameter(this, 'S3VersionKey', {
type: 'String',

@@ -150,2 +150,2 @@ description: `S3 key for asset version "${this.node.path}"`

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHNDQUF1QztBQUN2QyxvQ0FBcUM7QUFDckMseUNBQTBDO0FBQzFDLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFFOUI7O0dBRUc7QUFDSCxJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEI7OztPQUdHO0lBQ0gsc0NBQW9CLENBQUE7SUFFcEI7O09BRUc7SUFDSCwrQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQVhXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBV3pCO0FBb0JEOzs7R0FHRztBQUNILE1BQWEsS0FBTSxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBc0N0QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsc0VBQXNFO1FBQ3RFLE1BQU0saUJBQWlCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxZQUFZO1lBQ2pFLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFOUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckQsZ0VBQWdFO1FBQ2hFLHNFQUFzRTtRQUN0RSw4REFBOEQ7UUFFOUQsTUFB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RjtZQUNELE1BQU07UUFFUixLQUFLLGNBQWMsQ0FBQyxJQUFJO1lBQ3RCLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsU0FBUyxrRUFBa0UsQ0FBQyxDQUFDO2FBQ2pHO1lBQ0QsTUFBTTtRQUVSO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsU0FBUyxFQUFFLENBQUMsQ0FBQztLQUN2RTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IHMzID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLXMzJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgY3hhcGkgPSByZXF1aXJlKCdAYXdzLWNkay9jeC1hcGknKTtcbmltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSB3YXkgYW4gYXNzZXQgaXMgcGFja2FnZWQgYmVmb3JlIGl0IGlzIHVwbG9hZGVkIHRvIFMzLlxuICovXG5leHBvcnQgZW51bSBBc3NldFBhY2thZ2luZyB7XG4gIC8qKlxuICAgKiBQYXRoIHJlZmVycyB0byBhIGRpcmVjdG9yeSBvbiBkaXNrLCB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeSBpc1xuICAgKiBhcmNoaXZlZCBpbnRvIGEgLnppcC5cbiAgICovXG4gIFppcERpcmVjdG9yeSA9ICd6aXAnLFxuXG4gIC8qKlxuICAgKiBQYXRoIHJlZmVycyB0byBhIHNpbmdsZSBmaWxlIG9uIGRpc2suIFRoZSBmaWxlIGlzIHVwbG9hZGVkIGFzLWlzLlxuICAgKi9cbiAgRmlsZSA9ICdmaWxlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGlzayBsb2NhdGlvbiBvZiB0aGUgYXNzZXQuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdpbmcgdHlwZSBmb3IgdGhpcyBhc3NldC5cbiAgICovXG4gIHBhY2thZ2luZzogQXNzZXRQYWNrYWdpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwcmluY2lwYWxzIHRoYXQgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCB0aGlzIGFzc2V0IGZyb20gUzMuXG4gICAqIFlvdSBjYW4gdXNlIGBhc3NldC5ncmFudFJlYWQocHJpbmNpcGFsKWAgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBsYXRlci5cbiAgICovXG4gIHJlYWRlcnM/OiBpYW0uSVByaW5jaXBhbFtdO1xufVxuXG4vKipcbiAqIEFuIGFzc2V0IHJlcHJlc2VudHMgYSBsb2NhbCBmaWxlIG9yIGRpcmVjdG9yeSwgd2hpY2ggaXMgYXV0b21hdGljYWxseSB1cGxvYWRlZCB0byBTM1xuICogYW5kIHRoZW4gY2FuIGJlIHJlZmVyZW5jZWQgd2l0aGluIGEgQ0RLIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXQgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIGJ1Y2tldCB0aGlzIGFzc2V0IGV4aXN0cyBpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQXR0cmlidXRlIHdoaWNoIHJlcHJlc2VudHMgdGhlIFMzIG9iamVjdCBrZXkgb2YgdGhpcyBhc3NldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM09iamVjdEtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgd2hpY2ggcmVwcmVzZW50cyB0aGUgUzMgVVJMIG9mIHRoaXMgYXNzZXQuXG4gICAqIEBleGFtcGxlIGh0dHBzOi8vczMudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20vYnVja2V0L2tleVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHMzVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIGZ1bGwtcGF0aCBsb2NhdGlvbiBvZiB0aGlzIGFzc2V0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUzMgYnVja2V0IGluIHdoaWNoIHRoaXMgYXNzZXQgcmVzaWRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGlzIGFzc2V0IGlzIGEgemlwIGFyY2hpdmUuIEFsbG93cyBjb25zdHJ1Y3RzIHRvIGVuc3VyZSB0aGF0IHRoZVxuICAgKiBjb3JyZWN0IGZpbGUgdHlwZSB3YXMgdXNlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc1ppcEFyY2hpdmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBwcmVmaXggd2hlcmUgYWxsIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGlzIGFzc2V0IGFyZSBzdG9yZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgczNQcmVmaXg6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdlbmVyaWNBc3NldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIHJlc29sdmUgZnVsbCBwYXRoXG4gICAgdGhpcy5hc3NldFBhdGggPSBwYXRoLnJlc29sdmUocHJvcHMucGF0aCk7XG5cbiAgICAvLyBzZXRzIGlzWmlwQXJjaGl2ZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiBwYWNrYWdpbmcgYW5kIGZpbGUgZXh0ZW5zaW9uXG4gICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gWycuamFyJywgJy56aXAnXTtcbiAgICB0aGlzLmlzWmlwQXJjaGl2ZSA9IHByb3BzLnBhY2thZ2luZyA9PT0gQXNzZXRQYWNrYWdpbmcuWmlwRGlyZWN0b3J5XG4gICAgICA/IHRydWVcbiAgICAgIDogYWxsb3dlZEV4dGVuc2lvbnMuc29tZShleHQgPT4gdGhpcy5hc3NldFBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpKTtcblxuICAgIHZhbGlkYXRlQXNzZXRPbkRpc2sodGhpcy5hc3NldFBhdGgsIHByb3BzLnBhY2thZ2luZyk7XG5cbiAgICAvLyBhZGQgcGFyYW1ldGVycyBmb3IgczMgYnVja2V0IGFuZCBzMyBrZXkuIHRob3NlIHdpbGwgYmUgc2V0IGJ5XG4gICAgLy8gdGhlIHRvb2xraXQgb3IgYnkgQ0kvQ0Qgd2hlbiB0aGUgc3RhY2sgaXMgZGVwbG95ZWQgYW5kIHdpbGwgaW5jbHVkZVxuICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBidWNrZXQgYW5kIHRoZSBTMyBrZXkgd2hlcmUgdGhlIGNvZGUgbGl2ZXMuXG5cbiAgICBjb25zdCBidWNrZXRQYXJhbSA9IG5ldyBjZGsuUGFyYW1ldGVyKHRoaXMsICdTM0J1Y2tldCcsIHtcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246IGBTMyBidWNrZXQgZm9yIGFzc2V0IFwiJHt0aGlzLm5vZGUucGF0aH1cImAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBrZXlQYXJhbSA9IG5ldyBjZGsuUGFyYW1ldGVyKHRoaXMsICdTM1ZlcnNpb25LZXknLCB7XG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBgUzMga2V5IGZvciBhc3NldCB2ZXJzaW9uIFwiJHt0aGlzLm5vZGUucGF0aH1cImBcbiAgICB9KTtcblxuICAgIHRoaXMuczNCdWNrZXROYW1lID0gYnVja2V0UGFyYW0uc3RyaW5nVmFsdWU7XG4gICAgdGhpcy5zM1ByZWZpeCA9IGNkay5Gbi5zZWxlY3QoMCwgY2RrLkZuLnNwbGl0KGN4YXBpLkFTU0VUX1BSRUZJWF9TRVBBUkFUT1IsIGtleVBhcmFtLnN0cmluZ1ZhbHVlKSkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBzM0ZpbGVuYW1lID0gY2RrLkZuLnNlbGVjdCgxLCBjZGsuRm4uc3BsaXQoY3hhcGkuQVNTRVRfUFJFRklYX1NFUEFSQVRPUiwga2V5UGFyYW0uc3RyaW5nVmFsdWUpKS50b1N0cmluZygpO1xuICAgIHRoaXMuczNPYmplY3RLZXkgPSBgJHt0aGlzLnMzUHJlZml4fSR7czNGaWxlbmFtZX1gO1xuXG4gICAgdGhpcy5idWNrZXQgPSBzMy5CdWNrZXQuaW1wb3J0KHRoaXMsICdBc3NldEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuczNCdWNrZXROYW1lXG4gICAgfSk7XG5cbiAgICAvLyBmb3JtIHRoZSBzMyBVUkwgb2YgdGhlIG9iamVjdCBrZXlcbiAgICB0aGlzLnMzVXJsID0gdGhpcy5idWNrZXQudXJsRm9yT2JqZWN0KHRoaXMuczNPYmplY3RLZXkpO1xuXG4gICAgLy8gYXR0YWNoIG1ldGFkYXRhIHRvIHRoZSBsYW1iZGEgZnVuY3Rpb24gd2hpY2ggaW5jbHVkZXMgaW5mb3JtYXRpb25cbiAgICAvLyBmb3IgdG9vbGluZyB0byBiZSBhYmxlIHRvIHBhY2thZ2UgYW5kIHVwbG9hZCBhIGRpcmVjdG9yeSB0byB0aGVcbiAgICAvLyBzMyBidWNrZXQgYW5kIHBsdWcgaW4gdGhlIGJ1Y2tldCBuYW1lIGFuZCBrZXkgaW4gdGhlIGNvcnJlY3RcbiAgICAvLyBwYXJhbWV0ZXJzLlxuICAgIGNvbnN0IGFzc2V0OiBjeGFwaS5GaWxlQXNzZXRNZXRhZGF0YUVudHJ5ID0ge1xuICAgICAgcGF0aDogdGhpcy5hc3NldFBhdGgsXG4gICAgICBpZDogdGhpcy5ub2RlLnVuaXF1ZUlkLFxuICAgICAgcGFja2FnaW5nOiBwcm9wcy5wYWNrYWdpbmcsXG4gICAgICBzM0J1Y2tldFBhcmFtZXRlcjogYnVja2V0UGFyYW0ubG9naWNhbElkLFxuICAgICAgczNLZXlQYXJhbWV0ZXI6IGtleVBhcmFtLmxvZ2ljYWxJZCxcbiAgICB9O1xuXG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKGN4YXBpLkFTU0VUX01FVEFEQVRBLCBhc3NldCk7XG5cbiAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiAocHJvcHMucmVhZGVycyB8fCBbXSkpIHtcbiAgICAgIHRoaXMuZ3JhbnRSZWFkKHJlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgbWV0YWRhdGEgdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSB3aXRoXG4gICAqIGluZm9ybWF0aW9uIHRoYXQgaW5kaWNhdGVzIHdoaWNoIHJlc291cmNlIHByb3BlcnR5IGlzIG1hcHBlZCB0byB0aGlzIGxvY2FsXG4gICAqIGFzc2V0LiBUaGlzIGNhbiBiZSB1c2VkIGJ5IHRvb2xzIHN1Y2ggYXMgU0FNIENMSSB0byBwcm92aWRlIGxvY2FsXG4gICAqIGV4cGVyaWVuY2Ugc3VjaCBhcyBsb2NhbCBpbnZvY2F0aW9uIGFuZCBkZWJ1Z2dpbmcgb2YgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQXNzZXQgbWV0YWRhdGEgd2lsbCBvbmx5IGJlIGluY2x1ZGVkIGlmIHRoZSBzdGFjayBpcyBzeW50aGVzaXplZCB3aXRoIHRoZVxuICAgKiBcImF3czpjZGs6ZW5hYmxlLWFzc2V0LW1ldGFkYXRhXCIgY29udGV4dCBrZXkgZGVmaW5lZCwgd2hpY2ggaXMgdGhlIGRlZmF1bHRcbiAgICogYmVoYXZpb3Igd2hlbiBzeW50aGVzaXppbmcgdmlhIHRoZSBDREsgVG9vbGtpdC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzbGFicy9hd3MtY2RrL2lzc3Vlcy8xNDMyXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZSBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2Ugd2hpY2ggaXMgdXNpbmcgdGhpcyBhc3NldC5cbiAgICogQHBhcmFtIHJlc291cmNlUHJvcGVydHkgVGhlIHByb3BlcnR5IG5hbWUgd2hlcmUgdGhpcyBhc3NldCBpcyByZWZlcmVuY2VkXG4gICAqIChlLmcuIFwiQ29kZVwiIGZvciBBV1M6OkxhbWJkYTo6RnVuY3Rpb24pXG4gICAqL1xuICBwdWJsaWMgYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZTogY2RrLlJlc291cmNlLCByZXNvdXJjZVByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMubm9kZS5nZXRDb250ZXh0KGN4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0VOQUJMRURfQ09OVEVYVCkpIHtcbiAgICAgIHJldHVybjsgLy8gbm90IGVuYWJsZWRcbiAgICB9XG5cbiAgICAvLyB0ZWxsIHRvb2xzIHN1Y2ggYXMgU0FNIENMSSB0aGF0IHRoZSBcIkNvZGVcIiBwcm9wZXJ0eSBvZiB0aGlzIHJlc291cmNlXG4gICAgLy8gcG9pbnRzIHRvIGEgbG9jYWwgcGF0aCBpbiBvcmRlciB0byBlbmFibGUgbG9jYWwgaW52b2NhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uLlxuICAgIHJlc291cmNlLm9wdGlvbnMubWV0YWRhdGEgPSByZXNvdXJjZS5vcHRpb25zLm1ldGFkYXRhIHx8IHsgfTtcbiAgICByZXNvdXJjZS5vcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX1BBVEhfS0VZXSA9IHRoaXMuYXNzZXRQYXRoO1xuICAgIHJlc291cmNlLm9wdGlvbnMubWV0YWRhdGFbY3hhcGkuQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfUFJPUEVSVFlfS0VZXSA9IHJlc291cmNlUHJvcGVydHk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIHByaW5jaXBhbCBvbiB0aGUgYXNzZXQncyBTMyBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKHByaW5jaXBhbD86IGlhbS5JUHJpbmNpcGFsKSB7XG4gICAgLy8gV2UgZ2l2ZSBwZXJtaXNzaW9ucyBvbiBhbGwgZmlsZXMgd2l0aCB0aGUgc2FtZSBwcmVmaXguIFByZXN1bWFibHlcbiAgICAvLyBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgZmlsZSB3aWxsIGhhdmUgdGhlIHNhbWUgcHJlZml4XG4gICAgLy8gYW5kIHdlIGRvbid0IHdhbnQgdG8gYWNjaWRlbnRhbGx5IHJldm9rZSBwZXJtaXNzaW9uIG9uIG9sZCB2ZXJzaW9uc1xuICAgIC8vIHdoZW4gZGVwbG95aW5nIGEgbmV3IHZlcnNpb24uXG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkKHByaW5jaXBhbCwgYCR7dGhpcy5zM1ByZWZpeH0qYCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGguXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwcmluY2lwYWxzIHRoYXQgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCB0aGlzIGZpbGUgYXNzZXQgZnJvbSBTMy5cbiAgICogWW91IGNhbiB1c2UgYGFzc2V0LmdyYW50UmVhZChwcmluY2lwYWwpYCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIGxhdGVyLlxuICAgKi9cbiAgcmVhZGVycz86IGlhbS5JUHJpbmNpcGFsW107XG59XG5cbi8qKlxuICogQW4gYXNzZXQgdGhhdCByZXByZXNlbnRzIGEgZmlsZSBvbiBkaXNrLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZUFzc2V0IGV4dGVuZHMgQXNzZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZpbGVBc3NldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7IHBhY2thZ2luZzogQXNzZXRQYWNrYWdpbmcuRmlsZSwgLi4ucHJvcHMgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBaaXBEaXJlY3RvcnlBc3NldFByb3BzIHtcbiAgLyoqXG4gICAqIFBhdGggb2YgdGhlIGRpcmVjdG9yeS5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHByaW5jaXBhbHMgdGhhdCBzaG91bGQgYmUgYWJsZSB0byByZWFkIHRoaXMgWklQIGZpbGUgZnJvbSBTMy5cbiAgICogWW91IGNhbiB1c2UgYGFzc2V0LmdyYW50UmVhZChwcmluY2lwYWwpYCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIGxhdGVyLlxuICAgKi9cbiAgcmVhZGVycz86IGlhbS5JUHJpbmNpcGFsW107XG59XG5cbi8qKlxuICogQW4gYXNzZXQgdGhhdCByZXByZXNlbnRzIGEgWklQIGFyY2hpdmUgb2YgYSBkaXJlY3Rvcnkgb24gZGlzay5cbiAqL1xuZXhwb3J0IGNsYXNzIFppcERpcmVjdG9yeUFzc2V0IGV4dGVuZHMgQXNzZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFppcERpcmVjdG9yeUFzc2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHsgcGFja2FnaW5nOiBBc3NldFBhY2thZ2luZy5aaXBEaXJlY3RvcnksIC4uLnByb3BzIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXNzZXRPbkRpc2soYXNzZXRQYXRoOiBzdHJpbmcsIHBhY2thZ2luZzogQXNzZXRQYWNrYWdpbmcpIHtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGFzc2V0UGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGFzc2V0IGF0ICR7YXNzZXRQYXRofWApO1xuICB9XG5cbiAgc3dpdGNoIChwYWNrYWdpbmcpIHtcbiAgICBjYXNlIEFzc2V0UGFja2FnaW5nLlppcERpcmVjdG9yeTpcbiAgICAgIGlmICghZnMuc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHthc3NldFBhdGh9IGlzIGV4cGVjdGVkIHRvIGJlIGEgZGlyZWN0b3J5IHdoZW4gYXNzZXQgcGFja2FnaW5nIGlzICd6aXAnYCk7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQXNzZXRQYWNrYWdpbmcuRmlsZTpcbiAgICAgIGlmICghZnMuc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0ZpbGUoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7YXNzZXRQYXRofSBpcyBleHBlY3RlZCB0byBiZSBhIHJlZ3VsYXIgZmlsZSB3aGVuIGFzc2V0IHBhY2thZ2luZyBpcyAnZmlsZSdgKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYXNzZXQgcGFja2FnaW5nIGZvcm1hdDogJHtwYWNrYWdpbmd9YCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhc3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHNDQUF1QztBQUN2QyxvQ0FBcUM7QUFDckMseUNBQTBDO0FBQzFDLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFFOUI7O0dBRUc7QUFDSCxJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEI7OztPQUdHO0lBQ0gsc0NBQW9CLENBQUE7SUFFcEI7O09BRUc7SUFDSCwrQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQVhXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBV3pCO0FBb0JEOzs7R0FHRztBQUNILE1BQWEsS0FBTSxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBc0N0QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsc0VBQXNFO1FBQ3RFLE1BQU0saUJBQWlCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxZQUFZO1lBQ2pFLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFOUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckQsZ0VBQWdFO1FBQ2hFLHNFQUFzRTtRQUN0RSw4REFBOEQ7UUFFOUQsTUFB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RjtZQUNELE1BQU07UUFFUixLQUFLLGNBQWMsQ0FBQyxJQUFJO1lBQ3RCLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsU0FBUyxrRUFBa0UsQ0FBQyxDQUFDO2FBQ2pHO1lBQ0QsTUFBTTtRQUVSO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsU0FBUyxFQUFFLENBQUMsQ0FBQztLQUN2RTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IHMzID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLXMzJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgY3hhcGkgPSByZXF1aXJlKCdAYXdzLWNkay9jeC1hcGknKTtcbmltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSB3YXkgYW4gYXNzZXQgaXMgcGFja2FnZWQgYmVmb3JlIGl0IGlzIHVwbG9hZGVkIHRvIFMzLlxuICovXG5leHBvcnQgZW51bSBBc3NldFBhY2thZ2luZyB7XG4gIC8qKlxuICAgKiBQYXRoIHJlZmVycyB0byBhIGRpcmVjdG9yeSBvbiBkaXNrLCB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeSBpc1xuICAgKiBhcmNoaXZlZCBpbnRvIGEgLnppcC5cbiAgICovXG4gIFppcERpcmVjdG9yeSA9ICd6aXAnLFxuXG4gIC8qKlxuICAgKiBQYXRoIHJlZmVycyB0byBhIHNpbmdsZSBmaWxlIG9uIGRpc2suIFRoZSBmaWxlIGlzIHVwbG9hZGVkIGFzLWlzLlxuICAgKi9cbiAgRmlsZSA9ICdmaWxlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGlzayBsb2NhdGlvbiBvZiB0aGUgYXNzZXQuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdpbmcgdHlwZSBmb3IgdGhpcyBhc3NldC5cbiAgICovXG4gIHBhY2thZ2luZzogQXNzZXRQYWNrYWdpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwcmluY2lwYWxzIHRoYXQgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCB0aGlzIGFzc2V0IGZyb20gUzMuXG4gICAqIFlvdSBjYW4gdXNlIGBhc3NldC5ncmFudFJlYWQocHJpbmNpcGFsKWAgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBsYXRlci5cbiAgICovXG4gIHJlYWRlcnM/OiBpYW0uSVByaW5jaXBhbFtdO1xufVxuXG4vKipcbiAqIEFuIGFzc2V0IHJlcHJlc2VudHMgYSBsb2NhbCBmaWxlIG9yIGRpcmVjdG9yeSwgd2hpY2ggaXMgYXV0b21hdGljYWxseSB1cGxvYWRlZCB0byBTM1xuICogYW5kIHRoZW4gY2FuIGJlIHJlZmVyZW5jZWQgd2l0aGluIGEgQ0RLIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXQgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIGJ1Y2tldCB0aGlzIGFzc2V0IGV4aXN0cyBpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQXR0cmlidXRlIHdoaWNoIHJlcHJlc2VudHMgdGhlIFMzIG9iamVjdCBrZXkgb2YgdGhpcyBhc3NldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM09iamVjdEtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgd2hpY2ggcmVwcmVzZW50cyB0aGUgUzMgVVJMIG9mIHRoaXMgYXNzZXQuXG4gICAqIEBleGFtcGxlIGh0dHBzOi8vczMudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20vYnVja2V0L2tleVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHMzVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIGZ1bGwtcGF0aCBsb2NhdGlvbiBvZiB0aGlzIGFzc2V0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUzMgYnVja2V0IGluIHdoaWNoIHRoaXMgYXNzZXQgcmVzaWRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGlzIGFzc2V0IGlzIGEgemlwIGFyY2hpdmUuIEFsbG93cyBjb25zdHJ1Y3RzIHRvIGVuc3VyZSB0aGF0IHRoZVxuICAgKiBjb3JyZWN0IGZpbGUgdHlwZSB3YXMgdXNlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc1ppcEFyY2hpdmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBwcmVmaXggd2hlcmUgYWxsIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGlzIGFzc2V0IGFyZSBzdG9yZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgczNQcmVmaXg6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdlbmVyaWNBc3NldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIHJlc29sdmUgZnVsbCBwYXRoXG4gICAgdGhpcy5hc3NldFBhdGggPSBwYXRoLnJlc29sdmUocHJvcHMucGF0aCk7XG5cbiAgICAvLyBzZXRzIGlzWmlwQXJjaGl2ZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiBwYWNrYWdpbmcgYW5kIGZpbGUgZXh0ZW5zaW9uXG4gICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gWycuamFyJywgJy56aXAnXTtcbiAgICB0aGlzLmlzWmlwQXJjaGl2ZSA9IHByb3BzLnBhY2thZ2luZyA9PT0gQXNzZXRQYWNrYWdpbmcuWmlwRGlyZWN0b3J5XG4gICAgICA/IHRydWVcbiAgICAgIDogYWxsb3dlZEV4dGVuc2lvbnMuc29tZShleHQgPT4gdGhpcy5hc3NldFBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpKTtcblxuICAgIHZhbGlkYXRlQXNzZXRPbkRpc2sodGhpcy5hc3NldFBhdGgsIHByb3BzLnBhY2thZ2luZyk7XG5cbiAgICAvLyBhZGQgcGFyYW1ldGVycyBmb3IgczMgYnVja2V0IGFuZCBzMyBrZXkuIHRob3NlIHdpbGwgYmUgc2V0IGJ5XG4gICAgLy8gdGhlIHRvb2xraXQgb3IgYnkgQ0kvQ0Qgd2hlbiB0aGUgc3RhY2sgaXMgZGVwbG95ZWQgYW5kIHdpbGwgaW5jbHVkZVxuICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBidWNrZXQgYW5kIHRoZSBTMyBrZXkgd2hlcmUgdGhlIGNvZGUgbGl2ZXMuXG5cbiAgICBjb25zdCBidWNrZXRQYXJhbSA9IG5ldyBjZGsuQ2ZuUGFyYW1ldGVyKHRoaXMsICdTM0J1Y2tldCcsIHtcbiAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgZGVzY3JpcHRpb246IGBTMyBidWNrZXQgZm9yIGFzc2V0IFwiJHt0aGlzLm5vZGUucGF0aH1cImAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBrZXlQYXJhbSA9IG5ldyBjZGsuQ2ZuUGFyYW1ldGVyKHRoaXMsICdTM1ZlcnNpb25LZXknLCB7XG4gICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBgUzMga2V5IGZvciBhc3NldCB2ZXJzaW9uIFwiJHt0aGlzLm5vZGUucGF0aH1cImBcbiAgICB9KTtcblxuICAgIHRoaXMuczNCdWNrZXROYW1lID0gYnVja2V0UGFyYW0uc3RyaW5nVmFsdWU7XG4gICAgdGhpcy5zM1ByZWZpeCA9IGNkay5Gbi5zZWxlY3QoMCwgY2RrLkZuLnNwbGl0KGN4YXBpLkFTU0VUX1BSRUZJWF9TRVBBUkFUT1IsIGtleVBhcmFtLnN0cmluZ1ZhbHVlKSkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBzM0ZpbGVuYW1lID0gY2RrLkZuLnNlbGVjdCgxLCBjZGsuRm4uc3BsaXQoY3hhcGkuQVNTRVRfUFJFRklYX1NFUEFSQVRPUiwga2V5UGFyYW0uc3RyaW5nVmFsdWUpKS50b1N0cmluZygpO1xuICAgIHRoaXMuczNPYmplY3RLZXkgPSBgJHt0aGlzLnMzUHJlZml4fSR7czNGaWxlbmFtZX1gO1xuXG4gICAgdGhpcy5idWNrZXQgPSBzMy5CdWNrZXQuaW1wb3J0KHRoaXMsICdBc3NldEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuczNCdWNrZXROYW1lXG4gICAgfSk7XG5cbiAgICAvLyBmb3JtIHRoZSBzMyBVUkwgb2YgdGhlIG9iamVjdCBrZXlcbiAgICB0aGlzLnMzVXJsID0gdGhpcy5idWNrZXQudXJsRm9yT2JqZWN0KHRoaXMuczNPYmplY3RLZXkpO1xuXG4gICAgLy8gYXR0YWNoIG1ldGFkYXRhIHRvIHRoZSBsYW1iZGEgZnVuY3Rpb24gd2hpY2ggaW5jbHVkZXMgaW5mb3JtYXRpb25cbiAgICAvLyBmb3IgdG9vbGluZyB0byBiZSBhYmxlIHRvIHBhY2thZ2UgYW5kIHVwbG9hZCBhIGRpcmVjdG9yeSB0byB0aGVcbiAgICAvLyBzMyBidWNrZXQgYW5kIHBsdWcgaW4gdGhlIGJ1Y2tldCBuYW1lIGFuZCBrZXkgaW4gdGhlIGNvcnJlY3RcbiAgICAvLyBwYXJhbWV0ZXJzLlxuICAgIGNvbnN0IGFzc2V0OiBjeGFwaS5GaWxlQXNzZXRNZXRhZGF0YUVudHJ5ID0ge1xuICAgICAgcGF0aDogdGhpcy5hc3NldFBhdGgsXG4gICAgICBpZDogdGhpcy5ub2RlLnVuaXF1ZUlkLFxuICAgICAgcGFja2FnaW5nOiBwcm9wcy5wYWNrYWdpbmcsXG4gICAgICBzM0J1Y2tldFBhcmFtZXRlcjogYnVja2V0UGFyYW0ubG9naWNhbElkLFxuICAgICAgczNLZXlQYXJhbWV0ZXI6IGtleVBhcmFtLmxvZ2ljYWxJZCxcbiAgICB9O1xuXG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKGN4YXBpLkFTU0VUX01FVEFEQVRBLCBhc3NldCk7XG5cbiAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiAocHJvcHMucmVhZGVycyB8fCBbXSkpIHtcbiAgICAgIHRoaXMuZ3JhbnRSZWFkKHJlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgbWV0YWRhdGEgdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSB3aXRoXG4gICAqIGluZm9ybWF0aW9uIHRoYXQgaW5kaWNhdGVzIHdoaWNoIHJlc291cmNlIHByb3BlcnR5IGlzIG1hcHBlZCB0byB0aGlzIGxvY2FsXG4gICAqIGFzc2V0LiBUaGlzIGNhbiBiZSB1c2VkIGJ5IHRvb2xzIHN1Y2ggYXMgU0FNIENMSSB0byBwcm92aWRlIGxvY2FsXG4gICAqIGV4cGVyaWVuY2Ugc3VjaCBhcyBsb2NhbCBpbnZvY2F0aW9uIGFuZCBkZWJ1Z2dpbmcgb2YgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQXNzZXQgbWV0YWRhdGEgd2lsbCBvbmx5IGJlIGluY2x1ZGVkIGlmIHRoZSBzdGFjayBpcyBzeW50aGVzaXplZCB3aXRoIHRoZVxuICAgKiBcImF3czpjZGs6ZW5hYmxlLWFzc2V0LW1ldGFkYXRhXCIgY29udGV4dCBrZXkgZGVmaW5lZCwgd2hpY2ggaXMgdGhlIGRlZmF1bHRcbiAgICogYmVoYXZpb3Igd2hlbiBzeW50aGVzaXppbmcgdmlhIHRoZSBDREsgVG9vbGtpdC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzbGFicy9hd3MtY2RrL2lzc3Vlcy8xNDMyXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZSBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2Ugd2hpY2ggaXMgdXNpbmcgdGhpcyBhc3NldC5cbiAgICogQHBhcmFtIHJlc291cmNlUHJvcGVydHkgVGhlIHByb3BlcnR5IG5hbWUgd2hlcmUgdGhpcyBhc3NldCBpcyByZWZlcmVuY2VkXG4gICAqIChlLmcuIFwiQ29kZVwiIGZvciBBV1M6OkxhbWJkYTo6RnVuY3Rpb24pXG4gICAqL1xuICBwdWJsaWMgYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZTogY2RrLkNmblJlc291cmNlLCByZXNvdXJjZVByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMubm9kZS5nZXRDb250ZXh0KGN4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0VOQUJMRURfQ09OVEVYVCkpIHtcbiAgICAgIHJldHVybjsgLy8gbm90IGVuYWJsZWRcbiAgICB9XG5cbiAgICAvLyB0ZWxsIHRvb2xzIHN1Y2ggYXMgU0FNIENMSSB0aGF0IHRoZSBcIkNvZGVcIiBwcm9wZXJ0eSBvZiB0aGlzIHJlc291cmNlXG4gICAgLy8gcG9pbnRzIHRvIGEgbG9jYWwgcGF0aCBpbiBvcmRlciB0byBlbmFibGUgbG9jYWwgaW52b2NhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uLlxuICAgIHJlc291cmNlLm9wdGlvbnMubWV0YWRhdGEgPSByZXNvdXJjZS5vcHRpb25zLm1ldGFkYXRhIHx8IHsgfTtcbiAgICByZXNvdXJjZS5vcHRpb25zLm1ldGFkYXRhW2N4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX1BBVEhfS0VZXSA9IHRoaXMuYXNzZXRQYXRoO1xuICAgIHJlc291cmNlLm9wdGlvbnMubWV0YWRhdGFbY3hhcGkuQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfUFJPUEVSVFlfS0VZXSA9IHJlc291cmNlUHJvcGVydHk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIHByaW5jaXBhbCBvbiB0aGUgYXNzZXQncyBTMyBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKHByaW5jaXBhbD86IGlhbS5JUHJpbmNpcGFsKSB7XG4gICAgLy8gV2UgZ2l2ZSBwZXJtaXNzaW9ucyBvbiBhbGwgZmlsZXMgd2l0aCB0aGUgc2FtZSBwcmVmaXguIFByZXN1bWFibHlcbiAgICAvLyBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgZmlsZSB3aWxsIGhhdmUgdGhlIHNhbWUgcHJlZml4XG4gICAgLy8gYW5kIHdlIGRvbid0IHdhbnQgdG8gYWNjaWRlbnRhbGx5IHJldm9rZSBwZXJtaXNzaW9uIG9uIG9sZCB2ZXJzaW9uc1xuICAgIC8vIHdoZW4gZGVwbG95aW5nIGEgbmV3IHZlcnNpb24uXG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkKHByaW5jaXBhbCwgYCR7dGhpcy5zM1ByZWZpeH0qYCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGguXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwcmluY2lwYWxzIHRoYXQgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCB0aGlzIGZpbGUgYXNzZXQgZnJvbSBTMy5cbiAgICogWW91IGNhbiB1c2UgYGFzc2V0LmdyYW50UmVhZChwcmluY2lwYWwpYCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIGxhdGVyLlxuICAgKi9cbiAgcmVhZGVycz86IGlhbS5JUHJpbmNpcGFsW107XG59XG5cbi8qKlxuICogQW4gYXNzZXQgdGhhdCByZXByZXNlbnRzIGEgZmlsZSBvbiBkaXNrLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZUFzc2V0IGV4dGVuZHMgQXNzZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZpbGVBc3NldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7IHBhY2thZ2luZzogQXNzZXRQYWNrYWdpbmcuRmlsZSwgLi4ucHJvcHMgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBaaXBEaXJlY3RvcnlBc3NldFByb3BzIHtcbiAgLyoqXG4gICAqIFBhdGggb2YgdGhlIGRpcmVjdG9yeS5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHByaW5jaXBhbHMgdGhhdCBzaG91bGQgYmUgYWJsZSB0byByZWFkIHRoaXMgWklQIGZpbGUgZnJvbSBTMy5cbiAgICogWW91IGNhbiB1c2UgYGFzc2V0LmdyYW50UmVhZChwcmluY2lwYWwpYCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIGxhdGVyLlxuICAgKi9cbiAgcmVhZGVycz86IGlhbS5JUHJpbmNpcGFsW107XG59XG5cbi8qKlxuICogQW4gYXNzZXQgdGhhdCByZXByZXNlbnRzIGEgWklQIGFyY2hpdmUgb2YgYSBkaXJlY3Rvcnkgb24gZGlzay5cbiAqL1xuZXhwb3J0IGNsYXNzIFppcERpcmVjdG9yeUFzc2V0IGV4dGVuZHMgQXNzZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFppcERpcmVjdG9yeUFzc2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHsgcGFja2FnaW5nOiBBc3NldFBhY2thZ2luZy5aaXBEaXJlY3RvcnksIC4uLnByb3BzIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXNzZXRPbkRpc2soYXNzZXRQYXRoOiBzdHJpbmcsIHBhY2thZ2luZzogQXNzZXRQYWNrYWdpbmcpIHtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGFzc2V0UGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGFzc2V0IGF0ICR7YXNzZXRQYXRofWApO1xuICB9XG5cbiAgc3dpdGNoIChwYWNrYWdpbmcpIHtcbiAgICBjYXNlIEFzc2V0UGFja2FnaW5nLlppcERpcmVjdG9yeTpcbiAgICAgIGlmICghZnMuc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHthc3NldFBhdGh9IGlzIGV4cGVjdGVkIHRvIGJlIGEgZGlyZWN0b3J5IHdoZW4gYXNzZXQgcGFja2FnaW5nIGlzICd6aXAnYCk7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQXNzZXRQYWNrYWdpbmcuRmlsZTpcbiAgICAgIGlmICghZnMuc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0ZpbGUoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7YXNzZXRQYXRofSBpcyBleHBlY3RlZCB0byBiZSBhIHJlZ3VsYXIgZmlsZSB3aGVuIGFzc2V0IHBhY2thZ2luZyBpcyAnZmlsZSdgKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYXNzZXQgcGFja2FnaW5nIGZvcm1hdDogJHtwYWNrYWdpbmd9YCk7XG4gIH1cbn1cbiJdfQ==
{
"name": "@aws-cdk/assets",
"version": "0.25.3",
"version": "0.26.0",
"description": "Integration of CDK apps with local assets",

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

"devDependencies": {
"@aws-cdk/assert": "^0.25.3",
"aws-cdk": "^0.25.3",
"cdk-build-tools": "^0.25.3",
"cdk-integ-tools": "^0.25.3",
"pkglint": "^0.25.3"
"@aws-cdk/assert": "^0.26.0",
"aws-cdk": "^0.26.0",
"cdk-build-tools": "^0.26.0",
"cdk-integ-tools": "^0.26.0",
"pkglint": "^0.26.0"
},
"dependencies": {
"@aws-cdk/aws-iam": "^0.25.3",
"@aws-cdk/aws-s3": "^0.25.3",
"@aws-cdk/cdk": "^0.25.3",
"@aws-cdk/cx-api": "^0.25.3"
"@aws-cdk/aws-iam": "^0.26.0",
"@aws-cdk/aws-s3": "^0.26.0",
"@aws-cdk/cdk": "^0.26.0",
"@aws-cdk/cx-api": "^0.26.0"
},
"homepage": "https://github.com/awslabs/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-iam": "^0.25.3",
"@aws-cdk/aws-s3": "^0.25.3",
"@aws-cdk/cdk": "^0.25.3"
"@aws-cdk/aws-iam": "^0.26.0",
"@aws-cdk/aws-s3": "^0.26.0",
"@aws-cdk/cdk": "^0.26.0"
},

@@ -72,0 +72,0 @@ "engines": {

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

});
new cdk.Output(this, 'S3BucketName', { value: asset.s3BucketName });
new cdk.Output(this, 'S3ObjectKey', { value: asset.s3ObjectKey });
new cdk.Output(this, 'S3URL', { value: asset.s3Url });
new cdk.CfnOutput(this, 'S3BucketName', { value: asset.s3BucketName });
new cdk.CfnOutput(this, 'S3ObjectKey', { value: asset.s3ObjectKey });
new cdk.CfnOutput(this, 'S3URL', { value: asset.s3Url });
/// !hide

@@ -26,2 +26,2 @@ // we need at least one resource

app.run();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYXNzZXRzLnJlZnMubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWcuYXNzZXRzLnJlZnMubGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBQ3pDLG9DQUFxQztBQUNyQyw2QkFBOEI7QUFDOUIsaUNBQWtDO0FBRWxDLE1BQU0sU0FBVSxTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQy9CLFlBQVksS0FBYyxFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixTQUFTO1FBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUM5RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7U0FDckQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEQsU0FBUztRQUVULGdDQUFnQztRQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUN6QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5pbXBvcnQgYXNzZXRzID0gcmVxdWlyZSgnLi4vbGliJyk7XG5cbmNsYXNzIFRlc3RTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQXBwLCBpZDogc3RyaW5nLCBwcm9wcz86IGNkay5TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLy8gIXNob3dcbiAgICBjb25zdCBhc3NldCA9IG5ldyBhc3NldHMuWmlwRGlyZWN0b3J5QXNzZXQodGhpcywgJ1NhbXBsZUFzc2V0Jywge1xuICAgICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3NhbXBsZS1hc3NldC1kaXJlY3RvcnknKVxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5PdXRwdXQodGhpcywgJ1MzQnVja2V0TmFtZScsIHsgdmFsdWU6IGFzc2V0LnMzQnVja2V0TmFtZSB9KTtcbiAgICBuZXcgY2RrLk91dHB1dCh0aGlzLCAnUzNPYmplY3RLZXknLCB7IHZhbHVlOiBhc3NldC5zM09iamVjdEtleSB9KTtcbiAgICBuZXcgY2RrLk91dHB1dCh0aGlzLCAnUzNVUkwnLCB7IHZhbHVlOiBhc3NldC5zM1VybCB9KTtcbiAgICAvLy8gIWhpZGVcblxuICAgIC8vIHdlIG5lZWQgYXQgbGVhc3Qgb25lIHJlc291cmNlXG4gICAgYXNzZXQuZ3JhbnRSZWFkKG5ldyBpYW0uVXNlcih0aGlzLCAnTXlVc2VyJykpO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5uZXcgVGVzdFN0YWNrKGFwcCwgJ2F3cy1jZGstYXNzZXQtcmVmcycpO1xuYXBwLnJ1bigpO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYXNzZXRzLnJlZnMubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWcuYXNzZXRzLnJlZnMubGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBQ3pDLG9DQUFxQztBQUNyQyw2QkFBOEI7QUFDOUIsaUNBQWtDO0FBRWxDLE1BQU0sU0FBVSxTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQy9CLFlBQVksS0FBYyxFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixTQUFTO1FBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUM5RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7U0FDckQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekQsU0FBUztRQUVULGdDQUFnQztRQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztBQUN6QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5pbXBvcnQgYXNzZXRzID0gcmVxdWlyZSgnLi4vbGliJyk7XG5cbmNsYXNzIFRlc3RTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQXBwLCBpZDogc3RyaW5nLCBwcm9wcz86IGNkay5TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLy8gIXNob3dcbiAgICBjb25zdCBhc3NldCA9IG5ldyBhc3NldHMuWmlwRGlyZWN0b3J5QXNzZXQodGhpcywgJ1NhbXBsZUFzc2V0Jywge1xuICAgICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3NhbXBsZS1hc3NldC1kaXJlY3RvcnknKVxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1MzQnVja2V0TmFtZScsIHsgdmFsdWU6IGFzc2V0LnMzQnVja2V0TmFtZSB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnUzNPYmplY3RLZXknLCB7IHZhbHVlOiBhc3NldC5zM09iamVjdEtleSB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnUzNVUkwnLCB7IHZhbHVlOiBhc3NldC5zM1VybCB9KTtcbiAgICAvLy8gIWhpZGVcblxuICAgIC8vIHdlIG5lZWQgYXQgbGVhc3Qgb25lIHJlc291cmNlXG4gICAgYXNzZXQuZ3JhbnRSZWFkKG5ldyBpYW0uVXNlcih0aGlzLCAnTXlVc2VyJykpO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5uZXcgVGVzdFN0YWNrKGFwcCwgJ2F3cy1jZGstYXNzZXQtcmVmcycpO1xuYXBwLnJ1bigpO1xuIl19

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

// verify that now the template contains parameters for this asset
const template = stack.toCloudFormation();
const template = stack._toCloudFormation();
test.equal(template.Parameters.MyAssetS3Bucket68C9B344.Type, 'String');

@@ -65,3 +65,3 @@ test.equal(template.Parameters.MyAssetS3VersionKey68E1A45D.Type, 'String');

// verify that now the template contains parameters for this asset
const template = stack.toCloudFormation();
const template = stack._toCloudFormation();
test.equal(template.Parameters.MyAssetS3Bucket68C9B344.Type, 'String');

@@ -148,3 +148,3 @@ test.equal(template.Parameters.MyAssetS3VersionKey68E1A45D.Type, 'String');

const location = path.join(__dirname, 'sample-asset-directory');
const resource = new cdk.Resource(stack, 'MyResource', { type: 'My::Resource::Type' });
const resource = new cdk.CfnResource(stack, 'MyResource', { type: 'My::Resource::Type' });
const asset = new asset_1.ZipDirectoryAsset(stack, 'MyAsset', { path: location });

@@ -166,3 +166,3 @@ // WHEN

const location = path.join(__dirname, 'sample-asset-directory');
const resource = new cdk.Resource(stack, 'MyResource', { type: 'My::Resource::Type' });
const resource = new cdk.CfnResource(stack, 'MyResource', { type: 'My::Resource::Type' });
const asset = new asset_1.ZipDirectoryAsset(stack, 'MyAsset', { path: location });

@@ -181,2 +181,2 @@ // WHEN

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QuYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUFxRTtBQUNyRSx3Q0FBeUM7QUFDekMsb0NBQXFDO0FBQ3JDLHlDQUEwQztBQUUxQyw2QkFBOEI7QUFDOUIsd0NBQTREO0FBRTVELGlCQUFTO0lBQ1AsaUJBQWlCLENBQUMsSUFBVTtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUNwRCxJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVILDhEQUE4RDtRQUM5RCwwQkFBMEI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBRXZDLGtFQUFrRTtRQUVsRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QyxJQUFJLEVBQUUsT0FBTztZQUNiLEVBQUUsRUFBRSxTQUFTO1lBQ2IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsaUJBQWlCLEVBQUUseUJBQXlCO1lBQzVDLGNBQWMsRUFBRSw2QkFBNkI7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFD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UUFFMUUsT0FBTztRQUNQLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEQsT0FBTztRQUNQLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMscUJBQVksQ0FBQyxvQkFBb0IsRUFBRTtZQUNyRCxRQUFRLEVBQUU7Z0JBQ1IsZ0JBQWdCLEVBQUUsUUFBUTtnQkFDMUIsb0JBQW9CLEVBQUUsVUFBVTthQUNqQztTQUNGLEVBQUUscUJBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZSwgUmVzb3VyY2VQYXJ0IH0gZnJvbSAnQGF3cy1jZGsvYXNzZXJ0JztcbmltcG9ydCBpYW0gPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtaWFtJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgY3hhcGkgPSByZXF1aXJlKCdAYXdzLWNkay9jeC1hcGknKTtcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCB7IEZpbGVBc3NldCwgWmlwRGlyZWN0b3J5QXNzZXQgfSBmcm9tICcuLi9saWIvYXNzZXQnO1xuXG5leHBvcnQgPSB7XG4gICdzaW1wbGUgdXNlIGNhc2UnKHRlc3Q6IFRlc3QpICB7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgZGlyUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5Jyk7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeUFzc2V0Jywge1xuICAgICAgcGF0aDogZGlyUGF0aFxuICAgIH0pO1xuXG4gICAgLy8gdmVyaWZ5IHRoYXQgbWV0YWRhdGEgY29udGFpbnMgYW4gXCJhd3M6Y2RrOmFzc2V0XCIgZW50cnkgd2l0aFxuICAgIC8vIHRoZSBjb3JyZWN0IGluZm9ybWF0aW9uXG4gICAgY29uc3QgZW50cnkgPSBhc3NldC5ub2RlLm1ldGFkYXRhLmZpbmQobSA9PiBtLnR5cGUgPT09ICdhd3M6Y2RrOmFzc2V0Jyk7XG4gICAgdGVzdC5vayhlbnRyeSwgJ2ZvdW5kIG1ldGFkYXRhIGVudHJ5Jyk7XG5cbiAgICAvLyBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KHN0YWNrLm5vZGUucmVzb2x2ZShlbnRyeSEuZGF0YSkpKTtcblxuICAgIHRlc3QuZGVlcEVxdWFsKHN0YWNrLm5vZGUucmVzb2x2ZShlbnRyeSEuZGF0YSksIHtcbiAgICAgIHBhdGg6IGRpclBhdGgsXG4gICAgICBpZDogJ015QXNzZXQnLFxuICAgICAgcGFja2FnaW5nOiAnemlwJyxcbiAgICAgIHMzQnVja2V0UGFyYW1ldGVyOiAnTXlBc3NldFMzQnVja2V0NjhDOUIzNDQnLFxuICAgICAgczNLZXlQYXJhbWV0ZXI6ICdNeUFzc2V0UzNWZXJzaW9uS2V5NjhFMUE0NUQnLFxuICAgIH0pO1xuXG4gICAgLy8gdmVyaWZ5IHRoYXQgbm93IHRoZSB0ZW1wbGF0ZSBjb250YWlucyBwYXJhbWV0ZXJzIGZvciB0aGlzIGFzc2V0XG4gICAgY29uc3QgdGVtcGxhdGUgPSBzdGFjay50b0Nsb3VkRm9ybWF0aW9uKCk7XG4gICAgdGVzdC5lcXVhbCh0ZW1wbGF0ZS5QYXJhbWV0ZXJzLk15QXNzZXRTM0J1Y2tldDY4QzlCMzQ0LlR5cGUsICdTdHJpbmcnKTtcbiAgICB0ZXN0LmVxdWFsKHRlbXBsYXRlLlBhcmFtZXRlcnMuTXlBc3NldFMzVmVyc2lvbktleTY4RTFBNDVELlR5cGUsICdTdHJpbmcnKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICd2ZXJpZnkgdGhhdCB0aGUgYXBwIHJlc29sdmVzIHRva2VucyBpbiBtZXRhZGF0YScodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgJ215LXN0YWNrJyk7XG4gICAgY29uc3QgZGlyUGF0aCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5Jyk7XG5cbiAgICBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeUFzc2V0Jywge1xuICAgICAgcGF0aDogZGlyUGF0aFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3ludGggPSBhcHAuc3ludGhlc2l6ZVN0YWNrKHN0YWNrLm5hbWUpO1xuXG4gICAgdGVzdC5kZWVwRXF1YWwoc3ludGgubWV0YWRhdGFbJy9teS1zdGFjay9NeUFzc2V0J11bMF0uZGF0YSwge1xuICAgICAgcGF0aDogZGlyUGF0aCxcbiAgICAgIGlkOiBcIm15c3RhY2tNeUFzc2V0RDZCMUI1OTNcIixcbiAgICAgIHBhY2thZ2luZzogXCJ6aXBcIixcbiAgICAgIHMzQnVja2V0UGFyYW1ldGVyOiBcIk15QXNzZXRTM0J1Y2tldDY4QzlCMzQ0XCIsXG4gICAgICBzM0tleVBhcmFtZXRlcjogXCJNeUFzc2V0UzNWZXJzaW9uS2V5NjhFMUE0NURcIlxuICAgIH0pO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ1wiZmlsZVwiIGFzc2V0cycodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2ZpbGUtYXNzZXQudHh0Jyk7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgRmlsZUFzc2V0KHN0YWNrLCAnTXlBc3NldCcsIHsgcGF0aDogZmlsZVBhdGggfSk7XG4gICAgY29uc3QgZW50cnkgPSBhc3NldC5ub2RlLm1ldGFkYXRhLmZpbmQobSA9PiBtLnR5cGUgPT09ICdhd3M6Y2RrOmFzc2V0Jyk7XG4gICAgdGVzdC5vayhlbnRyeSwgJ2ZvdW5kIG1ldGFkYXRhIGVudHJ5Jyk7XG4gICAgdGVzdC5kZWVwRXF1YWwoc3RhY2subm9kZS5yZXNvbHZlKGVudHJ5IS5kYXRhKSwge1xuICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICBwYWNrYWdpbmc6ICdmaWxlJyxcbiAgICAgIGlkOiAnTXlBc3NldCcsXG4gICAgICBzM0J1Y2tldFBhcmFtZXRlcjogJ015QXNzZXRTM0J1Y2tldDY4QzlCMzQ0JyxcbiAgICAgIHMzS2V5UGFyYW1ldGVyOiAnTXlBc3NldFMzVmVyc2lvbktleTY4RTFBNDVEJyxcbiAgICB9KTtcblxuICAgIC8vIHZlcmlmeSB0aGF0IG5vdyB0aGUgdGVtcGxhdGUgY29udGFpbnMgcGFyYW1ldGVycyBmb3IgdGhpcyBhc3NldFxuICAgIGNvbnN0IHRlbXBsYXRlID0gc3RhY2sudG9DbG91ZEZvcm1hdGlvbigpO1xuICAgIHRlc3QuZXF1YWwodGVtcGxhdGUuUGFyYW1ldGVycy5NeUFzc2V0UzNCdWNrZXQ2OEM5QjM0NC5UeXBlLCAnU3RyaW5nJyk7XG4gICAgdGVzdC5lcXVhbCh0ZW1wbGF0ZS5QYXJhbWV0ZXJzLk15QXNzZXRTM1ZlcnNpb25LZXk2OEUxQTQ1RC5UeXBlLCAnU3RyaW5nJyk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnXCJyZWFkZXJzXCIgb3IgXCJncmFudFJlYWRcIiBjYW4gYmUgdXNlZCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIG9uIHRoZSBhc3NldCB0byBhIHByaW5jaXBhbCcodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICAgIGNvbnN0IHVzZXIgPSBuZXcgaWFtLlVzZXIoc3RhY2ssICdNeVVzZXInKTtcbiAgICBjb25zdCBncm91cCA9IG5ldyBpYW0uR3JvdXAoc3RhY2ssICdNeUdyb3VwJyk7XG5cbiAgICBjb25zdCBhc3NldCA9IG5ldyBaaXBEaXJlY3RvcnlBc3NldChzdGFjaywgJ015QXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2FtcGxlLWFzc2V0LWRpcmVjdG9yeScpLFxuICAgICAgcmVhZGVyczogWyB1c2VyIF1cbiAgICB9KTtcblxuICAgIGFzc2V0LmdyYW50UmVhZChncm91cCk7XG5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICAgIFZlcnNpb246ICcyMDEyLTEwLTE3JyxcbiAgICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgQWN0aW9uOiBbXCJzMzpHZXRPYmplY3QqXCIsIFwiczM6R2V0QnVja2V0KlwiLCBcInMzOkxpc3QqXCJdLFxuICAgICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgICAgeyBcIkZuOjpKb2luXCI6IFtcIlwiLCBbXCJhcm46XCIsIHtSZWY6IFwiQVdTOjpQYXJ0aXRpb25cIn0sIFwiOnMzOjo6XCIsIHtSZWY6IFwiTXlBc3NldFMzQnVja2V0NjhDOUIzNDRcIn1dXSB9LFxuICAgICAgICAgICAgICB7IFwiRm46OkpvaW5cIjogW1wiXCIsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgXCJhcm46XCIsIHtSZWY6IFwiQVdTOjpQYXJ0aXRpb25cIn0sIFwiOnMzOjo6XCIsIHtSZWY6IFwiTXlBc3NldFMzQnVja2V0NjhDOUIzNDRcIn0sXG4gICAgICAgICAgICAgICAgICBcIi9cIixcbiAgICAgICAgICAgICAgICAgIHsgXCJGbjo6U2VsZWN0XCI6IFswLCB7IFwiRm46OlNwbGl0XCI6IFsgXCJ8fFwiLCB7IFJlZjogXCJNeUFzc2V0UzNWZXJzaW9uS2V5NjhFMUE0NURcIiB9XSB9XSB9LFxuICAgICAgICAgICAgICAgICAgXCIqXCJcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIF0gfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuICAnZmFpbHMgaWYgZGlyZWN0b3J5IG5vdCBmb3VuZCcodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICAgIHRlc3QudGhyb3dzKCgpID0+IG5ldyBaaXBEaXJlY3RvcnlBc3NldChzdGFjaywgJ015RGlyZWN0b3J5Jywge1xuICAgICAgcGF0aDogJy9wYXRoL25vdC9mb3VuZC8nICsgTWF0aC5yYW5kb20oKSAqIDk5OTk5OVxuICAgIH0pKTtcbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnbXVsdGlwbGUgYXNzZXRzIHVuZGVyIHRoZSBzYW1lIHBhcmVudCcodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IFppcERpcmVjdG9yeUFzc2V0KHN0YWNrLCAnTXlEaXJlY3RvcnkxJywgeyBwYXRoOiAnLicgfSk7XG4gICAgbmV3IFppcERpcmVjdG9yeUFzc2V0KHN0YWNrLCAnTXlEaXJlY3RvcnkyJywgeyBwYXRoOiAnLicgfSk7XG5cbiAgICAvLyBUSEVOOiBubyBlcnJvclxuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2lzWmlwQXJjaGl2ZSBpbmRpY2F0ZXMgaWYgdGhlIGFzc2V0IHJlcHJlc2VudHMgYSAuemlwIGZpbGUgKGVpdGhlciBleHBsaWNpdGx5IG9yIHZpYSBaaXBEaXJlY3RvcnkgcGFja2FnaW5nKScodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3Qgbm9uWmlwQXNzZXQgPSBuZXcgRmlsZUFzc2V0KHN0YWNrLCAnTm9uWmlwQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2FtcGxlLWFzc2V0LWRpcmVjdG9yeScsICdzYW1wbGUtYXNzZXQtZmlsZS50eHQnKVxuICAgIH0pO1xuXG4gICAgY29uc3QgemlwRGlyZWN0b3J5QXNzZXQgPSBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdaaXBEaXJlY3RvcnlBc3NldCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5JylcbiAgICB9KTtcblxuICAgIGNvbnN0IHppcEZpbGVBc3NldCA9IG5ldyBGaWxlQXNzZXQoc3RhY2ssICdaaXBGaWxlQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2FtcGxlLWFzc2V0LWRpcmVjdG9yeScsICdzYW1wbGUtemlwLWFzc2V0LnppcCcpXG4gICAgfSk7XG5cbiAgICBjb25zdCBqYXJGaWxlQXNzZXQgPSBuZXcgRmlsZUFzc2V0KHN0YWNrLCAnSmFyRmlsZUFzc2V0Jywge1xuICAgICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3NhbXBsZS1hc3NldC1kaXJlY3RvcnknLCAnc2FtcGxlLWphci1hc3NldC5qYXInKVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIHRlc3QuZXF1YWwobm9uWmlwQXNzZXQuaXNaaXBBcmNoaXZlLCBmYWxzZSk7XG4gICAgdGVzdC5lcXVhbCh6aXBEaXJlY3RvcnlBc3NldC5pc1ppcEFyY2hpdmUsIHRydWUpO1xuICAgIHRlc3QuZXF1YWwoemlwRmlsZUFzc2V0LmlzWmlwQXJjaGl2ZSwgdHJ1ZSk7XG4gICAgdGVzdC5lcXVhbChqYXJGaWxlQXNzZXQuaXNaaXBBcmNoaXZlLCB0cnVlKTtcbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnYWRkUmVzb3VyY2VNZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBhZGQgQ0ZOIG1ldGFkYXRhIHRvIHJlc291cmNlcycodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgc3RhY2subm9kZS5zZXRDb250ZXh0KGN4YXBpLkFTU0VUX1JFU09VUkNFX01FVEFEQVRBX0VOQUJMRURfQ09OVEVYVCwgdHJ1ZSk7XG5cbiAgICBjb25zdCBsb2NhdGlvbiA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5Jyk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgY2RrLlJlc291cmNlKHN0YWNrLCAnTXlSZXNvdXJjZScsIHsgdHlwZTogJ015OjpSZXNvdXJjZTo6VHlwZScgfSk7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeUFzc2V0JywgeyBwYXRoOiBsb2NhdGlvbiB9KTtcblxuICAgIC8vIFdIRU5cbiAgICBhc3NldC5hZGRSZXNvdXJjZU1ldGFkYXRhKHJlc291cmNlLCAnUHJvcE5hbWUnKTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZSgnTXk6OlJlc291cmNlOjpUeXBlJywge1xuICAgICAgTWV0YWRhdGE6IHtcbiAgICAgICAgXCJhd3M6YXNzZXQ6cGF0aFwiOiBsb2NhdGlvbixcbiAgICAgICAgXCJhd3M6YXNzZXQ6cHJvcGVydHlcIjogXCJQcm9wTmFtZVwiXG4gICAgICB9XG4gICAgfSwgUmVzb3VyY2VQYXJ0LkNvbXBsZXRlRGVmaW5pdGlvbikpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdhc3NldCBtZXRhZGF0YSBpcyBvbmx5IGVtaXR0ZWQgaWYgQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRU5BQkxFRF9DT05URVhUIGlzIGRlZmluZWQnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgY29uc3QgbG9jYXRpb24gPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2FtcGxlLWFzc2V0LWRpcmVjdG9yeScpO1xuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGNkay5SZXNvdXJjZShzdGFjaywgJ015UmVzb3VyY2UnLCB7IHR5cGU6ICdNeTo6UmVzb3VyY2U6OlR5cGUnIH0pO1xuICAgIGNvbnN0IGFzc2V0ID0gbmV3IFppcERpcmVjdG9yeUFzc2V0KHN0YWNrLCAnTXlBc3NldCcsIHsgcGF0aDogbG9jYXRpb24gfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgYXNzZXQuYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZSwgJ1Byb3BOYW1lJyk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS5ub3RUbyhoYXZlUmVzb3VyY2UoJ015OjpSZXNvdXJjZTo6VHlwZScsIHtcbiAgICAgIE1ldGFkYXRhOiB7XG4gICAgICAgIFwiYXdzOmFzc2V0OnBhdGhcIjogbG9jYXRpb24sXG4gICAgICAgIFwiYXdzOmFzc2V0OnByb3BlcnR5XCI6IFwiUHJvcE5hbWVcIlxuICAgICAgfVxuICAgIH0sIFJlc291cmNlUGFydC5Db21wbGV0ZURlZmluaXRpb24pKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9XG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QuYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUFxRTtBQUNyRSx3Q0FBeUM7QUFDekMsb0NBQXFDO0FBQ3JDLHlDQUEwQztBQUUxQyw2QkFBOEI7QUFDOUIsd0NBQTREO0FBRTVELGlCQUFTO0lBQ1AsaUJBQWlCLENBQUMsSUFBVTtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUNwRCxJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVILDhEQUE4RDtRQUM5RCwwQkFBMEI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBRXZDLGtFQUFrRTtRQUVsRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QyxJQUFJLEVBQUUsT0FBTztZQUNiLEVBQUUsRUFBRSxTQUFTO1lBQ2IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsaUJBQWlCLEVBQUUseUJBQXlCO1lBQzVDLGNBQWMsRUFBRSw2QkFBNkI7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFD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UUFFMUUsT0FBTztRQUNQLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEQsT0FBTztRQUNQLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMscUJBQVksQ0FBQyxvQkFBb0IsRUFBRTtZQUNyRCxRQUFRLEVBQUU7Z0JBQ1IsZ0JBQWdCLEVBQUUsUUFBUTtnQkFDMUIsb0JBQW9CLEVBQUUsVUFBVTthQUNqQztTQUNGLEVBQUUscUJBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZSwgUmVzb3VyY2VQYXJ0IH0gZnJvbSAnQGF3cy1jZGsvYXNzZXJ0JztcbmltcG9ydCBpYW0gPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtaWFtJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgY3hhcGkgPSByZXF1aXJlKCdAYXdzLWNkay9jeC1hcGknKTtcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCB7IEZpbGVBc3NldCwgWmlwRGlyZWN0b3J5QXNzZXQgfSBmcm9tICcuLi9saWIvYXNzZXQnO1xuXG5leHBvcnQgPSB7XG4gICdzaW1wbGUgdXNlIGNhc2UnKHRlc3Q6IFRlc3QpICB7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgZGlyUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5Jyk7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeUFzc2V0Jywge1xuICAgICAgcGF0aDogZGlyUGF0aFxuICAgIH0pO1xuXG4gICAgLy8gdmVyaWZ5IHRoYXQgbWV0YWRhdGEgY29udGFpbnMgYW4gXCJhd3M6Y2RrOmFzc2V0XCIgZW50cnkgd2l0aFxuICAgIC8vIHRoZSBjb3JyZWN0IGluZm9ybWF0aW9uXG4gICAgY29uc3QgZW50cnkgPSBhc3NldC5ub2RlLm1ldGFkYXRhLmZpbmQobSA9PiBtLnR5cGUgPT09ICdhd3M6Y2RrOmFzc2V0Jyk7XG4gICAgdGVzdC5vayhlbnRyeSwgJ2ZvdW5kIG1ldGFkYXRhIGVudHJ5Jyk7XG5cbiAgICAvLyBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KHN0YWNrLm5vZGUucmVzb2x2ZShlbnRyeSEuZGF0YSkpKTtcblxuICAgIHRlc3QuZGVlcEVxdWFsKHN0YWNrLm5vZGUucmVzb2x2ZShlbnRyeSEuZGF0YSksIHtcbiAgICAgIHBhdGg6IGRpclBhdGgsXG4gICAgICBpZDogJ015QXNzZXQnLFxuICAgICAgcGFja2FnaW5nOiAnemlwJyxcbiAgICAgIHMzQnVja2V0UGFyYW1ldGVyOiAnTXlBc3NldFMzQnVja2V0NjhDOUIzNDQnLFxuICAgICAgczNLZXlQYXJhbWV0ZXI6ICdNeUFzc2V0UzNWZXJzaW9uS2V5NjhFMUE0NUQnLFxuICAgIH0pO1xuXG4gICAgLy8gdmVyaWZ5IHRoYXQgbm93IHRoZSB0ZW1wbGF0ZSBjb250YWlucyBwYXJhbWV0ZXJzIGZvciB0aGlzIGFzc2V0XG4gICAgY29uc3QgdGVtcGxhdGUgPSBzdGFjay5fdG9DbG91ZEZvcm1hdGlvbigpO1xuICAgIHRlc3QuZXF1YWwodGVtcGxhdGUuUGFyYW1ldGVycy5NeUFzc2V0UzNCdWNrZXQ2OEM5QjM0NC5UeXBlLCAnU3RyaW5nJyk7XG4gICAgdGVzdC5lcXVhbCh0ZW1wbGF0ZS5QYXJhbWV0ZXJzLk15QXNzZXRTM1ZlcnNpb25LZXk2OEUxQTQ1RC5UeXBlLCAnU3RyaW5nJyk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAndmVyaWZ5IHRoYXQgdGhlIGFwcCByZXNvbHZlcyB0b2tlbnMgaW4gbWV0YWRhdGEnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhhcHAsICdteS1zdGFjaycpO1xuICAgIGNvbnN0IGRpclBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnc2FtcGxlLWFzc2V0LWRpcmVjdG9yeScpO1xuXG4gICAgbmV3IFppcERpcmVjdG9yeUFzc2V0KHN0YWNrLCAnTXlBc3NldCcsIHtcbiAgICAgIHBhdGg6IGRpclBhdGhcbiAgICB9KTtcblxuICAgIGNvbnN0IHN5bnRoID0gYXBwLnN5bnRoZXNpemVTdGFjayhzdGFjay5uYW1lKTtcblxuICAgIHRlc3QuZGVlcEVxdWFsKHN5bnRoLm1ldGFkYXRhWycvbXktc3RhY2svTXlBc3NldCddWzBdLmRhdGEsIHtcbiAgICAgIHBhdGg6IGRpclBhdGgsXG4gICAgICBpZDogXCJteXN0YWNrTXlBc3NldEQ2QjFCNTkzXCIsXG4gICAgICBwYWNrYWdpbmc6IFwiemlwXCIsXG4gICAgICBzM0J1Y2tldFBhcmFtZXRlcjogXCJNeUFzc2V0UzNCdWNrZXQ2OEM5QjM0NFwiLFxuICAgICAgczNLZXlQYXJhbWV0ZXI6IFwiTXlBc3NldFMzVmVyc2lvbktleTY4RTFBNDVEXCJcbiAgICB9KTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdcImZpbGVcIiBhc3NldHMnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdmaWxlLWFzc2V0LnR4dCcpO1xuICAgIGNvbnN0IGFzc2V0ID0gbmV3IEZpbGVBc3NldChzdGFjaywgJ015QXNzZXQnLCB7IHBhdGg6IGZpbGVQYXRoIH0pO1xuICAgIGNvbnN0IGVudHJ5ID0gYXNzZXQubm9kZS5tZXRhZGF0YS5maW5kKG0gPT4gbS50eXBlID09PSAnYXdzOmNkazphc3NldCcpO1xuICAgIHRlc3Qub2soZW50cnksICdmb3VuZCBtZXRhZGF0YSBlbnRyeScpO1xuICAgIHRlc3QuZGVlcEVxdWFsKHN0YWNrLm5vZGUucmVzb2x2ZShlbnRyeSEuZGF0YSksIHtcbiAgICAgIHBhdGg6IGZpbGVQYXRoLFxuICAgICAgcGFja2FnaW5nOiAnZmlsZScsXG4gICAgICBpZDogJ015QXNzZXQnLFxuICAgICAgczNCdWNrZXRQYXJhbWV0ZXI6ICdNeUFzc2V0UzNCdWNrZXQ2OEM5QjM0NCcsXG4gICAgICBzM0tleVBhcmFtZXRlcjogJ015QXNzZXRTM1ZlcnNpb25LZXk2OEUxQTQ1RCcsXG4gICAgfSk7XG5cbiAgICAvLyB2ZXJpZnkgdGhhdCBub3cgdGhlIHRlbXBsYXRlIGNvbnRhaW5zIHBhcmFtZXRlcnMgZm9yIHRoaXMgYXNzZXRcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHN0YWNrLl90b0Nsb3VkRm9ybWF0aW9uKCk7XG4gICAgdGVzdC5lcXVhbCh0ZW1wbGF0ZS5QYXJhbWV0ZXJzLk15QXNzZXRTM0J1Y2tldDY4QzlCMzQ0LlR5cGUsICdTdHJpbmcnKTtcbiAgICB0ZXN0LmVxdWFsKHRlbXBsYXRlLlBhcmFtZXRlcnMuTXlBc3NldFMzVmVyc2lvbktleTY4RTFBNDVELlR5cGUsICdTdHJpbmcnKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdcInJlYWRlcnNcIiBvciBcImdyYW50UmVhZFwiIGNhbiBiZSB1c2VkIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgb24gdGhlIGFzc2V0IHRvIGEgcHJpbmNpcGFsJyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgdXNlciA9IG5ldyBpYW0uVXNlcihzdGFjaywgJ015VXNlcicpO1xuICAgIGNvbnN0IGdyb3VwID0gbmV3IGlhbS5Hcm91cChzdGFjaywgJ015R3JvdXAnKTtcblxuICAgIGNvbnN0IGFzc2V0ID0gbmV3IFppcERpcmVjdG9yeUFzc2V0KHN0YWNrLCAnTXlBc3NldCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5JyksXG4gICAgICByZWFkZXJzOiBbIHVzZXIgXVxuICAgIH0pO1xuXG4gICAgYXNzZXQuZ3JhbnRSZWFkKGdyb3VwKTtcblxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlKCdBV1M6OklBTTo6UG9saWN5Jywge1xuICAgICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgICAgVmVyc2lvbjogJzIwMTItMTAtMTcnLFxuICAgICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBBY3Rpb246IFtcInMzOkdldE9iamVjdCpcIiwgXCJzMzpHZXRCdWNrZXQqXCIsIFwiczM6TGlzdCpcIl0sXG4gICAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgICBSZXNvdXJjZTogW1xuICAgICAgICAgICAgICB7IFwiRm46OkpvaW5cIjogW1wiXCIsIFtcImFybjpcIiwge1JlZjogXCJBV1M6OlBhcnRpdGlvblwifSwgXCI6czM6OjpcIiwge1JlZjogXCJNeUFzc2V0UzNCdWNrZXQ2OEM5QjM0NFwifV1dIH0sXG4gICAgICAgICAgICAgIHsgXCJGbjo6Sm9pblwiOiBbXCJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBcImFybjpcIiwge1JlZjogXCJBV1M6OlBhcnRpdGlvblwifSwgXCI6czM6OjpcIiwge1JlZjogXCJNeUFzc2V0UzNCdWNrZXQ2OEM5QjM0NFwifSxcbiAgICAgICAgICAgICAgICAgIFwiL1wiLFxuICAgICAgICAgICAgICAgICAgeyBcIkZuOjpTZWxlY3RcIjogWzAsIHsgXCJGbjo6U3BsaXRcIjogWyBcInx8XCIsIHsgUmVmOiBcIk15QXNzZXRTM1ZlcnNpb25LZXk2OEUxQTQ1RFwiIH1dIH1dIH0sXG4gICAgICAgICAgICAgICAgICBcIipcIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgXSB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG4gICdmYWlscyBpZiBkaXJlY3Rvcnkgbm90IGZvdW5kJyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgdGVzdC50aHJvd3MoKCkgPT4gbmV3IFppcERpcmVjdG9yeUFzc2V0KHN0YWNrLCAnTXlEaXJlY3RvcnknLCB7XG4gICAgICBwYXRoOiAnL3BhdGgvbm90L2ZvdW5kLycgKyBNYXRoLnJhbmRvbSgpICogOTk5OTk5XG4gICAgfSkpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdtdWx0aXBsZSBhc3NldHMgdW5kZXIgdGhlIHNhbWUgcGFyZW50Jyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeURpcmVjdG9yeTEnLCB7IHBhdGg6ICcuJyB9KTtcbiAgICBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeURpcmVjdG9yeTInLCB7IHBhdGg6ICcuJyB9KTtcblxuICAgIC8vIFRIRU46IG5vIGVycm9yXG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnaXNaaXBBcmNoaXZlIGluZGljYXRlcyBpZiB0aGUgYXNzZXQgcmVwcmVzZW50cyBhIC56aXAgZmlsZSAoZWl0aGVyIGV4cGxpY2l0bHkgb3IgdmlhIFppcERpcmVjdG9yeSBwYWNrYWdpbmcpJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBub25aaXBBc3NldCA9IG5ldyBGaWxlQXNzZXQoc3RhY2ssICdOb25aaXBBc3NldCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5JywgJ3NhbXBsZS1hc3NldC1maWxlLnR4dCcpXG4gICAgfSk7XG5cbiAgICBjb25zdCB6aXBEaXJlY3RvcnlBc3NldCA9IG5ldyBaaXBEaXJlY3RvcnlBc3NldChzdGFjaywgJ1ppcERpcmVjdG9yeUFzc2V0Jywge1xuICAgICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3NhbXBsZS1hc3NldC1kaXJlY3RvcnknKVxuICAgIH0pO1xuXG4gICAgY29uc3QgemlwRmlsZUFzc2V0ID0gbmV3IEZpbGVBc3NldChzdGFjaywgJ1ppcEZpbGVBc3NldCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5JywgJ3NhbXBsZS16aXAtYXNzZXQuemlwJylcbiAgICB9KTtcblxuICAgIGNvbnN0IGphckZpbGVBc3NldCA9IG5ldyBGaWxlQXNzZXQoc3RhY2ssICdKYXJGaWxlQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2FtcGxlLWFzc2V0LWRpcmVjdG9yeScsICdzYW1wbGUtamFyLWFzc2V0LmphcicpXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgdGVzdC5lcXVhbChub25aaXBBc3NldC5pc1ppcEFyY2hpdmUsIGZhbHNlKTtcbiAgICB0ZXN0LmVxdWFsKHppcERpcmVjdG9yeUFzc2V0LmlzWmlwQXJjaGl2ZSwgdHJ1ZSk7XG4gICAgdGVzdC5lcXVhbCh6aXBGaWxlQXNzZXQuaXNaaXBBcmNoaXZlLCB0cnVlKTtcbiAgICB0ZXN0LmVxdWFsKGphckZpbGVBc3NldC5pc1ppcEFyY2hpdmUsIHRydWUpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdhZGRSZXNvdXJjZU1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIGFkZCBDRk4gbWV0YWRhdGEgdG8gcmVzb3VyY2VzJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgICBzdGFjay5ub2RlLnNldENvbnRleHQoY3hhcGkuQVNTRVRfUkVTT1VSQ0VfTUVUQURBVEFfRU5BQkxFRF9DT05URVhULCB0cnVlKTtcblxuICAgIGNvbnN0IGxvY2F0aW9uID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3NhbXBsZS1hc3NldC1kaXJlY3RvcnknKTtcbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBjZGsuQ2ZuUmVzb3VyY2Uoc3RhY2ssICdNeVJlc291cmNlJywgeyB0eXBlOiAnTXk6OlJlc291cmNlOjpUeXBlJyB9KTtcbiAgICBjb25zdCBhc3NldCA9IG5ldyBaaXBEaXJlY3RvcnlBc3NldChzdGFjaywgJ015QXNzZXQnLCB7IHBhdGg6IGxvY2F0aW9uIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGFzc2V0LmFkZFJlc291cmNlTWV0YWRhdGEocmVzb3VyY2UsICdQcm9wTmFtZScpO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlKCdNeTo6UmVzb3VyY2U6OlR5cGUnLCB7XG4gICAgICBNZXRhZGF0YToge1xuICAgICAgICBcImF3czphc3NldDpwYXRoXCI6IGxvY2F0aW9uLFxuICAgICAgICBcImF3czphc3NldDpwcm9wZXJ0eVwiOiBcIlByb3BOYW1lXCJcbiAgICAgIH1cbiAgICB9LCBSZXNvdXJjZVBhcnQuQ29tcGxldGVEZWZpbml0aW9uKSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2Fzc2V0IG1ldGFkYXRhIGlzIG9ubHkgZW1pdHRlZCBpZiBBU1NFVF9SRVNPVVJDRV9NRVRBREFUQV9FTkFCTEVEX0NPTlRFWFQgaXMgZGVmaW5lZCcodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICBjb25zdCBsb2NhdGlvbiA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdzYW1wbGUtYXNzZXQtZGlyZWN0b3J5Jyk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgY2RrLkNmblJlc291cmNlKHN0YWNrLCAnTXlSZXNvdXJjZScsIHsgdHlwZTogJ015OjpSZXNvdXJjZTo6VHlwZScgfSk7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgWmlwRGlyZWN0b3J5QXNzZXQoc3RhY2ssICdNeUFzc2V0JywgeyBwYXRoOiBsb2NhdGlvbiB9KTtcblxuICAgIC8vIFdIRU5cbiAgICBhc3NldC5hZGRSZXNvdXJjZU1ldGFkYXRhKHJlc291cmNlLCAnUHJvcE5hbWUnKTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLm5vdFRvKGhhdmVSZXNvdXJjZSgnTXk6OlJlc291cmNlOjpUeXBlJywge1xuICAgICAgTWV0YWRhdGE6IHtcbiAgICAgICAgXCJhd3M6YXNzZXQ6cGF0aFwiOiBsb2NhdGlvbixcbiAgICAgICAgXCJhd3M6YXNzZXQ6cHJvcGVydHlcIjogXCJQcm9wTmFtZVwiXG4gICAgICB9XG4gICAgfSwgUmVzb3VyY2VQYXJ0LkNvbXBsZXRlRGVmaW5pdGlvbikpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH1cbn07XG4iXX0=

Sorry, the diff of this file is not supported yet

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