@aws-cdk/aws-bedrock-agentcore-alpha 2.242.0-alpha.0 → 2.244.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.
Files changed (33) hide show
  1. package/.jsii +70 -70
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/lib/gateway/gateway-base.js +1 -1
  4. package/lib/gateway/gateway.js +9 -9
  5. package/lib/gateway/inbound-auth/authorizer.js +5 -5
  6. package/lib/gateway/inbound-auth/custom-claim.js +6 -6
  7. package/lib/gateway/interceptor.js +1 -1
  8. package/lib/gateway/outbound-auth/api-key.js +1 -1
  9. package/lib/gateway/outbound-auth/credential-provider.js +1 -1
  10. package/lib/gateway/protocol.js +2 -2
  11. package/lib/gateway/targets/schema/api-schema.js +6 -6
  12. package/lib/gateway/targets/schema/tool-schema.js +7 -7
  13. package/lib/gateway/targets/target-base.js +1 -1
  14. package/lib/gateway/targets/target-configuration.js +25 -25
  15. package/lib/gateway/targets/target.js +4 -4
  16. package/lib/memory/memory-strategy.js +1 -1
  17. package/lib/memory/memory.js +2 -2
  18. package/lib/memory/strategies/managed-strategy.js +1 -1
  19. package/lib/memory/strategies/self-managed-strategy.js +1 -1
  20. package/lib/memory/validation-helpers.js +3 -3
  21. package/lib/network/network-configuration.js +4 -4
  22. package/lib/runtime/inbound-auth/custom-claim.js +6 -6
  23. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +4 -4
  24. package/lib/runtime/runtime-artifact.js +5 -5
  25. package/lib/runtime/runtime-base.js +3 -3
  26. package/lib/runtime/runtime-endpoint-base.js +1 -1
  27. package/lib/runtime/runtime-endpoint.js +9 -9
  28. package/lib/runtime/runtime.js +20 -20
  29. package/lib/runtime/validation-helpers.js +2 -2
  30. package/lib/tools/browser.js +4 -4
  31. package/lib/tools/code-interpreter.js +4 -4
  32. package/lib/tools/validation-helpers.js +2 -2
  33. package/package.json +9 -9
