@aws-cdk/aws-imagebuilder-alpha 2.257.0-alpha.0 → 2.258.1-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.
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  * The parameter value for a component parameter
7
7
  */
8
8
  class ComponentParameterValue {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ComponentParameterValue", version: "2.257.0-alpha.0" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ComponentParameterValue", version: "2.258.1-alpha.0" };
10
10
  /**
11
11
  * The value of the parameter as a string
12
12
  *
package/lib/workflow.js CHANGED
@@ -1,4 +1,20 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
19
  var useValue = arguments.length > 2;
4
20
  for (var i = 0; i < initializers.length; i++) {
@@ -33,18 +49,35 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
33
49
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
34
50
  done = true;
35
51
  };
52
+ var __importStar = (this && this.__importStar) || (function () {
53
+ var ownKeys = function(o) {
54
+ ownKeys = Object.getOwnPropertyNames || function (o) {
55
+ var ar = [];
56
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
57
+ return ar;
58
+ };
59
+ return ownKeys(o);
60
+ };
61
+ return function (mod) {
62
+ if (mod && mod.__esModule) return mod;
63
+ var result = {};
64
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
65
+ __setModuleDefault(result, mod);
66
+ return result;
67
+ };
68
+ })();
36
69
  Object.defineProperty(exports, "__esModule", { value: true });
37
70
  exports.Workflow = exports.WorkflowParameterValue = exports.S3WorkflowData = exports.WorkflowData = exports.WorkflowType = exports.WorkflowSchemaVersion = exports.WorkflowParameterType = exports.WorkflowOnFailure = exports.WorkflowAction = void 0;
38
71
  const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
39
72
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
40
- const cdk = require("aws-cdk-lib");
41
- const iam = require("aws-cdk-lib/aws-iam");
73
+ const cdk = __importStar(require("aws-cdk-lib"));
74
+ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
42
75
  const aws_imagebuilder_1 = require("aws-cdk-lib/aws-imagebuilder");
43
- const s3assets = require("aws-cdk-lib/aws-s3-assets");
76
+ const s3assets = __importStar(require("aws-cdk-lib/aws-s3-assets"));
44
77
  const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
45
78
  const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
46
79
  const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
47
- const yaml = require("yaml");
80
+ const yaml = __importStar(require("yaml"));
48
81
  const WORKFLOW_SYMBOL = Symbol.for('@aws-cdk/aws-imagebuilder-alpha.Workflow');
49
82
  /**
50
83
  * Represents the latest version of a workflow. When using the workflow in a pipeline, the pipeline will use the
@@ -202,7 +235,7 @@ var WorkflowType;
202
235
  * Helper class for referencing and uploading workflow data
203
236
  */
