@rio-cloud/cdk-v2-constructs 9.0.0-alpha.4 → 9.0.0-alpha.7

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 (131) hide show
  1. package/.jsii +19 -19
  2. package/docs/AGENTS_DOCUMENTATION.md +213 -0
  3. package/lib/backup/backup-policy.d.ts +1 -1
  4. package/lib/backup/backup-policy.js +1 -1
  5. package/lib/certificate/cloud-front-certificate.d.ts +1 -1
  6. package/lib/certificate/cloud-front-certificate.js +4 -3
  7. package/lib/certificate/lambda/handler.cjs +21 -7
  8. package/lib/contributions/cop-frontend/cloudfront/contentSecurityPolicy.js +2 -2
  9. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.d.ts +1 -1
  10. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +3 -3
  11. package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.d.ts +4 -4
  12. package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.js +1 -1
  13. package/lib/contributions/smart-route/gitlab-runner/runner-roles.d.ts +1 -1
  14. package/lib/contributions/smart-route/gitlab-runner/runner-roles.js +1 -1
  15. package/lib/contributions/team-claid/aws-backup-monitoring/aws-backup-monitoring.js +2 -2
  16. package/lib/contributions/team-claid/aws-glue/view-table.d.ts +1 -1
  17. package/lib/contributions/team-claid/aws-glue/view-table.js +1 -1
  18. package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.d.ts +2 -2
  19. package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +2 -2
  20. package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.d.ts +1 -1
  21. package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +3 -3
  22. package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.d.ts +2 -2
  23. package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.js +1 -1
  24. package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.d.ts +1 -1
  25. package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.js +3 -3
  26. package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.d.ts +1 -1
  27. package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.js +2 -2
  28. package/lib/contributions/team-transport/datadog-synthetics/datadog-synthetics-test.js +4 -4
  29. package/lib/contributions/team-transport/pipeline/application-stage.d.ts +3 -3
  30. package/lib/contributions/team-transport/pipeline/application-stage.js +1 -1
  31. package/lib/contributions/team-transport/pipeline/build-project.d.ts +2 -2
  32. package/lib/contributions/team-transport/pipeline/build-project.js +1 -1
  33. package/lib/contributions/team-transport/pipeline/buildspecs.d.ts +1 -1
  34. package/lib/contributions/team-transport/pipeline/buildspecs.js +1 -1
  35. package/lib/contributions/team-transport/pipeline/datadog-monitors.d.ts +3 -3
  36. package/lib/contributions/team-transport/pipeline/datadog-monitors.js +1 -1
  37. package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.d.ts +1 -1
  38. package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.js +2 -5
  39. package/lib/contributions/team-transport/pipeline/pipeline-stack.d.ts +5 -5
  40. package/lib/contributions/team-transport/pipeline/pipeline-stack.js +3 -3
  41. package/lib/datadog/datadog-log-index-monitoring.d.ts +1 -1
  42. package/lib/datadog/datadog-log-index-monitoring.js +1 -1
  43. package/lib/datadog/datadog-monitor.d.ts +1 -1
  44. package/lib/datadog/datadog-monitor.js +1 -1
  45. package/lib/datadogv2/datadog-dashboard.js +2 -2
  46. package/lib/datadogv2/datadog-lambda-instrumentation.d.ts +2 -2
  47. package/lib/datadogv2/datadog-lambda-instrumentation.js +1 -1
  48. package/lib/datadogv2/datadog-log-index-monitoring.d.ts +1 -1
  49. package/lib/datadogv2/datadog-log-index-monitoring.js +1 -1
  50. package/lib/datadogv2/datadog-monitor.d.ts +1 -1
  51. package/lib/datadogv2/datadog-monitor.js +1 -1
  52. package/lib/datadogv2/datadog-notification.d.ts +1 -1
  53. package/lib/datadogv2/datadog-notification.js +1 -1
  54. package/lib/datadogv2/datadog-service-catalog-entry.js +2 -2
  55. package/lib/datadogv2/datadog-shared-secrets.js +2 -2
  56. package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +3 -1
  57. package/lib/datadogv2/service-catalog-custom-resource/on-create.cjs +3 -1
  58. package/lib/datadogv2/validate-lambda-environment.d.ts +1 -1
  59. package/lib/datadogv2/validate-lambda-environment.js +1 -1
  60. package/lib/ecr/docker-hub-pull-through-cache.d.ts +1 -1
  61. package/lib/ecr/docker-hub-pull-through-cache.js +1 -1
  62. package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +1 -1
  63. package/lib/fargate/datadog.d.ts +3 -3
  64. package/lib/fargate/datadog.js +1 -1
  65. package/lib/fargate/rio-fargate-service-blue-green-alpha.d.ts +1 -1
  66. package/lib/fargate/rio-fargate-service-blue-green-alpha.js +5 -5
  67. package/lib/fargate/rio-fargate-service.d.ts +1 -1
  68. package/lib/fargate/rio-fargate-service.js +1 -1
  69. package/lib/fargate/spring.d.ts +1 -1
  70. package/lib/fargate/spring.js +1 -1
  71. package/lib/iam/sonatype-oss-index-credentials.d.ts +2 -2
  72. package/lib/iam/sonatype-oss-index-credentials.js +1 -1
  73. package/lib/kafka/kafka-topic.d.ts +1 -1
  74. package/lib/kafka/kafka-topic.js +1 -1
  75. package/lib/kafka/rio-kafka-event-source.d.ts +2 -2
  76. package/lib/kafka/rio-kafka-event-source.js +1 -1
  77. package/lib/pipeline/delivery-performance-monitoring-override.d.ts +2 -2
  78. package/lib/pipeline/delivery-performance-monitoring-override.js +1 -1
  79. package/lib/pipeline/rio-backup-secrets-restore-stage.d.ts +1 -1
  80. package/lib/pipeline/rio-backup-secrets-restore-stage.js +4 -4
  81. package/lib/pipeline/rio-bitbucket-source-action.d.ts +2 -2
  82. package/lib/pipeline/rio-bitbucket-source-action.js +1 -1
  83. package/lib/pipeline/rio-pipeline-type.d.ts +1 -1
  84. package/lib/pipeline/rio-pipeline-type.js +1 -1
  85. package/lib/rio-landing-zone.d.ts +1 -1
  86. package/lib/rio-landing-zone.js +1 -1
  87. package/lib/rio-load-balancer.d.ts +1 -1
  88. package/lib/rio-load-balancer.js +1 -1
  89. package/lib/sbom-catalog/catalog-project.d.ts +1 -1
  90. package/lib/sbom-catalog/catalog-project.js +12 -9
  91. package/lib/sbom-catalog/lambda/handler.cjs +2 -1
  92. package/lib/ses/helper.js +2 -2
  93. package/lib/ses/ses-observability.js +2 -2
  94. package/lib/test/normalized-test-template.d.ts +1 -1
  95. package/lib/test/normalized-test-template.js +1 -1
  96. package/lib/toggle.d.ts +1 -1
  97. package/lib/toggle.js +2 -3
  98. package/lib/watchful/alb.d.ts +1 -1
  99. package/lib/watchful/alb.js +1 -1
  100. package/lib/watchful/aspect.d.ts +3 -3
  101. package/lib/watchful/aspect.js +1 -1
  102. package/lib/watchful/cloudfront.d.ts +2 -2
  103. package/lib/watchful/cloudfront.js +1 -1
  104. package/lib/watchful/datadog-log-alarm.d.ts +1 -1
  105. package/lib/watchful/datadog-log-alarm.js +2 -2
  106. package/lib/watchful/datadog-metric-alarm.d.ts +1 -1
  107. package/lib/watchful/datadog-metric-alarm.js +1 -3
  108. package/lib/watchful/docdb.d.ts +2 -2
  109. package/lib/watchful/docdb.js +1 -1
  110. package/lib/watchful/dynamodb.d.ts +2 -2
  111. package/lib/watchful/dynamodb.js +1 -1
  112. package/lib/watchful/ecs.d.ts +2 -2
  113. package/lib/watchful/ecs.js +1 -1
  114. package/lib/watchful/lambda.d.ts +2 -2
  115. package/lib/watchful/lambda.js +1 -1
  116. package/lib/watchful/metric-alarm.d.ts +1 -1
  117. package/lib/watchful/metric-alarm.js +1 -1
  118. package/lib/watchful/rds.d.ts +2 -2
  119. package/lib/watchful/rds.js +1 -1
  120. package/lib/watchful/targetgroup.d.ts +1 -1
  121. package/lib/watchful/targetgroup.js +1 -1
  122. package/lib/watchful/watchful.d.ts +11 -11
  123. package/lib/watchful/watchful.js +1 -1
  124. package/lib/watchfulv2/datadog-log-alarm.d.ts +2 -2
  125. package/lib/watchfulv2/datadog-log-alarm.js +2 -2
  126. package/lib/watchfulv2/datadog-metric-alarm.d.ts +2 -2
  127. package/lib/watchfulv2/datadog-metric-alarm.js +1 -3
  128. package/lib/watchfulv2/watchful.d.ts +4 -4
  129. package/lib/watchfulv2/watchful.js +1 -1
  130. package/package.json +2 -2
  131. package/version.json +1 -1
@@ -367,4 +367,4 @@ class FirelensSideCarValidator {
367
367
  return result;
368
368
  }