@@ -79,7 +79,7 @@ let GatewayTarget = (() => {
79
79
  GatewayTarget = _classThis = _classDescriptor.value;
80
80
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
81
81
  }
82
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget", version: "2.242.0-alpha.0" };
82
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget", version: "2.244.0-alpha.0" };
83
83
  /** Uniquely identifies this class. */
84
84
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.GatewayTarget';
85
85
  /**
@@ -464,7 +464,7 @@ let GatewayTarget = (() => {
464
464
  const patternErrors = (0, validation_helpers_1.validateFieldPattern)(gatewayTargetName, 'Gateway target name', /^([0-9a-zA-Z][-]?){1,100}$/, 'Gateway target name must contain only alphanumeric characters and hyphens, with hyphens only between characters');
465
465
  const allErrors = [...lengthErrors, ...patternErrors];
466
466
  if (allErrors.length > 0) {
467
- throw new errors_1.ValidationError(allErrors.join('\n'), this);
467
+ throw new errors_1.ValidationError('GatewayTargetNameInvalid', allErrors.join('\n'), this);
468
468
  }
469
469
  }
470
470
  /**
@@ -484,7 +484,7 @@ let GatewayTarget = (() => {
484
484
  maxLength: 200,
485
485
  });
486
486
  if (errors.length > 0) {
487
- throw new errors_1.ValidationError(errors.join('\n'), this);
487
+ throw new errors_1.ValidationError('GatewayTargetDescriptionInvalid', errors.join('\n'), this);
488
488
  }
489
489
  }
490
490
  static {
@@ -494,4 +494,4 @@ let GatewayTarget = (() => {
494
494
  return GatewayTarget = _classThis;
495
495
  })();
496
496
  exports.GatewayTarget = GatewayTarget;
497
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRDtBQUVqRCxxRUFBcUU7QUFDckUsMkNBQTJDO0FBRTNDLHdEQUE4RDtBQUM5RCw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFLG9DQUE4QztBQUk5QywrQ0FBNEY7QUFFNUYsaUVBQXVMO0FBRXZMLDhFQUFpRjtBQUNqRiw4REFBa0Y7QUFrUGxGOzsrRUFFK0U7QUFFL0U7Ozs7Ozs7OztHQVNHO0lBRVUsYUFBYTs0QkFEekIsb0NBQWtCOzs7O3NCQUNnQiwrQkFBaUI7Ozs2QkFBekIsU0FBUSxXQUFpQjs7OztxQ0FpVWpELElBQUEsa0NBQWMsR0FBRTtZQUNqQiw4S0FBTyxTQUFTLDZEQU1mO1lBeFVILDZLQThhQzs7Ozs7UUE3YUMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyxvREFBb0QsQ0FBQztRQUM1Rzs7Ozs7Ozs7V0FRRztRQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FDdkMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQThCOzs7Ozs7Ozs7O1lBRTlCLE1BQU0scUJBQXNCLFNBQVEsK0JBQWlCO2dCQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9CLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDeEIsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDO2dCQUN0QyxrQkFBa0IsR0FBRyx1Q0FBeUIsQ0FBQyxHQUFHLENBQUM7Z0JBQ25ELE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2dC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QW1CO1lBQzdDLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHdDQUFtQixFQUFDO2dCQUNqQyxLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLDRCQUE0QjtnQkFDdkMsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7WUFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sSUFBSSx3QkFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsQ0FBQztTQUNGOztZQTdhVSx1REFBYTs7Ozs7QUFBYixzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenksIFRva2VuLCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgSVJlc3RBcGkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgKiBhcyBiZWRyb2NrYWdlbnRjb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9lcnJvcnMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElHYXRld2F5IH0gZnJvbSAnLi4vZ2F0ZXdheS1iYXNlJztcbmltcG9ydCB7IEdBVEVXQVlfU1lOQ19QRVJNUyB9IGZyb20gJy4uL3Blcm1zJztcbmltcG9ydCB0eXBlIHsgQXBpU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvYXBpLXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IFRvb2xTY2hlbWEgfSBmcm9tICcuL3NjaGVtYS90b29sLXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IElHYXRld2F5VGFyZ2V0LCBJTWNwR2F0ZXdheVRhcmdldCB9IGZyb20gJy4vdGFyZ2V0LWJhc2UnO1xuaW1wb3J0IHsgR2F0ZXdheVRhcmdldEJhc2UsIEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUsIE1jcFRhcmdldFR5cGUgfSBmcm9tICcuL3RhcmdldC1iYXNlJztcbmltcG9ydCB0eXBlIHsgQXBpR2F0ZXdheVRvb2xDb25maWd1cmF0aW9uLCBJVGFyZ2V0Q29uZmlndXJhdGlvbiwgTWV0YWRhdGFDb25maWd1cmF0aW9uIH0gZnJvbSAnLi90YXJnZXQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBBcGlHYXRld2F5VGFyZ2V0Q29uZmlndXJhdGlvbiwgTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbiwgTWNwU2VydmVyVGFyZ2V0Q29uZmlndXJhdGlvbiwgT3BlbkFwaVRhcmdldENvbmZpZ3VyYXRpb24sIFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3RhcmdldC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB0eXBlIHsgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4uL291dGJvdW5kLWF1dGgvY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyBHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnLi4vb3V0Ym91bmQtYXV0aC9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nRmllbGQsIHZhbGlkYXRlRmllbGRQYXR0ZXJuIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBHYXRld2F5IFRhcmdldCB0eXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBnYXRld2F5XG4gICAqIFBhdHRlcm46IF4oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kXG4gICAqIEBkZWZhdWx0IC0gYXV0byBnZW5lcmF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheVRhcmdldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIGRlc2NyaXB0aW9uIGNhbiBoYXZlIHVwIHRvIDIwMCBjaGFyYWN0ZXJzXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgR2F0ZXdheSBUYXJnZXQgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiAoTGFtYmRhLCBPcGVuQVBJLCBvciBTbWl0aHkpXG4gICAqIFVzZSBvbmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaGVscGVyIGNsYXNzZXM6XG4gICAqIC0gTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKiAtIE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSgpXG4gICAqIC0gU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q29uZmlndXJhdGlvbjogSVRhcmdldENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIExhbWJkYS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICogQ29udmVuaWVuY2UgaW50ZXJmYWNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0TGFtYmRhUHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhpcyB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0b29sIHNjaGVtYSBkZWZpbmluZyB0aGUgYXZhaWxhYmxlIHRvb2xzXG4gICAqL1xuICByZWFkb25seSB0b29sU2NoZW1hOiBUb29sU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogTGFtYmRhIHRhcmdldHMgb25seSBzdXBwb3J0IElBTSByb2xlIGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIE9wZW5BUEktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0T3BlbkFwaVByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgT3BlbkFQSSBzY2hlbWEgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpU2NoZW1hOiBBcGlTY2hlbWE7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIE9wZW5BUEkgc2NoZW1hIChvbmx5IGFwcGxpZXMgdG8gaW5saW5lIHNjaGVtYXMpXG4gICAqIE5vdGU6IFZhbGlkYXRpb24gaXMgb25seSBwZXJmb3JtZWQgZm9yIGlubGluZSBzY2hlbWFzIGR1cmluZyBDREsgc3ludGhlc2lzLlxuICAgKiBTMyBhbmQgYXNzZXQtYmFzZWQgc2NoZW1hcyBjYW5ub3QgYmUgdmFsaWRhdGVkIGF0IHN5bnRoZXNpcyB0aW1lLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZU9wZW5BcGlTY2hlbWE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogT3BlbkFQSSB0YXJnZXRzIHN1cHBvcnQgQVBJIGtleSBhbmQgT0F1dGggYXV0aGVudGljYXRpb24gKG5vdCBJQU0pXG4gICAqIEBkZWZhdWx0IC0gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBJQU0gcm9sZSB3aGljaCB3aWxsIGZhaWwgYXQgcnVudGltZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBTbWl0aHktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0U21pdGh5UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBTbWl0aHkgbW9kZWwgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgc21pdGh5TW9kZWw6IEFwaVNjaGVtYTtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIFNtaXRoeSB0YXJnZXRzIG9ubHkgc3VwcG9ydCBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBNQ1AgU2VydmVyLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldE1jcFNlcnZlclByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUFMgZW5kcG9pbnQgVVJMIG9mIHRoZSBNQ1Agc2VydmVyXG4gICAqXG4gICAqIFRoZSBlbmRwb2ludCBtdXN0OlxuICAgKiAtIFVzZSBIVFRQUyBwcm90b2NvbFxuICAgKiAtIEJlIHByb3Blcmx5IFVSTC1lbmNvZGVkXG4gICAqIC0gUG9pbnQgdG8gYW4gTUNQIHNlcnZlciB0aGF0IGltcGxlbWVudHMgdG9vbCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBBUEkgR2F0ZXdheS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRBcGlHYXRld2F5UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKiBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBSRVNUIEFQSSB0byBpbnRlZ3JhdGUgd2l0aFxuICAgKiBNdXN0IGJlIGluIHRoZSBzYW1lIGFjY291bnQgYW5kIHJlZ2lvbiBhcyB0aGUgZ2F0ZXdheVxuICAgKiBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdEFwaTogSVJlc3RBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFnZSBuYW1lIG9mIHRoZSBSRVNUIEFQSVxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIGRlcGxveW1lbnQgc3RhZ2UgZnJvbSB0aGUgUmVzdEFwaSAocmVzdEFwaS5kZXBsb3ltZW50U3RhZ2Uuc3RhZ2VOYW1lKVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvb2wgY29uZmlndXJhdGlvbiBkZWZpbmluZyB3aGljaCBvcGVyYXRpb25zIHRvIGV4cG9zZVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpR2F0ZXdheVRvb2xDb25maWd1cmF0aW9uOiBBcGlHYXRld2F5VG9vbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBBUEkgR2F0ZXdheSB0YXJnZXRzIHN1cHBvcnQgSUFNIGFuZCBBUEkga2V5IGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gRW1wdHkgYXJyYXkgKHNlcnZpY2UgaGFuZGxlcyBJQU0gYXV0b21hdGljYWxseSlcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBjb25maWd1cmF0aW9uIGZvciBwYXNzaW5nIGhlYWRlcnMgYW5kIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQWxsb3dzIHlvdSB0byBwYXNzIGFkZGl0aW9uYWwgY29udGV4dCB0aHJvdWdoIGhlYWRlcnMgYW5kIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQGRlZmF1bHQgLSBObyBtZXRhZGF0YSBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YUNvbmZpZ3VyYXRpb24/OiBNZXRhZGF0YUNvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSB0YXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlUYXJnZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGF0dXMgb2YgdGhlIHRhcmdldFxuICAgKiBAZGVmYXVsdCAtIE5vIHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICogQGRlZmF1bHQgLSBObyBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgbGFzdCB1cGRhdGUgdGltZXN0YW1wXG4gICAqIEBkZWZhdWx0IC0gTm8gdXBkYXRlIHRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKlxuICogRGVmaW5lcyB0b29scyB0aGF0IHlvdXIgZ2F0ZXdheSB3aWxsIGhvc3QuIFN1cHBvcnRzIG11bHRpcGxlIHRhcmdldCB0eXBlczpcbiAqIC0gTGFtYmRhOiBXcmFwcyBhIExhbWJkYSBmdW5jdGlvbiBhcyBNQ1AgdG9vbHNcbiAqIC0gT3BlbkFQSTogRXhwb3NlcyBhbiBPcGVuQVBJL1JFU1QgQVBJIGFzIE1DUCB0b29sc1xuICogLSBTbWl0aHk6IEV4cG9zZXMgYSBTbWl0aHktbW9kZWxlZCBBUEkgYXMgTUNQIHRvb2xzXG4gKlxuICogQHJlc291cmNlIEFXUzo6QmVkcm9ja0FnZW50Q29yZTo6R2F0ZXdheVRhcmdldFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L2Rldmd1aWRlL2dhdGV3YXktYnVpbGRpbmctYWRkaW5nLXRhcmdldHMuaHRtbFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgR2F0ZXdheVRhcmdldCBleHRlbmRzIEdhdGV3YXlUYXJnZXRCYXNlIGltcGxlbWVudHMgSU1jcEdhdGV3YXlUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYS5HYXRld2F5VGFyZ2V0JztcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBHYXRld2F5IFRhcmdldCB1c2luZyBpdHMgYXR0cmlidXRlc1xuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gcmVmZXJlbmNlIGEgR2F0ZXdheSBUYXJnZXQgdGhhdCB3YXMgY3JlYXRlZCBvdXRzaWRlIG9mIENES1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0XG4gICAqIEByZXR1cm5zIEFuIElHYXRld2F5VGFyZ2V0IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgaW1wb3J0ZWQgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21HYXRld2F5VGFyZ2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IEdhdGV3YXlUYXJnZXRBdHRyaWJ1dGVzLFxuICApOiBJR2F0ZXdheVRhcmdldCB7XG4gICAgY2xhc3MgSW1wb3J0ZWRHYXRld2F5VGFyZ2V0IGV4dGVuZHMgR2F0ZXdheVRhcmdldEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldEFybiA9IGF0dHJzLnRhcmdldEFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRJZCA9IGF0dHJzLnRhcmdldElkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG5hbWUgPSBhdHRycy5nYXRld2F5VGFyZ2V0TmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYXRld2F5ID0gYXR0cnMuZ2F0ZXdheTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IFtdO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZSA9IEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUuTUNQO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXNSZWFzb25zID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IGF0dHJzLmNyZWF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQgPSBhdHRycy51cGRhdGVkQXQ7XG5cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkR2F0ZXdheVRhcmdldChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIExhbWJkYS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCB3cmFwcyBhIExhbWJkYSBmdW5jdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBMYW1iZGEgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yTGFtYmRhKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldExhbWJkYVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoXG4gICAgICAgIHByb3BzLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgICBwcm9wcy50b29sU2NoZW1hLFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gT3BlbkFQSS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBleHBvc2VzIGFuIE9wZW5BUEkvUkVTVCBBUElcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgT3BlbkFQSSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JPcGVuQXBpKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldE9wZW5BcGlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShwcm9wcy5hcGlTY2hlbWEsIHByb3BzLnZhbGlkYXRlT3BlbkFwaVNjaGVtYSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgU21pdGh5LWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGV4cG9zZXMgYSBTbWl0aHktbW9kZWxlZCBBUElcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgU21pdGh5IHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvclNtaXRoeShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRTbWl0aHlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLnNtaXRoeU1vZGVsKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gTUNQIFNlcnZlci1iYXNlZCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGNvbm5lY3RzIHRvIGFuIGV4dGVybmFsIE1DUCBzZXJ2ZXJcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgTUNQIHNlcnZlciB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS10YXJnZXQtTUNQc2VydmVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvck1jcFNlcnZlcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRNY3BTZXJ2ZXJQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IE1jcFNlcnZlclRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLmVuZHBvaW50KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQVBJIEdhdGV3YXktYmFzZWQgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBjb25uZWN0cyB0byBhbiBBUEkgR2F0ZXdheSBSRVNUIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBBUEkgR2F0ZXdheSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS10YXJnZXQtYXBpLWdhdGV3YXkuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JBcGlHYXRld2F5KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldEFwaUdhdGV3YXlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IEFwaUdhdGV3YXlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSh7XG4gICAgICAgIHJlc3RBcGk6IHByb3BzLnJlc3RBcGksXG4gICAgICAgIHN0YWdlOiBwcm9wcy5zdGFnZSxcbiAgICAgICAgYXBpR2F0ZXdheVRvb2xDb25maWd1cmF0aW9uOiBwcm9wcy5hcGlHYXRld2F5VG9vbENvbmZpZ3VyYXRpb24sXG4gICAgICAgIG1ldGFkYXRhQ29uZmlndXJhdGlvbjogcHJvcHMubWV0YWRhdGFDb25maWd1cmF0aW9uLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldEFybjtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0SWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgdGhpcyB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdHlwZSAoYWx3YXlzIE1DUCBmb3Igbm93KVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZSA9IEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUuTUNQO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgTUNQIHRhcmdldCB0eXBlIChMYW1iZGEsIE9wZW5BUEksIFNtaXRoeSwgb3IgTUNQIFNlcnZlcilcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRUeXBlOiBNY3BUYXJnZXRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzPztcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyByZWFzb25zIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c1JlYXNvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGdhdGV3YXkgdGFyZ2V0IHdhcyBjcmVhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/O1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgZ2F0ZXdheSB0YXJnZXQgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlZEF0PztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldFJlc291cmNlOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0Q29uZmlndXJhdGlvbjogSVRhcmdldENvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdhdGV3YXlUYXJnZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLy8gTWF4aW11bSBuYW1lIGxlbmd0aCBvZiAxMDAgY2hhcmFjdGVyc1xuICAgICAgLy8gQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1RlbXBsYXRlUmVmZXJlbmNlL2F3cy1yZXNvdXJjZS1iZWRyb2NrYWdlbnRjb3JlLWdhdGV3YXl0YXJnZXQuaHRtbCNjZm4tYmVkcm9ja2FnZW50Y29yZS1nYXRld2F5dGFyZ2V0LW5hbWVcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUgPz9cbiAgICAgICAgTGF6eS5zdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTAwIH0pLFxuICAgICAgICB9KSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFZhbGlkYXRlIGFuZCBhc3NpZ24gcHJvcGVydGllc1xuICAgIHRoaXMubmFtZSA9IHRoaXMucGh5c2ljYWxOYW1lO1xuICAgIHRoaXMudmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZSh0aGlzLm5hbWUpO1xuXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlRGVzY3JpcHRpb24odGhpcy5kZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5nYXRld2F5ID0gcHJvcHMuZ2F0ZXdheTtcbiAgICB0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gPSBwcm9wcy50YXJnZXRDb25maWd1cmF0aW9uO1xuICAgIHRoaXMudGFyZ2V0VHlwZSA9IHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi50YXJnZXRUeXBlO1xuXG4gICAgLy8gR2V0IHRhcmdldC1zcGVjaWZpYyBjcmVkZW50aWFsIGNvbmZpZ3VyYXRpb25zXG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IHRoaXMuX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgICBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICApO1xuXG4gICAgLy8gQmluZCB0aGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb25cbiAgICAvLyBUaGlzIHNldHMgdXAgcGVybWlzc2lvbnMgYW5kIGRlcGVuZGVuY2llc1xuICAgIHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi5iaW5kKHRoaXMsIHRoaXMuZ2F0ZXdheSk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIEwxIGNvbnN0cnVjdFxuICAgIGNvbnN0IGNmblByb3BzOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXRQcm9wcyA9IHtcbiAgICAgIGdhdGV3YXlJZGVudGlmaWVyOiB0aGlzLmdhdGV3YXkuZ2F0ZXdheUlkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLl9yZW5kZXJDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucygpLFxuICAgICAgfSksXG5cbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IExhenkuYW55KHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLl9yZW5kZXIoKSxcbiAgICAgIH0pLFxuXG4gICAgICAvLyBBZGQgbWV0YWRhdGEgY29uZmlndXJhdGlvbiBmb3IgQVBJIEdhdGV3YXkgdGFyZ2V0c1xuICAgICAgbWV0YWRhdGFDb25maWd1cmF0aW9uOiB0aGlzLnRhcmdldFR5cGUgPT09IE1jcFRhcmdldFR5cGUuQVBJX0dBVEVXQVkgJiZcbiAgICAgICAgKHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbiBhcyBBcGlHYXRld2F5VGFyZ2V0Q29uZmlndXJhdGlvbikubWV0YWRhdGFDb25maWd1cmF0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgIGFsbG93ZWRRdWVyeVBhcmFtZXRlcnM6ICh0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gYXMgQXBpR2F0ZXdheVRhcmdldENvbmZpZ3VyYXRpb24pLm1ldGFkYXRhQ29uZmlndXJhdGlvbiEuYWxsb3dlZFF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICBhbGxvd2VkUmVxdWVzdEhlYWRlcnM6ICh0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gYXMgQXBpR2F0ZXdheVRhcmdldENvbmZpZ3VyYXRpb24pLm1ldGFkYXRhQ29uZmlndXJhdGlvbiEuYWxsb3dlZFJlcXVlc3RIZWFkZXJzLFxuICAgICAgICAgIGFsbG93ZWRSZXNwb25zZUhlYWRlcnM6ICh0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gYXMgQXBpR2F0ZXdheVRhcmdldENvbmZpZ3VyYXRpb24pLm1ldGFkYXRhQ29uZmlndXJhdGlvbiEuYWxsb3dlZFJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgdGhpcy50YXJnZXRSZXNvdXJjZSA9IG5ldyBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXQoXG4gICAgICB0aGlzLFxuICAgICAgJ1Jlc291cmNlJyxcbiAgICAgIGNmblByb3BzLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKSB7XG4gICAgICAgIHByb3ZpZGVyXG4gICAgICAgICAgLmdyYW50TmVlZGVkUGVybWlzc2lvbnNUb1JvbGUodGhpcy5nYXRld2F5LnJvbGUpXG4gICAgICAgICAgPy5hcHBseUJlZm9yZSh0aGlzLnRhcmdldFJlc291cmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldElkID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyVGFyZ2V0SWQ7XG4gICAgdGhpcy50YXJnZXRBcm4gPSB0aGlzLnRhcmdldFJlc291cmNlLnJlZjtcbiAgICB0aGlzLnN0YXR1cyA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clN0YXR1cztcbiAgICB0aGlzLnN0YXR1c1JlYXNvbnMgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJTdGF0dXNSZWFzb25zO1xuICAgIHRoaXMuY3JlYXRlZEF0ID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMudXBkYXRlZEF0ID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyVXBkYXRlZEF0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN5bmNocm9uaXplIHRoaXMgZ2F0ZXdheSdzIHRhcmdldHNcbiAgICpcbiAgICogVGhpcyBtZXRob2QgZ3JhbnRzIHRoZSBgU3luY2hyb25pemVHYXRld2F5VGFyZ2V0c2AgcGVybWlzc2lvbiwgd2hpY2ggaXMgcHJpbWFyaWx5XG4gICAqIG5lZWRlZCBmb3IgTUNQIFNlcnZlciB0YXJnZXRzIHdoZW4geW91IG5lZWQgdG8gcmVmcmVzaCB0aGUgdG9vbCBjYXRhbG9nIGFmdGVyIHRoZVxuICAgKiBNQ1Agc2VydmVyJ3MgdG9vbHMgaGF2ZSBjaGFuZ2VkLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFN5bmMoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IEdBVEVXQVlfU1lOQ19QRVJNUyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuZ2F0ZXdheS5nYXRld2F5QXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGJhc2VkIG9uIHRhcmdldCB0eXBlXG4gICAqXG4gICAqIC0gTGFtYmRhICYgU21pdGh5OiBEZWZhdWx0IHRvIElBTSByb2xlIGlmIG5vdCBwcm92aWRlZFxuICAgKiAtIE1DUCBTZXJ2ZXI6IFJldHVybiB1bmRlZmluZWQgaWYgbm90IHByb3ZpZGVkIChzZXJ2aWNlIGhhbmRsZXMgTm9BdXRoKVxuICAgKiAtIE9wZW5BUEkgJiBBUEkgR2F0ZXdheTogUmV0dXJuIGFzLWlzIChtdXN0IGJlIGV4cGxpY2l0bHkgcHJvdmlkZWQsIHNlcnZpY2UgaGFuZGxlcyBhdXRvbWF0aWNhbGx5KVxuICAgKlxuICAgKiBAcGFyYW0gcHJvdmlkZWRDcmVkZW50aWFscyBUaGUgY3JlZGVudGlhbHMgZnJvbSBwcm9wc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlZGVudGlhbCBjb25maWd1cmF0aW9ucyB0byB1c2UsIG9yIHVuZGVmaW5lZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgcHJvdmlkZWRDcmVkZW50aWFsczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkLFxuICApOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW10gfCB1bmRlZmluZWQge1xuICAgIGlmIChwcm92aWRlZENyZWRlbnRpYWxzICYmIHByb3ZpZGVkQ3JlZGVudGlhbHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHByb3ZpZGVkQ3JlZGVudGlhbHM7XG4gICAgfVxuICAgIC8vIEFwcGx5IHRhcmdldC1zcGVjaWZpYyBkZWZhdWx0cyB3aGVuIG5vdCBwcm92aWRlZFxuICAgIHN3aXRjaCAodGhpcy50YXJnZXRUeXBlKSB7XG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuTEFNQkRBOlxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLlNNSVRIWV9NT0RFTDpcbiAgICAgICAgcmV0dXJuIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldO1xuXG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuTUNQX1NFUlZFUjpcbiAgICAgICAgLy8gUmV0dXJuIGVtcHR5IGFycmF5LCAtIHNlcnZpY2UgaGFuZGxlcyBOb0F1dGggYXV0b21hdGljYWxseVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuT1BFTkFQSV9TQ0hFTUE6XG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuQVBJX0dBVEVXQVk6XG4gICAgICAgIC8vIE5vIGRlZmF1bHQgLSBtdXN0IGJlIGV4cGxpY2l0bHkgcHJvdmlkZWQsIHNlcnZpY2UgaGFuZGxlcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/Lm1hcChwcm92aWRlciA9PiBwcm92aWRlci5fcmVuZGVyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgZ2F0ZXdheSB0YXJnZXQgbmFtZSBmb3JtYXRcbiAgICogUGF0dGVybjogXihbMC05YS16QS1aXVstXT8pezEsMTAwfSRcbiAgICogTWF4IGxlbmd0aDogMTAwIGNoYXJhY3RlcnNcbiAgICogQHBhcmFtIGdhdGV3YXlUYXJnZXROYW1lIFRoZSBnYXRld2F5IHRhcmdldCBuYW1lIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIG5hbWUgaXMgaW52YWxpZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZShnYXRld2F5VGFyZ2V0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChnYXRld2F5VGFyZ2V0TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgIHZhbHVlOiBnYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGZpZWxkTmFtZTogJ0dhdGV3YXkgdGFyZ2V0IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiAxMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgICdHYXRld2F5IHRhcmdldCBuYW1lJyxcbiAgICAgIC9eKFswLTlhLXpBLVpdWy1dPyl7MSwxMDB9JC8sXG4gICAgICAnR2F0ZXdheSB0YXJnZXQgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgaHlwaGVucywgd2l0aCBoeXBoZW5zIG9ubHkgYmV0d2VlbiBjaGFyYWN0ZXJzJyxcbiAgICApO1xuXG4gICAgY29uc3QgYWxsRXJyb3JzID0gWy4uLmxlbmd0aEVycm9ycywgLi4ucGF0dGVybkVycm9yc107XG4gICAgaWYgKGFsbEVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGFsbEVycm9ycy5qb2luKCdcXG4nKSwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgZGVzY3JpcHRpb24gZm9ybWF0XG4gICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMDAgY2hhcmFjdGVyc1xuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoZGVzY3JpcHRpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVTdHJpbmdGaWVsZCh7XG4gICAgICB2YWx1ZTogZGVzY3JpcHRpb24sXG4gICAgICBmaWVsZE5hbWU6ICdHYXRld2F5IHRhcmdldCBkZXNjcmlwdGlvbicsXG4gICAgICBtaW5MZW5ndGg6IDEsXG4gICAgICBtYXhMZW5ndGg6IDIwMCxcbiAgICB9KTtcblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMuam9pbignXFxuJyksIHRoaXMpO1xuICAgIH1cbiAgfVxufVxuIl19
497
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpRDtBQUVqRCxxRUFBcUU7QUFDckUsMkNBQTJDO0FBRTNDLHdEQUE4RDtBQUM5RCw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFLG9DQUE4QztBQUk5QywrQ0FBNEY7QUFFNUYsaUVBQXVMO0FBRXZMLDhFQUFpRjtBQUNqRiw4REFBa0Y7QUFrUGxGOzsrRUFFK0U7QUFFL0U7Ozs7Ozs7OztHQVNHO0lBRVUsYUFBYTs0QkFEekIsb0NBQWtCOzs7O3NCQUNnQiwrQkFBaUI7Ozs2QkFBekIsU0FBUSxXQUFpQjs7OztxQ0FpVWpELElBQUEsa0NBQWMsR0FBRTtZQUNqQiw4S0FBTyxTQUFTLDZEQU1mO1lBeFVILDZLQThhQzs7Ozs7UUE3YUMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyxvREFBb0QsQ0FBQztRQUM1Rzs7Ozs7Ozs7V0FRRztRQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FDdkMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQThCOzs7Ozs7Ozs7O1lBRTlCLE1BQU0scUJBQXNCLFNBQVEsK0JBQWlCO2dCQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQkFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9CLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDeEIsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDO2dCQUN0QyxrQkFBa0IsR0FBRyx1Q0FBeUIsQ0FBQyxHQUFHLENBQUM7Z0JBQ25ELE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2dC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QUFtQixDQUFDLFdBQW1CO1lBQzdDLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHdDQUFtQixFQUFDO2dCQUNqQyxLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLDRCQUE0QjtnQkFDdkMsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7WUFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sSUFBSSx3QkFBZSxDQUFDLGlDQUFpQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEYsQ0FBQztTQUNGOztZQTdhVSx1REFBYTs7Ozs7QUFBYixzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenksIFRva2VuLCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgSVJlc3RBcGkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgKiBhcyBiZWRyb2NrYWdlbnRjb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9lcnJvcnMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElHYXRld2F5IH0gZnJvbSAnLi4vZ2F0ZXdheS1iYXNlJztcbmltcG9ydCB7IEdBVEVXQVlfU1lOQ19QRVJNUyB9IGZyb20gJy4uL3Blcm1zJztcbmltcG9ydCB0eXBlIHsgQXBpU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvYXBpLXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IFRvb2xTY2hlbWEgfSBmcm9tICcuL3NjaGVtYS90b29sLXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IElHYXRld2F5VGFyZ2V0LCBJTWNwR2F0ZXdheVRhcmdldCB9IGZyb20gJy4vdGFyZ2V0LWJhc2UnO1xuaW1wb3J0IHsgR2F0ZXdheVRhcmdldEJhc2UsIEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUsIE1jcFRhcmdldFR5cGUgfSBmcm9tICcuL3RhcmdldC1iYXNlJztcbmltcG9ydCB0eXBlIHsgQXBpR2F0ZXdheVRvb2xDb25maWd1cmF0aW9uLCBJVGFyZ2V0Q29uZmlndXJhdGlvbiwgTWV0YWRhdGFDb25maWd1cmF0aW9uIH0gZnJvbSAnLi90YXJnZXQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBBcGlHYXRld2F5VGFyZ2V0Q29uZmlndXJhdGlvbiwgTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbiwgTWNwU2VydmVyVGFyZ2V0Q29uZmlndXJhdGlvbiwgT3BlbkFwaVRhcmdldENvbmZpZ3VyYXRpb24sIFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3RhcmdldC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB0eXBlIHsgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4uL291dGJvdW5kLWF1dGgvY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyBHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnLi4vb3V0Ym91bmQtYXV0aC9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nRmllbGQsIHZhbGlkYXRlRmllbGRQYXR0ZXJuIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBHYXRld2F5IFRhcmdldCB0eXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBnYXRld2F5XG4gICAqIFBhdHRlcm46IF4oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kXG4gICAqIEBkZWZhdWx0IC0gYXV0byBnZW5lcmF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheVRhcmdldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIGRlc2NyaXB0aW9uIGNhbiBoYXZlIHVwIHRvIDIwMCBjaGFyYWN0ZXJzXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgR2F0ZXdheSBUYXJnZXQgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiAoTGFtYmRhLCBPcGVuQVBJLCBvciBTbWl0aHkpXG4gICAqIFVzZSBvbmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaGVscGVyIGNsYXNzZXM6XG4gICAqIC0gTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKiAtIE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSgpXG4gICAqIC0gU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Q29uZmlndXJhdGlvbjogSVRhcmdldENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIExhbWJkYS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICogQ29udmVuaWVuY2UgaW50ZXJmYWNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0TGFtYmRhUHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhpcyB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0b29sIHNjaGVtYSBkZWZpbmluZyB0aGUgYXZhaWxhYmxlIHRvb2xzXG4gICAqL1xuICByZWFkb25seSB0b29sU2NoZW1hOiBUb29sU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogTGFtYmRhIHRhcmdldHMgb25seSBzdXBwb3J0IElBTSByb2xlIGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGFuIE9wZW5BUEktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0T3BlbkFwaVByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgT3BlbkFQSSBzY2hlbWEgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpU2NoZW1hOiBBcGlTY2hlbWE7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIE9wZW5BUEkgc2NoZW1hIChvbmx5IGFwcGxpZXMgdG8gaW5saW5lIHNjaGVtYXMpXG4gICAqIE5vdGU6IFZhbGlkYXRpb24gaXMgb25seSBwZXJmb3JtZWQgZm9yIGlubGluZSBzY2hlbWFzIGR1cmluZyBDREsgc3ludGhlc2lzLlxuICAgKiBTMyBhbmQgYXNzZXQtYmFzZWQgc2NoZW1hcyBjYW5ub3QgYmUgdmFsaWRhdGVkIGF0IHN5bnRoZXNpcyB0aW1lLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZU9wZW5BcGlTY2hlbWE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogT3BlbkFQSSB0YXJnZXRzIHN1cHBvcnQgQVBJIGtleSBhbmQgT0F1dGggYXV0aGVudGljYXRpb24gKG5vdCBJQU0pXG4gICAqIEBkZWZhdWx0IC0gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBJQU0gcm9sZSB3aGljaCB3aWxsIGZhaWwgYXQgcnVudGltZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBTbWl0aHktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0U21pdGh5UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBTbWl0aHkgbW9kZWwgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgc21pdGh5TW9kZWw6IEFwaVNjaGVtYTtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIFNtaXRoeSB0YXJnZXRzIG9ubHkgc3VwcG9ydCBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBNQ1AgU2VydmVyLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldE1jcFNlcnZlclByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUFMgZW5kcG9pbnQgVVJMIG9mIHRoZSBNQ1Agc2VydmVyXG4gICAqXG4gICAqIFRoZSBlbmRwb2ludCBtdXN0OlxuICAgKiAtIFVzZSBIVFRQUyBwcm90b2NvbFxuICAgKiAtIEJlIHByb3Blcmx5IFVSTC1lbmNvZGVkXG4gICAqIC0gUG9pbnQgdG8gYW4gTUNQIHNlcnZlciB0aGF0IGltcGxlbWVudHMgdG9vbCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBBUEkgR2F0ZXdheS1iYXNlZCBHYXRld2F5IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRBcGlHYXRld2F5UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKiBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBSRVNUIEFQSSB0byBpbnRlZ3JhdGUgd2l0aFxuICAgKiBNdXN0IGJlIGluIHRoZSBzYW1lIGFjY291bnQgYW5kIHJlZ2lvbiBhcyB0aGUgZ2F0ZXdheVxuICAgKiBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdEFwaTogSVJlc3RBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFnZSBuYW1lIG9mIHRoZSBSRVNUIEFQSVxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIGRlcGxveW1lbnQgc3RhZ2UgZnJvbSB0aGUgUmVzdEFwaSAocmVzdEFwaS5kZXBsb3ltZW50U3RhZ2Uuc3RhZ2VOYW1lKVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvb2wgY29uZmlndXJhdGlvbiBkZWZpbmluZyB3aGljaCBvcGVyYXRpb25zIHRvIGV4cG9zZVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpR2F0ZXdheVRvb2xDb25maWd1cmF0aW9uOiBBcGlHYXRld2F5VG9vbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBBUEkgR2F0ZXdheSB0YXJnZXRzIHN1cHBvcnQgSUFNIGFuZCBBUEkga2V5IGF1dGhlbnRpY2F0aW9uXG4gICAqIEBkZWZhdWx0IC0gRW1wdHkgYXJyYXkgKHNlcnZpY2UgaGFuZGxlcyBJQU0gYXV0b21hdGljYWxseSlcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBjb25maWd1cmF0aW9uIGZvciBwYXNzaW5nIGhlYWRlcnMgYW5kIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQWxsb3dzIHlvdSB0byBwYXNzIGFkZGl0aW9uYWwgY29udGV4dCB0aHJvdWdoIGhlYWRlcnMgYW5kIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQGRlZmF1bHQgLSBObyBtZXRhZGF0YSBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YUNvbmZpZ3VyYXRpb24/OiBNZXRhZGF0YUNvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSB0YXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlUYXJnZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGF0dXMgb2YgdGhlIHRhcmdldFxuICAgKiBAZGVmYXVsdCAtIE5vIHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICogQGRlZmF1bHQgLSBObyBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgbGFzdCB1cGRhdGUgdGltZXN0YW1wXG4gICAqIEBkZWZhdWx0IC0gTm8gdXBkYXRlIHRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKlxuICogRGVmaW5lcyB0b29scyB0aGF0IHlvdXIgZ2F0ZXdheSB3aWxsIGhvc3QuIFN1cHBvcnRzIG11bHRpcGxlIHRhcmdldCB0eXBlczpcbiAqIC0gTGFtYmRhOiBXcmFwcyBhIExhbWJkYSBmdW5jdGlvbiBhcyBNQ1AgdG9vbHNcbiAqIC0gT3BlbkFQSTogRXhwb3NlcyBhbiBPcGVuQVBJL1JFU1QgQVBJIGFzIE1DUCB0b29sc1xuICogLSBTbWl0aHk6IEV4cG9zZXMgYSBTbWl0aHktbW9kZWxlZCBBUEkgYXMgTUNQIHRvb2xzXG4gKlxuICogQHJlc291cmNlIEFXUzo6QmVkcm9ja0FnZW50Q29yZTo6R2F0ZXdheVRhcmdldFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L2Rldmd1aWRlL2dhdGV3YXktYnVpbGRpbmctYWRkaW5nLXRhcmdldHMuaHRtbFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgR2F0ZXdheVRhcmdldCBleHRlbmRzIEdhdGV3YXlUYXJnZXRCYXNlIGltcGxlbWVudHMgSU1jcEdhdGV3YXlUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYS5HYXRld2F5VGFyZ2V0JztcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBHYXRld2F5IFRhcmdldCB1c2luZyBpdHMgYXR0cmlidXRlc1xuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gcmVmZXJlbmNlIGEgR2F0ZXdheSBUYXJnZXQgdGhhdCB3YXMgY3JlYXRlZCBvdXRzaWRlIG9mIENES1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0XG4gICAqIEByZXR1cm5zIEFuIElHYXRld2F5VGFyZ2V0IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgaW1wb3J0ZWQgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21HYXRld2F5VGFyZ2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IEdhdGV3YXlUYXJnZXRBdHRyaWJ1dGVzLFxuICApOiBJR2F0ZXdheVRhcmdldCB7XG4gICAgY2xhc3MgSW1wb3J0ZWRHYXRld2F5VGFyZ2V0IGV4dGVuZHMgR2F0ZXdheVRhcmdldEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldEFybiA9IGF0dHJzLnRhcmdldEFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRJZCA9IGF0dHJzLnRhcmdldElkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG5hbWUgPSBhdHRycy5nYXRld2F5VGFyZ2V0TmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYXRld2F5ID0gYXR0cnMuZ2F0ZXdheTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IFtdO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZSA9IEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUuTUNQO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXNSZWFzb25zID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IGF0dHJzLmNyZWF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQgPSBhdHRycy51cGRhdGVkQXQ7XG5cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkR2F0ZXdheVRhcmdldChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIExhbWJkYS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCB3cmFwcyBhIExhbWJkYSBmdW5jdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBMYW1iZGEgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yTGFtYmRhKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldExhbWJkYVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoXG4gICAgICAgIHByb3BzLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgICBwcm9wcy50b29sU2NoZW1hLFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gT3BlbkFQSS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBleHBvc2VzIGFuIE9wZW5BUEkvUkVTVCBBUElcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgT3BlbkFQSSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JPcGVuQXBpKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldE9wZW5BcGlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShwcm9wcy5hcGlTY2hlbWEsIHByb3BzLnZhbGlkYXRlT3BlbkFwaVNjaGVtYSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgU21pdGh5LWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGV4cG9zZXMgYSBTbWl0aHktbW9kZWxlZCBBUElcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgU21pdGh5IHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvclNtaXRoeShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRTbWl0aHlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLnNtaXRoeU1vZGVsKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gTUNQIFNlcnZlci1iYXNlZCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGNvbm5lY3RzIHRvIGFuIGV4dGVybmFsIE1DUCBzZXJ2ZXJcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgTUNQIHNlcnZlciB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS10YXJnZXQtTUNQc2VydmVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvck1jcFNlcnZlcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRNY3BTZXJ2ZXJQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IE1jcFNlcnZlclRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLmVuZHBvaW50KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQVBJIEdhdGV3YXktYmFzZWQgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBjb25uZWN0cyB0byBhbiBBUEkgR2F0ZXdheSBSRVNUIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBBUEkgR2F0ZXdheSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS10YXJnZXQtYXBpLWdhdGV3YXkuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JBcGlHYXRld2F5KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldEFwaUdhdGV3YXlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IEFwaUdhdGV3YXlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZSh7XG4gICAgICAgIHJlc3RBcGk6IHByb3BzLnJlc3RBcGksXG4gICAgICAgIHN0YWdlOiBwcm9wcy5zdGFnZSxcbiAgICAgICAgYXBpR2F0ZXdheVRvb2xDb25maWd1cmF0aW9uOiBwcm9wcy5hcGlHYXRld2F5VG9vbENvbmZpZ3VyYXRpb24sXG4gICAgICAgIG1ldGFkYXRhQ29uZmlndXJhdGlvbjogcHJvcHMubWV0YWRhdGFDb25maWd1cmF0aW9uLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldEFybjtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0SWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgdGhpcyB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdHlwZSAoYWx3YXlzIE1DUCBmb3Igbm93KVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZSA9IEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUuTUNQO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgTUNQIHRhcmdldCB0eXBlIChMYW1iZGEsIE9wZW5BUEksIFNtaXRoeSwgb3IgTUNQIFNlcnZlcilcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRUeXBlOiBNY3BUYXJnZXRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzPztcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyByZWFzb25zIGZvciB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c1JlYXNvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGdhdGV3YXkgdGFyZ2V0IHdhcyBjcmVhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/O1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgZ2F0ZXdheSB0YXJnZXQgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlZEF0PztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldFJlc291cmNlOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0Q29uZmlndXJhdGlvbjogSVRhcmdldENvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdhdGV3YXlUYXJnZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLy8gTWF4aW11bSBuYW1lIGxlbmd0aCBvZiAxMDAgY2hhcmFjdGVyc1xuICAgICAgLy8gQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1RlbXBsYXRlUmVmZXJlbmNlL2F3cy1yZXNvdXJjZS1iZWRyb2NrYWdlbnRjb3JlLWdhdGV3YXl0YXJnZXQuaHRtbCNjZm4tYmVkcm9ja2FnZW50Y29yZS1nYXRld2F5dGFyZ2V0LW5hbWVcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUgPz9cbiAgICAgICAgTGF6eS5zdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTAwIH0pLFxuICAgICAgICB9KSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFZhbGlkYXRlIGFuZCBhc3NpZ24gcHJvcGVydGllc1xuICAgIHRoaXMubmFtZSA9IHRoaXMucGh5c2ljYWxOYW1lO1xuICAgIHRoaXMudmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZSh0aGlzLm5hbWUpO1xuXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlRGVzY3JpcHRpb24odGhpcy5kZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5nYXRld2F5ID0gcHJvcHMuZ2F0ZXdheTtcbiAgICB0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gPSBwcm9wcy50YXJnZXRDb25maWd1cmF0aW9uO1xuICAgIHRoaXMudGFyZ2V0VHlwZSA9IHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi50YXJnZXRUeXBlO1xuXG4gICAgLy8gR2V0IHRhcmdldC1zcGVjaWZpYyBjcmVkZW50aWFsIGNvbmZpZ3VyYXRpb25zXG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IHRoaXMuX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgICBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICApO1xuXG4gICAgLy8gQmluZCB0aGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb25cbiAgICAvLyBUaGlzIHNldHMgdXAgcGVybWlzc2lvbnMgYW5kIGRlcGVuZGVuY2llc1xuICAgIHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi5iaW5kKHRoaXMsIHRoaXMuZ2F0ZXdheSk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIEwxIGNvbnN0cnVjdFxuICAgIGNvbnN0IGNmblByb3BzOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXRQcm9wcyA9IHtcbiAgICAgIGdhdGV3YXlJZGVudGlmaWVyOiB0aGlzLmdhdGV3YXkuZ2F0ZXdheUlkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLl9yZW5kZXJDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucygpLFxuICAgICAgfSksXG5cbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IExhenkuYW55KHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLl9yZW5kZXIoKSxcbiAgICAgIH0pLFxuXG4gICAgICAvLyBBZGQgbWV0YWRhdGEgY29uZmlndXJhdGlvbiBmb3IgQVBJIEdhdGV3YXkgdGFyZ2V0c1xuICAgICAgbWV0YWRhdGFDb25maWd1cmF0aW9uOiB0aGlzLnRhcmdldFR5cGUgPT09IE1jcFRhcmdldFR5cGUuQVBJX0dBVEVXQVkgJiZcbiAgICAgICAgKHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbiBhcyBBcGlHYXRld2F5VGFyZ2V0Q29uZmlndXJhdGlvbikubWV0YWRhdGFDb25maWd1cmF0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgIGFsbG93ZWRRdWVyeVBhcmFtZXRlcnM6ICh0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gYXMgQXBpR2F0ZXdheVRhcmdldENvbmZpZ3VyYXRpb24pLm1ldGFkYXRhQ29uZmlndXJhdGlvbiEuYWxsb3dlZFF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICBhbGxvd2VkUmVxdWVzdEhlYWRlcnM6ICh0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gYXMgQXBpR2F0ZXdheVRhcmdldENvbmZpZ3VyYXRpb24pLm1ldGFkYXRhQ29uZmlndXJhdGlvbiEuYWxsb3dlZFJlcXVlc3RIZWFkZXJzLFxuICAgICAgICAgIGFsbG93ZWRSZXNwb25zZUhlYWRlcnM6ICh0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gYXMgQXBpR2F0ZXdheVRhcmdldENvbmZpZ3VyYXRpb24pLm1ldGFkYXRhQ29uZmlndXJhdGlvbiEuYWxsb3dlZFJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgdGhpcy50YXJnZXRSZXNvdXJjZSA9IG5ldyBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXQoXG4gICAgICB0aGlzLFxuICAgICAgJ1Jlc291cmNlJyxcbiAgICAgIGNmblByb3BzLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKSB7XG4gICAgICAgIHByb3ZpZGVyXG4gICAgICAgICAgLmdyYW50TmVlZGVkUGVybWlzc2lvbnNUb1JvbGUodGhpcy5nYXRld2F5LnJvbGUpXG4gICAgICAgICAgPy5hcHBseUJlZm9yZSh0aGlzLnRhcmdldFJlc291cmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldElkID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyVGFyZ2V0SWQ7XG4gICAgdGhpcy50YXJnZXRBcm4gPSB0aGlzLnRhcmdldFJlc291cmNlLnJlZjtcbiAgICB0aGlzLnN0YXR1cyA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clN0YXR1cztcbiAgICB0aGlzLnN0YXR1c1JlYXNvbnMgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJTdGF0dXNSZWFzb25zO1xuICAgIHRoaXMuY3JlYXRlZEF0ID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMudXBkYXRlZEF0ID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyVXBkYXRlZEF0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN5bmNocm9uaXplIHRoaXMgZ2F0ZXdheSdzIHRhcmdldHNcbiAgICpcbiAgICogVGhpcyBtZXRob2QgZ3JhbnRzIHRoZSBgU3luY2hyb25pemVHYXRld2F5VGFyZ2V0c2AgcGVybWlzc2lvbiwgd2hpY2ggaXMgcHJpbWFyaWx5XG4gICAqIG5lZWRlZCBmb3IgTUNQIFNlcnZlciB0YXJnZXRzIHdoZW4geW91IG5lZWQgdG8gcmVmcmVzaCB0aGUgdG9vbCBjYXRhbG9nIGFmdGVyIHRoZVxuICAgKiBNQ1Agc2VydmVyJ3MgdG9vbHMgaGF2ZSBjaGFuZ2VkLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFN5bmMoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IEdBVEVXQVlfU1lOQ19QRVJNUyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuZ2F0ZXdheS5nYXRld2F5QXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGJhc2VkIG9uIHRhcmdldCB0eXBlXG4gICAqXG4gICAqIC0gTGFtYmRhICYgU21pdGh5OiBEZWZhdWx0IHRvIElBTSByb2xlIGlmIG5vdCBwcm92aWRlZFxuICAgKiAtIE1DUCBTZXJ2ZXI6IFJldHVybiB1bmRlZmluZWQgaWYgbm90IHByb3ZpZGVkIChzZXJ2aWNlIGhhbmRsZXMgTm9BdXRoKVxuICAgKiAtIE9wZW5BUEkgJiBBUEkgR2F0ZXdheTogUmV0dXJuIGFzLWlzIChtdXN0IGJlIGV4cGxpY2l0bHkgcHJvdmlkZWQsIHNlcnZpY2UgaGFuZGxlcyBhdXRvbWF0aWNhbGx5KVxuICAgKlxuICAgKiBAcGFyYW0gcHJvdmlkZWRDcmVkZW50aWFscyBUaGUgY3JlZGVudGlhbHMgZnJvbSBwcm9wc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlZGVudGlhbCBjb25maWd1cmF0aW9ucyB0byB1c2UsIG9yIHVuZGVmaW5lZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgcHJvdmlkZWRDcmVkZW50aWFsczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkLFxuICApOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW10gfCB1bmRlZmluZWQge1xuICAgIGlmIChwcm92aWRlZENyZWRlbnRpYWxzICYmIHByb3ZpZGVkQ3JlZGVudGlhbHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHByb3ZpZGVkQ3JlZGVudGlhbHM7XG4gICAgfVxuICAgIC8vIEFwcGx5IHRhcmdldC1zcGVjaWZpYyBkZWZhdWx0cyB3aGVuIG5vdCBwcm92aWRlZFxuICAgIHN3aXRjaCAodGhpcy50YXJnZXRUeXBlKSB7XG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuTEFNQkRBOlxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLlNNSVRIWV9NT0RFTDpcbiAgICAgICAgcmV0dXJuIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldO1xuXG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuTUNQX1NFUlZFUjpcbiAgICAgICAgLy8gUmV0dXJuIGVtcHR5IGFycmF5LCAtIHNlcnZpY2UgaGFuZGxlcyBOb0F1dGggYXV0b21hdGljYWxseVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuT1BFTkFQSV9TQ0hFTUE6XG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuQVBJX0dBVEVXQVk6XG4gICAgICAgIC8vIE5vIGRlZmF1bHQgLSBtdXN0IGJlIGV4cGxpY2l0bHkgcHJvdmlkZWQsIHNlcnZpY2UgaGFuZGxlcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/Lm1hcChwcm92aWRlciA9PiBwcm92aWRlci5fcmVuZGVyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgZ2F0ZXdheSB0YXJnZXQgbmFtZSBmb3JtYXRcbiAgICogUGF0dGVybjogXihbMC05YS16QS1aXVstXT8pezEsMTAwfSRcbiAgICogTWF4IGxlbmd0aDogMTAwIGNoYXJhY3RlcnNcbiAgICogQHBhcmFtIGdhdGV3YXlUYXJnZXROYW1lIFRoZSBnYXRld2F5IHRhcmdldCBuYW1lIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIG5hbWUgaXMgaW52YWxpZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZShnYXRld2F5VGFyZ2V0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChnYXRld2F5VGFyZ2V0TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgIHZhbHVlOiBnYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGZpZWxkTmFtZTogJ0dhdGV3YXkgdGFyZ2V0IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiAxMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgICdHYXRld2F5IHRhcmdldCBuYW1lJyxcbiAgICAgIC9eKFswLTlhLXpBLVpdWy1dPyl7MSwxMDB9JC8sXG4gICAgICAnR2F0ZXdheSB0YXJnZXQgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgaHlwaGVucywgd2l0aCBoeXBoZW5zIG9ubHkgYmV0d2VlbiBjaGFyYWN0ZXJzJyxcbiAgICApO1xuXG4gICAgY29uc3QgYWxsRXJyb3JzID0gWy4uLmxlbmd0aEVycm9ycywgLi4ucGF0dGVybkVycm9yc107XG4gICAgaWYgKGFsbEVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdHYXRld2F5VGFyZ2V0TmFtZUludmFsaWQnLCBhbGxFcnJvcnMuam9pbignXFxuJyksIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGRlc2NyaXB0aW9uIGZvcm1hdFxuICAgKiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgMjAwIGNoYXJhY3RlcnNcbiAgICogQHRocm93cyBFcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlc2NyaXB0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlU3RyaW5nRmllbGQoe1xuICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uLFxuICAgICAgZmllbGROYW1lOiAnR2F0ZXdheSB0YXJnZXQgZGVzY3JpcHRpb24nLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiAyMDAsXG4gICAgfSk7XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0dhdGV3YXlUYXJnZXREZXNjcmlwdGlvbkludmFsaWQnLCBlcnJvcnMuam9pbignXFxuJyksIHRoaXMpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -56,7 +56,7 @@ var MemoryStrategyType;
56
56
  * @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-strategies.html
57
57
  */
58
58
  class MemoryStrategy {
59
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryStrategy", version: "2.242.0-alpha.0" };
59
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryStrategy", version: "2.244.0-alpha.0" };
60
60
  /**
61
61
  * Default strategies for organizing and extracting memory data, each optimized for specific use cases.
62
62
  * This strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall.
@@ -87,7 +87,7 @@ const MEMORY_EXPIRATION_DAYS_MAX = 365;
87
87
  * Contains methods and attributes valid for Memories either created with CDK or imported.
88
88
  */
89
89
  class MemoryBase extends aws_cdk_lib_1.Resource {
90
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryBase", version: "2.242.0-alpha.0" };
90
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryBase", version: "2.244.0-alpha.0" };
91
91
  /**
92
92
  * A reference to a Memory resource.
93
93
  */
@@ -369,7 +369,7 @@ let Memory = (() => {
369
369
  Memory = _classThis = _classDescriptor.value;
370
370
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
371
371
  }
372
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Memory", version: "2.242.0-alpha.0" };
372
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Memory", version: "2.244.0-alpha.0" };
373
373
  /** Uniquely identifies this class. */
374
374
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.Memory';
375
375
  /**
@@ -25,7 +25,7 @@ const PROMPT_MAX_LENGTH = 30000;
25
25
  * with specific models and prompt templates.
26
26
  */
27
27
  class ManagedMemoryStrategy {
28
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.242.0-alpha.0" };
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.244.0-alpha.0" };
29
29
  name;
30
30
  description;
31
31
  /**
@@ -86,7 +86,7 @@ const DEFAULT_TOKEN_BASED_TRIGGER = 100;
86
86
  * Use AgentCore memory for event storage with custom triggers. Define memory processing logic in your own environment.
87
87
  */
88
88
  class SelfManagedMemoryStrategy {
89
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.242.0-alpha.0" };
89
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.244.0-alpha.0" };
90
90
  name;
91
91
  description;
92
92
  strategyType;
@@ -78,12 +78,12 @@ function throwIfInvalid(validationFn, param, scope) {
78
78
  const errors = validationFn(param, scope);
79
79
  if (errors.length > 0) {
80
80
  if (scope) {
81
- throw new errors_1.ValidationError(errors.join('\n'), scope);
81
+ throw new errors_1.ValidationError('ValidationFailed', errors.join('\n'), scope);
82
82
  }
83
83
  else {
84
- throw new errors_1.UnscopedValidationError(errors.join('\n'));
84
+ throw new errors_1.UnscopedValidationError('ValidationFailed', errors.join('\n'));
85
85
  }
86
86
  }
87
87
  return param;
88
88
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFxQkgsOERBMEJDO0FBV0Qsb0RBaUNDO0FBSUQsd0NBVUM7QUF2R0QsNkNBQW9DO0FBQ3BDLHdEQUF1RjtBQVl2Rjs7Ozs7R0FLRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLE1BQThCLEVBQUUsTUFBbUI7SUFDM0YsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLCtCQUErQjtJQUMvQixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsQ0FBQyw0Q0FBNEM7SUFDN0QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRTFDLGlEQUFpRDtJQUNqRCxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLElBQUksQ0FDVCxhQUFhLE1BQU0sQ0FBQyxTQUFTLE9BQU8sYUFBYSxzREFBc0QsTUFBTSxDQUFDLFNBQVMsYUFBYSxDQUNySSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsYUFBYSxNQUFNLENBQUMsU0FBUyxPQUFPLGFBQWEseUNBQXlDLE1BQU0sQ0FBQyxTQUFTLGFBQWEsQ0FDeEgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlLEVBQ2YsYUFBc0IsRUFDdEIsTUFBbUI7SUFFbkIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLCtCQUErQjtJQUMvQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLE1BQU0sQ0FBQyxDQUFDLDRDQUE0QztJQUM3RCxDQUFDO0lBRUQsaURBQWlEO0lBQ2pELElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLGNBQWM7UUFDZCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLFNBQVMsU0FBUyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLGFBQWEsU0FBUyxnQkFBZ0IsS0FBSyx5Q0FBeUMsT0FBTyxFQUFFLENBQUM7WUFDckgsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksY0FBYyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBSUQsU0FBZ0IsY0FBYyxDQUFJLFlBQTZCLEVBQUUsS0FBUSxFQUFFLEtBQWtCO0lBQzNGLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksd0JBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLGdDQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmludGVyZmFjZSBJbnRlcnZhbFZhbGlkYXRpb24ge1xuICBmaWVsZE5hbWU6IHN0cmluZztcbiAgbWluTGVuZ3RoOiBudW1iZXI7XG4gIG1heExlbmd0aDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU3RyaW5nTGVuZ3RoVmFsaWRhdGlvbiBleHRlbmRzIEludGVydmFsVmFsaWRhdGlvbiB7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgZmllbGQgYWdhaW5zdCBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvbnN0cmFpbnRzLlxuICogQHBhcmFtIHBhcmFtcyAtIFZhbGlkYXRpb24gcGFyYW1ldGVycyBpbmNsdWRpbmcgdmFsdWUsIGZpZWxkTmFtZSwgbWluTGVuZ3RoLCBhbmQgbWF4TGVuZ3RoXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgocGFyYW1zOiBTdHJpbmdMZW5ndGhWYWxpZGF0aW9uLCBfc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICBpZiAocGFyYW1zLnZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gZXJyb3JzOyAvLyBTa2lwIHZhbGlkYXRpb24gZm9yIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICB9XG5cbiAgY29uc3QgY3VycmVudExlbmd0aCA9IHBhcmFtcy52YWx1ZS5sZW5ndGg7XG5cbiAgLy8gRXZhbHVhdGUgb25seSBpZiBpdCBpcyBub3QgYW4gdW5yZXNvbHZlZCBUb2tlblxuICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChwYXJhbXMuZmllbGROYW1lKSkge1xuICAgIGlmIChwYXJhbXMudmFsdWUubGVuZ3RoID4gcGFyYW1zLm1heExlbmd0aCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBUaGUgZmllbGQgJHtwYXJhbXMuZmllbGROYW1lfSBpcyAke2N1cnJlbnRMZW5ndGh9IGNoYXJhY3RlcnMgbG9uZyBidXQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHtwYXJhbXMubWF4TGVuZ3RofSBjaGFyYWN0ZXJzYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy52YWx1ZS5sZW5ndGggPCBwYXJhbXMubWluTGVuZ3RoKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYFRoZSBmaWVsZCAke3BhcmFtcy5maWVsZE5hbWV9IGlzICR7Y3VycmVudExlbmd0aH0gY2hhcmFjdGVycyBsb25nIGJ1dCBtdXN0IGJlIGF0IGxlYXN0ICR7cGFyYW1zLm1pbkxlbmd0aH0gY2hhcmFjdGVyc2AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgc3RyaW5nIGZpZWxkIGFnYWluc3QgYSByZWdleCBwYXR0ZXJuLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB2YWx1ZSB0byB2YWxpZGF0ZVxuICogQHBhcmFtIGZpZWxkTmFtZSAtIE5hbWUgb2YgdGhlIGZpZWxkIGJlaW5nIHZhbGlkYXRlZCAoZm9yIGVycm9yIG1lc3NhZ2VzKVxuICogQHBhcmFtIHBhdHRlcm4gLSBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byB0ZXN0IGFnYWluc3RcbiAqIEBwYXJhbSBjdXN0b21NZXNzYWdlIC0gT3B0aW9uYWwgY3VzdG9tIGVycm9yIG1lc3NhZ2VcbiAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGUgZm9yIGVycm9yIHJlcG9ydGluZyAob3B0aW9uYWwpXG4gKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gIHZhbHVlOiBzdHJpbmcsXG4gIGZpZWxkTmFtZTogc3RyaW5nLFxuICBwYXR0ZXJuOiBSZWdFeHAsXG4gIGN1c3RvbU1lc3NhZ2U/OiBzdHJpbmcsXG4gIF9zY29wZT86IElDb25zdHJ1Y3QsXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBIYW5kbGUgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGVycm9yczsgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgfVxuXG4gIC8vIEV2YWx1YXRlIG9ubHkgaWYgaXQgaXMgbm90IGFuIHVucmVzb2x2ZWQgVG9rZW5cbiAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpKSB7XG4gICAgLy8gVmVyaWZ5IHR5cGVcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JzLnB1c2goYEV4cGVjdGVkIHN0cmluZyBmb3IgJHtmaWVsZE5hbWV9LCBnb3QgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgfVxuICAgIC8vIFZhbGlkYXRlIHNwZWNpZmllZCByZWdleFxuICAgIGlmICghKHBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHApKSB7XG4gICAgICBlcnJvcnMucHVzaCgnUGF0dGVybiBtdXN0IGJlIGEgdmFsaWQgcmVndWxhciBleHByZXNzaW9uJyk7XG4gICAgfVxuXG4gICAgLy8gUGF0dGVybiB2YWxpZGF0aW9uXG4gICAgaWYgKCFwYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICBjb25zdCBkZWZhdWx0TWVzc2FnZSA9IGBUaGUgZmllbGQgJHtmaWVsZE5hbWV9IHdpdGggdmFsdWUgXCIke3ZhbHVlfVwiIGRvZXMgbm90IG1hdGNoIHRoZSByZXF1aXJlZCBwYXR0ZXJuICR7cGF0dGVybn1gO1xuICAgICAgZXJyb3JzLnB1c2goY3VzdG9tTWVzc2FnZSB8fCBkZWZhdWx0TWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVycm9ycztcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkZuPFQ+ID0gKHBhcmFtOiBULCBzY29wZT86IElDb25zdHJ1Y3QpID0+IHN0cmluZ1tdO1xuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkludmFsaWQ8VD4odmFsaWRhdGlvbkZuOiBWYWxpZGF0aW9uRm48VD4sIHBhcmFtOiBULCBzY29wZT86IElDb25zdHJ1Y3QpOiBUIHtcbiAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGlvbkZuKHBhcmFtLCBzY29wZSk7XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGlmIChzY29wZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMuam9pbignXFxuJyksIHNjb3BlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGVycm9ycy5qb2luKCdcXG4nKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJhbTtcbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFxQkgsOERBMEJDO0FBV0Qsb0RBaUNDO0FBSUQsd0NBVUM7QUF2R0QsNkNBQW9DO0FBQ3BDLHdEQUF1RjtBQVl2Rjs7Ozs7R0FLRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLE1BQThCLEVBQUUsTUFBbUI7SUFDM0YsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLCtCQUErQjtJQUMvQixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsQ0FBQyw0Q0FBNEM7SUFDN0QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRTFDLGlEQUFpRDtJQUNqRCxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLElBQUksQ0FDVCxhQUFhLE1BQU0sQ0FBQyxTQUFTLE9BQU8sYUFBYSxzREFBc0QsTUFBTSxDQUFDLFNBQVMsYUFBYSxDQUNySSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsYUFBYSxNQUFNLENBQUMsU0FBUyxPQUFPLGFBQWEseUNBQXlDLE1BQU0sQ0FBQyxTQUFTLGFBQWEsQ0FDeEgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlLEVBQ2YsYUFBc0IsRUFDdEIsTUFBbUI7SUFFbkIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLCtCQUErQjtJQUMvQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLE1BQU0sQ0FBQyxDQUFDLDRDQUE0QztJQUM3RCxDQUFDO0lBRUQsaURBQWlEO0lBQ2pELElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLGNBQWM7UUFDZCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLFNBQVMsU0FBUyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLGFBQWEsU0FBUyxnQkFBZ0IsS0FBSyx5Q0FBeUMsT0FBTyxFQUFFLENBQUM7WUFDckgsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksY0FBYyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBSUQsU0FBZ0IsY0FBYyxDQUFJLFlBQTZCLEVBQUUsS0FBUSxFQUFFLEtBQWtCO0lBQzNGLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksd0JBQWUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFFLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLGdDQUF1QixDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmludGVyZmFjZSBJbnRlcnZhbFZhbGlkYXRpb24ge1xuICBmaWVsZE5hbWU6IHN0cmluZztcbiAgbWluTGVuZ3RoOiBudW1iZXI7XG4gIG1heExlbmd0aDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU3RyaW5nTGVuZ3RoVmFsaWRhdGlvbiBleHRlbmRzIEludGVydmFsVmFsaWRhdGlvbiB7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgZmllbGQgYWdhaW5zdCBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvbnN0cmFpbnRzLlxuICogQHBhcmFtIHBhcmFtcyAtIFZhbGlkYXRpb24gcGFyYW1ldGVycyBpbmNsdWRpbmcgdmFsdWUsIGZpZWxkTmFtZSwgbWluTGVuZ3RoLCBhbmQgbWF4TGVuZ3RoXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgocGFyYW1zOiBTdHJpbmdMZW5ndGhWYWxpZGF0aW9uLCBfc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICBpZiAocGFyYW1zLnZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gZXJyb3JzOyAvLyBTa2lwIHZhbGlkYXRpb24gZm9yIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICB9XG5cbiAgY29uc3QgY3VycmVudExlbmd0aCA9IHBhcmFtcy52YWx1ZS5sZW5ndGg7XG5cbiAgLy8gRXZhbHVhdGUgb25seSBpZiBpdCBpcyBub3QgYW4gdW5yZXNvbHZlZCBUb2tlblxuICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChwYXJhbXMuZmllbGROYW1lKSkge1xuICAgIGlmIChwYXJhbXMudmFsdWUubGVuZ3RoID4gcGFyYW1zLm1heExlbmd0aCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBUaGUgZmllbGQgJHtwYXJhbXMuZmllbGROYW1lfSBpcyAke2N1cnJlbnRMZW5ndGh9IGNoYXJhY3RlcnMgbG9uZyBidXQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHtwYXJhbXMubWF4TGVuZ3RofSBjaGFyYWN0ZXJzYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy52YWx1ZS5sZW5ndGggPCBwYXJhbXMubWluTGVuZ3RoKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYFRoZSBmaWVsZCAke3BhcmFtcy5maWVsZE5hbWV9IGlzICR7Y3VycmVudExlbmd0aH0gY2hhcmFjdGVycyBsb25nIGJ1dCBtdXN0IGJlIGF0IGxlYXN0ICR7cGFyYW1zLm1pbkxlbmd0aH0gY2hhcmFjdGVyc2AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgc3RyaW5nIGZpZWxkIGFnYWluc3QgYSByZWdleCBwYXR0ZXJuLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB2YWx1ZSB0byB2YWxpZGF0ZVxuICogQHBhcmFtIGZpZWxkTmFtZSAtIE5hbWUgb2YgdGhlIGZpZWxkIGJlaW5nIHZhbGlkYXRlZCAoZm9yIGVycm9yIG1lc3NhZ2VzKVxuICogQHBhcmFtIHBhdHRlcm4gLSBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byB0ZXN0IGFnYWluc3RcbiAqIEBwYXJhbSBjdXN0b21NZXNzYWdlIC0gT3B0aW9uYWwgY3VzdG9tIGVycm9yIG1lc3NhZ2VcbiAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGUgZm9yIGVycm9yIHJlcG9ydGluZyAob3B0aW9uYWwpXG4gKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gIHZhbHVlOiBzdHJpbmcsXG4gIGZpZWxkTmFtZTogc3RyaW5nLFxuICBwYXR0ZXJuOiBSZWdFeHAsXG4gIGN1c3RvbU1lc3NhZ2U/OiBzdHJpbmcsXG4gIF9zY29wZT86IElDb25zdHJ1Y3QsXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBIYW5kbGUgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGVycm9yczsgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgfVxuXG4gIC8vIEV2YWx1YXRlIG9ubHkgaWYgaXQgaXMgbm90IGFuIHVucmVzb2x2ZWQgVG9rZW5cbiAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpKSB7XG4gICAgLy8gVmVyaWZ5IHR5cGVcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JzLnB1c2goYEV4cGVjdGVkIHN0cmluZyBmb3IgJHtmaWVsZE5hbWV9LCBnb3QgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgfVxuICAgIC8vIFZhbGlkYXRlIHNwZWNpZmllZCByZWdleFxuICAgIGlmICghKHBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHApKSB7XG4gICAgICBlcnJvcnMucHVzaCgnUGF0dGVybiBtdXN0IGJlIGEgdmFsaWQgcmVndWxhciBleHByZXNzaW9uJyk7XG4gICAgfVxuXG4gICAgLy8gUGF0dGVybiB2YWxpZGF0aW9uXG4gICAgaWYgKCFwYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICBjb25zdCBkZWZhdWx0TWVzc2FnZSA9IGBUaGUgZmllbGQgJHtmaWVsZE5hbWV9IHdpdGggdmFsdWUgXCIke3ZhbHVlfVwiIGRvZXMgbm90IG1hdGNoIHRoZSByZXF1aXJlZCBwYXR0ZXJuICR7cGF0dGVybn1gO1xuICAgICAgZXJyb3JzLnB1c2goY3VzdG9tTWVzc2FnZSB8fCBkZWZhdWx0TWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVycm9ycztcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkZuPFQ+ID0gKHBhcmFtOiBULCBzY29wZT86IElDb25zdHJ1Y3QpID0+IHN0cmluZ1tdO1xuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkludmFsaWQ8VD4odmFsaWRhdGlvbkZuOiBWYWxpZGF0aW9uRm48VD4sIHBhcmFtOiBULCBzY29wZT86IElDb25zdHJ1Y3QpOiBUIHtcbiAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGlvbkZuKHBhcmFtLCBzY29wZSk7XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGlmIChzY29wZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignVmFsaWRhdGlvbkZhaWxlZCcsIGVycm9ycy5qb2luKCdcXG4nKSwgc2NvcGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoJ1ZhbGlkYXRpb25GYWlsZWQnLCBlcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyYW07XG59XG4iXX0=
@@ -8,7 +8,7 @@ const ec2 = require("aws-cdk-lib/aws-ec2");
8
8
  * Abstract base class for network configuration.
9
9
  */
10
10
  class NetworkConfiguration {
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.242.0-alpha.0" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.244.0-alpha.0" };
12
12
  /**
13
13
  * The network mode to use.
14
14
  * Configure the security level for agent
@@ -87,7 +87,7 @@ exports.NetworkConfiguration = NetworkConfiguration;
87
87
  * Network configuration for the Browser tool.
88
88
  */
89
89
  class BrowserNetworkConfiguration extends NetworkConfiguration {
90
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.242.0-alpha.0" };
90
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.244.0-alpha.0" };
91
91
  /**
92
92
  * Creates a public network configuration. PUBLIC is the default network mode.
93
93
  * @returns A BrowserNetworkConfiguration.
@@ -133,7 +133,7 @@ exports.BrowserNetworkConfiguration = BrowserNetworkConfiguration;
133
133
  * Network configuration for the Code Interpreter tool.
134
134
  */
135
135
  class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
136
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.242.0-alpha.0" };
136
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.244.0-alpha.0" };
137
137
  /**
138
138
  * Creates a public network configuration.
139
139
  * @returns A CodeInterpreterNetworkConfiguration.
@@ -187,7 +187,7 @@ exports.CodeInterpreterNetworkConfiguration = CodeInterpreterNetworkConfiguratio
187
187
  * Network configuration for the Runtime.
188
188
  */
189
189
  class RuntimeNetworkConfiguration extends NetworkConfiguration {
190
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.242.0-alpha.0" };
190
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.244.0-alpha.0" };
191
191
  /**
192
192
  * Creates a public network configuration. PUBLIC is the default network mode.
193
193
  * @returns A RuntimeNetworkConfiguration.
@@ -28,7 +28,7 @@ class RuntimeCustomClaim {
28
28
  valueType;
29
29
  operator;
30
30
  value;
31
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeCustomClaim", version: "2.242.0-alpha.0" };
31
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeCustomClaim", version: "2.244.0-alpha.0" };
32
32
  /**
33
33
  * Create a custom claim with a string value.
34
34
  * String claims must use the EQUALS operator.
@@ -61,7 +61,7 @@ class RuntimeCustomClaim {
61
61
  }
62
62
  // Validate operator is valid for STRING_ARRAY type
63
63
  if (operator !== types_1.CustomClaimOperator.CONTAINS && operator !== types_1.CustomClaimOperator.CONTAINS_ANY) {
64
- throw new errors_1.UnscopedValidationError(`Custom claim '${name}': STRING_ARRAY type only supports CONTAINS or CONTAINS_ANY operators, got ${operator}`);
64
+ throw new errors_1.UnscopedValidationError('InvalidOperatorForStringArray', `Custom claim '${name}': STRING_ARRAY type only supports CONTAINS or CONTAINS_ANY operators, got ${operator}`);
65
65
  }
66
66
  return new RuntimeCustomClaim(name, types_1.CustomClaimValueType.STRING_ARRAY, operator, values);
67
67
  }
@@ -75,10 +75,10 @@ class RuntimeCustomClaim {
75
75
  }
76
76
  // Validate that value matches the valueType
77
77
  if (valueType === types_1.CustomClaimValueType.STRING && typeof value !== 'string') {
78
- throw new errors_1.UnscopedValidationError(`Custom claim '${name}': STRING type requires a string value, got ${typeof value}`);
78
+ throw new errors_1.UnscopedValidationError('InvalidValueTypeForString', `Custom claim '${name}': STRING type requires a string value, got ${typeof value}`);
79
79
  }
80
80
  if (valueType === types_1.CustomClaimValueType.STRING_ARRAY && !Array.isArray(value)) {
81
- throw new errors_1.UnscopedValidationError(`Custom claim '${name}': STRING_ARRAY type requires an array value, got ${typeof value}`);
81
+ throw new errors_1.UnscopedValidationError('InvalidValueTypeForStringArray', `Custom claim '${name}': STRING_ARRAY type requires an array value, got ${typeof value}`);
82
82
  }
83
83
  }
84
84
  /**
@@ -100,7 +100,7 @@ class RuntimeCustomClaim {
100
100
  // CONTAINS requires a single string value (check if claim array contains this string)
101
101
  const values = this.value;
102
102
  if (!aws_cdk_lib_1.Token.isUnresolved(values[0]) && values.length !== 1) {
103
- throw new errors_1.UnscopedValidationError(`Custom claim '${this.name}': CONTAINS operator requires exactly one value, got ${values.length} values`);
103
+ throw new errors_1.UnscopedValidationError('InvalidContainsOperatorValueCount', `Custom claim '${this.name}': CONTAINS operator requires exactly one value, got ${values.length} values`);
104
104
  }
105
105
  claimMatchValue = {
106
106
  matchValueString: values[0],
@@ -124,4 +124,4 @@ class RuntimeCustomClaim {
124
124
  }
125
125
  }
126
126
  exports.RuntimeCustomClaim = RuntimeCustomClaim;
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNsYWltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3VzdG9tLWNsYWltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFFcEMsd0RBQXNFO0FBQ3RFLDhDQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFxQ1Y7SUFDQTtJQUNBO0lBQ0E7O0lBdkNuQjs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN2RCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLDRCQUFvQixDQUFDLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDckc7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsSUFBWSxFQUNaLE1BQWdCLEVBQ2hCLFdBQWdDLDJCQUFtQixDQUFDLFFBQVE7Ozs7Ozs7Ozs7UUFFNUQsbURBQW1EO1FBQ25ELElBQUksUUFBUSxLQUFLLDJCQUFtQixDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssMkJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0YsTUFBTSxJQUFJLGdDQUF1QixDQUMvQixpQkFBaUIsSUFBSSw4RUFBOEUsUUFBUSxFQUFFLENBQzlHLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksRUFBRSw0QkFBb0IsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzFGO0lBRUQsWUFDbUIsSUFBWSxFQUNaLFNBQStCLEVBQy9CLFFBQTZCLEVBQzdCLEtBQXdCO1FBSHhCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFzQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUV6QyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCw0Q0FBNEM7UUFDNUMsSUFBSSxTQUFTLEtBQUssNEJBQW9CLENBQUMsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxnQ0FBdUIsQ0FBQyxpQkFBaUIsSUFBSSwrQ0FBK0MsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hILENBQUM7UUFDRCxJQUFJLFNBQVMsS0FBSyw0QkFBb0IsQ0FBQyxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0UsTUFBTSxJQUFJLGdDQUF1QixDQUFDLGlCQUFpQixJQUFJLHFEQUFxRCxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUgsQ0FBQztLQUNGO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNaLCtEQUErRDtRQUMvRCxJQUFJLGVBQXVELENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLDRCQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELGdFQUFnRTtZQUNoRSxlQUFlLEdBQUc7Z0JBQ2hCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFlO2FBQ3ZDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLDRGQUE0RjtZQUM1RixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssMkJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25ELHNGQUFzRjtnQkFDdEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQWlCLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMxRCxNQUFNLElBQUksZ0NBQXVCLENBQy9CLGlCQUFpQixJQUFJLENBQUMsSUFBSSx3REFBd0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxDQUN6RyxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsZUFBZSxHQUFHO29CQUNoQixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2lCQUM1QixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHlDQUF5QztnQkFDekMsZUFBZSxHQUFHO29CQUNoQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsS0FBaUI7aUJBQzdDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU87WUFDTCxxQkFBcUIsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsU0FBUztZQUMxQywwQkFBMEIsRUFBRTtnQkFDMUIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2pDLGVBQWUsRUFBRSxlQUFlO2FBQ2pDO1NBQ0YsQ0FBQztLQUNIOztBQS9GSCxnREFnR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgQ2ZuUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvZXJyb3JzJztcbmltcG9ydCB7IEN1c3RvbUNsYWltT3BlcmF0b3IsIEN1c3RvbUNsYWltVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3R5cGVzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY3VzdG9tIGNsYWltIHZhbGlkYXRpb24gY29uZmlndXJhdGlvbiBmb3IgUnVudGltZSBKV1QgYXV0aG9yaXplcnMuXG4gKiBDdXN0b20gY2xhaW1zIGFsbG93IHlvdSB0byB2YWxpZGF0ZSBhZGRpdGlvbmFsIGZpZWxkcyBpbiBKV1QgdG9rZW5zIGJleW9uZFxuICogdGhlIHN0YW5kYXJkIGF1ZGllbmNlLCBjbGllbnQsIGFuZCBzY29wZSB2YWxpZGF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDdXN0b21DbGFpbSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjdXN0b20gY2xhaW0gd2l0aCBhIHN0cmluZyB2YWx1ZS5cbiAgICogU3RyaW5nIGNsYWltcyBtdXN0IHVzZSB0aGUgRVFVQUxTIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY2xhaW0gaW4gdGhlIEpXVCB0b2tlblxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB2YWx1ZSB0byBtYXRjaCAobXVzdCBleGFjdGx5IGVxdWFsKVxuICAgKiBAcmV0dXJucyBBIFJ1bnRpbWVDdXN0b21DbGFpbSBjb25maWd1cmVkIGZvciBzdHJpbmcgdmFsaWRhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoU3RyaW5nVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUnVudGltZUN1c3RvbUNsYWltIHtcbiAgICByZXR1cm4gbmV3IFJ1bnRpbWVDdXN0b21DbGFpbShuYW1lLCBDdXN0b21DbGFpbVZhbHVlVHlwZS5TVFJJTkcsIEN1c3RvbUNsYWltT3BlcmF0b3IuRVFVQUxTLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY3VzdG9tIGNsYWltIHdpdGggYSBzdHJpbmcgYXJyYXkgdmFsdWUuXG4gICAqIFN0cmluZyBhcnJheSBjbGFpbXMgY2FuIHVzZSBDT05UQUlOUyAoZGVmYXVsdCkgb3IgQ09OVEFJTlNfQU5ZIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY2xhaW0gaW4gdGhlIEpXVCB0b2tlblxuICAgKiBAcGFyYW0gdmFsdWVzIFRoZSBhcnJheSBvZiBzdHJpbmcgdmFsdWVzIHRvIG1hdGNoLiBGb3IgQ09OVEFJTlMgb3BlcmF0b3IsIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSB2YWx1ZS5cbiAgICogQHBhcmFtIG9wZXJhdG9yIFRoZSBtYXRjaCBvcGVyYXRvciAoZGVmYXVsdHMgdG8gQ09OVEFJTlMpXG4gICAqIEByZXR1cm5zIEEgUnVudGltZUN1c3RvbUNsYWltIGNvbmZpZ3VyZWQgZm9yIHN0cmluZyBhcnJheSB2YWxpZGF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhTdHJpbmdBcnJheVZhbHVlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdLFxuICAgIG9wZXJhdG9yOiBDdXN0b21DbGFpbU9wZXJhdG9yID0gQ3VzdG9tQ2xhaW1PcGVyYXRvci5DT05UQUlOUyxcbiAgKTogUnVudGltZUN1c3RvbUNsYWltIHtcbiAgICAvLyBWYWxpZGF0ZSBvcGVyYXRvciBpcyB2YWxpZCBmb3IgU1RSSU5HX0FSUkFZIHR5cGVcbiAgICBpZiAob3BlcmF0b3IgIT09IEN1c3RvbUNsYWltT3BlcmF0b3IuQ09OVEFJTlMgJiYgb3BlcmF0b3IgIT09IEN1c3RvbUNsYWltT3BlcmF0b3IuQ09OVEFJTlNfQU5ZKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBDdXN0b20gY2xhaW0gJyR7bmFtZX0nOiBTVFJJTkdfQVJSQVkgdHlwZSBvbmx5IHN1cHBvcnRzIENPTlRBSU5TIG9yIENPTlRBSU5TX0FOWSBvcGVyYXRvcnMsIGdvdCAke29wZXJhdG9yfWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJ1bnRpbWVDdXN0b21DbGFpbShuYW1lLCBDdXN0b21DbGFpbVZhbHVlVHlwZS5TVFJJTkdfQVJSQVksIG9wZXJhdG9yLCB2YWx1ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlVHlwZTogQ3VzdG9tQ2xhaW1WYWx1ZVR5cGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcGVyYXRvcjogQ3VzdG9tQ2xhaW1PcGVyYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgKSB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gVmFsaWRhdGUgdGhhdCB2YWx1ZSBtYXRjaGVzIHRoZSB2YWx1ZVR5cGVcbiAgICBpZiAodmFsdWVUeXBlID09PSBDdXN0b21DbGFpbVZhbHVlVHlwZS5TVFJJTkcgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGBDdXN0b20gY2xhaW0gJyR7bmFtZX0nOiBTVFJJTkcgdHlwZSByZXF1aXJlcyBhIHN0cmluZyB2YWx1ZSwgZ290ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgIH1cbiAgICBpZiAodmFsdWVUeXBlID09PSBDdXN0b21DbGFpbVZhbHVlVHlwZS5TVFJJTkdfQVJSQVkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoYEN1c3RvbSBjbGFpbSAnJHtuYW1lfSc6IFNUUklOR19BUlJBWSB0eXBlIHJlcXVpcmVzIGFuIGFycmF5IHZhbHVlLCBnb3QgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgY3VzdG9tIGNsYWltIGFzIGEgQ2xvdWRGb3JtYXRpb24gcHJvcGVydHlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5SdW50aW1lLkN1c3RvbUNsYWltVmFsaWRhdGlvblR5cGVQcm9wZXJ0eSB7XG4gICAgLy8gQnVpbGQgdGhlIGNsYWltIG1hdGNoIHZhbHVlIGJhc2VkIG9uIG9wZXJhdG9yIGFuZCB2YWx1ZSB0eXBlXG4gICAgbGV0IGNsYWltTWF0Y2hWYWx1ZTogQ2ZuUnVudGltZS5DbGFpbU1hdGNoVmFsdWVUeXBlUHJvcGVydHk7XG4gICAgaWYgKHRoaXMudmFsdWVUeXBlID09PSBDdXN0b21DbGFpbVZhbHVlVHlwZS5TVFJJTkcpIHtcbiAgICAgIC8vIFNUUklORyB0eXBlIGFsd2F5cyB1c2VzIG1hdGNoVmFsdWVTdHJpbmcgd2l0aCBFUVVBTFMgb3BlcmF0b3JcbiAgICAgIGNsYWltTWF0Y2hWYWx1ZSA9IHtcbiAgICAgICAgbWF0Y2hWYWx1ZVN0cmluZzogdGhpcy52YWx1ZSBhcyBzdHJpbmcsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTVFJJTkdfQVJSQVkgdHlwZTogQ09OVEFJTlMgdXNlcyBtYXRjaFZhbHVlU3RyaW5nLCBDT05UQUlOU19BTlkgdXNlcyBtYXRjaFZhbHVlU3RyaW5nTGlzdFxuICAgICAgaWYgKHRoaXMub3BlcmF0b3IgPT09IEN1c3RvbUNsYWltT3BlcmF0b3IuQ09OVEFJTlMpIHtcbiAgICAgICAgLy8gQ09OVEFJTlMgcmVxdWlyZXMgYSBzaW5nbGUgc3RyaW5nIHZhbHVlIChjaGVjayBpZiBjbGFpbSBhcnJheSBjb250YWlucyB0aGlzIHN0cmluZylcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy52YWx1ZSBhcyBzdHJpbmdbXTtcbiAgICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWVzWzBdKSAmJiB2YWx1ZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgYEN1c3RvbSBjbGFpbSAnJHt0aGlzLm5hbWV9JzogQ09OVEFJTlMgb3BlcmF0b3IgcmVxdWlyZXMgZXhhY3RseSBvbmUgdmFsdWUsIGdvdCAke3ZhbHVlcy5sZW5ndGh9IHZhbHVlc2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFpbU1hdGNoVmFsdWUgPSB7XG4gICAgICAgICAgbWF0Y2hWYWx1ZVN0cmluZzogdmFsdWVzWzBdLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ09OVEFJTlNfQU5ZIHVzZXMgbWF0Y2hWYWx1ZVN0cmluZ0xpc3RcbiAgICAgICAgY2xhaW1NYXRjaFZhbHVlID0ge1xuICAgICAgICAgIG1hdGNoVmFsdWVTdHJpbmdMaXN0OiB0aGlzLnZhbHVlIGFzIHN0cmluZ1tdLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpbmJvdW5kVG9rZW5DbGFpbU5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGluYm91bmRUb2tlbkNsYWltVmFsdWVUeXBlOiB0aGlzLnZhbHVlVHlwZSxcbiAgICAgIGF1dGhvcml6aW5nQ2xhaW1NYXRjaFZhbHVlOiB7XG4gICAgICAgIGNsYWltTWF0Y2hPcGVyYXRvcjogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgY2xhaW1NYXRjaFZhbHVlOiBjbGFpbU1hdGNoVmFsdWUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNsYWltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3VzdG9tLWNsYWltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFFcEMsd0RBQXNFO0FBQ3RFLDhDQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFzQ1Y7SUFDQTtJQUNBO0lBQ0E7O0lBeENuQjs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN2RCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLDRCQUFvQixDQUFDLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDckc7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsSUFBWSxFQUNaLE1BQWdCLEVBQ2hCLFdBQWdDLDJCQUFtQixDQUFDLFFBQVE7Ozs7Ozs7Ozs7UUFFNUQsbURBQW1EO1FBQ25ELElBQUksUUFBUSxLQUFLLDJCQUFtQixDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssMkJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0YsTUFBTSxJQUFJLGdDQUF1QixDQUMvQiwrQkFBK0IsRUFDL0IsaUJBQWlCLElBQUksOEVBQThFLFFBQVEsRUFBRSxDQUM5RyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsNEJBQW9CLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUMxRjtJQUVELFlBQ21CLElBQVksRUFDWixTQUErQixFQUMvQixRQUE2QixFQUM3QixLQUF3QjtRQUh4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFFekMsSUFBSSxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU87UUFDVCxDQUFDO1FBQ0QsNENBQTRDO1FBQzVDLElBQUksU0FBUyxLQUFLLDRCQUFvQixDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzRSxNQUFNLElBQUksZ0NBQXVCLENBQUMsMkJBQTJCLEVBQUUsaUJBQWlCLElBQUksK0NBQStDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNySixDQUFDO1FBQ0QsSUFBSSxTQUFTLEtBQUssNEJBQW9CLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdFLE1BQU0sSUFBSSxnQ0FBdUIsQ0FBQyxnQ0FBZ0MsRUFBRSxpQkFBaUIsSUFBSSxxREFBcUQsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hLLENBQUM7S0FDRjtJQUVEOzs7T0FHRztJQUNJLE9BQU87UUFDWiwrREFBK0Q7UUFDL0QsSUFBSSxlQUF1RCxDQUFDO1FBQzVELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyw0QkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuRCxnRUFBZ0U7WUFDaEUsZUFBZSxHQUFHO2dCQUNoQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBZTthQUN2QyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTiw0RkFBNEY7WUFDNUYsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLDJCQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuRCxzRkFBc0Y7Z0JBQ3RGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFpQixDQUFDO2dCQUN0QyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDMUQsTUFBTSxJQUFJLGdDQUF1QixDQUMvQixtQ0FBbUMsRUFDbkMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLHdEQUF3RCxNQUFNLENBQUMsTUFBTSxTQUFTLENBQ3pHLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxlQUFlLEdBQUc7b0JBQ2hCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQzVCLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04seUNBQXlDO2dCQUN6QyxlQUFlLEdBQUc7b0JBQ2hCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxLQUFpQjtpQkFDN0MsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTztZQUNMLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2hDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzFDLDBCQUEwQixFQUFFO2dCQUMxQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDakMsZUFBZSxFQUFFLGVBQWU7YUFDakM7U0FDRixDQUFDO0tBQ0g7O0FBakdILGdEQWtHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5SdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9lcnJvcnMnO1xuaW1wb3J0IHsgQ3VzdG9tQ2xhaW1PcGVyYXRvciwgQ3VzdG9tQ2xhaW1WYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vdHlwZXMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjdXN0b20gY2xhaW0gdmFsaWRhdGlvbiBjb25maWd1cmF0aW9uIGZvciBSdW50aW1lIEpXVCBhdXRob3JpemVycy5cbiAqIEN1c3RvbSBjbGFpbXMgYWxsb3cgeW91IHRvIHZhbGlkYXRlIGFkZGl0aW9uYWwgZmllbGRzIGluIEpXVCB0b2tlbnMgYmV5b25kXG4gKiB0aGUgc3RhbmRhcmQgYXVkaWVuY2UsIGNsaWVudCwgYW5kIHNjb3BlIHZhbGlkYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgUnVudGltZUN1c3RvbUNsYWltIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIGN1c3RvbSBjbGFpbSB3aXRoIGEgc3RyaW5nIHZhbHVlLlxuICAgKiBTdHJpbmcgY2xhaW1zIG11c3QgdXNlIHRoZSBFUVVBTFMgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjbGFpbSBpbiB0aGUgSldUIHRva2VuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHZhbHVlIHRvIG1hdGNoIChtdXN0IGV4YWN0bHkgZXF1YWwpXG4gICAqIEByZXR1cm5zIEEgUnVudGltZUN1c3RvbUNsYWltIGNvbmZpZ3VyZWQgZm9yIHN0cmluZyB2YWxpZGF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhTdHJpbmdWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBSdW50aW1lQ3VzdG9tQ2xhaW0ge1xuICAgIHJldHVybiBuZXcgUnVudGltZUN1c3RvbUNsYWltKG5hbWUsIEN1c3RvbUNsYWltVmFsdWVUeXBlLlNUUklORywgQ3VzdG9tQ2xhaW1PcGVyYXRvci5FUVVBTFMsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjdXN0b20gY2xhaW0gd2l0aCBhIHN0cmluZyBhcnJheSB2YWx1ZS5cbiAgICogU3RyaW5nIGFycmF5IGNsYWltcyBjYW4gdXNlIENPTlRBSU5TIChkZWZhdWx0KSBvciBDT05UQUlOU19BTlkgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjbGFpbSBpbiB0aGUgSldUIHRva2VuXG4gICAqIEBwYXJhbSB2YWx1ZXMgVGhlIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgdG8gbWF0Y2guIEZvciBDT05UQUlOUyBvcGVyYXRvciwgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIHZhbHVlLlxuICAgKiBAcGFyYW0gb3BlcmF0b3IgVGhlIG1hdGNoIG9wZXJhdG9yIChkZWZhdWx0cyB0byBDT05UQUlOUylcbiAgICogQHJldHVybnMgQSBSdW50aW1lQ3VzdG9tQ2xhaW0gY29uZmlndXJlZCBmb3Igc3RyaW5nIGFycmF5IHZhbGlkYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aFN0cmluZ0FycmF5VmFsdWUoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10sXG4gICAgb3BlcmF0b3I6IEN1c3RvbUNsYWltT3BlcmF0b3IgPSBDdXN0b21DbGFpbU9wZXJhdG9yLkNPTlRBSU5TLFxuICApOiBSdW50aW1lQ3VzdG9tQ2xhaW0ge1xuICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yIGlzIHZhbGlkIGZvciBTVFJJTkdfQVJSQVkgdHlwZVxuICAgIGlmIChvcGVyYXRvciAhPT0gQ3VzdG9tQ2xhaW1PcGVyYXRvci5DT05UQUlOUyAmJiBvcGVyYXRvciAhPT0gQ3VzdG9tQ2xhaW1PcGVyYXRvci5DT05UQUlOU19BTlkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWRPcGVyYXRvckZvclN0cmluZ0FycmF5JyxcbiAgICAgICAgYEN1c3RvbSBjbGFpbSAnJHtuYW1lfSc6IFNUUklOR19BUlJBWSB0eXBlIG9ubHkgc3VwcG9ydHMgQ09OVEFJTlMgb3IgQ09OVEFJTlNfQU5ZIG9wZXJhdG9ycywgZ290ICR7b3BlcmF0b3J9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUnVudGltZUN1c3RvbUNsYWltKG5hbWUsIEN1c3RvbUNsYWltVmFsdWVUeXBlLlNUUklOR19BUlJBWSwgb3BlcmF0b3IsIHZhbHVlcyk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVUeXBlOiBDdXN0b21DbGFpbVZhbHVlVHlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZXJhdG9yOiBDdXN0b21DbGFpbU9wZXJhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICApIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBWYWxpZGF0ZSB0aGF0IHZhbHVlIG1hdGNoZXMgdGhlIHZhbHVlVHlwZVxuICAgIGlmICh2YWx1ZVR5cGUgPT09IEN1c3RvbUNsYWltVmFsdWVUeXBlLlNUUklORyAmJiB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoJ0ludmFsaWRWYWx1ZVR5cGVGb3JTdHJpbmcnLCBgQ3VzdG9tIGNsYWltICcke25hbWV9JzogU1RSSU5HIHR5cGUgcmVxdWlyZXMgYSBzdHJpbmcgdmFsdWUsIGdvdCAke3R5cGVvZiB2YWx1ZX1gKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlVHlwZSA9PT0gQ3VzdG9tQ2xhaW1WYWx1ZVR5cGUuU1RSSU5HX0FSUkFZICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKCdJbnZhbGlkVmFsdWVUeXBlRm9yU3RyaW5nQXJyYXknLCBgQ3VzdG9tIGNsYWltICcke25hbWV9JzogU1RSSU5HX0FSUkFZIHR5cGUgcmVxdWlyZXMgYW4gYXJyYXkgdmFsdWUsIGdvdCAke3R5cGVvZiB2YWx1ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBjdXN0b20gY2xhaW0gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQ3VzdG9tQ2xhaW1WYWxpZGF0aW9uVHlwZVByb3BlcnR5IHtcbiAgICAvLyBCdWlsZCB0aGUgY2xhaW0gbWF0Y2ggdmFsdWUgYmFzZWQgb24gb3BlcmF0b3IgYW5kIHZhbHVlIHR5cGVcbiAgICBsZXQgY2xhaW1NYXRjaFZhbHVlOiBDZm5SdW50aW1lLkNsYWltTWF0Y2hWYWx1ZVR5cGVQcm9wZXJ0eTtcbiAgICBpZiAodGhpcy52YWx1ZVR5cGUgPT09IEN1c3RvbUNsYWltVmFsdWVUeXBlLlNUUklORykge1xuICAgICAgLy8gU1RSSU5HIHR5cGUgYWx3YXlzIHVzZXMgbWF0Y2hWYWx1ZVN0cmluZyB3aXRoIEVRVUFMUyBvcGVyYXRvclxuICAgICAgY2xhaW1NYXRjaFZhbHVlID0ge1xuICAgICAgICBtYXRjaFZhbHVlU3RyaW5nOiB0aGlzLnZhbHVlIGFzIHN0cmluZyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNUUklOR19BUlJBWSB0eXBlOiBDT05UQUlOUyB1c2VzIG1hdGNoVmFsdWVTdHJpbmcsIENPTlRBSU5TX0FOWSB1c2VzIG1hdGNoVmFsdWVTdHJpbmdMaXN0XG4gICAgICBpZiAodGhpcy5vcGVyYXRvciA9PT0gQ3VzdG9tQ2xhaW1PcGVyYXRvci5DT05UQUlOUykge1xuICAgICAgICAvLyBDT05UQUlOUyByZXF1aXJlcyBhIHNpbmdsZSBzdHJpbmcgdmFsdWUgKGNoZWNrIGlmIGNsYWltIGFycmF5IGNvbnRhaW5zIHRoaXMgc3RyaW5nKVxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZhbHVlIGFzIHN0cmluZ1tdO1xuICAgICAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZXNbMF0pICYmIHZhbHVlcy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZENvbnRhaW5zT3BlcmF0b3JWYWx1ZUNvdW50JyxcbiAgICAgICAgICAgIGBDdXN0b20gY2xhaW0gJyR7dGhpcy5uYW1lfSc6IENPTlRBSU5TIG9wZXJhdG9yIHJlcXVpcmVzIGV4YWN0bHkgb25lIHZhbHVlLCBnb3QgJHt2YWx1ZXMubGVuZ3RofSB2YWx1ZXNgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY2xhaW1NYXRjaFZhbHVlID0ge1xuICAgICAgICAgIG1hdGNoVmFsdWVTdHJpbmc6IHZhbHVlc1swXSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENPTlRBSU5TX0FOWSB1c2VzIG1hdGNoVmFsdWVTdHJpbmdMaXN0XG4gICAgICAgIGNsYWltTWF0Y2hWYWx1ZSA9IHtcbiAgICAgICAgICBtYXRjaFZhbHVlU3RyaW5nTGlzdDogdGhpcy52YWx1ZSBhcyBzdHJpbmdbXSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5ib3VuZFRva2VuQ2xhaW1OYW1lOiB0aGlzLm5hbWUsXG4gICAgICBpbmJvdW5kVG9rZW5DbGFpbVZhbHVlVHlwZTogdGhpcy52YWx1ZVR5cGUsXG4gICAgICBhdXRob3JpemluZ0NsYWltTWF0Y2hWYWx1ZToge1xuICAgICAgICBjbGFpbU1hdGNoT3BlcmF0b3I6IHRoaXMub3BlcmF0b3IsXG4gICAgICAgIGNsYWltTWF0Y2hWYWx1ZTogY2xhaW1NYXRjaFZhbHVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -21,7 +21,7 @@ const errors_1 = require("aws-cdk-lib/core/lib/errors");
21
21
  * Provides static factory methods to create different authentication types.
22
22
  */
23
23
  class RuntimeAuthorizerConfiguration {
24
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.242.0-alpha.0" };
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.244.0-alpha.0" };
25
25
  /**
26
26
  * Use IAM authentication (default).
27
27
  * Requires AWS credentials to sign requests using SigV4.
@@ -44,7 +44,7 @@ class RuntimeAuthorizerConfiguration {
44
44
  */
45
45
  static usingJWT(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims) {
46
46
  if (!aws_cdk_lib_1.Token.isUnresolved(discoveryUrl) && !discoveryUrl.endsWith('/.well-known/openid-configuration')) {
47
- throw new errors_1.UnscopedValidationError('JWT discovery URL must end with /.well-known/openid-configuration');
47
+ throw new errors_1.UnscopedValidationError('InvalidJwtDiscoveryUrl', 'JWT discovery URL must end with /.well-known/openid-configuration');
48
48
  }
49
49
  return new JwtAuthorizerConfiguration(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims);
50
50
  }
@@ -75,7 +75,7 @@ class RuntimeAuthorizerConfiguration {
75
75
  */
76
76
  static usingOAuth(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims) {
77
77
  if (!aws_cdk_lib_1.Token.isUnresolved(discoveryUrl) && !discoveryUrl.endsWith('/.well-known/openid-configuration')) {
78
- throw new errors_1.UnscopedValidationError('OAuth discovery URL must end with /.well-known/openid-configuration');
78
+ throw new errors_1.UnscopedValidationError('InvalidOAuthDiscoveryUrl', 'OAuth discovery URL must end with /.well-known/openid-configuration');
79
79
  }
80
80
  return new OAuthAuthorizerConfiguration(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims);
81
81
  }
@@ -180,4 +180,4 @@ class OAuthAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
180
180
  };
181
181
  }
182
182
  }
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1hdXRob3JpemVyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydW50aW1lLWF1dGhvcml6ZXItY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFHcEMsd0RBQXNFO0FBR3RFOzs7R0FHRztBQUNILE1BQXNCLDhCQUE4Qjs7SUFDbEQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPLElBQUksMEJBQTBCLEVBQUUsQ0FBQztLQUN6QztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUNwQixZQUFvQixFQUNwQixjQUF5QixFQUN6QixlQUEwQixFQUMxQixhQUF3QixFQUN4QixZQUFtQztRQUVuQyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxNQUFNLElBQUksZ0NBQXVCLENBQUMsbUVBQW1FLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBQ0QsT0FBTyxJQUFJLDBCQUEwQixDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNuSDtJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUN4QixRQUFtQixFQUNuQixlQUFrQyxFQUNsQyxlQUEwQixFQUMxQixhQUF3QixFQUN4QixZQUFtQztRQUVuQyxPQUFPLElBQUksOEJBQThCLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ3BIO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQ3RCLFlBQW9CLEVBQ3BCLFFBQWdCLEVBQ2hC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QUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQzlIO1NBQ0YsQ0FBQztLQUNIO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sNEJBQTZCLFNBQVEsOEJBQThCO0lBRXBEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFMbkIsWUFDbUIsWUFBb0IsRUFDcEIsUUFBZ0IsRUFDaEIsZUFBMEIsRUFDMUIsYUFBd0IsRUFDeEIsWUFBbUM7UUFFcEQsS0FBSyxFQUFFLENBQUM7UUFOUyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFXO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFXO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtLQUdyRDtJQUVNLE9BQU87UUFDWixxREFBcUQ7UUFDckQsT0FBTztZQUNMLG1CQUFtQixFQUFFO2dCQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDOUg7U0FDRixDQUFDO0tBQ0g7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5SdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHR5cGUgeyBJVXNlclBvb2wsIElVc2VyUG9vbENsaWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgUnVudGltZUN1c3RvbUNsYWltIH0gZnJvbSAnLi9jdXN0b20tY2xhaW0nO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHJ1bnRpbWUgYXV0aG9yaXplciBjb25maWd1cmF0aW9ucy5cbiAqIFByb3ZpZGVzIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgdG8gY3JlYXRlIGRpZmZlcmVudCBhdXRoZW50aWNhdGlvbiB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBVc2UgSUFNIGF1dGhlbnRpY2F0aW9uIChkZWZhdWx0KS5cbiAgICogUmVxdWlyZXMgQVdTIGNyZWRlbnRpYWxzIHRvIHNpZ24gcmVxdWVzdHMgdXNpbmcgU2lnVjQuXG4gICAqXG4gICAqIEByZXR1cm5zIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiBmb3IgSUFNIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nSUFNKCk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBJYW1BdXRob3JpemVyQ29uZmlndXJhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBjdXN0b20gSldUIGF1dGhlbnRpY2F0aW9uLlxuICAgKiBWYWxpZGF0ZXMgSldUIHRva2VucyBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgT0lEQyBwcm92aWRlci5cbiAgICpcbiAgICogQHBhcmFtIGRpc2NvdmVyeVVybCBUaGUgT0lEQyBkaXNjb3ZlcnkgVVJMIChtdXN0IGVuZCB3aXRoIC8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbilcbiAgICogQHBhcmFtIGFsbG93ZWRDbGllbnRzIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgY2xpZW50IElEc1xuICAgKiBAcGFyYW0gYWxsb3dlZEF1ZGllbmNlIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgYXVkaWVuY2VzXG4gICAqIEBwYXJhbSBhbGxvd2VkU2NvcGVzIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgc2NvcGVzXG4gICAqIEBwYXJhbSBjdXN0b21DbGFpbXMgT3B0aW9uYWwgYXJyYXkgb2YgY3VzdG9tIGNsYWltIHZhbGlkYXRpb25zXG4gICAqIEByZXR1cm5zIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiBmb3IgSldUIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nSldUKFxuICAgIGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIGFsbG93ZWRDbGllbnRzPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApOiBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGRpc2NvdmVyeVVybCkgJiYgIWRpc2NvdmVyeVVybC5lbmRzV2l0aCgnLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJykpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcignSldUIGRpc2NvdmVyeSBVUkwgbXVzdCBlbmQgd2l0aCAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBKd3RBdXRob3JpemVyQ29uZmlndXJhdGlvbihkaXNjb3ZlcnlVcmwsIGFsbG93ZWRDbGllbnRzLCBhbGxvd2VkQXVkaWVuY2UsIGFsbG93ZWRTY29wZXMsIGN1c3RvbUNsYWltcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIEFXUyBDb2duaXRvIFVzZXIgUG9vbCBhdXRoZW50aWNhdGlvbi5cbiAgICogVmFsaWRhdGVzIENvZ25pdG8taXNzdWVkIEpXVCB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyUG9vbCBUaGUgQ29nbml0byBVc2VyIFBvb2xcbiAgICogQHBhcmFtIHVzZXJQb29sQ2xpZW50cyBUaGUgQ29nbml0byBVc2VyIFBvb2wgQXBwIENsaWVudHNcbiAgICogQHBhcmFtIGFsbG93ZWRBdWRpZW5jZSBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIGF1ZGllbmNlc1xuICAgKiBAcGFyYW0gYWxsb3dlZFNjb3BlcyBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIHNjb3Blc1xuICAgKiBAcGFyYW0gY3VzdG9tQ2xhaW1zIE9wdGlvbmFsIGFycmF5IG9mIGN1c3RvbSBjbGFpbSB2YWxpZGF0aW9uc1xuICAgKiBAcmV0dXJucyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZm9yIENvZ25pdG8gYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdDb2duaXRvKFxuICAgIHVzZXJQb29sOiBJVXNlclBvb2wsXG4gICAgdXNlclBvb2xDbGllbnRzOiBJVXNlclBvb2xDbGllbnRbXSxcbiAgICBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb2duaXRvQXV0aG9yaXplckNvbmZpZ3VyYXRpb24odXNlclBvb2wsIHVzZXJQb29sQ2xpZW50cywgYWxsb3dlZEF1ZGllbmNlLCBhbGxvd2VkU2NvcGVzLCBjdXN0b21DbGFpbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBPQXV0aCAyLjAgYXV0aGVudGljYXRpb24uXG4gICAqIFN1cHBvcnRzIHZhcmlvdXMgT0F1dGggcHJvdmlkZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gZGlzY292ZXJ5VXJsIFRoZSBPSURDIGRpc2NvdmVyeSBVUkwgKG11c3QgZW5kIHdpdGggLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uKVxuICAgKiBAcGFyYW0gY2xpZW50SWQgT0F1dGggY2xpZW50IElEXG4gICAqIEBwYXJhbSBhbGxvd2VkQXVkaWVuY2UgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBhdWRpZW5jZXNcbiAgICogQHBhcmFtIGFsbG93ZWRTY29wZXMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBzY29wZXNcbiAgICogQHBhcmFtIGN1c3RvbUNsYWltcyBPcHRpb25hbCBhcnJheSBvZiBjdXN0b20gY2xhaW0gdmFsaWRhdGlvbnNcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBPQXV0aCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ09BdXRoKFxuICAgIGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApOiBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGRpc2NvdmVyeVVybCkgJiYgIWRpc2NvdmVyeVVybC5lbmRzV2l0aCgnLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJykpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcignT0F1dGggZGlzY292ZXJ5IFVSTCBtdXN0IGVuZCB3aXRoIC8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE9BdXRoQXV0aG9yaXplckNvbmZpZ3VyYXRpb24oZGlzY292ZXJ5VXJsLCBjbGllbnRJZCwgYWxsb3dlZEF1ZGllbmNlLCBhbGxvd2VkU2NvcGVzLCBjdXN0b21DbGFpbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYXV0aG9yaXplciBjb25maWd1cmF0aW9uIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQXV0aG9yaXplckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJQU0gYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIElhbUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgcHVibGljIF9yZW5kZXIoKTogdW5kZWZpbmVkIHtcbiAgICAvLyBGb3IgSUFNIGF1dGhlbnRpY2F0aW9uLCByZXR1cm4gdW5kZWZpbmVkIHRvIGxldCBBV1Mgc2VydmljZSB1c2UgZGVmYXVsdFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBKV1QgYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIEp3dEF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNjb3ZlcnlVcmw6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRDbGllbnRzPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BdXRob3JpemVyQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tSnd0QXV0aG9yaXplcjoge1xuICAgICAgICBkaXNjb3ZlcnlVcmw6IHRoaXMuZGlzY292ZXJ5VXJsLFxuICAgICAgICBhbGxvd2VkQ2xpZW50czogdGhpcy5hbGxvd2VkQ2xpZW50cyxcbiAgICAgICAgYWxsb3dlZEF1ZGllbmNlOiB0aGlzLmFsbG93ZWRBdWRpZW5jZSxcbiAgICAgICAgYWxsb3dlZFNjb3BlczogdGhpcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zICYmIHRoaXMuY3VzdG9tQ2xhaW1zLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbUNsYWltcy5tYXAoY2xhaW0gPT4gY2xhaW0uX3JlbmRlcigpKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvZ25pdG8gYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIENvZ25pdG9BdXRob3JpemVyQ29uZmlndXJhdGlvbiBleHRlbmRzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclBvb2w6IElVc2VyUG9vbCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50czogSVVzZXJQb29sQ2xpZW50W10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BdXRob3JpemVyQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICBjb25zdCBkaXNjb3ZlcnlVcmwgPSBgaHR0cHM6Ly9jb2duaXRvLWlkcC4ke3RoaXMudXNlclBvb2wuZW52LnJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke3RoaXMudXNlclBvb2wudXNlclBvb2xJZH0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gO1xuXG4gICAgLy8gVXNlIEpXVCBmb3JtYXQgZm9yIENvZ25pdG8gKENsb3VkRm9ybWF0aW9uIGV4cGVjdHMgSldUIGZvcm1hdClcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tSnd0QXV0aG9yaXplcjoge1xuICAgICAgICBkaXNjb3ZlcnlVcmw6IGRpc2NvdmVyeVVybCxcbiAgICAgICAgYWxsb3dlZENsaWVudHM6IHRoaXMudXNlclBvb2xDbGllbnRzLm1hcChjbGllbnQgPT4gY2xpZW50LnVzZXJQb29sQ2xpZW50SWQpLFxuICAgICAgICBhbGxvd2VkQXVkaWVuY2U6IHRoaXMuYWxsb3dlZEF1ZGllbmNlLFxuICAgICAgICBhbGxvd2VkU2NvcGVzOiB0aGlzLmFsbG93ZWRTY29wZXMsXG4gICAgICAgIGN1c3RvbUNsYWltczogdGhpcy5jdXN0b21DbGFpbXMgJiYgdGhpcy5jdXN0b21DbGFpbXMubGVuZ3RoID4gMCA/IHRoaXMuY3VzdG9tQ2xhaW1zLm1hcChjbGFpbSA9PiBjbGFpbS5fcmVuZGVyKCkpIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogT0F1dGggYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIE9BdXRoQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRBdWRpZW5jZT86IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5SdW50aW1lLkF1dGhvcml6ZXJDb25maWd1cmF0aW9uUHJvcGVydHkge1xuICAgIC8vIE9BdXRoIGlzIGFsc28gcmVwcmVzZW50ZWQgYXMgSldUIGluIENsb3VkRm9ybWF0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUp3dEF1dGhvcml6ZXI6IHtcbiAgICAgICAgZGlzY292ZXJ5VXJsOiB0aGlzLmRpc2NvdmVyeVVybCxcbiAgICAgICAgYWxsb3dlZENsaWVudHM6IFt0aGlzLmNsaWVudElkXSxcbiAgICAgICAgYWxsb3dlZEF1ZGllbmNlOiB0aGlzLmFsbG93ZWRBdWRpZW5jZSxcbiAgICAgICAgYWxsb3dlZFNjb3BlczogdGhpcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zICYmIHRoaXMuY3VzdG9tQ2xhaW1zLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbUNsYWltcy5tYXAoY2xhaW0gPT4gY2xhaW0uX3JlbmRlcigpKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1hdXRob3JpemVyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydW50aW1lLWF1dGhvcml6ZXItY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFHcEMsd0RBQXNFO0FBR3RFOzs7R0FHRztBQUNILE1BQXNCLDhCQUE4Qjs7SUFDbEQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPLElBQUksMEJBQTBCLEVBQUUsQ0FBQztLQUN6QztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUNwQixZQUFvQixFQUNwQixjQUF5QixFQUN6QixlQUEwQixFQUMxQixhQUF3QixFQUN4QixZQUFtQztRQUVuQyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxNQUFNLElBQUksZ0NBQXVCLENBQUMsd0JBQXdCLEVBQUUsbUVBQW1FLENBQUMsQ0FBQztRQUNuSSxDQUFDO1FBQ0QsT0FBTyxJQUFJLDBCQUEwQixDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNuSDtJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUN4QixRQUFtQixFQUNuQixlQUFrQyxFQUNsQyxlQUEwQixFQUMxQixhQUF3QixFQUN4QixZQUFtQztRQUVuQyxPQUFPLElBQUksOEJBQThCLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ3BIO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQ3RCLFlBQW9CLEVBQ3BC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WSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQzlIO1NBQ0YsQ0FBQztLQUNIO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sNEJBQTZCLFNBQVEsOEJBQThCO0lBRXBEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFMbkIsWUFDbUIsWUFBb0IsRUFDcEIsUUFBZ0IsRUFDaEIsZUFBMEIsRUFDMUIsYUFBd0IsRUFDeEIsWUFBbUM7UUFFcEQsS0FBSyxFQUFFLENBQUM7UUFOUyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFXO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFXO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtLQUdyRDtJQUVNLE9BQU87UUFDWixxREFBcUQ7UUFDckQsT0FBTztZQUNMLG1CQUFtQixFQUFFO2dCQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDOUg7U0FDRixDQUFDO0tBQ0g7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5SdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHR5cGUgeyBJVXNlclBvb2wsIElVc2VyUG9vbENsaWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgUnVudGltZUN1c3RvbUNsYWltIH0gZnJvbSAnLi9jdXN0b20tY2xhaW0nO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHJ1bnRpbWUgYXV0aG9yaXplciBjb25maWd1cmF0aW9ucy5cbiAqIFByb3ZpZGVzIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgdG8gY3JlYXRlIGRpZmZlcmVudCBhdXRoZW50aWNhdGlvbiB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBVc2UgSUFNIGF1dGhlbnRpY2F0aW9uIChkZWZhdWx0KS5cbiAgICogUmVxdWlyZXMgQVdTIGNyZWRlbnRpYWxzIHRvIHNpZ24gcmVxdWVzdHMgdXNpbmcgU2lnVjQuXG4gICAqXG4gICAqIEByZXR1cm5zIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiBmb3IgSUFNIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nSUFNKCk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBJYW1BdXRob3JpemVyQ29uZmlndXJhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBjdXN0b20gSldUIGF1dGhlbnRpY2F0aW9uLlxuICAgKiBWYWxpZGF0ZXMgSldUIHRva2VucyBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgT0lEQyBwcm92aWRlci5cbiAgICpcbiAgICogQHBhcmFtIGRpc2NvdmVyeVVybCBUaGUgT0lEQyBkaXNjb3ZlcnkgVVJMIChtdXN0IGVuZCB3aXRoIC8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbilcbiAgICogQHBhcmFtIGFsbG93ZWRDbGllbnRzIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgY2xpZW50IElEc1xuICAgKiBAcGFyYW0gYWxsb3dlZEF1ZGllbmNlIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgYXVkaWVuY2VzXG4gICAqIEBwYXJhbSBhbGxvd2VkU2NvcGVzIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgc2NvcGVzXG4gICAqIEBwYXJhbSBjdXN0b21DbGFpbXMgT3B0aW9uYWwgYXJyYXkgb2YgY3VzdG9tIGNsYWltIHZhbGlkYXRpb25zXG4gICAqIEByZXR1cm5zIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiBmb3IgSldUIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nSldUKFxuICAgIGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIGFsbG93ZWRDbGllbnRzPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApOiBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGRpc2NvdmVyeVVybCkgJiYgIWRpc2NvdmVyeVVybC5lbmRzV2l0aCgnLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJykpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcignSW52YWxpZEp3dERpc2NvdmVyeVVybCcsICdKV1QgZGlzY292ZXJ5IFVSTCBtdXN0IGVuZCB3aXRoIC8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEp3dEF1dGhvcml6ZXJDb25maWd1cmF0aW9uKGRpc2NvdmVyeVVybCwgYWxsb3dlZENsaWVudHMsIGFsbG93ZWRBdWRpZW5jZSwgYWxsb3dlZFNjb3BlcywgY3VzdG9tQ2xhaW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgQVdTIENvZ25pdG8gVXNlciBQb29sIGF1dGhlbnRpY2F0aW9uLlxuICAgKiBWYWxpZGF0ZXMgQ29nbml0by1pc3N1ZWQgSldUIHRva2Vucy5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJQb29sIFRoZSBDb2duaXRvIFVzZXIgUG9vbFxuICAgKiBAcGFyYW0gdXNlclBvb2xDbGllbnRzIFRoZSBDb2duaXRvIFVzZXIgUG9vbCBBcHAgQ2xpZW50c1xuICAgKiBAcGFyYW0gYWxsb3dlZEF1ZGllbmNlIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgYXVkaWVuY2VzXG4gICAqIEBwYXJhbSBhbGxvd2VkU2NvcGVzIE9wdGlvbmFsIGFycmF5IG9mIGFsbG93ZWQgc2NvcGVzXG4gICAqIEBwYXJhbSBjdXN0b21DbGFpbXMgT3B0aW9uYWwgYXJyYXkgb2YgY3VzdG9tIGNsYWltIHZhbGlkYXRpb25zXG4gICAqIEByZXR1cm5zIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiBmb3IgQ29nbml0byBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ0NvZ25pdG8oXG4gICAgdXNlclBvb2w6IElVc2VyUG9vbCxcbiAgICB1c2VyUG9vbENsaWVudHM6IElVc2VyUG9vbENsaWVudFtdLFxuICAgIGFsbG93ZWRBdWRpZW5jZT86IHN0cmluZ1tdLFxuICAgIGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBjdXN0b21DbGFpbXM/OiBSdW50aW1lQ3VzdG9tQ2xhaW1bXSxcbiAgKTogUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IENvZ25pdG9BdXRob3JpemVyQ29uZmlndXJhdGlvbih1c2VyUG9vbCwgdXNlclBvb2xDbGllbnRzLCBhbGxvd2VkQXVkaWVuY2UsIGFsbG93ZWRTY29wZXMsIGN1c3RvbUNsYWltcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIE9BdXRoIDIuMCBhdXRoZW50aWNhdGlvbi5cbiAgICogU3VwcG9ydHMgdmFyaW91cyBPQXV0aCBwcm92aWRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBkaXNjb3ZlcnlVcmwgVGhlIE9JREMgZGlzY292ZXJ5IFVSTCAobXVzdCBlbmQgd2l0aCAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24pXG4gICAqIEBwYXJhbSBjbGllbnRJZCBPQXV0aCBjbGllbnQgSURcbiAgICogQHBhcmFtIGFsbG93ZWRBdWRpZW5jZSBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIGF1ZGllbmNlc1xuICAgKiBAcGFyYW0gYWxsb3dlZFNjb3BlcyBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIHNjb3Blc1xuICAgKiBAcGFyYW0gY3VzdG9tQ2xhaW1zIE9wdGlvbmFsIGFycmF5IG9mIGN1c3RvbSBjbGFpbSB2YWxpZGF0aW9uc1xuICAgKiBAcmV0dXJucyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZm9yIE9BdXRoIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nT0F1dGgoXG4gICAgZGlzY292ZXJ5VXJsOiBzdHJpbmcsXG4gICAgY2xpZW50SWQ6IHN0cmluZyxcbiAgICBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoZGlzY292ZXJ5VXJsKSAmJiAhZGlzY292ZXJ5VXJsLmVuZHNXaXRoKCcvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKCdJbnZhbGlkT0F1dGhEaXNjb3ZlcnlVcmwnLCAnT0F1dGggZGlzY292ZXJ5IFVSTCBtdXN0IGVuZCB3aXRoIC8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE9BdXRoQXV0aG9yaXplckNvbmZpZ3VyYXRpb24oZGlzY292ZXJ5VXJsLCBjbGllbnRJZCwgYWxsb3dlZEF1ZGllbmNlLCBhbGxvd2VkU2NvcGVzLCBjdXN0b21DbGFpbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYXV0aG9yaXplciBjb25maWd1cmF0aW9uIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQXV0aG9yaXplckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJQU0gYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIElhbUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgcHVibGljIF9yZW5kZXIoKTogdW5kZWZpbmVkIHtcbiAgICAvLyBGb3IgSUFNIGF1dGhlbnRpY2F0aW9uLCByZXR1cm4gdW5kZWZpbmVkIHRvIGxldCBBV1Mgc2VydmljZSB1c2UgZGVmYXVsdFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBKV1QgYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIEp3dEF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNjb3ZlcnlVcmw6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRDbGllbnRzPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BdXRob3JpemVyQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tSnd0QXV0aG9yaXplcjoge1xuICAgICAgICBkaXNjb3ZlcnlVcmw6IHRoaXMuZGlzY292ZXJ5VXJsLFxuICAgICAgICBhbGxvd2VkQ2xpZW50czogdGhpcy5hbGxvd2VkQ2xpZW50cyxcbiAgICAgICAgYWxsb3dlZEF1ZGllbmNlOiB0aGlzLmFsbG93ZWRBdWRpZW5jZSxcbiAgICAgICAgYWxsb3dlZFNjb3BlczogdGhpcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zICYmIHRoaXMuY3VzdG9tQ2xhaW1zLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbUNsYWltcy5tYXAoY2xhaW0gPT4gY2xhaW0uX3JlbmRlcigpKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvZ25pdG8gYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIENvZ25pdG9BdXRob3JpemVyQ29uZmlndXJhdGlvbiBleHRlbmRzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclBvb2w6IElVc2VyUG9vbCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50czogSVVzZXJQb29sQ2xpZW50W10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BdXRob3JpemVyQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICBjb25zdCBkaXNjb3ZlcnlVcmwgPSBgaHR0cHM6Ly9jb2duaXRvLWlkcC4ke3RoaXMudXNlclBvb2wuZW52LnJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke3RoaXMudXNlclBvb2wudXNlclBvb2xJZH0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gO1xuXG4gICAgLy8gVXNlIEpXVCBmb3JtYXQgZm9yIENvZ25pdG8gKENsb3VkRm9ybWF0aW9uIGV4cGVjdHMgSldUIGZvcm1hdClcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tSnd0QXV0aG9yaXplcjoge1xuICAgICAgICBkaXNjb3ZlcnlVcmw6IGRpc2NvdmVyeVVybCxcbiAgICAgICAgYWxsb3dlZENsaWVudHM6IHRoaXMudXNlclBvb2xDbGllbnRzLm1hcChjbGllbnQgPT4gY2xpZW50LnVzZXJQb29sQ2xpZW50SWQpLFxuICAgICAgICBhbGxvd2VkQXVkaWVuY2U6IHRoaXMuYWxsb3dlZEF1ZGllbmNlLFxuICAgICAgICBhbGxvd2VkU2NvcGVzOiB0aGlzLmFsbG93ZWRTY29wZXMsXG4gICAgICAgIGN1c3RvbUNsYWltczogdGhpcy5jdXN0b21DbGFpbXMgJiYgdGhpcy5jdXN0b21DbGFpbXMubGVuZ3RoID4gMCA/IHRoaXMuY3VzdG9tQ2xhaW1zLm1hcChjbGFpbSA9PiBjbGFpbS5fcmVuZGVyKCkpIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogT0F1dGggYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmNsYXNzIE9BdXRoQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRBdWRpZW5jZT86IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5SdW50aW1lLkF1dGhvcml6ZXJDb25maWd1cmF0aW9uUHJvcGVydHkge1xuICAgIC8vIE9BdXRoIGlzIGFsc28gcmVwcmVzZW50ZWQgYXMgSldUIGluIENsb3VkRm9ybWF0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUp3dEF1dGhvcml6ZXI6IHtcbiAgICAgICAgZGlzY292ZXJ5VXJsOiB0aGlzLmRpc2NvdmVyeVVybCxcbiAgICAgICAgYWxsb3dlZENsaWVudHM6IFt0aGlzLmNsaWVudElkXSxcbiAgICAgICAgYWxsb3dlZEF1ZGllbmNlOiB0aGlzLmFsbG93ZWRBdWRpZW5jZSxcbiAgICAgICAgYWxsb3dlZFNjb3BlczogdGhpcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zICYmIHRoaXMuY3VzdG9tQ2xhaW1zLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbUNsYWltcy5tYXAoY2xhaW0gPT4gY2xhaW0uX3JlbmRlcigpKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19