204
237
  class WorkflowData {
205
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowData", version: "2.257.0-alpha.0" };
238
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowData", version: "2.258.1-alpha.0" };
206
239
  /**
207
240
  * Uploads workflow data from a local file to S3 to use as the workflow data
208
241
  *
@@ -247,7 +280,7 @@ exports.WorkflowData = WorkflowData;
247
280
  * Helper class for S3-based workflow data references, containing additional permission grant methods on the S3 object
248
281
  */
249
282
  class S3WorkflowData extends WorkflowData {
250
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.S3WorkflowData", version: "2.257.0-alpha.0" };
283
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.S3WorkflowData", version: "2.258.1-alpha.0" };
251
284
  bucket;
252
285
  key;
253
286
  constructor(bucket, key) {
@@ -308,7 +341,7 @@ class S3WorkflowDataFromAsset extends S3WorkflowData {
308
341
  * The parameter value for a workflow parameter
309
342
  */
310
343
  class WorkflowParameterValue {
311
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowParameterValue", version: "2.257.0-alpha.0" };
344
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowParameterValue", version: "2.258.1-alpha.0" };
312
345
  /**
313
346
  * The value of the parameter as a boolean
314
347
  *
@@ -404,7 +437,7 @@ let Workflow = (() => {
404
437
  Workflow = _classThis = _classDescriptor.value;
405
438
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
406
439
  }
407
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Workflow", version: "2.257.0-alpha.0" };
440
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Workflow", version: "2.258.1-alpha.0" };
408
441
  /** Uniquely identifies this class. */
409
442
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.Workflow';
410
443
  /**
@@ -554,4 +587,4 @@ let Workflow = (() => {
554
587
  return Workflow = _classThis;
555
588
  })();
556
589
  exports.Workflow = Workflow;
557
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLG1FQUEyRDtBQUczRCxzREFBc0Q7QUFDdEQsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsNkJBQTZCO0FBRTdCLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUUvRTs7Ozs7R0FLRztBQUNILE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQztBQThJL0I7O0dBRUc7QUFDSCxJQUFZLGNBNEZYO0FBNUZELFdBQVksY0FBYztJQUN4Qjs7O09BR0c7SUFDSCx5RUFBdUQsQ0FBQTtJQUV2RDs7O09BR0c7SUFDSCxvRkFBa0UsQ0FBQTtJQUVsRTs7O09BR0c7SUFDSCxpRUFBK0MsQ0FBQTtJQUUvQzs7T0FFRztJQUNILDBFQUF3RCxDQUFBO0lBRXhEOztPQUVHO0lBQ0gsOENBQTRCLENBQUE7SUFFNUI7OztPQUdHO0lBQ0gsc0RBQW9DLENBQUE7SUFFcEM7O09BRUc7SUFDSCwwREFBd0MsQ0FBQTtJQUV4Qzs7O09BR0c7SUFDSCwrREFBNkMsQ0FBQTtJQUU3Qzs7O09BR0c7SUFDSCxvREFBa0MsQ0FBQTtJQUVsQzs7T0FFRztJQUNILG1FQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsNENBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCxrREFBZ0MsQ0FBQTtJQUVoQzs7T0FFRztJQUNILDZDQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsd0RBQXNDLENBQUE7SUFFdEM7O09BRUc7SUFDSCwwREFBd0MsQ0FBQTtJQUV4Qzs7O09BR0c7SUFDSCxtREFBaUMsQ0FBQTtJQUVqQzs7T0FFRztJQUNILHdEQUFzQyxDQUFBO0FBQ3hDLENBQUMs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QVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuV29ya2Zsb3cgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW1hZ2VidWlsZGVyJztcbmltcG9ydCB0eXBlICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHR5cGUgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNhc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciwgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICd5YW1sJztcblxuY29uc3QgV09SS0ZMT1dfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWltYWdlYnVpbGRlci1hbHBoYS5Xb3JrZmxvdycpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGEgd29ya2Zsb3cuIFdoZW4gdXNpbmcgdGhlIHdvcmtmbG93IGluIGEgcGlwZWxpbmUsIHRoZSBwaXBlbGluZSB3aWxsIHVzZSB0aGVcbiAqIGxhdGVzdCB3b3JrZmxvdyBhdCB0aGUgdGltZSBvZiBleGVjdXRpb24uXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWJob3ctc2VtYW50aWMtdmVyc2lvbmluZy5odG1sXG4gKi9cbmNvbnN0IExBVEVTVF9WRVJTSU9OID0gJ3gueC54JztcblxuLyoqXG4gKiBBbiBFQzIgSW1hZ2UgQnVpbGRlciBXb3JrZmxvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV29ya2Zsb3cgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IGN1c3RvbSBhY3Rpb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBXb3JrZmxvdyByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogVGhlIHdvcmtmbG93IGRvY3VtZW50IGNvbnRlbnQgdGhhdCBkZWZpbmVzIHRoZSBpbWFnZSBjcmVhdGlvbiBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogV29ya2Zsb3dEYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgcGhhc2UgaW4gdGhlIGltYWdlIGJ1aWxkIHByb2Nlc3MgZm9yIHdoaWNoIHRoZSB3b3JrZmxvdyByZXNvdXJjZSBpcyByZXNwb25zaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuYW1lIGlzIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEuMC4wXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIGRlc2NyaXB0aW9uIG9mIHRoZSB3b3JrZmxvdy4gRGVzY3JpYmVzIHdoYXQgY2hhbmdlIGhhcyBiZWVuIG1hZGUgaW4gdGhpcyB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvdywgb3JcbiAgICogd2hhdCBtYWtlcyB0aGlzIHZlcnNpb24gZGlmZmVyZW50IGZyb20gb3RoZXIgdmVyc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhpcyB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbiBJbWFnZSBCdWlsZGVyIG93bmVkIGtleSB3aWxsIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEVDMiBJbWFnZSBCdWlsZGVyIFdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIEFSTiBpcyBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdGVkIGlmIGEgd29ya2Zsb3dOYW1lIGFuZCB3b3JrZmxvd1R5cGUgaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBhXG4gICAqIHdvcmtmbG93QXJuIGlzIHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0Fybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIG5hbWUgaXMgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBpZiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgYSB3b3JrZmxvd05hbWUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHR5cGUgaXMgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBpZiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgYSB3b3JrZmxvd1R5cGUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZT86IFdvcmtmbG93VHlwZTtcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IHgueC54XG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiBmb3IgYSBzdGVwIHdpdGhpbiB0aGUgd29ya2Zsb3cgZG9jdW1lbnRcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dBY3Rpb24ge1xuICAvKipcbiAgICogQXBwbGllcyBjdXN0b21pemF0aW9ucyBhbmQgY29uZmlndXJhdGlvbnMgdG8gdGhlIGlucHV0IEFNSXMsIHN1Y2ggYXMgcHVibGlzaGluZyB0aGUgQU1JIHRvIFNTTSBQYXJhbWV0ZXIgU3RvcmUsXG4gICAqIG9yIGNyZWF0aW5nIGxhdW5jaCB0ZW1wbGF0ZSB2ZXJzaW9ucyB3aXRoIHRoZSBBTUkgSURzIHByb3ZpZGVkIGluIHRoZSBpbnB1dFxuICAgKi9cbiAgQVBQTFlfSU1BR0VfQ09ORklHVVJBVElPTlMgPSAnQXBwbHlJbWFnZUNvbmZpZ3VyYXRpb25zJyxcblxuICAvKipcbiAgICogVGhlIEJvb3RzdHJhcEluc3RhbmNlRm9yQ29udGFpbmVyIGFjdGlvbiBydW5zIGEgc2VydmljZSBzY3JpcHQgdG8gYm9vdHN0cmFwIHRoZSBpbnN0YW5jZSB3aXRoIG1pbmltdW0gcmVxdWlyZW1lbnRzXG4gICAqIHRvIHJ1biBjb250YWluZXIgd29ya2Zsb3dzXG4gICAqL1xuICBCT09UU1RSQVBfSU5TVEFOQ0VfRk9SX0NPTlRBSU5FUiA9ICdCb290c3RyYXBJbnN0YW5jZUZvckNvbnRhaW5lcicsXG5cbiAgLyoqXG4gICAqIFRoZSBDb2xsZWN0SW1hZ2VNZXRhZGF0YSBhY3Rpb24gY29sbGVjdHMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW5zdGFuY2UsIHN1Y2ggYXMgdGhlIGxpc3Qgb2YgcGFja2FnZXNcbiAgICogYW5kIHRoZWlyIHJlc3BlY3RpdmUgdmVyc2lvbnNcbiAgICovXG4gIENPTExFQ1RfSU1BR0VfTUVUQURBVEEgPSAnQ29sbGVjdEltYWdlTWV0YWRhdGEnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ29sbGVjdEltYWdlU2NhbkZpbmRpbmdzIGFjdGlvbiBjb2xsZWN0cyBmaW5kaW5ncyByZXBvcnRlZCBieSBBbWF6b24gSW5zcGVjdG9yIGZvciB0aGUgcHJvdmlkZWQgaW5zdGFuY2VcbiAgICovXG4gIENPTExFQ1RfSU1BR0VfU0NBTl9GSU5ESU5HUyA9ICdDb2xsZWN0SW1hZ2VTY2FuRmluZGluZ3MnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ3JlYXRlSW1hZ2UgYWN0aW9uIGNyZWF0ZXMgYW4gQU1JIGZyb20gYSBydW5uaW5nIGluc3RhbmNlIHdpdGggdGhlIGVjMjpDcmVhdGVJbWFnZSBBUElcbiAgICovXG4gIENSRUFURV9JTUFHRSA9ICdDcmVhdGVJbWFnZScsXG5cbiAgLyoqXG4gICAqIFRoZSBEaXN0cmlidXRlSW1hZ2UgYWN0aW9uIGNvcGllcyBhbiBBTUkgdXNpbmcgdGhlIGltYWdlJ3MgZGlzdHJpYnV0aW9uIGNvbmZpZ3VyYXRpb24sIG9yIHVzaW5nIHRoZSBkaXN0cmlidXRpb25cbiAgICogc2V0dGluZ3MgaW4gdGhlIHN0ZXAgaW5wdXRcbiAgICovXG4gIERJU1RSSUJVVEVfSU1BR0UgPSAnRGlzdHJpYnV0ZUltYWdlJyxcblxuICAvKipcbiAgICogVGhlIEV4ZWN1dGVDb21wb25lbnRzIGFjdGlvbiBydW5zIGNvbXBvbmVudHMgdGhhdCBhcmUgc3BlY2lmaWVkIGluIHRoZSByZWNpcGUgZm9yIHRoZSBjdXJyZW50IGltYWdlIGJlaW5nIGJ1aWx0XG4gICAqL1xuICBFWEVDVVRFX0NPTVBPTkVOVFMgPSAnRXhlY3V0ZUNvbXBvbmVudHMnLFxuXG4gIC8qKlxuICAgKiBUaGUgRXhlY3V0ZVN0YXRlTWFjaGluZSBhY3Rpb24gZXhlY3V0ZXMgYSB0aGUgc3RhdGUgbWFjaGluZSBwcm92aWRlZCBhbmQgd2FpdHMgZm9yIGNvbXBsZXRpb24gYXMgcGFydCBvZiB0aGVcbiAgICogd29ya2Zsb3dcbiAgICovXG4gIEVYRUNVVEVfU1RBVEVfTUFDSElORSA9ICdFeGVjdXRlU3RhdGVNYWNoaW5lJyxcblxuICAvKipcbiAgICogVGhlIExhdW5jaEluc3RhbmNlIGFjdGlvbiBsYXVuY2hlcyBhbiBpbnN0YW5jZSB1c2luZyB0aGUgc2V0dGluZ3MgZnJvbSB5b3VyIHJlY2lwZSBhbmQgaW5mcmFzdHJ1Y3R1cmUgY29uZmlndXJhdGlvblxuICAgKiByZXNvdXJjZXNcbiAgICovXG4gIExBVU5DSF9JTlNUQU5DRSA9ICdMYXVuY2hJbnN0YW5jZScsXG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgYXR0cmlidXRlIHVwZGF0ZXMgdG8gdGhlIHByb3ZpZGVkIHNldCBvZiBkaXN0cmlidXRlZCBpbWFnZXMsIHN1Y2ggYXMgbGF1bmNoIHBlcm1pc3Npb24gdXBkYXRlc1xuICAgKi9cbiAgTU9ESUZZX0lNQUdFX0FUVFJJQlVURVMgPSAnTW9kaWZ5SW1hZ2VBdHRyaWJ1dGVzJyxcblxuICAvKipcbiAgICogVGhlIFJ1bkNvbW1hbmQgYWN0aW9uIHJ1bnMgYSBjb21tYW5kIGRvY3VtZW50IGFnYWluc3QgdGhlIHByb3ZpZGVkIGluc3RhbmNlXG4gICAqL1xuICBSVU5fQ09NTUFORCA9ICdSdW5Db21tYW5kJyxcblxuICAvKipcbiAgICogVGhlIFJlZ2lzdGVySW1hZ2UgYWN0aW9uIGNyZWF0ZXMgYW4gQU1JIGZyb20gYSBzZXQgb2Ygc25hcHNob3RzIHdpdGggdGhlIGVjMjpSZWdpc3RlckltYWdlIEFQSVxuICAgKi9cbiAgUkVHSVNURVJfSU1BR0UgPSAnUmVnaXN0ZXJJbWFnZScsXG5cbiAgLyoqXG4gICAqIFRoZSBSdW5TeXNwcmVwIGFjdGlvbiBydW5zIHRoZSBTeXNwcmVwIGRvY3VtZW50IG9uIHRoZSBwcm92aWRlZCBXaW5kb3dzIGluc3RhbmNlXG4gICAqL1xuICBSVU5fU1lTX1BSRVAgPSAnUnVuU3lzUHJlcCcsXG5cbiAgLyoqXG4gICAqIFRoZSBTYW5pdGl6ZUluc3RhbmNlIGFjdGlvbiBydW5zIGEgcmVjb21tZW5kZWQgc2FuaXRpemF0aW9uIHNjcmlwdCBvbiBMaW51eCBpbnN0YW5jZXNcbiAgICovXG4gIFNBTklUSVpFX0lOU1RBTkNFID0gJ1Nhbml0aXplSW5zdGFuY2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgVGVybWluYXRlSW5zdGFuY2UgYWN0aW9uIHRlcm1pbmF0ZXMgdGhlIHByb3ZpZGVkIGluc3RhbmNlXG4gICAqL1xuICBURVJNSU5BVEVfSU5TVEFOQ0UgPSAnVGVybWluYXRlSW5zdGFuY2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgV2FpdEZvckFjdGlvbiBhY3Rpb24gcGF1c2VzIHRoZSB3b3JrZmxvdyBhbmQgd2FpdHMgdG8gcmVjZWl2ZSBhbiBleHRlcm5hbCBzaWduYWwgZnJvbSB0aGVcbiAgICogaW1hZ2VidWlsZGVyOlNlbmRXb3JrZmxvd1N0ZXBBY3Rpb24gQVBJXG4gICAqL1xuICBXQUlUX0ZPUl9BQ1RJT04gPSAnV2FpdEZvckFjdGlvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBXYWl0Rm9yU1NNQWdlbnQgYWN0aW9uIHdhaXRzIGZvciB0aGUgZ2l2ZW4gaW5zdGFuY2UgdG8gaGF2ZSBjb25uZWN0aXZpdHkgd2l0aCBTU00gYmVmb3JlIHByb2NlZWRpbmdcbiAgICovXG4gIFdBSVRfRk9SX1NTTV9BR0VOVCA9ICdXYWl0Rm9yU1NNQWdlbnQnLFxufVxuXG4vKipcbiAqIFRoZSBhY3Rpb24gdG8gdGFrZSBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dPbkZhaWx1cmUge1xuICAvKipcbiAgICogRmFpbHMgdGhlIGltYWdlIGJ1aWxkIGlmIHRoZSB3b3JrZmxvdyBmYWlsc1xuICAgKi9cbiAgQUJPUlQgPSAnQWJvcnQnLFxuXG4gIC8qKlxuICAgKiBDb250aW51ZXMgd2l0aCB0aGUgaW1hZ2UgYnVpbGQgaWYgdGhlIHdvcmtmbG93IGZhaWxzXG4gICAqL1xuICBDT05USU5VRSA9ICdDb250aW51ZScsXG59XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB0eXBlIGZvciB0aGUgd29ya2Zsb3cgcGFyYW1ldGVyXG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93UGFyYW1ldGVyVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYSBib29sZWFuIHZhbHVlXG4gICAqL1xuICBCT09MRUFOID0gJ2Jvb2xlYW4nLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYW4gaW50ZWdlciB2YWx1ZVxuICAgKi9cbiAgSU5URUdFUiA9ICdpbnRlZ2VyJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXIgaGFzIGEgc3RyaW5nIHZhbHVlXG4gICAqL1xuICBTVFJJTkcgPSAnc3RyaW5nJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXIgaGFzIGEgc3RyaW5nIGxpc3QgdmFsdWVcbiAgICovXG4gIFNUUklOR19MSVNUID0gJ3N0cmluZ0xpc3QnLFxufVxuXG4vKipcbiAqIFRoZSBzY2hlbWEgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dTY2hlbWFWZXJzaW9uIHtcbiAgLyoqXG4gICAqIFNjaGVtYSB2ZXJzaW9uIDEuMCBmb3IgdGhlIHdvcmtmbG93IGRvY3VtZW50XG4gICAqL1xuICBWMV8wID0gJzEuMCcsXG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93VHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IGlzIGZvciBidWlsZGluZyBpbWFnZXNcbiAgICovXG4gIEJVSUxEID0gJ0JVSUxEJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBpcyBmb3IgdGVzdGluZyBpbWFnZXNcbiAgICovXG4gIFRFU1QgPSAnVEVTVCcsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgd29ya2Zsb3cgaXMgZm9yIGRpc3RyaWJ1dGluZyBpbWFnZXNcbiAgICovXG4gIERJU1RSSUJVVElPTiA9ICdESVNUUklCVVRJT04nLFxufVxuXG4vKipcbiAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHZhbHVlLCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uLlxuICogLSBGb3IgaW5saW5lIHdvcmtmbG93cywgZGF0YSBpcyB0aGUgd29ya2Zsb3cgdGV4dFxuICogLSBGb3IgUzMtYmFja2VkIHdvcmtmbG93cywgdXJpIGlzIHRoZSBTMyBVUkxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0RhdGFDb25maWcge1xuICAvKipcbiAgICogVGhlIHJlbmRlcmVkIHdvcmtmbG93IGRhdGEsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIHVyaSBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIFVSSSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgZGF0YSBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IHVyaT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHJlZmVyZW5jaW5nIGFuZCB1cGxvYWRpbmcgd29ya2Zsb3cgZGF0YVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya2Zsb3dEYXRhIHtcbiAgLyoqXG4gICAqIFVwbG9hZHMgd29ya2Zsb3cgZGF0YSBmcm9tIGEgbG9jYWwgZmlsZSB0byBTMyB0byB1c2UgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gcGF0aCBUaGUgbG9jYWwgcGF0aCB0byB0aGUgd29ya2Zsb3cgZGF0YSBmaWxlXG4gICAqIEBwYXJhbSBvcHRpb25zIFMzIGFzc2V0IHVwbG9hZCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHt9LFxuICApOiBTM1dvcmtmbG93RGF0YSB7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgczNhc3NldHMuQXNzZXQoc2NvcGUsIGlkLCB7IC4uLm9wdGlvbnMsIHBhdGggfSk7XG4gICAgcmV0dXJuIG5ldyBTM1dvcmtmbG93RGF0YUZyb21Bc3NldChhc3NldCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlcyB3b3JrZmxvdyBkYXRhIGZyb20gYSBwcmUtZXhpc3RpbmcgUzMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldCB3aGVyZSB0aGUgd29ya2Zsb3cgZGF0YSBpcyBzdG9yZWRcbiAgICogQHBhcmFtIGtleSBUaGUgUzMga2V5IG9mIHRoZSB3b3JrZmxvdyBkYXRhIGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzKGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBTM1dvcmtmbG93RGF0YSB7XG4gICAgcmV0dXJuIG5ldyBTM1dvcmtmbG93RGF0YUZyb21CdWNrZXRLZXkoYnVja2V0LCBrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgYW4gaW5saW5lIEpTT04gb2JqZWN0IGFzIHRoZSB3b3JrZmxvdyBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIEFuIGlubGluZSBKU09OIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHdvcmtmbG93IGRhdGFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUpzb25PYmplY3QoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFdvcmtmbG93RGF0YSB7XG4gICAgY29uc3QgaW5saW5lRGF0YSA9IHlhbWwuc3RyaW5naWZ5KGRhdGEsIHsgaW5kZW50OiAyIH0pO1xuICAgIHJldHVybiBuZXcgSW5saW5lV29ya2Zsb3dEYXRhKGlubGluZURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgYW4gaW5saW5lIEpTT04gb3IgWUFNTCBzdHJpbmcgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgQW4gaW5saW5lIEpTT04gb3IgWUFNTCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB3b3JrZmxvdyBkYXRhXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoZGF0YTogc3RyaW5nKTogV29ya2Zsb3dEYXRhIHtcbiAgICByZXR1cm4gbmV3IElubGluZVdvcmtmbG93RGF0YShkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB2YWx1ZSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvbi5cbiAgICogLSBGb3IgaW5saW5lIHdvcmtmbG93cywgZGF0YSBpcyB0aGUgd29ya2Zsb3cgdGV4dFxuICAgKiAtIEZvciBTMy1iYWNrZWQgd29ya2Zsb3dzLCB1cmkgaXMgdGhlIFMzIFVSTFxuICAgKi9cbiAgYWJzdHJhY3QgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIFMzLWJhc2VkIHdvcmtmbG93IGRhdGEgcmVmZXJlbmNlcywgY29udGFpbmluZyBhZGRpdGlvbmFsIHBlcm1pc3Npb24gZ3JhbnQgbWV0aG9kcyBvbiB0aGUgUzMgb2JqZWN0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTM1dvcmtmbG93RGF0YSBleHRlbmRzIFdvcmtmbG93RGF0YSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IGJ1Y2tldDtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB0ZXh0LCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZyB7XG4gICAgcmV0dXJuIHsgdXJpOiB0aGlzLmJ1Y2tldC5zM1VybEZvck9iamVjdCh0aGlzLmtleSkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwdXQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvdyBkYXRhIGluIFMzXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRQdXQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFB1dChncmFudGVlLCB0aGlzLmtleSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHdvcmtmbG93IGRhdGEgaW4gUzNcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoZ3JhbnRlZSwgdGhpcy5rZXkpO1xuICB9XG59XG5cbmNsYXNzIElubGluZVdvcmtmbG93RGF0YSBleHRlbmRzIFdvcmtmbG93RGF0YSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHRleHQsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogV29ya2Zsb3dEYXRhQ29uZmlnIHtcbiAgICByZXR1cm4geyBkYXRhOiB0aGlzLmRhdGEgfTtcbiAgfVxufVxuXG5jbGFzcyBTM1dvcmtmbG93RGF0YUZyb21CdWNrZXRLZXkgZXh0ZW5kcyBTM1dvcmtmbG93RGF0YSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYnVja2V0LCBrZXkpO1xuICB9XG59XG5cbmNsYXNzIFMzV29ya2Zsb3dEYXRhRnJvbUFzc2V0IGV4dGVuZHMgUzNXb3JrZmxvd0RhdGEge1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXNzZXQ6IHMzYXNzZXRzLkFzc2V0KSB7XG4gICAgc3VwZXIoYXNzZXQuYnVja2V0LCBhc3NldC5zM09iamVjdEtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVyIHZhbHVlIGZvciBhIHdvcmtmbG93IHBhcmFtZXRlclxuICovXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIGJvb2xlYW5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBib29sZWFuIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJvb2xlYW4odmFsdWU6IGJvb2xlYW4pOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlLnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhbiBpbnRlZ2VyXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgaW50ZWdlciB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbnRlZ2VyKHZhbHVlOiBudW1iZXIpOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlLnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAgIHJldHVybiBuZXcgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZShbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZyBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZXMgVGhlIHN0cmluZyBsaXN0IHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ0xpc3QodmFsdWVzOiBzdHJpbmdbXSk6IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAgIHJldHVybiBuZXcgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSh2YWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgYSB3b3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2Zsb3cgdG8gZXhlY3V0ZSBpbiB0aGUgaW1hZ2UgYnVpbGRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93OiBJV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdGFrZSBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAgICpcbiAgICogQGRlZmF1bHQgV29ya2Zsb3dPbkZhaWx1cmUuQUJPUlRcbiAgICovXG4gIHJlYWRvbmx5IG9uRmFpbHVyZT86IFdvcmtmbG93T25GYWlsdXJlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZWQgcGFyYWxsZWwgZ3JvdXAgdG8gaW5jbHVkZSB0aGlzIHdvcmtmbG93IGluLiBXb3JrZmxvd3MgaW4gdGhlIHNhbWUgcGFyYWxsZWwgZ3JvdXAgcnVuIGluIHBhcmFsbGVsIG9mIGVhY2hcbiAgICogb3RoZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFsbGVsR3JvdXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHdvcmtmbG93IGF0IGV4ZWN1dGlvbiB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiB0aGUgd29ya2Zsb3cgaGFzIG5vIHBhcmFtZXRlcnMsIG90aGVyd2lzZSB0aGUgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB9O1xufVxuXG4vKipcbiAqIEEgbmV3IG9yIGltcG9ydGVkIFdvcmtmbG93XG4gKi9cbmFic3RyYWN0IGNsYXNzIFdvcmtmbG93QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElXb3JrZmxvdyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd1R5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy53b3JrZmxvd0Fybl0sXG4gICAgICBzY29wZTogdGhpcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgd29ya2Zsb3dcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsICdpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3cnKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gRUMyIEltYWdlIEJ1aWxkZXIgV29ya2Zsb3cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvbWFuYWdlLWltYWdlLXdvcmtmbG93cy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBXb3JrZmxvdyBleHRlbmRzIFdvcmtmbG93QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWltYWdlYnVpbGRlci1hbHBoYS5Xb3JrZmxvdyc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB3b3JrZmxvdyBnaXZlbiBpdHMgQVJOLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tV29ya2Zsb3dBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgd29ya2Zsb3dBcm46IHN0cmluZyk6IElXb3JrZmxvdyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgd29ya2Zsb3dBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHdvcmtmbG93IGJ5IHByb3ZpZGluZyBpdHMgYXR0cmlidXRlcy4gVGhlIHByb3ZpZGVkIG5hbWUgbXVzdCBiZSBub3JtYWxpemVkIGJ5IGNvbnZlcnRpbmdcbiAgICogYWxsIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXJzIHRvIGxvd2VyY2FzZSwgYW5kIHJlcGxhY2luZyBhbGwgc3BhY2VzIGFuZCB1bmRlcnNjb3JlcyB3aXRoIGh5cGhlbnMuIFlvdSBtYXkgbm90XG4gICAqIHByb3ZpZGUgYSBkeW5hbWljIGV4cHJlc3Npb24gZm9yIHRoZSB3b3JrZmxvd0FybiBvciB3b3JrZmxvd1R5cGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVdvcmtmbG93QXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogV29ya2Zsb3dBdHRyaWJ1dGVzKTogSVdvcmtmbG93IHtcbiAgICBpZiAoXG4gICAgICBhdHRycy53b3JrZmxvd0FybiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXR0cnMud29ya2Zsb3dOYW1lICE9PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dUeXBlICE9PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dWZXJzaW9uICE9PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YENvbmZsaWN0aW5nV29ya2Zsb3dBdHRyaWJ1dGVzYCxcbiAgICAgICAgJ2Egd29ya2Zsb3dOYW1lLCB3b3JrZmxvd1R5cGUsIG9yIHdvcmtmbG93VmVyc2lvbiBjYW5ub3QgYmUgcHJvdmlkZWQgd2hlbiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkJyxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhdHRycy53b3JrZmxvd0FybiA9PT0gdW5kZWZpbmVkICYmIChhdHRycy53b3JrZmxvd05hbWUgPT09IHVuZGVmaW5lZCB8fCBhdHRycy53b3JrZmxvd1R5cGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBFaXRoZXJXb3JrZmxvd0Fybk9yTmFtZUFuZFR5cGVSZXF1aXJlZGAsICdlaXRoZXIgd29ya2Zsb3dBcm4sIG9yIHdvcmtmbG93TmFtZSBhbmQgd29ya2Zsb3dUeXBlIGlzIHJlcXVpcmVkJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGlmIChhdHRycy53b3JrZmxvd1R5cGUgJiYgY2RrLlRva2VuLmlzVW5yZXNvbHZlZChhdHRycy53b3JrZmxvd1R5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgV29ya2Zsb3dUeXBlQ2Fubm90QmVVbnJlc29sdmVkYCwgJ3dvcmtmbG93VHlwZSBjYW5ub3QgYmUgYW4gdW5yZXNvbHZlZCB0b2tlbicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrZmxvd0FybiA9ICgoKSA9PiB7XG4gICAgICBpZiAoYXR0cnMud29ya2Zsb3dBcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYXR0cnMud29ya2Zsb3dBcm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICByZXNvdXJjZTogJ3dvcmtmbG93JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy53b3JrZmxvd1R5cGUhLnRvTG93ZXJDYXNlKCl9LyR7YXR0cnMud29ya2Zsb3dOYW1lIX0vJHthdHRycy53b3JrZmxvd1ZlcnNpb24gPz8gTEFURVNUX1ZFUlNJT059YCxcbiAgICAgIH0pO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBbd29ya2Zsb3dUeXBlLCB3b3JrZmxvd05hbWUsIHdvcmtmbG93VmVyc2lvbl0gPSAoKCkgPT4ge1xuICAgICAgaWYgKGF0dHJzLndvcmtmbG93TmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbYXR0cnMud29ya2Zsb3dUeXBlIS50b1VwcGVyQ2FzZSgpLCBhdHRycy53b3JrZmxvd05hbWUsIGF0dHJzLndvcmtmbG93VmVyc2lvbiA/PyBMQVRFU1RfVkVSU0lPTl07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybihcbiAgICAgICAgd29ya2Zsb3dBcm4sXG4gICAgICAgIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICkucmVzb3VyY2VOYW1lITtcblxuICAgICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQod29ya2Zsb3dOYW1lVHlwZVZlcnNpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBXb3JrZmxvd0FybkNhbm5vdEJlVW5yZXNvbHZlZGAsXG4gICAgICAgICAgJ3RoZSB3b3JrZmxvd05hbWUsIHdvcmtmbG93VHlwZSwgYW5kIHdvcmtmbG93VmVyc2lvbiBpbiB0aGUgd29ya2Zsb3dBcm4gY2Fubm90IGJlIGFuIHVucmVzb2x2ZWQgdG9rZW4nLFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAod29ya2Zsb3dOYW1lVHlwZVZlcnNpb24uc3BsaXQoJy8nKS5sZW5ndGggPCAzKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBJbnZhbGlkV29ya2Zsb3dBcm5Gb3JtYXRgLFxuICAgICAgICAgICd0aGUgd29ya2Zsb3cgQVJOIG11c3QgZW5kIHdpdGggPHdvcmtmbG93LXR5cGU+Lzx3b3JrZmxvdy1uYW1lPi88d29ya2Zsb3ctdmVyc2lvbj4nLFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB3b3JrZmxvd05hbWVUeXBlVmVyc2lvblNwbGl0ID0gd29ya2Zsb3dOYW1lVHlwZVZlcnNpb24uc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IFt3b3JrZmxvd1R5cGVGcm9tQXJuLCB3b3JrZmxvd05hbWVGcm9tQXJuLCB3b3JrZmxvd1ZlcnNpb25Gcm9tQXJuXSA9IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uU3BsaXQuc2xpY2UoXG4gICAgICAgIDAsXG4gICAgICAgIDMsXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gW3dvcmtmbG93VHlwZUZyb21Bcm4udG9VcHBlckNhc2UoKSwgd29ya2Zsb3dOYW1lRnJvbUFybiwgd29ya2Zsb3dWZXJzaW9uRnJvbUFybl07XG4gICAgfSkoKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFdvcmtmbG93QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dBcm4gPSB3b3JrZmxvd0FybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd05hbWUgPSB3b3JrZmxvd05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dUeXBlID0gd29ya2Zsb3dUeXBlO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbiA9IHdvcmtmbG93VmVyc2lvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBXb3JrZmxvdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNXb3JrZmxvdyh4OiBhbnkpOiB4IGlzIFdvcmtmbG93IHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgV09SS0ZMT1dfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVzb3VyY2U6IENmbldvcmtmbG93O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV29ya2Zsb3dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOlxuICAgICAgICBwcm9wcy53b3JrZmxvd05hbWUgPz9cbiAgICAgICAgY2RrLkxhenkuc3RyaW5nKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgICAgY2RrLk5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgICAgICAgIG1heExlbmd0aDogMTI4LFxuICAgICAgICAgICAgICBzZXBhcmF0b3I6ICctJyxcbiAgICAgICAgICAgICAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnLScsXG4gICAgICAgICAgICB9KS50b0xvd2VyQ2FzZSgpLCAvLyBFbmZvcmNlIGxvd2VyY2FzZSBmb3IgdGhlIGF1dG8tZ2VuZXJhdGVkIGZhbGxiYWNrXG4gICAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFdPUktGTE9XX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudmFsaWRhdGVXb3JrZmxvd05hbWUoKTtcblxuICAgIGNvbnN0IHdvcmtmbG93VmVyc2lvbiA9IHByb3BzLndvcmtmbG93VmVyc2lvbiA/PyAnMS4wLjAnO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuV29ya2Zsb3codGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICB2ZXJzaW9uOiB3b3JrZmxvd1ZlcnNpb24sXG4gICAgICB0eXBlOiBwcm9wcy53b3JrZmxvd1R5cGUsXG4gICAgICBjaGFuZ2VEZXNjcmlwdGlvbjogcHJvcHMuY2hhbmdlRGVzY3JpcHRpb24sXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBrbXNLZXlJZDogcHJvcHMua21zS2V5Py5rZXlBcm4sXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgLi4ucHJvcHMuZGF0YS5yZW5kZXIoKSxcbiAgICB9KTtcblxuICAgIHRoaXMud29ya2Zsb3dWZXJzaW9uID0gd29ya2Zsb3dWZXJzaW9uO1xuICAgIHRoaXMud29ya2Zsb3dUeXBlID0gcHJvcHMud29ya2Zsb3dUeXBlO1xuICB9XG5cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgd29ya2Zsb3dOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdOYW1lJykudG9TdHJpbmcoKSk7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB3b3JrZmxvd0FybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJBcm47XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlV29ya2Zsb3dOYW1lKCkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucGh5c2ljYWxOYW1lKSkge1xuICAgICAgcmV0dXJuOyAvLyBDYW5ub3QgdmFsaWRhdGUgdW5yZXNvbHZlZCB0b2tlbnMsIGdpdmVuIHRoZWlyIGFjdHVhbCB2YWx1ZSBpcyByZW5kZXJlZCBhdCBkZXBsb3ltZW50IHRpbWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgV29ya2Zsb3dOYW1lVG9vTG9uZ2AsICd0aGUgd29ya2Zsb3dOYW1lIGNhbm5vdCBiZSBsb25nZXIgdGhhbiAxMjggY2hhcmFjdGVycycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZS5pbmNsdWRlcygnICcpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgV29ya2Zsb3dOYW1lQ29udGFpbnNTcGFjZXNgLCAndGhlIHdvcmtmbG93TmFtZSBjYW5ub3QgY29udGFpbiBzcGFjZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUuaW5jbHVkZXMoJ18nKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFdvcmtmbG93TmFtZUNvbnRhaW5zVW5kZXJzY29yZXNgLCAndGhlIHdvcmtmbG93TmFtZSBjYW5ub3QgY29udGFpbiB1bmRlcnNjb3JlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZSAhPT0gdGhpcy5waHlzaWNhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFdvcmtmbG93TmFtZU5vdExvd2VyY2FzZWAsICd0aGUgd29ya2Zsb3dOYW1lIG11c3QgYmUgbG93ZXJjYXNlJywgdGhpcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
590
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBbUM7QUFDbkMseURBQTJDO0FBQzNDLG1FQUEyRDtBQUczRCxvRUFBc0Q7QUFDdEQsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsMkNBQTZCO0FBRTdCLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUUvRTs7Ozs7R0FLRztBQUNILE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQztBQThJL0I7O0dBRUc7QUFDSCxJQUFZLGNBNEZYO0FBNUZELFdBQVksY0FBYztJQUN4Qjs7O09BR0c7SUFDSCx5RUFBdUQsQ0FBQTtJQUV2RDs7O09BR0c7SUFDSCxvRkFBa0UsQ0FBQTtJQUVsRTs7O09BR0c7SUFDSCxpRUFBK0MsQ0FBQTtJQUUvQzs7T0FFRztJQUNILDBFQUF3RCxDQUFBO0lBRXhEOztPQUVHO0lBQ0gsOENBQTRCLENBQUE7SUFFNUI7OztPQUdHO0lBQ0gsc0RBQW9DLENBQUE7SUFFcEM7O09BRUc7SUFDSCwwREFBd0MsQ0FBQTtJQUV4Qzs7O09BR0c7SUFDSCwrREFBNkMsQ0FBQTtJQUU3Qzs7O09BR0c7SUFDSCxvREFBa0MsQ0FBQTtJQUVsQzs7T0FFRztJQUNILG1FQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsNENBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCxrREFBZ0MsQ0FBQTtJQUVoQzs7T0FFRztJQUNILDZDQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsd0RBQXNDLENBQUE7SUFFdEM7O09BRUc7SUFDSCwwREFBd0MsQ0FBQTtJQUV4Qzs7O09BR0c7SUFDSCxtREFBaUMsQ0FBQTtJQUVqQzs7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QUM7U0FDRjs7WUFsTFUsdURBQVE7Ozs7O0FBQVIsNEJBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuV29ya2Zsb3cgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW1hZ2VidWlsZGVyJztcbmltcG9ydCB0eXBlICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHR5cGUgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNhc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciwgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICd5YW1sJztcblxuY29uc3QgV09SS0ZMT1dfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWltYWdlYnVpbGRlci1hbHBoYS5Xb3JrZmxvdycpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGEgd29ya2Zsb3cuIFdoZW4gdXNpbmcgdGhlIHdvcmtmbG93IGluIGEgcGlwZWxpbmUsIHRoZSBwaXBlbGluZSB3aWxsIHVzZSB0aGVcbiAqIGxhdGVzdCB3b3JrZmxvdyBhdCB0aGUgdGltZSBvZiBleGVjdXRpb24uXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWJob3ctc2VtYW50aWMtdmVyc2lvbmluZy5odG1sXG4gKi9cbmNvbnN0IExBVEVTVF9WRVJTSU9OID0gJ3gueC54JztcblxuLyoqXG4gKiBBbiBFQzIgSW1hZ2UgQnVpbGRlciBXb3JrZmxvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV29ya2Zsb3cgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IGN1c3RvbSBhY3Rpb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBXb3JrZmxvdyByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogVGhlIHdvcmtmbG93IGRvY3VtZW50IGNvbnRlbnQgdGhhdCBkZWZpbmVzIHRoZSBpbWFnZSBjcmVhdGlvbiBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogV29ya2Zsb3dEYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgcGhhc2UgaW4gdGhlIGltYWdlIGJ1aWxkIHByb2Nlc3MgZm9yIHdoaWNoIHRoZSB3b3JrZmxvdyByZXNvdXJjZSBpcyByZXNwb25zaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuYW1lIGlzIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEuMC4wXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIGRlc2NyaXB0aW9uIG9mIHRoZSB3b3JrZmxvdy4gRGVzY3JpYmVzIHdoYXQgY2hhbmdlIGhhcyBiZWVuIG1hZGUgaW4gdGhpcyB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvdywgb3JcbiAgICogd2hhdCBtYWtlcyB0aGlzIHZlcnNpb24gZGlmZmVyZW50IGZyb20gb3RoZXIgdmVyc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhpcyB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbiBJbWFnZSBCdWlsZGVyIG93bmVkIGtleSB3aWxsIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEVDMiBJbWFnZSBCdWlsZGVyIFdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIEFSTiBpcyBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdGVkIGlmIGEgd29ya2Zsb3dOYW1lIGFuZCB3b3JrZmxvd1R5cGUgaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBhXG4gICAqIHdvcmtmbG93QXJuIGlzIHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0Fybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIG5hbWUgaXMgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBpZiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgYSB3b3JrZmxvd05hbWUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHR5cGUgaXMgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBpZiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgYSB3b3JrZmxvd1R5cGUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZT86IFdvcmtmbG93VHlwZTtcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IHgueC54XG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiBmb3IgYSBzdGVwIHdpdGhpbiB0aGUgd29ya2Zsb3cgZG9jdW1lbnRcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dBY3Rpb24ge1xuICAvKipcbiAgICogQXBwbGllcyBjdXN0b21pemF0aW9ucyBhbmQgY29uZmlndXJhdGlvbnMgdG8gdGhlIGlucHV0IEFNSXMsIHN1Y2ggYXMgcHVibGlzaGluZyB0aGUgQU1JIHRvIFNTTSBQYXJhbWV0ZXIgU3RvcmUsXG4gICAqIG9yIGNyZWF0aW5nIGxhdW5jaCB0ZW1wbGF0ZSB2ZXJzaW9ucyB3aXRoIHRoZSBBTUkgSURzIHByb3ZpZGVkIGluIHRoZSBpbnB1dFxuICAgKi9cbiAgQVBQTFlfSU1BR0VfQ09ORklHVVJBVElPTlMgPSAnQXBwbHlJbWFnZUNvbmZpZ3VyYXRpb25zJyxcblxuICAvKipcbiAgICogVGhlIEJvb3RzdHJhcEluc3RhbmNlRm9yQ29udGFpbmVyIGFjdGlvbiBydW5zIGEgc2VydmljZSBzY3JpcHQgdG8gYm9vdHN0cmFwIHRoZSBpbnN0YW5jZSB3aXRoIG1pbmltdW0gcmVxdWlyZW1lbnRzXG4gICAqIHRvIHJ1biBjb250YWluZXIgd29ya2Zsb3dzXG4gICAqL1xuICBCT09UU1RSQVBfSU5TVEFOQ0VfRk9SX0NPTlRBSU5FUiA9ICdCb290c3RyYXBJbnN0YW5jZUZvckNvbnRhaW5lcicsXG5cbiAgLyoqXG4gICAqIFRoZSBDb2xsZWN0SW1hZ2VNZXRhZGF0YSBhY3Rpb24gY29sbGVjdHMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW5zdGFuY2UsIHN1Y2ggYXMgdGhlIGxpc3Qgb2YgcGFja2FnZXNcbiAgICogYW5kIHRoZWlyIHJlc3BlY3RpdmUgdmVyc2lvbnNcbiAgICovXG4gIENPTExFQ1RfSU1BR0VfTUVUQURBVEEgPSAnQ29sbGVjdEltYWdlTWV0YWRhdGEnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ29sbGVjdEltYWdlU2NhbkZpbmRpbmdzIGFjdGlvbiBjb2xsZWN0cyBmaW5kaW5ncyByZXBvcnRlZCBieSBBbWF6b24gSW5zcGVjdG9yIGZvciB0aGUgcHJvdmlkZWQgaW5zdGFuY2VcbiAgICovXG4gIENPTExFQ1RfSU1BR0VfU0NBTl9GSU5ESU5HUyA9ICdDb2xsZWN0SW1hZ2VTY2FuRmluZGluZ3MnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ3JlYXRlSW1hZ2UgYWN0aW9uIGNyZWF0ZXMgYW4gQU1JIGZyb20gYSBydW5uaW5nIGluc3RhbmNlIHdpdGggdGhlIGVjMjpDcmVhdGVJbWFnZSBBUElcbiAgICovXG4gIENSRUFURV9JTUFHRSA9ICdDcmVhdGVJbWFnZScsXG5cbiAgLyoqXG4gICAqIFRoZSBEaXN0cmlidXRlSW1hZ2UgYWN0aW9uIGNvcGllcyBhbiBBTUkgdXNpbmcgdGhlIGltYWdlJ3MgZGlzdHJpYnV0aW9uIGNvbmZpZ3VyYXRpb24sIG9yIHVzaW5nIHRoZSBkaXN0cmlidXRpb25cbiAgICogc2V0dGluZ3MgaW4gdGhlIHN0ZXAgaW5wdXRcbiAgICovXG4gIERJU1RSSUJVVEVfSU1BR0UgPSAnRGlzdHJpYnV0ZUltYWdlJyxcblxuICAvKipcbiAgICogVGhlIEV4ZWN1dGVDb21wb25lbnRzIGFjdGlvbiBydW5zIGNvbXBvbmVudHMgdGhhdCBhcmUgc3BlY2lmaWVkIGluIHRoZSByZWNpcGUgZm9yIHRoZSBjdXJyZW50IGltYWdlIGJlaW5nIGJ1aWx0XG4gICAqL1xuICBFWEVDVVRFX0NPTVBPTkVOVFMgPSAnRXhlY3V0ZUNvbXBvbmVudHMnLFxuXG4gIC8qKlxuICAgKiBUaGUgRXhlY3V0ZVN0YXRlTWFjaGluZSBhY3Rpb24gZXhlY3V0ZXMgYSB0aGUgc3RhdGUgbWFjaGluZSBwcm92aWRlZCBhbmQgd2FpdHMgZm9yIGNvbXBsZXRpb24gYXMgcGFydCBvZiB0aGVcbiAgICogd29ya2Zsb3dcbiAgICovXG4gIEVYRUNVVEVfU1RBVEVfTUFDSElORSA9ICdFeGVjdXRlU3RhdGVNYWNoaW5lJyxcblxuICAvKipcbiAgICogVGhlIExhdW5jaEluc3RhbmNlIGFjdGlvbiBsYXVuY2hlcyBhbiBpbnN0YW5jZSB1c2luZyB0aGUgc2V0dGluZ3MgZnJvbSB5b3VyIHJlY2lwZSBhbmQgaW5mcmFzdHJ1Y3R1cmUgY29uZmlndXJhdGlvblxuICAgKiByZXNvdXJjZXNcbiAgICovXG4gIExBVU5DSF9JTlNUQU5DRSA9ICdMYXVuY2hJbnN0YW5jZScsXG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgYXR0cmlidXRlIHVwZGF0ZXMgdG8gdGhlIHByb3ZpZGVkIHNldCBvZiBkaXN0cmlidXRlZCBpbWFnZXMsIHN1Y2ggYXMgbGF1bmNoIHBlcm1pc3Npb24gdXBkYXRlc1xuICAgKi9cbiAgTU9ESUZZX0lNQUdFX0FUVFJJQlVURVMgPSAnTW9kaWZ5SW1hZ2VBdHRyaWJ1dGVzJyxcblxuICAvKipcbiAgICogVGhlIFJ1bkNvbW1hbmQgYWN0aW9uIHJ1bnMgYSBjb21tYW5kIGRvY3VtZW50IGFnYWluc3QgdGhlIHByb3ZpZGVkIGluc3RhbmNlXG4gICAqL1xuICBSVU5fQ09NTUFORCA9ICdSdW5Db21tYW5kJyxcblxuICAvKipcbiAgICogVGhlIFJlZ2lzdGVySW1hZ2UgYWN0aW9uIGNyZWF0ZXMgYW4gQU1JIGZyb20gYSBzZXQgb2Ygc25hcHNob3RzIHdpdGggdGhlIGVjMjpSZWdpc3RlckltYWdlIEFQSVxuICAgKi9cbiAgUkVHSVNURVJfSU1BR0UgPSAnUmVnaXN0ZXJJbWFnZScsXG5cbiAgLyoqXG4gICAqIFRoZSBSdW5TeXNwcmVwIGFjdGlvbiBydW5zIHRoZSBTeXNwcmVwIGRvY3VtZW50IG9uIHRoZSBwcm92aWRlZCBXaW5kb3dzIGluc3RhbmNlXG4gICAqL1xuICBSVU5fU1lTX1BSRVAgPSAnUnVuU3lzUHJlcCcsXG5cbiAgLyoqXG4gICAqIFRoZSBTYW5pdGl6ZUluc3RhbmNlIGFjdGlvbiBydW5zIGEgcmVjb21tZW5kZWQgc2FuaXRpemF0aW9uIHNjcmlwdCBvbiBMaW51eCBpbnN0YW5jZXNcbiAgICovXG4gIFNBTklUSVpFX0lOU1RBTkNFID0gJ1Nhbml0aXplSW5zdGFuY2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgVGVybWluYXRlSW5zdGFuY2UgYWN0aW9uIHRlcm1pbmF0ZXMgdGhlIHByb3ZpZGVkIGluc3RhbmNlXG4gICAqL1xuICBURVJNSU5BVEVfSU5TVEFOQ0UgPSAnVGVybWluYXRlSW5zdGFuY2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgV2FpdEZvckFjdGlvbiBhY3Rpb24gcGF1c2VzIHRoZSB3b3JrZmxvdyBhbmQgd2FpdHMgdG8gcmVjZWl2ZSBhbiBleHRlcm5hbCBzaWduYWwgZnJvbSB0aGVcbiAgICogaW1hZ2VidWlsZGVyOlNlbmRXb3JrZmxvd1N0ZXBBY3Rpb24gQVBJXG4gICAqL1xuICBXQUlUX0ZPUl9BQ1RJT04gPSAnV2FpdEZvckFjdGlvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBXYWl0Rm9yU1NNQWdlbnQgYWN0aW9uIHdhaXRzIGZvciB0aGUgZ2l2ZW4gaW5zdGFuY2UgdG8gaGF2ZSBjb25uZWN0aXZpdHkgd2l0aCBTU00gYmVmb3JlIHByb2NlZWRpbmdcbiAgICovXG4gIFdBSVRfRk9SX1NTTV9BR0VOVCA9ICdXYWl0Rm9yU1NNQWdlbnQnLFxufVxuXG4vKipcbiAqIFRoZSBhY3Rpb24gdG8gdGFrZSBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dPbkZhaWx1cmUge1xuICAvKipcbiAgICogRmFpbHMgdGhlIGltYWdlIGJ1aWxkIGlmIHRoZSB3b3JrZmxvdyBmYWlsc1xuICAgKi9cbiAgQUJPUlQgPSAnQWJvcnQnLFxuXG4gIC8qKlxuICAgKiBDb250aW51ZXMgd2l0aCB0aGUgaW1hZ2UgYnVpbGQgaWYgdGhlIHdvcmtmbG93IGZhaWxzXG4gICAqL1xuICBDT05USU5VRSA9ICdDb250aW51ZScsXG59XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB0eXBlIGZvciB0aGUgd29ya2Zsb3cgcGFyYW1ldGVyXG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93UGFyYW1ldGVyVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYSBib29sZWFuIHZhbHVlXG4gICAqL1xuICBCT09MRUFOID0gJ2Jvb2xlYW4nLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYW4gaW50ZWdlciB2YWx1ZVxuICAgKi9cbiAgSU5URUdFUiA9ICdpbnRlZ2VyJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXIgaGFzIGEgc3RyaW5nIHZhbHVlXG4gICAqL1xuICBTVFJJTkcgPSAnc3RyaW5nJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXIgaGFzIGEgc3RyaW5nIGxpc3QgdmFsdWVcbiAgICovXG4gIFNUUklOR19MSVNUID0gJ3N0cmluZ0xpc3QnLFxufVxuXG4vKipcbiAqIFRoZSBzY2hlbWEgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dTY2hlbWFWZXJzaW9uIHtcbiAgLyoqXG4gICAqIFNjaGVtYSB2ZXJzaW9uIDEuMCBmb3IgdGhlIHdvcmtmbG93IGRvY3VtZW50XG4gICAqL1xuICBWMV8wID0gJzEuMCcsXG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93VHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IGlzIGZvciBidWlsZGluZyBpbWFnZXNcbiAgICovXG4gIEJVSUxEID0gJ0JVSUxEJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBpcyBmb3IgdGVzdGluZyBpbWFnZXNcbiAgICovXG4gIFRFU1QgPSAnVEVTVCcsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgd29ya2Zsb3cgaXMgZm9yIGRpc3RyaWJ1dGluZyBpbWFnZXNcbiAgICovXG4gIERJU1RSSUJVVElPTiA9ICdESVNUUklCVVRJT04nLFxufVxuXG4vKipcbiAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHZhbHVlLCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uLlxuICogLSBGb3IgaW5saW5lIHdvcmtmbG93cywgZGF0YSBpcyB0aGUgd29ya2Zsb3cgdGV4dFxuICogLSBGb3IgUzMtYmFja2VkIHdvcmtmbG93cywgdXJpIGlzIHRoZSBTMyBVUkxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0RhdGFDb25maWcge1xuICAvKipcbiAgICogVGhlIHJlbmRlcmVkIHdvcmtmbG93IGRhdGEsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIHVyaSBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIFVSSSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgZGF0YSBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IHVyaT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHJlZmVyZW5jaW5nIGFuZCB1cGxvYWRpbmcgd29ya2Zsb3cgZGF0YVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya2Zsb3dEYXRhIHtcbiAgLyoqXG4gICAqIFVwbG9hZHMgd29ya2Zsb3cgZGF0YSBmcm9tIGEgbG9jYWwgZmlsZSB0byBTMyB0byB1c2UgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gcGF0aCBUaGUgbG9jYWwgcGF0aCB0byB0aGUgd29ya2Zsb3cgZGF0YSBmaWxlXG4gICAqIEBwYXJhbSBvcHRpb25zIFMzIGFzc2V0IHVwbG9hZCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHt9LFxuICApOiBTM1dvcmtmbG93RGF0YSB7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgczNhc3NldHMuQXNzZXQoc2NvcGUsIGlkLCB7IC4uLm9wdGlvbnMsIHBhdGggfSk7XG4gICAgcmV0dXJuIG5ldyBTM1dvcmtmbG93RGF0YUZyb21Bc3NldChhc3NldCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlcyB3b3JrZmxvdyBkYXRhIGZyb20gYSBwcmUtZXhpc3RpbmcgUzMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldCB3aGVyZSB0aGUgd29ya2Zsb3cgZGF0YSBpcyBzdG9yZWRcbiAgICogQHBhcmFtIGtleSBUaGUgUzMga2V5IG9mIHRoZSB3b3JrZmxvdyBkYXRhIGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzKGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBTM1dvcmtmbG93RGF0YSB7XG4gICAgcmV0dXJuIG5ldyBTM1dvcmtmbG93RGF0YUZyb21CdWNrZXRLZXkoYnVja2V0LCBrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgYW4gaW5saW5lIEpTT04gb2JqZWN0IGFzIHRoZSB3b3JrZmxvdyBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIEFuIGlubGluZSBKU09OIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHdvcmtmbG93IGRhdGFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUpzb25PYmplY3QoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFdvcmtmbG93RGF0YSB7XG4gICAgY29uc3QgaW5saW5lRGF0YSA9IHlhbWwuc3RyaW5naWZ5KGRhdGEsIHsgaW5kZW50OiAyIH0pO1xuICAgIHJldHVybiBuZXcgSW5saW5lV29ya2Zsb3dEYXRhKGlubGluZURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgYW4gaW5saW5lIEpTT04gb3IgWUFNTCBzdHJpbmcgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgQW4gaW5saW5lIEpTT04gb3IgWUFNTCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB3b3JrZmxvdyBkYXRhXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoZGF0YTogc3RyaW5nKTogV29ya2Zsb3dEYXRhIHtcbiAgICByZXR1cm4gbmV3IElubGluZVdvcmtmbG93RGF0YShkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB2YWx1ZSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvbi5cbiAgICogLSBGb3IgaW5saW5lIHdvcmtmbG93cywgZGF0YSBpcyB0aGUgd29ya2Zsb3cgdGV4dFxuICAgKiAtIEZvciBTMy1iYWNrZWQgd29ya2Zsb3dzLCB1cmkgaXMgdGhlIFMzIFVSTFxuICAgKi9cbiAgYWJzdHJhY3QgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIFMzLWJhc2VkIHdvcmtmbG93IGRhdGEgcmVmZXJlbmNlcywgY29udGFpbmluZyBhZGRpdGlvbmFsIHBlcm1pc3Npb24gZ3JhbnQgbWV0aG9kcyBvbiB0aGUgUzMgb2JqZWN0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTM1dvcmtmbG93RGF0YSBleHRlbmRzIFdvcmtmbG93RGF0YSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IGJ1Y2tldDtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB0ZXh0LCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZyB7XG4gICAgcmV0dXJuIHsgdXJpOiB0aGlzLmJ1Y2tldC5zM1VybEZvck9iamVjdCh0aGlzLmtleSkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwdXQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvdyBkYXRhIGluIFMzXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRQdXQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFB1dChncmFudGVlLCB0aGlzLmtleSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHdvcmtmbG93IGRhdGEgaW4gUzNcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoZ3JhbnRlZSwgdGhpcy5rZXkpO1xuICB9XG59XG5cbmNsYXNzIElubGluZVdvcmtmbG93RGF0YSBleHRlbmRzIFdvcmtmbG93RGF0YSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHRleHQsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogV29ya2Zsb3dEYXRhQ29uZmlnIHtcbiAgICByZXR1cm4geyBkYXRhOiB0aGlzLmRhdGEgfTtcbiAgfVxufVxuXG5jbGFzcyBTM1dvcmtmbG93RGF0YUZyb21CdWNrZXRLZXkgZXh0ZW5kcyBTM1dvcmtmbG93RGF0YSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYnVja2V0LCBrZXkpO1xuICB9XG59XG5cbmNsYXNzIFMzV29ya2Zsb3dEYXRhRnJvbUFzc2V0IGV4dGVuZHMgUzNXb3JrZmxvd0RhdGEge1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXNzZXQ6IHMzYXNzZXRzLkFzc2V0KSB7XG4gICAgc3VwZXIoYXNzZXQuYnVja2V0LCBhc3NldC5zM09iamVjdEtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVyIHZhbHVlIGZvciBhIHdvcmtmbG93IHBhcmFtZXRlclxuICovXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIGJvb2xlYW5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBib29sZWFuIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJvb2xlYW4odmFsdWU6IGJvb2xlYW4pOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlLnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhbiBpbnRlZ2VyXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgaW50ZWdlciB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbnRlZ2VyKHZhbHVlOiBudW1iZXIpOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlLnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAgIHJldHVybiBuZXcgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZShbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZyBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZXMgVGhlIHN0cmluZyBsaXN0IHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ0xpc3QodmFsdWVzOiBzdHJpbmdbXSk6IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAgIHJldHVybiBuZXcgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSh2YWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgYSB3b3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2Zsb3cgdG8gZXhlY3V0ZSBpbiB0aGUgaW1hZ2UgYnVpbGRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93OiBJV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdGFrZSBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAgICpcbiAgICogQGRlZmF1bHQgV29ya2Zsb3dPbkZhaWx1cmUuQUJPUlRcbiAgICovXG4gIHJlYWRvbmx5IG9uRmFpbHVyZT86IFdvcmtmbG93T25GYWlsdXJlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZWQgcGFyYWxsZWwgZ3JvdXAgdG8gaW5jbHVkZSB0aGlzIHdvcmtmbG93IGluLiBXb3JrZmxvd3MgaW4gdGhlIHNhbWUgcGFyYWxsZWwgZ3JvdXAgcnVuIGluIHBhcmFsbGVsIG9mIGVhY2hcbiAgICogb3RoZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFsbGVsR3JvdXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHdvcmtmbG93IGF0IGV4ZWN1dGlvbiB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiB0aGUgd29ya2Zsb3cgaGFzIG5vIHBhcmFtZXRlcnMsIG90aGVyd2lzZSB0aGUgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB9O1xufVxuXG4vKipcbiAqIEEgbmV3IG9yIGltcG9ydGVkIFdvcmtmbG93XG4gKi9cbmFic3RyYWN0IGNsYXNzIFdvcmtmbG93QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElXb3JrZmxvdyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd1R5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy53b3JrZmxvd0Fybl0sXG4gICAgICBzY29wZTogdGhpcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgd29ya2Zsb3dcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsICdpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3cnKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gRUMyIEltYWdlIEJ1aWxkZXIgV29ya2Zsb3cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvbWFuYWdlLWltYWdlLXdvcmtmbG93cy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBXb3JrZmxvdyBleHRlbmRzIFdvcmtmbG93QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWltYWdlYnVpbGRlci1hbHBoYS5Xb3JrZmxvdyc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB3b3JrZmxvdyBnaXZlbiBpdHMgQVJOLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tV29ya2Zsb3dBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgd29ya2Zsb3dBcm46IHN0cmluZyk6IElXb3JrZmxvdyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgd29ya2Zsb3dBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHdvcmtmbG93IGJ5IHByb3ZpZGluZyBpdHMgYXR0cmlidXRlcy4gVGhlIHByb3ZpZGVkIG5hbWUgbXVzdCBiZSBub3JtYWxpemVkIGJ5IGNvbnZlcnRpbmdcbiAgICogYWxsIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXJzIHRvIGxvd2VyY2FzZSwgYW5kIHJlcGxhY2luZyBhbGwgc3BhY2VzIGFuZCB1bmRlcnNjb3JlcyB3aXRoIGh5cGhlbnMuIFlvdSBtYXkgbm90XG4gICAqIHByb3ZpZGUgYSBkeW5hbWljIGV4cHJlc3Npb24gZm9yIHRoZSB3b3JrZmxvd0FybiBvciB3b3JrZmxvd1R5cGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVdvcmtmbG93QXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogV29ya2Zsb3dBdHRyaWJ1dGVzKTogSVdvcmtmbG93IHtcbiAgICBpZiAoXG4gICAgICBhdHRycy53b3JrZmxvd0FybiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXR0cnMud29ya2Zsb3dOYW1lICE9PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dUeXBlICE9PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dWZXJzaW9uICE9PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YENvbmZsaWN0aW5nV29ya2Zsb3dBdHRyaWJ1dGVzYCxcbiAgICAgICAgJ2Egd29ya2Zsb3dOYW1lLCB3b3JrZmxvd1R5cGUsIG9yIHdvcmtmbG93VmVyc2lvbiBjYW5ub3QgYmUgcHJvdmlkZWQgd2hlbiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkJyxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhdHRycy53b3JrZmxvd0FybiA9PT0gdW5kZWZpbmVkICYmIChhdHRycy53b3JrZmxvd05hbWUgPT09IHVuZGVmaW5lZCB8fCBhdHRycy53b3JrZmxvd1R5cGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBFaXRoZXJXb3JrZmxvd0Fybk9yTmFtZUFuZFR5cGVSZXF1aXJlZGAsICdlaXRoZXIgd29ya2Zsb3dBcm4sIG9yIHdvcmtmbG93TmFtZSBhbmQgd29ya2Zsb3dUeXBlIGlzIHJlcXVpcmVkJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGlmIChhdHRycy53b3JrZmxvd1R5cGUgJiYgY2RrLlRva2VuLmlzVW5yZXNvbHZlZChhdHRycy53b3JrZmxvd1R5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgV29ya2Zsb3dUeXBlQ2Fubm90QmVVbnJlc29sdmVkYCwgJ3dvcmtmbG93VHlwZSBjYW5ub3QgYmUgYW4gdW5yZXNvbHZlZCB0b2tlbicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrZmxvd0FybiA9ICgoKSA9PiB7XG4gICAgICBpZiAoYXR0cnMud29ya2Zsb3dBcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYXR0cnMud29ya2Zsb3dBcm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICByZXNvdXJjZTogJ3dvcmtmbG93JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy53b3JrZmxvd1R5cGUhLnRvTG93ZXJDYXNlKCl9LyR7YXR0cnMud29ya2Zsb3dOYW1lIX0vJHthdHRycy53b3JrZmxvd1ZlcnNpb24gPz8gTEFURVNUX1ZFUlNJT059YCxcbiAgICAgIH0pO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBbd29ya2Zsb3dUeXBlLCB3b3JrZmxvd05hbWUsIHdvcmtmbG93VmVyc2lvbl0gPSAoKCkgPT4ge1xuICAgICAgaWYgKGF0dHJzLndvcmtmbG93TmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbYXR0cnMud29ya2Zsb3dUeXBlIS50b1VwcGVyQ2FzZSgpLCBhdHRycy53b3JrZmxvd05hbWUsIGF0dHJzLndvcmtmbG93VmVyc2lvbiA/PyBMQVRFU1RfVkVSU0lPTl07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybihcbiAgICAgICAgd29ya2Zsb3dBcm4sXG4gICAgICAgIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICkucmVzb3VyY2VOYW1lITtcblxuICAgICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQod29ya2Zsb3dOYW1lVHlwZVZlcnNpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBXb3JrZmxvd0FybkNhbm5vdEJlVW5yZXNvbHZlZGAsXG4gICAgICAgICAgJ3RoZSB3b3JrZmxvd05hbWUsIHdvcmtmbG93VHlwZSwgYW5kIHdvcmtmbG93VmVyc2lvbiBpbiB0aGUgd29ya2Zsb3dBcm4gY2Fubm90IGJlIGFuIHVucmVzb2x2ZWQgdG9rZW4nLFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAod29ya2Zsb3dOYW1lVHlwZVZlcnNpb24uc3BsaXQoJy8nKS5sZW5ndGggPCAzKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBJbnZhbGlkV29ya2Zsb3dBcm5Gb3JtYXRgLFxuICAgICAgICAgICd0aGUgd29ya2Zsb3cgQVJOIG11c3QgZW5kIHdpdGggPHdvcmtmbG93LXR5cGU+Lzx3b3JrZmxvdy1uYW1lPi88d29ya2Zsb3ctdmVyc2lvbj4nLFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB3b3JrZmxvd05hbWVUeXBlVmVyc2lvblNwbGl0ID0gd29ya2Zsb3dOYW1lVHlwZVZlcnNpb24uc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IFt3b3JrZmxvd1R5cGVGcm9tQXJuLCB3b3JrZmxvd05hbWVGcm9tQXJuLCB3b3JrZmxvd1ZlcnNpb25Gcm9tQXJuXSA9IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uU3BsaXQuc2xpY2UoXG4gICAgICAgIDAsXG4gICAgICAgIDMsXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gW3dvcmtmbG93VHlwZUZyb21Bcm4udG9VcHBlckNhc2UoKSwgd29ya2Zsb3dOYW1lRnJvbUFybiwgd29ya2Zsb3dWZXJzaW9uRnJvbUFybl07XG4gICAgfSkoKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFdvcmtmbG93QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dBcm4gPSB3b3JrZmxvd0FybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd05hbWUgPSB3b3JrZmxvd05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dUeXBlID0gd29ya2Zsb3dUeXBlO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbiA9IHdvcmtmbG93VmVyc2lvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBXb3JrZmxvdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNXb3JrZmxvdyh4OiBhbnkpOiB4IGlzIFdvcmtmbG93IHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgV09SS0ZMT1dfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVzb3VyY2U6IENmbldvcmtmbG93O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV29ya2Zsb3dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOlxuICAgICAgICBwcm9wcy53b3JrZmxvd05hbWUgPz9cbiAgICAgICAgY2RrLkxhenkuc3RyaW5nKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgICAgY2RrLk5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgICAgICAgIG1heExlbmd0aDogMTI4LFxuICAgICAgICAgICAgICBzZXBhcmF0b3I6ICctJyxcbiAgICAgICAgICAgICAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnLScsXG4gICAgICAgICAgICB9KS50b0xvd2VyQ2FzZSgpLCAvLyBFbmZvcmNlIGxvd2VyY2FzZSBmb3IgdGhlIGF1dG8tZ2VuZXJhdGVkIGZhbGxiYWNrXG4gICAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFdPUktGTE9XX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudmFsaWRhdGVXb3JrZmxvd05hbWUoKTtcblxuICAgIGNvbnN0IHdvcmtmbG93VmVyc2lvbiA9IHByb3BzLndvcmtmbG93VmVyc2lvbiA/PyAnMS4wLjAnO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuV29ya2Zsb3codGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICB2ZXJzaW9uOiB3b3JrZmxvd1ZlcnNpb24sXG4gICAgICB0eXBlOiBwcm9wcy53b3JrZmxvd1R5cGUsXG4gICAgICBjaGFuZ2VEZXNjcmlwdGlvbjogcHJvcHMuY2hhbmdlRGVzY3JpcHRpb24sXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBrbXNLZXlJZDogcHJvcHMua21zS2V5Py5rZXlBcm4sXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgLi4ucHJvcHMuZGF0YS5yZW5kZXIoKSxcbiAgICB9KTtcblxuICAgIHRoaXMud29ya2Zsb3dWZXJzaW9uID0gd29ya2Zsb3dWZXJzaW9uO1xuICAgIHRoaXMud29ya2Zsb3dUeXBlID0gcHJvcHMud29ya2Zsb3dUeXBlO1xuICB9XG5cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgd29ya2Zsb3dOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdOYW1lJykudG9TdHJpbmcoKSk7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB3b3JrZmxvd0FybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJBcm47XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlV29ya2Zsb3dOYW1lKCkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucGh5c2ljYWxOYW1lKSkge1xuICAgICAgcmV0dXJuOyAvLyBDYW5ub3QgdmFsaWRhdGUgdW5yZXNvbHZlZCB0b2tlbnMsIGdpdmVuIHRoZWlyIGFjdHVhbCB2YWx1ZSBpcyByZW5kZXJlZCBhdCBkZXBsb3ltZW50IHRpbWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgV29ya2Zsb3dOYW1lVG9vTG9uZ2AsICd0aGUgd29ya2Zsb3dOYW1lIGNhbm5vdCBiZSBsb25nZXIgdGhhbiAxMjggY2hhcmFjdGVycycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZS5pbmNsdWRlcygnICcpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgV29ya2Zsb3dOYW1lQ29udGFpbnNTcGFjZXNgLCAndGhlIHdvcmtmbG93TmFtZSBjYW5ub3QgY29udGFpbiBzcGFjZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUuaW5jbHVkZXMoJ18nKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFdvcmtmbG93TmFtZUNvbnRhaW5zVW5kZXJzY29yZXNgLCAndGhlIHdvcmtmbG93TmFtZSBjYW5ub3QgY29udGFpbiB1bmRlcnNjb3JlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZSAhPT0gdGhpcy5waHlzaWNhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFdvcmtmbG93TmFtZU5vdExvd2VyY2FzZWAsICd0aGUgd29ya2Zsb3dOYW1lIG11c3QgYmUgbG93ZXJjYXNlJywgdGhpcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-imagebuilder-alpha",
3
- "version": "2.257.0-alpha.0",
3
+ "version": "2.258.1-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for EC2 Image Builder",
6
6
  "main": "lib/index.js",
@@ -77,14 +77,14 @@
77
77
  },
78
78
  "license": "Apache-2.0",
79
79
  "devDependencies": {
80
- "@aws-cdk/cdk-build-tools": "2.257.0-alpha.0",
81
- "@aws-cdk/integ-runner": "^2.197.1",
82
- "@aws-cdk/integ-tests-alpha": "2.257.0-alpha.0",
83
- "@aws-cdk/pkglint": "2.257.0-alpha.0",
80
+ "@aws-cdk/cdk-build-tools": "2.258.1-alpha.0",
81
+ "@aws-cdk/integ-runner": "^2.199.0",
82
+ "@aws-cdk/integ-tests-alpha": "2.258.1-alpha.0",
83
+ "@aws-cdk/pkglint": "2.258.1-alpha.0",
84
84
  "@aws-sdk/client-inspector2": "^3",
85
- "@types/aws-lambda": "^8.10.160",
85
+ "@types/aws-lambda": "^8.10.161",
86
86
  "@types/jest": "^29.5.14",
87
- "aws-cdk-lib": "2.257.0",
87
+ "aws-cdk-lib": "2.258.1",
88
88
  "constructs": "^10.5.0",
89
89
  "jest": "^29.7.0"
90
90
  },
@@ -96,7 +96,7 @@
96
96
  ],
97
97
  "homepage": "https://github.com/aws/aws-cdk",
98
98
  "peerDependencies": {
99
- "aws-cdk-lib": "^2.257.0",
99
+ "aws-cdk-lib": "^2.258.1",
100
100
  "constructs": "^10.5.0"
101
101
  },
102
102
  "engines": {