@aws-cdk/aws-mediaconnect-alpha 2.263.0-alpha.0 → 2.264.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.
@@ -86,7 +86,7 @@ var FlowOutputProtocol;
86
86
  */
87
87
  class OutputConfiguration {
88
88
  _output;
89
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.OutputConfiguration", version: "2.263.0-alpha.0" };
89
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.OutputConfiguration", version: "2.264.0-alpha.0" };
90
90
  /**
91
91
  * The source configuration for flows receiving a stream from router.
92
92
  */
@@ -123,7 +123,7 @@ class OutputConfiguration {
123
123
  destination: input.destination,
124
124
  port: input.port,
125
125
  smoothingLatency: input.smoothingLatency?.toMilliseconds(),
126
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
126
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
127
127
  });
128
128
  }
129
129
  /**
@@ -144,7 +144,7 @@ class OutputConfiguration {
144
144
  destination: input.destination,
145
145
  port: input.port,
146
146
  smoothingLatency: input.smoothingLatency?.toMilliseconds(),
147
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
147
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
148
148
  });
149
149
  }
150
150
  /**
@@ -165,7 +165,7 @@ class OutputConfiguration {
165
165
  destination: input.destination,
166
166
  port: input.port,
167
167
  smoothingLatency: input.smoothingLatency?.toMilliseconds(),
168
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
168
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
169
169
  });
170
170
  }
171
171
  /**
@@ -189,7 +189,7 @@ class OutputConfiguration {
189
189
  maxLatency: input.maxLatency.toMilliseconds(),
190
190
  cidrAllowList: input.cidrAllowList,
191
191
  staticKeyEncryption: input.encryption,
192
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
192
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
193
193
  });
194
194
  }
195
195
  /**
@@ -212,7 +212,7 @@ class OutputConfiguration {
212
212
  maxLatency: input.maxLatency.toMilliseconds(),
213
213
  cidrAllowList: input.cidrAllowList,
214
214
  staticKeyEncryption: input.encryption,
215
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
215
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
216
216
  });
217
217
  }
218
218
  /**
@@ -235,7 +235,7 @@ class OutputConfiguration {
235
235
  minLatency: input.minLatency?.toMilliseconds(),
236
236
  streamId: input.streamId,
237
237
  srtPasswordEncryption: input.encryption,
238
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
238
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
239
239
  });
240
240
  }
241
241
  /**
@@ -257,7 +257,7 @@ class OutputConfiguration {
257
257
  minLatency: input.minLatency?.toMilliseconds(),
258
258
  cidrAllowList: input.cidrAllowList,
259
259
  srtPasswordEncryption: input.encryption,
260
- vpcInterfaceAttachment: parseVpcInterfaceAttachment(input.vpcInterfaceAttachment),
260
+ vpcInterfaceAttachment: toVpcInterfaceAttachment(input.vpcInterfaceAttachmentName),
261
261
  });
262
262
  }
263
263
  /**
@@ -301,7 +301,6 @@ class OutputConfiguration {
301
301
  exports.OutputConfiguration = OutputConfiguration;
302
302
  /**
303
303
  * Shared base for both real and imported flow outputs.
304
- * @internal
305
304
  */
