@aws-cdk/aws-s3tables-alpha 2.246.0-alpha.0 → 2.248.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/table.js CHANGED
@@ -41,6 +41,7 @@ const os_1 = require("os");
41
41
  const iam = require("aws-cdk-lib/aws-iam");
42
42
  const aws_s3tables_1 = require("aws-cdk-lib/aws-s3tables");
43
43
  const core_1 = require("aws-cdk-lib/core");
44
+ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
44
45
  const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
45
46
  const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
46
47
  const perms = require("./permissions");
@@ -122,7 +123,7 @@ var Status;
122
123
  * Iceberg transform values for partition and sort fields.
123
124
  */
124
125
  class IcebergTransform {
125
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.IcebergTransform", version: "2.246.0-alpha.0" };
126
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.IcebergTransform", version: "2.248.0-alpha.0" };
126
127
  /**
127
128
  * Use the column value as the transform value without transformation.
128
129
  */
@@ -150,7 +151,7 @@ class IcebergTransform {
150
151
  */
151
152
  static bucket(n) {
152
153
  if (n <= 0 || !Number.isInteger(n)) {
153
- throw new core_1.UnscopedValidationError('InvalidBucketCount', 'Bucket count must be a positive integer.');
154
+ throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidBucketCount`, 'Bucket count must be a positive integer.');
154
155
  }
155
156
  return new IcebergTransform(`bucket[${n}]`);
156
157
  }
@@ -161,7 +162,7 @@ class IcebergTransform {
161
162
  */
162
163
  static truncate(width) {
163
164
  if (width <= 0 || !Number.isInteger(width)) {
164
- throw new core_1.UnscopedValidationError('InvalidTruncateWidth', 'Truncate width must be a positive integer.');
165
+ throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidTruncateWidth`, 'Truncate width must be a positive integer.');
165
166
  }
166
167
  return new IcebergTransform(`truncate[${width}]`);
167
168
  }
@@ -233,7 +234,7 @@ let Table = (() => {
233
234
  Table = _classThis = _classDescriptor.value;
234
235
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
235
236
  }
236
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Table", version: "2.246.0-alpha.0" };
237
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Table", version: "2.248.0-alpha.0" };
237
238
  /** Uniquely identifies this class. */
238
239
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Table';
239
240
  /**
@@ -303,7 +304,7 @@ let Table = (() => {
303
304
  errors.push(`Table name must end with a lowercase letter or number (offset: ${tableName.length - 1})`);
304
305
  }
305
306
  if (errors.length > 0) {
306
- throw new core_1.UnscopedValidationError('InvalidTableName', `Invalid S3 table name (value: ${tableName})${os_1.EOL}${errors.join(os_1.EOL)}`);
307
+ throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidTableName`, `Invalid S3 table name (value: ${tableName})${os_1.EOL}${errors.join(os_1.EOL)}`);
307
308
  }
308
309
  }
309
310
  /**
@@ -346,7 +347,7 @@ let Table = (() => {
346
347
  // Enhanced CDK Analytics Telemetry
347
348
  (0, metadata_resource_1.addConstructMetadata)(this, props);
348
349
  if (props.withoutMetadata && props.icebergMetadata) {
349
- throw new core_1.UnscopedValidationError('MutuallyExclusiveProps', "TableProps: 'withoutMetadata' and 'icebergMetadata' are mutually exclusive. Specify only one.");
350
+ throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `MutuallyExclusiveProps`, "TableProps: 'withoutMetadata' and 'icebergMetadata' are mutually exclusive. Specify only one.");
350
351
  }
351
352
  Table.validateTableName(props.tableName);
352
353
  this._resource = new aws_s3tables_1.CfnTable(this, id, {
@@ -434,7 +435,7 @@ let Table = (() => {
434
435
  const keys = tableProperties.map(entry => entry.key);
435
436
  const duplicateKeys = keys.filter((key, index) => keys.indexOf(key) !== index);
436
437
  if (duplicateKeys.length > 0) {
437
- throw new core_1.UnscopedValidationError('DuplicateTablePropertyKey', `Duplicate table property keys are not allowed: ${[...new Set(duplicateKeys)].join(', ')}`);
438
+ throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `DuplicateTablePropertyKey`, `Duplicate table property keys are not allowed: ${[...new Set(duplicateKeys)].join(', ')}`);
438
439
  }
439
440
  return tableProperties.reduce((acc, entry) => ({
440
441
  ...acc,
@@ -448,4 +449,4 @@ let Table = (() => {
448
449
  return Table = _classThis;
449
450
  })();
450
451
  exports.Table = Table;
451
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBeUI7QUFDekIsMkNBQTJDO0FBQzNDLDJEQUFvRTtBQU9wRSwyQ0FJMEI7QUFDMUIsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUcxRSx1Q0FBdUM7QUFtRnZDOztHQUVHO0FBQ0gsTUFBZSxTQUFVLFNBQVEsZUFBUTtJQWtCaEMsbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSw2QkFBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsY0FBYyxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7YUFDM0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEUsQ0FBQztRQUVELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDbEM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxRQUF3QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsUUFBUSxFQUNSLEtBQUssQ0FBQyxpQkFBaUIsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxR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QyxDQUFDO1lBQy9FLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLDhCQUF1QixDQUMvQiwyQkFBMkIsRUFDM0Isa0RBQWtELENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMzRixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLEdBQUcsR0FBRztnQkFDTixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSzthQUN6QixDQUFDLEVBQ0YsRUFBNEIsQ0FDN0IsQ0FBQztTQUNIOztZQXRQVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblRhYmxlLCBDZm5UYWJsZVBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElSZXNvdXJjZSxcbiAgSVRhZ2dhYmxlVjIsXG4gIFJlbW92YWxQb2xpY3ksXG4gIFRhZ01hbmFnZXIsXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuICBUb2tlbixcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJTmFtZXNwYWNlIH0gZnJvbSAnLi9uYW1lc3BhY2UnO1xuaW1wb3J0ICogYXMgcGVybXMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBTMyBUYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGFibGUgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIHRhYmxlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gY29udGFpbmluZyB0aGlzIHRhYmxlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZWAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlLFxuICAgKiBpdCdzIG5vdCBwb3NzaWJsZSB0byB0ZWxsIHdoZXRoZXIgdGhlIHRhYmxlIGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIHRhYmxlJ3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgZm9yIHRoaXMgdGFibGUgdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgdGhlIHBhcmVudCBUYWJsZUJ1Y2tldCBvZiB0aGlzIHRhYmxlIGhhcyBlbmNyeXB0aW9uLFxuICAgKiB5b3Ugc2hvdWxkIGdyYW50IGttczpEZWNyeXB0IHBlcm1pc3Npb24gdG8gdXNlIHRoaXMga2V5IHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWwgdG8gYWxsb3cgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgd3JpdGUgcGVybWlzc2lvbnMgZm9yIHRoaXMgdGFibGUgdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgdGhlIHBhcmVudCBUYWJsZUJ1Y2tldCBvZiB0aGlzIHRhYmxlIGhhcyBlbmNyeXB0aW9uLFxuICAgKiB5b3Ugc2hvdWxkIGdyYW50IGttczpHZW5lcmF0ZURhdGFLZXkgYW5kIGttczpEZWNyeXB0IHBlcm1pc3Npb25cbiAgICogdG8gdXNlIHRoaXMga2V5IHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWwgdG8gYWxsb3cgd3JpdGUgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIGdyYW50V3JpdGUoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkdlbmVyYXRlRGF0YUtleSBhbmQga21zOkRlY3J5cHQgcGVybWlzc2lvblxuICAgKiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRSZWFkV3JpdGUoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFRhYmxlIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgVGFibGVCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVGFibGUge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YWJsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlLlxuICAgKlxuICAgKiBJZiBgYXV0b0NyZWF0ZVBvbGljeWAgaXMgdHJ1ZSwgYSBgVGFibGVQb2xpY3lgIHdpbGwgYmUgY3JlYXRlZCB1cG9uIHRoZVxuICAgKiBmaXJzdCBjYWxsIHRvIGFkZFRvUmVzb3VyY2VQb2xpY3kocykuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgdGFibGVQb2xpY3k/OiBDZm5UYWJsZVBvbGljeTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgdGFibGUgcmVzb3VyY2UgcG9saWN5IHNob3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgdXBvblxuICAgKiB0aGUgZmlyc3QgY2FsbCB0byBgYWRkVG9SZXNvdXJjZVBvbGljeWAuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbjtcblxuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICBpZiAoIXRoaXMudGFibGVQb2xpY3kgJiYgdGhpcy5hdXRvQ3JlYXRlUG9saWN5KSB7XG4gICAgICB0aGlzLnRhYmxlUG9saWN5ID0gbmV3IENmblRhYmxlUG9saWN5KHRoaXMsICdEZWZhdWx0UG9saWN5Jywge1xuICAgICAgICB0YWJsZUFybjogdGhpcy50YWJsZUFybixcbiAgICAgICAgcmVzb3VyY2VQb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe30pLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFibGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVQb2xpY3kucmVzb3VyY2VQb2xpY3kuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMudGFibGVQb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX1JFQURfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUFybixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50V3JpdGUoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVBcm4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBnaXZlbiBzM3RhYmxlcyBwZXJtaXNzaW9ucyB0byB0aGUgcHJvdmlkZWQgcHJpbmNpcGFsXG4gICAqIEByZXR1cm5zIEdyYW50IG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBncmFudChcbiAgICBncmFudGVlOiBpYW0uSUdyYW50YWJsZSxcbiAgICB0YWJsZUFjdGlvbnM6IHN0cmluZ1tdLFxuICAgIHJlc291cmNlQXJuOiBzdHJpbmcsXG4gICAgLi4ub3RoZXJSZXNvdXJjZUFybnM6IChzdHJpbmcgfCB1bmRlZmluZWQpW10pIHtcbiAgICBjb25zdCByZXNvdXJjZXMgPSBbcmVzb3VyY2VBcm4sIC4uLm90aGVyUmVzb3VyY2VBcm5zXS5maWx0ZXIoYXJuID0+IGFybiAhPSB1bmRlZmluZWQpO1xuXG4gICAgY29uc3QgZ3JhbnQgPSBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWxPclJlc291cmNlKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiB0YWJsZUFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IHJlc291cmNlcyxcbiAgICAgIHJlc291cmNlOiB0aGlzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyYW50O1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBuZXcgUzMgVGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgdGFibGUsIHVuaXF1ZSB3aXRoaW4gdGhlIG5hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIHVuZGVyIHdoaWNoIHRoaXMgdGFibGUgaXMgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlOiBJTmFtZXNwYWNlO1xuICAvKipcbiAgICogRm9ybWF0IG9mIHRoaXMgdGFibGUuIEN1cnJlbnRseSwgdGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlIGlzIE9wZW5UYWJsZUZvcm1hdC5JQ0VCRVJHLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlblRhYmxlRm9ybWF0OiBPcGVuVGFibGVGb3JtYXQ7XG4gIC8qKlxuICAgKiBTZXR0aW5ncyBnb3Zlcm5pbmcgdGhlIENvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKiBAZGVmYXVsdCBBbWF6b24gUzMgc2VsZWN0cyB0aGUgYmVzdCBjb21wYWN0aW9uIHN0cmF0ZWd5IGJhc2VkIG9uIHlvdXIgdGFibGUgc29ydCBvcmRlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMtbWFpbnRlbmFuY2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFjdGlvbj86IENvbXBhY3Rpb25Qcm9wZXJ0eTtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIG1ldGFkYXRhIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICAgKiBAZGVmYXVsdCB0YWJsZSBpcyBjcmVhdGVkIHdpdGhvdXQgYW55IG1ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnTWV0YWRhdGE/OiBJY2ViZXJnTWV0YWRhdGFQcm9wZXJ0eTtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNuYXBzaG90IG1hbmFnZW1lbnQgc2V0dGluZ3MgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqIEBkZWZhdWx0IGVuYWJsZWQ6IE1pbmltdW1TbmFwc2hvdHMgaXMgMSBieSBkZWZhdWx0IGFuZCBNYXhpbXVtU25hcHNob3RBZ2UgaXMgMTIwIGhvdXJzIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdE1hbmFnZW1lbnQ/OiBTbmFwc2hvdE1hbmFnZW1lbnRQcm9wZXJ0eTtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoYXQgaGFwcGVucyB0byB0aGlzIHRhYmxlIGl0IGl0IHN0b3BlZCBiZWluZyBtYW5hZ2VkIGJ5IGNsb3VkZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSRVRBSU5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuICAvKipcbiAgICogSWYgdHJ1ZSwgaW5kaWNhdGVzIHRoYXQgeW91IGRvbid0IHdhbnQgdG8gc3BlY2lmeSBhIHNjaGVtYSBmb3IgdGhlIHRhYmxlLlxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB0byAnSWNlYmVyZ01ldGFkYXRhJy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHdpdGhvdXRNZXRhZGF0YT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIG9wZW4gdGFibGUgZm9ybWF0cy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlblRhYmxlRm9ybWF0IHtcbiAgLyoqXG4gICAqIEFwYWNoZSBJY2ViZXJnIHRhYmxlIGZvcm1hdC5cbiAgICovXG4gIElDRUJFUkcgPSAnSUNFQkVSRycsXG59XG5cbi8qKlxuICogU2V0dGluZ3MgZ292ZXJuaW5nIHRoZSBDb21wYWN0aW9uIG1haW50ZW5hbmNlIGFjdGlvbi5cbiAqXG4gKiBAZGVmYXVsdCAtIE5vIGNvbXBhY3Rpb24gc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wYWN0aW9uUHJvcGVydHkge1xuICAvKipcbiAgICogU3RhdHVzIG9mIHRoZSBjb21wYWN0aW9uIG1haW50ZW5hbmNlIGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1czogU3RhdHVzO1xuICAvKipcbiAgICogVGFyZ2V0IGZpbGUgc2l6ZSBpbiBtZWdhYnl0ZXMgZm9yIGNvbXBhY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRGaWxlU2l6ZU1iOiBudW1iZXI7XG59XG5cbi8qKlxuICogU3RhdHVzIHZhbHVlcyBmb3IgbWFpbnRlbmFuY2UgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdlbmFibGVkJyxcbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIG1haW50ZW5hbmNlIGFjdGlvbi5cbiAgICovXG4gIERJU0FCTEVEID0gJ2Rpc2FibGVkJyxcbn1cblxuLyoqXG4gKiBJY2ViZXJnIHRyYW5zZm9ybSB2YWx1ZXMgZm9yIHBhcnRpdGlvbiBhbmQgc29ydCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBJY2ViZXJnVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIFVzZSB0aGUgY29sdW1uIHZhbHVlIGFzIHRoZSB0cmFuc2Zvcm0gdmFsdWUgd2l0aG91dCB0cmFuc2Zvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSURFTlRJVFkgPSBuZXcgSWNlYmVyZ1RyYW5zZm9ybSgnaWRlbnRpdHknKTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgdGltZXN0YW1wL2RhdGUgZmllbGQgdG8geWVhci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWUVBUiA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCd5ZWFyJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIHRpbWVzdGFtcC9kYXRlIGZpZWxkIHRvIG1vbnRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNT05USCA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdtb250aCcpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAvZGF0ZSBmaWVsZCB0byBkYXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERBWSA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdkYXknKTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgdGltZXN0YW1wIGZpZWxkIHRvIGhvdXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhPVVIgPSBuZXcgSWNlYmVyZ1RyYW5zZm9ybSgnaG91cicpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdmFsdWVzIGludG8gYSBmaXhlZCBudW1iZXIgb2YgYnVja2V0cy5cbiAgICpcbiAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBidWNrZXRzIChtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcilcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYnVja2V0KG46IG51bWJlcik6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIGlmIChuIDw9IDAgfHwgIU51bWJlci5pc0ludGVnZXIobikpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWRCdWNrZXRDb3VudCcsXG4gICAgICAgICdCdWNrZXQgY291bnQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybShgYnVja2V0WyR7bn1dYCk7XG4gIH1cblxuICAvKipcbiAgICogVHJ1bmNhdGUgdmFsdWVzIHRvIGEgZml4ZWQgd2lkdGguXG4gICAqXG4gICAqIEBwYXJhbSB3aWR0aCBUaGUgdHJ1bmNhdGlvbiB3aWR0aCAobXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlKHdpZHRoOiBudW1iZXIpOiBJY2ViZXJnVHJhbnNmb3JtIHtcbiAgICBpZiAod2lkdGggPD0gMCB8fCAhTnVtYmVyLmlzSW50ZWdlcih3aWR0aCkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWRUcnVuY2F0ZVdpZHRoJyxcbiAgICAgICAgJ1RydW5jYXRlIHdpZHRoIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLicsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEljZWJlcmdUcmFuc2Zvcm0oYHRydW5jYXRlWyR7d2lkdGh9XWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGN1c3RvbSB0cmFuc2Zvcm0gZnJvbSBhIHN0cmluZyB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB0cmFuc2Zvcm0gc3RyaW5nIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBJY2ViZXJnVHJhbnNmb3JtIHtcbiAgICByZXR1cm4gbmV3IEljZWJlcmdUcmFuc2Zvcm0odmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIHRyYW5zZm9ybS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRyYW5zZm9ybS5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogU29ydCBkaXJlY3Rpb24gdmFsdWVzIGZvciBJY2ViZXJnIHNvcnQgZmllbGRzLlxuICovXG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcbiAgLyoqXG4gICAqIFNvcnQgdmFsdWVzIGluIGFzY2VuZGluZyBvcmRlci5cbiAgICovXG4gIEFTQyA9ICdhc2MnLFxuICAvKipcbiAgICogU29ydCB2YWx1ZXMgaW4gZGVzY2VuZGluZyBvcmRlci5cbiAgICovXG4gIERFU0MgPSAnZGVzYycsXG59XG5cbi8qKlxuICogTnVsbCBvcmRlcmluZyB2YWx1ZXMgZm9yIEljZWJlcmcgc29ydCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBlbnVtIE51bGxPcmRlciB7XG4gIC8qKlxuICAgKiBQbGFjZSBudWxsIHZhbHVlcyBiZWZvcmUgbm9uLW51bGwgdmFsdWVzLlxuICAgKi9cbiAgTlVMTFNfRklSU1QgPSAnbnVsbHMtZmlyc3QnLFxuICAvKipcbiAgICogUGxhY2UgbnVsbCB2YWx1ZXMgYWZ0ZXIgbm9uLW51bGwgdmFsdWVzLlxuICAgKi9cbiAgTlVMTFNfTEFTVCA9ICdudWxscy1sYXN0Jyxcbn1cblxuLyoqXG4gKiBQYXJ0aXRpb24gZmllbGQgZGVmaW5pdGlvbiBmb3IgSWNlYmVyZyB0YWJsZS5cbiAqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIHBhcnRpdGlvbiBjb2x1bW4uIE11bHRpcGxlIHBhcnRpdGlvbiBmaWVsZHMgY2FuIGJlIGNvbWJpbmVkXG4gKiBpbiBhbiBJY2ViZXJnUGFydGl0aW9uU3BlYyB0byBjcmVhdGUgbXVsdGktbGV2ZWwgcGFydGl0aW9uaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljZWJlcmdQYXJ0aXRpb25GaWVsZCB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpZWxkIElEIGZyb20gdGhlIHNjaGVtYS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUlkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gdHJhbnNmb3JtIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBVc2UgYEljZWJlcmdUcmFuc2Zvcm1gIHN0YXRpYyBwcm9wZXJ0aWVzIGZvciBjb21tb24gdHJhbnNmb3JtcyAoZS5nLiwgYEljZWJlcmdUcmFuc2Zvcm0uSURFTlRJVFlgKVxuICAgKiBvciBtZXRob2RzIGZvciBwYXJhbWV0ZXJpemVkIHRyYW5zZm9ybXMgKGUuZy4sIGBJY2ViZXJnVHJhbnNmb3JtLmJ1Y2tldCgxNilgKS5cbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZm9ybTogSWNlYmVyZ1RyYW5zZm9ybTtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXJ0aXRpb24gZmllbGQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBhcnRpdGlvbiBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvLWFzc2lnbmVkIHN0YXJ0aW5nIGZyb20gMTAwMFxuICAgKi9cbiAgcmVhZG9ubHkgZmllbGRJZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJ0aXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgSWNlYmVyZyB0YWJsZS5cbiAqXG4gKiBDb250YWlucyB0aGUgY29tcGxldGUgcGFydGl0aW9uaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGEgdGFibGUsIGluY2x1ZGluZyBhbGwgcGFydGl0aW9uIGZpZWxkcy5cbiAqIFVzZSB0aGlzIHRvIGRlZmluZSBtdWx0aS1sZXZlbCBwYXJ0aXRpb25pbmcgKGUuZy4sIHBhcnRpdGlvbiBieSBkYXRlLCB0aGVuIGJ5IHJlZ2lvbikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1BhcnRpdGlvblNwZWMge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgcGFydGl0aW9uIGZpZWxkcy5cbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkczogSWNlYmVyZ1BhcnRpdGlvbkZpZWxkW107XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBhcnRpdGlvbiBzcGVjaWZpY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBzcGVjSWQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogU29ydCBmaWVsZCBkZWZpbml0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljZWJlcmdTb3J0RmllbGQge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWVsZCBJRCBmcm9tIHRoZSBzY2hlbWEuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc29ydCB0cmFuc2Zvcm0gZnVuY3Rpb24uXG4gICAqXG4gICAqIFVzZSBgSWNlYmVyZ1RyYW5zZm9ybWAgc3RhdGljIHByb3BlcnRpZXMgZm9yIGNvbW1vbiB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5JREVOVElUWWApXG4gICAqIG9yIG1ldGhvZHMgZm9yIHBhcmFtZXRlcml6ZWQgdHJhbnNmb3JtcyAoZS5nLiwgYEljZWJlcmdUcmFuc2Zvcm0uYnVja2V0KDE2KWApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtOiBJY2ViZXJnVHJhbnNmb3JtO1xuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBkaXJlY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudWxsIG9yZGVyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVsbE9yZGVyOiBOdWxsT3JkZXI7XG59XG5cbi8qKlxuICogU29ydCBvcmRlciBzcGVjaWZpY2F0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljZWJlcmdTb3J0T3JkZXIge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc29ydCBmaWVsZHMuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM6IEljZWJlcmdTb3J0RmllbGRbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc29ydCBvcmRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgb3JkZXJJZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSB0YWJsZSBwcm9wZXJ0eSBrZXktdmFsdWUgcGFpciBmb3IgSWNlYmVyZyB0YWJsZSBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUHJvcGVydHlFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydHkga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgbWV0YWRhdGEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ01ldGFkYXRhUHJvcGVydHkge1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc2NoZW1hIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS5odG1sI2Nmbi1zM3RhYmxlcy10YWJsZS1pY2ViZXJnbWV0YWRhdGEtaWNlYmVyZ3NjaGVtYVxuICAgKi9cbiAgcmVhZG9ubHkgaWNlYmVyZ1NjaGVtYTogSWNlYmVyZ1NjaGVtYVByb3BlcnR5O1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydGl0aW9uIHNwZWNpZmljYXRpb24gZm9yIHRoZSBJY2ViZXJnIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHBhcnRpdGlvbiBzcGVjaWZpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnUGFydGl0aW9uU3BlYz86IEljZWJlcmdQYXJ0aXRpb25TcGVjO1xuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBvcmRlciBmb3IgdGhlIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc29ydCBvcmRlclxuICAgKi9cbiAgcmVhZG9ubHkgaWNlYmVyZ1NvcnRPcmRlcj86IEljZWJlcmdTb3J0T3JkZXI7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBwcm9wZXJ0aWVzIGZvciB0aGUgSWNlYmVyZyB0YWJsZS5cbiAgICogRWFjaCBlbnRyeSByZXByZXNlbnRzIGEga2V5LXZhbHVlIHBhaXIgZm9yIEljZWJlcmcgdGFibGUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVQcm9wZXJ0aWVzPzogVGFibGVQcm9wZXJ0eUVudHJ5W107XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc2NoZW1hIGZvciBhbiBJY2ViZXJnIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljZWJlcmdTY2hlbWFQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBzY2hlbWFGaWVsZExpc3Q6IFNjaGVtYUZpZWxkUHJvcGVydHlbXTtcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IGEgc2NoZW1hIGZpZWxkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYUZpZWxkUHJvcGVydHkge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXV0by1hc3NpZ25lZCBieSBTMyBUYWJsZXNcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmllbGQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB2YWx1ZSB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIHZhbHVlcyBhcmUgcmVxdWlyZWQgZm9yIGVhY2ggcm93IGluIHRoaXMgZmllbGQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaXMgYGZhbHNlYCBhbmQgbnVsbCB2YWx1ZXMgYXJlIGFsbG93ZWQgaW4gdGhlIGZpZWxkLiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIGZpZWxkIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdHlwZS5cbiAgICpcbiAgICogUzMgVGFibGVzIHN1cHBvcnRzIGFsbCBBcGFjaGUgSWNlYmVyZyBwcmltaXRpdmUgdHlwZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIFtBcGFjaGUgSWNlYmVyZyBkb2N1bWVudGF0aW9uXShodHRwczovL2ljZWJlcmcuYXBhY2hlLm9yZy9zcGVjLyNwcmltaXRpdmUtdHlwZXMpLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNuYXBzaG90IG1hbmFnZW1lbnQgc2V0dGluZ3MgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKlxuICogQSBzbmFwc2hvdCBpcyBleHBpcmVkIHdoZW4gaXQgZXhjZWVkcyBNaW5TbmFwc2hvdHNUb0tlZXAgYW5kIE1heFNuYXBzaG90QWdlSG91cnMuXG4gKlxuICogQGRlZmF1bHQgLSBObyBzbmFwc2hvdCBtYW5hZ2VtZW50IHNldHRpbmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU25hcHNob3RNYW5hZ2VtZW50UHJvcGVydHkge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gYWdlIG9mIGEgc25hcHNob3QgYmVmb3JlIGl0IGNhbiBiZSBleHBpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1heGltdW0gYWdlXG4gICAqL1xuICByZWFkb25seSBtYXhTbmFwc2hvdEFnZUhvdXJzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2Ygc25hcHNob3RzIHRvIGtlZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWluaW11bSBudW1iZXJcbiAgICovXG4gIHJlYWRvbmx5IG1pblNuYXBzaG90c1RvS2VlcD86IG51bWJlcjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIFNuYXBzaG90TWFuYWdlbWVudCBtYWludGVuYW5jZSBhY3Rpb24gaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3Qgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBTdGF0dXM7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSB0YWJsZSBvdXRzaWRlIHRoaXMgc3RhY2tcbiAqXG4gKiBUaGUgdGFibGVOYW1lLCByZWdpb24sIGFuZCBhY2NvdW50IGNhbiBiZSBwcm92aWRlZCBleHBsaWNpdGx5XG4gKiBvciB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIHRhYmxlQXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSdzIEFSTi5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gUzMgVGFibGUgd2l0aCBoZWxwZXJzLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgVGFibGUgZXh0ZW5kcyBUYWJsZUJhc2UgaW1wbGVtZW50cyBJVGFnZ2FibGVWMiB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLXMzdGFibGVzLWFscGhhLlRhYmxlJztcblxuICAvKipcbiAgICogRGVmaW5lcyBhIFRhYmxlIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgdGFibGUuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWUuXG4gICAqIEBwYXJhbSBhdHRycyBBIGBUYWJsZUF0dHJpYnV0ZXNgIG9iamVjdCBjb250YWluaW5nIHRoZSB0YWJsZSBuYW1lIGFuZCBBUk4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UYWJsZUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBUYWJsZUF0dHJpYnV0ZXMsXG4gICk6IElUYWJsZSB7XG4gICAgY29uc3QgdGFibGVBcm4gPSBhdHRycy50YWJsZUFybjtcbiAgICBUYWJsZS52YWxpZGF0ZVRhYmxlTmFtZShhdHRycy50YWJsZU5hbWUpO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgVGFibGVCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWUgPSBhdHRycy50YWJsZU5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm4gPSB0YWJsZUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZVBvbGljeT86IENmblRhYmxlUG9saWN5O1xuICAgICAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgICAgLyoqXG4gICAgICAgKiBFeHBvcnRzIHRoaXMgIGZyb20gdGhlIHN0YWNrLlxuICAgICAgICovXG4gICAgICBwdWJsaWMgZXhwb3J0KCkge1xuICAgICAgICByZXR1cm4gYXR0cnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IHRhYmxlQXJuLFxuICAgICAgcGh5c2ljYWxOYW1lOiB0YWJsZUFybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWxcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBOYW1lIG9mIHRoZSB0YWJsZVxuICAgKiBAdGhyb3dzIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIGlmIGFueSBuYW1pbmcgZXJyb3JzIGFyZSBkZXRlY3RlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZVRhYmxlTmFtZSh0YWJsZU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0YWJsZU5hbWUgPT0gdW5kZWZpbmVkIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh0YWJsZU5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmICh0YWJsZU5hbWUubGVuZ3RoIDwgMSB8fCB0YWJsZU5hbWUubGVuZ3RoID4gMjU1KSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ1RhYmxlIG5hbWUgbXVzdCBiZSBhdCBsZWFzdCAxIGFuZCBubyBtb3JlIHRoYW4gMjU1IGNoYXJhY3RlcnMnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDaGFyYWN0ZXIgc2V0IHZhbGlkYXRpb25cbiAgICBjb25zdCBpbGxlZ2FsQ2hhcnNldFJlZ0V4ID0gL1teYS16MC05X10vO1xuICAgIGNvbnN0IGFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4ID0gL1thLXowLTldLztcblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyTWF0Y2ggPSB0YWJsZU5hbWUubWF0Y2goaWxsZWdhbENoYXJzZXRSZWdFeCk7XG4gICAgaWYgKGlsbGVnYWxDaGFyTWF0Y2gpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChfKScgK1xuICAgICAgICAgIGAgKG9mZnNldDogJHtpbGxlZ2FsQ2hhck1hdGNoLmluZGV4fSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBFZGdlIGNoYXJhY3RlciB2YWxpZGF0aW9uXG4gICAgaWYgKCFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KHRhYmxlTmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ1RhYmxlIG5hbWUgbXVzdCBzdGFydCB3aXRoIGEgbG93ZXJjYXNlIGxldHRlciBvciBudW1iZXIgKG9mZnNldDogMCknLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KHRhYmxlTmFtZS5jaGFyQXQodGFibGVOYW1lLmxlbmd0aCAtIDEpKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBUYWJsZSBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIHRhYmxlTmFtZS5sZW5ndGggLSAxXG4gICAgICAgIH0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdJbnZhbGlkVGFibGVOYW1lJyxcbiAgICAgICAgYEludmFsaWQgUzMgdGFibGUgbmFtZSAodmFsdWU6ICR7dGFibGVOYW1lfSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgQW1hem9uIFJlc291cmNlIE5hbWUgKGFybikgb2YgdGhpcyB0YWJsZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIENmblRhYmxlIEwxIHJlc291cmNlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb3VyY2U6IENmblRhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIG1hbmFnZXIgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFnTWFuYWdlcjogVGFnTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyB0YWJsZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdGhpcyB0YWJsZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZTogSU5hbWVzcGFjZTtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBmb3IgdGhpcyB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZVBvbGljeT86IENmblRhYmxlUG9saWN5O1xuXG4gIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGFibGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge30pO1xuXG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMud2l0aG91dE1ldGFkYXRhICYmIHByb3BzLmljZWJlcmdNZXRhZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAnTXV0dWFsbHlFeGNsdXNpdmVQcm9wcycsXG4gICAgICAgIFwiVGFibGVQcm9wczogJ3dpdGhvdXRNZXRhZGF0YScgYW5kICdpY2ViZXJnTWV0YWRhdGEnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFNwZWNpZnkgb25seSBvbmUuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIFRhYmxlLnZhbGlkYXRlVGFibGVOYW1lKHByb3BzLnRhYmxlTmFtZSk7XG5cbiAgICB0aGlzLl9yZXNvdXJjZSA9IG5ldyBDZm5UYWJsZSh0aGlzLCBpZCwge1xuICAgICAgdGFibGVOYW1lOiBwcm9wcy50YWJsZU5hbWUsXG4gICAgICBvcGVuVGFibGVGb3JtYXQ6IHByb3BzLm9wZW5UYWJsZUZvcm1hdCxcbiAgICAgIHRhYmxlQnVja2V0QXJuOiBwcm9wcy5uYW1lc3BhY2UudGFibGVCdWNrZXQudGFibGVCdWNrZXRBcm4sXG4gICAgICBuYW1lc3BhY2U6IHByb3BzLm5hbWVzcGFjZS5uYW1lc3BhY2VOYW1lLFxuICAgICAgY29tcGFjdGlvbjogcHJvcHMuY29tcGFjdGlvbixcbiAgICAgIGljZWJlcmdNZXRhZGF0YTogdGhpcy5idWlsZEljZWJlcmdNZXRhZGF0YShwcm9wcy5pY2ViZXJnTWV0YWRhdGEpLFxuICAgICAgc25hcHNob3RNYW5hZ2VtZW50OiBwcm9wcy5zbmFwc2hvdE1hbmFnZW1lbnQsXG4gICAgICB3aXRob3V0TWV0YWRhdGE6IHByb3BzLndpdGhvdXRNZXRhZGF0YSA/ICdZZXMnIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lc3BhY2UgPSBwcm9wcy5uYW1lc3BhY2U7XG4gICAgdGhpcy50YWJsZU5hbWUgPSBwcm9wcy50YWJsZU5hbWU7XG4gICAgdGhpcy50YWJsZUFybiA9IHRoaXMuX3Jlc291cmNlLmF0dHJUYWJsZUFybjtcbiAgICB0aGlzLmNka1RhZ01hbmFnZXIgPSB0aGlzLl9yZXNvdXJjZS5jZGtUYWdNYW5hZ2VyO1xuICAgIHRoaXMuX3Jlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLm5hbWVzcGFjZSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBDbG91ZEZvcm1hdGlvbiBJY2ViZXJnIG1ldGFkYXRhIHByb3BlcnR5IGZyb20gdGhlIENESyBtZXRhZGF0YSBtb2RlbC5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnTWV0YWRhdGEobWV0YWRhdGE/OiBJY2ViZXJnTWV0YWRhdGFQcm9wZXJ0eSk6IENmblRhYmxlLkljZWJlcmdNZXRhZGF0YVByb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpY2ViZXJnU2NoZW1hOiB0aGlzLmJ1aWxkSWNlYmVyZ1NjaGVtYShtZXRhZGF0YS5pY2ViZXJnU2NoZW1hKSxcbiAgICAgIGljZWJlcmdQYXJ0aXRpb25TcGVjOiBtZXRhZGF0YS5pY2ViZXJnUGFydGl0aW9uU3BlY1xuICAgICAgICA/IHRoaXMuYnVpbGRJY2ViZXJnUGFydGl0aW9uU3BlYyhtZXRhZGF0YS5pY2ViZXJnUGFydGl0aW9uU3BlYylcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBpY2ViZXJnU29ydE9yZGVyOiBtZXRhZGF0YS5pY2ViZXJnU29ydE9yZGVyXG4gICAgICAgID8gdGhpcy5idWlsZEljZWJlcmdTb3J0T3JkZXIobWV0YWRhdGEuaWNlYmVyZ1NvcnRPcmRlcilcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB0YWJsZVByb3BlcnRpZXM6IG1ldGFkYXRhLnRhYmxlUHJvcGVydGllc1xuICAgICAgICA/IHRoaXMuYnVpbGRUYWJsZVByb3BlcnRpZXMobWV0YWRhdGEudGFibGVQcm9wZXJ0aWVzKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgQ2xvdWRGb3JtYXRpb24gSWNlYmVyZyBzY2hlbWEgcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSWNlYmVyZ1NjaGVtYShzY2hlbWE6IEljZWJlcmdTY2hlbWFQcm9wZXJ0eSk6IENmblRhYmxlLkljZWJlcmdTY2hlbWFQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYUZpZWxkTGlzdDogc2NoZW1hLnNjaGVtYUZpZWxkTGlzdC5tYXAoZmllbGQgPT4gKHtcbiAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgLi4uKGZpZWxkLnJlcXVpcmVkICE9PSB1bmRlZmluZWQgJiYgeyByZXF1aXJlZDogZmllbGQucmVxdWlyZWQgfSksXG4gICAgICAgIC4uLihmaWVsZC5pZCAhPT0gdW5kZWZpbmVkICYmIHsgaWQ6IGZpZWxkLmlkIH0pLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBDbG91ZEZvcm1hdGlvbiBJY2ViZXJnIHBhcnRpdGlvbiBzcGVjaWZpY2F0aW9uIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEljZWJlcmdQYXJ0aXRpb25TcGVjKHNwZWM6IEljZWJlcmdQYXJ0aXRpb25TcGVjKTogQ2ZuVGFibGUuSWNlYmVyZ1BhcnRpdGlvblNwZWNQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihzcGVjLnNwZWNJZCAhPT0gdW5kZWZpbmVkICYmIHsgc3BlY0lkOiBzcGVjLnNwZWNJZCB9KSxcbiAgICAgIGZpZWxkczogc3BlYy5maWVsZHMubWFwKGZpZWxkID0+ICh7XG4gICAgICAgIHNvdXJjZUlkOiBmaWVsZC5zb3VyY2VJZCxcbiAgICAgICAgdHJhbnNmb3JtOiBmaWVsZC50cmFuc2Zvcm0udmFsdWUsXG4gICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgIC4uLihmaWVsZC5maWVsZElkICE9PSB1bmRlZmluZWQgJiYgeyBmaWVsZElkOiBmaWVsZC5maWVsZElkIH0pLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBDbG91ZEZvcm1hdGlvbiBJY2ViZXJnIHNvcnQgb3JkZXIgcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSWNlYmVyZ1NvcnRPcmRlcihzb3J0T3JkZXI6IEljZWJlcmdTb3J0T3JkZXIpOiBDZm5UYWJsZS5JY2ViZXJnU29ydE9yZGVyUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi4oc29ydE9yZGVyLm9yZGVySWQgIT09IHVuZGVmaW5lZCAmJiB7IG9yZGVySWQ6IHNvcnRPcmRlci5vcmRlcklkIH0pLFxuICAgICAgZmllbGRzOiBzb3J0T3JkZXIuZmllbGRzLm1hcChmaWVsZCA9PiAoe1xuICAgICAgICBzb3VyY2VJZDogZmllbGQuc291cmNlSWQsXG4gICAgICAgIHRyYW5zZm9ybTogZmllbGQudHJhbnNmb3JtLnZhbHVlLFxuICAgICAgICBkaXJlY3Rpb246IGZpZWxkLmRpcmVjdGlvbixcbiAgICAgICAgbnVsbE9yZGVyOiBmaWVsZC5udWxsT3JkZXIsXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIHRhYmxlIHByb3BlcnRpZXMgbWFwIGZyb20ga2V5LXZhbHVlIGVudHJpZXMuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkVGFibGVQcm9wZXJ0aWVzKHRhYmxlUHJvcGVydGllczogVGFibGVQcm9wZXJ0eUVudHJ5W10pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBrZXlzID0gdGFibGVQcm9wZXJ0aWVzLm1hcChlbnRyeSA9PiBlbnRyeS5rZXkpO1xuICAgIGNvbnN0IGR1cGxpY2F0ZUtleXMgPSBrZXlzLmZpbHRlcigoa2V5LCBpbmRleCkgPT4ga2V5cy5pbmRleE9mKGtleSkgIT09IGluZGV4KTtcbiAgICBpZiAoZHVwbGljYXRlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdEdXBsaWNhdGVUYWJsZVByb3BlcnR5S2V5JyxcbiAgICAgICAgYER1cGxpY2F0ZSB0YWJsZSBwcm9wZXJ0eSBrZXlzIGFyZSBub3QgYWxsb3dlZDogJHtbLi4ubmV3IFNldChkdXBsaWNhdGVLZXlzKV0uam9pbignLCAnKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGFibGVQcm9wZXJ0aWVzLnJlZHVjZShcbiAgICAgIChhY2MsIGVudHJ5KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtlbnRyeS5rZXldOiBlbnRyeS52YWx1ZSxcbiAgICAgIH0pLFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICApO1xuICB9XG59XG4iXX0=
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBeUI7QUFDekIsMkNBQTJDO0FBQzNDLDJEQUFvRTtBQU9wRSwyQ0FJMEI7QUFDMUIsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUUsdUNBQXVDO0FBbUZ2Qzs7R0FFRztBQUNILE1BQWUsU0FBVSxTQUFRLGVBQVE7SUFrQmhDLG1CQUFtQixDQUN4QixTQUE4QjtRQUU5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksNkJBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO2dCQUMzRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLGNBQWMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2FBQzNDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQ2xDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsUUFBd0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUNmLFFBQVEsRUFDUixLQUFLLENBQUMsaUJBQWlCLEVBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztLQUNIO0lBRUQ7O09BRUc7SUFD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QUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDL0UsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksOEJBQXVCLENBQy9CLElBQUEsc0JBQUcsRUFBQSwyQkFBMkIsRUFDOUIsa0RBQWtELENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMzRixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLEdBQUcsR0FBRztnQkFDTixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSzthQUN6QixDQUFDLEVBQ0YsRUFBNEIsQ0FDN0IsQ0FBQztTQUNIOztZQXRQVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblRhYmxlLCBDZm5UYWJsZVBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElSZXNvdXJjZSxcbiAgSVRhZ2dhYmxlVjIsXG4gIFJlbW92YWxQb2xpY3ksXG4gIFRhZ01hbmFnZXIsXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuICBUb2tlbixcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElOYW1lc3BhY2UgfSBmcm9tICcuL25hbWVzcGFjZSc7XG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1pc3Npb25zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFMzIFRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudElkIGNvbnRhaW5pbmcgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBjb250YWluaW5nIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgcmVzb3VyY2UgcG9saWN5IGZvciBhIHByaW5jaXBhbCAoaS5lLlxuICAgKiBhY2NvdW50L3JvbGUvc2VydmljZSkgdG8gcGVyZm9ybSBhY3Rpb25zIG9uIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcG9saWN5IHN0YXRlbWVudCBtYXkgb3IgbWF5IG5vdCBiZSBhZGRlZCB0byB0aGUgcG9saWN5LlxuICAgKiBGb3IgZXhhbXBsZSwgd2hlbiBhbiBgSVRhYmxlYCBpcyBjcmVhdGVkIGZyb20gYW4gZXhpc3RpbmcgdGFibGUsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgdGFibGUgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgdGFibGUnc1xuICAgKiBwb2xpY3kuXG4gICAqIEByZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoZSBleGVjdXRpb24gb2YgdGhpcyBtZXRob2QuIElmIHRoZSBwb2xpY3lcbiAgICogd2FzIG5vdCBhZGRlZCwgdGhlIHZhbHVlIG9mIGBzdGF0ZW1lbnRBZGRlZGAgd2lsbCBiZSBgZmFsc2VgLiBZb3VcbiAgICogc2hvdWxkIGFsd2F5cyBjaGVjayB0aGlzIHZhbHVlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvcGVyYXRpb24gd2FzXG4gICAqIGFjdHVhbGx5IGNhcnJpZWQgb3V0LiBPdGhlcndpc2UsIHN5bnRoZXNpcyBhbmQgZGVwbG95IHdpbGwgdGVybWluYXRlXG4gICAqIHNpbGVudGx5LCB3aGljaCBtYXkgYmUgY29uZnVzaW5nLlxuICAgKi9cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkRlY3J5cHQgcGVybWlzc2lvbiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkdlbmVyYXRlRGF0YUtleSBhbmQga21zOkRlY3J5cHQgcGVybWlzc2lvblxuICAgKiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIHRoZSBwYXJlbnQgVGFibGVCdWNrZXQgb2YgdGhpcyB0YWJsZSBoYXMgZW5jcnlwdGlvbixcbiAgICogeW91IHNob3VsZCBncmFudCBrbXM6R2VuZXJhdGVEYXRhS2V5IGFuZCBrbXM6RGVjcnlwdCBwZXJtaXNzaW9uXG4gICAqIHRvIHVzZSB0aGlzIGtleSB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgVGFibGUgaW1wbGVtZW50YXRpb25zLlxuICovXG5hYnN0cmFjdCBjbGFzcyBUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIElmIGBhdXRvQ3JlYXRlUG9saWN5YCBpcyB0cnVlLCBhIGBUYWJsZVBvbGljeWAgd2lsbCBiZSBjcmVhdGVkIHVwb24gdGhlXG4gICAqIGZpcnN0IGNhbGwgdG8gYWRkVG9SZXNvdXJjZVBvbGljeShzKS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0YWJsZVBvbGljeT86IENmblRhYmxlUG9saWN5O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0YWJsZSByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZVBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVQb2xpY3kgPSBuZXcgQ2ZuVGFibGVQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQXJuOiB0aGlzLnRhYmxlQXJuLFxuICAgICAgICByZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7fSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVBvbGljeSkge1xuICAgICAgdGhpcy50YWJsZVBvbGljeS5yZXNvdXJjZVBvbGljeS5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy50YWJsZVBvbGljeSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfUkVBRF9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUFybixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVBcm4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIGdpdmVuIHMzdGFibGVzIHBlcm1pc3Npb25zIHRvIHRoZSBwcm92aWRlZCBwcmluY2lwYWxcbiAgICogQHJldHVybnMgR3JhbnQgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIHRhYmxlQWN0aW9uczogc3RyaW5nW10sXG4gICAgcmVzb3VyY2VBcm46IHN0cmluZyxcbiAgICAuLi5vdGhlclJlc291cmNlQXJuczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IFtyZXNvdXJjZUFybiwgLi4ub3RoZXJSZXNvdXJjZUFybnNdLmZpbHRlcihhcm4gPT4gYXJuICE9IHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBncmFudCA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbE9yUmVzb3VyY2Uoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IHRhYmxlQWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogcmVzb3VyY2VzLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBTMyBUYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZSwgdW5pcXVlIHdpdGhpbiB0aGUgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgdW5kZXIgd2hpY2ggdGhpcyB0YWJsZSBpcyBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IElOYW1lc3BhY2U7XG4gIC8qKlxuICAgKiBGb3JtYXQgb2YgdGhpcyB0YWJsZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgT3BlblRhYmxlRm9ybWF0LklDRUJFUkcuXG4gICAqL1xuICByZWFkb25seSBvcGVuVGFibGVGb3JtYXQ6IE9wZW5UYWJsZUZvcm1hdDtcbiAgLyoqXG4gICAqIFNldHRpbmdzIGdvdmVybmluZyB0aGUgQ29tcGFjdGlvbiBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqIEBkZWZhdWx0IEFtYXpvbiBTMyBzZWxlY3RzIHRoZSBiZXN0IGNvbXBhY3Rpb24gc3RyYXRlZ3kgYmFzZWQgb24geW91ciB0YWJsZSBzb3J0IG9yZGVyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjb21wYWN0aW9uPzogQ29tcGFjdGlvblByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgbWV0YWRhdGEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqIEBkZWZhdWx0IHRhYmxlIGlzIGNyZWF0ZWQgd2l0aG91dCBhbnkgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdNZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICogQGRlZmF1bHQgZW5hYmxlZDogTWluaW11bVNuYXBzaG90cyBpcyAxIGJ5IGRlZmF1bHQgYW5kIE1heGltdW1TbmFwc2hvdEFnZSBpcyAxMjAgaG91cnMgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90TWFuYWdlbWVudD86IFNuYXBzaG90TWFuYWdlbWVudFByb3BlcnR5O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBoYXBwZW5zIHRvIHRoaXMgdGFibGUgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBpbmRpY2F0ZXMgdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBzcGVjaWZ5IGEgc2NoZW1hIGZvciB0aGUgdGFibGUuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHRvICdJY2ViZXJnTWV0YWRhdGEnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgd2l0aG91dE1ldGFkYXRhPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgb3BlbiB0YWJsZSBmb3JtYXRzLlxuICovXG5leHBvcnQgZW51bSBPcGVuVGFibGVGb3JtYXQge1xuICAvKipcbiAgICogQXBhY2hlIEljZWJlcmcgdGFibGUgZm9ybWF0LlxuICAgKi9cbiAgSUNFQkVSRyA9ICdJQ0VCRVJHJyxcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyBnb3Zlcm5pbmcgdGhlIENvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICpcbiAqIEBkZWZhdWx0IC0gTm8gY29tcGFjdGlvbiBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhY3Rpb25Qcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdGhlIGNvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBTdGF0dXM7XG4gIC8qKlxuICAgKiBUYXJnZXQgZmlsZSBzaXplIGluIG1lZ2FieXRlcyBmb3IgY29tcGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZpbGVTaXplTWI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTdGF0dXMgdmFsdWVzIGZvciBtYWludGVuYW5jZSBhY3Rpb25zLlxuICovXG5leHBvcnQgZW51bSBTdGF0dXMge1xuICAvKipcbiAgICogRW5hYmxlIHRoZSBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqL1xuICBFTkFCTEVEID0gJ2VuYWJsZWQnLFxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnZGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIEljZWJlcmcgdHJhbnNmb3JtIHZhbHVlcyBmb3IgcGFydGl0aW9uIGFuZCBzb3J0IGZpZWxkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEljZWJlcmdUcmFuc2Zvcm0ge1xuICAvKipcbiAgICogVXNlIHRoZSBjb2x1bW4gdmFsdWUgYXMgdGhlIHRyYW5zZm9ybSB2YWx1ZSB3aXRob3V0IHRyYW5zZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJREVOVElUWSA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdpZGVudGl0eScpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAvZGF0ZSBmaWVsZCB0byB5ZWFyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBZRUFSID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ3llYXInKTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgdGltZXN0YW1wL2RhdGUgZmllbGQgdG8gbW9udGguXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1PTlRIID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ21vbnRoJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIHRpbWVzdGFtcC9kYXRlIGZpZWxkIHRvIGRheS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREFZID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ2RheScpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAgZmllbGQgdG8gaG91ci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSE9VUiA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdob3VyJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB2YWx1ZXMgaW50byBhIGZpeGVkIG51bWJlciBvZiBidWNrZXRzLlxuICAgKlxuICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIGJ1Y2tldHMgKG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBidWNrZXQobjogbnVtYmVyKTogSWNlYmVyZ1RyYW5zZm9ybSB7XG4gICAgaWYgKG4gPD0gMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihuKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZEJ1Y2tldENvdW50YCxcbiAgICAgICAgJ0J1Y2tldCBjb3VudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJY2ViZXJnVHJhbnNmb3JtKGBidWNrZXRbJHtufV1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnVuY2F0ZSB2YWx1ZXMgdG8gYSBmaXhlZCB3aWR0aC5cbiAgICpcbiAgICogQHBhcmFtIHdpZHRoIFRoZSB0cnVuY2F0aW9uIHdpZHRoIChtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcilcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGUod2lkdGg6IG51bWJlcik6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIGlmICh3aWR0aCA8PSAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHdpZHRoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFRydW5jYXRlV2lkdGhgLFxuICAgICAgICAnVHJ1bmNhdGUgd2lkdGggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybShgdHJ1bmNhdGVbJHt3aWR0aH1dYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY3VzdG9tIHRyYW5zZm9ybSBmcm9tIGEgc3RyaW5nIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHRyYW5zZm9ybSBzdHJpbmcgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgdHJhbnNmb3JtLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJhbnNmb3JtLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IGRpcmVjdGlvbiB2YWx1ZXMgZm9yIEljZWJlcmcgc29ydCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBlbnVtIFNvcnREaXJlY3Rpb24ge1xuICAvKipcbiAgICogU29ydCB2YWx1ZXMgaW4gYXNjZW5kaW5nIG9yZGVyLlxuICAgKi9cbiAgQVNDID0gJ2FzYycsXG4gIC8qKlxuICAgKiBTb3J0IHZhbHVlcyBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgKi9cbiAgREVTQyA9ICdkZXNjJyxcbn1cblxuLyoqXG4gKiBOdWxsIG9yZGVyaW5nIHZhbHVlcyBmb3IgSWNlYmVyZyBzb3J0IGZpZWxkcy5cbiAqL1xuZXhwb3J0IGVudW0gTnVsbE9yZGVyIHtcbiAgLyoqXG4gICAqIFBsYWNlIG51bGwgdmFsdWVzIGJlZm9yZSBub24tbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBOVUxMU19GSVJTVCA9ICdudWxscy1maXJzdCcsXG4gIC8qKlxuICAgKiBQbGFjZSBudWxsIHZhbHVlcyBhZnRlciBub24tbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBOVUxMU19MQVNUID0gJ251bGxzLWxhc3QnLFxufVxuXG4vKipcbiAqIFBhcnRpdGlvbiBmaWVsZCBkZWZpbml0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIERlZmluZXMgYSBzaW5nbGUgcGFydGl0aW9uIGNvbHVtbi4gTXVsdGlwbGUgcGFydGl0aW9uIGZpZWxkcyBjYW4gYmUgY29tYmluZWRcbiAqIGluIGFuIEljZWJlcmdQYXJ0aXRpb25TcGVjIHRvIGNyZWF0ZSBtdWx0aS1sZXZlbCBwYXJ0aXRpb25pbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1BhcnRpdGlvbkZpZWxkIHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmllbGQgSUQgZnJvbSB0aGUgc2NoZW1hLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhcnRpdGlvbiB0cmFuc2Zvcm0gZnVuY3Rpb24uXG4gICAqXG4gICAqIFVzZSBgSWNlYmVyZ1RyYW5zZm9ybWAgc3RhdGljIHByb3BlcnRpZXMgZm9yIGNvbW1vbiB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5JREVOVElUWWApXG4gICAqIG9yIG1ldGhvZHMgZm9yIHBhcmFtZXRlcml6ZWQgdHJhbnNmb3JtcyAoZS5nLiwgYEljZWJlcmdUcmFuc2Zvcm0uYnVja2V0KDE2KWApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtOiBJY2ViZXJnVHJhbnNmb3JtO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRpdGlvbiBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFydGl0aW9uIGZpZWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG8tYXNzaWduZWQgc3RhcnRpbmcgZnJvbSAxMDAwXG4gICAqL1xuICByZWFkb25seSBmaWVsZElkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcnRpdGlvbiBzcGVjaWZpY2F0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIENvbnRhaW5zIHRoZSBjb21wbGV0ZSBwYXJ0aXRpb25pbmcgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSwgaW5jbHVkaW5nIGFsbCBwYXJ0aXRpb24gZmllbGRzLlxuICogVXNlIHRoaXMgdG8gZGVmaW5lIG11bHRpLWxldmVsIHBhcnRpdGlvbmluZyAoZS5nLiwgcGFydGl0aW9uIGJ5IGRhdGUsIHRoZW4gYnkgcmVnaW9uKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnUGFydGl0aW9uU3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBwYXJ0aXRpb24gZmllbGRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZmllbGRzOiBJY2ViZXJnUGFydGl0aW9uRmllbGRbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFydGl0aW9uIHNwZWNpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHNwZWNJZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTb3J0IGZpZWxkIGRlZmluaXRpb24gZm9yIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NvcnRGaWVsZCB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpZWxkIElEIGZyb20gdGhlIHNjaGVtYS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUlkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICpcbiAgICogVXNlIGBJY2ViZXJnVHJhbnNmb3JtYCBzdGF0aWMgcHJvcGVydGllcyBmb3IgY29tbW9uIHRyYW5zZm9ybXMgKGUuZy4sIGBJY2ViZXJnVHJhbnNmb3JtLklERU5USVRZYClcbiAgICogb3IgbWV0aG9kcyBmb3IgcGFyYW1ldGVyaXplZCB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5idWNrZXQoMTYpYCkuXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm06IEljZWJlcmdUcmFuc2Zvcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IGRpcmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bGwgb3JkZXJpbmcuXG4gICAqL1xuICByZWFkb25seSBudWxsT3JkZXI6IE51bGxPcmRlcjtcbn1cblxuLyoqXG4gKiBTb3J0IG9yZGVyIHNwZWNpZmljYXRpb24gZm9yIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NvcnRPcmRlciB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBzb3J0IGZpZWxkcy5cbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkczogSWNlYmVyZ1NvcnRGaWVsZFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzb3J0IG9yZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBvcmRlcklkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHRhYmxlIHByb3BlcnR5IGtleS12YWx1ZSBwYWlyIGZvciBJY2ViZXJnIHRhYmxlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm9wZXJ0eUVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSBrZXkuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnTWV0YWRhdGFQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWwjY2ZuLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS1pY2ViZXJnc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU2NoZW1hOiBJY2ViZXJnU2NoZW1hUHJvcGVydHk7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcGFydGl0aW9uIHNwZWNpZmljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdQYXJ0aXRpb25TcGVjPzogSWNlYmVyZ1BhcnRpdGlvblNwZWM7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IG9yZGVyIGZvciB0aGUgSWNlYmVyZyB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzb3J0IG9yZGVyXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU29ydE9yZGVyPzogSWNlYmVyZ1NvcnRPcmRlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIHByb3BlcnRpZXMgZm9yIHRoZSBJY2ViZXJnIHRhYmxlLlxuICAgKiBFYWNoIGVudHJ5IHJlcHJlc2VudHMgYSBrZXktdmFsdWUgcGFpciBmb3IgSWNlYmVyZyB0YWJsZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSB0YWJsZVByb3BlcnRpZXM/OiBUYWJsZVByb3BlcnR5RW50cnlbXTtcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNjaGVtYSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYUZpZWxkTGlzdDogU2NoZW1hRmllbGRQcm9wZXJ0eVtdO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgYSBzY2hlbWEgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hRmllbGRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvLWFzc2lnbmVkIGJ5IFMzIFRhYmxlc1xuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBCb29sZWFuIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdmFsdWVzIGFyZSByZXF1aXJlZCBmb3IgZWFjaCByb3cgaW4gdGhpcyBmaWVsZC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyBgZmFsc2VgIGFuZCBudWxsIHZhbHVlcyBhcmUgYWxsb3dlZCBpbiB0aGUgZmllbGQuIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgZmllbGQgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0eXBlLlxuICAgKlxuICAgKiBTMyBUYWJsZXMgc3VwcG9ydHMgYWxsIEFwYWNoZSBJY2ViZXJnIHByaW1pdGl2ZSB0eXBlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgW0FwYWNoZSBJY2ViZXJnIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vaWNlYmVyZy5hcGFjaGUub3JnL3NwZWMvI3ByaW1pdGl2ZS10eXBlcykuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAqXG4gKiBBIHNuYXBzaG90IGlzIGV4cGlyZWQgd2hlbiBpdCBleGNlZWRzIE1pblNuYXBzaG90c1RvS2VlcCBhbmQgTWF4U25hcHNob3RBZ2VIb3Vycy5cbiAqXG4gKiBAZGVmYXVsdCAtIE5vIHNuYXBzaG90IG1hbmFnZW1lbnQgc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbmFwc2hvdE1hbmFnZW1lbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhZ2Ugb2YgYSBzbmFwc2hvdCBiZWZvcmUgaXQgY2FuIGJlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWF4aW11bSBhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1heFNuYXBzaG90QWdlSG91cnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzbmFwc2hvdHMgdG8ga2VlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBtaW5pbXVtIG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgbWluU25hcHNob3RzVG9LZWVwPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgU25hcHNob3RNYW5hZ2VtZW50IG1haW50ZW5hbmNlIGFjdGlvbiBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IFN0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIG91dHNpZGUgdGhpcyBzdGFja1xuICpcbiAqIFRoZSB0YWJsZU5hbWUsIHJlZ2lvbiwgYW5kIGFjY291bnQgY2FuIGJlIHByb3ZpZGVkIGV4cGxpY2l0bHlcbiAqIG9yIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgdGFibGVBcm5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlJ3MgQVJOLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBTMyBUYWJsZSB3aXRoIGhlbHBlcnMuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBUYWJsZSBleHRlbmRzIFRhYmxlQmFzZSBpbXBsZW1lbnRzIElUYWdnYWJsZVYyIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuVGFibGUnO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgVGFibGUgY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQXR0cmlidXRlc2Agb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRhYmxlIG5hbWUgYW5kIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQXR0cmlidXRlcyxcbiAgKTogSVRhYmxlIHtcbiAgICBjb25zdCB0YWJsZUFybiA9IGF0dHJzLnRhYmxlQXJuO1xuICAgIFRhYmxlLnZhbGlkYXRlVGFibGVOYW1lKGF0dHJzLnRhYmxlTmFtZSk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZSA9IGF0dHJzLnRhYmxlTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUFybiA9IHRhYmxlQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyAgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogdGFibGVBcm4sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMtYnVja2V0cy1uYW1pbmcuaHRtbFxuICAgKiBAcGFyYW0gdGFibGVOYW1lIE5hbWUgb2YgdGhlIHRhYmxlXG4gICAqIEB0aHJvd3MgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG5hbWluZyBlcnJvcnMgYXJlIGRldGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlVGFibGVOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRhYmxlTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKHRhYmxlTmFtZSkpIHtcbiAgICAgIC8vIHRoZSBuYW1lIGlzIGEgbGF0ZS1ib3VuZCB2YWx1ZSwgbm90IGEgZGVmaW5lZCBzdHJpbmcsIHNvIHNraXAgdmFsaWRhdGlvblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIExlbmd0aCB2YWxpZGF0aW9uXG4gICAgaWYgKHRhYmxlTmFtZS5sZW5ndGggPCAxIHx8IHRhYmxlTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDEgYW5kIG5vIG1vcmUgdGhhbiAyNTUgY2hhcmFjdGVycycsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENoYXJhY3RlciBzZXQgdmFsaWRhdGlvblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyc2V0UmVnRXggPSAvW15hLXowLTlfXS87XG4gICAgY29uc3QgYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXggPSAvW2EtejAtOV0vO1xuXG4gICAgY29uc3QgaWxsZWdhbENoYXJNYXRjaCA9IHRhYmxlTmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdUYWJsZSBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKF8pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCgwKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAwKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCh0YWJsZU5hbWUubGVuZ3RoIC0gMSkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYFRhYmxlIG5hbWUgbXVzdCBlbmQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6ICR7XG4gICAgICAgICAgdGFibGVOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgfSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRUYWJsZU5hbWVgLFxuICAgICAgICBgSW52YWxpZCBTMyB0YWJsZSBuYW1lICh2YWx1ZTogJHt0YWJsZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQ2ZuVGFibGUgTDEgcmVzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvdXJjZTogQ2ZuVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgbWFuYWdlciBmb3IgdGhpcyByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYWdNYW5hZ2VyOiBUYWdNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgY29udGFpbmluZyB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBJTmFtZXNwYWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGZvciB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7fSk7XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy53aXRob3V0TWV0YWRhdGEgJiYgcHJvcHMuaWNlYmVyZ01ldGFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBNdXR1YWxseUV4Y2x1c2l2ZVByb3BzYCxcbiAgICAgICAgXCJUYWJsZVByb3BzOiAnd2l0aG91dE1ldGFkYXRhJyBhbmQgJ2ljZWJlcmdNZXRhZGF0YScgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gU3BlY2lmeSBvbmx5IG9uZS5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgVGFibGUudmFsaWRhdGVUYWJsZU5hbWUocHJvcHMudGFibGVOYW1lKTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlKHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgIG9wZW5UYWJsZUZvcm1hdDogcHJvcHMub3BlblRhYmxlRm9ybWF0LFxuICAgICAgdGFibGVCdWNrZXRBcm46IHByb3BzLm5hbWVzcGFjZS50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgICBjb21wYWN0aW9uOiBwcm9wcy5jb21wYWN0aW9uLFxuICAgICAgaWNlYmVyZ01ldGFkYXRhOiB0aGlzLmJ1aWxkSWNlYmVyZ01ldGFkYXRhKHByb3BzLmljZWJlcmdNZXRhZGF0YSksXG4gICAgICBzbmFwc2hvdE1hbmFnZW1lbnQ6IHByb3BzLnNuYXBzaG90TWFuYWdlbWVudCxcbiAgICAgIHdpdGhvdXRNZXRhZGF0YTogcHJvcHMud2l0aG91dE1ldGFkYXRhID8gJ1llcycgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IHByb3BzLm5hbWVzcGFjZTtcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHByb3BzLnRhYmxlTmFtZTtcbiAgICB0aGlzLnRhYmxlQXJuID0gdGhpcy5fcmVzb3VyY2UuYXR0clRhYmxlQXJuO1xuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMuX3Jlc291cmNlLmNka1RhZ01hbmFnZXI7XG4gICAgdGhpcy5fcmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpO1xuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMubmFtZXNwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgbWV0YWRhdGEgcHJvcGVydHkgZnJvbSB0aGUgQ0RLIG1ldGFkYXRhIG1vZGVsLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEljZWJlcmdNZXRhZGF0YShtZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5KTogQ2ZuVGFibGUuSWNlYmVyZ01ldGFkYXRhUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGljZWJlcmdTY2hlbWE6IHRoaXMuYnVpbGRJY2ViZXJnU2NoZW1hKG1ldGFkYXRhLmljZWJlcmdTY2hlbWEpLFxuICAgICAgaWNlYmVyZ1BhcnRpdGlvblNwZWM6IG1ldGFkYXRhLmljZWJlcmdQYXJ0aXRpb25TcGVjXG4gICAgICAgID8gdGhpcy5idWlsZEljZWJlcmdQYXJ0aXRpb25TcGVjKG1ldGFkYXRhLmljZWJlcmdQYXJ0aXRpb25TcGVjKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGljZWJlcmdTb3J0T3JkZXI6IG1ldGFkYXRhLmljZWJlcmdTb3J0T3JkZXJcbiAgICAgICAgPyB0aGlzLmJ1aWxkSWNlYmVyZ1NvcnRPcmRlcihtZXRhZGF0YS5pY2ViZXJnU29ydE9yZGVyKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHRhYmxlUHJvcGVydGllczogbWV0YWRhdGEudGFibGVQcm9wZXJ0aWVzXG4gICAgICAgID8gdGhpcy5idWlsZFRhYmxlUHJvcGVydGllcyhtZXRhZGF0YS50YWJsZVByb3BlcnRpZXMpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBDbG91ZEZvcm1hdGlvbiBJY2ViZXJnIHNjaGVtYSBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnU2NoZW1hKHNjaGVtYTogSWNlYmVyZ1NjaGVtYVByb3BlcnR5KTogQ2ZuVGFibGUuSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hRmllbGRMaXN0OiBzY2hlbWEuc2NoZW1hRmllbGRMaXN0Lm1hcChmaWVsZCA9PiAoe1xuICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAuLi4oZmllbGQucmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJiB7IHJlcXVpcmVkOiBmaWVsZC5yZXF1aXJlZCB9KSxcbiAgICAgICAgLi4uKGZpZWxkLmlkICE9PSB1bmRlZmluZWQgJiYgeyBpZDogZmllbGQuaWQgfSksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgcGFydGl0aW9uIHNwZWNpZmljYXRpb24gcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSWNlYmVyZ1BhcnRpdGlvblNwZWMoc3BlYzogSWNlYmVyZ1BhcnRpdGlvblNwZWMpOiBDZm5UYWJsZS5JY2ViZXJnUGFydGl0aW9uU3BlY1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKHNwZWMuc3BlY0lkICE9PSB1bmRlZmluZWQgJiYgeyBzcGVjSWQ6IHNwZWMuc3BlY0lkIH0pLFxuICAgICAgZmllbGRzOiBzcGVjLmZpZWxkcy5tYXAoZmllbGQgPT4gKHtcbiAgICAgICAgc291cmNlSWQ6IGZpZWxkLnNvdXJjZUlkLFxuICAgICAgICB0cmFuc2Zvcm06IGZpZWxkLnRyYW5zZm9ybS52YWx1ZSxcbiAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgLi4uKGZpZWxkLmZpZWxkSWQgIT09IHVuZGVmaW5lZCAmJiB7IGZpZWxkSWQ6IGZpZWxkLmZpZWxkSWQgfSksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgc29ydCBvcmRlciBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnU29ydE9yZGVyKHNvcnRPcmRlcjogSWNlYmVyZ1NvcnRPcmRlcik6IENmblRhYmxlLkljZWJlcmdTb3J0T3JkZXJQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihzb3J0T3JkZXIub3JkZXJJZCAhPT0gdW5kZWZpbmVkICYmIHsgb3JkZXJJZDogc29ydE9yZGVyLm9yZGVySWQgfSksXG4gICAgICBmaWVsZHM6IHNvcnRPcmRlci5maWVsZHMubWFwKGZpZWxkID0+ICh7XG4gICAgICAgIHNvdXJjZUlkOiBmaWVsZC5zb3VyY2VJZCxcbiAgICAgICAgdHJhbnNmb3JtOiBmaWVsZC50cmFuc2Zvcm0udmFsdWUsXG4gICAgICAgIGRpcmVjdGlvbjogZmllbGQuZGlyZWN0aW9uLFxuICAgICAgICBudWxsT3JkZXI6IGZpZWxkLm51bGxPcmRlcixcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgQ2xvdWRGb3JtYXRpb24gdGFibGUgcHJvcGVydGllcyBtYXAgZnJvbSBrZXktdmFsdWUgZW50cmllcy5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRUYWJsZVByb3BlcnRpZXModGFibGVQcm9wZXJ0aWVzOiBUYWJsZVByb3BlcnR5RW50cnlbXSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IGtleXMgPSB0YWJsZVByb3BlcnRpZXMubWFwKGVudHJ5ID0+IGVudHJ5LmtleSk7XG4gICAgY29uc3QgZHVwbGljYXRlS2V5cyA9IGtleXMuZmlsdGVyKChrZXksIGluZGV4KSA9PiBrZXlzLmluZGV4T2Yoa2V5KSAhPT0gaW5kZXgpO1xuICAgIGlmIChkdXBsaWNhdGVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YER1cGxpY2F0ZVRhYmxlUHJvcGVydHlLZXlgLFxuICAgICAgICBgRHVwbGljYXRlIHRhYmxlIHByb3BlcnR5IGtleXMgYXJlIG5vdCBhbGxvd2VkOiAke1suLi5uZXcgU2V0KGR1cGxpY2F0ZUtleXMpXS5qb2luKCcsICcpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0YWJsZVByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgKGFjYywgZW50cnkpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2VudHJ5LmtleV06IGVudHJ5LnZhbHVlLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
package/lib/util.js CHANGED
@@ -7,6 +7,7 @@ exports.parseTableBucketRegion = parseTableBucketRegion;
7
7
  exports.parseTableBucketAccount = parseTableBucketAccount;
8
8
  exports.validateTableBucketAttributes = validateTableBucketAttributes;
9
9
  const cdk = require("aws-cdk-lib/core");
10
+ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
10
11
  exports.S3_TABLES_SERVICE = 's3tables';
11
12
  function parseTableBucketArn(construct, props) {
12
13
  // if we have an explicit table bucket ARN, use it.
@@ -23,7 +24,7 @@ function parseTableBucketArn(construct, props) {
23
24
  arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
24
25
  });
25
26
  }
26
- throw new cdk.ValidationError('CannotDetermineBucketArn', 'Cannot determine bucket ARN. At least `tableBucketArn` is needed', construct);
27
+ throw new cdk.ValidationError((0, helpers_internal_1.lit) `CannotDetermineBucketArn`, 'Cannot determine bucket ARN. At least `tableBucketArn` is needed', construct);
27
28
  }
28
29
  function parseTableBucketName(construct, props) {
29
30
  // if we have an explicit bucket name, use it.
@@ -37,7 +38,7 @@ function parseTableBucketName(construct, props) {
37
38
  return bucketNameFromArn;
38
39
  }
39
40
  }
40
- throw new cdk.ValidationError('TableBucketNameRequired', 'tableBucketName is required and could not be inferred from context', construct);
41
+ throw new cdk.ValidationError((0, helpers_internal_1.lit) `TableBucketNameRequired`, 'tableBucketName is required and could not be inferred from context', construct);
41
42
  }
42
43
  function parseTableBucketRegion(construct, props) {
43
44
  // if we have an explicit bucket region, use it.
@@ -81,4 +82,4 @@ function validateTableBucketAttributes(construct, props) {
81
82
  tableBucketArn: parseTableBucketArn(construct, props),
82
83
  };
83
84
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsa0RBa0JDO0FBRUQsb0RBZUM7QUFFRCx3REFnQkM7QUFFRCwwREFnQkM7QUFNRCxzRUFPQztBQTFGRCx3Q0FBd0M7QUFJM0IsUUFBQSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFFNUMsU0FBZ0IsbUJBQW1CLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUNyRixtREFBbUQ7SUFDbkQsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2QyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLE9BQU8sRUFBRSx5QkFBaUI7WUFDMUIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ25DLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQjtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLEVBQUUsa0VBQWtFLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDM0ksQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDdEYsOENBQThDO0lBQzlDLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUMvQixDQUFDO0lBRUQsNENBQTRDO0lBQzVDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsT0FBTyxpQkFBaUIsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLHlCQUF5QixFQUFFLG9FQUFvRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzVJLENBQUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxTQUFxQixFQUFFLEtBQTRCO0lBQ3hGLGdEQUFnRDtJQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZILElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDekYsaURBQWlEO0lBQ2pELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekgsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUMvRixPQUFPO1FBQ0wsZUFBZSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDdkQsT0FBTyxFQUFFLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDbEQsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDaEQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7S0FDdEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgVGFibGVCdWNrZXRBdHRyaWJ1dGVzIH0gZnJvbSAnLi90YWJsZS1idWNrZXQnO1xuXG5leHBvcnQgY29uc3QgUzNfVEFCTEVTX1NFUlZJQ0UgPSAnczN0YWJsZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldEFybihjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpOiBzdHJpbmcge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IHRhYmxlIGJ1Y2tldCBBUk4sIHVzZSBpdC5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0QXJuKSB7XG4gICAgcmV0dXJuIHByb3BzLnRhYmxlQnVja2V0QXJuO1xuICB9XG5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0TmFtZSkge1xuICAgIHJldHVybiBjZGsuU3RhY2sub2YoY29uc3RydWN0KS5mb3JtYXRBcm4oe1xuICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICBhY2NvdW50OiBwcm9wcy5hY2NvdW50LFxuICAgICAgc2VydmljZTogUzNfVEFCTEVTX1NFUlZJQ0UsXG4gICAgICByZXNvdXJjZTogJ2J1Y2tldCcsXG4gICAgICByZXNvdXJjZU5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICAgIGFybkZvcm1hdDogY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICB9XG5cbiAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ0Nhbm5vdERldGVybWluZUJ1Y2tldEFybicsICdDYW5ub3QgZGV0ZXJtaW5lIGJ1Y2tldCBBUk4uIEF0IGxlYXN0IGB0YWJsZUJ1Y2tldEFybmAgaXMgbmVlZGVkJywgY29uc3RydWN0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFibGVCdWNrZXROYW1lKGNvbnN0cnVjdDogSUNvbnN0cnVjdCwgcHJvcHM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyk6IHN0cmluZyB7XG4gIC8vIGlmIHdlIGhhdmUgYW4gZXhwbGljaXQgYnVja2V0IG5hbWUsIHVzZSBpdC5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0TmFtZSkge1xuICAgIHJldHVybiBwcm9wcy50YWJsZUJ1Y2tldE5hbWU7XG4gIH1cblxuICAvLyBleHRyYWN0IHRhYmxlIGJ1Y2tldCBuYW1lIGZyb20gYnVja2V0IGFyblxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICBjb25zdCBidWNrZXROYW1lRnJvbUFybiA9IGNkay5TdGFjay5vZihjb25zdHJ1Y3QpLnNwbGl0QXJuKHByb3BzLnRhYmxlQnVja2V0QXJuLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcbiAgICBpZiAoYnVja2V0TmFtZUZyb21Bcm4pIHtcbiAgICAgIHJldHVybiBidWNrZXROYW1lRnJvbUFybjtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignVGFibGVCdWNrZXROYW1lUmVxdWlyZWQnLCAndGFibGVCdWNrZXROYW1lIGlzIHJlcXVpcmVkIGFuZCBjb3VsZCBub3QgYmUgaW5mZXJyZWQgZnJvbSBjb250ZXh0JywgY29uc3RydWN0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFibGVCdWNrZXRSZWdpb24oY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgcmVnaW9uLCB1c2UgaXQuXG4gIGlmIChwcm9wcy5yZWdpb24pIHtcbiAgICByZXR1cm4gcHJvcHMucmVnaW9uO1xuICB9XG5cbiAgLy8gZXh0cmFjdCB0YWJsZSBidWNrZXQgcmVnaW9uIGZyb20gYnVja2V0IGFyblxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICBjb25zdCByZWdpb25Gcm9tQXJuID0gY2RrLlN0YWNrLm9mKGNvbnN0cnVjdCkuc3BsaXRBcm4ocHJvcHMudGFibGVCdWNrZXRBcm4sIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVnaW9uO1xuICAgIGlmIChyZWdpb25Gcm9tQXJuKSB7XG4gICAgICByZXR1cm4gcmVnaW9uRnJvbUFybjtcbiAgICB9XG4gIH1cblxuICAvLyBSZWdpb24gaXMgb3B0aW9uYWwsIGNhbiBiZSBpbmZlcnJlZCBsYXRlclxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldEFjY291bnQoY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgYWNjb3VudCwgdXNlIGl0LlxuICBpZiAocHJvcHMuYWNjb3VudCkge1xuICAgIHJldHVybiBwcm9wcy5hY2NvdW50O1xuICB9XG5cbiAgLy8gZXh0cmFjdCB0YWJsZSBidWNrZXQgYWNjb3VudCBmcm9tIGJ1Y2tldCBhcm5cbiAgaWYgKHByb3BzLnRhYmxlQnVja2V0QXJuKSB7XG4gICAgY29uc3QgYWNjb3VudEZyb21Bcm4gPSBjZGsuU3RhY2sub2YoY29uc3RydWN0KS5zcGxpdEFybihwcm9wcy50YWJsZUJ1Y2tldEFybiwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5hY2NvdW50O1xuICAgIGlmIChhY2NvdW50RnJvbUFybikge1xuICAgICAgcmV0dXJuIGFjY291bnRGcm9tQXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjY291bnQgaXMgb3B0aW9uYWwsIGNhbiBiZSBpbmZlcnJlZCBsYXRlclxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHBvcHVsYXRlZCBhdHRyaWJ1dGVzIGZyb20gZ2l2ZW4gc2NvcGUgYW5kIGF0dHJpYnV0ZXNcbiAqIEB0aHJvd3MgVmFsaWRhdGlvbkVycm9yIGlmIGFueSBvZiB0aGUgcmVxdWlyZWQgYXR0cmlidXJlcyBhcmUgbWlzc2luZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKSB7XG4gIHJldHVybiB7XG4gICAgdGFibGVCdWNrZXROYW1lOiBwYXJzZVRhYmxlQnVja2V0TmFtZShjb25zdHJ1Y3QsIHByb3BzKSxcbiAgICBhY2NvdW50OiBwYXJzZVRhYmxlQnVja2V0QWNjb3VudChjb25zdHJ1Y3QsIHByb3BzKSxcbiAgICByZWdpb246IHBhcnNlVGFibGVCdWNrZXRSZWdpb24oY29uc3RydWN0LCBwcm9wcyksXG4gICAgdGFibGVCdWNrZXRBcm46IHBhcnNlVGFibGVCdWNrZXRBcm4oY29uc3RydWN0LCBwcm9wcyksXG4gIH07XG59XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0Esa0RBa0JDO0FBRUQsb0RBZUM7QUFFRCx3REFnQkM7QUFFRCwwREFnQkM7QUFNRCxzRUFPQztBQTNGRCx3Q0FBd0M7QUFDeEMsNEVBQTREO0FBSS9DLFFBQUEsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0FBRTVDLFNBQWdCLG1CQUFtQixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDckYsbURBQW1EO0lBQ25ELElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixPQUFPLEVBQUUseUJBQWlCO1lBQzFCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFlBQVksRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNuQyxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSwwQkFBMEIsRUFBRSxrRUFBa0UsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM5SSxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUN0Riw4Q0FBOEM7SUFDOUMsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQy9CLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ2pJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLHlCQUF5QixFQUFFLG9FQUFvRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQy9JLENBQUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxTQUFxQixFQUFFLEtBQTRCO0lBQ3hGLGdEQUFnRDtJQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZILElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDekYsaURBQWlEO0lBQ2pELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekgsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUMvRixPQUFPO1FBQ0wsZUFBZSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDdkQsT0FBTyxFQUFFLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDbEQsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDaEQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7S0FDdEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB0eXBlIHsgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMgfSBmcm9tICcuL3RhYmxlLWJ1Y2tldCc7XG5cbmV4cG9ydCBjb25zdCBTM19UQUJMRVNfU0VSVklDRSA9ICdzM3RhYmxlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRhYmxlQnVja2V0QXJuKGNvbnN0cnVjdDogSUNvbnN0cnVjdCwgcHJvcHM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyk6IHN0cmluZyB7XG4gIC8vIGlmIHdlIGhhdmUgYW4gZXhwbGljaXQgdGFibGUgYnVja2V0IEFSTiwgdXNlIGl0LlxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICByZXR1cm4gcHJvcHMudGFibGVCdWNrZXRBcm47XG4gIH1cblxuICBpZiAocHJvcHMudGFibGVCdWNrZXROYW1lKSB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihjb25zdHJ1Y3QpLmZvcm1hdEFybih7XG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzLmFjY291bnQsXG4gICAgICBzZXJ2aWNlOiBTM19UQUJMRVNfU0VSVklDRSxcbiAgICAgIHJlc291cmNlOiAnYnVja2V0JyxcbiAgICAgIHJlc291cmNlTmFtZTogcHJvcHMudGFibGVCdWNrZXROYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ2Fubm90RGV0ZXJtaW5lQnVja2V0QXJuYCwgJ0Nhbm5vdCBkZXRlcm1pbmUgYnVja2V0IEFSTi4gQXQgbGVhc3QgYHRhYmxlQnVja2V0QXJuYCBpcyBuZWVkZWQnLCBjb25zdHJ1Y3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldE5hbWUoY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKTogc3RyaW5nIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgbmFtZSwgdXNlIGl0LlxuICBpZiAocHJvcHMudGFibGVCdWNrZXROYW1lKSB7XG4gICAgcmV0dXJuIHByb3BzLnRhYmxlQnVja2V0TmFtZTtcbiAgfVxuXG4gIC8vIGV4dHJhY3QgdGFibGUgYnVja2V0IG5hbWUgZnJvbSBidWNrZXQgYXJuXG4gIGlmIChwcm9wcy50YWJsZUJ1Y2tldEFybikge1xuICAgIGNvbnN0IGJ1Y2tldE5hbWVGcm9tQXJuID0gY2RrLlN0YWNrLm9mKGNvbnN0cnVjdCkuc3BsaXRBcm4ocHJvcHMudGFibGVCdWNrZXRBcm4sIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuICAgIGlmIChidWNrZXROYW1lRnJvbUFybikge1xuICAgICAgcmV0dXJuIGJ1Y2tldE5hbWVGcm9tQXJuO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBUYWJsZUJ1Y2tldE5hbWVSZXF1aXJlZGAsICd0YWJsZUJ1Y2tldE5hbWUgaXMgcmVxdWlyZWQgYW5kIGNvdWxkIG5vdCBiZSBpbmZlcnJlZCBmcm9tIGNvbnRleHQnLCBjb25zdHJ1Y3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldFJlZ2lvbihjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IGJ1Y2tldCByZWdpb24sIHVzZSBpdC5cbiAgaWYgKHByb3BzLnJlZ2lvbikge1xuICAgIHJldHVybiBwcm9wcy5yZWdpb247XG4gIH1cblxuICAvLyBleHRyYWN0IHRhYmxlIGJ1Y2tldCByZWdpb24gZnJvbSBidWNrZXQgYXJuXG4gIGlmIChwcm9wcy50YWJsZUJ1Y2tldEFybikge1xuICAgIGNvbnN0IHJlZ2lvbkZyb21Bcm4gPSBjZGsuU3RhY2sub2YoY29uc3RydWN0KS5zcGxpdEFybihwcm9wcy50YWJsZUJ1Y2tldEFybiwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZWdpb247XG4gICAgaWYgKHJlZ2lvbkZyb21Bcm4pIHtcbiAgICAgIHJldHVybiByZWdpb25Gcm9tQXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlZ2lvbiBpcyBvcHRpb25hbCwgY2FuIGJlIGluZmVycmVkIGxhdGVyXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRhYmxlQnVja2V0QWNjb3VudChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IGJ1Y2tldCBhY2NvdW50LCB1c2UgaXQuXG4gIGlmIChwcm9wcy5hY2NvdW50KSB7XG4gICAgcmV0dXJuIHByb3BzLmFjY291bnQ7XG4gIH1cblxuICAvLyBleHRyYWN0IHRhYmxlIGJ1Y2tldCBhY2NvdW50IGZyb20gYnVja2V0IGFyblxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICBjb25zdCBhY2NvdW50RnJvbUFybiA9IGNkay5TdGFjay5vZihjb25zdHJ1Y3QpLnNwbGl0QXJuKHByb3BzLnRhYmxlQnVja2V0QXJuLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLmFjY291bnQ7XG4gICAgaWYgKGFjY291bnRGcm9tQXJuKSB7XG4gICAgICByZXR1cm4gYWNjb3VudEZyb21Bcm47XG4gICAgfVxuICB9XG5cbiAgLy8gQWNjb3VudCBpcyBvcHRpb25hbCwgY2FuIGJlIGluZmVycmVkIGxhdGVyXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQHJldHVybnMgcG9wdWxhdGVkIGF0dHJpYnV0ZXMgZnJvbSBnaXZlbiBzY29wZSBhbmQgYXR0cmlidXRlc1xuICogQHRocm93cyBWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG9mIHRoZSByZXF1aXJlZCBhdHRyaWJ1cmVzIGFyZSBtaXNzaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyhjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpIHtcbiAgcmV0dXJuIHtcbiAgICB0YWJsZUJ1Y2tldE5hbWU6IHBhcnNlVGFibGVCdWNrZXROYW1lKGNvbnN0cnVjdCwgcHJvcHMpLFxuICAgIGFjY291bnQ6IHBhcnNlVGFibGVCdWNrZXRBY2NvdW50KGNvbnN0cnVjdCwgcHJvcHMpLFxuICAgIHJlZ2lvbjogcGFyc2VUYWJsZUJ1Y2tldFJlZ2lvbihjb25zdHJ1Y3QsIHByb3BzKSxcbiAgICB0YWJsZUJ1Y2tldEFybjogcGFyc2VUYWJsZUJ1Y2tldEFybihjb25zdHJ1Y3QsIHByb3BzKSxcbiAgfTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-s3tables-alpha",
3
3
  "private": false,
4
- "version": "2.246.0-alpha.0",
4
+ "version": "2.248.0-alpha.0",
5
5
  "description": "CDK Constructs for S3 Tables",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -77,17 +77,17 @@
77
77
  },
78
78
  "license": "Apache-2.0",
79
79
  "devDependencies": {
80
- "aws-cdk-lib": "2.246.0",
81
- "@aws-cdk/cdk-build-tools": "2.246.0-alpha.0",
82
- "@aws-cdk/pkglint": "2.246.0-alpha.0",
80
+ "aws-cdk-lib": "2.248.0",
81
+ "@aws-cdk/cdk-build-tools": "2.248.0-alpha.0",
82
+ "@aws-cdk/pkglint": "2.248.0-alpha.0",
83
83
  "@types/jest": "^29.5.14",
84
84
  "constructs": "^10.5.0",
85
85
  "jest": "^29.7.0",
86
- "@aws-cdk/integ-tests-alpha": "2.246.0-alpha.0"
86
+ "@aws-cdk/integ-tests-alpha": "2.248.0-alpha.0"
87
87
  },
88
88
  "homepage": "https://github.com/aws/aws-cdk",
89
89
  "peerDependencies": {
90
- "aws-cdk-lib": "^2.246.0",
90
+ "aws-cdk-lib": "^2.248.0",
91
91
  "constructs": "^10.5.0"
92
92
  },
93
93
  "separate-module": false,