cdk-import 0.2.159 → 0.2.162

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,5 +34,6 @@ export declare class ServiceCatalogProvisioningConstructGenerator {
34
34
  private resolveEnumValue;
35
35
  private emitEnums;
36
36
  private emitProductDescription;
37
+ private emitSynthesizerValidation;
37
38
  private emitConstructClass;
38
39
  }
@@ -199,6 +199,14 @@ class ServiceCatalogProvisioningConstructGenerator {
199
199
  product.Owner && code.line(` * Owner: ${product.Owner}`);
200
200
  code.line(' */');
201
201
  }
202
+ emitSynthesizerValidation(code) {
203
+ code.line('const synthesizer: cdk.IStackSynthesizer = cdk.Stack.of(this).synthesizer;');
204
+ code.line('const supportedSynthesizers = [cdk.CliCredentialsStackSynthesizer, cdk.LegacyStackSynthesizer, cdk.BootstraplessSynthesizer];');
205
+ code.line();
206
+ code.line('if (!supportedSynthesizers.some(supportedSynthesizer => synthesizer instanceof supportedSynthesizer)) {');
207
+ code.line(' throw Error(`${synthesizer.constructor.name} not supported. Please use one of the supported synthesizers: ${supportedSynthesizers.map(synth => synth.name)}`);');
208
+ code.line('}');
209
+ }
202
210
  emitConstructClass(code) {
203
211
  var _a;
204
212
  this.emitProductDescription(code);
@@ -224,7 +232,9 @@ class ServiceCatalogProvisioningConstructGenerator {
224
232
  code.line(' */');
225
233
  code.openBlock(`constructor(scope: constructs.Construct, id: string${this.hasParameters ? ', props: ' + this.propsStructName : ''})`);
226
234
  code.line('super(scope, id);');
227
- code.line('');
235
+ code.line();
236
+ this.emitSynthesizerValidation(code);
237
+ code.line();
228
238
  code.line("this.provisionedProduct = new sc.CfnCloudFormationProvisionedProduct(this, 'Resource', {");
229
239
  code.line(' provisionedProductName: this.node.id,');
230
240
  if (this.productDataAggregate.provisioningArtifact.Name) {
@@ -263,4 +273,4 @@ class ServiceCatalogProvisioningConstructGenerator {
263
273
  }
264
274
  }
265
275
  exports.ServiceCatalogProvisioningConstructGenerator = ServiceCatalogProvisioningConstructGenerator;
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29uc3RydWN0LWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zYy1jb25zdHJ1Y3QtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsK0JBQStDO0FBQy9DLCtDQUFpQztBQVdqQzs7R0FFRztBQUNILE1BQWEsNENBQTRDO0lBY3ZEOztPQUVHO0lBQ0gsWUFBWSxXQUFpQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLGFBQU0sRUFBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsOEJBQStCLENBQUM7UUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLDhCQUErQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENB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Q0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQywrSEFBK0gsQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxJQUFJLENBQUMsbUdBQW1HLENBQUMsQ0FBQztRQUMvRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBQSxZQUFLLEVBQUMsTUFBTSxDQUFDLEdBQUksQ0FBQyxtRkFBbUYsTUFBTSxDQUFDLEdBQUksTUFBTSxDQUFDLENBQUM7UUFDNUksQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFwUUQsb0dBb1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlzaW9uaW5nQXJ0aWZhY3RPdXRwdXRzLCBQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMgfSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvc2VydmljZWNhdGFsb2cnO1xuaW1wb3J0IHsgcGFzY2FsLCBjYW1lbCwgY29uc3RhbnQgfSBmcm9tICdjYXNlJztcbmltcG9ydCAqIGFzIGoyaiBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgUHJvZHVjdERhdGFBZ2dyZWdhdGUgfSBmcm9tICcuL3NlcnZpY2UtY2F0YWxvZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlbnVtIGZvciBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXIgaW5wdXRzIHRoYXQgaGF2ZSBwcmVkZWZpbmVkIGFsbG93ZWQgdmFsdWVzLlxuICovXG50eXBlIEVudW1EZWZpbml0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRWYWx1ZXM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCBpbmZvcm1hdGlvbiBvbiBwcm92aXNpb25pbmcgZGV0YWlscyBmb3IgYSBwcm9kdWN0LlxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3REYXRhQWdncmVnYXRlOiBQcm9kdWN0RGF0YUFnZ3JlZ2F0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNQYXJhbWV0ZXJzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplZFR5cGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VBdHRyaWJ1dGVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25zdHJ1Y3RDbGFzc05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc1N0cnVjdE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbnVtczogRW51bURlZmluaXRpb25bXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJzOiBQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEF0dHJpYnV0ZXM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IG91dHB1dEtleXM6IFByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0cztcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXREZXNjcmlwdGlvbnM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcHJvZHVjdERhdGEgdGhlIGFnZ3JlZ2F0ZSBkZXRhaWxzIG9uIGEgcHJvZHVjdCB3aXRoIGluZm9ybWF0aW9uIG9uIGlucHV0cyBhbmQgb3V0cHV0cyBvZiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9kdWN0RGF0YTogUHJvZHVjdERhdGFBZ2dyZWdhdGUpIHtcbiAgICB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlID0gcHJvZHVjdERhdGE7XG4gICAgdGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSA9IHBhc2NhbCh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuTmFtZSEpO1xuICAgIHRoaXMuY29uc3RydWN0Q2xhc3NOYW1lID0gajJqLlR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUodGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSk7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBqMmouVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuc2FuaXRpemVkVHlwZU5hbWU7XG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMuZW51bXMgPSBuZXcgQXJyYXk8RW51bURlZmluaXRpb24+KCk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RQYXJhbWV0ZXJzITtcbiAgICB0aGlzLmhhc1BhcmFtZXRlcnMgPSB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnBhcmFtcy5Qcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMhLmxlbmd0aCA+IDA7XG4gICAgdGhpcy5vdXRwdXRLZXlzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RPdXRwdXRLZXlzITtcbiAgICB0aGlzLm91dHB1dERlc2NyaXB0aW9ucyA9IHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucGFyYW1zLlByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0S2V5cyEucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgb2JqW2NhbWVsKGtleS5LZXkhKV0gPSBrZXkuRGVzY3JpcHRpb247XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9IGFzIHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9KTtcblxuICAgIHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgPSBuZXcgU2V0PHN0cmluZz4oWydwcm92aXNpb25lZFByb2R1Y3RJZCcsICdjbG91ZEZvcm1hdGlvblN0YWNrQXJuJywgJ3JlY29yZElkJ10pO1xuXG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMucHVzaChcbiAgICAgIC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgICAuLi50aGlzLm91dHB1dEtleXMubWFwKGtleSA9PiBjYW1lbChrZXkuS2V5ISkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0eXBlIGludG8gYSBUeXBlU2NyaXB0IGNsYXNzIGZpbGUgZGVmaW5pbmcgdGhlIHByb3BzIGFuZCB0aGUgd3JhcHBlZCBMMSBjb25zdHJ1Y3QgQVdTOjpTZXJ2aWNlQ2F0YWxvZzo6Q2xvdWRGb3JtYXRpb25Qcm92aXNpb25lZFByb2R1Y3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZW5kZXJlZCBjbGFzcyBmaWxlIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2RlID0gbmV3IGoyai5Db2RlKCk7XG4gICAgdGhpcy5lbWl0SW1wb3J0cyhjb2RlKTtcbiAgICB0aGlzLmVtaXRJbnRlcmZhY2UoY29kZSk7XG4gICAgdGhpcy5lbWl0QmFzZShjb2RlKTtcbiAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLmVtaXRQYXJhbWV0ZXJNYXAoY29kZSk7XG4gICAgICB0aGlzLmVtaXREZWZpbml0aW9uVHlwZXMoY29kZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdENvbnN0cnVjdENsYXNzKGNvZGUpO1xuICAgIHRoaXMuZW51bXMubGVuZ3RoICYmIHRoaXMuZW1pdEVudW1zKGNvZGUpO1xuICAgIHJldHVybiBjb2RlLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1wb3J0cyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnQnKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBzYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VydmljZWNhdGFsb2cnO1wiKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVyZmFjZShjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfSBleHRlbmRzIGNkay5JUmVzb3VyY2VgKTtcbiAgICB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRCYXNlKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGFic3RyYWN0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQYXJhbWV0ZXJzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmluZ1BhcmFtZXRlcnM6Jyk7XG4gICAgY29kZS5saW5lKCcgICAgT2JqZWN0LmVudHJpZXMocHJvcHMpLm1hcCgoW2ssIHZdKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgICAgICByZXR1cm4geycpO1xuICAgIGNvZGUubGluZSgnICAgICAgICBrZXk6IFBhcmFtZXRlcktleXMudmFsdWVPZihrKSBhcyBzdHJpbmcsJyk7XG4gICAgY29kZS5saW5lKCcgICAgICAgIHZhbHVlOiB2IGFzIHN0cmluZywnKTtcbiAgICBjb2RlLmxpbmUoJyAgICAgIH0nKTtcbiAgICBjb2RlLmxpbmUoJyAgICB9KSwnKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFBhcmFtZXRlck1hcChjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKCdlbnVtIFBhcmFtZXRlcktleXMnKTtcbiAgICB0aGlzLnBhcmFtZXRlcnM/LmZvckVhY2gocCA9PiB7XG4gICAgICBjb2RlLmxpbmUoYCR7Y2FtZWwocC5QYXJhbWV0ZXJLZXkhKX0gPSAnJHtwLlBhcmFtZXRlcktleX0nLGApO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUub3BlbkJsb2NrKCduYW1lc3BhY2UgUGFyYW1ldGVyS2V5cycpO1xuICAgIGNvZGUubGluZSgnY29uc3QgcmV2ZXJzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQYXJhbWV0ZXJLZXlzPigpOycpO1xuICAgIGNvZGUubGluZSgnT2JqZWN0LmtleXMoUGFyYW1ldGVyS2V5cykuZm9yRWFjaCgoczogc3RyaW5nKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgIGNvbnN0IGUgPSAoPGFueT5QYXJhbWV0ZXJLZXlzKVtzXTsnKTtcbiAgICBjb2RlLmxpbmUoJyAgcmV2ZXJzZU1hcC5zZXQocywgZSk7Jyk7XG4gICAgY29kZS5saW5lKCd9KTsnKTtcbiAgICBjb2RlLmxpbmUoJ2V4cG9ydCBmdW5jdGlvbiB2YWx1ZU9mKHN0cjogc3RyaW5nKSB7Jyk7XG4gICAgY29kZS5saW5lKCcgIHJldHVybiByZXZlcnNlTWFwLmdldChzdHIpOycpO1xuICAgIGNvZGUubGluZSgnfScpO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVmaW5pdGlvblR5cGVzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMucGFyYW1ldGVycyEuZm9yRWFjaChwYSA9PiB7XG4gICAgICBsZXQgb3B0aW9uYWwgPSAnJztcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7cGFzY2FsKHBhLlBhcmFtZXRlcktleSEpfWApO1xuICAgICAgaWYgKHBhLkRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgICAgY29kZS5saW5lKGAgKiAke3BhLkRlc2NyaXB0aW9ufWApO1xuICAgICAgfVxuICAgICAgaWYgKHBhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5Db25zdHJhaW50RGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgICBjb2RlLmxpbmUoYCAqICR7cGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkNvbnN0cmFpbnREZXNjcmlwdGlvbn1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYS5EZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgb3B0aW9uYWwgKz0gJz8nO1xuICAgICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogQGRlZmF1bHQgJHtwYS5EZWZhdWx0VmFsdWV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkFsbG93ZWRWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmVudW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHBhLlBhcmFtZXRlcktleSEsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogcGEuUGFyYW1ldGVyQ29uc3RyYWludHMuQWxsb3dlZFZhbHVlcyxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2NhbWVsKHBhLlBhcmFtZXRlcktleSEpfSR7b3B0aW9uYWx9OiAke3BhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5BbGxvd2VkVmFsdWVzPy5sZW5ndGggPyB0aGlzLmNvbnN0cnVjdENsYXNzTmFtZSArICcuJyArIHBhLlBhcmFtZXRlcktleSA6ICdzdHJpbmcnfTtgKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRW51bVZhbHVlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoTnVtYmVyKHZhbCkpIHtcbiAgICAgIHJldHVybiBjb25zdGFudChgVkFMVUVfJHt2YWx9YCk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIodmFsLmNoYXJBdCgwKSkpIHtcbiAgICAgIHJldHVybiBgJyR7Y29uc3RhbnQodmFsKX0nYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0YW50KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RW51bXMoY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IG5hbWVzcGFjZSAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMuZW51bXMuZm9yRWFjaCggZSA9PiB7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgZW51bSAke2UubmFtZX1gKTtcbiAgICAgIGUuYWxsb3dlZFZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogJHt2YWx9YCk7XG4gICAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICAgIGNvZGUubGluZShgJHt0aGlzLnJlc29sdmVFbnVtVmFsdWUodmFsKX0gPSAnJHt2YWx9JyxgKTtcbiAgICAgICAgY29kZS5saW5lKCk7XG4gICAgICB9KTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQcm9kdWN0RGVzY3JpcHRpb24oY29kZTogajJqLkNvZGUpIHtcbiAgICBjb25zdCBwcm9kdWN0ID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wcm9kdWN0O1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiAke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGlmIChwcm9kdWN0LlNob3J0RGVzY3JpcHRpb24pIHtcbiAgICAgIGNvZGUubGluZShgICogJHtwcm9kdWN0LlNob3J0RGVzY3JpcHRpb259YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgfVxuICAgIHByb2R1Y3QuU3VwcG9ydERlc2NyaXB0aW9uICYmIGNvZGUubGluZShgICogJHtwcm9kdWN0LlN1cHBvcnREZXNjcmlwdGlvbn1gKTtcbiAgICBwcm9kdWN0LlN1cHBvcnRFbWFpbCAmJiBjb2RlLmxpbmUoYCAqIFN1cHBvcnQgRW1haWw6ICR7cHJvZHVjdC5TdXBwb3J0RW1haWx9YCk7XG4gICAgcHJvZHVjdC5TdXBwb3J0VXJsICYmIGNvZGUubGluZShgICogU3VwcG9ydCBVcmw6ICR7cHJvZHVjdC5TdXBwb3J0VXJsfWApO1xuICAgIHByb2R1Y3QuRGlzdHJpYnV0b3IgJiYgY29kZS5saW5lKGAgKiBEaXN0cmlidXRvcjogJHtwcm9kdWN0LkRpc3RyaWJ1dG9yfWApO1xuICAgIHByb2R1Y3QuT3duZXIgJiYgY29kZS5saW5lKGAgKiBPd25lcjogJHtwcm9kdWN0Lk93bmVyfWApO1xuICAgIGNvZGUubGluZSgnICovJyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb25zdHJ1Y3RDbGFzcyhjb2RlOiBqMmouQ29kZSkge1xuICAgIHRoaXMuZW1pdFByb2R1Y3REZXNjcmlwdGlvbihjb2RlKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9IGV4dGVuZHMgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1CYXNlYCk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAodGhpcy5vdXRwdXREZXNjcmlwdGlvbnNbcHJvcF0pIHtcbiAgICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgICAgY29kZS5saW5lKGAgKiAke3RoaXMub3V0cHV0RGVzY3JpcHRpb25zW3Byb3BdfWApO1xuICAgICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgfVxuICAgICAgY29kZS5saW5lKGBwdWJsaWMgcmVhZG9ubHkgJHtwcm9wfTogc3RyaW5nO2ApO1xuICAgIH1cbiAgICBjb2RlLmxpbmUoJ3ByaXZhdGUgcmVhZG9ubHkgcHJvdmlzaW9uZWRQcm9kdWN0OiBzYy5DZm5DbG91ZEZvcm1hdGlvblByb3Zpc2lvbmVkUHJvZHVjdDsnKTtcbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiBDcmVhdGUgYSBuZXcgU2VydmljZSBDYXRhbG9nIFxcYCR7dGhpcy5zYW5pdGl6ZWRUeXBlTmFtZX1cXGAgcHJvZHVjdC5gKTtcbiAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWQnKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2UnKTtcbiAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXJzKSB7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXMnKTtcbiAgICB9XG4gICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nJHt0aGlzLmhhc1BhcmFtZXRlcnMgPyAnLCBwcm9wczogJyArIHRoaXMucHJvcHNTdHJ1Y3ROYW1lIDogJyd9KWApO1xuICAgIGNvZGUubGluZSgnc3VwZXIoc2NvcGUsIGlkKTsnKTtcbiAgICBjb2RlLmxpbmUoJycpO1xuICAgIGNvZGUubGluZShcInRoaXMucHJvdmlzaW9uZWRQcm9kdWN0ID0gbmV3IHNjLkNmbkNsb3VkRm9ybWF0aW9uUHJvdmlzaW9uZWRQcm9kdWN0KHRoaXMsICdSZXNvdXJjZScsIHtcIik7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmVkUHJvZHVjdE5hbWU6IHRoaXMubm9kZS5pZCwnKTtcblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb3Zpc2lvbmluZ0FydGlmYWN0Lk5hbWUpIHtcbiAgICAgIGNvZGUubGluZShgICBwcm92aXNpb25pbmdBcnRpZmFjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHByb3Zpc2lvbmluZ0FydGlmYWN0SWQ6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuSWQhfScsYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lKSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lIX0nLGApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdElkOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuUHJvZHVjdElkIX0nLGApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSkge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhOYW1lOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhJZDogJyR7dGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5sYXVuY2hQYXRoLklkIX0nLGApO1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHByb3Zpc2lvbmluZyBwYXJhbWV0ZXJzIGZyb20gcHJvcHMgdG8gYXZvaWQgcmVkdW5kYW50IGRlZmF1bHRzXG4gICAgaWYgKHRoaXMuaGFzUGFyYW1ldGVycykge1xuICAgICAgdGhpcy5lbWl0UGFyYW1ldGVycyhjb2RlKTtcbiAgICB9XG5cbiAgICBjb2RlLmxpbmUoJ30pOycpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZSgndGhpcy5wcm92aXNpb25lZFByb2R1Y3RJZCA9IHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LnJlZjsnKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2tBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dCh0aGlzLnByb3Zpc2lvbmVkUHJvZHVjdC5sb2dpY2FsSWQsICdDbG91ZGZvcm1hdGlvblN0YWNrQXJuJykpO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLnJlY29yZElkID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQodGhpcy5wcm92aXNpb25lZFByb2R1Y3QubG9naWNhbElkLCAnUmVjb3JkSWQnKSk7XCIpO1xuICAgIHRoaXMub3V0cHV0S2V5cz8uZm9yRWFjaChvdXRwdXQgPT4ge1xuICAgICAgY29kZS5saW5lKGB0aGlzLiR7Y2FtZWwob3V0cHV0LktleSEpfSA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LmxvZ2ljYWxJZCwgJ091dHB1dHMuJHtvdXRwdXQuS2V5IX0nKSk7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAvLyBDbG9zZSBjb25zdHJ1Y3QgY2xhc3NcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxufVxuIl19
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29uc3RydWN0LWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zYy1jb25zdHJ1Y3QtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsK0JBQStDO0FBQy9DLCtDQUFpQztBQVdqQzs7R0FFRztBQUNILE1BQWEsNENBQTRDO0lBY3ZEOztPQUVHO0lBQ0gsWUFBWSxXQUFpQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLGFBQU0sRUFBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsOEJBQStCLENBQUM7UUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLDhCQUErQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENB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aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMgfSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvc2VydmljZWNhdGFsb2cnO1xuaW1wb3J0IHsgcGFzY2FsLCBjYW1lbCwgY29uc3RhbnQgfSBmcm9tICdjYXNlJztcbmltcG9ydCAqIGFzIGoyaiBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgUHJvZHVjdERhdGFBZ2dyZWdhdGUgfSBmcm9tICcuL3NlcnZpY2UtY2F0YWxvZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlbnVtIGZvciBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXIgaW5wdXRzIHRoYXQgaGF2ZSBwcmVkZWZpbmVkIGFsbG93ZWQgdmFsdWVzLlxuICovXG50eXBlIEVudW1EZWZpbml0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRWYWx1ZXM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCBpbmZvcm1hdGlvbiBvbiBwcm92aXNpb25pbmcgZGV0YWlscyBmb3IgYSBwcm9kdWN0LlxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3REYXRhQWdncmVnYXRlOiBQcm9kdWN0RGF0YUFnZ3JlZ2F0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNQYXJhbWV0ZXJzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplZFR5cGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VBdHRyaWJ1dGVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25zdHJ1Y3RDbGFzc05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc1N0cnVjdE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbnVtczogRW51bURlZmluaXRpb25bXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJzOiBQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEF0dHJpYnV0ZXM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IG91dHB1dEtleXM6IFByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0cztcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXREZXNjcmlwdGlvbnM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcHJvZHVjdERhdGEgdGhlIGFnZ3JlZ2F0ZSBkZXRhaWxzIG9uIGEgcHJvZHVjdCB3aXRoIGluZm9ybWF0aW9uIG9uIGlucHV0cyBhbmQgb3V0cHV0cyBvZiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9kdWN0RGF0YTogUHJvZHVjdERhdGFBZ2dyZWdhdGUpIHtcbiAgICB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlID0gcHJvZHVjdERhdGE7XG4gICAgdGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSA9IHBhc2NhbCh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuTmFtZSEpO1xuICAgIHRoaXMuY29uc3RydWN0Q2xhc3NOYW1lID0gajJqLlR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUodGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSk7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBqMmouVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuc2FuaXRpemVkVHlwZU5hbWU7XG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMuZW51bXMgPSBuZXcgQXJyYXk8RW51bURlZmluaXRpb24+KCk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RQYXJhbWV0ZXJzITtcbiAgICB0aGlzLmhhc1BhcmFtZXRlcnMgPSB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnBhcmFtcy5Qcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMhLmxlbmd0aCA+IDA7XG4gICAgdGhpcy5vdXRwdXRLZXlzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RPdXRwdXRLZXlzITtcbiAgICB0aGlzLm91dHB1dERlc2NyaXB0aW9ucyA9IHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucGFyYW1zLlByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0S2V5cyEucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgb2JqW2NhbWVsKGtleS5LZXkhKV0gPSBrZXkuRGVzY3JpcHRpb247XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9IGFzIHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9KTtcblxuICAgIHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgPSBuZXcgU2V0PHN0cmluZz4oWydwcm92aXNpb25lZFByb2R1Y3RJZCcsICdjbG91ZEZvcm1hdGlvblN0YWNrQXJuJywgJ3JlY29yZElkJ10pO1xuXG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMucHVzaChcbiAgICAgIC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgICAuLi50aGlzLm91dHB1dEtleXMubWFwKGtleSA9PiBjYW1lbChrZXkuS2V5ISkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0eXBlIGludG8gYSBUeXBlU2NyaXB0IGNsYXNzIGZpbGUgZGVmaW5pbmcgdGhlIHByb3BzIGFuZCB0aGUgd3JhcHBlZCBMMSBjb25zdHJ1Y3QgQVdTOjpTZXJ2aWNlQ2F0YWxvZzo6Q2xvdWRGb3JtYXRpb25Qcm92aXNpb25lZFByb2R1Y3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZW5kZXJlZCBjbGFzcyBmaWxlIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2RlID0gbmV3IGoyai5Db2RlKCk7XG4gICAgdGhpcy5lbWl0SW1wb3J0cyhjb2RlKTtcbiAgICB0aGlzLmVtaXRJbnRlcmZhY2UoY29kZSk7XG4gICAgdGhpcy5lbWl0QmFzZShjb2RlKTtcbiAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLmVtaXRQYXJhbWV0ZXJNYXAoY29kZSk7XG4gICAgICB0aGlzLmVtaXREZWZpbml0aW9uVHlwZXMoY29kZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdENvbnN0cnVjdENsYXNzKGNvZGUpO1xuICAgIHRoaXMuZW51bXMubGVuZ3RoICYmIHRoaXMuZW1pdEVudW1zKGNvZGUpO1xuICAgIHJldHVybiBjb2RlLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1wb3J0cyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnQnKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBzYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VydmljZWNhdGFsb2cnO1wiKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVyZmFjZShjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfSBleHRlbmRzIGNkay5JUmVzb3VyY2VgKTtcbiAgICB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRCYXNlKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGFic3RyYWN0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQYXJhbWV0ZXJzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmluZ1BhcmFtZXRlcnM6Jyk7XG4gICAgY29kZS5saW5lKCcgICAgT2JqZWN0LmVudHJpZXMocHJvcHMpLm1hcCgoW2ssIHZdKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgICAgICByZXR1cm4geycpO1xuICAgIGNvZGUubGluZSgnICAgICAgICBrZXk6IFBhcmFtZXRlcktleXMudmFsdWVPZihrKSBhcyBzdHJpbmcsJyk7XG4gICAgY29kZS5saW5lKCcgICAgICAgIHZhbHVlOiB2IGFzIHN0cmluZywnKTtcbiAgICBjb2RlLmxpbmUoJyAgICAgIH0nKTtcbiAgICBjb2RlLmxpbmUoJyAgICB9KSwnKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFBhcmFtZXRlck1hcChjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKCdlbnVtIFBhcmFtZXRlcktleXMnKTtcbiAgICB0aGlzLnBhcmFtZXRlcnM/LmZvckVhY2gocCA9PiB7XG4gICAgICBjb2RlLmxpbmUoYCR7Y2FtZWwocC5QYXJhbWV0ZXJLZXkhKX0gPSAnJHtwLlBhcmFtZXRlcktleX0nLGApO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUub3BlbkJsb2NrKCduYW1lc3BhY2UgUGFyYW1ldGVyS2V5cycpO1xuICAgIGNvZGUubGluZSgnY29uc3QgcmV2ZXJzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQYXJhbWV0ZXJLZXlzPigpOycpO1xuICAgIGNvZGUubGluZSgnT2JqZWN0LmtleXMoUGFyYW1ldGVyS2V5cykuZm9yRWFjaCgoczogc3RyaW5nKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgIGNvbnN0IGUgPSAoPGFueT5QYXJhbWV0ZXJLZXlzKVtzXTsnKTtcbiAgICBjb2RlLmxpbmUoJyAgcmV2ZXJzZU1hcC5zZXQocywgZSk7Jyk7XG4gICAgY29kZS5saW5lKCd9KTsnKTtcbiAgICBjb2RlLmxpbmUoJ2V4cG9ydCBmdW5jdGlvbiB2YWx1ZU9mKHN0cjogc3RyaW5nKSB7Jyk7XG4gICAgY29kZS5saW5lKCcgIHJldHVybiByZXZlcnNlTWFwLmdldChzdHIpOycpO1xuICAgIGNvZGUubGluZSgnfScpO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVmaW5pdGlvblR5cGVzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMucGFyYW1ldGVycyEuZm9yRWFjaChwYSA9PiB7XG4gICAgICBsZXQgb3B0aW9uYWwgPSAnJztcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7cGFzY2FsKHBhLlBhcmFtZXRlcktleSEpfWApO1xuICAgICAgaWYgKHBhLkRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgICAgY29kZS5saW5lKGAgKiAke3BhLkRlc2NyaXB0aW9ufWApO1xuICAgICAgfVxuICAgICAgaWYgKHBhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5Db25zdHJhaW50RGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgICBjb2RlLmxpbmUoYCAqICR7cGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkNvbnN0cmFpbnREZXNjcmlwdGlvbn1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYS5EZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgb3B0aW9uYWwgKz0gJz8nO1xuICAgICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogQGRlZmF1bHQgJHtwYS5EZWZhdWx0VmFsdWV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkFsbG93ZWRWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmVudW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHBhLlBhcmFtZXRlcktleSEsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogcGEuUGFyYW1ldGVyQ29uc3RyYWludHMuQWxsb3dlZFZhbHVlcyxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2NhbWVsKHBhLlBhcmFtZXRlcktleSEpfSR7b3B0aW9uYWx9OiAke3BhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5BbGxvd2VkVmFsdWVzPy5sZW5ndGggPyB0aGlzLmNvbnN0cnVjdENsYXNzTmFtZSArICcuJyArIHBhLlBhcmFtZXRlcktleSA6ICdzdHJpbmcnfTtgKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRW51bVZhbHVlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoTnVtYmVyKHZhbCkpIHtcbiAgICAgIHJldHVybiBjb25zdGFudChgVkFMVUVfJHt2YWx9YCk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIodmFsLmNoYXJBdCgwKSkpIHtcbiAgICAgIHJldHVybiBgJyR7Y29uc3RhbnQodmFsKX0nYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0YW50KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RW51bXMoY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IG5hbWVzcGFjZSAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMuZW51bXMuZm9yRWFjaCggZSA9PiB7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgZW51bSAke2UubmFtZX1gKTtcbiAgICAgIGUuYWxsb3dlZFZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogJHt2YWx9YCk7XG4gICAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICAgIGNvZGUubGluZShgJHt0aGlzLnJlc29sdmVFbnVtVmFsdWUodmFsKX0gPSAnJHt2YWx9JyxgKTtcbiAgICAgICAgY29kZS5saW5lKCk7XG4gICAgICB9KTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQcm9kdWN0RGVzY3JpcHRpb24oY29kZTogajJqLkNvZGUpIHtcbiAgICBjb25zdCBwcm9kdWN0ID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wcm9kdWN0O1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiAke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGlmIChwcm9kdWN0LlNob3J0RGVzY3JpcHRpb24pIHtcbiAgICAgIGNvZGUubGluZShgICogJHtwcm9kdWN0LlNob3J0RGVzY3JpcHRpb259YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgfVxuICAgIHByb2R1Y3QuU3VwcG9ydERlc2NyaXB0aW9uICYmIGNvZGUubGluZShgICogJHtwcm9kdWN0LlN1cHBvcnREZXNjcmlwdGlvbn1gKTtcbiAgICBwcm9kdWN0LlN1cHBvcnRFbWFpbCAmJiBjb2RlLmxpbmUoYCAqIFN1cHBvcnQgRW1haWw6ICR7cHJvZHVjdC5TdXBwb3J0RW1haWx9YCk7XG4gICAgcHJvZHVjdC5TdXBwb3J0VXJsICYmIGNvZGUubGluZShgICogU3VwcG9ydCBVcmw6ICR7cHJvZHVjdC5TdXBwb3J0VXJsfWApO1xuICAgIHByb2R1Y3QuRGlzdHJpYnV0b3IgJiYgY29kZS5saW5lKGAgKiBEaXN0cmlidXRvcjogJHtwcm9kdWN0LkRpc3RyaWJ1dG9yfWApO1xuICAgIHByb2R1Y3QuT3duZXIgJiYgY29kZS5saW5lKGAgKiBPd25lcjogJHtwcm9kdWN0Lk93bmVyfWApO1xuICAgIGNvZGUubGluZSgnICovJyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTeW50aGVzaXplclZhbGlkYXRpb24oY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoJ2NvbnN0IHN5bnRoZXNpemVyOiBjZGsuSVN0YWNrU3ludGhlc2l6ZXIgPSBjZGsuU3RhY2sub2YodGhpcykuc3ludGhlc2l6ZXI7Jyk7XG4gICAgY29kZS5saW5lKCdjb25zdCBzdXBwb3J0ZWRTeW50aGVzaXplcnMgPSBbY2RrLkNsaUNyZWRlbnRpYWxzU3RhY2tTeW50aGVzaXplciwgY2RrLkxlZ2FjeVN0YWNrU3ludGhlc2l6ZXIsIGNkay5Cb290c3RyYXBsZXNzU3ludGhlc2l6ZXJdOycpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZSgnaWYgKCFzdXBwb3J0ZWRTeW50aGVzaXplcnMuc29tZShzdXBwb3J0ZWRTeW50aGVzaXplciA9PiBzeW50aGVzaXplciBpbnN0YW5jZW9mIHN1cHBvcnRlZFN5bnRoZXNpemVyKSkgeycpO1xuICAgIGNvZGUubGluZSgnICB0aHJvdyBFcnJvcihgJHtzeW50aGVzaXplci5jb25zdHJ1Y3Rvci5uYW1lfSBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgdXNlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHN5bnRoZXNpemVyczogJHtzdXBwb3J0ZWRTeW50aGVzaXplcnMubWFwKHN5bnRoID0+IHN5bnRoLm5hbWUpfWApOycpO1xuICAgIGNvZGUubGluZSgnfScpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29uc3RydWN0Q2xhc3MoY29kZTogajJqLkNvZGUpIHtcbiAgICB0aGlzLmVtaXRQcm9kdWN0RGVzY3JpcHRpb24oY29kZSk7XG4gICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfSBleHRlbmRzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9QmFzZWApO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnJlc291cmNlQXR0cmlidXRlcykge1xuICAgICAgaWYgKHRoaXMub3V0cHV0RGVzY3JpcHRpb25zW3Byb3BdKSB7XG4gICAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogJHt0aGlzLm91dHB1dERlc2NyaXB0aW9uc1twcm9wXX1gKTtcbiAgICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIH1cbiAgICAgIGNvZGUubGluZShgcHVibGljIHJlYWRvbmx5ICR7cHJvcH06IHN0cmluZztgKTtcbiAgICB9XG4gICAgY29kZS5saW5lKCdwcml2YXRlIHJlYWRvbmx5IHByb3Zpc2lvbmVkUHJvZHVjdDogc2MuQ2ZuQ2xvdWRGb3JtYXRpb25Qcm92aXNpb25lZFByb2R1Y3Q7Jyk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZShgICogQ3JlYXRlIGEgbmV3IFNlcnZpY2UgQ2F0YWxvZyBcXGAke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9XFxgIHByb2R1Y3QuYCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlJyk7XG4gICAgaWYgKHRoaXMuaGFzUGFyYW1ldGVycykge1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzJyk7XG4gICAgfVxuICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgY29kZS5vcGVuQmxvY2soYGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZyR7dGhpcy5oYXNQYXJhbWV0ZXJzID8gJywgcHJvcHM6ICcgKyB0aGlzLnByb3BzU3RydWN0TmFtZSA6ICcnfSlgKTtcbiAgICBjb2RlLmxpbmUoJ3N1cGVyKHNjb3BlLCBpZCk7Jyk7XG4gICAgY29kZS5saW5lKCk7XG4gICAgdGhpcy5lbWl0U3ludGhlc2l6ZXJWYWxpZGF0aW9uKGNvZGUpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZShcInRoaXMucHJvdmlzaW9uZWRQcm9kdWN0ID0gbmV3IHNjLkNmbkNsb3VkRm9ybWF0aW9uUHJvdmlzaW9uZWRQcm9kdWN0KHRoaXMsICdSZXNvdXJjZScsIHtcIik7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmVkUHJvZHVjdE5hbWU6IHRoaXMubm9kZS5pZCwnKTtcblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb3Zpc2lvbmluZ0FydGlmYWN0Lk5hbWUpIHtcbiAgICAgIGNvZGUubGluZShgICBwcm92aXNpb25pbmdBcnRpZmFjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHByb3Zpc2lvbmluZ0FydGlmYWN0SWQ6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuSWQhfScsYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lKSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lIX0nLGApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdElkOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuUHJvZHVjdElkIX0nLGApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSkge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhOYW1lOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhJZDogJyR7dGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5sYXVuY2hQYXRoLklkIX0nLGApO1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHByb3Zpc2lvbmluZyBwYXJhbWV0ZXJzIGZyb20gcHJvcHMgdG8gYXZvaWQgcmVkdW5kYW50IGRlZmF1bHRzXG4gICAgaWYgKHRoaXMuaGFzUGFyYW1ldGVycykge1xuICAgICAgdGhpcy5lbWl0UGFyYW1ldGVycyhjb2RlKTtcbiAgICB9XG5cbiAgICBjb2RlLmxpbmUoJ30pOycpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZSgndGhpcy5wcm92aXNpb25lZFByb2R1Y3RJZCA9IHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LnJlZjsnKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2tBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dCh0aGlzLnByb3Zpc2lvbmVkUHJvZHVjdC5sb2dpY2FsSWQsICdDbG91ZGZvcm1hdGlvblN0YWNrQXJuJykpO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLnJlY29yZElkID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQodGhpcy5wcm92aXNpb25lZFByb2R1Y3QubG9naWNhbElkLCAnUmVjb3JkSWQnKSk7XCIpO1xuICAgIHRoaXMub3V0cHV0S2V5cz8uZm9yRWFjaChvdXRwdXQgPT4ge1xuICAgICAgY29kZS5saW5lKGB0aGlzLiR7Y2FtZWwob3V0cHV0LktleSEpfSA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LmxvZ2ljYWxJZCwgJ091dHB1dHMuJHtvdXRwdXQuS2V5IX0nKSk7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAvLyBDbG9zZSBjb25zdHJ1Y3QgY2xhc3NcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -40,17 +40,17 @@
40
40
  "jest-junit": "^13",
41
41
  "json-schema": "^0.4.0",
42
42
  "npm-check-updates": "^12",
43
- "projen": "^0.54.57",
43
+ "projen": "^0.55.3",
44
44
  "standard-version": "^9",
45
45
  "ts-jest": "^27",
46
46
  "ts-node": "^10.7.0",
47
47
  "typescript": "^4.6.4"
48
48
  },
49
49
  "dependencies": {
50
- "aws-sdk": "^2.1125.0",
50
+ "aws-sdk": "^2.1127.0",
51
51
  "case": "^1.6.3",
52
52
  "jsii-srcmak": "^0.1.548",
53
- "json2jsii": "^0.2.206",
53
+ "json2jsii": "^0.3.1",
54
54
  "minimist": "^1.2.6",
55
55
  "proxy-agent": "^5.0.0"
56
56
  },
@@ -59,7 +59,7 @@
59
59
  },
60
60
  "main": "lib/index.js",
61
61
  "license": "Apache-2.0",
62
- "version": "0.2.159",
62
+ "version": "0.2.162",
63
63
  "jest": {
64
64
  "testMatch": [
65
65
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",