306
305
  class FlowOutputBase extends aws_cdk_lib_1.Resource {
307
306
  get flowOutputRef() {
@@ -326,7 +325,7 @@ let FlowOutput = (() => {
326
325
  FlowOutput = _classThis = _classDescriptor.value;
327
326
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
328
327
  }
329
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.FlowOutput", version: "2.263.0-alpha.0" };
328
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.FlowOutput", version: "2.264.0-alpha.0" };
330
329
  /** Uniquely identifies this class. */
331
330
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.FlowOutput';
332
331
  /**
@@ -393,6 +392,12 @@ let FlowOutput = (() => {
393
392
  return FlowOutput = _classThis;
394
393
  })();
395
394
  exports.FlowOutput = FlowOutput;
395
+ /**
396
+ * Convert an optional VPC interface name to the CFN attachment property shape.
397
+ */
398
+ function toVpcInterfaceAttachment(name) {
399
+ return name ? { vpcInterfaceName: name } : undefined;
400
+ }
396
401
  /**
397
402
  * Resolve the output's key-based encryption (either static-key or SRT-password) to its
398
403
  * CFN shape. At most one of the two encryption fields is set on a given output.
@@ -404,12 +409,4 @@ function renderOutputEncryption(scope, staticKey, srtPassword, sourceArn) {
404
409
  return (0, shared_1.renderSrtPasswordEncryption)(scope, srtPassword, sourceArn);
405
410
  return undefined;
406
411
  }
407
- /**
408
- * Helper function to parse VPC interface attachment from L2 type to L1 property.
409
- */
410
- function parseVpcInterfaceAttachment(vpcInterface) {
411
- if (!vpcInterface)
412
- return undefined;
413
- return { vpcInterfaceName: vpcInterface.name };
414
- }
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmbG93LW91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBa0g7QUFDbEgsbUVBQTZEO0FBRTdELDRFQUE0RDtBQUM1RCw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBSTFFLHFDQUE4SDtBQW9EOUg7O0dBRUc7QUFDSCxJQUFLLGtCQWlDSjtBQWpDRCxXQUFLLGtCQUFrQjtJQUNyQjs7T0FFRztJQUNILDZDQUFxQixDQUFBO0lBQ3JCOztPQUVHO0lBQ0gseUNBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxpQ0FBUyxDQUFBO0lBQ1Q7O09BRUc7SUFDSCw2Q0FBcUIsQ0FBQTtJQUNyQjs7T0FFRztJQUNILG1DQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILG1EQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsK0NBQXVCLENBQUE7SUFDdkI7O09BRUc7SUFDSCwwQ0FBa0IsQ0FBQTtBQUNwQixDQUFDLEVBakNJLGtCQUFrQixLQUFsQixrQkFBa0IsUUFpQ3RCO0FBNlBEOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFxSU87O0lBcElyQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBMkI7Ozs7Ozs7Ozs7UUFDOUMsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLHNCQUFzQixFQUFFLGNBQUssQ0FBQyxPQUFPO1lBQ3JDLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxVQUFVO1NBQ3RELENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQXNCOzs7Ozs7Ozs7O1FBQ3RDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQztZQUM3QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsR0FBRztZQUNoQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsSUFBSSxF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V0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25GLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsMkJBQTJCLENBQUMsWUFBaUM7SUFDcEUsSUFBSSxDQUFDLFlBQVk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IER1cmF0aW9uLCBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBbm5vdGF0aW9ucywgTGF6eSwgTmFtZXMsIFJlc291cmNlLCBUb2tlbiwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmbkZsb3dPdXRwdXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB0eXBlIHsgSUZsb3dPdXRwdXRSZWYsIEZsb3dPdXRwdXRSZWZlcmVuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUZsb3cgfSBmcm9tICcuL2Zsb3cnO1xuaW1wb3J0IHR5cGUgeyBTcnRQYXNzd29yZEVuY3J5cHRpb24sIFN0YXRpY0tleUVuY3J5cHRpb24sIFRyYW5zaXRFbmNyeXB0aW9uLCBWcGNJbnRlcmZhY2VDb25maWcgfSBmcm9tICcuL3NoYXJlZCc7XG5pbXBvcnQgeyBTdGF0ZSwgaXNPcGVuQ2lkciwgcmVuZGVyU3J0UGFzc3dvcmRFbmNyeXB0aW9uLCByZW5kZXJTdGF0aWNLZXlFbmNyeXB0aW9uLCByZW5kZXJUcmFuc2l0RW5jcnlwdGlvbiB9IGZyb20gJy4vc2hhcmVkJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEZsb3cgT3V0cHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZsb3dPdXRwdXQgZXh0ZW5kcyBJUmVzb3VyY2UsIElGbG93T3V0cHV0UmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZmxvdyBvdXRwdXQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZsb3dPdXRwdXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBmbG93IG91dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dPdXRwdXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBmbG93T3V0cHV0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgb3V0cHV0LlxuICAgKlxuICAgKiBUaGlzIGRlc2NyaXB0aW9uIGFwcGVhcnMgb25seSBvbiB0aGUgTWVkaWFDb25uZWN0IGNvbnNvbGUgYW5kIHdpbGwgbm90IGJlIHNlZW4gYnkgdGhlIGVuZCB1c2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIHRoZSBvdXRwdXQgc2hvdWxkIHRyYW5zbWl0IGRhdGEgb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZDsgd2hlbiBvbWl0dGVkLCBNZWRpYUNvbm5lY3QgZW5hYmxlcyB0aGUgb3V0cHV0IChFTkFCTEVEKSBhdCBkZXBsb3kgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0U3RhdHVzPzogU3RhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBmbG93IHRoaXMgb3V0cHV0IGlzIGF0dGFjaGVkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZmxvdzogSUZsb3c7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ6IE91dHB1dENvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogRmxvdyBvdXRwdXQgcHJvdG9jb2wgb3B0aW9ucy5cbiAqL1xuZW51bSBGbG93T3V0cHV0UHJvdG9jb2wge1xuICAvKipcbiAgICogWklYSV9QVVNIIG9wdGlvblxuICAgKi9cbiAgWklYSV9QVVNIPSd6aXhpLXB1c2gnLFxuICAvKipcbiAgICogUlRQX0ZFQyBvcHRpb25cbiAgICovXG4gIFJUUF9GRUM9J3J0cC1mZWMnLFxuICAvKipcbiAgICogUlRQIG9wdGlvblxuICAgKi9cbiAgUlRQPSdydHAnLFxuICAvKipcbiAgICogWklYSV9QVUxMIG9wdGlvblxuICAgKi9cbiAgWklYSV9QVUxMPSd6aXhpLXB1bGwnLFxuICAvKipcbiAgICogUklTVCBvcHRpb25cbiAgICovXG4gIFJJU1Q9J3Jpc3QnLFxuICAvKipcbiAgICogU1JUX0xJU1RFTkVSIG9wdGlvblxuICAgKi9cbiAgU1JUX0xJU1RFTkVSPSdzcnQtbGlzdGVuZXInLFxuICAvKipcbiAgICogU1JUX0NBTExFUiBvcHRpb25cbiAgICovXG4gIFNSVF9DQUxMRVI9J3NydC1jYWxsZXInLFxuICAvKipcbiAgICogTkRJIG9wdGlvblxuICAgKi9cbiAgTkRJPSduZGktc3BlZWQtaHEnLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUlRQIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnRwT3V0cHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBzbW9vdGhpbmcgbGF0ZW5jeSBmb3IgUklTVCwgUlRQLCBhbmQgUlRQLUZFQyBzdHJlYW1zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNtb290aGluZyBsYXRlbmN5XG4gICAqL1xuICByZWFkb25seSBzbW9vdGhpbmdMYXRlbmN5PzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgSVAgYWRkcmVzcyB3aGVyZSB5b3Ugd2FudCB0byBzZW5kIHRoZSBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBvcnQgdG8gdXNlIHdoZW4gY29udGVudCBpcyBkaXN0cmlidXRlZCB0byB0aGlzIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnQgdG8gdXNlIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ/OiBWcGNJbnRlcmZhY2VDb25maWc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBSVFAtRkVDIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnRwRmVjT3V0cHV0Q29uZmlnIGV4dGVuZHMgUnRwT3V0cHV0Q29uZmlnIHsgfVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFJJU1Qgb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaXN0T3V0cHV0Q29uZmlnIGV4dGVuZHMgUnRwT3V0cHV0Q29uZmlnIHsgfVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgWml4aSBQdWxsIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWml4aVB1bGxPdXRwdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIHN0cmVhbSBJRCB0aGF0IHlvdSB3YW50IHRvIHVzZSBmb3IgdGhpcyB0cmFuc3BvcnQuXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1JZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlbW90ZSBJRCBmb3IgdGhlIFppeGktcHVsbCBzdHJlYW0uXG4gICAqL1xuICByZWFkb25seSByZW1vdGVJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbGF0ZW5jeSBmb3IgWml4aS1iYXNlZCBzdHJlYW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TGF0ZW5jeTogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzIHRoYXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gaW5pdGlhdGUgb3V0cHV0IHJlcXVlc3RzIHRvIHRoaXMgZmxvdy5cbiAgICogVGhlc2UgSVAgYWRkcmVzc2VzIHNob3VsZCBiZSBpbiB0aGUgZm9ybSBvZiBhIENsYXNzbGVzcyBJbnRlci1Eb21haW4gUm91dGluZyAoQ0lEUikgYmxvY2s7IGZvciBleGFtcGxlLCAxMC4wLjAuMC8xNi5cbiAgICpcbiAgICogUmVxdWlyZWQgYnkgdGhlIE1lZGlhQ29ubmVjdCBzZXJ2aWNlIGZvciBaaXhpIFB1bGwgb3V0cHV0cy5cbiAgICovXG4gIHJlYWRvbmx5IGNpZHJBbGxvd0xpc3Q6IHN0cmluZ1tdO1xuICAvKipcbiAgICogU3RhdGljIGtleSBlbmNyeXB0aW9uIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uPzogU3RhdGljS2V5RW5jcnlwdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnQgdG8gdXNlIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ/OiBWcGNJbnRlcmZhY2VDb25maWc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBaaXhpIFB1c2ggb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBaaXhpUHVzaE91dHB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgc3RyZWFtIElEIHRoYXQgeW91IHdhbnQgdG8gdXNlIGZvciB0aGlzIHRyYW5zcG9ydC5cbiAgICovXG4gIHJlYWRvbmx5IHN0cmVhbUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBsYXRlbmN5IGZvciBaaXhpLWJhc2VkIHN0cmVhbXMuXG4gICAqL1xuICByZWFkb25seSBtYXhMYXRlbmN5OiBEdXJhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSByYW5nZSBvZiBJUCBhZGRyZXNzZXMgdGhhdCBzaG91bGQgYmUgYWxsb3dlZCB0byBpbml0aWF0ZSBvdXRwdXQgcmVxdWVzdHMgdG8gdGhpcyBmbG93LlxuICAgKiBUaGVzZSBJUCBhZGRyZXNzZXMgc2hvdWxkIGJlIGluIHRoZSBmb3JtIG9mIGEgQ2xhc3NsZXNzIEludGVyLURvbWFpbiBSb3V0aW5nIChDSURSKSBibG9jazsgZm9yIGV4YW1wbGUsIDEwLjAuMC4wLzE2LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIENJRFIgYWxsb3cgbGlzdFxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckFsbG93TGlzdD86IHN0cmluZ1tdO1xuICAvKipcbiAgICogU3RhdGljIGtleSBlbmNyeXB0aW9uIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uPzogU3RhdGljS2V5RW5jcnlwdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBJUCBhZGRyZXNzIHdoZXJlIHlvdSB3YW50IHRvIHNlbmQgdGhlIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0byB1c2Ugd2hlbiBjb250ZW50IGlzIGRpc3RyaWJ1dGVkIHRvIHRoaXMgb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIFZQQyBpbnRlcmZhY2UgYXR0YWNobWVudCB0byB1c2UgZm9yIHRoaXMgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIFZQQyBpbnRlcmZhY2UgYXR0YWNobWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjSW50ZXJmYWNlQXR0YWNobWVudD86IFZwY0ludGVyZmFjZUNvbmZpZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFNSVCBDYWxsZXIgb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcnRDYWxsZXJPdXRwdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMgZm9yIFNSVC1iYXNlZCBzdHJlYW1zLiBUaGUgdmFsdWUgeW91IHNldCBvbiB5b3VyXG4gICAqIE1lZGlhQ29ubmVjdCBvdXRwdXQgcmVwcmVzZW50cyB0aGUgbWluaW1hbCBwb3RlbnRpYWwgbGF0ZW5jeSBvZiB0aGF0IGNvbm5lY3Rpb24uIFRoZVxuICAgKiBsYXRlbmN5IG9mIHRoZSBzdHJlYW0gaXMgc2V0IHRvIHRoZSBoaWdoZXIgb2YgdGhlIHNlbmRlcidzIG1pbmltdW0gbGF0ZW5jeSBhbmQgdGhlXG4gICAqIHJlY2VpdmVyJ3MgbWluaW11bSBsYXRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG1pbmltdW0gbGF0ZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgbWluTGF0ZW5jeT86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHN0cmVhbSBJRCB0aGF0IHlvdSB3YW50IHRvIHVzZSBmb3IgdGhpcyB0cmFuc3BvcnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RyZWFtIElEXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1JZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJUCBhZGRyZXNzIHdoZXJlIHlvdSB3YW50IHRvIHNlbmQgdGhlIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0byB1c2Ugd2hlbiBjb250ZW50IGlzIGRpc3RyaWJ1dGVkIHRvIHRoaXMgb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICAvKipcbiAgICogU1JUIHBhc3N3b3JkIGVuY3J5cHRpb24gZm9yIHRoaXMgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBTcnRQYXNzd29yZEVuY3J5cHRpb247XG4gIC8qKlxuICAgKiBUaGUgVlBDIGludGVyZmFjZSBhdHRhY2htZW50IHRvIHVzZSBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gVlBDIGludGVyZmFjZSBhdHRhY2htZW50XG4gICAqL1xuICByZWFkb25seSB2cGNJbnRlcmZhY2VBdHRhY2htZW50PzogVnBjSW50ZXJmYWNlQ29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgU1JUIExpc3RlbmVyIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3J0TGlzdGVuZXJPdXRwdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMgZm9yIFNSVC1iYXNlZCBzdHJlYW1zLiBUaGUgdmFsdWUgeW91IHNldCBvbiB5b3VyXG4gICAqIE1lZGlhQ29ubmVjdCBvdXRwdXQgcmVwcmVzZW50cyB0aGUgbWluaW1hbCBwb3RlbnRpYWwgbGF0ZW5jeSBvZiB0aGF0IGNvbm5lY3Rpb24uIFRoZVxuICAgKiBsYXRlbmN5IG9mIHRoZSBzdHJlYW0gaXMgc2V0IHRvIHRoZSBoaWdoZXIgb2YgdGhlIHNlbmRlcidzIG1pbmltdW0gbGF0ZW5jeSBhbmQgdGhlXG4gICAqIHJlY2VpdmVyJ3MgbWluaW11bSBsYXRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG1pbmltdW0gbGF0ZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgbWluTGF0ZW5jeT86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHBvcnQgdG8gdXNlIHdoZW4gY29udGVudCBpcyBkaXN0cmlidXRlZCB0byB0aGlzIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSByYW5nZSBvZiBJUCBhZGRyZXNzZXMgdGhhdCBzaG91bGQgYmUgYWxsb3dlZCB0byBpbml0aWF0ZSBvdXRwdXQgcmVxdWVzdHMgdG8gdGhpcyBmbG93LlxuICAgKiBUaGVzZSBJUCBhZGRyZXNzZXMgc2hvdWxkIGJlIGluIHRoZSBmb3JtIG9mIGEgQ2xhc3NsZXNzIEludGVyLURvbWFpbiBSb3V0aW5nIChDSURSKSBibG9jazsgZm9yIGV4YW1wbGUsIDEwLjAuMC4wLzE2LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIENJRFIgYWxsb3cgbGlzdFxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckFsbG93TGlzdD86IHN0cmluZ1tdO1xuICAvKipcbiAgICogU1JUIHBhc3N3b3JkIGVuY3J5cHRpb24gZm9yIHRoaXMgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBTcnRQYXNzd29yZEVuY3J5cHRpb247XG4gIC8qKlxuICAgKiBUaGUgVlBDIGludGVyZmFjZSBhdHRhY2htZW50IHRvIHVzZSBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gVlBDIGludGVyZmFjZSBhdHRhY2htZW50XG4gICAqL1xuICByZWFkb25seSB2cGNJbnRlcmZhY2VBdHRhY2htZW50PzogVnBjSW50ZXJmYWNlQ29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgTkRJIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmRpT3V0cHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIEEgc3VmZml4IGZvciB0aGUgbmFtZXMgb2YgdGhlIE5ESSBzb3VyY2VzIHRoYXQgdGhlIGZsb3cgY3JlYXRlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgb3V0cHV0IG5hbWUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmRpUHJvZ3JhbU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHF1YWxpdHkgc2V0dGluZyBmb3IgdGhlIE5ESSBTcGVlZCBIUSBlbmNvZGVyLCBleHByZXNzZWQgYXMgYSBwZXJjZW50YWdlLlxuICAgKlxuICAgKiBWYWxpZCByYW5nZTogMTAwLTIwMC4gSGlnaGVyIHZhbHVlcyBwcm9kdWNlIGhpZ2hlciBxdWFsaXR5IGFuZCBsYXJnZXIgYml0cmF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL2Fib3V0LWF3cy93aGF0cy1uZXcvMjAyNS8wMy9hd3MtZWxlbWVudGFsLW1lZGlhY29ubmVjdC1zdXBwb3J0LW5kaS1vdXRwdXRzL1xuICAgKiBAZGVmYXVsdCAtIHRoZSBNZWRpYUNvbm5lY3Qgc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBuZGlTcGVlZEhxUXVhbGl0eT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBmbG93IG91dHB1dCBjb25maWd1cmF0aW9uLiBDRk4tYm91bmQgZmllbGRzIHVzZSBMMSBwcm9wZXJ0eSB0eXBlczsgZW5jcnlwdGlvblxuICogZmllbGRzIGFyZSBrZXB0IGFzIEwyIGNsYXNzZXMgKHJlc29sdmVkIHRvIENGTiBzaGFwZSBpbiB0aGUgRmxvd091dHB1dCBjb25zdHJ1Y3RvcikuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIEZsb3dPdXRwdXRDb25maWcge1xuICByZWFkb25seSBjaWRyQWxsb3dMaXN0Pzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuICAvKiogU3RhdGljLWtleSBlbmNyeXB0aW9uIGZvciBaaXhpIFB1bGwgb3V0cHV0cy4gU2V0IGF0IG1vc3Qgb25lIG9mIHRoZXNlIHR3byBmaWVsZHMuICovXG4gIHJlYWRvbmx5IHN0YXRpY0tleUVuY3J5cHRpb24/OiBTdGF0aWNLZXlFbmNyeXB0aW9uO1xuICAvKiogU1JULXBhc3N3b3JkIGVuY3J5cHRpb24gZm9yIFNSVCBvdXRwdXRzLiBTZXQgYXQgbW9zdCBvbmUgb2YgdGhlc2UgdHdvIGZpZWxkcy4gKi9cbiAgcmVhZG9ubHkgc3J0UGFzc3dvcmRFbmNyeXB0aW9uPzogU3J0UGFzc3dvcmRFbmNyeXB0aW9uO1xuICByZWFkb25seSBtYXhMYXRlbmN5PzogbnVtYmVyO1xuICByZWFkb25seSBtaW5MYXRlbmN5PzogbnVtYmVyO1xuICByZWFkb25seSBuZGlQcm9ncmFtTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmRpU3BlZWRIcVF1YWxpdHk/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHByb3RvY29sPzogc3RyaW5nO1xuICByZWFkb25seSByZW1vdGVJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgc21vb3RoaW5nTGF0ZW5jeT86IG51bWJlcjtcbiAgcmVhZG9ubHkgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ/OiBDZm5GbG93T3V0cHV0LlZwY0ludGVyZmFjZUF0dGFjaG1lbnRQcm9wZXJ0eTtcbiAgcmVhZG9ubHkgcm91dGVySW50ZWdyYXRpb25TdGF0ZT86IFN0YXRlO1xuICByZWFkb25seSByb3V0ZXJJbnRlZ3JhdGlvblRyYW5zaXRFbmNyeXB0aW9uPzogVHJhbnNpdEVuY3J5cHRpb247XG59XG5cbi8qKlxuICogT3V0cHV0IGNvbmZpZ3VyYXRpb24gdG8gUm91dGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyVHJhbnNpdENvbmZpZyB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciBlbmNyeXB0aW9uIGlzIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUcmFuc2l0RW5jcnlwdGlvbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZGVmaW5lIGEgRmxvd091dHB1dCBieSBwcm90b2NvbC5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBmbG93cyByZWNlaXZpbmcgYSBzdHJlYW0gZnJvbSByb3V0ZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJvdXRlcihpbnB1dD86IFJvdXRlclRyYW5zaXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcm91dGVySW50ZWdyYXRpb25TdGF0ZTogU3RhdGUuRU5BQkxFRCxcbiAgICAgIHJvdXRlckludGVncmF0aW9uVHJhbnNpdEVuY3J5cHRpb246IGlucHV0Py5lbmNyeXB0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgUlRQIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcnRwKGlucHV0OiBSdHBPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5SVFAsXG4gICAgICBkZXN0aW5hdGlvbjogaW5wdXQuZGVzdGluYXRpb24sXG4gICAgICBwb3J0OiBpbnB1dC5wb3J0LFxuICAgICAgc21vb3RoaW5nTGF0ZW5jeTogaW5wdXQuc21vb3RoaW5nTGF0ZW5jeT8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ6IHBhcnNlVnBjSW50ZXJmYWNlQXR0YWNobWVudChpbnB1dC52cGNJbnRlcmZhY2VBdHRhY2htZW50KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIFJUUC1GRUMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBydHBGZWMoaW5wdXQ6IFJ0cEZlY091dHB1dENvbmZpZyk6IE91dHB1dENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgT3V0cHV0Q29uZmlndXJhdGlvbih7XG4gICAgICBwcm90b2NvbDogRmxvd091dHB1dFByb3RvY29sLlJUUF9GRUMsXG4gICAgICBkZXN0aW5hdGlvbjogaW5wdXQuZGVzdGluYXRpb24sXG4gICAgICBwb3J0OiBpbnB1dC5wb3J0LFxuICAgICAgc21vb3RoaW5nTGF0ZW5jeTogaW5wdXQuc21vb3RoaW5nTGF0ZW5jeT8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ6IHBhcnNlVnBjSW50ZXJmYWNlQXR0YWNobWVudChpbnB1dC52cGNJbnRlcmZhY2VBdHRhY2htZW50KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIFJJU1QgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByaXN0KGlucHV0OiBSaXN0T3V0cHV0Q29uZmlnKTogT3V0cHV0Q29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBPdXRwdXRDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3RvY29sOiBGbG93T3V0cHV0UHJvdG9jb2wuUklTVCxcbiAgICAgIGRlc3RpbmF0aW9uOiBpbnB1dC5kZXN0aW5hdGlvbixcbiAgICAgIHBvcnQ6IGlucHV0LnBvcnQsXG4gICAgICBzbW9vdGhpbmdMYXRlbmN5OiBpbnB1dC5zbW9vdGhpbmdMYXRlbmN5Py50b01pbGxpc2Vjb25kcygpLFxuICAgICAgdnBjSW50ZXJmYWNlQXR0YWNobWVudDogcGFyc2VWcGNJbnRlcmZhY2VBdHRhY2htZW50KGlucHV0LnZwY0ludGVyZmFjZUF0dGFjaG1lbnQpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgWml4aSBQdXNoIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgeml4aVB1c2goaW5wdXQ6IFppeGlQdXNoT3V0cHV0Q29uZmlnKTogT3V0cHV0Q29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBPdXRwdXRDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3RvY29sOiBGbG93T3V0cHV0UHJvdG9jb2wuWklYSV9QVVNILFxuICAgICAgZGVzdGluYXRpb246IGlucHV0LmRlc3RpbmF0aW9uLFxuICAgICAgcG9ydDogaW5wdXQucG9ydCxcbiAgICAgIHN0cmVhbUlkOiBpbnB1dC5zdHJlYW1JZCxcbiAgICAgIG1heExhdGVuY3k6IGlucHV0Lm1heExhdGVuY3kudG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIGNpZHJBbGxvd0xpc3Q6IGlucHV0LmNpZHJBbGxvd0xpc3QsXG4gICAgICBzdGF0aWNLZXlFbmNyeXB0aW9uOiBpbnB1dC5lbmNyeXB0aW9uLFxuICAgICAgdnBjSW50ZXJmYWNlQXR0YWNobWVudDogcGFyc2VWcGNJbnRlcmZhY2VBdHRhY2htZW50KGlucHV0LnZwY0ludGVyZmFjZUF0dGFjaG1lbnQpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgWml4aSBQdWxsIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgeml4aVB1bGwoaW5wdXQ6IFppeGlQdWxsT3V0cHV0Q29uZmlnKTogT3V0cHV0Q29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBPdXRwdXRDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3RvY29sOiBGbG93T3V0cHV0UHJvdG9jb2wuWklYSV9QVUxMLFxuICAgICAgc3RyZWFtSWQ6IGlucHV0LnN0cmVhbUlkLFxuICAgICAgcmVtb3RlSWQ6IGlucHV0LnJlbW90ZUlkLFxuICAgICAgbWF4TGF0ZW5jeTogaW5wdXQubWF4TGF0ZW5jeS50b01pbGxpc2Vjb25kcygpLFxuICAgICAgY2lkckFsbG93TGlzdDogaW5wdXQuY2lkckFsbG93TGlzdCxcbiAgICAgIHN0YXRpY0tleUVuY3J5cHRpb246IGlucHV0LmVuY3J5cHRpb24sXG4gICAgICB2cGNJbnRlcmZhY2VBdHRhY2htZW50OiBwYXJzZVZwY0ludGVyZmFjZUF0dGFjaG1lbnQoaW5wdXQudnBjSW50ZXJmYWNlQXR0YWNobWVudCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uIGZvciBTUlQgQ2FsbGVyIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3J0Q2FsbGVyKGlucHV0OiBTcnRDYWxsZXJPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5TUlRfQ0FMTEVSLFxuICAgICAgZGVzdGluYXRpb246IGlucHV0LmRlc3RpbmF0aW9uLFxuICAgICAgcG9ydDogaW5wdXQucG9ydCxcbiAgICAgIG1pbkxhdGVuY3k6IGlucHV0Lm1pbkxhdGVuY3k/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgICBzdHJlYW1JZDogaW5wdXQuc3RyZWFtSWQsXG4gICAgICBzcnRQYXNzd29yZEVuY3J5cHRpb246IGlucHV0LmVuY3J5cHRpb24sXG4gICAgICB2cGNJbnRlcmZhY2VBdHRhY2htZW50OiBwYXJzZVZwY0ludGVyZmFjZUF0dGFjaG1lbnQoaW5wdXQudnBjSW50ZXJmYWNlQXR0YWNobWVudCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uIGZvciBTUlQgTGlzdGVuZXIgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcnRMaXN0ZW5lcihpbnB1dDogU3J0TGlzdGVuZXJPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5TUlRfTElTVEVORVIsXG4gICAgICBwb3J0OiBpbnB1dC5wb3J0LFxuICAgICAgbWluTGF0ZW5jeTogaW5wdXQubWluTGF0ZW5jeT8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIGNpZHJBbGxvd0xpc3Q6IGlucHV0LmNpZHJBbGxvd0xpc3QsXG4gICAgICBzcnRQYXNzd29yZEVuY3J5cHRpb246IGlucHV0LmVuY3J5cHRpb24sXG4gICAgICB2cGNJbnRlcmZhY2VBdHRhY2htZW50OiBwYXJzZVZwY0ludGVyZmFjZUF0dGFjaG1lbnQoaW5wdXQudnBjSW50ZXJmYWNlQXR0YWNobWVudCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uIGZvciBOREkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBuZGkoaW5wdXQ6IE5kaU91dHB1dENvbmZpZyA9IHt9KTogT3V0cHV0Q29uZmlndXJhdGlvbiB7XG4gICAgaWYgKGlucHV0Lm5kaVNwZWVkSHFRdWFsaXR5ICE9PSB1bmRlZmluZWRcbiAgICAgICYmICFUb2tlbi5pc1VucmVzb2x2ZWQoaW5wdXQubmRpU3BlZWRIcVF1YWxpdHkpXG4gICAgICAmJiAoaW5wdXQubmRpU3BlZWRIcVF1YWxpdHkgPCAxMDAgfHwgaW5wdXQubmRpU3BlZWRIcVF1YWxpdHkgPiAyMDApKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBOZGlTcGVlZEhxUXVhbGl0eVJhbmdlYCxcbiAgICAgICAgYE5ESSBTcGVlZCBIUSBxdWFsaXR5IG11c3QgYmUgYmV0d2VlbiAxMDAgYW5kIDIwMCwgZ290ICR7aW5wdXQubmRpU3BlZWRIcVF1YWxpdHl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPdXRwdXRDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3RvY29sOiBGbG93T3V0cHV0UHJvdG9jb2wuTkRJLFxuICAgICAgbmRpUHJvZ3JhbU5hbWU6IGlucHV0Lm5kaVByb2dyYW1OYW1lLFxuICAgICAgbmRpU3BlZWRIcVF1YWxpdHk6IGlucHV0Lm5kaVNwZWVkSHFRdWFsaXR5LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvdXRwdXQgLSBDb25maWd1cmF0aW9uIGZvciBvdXRwdXRzIGluIG91dHB1dFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9vdXRwdXQ6IEZsb3dPdXRwdXRDb25maWcpIHsgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgb3V0cHV0IGNvbmZpZ3VyYXRpb24gaXMgYm91bmQgdG8gYSBGbG93T3V0cHV0LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYmluZCgpOiBGbG93T3V0cHV0Q29uZmlnIHtcbiAgICByZXR1cm4geyAuLi50aGlzLl9vdXRwdXQgfTtcbiAgfVxufVxuXG4vKipcbiAqIFNoYXJlZCBiYXNlIGZvciBib3RoIHJlYWwgYW5kIGltcG9ydGVkIGZsb3cgb3V0cHV0cy5cbiAqIEBpbnRlcm5hbFxuICovXG5hYnN0cmFjdCBjbGFzcyBGbG93T3V0cHV0QmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZsb3dPdXRwdXQge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd091dHB1dEFybjogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgZmxvd091dHB1dFJlZigpOiBGbG93T3V0cHV0UmVmZXJlbmNlIHtcbiAgICByZXR1cm4geyBvdXRwdXRBcm46IHRoaXMuZmxvd091dHB1dEFybiB9O1xuICB9XG59XG5cbi8qKlxuICogUmVzb3VyY2UgZGVmaW5lcyB0aGUgZGVzdGluYXRpb24gYWRkcmVzcywgcHJvdG9jb2wsIGFuZCBwb3J0IHRoYXRcbiAqIEFXUyBFbGVtZW50YWwgTWVkaWFDb25uZWN0IHNlbmRzIHRoZSBpbmdlc3RlZCB2aWRlbyB0by5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEZsb3dPdXRwdXQgZXh0ZW5kcyBGbG93T3V0cHV0QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLW1lZGlhY29ubmVjdC1hbHBoYS5GbG93T3V0cHV0JztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEZsb3cgT3VwdXQgY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCAoaW1wb3J0ZWQpIEZsb3cgT3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmxvd091dHB1dEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBmbG93T3V0cHV0QXJuOiBzdHJpbmcpOiBJRmxvd091dHB1dCB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRmxvd091dHB1dEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZsb3dPdXRwdXRBcm4gPSBmbG93T3V0cHV0QXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmxvd091dHB1dEFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGbG93T3V0cHV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHM/LmZsb3dPdXRwdXROYW1lID8/IExhenkuc3RyaW5nKHsgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiAxMjggfSkgfSksXG4gICAgfSk7XG5cbiAgICAvLyBWYWxpZGF0ZSBmbG93IG91dHB1dCBuYW1lIGlmIHByb3ZpZGVkXG4gICAgaWYgKHByb3BzLmZsb3dPdXRwdXROYW1lICE9IG51bGwgJiYgcHJvcHMuZmxvd091dHB1dE5hbWUgIT09ICcnICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZmxvd091dHB1dE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuZmxvd091dHB1dE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dPdXRwdXROYW1lTGVuZ3RoYCwgYEZsb3cgb3V0cHV0IG5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEyOCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5mbG93T3V0cHV0TmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW2EtekEtWjAtOS1dKyQvLnRlc3QocHJvcHMuZmxvd091dHB1dE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dPdXRwdXROYW1lRm9ybWF0YCwgYEZsb3cgb3V0cHV0IG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGh5cGhlbnMsIGdvdCAnJHtwcm9wcy5mbG93T3V0cHV0TmFtZX0nYCwgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBjb25zdCBvdXRwdXRDb25maWcgPSBwcm9wcy5vdXRwdXQuX2JpbmQoKTtcblxuICAgIC8vIFdhcm4gb24gZnVsbHktb3BlbiBDSURSIGFsbG93IGxpc3RzLlxuICAgIGlmIChvdXRwdXRDb25maWcuY2lkckFsbG93TGlzdCAhPT0gdW5kZWZpbmVkICYmICFUb2tlbi5pc1VucmVzb2x2ZWQob3V0cHV0Q29uZmlnLmNpZHJBbGxvd0xpc3QpKSB7XG4gICAgICBmb3IgKGNvbnN0IGNpZHIgb2Ygb3V0cHV0Q29uZmlnLmNpZHJBbGxvd0xpc3QpIHtcbiAgICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoY2lkcikgJiYgaXNPcGVuQ2lkcihjaWRyKSkge1xuICAgICAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmdWMihcbiAgICAgICAgICAgICdAYXdzLWNkay9hd3MtbWVkaWFjb25uZWN0LWFscGhhOm9wZW5PdXRwdXRDaWRyJyxcbiAgICAgICAgICAgIGBPdXRwdXQgQ0lEUiBhbGxvdyBsaXN0ICcke2NpZHJ9JyBhbGxvd3MgcHVsbCByZXF1ZXN0cyBmcm9tIGFueSBJUC4gUmVzdHJpY3QgdG8gdGhlIG5hcnJvd2VzdCByYW5nZSB5b3VyIGNvbnN1bWVycyBuZWVkLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IHN0YXRpY0tleUVuY3J5cHRpb24sIHNydFBhc3N3b3JkRW5jcnlwdGlvbiwgcm91dGVySW50ZWdyYXRpb25UcmFuc2l0RW5jcnlwdGlvbiwgLi4uY2ZuT3V0cHV0Q29uZmlnIH0gPSBvdXRwdXRDb25maWc7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5GbG93T3V0cHV0KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIC4uLmNmbk91dHB1dENvbmZpZyxcbiAgICAgIGVuY3J5cHRpb246IHJlbmRlck91dHB1dEVuY3J5cHRpb24odGhpcywgc3RhdGljS2V5RW5jcnlwdGlvbiwgc3J0UGFzc3dvcmRFbmNyeXB0aW9uLCBwcm9wcy5mbG93LmZsb3dBcm4pLFxuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBmbG93QXJuOiBwcm9wcy5mbG93LmZsb3dBcm4sXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBvdXRwdXRTdGF0dXM6IHByb3BzLm91dHB1dFN0YXR1cyxcbiAgICAgIHJvdXRlckludGVncmF0aW9uVHJhbnNpdEVuY3J5cHRpb246IG91dHB1dENvbmZpZy5yb3V0ZXJJbnRlZ3JhdGlvblN0YXRlID09PSBTdGF0ZS5FTkFCTEVEXG4gICAgICAgID8gcmVuZGVyVHJhbnNpdEVuY3J5cHRpb24odGhpcywgJ1JvdXRlclRyYW5zaXRFbmNyeXB0aW9uUm9sZScsIHJvdXRlckludGVncmF0aW9uVHJhbnNpdEVuY3J5cHRpb24sIHByb3BzLmZsb3cuZmxvd0FybilcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLmZsb3dPdXRwdXRBcm4gPSByZXNvdXJjZS5hdHRyT3V0cHV0QXJuO1xuICB9XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgb3V0cHV0J3Mga2V5LWJhc2VkIGVuY3J5cHRpb24gKGVpdGhlciBzdGF0aWMta2V5IG9yIFNSVC1wYXNzd29yZCkgdG8gaXRzXG4gKiBDRk4gc2hhcGUuIEF0IG1vc3Qgb25lIG9mIHRoZSB0d28gZW5jcnlwdGlvbiBmaWVsZHMgaXMgc2V0IG9uIGEgZ2l2ZW4gb3V0cHV0LlxuICovXG5mdW5jdGlvbiByZW5kZXJPdXRwdXRFbmNyeXB0aW9uKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBzdGF0aWNLZXk6IFN0YXRpY0tleUVuY3J5cHRpb24gfCB1bmRlZmluZWQsXG4gIHNydFBhc3N3b3JkOiBTcnRQYXNzd29yZEVuY3J5cHRpb24gfCB1bmRlZmluZWQsXG4gIHNvdXJjZUFybj86IHN0cmluZyxcbik6IENmbkZsb3dPdXRwdXQuRW5jcnlwdGlvblByb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHN0YXRpY0tleSkgcmV0dXJuIHJlbmRlclN0YXRpY0tleUVuY3J5cHRpb24oc2NvcGUsIHN0YXRpY0tleSwgc291cmNlQXJuKTtcbiAgaWYgKHNydFBhc3N3b3JkKSByZXR1cm4gcmVuZGVyU3J0UGFzc3dvcmRFbmNyeXB0aW9uKHNjb3BlLCBzcnRQYXNzd29yZCwgc291cmNlQXJuKTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcGFyc2UgVlBDIGludGVyZmFjZSBhdHRhY2htZW50IGZyb20gTDIgdHlwZSB0byBMMSBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VWcGNJbnRlcmZhY2VBdHRhY2htZW50KHZwY0ludGVyZmFjZT86IFZwY0ludGVyZmFjZUNvbmZpZyk6IENmbkZsb3dPdXRwdXQuVnBjSW50ZXJmYWNlQXR0YWNobWVudFByb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF2cGNJbnRlcmZhY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiB7IHZwY0ludGVyZmFjZU5hbWU6IHZwY0ludGVyZmFjZS5uYW1lIH07XG59XG5cbiJdfQ==
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmbG93LW91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBa0g7QUFDbEgsbUVBQTZEO0FBRTdELDRFQUE0RDtBQUM1RCw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBSTFFLHFDQUE4SDtBQW9EOUg7O0dBRUc7QUFDSCxJQUFLLGtCQWlDSjtBQWpDRCxXQUFLLGtCQUFrQjtJQUNyQjs7T0FFRztJQUNILDZDQUFxQixDQUFBO0lBQ3JCOztPQUVHO0lBQ0gseUNBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxpQ0FBUyxDQUFBO0lBQ1Q7O09BRUc7SUFDSCw2Q0FBcUIsQ0FBQTtJQUNyQjs7T0FFRztJQUNILG1DQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILG1EQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsK0NBQXVCLENBQUE7SUFDdkI7O09BRUc7SUFDSCwwQ0FBa0IsQ0FBQTtBQUNwQixDQUFDLEVBakNJLGtCQUFrQixLQUFsQixrQkFBa0IsUUFpQ3RCO0FBK1BEOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFxSU87O0lBcElyQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBMkI7Ozs7Ozs7Ozs7UUFDOUMsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLHNCQUFzQixFQUFFLGNBQUssQ0FBQyxPQUFPO1lBQ3JDLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxVQUFVO1NBQ3RELENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQXNCOzs7Ozs7Ozs7O1FBQ3RDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQztZQUM3QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsR0FBRztZQUNoQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsSUFBSSxF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SUFFbEIsSUFBSSxTQUFTO1FBQUUsT0FBTyxJQUFBLGtDQUF5QixFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0UsSUFBSSxXQUFXO1FBQUUsT0FBTyxJQUFBLG9DQUEyQixFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRHVyYXRpb24sIElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFRva2VuLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuRmxvd091dHB1dCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWNvbm5lY3QnO1xuaW1wb3J0IHR5cGUgeyBJRmxvd091dHB1dFJlZiwgRmxvd091dHB1dFJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWNvbm5lY3QnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJRmxvdyB9IGZyb20gJy4vZmxvdyc7XG5pbXBvcnQgdHlwZSB7IFNydFBhc3N3b3JkRW5jcnlwdGlvbiwgU3RhdGljS2V5RW5jcnlwdGlvbiwgVHJhbnNpdEVuY3J5cHRpb24gfSBmcm9tICcuL3NoYXJlZCc7XG5pbXBvcnQgeyBTdGF0ZSwgaXNPcGVuQ2lkciwgcmVuZGVyU3J0UGFzc3dvcmRFbmNyeXB0aW9uLCByZW5kZXJTdGF0aWNLZXlFbmNyeXB0aW9uLCByZW5kZXJUcmFuc2l0RW5jcnlwdGlvbiB9IGZyb20gJy4vc2hhcmVkJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEZsb3cgT3V0cHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZsb3dPdXRwdXQgZXh0ZW5kcyBJUmVzb3VyY2UsIElGbG93T3V0cHV0UmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZmxvdyBvdXRwdXQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZsb3dPdXRwdXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBmbG93IG91dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dPdXRwdXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBmbG93T3V0cHV0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgb3V0cHV0LlxuICAgKlxuICAgKiBUaGlzIGRlc2NyaXB0aW9uIGFwcGVhcnMgb25seSBvbiB0aGUgTWVkaWFDb25uZWN0IGNvbnNvbGUgYW5kIHdpbGwgbm90IGJlIHNlZW4gYnkgdGhlIGVuZCB1c2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIHRoZSBvdXRwdXQgc2hvdWxkIHRyYW5zbWl0IGRhdGEgb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZDsgd2hlbiBvbWl0dGVkLCBNZWRpYUNvbm5lY3QgZW5hYmxlcyB0aGUgb3V0cHV0IChFTkFCTEVEKSBhdCBkZXBsb3kgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0U3RhdHVzPzogU3RhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBmbG93IHRoaXMgb3V0cHV0IGlzIGF0dGFjaGVkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZmxvdzogSUZsb3c7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ6IE91dHB1dENvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogRmxvdyBvdXRwdXQgcHJvdG9jb2wgb3B0aW9ucy5cbiAqL1xuZW51bSBGbG93T3V0cHV0UHJvdG9jb2wge1xuICAvKipcbiAgICogWklYSV9QVVNIIG9wdGlvblxuICAgKi9cbiAgWklYSV9QVVNIPSd6aXhpLXB1c2gnLFxuICAvKipcbiAgICogUlRQX0ZFQyBvcHRpb25cbiAgICovXG4gIFJUUF9GRUM9J3J0cC1mZWMnLFxuICAvKipcbiAgICogUlRQIG9wdGlvblxuICAgKi9cbiAgUlRQPSdydHAnLFxuICAvKipcbiAgICogWklYSV9QVUxMIG9wdGlvblxuICAgKi9cbiAgWklYSV9QVUxMPSd6aXhpLXB1bGwnLFxuICAvKipcbiAgICogUklTVCBvcHRpb25cbiAgICovXG4gIFJJU1Q9J3Jpc3QnLFxuICAvKipcbiAgICogU1JUX0xJU1RFTkVSIG9wdGlvblxuICAgKi9cbiAgU1JUX0xJU1RFTkVSPSdzcnQtbGlzdGVuZXInLFxuICAvKipcbiAgICogU1JUX0NBTExFUiBvcHRpb25cbiAgICovXG4gIFNSVF9DQUxMRVI9J3NydC1jYWxsZXInLFxuICAvKipcbiAgICogTkRJIG9wdGlvblxuICAgKi9cbiAgTkRJPSduZGktc3BlZWQtaHEnLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUlRQIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnRwT3V0cHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBzbW9vdGhpbmcgbGF0ZW5jeSBmb3IgUklTVCwgUlRQLCBhbmQgUlRQLUZFQyBzdHJlYW1zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNtb290aGluZyBsYXRlbmN5XG4gICAqL1xuICByZWFkb25seSBzbW9vdGhpbmdMYXRlbmN5PzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgSVAgYWRkcmVzcyB3aGVyZSB5b3Ugd2FudCB0byBzZW5kIHRoZSBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBvcnQgdG8gdXNlIHdoZW4gY29udGVudCBpcyBkaXN0cmlidXRlZCB0byB0aGlzIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnQgdG8gdXNlIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUlRQLUZFQyBvdXRwdXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ0cEZlY091dHB1dENvbmZpZyBleHRlbmRzIFJ0cE91dHB1dENvbmZpZyB7IH1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBSSVNUIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlzdE91dHB1dENvbmZpZyBleHRlbmRzIFJ0cE91dHB1dENvbmZpZyB7IH1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFppeGkgUHVsbCBvdXRwdXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFppeGlQdWxsT3V0cHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBzdHJlYW0gSUQgdGhhdCB5b3Ugd2FudCB0byB1c2UgZm9yIHRoaXMgdHJhbnNwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZW1vdGUgSUQgZm9yIHRoZSBaaXhpLXB1bGwgc3RyZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3RlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGxhdGVuY3kgZm9yIFppeGktYmFzZWQgc3RyZWFtcy5cbiAgICovXG4gIHJlYWRvbmx5IG1heExhdGVuY3k6IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHJhbmdlIG9mIElQIGFkZHJlc3NlcyB0aGF0IHNob3VsZCBiZSBhbGxvd2VkIHRvIGluaXRpYXRlIG91dHB1dCByZXF1ZXN0cyB0byB0aGlzIGZsb3cuXG4gICAqIFRoZXNlIElQIGFkZHJlc3NlcyBzaG91bGQgYmUgaW4gdGhlIGZvcm0gb2YgYSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGJsb2NrOyBmb3IgZXhhbXBsZSwgMTAuMC4wLjAvMTYuXG4gICAqXG4gICAqIFJlcXVpcmVkIGJ5IHRoZSBNZWRpYUNvbm5lY3Qgc2VydmljZSBmb3IgWml4aSBQdWxsIG91dHB1dHMuXG4gICAqL1xuICByZWFkb25seSBjaWRyQWxsb3dMaXN0OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFN0YXRpYyBrZXkgZW5jcnlwdGlvbiBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbj86IFN0YXRpY0tleUVuY3J5cHRpb247XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgVlBDIGludGVyZmFjZSBhdHRhY2htZW50IHRvIHVzZSBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gVlBDIGludGVyZmFjZSBhdHRhY2htZW50XG4gICAqL1xuICByZWFkb25seSB2cGNJbnRlcmZhY2VBdHRhY2htZW50TmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFppeGkgUHVzaCBvdXRwdXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFppeGlQdXNoT3V0cHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBzdHJlYW0gSUQgdGhhdCB5b3Ugd2FudCB0byB1c2UgZm9yIHRoaXMgdHJhbnNwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGxhdGVuY3kgZm9yIFppeGktYmFzZWQgc3RyZWFtcy5cbiAgICovXG4gIHJlYWRvbmx5IG1heExhdGVuY3k6IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHJhbmdlIG9mIElQIGFkZHJlc3NlcyB0aGF0IHNob3VsZCBiZSBhbGxvd2VkIHRvIGluaXRpYXRlIG91dHB1dCByZXF1ZXN0cyB0byB0aGlzIGZsb3cuXG4gICAqIFRoZXNlIElQIGFkZHJlc3NlcyBzaG91bGQgYmUgaW4gdGhlIGZvcm0gb2YgYSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGJsb2NrOyBmb3IgZXhhbXBsZSwgMTAuMC4wLjAvMTYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gQ0lEUiBhbGxvdyBsaXN0XG4gICAqL1xuICByZWFkb25seSBjaWRyQWxsb3dMaXN0Pzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBTdGF0aWMga2V5IGVuY3J5cHRpb24gZm9yIHRoaXMgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBTdGF0aWNLZXlFbmNyeXB0aW9uO1xuICAvKipcbiAgICogVGhlIElQIGFkZHJlc3Mgd2hlcmUgeW91IHdhbnQgdG8gc2VuZCB0aGUgb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwb3J0IHRvIHVzZSB3aGVuIGNvbnRlbnQgaXMgZGlzdHJpYnV0ZWQgdG8gdGhpcyBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgVlBDIGludGVyZmFjZSBhdHRhY2htZW50IHRvIHVzZSBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gVlBDIGludGVyZmFjZSBhdHRhY2htZW50XG4gICAqL1xuICByZWFkb25seSB2cGNJbnRlcmZhY2VBdHRhY2htZW50TmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFNSVCBDYWxsZXIgb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcnRDYWxsZXJPdXRwdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMgZm9yIFNSVC1iYXNlZCBzdHJlYW1zLlxuICAgKlxuICAgKiBJbiBzdHJlYW1zIHRoYXQgdXNlIHRoZSBTUlQgcHJvdG9jb2wsIHRoaXMgdmFsdWUgdGhhdCB5b3Ugc2V0IG9uIHlvdXIgTWVkaWFDb25uZWN0IHNvdXJjZSBvciBvdXRwdXQgcmVwcmVzZW50c1xuICAgKiB0aGUgbWluaW1hbCBwb3RlbnRpYWwgbGF0ZW5jeSBvZiB0aGF0IGNvbm5lY3Rpb24uIFRoZSBsYXRlbmN5IG9mIHRoZSBzdHJlYW0gaXMgc2V0IHRvIHRoZSBoaWdoZXN0IG51bWJlciBiZXR3ZWVuXG4gICAqIHRoZSBzZW5kZXLigJlzIG1pbmltdW0gbGF0ZW5jeSBhbmQgdGhlIHJlY2VpdmVy4oCZcyBtaW5pbXVtIGxhdGVuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWluaW11bSBsYXRlbmN5XG4gICAqL1xuICByZWFkb25seSBtaW5MYXRlbmN5PzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgc3RyZWFtIElEIHRoYXQgeW91IHdhbnQgdG8gdXNlIGZvciB0aGlzIHRyYW5zcG9ydC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzdHJlYW0gSURcbiAgICovXG4gIHJlYWRvbmx5IHN0cmVhbUlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElQIGFkZHJlc3Mgd2hlcmUgeW91IHdhbnQgdG8gc2VuZCB0aGUgb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwb3J0IHRvIHVzZSB3aGVuIGNvbnRlbnQgaXMgZGlzdHJpYnV0ZWQgdG8gdGhpcyBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTUlQgcGFzc3dvcmQgZW5jcnlwdGlvbiBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbj86IFNydFBhc3N3b3JkRW5jcnlwdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnQgdG8gdXNlIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgU1JUIExpc3RlbmVyIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3J0TGlzdGVuZXJPdXRwdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMgZm9yIFNSVC1iYXNlZCBzdHJlYW1zLlxuICAgKlxuICAgKiBJbiBzdHJlYW1zIHRoYXQgdXNlIHRoZSBTUlQgcHJvdG9jb2wsIHRoaXMgdmFsdWUgdGhhdCB5b3Ugc2V0IG9uIHlvdXIgTWVkaWFDb25uZWN0IHNvdXJjZSBvciBvdXRwdXQgcmVwcmVzZW50c1xuICAgKiB0aGUgbWluaW1hbCBwb3RlbnRpYWwgbGF0ZW5jeSBvZiB0aGF0IGNvbm5lY3Rpb24uIFRoZSBsYXRlbmN5IG9mIHRoZSBzdHJlYW0gaXMgc2V0IHRvIHRoZSBoaWdoZXN0IG51bWJlciBiZXR3ZWVuXG4gICAqIHRoZSBzZW5kZXLigJlzIG1pbmltdW0gbGF0ZW5jeSBhbmQgdGhlIHJlY2VpdmVy4oCZcyBtaW5pbXVtIGxhdGVuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWluaW11bSBsYXRlbmN5XG4gICAqL1xuICByZWFkb25seSBtaW5MYXRlbmN5PzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0byB1c2Ugd2hlbiBjb250ZW50IGlzIGRpc3RyaWJ1dGVkIHRvIHRoaXMgb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHJhbmdlIG9mIElQIGFkZHJlc3NlcyB0aGF0IHNob3VsZCBiZSBhbGxvd2VkIHRvIGluaXRpYXRlIG91dHB1dCByZXF1ZXN0cyB0byB0aGlzIGZsb3cuXG4gICAqIFRoZXNlIElQIGFkZHJlc3NlcyBzaG91bGQgYmUgaW4gdGhlIGZvcm0gb2YgYSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGJsb2NrOyBmb3IgZXhhbXBsZSwgMTAuMC4wLjAvMTYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gQ0lEUiBhbGxvdyBsaXN0XG4gICAqL1xuICByZWFkb25seSBjaWRyQWxsb3dMaXN0Pzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBTUlQgcGFzc3dvcmQgZW5jcnlwdGlvbiBmb3IgdGhpcyBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbj86IFNydFBhc3N3b3JkRW5jcnlwdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnQgdG8gdXNlIGZvciB0aGlzIG91dHB1dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBWUEMgaW50ZXJmYWNlIGF0dGFjaG1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgTkRJIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmRpT3V0cHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIEEgc3VmZml4IGZvciB0aGUgbmFtZXMgb2YgdGhlIE5ESSBzb3VyY2VzIHRoYXQgdGhlIGZsb3cgY3JlYXRlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgb3V0cHV0IG5hbWUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmRpUHJvZ3JhbU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHF1YWxpdHkgc2V0dGluZyBmb3IgdGhlIE5ESSBTcGVlZCBIUSBlbmNvZGVyLCBleHByZXNzZWQgYXMgYSBwZXJjZW50YWdlLlxuICAgKlxuICAgKiBWYWxpZCByYW5nZTogMTAwLTIwMC4gSGlnaGVyIHZhbHVlcyBwcm9kdWNlIGhpZ2hlciBxdWFsaXR5IGFuZCBsYXJnZXIgYml0cmF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL2Fib3V0LWF3cy93aGF0cy1uZXcvMjAyNS8wMy9hd3MtZWxlbWVudGFsLW1lZGlhY29ubmVjdC1zdXBwb3J0LW5kaS1vdXRwdXRzL1xuICAgKiBAZGVmYXVsdCAtIHRoZSBNZWRpYUNvbm5lY3Qgc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBuZGlTcGVlZEhxUXVhbGl0eT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBmbG93IG91dHB1dCBjb25maWd1cmF0aW9uLiBDRk4tYm91bmQgZmllbGRzIHVzZSBMMSBwcm9wZXJ0eSB0eXBlczsgZW5jcnlwdGlvblxuICogZmllbGRzIGFyZSBrZXB0IGFzIEwyIGNsYXNzZXMgKHJlc29sdmVkIHRvIENGTiBzaGFwZSBpbiB0aGUgRmxvd091dHB1dCBjb25zdHJ1Y3RvcikuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIEZsb3dPdXRwdXRDb25maWcge1xuICByZWFkb25seSBjaWRyQWxsb3dMaXN0Pzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuICAvKiogU3RhdGljLWtleSBlbmNyeXB0aW9uIGZvciBaaXhpIFB1bGwgb3V0cHV0cy4gU2V0IGF0IG1vc3Qgb25lIG9mIHRoZXNlIHR3byBmaWVsZHMuICovXG4gIHJlYWRvbmx5IHN0YXRpY0tleUVuY3J5cHRpb24/OiBTdGF0aWNLZXlFbmNyeXB0aW9uO1xuICAvKiogU1JULXBhc3N3b3JkIGVuY3J5cHRpb24gZm9yIFNSVCBvdXRwdXRzLiBTZXQgYXQgbW9zdCBvbmUgb2YgdGhlc2UgdHdvIGZpZWxkcy4gKi9cbiAgcmVhZG9ubHkgc3J0UGFzc3dvcmRFbmNyeXB0aW9uPzogU3J0UGFzc3dvcmRFbmNyeXB0aW9uO1xuICByZWFkb25seSBtYXhMYXRlbmN5PzogbnVtYmVyO1xuICByZWFkb25seSBtaW5MYXRlbmN5PzogbnVtYmVyO1xuICByZWFkb25seSBuZGlQcm9ncmFtTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmRpU3BlZWRIcVF1YWxpdHk/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHByb3RvY29sPzogc3RyaW5nO1xuICByZWFkb25seSByZW1vdGVJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgc21vb3RoaW5nTGF0ZW5jeT86IG51bWJlcjtcbiAgcmVhZG9ubHkgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ/OiBDZm5GbG93T3V0cHV0LlZwY0ludGVyZmFjZUF0dGFjaG1lbnRQcm9wZXJ0eTtcbiAgcmVhZG9ubHkgcm91dGVySW50ZWdyYXRpb25TdGF0ZT86IFN0YXRlO1xuICByZWFkb25seSByb3V0ZXJJbnRlZ3JhdGlvblRyYW5zaXRFbmNyeXB0aW9uPzogVHJhbnNpdEVuY3J5cHRpb247XG59XG5cbi8qKlxuICogT3V0cHV0IGNvbmZpZ3VyYXRpb24gdG8gUm91dGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyVHJhbnNpdENvbmZpZyB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciBlbmNyeXB0aW9uIGlzIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUcmFuc2l0RW5jcnlwdGlvbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZGVmaW5lIGEgRmxvd091dHB1dCBieSBwcm90b2NvbC5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBmbG93cyByZWNlaXZpbmcgYSBzdHJlYW0gZnJvbSByb3V0ZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJvdXRlcihpbnB1dD86IFJvdXRlclRyYW5zaXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcm91dGVySW50ZWdyYXRpb25TdGF0ZTogU3RhdGUuRU5BQkxFRCxcbiAgICAgIHJvdXRlckludGVncmF0aW9uVHJhbnNpdEVuY3J5cHRpb246IGlucHV0Py5lbmNyeXB0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgUlRQIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcnRwKGlucHV0OiBSdHBPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5SVFAsXG4gICAgICBkZXN0aW5hdGlvbjogaW5wdXQuZGVzdGluYXRpb24sXG4gICAgICBwb3J0OiBpbnB1dC5wb3J0LFxuICAgICAgc21vb3RoaW5nTGF0ZW5jeTogaW5wdXQuc21vb3RoaW5nTGF0ZW5jeT8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ6IHRvVnBjSW50ZXJmYWNlQXR0YWNobWVudChpbnB1dC52cGNJbnRlcmZhY2VBdHRhY2htZW50TmFtZSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uIGZvciBSVFAtRkVDIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcnRwRmVjKGlucHV0OiBSdHBGZWNPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5SVFBfRkVDLFxuICAgICAgZGVzdGluYXRpb246IGlucHV0LmRlc3RpbmF0aW9uLFxuICAgICAgcG9ydDogaW5wdXQucG9ydCxcbiAgICAgIHNtb290aGluZ0xhdGVuY3k6IGlucHV0LnNtb290aGluZ0xhdGVuY3k/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgICB2cGNJbnRlcmZhY2VBdHRhY2htZW50OiB0b1ZwY0ludGVyZmFjZUF0dGFjaG1lbnQoaW5wdXQudnBjSW50ZXJmYWNlQXR0YWNobWVudE5hbWUpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgUklTVCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJpc3QoaW5wdXQ6IFJpc3RPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5SSVNULFxuICAgICAgZGVzdGluYXRpb246IGlucHV0LmRlc3RpbmF0aW9uLFxuICAgICAgcG9ydDogaW5wdXQucG9ydCxcbiAgICAgIHNtb290aGluZ0xhdGVuY3k6IGlucHV0LnNtb290aGluZ0xhdGVuY3k/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgICB2cGNJbnRlcmZhY2VBdHRhY2htZW50OiB0b1ZwY0ludGVyZmFjZUF0dGFjaG1lbnQoaW5wdXQudnBjSW50ZXJmYWNlQXR0YWNobWVudE5hbWUpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgWml4aSBQdXNoIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgeml4aVB1c2goaW5wdXQ6IFppeGlQdXNoT3V0cHV0Q29uZmlnKTogT3V0cHV0Q29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBPdXRwdXRDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3RvY29sOiBGbG93T3V0cHV0UHJvdG9jb2wuWklYSV9QVVNILFxuICAgICAgZGVzdGluYXRpb246IGlucHV0LmRlc3RpbmF0aW9uLFxuICAgICAgcG9ydDogaW5wdXQucG9ydCxcbiAgICAgIHN0cmVhbUlkOiBpbnB1dC5zdHJlYW1JZCxcbiAgICAgIG1heExhdGVuY3k6IGlucHV0Lm1heExhdGVuY3kudG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIGNpZHJBbGxvd0xpc3Q6IGlucHV0LmNpZHJBbGxvd0xpc3QsXG4gICAgICBzdGF0aWNLZXlFbmNyeXB0aW9uOiBpbnB1dC5lbmNyeXB0aW9uLFxuICAgICAgdnBjSW50ZXJmYWNlQXR0YWNobWVudDogdG9WcGNJbnRlcmZhY2VBdHRhY2htZW50KGlucHV0LnZwY0ludGVyZmFjZUF0dGFjaG1lbnROYW1lKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIFppeGkgUHVsbCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHppeGlQdWxsKGlucHV0OiBaaXhpUHVsbE91dHB1dENvbmZpZyk6IE91dHB1dENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgT3V0cHV0Q29uZmlndXJhdGlvbih7XG4gICAgICBwcm90b2NvbDogRmxvd091dHB1dFByb3RvY29sLlpJWElfUFVMTCxcbiAgICAgIHN0cmVhbUlkOiBpbnB1dC5zdHJlYW1JZCxcbiAgICAgIHJlbW90ZUlkOiBpbnB1dC5yZW1vdGVJZCxcbiAgICAgIG1heExhdGVuY3k6IGlucHV0Lm1heExhdGVuY3kudG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIGNpZHJBbGxvd0xpc3Q6IGlucHV0LmNpZHJBbGxvd0xpc3QsXG4gICAgICBzdGF0aWNLZXlFbmNyeXB0aW9uOiBpbnB1dC5lbmNyeXB0aW9uLFxuICAgICAgdnBjSW50ZXJmYWNlQXR0YWNobWVudDogdG9WcGNJbnRlcmZhY2VBdHRhY2htZW50KGlucHV0LnZwY0ludGVyZmFjZUF0dGFjaG1lbnROYW1lKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb24gZm9yIFNSVCBDYWxsZXIgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcnRDYWxsZXIoaW5wdXQ6IFNydENhbGxlck91dHB1dENvbmZpZyk6IE91dHB1dENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgT3V0cHV0Q29uZmlndXJhdGlvbih7XG4gICAgICBwcm90b2NvbDogRmxvd091dHB1dFByb3RvY29sLlNSVF9DQUxMRVIsXG4gICAgICBkZXN0aW5hdGlvbjogaW5wdXQuZGVzdGluYXRpb24sXG4gICAgICBwb3J0OiBpbnB1dC5wb3J0LFxuICAgICAgbWluTGF0ZW5jeTogaW5wdXQubWluTGF0ZW5jeT8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIHN0cmVhbUlkOiBpbnB1dC5zdHJlYW1JZCxcbiAgICAgIHNydFBhc3N3b3JkRW5jcnlwdGlvbjogaW5wdXQuZW5jcnlwdGlvbixcbiAgICAgIHZwY0ludGVyZmFjZUF0dGFjaG1lbnQ6IHRvVnBjSW50ZXJmYWNlQXR0YWNobWVudChpbnB1dC52cGNJbnRlcmZhY2VBdHRhY2htZW50TmFtZSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uIGZvciBTUlQgTGlzdGVuZXIgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcnRMaXN0ZW5lcihpbnB1dDogU3J0TGlzdGVuZXJPdXRwdXRDb25maWcpOiBPdXRwdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oe1xuICAgICAgcHJvdG9jb2w6IEZsb3dPdXRwdXRQcm90b2NvbC5TUlRfTElTVEVORVIsXG4gICAgICBwb3J0OiBpbnB1dC5wb3J0LFxuICAgICAgbWluTGF0ZW5jeTogaW5wdXQubWluTGF0ZW5jeT8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIGNpZHJBbGxvd0xpc3Q6IGlucHV0LmNpZHJBbGxvd0xpc3QsXG4gICAgICBzcnRQYXNzd29yZEVuY3J5cHRpb246IGlucHV0LmVuY3J5cHRpb24sXG4gICAgICB2cGNJbnRlcmZhY2VBdHRhY2htZW50OiB0b1ZwY0ludGVyZmFjZUF0dGFjaG1lbnQoaW5wdXQudnBjSW50ZXJmYWNlQXR0YWNobWVudE5hbWUpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbiBmb3IgTkRJIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbmRpKGlucHV0OiBOZGlPdXRwdXRDb25maWcgPSB7fSk6IE91dHB1dENvbmZpZ3VyYXRpb24ge1xuICAgIGlmIChpbnB1dC5uZGlTcGVlZEhxUXVhbGl0eSAhPT0gdW5kZWZpbmVkXG4gICAgICAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKGlucHV0Lm5kaVNwZWVkSHFRdWFsaXR5KVxuICAgICAgJiYgKGlucHV0Lm5kaVNwZWVkSHFRdWFsaXR5IDwgMTAwIHx8IGlucHV0Lm5kaVNwZWVkSHFRdWFsaXR5ID4gMjAwKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgTmRpU3BlZWRIcVF1YWxpdHlSYW5nZWAsXG4gICAgICAgIGBOREkgU3BlZWQgSFEgcXVhbGl0eSBtdXN0IGJlIGJldHdlZW4gMTAwIGFuZCAyMDAsIGdvdCAke2lucHV0Lm5kaVNwZWVkSHFRdWFsaXR5fWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT3V0cHV0Q29uZmlndXJhdGlvbih7XG4gICAgICBwcm90b2NvbDogRmxvd091dHB1dFByb3RvY29sLk5ESSxcbiAgICAgIG5kaVByb2dyYW1OYW1lOiBpbnB1dC5uZGlQcm9ncmFtTmFtZSxcbiAgICAgIG5kaVNwZWVkSHFRdWFsaXR5OiBpbnB1dC5uZGlTcGVlZEhxUXVhbGl0eSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3V0cHV0IC0gQ29uZmlndXJhdGlvbiBmb3Igb3V0cHV0cyBpbiBvdXRwdXRcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfb3V0cHV0OiBGbG93T3V0cHV0Q29uZmlnKSB7IH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIG91dHB1dCBjb25maWd1cmF0aW9uIGlzIGJvdW5kIHRvIGEgRmxvd091dHB1dC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2JpbmQoKTogRmxvd091dHB1dENvbmZpZyB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5fb3V0cHV0IH07XG4gIH1cbn1cblxuLyoqXG4gKiBTaGFyZWQgYmFzZSBmb3IgYm90aCByZWFsIGFuZCBpbXBvcnRlZCBmbG93IG91dHB1dHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEZsb3dPdXRwdXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRmxvd091dHB1dCB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmbG93T3V0cHV0QXJuOiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmbG93T3V0cHV0UmVmKCk6IEZsb3dPdXRwdXRSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7IG91dHB1dEFybjogdGhpcy5mbG93T3V0cHV0QXJuIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNvdXJjZSBkZWZpbmVzIHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzLCBwcm90b2NvbCwgYW5kIHBvcnQgdGhhdFxuICogQVdTIEVsZW1lbnRhbCBNZWRpYUNvbm5lY3Qgc2VuZHMgdGhlIGluZ2VzdGVkIHZpZGVvIHRvLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgRmxvd091dHB1dCBleHRlbmRzIEZsb3dPdXRwdXRCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtbWVkaWFjb25uZWN0LWFscGhhLkZsb3dPdXRwdXQnO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgRmxvdyBPdXB1dCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIChpbXBvcnRlZCkgRmxvdyBPdXRwdXQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GbG93T3V0cHV0QXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGZsb3dPdXRwdXRBcm46IHN0cmluZyk6IElGbG93T3V0cHV0IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBGbG93T3V0cHV0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmxvd091dHB1dEFybiA9IGZsb3dPdXRwdXRBcm47XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBmbG93T3V0cHV0QXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZsb3dPdXRwdXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcz8uZmxvd091dHB1dE5hbWUgPz8gTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDEyOCB9KSB9KSxcbiAgICB9KTtcblxuICAgIC8vIFZhbGlkYXRlIGZsb3cgb3V0cHV0IG5hbWUgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuZmxvd091dHB1dE5hbWUgIT0gbnVsbCAmJiBwcm9wcy5mbG93T3V0cHV0TmFtZSAhPT0gJycgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5mbG93T3V0cHV0TmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5mbG93T3V0cHV0TmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgRmxvd091dHB1dE5hbWVMZW5ndGhgLCBgRmxvdyBvdXRwdXQgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMsIGdvdCAke3Byb3BzLmZsb3dPdXRwdXROYW1lLmxlbmd0aH1gLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmICghL15bYS16QS1aMC05LV0rJC8udGVzdChwcm9wcy5mbG93T3V0cHV0TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgRmxvd091dHB1dE5hbWVGb3JtYXRgLCBgRmxvdyBvdXRwdXQgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgaHlwaGVucywgZ290ICcke3Byb3BzLmZsb3dPdXRwdXROYW1lfSdgLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGNvbnN0IG91dHB1dENvbmZpZyA9IHByb3BzLm91dHB1dC5fYmluZCgpO1xuXG4gICAgLy8gV2FybiBvbiBmdWxseS1vcGVuIENJRFIgYWxsb3cgbGlzdHMuXG4gICAgaWYgKG91dHB1dENvbmZpZy5jaWRyQWxsb3dMaXN0ICE9PSB1bmRlZmluZWQgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChvdXRwdXRDb25maWcuY2lkckFsbG93TGlzdCkpIHtcbiAgICAgIGZvciAoY29uc3QgY2lkciBvZiBvdXRwdXRDb25maWcuY2lkckFsbG93TGlzdCkge1xuICAgICAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChjaWRyKSAmJiBpc09wZW5DaWRyKGNpZHIpKSB7XG4gICAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZ1YyKFxuICAgICAgICAgICAgJ0Bhd3MtY2RrL2F3cy1tZWRpYWNvbm5lY3QtYWxwaGE6b3Blbk91dHB1dENpZHInLFxuICAgICAgICAgICAgYE91dHB1dCBDSURSIGFsbG93IGxpc3QgJyR7Y2lkcn0nIGFsbG93cyBwdWxsIHJlcXVlc3RzIGZyb20gYW55IElQLiBSZXN0cmljdCB0byB0aGUgbmFycm93ZXN0IHJhbmdlIHlvdXIgY29uc3VtZXJzIG5lZWQuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgc3RhdGljS2V5RW5jcnlwdGlvbiwgc3J0UGFzc3dvcmRFbmNyeXB0aW9uLCByb3V0ZXJJbnRlZ3JhdGlvblRyYW5zaXRFbmNyeXB0aW9uLCAuLi5jZm5PdXRwdXRDb25maWcgfSA9IG91dHB1dENvbmZpZztcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkZsb3dPdXRwdXQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgLi4uY2ZuT3V0cHV0Q29uZmlnLFxuICAgICAgZW5jcnlwdGlvbjogcmVuZGVyT3V0cHV0RW5jcnlwdGlvbih0aGlzLCBzdGF0aWNLZXlFbmNyeXB0aW9uLCBzcnRQYXNzd29yZEVuY3J5cHRpb24sIHByb3BzLmZsb3cuZmxvd0FybiksXG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGZsb3dBcm46IHByb3BzLmZsb3cuZmxvd0FybixcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIG91dHB1dFN0YXR1czogcHJvcHMub3V0cHV0U3RhdHVzLFxuICAgICAgcm91dGVySW50ZWdyYXRpb25UcmFuc2l0RW5jcnlwdGlvbjogb3V0cHV0Q29uZmlnLnJvdXRlckludGVncmF0aW9uU3RhdGUgPT09IFN0YXRlLkVOQUJMRURcbiAgICAgICAgPyByZW5kZXJUcmFuc2l0RW5jcnlwdGlvbih0aGlzLCAnUm91dGVyVHJhbnNpdEVuY3J5cHRpb25Sb2xlJywgcm91dGVySW50ZWdyYXRpb25UcmFuc2l0RW5jcnlwdGlvbiwgcHJvcHMuZmxvdy5mbG93QXJuKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuZmxvd091dHB1dEFybiA9IHJlc291cmNlLmF0dHJPdXRwdXRBcm47XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIG9wdGlvbmFsIFZQQyBpbnRlcmZhY2UgbmFtZSB0byB0aGUgQ0ZOIGF0dGFjaG1lbnQgcHJvcGVydHkgc2hhcGUuXG4gKi9cbmZ1bmN0aW9uIHRvVnBjSW50ZXJmYWNlQXR0YWNobWVudChuYW1lPzogc3RyaW5nKTogQ2ZuRmxvd091dHB1dC5WcGNJbnRlcmZhY2VBdHRhY2htZW50UHJvcGVydHkgfCB1bmRlZmluZWQge1xuICByZXR1cm4gbmFtZSA/IHsgdnBjSW50ZXJmYWNlTmFtZTogbmFtZSB9IDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIG91dHB1dCdzIGtleS1iYXNlZCBlbmNyeXB0aW9uIChlaXRoZXIgc3RhdGljLWtleSBvciBTUlQtcGFzc3dvcmQpIHRvIGl0c1xuICogQ0ZOIHNoYXBlLiBBdCBtb3N0IG9uZSBvZiB0aGUgdHdvIGVuY3J5cHRpb24gZmllbGRzIGlzIHNldCBvbiBhIGdpdmVuIG91dHB1dC5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyT3V0cHV0RW5jcnlwdGlvbihcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgc3RhdGljS2V5OiBTdGF0aWNLZXlFbmNyeXB0aW9uIHwgdW5kZWZpbmVkLFxuICBzcnRQYXNzd29yZDogU3J0UGFzc3dvcmRFbmNyeXB0aW9uIHwgdW5kZWZpbmVkLFxuICBzb3VyY2VBcm4/OiBzdHJpbmcsXG4pOiBDZm5GbG93T3V0cHV0LkVuY3J5cHRpb25Qcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gIGlmIChzdGF0aWNLZXkpIHJldHVybiByZW5kZXJTdGF0aWNLZXlFbmNyeXB0aW9uKHNjb3BlLCBzdGF0aWNLZXksIHNvdXJjZUFybik7XG4gIGlmIChzcnRQYXNzd29yZCkgcmV0dXJuIHJlbmRlclNydFBhc3N3b3JkRW5jcnlwdGlvbihzY29wZSwgc3J0UGFzc3dvcmQsIHNvdXJjZUFybik7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -11,7 +11,7 @@ const shared_1 = require("./shared");
11
11
  */
12
12
  class Encoding {
13
13
  value;
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.Encoding", version: "2.263.0-alpha.0" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.Encoding", version: "2.264.0-alpha.0" };
15
15
  /**
16
16
  * Option for JXSV
17
17
  */
@@ -51,7 +51,7 @@ exports.Encoding = Encoding;
51
51
  * Defines network configuration for a source — either a public network with a CIDR allowlist, or a VPC interface.
52
52
  */
53
53
  class NetworkConfiguration {
54
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.NetworkConfiguration", version: "2.263.0-alpha.0" };
54
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.NetworkConfiguration", version: "2.264.0-alpha.0" };
55
55
  /**
56
56
  * Use a public network with a CIDR allowlist.
57
57
  */
@@ -92,7 +92,7 @@ exports.NetworkConfiguration = NetworkConfiguration;
92
92
  */
93
93
  class SourceProtocol {
94
94
  value;
95
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.SourceProtocol", version: "2.263.0-alpha.0" };
95
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.SourceProtocol", version: "2.264.0-alpha.0" };
96
96
  /**
97
97
  * Options for Zixi Push
98
98
  */
@@ -168,7 +168,7 @@ class SourceConfiguration {
168
168
  staticKeyDecryption;
169
169
  srtPasswordDecryption;
170
170
  routerDecryption;
171
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.SourceConfiguration", version: "2.263.0-alpha.0" };
171
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.SourceConfiguration", version: "2.264.0-alpha.0" };
172
172
  /**
173
173
  * The source configuration for flows receiving a stream from router.
174
174
  */
@@ -1,5 +1,6 @@
1
1
  import type { IResource } from 'aws-cdk-lib';
2
- import type { IFlowSourceRef } from 'aws-cdk-lib/aws-mediaconnect';
2
+ import { Resource } from 'aws-cdk-lib';
3
+ import type { IFlowSourceRef, FlowSourceReference } from 'aws-cdk-lib/aws-mediaconnect';
3
4
  import type { Construct } from 'constructs';
4
5
  import type { IFlow } from './flow';
5
6
  import type { SourceConfiguration } from './flow-source-configuration';
@@ -37,10 +38,7 @@ export interface IFlowSource extends IResource, IFlowSourceRef {
37
38
  */
38
39
  export interface FlowSourceProps {
39
40
  /**
40
- * Additional Source Configuration.
41
- *
42
- * Set the source's name via `name` on the configuration (e.g. `SourceConfiguration.rtp({ name })`).
43
- * When no name is set there, one is generated from construct naming.
41
+ * Flow Source Configuration.
44
42
  */
45
43
  readonly source: SourceConfiguration;
46
44
  /**
@@ -75,6 +73,16 @@ export interface FlowSourceAttributes {
75
73
  */
76
74
  readonly sourceIngestPort?: string;
77
75
  }
76
+ /**
77
+ * Shared base for both real and imported flow sources.
78
+ */
79
+ declare abstract class FlowSourceBase extends Resource implements IFlowSource {
80
+ abstract readonly flowSourceArn: string;
81
+ abstract readonly flowSourceName: string;
82
+ abstract readonly ingestIp: string;
83
+ abstract readonly sourceIngestPort: string;
84
+ get flowSourceRef(): FlowSourceReference;
85
+ }
78
86
  /**
79
87
  * Adds source to an existing flow.
80
88
  *
@@ -114,3 +122,4 @@ export declare class FlowSource extends FlowSourceBase {
114
122
  readonly sourceIngestPort: string;
115
123
  constructor(scope: Construct, id: string, props: FlowSourceProps);
116
124
  }
125
+ export {};
@@ -45,7 +45,6 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
45
45
  const flow_source_configuration_1 = require("./flow-source-configuration");
46
46
  /**
47
47
  * Shared base for both real and imported flow sources.
48
- * @internal
49
48
  */
50
49
  class FlowSourceBase extends aws_cdk_lib_1.Resource {
51
50
  get flowSourceRef() {
@@ -75,7 +74,7 @@ let FlowSource = (() => {
75
74
  FlowSource = _classThis = _classDescriptor.value;
76
75
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
77
76
  }
78
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.FlowSource", version: "2.263.0-alpha.0" };
77
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.FlowSource", version: "2.264.0-alpha.0" };
79
78
  /** Uniquely identifies this class. */
80
79
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.FlowSource';
81
80
  /**
@@ -187,4 +186,4 @@ let FlowSource = (() => {
187
186
  return FlowSource = _classThis;
188
187
  })();
189
188
  exports.FlowSource = FlowSource;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmbG93LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBNEU7QUFDNUUsbUVBQTZEO0FBRTdELDRFQUE0RDtBQUM1RCw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBSTFFLDJFQUE2RDtBQW9GN0Q7OztHQUdHO0FBQ0gsTUFBZSxjQUFlLFNBQVEsc0JBQVE7SUFNNUMsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0tBQzFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7R0FRRztJQUVVLFVBQVU7NEJBRHRCLG9DQUFrQjs7OztzQkFDYSxjQUFjOzBCQUF0QixTQUFRLFdBQWM7Ozs7WUFBOUMsNktBbUhDOzs7OztRQWxIQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLDRDQUE0QyxDQUFDO1FBRXBHOzs7Ozs7O1dBT0c7UUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsYUFBcUI7WUFDakYsT0FBTyxVQUFVLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDMUU7UUFFRDs7Ozs7Ozs7OztXQVVHO1FBQ0ksTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCOzs7Ozs7Ozs7O1lBQzlGLE1BQU0sTUFBTyxTQUFRLGNBQWM7Z0JBQ2pCLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUVwRCxJQUFXLGNBQWM7b0JBQ3ZCLElBQUksS0FBSyxDQUFDLGNBQWM7d0JBQUUsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDO29CQUN0RCxNQUFNLElBQUksNkJBQWUsQ0FDdkIsSUFBQSxzQkFBRyxF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QUcsRUFBQSxnQ0FBZ0MsRUFBRSxpRUFBaUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxSSxDQUFDO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxJQUFJLDZCQUFlLENBQ3ZCLElBQUEsc0JBQUcsRUFBQSw0QkFBNEIsRUFDL0IsOEZBQThGO29CQUM5RiwrRUFBK0UsRUFDL0UsSUFBSSxDQUNMLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLFlBQVksQ0FBQztZQUVoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLGdDQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDbkQsR0FBRyxnQkFBZ0I7Z0JBQ25CLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDdkIsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVk7YUFDM0QsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUM7U0FDdkQ7O1lBbEhVLHVEQUFVOzs7OztBQUFWLGdDQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgTGF6eSwgTmFtZXMsIFRva2VuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5GbG93U291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgdHlwZSB7IElGbG93U291cmNlUmVmLCBGbG93U291cmNlUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElGbG93IH0gZnJvbSAnLi9mbG93JztcbmltcG9ydCB0eXBlIHsgU291cmNlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZmxvdy1zb3VyY2UtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VQcm90b2NvbCB9IGZyb20gJy4vZmxvdy1zb3VyY2UtY29uZmlndXJhdGlvbic7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBGbG93IFNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGbG93U291cmNlIGV4dGVuZHMgSVJlc291cmNlLCBJRmxvd1NvdXJjZVJlZiB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGZsb3cgc291cmNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBmbG93U291cmNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmbG93IHNvdXJjZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmxvd1NvdXJjZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElQIGFkZHJlc3MgdGhhdCB0aGUgZmxvdyB3aWxsIGJlIGxpc3RlbmluZyBvbiBmb3IgaW5jb21pbmcgY29udGVudC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5nZXN0SXA6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdGhhdCB0aGUgZmxvdyB3aWxsIGJlIGxpc3RlbmluZyBvbiBmb3IgaW5jb21pbmcgY29udGVudC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSW5nZXN0UG9ydDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBmbG93IHNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIFNvdXJjZSBDb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBTZXQgdGhlIHNvdXJjZSdzIG5hbWUgdmlhIGBuYW1lYCBvbiB0aGUgY29uZmlndXJhdGlvbiAoZS5nLiBgU291cmNlQ29uZmlndXJhdGlvbi5ydHAoeyBuYW1lIH0pYCkuXG4gICAqIFdoZW4gbm8gbmFtZSBpcyBzZXQgdGhlcmUsIG9uZSBpcyBnZW5lcmF0ZWQgZnJvbSBjb25zdHJ1Y3QgbmFtaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBTb3VyY2VDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZmxvdyB0aGlzIHNvdXJjZSBpcyBjb25uZWN0ZWQgdG8uIFRoZSBmbG93IG11c3QgaGF2ZSBGYWlsb3ZlciBlbmFibGVkIHRvIGFkZCBhbiBhZGRpdGlvbmFsIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IGZsb3c6IElGbG93O1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBGbG93IFNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93U291cmNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGZsb3cgc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmxvd1NvdXJjZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmxvdyBzb3VyY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWNjZXNzaW5nIGBmbG93U291cmNlTmFtZWAgb24gdGhlIGltcG9ydGVkIHNvdXJjZSB0aHJvd3M7IG9ubHkgcHJvdmlkZSB3aGVuIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGZsb3dTb3VyY2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSVAgYWRkcmVzcyB0aGF0IHRoZSBmbG93IHdpbGwgYmUgbGlzdGVuaW5nIG9uIGZvciBpbmNvbWluZyBjb250ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFjY2Vzc2luZyBgaW5nZXN0SXBgIG9uIHRoZSBpbXBvcnRlZCBzb3VyY2UgdGhyb3dzOyBvbmx5IHByb3ZpZGUgd2hlbiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBpbmdlc3RJcD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdGhhdCB0aGUgZmxvdyB3aWxsIGJlIGxpc3RlbmluZyBvbiBmb3IgaW5jb21pbmcgY29udGVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhY2Nlc3NpbmcgYHNvdXJjZUluZ2VzdFBvcnRgIG9uIHRoZSBpbXBvcnRlZCBzb3VyY2UgdGhyb3dzOyBvbmx5IHByb3ZpZGUgd2hlbiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJbmdlc3RQb3J0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNoYXJlZCBiYXNlIGZvciBib3RoIHJlYWwgYW5kIGltcG9ydGVkIGZsb3cgc291cmNlcy5cbiAqIEBpbnRlcm5hbFxuICovXG5hYnN0cmFjdCBjbGFzcyBGbG93U291cmNlQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZsb3dTb3VyY2Uge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd1NvdXJjZUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd1NvdXJjZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGluZ2VzdElwOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzb3VyY2VJbmdlc3RQb3J0OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmbG93U291cmNlUmVmKCk6IEZsb3dTb3VyY2VSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7IHNvdXJjZUFybjogdGhpcy5mbG93U291cmNlQXJuIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRzIHNvdXJjZSB0byBhbiBleGlzdGluZyBmbG93LlxuICpcbiAqIEFkZGluZyBhbiBhZGRpdGlvbmFsIHNvdXJjZSByZXF1aXJlcyBGYWlsb3ZlciB0byBiZSBlbmFibGVkLiBXaGVuIHlvdSBlbmFibGUgRmFpbG92ZXIsXG4gKiB0aGUgYWRkaXRpb25hbCBzb3VyY2UgbXVzdCB1c2UgdGhlIHNhbWUgcHJvdG9jb2wgYXMgdGhlIGV4aXN0aW5nIHNvdXJjZS4gQSBzb3VyY2UgaXNcbiAqIHRoZSBleHRlcm5hbCB2aWRlbyBjb250ZW50IHRoYXQgaW5jbHVkZXMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiAoZW5jcnlwdGlvbiBhbmQgc291cmNlIHR5cGUpXG4gKiBhbmQgYSBuZXR3b3JrIGFkZHJlc3MuIEVhY2ggZmxvdyBoYXMgYXQgbGVhc3Qgb25lIHNvdXJjZS4gQSBzdGFuZGFyZCBzb3VyY2UgY29tZXMgZnJvbSBhIHNvdXJjZVxuICogb3RoZXIgdGhhbiBhbm90aGVyIEFXUyBFbGVtZW50YWwgTWVkaWFDb25uZWN0IGZsb3csIHN1Y2ggYXMgYW4gb24tcHJlbWlzZXMgZW5jb2Rlci5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEZsb3dTb3VyY2UgZXh0ZW5kcyBGbG93U291cmNlQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLW1lZGlhY29ubmVjdC1hbHBoYS5GbG93U291cmNlJztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEZsb3cgU291cmNlIGZyb20gaXRzIEFSTi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBmbG93U291cmNlQXJuIFRoZSBBUk4gb2YgdGhlIEZsb3cgU291cmNlXG4gICAqIEByZXR1cm5zIEEgRmxvdyBTb3VyY2UgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GbG93U291cmNlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGZsb3dTb3VyY2VBcm46IHN0cmluZyk6IElGbG93U291cmNlIHtcbiAgICByZXR1cm4gRmxvd1NvdXJjZS5mcm9tRmxvd1NvdXJjZUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IGZsb3dTb3VyY2VBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEZsb3cgU291cmNlIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIFByb3ZpZGUgYGluZ2VzdElwYCBhbmQvb3IgYHNvdXJjZUluZ2VzdFBvcnRgIHdoZW4gaW1wb3J0aW5nIGEgc291cmNlIHRoYXQgd2FzIGRlcGxveWVkXG4gICAqIGV4dGVybmFsbHkg4oCUIG90aGVyd2lzZSBhY2Nlc3NpbmcgdGhvc2UgcHJvcGVydGllcyBvbiB0aGUgaW1wb3J0ZWQgY29uc3RydWN0IHdpbGwgdGhyb3cuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIEZsb3cgU291cmNlIGF0dHJpYnV0ZXNcbiAgICogQHJldHVybnMgQSBGbG93IFNvdXJjZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZsb3dTb3VyY2VBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBGbG93U291cmNlQXR0cmlidXRlcyk6IElGbG93U291cmNlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBGbG93U291cmNlQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmxvd1NvdXJjZUFybiA9IGF0dHJzLmZsb3dTb3VyY2VBcm47XG5cbiAgICAgIHB1YmxpYyBnZXQgZmxvd1NvdXJjZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGF0dHJzLmZsb3dTb3VyY2VOYW1lKSByZXR1cm4gYXR0cnMuZmxvd1NvdXJjZU5hbWU7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgbGl0YEZsb3dTb3VyY2VOYW1lTm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAnZmxvd1NvdXJjZU5hbWUnIGlzIG5vdCBhdmFpbGFibGUgb24gaW1wb3J0ZWQgRmxvd1NvdXJjZSAke3RoaXMubm9kZS5wYXRofTsgcGFzcyBpdCB2aWEgZnJvbUZsb3dTb3VyY2VBdHRyaWJ1dGVzYCxcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgZ2V0IGluZ2VzdElwKCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChhdHRycy5pbmdlc3RJcCkgcmV0dXJuIGF0dHJzLmluZ2VzdElwO1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBGbG93U291cmNlSW5nZXN0SXBOb3RQcm92aWRlZGAsXG4gICAgICAgICAgYCdpbmdlc3RJcCcgaXMgbm90IGF2YWlsYWJsZSBvbiBpbXBvcnRlZCBGbG93U291cmNlICR7dGhpcy5ub2RlLnBhdGh9OyBwYXNzIGl0IHZpYSBmcm9tRmxvd1NvdXJjZUF0dHJpYnV0ZXNgLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBnZXQgc291cmNlSW5nZXN0UG9ydCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoYXR0cnMuc291cmNlSW5nZXN0UG9ydCkgcmV0dXJuIGF0dHJzLnNvdXJjZUluZ2VzdFBvcnQ7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgbGl0YEZsb3dTb3VyY2VJbmdlc3RQb3J0Tm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAnc291cmNlSW5nZXN0UG9ydCcgaXMgbm90IGF2YWlsYWJsZSBvbiBpbXBvcnRlZCBGbG93U291cmNlICR7dGhpcy5ub2RlLnBhdGh9OyBwYXNzIGl0IHZpYSBmcm9tRmxvd1NvdXJjZUF0dHJpYnV0ZXNgLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICByZWFkb25seSBmbG93U291cmNlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZsb3dTb3VyY2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGluZ2VzdElwOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZUluZ2VzdFBvcnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmxvd1NvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAvLyBUaGUgc291cmNlIG5hbWUgY29tZXMgZnJvbSB0aGUgYHNvdXJjZWAgY29uZmlndXJhdGlvbjsgZmFsbCBiYWNrIHRvIGFcbiAgICAgIC8vIGNvbnN0cnVjdC1kZXJpdmVkIG5hbWUgd2hlbiBpdCBzZXRzIG5vbmUuXG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnNvdXJjZS5mbG93U291cmNlTmFtZSA/PyBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNjQgfSkgfSksXG4gICAgfSk7XG5cbiAgICAvLyBWYWxpZGF0ZSB0aGUgc291cmNlIG5hbWUgd2hlbiBvbmUgaXMgc2V0IG9uIHRoZSBjb25maWd1cmF0aW9uLlxuICAgIGlmIChwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUgIT0gbnVsbCAmJiBwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUgIT09ICcnICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuc291cmNlLmZsb3dTb3VyY2VOYW1lKSkge1xuICAgICAgaWYgKHByb3BzLnNvdXJjZS5mbG93U291cmNlTmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBGbG93U291cmNlTmFtZUxlbmd0aGAsIGBGbG93IHNvdXJjZSBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA2NCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUubGVuZ3RofWAsIHRoaXMpO1xuICAgICAgfVxuICAgICAgaWYgKCEvXlthLXpBLVowLTlfLV0rJC8udGVzdChwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dTb3VyY2VOYW1lRm9ybWF0YCwgYEZsb3cgc291cmNlIG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGh5cGhlbnMsIGFuZCB1bmRlcnNjb3JlcywgZ290ICcke3Byb3BzLnNvdXJjZS5mbG93U291cmNlTmFtZX0nYCwgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBjb25zdCBzb3VyY2VDb25maWcgPSBwcm9wcy5zb3VyY2UuX2JpbmQodGhpcyk7XG5cbiAgICBpZiAoc291cmNlQ29uZmlnLnByb3RvY29sID09PSBTb3VyY2VQcm90b2NvbC5DREkudmFsdWUgfHwgc291cmNlQ29uZmlnLnByb3RvY29sID09PSBTb3VyY2VQcm90b2NvbC5KUEVHWFMudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dTb3VyY2VQcm90b2NvbE5vdFN1cHBvcnRlZGAsICdDREkgb3IgSlBFR1hTIGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgb24gdGhlIG1haW4gRmxvdyBjb25zdHJ1Y3QnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3BzLmZsb3cuaXNGYWlsb3ZlckVuYWJsZWQpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBGbG93U291cmNlRmFpbG92ZXJSZXF1aXJlZGAsXG4gICAgICAgICdGYWlsb3ZlciBjb25maWd1cmF0aW9uIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgYW5kIGVuYWJsZWQgdG8gYWRkIGFuIGFkZGl0aW9uYWwgRmxvdyBzb3VyY2UuICcgK1xuICAgICAgICAnSWYgdGhlIEZsb3cgaXMgaW1wb3J0ZWQgdmlhIGZyb21GbG93QXR0cmlidXRlcygpLCBzZXQgaXNGYWlsb3ZlckVuYWJsZWQ6IHRydWUnLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5hbWU6IF9zb3VyY2VOYW1lLCAuLi5yZXN0U291cmNlQ29uZmlnIH0gPSBzb3VyY2VDb25maWc7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5GbG93U291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIC4uLnJlc3RTb3VyY2VDb25maWcsXG4gICAgICBmbG93QXJuOiBwcm9wcy5mbG93LmZsb3dBcm4sXG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBzb3VyY2VDb25maWcuZGVzY3JpcHRpb24gPz8gdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmZsb3dTb3VyY2VBcm4gPSByZXNvdXJjZS5mbG93U291cmNlUmVmLnNvdXJjZUFybjtcbiAgICB0aGlzLmZsb3dTb3VyY2VOYW1lID0gdGhpcy5waHlzaWNhbE5hbWU7XG4gICAgdGhpcy5pbmdlc3RJcCA9IHJlc291cmNlLmF0dHJJbmdlc3RJcDtcbiAgICB0aGlzLnNvdXJjZUluZ2VzdFBvcnQgPSByZXNvdXJjZS5hdHRyU291cmNlSW5nZXN0UG9ydDtcbiAgfVxufVxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmbG93LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBNEU7QUFDNUUsbUVBQTZEO0FBRTdELDRFQUE0RDtBQUM1RCw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBSTFFLDJFQUE2RDtBQWlGN0Q7O0dBRUc7QUFDSCxNQUFlLGNBQWUsU0FBUSxzQkFBUTtJQU01QyxJQUFXLGFBQWE7UUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7S0FDMUM7Q0FDRjtBQUVEOzs7Ozs7OztHQVFHO0lBRVUsVUFBVTs0QkFEdEIsb0NBQWtCOzs7O3NCQUNhLGNBQWM7MEJBQXRCLFNBQVEsV0FBYzs7OztZQUE5Qyw2S0FtSEM7Ozs7O1FBbEhDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcsNENBQTRDLENBQUM7UUFFcEc7Ozs7Ozs7V0FPRztRQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxhQUFxQjtZQUNqRixPQUFPLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUVEOzs7Ozs7Ozs7O1dBVUc7UUFDSSxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7Ozs7Ozs7Ozs7WUFDOUYsTUFBTSxNQUFPLFNBQVEsY0FBYztnQkFDakIsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBRXBELElBQVcsY0FBYztvQkFDdkIsSUFBSSxLQUFLLENBQUMsY0FBYzt3QkFBRSxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUM7b0JBQ3RELE1BQU0sSUFBSSw2QkFBZSxDQUN2QixJQUFBLHNCQUFHLEVB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RyxFQUFBLGdDQUFnQyxFQUFFLGlFQUFpRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFJLENBQUM7WUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksNkJBQWUsQ0FDdkIsSUFBQSxzQkFBRyxFQUFBLDRCQUE0QixFQUMvQiw4RkFBOEY7b0JBQzlGLCtFQUErRSxFQUMvRSxJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLGdCQUFnQixFQUFFLEdBQUcsWUFBWSxDQUFDO1lBRWhFLE1BQU0sUUFBUSxHQUFHLElBQUksZ0NBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNuRCxHQUFHLGdCQUFnQjtnQkFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN2QixXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWTthQUMzRCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1lBQ3RELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztTQUN2RDs7WUFsSFUsdURBQVU7Ozs7O0FBQVYsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlc291cmNlLCBMYXp5LCBOYW1lcywgVG9rZW4sIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmbkZsb3dTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB0eXBlIHsgSUZsb3dTb3VyY2VSZWYsIEZsb3dTb3VyY2VSZWZlcmVuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFjb25uZWN0JztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUZsb3cgfSBmcm9tICcuL2Zsb3cnO1xuaW1wb3J0IHR5cGUgeyBTb3VyY2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9mbG93LXNvdXJjZS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNvdXJjZVByb3RvY29sIH0gZnJvbSAnLi9mbG93LXNvdXJjZS1jb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIEZsb3cgU291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZsb3dTb3VyY2UgZXh0ZW5kcyBJUmVzb3VyY2UsIElGbG93U291cmNlUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZmxvdyBzb3VyY2UuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZsb3dTb3VyY2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZsb3cgc291cmNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBmbG93U291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSVAgYWRkcmVzcyB0aGF0IHRoZSBmbG93IHdpbGwgYmUgbGlzdGVuaW5nIG9uIGZvciBpbmNvbWluZyBjb250ZW50LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbmdlc3RJcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0aGF0IHRoZSBmbG93IHdpbGwgYmUgbGlzdGVuaW5nIG9uIGZvciBpbmNvbWluZyBjb250ZW50LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJbmdlc3RQb3J0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIGZsb3cgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1NvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIEZsb3cgU291cmNlIENvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IFNvdXJjZUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBmbG93IHRoaXMgc291cmNlIGlzIGNvbm5lY3RlZCB0by4gVGhlIGZsb3cgbXVzdCBoYXZlIEZhaWxvdmVyIGVuYWJsZWQgdG8gYWRkIGFuIGFkZGl0aW9uYWwgc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmxvdzogSUZsb3c7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEZsb3cgU291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTb3VyY2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZmxvdyBzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBmbG93U291cmNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmbG93IHNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhY2Nlc3NpbmcgYGZsb3dTb3VyY2VOYW1lYCBvbiB0aGUgaW1wb3J0ZWQgc291cmNlIHRocm93czsgb25seSBwcm92aWRlIHdoZW4gYXZhaWxhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmxvd1NvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJUCBhZGRyZXNzIHRoYXQgdGhlIGZsb3cgd2lsbCBiZSBsaXN0ZW5pbmcgb24gZm9yIGluY29taW5nIGNvbnRlbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWNjZXNzaW5nIGBpbmdlc3RJcGAgb24gdGhlIGltcG9ydGVkIHNvdXJjZSB0aHJvd3M7IG9ubHkgcHJvdmlkZSB3aGVuIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGluZ2VzdElwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0aGF0IHRoZSBmbG93IHdpbGwgYmUgbGlzdGVuaW5nIG9uIGZvciBpbmNvbWluZyBjb250ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFjY2Vzc2luZyBgc291cmNlSW5nZXN0UG9ydGAgb24gdGhlIGltcG9ydGVkIHNvdXJjZSB0aHJvd3M7IG9ubHkgcHJvdmlkZSB3aGVuIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUluZ2VzdFBvcnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2hhcmVkIGJhc2UgZm9yIGJvdGggcmVhbCBhbmQgaW1wb3J0ZWQgZmxvdyBzb3VyY2VzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBGbG93U291cmNlQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZsb3dTb3VyY2Uge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd1NvdXJjZUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd1NvdXJjZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGluZ2VzdElwOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzb3VyY2VJbmdlc3RQb3J0OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmbG93U291cmNlUmVmKCk6IEZsb3dTb3VyY2VSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7IHNvdXJjZUFybjogdGhpcy5mbG93U291cmNlQXJuIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRzIHNvdXJjZSB0byBhbiBleGlzdGluZyBmbG93LlxuICpcbiAqIEFkZGluZyBhbiBhZGRpdGlvbmFsIHNvdXJjZSByZXF1aXJlcyBGYWlsb3ZlciB0byBiZSBlbmFibGVkLiBXaGVuIHlvdSBlbmFibGUgRmFpbG92ZXIsXG4gKiB0aGUgYWRkaXRpb25hbCBzb3VyY2UgbXVzdCB1c2UgdGhlIHNhbWUgcHJvdG9jb2wgYXMgdGhlIGV4aXN0aW5nIHNvdXJjZS4gQSBzb3VyY2UgaXNcbiAqIHRoZSBleHRlcm5hbCB2aWRlbyBjb250ZW50IHRoYXQgaW5jbHVkZXMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiAoZW5jcnlwdGlvbiBhbmQgc291cmNlIHR5cGUpXG4gKiBhbmQgYSBuZXR3b3JrIGFkZHJlc3MuIEVhY2ggZmxvdyBoYXMgYXQgbGVhc3Qgb25lIHNvdXJjZS4gQSBzdGFuZGFyZCBzb3VyY2UgY29tZXMgZnJvbSBhIHNvdXJjZVxuICogb3RoZXIgdGhhbiBhbm90aGVyIEFXUyBFbGVtZW50YWwgTWVkaWFDb25uZWN0IGZsb3csIHN1Y2ggYXMgYW4gb24tcHJlbWlzZXMgZW5jb2Rlci5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEZsb3dTb3VyY2UgZXh0ZW5kcyBGbG93U291cmNlQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLW1lZGlhY29ubmVjdC1hbHBoYS5GbG93U291cmNlJztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEZsb3cgU291cmNlIGZyb20gaXRzIEFSTi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBmbG93U291cmNlQXJuIFRoZSBBUk4gb2YgdGhlIEZsb3cgU291cmNlXG4gICAqIEByZXR1cm5zIEEgRmxvdyBTb3VyY2UgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GbG93U291cmNlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGZsb3dTb3VyY2VBcm46IHN0cmluZyk6IElGbG93U291cmNlIHtcbiAgICByZXR1cm4gRmxvd1NvdXJjZS5mcm9tRmxvd1NvdXJjZUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IGZsb3dTb3VyY2VBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEZsb3cgU291cmNlIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIFByb3ZpZGUgYGluZ2VzdElwYCBhbmQvb3IgYHNvdXJjZUluZ2VzdFBvcnRgIHdoZW4gaW1wb3J0aW5nIGEgc291cmNlIHRoYXQgd2FzIGRlcGxveWVkXG4gICAqIGV4dGVybmFsbHkg4oCUIG90aGVyd2lzZSBhY2Nlc3NpbmcgdGhvc2UgcHJvcGVydGllcyBvbiB0aGUgaW1wb3J0ZWQgY29uc3RydWN0IHdpbGwgdGhyb3cuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIEZsb3cgU291cmNlIGF0dHJpYnV0ZXNcbiAgICogQHJldHVybnMgQSBGbG93IFNvdXJjZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZsb3dTb3VyY2VBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBGbG93U291cmNlQXR0cmlidXRlcyk6IElGbG93U291cmNlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBGbG93U291cmNlQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmxvd1NvdXJjZUFybiA9IGF0dHJzLmZsb3dTb3VyY2VBcm47XG5cbiAgICAgIHB1YmxpYyBnZXQgZmxvd1NvdXJjZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGF0dHJzLmZsb3dTb3VyY2VOYW1lKSByZXR1cm4gYXR0cnMuZmxvd1NvdXJjZU5hbWU7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgbGl0YEZsb3dTb3VyY2VOYW1lTm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAnZmxvd1NvdXJjZU5hbWUnIGlzIG5vdCBhdmFpbGFibGUgb24gaW1wb3J0ZWQgRmxvd1NvdXJjZSAke3RoaXMubm9kZS5wYXRofTsgcGFzcyBpdCB2aWEgZnJvbUZsb3dTb3VyY2VBdHRyaWJ1dGVzYCxcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgZ2V0IGluZ2VzdElwKCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChhdHRycy5pbmdlc3RJcCkgcmV0dXJuIGF0dHJzLmluZ2VzdElwO1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBGbG93U291cmNlSW5nZXN0SXBOb3RQcm92aWRlZGAsXG4gICAgICAgICAgYCdpbmdlc3RJcCcgaXMgbm90IGF2YWlsYWJsZSBvbiBpbXBvcnRlZCBGbG93U291cmNlICR7dGhpcy5ub2RlLnBhdGh9OyBwYXNzIGl0IHZpYSBmcm9tRmxvd1NvdXJjZUF0dHJpYnV0ZXNgLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBnZXQgc291cmNlSW5nZXN0UG9ydCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoYXR0cnMuc291cmNlSW5nZXN0UG9ydCkgcmV0dXJuIGF0dHJzLnNvdXJjZUluZ2VzdFBvcnQ7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgbGl0YEZsb3dTb3VyY2VJbmdlc3RQb3J0Tm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAnc291cmNlSW5nZXN0UG9ydCcgaXMgbm90IGF2YWlsYWJsZSBvbiBpbXBvcnRlZCBGbG93U291cmNlICR7dGhpcy5ub2RlLnBhdGh9OyBwYXNzIGl0IHZpYSBmcm9tRmxvd1NvdXJjZUF0dHJpYnV0ZXNgLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICByZWFkb25seSBmbG93U291cmNlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZsb3dTb3VyY2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGluZ2VzdElwOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZUluZ2VzdFBvcnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmxvd1NvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAvLyBUaGUgc291cmNlIG5hbWUgY29tZXMgZnJvbSB0aGUgYHNvdXJjZWAgY29uZmlndXJhdGlvbjsgZmFsbCBiYWNrIHRvIGFcbiAgICAgIC8vIGNvbnN0cnVjdC1kZXJpdmVkIG5hbWUgd2hlbiBpdCBzZXRzIG5vbmUuXG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnNvdXJjZS5mbG93U291cmNlTmFtZSA/PyBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNjQgfSkgfSksXG4gICAgfSk7XG5cbiAgICAvLyBWYWxpZGF0ZSB0aGUgc291cmNlIG5hbWUgd2hlbiBvbmUgaXMgc2V0IG9uIHRoZSBjb25maWd1cmF0aW9uLlxuICAgIGlmIChwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUgIT0gbnVsbCAmJiBwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUgIT09ICcnICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuc291cmNlLmZsb3dTb3VyY2VOYW1lKSkge1xuICAgICAgaWYgKHByb3BzLnNvdXJjZS5mbG93U291cmNlTmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBGbG93U291cmNlTmFtZUxlbmd0aGAsIGBGbG93IHNvdXJjZSBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA2NCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUubGVuZ3RofWAsIHRoaXMpO1xuICAgICAgfVxuICAgICAgaWYgKCEvXlthLXpBLVowLTlfLV0rJC8udGVzdChwcm9wcy5zb3VyY2UuZmxvd1NvdXJjZU5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dTb3VyY2VOYW1lRm9ybWF0YCwgYEZsb3cgc291cmNlIG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGh5cGhlbnMsIGFuZCB1bmRlcnNjb3JlcywgZ290ICcke3Byb3BzLnNvdXJjZS5mbG93U291cmNlTmFtZX0nYCwgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBjb25zdCBzb3VyY2VDb25maWcgPSBwcm9wcy5zb3VyY2UuX2JpbmQodGhpcyk7XG5cbiAgICBpZiAoc291cmNlQ29uZmlnLnByb3RvY29sID09PSBTb3VyY2VQcm90b2NvbC5DREkudmFsdWUgfHwgc291cmNlQ29uZmlnLnByb3RvY29sID09PSBTb3VyY2VQcm90b2NvbC5KUEVHWFMudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEZsb3dTb3VyY2VQcm90b2NvbE5vdFN1cHBvcnRlZGAsICdDREkgb3IgSlBFR1hTIGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgb24gdGhlIG1haW4gRmxvdyBjb25zdHJ1Y3QnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3BzLmZsb3cuaXNGYWlsb3ZlckVuYWJsZWQpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBGbG93U291cmNlRmFpbG92ZXJSZXF1aXJlZGAsXG4gICAgICAgICdGYWlsb3ZlciBjb25maWd1cmF0aW9uIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgYW5kIGVuYWJsZWQgdG8gYWRkIGFuIGFkZGl0aW9uYWwgRmxvdyBzb3VyY2UuICcgK1xuICAgICAgICAnSWYgdGhlIEZsb3cgaXMgaW1wb3J0ZWQgdmlhIGZyb21GbG93QXR0cmlidXRlcygpLCBzZXQgaXNGYWlsb3ZlckVuYWJsZWQ6IHRydWUnLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5hbWU6IF9zb3VyY2VOYW1lLCAuLi5yZXN0U291cmNlQ29uZmlnIH0gPSBzb3VyY2VDb25maWc7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5GbG93U291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIC4uLnJlc3RTb3VyY2VDb25maWcsXG4gICAgICBmbG93QXJuOiBwcm9wcy5mbG93LmZsb3dBcm4sXG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBzb3VyY2VDb25maWcuZGVzY3JpcHRpb24gPz8gdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmZsb3dTb3VyY2VBcm4gPSByZXNvdXJjZS5mbG93U291cmNlUmVmLnNvdXJjZUFybjtcbiAgICB0aGlzLmZsb3dTb3VyY2VOYW1lID0gdGhpcy5waHlzaWNhbE5hbWU7XG4gICAgdGhpcy5pbmdlc3RJcCA9IHJlc291cmNlLmF0dHJJbmdlc3RJcDtcbiAgICB0aGlzLnNvdXJjZUluZ2VzdFBvcnQgPSByZXNvdXJjZS5hdHRyU291cmNlSW5nZXN0UG9ydDtcbiAgfVxufVxuIl19
package/lib/flow.d.ts CHANGED
@@ -135,7 +135,31 @@ export interface IFlow extends IResource, IFlowRef {
135
135
  /**
136
136
  * Add an output to this flow
137
137
  */
138
- addOutput(id: string, outputConfig: OutputConfiguration): IFlowOutput;
138
+ addOutput(id: string, options: AddFlowOutputOptions): IFlowOutput;
139
+ }
140
+ /**
141
+ * Options for adding an output to a flow.
142
+ */
143
+ export interface AddFlowOutputOptions {
144
+ /**
145
+ * The output configuration.
146
+ */
147
+ readonly output: OutputConfiguration;
148
+ /**
149
+ * The name of the flow output.
150
+ * @default - auto-generated
151
+ */
152
+ readonly flowOutputName?: string;
153
+ /**
154
+ * A description of the output.
155
+ * @default - no description
156
+ */
157
+ readonly description?: string;
158
+ /**
159
+ * Whether the output is enabled.
160
+ * @default State.ENABLED
161
+ */
162
+ readonly outputStatus?: State;
139
163
  }
140
164
  /**
141
165
  * Options for Flow Size
@@ -171,17 +195,13 @@ export declare class FlowSize {
171
195
  toString(): string;
172
196
  }
173
197
  /**
174
- * Maintenance Window configuration for MediaConnect Flow.
198
+ * Configuration for scheduled maintenance windows.
175
199
  */
176
200
  export interface MaintenanceWindow {
177
- /**
178
- * A day of a week when the maintenance will happen.
179
- */
180
- readonly maintenanceDay: MaintenanceDay;
181
- /**
182
- * UTC time when the maintenance will happen. Use 24-hour HH:MM format. Minutes must be 00. Example: 13:00.
183
- */
184
- readonly maintenanceStartHour: string;
201
+ /** A day of a week when the maintenance will happen. */
202
+ readonly day: MaintenanceDay;
203
+ /** The maintenance start time in UTC, 24-hour HH:MM format. Minutes must be 00 (e.g., '02:00', '13:00'). */
204
+ readonly time: string;
185
205
  }
186
206
  /**
187
207
  * Options for merge-mode source failover.
@@ -676,7 +696,7 @@ export interface FlowProps {
676
696
  *
677
697
  * @default - chosen by MediaConnect
678
698
  */
679
- readonly maintenance?: MaintenanceWindow;
699
+ readonly maintenanceConfiguration?: MaintenanceWindow;
680
700
  /**
681
701
  * The media streams that are associated with the flow. After you associate a media stream with a source, you can also associate it with outputs on the flow.
682
702
  *
@@ -717,9 +737,6 @@ export interface FlowProps {
717
737
  readonly sourceMonitoringConfig?: SourceMonitoringConfig;
718
738
  /**
719
739
  * The VPC Interfaces for this flow.
720
- *
721
- * Use this instead of the FlowVpcInterface construct.
722
- *
723
740
  * @default No VPC Interface configuration applied
724
741
  */
725
742
  readonly vpcInterfaces?: VpcInterfaceConfig[];
@@ -823,7 +840,7 @@ declare abstract class FlowBase extends Resource implements IFlow {
823
840
  /**
824
841
  * Add an output to this flow
825
842
  */
826
- addOutput(id: string, outputConfig: OutputConfiguration): IFlowOutput;
843
+ addOutput(id: string, options: AddFlowOutputOptions): IFlowOutput;
827
844
  /**
828
845
  * Create a CloudWatch metric for this flow.
829
846
  */