369
369
  }
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWZhcmdhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHlDQUF5QztBQUN6Qyw0Q0FBK0U7QUFDL0UscUNBQXFDO0FBQ3JDLHFDQUFrQztBQThEbEMsSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25COztPQUVHO0lBQ0gsNkNBQU0sQ0FBQTtBQUNSLENBQUMsRUFMVyxTQUFTLHlCQUFULFNBQVMsUUFLcEI7QUFvUUQsSUFBWSxrQkEwQlg7QUExQkQsV0FBWSxrQkFBa0I7SUFDNUI7OztPQUdHO0lBQ0gsNkVBQWEsQ0FBQTtJQUViOzs7Ozs7T0FNRztJQUNILG1GQUFnQixDQUFBO0lBRWhCOzs7T0FHRztJQUNILG1HQUF3QixDQUFBO0lBRXhCOztPQUVHO0lBQ0gsMkRBQUksQ0FBQTtBQUNOLENBQUMsRUExQlcsa0JBQWtCLGtDQUFsQixrQkFBa0IsUUEwQjdCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxVQUFVLENBQUMsU0FBUztJQXlDekQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNoRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBNUJGLHdDQUFtQyxHQUFhLEVBQUUsQ0FBQztRQUNuRCxnQ0FBMkIsR0FBRyxFQUFFLENBQUM7UUFDakMsNkNBQXdDLEdBQUcsR0FBRyxDQUFDO1FBQy9DLHNDQUFpQyxHQUFHLElBQUksQ0FBQztRQUN6QywwQ0FBcUMsR0FBRyxJQUFJLENBQUM7UUFDN0MsK0NBQTBDLEdBQUcsQ0FBQyxDQUFDLENBQUMs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IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgKiBhcyBlbGJ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ1NlcnZpY2VDYXRhbG9nRW50cnksIERhdGFkb2dTaGFyZWRTZWNyZXQgfSBmcm9tICcuLi9kYXRhZG9ndjInO1xuaW1wb3J0ICogYXMgZGF0YWRvZyBmcm9tICcuL2RhdGFkb2cnO1xuaW1wb3J0IHsgU3ByaW5nIH0gZnJvbSAnLi9zcHJpbmcnO1xuXG4vKipcbiAqIEZhcmdhdGUgVGFzayBEZWZpbml0aW9uIFByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhZ2Ugb2YgdGhlIHNlcnZpY2UsIGUuZy4gJ3Byb2QnLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE5hbWUgb2YgdGhlIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VydmljZSwgZS5nLiB0aGUgZ2l0IGhhc2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29tbWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJhbWV3b3JrcyBpbiB1c2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gZnJhbWV3b3Jrcy5cbiAgICovXG4gIHJlYWRvbmx5IGZyYW1ld29ya3M/OiBGcmFtZXdvcmtbXTtcblxuICAvKipcbiAgICogVGhlIFZQQyBvZiB0aGUgc2VydmljZSdzIGVjcy5DbHVzdGVyIGlmIG5vIGNsdXN0ZXIgaXMgZXhwbGljaXRseSBwYXNzZWQgYXMgcHJvcC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFRoZSBGYXJnYXRlIGNsdXN0ZXIgdG8gcnVuIHRoZSBzZXJ2aWNlIGluLlxuICAgKiBJZiBub3QgbnVsbCwgdGhlIGNsdXN0ZXIudnBjIE1VU1QgbWF0Y2ggdGhlIHZwYyBwcm92aWRlZCBhcyBkaXJlY3QgYXJndW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBDcmVhdGUgYSBuZXcgRmFyZ2F0ZSBjbHVzdGVyIHdpdGggZGVmYXVsdCBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyPzogZWNzLklDbHVzdGVyO1xuXG4gIC8qKlxuICAgKiBDb250YWluZXIgZGVmaW5pdGlvbiBvcHRpb25zIGxpa2UgaW1hZ2UsIGNwdSwgbWVtb3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbjogQ29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEZhcmdhdGUgVGFzayBEZWZpbml0aW9uIFByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBmYXJnYXRlT3B0aW9uczogRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIExvYWRiYWxhbmNlciBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyT3B0aW9ucz86IExvYWRCYWxhbmNlck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERhdGFkb2cgaW50ZWdyYXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWRvZ09wdGlvbnM/OiBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcztcbn1cblxuZXhwb3J0IGVudW0gRnJhbWV3b3JrIHtcbiAgLyoqXG4gICAqIFNwcmluZyBGcmFtZXdvcmssIFNwcmluZyBCb290LCBhbmQgU3ByaW5nIENsb3VkIEFXUy5cbiAgICovXG4gIFNQUklORyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJEZWZpbml0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdXNlZCB0byBzdGFydCBhIGNvbnRhaW5lci5cbiAgICpcbiAgICogVGhpcyBzdHJpbmcgaXMgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBEb2NrZXIgZGFlbW9uLlxuICAgKiBJbWFnZXMgaW4gdGhlIERvY2tlciBIdWIgcmVnaXN0cnkgYXJlIGF2YWlsYWJsZSBieSBkZWZhdWx0LlxuICAgKiBPdGhlciByZXBvc2l0b3JpZXMgYXJlIHNwZWNpZmllZCB3aXRoIGVpdGhlciByZXBvc2l0b3J5LXVybC9pbWFnZTp0YWcgb3IgcmVwb3NpdG9yeS11cmwvaW1hZ2VcXEBkaWdlc3QuXG4gICAqL1xuICByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogU29tZSBEYXRhZG9nIHNwZWNpZmljIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgc2V0LFxuICAgKiBiZWNhdXNlIHRoZXkgYXJlIHNldCBhdXRvbWF0aWNhbGx5IG9yIGNvbXB1dGVkIGZyb20gb3RoZXIgYXR0cmlidXRlcy5cbiAgICogVGhlc2UgYXJlOlxuICAgKiAqIEREX0VOVjogU2V0IHNhbWUgYXMgcHJvcCBzdGFnZVxuICAgKiAqIEREX1NFUlZJQ0U6IFNldCBzYW1lIGFzIHByb3Agc2VydmljZU5hbWVcbiAgICogKiBERF9WRVJTSU9OOiBTZXQgc2FtZSBhcyBwcm9wIHZlcnNpb25cbiAgICogKiBERF9UQUdTOiBTZXQgc2FtZSBhcyBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcyNhZGRpdGlvbmFsVGFnc1xuICAgKiAqIEREX0xPR1NfSU5KRUNUSU9OOiB0cnVlXG4gICAqIE90aGVyIEREXy1wcmVmaXhlZCB2YWlhYmxlIG1heSBiZSBhZGRlZCB0byB0aGlzIGxpc3QuXG4gICAqXG4gICAqIE90aGVyIEVudmlyb25tZW50IHZhcmlhYmxlcyBzZXQgYnkgZGVmYXVsdCBhcmUgb3ZlcndyaXR0ZW4gaWYgcGFzc2VkLlxuICAgKiBUaGVzZSBhcmU6XG4gICAqICogRERfU0VSVklDRV9NQVBQSU5HOiBkYXRhYmFzZTpmYXJnYXRlLXdlYi1hcHAtYXVyb3JhLGphdmEtYXdzLXNkazpmYXJnYXRlLXdlYi1hcHAtYXdzLXNkayxrYWZrYTpmYXJnYXRlLXdlYi1hcHAta2Fma2EsbXlzcWw6ZmFyZ2F0ZS13ZWItYXBwLWF1cm9yYVxuICAgKiAqIEREX1RSQUNFX1NBTVBMRV9SQVRFOiAxLjBcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIHNlY3JldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gc2VjcmV0IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IGVjcy5TZWNyZXQgfTtcblxuICAvKipcbiAgICogVGhlIGhlYWx0aCBjaGVjayBjb21tYW5kIGFuZCBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIEhlYWx0aCBjaGVjayBjb25maWd1cmF0aW9uIGZyb20gY29udGFpbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s/OiBlY3MuSGVhbHRoQ2hlY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjcHUgdW5pdHMgdXNlZCBieSB0aGUgdGFzay4gRm9yIHRhc2tzIHVzaW5nIHRoZSBGYXJnYXRlIGxhdW5jaCB0eXBlLFxuICAgKiB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCB5b3UgbXVzdCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzLFxuICAgKiB3aGljaCBkZXRlcm1pbmVzIHlvdXIgcmFuZ2Ugb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUgbWVtb3J5IHBhcmFtZXRlcjpcbiAgICpcbiAgICogMjU2ICguMjUgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogNTEyICgwLjUgR0IpLCAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQilcbiAgICpcbiAgICogNTEyICguNSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKVxuICAgKlxuICAgKiAxMDI0ICgxIHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQiksIDUxMjAgKDUgR0IpLCA2MTQ0ICg2IEdCKSwgNzE2OCAoNyBHQiksIDgxOTIgKDggR0IpXG4gICAqXG4gICAqIDIwNDggKDIgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogQmV0d2VlbiA0MDk2ICg0IEdCKSBhbmQgMTYzODQgKDE2IEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpXG4gICAqXG4gICAqIDQwOTYgKDQgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogQmV0d2VlbiA4MTkyICg4IEdCKSBhbmQgMzA3MjAgKDMwIEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgNTEyXG4gICAqL1xuICByZWFkb25seSBjcHU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCAoaW4gTWlCKSBvZiBtZW1vcnkgdXNlZCBieSB0aGUgdGFzay4gRm9yIHRhc2tzIHVzaW5nIHRoZSBGYXJnYXRlIGxhdW5jaCB0eXBlLFxuICAgKiB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCB5b3UgbXVzdCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzLCB3aGljaCBkZXRlcm1pbmVzIHlvdXIgcmFuZ2Ugb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUgY3B1IHBhcmFtZXRlcjpcbiAgICpcbiAgICogNTEyICgwLjUgR0IpLCAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogMjU2ICguMjUgdkNQVSlcbiAgICpcbiAgICogMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogNTEyICguNSB2Q1BVKVxuICAgKlxuICAgKiAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpLCA1MTIwICg1IEdCKSwgNjE0NCAoNiBHQiksIDcxNjggKDcgR0IpLCA4MTkyICg4IEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAxMDI0ICgxIHZDUFUpXG4gICAqXG4gICAqIEJldHdlZW4gNDA5NiAoNCBHQikgYW5kIDE2Mzg0ICgxNiBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAyMDQ4ICgyIHZDUFUpXG4gICAqXG4gICAqIEJldHdlZW4gODE5MiAoOCBHQikgYW5kIDMwNzIwICgzMCBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiA0MDk2ICg0IHZDUFUpXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMTAyNFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5TGltaXRNaUI6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVzaXJlZCBjb3VudCBvZiBydW5uaW5nIHRhc2tzXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBXaGVuIGNyZWF0aW5nIHRoZSBzZXJ2aWNlLCBkZWZhdWx0IGlzIDE7IHdoZW4gdXBkYXRpbmcgdGhlIHNlcnZpY2UsIGRlZmF1bHQgdXNlc1xuICAgKiB0aGUgY3VycmVudCB0YXNrIG51bWJlci5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2lyZWRDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB5b3VyIHRhc2sgZGVmaW5pdGlvbnMgYXJlIHJ1bm5pbmcgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBVc2luZyBlY3MuT3BlcmF0aW5nU3lzdGVtRmFtaWx5LkxJTlVYIGFuZCBlY3MuQ3B1QXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZVBsYXRmb3JtPzogZWNzLlJ1bnRpbWVQbGF0Zm9ybTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lclJ1bGUge1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM6IGVsYnYyLkxpc3RlbmVyQ29uZGl0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMaXN0ZW5lciBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXI6IGVsYnYyLklBcHBsaWNhdGlvbkxpc3RlbmVyO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBwYXRoIHBhdHRlcm5zIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBzdHJpbmcgaXMgMTI4IGNoYXJhY3RlcnMuXG4gICAqIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLlxuICAgKiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gICAqXG4gICAqIFVwZGF0ZSByZXF1aXJlczogTm8gaW50ZXJydXB0aW9uXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclJ1bGVzOiBMaXN0ZW5lclJ1bGVbXTtcblxuICAvKipcbiAgICogIEhlYWx0aCBjaGVjayBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s6IGVsYnYyLkhlYWx0aENoZWNrO1xuXG4gIC8qKlxuICAgKiAgSGVhbHRoIGNoZWNrIGdyYWNlIHBlcmlvZC5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrR3JhY2VQZXJpb2Q6IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgcGVyaW9kIGR1cmluZyB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBzZW5kcyBhIG5ld2x5IHJlZ2lzdGVyZWQgdGFyZ2V0IGEgbGluZWFybHkgaW5jcmVhc2luZyBzaGFyZSBvZiB0aGUgdHJhZmZpYyB0byB0aGUgdGFyZ2V0IGdyb3VwLlxuXG4gICAqVGhlIHJhbmdlIGlzIDMwLTkwMCBzZWNvbmRzICgxNSBtaW51dGVzKS5cblxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAqL1xuICByZWFkb25seSBzbG93U3RhcnQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSBmb3IgRWxhc3RpYyBMb2FkIEJhbGFuY2luZyB0byB3YWl0IGJlZm9yZSBkZXJlZ2lzdGVyaW5nIGEgdGFyZ2V0LlxuXG4gICAqIFRoZSByYW5nZSBpcyAwLTM2MDAgc2Vjb25kcy5cblxuICAgKiBAZGVmYXVsdFZhbHVlIDVcbiAgKi9cbiAgcmVhZG9ubHkgZGVyZWdpc3RyYXRpb25EZWxheT86IGNkay5EdXJhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgQ1BVIHVuaXRzIHRvIHJlc2VydmUgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSA2NFxuICAgKi9cbiAgcmVhZG9ubHkgY3B1PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IChpbiBNaUIpIG9mIG1lbW9yeSB0byBwcmVzZW50IHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIElmIHlvdXIgY29udGFpbmVyIGF0dGVtcHRzIHRvIGV4Y2VlZCB0aGUgYWxsb2NhdGVkIG1lbW9yeSwgdGhlIGNvbnRhaW5lclxuICAgKiBpcyB0ZXJtaW5hdGVkLlxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgbWVtb3J5TGltaXRNaUIgYW5kIG1lbW9yeVJlc2VydmF0aW9uTWlCIGlzIHJlcXVpcmVkIGZvciBub24tRmFyZ2F0ZSBzZXJ2aWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIDEyOFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5TGltaXRNaUI/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdmlydHVhbCBDUFUgdW5pdHMgdG8gYmUgcmVzZXJ2ZWQgZm9yIHRoZSBmaXJlbGVucyBsb2ctcm91dGVyIGNvbnRhaW5lciAoaS5lLiBhd3MtZm9yLWZsdWVudC1iaXQpLlxuICAgKlxuICAgKiBUaGlzIG9ubHkgYXBwbGllcyBmb3IgdGhlIEFXU19GSVJFX0xFTlMgbG9nZ2luZyBtb2RlLlxuICAgKiBTZXR0aW5nIGl0IGZvciBhbnkgb3RoZXIgbG9nZ2luZyBtb2RlIHdpbGwgY2F1c2UgYW4gZXhjZXB0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gNjRcbiAgICovXG4gIHJlYWRvbmx5IGF3c0ZpcmVMZW5zQ3B1PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIG1lbW9yeSAoaW4gTWlCKSByZXNlcnZlZCBmb3IgdGhlIGZpcmVsZW5zIGxvZy1yb3V0ZXIgY29udGFpbmVyIChpLmUuIGF3cy1mb3ItZmx1ZW50LWJpdCkuXG4gICAqXG4gICAqIFRoaXMgb25seSBhcHBsaWVzIGZvciB0aGUgQVdTX0ZJUkVfTEVOUyBsb2dnaW5nIG1vZGUuXG4gICAqIFNldHRpbmcgaXQgZm9yIGFueSBvdGhlciBsb2dnaW5nIG1vZGUgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSA2NFxuICAgKi9cbiAgcmVhZG9ubHkgYXdzRmlyZUxlbnNNZW1vcnlMaW1pdE1pQj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxvZ2dpbmcgbW9kZSBmb3IgdGhlIHNlcnZpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBVc2luZyB0aGUgRGF0YWRvZyBsb2cgZm9yd2FyZGVyIGxhbWJkYSBwcm92aWRlZCBieSB0aGUgZGF0YWRvZy1pbnRlZ3JhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdNb2RlRm9yU2VydmljZT86IERhdGFEb2dMb2dnaW5nTW9kZTtcblxuICAvKipcbiAgICogVGhlIGxvZ2dpbmcgbW9kZSBmb3IgdGhlIERhdGFkb2cgYWdlbnQgc2lkZWNhci5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIE5vIGxvZ3MgaW4gRGF0YWRvZywgQ2xvdWR3YXRjaCBvbmx5LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQ/OiBEYXRhRG9nTG9nZ2luZ01vZGU7XG5cbiAgLyoqXG4gICAqIEdFVCBlbmRwb2ludHMgdG8gaWdub3JlIGluIERhdGFkb2cncyBBUE0gb3ZlcnZpZXcuIFRoaXMgaXMgdXNlZnVsIHRvIGZpbHRlciBvdXQgYWxsIGhlYWx0aCBjaGVjayBjYWxscy5cblxuICAgICogQGRlZmF1bHRWYWx1ZSAtIE5vIGVuZHBvaW50cyBhcmUgaWdub3JlZC5cbiAgICAqL1xuICByZWFkb25seSBhcG1HZXRFbmRwb2ludHNUb0lnbm9yZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgaWYgdGhlIERhdGFkb2cgYWdlbnQgc2lkZWNhciBpcyBtYXJrZWQgYXMgZXNzZW50aWFsLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlY2FyRXNzZW50aWFsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgZG9ja2VyIGltYWdlIHRhZyBmb3IgZGF0YWRvZyBzaWRlY2FyXG4gICAqIEBkZWZhdWx0VmFsdWUgLSAnbGF0ZXN0J1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWRvZ1NpZGVjYXJUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW4geW91IHNldCB1cCBhIHJlc3RhcnQgcG9saWN5IGZvciBhIGNvbnRhaW5lciwgQW1hem9uIEVDUyBjYW4gcmVzdGFydCB0aGUgY29udGFpbmVyIHdpdGhvdXQgbmVlZGluZyB0byByZXBsYWNlIHRoZSB0YXNrXG4gICAqIEBkZWZhdWx0VmFsdWUgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVSZXN0YXJ0UG9saWN5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZXMgdG8gYmUgaWdub3JlZCBieSB0aGUgcmVzdGFydCBwb2xpY3lcbiAgICogQGRlZmF1bHRWYWx1ZSAtIFswXVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdGFydElnbm9yZWRFeGl0Q29kZXM/OiBudW1iZXJbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGFkZGl0aW9uYWwgdGFncywgd2hpY2ggYXJlIGFwcGVuZGVkIHRvIHRoZSBkZWZhdWx0cyxcbiAgICogV2hlbiB5b3UgZGVmaW5lIGN1c3RvbSB0YWdzIHdlIHdvdWxkIGJlIGdsYWQgaWYgeW91IGNvbnRhY3QgdXMuXG4gICAqIFdlIHdvdWxkIGxpa2UgdG8gbGVhcm4gYWJvdXQgeW91ciB1c2UgY2FzZXMuXG4gICAqXG4gICAqIERlZmF1bHQgdGFncyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgb3ZlcnJpZGRlbiFcbiAgICpcbiAgICogRGVmYXVsdHMgYXJlOlxuICAgKiAqIGVudjogU2V0IHRvIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMjc3RhZ2UgcHJvcFxuICAgKiAqIHNlcnZpY2U6IFNldCB0byBSaW9GYXJnYXRlU2VydmljZVByb3BzI3NlcnZpY2VOYW1lIHByb3BcbiAgICogKiB2ZXJzaW9uOiBTZXQgdG8gUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyN2ZXJzaW9uIHByb3BcbiAgICogKiBhY2NvdW50X2lkOiRcXHthY2NvdW50SURcXH1cbiAgICogKiBhY2NvdW50X25hbWU6JFxce2FjY291bnROYW1lXFx9XG4gICAqICogcmVnaW9uOiRcXHtBV1NSZWdpb25cXH1cbiAgICogKiB0ZWFtOiRcXHt0ZWFtTmFtZSBmcm9tIHNzbSBwYXJhbSAvY29uZmlnL3RlYW0vbmFtZVxcfVxuICAgKiAqIHRlYW1faWRlbnRpZmllcjokXFx7dGVhbUlkZW50aWZpZXIgZnJvbSBzc20gcGFyYW0gL2NvbmZpZy90ZWFtL2lkZW50aWZpZXJcXH1cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGVudW0gRGF0YURvZ0xvZ2dpbmdNb2RlIHtcbiAgLyoqXG4gICAqIEZvcndhcmQgbG9ncyBkaXJlY3RseSB0byBEYXRhZG9nIHVzaW5nIEFXUyBGaXJlTGVucyBhcyBsb2cgcm91dGVyLFxuICAgKiBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2Vjc19mYXJnYXRlLz90YWI9Zmx1ZW50Yml0YW5kZmlyZWxlbnMjbG9nLWNvbGxlY3Rpb24uXG4gICAqL1xuICBBV1NfRklSRV9MRU5TLFxuXG4gIC8qKlxuICAgKiBTdG9yZSBsb2dzIGluIEFXUyBDbG91ZHdhdGNoIGFuZCB1c2UgdGhlIFJJTyBjdXN0b21pemVkIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgZnJvbSB0aGUgbGVnYWN5XG4gICAqIGRhdGFkb2ctaW50ZWdyYXRpb24sIHRvIGZvcndhcmQgdGhlIGxvZ3MgdG8gRGF0YWRvZyxcbiAgICpcbiAgICogQHNlZSBodHRwczovL2JpdGJ1Y2tldC5jb2xsYWJvcmF0aW9uLW1hbi5jb20vcHJvamVjdHMvUklPREVWL3JlcG9zL2RhdGFkb2ctaW50ZWdyYXRpb24vYnJvd3NlXG4gICAqIEBkZXByZWNhdGVkIHVzZSBEQVRBRE9HX0ZPUldBUkRFUl9MQU1CREFcbiAgICovXG4gIEZPUldBUkRFUl9MQU1CREEsXG5cbiAgLyoqXG4gICAqIFN0b3JlIGxvZ3MgaW4gQVdTIENsb3Vkd2F0Y2ggYW5kIHVzZSB0aGUgRGF0YWRvZyBsb2cgZm9yd2FyZGVyIGxhbWJkYSB0byBmb3J3YXJkIHRoZSBsb2dzIHRvIERhdGFkb2csXG4gICAqIHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9pbnRlZ3JhdGlvbnMvZWNzX2ZhcmdhdGUvP3RhYj1sb2dkcml2ZXIjbG9nLWNvbGxlY3Rpb24uXG4gICAqL1xuICBEQVRBRE9HX0ZPUldBUkRFUl9MQU1CREEsXG5cbiAgLyoqXG4gICAqIE9ubHkgbG9nIHRvIEFXUyBDbG91ZHdhdGNoIHdpdGhvdXQgZm9yd2FyZGluZyB0aGUgbG9ncyB0byBEYXRhZG9nLlxuICAgKi9cbiAgTk9ORSxcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9waW5pb25hdGVkIEVDUyBGYXJnYXRlIHNlcnZpY2UgZm9yIFJJTyBhcHBsaWNhdGlvbnMuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgYnVuZGxlcyB0aGUgcGllY2VzIHRoYXQgbW9zdCBSSU8gYmFja2VuZCBzZXJ2aWNlcyBuZWVkOlxuICogYW4gRUNTIHRhc2sgZGVmaW5pdGlvbiwgdGhlIGFwcGxpY2F0aW9uIGNvbnRhaW5lciwgYSBEYXRhZG9nIHNpZGVjYXIsXG4gKiBvcHRpb25hbCBGaXJlTGVucyBsb2cgcm91dGluZywgb3B0aW9uYWwgQUxCIHRhcmdldCBncm91cCB3aXJpbmcsIGFuZCB0aGVcbiAqIEVDUyBGYXJnYXRlIHNlcnZpY2UgaXRzZWxmLlxuICpcbiAqIEl0IGFsc28gZGVyaXZlcyBEYXRhZG9nIHRhZ3MgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyBmcm9tIGBzdGFnZWAsXG4gKiBgc2VydmljZU5hbWVgLCBgdmVyc2lvbmAsIHRoZSBBV1MgYWNjb3VudCwgYW5kIHRoZSBzdGFuZGFyZCBSSU8gbGFuZGluZy16b25lXG4gKiBTU00gcGFyYW1ldGVycy4gRG8gbm90IHNldCBgRERfRU5WYCwgYEREX1NFUlZJQ0VgLCBgRERfVkVSU0lPTmAsIGBERF9UQUdTYCxcbiAqIG9yIGBERF9MT0dTX0lOSkVDVElPTmAgbWFudWFsbHkgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbnRhaW5lciBlbnZpcm9ubWVudC5cbiAqXG4gKiBVc2UgdGhpcyBjb25zdHJ1Y3Qgd2hlbiB5b3Ugd2FudCB0aGUgUklPIHBhdmVkIHJvYWQgZm9yIGEgd2ViLWZhY2luZyBvclxuICogc2VydmljZS1zdHlsZSBGYXJnYXRlIHdvcmtsb2FkIGFuZCB5b3Ugd2FudCB0aGUgZGVmYXVsdHMgZm9yIG9ic2VydmFiaWxpdHksXG4gKiBEYXRhZG9nIHNlcnZpY2UgY2F0YWxvZyByZWdpc3RyYXRpb24sIGFuZCBjb21tb24gQVdTIHdpcmluZyB0byBiZSBoYW5kbGVkXG4gKiBmb3IgeW91LlxuICogSWYgeW91IG5lZWQgYSBmdWxseSBjdXN0b20gRUNTIHNldHVwLCBvciBhIGRpZmZlcmVudCBkZXBsb3ltZW50IHN0cmF0ZWd5XG4gKiBzdWNoIGFzIGJsdWUvZ3JlZW4sIHVzZSBhIGxvd2VyLWxldmVsIGNvbnN0cnVjdCBvciB0aGUgYmx1ZS9ncmVlbiB2YXJpYW50XG4gKiBpbnN0ZWFkLlxuICpcbiAqIFRvIHVzZSBpdCwgcHJvdmlkZTpcbiAqIC0gYHN0YWdlYCwgYHNlcnZpY2VOYW1lYCwgYW5kIGB2ZXJzaW9uYCBmb3Igc2VydmljZSBpZGVudGl0eVxuICogLSBgdnBjYCBhbmQgb3B0aW9uYWxseSBhbiBleGlzdGluZyBgY2x1c3RlcmBcbiAqIC0gYGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uaW1hZ2VgIGZvciB0aGUgYXBwbGljYXRpb24gaW1hZ2VcbiAqIC0gYGZhcmdhdGVPcHRpb25zLmNwdWAgYW5kIGBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQmAgZm9yIHRhc2sgc2l6aW5nXG4gKiAtIG9wdGlvbmFsIGBkYXRhZG9nT3B0aW9uc2AsIGBmcmFtZXdvcmtzYCwgYW5kIGBsb2FkQmFsYW5jZXJPcHRpb25zYFxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c1xuICogY29uc3Qgc2VydmljZSA9IG5ldyBSaW9GYXJnYXRlU2VydmljZSh0aGlzLCAnU2VydmljZScsIHtcbiAqICAgc3RhZ2U6ICdwcm9kJyxcbiAqICAgc2VydmljZU5hbWU6ICdiaWxsaW5nLXZpZXcnLFxuICogICB2ZXJzaW9uOiBwcm9jZXNzLmVudi5HSVRfVkVSU0lPTiA/PyAnbG9jYWwnLFxuICogICB2cGM6IFJpb0xhbmRpbmdab25lLmdldERlZmF1bHRWcGModGhpcyksXG4gKiAgIGNvbnRhaW5lckRlZmluaXRpb25PcHRpb246IHtcbiAqICAgICBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlLmZyb21SZWdpc3RyeSgnZXhhbXBsZS9iaWxsaW5nLXZpZXc6bGF0ZXN0JyksXG4gKiAgIH0sXG4gKiAgIGZhcmdhdGVPcHRpb25zOiB7XG4gKiAgICAgY3B1OiA1MTIsXG4gKiAgICAgbWVtb3J5TGltaXRNaUI6IDEwMjQsXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUmlvRmFyZ2F0ZVNlcnZpY2UgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCBpbXBsZW1lbnRzIGVjMi5JQ29ubmVjdGFibGUge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERF9FTlZfREVOWV9MSVNUID0gWydERF9FTlYnLCAnRERfVEFHUycsICdERF9TRVJWSUNFJywgJ0REX1ZFUlNJT04nLCAnRERfTE9HU19JTkpFQ1RJT04nXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERF9UQUdfREVOWV9MSVNUID0gW1xuICAgICdlbnYnLFxuICAgICdzZXJ2aWNlJyxcbiAgICAndmVyc2lvbicsXG4gICAgJ2FjY291bnRfaWQnLFxuICAgICdhY2NvdW50X25hbWUnLFxuICAgICdyZWdpb24nLFxuICAgICd0ZWFtJyxcbiAgICAndGVhbV9pZGVudGlmaWVyJyxcbiAgXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfQVBNX0dFVF9FTkRQT0lOVFNfVE9fSUdOT1JFOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX0NQVSA9IDY0O1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX01FTU9SWV9MSU1JVF9NSUIgPSAxMjg7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfRVNTRU5USUFMID0gdHJ1ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfRU5BQkxFX1JFU1RBUlRfUE9MSUNZID0gdHJ1ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfUkVTVEFSVF9JR05PUkVEX0VYSVRfQ09ERVMgPSBbMF07XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX1NFUlZJQ0UgPSBEYXRhRG9nTG9nZ2luZ01vZGUuRk9SV0FSREVSX0xBTUJEQTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfREFUQURPR19TSURFQ0FSID0gRGF0YURvZ0xvZ2dpbmdNb2RlLk5PTkU7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9ERVJFR0lTVFJBVElPTl9ERUxBWSA9IGNkay5EdXJhdGlvbi5zZWNvbmRzKDUpO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfU0xPV19TVEFSVCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9UQUcgPSAnbGF0ZXN0JztcblxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HX1JPVVRFUl9DUFUgPSA2NDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xPR19ST1VURVJfTUVNT1JZX0xJTUlUX01JQiA9IDY0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgRklSRUxFTlNfQ09ORklHX0JVQ0tFVF9BUk4gPSAnYXJuOmF3czpzMzo6OjU3NzE0Njg5Nzc4NS1ldS13ZXN0LTEtZmlyZWxlbnMtY29uZmlndXJhdGlvbi1idWNrZXQnO1xuICBwcml2YXRlIHJlYWRvbmx5IEZJUkVMRU5TX0NPTkZJR19GSUxFX1BBVEggPSAnL3BhcnNlLWpzb24uY29uZic7XG5cbiAgcmVhZG9ubHkgc2VydmljZUNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uO1xuICByZWFkb25seSBkYXRhZG9nU2lkZUNhckNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uO1xuICByZWFkb25seSBsb2dSb3V0ZXJDb250YWluZXJEZWZpbml0aW9uPzogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IHRhc2tEZWZpbml0aW9uOiBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uO1xuXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnM7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IGVjcy5GYXJnYXRlU2VydmljZTtcbiAgcmVhZG9ubHkgdGFyZ2V0R3JvdXA6IGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBsb2FkQmFsYW5jZXJPcHRpb25zLFxuICAgICAgdnBjLFxuICAgICAgY2x1c3RlcixcbiAgICAgIGZhcmdhdGVPcHRpb25zLFxuICAgICAgZGF0YWRvZ09wdGlvbnMsXG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24sXG4gICAgICBzdGFnZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBmcmFtZXdvcmtzLFxuICAgIH0gPSBwcm9wcztcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKFxuICAgICAgbmV3IERlbnlMaXN0ZWRLZXlWYWxpZGF0b3IoXG4gICAgICAgIFJpb0ZhcmdhdGVTZXJ2aWNlLkREX0VOVl9ERU5ZX0xJU1QsXG4gICAgICAgIHByb3BzLmNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uZW52aXJvbm1lbnQsXG4gICAgICAgIGl0ID0+XG4gICAgICAgICAgYEVudmlyb25tZW50ICR7aXR9IGlzIG5vdCBhbGxvd2VkIHRvIGJlIHNldC4gVGhpcyB2YWx1ZSB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIGFjY291bnQgb3Igb3RoZXIgcHJvcGVydGllcy5gXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihcbiAgICAgIG5ldyBEZW55TGlzdGVkS2V5VmFsaWRhdG9yKFxuICAgICAgICBSaW9GYXJnYXRlU2VydmljZS5ERF9UQUdfREVOWV9MSVNULFxuICAgICAgICBwcm9wcy5kYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgICAgIGl0ID0+IGBUYWcgJHtpdH0gaXMgbm90IGFsbG93ZWQgdG8gYmUgc2V0LiBUaGlzIHZhbHVlIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgYWNjb3VudCBvciBvdGhlciBwcm9wZXJ0aWVzLmBcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IENsdXN0ZXJWcGNWYWxpZGF0b3IocHJvcHMudnBjLCBwcm9wcy5jbHVzdGVyKSk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihuZXcgRGF0YWRvZ1NpZGVDYXJWYWxpZGF0b3IocHJvcHMuZGF0YWRvZ09wdGlvbnMpKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBGaXJlbGVuc1NpZGVDYXJWYWxpZGF0b3IocHJvcHMuZGF0YWRvZ09wdGlvbnMpKTtcblxuICAgIGNvbnN0IGZhcmdhdGVDbHVzdGVyID1cbiAgICAgIGNsdXN0ZXIgPz9cbiAgICAgIG5ldyBlY3MuQ2x1c3Rlcih0aGlzLCAnQ2x1c3RlcicsIHtcbiAgICAgICAgdnBjOiB2cGMsXG4gICAgICB9KTtcbiAgICB0aGlzLnRhc2tEZWZpbml0aW9uID0gbmV3IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb24odGhpcywgJ1Rhc2tEZWZpbml0aW9uJywge1xuICAgICAgY3B1OiBmYXJnYXRlT3B0aW9ucy5jcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogZmFyZ2F0ZU9wdGlvbnMubWVtb3J5TGltaXRNaUIsXG4gICAgICBydW50aW1lUGxhdGZvcm06IHtcbiAgICAgICAgY3B1QXJjaGl0ZWN0dXJlOiBmYXJnYXRlT3B0aW9ucy5ydW50aW1lUGxhdGZvcm0/LmNwdUFyY2hpdGVjdHVyZSA/PyBlY3MuQ3B1QXJjaGl0ZWN0dXJlLlg4Nl82NCxcbiAgICAgICAgb3BlcmF0aW5nU3lzdGVtRmFtaWx5OiBmYXJnYXRlT3B0aW9ucy5ydW50aW1lUGxhdGZvcm0/Lm9wZXJhdGluZ1N5c3RlbUZhbWlseSA/PyBlY3MuT3BlcmF0aW5nU3lzdGVtRmFtaWx5LkxJTlVYLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBhY2NvdW50TmFtZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgJ0FjY291bnROYW1lJyxcbiAgICAgICcvY29uZmlnL2FjY291bnQvbmFtZSdcbiAgICApLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IHRlYW1OYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnVGVhbU5hbWUnLCAnL2NvbmZpZy90ZWFtL25hbWUnKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgJ1RlYW1JZGVudGlmaWVyJyxcbiAgICAgICcvY29uZmlnL3RlYW0vaWRlbnRpZmllcidcbiAgICApLnN0cmluZ1ZhbHVlO1xuXG4gICAgY29uc3QgZGF0YWRvZ1NlY3JldCA9IERhdGFkb2dTaGFyZWRTZWNyZXQuY3JlZGVudGlhbHNTZWNyZXQodGhpcyk7XG4gICAgY29uc3QgZGF0YWRvZ1NpdGUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldFZhbHVlKCdTaXRlJykudW5zYWZlVW53cmFwKCk7XG4gICAgY29uc3QgZGF0YWRvZ0FwaUtleSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0KCdBcGlLZXknKTtcblxuICAgIGNvbnN0IGRhdGFkb2dTaWRlY2FyQ3B1ID0gZGF0YWRvZ09wdGlvbnM/LmNwdSA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX0NQVTtcbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQiA9IGRhdGFkb2dPcHRpb25zPy5tZW1vcnlMaW1pdE1pQiA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX01FTU9SWV9MSU1JVF9NSUI7XG5cbiAgICBjb25zdCBsb2dnaW5nTW9kZUZvclNlcnZpY2UgPSBkYXRhZG9nT3B0aW9ucz8ubG9nZ2luZ01vZGVGb3JTZXJ2aWNlID8/IHRoaXMuREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX1NFUlZJQ0U7XG4gICAgY29uc3QgbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPVxuICAgICAgZGF0YWRvZ09wdGlvbnM/LmxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID8/IHRoaXMuREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX0RBVEFET0dfU0lERUNBUjtcbiAgICBjb25zdCBmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkID1cbiAgICAgIGxvZ2dpbmdNb2RlRm9yU2VydmljZSA9PT0gRGF0YURvZ0xvZ2dpbmdNb2RlLkFXU19GSVJFX0xFTlMgfHxcbiAgICAgIGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUztcblxuICAgIGNvbnN0IGZpcmVMZW5zU2lkZWNhckNwdSA9IGRhdGFkb2dPcHRpb25zPy5hd3NGaXJlTGVuc0NwdSA/PyB0aGlzLkRFRkFVTFRfTE9HX1JPVVRFUl9DUFU7XG4gICAgY29uc3QgZmlyZUxlbnNTaWRlY2FyTWVtb3J5TWlCID1cbiAgICAgIGRhdGFkb2dPcHRpb25zPy5hd3NGaXJlTGVuc01lbW9yeUxpbWl0TWlCID8/IHRoaXMuREVGQVVMVF9MT0dfUk9VVEVSX01FTU9SWV9MSU1JVF9NSUI7XG4gICAgY29uc3QgZGF0YWRvZ1NpZGVjYXJFc3NlbnRpYWwgPSBkYXRhZG9nT3B0aW9ucz8uZGF0YWRvZ1NpZGVjYXJFc3NlbnRpYWwgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9FU1NFTlRJQUw7XG4gICAgY29uc3QgZGF0YURvZ0VuYWJsZVJlc3RhcnRQb2xpY3kgPVxuICAgICAgZGF0YWRvZ09wdGlvbnM/LmVuYWJsZVJlc3RhcnRQb2xpY3kgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfRU5BQkxFX1JFU1RBUlRfUE9MSUNZO1xuXG4gICAgZnVuY3Rpb24gZ2V0UmVzdGFydElnbm9yZWRFeGl0Q29kZXMoXG4gICAgICBlbmFibGVSZXN0YXJ0UG9saWN5OiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICAgICAgcmVzdGFydElnbm9yZWRFeGl0Q29kZXM6IG51bWJlcltdIHwgdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdElnbm9yZWRFeGl0Q29kZXM6IG51bWJlcltdXG4gICAgKTogbnVtYmVyW10gfCB1bmRlZmluZWQge1xuICAgICAgaWYgKGVuYWJsZVJlc3RhcnRQb2xpY3kgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKGVuYWJsZVJlc3RhcnRQb2xpY3kgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHJlc3RhcnRJZ25vcmVkRXhpdENvZGVzID8/IFswXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0SWdub3JlZEV4aXRDb2RlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkYXRhRG9ncmVzdGFydElnbm9yZWRFeGl0Q29kZXMgPSBnZXRSZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyhcbiAgICAgIGRhdGFEb2dFbmFibGVSZXN0YXJ0UG9saWN5LFxuICAgICAgZGF0YWRvZ09wdGlvbnM/LnJlc3RhcnRJZ25vcmVkRXhpdENvZGVzLFxuICAgICAgdGhpcy5ERUZBVUxUX0RBVEFET0dfUkVTVEFSVF9JR05PUkVEX0VYSVRfQ09ERVNcbiAgICApO1xuXG4gICAgbGV0IHNlcnZpY2VDb250YWluZXJDcHVVbml0cztcbiAgICBsZXQgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCO1xuXG4gICAgaWYgKGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQpIHtcbiAgICAgIHNlcnZpY2VDb250YWluZXJDcHVVbml0cyA9IGZhcmdhdGVPcHRpb25zLmNwdSAtIGRhdGFkb2dTaWRlY2FyQ3B1IC0gZmlyZUxlbnNTaWRlY2FyQ3B1O1xuICAgICAgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCID1cbiAgICAgICAgZmFyZ2F0ZU9wdGlvbnMubWVtb3J5TGltaXRNaUIgLSBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQiAtIGZpcmVMZW5zU2lkZWNhck1lbW9yeU1pQjtcbiAgICAgIGRhdGFkb2cuYWRkRmlyZWxlbnNDb25maWdVcGxvYWRGcm9tUzNQZXJtaXNzaW9ucyh7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogdGhpcy5GSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMgPSBmYXJnYXRlT3B0aW9ucy5jcHUgLSBkYXRhZG9nU2lkZWNhckNwdTtcbiAgICAgIHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQiA9IGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCIC0gZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUI7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZUNvbnRhaW5lckRlZmluaXRpb24gPSB0aGlzLnRhc2tEZWZpbml0aW9uLmFkZENvbnRhaW5lcihzZXJ2aWNlTmFtZSwge1xuICAgICAgaW1hZ2U6IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uaW1hZ2UsXG4gICAgICBjcHU6IHNlcnZpY2VDb250YWluZXJDcHVVbml0cyxcbiAgICAgIG1lbW9yeUxpbWl0TWlCOiBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAuLi5kYXRhZG9nLmdldEZhcmdhdGVDb250YWluZXJFbnZpcm9ubWVudFZhcmlhYmxlcyh7XG4gICAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgICAgc3RhZ2UsXG4gICAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICBhY2NvdW50TmFtZSxcbiAgICAgICAgICB0ZWFtTmFtZSxcbiAgICAgICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5lbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgICBkb2NrZXJMYWJlbHM6IHtcbiAgICAgICAgLi4uZGF0YWRvZy5nZXRGYXJnYXRlRG9ja2VyTGFiZWxzKHsgc3RhZ2UsIHNlcnZpY2VOYW1lLCB2ZXJzaW9uIH0pLFxuICAgICAgfSxcbiAgICAgIGhlYWx0aENoZWNrOiBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmhlYWx0aENoZWNrLFxuICAgICAgbG9nZ2luZzogZGF0YWRvZy5zZXR1cExvZ2dpbmcoe1xuICAgICAgICBzY29wZSxcbiAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgIHRlYW1OYW1lLFxuICAgICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgICAgc3RhZ2UsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBkYXRhZG9nQXBpS2V5LFxuICAgICAgICBkYXRhZG9nTG9nZ2luZ01vZGU6IGxvZ2dpbmdNb2RlRm9yU2VydmljZSxcbiAgICAgICAgZGF0YWRvZ1NpdGUsXG4gICAgICAgIGNvbnRhaW5lclR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgIH0pLFxuICAgICAgc2VjcmV0czogY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5zZWNyZXRzLFxuICAgIH0pO1xuXG4gICAgaWYgKGZyYW1ld29ya3M/LmluY2x1ZGVzKEZyYW1ld29yay5TUFJJTkcpKSB7XG4gICAgICBTcHJpbmcuYWxsb3dQYXJhbWV0ZXJTdG9yZUFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHRoaXMsIHNlcnZpY2VOYW1lLCB0aGlzLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlKTtcbiAgICAgIFNwcmluZy5hbGxvd1NlY3JldHNNYW5hZ2VyQWNjZXNzRm9yU3ByaW5nQ2xvdWRBd3ModGhpcywgc2VydmljZU5hbWUsIHRoaXMudGFza0RlZmluaXRpb24udGFza1JvbGUpO1xuICAgIH1cblxuICAgIGlmIChmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24gPSBkYXRhZG9nLmFkZEZpcmVMZW5zTG9nUm91dGVyKHtcbiAgICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICAgIGNwdTogZmlyZUxlbnNTaWRlY2FyQ3B1LFxuICAgICAgICBtZW1vcnlMaW1pdE1pQjogZmlyZUxlbnNTaWRlY2FyTWVtb3J5TWlCLFxuICAgICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogdGhpcy5GSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTixcbiAgICAgICAgZmlyZWxlbnNDb25maWdGaWxlUGF0aDogdGhpcy5GSVJFTEVOU19DT05GSUdfRklMRV9QQVRILFxuICAgICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy50YXNrRGVmaW5pdGlvbi5leGVjdXRpb25Sb2xlPy5hZGRNYW5hZ2VkUG9saWN5KFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BbWF6b25FQ1NUYXNrRXhlY3V0aW9uUm9sZVBvbGljeScpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy50YXNrRGVmaW5pdGlvbi5leGVjdXRpb25Sb2xlKSB7XG4gICAgICBkYXRhZG9nU2VjcmV0LmdyYW50UmVhZCh0aGlzLnRhc2tEZWZpbml0aW9uLmV4ZWN1dGlvblJvbGUpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbiA9IGRhdGFkb2cuYWRkRGF0YWRvZ1NpZGVjYXIoe1xuICAgICAgc2NvcGUsXG4gICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgIGFjY291bnROYW1lLFxuICAgICAgdGVhbU5hbWUsXG4gICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgIHN0YWdlLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZGF0YWRvZ0FwaUtleSxcbiAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBsb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudCxcbiAgICAgIGFwbUdldFJlc291cmNlc1RvSWdub3JlOiBkYXRhZG9nT3B0aW9ucz8uYXBtR2V0RW5kcG9pbnRzVG9JZ25vcmUgPz8gdGhpcy5ERUZBVUxUX0FQTV9HRVRfRU5EUE9JTlRTX1RPX0lHTk9SRSxcbiAgICAgIGNwdTogZGF0YWRvZ1NpZGVjYXJDcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUIsXG4gICAgICBlc3NlbnRpYWw6IGRhdGFkb2dTaWRlY2FyRXNzZW50aWFsLFxuICAgICAgZW5hYmxlUmVzdGFydFBvbGljeTogZGF0YURvZ0VuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogZGF0YURvZ3Jlc3RhcnRJZ25vcmVkRXhpdENvZGVzLFxuICAgICAgY29udGFpbmVyVGFnOiBwcm9wcy5kYXRhZG9nT3B0aW9ucz8uZGF0YWRvZ1NpZGVjYXJUYWcgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9UQUcsIC8vIFRoZXNlIGFyZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsXG4gICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuXG4gICAgZGF0YWRvZy5lbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyh0aGlzKTtcblxuICAgIGNvbnN0IGxvYWRCYWxhbmNlck9wdGlvbnNGb3JGYXJnYXRlU2VydmljZSA9IGxvYWRCYWxhbmNlck9wdGlvbnNcbiAgICAgID8geyBoZWFsdGhDaGVja0dyYWNlUGVyaW9kOiBsb2FkQmFsYW5jZXJPcHRpb25zLmhlYWx0aENoZWNrR3JhY2VQZXJpb2QgfVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMuc2VydmljZSA9IG5ldyBlY3MuRmFyZ2F0ZVNlcnZpY2UodGhpcywgJ1NlcnZpY2UnLCB7XG4gICAgICBjbHVzdGVyOiBmYXJnYXRlQ2x1c3RlcixcbiAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgY2lyY3VpdEJyZWFrZXI6IHsgcm9sbGJhY2s6IHRydWUgfSxcbiAgICAgIG1heEhlYWx0aHlQZXJjZW50OiAyMDAsXG4gICAgICBtaW5IZWFsdGh5UGVyY2VudDogMTAwLFxuICAgICAgZGVzaXJlZENvdW50OiBmYXJnYXRlT3B0aW9ucz8uZGVzaXJlZENvdW50LFxuICAgICAgLi4ubG9hZEJhbGFuY2VyT3B0aW9uc0ZvckZhcmdhdGVTZXJ2aWNlLFxuICAgICAgcHJvcGFnYXRlVGFnczogZWNzLlByb3BhZ2F0ZWRUYWdTb3VyY2UuU0VSVklDRSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLnNlcnZpY2UuY29ubmVjdGlvbnM7XG5cbiAgICBpZiAobG9hZEJhbGFuY2VyT3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICBjb25zdCBjb250YWluZXJQb3J0ID0gNDQzO1xuICAgICAgdGhpcy5zZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbi5hZGRQb3J0TWFwcGluZ3Moe1xuICAgICAgICBjb250YWluZXJQb3J0OiBjb250YWluZXJQb3J0LFxuICAgICAgICBwcm90b2NvbDogZWNzLlByb3RvY29sLlRDUCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXJnZXRHcm91cCA9IG5ldyBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwKHRoaXMsICdUYXJnZXRHcm91cCcsIHtcbiAgICAgICAgdnBjOiB2cGMsXG4gICAgICAgIHBvcnQ6IGNvbnRhaW5lclBvcnQsXG4gICAgICAgIHByb3RvY29sOiBlbGJ2Mi5BcHBsaWNhdGlvblByb3RvY29sLkhUVFBTLFxuICAgICAgICB0YXJnZXRUeXBlOiBlbGJ2Mi5UYXJnZXRUeXBlLklQLFxuICAgICAgICB0YXJnZXRzOiBbdGhpcy5zZXJ2aWNlXSxcbiAgICAgICAgaGVhbHRoQ2hlY2s6IGxvYWRCYWxhbmNlck9wdGlvbnMuaGVhbHRoQ2hlY2ssXG4gICAgICAgIHNsb3dTdGFydDogcHJvcHMubG9hZEJhbGFuY2VyT3B0aW9ucz8uc2xvd1N0YXJ0ID8/IHRoaXMuREVGQVVMVF9TTE9XX1NUQVJULFxuICAgICAgICBkZXJlZ2lzdHJhdGlvbkRlbGF5OiBwcm9wcy5sb2FkQmFsYW5jZXJPcHRpb25zPy5kZXJlZ2lzdHJhdGlvbkRlbGF5ID8/IHRoaXMuREVGQVVMVF9ERVJFR0lTVFJBVElPTl9ERUxBWSxcbiAgICAgIH0pO1xuXG4gICAgICBsb2FkQmFsYW5jZXJPcHRpb25zLmxpc3RlbmVyUnVsZXMuZm9yRWFjaCgoeyBwcmlvcml0eSwgY29uZGl0aW9ucyB9KSA9PiB7XG4gICAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMubGlzdGVuZXIuYWRkVGFyZ2V0R3JvdXBzKGBQcmlvcml0eSR7cHJpb3JpdHl9TGlzdGVuZXJSdWxlYCwge1xuICAgICAgICAgIHRhcmdldEdyb3VwczogW3RoaXMudGFyZ2V0R3JvdXAgYXMgZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cF0sXG4gICAgICAgICAgcHJpb3JpdHk6IHByaW9yaXR5LFxuICAgICAgICAgIGNvbmRpdGlvbnM6IGNvbmRpdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV3IERhdGFkb2dTZXJ2aWNlQ2F0YWxvZ0VudHJ5KHRoaXMsICdEYXRhZG9nU2VydmljZUNhdGFsb2dFbnRyeScsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSxcbiAgICAgIGxhbmd1YWdlczogWydqYXZhJ10sXG4gICAgICBzZXJ2aWNlVHlwZTogJ3dlYicsXG4gICAgfSk7XG4gIH1cbn1cblxuY2xhc3MgRGVueUxpc3RlZEtleVZhbGlkYXRvciBpbXBsZW1lbnRzIGNvbnN0cnVjdHMuSVZhbGlkYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlbnlMaXN0OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlR2VuZXJhdG9yOiAoa2V5TmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcbiAgKSB7fVxuXG4gIHZhbGlkYXRlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuZGljdCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLmRlbnlMaXN0LmZvckVhY2goa2V5TmFtZSA9PiB7XG4gICAgICBpZiAodGhpcy5kaWN0ICYmIGtleU5hbWUgaW4gdGhpcy5kaWN0KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRoaXMubWVzc2FnZUdlbmVyYXRvcihrZXlOYW1lKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIENsdXN0ZXJWcGNWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2cGM6IGVjMi5JVnBjLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2x1c3Rlcj86IGVjcy5JQ2x1c3RlclxuICApIHt9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmNsdXN0ZXIgJiYgdGhpcy5jbHVzdGVyLnZwYy52cGNJZCAhPT0gdGhpcy52cGMudnBjSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICBgVGhlIFZQQyBwcm92aWRlZCBpbiB0aGUgY2x1c3RlciAoJHt0aGlzLmNsdXN0ZXIudnBjLm5vZGUuaWR9KSBNVVNUIG1hdGNoIHRoZSBWUEMgcHJvdmlkZWQgYXMgYXJndW1lbnQgKCR7dGhpcy52cGMubm9kZS5pZH0pLmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY2xhc3MgRGF0YWRvZ1NpZGVDYXJWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYXRhZG9nT3B0aW9ucz86IERhdGFkb2dJbnRlZ3JhdGlvblByb3BzKSB7fVxuICB2YWxpZGF0ZSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXRhZG9nT3B0aW9ucyAmJlxuICAgICAgdGhpcy5kYXRhZG9nT3B0aW9ucy5lbmFibGVSZXN0YXJ0UG9saWN5ID09PSBmYWxzZSAmJlxuICAgICAgdGhpcy5kYXRhZG9nT3B0aW9ucy5yZXN0YXJ0SWdub3JlZEV4aXRDb2Rlc1xuICAgICkge1xuICAgICAgcmVzdWx0LnB1c2goJ1Jlc3RhcnRJZ25vcmVkRXhpdENvZGVzIGNhbm5vdCBiZSBzcGVjaWZpZWQgaWYgZW5hYmxlUmVzdGFydFBvbGljeSBpcyBmYWxzZScpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIEZpcmVsZW5zU2lkZUNhclZhbGlkYXRvciBpbXBsZW1lbnRzIGNvbnN0cnVjdHMuSVZhbGlkYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRhdGFkb2dPcHRpb25zPzogRGF0YWRvZ0ludGVncmF0aW9uUHJvcHMpIHt9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGFkb2dPcHRpb25zKSB7XG4gICAgICBjb25zdCBpc0ZpcmVsZW5zVXNlZCA9XG4gICAgICAgIHRoaXMuZGF0YWRvZ09wdGlvbnMubG9nZ2luZ01vZGVGb3JTZXJ2aWNlID09IERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TIHx8XG4gICAgICAgIHRoaXMuZGF0YWRvZ09wdGlvbnMubG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPT0gRGF0YURvZ0xvZ2dpbmdNb2RlLkFXU19GSVJFX0xFTlM7XG4gICAgICBjb25zdCBpc0ZpcmVsZW5zQ29uZmlndXJlZCA9IHRoaXMuZGF0YWRvZ09wdGlvbnMuYXdzRmlyZUxlbnNDcHUgfHwgdGhpcy5kYXRhZG9nT3B0aW9ucy5hd3NGaXJlTGVuc01lbW9yeUxpbWl0TWlCO1xuXG4gICAgICBpZiAoIWlzRmlyZWxlbnNVc2VkICYmIGlzRmlyZWxlbnNDb25maWd1cmVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICdZb3UgY2Fubm90IG92ZXJyaWRlIHRoZSBjb250YWluZXIgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgZmlyZWxlbnMgaWYgaXQgaXMgbm90IHVzZWQgYXMgbG9nZ2luZyBtb2RlIGZvciBhbnkgY29udGFpbmVyJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWZhcmdhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHlDQUF5QztBQUN6Qyw0Q0FBK0U7QUFDL0UscUNBQXFDO0FBQ3JDLHFDQUFrQztBQThEbEMsSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25COztPQUVHO0lBQ0gsNkNBQU0sQ0FBQTtBQUNSLENBQUMsRUFMVyxTQUFTLHlCQUFULFNBQVMsUUFLcEI7QUFvUUQsSUFBWSxrQkEwQlg7QUExQkQsV0FBWSxrQkFBa0I7SUFDNUI7OztPQUdHO0lBQ0gsNkVBQWEsQ0FBQTtJQUViOzs7Ozs7T0FNRztJQUNILG1GQUFnQixDQUFBO0lBRWhCOzs7T0FHRztJQUNILG1HQUF3QixDQUFBO0lBRXhCOztPQUVHO0lBQ0gsMkRBQUksQ0FBQTtBQUNOLENBQUMsRUExQlcsa0JBQWtCLGtDQUFsQixrQkFBa0IsUUEwQjdCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxVQUFVLENBQUMsU0FBUztJQXlDekQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNoRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBNUJGLHdDQUFtQyxHQUFhLEVBQUUsQ0FBQztRQUNuRCxnQ0FBMkIsR0FBRyxFQUFFLENBQUM7UUFDakMsNkNBQXdDLEdBQUcsR0FBRyxDQUFDO1FBQy9DLHNDQUFpQyxHQUFHLElBQUksQ0FBQztRQUN6QywwQ0FBcUMsR0FBRyxJQUFJLENBQUM7UUFDN0MsK0NBQTBDLEdBQUcsQ0FBQyxDQUFDLENBQUMs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IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVjcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCAqIGFzIGVsYnYyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3NtJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEYXRhZG9nU2VydmljZUNhdGFsb2dFbnRyeSwgRGF0YWRvZ1NoYXJlZFNlY3JldCB9IGZyb20gJy4uL2RhdGFkb2d2Mic7XG5pbXBvcnQgKiBhcyBkYXRhZG9nIGZyb20gJy4vZGF0YWRvZyc7XG5pbXBvcnQgeyBTcHJpbmcgfSBmcm9tICcuL3NwcmluZyc7XG5cbi8qKlxuICogRmFyZ2F0ZSBUYXNrIERlZmluaXRpb24gUHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaW9GYXJnYXRlU2VydmljZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGFnZSBvZiB0aGUgc2VydmljZSwgZS5nLiAncHJvZCcuXG4gICAqL1xuICByZWFkb25seSBzdGFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgTmFtZSBvZiB0aGUgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJ2aWNlLCBlLmcuIHRoZSBnaXQgaGFzaCBvZiB0aGUgY29ycmVzcG9uZGluZyBjb21taXQuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmcmFtZXdvcmtzIGluIHVzZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBObyBmcmFtZXdvcmtzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJhbWV3b3Jrcz86IEZyYW1ld29ya1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIG9mIHRoZSBzZXJ2aWNlJ3MgZWNzLkNsdXN0ZXIgaWYgbm8gY2x1c3RlciBpcyBleHBsaWNpdGx5IHBhc3NlZCBhcyBwcm9wLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogVGhlIEZhcmdhdGUgY2x1c3RlciB0byBydW4gdGhlIHNlcnZpY2UgaW4uXG4gICAqIElmIG5vdCBudWxsLCB0aGUgY2x1c3Rlci52cGMgTVVTVCBtYXRjaCB0aGUgdnBjIHByb3ZpZGVkIGFzIGRpcmVjdCBhcmd1bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIENyZWF0ZSBhIG5ldyBGYXJnYXRlIGNsdXN0ZXIgd2l0aCBkZWZhdWx0IHByb3BlcnRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXI/OiBlY3MuSUNsdXN0ZXI7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBkZWZpbml0aW9uIG9wdGlvbnMgbGlrZSBpbWFnZSwgY3B1LCBtZW1vcnkuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uOiBDb250YWluZXJEZWZpbml0aW9uT3B0aW9ucztcblxuICAvKipcbiAgICogRmFyZ2F0ZSBUYXNrIERlZmluaXRpb24gUHJvcGVydGllcy5cbiAgICovXG4gIHJlYWRvbmx5IGZhcmdhdGVPcHRpb25zOiBGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcztcblxuICAvKipcbiAgICogTG9hZGJhbGFuY2VyIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJPcHRpb25zPzogTG9hZEJhbGFuY2VyT3B0aW9ucztcblxuICAvKipcbiAgICogRGF0YWRvZyBpbnRlZ3JhdGlvbiBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nT3B0aW9ucz86IERhdGFkb2dJbnRlZ3JhdGlvblByb3BzO1xufVxuXG5leHBvcnQgZW51bSBGcmFtZXdvcmsge1xuICAvKipcbiAgICogU3ByaW5nIEZyYW1ld29yaywgU3ByaW5nIEJvb3QsIGFuZCBTcHJpbmcgQ2xvdWQgQVdTLlxuICAgKi9cbiAgU1BSSU5HLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5lckRlZmluaXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB1c2VkIHRvIHN0YXJ0IGEgY29udGFpbmVyLlxuICAgKlxuICAgKiBUaGlzIHN0cmluZyBpcyBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIERvY2tlciBkYWVtb24uXG4gICAqIEltYWdlcyBpbiB0aGUgRG9ja2VyIEh1YiByZWdpc3RyeSBhcmUgYXZhaWxhYmxlIGJ5IGRlZmF1bHQuXG4gICAqIE90aGVyIHJlcG9zaXRvcmllcyBhcmUgc3BlY2lmaWVkIHdpdGggZWl0aGVyIHJlcG9zaXRvcnktdXJsL2ltYWdlOnRhZyBvciByZXBvc2l0b3J5LXVybC9pbWFnZVxcQGRpZ2VzdC5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBTb21lIERhdGFkb2cgc3BlY2lmaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBub3QgYWxsb3dlZCB0byBiZSBzZXQsXG4gICAqIGJlY2F1c2UgdGhleSBhcmUgc2V0IGF1dG9tYXRpY2FsbHkgb3IgY29tcHV0ZWQgZnJvbSBvdGhlciBhdHRyaWJ1dGVzLlxuICAgKiBUaGVzZSBhcmU6XG4gICAqICogRERfRU5WOiBTZXQgc2FtZSBhcyBwcm9wIHN0YWdlXG4gICAqICogRERfU0VSVklDRTogU2V0IHNhbWUgYXMgcHJvcCBzZXJ2aWNlTmFtZVxuICAgKiAqIEREX1ZFUlNJT046IFNldCBzYW1lIGFzIHByb3AgdmVyc2lvblxuICAgKiAqIEREX1RBR1M6IFNldCBzYW1lIGFzIERhdGFkb2dJbnRlZ3JhdGlvblByb3BzI2FkZGl0aW9uYWxUYWdzXG4gICAqICogRERfTE9HU19JTkpFQ1RJT046IHRydWVcbiAgICogT3RoZXIgRERfLXByZWZpeGVkIHZhaWFibGUgbWF5IGJlIGFkZGVkIHRvIHRoaXMgbGlzdC5cbiAgICpcbiAgICogT3RoZXIgRW52aXJvbm1lbnQgdmFyaWFibGVzIHNldCBieSBkZWZhdWx0IGFyZSBvdmVyd3JpdHRlbiBpZiBwYXNzZWQuXG4gICAqIFRoZXNlIGFyZTpcbiAgICogKiBERF9TRVJWSUNFX01BUFBJTkc6IGRhdGFiYXNlOmZhcmdhdGUtd2ViLWFwcC1hdXJvcmEsamF2YS1hd3Mtc2RrOmZhcmdhdGUtd2ViLWFwcC1hd3Mtc2RrLGthZmthOmZhcmdhdGUtd2ViLWFwcC1rYWZrYSxteXNxbDpmYXJnYXRlLXdlYi1hcHAtYXVyb3JhXG4gICAqICogRERfVFJBQ0VfU0FNUExFX1JBVEU6IDEuMFxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBObyBzZWNyZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0cz86IHsgW2tleTogc3RyaW5nXTogZWNzLlNlY3JldCB9O1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhbHRoIGNoZWNrIGNvbW1hbmQgYW5kIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gSGVhbHRoIGNoZWNrIGNvbmZpZ3VyYXRpb24gZnJvbSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVjaz86IGVjcy5IZWFsdGhDaGVjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNwdSB1bml0cyB1c2VkIGJ5IHRoZSB0YXNrLiBGb3IgdGFza3MgdXNpbmcgdGhlIEZhcmdhdGUgbGF1bmNoIHR5cGUsXG4gICAqIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQgYW5kIHlvdSBtdXN0IHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMsXG4gICAqIHdoaWNoIGRldGVybWluZXMgeW91ciByYW5nZSBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoZSBtZW1vcnkgcGFyYW1ldGVyOlxuICAgKlxuICAgKiAyNTYgKC4yNSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiA1MTIgKDAuNSBHQiksIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKVxuICAgKlxuICAgKiA1MTIgKC41IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpXG4gICAqXG4gICAqIDEwMjQgKDEgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSwgNTEyMCAoNSBHQiksIDYxNDQgKDYgR0IpLCA3MTY4ICg3IEdCKSwgODE5MiAoOCBHQilcbiAgICpcbiAgICogMjA0OCAoMiB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDQwOTYgKDQgR0IpIGFuZCAxNjM4NCAoMTYgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcbiAgICpcbiAgICogNDA5NiAoNCB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDgxOTIgKDggR0IpIGFuZCAzMDcyMCAoMzAgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSA1MTJcbiAgICovXG4gIHJlYWRvbmx5IGNwdTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IChpbiBNaUIpIG9mIG1lbW9yeSB1c2VkIGJ5IHRoZSB0YXNrLiBGb3IgdGFza3MgdXNpbmcgdGhlIEZhcmdhdGUgbGF1bmNoIHR5cGUsXG4gICAqIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQgYW5kIHlvdSBtdXN0IHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMsIHdoaWNoIGRldGVybWluZXMgeW91ciByYW5nZSBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoZSBjcHUgcGFyYW1ldGVyOlxuICAgKlxuICAgKiA1MTIgKDAuNSBHQiksIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAyNTYgKC4yNSB2Q1BVKVxuICAgKlxuICAgKiAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiA1MTIgKC41IHZDUFUpXG4gICAqXG4gICAqIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQiksIDUxMjAgKDUgR0IpLCA2MTQ0ICg2IEdCKSwgNzE2OCAoNyBHQiksIDgxOTIgKDggR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDEwMjQgKDEgdkNQVSlcbiAgICpcbiAgICogQmV0d2VlbiA0MDk2ICg0IEdCKSBhbmQgMTYzODQgKDE2IEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDIwNDggKDIgdkNQVSlcbiAgICpcbiAgICogQmV0d2VlbiA4MTkyICg4IEdCKSBhbmQgMzA3MjAgKDMwIEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDQwOTYgKDQgdkNQVSlcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAxMDI0XG4gICAqL1xuICByZWFkb25seSBtZW1vcnlMaW1pdE1pQjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZXNpcmVkIGNvdW50IG9mIHJ1bm5pbmcgdGFza3NcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIFdoZW4gY3JlYXRpbmcgdGhlIHNlcnZpY2UsIGRlZmF1bHQgaXMgMTsgd2hlbiB1cGRhdGluZyB0aGUgc2VydmljZSwgZGVmYXVsdCB1c2VzXG4gICAqIHRoZSBjdXJyZW50IHRhc2sgbnVtYmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzaXJlZENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IHlvdXIgdGFzayBkZWZpbml0aW9ucyBhcmUgcnVubmluZyBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIFVzaW5nIGVjcy5PcGVyYXRpbmdTeXN0ZW1GYW1pbHkuTElOVVggYW5kIGVjcy5DcHVBcmNoaXRlY3R1cmUuWDg2XzY0XG4gICAqL1xuICByZWFkb25seSBydW50aW1lUGxhdGZvcm0/OiBlY3MuUnVudGltZVBsYXRmb3JtO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyUnVsZSB7XG4gIHJlYWRvbmx5IHByaW9yaXR5OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgY29uZGl0aW9uczogZWxidjIuTGlzdGVuZXJDb25kaXRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2FkQmFsYW5jZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIExpc3RlbmVyIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lcjogZWxidjIuSUFwcGxpY2F0aW9uTGlzdGVuZXI7XG5cbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIHBhdGggcGF0dGVybnMgdG8gY29tcGFyZSBhZ2FpbnN0IHRoZSByZXF1ZXN0IFVSTC5cbiAgICogVGhlIG1heGltdW0gc2l6ZSBvZiBlYWNoIHN0cmluZyBpcyAxMjggY2hhcmFjdGVycy5cbiAgICogVGhlIGNvbXBhcmlzb24gaXMgY2FzZSBzZW5zaXRpdmUuXG4gICAqIFRoZSBmb2xsb3dpbmcgd2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkOiAqIChtYXRjaGVzIDAgb3IgbW9yZSBjaGFyYWN0ZXJzKSBhbmQgPyAobWF0Y2hlcyBleGFjdGx5IDEgY2hhcmFjdGVyKS5cbiAgICpcbiAgICogVXBkYXRlIHJlcXVpcmVzOiBObyBpbnRlcnJ1cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyUnVsZXM6IExpc3RlbmVyUnVsZVtdO1xuXG4gIC8qKlxuICAgKiAgSGVhbHRoIGNoZWNrIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVjazogZWxidjIuSGVhbHRoQ2hlY2s7XG5cbiAgLyoqXG4gICAqICBIZWFsdGggY2hlY2sgZ3JhY2UgcGVyaW9kLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZDogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBwZXJpb2QgZHVyaW5nIHdoaWNoIHRoZSBsb2FkIGJhbGFuY2VyIHNlbmRzIGEgbmV3bHkgcmVnaXN0ZXJlZCB0YXJnZXQgYSBsaW5lYXJseSBpbmNyZWFzaW5nIHNoYXJlIG9mIHRoZSB0cmFmZmljIHRvIHRoZSB0YXJnZXQgZ3JvdXAuXG5cbiAgICpUaGUgcmFuZ2UgaXMgMzAtOTAwIHNlY29uZHMgKDE1IG1pbnV0ZXMpLlxuXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICovXG4gIHJlYWRvbmx5IHNsb3dTdGFydD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIGZvciBFbGFzdGljIExvYWQgQmFsYW5jaW5nIHRvIHdhaXQgYmVmb3JlIGRlcmVnaXN0ZXJpbmcgYSB0YXJnZXQuXG5cbiAgICogVGhlIHJhbmdlIGlzIDAtMzYwMCBzZWNvbmRzLlxuXG4gICAqIEBkZWZhdWx0VmFsdWUgNVxuICAqL1xuICByZWFkb25seSBkZXJlZ2lzdHJhdGlvbkRlbGF5PzogY2RrLkR1cmF0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dJbnRlZ3JhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBDUFUgdW5pdHMgdG8gcmVzZXJ2ZSBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIDY0XG4gICAqL1xuICByZWFkb25seSBjcHU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgKGluIE1pQikgb2YgbWVtb3J5IHRvIHByZXNlbnQgdG8gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogSWYgeW91ciBjb250YWluZXIgYXR0ZW1wdHMgdG8gZXhjZWVkIHRoZSBhbGxvY2F0ZWQgbWVtb3J5LCB0aGUgY29udGFpbmVyXG4gICAqIGlzIHRlcm1pbmF0ZWQuXG4gICAqXG4gICAqIEF0IGxlYXN0IG9uZSBvZiBtZW1vcnlMaW1pdE1pQiBhbmQgbWVtb3J5UmVzZXJ2YXRpb25NaUIgaXMgcmVxdWlyZWQgZm9yIG5vbi1GYXJnYXRlIHNlcnZpY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gMTI4XG4gICAqL1xuICByZWFkb25seSBtZW1vcnlMaW1pdE1pQj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB2aXJ0dWFsIENQVSB1bml0cyB0byBiZSByZXNlcnZlZCBmb3IgdGhlIGZpcmVsZW5zIGxvZy1yb3V0ZXIgY29udGFpbmVyIChpLmUuIGF3cy1mb3ItZmx1ZW50LWJpdCkuXG4gICAqXG4gICAqIFRoaXMgb25seSBhcHBsaWVzIGZvciB0aGUgQVdTX0ZJUkVfTEVOUyBsb2dnaW5nIG1vZGUuXG4gICAqIFNldHRpbmcgaXQgZm9yIGFueSBvdGhlciBsb2dnaW5nIG1vZGUgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSA2NFxuICAgKi9cbiAgcmVhZG9ubHkgYXdzRmlyZUxlbnNDcHU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgbWVtb3J5IChpbiBNaUIpIHJlc2VydmVkIGZvciB0aGUgZmlyZWxlbnMgbG9nLXJvdXRlciBjb250YWluZXIgKGkuZS4gYXdzLWZvci1mbHVlbnQtYml0KS5cbiAgICpcbiAgICogVGhpcyBvbmx5IGFwcGxpZXMgZm9yIHRoZSBBV1NfRklSRV9MRU5TIGxvZ2dpbmcgbW9kZS5cbiAgICogU2V0dGluZyBpdCBmb3IgYW55IG90aGVyIGxvZ2dpbmcgbW9kZSB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIDY0XG4gICAqL1xuICByZWFkb25seSBhd3NGaXJlTGVuc01lbW9yeUxpbWl0TWlCPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nZ2luZyBtb2RlIGZvciB0aGUgc2VydmljZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIFVzaW5nIHRoZSBEYXRhZG9nIGxvZyBmb3J3YXJkZXIgbGFtYmRhIHByb3ZpZGVkIGJ5IHRoZSBkYXRhZG9nLWludGVncmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ01vZGVGb3JTZXJ2aWNlPzogRGF0YURvZ0xvZ2dpbmdNb2RlO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nZ2luZyBtb2RlIGZvciB0aGUgRGF0YWRvZyBhZ2VudCBzaWRlY2FyLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gbG9ncyBpbiBEYXRhZG9nLCBDbG91ZHdhdGNoIG9ubHkuXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudD86IERhdGFEb2dMb2dnaW5nTW9kZTtcblxuICAvKipcbiAgICogR0VUIGVuZHBvaW50cyB0byBpZ25vcmUgaW4gRGF0YWRvZydzIEFQTSBvdmVydmlldy4gVGhpcyBpcyB1c2VmdWwgdG8gZmlsdGVyIG91dCBhbGwgaGVhbHRoIGNoZWNrIGNhbGxzLlxuXG4gICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gZW5kcG9pbnRzIGFyZSBpZ25vcmVkLlxuICAgICovXG4gIHJlYWRvbmx5IGFwbUdldEVuZHBvaW50c1RvSWdub3JlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBpZiB0aGUgRGF0YWRvZyBhZ2VudCBzaWRlY2FyIGlzIG1hcmtlZCBhcyBlc3NlbnRpYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWRvZ1NpZGVjYXJFc3NlbnRpYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBkb2NrZXIgaW1hZ2UgdGFnIGZvciBkYXRhZG9nIHNpZGVjYXJcbiAgICogQGRlZmF1bHRWYWx1ZSAtICdsYXRlc3QnXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nU2lkZWNhclRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB5b3Ugc2V0IHVwIGEgcmVzdGFydCBwb2xpY3kgZm9yIGEgY29udGFpbmVyLCBBbWF6b24gRUNTIGNhbiByZXN0YXJ0IHRoZSBjb250YWluZXIgd2l0aG91dCBuZWVkaW5nIHRvIHJlcGxhY2UgdGhlIHRhc2tcbiAgICogQGRlZmF1bHRWYWx1ZSAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVJlc3RhcnRQb2xpY3k/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhpdCBjb2RlcyB0byBiZSBpZ25vcmVkIGJ5IHRoZSByZXN0YXJ0IHBvbGljeVxuICAgKiBAZGVmYXVsdFZhbHVlIC0gWzBdXG4gICAqL1xuICByZWFkb25seSByZXN0YXJ0SWdub3JlZEV4aXRDb2Rlcz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYWRkaXRpb25hbCB0YWdzLCB3aGljaCBhcmUgYXBwZW5kZWQgdG8gdGhlIGRlZmF1bHRzLFxuICAgKiBXaGVuIHlvdSBkZWZpbmUgY3VzdG9tIHRhZ3Mgd2Ugd291bGQgYmUgZ2xhZCBpZiB5b3UgY29udGFjdCB1cy5cbiAgICogV2Ugd291bGQgbGlrZSB0byBsZWFybiBhYm91dCB5b3VyIHVzZSBjYXNlcy5cbiAgICpcbiAgICogRGVmYXVsdCB0YWdzIGFyZSBub3QgYWxsb3dlZCB0byBiZSBvdmVycmlkZGVuIVxuICAgKlxuICAgKiBEZWZhdWx0cyBhcmU6XG4gICAqICogZW52OiBTZXQgdG8gUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyNzdGFnZSBwcm9wXG4gICAqICogc2VydmljZTogU2V0IHRvIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMjc2VydmljZU5hbWUgcHJvcFxuICAgKiAqIHZlcnNpb246IFNldCB0byBSaW9GYXJnYXRlU2VydmljZVByb3BzI3ZlcnNpb24gcHJvcFxuICAgKiAqIGFjY291bnRfaWQ6JFxce2FjY291bnRJRFxcfVxuICAgKiAqIGFjY291bnRfbmFtZTokXFx7YWNjb3VudE5hbWVcXH1cbiAgICogKiByZWdpb246JFxce0FXU1JlZ2lvblxcfVxuICAgKiAqIHRlYW06JFxce3RlYW1OYW1lIGZyb20gc3NtIHBhcmFtIC9jb25maWcvdGVhbS9uYW1lXFx9XG4gICAqICogdGVhbV9pZGVudGlmaWVyOiRcXHt0ZWFtSWRlbnRpZmllciBmcm9tIHNzbSBwYXJhbSAvY29uZmlnL3RlYW0vaWRlbnRpZmllclxcfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbFRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgZW51bSBEYXRhRG9nTG9nZ2luZ01vZGUge1xuICAvKipcbiAgICogRm9yd2FyZCBsb2dzIGRpcmVjdGx5IHRvIERhdGFkb2cgdXNpbmcgQVdTIEZpcmVMZW5zIGFzIGxvZyByb3V0ZXIsXG4gICAqIHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9pbnRlZ3JhdGlvbnMvZWNzX2ZhcmdhdGUvP3RhYj1mbHVlbnRiaXRhbmRmaXJlbGVucyNsb2ctY29sbGVjdGlvbi5cbiAgICovXG4gIEFXU19GSVJFX0xFTlMsXG5cbiAgLyoqXG4gICAqIFN0b3JlIGxvZ3MgaW4gQVdTIENsb3Vkd2F0Y2ggYW5kIHVzZSB0aGUgUklPIGN1c3RvbWl6ZWQgRGF0YWRvZyBsb2cgZm9yd2FyZGVyIGxhbWJkYSBmcm9tIHRoZSBsZWdhY3lcbiAgICogZGF0YWRvZy1pbnRlZ3JhdGlvbiwgdG8gZm9yd2FyZCB0aGUgbG9ncyB0byBEYXRhZG9nLFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYml0YnVja2V0LmNvbGxhYm9yYXRpb24tbWFuLmNvbS9wcm9qZWN0cy9SSU9ERVYvcmVwb3MvZGF0YWRvZy1pbnRlZ3JhdGlvbi9icm93c2VcbiAgICogQGRlcHJlY2F0ZWQgdXNlIERBVEFET0dfRk9SV0FSREVSX0xBTUJEQVxuICAgKi9cbiAgRk9SV0FSREVSX0xBTUJEQSxcblxuICAvKipcbiAgICogU3RvcmUgbG9ncyBpbiBBV1MgQ2xvdWR3YXRjaCBhbmQgdXNlIHRoZSBEYXRhZG9nIGxvZyBmb3J3YXJkZXIgbGFtYmRhIHRvIGZvcndhcmQgdGhlIGxvZ3MgdG8gRGF0YWRvZyxcbiAgICogc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9lY3NfZmFyZ2F0ZS8/dGFiPWxvZ2RyaXZlciNsb2ctY29sbGVjdGlvbi5cbiAgICovXG4gIERBVEFET0dfRk9SV0FSREVSX0xBTUJEQSxcblxuICAvKipcbiAgICogT25seSBsb2cgdG8gQVdTIENsb3Vkd2F0Y2ggd2l0aG91dCBmb3J3YXJkaW5nIHRoZSBsb2dzIHRvIERhdGFkb2cuXG4gICAqL1xuICBOT05FLFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gb3BpbmlvbmF0ZWQgRUNTIEZhcmdhdGUgc2VydmljZSBmb3IgUklPIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBidW5kbGVzIHRoZSBwaWVjZXMgdGhhdCBtb3N0IFJJTyBiYWNrZW5kIHNlcnZpY2VzIG5lZWQ6XG4gKiBhbiBFQ1MgdGFzayBkZWZpbml0aW9uLCB0aGUgYXBwbGljYXRpb24gY29udGFpbmVyLCBhIERhdGFkb2cgc2lkZWNhcixcbiAqIG9wdGlvbmFsIEZpcmVMZW5zIGxvZyByb3V0aW5nLCBvcHRpb25hbCBBTEIgdGFyZ2V0IGdyb3VwIHdpcmluZywgYW5kIHRoZVxuICogRUNTIEZhcmdhdGUgc2VydmljZSBpdHNlbGYuXG4gKlxuICogSXQgYWxzbyBkZXJpdmVzIERhdGFkb2cgdGFncyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gYHN0YWdlYCxcbiAqIGBzZXJ2aWNlTmFtZWAsIGB2ZXJzaW9uYCwgdGhlIEFXUyBhY2NvdW50LCBhbmQgdGhlIHN0YW5kYXJkIFJJTyBsYW5kaW5nLXpvbmVcbiAqIFNTTSBwYXJhbWV0ZXJzLiBEbyBub3Qgc2V0IGBERF9FTlZgLCBgRERfU0VSVklDRWAsIGBERF9WRVJTSU9OYCwgYEREX1RBR1NgLFxuICogb3IgYEREX0xPR1NfSU5KRUNUSU9OYCBtYW51YWxseSBpbiB0aGUgYXBwbGljYXRpb24gY29udGFpbmVyIGVudmlyb25tZW50LlxuICpcbiAqIFVzZSB0aGlzIGNvbnN0cnVjdCB3aGVuIHlvdSB3YW50IHRoZSBSSU8gcGF2ZWQgcm9hZCBmb3IgYSB3ZWItZmFjaW5nIG9yXG4gKiBzZXJ2aWNlLXN0eWxlIEZhcmdhdGUgd29ya2xvYWQgYW5kIHlvdSB3YW50IHRoZSBkZWZhdWx0cyBmb3Igb2JzZXJ2YWJpbGl0eSxcbiAqIERhdGFkb2cgc2VydmljZSBjYXRhbG9nIHJlZ2lzdHJhdGlvbiwgYW5kIGNvbW1vbiBBV1Mgd2lyaW5nIHRvIGJlIGhhbmRsZWRcbiAqIGZvciB5b3UuXG4gKiBJZiB5b3UgbmVlZCBhIGZ1bGx5IGN1c3RvbSBFQ1Mgc2V0dXAsIG9yIGEgZGlmZmVyZW50IGRlcGxveW1lbnQgc3RyYXRlZ3lcbiAqIHN1Y2ggYXMgYmx1ZS9ncmVlbiwgdXNlIGEgbG93ZXItbGV2ZWwgY29uc3RydWN0IG9yIHRoZSBibHVlL2dyZWVuIHZhcmlhbnRcbiAqIGluc3RlYWQuXG4gKlxuICogVG8gdXNlIGl0LCBwcm92aWRlOlxuICogLSBgc3RhZ2VgLCBgc2VydmljZU5hbWVgLCBhbmQgYHZlcnNpb25gIGZvciBzZXJ2aWNlIGlkZW50aXR5XG4gKiAtIGB2cGNgIGFuZCBvcHRpb25hbGx5IGFuIGV4aXN0aW5nIGBjbHVzdGVyYFxuICogLSBgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5pbWFnZWAgZm9yIHRoZSBhcHBsaWNhdGlvbiBpbWFnZVxuICogLSBgZmFyZ2F0ZU9wdGlvbnMuY3B1YCBhbmQgYGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCYCBmb3IgdGFzayBzaXppbmdcbiAqIC0gb3B0aW9uYWwgYGRhdGFkb2dPcHRpb25zYCwgYGZyYW1ld29ya3NgLCBhbmQgYGxvYWRCYWxhbmNlck9wdGlvbnNgXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBjb25zdCBzZXJ2aWNlID0gbmV3IFJpb0ZhcmdhdGVTZXJ2aWNlKHRoaXMsICdTZXJ2aWNlJywge1xuICogICBzdGFnZTogJ3Byb2QnLFxuICogICBzZXJ2aWNlTmFtZTogJ2JpbGxpbmctdmlldycsXG4gKiAgIHZlcnNpb246IHByb2Nlc3MuZW52LkdJVF9WRVJTSU9OID8/ICdsb2NhbCcsXG4gKiAgIHZwYzogUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdFZwYyh0aGlzKSxcbiAqICAgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbjoge1xuICogICAgIGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KCdleGFtcGxlL2JpbGxpbmctdmlldzpsYXRlc3QnKSxcbiAqICAgfSxcbiAqICAgZmFyZ2F0ZU9wdGlvbnM6IHtcbiAqICAgICBjcHU6IDUxMixcbiAqICAgICBtZW1vcnlMaW1pdE1pQjogMTAyNCxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSaW9GYXJnYXRlU2VydmljZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IGltcGxlbWVudHMgZWMyLklDb25uZWN0YWJsZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEREX0VOVl9ERU5ZX0xJU1QgPSBbJ0REX0VOVicsICdERF9UQUdTJywgJ0REX1NFUlZJQ0UnLCAnRERfVkVSU0lPTicsICdERF9MT0dTX0lOSkVDVElPTiddO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEREX1RBR19ERU5ZX0xJU1QgPSBbXG4gICAgJ2VudicsXG4gICAgJ3NlcnZpY2UnLFxuICAgICd2ZXJzaW9uJyxcbiAgICAnYWNjb3VudF9pZCcsXG4gICAgJ2FjY291bnRfbmFtZScsXG4gICAgJ3JlZ2lvbicsXG4gICAgJ3RlYW0nLFxuICAgICd0ZWFtX2lkZW50aWZpZXInLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9BUE1fR0VUX0VORFBPSU5UU19UT19JR05PUkU6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfQ1BVID0gNjQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfTUVNT1JZX0xJTUlUX01JQiA9IDEyODtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9FU1NFTlRJQUwgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19FTkFCTEVfUkVTVEFSVF9QT0xJQ1kgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19SRVNUQVJUX0lHTk9SRURfRVhJVF9DT0RFUyA9IFswXTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfU0VSVklDRSA9IERhdGFEb2dMb2dnaW5nTW9kZS5GT1JXQVJERVJfTEFNQkRBO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HR0lOR19NT0RFX0ZPUl9EQVRBRE9HX1NJREVDQVIgPSBEYXRhRG9nTG9nZ2luZ01vZGUuTk9ORTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RFUkVHSVNUUkFUSU9OX0RFTEFZID0gY2RrLkR1cmF0aW9uLnNlY29uZHMoNSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9TTE9XX1NUQVJUID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX1RBRyA9ICdsYXRlc3QnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MT0dfUk9VVEVSX0NQVSA9IDY0O1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HX1JPVVRFUl9NRU1PUllfTElNSVRfTUlCID0gNjQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBGSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTiA9ICdhcm46YXdzOnMzOjo6NTc3MTQ2ODk3Nzg1LWV1LXdlc3QtMS1maXJlbGVucy1jb25maWd1cmF0aW9uLWJ1Y2tldCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgRklSRUxFTlNfQ09ORklHX0ZJTEVfUEFUSCA9ICcvcGFyc2UtanNvbi5jb25mJztcblxuICByZWFkb25seSBzZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IGxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24/OiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgdGFza0RlZmluaXRpb246IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb247XG5cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcbiAgcmVhZG9ubHkgc2VydmljZTogZWNzLkZhcmdhdGVTZXJ2aWNlO1xuICByZWFkb25seSB0YXJnZXRHcm91cDogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9GYXJnYXRlU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMsXG4gICAgICB2cGMsXG4gICAgICBjbHVzdGVyLFxuICAgICAgZmFyZ2F0ZU9wdGlvbnMsXG4gICAgICBkYXRhZG9nT3B0aW9ucyxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbixcbiAgICAgIHN0YWdlLFxuICAgICAgdmVyc2lvbixcbiAgICAgIGZyYW1ld29ya3MsXG4gICAgfSA9IHByb3BzO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24oXG4gICAgICBuZXcgRGVueUxpc3RlZEtleVZhbGlkYXRvcihcbiAgICAgICAgUmlvRmFyZ2F0ZVNlcnZpY2UuRERfRU5WX0RFTllfTElTVCxcbiAgICAgICAgcHJvcHMuY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5lbnZpcm9ubWVudCxcbiAgICAgICAgaXQgPT5cbiAgICAgICAgICBgRW52aXJvbm1lbnQgJHtpdH0gaXMgbm90IGFsbG93ZWQgdG8gYmUgc2V0LiBUaGlzIHZhbHVlIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgYWNjb3VudCBvciBvdGhlciBwcm9wZXJ0aWVzLmBcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKFxuICAgICAgbmV3IERlbnlMaXN0ZWRLZXlWYWxpZGF0b3IoXG4gICAgICAgIFJpb0ZhcmdhdGVTZXJ2aWNlLkREX1RBR19ERU5ZX0xJU1QsXG4gICAgICAgIHByb3BzLmRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgICAgaXQgPT4gYFRhZyAke2l0fSBpcyBub3QgYWxsb3dlZCB0byBiZSBzZXQuIFRoaXMgdmFsdWUgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBhY2NvdW50IG9yIG90aGVyIHByb3BlcnRpZXMuYFxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihuZXcgQ2x1c3RlclZwY1ZhbGlkYXRvcihwcm9wcy52cGMsIHByb3BzLmNsdXN0ZXIpKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBEYXRhZG9nU2lkZUNhclZhbGlkYXRvcihwcm9wcy5kYXRhZG9nT3B0aW9ucykpO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IEZpcmVsZW5zU2lkZUNhclZhbGlkYXRvcihwcm9wcy5kYXRhZG9nT3B0aW9ucykpO1xuXG4gICAgY29uc3QgZmFyZ2F0ZUNsdXN0ZXIgPVxuICAgICAgY2x1c3RlciA/P1xuICAgICAgbmV3IGVjcy5DbHVzdGVyKHRoaXMsICdDbHVzdGVyJywge1xuICAgICAgICB2cGM6IHZwYyxcbiAgICAgIH0pO1xuICAgIHRoaXMudGFza0RlZmluaXRpb24gPSBuZXcgZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvbih0aGlzLCAnVGFza0RlZmluaXRpb24nLCB7XG4gICAgICBjcHU6IGZhcmdhdGVPcHRpb25zLmNwdSxcbiAgICAgIG1lbW9yeUxpbWl0TWlCOiBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQixcbiAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICBjcHVBcmNoaXRlY3R1cmU6IGZhcmdhdGVPcHRpb25zLnJ1bnRpbWVQbGF0Zm9ybT8uY3B1QXJjaGl0ZWN0dXJlID8/IGVjcy5DcHVBcmNoaXRlY3R1cmUuWDg2XzY0LFxuICAgICAgICBvcGVyYXRpbmdTeXN0ZW1GYW1pbHk6IGZhcmdhdGVPcHRpb25zLnJ1bnRpbWVQbGF0Zm9ybT8ub3BlcmF0aW5nU3lzdGVtRmFtaWx5ID8/IGVjcy5PcGVyYXRpbmdTeXN0ZW1GYW1pbHkuTElOVVgsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZShcbiAgICAgIHRoaXMsXG4gICAgICAnQWNjb3VudE5hbWUnLFxuICAgICAgJy9jb25maWcvYWNjb3VudC9uYW1lJ1xuICAgICkuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgdGVhbU5hbWUgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdUZWFtTmFtZScsICcvY29uZmlnL3RlYW0vbmFtZScpLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZShcbiAgICAgIHRoaXMsXG4gICAgICAnVGVhbUlkZW50aWZpZXInLFxuICAgICAgJy9jb25maWcvdGVhbS9pZGVudGlmaWVyJ1xuICAgICkuc3RyaW5nVmFsdWU7XG5cbiAgICBjb25zdCBkYXRhZG9nU2VjcmV0ID0gRGF0YWRvZ1NoYXJlZFNlY3JldC5jcmVkZW50aWFsc1NlY3JldCh0aGlzKTtcbiAgICBjb25zdCBkYXRhZG9nU2l0ZSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0VmFsdWUoJ1NpdGUnKS51bnNhZmVVbndyYXAoKTtcbiAgICBjb25zdCBkYXRhZG9nQXBpS2V5ID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXQoJ0FwaUtleScpO1xuXG4gICAgY29uc3QgZGF0YWRvZ1NpZGVjYXJDcHUgPSBkYXRhZG9nT3B0aW9ucz8uY3B1ID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfQ1BVO1xuICAgIGNvbnN0IGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCID0gZGF0YWRvZ09wdGlvbnM/Lm1lbW9yeUxpbWl0TWlCID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfTUVNT1JZX0xJTUlUX01JQjtcblxuICAgIGNvbnN0IGxvZ2dpbmdNb2RlRm9yU2VydmljZSA9IGRhdGFkb2dPcHRpb25zPy5sb2dnaW5nTW9kZUZvclNlcnZpY2UgPz8gdGhpcy5ERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfU0VSVklDRTtcbiAgICBjb25zdCBsb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudCA9XG4gICAgICBkYXRhZG9nT3B0aW9ucz8ubG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPz8gdGhpcy5ERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfREFUQURPR19TSURFQ0FSO1xuICAgIGNvbnN0IGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQgPVxuICAgICAgbG9nZ2luZ01vZGVGb3JTZXJ2aWNlID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUyB8fFxuICAgICAgbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPT09IERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TO1xuXG4gICAgY29uc3QgZmlyZUxlbnNTaWRlY2FyQ3B1ID0gZGF0YWRvZ09wdGlvbnM/LmF3c0ZpcmVMZW5zQ3B1ID8/IHRoaXMuREVGQVVMVF9MT0dfUk9VVEVSX0NQVTtcbiAgICBjb25zdCBmaXJlTGVuc1NpZGVjYXJNZW1vcnlNaUIgPVxuICAgICAgZGF0YWRvZ09wdGlvbnM/LmF3c0ZpcmVMZW5zTWVtb3J5TGltaXRNaUIgPz8gdGhpcy5ERUZBVUxUX0xPR19ST1VURVJfTUVNT1JZX0xJTUlUX01JQjtcbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhckVzc2VudGlhbCA9IGRhdGFkb2dPcHRpb25zPy5kYXRhZG9nU2lkZWNhckVzc2VudGlhbCA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX0VTU0VOVElBTDtcbiAgICBjb25zdCBkYXRhRG9nRW5hYmxlUmVzdGFydFBvbGljeSA9XG4gICAgICBkYXRhZG9nT3B0aW9ucz8uZW5hYmxlUmVzdGFydFBvbGljeSA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19FTkFCTEVfUkVTVEFSVF9QT0xJQ1k7XG5cbiAgICBmdW5jdGlvbiBnZXRSZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyhcbiAgICAgIGVuYWJsZVJlc3RhcnRQb2xpY3k6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gICAgICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogbnVtYmVyW10gfCB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0SWdub3JlZEV4aXRDb2RlczogbnVtYmVyW11cbiAgICApOiBudW1iZXJbXSB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gcmVzdGFydElnbm9yZWRFeGl0Q29kZXMgPz8gWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRJZ25vcmVkRXhpdENvZGVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGFEb2dyZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyA9IGdldFJlc3RhcnRJZ25vcmVkRXhpdENvZGVzKFxuICAgICAgZGF0YURvZ0VuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgICBkYXRhZG9nT3B0aW9ucz8ucmVzdGFydElnbm9yZWRFeGl0Q29kZXMsXG4gICAgICB0aGlzLkRFRkFVTFRfREFUQURPR19SRVNUQVJUX0lHTk9SRURfRVhJVF9DT0RFU1xuICAgICk7XG5cbiAgICBsZXQgc2VydmljZUNvbnRhaW5lckNwdVVuaXRzOiBudW1iZXI7XG4gICAgbGV0IHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQjogbnVtYmVyO1xuXG4gICAgaWYgKGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQpIHtcbiAgICAgIHNlcnZpY2VDb250YWluZXJDcHVVbml0cyA9IGZhcmdhdGVPcHRpb25zLmNwdSAtIGRhdGFkb2dTaWRlY2FyQ3B1IC0gZmlyZUxlbnNTaWRlY2FyQ3B1O1xuICAgICAgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCID1cbiAgICAgICAgZmFyZ2F0ZU9wdGlvbnMubWVtb3J5TGltaXRNaUIgLSBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQiAtIGZpcmVMZW5zU2lkZWNhck1lbW9yeU1pQjtcbiAgICAgIGRhdGFkb2cuYWRkRmlyZWxlbnNDb25maWdVcGxvYWRGcm9tUzNQZXJtaXNzaW9ucyh7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogdGhpcy5GSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMgPSBmYXJnYXRlT3B0aW9ucy5jcHUgLSBkYXRhZG9nU2lkZWNhckNwdTtcbiAgICAgIHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQiA9IGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCIC0gZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUI7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZUNvbnRhaW5lckRlZmluaXRpb24gPSB0aGlzLnRhc2tEZWZpbml0aW9uLmFkZENvbnRhaW5lcihzZXJ2aWNlTmFtZSwge1xuICAgICAgaW1hZ2U6IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uaW1hZ2UsXG4gICAgICBjcHU6IHNlcnZpY2VDb250YWluZXJDcHVVbml0cyxcbiAgICAgIG1lbW9yeUxpbWl0TWlCOiBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAuLi5kYXRhZG9nLmdldEZhcmdhdGVDb250YWluZXJFbnZpcm9ubWVudFZhcmlhYmxlcyh7XG4gICAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgICAgc3RhZ2UsXG4gICAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICBhY2NvdW50TmFtZSxcbiAgICAgICAgICB0ZWFtTmFtZSxcbiAgICAgICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5lbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgICBkb2NrZXJMYWJlbHM6IHtcbiAgICAgICAgLi4uZGF0YWRvZy5nZXRGYXJnYXRlRG9ja2VyTGFiZWxzKHsgc3RhZ2UsIHNlcnZpY2VOYW1lLCB2ZXJzaW9uIH0pLFxuICAgICAgfSxcbiAgICAgIGhlYWx0aENoZWNrOiBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmhlYWx0aENoZWNrLFxuICAgICAgbG9nZ2luZzogZGF0YWRvZy5zZXR1cExvZ2dpbmcoe1xuICAgICAgICBzY29wZSxcbiAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgIHRlYW1OYW1lLFxuICAgICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgICAgc3RhZ2UsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBkYXRhZG9nQXBpS2V5LFxuICAgICAgICBkYXRhZG9nTG9nZ2luZ01vZGU6IGxvZ2dpbmdNb2RlRm9yU2VydmljZSxcbiAgICAgICAgZGF0YWRvZ1NpdGUsXG4gICAgICAgIGNvbnRhaW5lclR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgIH0pLFxuICAgICAgc2VjcmV0czogY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5zZWNyZXRzLFxuICAgIH0pO1xuXG4gICAgaWYgKGZyYW1ld29ya3M/LmluY2x1ZGVzKEZyYW1ld29yay5TUFJJTkcpKSB7XG4gICAgICBTcHJpbmcuYWxsb3dQYXJhbWV0ZXJTdG9yZUFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHRoaXMsIHNlcnZpY2VOYW1lLCB0aGlzLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlKTtcbiAgICAgIFNwcmluZy5hbGxvd1NlY3JldHNNYW5hZ2VyQWNjZXNzRm9yU3ByaW5nQ2xvdWRBd3ModGhpcywgc2VydmljZU5hbWUsIHRoaXMudGFza0RlZmluaXRpb24udGFza1JvbGUpO1xuICAgIH1cblxuICAgIGlmIChmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24gPSBkYXRhZG9nLmFkZEZpcmVMZW5zTG9nUm91dGVyKHtcbiAgICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICAgIGNwdTogZmlyZUxlbnNTaWRlY2FyQ3B1LFxuICAgICAgICBtZW1vcnlMaW1pdE1pQjogZmlyZUxlbnNTaWRlY2FyTWVtb3J5TWlCLFxuICAgICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogdGhpcy5GSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTixcbiAgICAgICAgZmlyZWxlbnNDb25maWdGaWxlUGF0aDogdGhpcy5GSVJFTEVOU19DT05GSUdfRklMRV9QQVRILFxuICAgICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy50YXNrRGVmaW5pdGlvbi5leGVjdXRpb25Sb2xlPy5hZGRNYW5hZ2VkUG9saWN5KFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BbWF6b25FQ1NUYXNrRXhlY3V0aW9uUm9sZVBvbGljeScpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy50YXNrRGVmaW5pdGlvbi5leGVjdXRpb25Sb2xlKSB7XG4gICAgICBkYXRhZG9nU2VjcmV0LmdyYW50UmVhZCh0aGlzLnRhc2tEZWZpbml0aW9uLmV4ZWN1dGlvblJvbGUpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbiA9IGRhdGFkb2cuYWRkRGF0YWRvZ1NpZGVjYXIoe1xuICAgICAgc2NvcGUsXG4gICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgIGFjY291bnROYW1lLFxuICAgICAgdGVhbU5hbWUsXG4gICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgIHN0YWdlLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZGF0YWRvZ0FwaUtleSxcbiAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBsb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudCxcbiAgICAgIGFwbUdldFJlc291cmNlc1RvSWdub3JlOiBkYXRhZG9nT3B0aW9ucz8uYXBtR2V0RW5kcG9pbnRzVG9JZ25vcmUgPz8gdGhpcy5ERUZBVUxUX0FQTV9HRVRfRU5EUE9JTlRTX1RPX0lHTk9SRSxcbiAgICAgIGNwdTogZGF0YWRvZ1NpZGVjYXJDcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUIsXG4gICAgICBlc3NlbnRpYWw6IGRhdGFkb2dTaWRlY2FyRXNzZW50aWFsLFxuICAgICAgZW5hYmxlUmVzdGFydFBvbGljeTogZGF0YURvZ0VuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogZGF0YURvZ3Jlc3RhcnRJZ25vcmVkRXhpdENvZGVzLFxuICAgICAgY29udGFpbmVyVGFnOiBwcm9wcy5kYXRhZG9nT3B0aW9ucz8uZGF0YWRvZ1NpZGVjYXJUYWcgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9UQUcsIC8vIFRoZXNlIGFyZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsXG4gICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuXG4gICAgZGF0YWRvZy5lbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyh0aGlzKTtcblxuICAgIGNvbnN0IGxvYWRCYWxhbmNlck9wdGlvbnNGb3JGYXJnYXRlU2VydmljZSA9IGxvYWRCYWxhbmNlck9wdGlvbnNcbiAgICAgID8geyBoZWFsdGhDaGVja0dyYWNlUGVyaW9kOiBsb2FkQmFsYW5jZXJPcHRpb25zLmhlYWx0aENoZWNrR3JhY2VQZXJpb2QgfVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMuc2VydmljZSA9IG5ldyBlY3MuRmFyZ2F0ZVNlcnZpY2UodGhpcywgJ1NlcnZpY2UnLCB7XG4gICAgICBjbHVzdGVyOiBmYXJnYXRlQ2x1c3RlcixcbiAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgY2lyY3VpdEJyZWFrZXI6IHsgcm9sbGJhY2s6IHRydWUgfSxcbiAgICAgIG1heEhlYWx0aHlQZXJjZW50OiAyMDAsXG4gICAgICBtaW5IZWFsdGh5UGVyY2VudDogMTAwLFxuICAgICAgZGVzaXJlZENvdW50OiBmYXJnYXRlT3B0aW9ucz8uZGVzaXJlZENvdW50LFxuICAgICAgLi4ubG9hZEJhbGFuY2VyT3B0aW9uc0ZvckZhcmdhdGVTZXJ2aWNlLFxuICAgICAgcHJvcGFnYXRlVGFnczogZWNzLlByb3BhZ2F0ZWRUYWdTb3VyY2UuU0VSVklDRSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLnNlcnZpY2UuY29ubmVjdGlvbnM7XG5cbiAgICBpZiAobG9hZEJhbGFuY2VyT3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICBjb25zdCBjb250YWluZXJQb3J0ID0gNDQzO1xuICAgICAgdGhpcy5zZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbi5hZGRQb3J0TWFwcGluZ3Moe1xuICAgICAgICBjb250YWluZXJQb3J0OiBjb250YWluZXJQb3J0LFxuICAgICAgICBwcm90b2NvbDogZWNzLlByb3RvY29sLlRDUCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXJnZXRHcm91cCA9IG5ldyBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwKHRoaXMsICdUYXJnZXRHcm91cCcsIHtcbiAgICAgICAgdnBjOiB2cGMsXG4gICAgICAgIHBvcnQ6IGNvbnRhaW5lclBvcnQsXG4gICAgICAgIHByb3RvY29sOiBlbGJ2Mi5BcHBsaWNhdGlvblByb3RvY29sLkhUVFBTLFxuICAgICAgICB0YXJnZXRUeXBlOiBlbGJ2Mi5UYXJnZXRUeXBlLklQLFxuICAgICAgICB0YXJnZXRzOiBbdGhpcy5zZXJ2aWNlXSxcbiAgICAgICAgaGVhbHRoQ2hlY2s6IGxvYWRCYWxhbmNlck9wdGlvbnMuaGVhbHRoQ2hlY2ssXG4gICAgICAgIHNsb3dTdGFydDogcHJvcHMubG9hZEJhbGFuY2VyT3B0aW9ucz8uc2xvd1N0YXJ0ID8/IHRoaXMuREVGQVVMVF9TTE9XX1NUQVJULFxuICAgICAgICBkZXJlZ2lzdHJhdGlvbkRlbGF5OiBwcm9wcy5sb2FkQmFsYW5jZXJPcHRpb25zPy5kZXJlZ2lzdHJhdGlvbkRlbGF5ID8/IHRoaXMuREVGQVVMVF9ERVJFR0lTVFJBVElPTl9ERUxBWSxcbiAgICAgIH0pO1xuXG4gICAgICBsb2FkQmFsYW5jZXJPcHRpb25zLmxpc3RlbmVyUnVsZXMuZm9yRWFjaCgoeyBwcmlvcml0eSwgY29uZGl0aW9ucyB9KSA9PiB7XG4gICAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMubGlzdGVuZXIuYWRkVGFyZ2V0R3JvdXBzKGBQcmlvcml0eSR7cHJpb3JpdHl9TGlzdGVuZXJSdWxlYCwge1xuICAgICAgICAgIHRhcmdldEdyb3VwczogW3RoaXMudGFyZ2V0R3JvdXAgYXMgZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cF0sXG4gICAgICAgICAgcHJpb3JpdHk6IHByaW9yaXR5LFxuICAgICAgICAgIGNvbmRpdGlvbnM6IGNvbmRpdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV3IERhdGFkb2dTZXJ2aWNlQ2F0YWxvZ0VudHJ5KHRoaXMsICdEYXRhZG9nU2VydmljZUNhdGFsb2dFbnRyeScsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSxcbiAgICAgIGxhbmd1YWdlczogWydqYXZhJ10sXG4gICAgICBzZXJ2aWNlVHlwZTogJ3dlYicsXG4gICAgfSk7XG4gIH1cbn1cblxuY2xhc3MgRGVueUxpc3RlZEtleVZhbGlkYXRvciBpbXBsZW1lbnRzIGNvbnN0cnVjdHMuSVZhbGlkYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlbnlMaXN0OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlR2VuZXJhdG9yOiAoa2V5TmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcbiAgKSB7fVxuXG4gIHZhbGlkYXRlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuZGljdCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLmRlbnlMaXN0LmZvckVhY2goa2V5TmFtZSA9PiB7XG4gICAgICBpZiAodGhpcy5kaWN0ICYmIGtleU5hbWUgaW4gdGhpcy5kaWN0KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRoaXMubWVzc2FnZUdlbmVyYXRvcihrZXlOYW1lKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIENsdXN0ZXJWcGNWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2cGM6IGVjMi5JVnBjLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2x1c3Rlcj86IGVjcy5JQ2x1c3RlclxuICApIHt9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmNsdXN0ZXIgJiYgdGhpcy5jbHVzdGVyLnZwYy52cGNJZCAhPT0gdGhpcy52cGMudnBjSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICBgVGhlIFZQQyBwcm92aWRlZCBpbiB0aGUgY2x1c3RlciAoJHt0aGlzLmNsdXN0ZXIudnBjLm5vZGUuaWR9KSBNVVNUIG1hdGNoIHRoZSBWUEMgcHJvdmlkZWQgYXMgYXJndW1lbnQgKCR7dGhpcy52cGMubm9kZS5pZH0pLmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY2xhc3MgRGF0YWRvZ1NpZGVDYXJWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYXRhZG9nT3B0aW9ucz86IERhdGFkb2dJbnRlZ3JhdGlvblByb3BzKSB7fVxuICB2YWxpZGF0ZSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXRhZG9nT3B0aW9ucyAmJlxuICAgICAgdGhpcy5kYXRhZG9nT3B0aW9ucy5lbmFibGVSZXN0YXJ0UG9saWN5ID09PSBmYWxzZSAmJlxuICAgICAgdGhpcy5kYXRhZG9nT3B0aW9ucy5yZXN0YXJ0SWdub3JlZEV4aXRDb2Rlc1xuICAgICkge1xuICAgICAgcmVzdWx0LnB1c2goJ1Jlc3RhcnRJZ25vcmVkRXhpdENvZGVzIGNhbm5vdCBiZSBzcGVjaWZpZWQgaWYgZW5hYmxlUmVzdGFydFBvbGljeSBpcyBmYWxzZScpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIEZpcmVsZW5zU2lkZUNhclZhbGlkYXRvciBpbXBsZW1lbnRzIGNvbnN0cnVjdHMuSVZhbGlkYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRhdGFkb2dPcHRpb25zPzogRGF0YWRvZ0ludGVncmF0aW9uUHJvcHMpIHt9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGFkb2dPcHRpb25zKSB7XG4gICAgICBjb25zdCBpc0ZpcmVsZW5zVXNlZCA9XG4gICAgICAgIHRoaXMuZGF0YWRvZ09wdGlvbnMubG9nZ2luZ01vZGVGb3JTZXJ2aWNlID09IERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TIHx8XG4gICAgICAgIHRoaXMuZGF0YWRvZ09wdGlvbnMubG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPT0gRGF0YURvZ0xvZ2dpbmdNb2RlLkFXU19GSVJFX0xFTlM7XG4gICAgICBjb25zdCBpc0ZpcmVsZW5zQ29uZmlndXJlZCA9IHRoaXMuZGF0YWRvZ09wdGlvbnMuYXdzRmlyZUxlbnNDcHUgfHwgdGhpcy5kYXRhZG9nT3B0aW9ucy5hd3NGaXJlTGVuc01lbW9yeUxpbWl0TWlCO1xuXG4gICAgICBpZiAoIWlzRmlyZWxlbnNVc2VkICYmIGlzRmlyZWxlbnNDb25maWd1cmVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICdZb3UgY2Fubm90IG92ZXJyaWRlIHRoZSBjb250YWluZXIgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgZmlyZWxlbnMgaWYgaXQgaXMgbm90IHVzZWQgYXMgbG9nZ2luZyBtb2RlIGZvciBhbnkgY29udGFpbmVyJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as iam from 'aws-cdk-lib/aws-iam';
2
- import { Construct } from 'constructs';
2
+ import type { Construct } from 'constructs';
3
3
  export declare class Spring {
4
4
  static allowParameterStoreAccessForSpringCloudAws(scope: Construct, serviceName: string, role: iam.IRole): void;
5
5
  static allowSecretsManagerAccessForSpringCloudAws(scope: Construct, serviceName: string, role: iam.IRole): void;
@@ -36,4 +36,4 @@ class Spring {
36
36
  }
37
37
  }
38
38
  exports.Spring = Spring;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhcmdhdGUvc3ByaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvQztBQUNwQywyQ0FBMkM7QUFHM0MsTUFBYSxNQUFNO0lBQ2pCLHNMQUFzTDtJQUMvSyxNQUFNLENBQUMsMENBQTBDLENBQUMsS0FBZ0IsRUFBRSxXQUFtQixFQUFFLElBQWU7UUFDN0csTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixDQUN2QixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUU7Z0JBQ1Asd0JBQXdCO2dCQUN4QixrQkFBa0I7Z0JBQ2xCLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQix5QkFBeUI7YUFDMUI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsZUFBZSxNQUFNLElBQUksU0FBUyxxQkFBcUIsV0FBVyxHQUFHO2dCQUNyRSxlQUFlLE1BQU0sSUFBSSxTQUFTLGdDQUFnQzthQUNuRTtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHNMQUFzTDtJQUMvSyxNQUFNLENBQUMsMENBQTBDLENBQUMsS0FBZ0IsRUFBRSxXQUFtQixFQUFFLElBQWU7UUFDN0csTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixDQUN2QixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSwrQkFBK0IsQ0FBQztZQUMzRSxTQUFTLEVBQUU7Z0JBQ1QsZUFBZSxNQUFNLElBQUksU0FBUyxtQkFBbUIsV0FBVyxHQUFHO2dCQUNuRSxlQUFlLE1BQU0sSUFBSSxTQUFTLDhCQUE4QjthQUNqRTtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcENELHdCQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBjbGFzcyBTcHJpbmcge1xuICAvLyBzZWUgaHR0cHM6Ly9jbG91ZC5zcHJpbmcuaW8vc3ByaW5nLWNsb3VkLXN0YXRpYy9zcHJpbmctY2xvdWQtYXdzLzIuMS4wLlJFTEVBU0Uvc2luZ2xlL3NwcmluZy1jbG91ZC1hd3MuaHRtbCNfaW50ZWdyYXRpbmdfeW91cl9zcHJpbmdfY2xvdWRfYXBwbGljYXRpb25fd2l0aF90aGVfYXdzX3BhcmFtZXRlcl9zdG9yZVxuICBwdWJsaWMgc3RhdGljIGFsbG93UGFyYW1ldGVyU3RvcmVBY2Nlc3NGb3JTcHJpbmdDbG91ZEF3cyhzY29wZTogQ29uc3RydWN0LCBzZXJ2aWNlTmFtZTogc3RyaW5nLCByb2xlOiBpYW0uSVJvbGUpIHtcbiAgICBjb25zdCB7IGFjY291bnQ6IGFjY291bnRJZCwgcmVnaW9uIH0gPSBTdGFjay5vZihzY29wZSk7XG4gICAgcm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ3NzbTpEZXNjcmliZVBhcmFtZXRlcnMnLFxuICAgICAgICAgICdzc206R2V0UGFyYW1ldGVyJyxcbiAgICAgICAgICAnc3NtOkdldFBhcmFtZXRlckhpc3RvcnknLFxuICAgICAgICAgICdzc206R2V0UGFyYW1ldGVycycsXG4gICAgICAgICAgJ3NzbTpHZXRQYXJhbWV0ZXJzQnlQYXRoJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgYGFybjphd3M6c3NtOiR7cmVnaW9ufToke2FjY291bnRJZH06cGFyYW1ldGVyL2NvbmZpZy8ke3NlcnZpY2VOYW1lfSpgLFxuICAgICAgICAgIGBhcm46YXdzOnNzbToke3JlZ2lvbn06JHthY2NvdW50SWR9OnBhcmFtZXRlci9jb25maWcvYXBwbGljYXRpb24qYCxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIHNlZSBodHRwczovL2Nsb3VkLnNwcmluZy5pby9zcHJpbmctY2xvdWQtc3RhdGljL3NwcmluZy1jbG91ZC1hd3MvMi4xLjAuUkVMRUFTRS9zaW5nbGUvc3ByaW5nLWNsb3VkLWF3cy5odG1sI19pbnRlZ3JhdGluZ195b3VyX3NwcmluZ19jbG91ZF9hcHBsaWNhdGlvbl93aXRoX3RoZV9hd3Nfc2VjcmV0c19tYW5hZ2VyXG4gIHB1YmxpYyBzdGF0aWMgYWxsb3dTZWNyZXRzTWFuYWdlckFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHNjb3BlOiBDb25zdHJ1Y3QsIHNlcnZpY2VOYW1lOiBzdHJpbmcsIHJvbGU6IGlhbS5JUm9sZSkge1xuICAgIGNvbnN0IHsgYWNjb3VudDogYWNjb3VudElkLCByZWdpb24gfSA9IFN0YWNrLm9mKHNjb3BlKTtcbiAgICByb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnc2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXQnLCAnc2VjcmV0c21hbmFnZXI6R2V0U2VjcmV0VmFsdWUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgYGFybjphd3M6c3NtOiR7cmVnaW9ufToke2FjY291bnRJZH06c2VjcmV0Oi9zZWNyZXQvJHtzZXJ2aWNlTmFtZX0qYCxcbiAgICAgICAgICBgYXJuOmF3czpzc206JHtyZWdpb259OiR7YWNjb3VudElkfTpzZWNyZXQ6L3NlY3JldC9hcHBsaWNhdGlvbipgLFxuICAgICAgICBdLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhcmdhdGUvc3ByaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvQztBQUNwQywyQ0FBMkM7QUFHM0MsTUFBYSxNQUFNO0lBQ2pCLHNMQUFzTDtJQUMvSyxNQUFNLENBQUMsMENBQTBDLENBQUMsS0FBZ0IsRUFBRSxXQUFtQixFQUFFLElBQWU7UUFDN0csTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixDQUN2QixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUU7Z0JBQ1Asd0JBQXdCO2dCQUN4QixrQkFBa0I7Z0JBQ2xCLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQix5QkFBeUI7YUFDMUI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsZUFBZSxNQUFNLElBQUksU0FBUyxxQkFBcUIsV0FBVyxHQUFHO2dCQUNyRSxlQUFlLE1BQU0sSUFBSSxTQUFTLGdDQUFnQzthQUNuRTtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHNMQUFzTDtJQUMvSyxNQUFNLENBQUMsMENBQTBDLENBQUMsS0FBZ0IsRUFBRSxXQUFtQixFQUFFLElBQWU7UUFDN0csTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixDQUN2QixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSwrQkFBK0IsQ0FBQztZQUMzRSxTQUFTLEVBQUU7Z0JBQ1QsZUFBZSxNQUFNLElBQUksU0FBUyxtQkFBbUIsV0FBVyxHQUFHO2dCQUNuRSxlQUFlLE1BQU0sSUFBSSxTQUFTLDhCQUE4QjthQUNqRTtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcENELHdCQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGNsYXNzIFNwcmluZyB7XG4gIC8vIHNlZSBodHRwczovL2Nsb3VkLnNwcmluZy5pby9zcHJpbmctY2xvdWQtc3RhdGljL3NwcmluZy1jbG91ZC1hd3MvMi4xLjAuUkVMRUFTRS9zaW5nbGUvc3ByaW5nLWNsb3VkLWF3cy5odG1sI19pbnRlZ3JhdGluZ195b3VyX3NwcmluZ19jbG91ZF9hcHBsaWNhdGlvbl93aXRoX3RoZV9hd3NfcGFyYW1ldGVyX3N0b3JlXG4gIHB1YmxpYyBzdGF0aWMgYWxsb3dQYXJhbWV0ZXJTdG9yZUFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHNjb3BlOiBDb25zdHJ1Y3QsIHNlcnZpY2VOYW1lOiBzdHJpbmcsIHJvbGU6IGlhbS5JUm9sZSkge1xuICAgIGNvbnN0IHsgYWNjb3VudDogYWNjb3VudElkLCByZWdpb24gfSA9IFN0YWNrLm9mKHNjb3BlKTtcbiAgICByb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnc3NtOkRlc2NyaWJlUGFyYW1ldGVycycsXG4gICAgICAgICAgJ3NzbTpHZXRQYXJhbWV0ZXInLFxuICAgICAgICAgICdzc206R2V0UGFyYW1ldGVySGlzdG9yeScsXG4gICAgICAgICAgJ3NzbTpHZXRQYXJhbWV0ZXJzJyxcbiAgICAgICAgICAnc3NtOkdldFBhcmFtZXRlcnNCeVBhdGgnLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpzc206JHtyZWdpb259OiR7YWNjb3VudElkfTpwYXJhbWV0ZXIvY29uZmlnLyR7c2VydmljZU5hbWV9KmAsXG4gICAgICAgICAgYGFybjphd3M6c3NtOiR7cmVnaW9ufToke2FjY291bnRJZH06cGFyYW1ldGVyL2NvbmZpZy9hcHBsaWNhdGlvbipgLFxuICAgICAgICBdLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8gc2VlIGh0dHBzOi8vY2xvdWQuc3ByaW5nLmlvL3NwcmluZy1jbG91ZC1zdGF0aWMvc3ByaW5nLWNsb3VkLWF3cy8yLjEuMC5SRUxFQVNFL3NpbmdsZS9zcHJpbmctY2xvdWQtYXdzLmh0bWwjX2ludGVncmF0aW5nX3lvdXJfc3ByaW5nX2Nsb3VkX2FwcGxpY2F0aW9uX3dpdGhfdGhlX2F3c19zZWNyZXRzX21hbmFnZXJcbiAgcHVibGljIHN0YXRpYyBhbGxvd1NlY3JldHNNYW5hZ2VyQWNjZXNzRm9yU3ByaW5nQ2xvdWRBd3Moc2NvcGU6IENvbnN0cnVjdCwgc2VydmljZU5hbWU6IHN0cmluZywgcm9sZTogaWFtLklSb2xlKSB7XG4gICAgY29uc3QgeyBhY2NvdW50OiBhY2NvdW50SWQsIHJlZ2lvbiB9ID0gU3RhY2sub2Yoc2NvcGUpO1xuICAgIHJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydzZWNyZXRzbWFuYWdlcjpEZXNjcmliZVNlY3JldCcsICdzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpzc206JHtyZWdpb259OiR7YWNjb3VudElkfTpzZWNyZXQ6L3NlY3JldC8ke3NlcnZpY2VOYW1lfSpgLFxuICAgICAgICAgIGBhcm46YXdzOnNzbToke3JlZ2lvbn06JHthY2NvdW50SWR9OnNlY3JldDovc2VjcmV0L2FwcGxpY2F0aW9uKmAsXG4gICAgICAgIF0sXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { IGrantable } from 'aws-cdk-lib/aws-iam';
2
- import { Construct } from 'constructs';
1
+ import type { IGrantable } from 'aws-cdk-lib/aws-iam';
2
+ import type { Construct } from 'constructs';
3
3
  export declare class SonatypeOssIndexCredentials {
4
4
  static allowAccessTo(scope: Construct, target: IGrantable): void;
5
5
  private static importedSecret;
@@ -33,4 +33,4 @@ class SonatypeOssIndexCredentials {
33
33
  exports.SonatypeOssIndexCredentials = SonatypeOssIndexCredentials;
34
34
  _a = JSII_RTTI_SYMBOL_1;
35
35
  SonatypeOssIndexCredentials[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.SonatypeOssIndexCredentials", version: "0.0.0" };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYXR5cGUtb3NzLWluZGV4LWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lhbS9zb25hdHlwZS1vc3MtaW5kZXgtY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBMkM7QUFFM0MsaUVBQWlFO0FBR2pFLE1BQWEsMkJBQTJCO0lBQ3RDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxNQUFrQjtRQUN2RCxNQUFNLGNBQWMsR0FBRywyQkFBMkIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUN4QyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDO1lBQzNDLFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO1lBQ3ZELFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCLEVBQUUsd0NBQXdDO2lCQUMzRDtnQkFDRCx3QkFBd0IsRUFBRTtvQkFDeEIscUJBQXFCLEVBQUUsMENBQTBDO2lCQUNsRTthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUM1QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPLFFBQWtDLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDL0MsS0FBSyxFQUNMLG1DQUFtQyxFQUNuQyxpR0FBaUcsQ0FDbEcsQ0FBQztJQUNKLENBQUM7O0FBOUJILGtFQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElHcmFudGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGNsYXNzIFNvbmF0eXBlT3NzSW5kZXhDcmVkZW50aWFscyB7XG4gIHN0YXRpYyBhbGxvd0FjY2Vzc1RvKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldDogSUdyYW50YWJsZSkge1xuICAgIGNvbnN0IHNvbmF0eXBlU2VjcmV0ID0gU29uYXR5cGVPc3NJbmRleENyZWRlbnRpYWxzLmltcG9ydGVkU2VjcmV0KHNjb3BlKTtcbiAgICBzb25hdHlwZVNlY3JldC5ncmFudFJlYWQodGFyZ2V0KTtcbiAgICB0YXJnZXQuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsna21zOkRlY3J5cHQnLCAna21zOkRlc2NyaWJlS2V5J10sXG4gICAgICAgIHJlc291cmNlczogWydhcm46YXdzOmttczpldS13ZXN0LTE6NTc3MTQ2ODk3Nzg1OmtleS8qJ10sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICdrbXM6VmlhU2VydmljZSc6ICdzZWNyZXRzbWFuYWdlci5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnRm9yQW55VmFsdWU6U3RyaW5nTGlrZSc6IHtcbiAgICAgICAgICAgICdrbXM6UmVzb3VyY2VBbGlhc2VzJzogJ2FsaWFzL3NvbmF0eXBlLW9zcy1pbmRleC1jcmVkZW50aWFscy1rZXknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpbXBvcnRlZFNlY3JldChzY29wZTogQ29uc3RydWN0KSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBzY29wZS5ub2RlLnRyeUZpbmRDaGlsZCgnU29uYXR5cGVPc3NJbmRleENyZWRlbnRpYWxzU2VjcmV0Jyk7XG4gICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmcgYXMgc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3JldHNtYW5hZ2VyLlNlY3JldC5mcm9tU2VjcmV0UGFydGlhbEFybihcbiAgICAgIHNjb3BlLFxuICAgICAgJ1NvbmF0eXBlT3NzSW5kZXhDcmVkZW50aWFsc1NlY3JldCcsXG4gICAgICAnYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpldS13ZXN0LTE6NTc3MTQ2ODk3Nzg1OnNlY3JldDovcmlvL2NvbmZpZy9zb25hdHlwZS1vc3MtaW5kZXgvY3JlZGVudGlhbHMnXG4gICAgKTtcbiAgfVxufVxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYXR5cGUtb3NzLWluZGV4LWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lhbS9zb25hdHlwZS1vc3MtaW5kZXgtY3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQ0FBMkM7QUFDM0MsaUVBQWlFO0FBR2pFLE1BQWEsMkJBQTJCO0lBQ3RDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxNQUFrQjtRQUN2RCxNQUFNLGNBQWMsR0FBRywyQkFBMkIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUN4QyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDO1lBQzNDLFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO1lBQ3ZELFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCLEVBQUUsd0NBQXdDO2lCQUMzRDtnQkFDRCx3QkFBd0IsRUFBRTtvQkFDeEIscUJBQXFCLEVBQUUsMENBQTBDO2lCQUNsRTthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUM1QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPLFFBQWtDLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDL0MsS0FBSyxFQUNMLG1DQUFtQyxFQUNuQyxpR0FBaUcsQ0FDbEcsQ0FBQztJQUNKLENBQUM7O0FBOUJILGtFQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSUdyYW50YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBjbGFzcyBTb25hdHlwZU9zc0luZGV4Q3JlZGVudGlhbHMge1xuICBzdGF0aWMgYWxsb3dBY2Nlc3NUbyhzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ6IElHcmFudGFibGUpIHtcbiAgICBjb25zdCBzb25hdHlwZVNlY3JldCA9IFNvbmF0eXBlT3NzSW5kZXhDcmVkZW50aWFscy5pbXBvcnRlZFNlY3JldChzY29wZSk7XG4gICAgc29uYXR5cGVTZWNyZXQuZ3JhbnRSZWFkKHRhcmdldCk7XG4gICAgdGFyZ2V0LmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ2ttczpEZWNyeXB0JywgJ2ttczpEZXNjcmliZUtleSddLFxuICAgICAgICByZXNvdXJjZXM6IFsnYXJuOmF3czprbXM6ZXUtd2VzdC0xOjU3NzE0Njg5Nzc4NTprZXkvKiddLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAna21zOlZpYVNlcnZpY2UnOiAnc2VjcmV0c21hbmFnZXIuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ0ZvckFueVZhbHVlOlN0cmluZ0xpa2UnOiB7XG4gICAgICAgICAgICAna21zOlJlc291cmNlQWxpYXNlcyc6ICdhbGlhcy9zb25hdHlwZS1vc3MtaW5kZXgtY3JlZGVudGlhbHMta2V5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaW1wb3J0ZWRTZWNyZXQoc2NvcGU6IENvbnN0cnVjdCkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gc2NvcGUubm9kZS50cnlGaW5kQ2hpbGQoJ1NvbmF0eXBlT3NzSW5kZXhDcmVkZW50aWFsc1NlY3JldCcpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG4gICAgfVxuICAgIHJldHVybiBzZWNyZXRzbWFuYWdlci5TZWNyZXQuZnJvbVNlY3JldFBhcnRpYWxBcm4oXG4gICAgICBzY29wZSxcbiAgICAgICdTb25hdHlwZU9zc0luZGV4Q3JlZGVudGlhbHNTZWNyZXQnLFxuICAgICAgJ2Fybjphd3M6c2VjcmV0c21hbmFnZXI6ZXUtd2VzdC0xOjU3NzE0Njg5Nzc4NTpzZWNyZXQ6L3Jpby9jb25maWcvc29uYXR5cGUtb3NzLWluZGV4L2NyZWRlbnRpYWxzJ1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Duration } from 'aws-cdk-lib';
2
2
  import { Construct } from 'constructs';
3
- import { KafkaEventSpecSource } from './kafka-event-spec';
3
+ import type { KafkaEventSpecSource } from './kafka-event-spec';
4
4
  /**
5
5
  * Wrapper for all metadata of a topic.
6
6
  */
@@ -143,4 +143,4 @@ const mapProperties = (scope, props) => {
143
143
  },
144
144
  };
145
145
  };
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtdG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2Eva2Fma2EtdG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsNkNBQWlFO0FBQ2pFLDJDQUFtRDtBQUNuRCwwREFBcUQ7QUEwUHJEOzs7O0dBSUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQUN2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIseUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRXpFLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxHQUFHO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQWZILGdDQWdCQzs7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFDekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzdCLE9B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QUMsQ0FBQyxDQUFDLGNBQWMsRUFBRTtRQUNuRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM5RixzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCLElBQUksS0FBSztRQUM3RCxhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1FBQzFELFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7UUFDNUMsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07U0FDekI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBDZm5SZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5pbXBvcnQgeyBLYWZrYUV2ZW50U3BlY1NvdXJjZSB9IGZyb20gJy4va2Fma2EtZXZlbnQtc3BlYyc7XG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWxsIG1ldGFkYXRhIG9mIGEgdG9waWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2FUb3BpY01ldGFEYXRhIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBzcGVjcyBvZiB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogQGRlcHJlY2F0ZWQgRXZlbnRzIGFyZSBubyBsb25nZXIgcHJvdmlkZWQgdGhyb3VnaCB0aGlzIGNvbnN0cnVjdC4gU3BlY2lmeSB0aGUgZXZlbnQgaW4gdGhlIGNhdGFsb2ctaW5mby55YW1sLiBTZWUgdGhlIEJhY2tzdGFnZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzPzogS2Fma2FFdmVudFNwZWNTb3VyY2VbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBpbnRlbnQgb2YgdGhlIHRvcGljLiBUaGlzIG1pZ2h0IGJlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKiBvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnRleHQgb2YgdGhlIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWxsIG1ldGEgZGF0YSBvZiBhIHY0IHRvcGljIHNwZWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2FUb3BpY01ldGFEYXRhVjQge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHNwZWNzIG9mIHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKiBAZGVwcmVjYXRlZCBFdmVudHMgYXJlIG5vIGxvbmdlciBwcm92aWRlZCB0aHJvdWdoIHRoaXMgY29uc3RydWN0LiBTcGVjaWZ5IHRoZSBldmVudCBpbiB0aGUgY2F0YWxvZy1pbmZvLnlhbWwuIFNlZSB0aGUgQmFja3N0YWdlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqL1xuICByZWFkb25seSBldmVudHM/OiBLYWZrYUV2ZW50U3BlY1NvdXJjZVtdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIGludGVudCBvZiB0aGUgdG9waWMuIFRoaXMgbWlnaHQgYmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqIG9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2R1Y2VyIGFuZCB0aGUgY29udGV4dCBvZiB0aGUgZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgdG9waWMgaXMgbWVhbnQgZm9yIGNvbXBvbmVudCBpbnRlcm5hbCB1c2FnZSBvbmx5IG9yIGlmIG90aGVyIHNlcnZpY2VzIGNvdWxkXG4gICAqIHVzZSBpdCB0b28uXG4gICAqL1xuICByZWFkb25seSBhdWRpZW5jZTogVG9waWNBdWRpZW5jZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBwcm9kdWNlciB3aWxsIHJlc3RvcmUgdGhlIGRhdGEgaW4gY2FzZSBvZiBhIGRpc2FzdGVyIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5UG9saWN5OiBUb3BpY1JlY292ZXJ5UG9saWN5O1xufVxuXG4vKipcbiAqIFJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGUgdG9waWMuXG4gKlxuICogc3RyaW5ncyBhcmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBDTkFNRSBvZiB0aGUgY2VydGlmaWNhdGUgb2YgdGhlIEthZmthIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2FBY2xTdGF0ZW1lbnQge1xuICAvKipcbiAgICogTGlzdCBvZiBjbGllbnRzIHRoYXQgc2hvdWxkIGdldCB3cml0ZSBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGU6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNsaWVudHMgdGhhdCBzaG91bGQgZ2V0IHJlYWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IHJlYWQ6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNsaWVudHMgdGhhdCBzaG91bGQgZ2V0IGRlbGV0ZSBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogQXR0ZW50aW9uOiBPbmx5IHVzZSBEZWxldGlvbiBwb2xpY3kgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIVxuICAgKiBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBLU3RyZWFtIGFuZCBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGRlbGV0ZSBtZXNzYWdlcyBhbmQgdGhlIHRvcGljLjxicj5cbiAgICogSWYgeW91IGp1c3Qgd2FudCB0byBcImRlbGV0ZVwiIGEgbWVzc2FnZSBvbiBhIGxvZyBjb21wYWN0ZWQgdG9waWMsIHlvdSBzaG91bGQgbm90IHNldCB0aGlzIHBlcm1pc3Npb24gYW5kIHNlbmQgYSB0b21ic3RvbmUgbWVzc2FnZSBpbnN0ZWFkLlxuICAgKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZT86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBsb2cgY29tcGFjdGlvbiByZWxhdGVkIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQ29tcGFjdGlvblByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRvIHJldGFpbiBkZWxldGUgdG9tYnN0b25lIG1hcmtlcnMgZm9yIGxvZyBjb21wYWN0ZWQgdG9waWNzO1xuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBkYXlzIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqIEBkZWZhdWx0VmFsdWUgMSBkYXlcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJldGVudGlvbj86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGFyZSBjb25maWd1cmVkIGluIHRoZSB0b3BpYyBtYW5hZ2VyLlxuICogSWYgeW91IG5lZWQgdG8gaW5jcmVhc2UgdGhlIGxpbWl0cyBmb3IgeW91ciBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBDTEFJRC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljUHJvcHMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSB0b3BpYzsgaGFzIHRvIG1hdGNoIHBhdHRlcm4gW0EtWmEtejAtOS4tXStcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcGFyYWxsZWxpc20gb2YgdGhlIHRvcGljOyBzaG91bGQgYmUgaW5jcmVhc2VkIGZvclxuICAgKiBsYXJnZSBleHBlY3RlZCBsb2FkcyAoZS5nLiwgMjUgZm9yIHJpby5hc3NldC1pb3QtZXZlbnRzKS5cbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMTAgcGFydGl0aW9ucyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKiBQYXJ0aXRpb25zIGFyZSBhIGxpbWl0ZWQgcmVzb3VyY2UgYW5kIGNhbm5vdCBiZSBkZWNyZWFzZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgM1xuICAgKi9cbiAgcmVhZG9ubHkgbnVtYmVyT2ZQYXJ0aXRpb25zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiByZXBsaWNhdGlvbiBvZiBtZXNzYWdlczsgaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgdGhlIG51bWJlciBvZiBicm9rZXJzIChjdXJyZW50bHkgMykuXG4gICAqIEBkZWZhdWx0VmFsdWUgM1xuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXRpb25GYWN0b3I/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWUgaG93IGxvbmcgbWVzc2FnZXMgYXJlIHJldGFpbmVkIG9uIEthZmthIGNsdXN0ZXI7XG4gICAqXG4gICAqIEZvciBtb3N0IGNhc2VzLCA3IGRheXMgKDYwNDgwMDAwMCBtcykgaXMgcmVjb21tZW5kZWQ7IHVwIHRvIDMwIGRheXMgbWF5IGJlIGNvbnNpZGVyZWRcbiAgICogb25seSBmb3IgZXhjZXB0aW9uYWwgc2NlbmFyaW9zIHdpdGggc3BlY2lmaWMgcmVxdWlyZW1lbnRzIGFuZCBjYW4gbGVhZCB0byBpbmNyZWFzZWQgS2Fma2Egc3RvcmFnZSBjb3N0cy5cbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMyB0byAzMCBkYXlzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDcgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byAnZmFsc2UsIHRoZSB0b3BpYydzIGRhdGEgd2lsbCBiZSBkZWxldGVkIG9uIEthZmthIDEwIGRheXMgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIElmIHNldCB0byAndHJ1ZScsIGl0IHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSBhZnRlciBzdGFjayBkZWxldGlvbi5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFudERlbGV0aW9uRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhZGF0YSBvZiB0aGUgdG9waWMuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogS2Fma2FUb3BpY01ldGFEYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRvIHRoZSB0b3BpYydzIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBhY2w6IEthZmthQWNsU3RhdGVtZW50O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIHRvcGljIGlzIGxvZyBjb21wYWN0ZWQgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgaXNMb2dDb21wYWN0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE11c3Qgb25seSBiZSBwcm92aWRlZCBpZiAnaXNMb2dDb21wYWN0ZWQnIGlzICd0cnVlJy5cbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzPzogTG9nQ29tcGFjdGlvblByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGNvbXBhY3Rpb24gbGFnIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogVGhlIG1heGltdW0gdGltZSBhIG1lc3NhZ2UgY2FuIGJlIGRlbGF5ZWQgYmVmb3JlIGl0IGlzIGNvbXBhY3RlZC5cbiAgICogQGRlZmF1bHRWYWx1ZSA5MjIzMzcyMDM2ODU0Nzc1ODA3XG4gICAqL1xuICByZWFkb25seSBtYXhDb21wYWN0aW9uTGFnTXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGN1cnJlbnQgc2VydmljZSBsaW1pdHMgYXJlIGNvbmZpZ3VyZWQgaW4gdGhlIHRvcGljIG1hbmFnZXIuXG4gKiBJZiB5b3UgbmVlZCB0byBpbmNyZWFzZSB0aGUgbGltaXRzIGZvciB5b3VyIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IENMQUlELlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNWNFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgdG9waWM7IGhhcyB0byBtYXRjaCBwYXR0ZXJuIFtBLVphLXowLTkuLV0rXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZGVncmVlIG9mIHBhcmFsbGVsaXNtIG9mIHRoZSB0b3BpYzsgc2hvdWxkIGJlIGluY3JlYXNlZCBmb3JcbiAgICogbGFyZ2UgZXhwZWN0ZWQgbG9hZHMgKGUuZy4sIDI1IGZvciByaW8uYXNzZXQtaW90LWV2ZW50cykuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDEwIHBhcnRpdGlvbnMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogUGFydGl0aW9ucyBhcmUgYSBsaW1pdGVkIHJlc291cmNlIGFuZCBjYW5ub3QgYmUgZGVjcmVhc2VkLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IG51bWJlck9mUGFydGl0aW9ucz86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBGb3IgbW9zdCBjYXNlcywgNyBkYXlzICg2MDQ4MDAwMDAgbXMpIGlzIHJlY29tbWVuZGVkOyB1cCB0byAzMCBkYXlzIG1heSBiZSBjb25zaWRlcmVkXG4gICAqIG9ubHkgZm9yIGV4Y2VwdGlvbmFsIHNjZW5hcmlvcyB3aXRoIHNwZWNpZmljIHJlcXVpcmVtZW50cyBhbmQgY2FuIGxlYWQgdG8gaW5jcmVhc2VkIEthZmthIHN0b3JhZ2UgY29zdHMuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDMgdG8gMzAgZGF5cyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDcgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byAnZmFsc2UsIHRoZSB0b3BpYydzIGRhdGEgd2lsbCBiZSBkZWxldGVkIG9uIEthZmthIDEwIGRheXMgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIElmIHNldCB0byAndHJ1ZScsIGl0IHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSBhZnRlciBzdGFjayBkZWxldGlvbi5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFudERlbGV0aW9uRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhZGF0YSBvZiB0aGUgdG9waWMuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogS2Fma2FUb3BpY01ldGFEYXRhVjQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdG8gdGhlIHRvcGljJ3MgZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbDogS2Fma2FBY2xTdGF0ZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgdG9waWMgaXMgbG9nIGNvbXBhY3RlZCBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBpc0xvZ0NvbXBhY3RlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogTXVzdCBvbmx5IGJlIHByb3ZpZGVkIGlmICdpc0xvZ0NvbXBhY3RlZCcgaXMgJ3RydWUnLlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nQ29tcGFjdGlvblByb3BlcnRpZXM/OiBMb2dDb21wYWN0aW9uUHJvcGVydGllcztcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBzaG91bGQgYmUgYmFja2VkIHVwIGF1dG9tYXRpY2FsbHkgb3Igbm90LlxuICAgKiBJdCBjb3VsZCBqdXN0IGJlIGVuYWJsZWQsIGlmIHRoZSB0b3BpYyBpcyBjb21wYWN0ZWQgYW5kIHRoZSBSZWNvdmVyeVBvbGljeSBpcyAncmVjb3ZlcmFibGUnLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWFuYWdlZEJhY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBjb21wYWN0aW9uIGxhZyBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgYSBtZXNzYWdlIGNhbiBiZSBkZWxheWVkIGJlZm9yZSBpdCBpcyBjb21wYWN0ZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgOTIyMzM3MjAzNjg1NDc3NTgwN1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29tcGFjdGlvbkxhZ01zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBUb3BpY3MgdGFyZ2V0IGF1ZGllbmNlXG4gKi9cbmV4cG9ydCB0eXBlIFRvcGljQXVkaWVuY2UgPSAnY29tcG9uZW50LWludGVybmFsJyB8ICdjb21wYW55LWludGVybmFsJztcblxuLyoqXG4gKiBUaGUgVG9waWNzIHJlY292ZXJ5IHBvbGljeSBndWFyYW50ZWVkIGJ5IHRoZSBwcm9kdWNlclxuICovXG5leHBvcnQgdHlwZSBUb3BpY1JlY292ZXJ5UG9saWN5ID0gJ25vbmUnIHwgJ3JlY292ZXJhYmxlJztcblxuLyoqXG4gKiBDb25zdHJ1Y3QgdG8gY3JlYXRlIGEga2Fma2EgdG9waWMuXG4gKlxuICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBLYWZrYVRvcGljVjR9IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEthZmthVG9waWMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogS2Fma2FUb3BpY1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZERlcHJlY2F0aW9uKCdLYWZrYVRvcGljJywgXCJVc2UgJ0thZmthVG9waWNWNCchXCIpO1xuXG4gICAgbmV3IENmblJlc291cmNlKHRoaXMsICdLYWZrYVRvcGljJywge1xuICAgICAgdHlwZTogJ0N1c3RvbTo6S2Fma2FUb3BpYycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLm1hcFByb3BlcnRpZXModGhpcywgcHJvcHMpLFxuICAgICAgICBWZXJzaW9uOiAnMycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24odmFsaWRhdG9yKHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdG8gY3JlYXRlIGEgdmVyc2lvbiA0IFJJTyBLYWZrYSB0b3BpYy5cbiAqXG4gKiBQcmVmZXIgdGhpcyBjb25zdHJ1Y3QgZm9yIG5ldyB0b3BpY3MuIEtlZXAgdGhlIGRlZmF1bHQgcmV0ZW50aW9uIGFuZCBwYXJ0aXRpb24gY291bnQgdW5sZXNzIHRoZXJlIGlzIGEgY29uY3JldGVcbiAqIG9wZXJhdGlvbmFsIHJlcXVpcmVtZW50IHRvIGNoYW5nZSB0aGVtLiBQYXJ0aXRpb24gaW5jcmVhc2VzIGFyZSBwZXJtYW5lbnQgYW5kIG1heSByZXF1aXJlIGNvb3JkaW5hdGlvbiB3aXRoIENMQUlEXG4gKiB3aGVuIHNlcnZpY2UgbGltaXRzIGFyZSBleGNlZWRlZC5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgdHNcbiAqIG5ldyBLYWZrYVRvcGljVjQodGhpcywgJ0V2ZW50c1RvcGljJywge1xuICogICBuYW1lOiAnYmlsbGluZy12aWV3LmV2ZW50cycsXG4gKiAgIG1ldGFkYXRhOiB7XG4gKiAgICAgZGVzY3JpcHRpb246ICdEb21haW4gZXZlbnRzIGVtaXR0ZWQgYnkgQmlsbGluZyBWaWV3LicsXG4gKiAgICAgYXVkaWVuY2U6ICdjb21wYW55LWludGVybmFsJyxcbiAqICAgICByZWNvdmVyeVBvbGljeTogJ3JlY292ZXJhYmxlJyxcbiAqICAgfSxcbiAqICAgYWNsOiB7XG4gKiAgICAgd3JpdGU6IFsnYmlsbGluZy12aWV3J10sXG4gKiAgICAgcmVhZDogWydiaWxsaW5nLWNvbnN1bWVyJ10sXG4gKiAgIH0sXG4gKiAgIGlzTG9nQ29tcGFjdGVkOiBmYWxzZSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYVRvcGljVjQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogS2Fma2FUb3BpY1Y0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IENmblJlc291cmNlKHRoaXMsICdLYWZrYVRvcGljJywge1xuICAgICAgdHlwZTogJ0N1c3RvbTo6S2Fma2FUb3BpYycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLm1hcFByb3BlcnRpZXModGhpcywgcHJvcHMpLFxuICAgICAgICBWZXJzaW9uOiAnNCcsXG4gICAgICAgIEF1ZGllbmNlOiBwcm9wcy5tZXRhZGF0YS5hdWRpZW5jZSxcbiAgICAgICAgUmVjb3ZlcnlQb2xpY3k6IHByb3BzLm1ldGFkYXRhLnJlY292ZXJ5UG9saWN5LFxuICAgICAgICBNYW5hZ2VkQmFja3VwRW5hYmxlZDogcHJvcHMubWFuYWdlZEJhY2t1cEVuYWJsZWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24odmFsaWRhdG9yKHByb3BzKSk7XG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24oYmFja3VwUHJvcGVydGllc1ZhbGlkYXRvcihwcm9wcykpO1xuICB9XG59XG5cbmNvbnN0IHZhbGlkYXRvciA9IChwcm9wczogS2Fma2FUb3BpY1Byb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdmFsaWRhdGU6ICgpOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgaWYgKCFwcm9wcy5uYW1lLm1hdGNoKC9eW0EtWmEtejAtOS4tXSskLykpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW25hbWVdOiBleHBlY3RpbmcgdG9waWMgbmFtZSB0byBtYXRjaCB0aGUgcmVnIGV4cCBgW0EtWmEtejAtOS4tXStgLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLm51bWJlck9mUGFydGl0aW9ucyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICghTnVtYmVyLmlzSW50ZWdlcihwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMpIHx8IHByb3BzLm51bWJlck9mUGFydGl0aW9ucyA8IDEpXG4gICAgICApIHtcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgYEludmFsaWQgW251bWJlck9mUGFydGl0aW9uc106IGV4cGVjdGluZyBudW1iZXIgb2YgcGFydGl0aW9ucyB0byBiZSBhIHBvc2l0aXZlIGludGVnZXIgYnV0IGdvdCAke3Byb3BzLm51bWJlck9mUGFydGl0aW9uc30uYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yKSB8fCBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciA8IDEgfHwgcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPiAzKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFtyZXBsaWNhdGlvbkZhY3Rvcl06IGV4cGVjdGluZyBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9wcy5pc0xvZ0NvbXBhY3RlZCAmJiBwcm9wcy5sb2dDb21wYWN0aW9uUHJvcGVydGllcykge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbG9nQ29tcGFjdGlvblByb3BlcnRpZXNdOiBsb2cgY29tcGFjdGlvbiBpcyBkaXNhYmxlZCBzbyBwcm9wZXJ0aWVzIG11c3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXByb3BzLmlzTG9nQ29tcGFjdGVkICYmIHByb3BzLm1heENvbXBhY3Rpb25MYWdNcykge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWF4Q29tcGFjdGlvbkxhZ01zXTogbWF4IGNvbXBhY3Rpb24gbGFnIGlzIG9ubHkgYWxsb3dlZCBmb3IgbG9nIGNvbXBhY3RlZCB0b3BpY3MuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IGJhY2t1cFByb3BlcnRpZXNWYWxpZGF0b3IgPSAocHJvcHM6IEthZmthVG9waWNWNFByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdmFsaWRhdGU6ICgpOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgaWYgKHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkICYmICFwcm9wcy5pc0xvZ0NvbXBhY3RlZCkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWFuYWdlZEJhY2t1cEVuYWJsZWRdOiBtYW5hZ2VkIGJhY2t1cCBjYW4gb25seSBiZSBlbmFibGVkIGZvciBsb2cgY29tcGFjdGVkIHRvcGljcy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkICYmIHByb3BzLm1ldGFkYXRhLnJlY292ZXJ5UG9saWN5ICE9PSAncmVjb3ZlcmFibGUnKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICdJbnZhbGlkIFttYW5hZ2VkQmFja3VwRW5hYmxlZF06IHRvcGljcyB3aXRoIG1hbmFnZWRCYWNrdXBFbmFibGVkIGhhdmUgdG8gaGF2ZSByZWNvdmVyeSBwb2xpY3kgXCJyZWNvdmVyYWJsZVwiLidcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgbWFwUHJvcGVydGllcyA9IChzY29wZTogSUNvbnN0cnVjdCwgcHJvcHM6IEthZmthVG9waWNQcm9wcyB8IEthZmthVG9waWNWNFByb3BzKSA9PiB7XG4gIGNvbnN0IHRlYW1FbWFpbCA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1FbWFpbFBhcmFtZXRlcihzY29wZSkuc3RyaW5nVmFsdWU7XG5cbiAgaWYgKHByb3BzLm1ldGFkYXRhLmV2ZW50cz8ubGVuZ3RoICYmIHByb3BzLm1ldGFkYXRhLmV2ZW50cy5sZW5ndGggPiAwKSB7XG4gICAgY2RrLkFubm90YXRpb25zLm9mKHNjb3BlKS5hZGREZXByZWNhdGlvbihcbiAgICAgICdLYWZrYVRvcGljTWV0YURhdGEuZXZlbnRzJyxcbiAgICAgICdFdmVudHMgYXJlIG5vIGxvbmdlciBwcm92aWRlZCB0aHJvdWdoIHRoaXMgY29uc3RydWN0LiBTcGVjaWZ5IHRoZSBldmVudCBpbiB0aGUgY2F0YWxvZy1pbmZvLnlhbWwuIFNlZSB0aGUgQmFja3N0YWdlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uJ1xuICAgICk7XG4gIH1cbiAgY29uc3QgZGVsZXRlUmV0ZW50aW9uRHVyYXRpb24gPSBwcm9wcy5sb2dDb21wYWN0aW9uUHJvcGVydGllcz8uZGVsZXRlUmV0ZW50aW9uID8/IER1cmF0aW9uLmRheXMoNyk7XG4gIGlmIChwcm9wcy5hY2wuZGVsZXRlICE9IHVuZGVmaW5lZCAmJiBwcm9wcy5hY2wuZGVsZXRlLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IGNkay5Bbm5vdGF0aW9ucy5vZihjZGsuU3RhY2sub2Yoc2NvcGUpKTtcbiAgICBhbm5vdGF0aW9ucy5hZGRXYXJuaW5nVjIoXG4gICAgICBgQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0cy9rYWZrYS9rYWZrYS10b3BpYy8ke3Byb3BzLm5hbWV9L0RlbGV0aW9uUG9saWN5YCxcbiAgICAgIGBcbiDinYwgWW91IGhhdmUgc2V0IFwiZGVsZXRlXCIgcGVybWlzc2lvbiBmb3Iga2Fma2EtdG9waWMgJHtwcm9wcy5uYW1lfS4gWW91IHByb2JhYmx5IGRvIG5vdCBuZWVkIHRoaXMuIFBsZWFzZSB1c2UgdGhpcyBvbmx5IGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbmBcbiAgICApO1xuICB9XG4gIHJldHVybiB7XG4gICAgU2VydmljZVRva2VuOiAnYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjE4Njk5Mzc1NzczNDpkcC10b3BpYy1tYW5hZ2VyLXNucy10b3BpYycsXG4gICAgVG9waWNOYW1lOiBwcm9wcy5uYW1lLFxuICAgIERlc2NyaXB0aW9uOiBwcm9wcy5tZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICBOdW1iZXJPZlBhcnRpdGlvbnM6IHByb3BzLm51bWJlck9mUGFydGl0aW9ucyA/PyAzLFxuICAgIFJlcGxpY2F0aW9uRmFjdG9yOiBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciA/PyAzLFxuICAgIFJldGVudGlvbk1zOiAocHJvcHMucmV0ZW50aW9uID8/IER1cmF0aW9uLmRheXMoNykpLnRvTWlsbGlzZWNvbmRzKCksXG4gICAgRGVsZXRlUmV0ZW50aW9uTXM6IHByb3BzLmlzTG9nQ29tcGFjdGVkID8gZGVsZXRlUmV0ZW50aW9uRHVyYXRpb24udG9NaWxsaXNlY29uZHMoKSA6IHVuZGVmaW5lZCxcbiAgICBJbnN0YW50RGVsZXRpb25FbmFibGVkOiBwcm9wcy5pbnN0YW50RGVsZXRpb25FbmFibGVkID8/IGZhbHNlLFxuICAgIENsZWFudXBQb2xpY3k6IHByb3BzLmlzTG9nQ29tcGFjdGVkID8gJ2NvbXBhY3QnIDogJ2RlbGV0ZScsXG4gICAgVGVhbUVtYWlsOiB0ZWFtRW1haWwsXG4gICAgTWF4Q29tcGFjdGlvbkxhZ01zOiBwcm9wcy5tYXhDb21wYWN0aW9uTGFnTXMsXG4gICAgQUNMOiB7XG4gICAgICBSZWFkOiBwcm9wcy5hY2wucmVhZCxcbiAgICAgIFdyaXRlOiBwcm9wcy5hY2wud3JpdGUsXG4gICAgICBEZWxldGU6IHByb3BzLmFjbC5kZWxldGUsXG4gICAgfSxcbiAgfTtcbn07XG4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtdG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2Eva2Fma2EtdG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsNkNBQWlFO0FBQ2pFLDJDQUF3RDtBQUN4RCwwREFBcUQ7QUEwUHJEOzs7O0dBSUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQUN2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIseUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRXpFLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxHQUFHO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQWZILGdDQWdCQzs7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFDekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQzdCLE9B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QUMsQ0FBQyxDQUFDLGNBQWMsRUFBRTtRQUNuRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM5RixzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCLElBQUksS0FBSztRQUM3RCxhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1FBQzFELFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7UUFDNUMsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07U0FDekI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBDZm5SZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIHR5cGUgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcbmltcG9ydCB0eXBlIHsgS2Fma2FFdmVudFNwZWNTb3VyY2UgfSBmcm9tICcuL2thZmthLWV2ZW50LXNwZWMnO1xuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBtZXRhZGF0YSBvZiBhIHRvcGljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNNZXRhRGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc3BlY3Mgb2YgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqIEBkZXByZWNhdGVkIEV2ZW50cyBhcmUgbm8gbG9uZ2VyIHByb3ZpZGVkIHRocm91Z2ggdGhpcyBjb25zdHJ1Y3QuIFNwZWNpZnkgdGhlIGV2ZW50IGluIHRoZSBjYXRhbG9nLWluZm8ueWFtbC4gU2VlIHRoZSBCYWNrc3RhZ2UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50cz86IEthZmthRXZlbnRTcGVjU291cmNlW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgaW50ZW50IG9mIHRoZSB0b3BpYy4gVGhpcyBtaWdodCBiZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZHVjZXIgYW5kIHRoZSBjb250ZXh0IG9mIHRoZSBldmVudHMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBtZXRhIGRhdGEgb2YgYSB2NCB0b3BpYyBzcGVjLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNNZXRhRGF0YVY0IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBzcGVjcyBvZiB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogQGRlcHJlY2F0ZWQgRXZlbnRzIGFyZSBubyBsb25nZXIgcHJvdmlkZWQgdGhyb3VnaCB0aGlzIGNvbnN0cnVjdC4gU3BlY2lmeSB0aGUgZXZlbnQgaW4gdGhlIGNhdGFsb2ctaW5mby55YW1sLiBTZWUgdGhlIEJhY2tzdGFnZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzPzogS2Fma2FFdmVudFNwZWNTb3VyY2VbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBpbnRlbnQgb2YgdGhlIHRvcGljLiBUaGlzIG1pZ2h0IGJlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKiBvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnRleHQgb2YgdGhlIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRvcGljIGlzIG1lYW50IGZvciBjb21wb25lbnQgaW50ZXJuYWwgdXNhZ2Ugb25seSBvciBpZiBvdGhlciBzZXJ2aWNlcyBjb3VsZFxuICAgKiB1c2UgaXQgdG9vLlxuICAgKi9cbiAgcmVhZG9ubHkgYXVkaWVuY2U6IFRvcGljQXVkaWVuY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcHJvZHVjZXIgd2lsbCByZXN0b3JlIHRoZSBkYXRhIGluIGNhc2Ugb2YgYSBkaXNhc3RlciBvciBub3QuXG4gICAqL1xuICByZWFkb25seSByZWNvdmVyeVBvbGljeTogVG9waWNSZWNvdmVyeVBvbGljeTtcbn1cblxuLyoqXG4gKiBSZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhlIHRvcGljLlxuICpcbiAqIHN0cmluZ3MgYXJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgQ05BTUUgb2YgdGhlIGNlcnRpZmljYXRlIG9mIHRoZSBLYWZrYSBjbGllbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthQWNsU3RhdGVtZW50IHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgd3JpdGUgcGVybWlzc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IHdyaXRlOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBjbGllbnRzIHRoYXQgc2hvdWxkIGdldCByZWFkIHBlcm1pc3Npb25zXG4gICAqL1xuICByZWFkb25seSByZWFkOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBjbGllbnRzIHRoYXQgc2hvdWxkIGdldCBkZWxldGUgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEF0dGVudGlvbjogT25seSB1c2UgRGVsZXRpb24gcG9saWN5IGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyFcbiAgICogVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgS1N0cmVhbSBhbmQgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBkZWxldGUgbWVzc2FnZXMgYW5kIHRoZSB0b3BpYy48YnI+XG4gICAqIElmIHlvdSBqdXN0IHdhbnQgdG8gXCJkZWxldGVcIiBhIG1lc3NhZ2Ugb24gYSBsb2cgY29tcGFjdGVkIHRvcGljLCB5b3Ugc2hvdWxkIG5vdCBzZXQgdGhpcyBwZXJtaXNzaW9uIGFuZCBzZW5kIGEgdG9tYnN0b25lIG1lc3NhZ2UgaW5zdGVhZC5cbiAgICpcbiAgICogQGpzaWkgaWdub3JlXG4gICAqL1xuICByZWFkb25seSBkZWxldGU/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBhbGwgbG9nIGNvbXBhY3Rpb24gcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSB0byByZXRhaW4gZGVsZXRlIHRvbWJzdG9uZSBtYXJrZXJzIGZvciBsb2cgY29tcGFjdGVkIHRvcGljcztcbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMTAgZGF5cyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDEgZGF5XG4gICAqL1xuICByZWFkb25seSBkZWxldGVSZXRlbnRpb24/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgY3VycmVudCBzZXJ2aWNlIGxpbWl0cyBhcmUgY29uZmlndXJlZCBpbiB0aGUgdG9waWMgbWFuYWdlci5cbiAqIElmIHlvdSBuZWVkIHRvIGluY3JlYXNlIHRoZSBsaW1pdHMgZm9yIHlvdXIgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgQ0xBSUQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2FUb3BpY1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgdG9waWM7IGhhcyB0byBtYXRjaCBwYXR0ZXJuIFtBLVphLXowLTkuLV0rXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZGVncmVlIG9mIHBhcmFsbGVsaXNtIG9mIHRoZSB0b3BpYzsgc2hvdWxkIGJlIGluY3JlYXNlZCBmb3JcbiAgICogbGFyZ2UgZXhwZWN0ZWQgbG9hZHMgKGUuZy4sIDI1IGZvciByaW8uYXNzZXQtaW90LWV2ZW50cykuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDEwIHBhcnRpdGlvbnMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogUGFydGl0aW9ucyBhcmUgYSBsaW1pdGVkIHJlc291cmNlIGFuZCBjYW5ub3QgYmUgZGVjcmVhc2VkLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IG51bWJlck9mUGFydGl0aW9ucz86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBGb3IgbW9zdCBjYXNlcywgNyBkYXlzICg2MDQ4MDAwMDAgbXMpIGlzIHJlY29tbWVuZGVkOyB1cCB0byAzMCBkYXlzIG1heSBiZSBjb25zaWRlcmVkXG4gICAqIG9ubHkgZm9yIGV4Y2VwdGlvbmFsIHNjZW5hcmlvcyB3aXRoIHNwZWNpZmljIHJlcXVpcmVtZW50cyBhbmQgY2FuIGxlYWQgdG8gaW5jcmVhc2VkIEthZmthIHN0b3JhZ2UgY29zdHMuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDMgdG8gMzAgZGF5cy5cbiAgICogQGRlZmF1bHRWYWx1ZSA3IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gJ2ZhbHNlLCB0aGUgdG9waWMncyBkYXRhIHdpbGwgYmUgZGVsZXRlZCBvbiBLYWZrYSAxMCBkYXlzIGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBJZiBzZXQgdG8gJ3RydWUnLCBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbnREZWxldGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IEthZmthVG9waWNNZXRhRGF0YTtcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0byB0aGUgdG9waWMncyBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNsOiBLYWZrYUFjbFN0YXRlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBpcyBsb2cgY29tcGFjdGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9nQ29tcGFjdGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNdXN0IG9ubHkgYmUgcHJvdmlkZWQgaWYgJ2lzTG9nQ29tcGFjdGVkJyBpcyAndHJ1ZScuXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBsb2dDb21wYWN0aW9uUHJvcGVydGllcz86IExvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBjb21wYWN0aW9uIGxhZyBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgYSBtZXNzYWdlIGNhbiBiZSBkZWxheWVkIGJlZm9yZSBpdCBpcyBjb21wYWN0ZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgOTIyMzM3MjAzNjg1NDc3NTgwN1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29tcGFjdGlvbkxhZ01zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGFyZSBjb25maWd1cmVkIGluIHRoZSB0b3BpYyBtYW5hZ2VyLlxuICogSWYgeW91IG5lZWQgdG8gaW5jcmVhc2UgdGhlIGxpbWl0cyBmb3IgeW91ciBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBDTEFJRC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljVjRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHRvcGljOyBoYXMgdG8gbWF0Y2ggcGF0dGVybiBbQS1aYS16MC05Li1dK1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiBwYXJhbGxlbGlzbSBvZiB0aGUgdG9waWM7IHNob3VsZCBiZSBpbmNyZWFzZWQgZm9yXG4gICAqIGxhcmdlIGV4cGVjdGVkIGxvYWRzIChlLmcuLCAyNSBmb3IgcmlvLmFzc2V0LWlvdC1ldmVudHMpLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBwYXJ0aXRpb25zIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqIFBhcnRpdGlvbnMgYXJlIGEgbGltaXRlZCByZXNvdXJjZSBhbmQgY2Fubm90IGJlIGRlY3JlYXNlZC5cbiAgICogQGRlZmF1bHRWYWx1ZSAzXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlBhcnRpdGlvbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZGVncmVlIG9mIHJlcGxpY2F0aW9uIG9mIG1lc3NhZ2VzOyBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCB0aGUgbnVtYmVyIG9mIGJyb2tlcnMgKGN1cnJlbnRseSAzKS5cbiAgICogQGRlZmF1bHRWYWx1ZSAzXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhdGlvbkZhY3Rvcj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBob3cgbG9uZyBtZXNzYWdlcyBhcmUgcmV0YWluZWQgb24gS2Fma2EgY2x1c3RlcjtcbiAgICpcbiAgICogRm9yIG1vc3QgY2FzZXMsIDcgZGF5cyAoNjA0ODAwMDAwIG1zKSBpcyByZWNvbW1lbmRlZDsgdXAgdG8gMzAgZGF5cyBtYXkgYmUgY29uc2lkZXJlZFxuICAgKiBvbmx5IGZvciBleGNlcHRpb25hbCBzY2VuYXJpb3Mgd2l0aCBzcGVjaWZpYyByZXF1aXJlbWVudHMgYW5kIGNhbiBsZWFkIHRvIGluY3JlYXNlZCBLYWZrYSBzdG9yYWdlIGNvc3RzLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAzIHRvIDMwIGRheXMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHRWYWx1ZSA3IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gJ2ZhbHNlLCB0aGUgdG9waWMncyBkYXRhIHdpbGwgYmUgZGVsZXRlZCBvbiBLYWZrYSAxMCBkYXlzIGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBJZiBzZXQgdG8gJ3RydWUnLCBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbnREZWxldGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IEthZmthVG9waWNNZXRhRGF0YVY0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRvIHRoZSB0b3BpYydzIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBhY2w6IEthZmthQWNsU3RhdGVtZW50O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIHRvcGljIGlzIGxvZyBjb21wYWN0ZWQgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgaXNMb2dDb21wYWN0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE11c3Qgb25seSBiZSBwcm92aWRlZCBpZiAnaXNMb2dDb21wYWN0ZWQnIGlzICd0cnVlJy5cbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzPzogTG9nQ29tcGFjdGlvblByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgdG9waWMgc2hvdWxkIGJlIGJhY2tlZCB1cCBhdXRvbWF0aWNhbGx5IG9yIG5vdC5cbiAgICogSXQgY291bGQganVzdCBiZSBlbmFibGVkLCBpZiB0aGUgdG9waWMgaXMgY29tcGFjdGVkIGFuZCB0aGUgUmVjb3ZlcnlQb2xpY3kgaXMgJ3JlY292ZXJhYmxlJy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IG1hbmFnZWRCYWNrdXBFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gY29tcGFjdGlvbiBsYWcgaW4gbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGEgbWVzc2FnZSBjYW4gYmUgZGVsYXllZCBiZWZvcmUgaXQgaXMgY29tcGFjdGVkLlxuICAgKiBAZGVmYXVsdFZhbHVlIDkyMjMzNzIwMzY4NTQ3NzU4MDdcbiAgICovXG4gIHJlYWRvbmx5IG1heENvbXBhY3Rpb25MYWdNcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgVG9waWNzIHRhcmdldCBhdWRpZW5jZVxuICovXG5leHBvcnQgdHlwZSBUb3BpY0F1ZGllbmNlID0gJ2NvbXBvbmVudC1pbnRlcm5hbCcgfCAnY29tcGFueS1pbnRlcm5hbCc7XG5cbi8qKlxuICogVGhlIFRvcGljcyByZWNvdmVyeSBwb2xpY3kgZ3VhcmFudGVlZCBieSB0aGUgcHJvZHVjZXJcbiAqL1xuZXhwb3J0IHR5cGUgVG9waWNSZWNvdmVyeVBvbGljeSA9ICdub25lJyB8ICdyZWNvdmVyYWJsZSc7XG5cbi8qKlxuICogQ29uc3RydWN0IHRvIGNyZWF0ZSBhIGthZmthIHRvcGljLlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgS2Fma2FUb3BpY1Y0fSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYVRvcGljIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEthZmthVG9waWNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGREZXByZWNhdGlvbignS2Fma2FUb3BpYycsIFwiVXNlICdLYWZrYVRvcGljVjQnIVwiKTtcblxuICAgIG5ldyBDZm5SZXNvdXJjZSh0aGlzLCAnS2Fma2FUb3BpYycsIHtcbiAgICAgIHR5cGU6ICdDdXN0b206OkthZmthVG9waWMnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5tYXBQcm9wZXJ0aWVzKHRoaXMsIHByb3BzKSxcbiAgICAgICAgVmVyc2lvbjogJzMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHZhbGlkYXRvcihwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQ29uc3RydWN0IHRvIGNyZWF0ZSBhIHZlcnNpb24gNCBSSU8gS2Fma2EgdG9waWMuXG4gKlxuICogUHJlZmVyIHRoaXMgY29uc3RydWN0IGZvciBuZXcgdG9waWNzLiBLZWVwIHRoZSBkZWZhdWx0IHJldGVudGlvbiBhbmQgcGFydGl0aW9uIGNvdW50IHVubGVzcyB0aGVyZSBpcyBhIGNvbmNyZXRlXG4gKiBvcGVyYXRpb25hbCByZXF1aXJlbWVudCB0byBjaGFuZ2UgdGhlbS4gUGFydGl0aW9uIGluY3JlYXNlcyBhcmUgcGVybWFuZW50IGFuZCBtYXkgcmVxdWlyZSBjb29yZGluYXRpb24gd2l0aCBDTEFJRFxuICogd2hlbiBzZXJ2aWNlIGxpbWl0cyBhcmUgZXhjZWVkZWQuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBuZXcgS2Fma2FUb3BpY1Y0KHRoaXMsICdFdmVudHNUb3BpYycsIHtcbiAqICAgbmFtZTogJ2JpbGxpbmctdmlldy5ldmVudHMnLFxuICogICBtZXRhZGF0YToge1xuICogICAgIGRlc2NyaXB0aW9uOiAnRG9tYWluIGV2ZW50cyBlbWl0dGVkIGJ5IEJpbGxpbmcgVmlldy4nLFxuICogICAgIGF1ZGllbmNlOiAnY29tcGFueS1pbnRlcm5hbCcsXG4gKiAgICAgcmVjb3ZlcnlQb2xpY3k6ICdyZWNvdmVyYWJsZScsXG4gKiAgIH0sXG4gKiAgIGFjbDoge1xuICogICAgIHdyaXRlOiBbJ2JpbGxpbmctdmlldyddLFxuICogICAgIHJlYWQ6IFsnYmlsbGluZy1jb25zdW1lciddLFxuICogICB9LFxuICogICBpc0xvZ0NvbXBhY3RlZDogZmFsc2UsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgS2Fma2FUb3BpY1Y0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEthZmthVG9waWNWNFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBDZm5SZXNvdXJjZSh0aGlzLCAnS2Fma2FUb3BpYycsIHtcbiAgICAgIHR5cGU6ICdDdXN0b206OkthZmthVG9waWMnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5tYXBQcm9wZXJ0aWVzKHRoaXMsIHByb3BzKSxcbiAgICAgICAgVmVyc2lvbjogJzQnLFxuICAgICAgICBBdWRpZW5jZTogcHJvcHMubWV0YWRhdGEuYXVkaWVuY2UsXG4gICAgICAgIFJlY292ZXJ5UG9saWN5OiBwcm9wcy5tZXRhZGF0YS5yZWNvdmVyeVBvbGljeSxcbiAgICAgICAgTWFuYWdlZEJhY2t1cEVuYWJsZWQ6IHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHZhbGlkYXRvcihwcm9wcykpO1xuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKGJhY2t1cFByb3BlcnRpZXNWYWxpZGF0b3IocHJvcHMpKTtcbiAgfVxufVxuXG5jb25zdCB2YWxpZGF0b3IgPSAocHJvcHM6IEthZmthVG9waWNQcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbGlkYXRlOiAoKTogc3RyaW5nW10gPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgIGlmICghcHJvcHMubmFtZS5tYXRjaCgvXltBLVphLXowLTkuLV0rJC8pKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFtuYW1lXTogZXhwZWN0aW5nIHRvcGljIG5hbWUgdG8gbWF0Y2ggdGhlIHJlZyBleHAgYFtBLVphLXowLTkuLV0rYC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAoIU51bWJlci5pc0ludGVnZXIocHJvcHMubnVtYmVyT2ZQYXJ0aXRpb25zKSB8fCBwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMgPCAxKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgIGBJbnZhbGlkIFtudW1iZXJPZlBhcnRpdGlvbnNdOiBleHBlY3RpbmcgbnVtYmVyIG9mIHBhcnRpdGlvbnMgdG8gYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIGJ1dCBnb3QgJHtwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnN9LmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICghTnVtYmVyLmlzSW50ZWdlcihwcm9wcy5yZXBsaWNhdGlvbkZhY3RvcikgfHwgcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPCAxIHx8IHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yID4gMylcbiAgICAgICkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbcmVwbGljYXRpb25GYWN0b3JdOiBleHBlY3RpbmcgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDMuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghcHJvcHMuaXNMb2dDb21wYWN0ZWQgJiYgcHJvcHMubG9nQ29tcGFjdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW2xvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzXTogbG9nIGNvbXBhY3Rpb24gaXMgZGlzYWJsZWQgc28gcHJvcGVydGllcyBtdXN0IGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9wcy5pc0xvZ0NvbXBhY3RlZCAmJiBwcm9wcy5tYXhDb21wYWN0aW9uTGFnTXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW21heENvbXBhY3Rpb25MYWdNc106IG1heCBjb21wYWN0aW9uIGxhZyBpcyBvbmx5IGFsbG93ZWQgZm9yIGxvZyBjb21wYWN0ZWQgdG9waWNzLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gIH07XG59O1xuXG5jb25zdCBiYWNrdXBQcm9wZXJ0aWVzVmFsaWRhdG9yID0gKHByb3BzOiBLYWZrYVRvcGljVjRQcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbGlkYXRlOiAoKTogc3RyaW5nW10gPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgIGlmIChwcm9wcy5tYW5hZ2VkQmFja3VwRW5hYmxlZCAmJiAhcHJvcHMuaXNMb2dDb21wYWN0ZWQpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW21hbmFnZWRCYWNrdXBFbmFibGVkXTogbWFuYWdlZCBiYWNrdXAgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgbG9nIGNvbXBhY3RlZCB0b3BpY3MuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5tYW5hZ2VkQmFja3VwRW5hYmxlZCAmJiBwcm9wcy5tZXRhZGF0YS5yZWNvdmVyeVBvbGljeSAhPT0gJ3JlY292ZXJhYmxlJykge1xuICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAnSW52YWxpZCBbbWFuYWdlZEJhY2t1cEVuYWJsZWRdOiB0b3BpY3Mgd2l0aCBtYW5hZ2VkQmFja3VwRW5hYmxlZCBoYXZlIHRvIGhhdmUgcmVjb3ZlcnkgcG9saWN5IFwicmVjb3ZlcmFibGVcIi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IG1hcFByb3BlcnRpZXMgPSAoc2NvcGU6IElDb25zdHJ1Y3QsIHByb3BzOiBLYWZrYVRvcGljUHJvcHMgfCBLYWZrYVRvcGljVjRQcm9wcykgPT4ge1xuICBjb25zdCB0ZWFtRW1haWwgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtRW1haWxQYXJhbWV0ZXIoc2NvcGUpLnN0cmluZ1ZhbHVlO1xuXG4gIGlmIChwcm9wcy5tZXRhZGF0YS5ldmVudHM/Lmxlbmd0aCAmJiBwcm9wcy5tZXRhZGF0YS5ldmVudHMubGVuZ3RoID4gMCkge1xuICAgIGNkay5Bbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkRGVwcmVjYXRpb24oXG4gICAgICAnS2Fma2FUb3BpY01ldGFEYXRhLmV2ZW50cycsXG4gICAgICAnRXZlbnRzIGFyZSBubyBsb25nZXIgcHJvdmlkZWQgdGhyb3VnaCB0aGlzIGNvbnN0cnVjdC4gU3BlY2lmeSB0aGUgZXZlbnQgaW4gdGhlIGNhdGFsb2ctaW5mby55YW1sLiBTZWUgdGhlIEJhY2tzdGFnZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLidcbiAgICApO1xuICB9XG4gIGNvbnN0IGRlbGV0ZVJldGVudGlvbkR1cmF0aW9uID0gcHJvcHMubG9nQ29tcGFjdGlvblByb3BlcnRpZXM/LmRlbGV0ZVJldGVudGlvbiA/PyBEdXJhdGlvbi5kYXlzKDcpO1xuICBpZiAocHJvcHMuYWNsLmRlbGV0ZSAhPSB1bmRlZmluZWQgJiYgcHJvcHMuYWNsLmRlbGV0ZS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSBjZGsuQW5ub3RhdGlvbnMub2YoY2RrLlN0YWNrLm9mKHNjb3BlKSk7XG4gICAgYW5ub3RhdGlvbnMuYWRkV2FybmluZ1YyKFxuICAgICAgYEByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMva2Fma2Eva2Fma2EtdG9waWMvJHtwcm9wcy5uYW1lfS9EZWxldGlvblBvbGljeWAsXG4gICAgICBgXG4g4p2MIFlvdSBoYXZlIHNldCBcImRlbGV0ZVwiIHBlcm1pc3Npb24gZm9yIGthZmthLXRvcGljICR7cHJvcHMubmFtZX0uIFlvdSBwcm9iYWJseSBkbyBub3QgbmVlZCB0aGlzLiBQbGVhc2UgdXNlIHRoaXMgb25seSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG5gXG4gICAgKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIFNlcnZpY2VUb2tlbjogJ2Fybjphd3M6c25zOmV1LXdlc3QtMToxODY5OTM3NTc3MzQ6ZHAtdG9waWMtbWFuYWdlci1zbnMtdG9waWMnLFxuICAgIFRvcGljTmFtZTogcHJvcHMubmFtZSxcbiAgICBEZXNjcmlwdGlvbjogcHJvcHMubWV0YWRhdGEuZGVzY3JpcHRpb24sXG4gICAgTnVtYmVyT2ZQYXJ0aXRpb25zOiBwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMgPz8gMyxcbiAgICBSZXBsaWNhdGlvbkZhY3RvcjogcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPz8gMyxcbiAgICBSZXRlbnRpb25NczogKHByb3BzLnJldGVudGlvbiA/PyBEdXJhdGlvbi5kYXlzKDcpKS50b01pbGxpc2Vjb25kcygpLFxuICAgIERlbGV0ZVJldGVudGlvbk1zOiBwcm9wcy5pc0xvZ0NvbXBhY3RlZCA/IGRlbGV0ZVJldGVudGlvbkR1cmF0aW9uLnRvTWlsbGlzZWNvbmRzKCkgOiB1bmRlZmluZWQsXG4gICAgSW5zdGFudERlbGV0aW9uRW5hYmxlZDogcHJvcHMuaW5zdGFudERlbGV0aW9uRW5hYmxlZCA/PyBmYWxzZSxcbiAgICBDbGVhbnVwUG9saWN5OiBwcm9wcy5pc0xvZ0NvbXBhY3RlZCA/ICdjb21wYWN0JyA6ICdkZWxldGUnLFxuICAgIFRlYW1FbWFpbDogdGVhbUVtYWlsLFxuICAgIE1heENvbXBhY3Rpb25MYWdNczogcHJvcHMubWF4Q29tcGFjdGlvbkxhZ01zLFxuICAgIEFDTDoge1xuICAgICAgUmVhZDogcHJvcHMuYWNsLnJlYWQsXG4gICAgICBXcml0ZTogcHJvcHMuYWNsLndyaXRlLFxuICAgICAgRGVsZXRlOiBwcm9wcy5hY2wuZGVsZXRlLFxuICAgIH0sXG4gIH07XG59O1xuIl19
@@ -1,6 +1,6 @@
1
- import * as lambda from 'aws-cdk-lib/aws-lambda';
1
+ import type * as lambda from 'aws-cdk-lib/aws-lambda';
2
2
  import * as lambdaEventSource from 'aws-cdk-lib/aws-lambda-event-sources';
3
- import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
3
+ import type * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
4
4
  /**
5
5
  * Properties for RioKafkaEventSource
6
6
  */
@@ -55,4 +55,4 @@ class RioKafkaEventSource {
55
55
  exports.RioKafkaEventSource = RioKafkaEventSource;
56
56
  _a = JSII_RTTI_SYMBOL_1;
57
57
  RioKafkaEventSource[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.RioKafkaEventSource", version: "0.0.0" };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWthZmthLWV2ZW50LXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rYWZrYS9yaW8ta2Fma2EtZXZlbnQtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsMEVBQTBFO0FBRTFFLDJDQUEyQztBQUUzQywyQ0FBMkM7QUFpQzNDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQWEsbUJBQW1CO0lBQzlCLFlBQW9CLEtBQStCO1FBQS9CLFVBQUssR0FBTCxLQUFLLENBQTBCO0lBQUcsQ0FBQztJQUV2RCxJQUFJLENBQUMsTUFBd0I7UUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUMzRSxNQUFNLEVBQ04sMkJBQTJCLEVBQzNCLDRDQUE0QyxDQUM3QyxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQztZQUNqRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDO1lBQzFFLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixHQUFHO1lBQ0gsVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxHQUFHLENBQUMsY0FBYzthQUM1QjtZQUNELGFBQWE7WUFDYixvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkI7U0FDekYsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMseUJBQXlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQ25ELE1BQU0sRUFDTixrQ0FBa0MsRUFDbEMsZ0VBQWdFLENBQ2pFLENBQUM7UUFDRixNQUFNLENBQUMsSUFBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBbkNILGtEQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsYW1iZGFFdmVudFNvdXJjZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXMnO1xuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3NtJztcblxuaW1wb3J0ICogYXMgcmlvIGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFJpb0thZmthRXZlbnRTb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaW9LYWZrYUV2ZW50U291cmNlUHJvcHMgZXh0ZW5kcyBsYW1iZGFFdmVudFNvdXJjZS5CYXNlU3RyZWFtRXZlbnRTb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgS2Fma2EgdG9waWMgdG8gc3Vic2NyaWJlIHRvXG4gICAqL1xuICByZWFkb25seSB0b3BpYzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNlY3JldCB3aXRoIHRoZSBLYWZrYSBjcmVkZW50aWFscywgc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tc2svbGF0ZXN0L2RldmVsb3Blcmd1aWRlL21zay1hdXRoZW50aWNhdGlvbi5odG1sIGZvciBkZXRhaWxzLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSB0aGUgYGNyZWF0ZS1hbmQtc2lnbi1jZXJ0aWZpY2F0ZWAgc2NyaXB0IGZyb20gdGhlIGBrYWZrYS1pbnRlZ3JhdGlvbmAgdG8gY3JlYXRlIGEgc3VpdGFibGUgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQuXG4gICAqIFNpbXBseSBhZGQgdGhlIGAtLWZxZG4gPGZxZG4+IC0tbGFtYmRhYCBwYXJhbWV0ZXJzIHRvIHRoZSBgY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlYCBzY3JpcHQgYW5kIHRoZSBzY3JpcHQgZ2VuZXJhdGVzIGEgc2VjcmV0IG5hbWVkIGBrYWZrYS1pbnRlZ3JhdGlvbi9tc2stY2VydGlmaWNhdGUvPGZxZG4+YCB3aXRoIGFsbCByZWxldmFudCBkYXRhLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IHdlIGRvIG9ubHkgc3VwcG9ydCB0aGUgYC0tbGFtYmRhYCBwYXJhbWV0ZXIgaWYgdGhlIGAtLWZxZG5gIHBhcmFtZXRlciBpcyBwcmVzZW50LlxuICAgKiBXZSBlbmNvdXJhZ2UgeW91IHRvIHVzZSB0aGUgYC0tZnFkbmAgcGFyYW1ldGVyIGZvciBhbGwgeW91ciBLYWZrYSBjb25zdW1lcnMgYW5kIHByb2R1Y2VycyBhcyB0aGlzIGVhc2VzIHRoZSByZWNvdmVyeSBwcm9jZXNzIGluIHRoZSBjYXNlIG9mIGEgZGlzYXN0ZXIuXG4gICAqIChPdGhlcndpc2UsIGkuZS4sIGlmIHlvdSBkbyBub3QgdXNlIHRoZSBgLS1mcWRuYCBwYXJhbWV0ZXIsIHlvdXIgY2VydGlmaWNhdGVzIENOQU1FIGNvbnRhaW5zIHRoZSBBV1MgYWNjb3VudCBJRCBhbmQgeW91IG5lZWQgdG8gY2hhbmdlIGFsbCBBQ0xzIGluIGNhc2Ugb2YgYSBjb3JydXB0ZWQgQVdTIGFjY291bnQuKVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBLYWZrYSBjb25zdW1lciBncm91cCB0byBqb2luLlxuICAgKiBUaGUgY29uc3VtZXIgZ3JvdXAgSUQgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIHlvdXIgS2Fma2EgZXZlbnQgc291cmNlcy5cbiAgICogQWZ0ZXIgY3JlYXRpbmcgYSBLYWZrYSBldmVudCBzb3VyY2UgbWFwcGluZyB3aXRoIHRoZSBjb25zdW1lciBncm91cCBJRCBzcGVjaWZpZWQsIHlvdSBjYW5ub3QgdXBkYXRlIHRoaXMgdmFsdWUuXG4gICAqIFRoZSB2YWx1ZSBtdXN0IGhhdmUgYSBsZW5naHQgYmV0d2VlbiAxIGFuZCAyMDAgYW5kIGZ1bGwgdGhlIHBhdHRlcm4gJ1thLXpBLVowLTktXFwvKjpfKz0uXFxALV0qJy5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLW1zay5odG1sI3NlcnZpY2VzLW1zay1jb25zdW1lci1ncm91cC1pZFxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3VtZXJHcm91cElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZSB0aGUgUmlvIEthZmthIGFzIGEgc3RyZWFtaW5nIHNvdXJjZSBmb3IgQVdTIExhbWJkYS5cbiAqXG4gKiBgYGBcbiAqICBjb25zdCBsYW1iZGEgPSBuZXcgbm9kZWpzLk5vZGVqc0Z1bmN0aW9uKHRoaXMsICdLYWZrYUNvbnN1bWVyRnVuY3Rpb24nLCB7XG4gKiAgICAgZW50cnk6ICdwYXRoLnRvLmhhbmRsZXIudHMnLFxuICogICAgIGhhbmRsZXI6ICdoYW5kbGVyTmFtZScsXG4gKiAgIH0pO1xuICpcbiAqICAgY29uc3Qgc2VjcmV0ID0gU2VjcmV0LmZyb21TZWNyZXROYW1lVjIodGhpcywgJ0NvbnN1bWVyU2VjcmV0JywgJ2thZmthLWludGVncmF0aW9uL21zay1jZXJ0aWZpY2F0ZS88RlFETj4nKVxuICpcbiAqICAgbGFtYmRhLmFkZEV2ZW50U291cmNlKG5ldyBSaW9LYWZrYUV2ZW50U291cmNlKHtcbiAqICAgICBzZWNyZXQsXG4gKiAgICAgdG9waWM6ICc8VE9QSUMvTkFNRT4nLFxuICogICAgIHN0YXJ0aW5nUG9zaXRpb246IFN0YXJ0aW5nUG9zaXRpb24uVFJJTV9IT1JJWk9OLFxuICogICB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFJpb0thZmthRXZlbnRTb3VyY2UgaW1wbGVtZW50cyBsYW1iZGEuSUV2ZW50U291cmNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9wczogUmlvS2Fma2FFdmVudFNvdXJjZVByb3BzKSB7fVxuXG4gIGJpbmQodGFyZ2V0OiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgYm9vdHN0cmFwU2VydmVyc1BhcmFtZXRlciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICB0YXJnZXQsXG4gICAgICAnQm9vdHN0cmFwU2VydmVyc1BhcmFtZXRlcicsXG4gICAgICAnL2NvbmZpZy9rYWZrYS1pbnRlZ3JhdGlvbi9ib290c3RyYXAtc2VydmVyJ1xuICAgICk7XG5cbiAgICBjb25zdCB2cGMgPSByaW8uUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdFZwYyh0YXJnZXQpO1xuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGFyZ2V0LCAnTGFtYmRhU2VjdXJpdHlHcm91cCcsIHsgdnBjIH0pO1xuXG4gICAgY29uc3QgZGVsZWdhdGUgPSBuZXcgbGFtYmRhRXZlbnRTb3VyY2UuU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlKHtcbiAgICAgIGJvb3RzdHJhcFNlcnZlcnM6IGNkay5Gbi5zcGxpdCgnLCcsIGJvb3RzdHJhcFNlcnZlcnNQYXJhbWV0ZXIuc3RyaW5nVmFsdWUpLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0czogdnBjLnByaXZhdGVTdWJuZXRzLFxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5R3JvdXAsXG4gICAgICBhdXRoZW50aWNhdGlvbk1ldGhvZDogbGFtYmRhRXZlbnRTb3VyY2UuQXV0aGVudGljYXRpb25NZXRob2QuQ0xJRU5UX0NFUlRJRklDQVRFX1RMU19BVVRILFxuICAgIH0pO1xuXG4gICAgZGVsZWdhdGUuYmluZCh0YXJnZXQpO1xuXG4gICAgdGhpcy5wcm9wcy5zZWNyZXQuZ3JhbnRSZWFkKHRhcmdldCk7XG4gICAgYm9vdHN0cmFwU2VydmVyc1BhcmFtZXRlci5ncmFudFJlYWQodGFyZ2V0KTtcblxuICAgIGNvbnN0IHBvbGljeSA9IGlhbS5NYW5hZ2VkUG9saWN5LmZyb21NYW5hZ2VkUG9saWN5QXJuKFxuICAgICAgdGFyZ2V0LFxuICAgICAgJ01hbmFnZWRBV1NMYW1iZGFNU0tFeGVjdXRpb25Sb2xlJyxcbiAgICAgICdhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhTVNLRXhlY3V0aW9uUm9sZSdcbiAgICApO1xuICAgIHRhcmdldC5yb2xlIS5hZGRNYW5hZ2VkUG9saWN5KHBvbGljeSk7XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWthZmthLWV2ZW50LXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rYWZrYS9yaW8ta2Fma2EtZXZlbnQtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsMEVBQTBFO0FBRTFFLDJDQUEyQztBQUUzQywyQ0FBMkM7QUFpQzNDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQWEsbUJBQW1CO0lBQzlCLFlBQW9CLEtBQStCO1FBQS9CLFVBQUssR0FBTCxLQUFLLENBQTBCO0lBQUcsQ0FBQztJQUV2RCxJQUFJLENBQUMsTUFBd0I7UUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUMzRSxNQUFNLEVBQ04sMkJBQTJCLEVBQzNCLDRDQUE0QyxDQUM3QyxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQztZQUNqRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDO1lBQzFFLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixHQUFHO1lBQ0gsVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxHQUFHLENBQUMsY0FBYzthQUM1QjtZQUNELGFBQWE7WUFDYixvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkI7U0FDekYsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMseUJBQXlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQ25ELE1BQU0sRUFDTixrQ0FBa0MsRUFDbEMsZ0VBQWdFLENBQ2pFLENBQUM7UUFDRixNQUFNLENBQUMsSUFBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBbkNILGtEQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxhbWJkYUV2ZW50U291cmNlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlcyc7XG5pbXBvcnQgdHlwZSAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5cbmltcG9ydCAqIGFzIHJpbyBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBSaW9LYWZrYUV2ZW50U291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlvS2Fma2FFdmVudFNvdXJjZVByb3BzIGV4dGVuZHMgbGFtYmRhRXZlbnRTb3VyY2UuQmFzZVN0cmVhbUV2ZW50U291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIEthZmthIHRvcGljIHRvIHN1YnNjcmliZSB0b1xuICAgKi9cbiAgcmVhZG9ubHkgdG9waWM6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQgd2l0aCB0aGUgS2Fma2EgY3JlZGVudGlhbHMsIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbXNrL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9tc2stYXV0aGVudGljYXRpb24uaHRtbCBmb3IgZGV0YWlscy5cbiAgICpcbiAgICogWW91IGNhbiB1c2UgdGhlIGBjcmVhdGUtYW5kLXNpZ24tY2VydGlmaWNhdGVgIHNjcmlwdCBmcm9tIHRoZSBga2Fma2EtaW50ZWdyYXRpb25gIHRvIGNyZWF0ZSBhIHN1aXRhYmxlIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0LlxuICAgKiBTaW1wbHkgYWRkIHRoZSBgLS1mcWRuIDxmcWRuPiAtLWxhbWJkYWAgcGFyYW1ldGVycyB0byB0aGUgYGNyZWF0ZS1hbmQtc2lnbi1jZXJ0aWZpY2F0ZWAgc2NyaXB0IGFuZCB0aGUgc2NyaXB0IGdlbmVyYXRlcyBhIHNlY3JldCBuYW1lZCBga2Fma2EtaW50ZWdyYXRpb24vbXNrLWNlcnRpZmljYXRlLzxmcWRuPmAgd2l0aCBhbGwgcmVsZXZhbnQgZGF0YS5cbiAgICpcbiAgICogUGxlYXNlIG5vdGUgdGhhdCB3ZSBkbyBvbmx5IHN1cHBvcnQgdGhlIGAtLWxhbWJkYWAgcGFyYW1ldGVyIGlmIHRoZSBgLS1mcWRuYCBwYXJhbWV0ZXIgaXMgcHJlc2VudC5cbiAgICogV2UgZW5jb3VyYWdlIHlvdSB0byB1c2UgdGhlIGAtLWZxZG5gIHBhcmFtZXRlciBmb3IgYWxsIHlvdXIgS2Fma2EgY29uc3VtZXJzIGFuZCBwcm9kdWNlcnMgYXMgdGhpcyBlYXNlcyB0aGUgcmVjb3ZlcnkgcHJvY2VzcyBpbiB0aGUgY2FzZSBvZiBhIGRpc2FzdGVyLlxuICAgKiAoT3RoZXJ3aXNlLCBpLmUuLCBpZiB5b3UgZG8gbm90IHVzZSB0aGUgYC0tZnFkbmAgcGFyYW1ldGVyLCB5b3VyIGNlcnRpZmljYXRlcyBDTkFNRSBjb250YWlucyB0aGUgQVdTIGFjY291bnQgSUQgYW5kIHlvdSBuZWVkIHRvIGNoYW5nZSBhbGwgQUNMcyBpbiBjYXNlIG9mIGEgY29ycnVwdGVkIEFXUyBhY2NvdW50LilcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgS2Fma2EgY29uc3VtZXIgZ3JvdXAgdG8gam9pbi5cbiAgICogVGhlIGNvbnN1bWVyIGdyb3VwIElEIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCB5b3VyIEthZmthIGV2ZW50IHNvdXJjZXMuXG4gICAqIEFmdGVyIGNyZWF0aW5nIGEgS2Fma2EgZXZlbnQgc291cmNlIG1hcHBpbmcgd2l0aCB0aGUgY29uc3VtZXIgZ3JvdXAgSUQgc3BlY2lmaWVkLCB5b3UgY2Fubm90IHVwZGF0ZSB0aGlzIHZhbHVlLlxuICAgKiBUaGUgdmFsdWUgbXVzdCBoYXZlIGEgbGVuZ2h0IGJldHdlZW4gMSBhbmQgMjAwIGFuZCBmdWxsIHRoZSBwYXR0ZXJuICdbYS16QS1aMC05LVxcLyo6Xys9LlxcQC1dKicuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1tc2suaHRtbCNzZXJ2aWNlcy1tc2stY29uc3VtZXItZ3JvdXAtaWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN1bWVyR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2UgdGhlIFJpbyBLYWZrYSBhcyBhIHN0cmVhbWluZyBzb3VyY2UgZm9yIEFXUyBMYW1iZGEuXG4gKlxuICogYGBgXG4gKiAgY29uc3QgbGFtYmRhID0gbmV3IG5vZGVqcy5Ob2RlanNGdW5jdGlvbih0aGlzLCAnS2Fma2FDb25zdW1lckZ1bmN0aW9uJywge1xuICogICAgIGVudHJ5OiAncGF0aC50by5oYW5kbGVyLnRzJyxcbiAqICAgICBoYW5kbGVyOiAnaGFuZGxlck5hbWUnLFxuICogICB9KTtcbiAqXG4gKiAgIGNvbnN0IHNlY3JldCA9IFNlY3JldC5mcm9tU2VjcmV0TmFtZVYyKHRoaXMsICdDb25zdW1lclNlY3JldCcsICdrYWZrYS1pbnRlZ3JhdGlvbi9tc2stY2VydGlmaWNhdGUvPEZRRE4+JylcbiAqXG4gKiAgIGxhbWJkYS5hZGRFdmVudFNvdXJjZShuZXcgUmlvS2Fma2FFdmVudFNvdXJjZSh7XG4gKiAgICAgc2VjcmV0LFxuICogICAgIHRvcGljOiAnPFRPUElDL05BTUU+JyxcbiAqICAgICBzdGFydGluZ1Bvc2l0aW9uOiBTdGFydGluZ1Bvc2l0aW9uLlRSSU1fSE9SSVpPTixcbiAqICAgfSkpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSaW9LYWZrYUV2ZW50U291cmNlIGltcGxlbWVudHMgbGFtYmRhLklFdmVudFNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvcHM6IFJpb0thZmthRXZlbnRTb3VyY2VQcm9wcykge31cblxuICBiaW5kKHRhcmdldDogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGJvb3RzdHJhcFNlcnZlcnNQYXJhbWV0ZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKFxuICAgICAgdGFyZ2V0LFxuICAgICAgJ0Jvb3RzdHJhcFNlcnZlcnNQYXJhbWV0ZXInLFxuICAgICAgJy9jb25maWcva2Fma2EtaW50ZWdyYXRpb24vYm9vdHN0cmFwLXNlcnZlcidcbiAgICApO1xuXG4gICAgY29uc3QgdnBjID0gcmlvLlJpb0xhbmRpbmdab25lLmdldERlZmF1bHRWcGModGFyZ2V0KTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRhcmdldCwgJ0xhbWJkYVNlY3VyaXR5R3JvdXAnLCB7IHZwYyB9KTtcblxuICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IGxhbWJkYUV2ZW50U291cmNlLlNlbGZNYW5hZ2VkS2Fma2FFdmVudFNvdXJjZSh7XG4gICAgICBib290c3RyYXBTZXJ2ZXJzOiBjZGsuRm4uc3BsaXQoJywnLCBib290c3RyYXBTZXJ2ZXJzUGFyYW1ldGVyLnN0cmluZ1ZhbHVlKSxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB2cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7XG4gICAgICAgIHN1Ym5ldHM6IHZwYy5wcml2YXRlU3VibmV0cyxcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUdyb3VwLFxuICAgICAgYXV0aGVudGljYXRpb25NZXRob2Q6IGxhbWJkYUV2ZW50U291cmNlLkF1dGhlbnRpY2F0aW9uTWV0aG9kLkNMSUVOVF9DRVJUSUZJQ0FURV9UTFNfQVVUSCxcbiAgICB9KTtcblxuICAgIGRlbGVnYXRlLmJpbmQodGFyZ2V0KTtcblxuICAgIHRoaXMucHJvcHMuc2VjcmV0LmdyYW50UmVhZCh0YXJnZXQpO1xuICAgIGJvb3RzdHJhcFNlcnZlcnNQYXJhbWV0ZXIuZ3JhbnRSZWFkKHRhcmdldCk7XG5cbiAgICBjb25zdCBwb2xpY3kgPSBpYW0uTWFuYWdlZFBvbGljeS5mcm9tTWFuYWdlZFBvbGljeUFybihcbiAgICAgIHRhcmdldCxcbiAgICAgICdNYW5hZ2VkQVdTTGFtYmRhTVNLRXhlY3V0aW9uUm9sZScsXG4gICAgICAnYXJuOmF3czppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYU1TS0V4ZWN1dGlvblJvbGUnXG4gICAgKTtcbiAgICB0YXJnZXQucm9sZSEuYWRkTWFuYWdlZFBvbGljeShwb2xpY3kpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { IPipeline } from 'aws-cdk-lib/aws-codepipeline';
2
- import { PipelineBase } from 'aws-cdk-lib/pipelines';
1
+ import type { IPipeline } from 'aws-cdk-lib/aws-codepipeline';
2
+ import type { PipelineBase } from 'aws-cdk-lib/pipelines';
3
3
  type PipelineType = IPipeline | PipelineBase;
4
4
  /**
5
5
  * CodePipeline tag used by delivery-performance-monitoring to override
@@ -46,4 +46,4 @@ DeliveryPerformanceMonitoringOverride[_a] = { fqn: "@rio-cloud/cdk-v2-constructs
46
46
  function applyDeliveryPerformanceMonitoringOverride(target, value) {
47
47
  aws_cdk_lib_1.Tags.of(target).add(exports.DELIVERY_PERFORMANCE_MONITORING_TAG, value);
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZy1vdmVycmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9kZWxpdmVyeS1wZXJmb3JtYW5jZS1tb25pdG9yaW5nLW92ZXJyaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQW1DO0FBTW5DOzs7OztHQUtHO0FBQ1UsUUFBQSxtQ0FBbUMsR0FBRyxpQ0FBaUMsQ0FBQztBQUVyRjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEscUNBQXFDO0lBQ2hEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQywwQ0FBMEMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQywwQ0FBMEMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7QUFiSCxzRkFjQzs7O0FBRUQsU0FBUywwQ0FBMEMsQ0FBQyxNQUFvQixFQUFFLEtBQTRCO0lBQ3BHLGtCQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElQaXBlbGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUnO1xuaW1wb3J0IHsgUGlwZWxpbmVCYXNlIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcblxudHlwZSBQaXBlbGluZVR5cGUgPSBJUGlwZWxpbmUgfCBQaXBlbGluZUJhc2U7XG5cbi8qKlxuICogQ29kZVBpcGVsaW5lIHRhZyB1c2VkIGJ5IGRlbGl2ZXJ5LXBlcmZvcm1hbmNlLW1vbml0b3JpbmcgdG8gb3ZlcnJpZGVcbiAqIHdoZXRoZXIgYSBwaXBlbGluZSBleGVjdXRpb24gc2hvdWxkIGJlIHJlcG9ydGVkIHRvIERhdGFkb2cgRE9SQS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vYml0YnVja2V0LmNvbGxhYm9yYXRpb24tbWFuLmNvbS9wcm9qZWN0cy9SSU9ERVYvcmVwb3MvZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZy9icm93c2VcbiAqL1xuZXhwb3J0IGNvbnN0IERFTElWRVJZX1BFUkZPUk1BTkNFX01PTklUT1JJTkdfVEFHID0gJ2RlbGl2ZXJ5X3BlcmZvcm1hbmNlX21vbml0b3JpbmcnO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIGhlbHBlcnMgdG8gZW5mb3JjZSBpbmNsdWRpbmcgb3IgZXhjbHVkaW5nIENvZGVQaXBlbGluZSBwaXBlbGluZXNcbiAqIGZyb20gZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZyByZWdhcmRsZXNzIG9mIHRoZSBkZWZhdWx0IGRldGVjdGlvbiBtZWNoYW5pc20uXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IERlbGl2ZXJ5UGVyZm9ybWFuY2VNb25pdG9yaW5nT3ZlcnJpZGUgfSBmcm9tICdAcmlvLWNsb3VkL2Nkay12Mi1jb25zdHJ1Y3RzJ1xuICogaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tICcuL3BpcGVsaW5lJ1xuICpcbiAqIERlbGl2ZXJ5UGVyZm9ybWFuY2VNb25pdG9yaW5nT3ZlcnJpZGUuaW5jbHVkZShwaXBlbGluZSlcbiAqIERlbGl2ZXJ5UGVyZm9ybWFuY2VNb25pdG9yaW5nT3ZlcnJpZGUuZXhjbHVkZShwaXBlbGluZSlcbiAqIGBgYFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9iaXRidWNrZXQuY29sbGFib3JhdGlvbi1tYW4uY29tL3Byb2plY3RzL1JJT0RFVi9yZXBvcy9kZWxpdmVyeS1wZXJmb3JtYW5jZS1tb25pdG9yaW5nL2Jyb3dzZVxuICovXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQZXJmb3JtYW5jZU1vbml0b3JpbmdPdmVycmlkZSB7XG4gIC8qKlxuICAgKiBNYXJrcyB0aGUgcGlwZWxpbmUgYXMgYWx3YXlzIHRyYWNrZWQgYnkgZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZyBhY2NvdW50LW1vZHVsZS5cbiAgICovXG4gIHN0YXRpYyBpbmNsdWRlKHRhcmdldDogUGlwZWxpbmVUeXBlKTogdm9pZCB7XG4gICAgYXBwbHlEZWxpdmVyeVBlcmZvcm1hbmNlTW9uaXRvcmluZ092ZXJyaWRlKHRhcmdldCwgJ2luY2x1ZGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyB0aGUgcGlwZWxpbmUgYXMgbmV2ZXIgdHJhY2tlZCBieSBkZWxpdmVyeS1wZXJmb3JtYW5jZS1tb25pdG9yaW5nLlxuICAgKi9cbiAgc3RhdGljIGV4Y2x1ZGUodGFyZ2V0OiBQaXBlbGluZVR5cGUpOiB2b2lkIHtcbiAgICBhcHBseURlbGl2ZXJ5UGVyZm9ybWFuY2VNb25pdG9yaW5nT3ZlcnJpZGUodGFyZ2V0LCAnZXhjbHVkZScpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGx5RGVsaXZlcnlQZXJmb3JtYW5jZU1vbml0b3JpbmdPdmVycmlkZSh0YXJnZXQ6IFBpcGVsaW5lVHlwZSwgdmFsdWU6ICdpbmNsdWRlJyB8ICdleGNsdWRlJyk6IHZvaWQge1xuICBUYWdzLm9mKHRhcmdldCkuYWRkKERFTElWRVJZX1BFUkZPUk1BTkNFX01PTklUT1JJTkdfVEFHLCB2YWx1ZSk7XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZy1vdmVycmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9kZWxpdmVyeS1wZXJmb3JtYW5jZS1tb25pdG9yaW5nLW92ZXJyaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQW1DO0FBTW5DOzs7OztHQUtHO0FBQ1UsUUFBQSxtQ0FBbUMsR0FBRyxpQ0FBaUMsQ0FBQztBQUVyRjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEscUNBQXFDO0lBQ2hEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQywwQ0FBMEMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQywwQ0FBMEMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7QUFiSCxzRkFjQzs7O0FBRUQsU0FBUywwQ0FBMEMsQ0FBQyxNQUFvQixFQUFFLEtBQTRCO0lBQ3BHLGtCQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgSVBpcGVsaW5lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZSc7XG5pbXBvcnQgdHlwZSB7IFBpcGVsaW5lQmFzZSB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5cbnR5cGUgUGlwZWxpbmVUeXBlID0gSVBpcGVsaW5lIHwgUGlwZWxpbmVCYXNlO1xuXG4vKipcbiAqIENvZGVQaXBlbGluZSB0YWcgdXNlZCBieSBkZWxpdmVyeS1wZXJmb3JtYW5jZS1tb25pdG9yaW5nIHRvIG92ZXJyaWRlXG4gKiB3aGV0aGVyIGEgcGlwZWxpbmUgZXhlY3V0aW9uIHNob3VsZCBiZSByZXBvcnRlZCB0byBEYXRhZG9nIERPUkEuXG4gKlxuICogQHNlZSBodHRwczovL2JpdGJ1Y2tldC5jb2xsYWJvcmF0aW9uLW1hbi5jb20vcHJvamVjdHMvUklPREVWL3JlcG9zL2RlbGl2ZXJ5LXBlcmZvcm1hbmNlLW1vbml0b3JpbmcvYnJvd3NlXG4gKi9cbmV4cG9ydCBjb25zdCBERUxJVkVSWV9QRVJGT1JNQU5DRV9NT05JVE9SSU5HX1RBRyA9ICdkZWxpdmVyeV9wZXJmb3JtYW5jZV9tb25pdG9yaW5nJztcblxuLyoqXG4gKiBDb252ZW5pZW5jZSBoZWxwZXJzIHRvIGVuZm9yY2UgaW5jbHVkaW5nIG9yIGV4Y2x1ZGluZyBDb2RlUGlwZWxpbmUgcGlwZWxpbmVzXG4gKiBmcm9tIGRlbGl2ZXJ5LXBlcmZvcm1hbmNlLW1vbml0b3JpbmcgcmVnYXJkbGVzcyBvZiB0aGUgZGVmYXVsdCBkZXRlY3Rpb24gbWVjaGFuaXNtLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBEZWxpdmVyeVBlcmZvcm1hbmNlTW9uaXRvcmluZ092ZXJyaWRlIH0gZnJvbSAnQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0cydcbiAqIGltcG9ydCB7IHBpcGVsaW5lIH0gZnJvbSAnLi9waXBlbGluZSdcbiAqXG4gKiBEZWxpdmVyeVBlcmZvcm1hbmNlTW9uaXRvcmluZ092ZXJyaWRlLmluY2x1ZGUocGlwZWxpbmUpXG4gKiBEZWxpdmVyeVBlcmZvcm1hbmNlTW9uaXRvcmluZ092ZXJyaWRlLmV4Y2x1ZGUocGlwZWxpbmUpXG4gKiBgYGBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vYml0YnVja2V0LmNvbGxhYm9yYXRpb24tbWFuLmNvbS9wcm9qZWN0cy9SSU9ERVYvcmVwb3MvZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZy9icm93c2VcbiAqL1xuZXhwb3J0IGNsYXNzIERlbGl2ZXJ5UGVyZm9ybWFuY2VNb25pdG9yaW5nT3ZlcnJpZGUge1xuICAvKipcbiAgICogTWFya3MgdGhlIHBpcGVsaW5lIGFzIGFsd2F5cyB0cmFja2VkIGJ5IGRlbGl2ZXJ5LXBlcmZvcm1hbmNlLW1vbml0b3JpbmcgYWNjb3VudC1tb2R1bGUuXG4gICAqL1xuICBzdGF0aWMgaW5jbHVkZSh0YXJnZXQ6IFBpcGVsaW5lVHlwZSk6IHZvaWQge1xuICAgIGFwcGx5RGVsaXZlcnlQZXJmb3JtYW5jZU1vbml0b3JpbmdPdmVycmlkZSh0YXJnZXQsICdpbmNsdWRlJyk7XG4gIH1cblxuICAvKipcbiAgICogTWFya3MgdGhlIHBpcGVsaW5lIGFzIG5ldmVyIHRyYWNrZWQgYnkgZGVsaXZlcnktcGVyZm9ybWFuY2UtbW9uaXRvcmluZy5cbiAgICovXG4gIHN0YXRpYyBleGNsdWRlKHRhcmdldDogUGlwZWxpbmVUeXBlKTogdm9pZCB7XG4gICAgYXBwbHlEZWxpdmVyeVBlcmZvcm1hbmNlTW9uaXRvcmluZ092ZXJyaWRlKHRhcmdldCwgJ2V4Y2x1ZGUnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBseURlbGl2ZXJ5UGVyZm9ybWFuY2VNb25pdG9yaW5nT3ZlcnJpZGUodGFyZ2V0OiBQaXBlbGluZVR5cGUsIHZhbHVlOiAnaW5jbHVkZScgfCAnZXhjbHVkZScpOiB2b2lkIHtcbiAgVGFncy5vZih0YXJnZXQpLmFkZChERUxJVkVSWV9QRVJGT1JNQU5DRV9NT05JVE9SSU5HX1RBRywgdmFsdWUpO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import * as pipelines from 'aws-cdk-lib/pipelines';
2
- import { Construct } from 'constructs';
2
+ import type { Construct } from 'constructs';
3
3
  export interface RioSecretsDeployStepProps {
4
4
  /**
5
5
  * Points to CodePipeline source step
@@ -53,11 +53,11 @@ function getCodeBuildCommands(region, userDefinedSecretsFilePath) {
53
53
  'wget --quiet https://github.com/mozilla/sops/releases/download/v3.7.1/sops_3.7.1_amd64.deb',
54
54
  'apt-get --quiet install ./sops_3.7.1_amd64.deb',
55
55
  ...determineSecretsFilePathCommandsForCodeBuild(userDefinedSecretsFilePath),
56
- 'echo "Using the following secrets file: \${SECRETS_FILE_PATH}"',
56
+ 'echo "Using the following secrets file: ${SECRETS_FILE_PATH}"',
57
57
  `PAYLOAD=$(sops --output-type json --decrypt \${${SECRETS_FILE_PATH_ENVIRONMENT_VARIABLE}})`,
58
- `LAMBDA_ERROR=$(aws lambda invoke --function-name "SecretsRestoreHandler" --payload \"\${PAYLOAD}\" --cli-binary-format raw-in-base64-out --region ${region} output | jq 'has("FunctionError")')`,
58
+ `LAMBDA_ERROR=$(aws lambda invoke --function-name "SecretsRestoreHandler" --payload "\${PAYLOAD}" --cli-binary-format raw-in-base64-out --region ${region} output | jq 'has("FunctionError")')`,
59
59
  // eslint-disable-next-line quotes
60
- `if [ "\${LAMBDA_ERROR}" = 'true' ]; then echo 'The \'SecretsRestoreHandler\' lambda failed with an error. Check the Cloudwatch logs \'/aws/lambda/SecretsRestoreHandler\' for more information'; exit 1; fi`,
60
+ `if [ "\${LAMBDA_ERROR}" = 'true' ]; then echo 'The 'SecretsRestoreHandler' lambda failed with an error. Check the Cloudwatch logs '/aws/lambda/SecretsRestoreHandler' for more information'; exit 1; fi`,
61
61
  ];
62
62
  }
63
63
  function getCodeBuildRolePolicyStatements(account) {
@@ -94,4 +94,4 @@ function determineSecretsFilePathCommandsForCodeBuild(userDefinedSecretsFilePath
94
94
  ];
95
95
  }
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWJhY2t1cC1zZWNyZXRzLXJlc3RvcmUtc3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvcmlvLWJhY2t1cC1zZWNyZXRzLXJlc3RvcmUtc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQWlCbkQsTUFBYSxvQkFBcUIsU0FBUSxTQUFTLENBQUMsYUFBYTtJQUMvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLEdBQUcsNEJBQTRCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDO1NBQ2hILENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNUJILG9EQTZCQzs7O0FBRUQsU0FBUyw0QkFBNEIsQ0FDbkMsT0FBZSxFQUNmLE1BQWMsRUFDZCwwQkFBOEM7SUFFOUMsT0FBTztRQUNMLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUM7UUFDbEUsb0JBQW9CLEVBQUUsZ0NBQWdDLENBQUMsT0FBTyxDQUFDO0tBQ2hFLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxzQ0FBc0MsR0FBRyxtQkFBbUIsQ0FBQztBQUVuRSxTQUFTLG9CQUFvQixDQUFDLE1BQWMsRUFBRSwwQkFBOEM7SUFDMUYsT0FBTztRQUNMLHdFQUF3RTtRQUN4RSx3QkFBd0I7UUFDeEIsNEZBQTRGO1FBQzVGLGdEQUFnRDtRQUNoRCxHQUFHLDRDQUE0QyxDQUFDLDBCQUEwQixDQUFDO1FBQzNFLGdFQUFnRTtRQUNoRSxrREFBa0Qsc0NBQXNDLElBQUk7UUFDNUYscUpBQXFKLE1BQU0sc0NBQXNDO1FBQ2pNLGtDQUFrQztRQUNsQyw2TUFBNk07S0FDOU0sQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUFDLE9BQWU7SUFDdkQsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUMzQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDeEIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLGVBQWUsUUFBUSxFQUFFLGlCQUFpQixPQUFPLFFBQVEsQ0FBQztRQUN2RixVQUFVLEVBQUU7WUFDVix3QkFBd0IsRUFBRTtnQkFDeEIscUJBQXFCLEVBQUUsMEJBQTBCO2FBQ2xEO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFDSCxNQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN2RCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztRQUNsQyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsT0FBTyxpQ0FBaUMsQ0FBQztLQUNsRixDQUFDLENBQUM7SUFDSCxPQUFPLENBQUMsWUFBWSxFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELFNBQVMsNENBQTRDLENBQUMsMEJBQThDO0lBQ2xHLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUFDO0lBQzlDLE1BQU0sd0JBQXdCLEdBQUcsZ0NBQWdDLHNCQUFzQixFQUFFLENBQUM7SUFDMUYsTUFBTSx3QkFBd0IsR0FBRyxpQkFBaUIsc0JBQXNCLEVBQUUsQ0FBQztJQUMzRSxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDL0IsT0FBTztZQUNMLHlDQUF5QywwQkFBMEIsR0FBRztZQUN0RSxVQUFVLHNDQUFzQyxLQUFLLDBCQUEwQixHQUFHO1NBQ25GLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU87WUFDTCx5RUFBeUUsQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHO1lBQ2hJLFlBQVksd0JBQXdCLG9CQUFvQixzQ0FBc0MsS0FBSyx3QkFBd0Isa0JBQWtCLHNDQUFzQyxLQUFLLHdCQUF3QixPQUFPO1NBQ3hOLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBwaXBlbGluZXMgZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHMge1xuICAvKipcbiAgICogUG9pbnRzIHRvIENvZGVQaXBlbGluZSBzb3VyY2Ugc3RlcFxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ6IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmVTb3VyY2U7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHNlY3JldHMgZmlsZSBjb250YWluaW5nIGVuY3J5cHRlZCBzZWNyZXRzXG4gICAqIEBkZWZhdWx0VmFsdWUgTG9va3MgZm9yIGZpbGUgdW5kZXIgMiBwYXRocyB3aXRoIHRoZSBmb2xsb3dpbmcgcHJpb3JpdHk6XG4gICAqIDEuIC4vaW5mcmFzdHJ1Y3R1cmUvc3JjL3NlY3JldHMvc2VjcmV0cy55YW1sIGZvbGxvd2VkIGJ5IHBhdGhcbiAgICogMi4gLi9zcmMvc2VjcmV0cy9zZWNyZXRzLnlhbWxcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNGaWxlUGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFJpb1NlY3JldHNEZXBsb3lTdGVwIGV4dGVuZHMgcGlwZWxpbmVzLkNvZGVCdWlsZFN0ZXAge1xuICAvKipcbiAgICogQ3JlYXRlcyBhbmQgYXR0YWNoZXMgYSBjb2RlYnVpbGQgcHJvamVjdCB0byB0aGUgcGlwZWxpbmUgd2hpY2ggbG9va3MgZm9yIHNlY3JldHMueWFtbCB1bmRlciBmaXJzdCAuL2luZnJhc3RydWN0dXJlL3NyYy9zZWNyZXRzIGFuZCB0aGVuIC4vc3JjL3NlY3JldHMuXG4gICAqIFRoZSBzZWNyZXRzIGFyZSB0aGVuIHVwbG9hZGVkIHRvIFNTTSBhbmQgU2VjcmV0cyBNYW5hZ2VyIGFjY29yZGluZyB0byB0aGUgZGF0YSBpbiBzZWNyZXRzLnlhbWxcbiAgICogVGhlIEZvcm1hdCBvZiBzZWNyZXRzIGZpbGUgc2hvdWxkIGJlIGxpa2UgdGhlIGZvbGxvd2luZyBleGFtcGxlIGluIHlhbWw6XG4gICAqXG4gICAqIC0tLVxuICAgKiBTU006XG4gICAqXG4gICAqICAgICAgICAgL2NvbmZpZy9hcHBsaWNhdGlvbi9zZWNyZXQ6IHBhc3N3b3JkXG4gICAqXG4gICAqICAgICAgICAgL2NvbmZpZy9hcHBsaWNhdGlvbjIvc2VjcmV0OiBwYXNzd29yZFxuICAgKlxuICAgKiBTZWNyZXRzTWFuYWdlcjpcbiAgICpcbiAgICogICAgICAgICBwbGFpbl90ZXh0X3NlY3JldDogdmFsdWVcbiAgICpcbiAgICogICAgICAgICBqc29uX3NlY3JldDpcbiAgICpcbiAgICogICAgICAgICAgICAga2V5MTogdmFsdWUxXG4gICAqXG4gICAqICAgICAgICAgICAgIGtleTI6IHZhbHVlMlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHMpIHtcbiAgICBzdXBlcihpZCwge1xuICAgICAgaW5wdXQ6IHByb3BzLmlucHV0LFxuICAgICAgLi4uZ2V0Q29tbW9uQ29kZUJ1aWxkUHJvcGVydGllcyhjZGsuU3RhY2sub2Yoc2NvcGUpLmFjY291bnQsIGNkay5TdGFjay5vZihzY29wZSkucmVnaW9uLCBwcm9wcy5zZWNyZXRzRmlsZVBhdGgpLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldENvbW1vbkNvZGVCdWlsZFByb3BlcnRpZXMoXG4gIGFjY291bnQ6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHVzZXJEZWZpbmVkU2VjcmV0c0ZpbGVQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWRcbik6IFBpY2s8cGlwZWxpbmVzLkNvZGVCdWlsZFN0ZXBQcm9wcywgJ2NvbW1hbmRzJyB8ICdyb2xlUG9saWN5U3RhdGVtZW50cyc+IHtcbiAgcmV0dXJuIHtcbiAgICBjb21tYW5kczogZ2V0Q29kZUJ1aWxkQ29tbWFuZHMocmVnaW9uLCB1c2VyRGVmaW5lZFNlY3JldHNGaWxlUGF0aCksXG4gICAgcm9sZVBvbGljeVN0YXRlbWVudHM6IGdldENvZGVCdWlsZFJvbGVQb2xpY3lTdGF0ZW1lbnRzKGFjY291bnQpLFxuICB9O1xufVxuXG5jb25zdCBTRUNSRVRTX0ZJTEVfUEFUSF9FTlZJUk9OTUVOVF9WQVJJQUJMRSA9ICdTRUNSRVRTX0ZJTEVfUEFUSCc7XG5cbmZ1bmN0aW9uIGdldENvZGVCdWlsZENvbW1hbmRzKHJlZ2lvbjogc3RyaW5nLCB1c2VyRGVmaW5lZFNlY3JldHNGaWxlUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nW10ge1xuICByZXR1cm4gW1xuICAgICdjdXJsIC1zUyBodHRwczovL2RsLnlhcm5wa2cuY29tL2RlYmlhbi9wdWJrZXkuZ3BnIHwgc3VkbyBhcHQta2V5IGFkZCAtJyxcbiAgICAnYXB0LWdldCAtLXF1aWV0IHVwZGF0ZScsXG4gICAgJ3dnZXQgLS1xdWlldCBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3BzL3JlbGVhc2VzL2Rvd25sb2FkL3YzLjcuMS9zb3BzXzMuNy4xX2FtZDY0LmRlYicsXG4gICAgJ2FwdC1nZXQgLS1xdWlldCBpbnN0YWxsIC4vc29wc18zLjcuMV9hbWQ2NC5kZWInLFxuICAgIC4uLmRldGVybWluZVNlY3JldHNGaWxlUGF0aENvbW1hbmRzRm9yQ29kZUJ1aWxkKHVzZXJEZWZpbmVkU2VjcmV0c0ZpbGVQYXRoKSxcbiAgICAnZWNobyBcIlVzaW5nIHRoZSBmb2xsb3dpbmcgc2VjcmV0cyBmaWxlOiBcXCR7U0VDUkVUU19GSUxFX1BBVEh9XCInLFxuICAgIGBQQVlMT0FEPSQoc29wcyAtLW91dHB1dC10eXBlIGpzb24gLS1kZWNyeXB0IFxcJHske1NFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFfX0pYCxcbiAgICBgTEFNQkRBX0VSUk9SPSQoYXdzIGxhbWJkYSBpbnZva2UgLS1mdW5jdGlvbi1uYW1lIFwiU2VjcmV0c1Jlc3RvcmVIYW5kbGVyXCIgLS1wYXlsb2FkIFxcXCJcXCR7UEFZTE9BRH1cXFwiIC0tY2xpLWJpbmFyeS1mb3JtYXQgcmF3LWluLWJhc2U2NC1vdXQgLS1yZWdpb24gJHtyZWdpb259IG91dHB1dCB8IGpxICdoYXMoXCJGdW5jdGlvbkVycm9yXCIpJylgLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBxdW90ZXNcbiAgICBgaWYgWyBcIlxcJHtMQU1CREFfRVJST1J9XCIgPSAndHJ1ZScgXTsgdGhlbiBlY2hvICdUaGUgXFwnU2VjcmV0c1Jlc3RvcmVIYW5kbGVyXFwnIGxhbWJkYSBmYWlsZWQgd2l0aCBhbiBlcnJvci4gQ2hlY2sgdGhlIENsb3Vkd2F0Y2ggbG9ncyBcXCcvYXdzL2xhbWJkYS9TZWNyZXRzUmVzdG9yZUhhbmRsZXJcXCcgZm9yIG1vcmUgaW5mb3JtYXRpb24nOyBleGl0IDE7IGZpYCxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29kZUJ1aWxkUm9sZVBvbGljeVN0YXRlbWVudHMoYWNjb3VudDogc3RyaW5nKTogaWFtLlBvbGljeVN0YXRlbWVudFtdIHtcbiAgY29uc3QgYmFja3VwQWNjb3VudElkID0gJzkwMzQwNDM4NjU1MCc7XG4gIGNvbnN0IGlhbVBvbGljeUtNUyA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICBhY3Rpb25zOiBbJ2ttczpEZWNyeXB0J10sXG4gICAgcmVzb3VyY2VzOiBbYGFybjphd3M6a21zOio6JHtiYWNrdXBBY2NvdW50SWR9OmtleS8qYCwgYGFybjphd3M6a21zOio6JHthY2NvdW50fTprZXkvKmBdLFxuICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzoge1xuICAgICAgICAna21zOlJlc291cmNlQWxpYXNlcyc6ICdhbGlhcy9yaW8tbHotYmFja3VwLWtleSonLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgaWFtUG9saWN5TGFtYmRhRXhlY3V0aW9uID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgcmVzb3VyY2VzOiBbYGFybjphd3M6bGFtYmRhOmV1LXdlc3QtMToke2FjY291bnR9OmZ1bmN0aW9uOlNlY3JldHNSZXN0b3JlSGFuZGxlcmBdLFxuICB9KTtcbiAgcmV0dXJuIFtpYW1Qb2xpY3lLTVMsIGlhbVBvbGljeUxhbWJkYUV4ZWN1dGlvbl07XG59XG5cbmZ1bmN0aW9uIGRldGVybWluZVNlY3JldHNGaWxlUGF0aENvbW1hbmRzRm9yQ29kZUJ1aWxkKHVzZXJEZWZpbmVkU2VjcmV0c0ZpbGVQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGRlZmF1bHRTZWNyZXRzRmlsZU5hbWUgPSAnc2VjcmV0cy55YW1sJztcbiAgY29uc3QgZGVmYXVsdFNlY3JldHNGaWxlUGF0aHMxID0gYC4vaW5mcmFzdHJ1Y3R1cmUvc3JjL3NlY3JldHMvJHtkZWZhdWx0U2VjcmV0c0ZpbGVOYW1lfWA7XG4gIGNvbnN0IGRlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMiA9IGAuL3NyYy9zZWNyZXRzLyR7ZGVmYXVsdFNlY3JldHNGaWxlTmFtZX1gO1xuICBpZiAodXNlckRlZmluZWRTZWNyZXRzRmlsZVBhdGgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgYGVjaG8gXCJTZWNyZXRzIGZpbGUgZXhwbGljaXRseSBzZXQgdG86ICR7dXNlckRlZmluZWRTZWNyZXRzRmlsZVBhdGh9XCJgLFxuICAgICAgYGV4cG9ydCAke1NFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFfT0nJHt1c2VyRGVmaW5lZFNlY3JldHNGaWxlUGF0aH0nYCxcbiAgICBdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbXG4gICAgICBgZWNobyAnTm8gZXhwbGljaXQgc2VjcmV0cyBmaWxlIHNldCwgbG9va2luZyBhdCB0aGUgZGVmYXVsdCBsb2NhdGlvbnM6ICR7W2RlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMSwgZGVmYXVsdFNlY3JldHNGaWxlUGF0aHMyXX0nYCxcbiAgICAgIGBpZiBbIC1mICcke2RlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMX0nIF07IHRoZW4gZXhwb3J0ICR7U0VDUkVUU19GSUxFX1BBVEhfRU5WSVJPTk1FTlRfVkFSSUFCTEV9PScke2RlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMX0nOyBlbHNlIGV4cG9ydCAke1NFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFfT0nJHtkZWZhdWx0U2VjcmV0c0ZpbGVQYXRoczJ9JzsgZmlgLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWJhY2t1cC1zZWNyZXRzLXJlc3RvcmUtc3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvcmlvLWJhY2t1cC1zZWNyZXRzLXJlc3RvcmUtc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQWlCbkQsTUFBYSxvQkFBcUIsU0FBUSxTQUFTLENBQUMsYUFBYTtJQUMvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLEdBQUcsNEJBQTRCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDO1NBQ2hILENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNUJILG9EQTZCQzs7O0FBRUQsU0FBUyw0QkFBNEIsQ0FDbkMsT0FBZSxFQUNmLE1BQWMsRUFDZCwwQkFBOEM7SUFFOUMsT0FBTztRQUNMLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUM7UUFDbEUsb0JBQW9CLEVBQUUsZ0NBQWdDLENBQUMsT0FBTyxDQUFDO0tBQ2hFLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxzQ0FBc0MsR0FBRyxtQkFBbUIsQ0FBQztBQUVuRSxTQUFTLG9CQUFvQixDQUFDLE1BQWMsRUFBRSwwQkFBOEM7SUFDMUYsT0FBTztRQUNMLHdFQUF3RTtRQUN4RSx3QkFBd0I7UUFDeEIsNEZBQTRGO1FBQzVGLGdEQUFnRDtRQUNoRCxHQUFHLDRDQUE0QyxDQUFDLDBCQUEwQixDQUFDO1FBQzNFLCtEQUErRDtRQUMvRCxrREFBa0Qsc0NBQXNDLElBQUk7UUFDNUYsbUpBQW1KLE1BQU0sc0NBQXNDO1FBQy9MLGtDQUFrQztRQUNsQyx5TUFBeU07S0FDMU0sQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUFDLE9BQWU7SUFDdkQsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUMzQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDeEIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLGVBQWUsUUFBUSxFQUFFLGlCQUFpQixPQUFPLFFBQVEsQ0FBQztRQUN2RixVQUFVLEVBQUU7WUFDVix3QkFBd0IsRUFBRTtnQkFDeEIscUJBQXFCLEVBQUUsMEJBQTBCO2FBQ2xEO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFDSCxNQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN2RCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztRQUNsQyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsT0FBTyxpQ0FBaUMsQ0FBQztLQUNsRixDQUFDLENBQUM7SUFDSCxPQUFPLENBQUMsWUFBWSxFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELFNBQVMsNENBQTRDLENBQUMsMEJBQThDO0lBQ2xHLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUFDO0lBQzlDLE1BQU0sd0JBQXdCLEdBQUcsZ0NBQWdDLHNCQUFzQixFQUFFLENBQUM7SUFDMUYsTUFBTSx3QkFBd0IsR0FBRyxpQkFBaUIsc0JBQXNCLEVBQUUsQ0FBQztJQUMzRSxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDL0IsT0FBTztZQUNMLHlDQUF5QywwQkFBMEIsR0FBRztZQUN0RSxVQUFVLHNDQUFzQyxLQUFLLDBCQUEwQixHQUFHO1NBQ25GLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU87WUFDTCx5RUFBeUUsQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHO1lBQ2hJLFlBQVksd0JBQXdCLG9CQUFvQixzQ0FBc0MsS0FBSyx3QkFBd0Isa0JBQWtCLHNDQUFzQyxLQUFLLHdCQUF3QixPQUFPO1NBQ3hOLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBwaXBlbGluZXMgZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmlvU2VjcmV0c0RlcGxveVN0ZXBQcm9wcyB7XG4gIC8qKlxuICAgKiBQb2ludHMgdG8gQ29kZVBpcGVsaW5lIHNvdXJjZSBzdGVwXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogcGlwZWxpbmVzLkNvZGVQaXBlbGluZVNvdXJjZTtcbiAgLyoqXG4gICAqIFBhdGggdG8gc2VjcmV0cyBmaWxlIGNvbnRhaW5pbmcgZW5jcnlwdGVkIHNlY3JldHNcbiAgICogQGRlZmF1bHRWYWx1ZSBMb29rcyBmb3IgZmlsZSB1bmRlciAyIHBhdGhzIHdpdGggdGhlIGZvbGxvd2luZyBwcmlvcml0eTpcbiAgICogMS4gLi9pbmZyYXN0cnVjdHVyZS9zcmMvc2VjcmV0cy9zZWNyZXRzLnlhbWwgZm9sbG93ZWQgYnkgcGF0aFxuICAgKiAyLiAuL3NyYy9zZWNyZXRzL3NlY3JldHMueWFtbFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c0ZpbGVQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUmlvU2VjcmV0c0RlcGxveVN0ZXAgZXh0ZW5kcyBwaXBlbGluZXMuQ29kZUJ1aWxkU3RlcCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuZCBhdHRhY2hlcyBhIGNvZGVidWlsZCBwcm9qZWN0IHRvIHRoZSBwaXBlbGluZSB3aGljaCBsb29rcyBmb3Igc2VjcmV0cy55YW1sIHVuZGVyIGZpcnN0IC4vaW5mcmFzdHJ1Y3R1cmUvc3JjL3NlY3JldHMgYW5kIHRoZW4gLi9zcmMvc2VjcmV0cy5cbiAgICogVGhlIHNlY3JldHMgYXJlIHRoZW4gdXBsb2FkZWQgdG8gU1NNIGFuZCBTZWNyZXRzIE1hbmFnZXIgYWNjb3JkaW5nIHRvIHRoZSBkYXRhIGluIHNlY3JldHMueWFtbFxuICAgKiBUaGUgRm9ybWF0IG9mIHNlY3JldHMgZmlsZSBzaG91bGQgYmUgbGlrZSB0aGUgZm9sbG93aW5nIGV4YW1wbGUgaW4geWFtbDpcbiAgICpcbiAgICogLS0tXG4gICAqIFNTTTpcbiAgICpcbiAgICogICAgICAgICAvY29uZmlnL2FwcGxpY2F0aW9uL3NlY3JldDogcGFzc3dvcmRcbiAgICpcbiAgICogICAgICAgICAvY29uZmlnL2FwcGxpY2F0aW9uMi9zZWNyZXQ6IHBhc3N3b3JkXG4gICAqXG4gICAqIFNlY3JldHNNYW5hZ2VyOlxuICAgKlxuICAgKiAgICAgICAgIHBsYWluX3RleHRfc2VjcmV0OiB2YWx1ZVxuICAgKlxuICAgKiAgICAgICAgIGpzb25fc2VjcmV0OlxuICAgKlxuICAgKiAgICAgICAgICAgICBrZXkxOiB2YWx1ZTFcbiAgICpcbiAgICogICAgICAgICAgICAga2V5MjogdmFsdWUyXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmlvU2VjcmV0c0RlcGxveVN0ZXBQcm9wcykge1xuICAgIHN1cGVyKGlkLCB7XG4gICAgICBpbnB1dDogcHJvcHMuaW5wdXQsXG4gICAgICAuLi5nZXRDb21tb25Db2RlQnVpbGRQcm9wZXJ0aWVzKGNkay5TdGFjay5vZihzY29wZSkuYWNjb3VudCwgY2RrLlN0YWNrLm9mKHNjb3BlKS5yZWdpb24sIHByb3BzLnNlY3JldHNGaWxlUGF0aCksXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q29tbW9uQ29kZUJ1aWxkUHJvcGVydGllcyhcbiAgYWNjb3VudDogc3RyaW5nLFxuICByZWdpb246IHN0cmluZyxcbiAgdXNlckRlZmluZWRTZWNyZXRzRmlsZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZFxuKTogUGljazxwaXBlbGluZXMuQ29kZUJ1aWxkU3RlcFByb3BzLCAnY29tbWFuZHMnIHwgJ3JvbGVQb2xpY3lTdGF0ZW1lbnRzJz4ge1xuICByZXR1cm4ge1xuICAgIGNvbW1hbmRzOiBnZXRDb2RlQnVpbGRDb21tYW5kcyhyZWdpb24sIHVzZXJEZWZpbmVkU2VjcmV0c0ZpbGVQYXRoKSxcbiAgICByb2xlUG9saWN5U3RhdGVtZW50czogZ2V0Q29kZUJ1aWxkUm9sZVBvbGljeVN0YXRlbWVudHMoYWNjb3VudCksXG4gIH07XG59XG5cbmNvbnN0IFNFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFID0gJ1NFQ1JFVFNfRklMRV9QQVRIJztcblxuZnVuY3Rpb24gZ2V0Q29kZUJ1aWxkQ29tbWFuZHMocmVnaW9uOiBzdHJpbmcsIHVzZXJEZWZpbmVkU2VjcmV0c0ZpbGVQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbXG4gICAgJ2N1cmwgLXNTIGh0dHBzOi8vZGwueWFybnBrZy5jb20vZGViaWFuL3B1YmtleS5ncGcgfCBzdWRvIGFwdC1rZXkgYWRkIC0nLFxuICAgICdhcHQtZ2V0IC0tcXVpZXQgdXBkYXRlJyxcbiAgICAnd2dldCAtLXF1aWV0IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3NvcHMvcmVsZWFzZXMvZG93bmxvYWQvdjMuNy4xL3NvcHNfMy43LjFfYW1kNjQuZGViJyxcbiAgICAnYXB0LWdldCAtLXF1aWV0IGluc3RhbGwgLi9zb3BzXzMuNy4xX2FtZDY0LmRlYicsXG4gICAgLi4uZGV0ZXJtaW5lU2VjcmV0c0ZpbGVQYXRoQ29tbWFuZHNGb3JDb2RlQnVpbGQodXNlckRlZmluZWRTZWNyZXRzRmlsZVBhdGgpLFxuICAgICdlY2hvIFwiVXNpbmcgdGhlIGZvbGxvd2luZyBzZWNyZXRzIGZpbGU6ICR7U0VDUkVUU19GSUxFX1BBVEh9XCInLFxuICAgIGBQQVlMT0FEPSQoc29wcyAtLW91dHB1dC10eXBlIGpzb24gLS1kZWNyeXB0IFxcJHske1NFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFfX0pYCxcbiAgICBgTEFNQkRBX0VSUk9SPSQoYXdzIGxhbWJkYSBpbnZva2UgLS1mdW5jdGlvbi1uYW1lIFwiU2VjcmV0c1Jlc3RvcmVIYW5kbGVyXCIgLS1wYXlsb2FkIFwiXFwke1BBWUxPQUR9XCIgLS1jbGktYmluYXJ5LWZvcm1hdCByYXctaW4tYmFzZTY0LW91dCAtLXJlZ2lvbiAke3JlZ2lvbn0gb3V0cHV0IHwganEgJ2hhcyhcIkZ1bmN0aW9uRXJyb3JcIiknKWAsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHF1b3Rlc1xuICAgIGBpZiBbIFwiXFwke0xBTUJEQV9FUlJPUn1cIiA9ICd0cnVlJyBdOyB0aGVuIGVjaG8gJ1RoZSAnU2VjcmV0c1Jlc3RvcmVIYW5kbGVyJyBsYW1iZGEgZmFpbGVkIHdpdGggYW4gZXJyb3IuIENoZWNrIHRoZSBDbG91ZHdhdGNoIGxvZ3MgJy9hd3MvbGFtYmRhL1NlY3JldHNSZXN0b3JlSGFuZGxlcicgZm9yIG1vcmUgaW5mb3JtYXRpb24nOyBleGl0IDE7IGZpYCxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29kZUJ1aWxkUm9sZVBvbGljeVN0YXRlbWVudHMoYWNjb3VudDogc3RyaW5nKTogaWFtLlBvbGljeVN0YXRlbWVudFtdIHtcbiAgY29uc3QgYmFja3VwQWNjb3VudElkID0gJzkwMzQwNDM4NjU1MCc7XG4gIGNvbnN0IGlhbVBvbGljeUtNUyA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICBhY3Rpb25zOiBbJ2ttczpEZWNyeXB0J10sXG4gICAgcmVzb3VyY2VzOiBbYGFybjphd3M6a21zOio6JHtiYWNrdXBBY2NvdW50SWR9OmtleS8qYCwgYGFybjphd3M6a21zOio6JHthY2NvdW50fTprZXkvKmBdLFxuICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzoge1xuICAgICAgICAna21zOlJlc291cmNlQWxpYXNlcyc6ICdhbGlhcy9yaW8tbHotYmFja3VwLWtleSonLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgaWFtUG9saWN5TGFtYmRhRXhlY3V0aW9uID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgcmVzb3VyY2VzOiBbYGFybjphd3M6bGFtYmRhOmV1LXdlc3QtMToke2FjY291bnR9OmZ1bmN0aW9uOlNlY3JldHNSZXN0b3JlSGFuZGxlcmBdLFxuICB9KTtcbiAgcmV0dXJuIFtpYW1Qb2xpY3lLTVMsIGlhbVBvbGljeUxhbWJkYUV4ZWN1dGlvbl07XG59XG5cbmZ1bmN0aW9uIGRldGVybWluZVNlY3JldHNGaWxlUGF0aENvbW1hbmRzRm9yQ29kZUJ1aWxkKHVzZXJEZWZpbmVkU2VjcmV0c0ZpbGVQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGRlZmF1bHRTZWNyZXRzRmlsZU5hbWUgPSAnc2VjcmV0cy55YW1sJztcbiAgY29uc3QgZGVmYXVsdFNlY3JldHNGaWxlUGF0aHMxID0gYC4vaW5mcmFzdHJ1Y3R1cmUvc3JjL3NlY3JldHMvJHtkZWZhdWx0U2VjcmV0c0ZpbGVOYW1lfWA7XG4gIGNvbnN0IGRlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMiA9IGAuL3NyYy9zZWNyZXRzLyR7ZGVmYXVsdFNlY3JldHNGaWxlTmFtZX1gO1xuICBpZiAodXNlckRlZmluZWRTZWNyZXRzRmlsZVBhdGgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgYGVjaG8gXCJTZWNyZXRzIGZpbGUgZXhwbGljaXRseSBzZXQgdG86ICR7dXNlckRlZmluZWRTZWNyZXRzRmlsZVBhdGh9XCJgLFxuICAgICAgYGV4cG9ydCAke1NFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFfT0nJHt1c2VyRGVmaW5lZFNlY3JldHNGaWxlUGF0aH0nYCxcbiAgICBdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbXG4gICAgICBgZWNobyAnTm8gZXhwbGljaXQgc2VjcmV0cyBmaWxlIHNldCwgbG9va2luZyBhdCB0aGUgZGVmYXVsdCBsb2NhdGlvbnM6ICR7W2RlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMSwgZGVmYXVsdFNlY3JldHNGaWxlUGF0aHMyXX0nYCxcbiAgICAgIGBpZiBbIC1mICcke2RlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMX0nIF07IHRoZW4gZXhwb3J0ICR7U0VDUkVUU19GSUxFX1BBVEhfRU5WSVJPTk1FTlRfVkFSSUFCTEV9PScke2RlZmF1bHRTZWNyZXRzRmlsZVBhdGhzMX0nOyBlbHNlIGV4cG9ydCAke1NFQ1JFVFNfRklMRV9QQVRIX0VOVklST05NRU5UX1ZBUklBQkxFfT0nJHtkZWZhdWx0U2VjcmV0c0ZpbGVQYXRoczJ9JzsgZmlgLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- import * as codepipeline from 'aws-cdk-lib/aws-codepipeline';
1
+ import type * as codepipeline from 'aws-cdk-lib/aws-codepipeline';
2
2
  import * as codepipeline_actions from 'aws-cdk-lib/aws-codepipeline-actions';
3
- import { Construct } from 'constructs';
3
+ import type { Construct } from 'constructs';
4
4
  export declare enum TriggerKey {
5
5
  /**
6
6
  * points to master_repo.zip