@rio-cloud/cdk-v2-constructs 9.0.0-alpha.7 → 9.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +883 -183
- package/README.md +65 -0
- package/docs/AGENTS_DOCUMENTATION.md +80 -14
- package/lib/backup/backup-policy.js +1 -1
- package/lib/certificate/cloud-front-certificate.js +1 -1
- package/lib/datadog/datadog-log-index-monitoring.js +3 -3
- package/lib/datadog/datadog-monitor.js +3 -3
- package/lib/datadogv2/datadog-dashboard.js +1 -1
- package/lib/datadogv2/datadog-lambda-instrumentation.js +4 -3
- package/lib/datadogv2/datadog-log-index-monitoring.js +1 -1
- package/lib/datadogv2/datadog-monitor.js +3 -3
- package/lib/datadogv2/datadog-notification.js +6 -6
- package/lib/datadogv2/datadog-service-catalog-entry.js +1 -1
- package/lib/datadogv2/datadog-shared-secrets.js +2 -2
- package/lib/datadogv2/datadog-slo.js +1 -1
- package/lib/ecr/docker-hub-pull-through-cache.js +1 -1
- package/lib/fargate/datadog.d.ts +4 -1
- package/lib/fargate/datadog.js +6 -3
- package/lib/fargate/rio-fargate-service-blue-green-alpha.js +7 -2
- package/lib/fargate/rio-fargate-service.d.ts +22 -1
- package/lib/fargate/rio-fargate-service.js +12 -3
- package/lib/fargate/trace-sampling.d.ts +87 -0
- package/lib/fargate/trace-sampling.js +123 -0
- package/lib/iam/sonatype-oss-index-credentials.js +1 -1
- package/lib/kafka/kafka-event-spec.js +2 -2
- package/lib/kafka/kafka-topic.js +4 -4
- package/lib/kafka/rio-kafka-event-source.js +1 -1
- package/lib/pipeline/delivery-performance-monitoring-override.js +1 -1
- package/lib/pipeline/rio-backup-secrets-restore-stage.js +1 -1
- package/lib/pipeline/rio-bitbucket-source-action.js +1 -1
- package/lib/pipeline/rio-pipeline-type.js +1 -1
- package/lib/rio-claidometer.js +2 -2
- package/lib/rio-landing-zone.js +1 -1
- package/lib/rio-load-balancer.js +1 -1
- package/lib/sbom-catalog/catalog-project.js +2 -2
- package/lib/ses/ses-observability.js +1 -1
- package/lib/test/normalized-test-template.js +1 -1
- package/lib/watchful/alb.js +1 -1
- package/lib/watchful/aspect.js +1 -1
- package/lib/watchful/cloudfront.js +1 -1
- package/lib/watchful/datadog-log-alarm.js +1 -1
- package/lib/watchful/datadog-metric-alarm.js +1 -1
- package/lib/watchful/docdb.js +1 -1
- package/lib/watchful/dynamodb.js +1 -1
- package/lib/watchful/ecs.js +1 -1
- package/lib/watchful/lambda.js +1 -1
- package/lib/watchful/rds.js +1 -1
- package/lib/watchful/targetgroup.js +1 -1
- package/lib/watchful/upperToLower.js +1 -1
- package/lib/watchful/watchful.js +4 -4
- package/lib/watchfulv2/watchful.js +1 -1
- package/package.json +1 -1
- package/version.json +1 -1
|
@@ -91,7 +91,7 @@ class DatadogMonitor extends constructs_1.Construct {
|
|
|
91
91
|
if (isAwsMetrikMonitor && optionOverrides.evaluationDelay === undefined) {
|
|
92
92
|
optionOverrides.evaluationDelay = 900;
|
|
93
93
|
const annotations = cdk.Annotations.of(cdk.Stack.of(this));
|
|
94
|
-
annotations.addWarningV2(`@rio-cloud/cdk-v2-constructs/datadogv2/DatadogMonitor/${id}/CloudMetricEvaluationDelay`, "\n ❌ Your monitor is alerting on Cloud Metrics but you haven't set an 'optionOverrides.evaluationDelay'.\n ✅ It's automatically set to 15 minutes, but please provide a suitable value on your own.\n");
|
|
94
|
+
annotations.addWarningV2(`@rio-cloud-internal/cdk-v2-constructs/datadogv2/DatadogMonitor/${id}/CloudMetricEvaluationDelay`, "\n ❌ Your monitor is alerting on Cloud Metrics but you haven't set an 'optionOverrides.evaluationDelay'.\n ✅ It's automatically set to 15 minutes, but please provide a suitable value on your own.\n");
|
|
95
95
|
}
|
|
96
96
|
let cloudformationOptions;
|
|
97
97
|
if (props.lowercaseQuery === true) {
|
|
@@ -141,7 +141,7 @@ class DatadogMonitor extends constructs_1.Construct {
|
|
|
141
141
|
}
|
|
142
142
|
exports.DatadogMonitor = DatadogMonitor;
|
|
143
143
|
_a = JSII_RTTI_SYMBOL_1;
|
|
144
|
-
DatadogMonitor[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogMonitor", version: "0.0.0" };
|
|
144
|
+
DatadogMonitor[_a] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DatadogMonitor", version: "0.0.0" };
|
|
145
145
|
/**
|
|
146
146
|
* Default priority of a monitor
|
|
147
147
|
*/
|
|
@@ -212,4 +212,4 @@ function mapThresholdWindowsProperties(source) {
|
|
|
212
212
|
}
|
|
213
213
|
: undefined;
|
|
214
214
|
}
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLDBEQUFxRDtBQUNyRCxpRUFBc0Y7QUFFdEY7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBNkVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLG9CQUtY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Q0FBQztZQUNFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1NBQzlCO1FBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxNQUErQztJQUM5RSxPQUFPLE1BQU07UUFDWCxDQUFDLENBQUM7WUFDRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUN6QyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1NBQ3hDO1FBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxNQUFxRDtJQUMxRixPQUFPLE1BQU07UUFDWCxDQUFDLENBQUM7WUFDRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO1NBQ3RDO1FBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcbmltcG9ydCB7IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgdHlwZSBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9kYXRhZG9nLW5vdGlmaWNhdGlvbic7XG5cbi8qKlxuICogV2VsbCBrbm93biBtb25pdG9yIHR5cGVzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gKi9cbmV4cG9ydCBlbnVtIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUge1xuICBBVURJVF9BTEVSVCA9ICdhdWRpdCBhbGVydCcsXG4gIENPTVBPU0lURSA9ICdjb21wb3NpdGUnLFxuICBFVkVOVF9BTEVSVCA9ICdldmVudCBhbGVydCcsXG4gIEVWRU5UX1ZfMl9BTEVSVCA9ICdldmVudC12MiBhbGVydCcsXG4gIExPR19BTEVSVCA9ICdsb2cgYWxlcnQnLFxuICBNRVRSSUNfQUxFUlQgPSAnbWV0cmljIGFsZXJ0JyxcbiAgUFJPQ0VTU19BTEVSVCA9ICdwcm9jZXNzIGFsZXJ0JyxcbiAgUVVFUllfQUxFUlQgPSAncXVlcnkgYWxlcnQnLFxuICBTRVJWSUNFX0NIRUNLID0gJ3NlcnZpY2UgY2hlY2snLFxuICBTWU5USEVUSUNTX0FMRVJUID0gJ3N5bnRoZXRpY3MgYWxlcnQnLFxuICBUUkFDRV9BTkFMWVRJQ1NfQUxFUlQgPSAndHJhY2UtYW5hbHl0aWNzIGFsZXJ0JyxcbiAgU0xPX0FMRVJUID0gJ3NsbyBhbGVydCcsXG4gIFJVTV9BTEVSVCA9ICdydW0gYWxlcnQnLFxuICBDSV9QSVBFTElORVNfQUxFUlQgPSAnY2ktcGlwZWxpbmVzIGFsZXJ0JyxcbiAgRVJST1JfVFJBQ0tJTkdfQUxFUlQgPSAnZXJyb3ItdHJhY2tpbmcgYWxlcnQnLFxuICBDSV9URVNUU19BTEVSVCA9ICdjaS10ZXN0cyBhbGVydCcsXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiB7QGxpbmsgRGF0YWRvZ01vbml0b3J9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWRvZ01vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgc3VmZml4IHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9ycyBuYW1lLlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciBuYW1lIGlzIGNvbmNhdGVuYXRlZCBmb3JtIGA8VGVhbU5hbWU+IDxzZXJ2aWNlTmFtZSBwcm9wZXJ0eT4gPG5hbWUgcHJvcGVydHk+YFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSB0byB3aGljaCB0aGUgbW9uaXRvciBiZWxvbmdzLlxuICAgKlxuICAgKiBVc2VkIHRvIGdlbmVyYXRlIHRoZSBtb25pdG9yIG5hbWUgYXMgd2VsbCBhIGFwcGx5IHRoZSBgc2VydmljZWAgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHR5cGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcnMgc2VhcmNoIHF1ZXJ5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jZGVmaW5lLXRoZS1zZWFyY2gtcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIHF1ZXJ5IHN0cmluZyB0byBsb3dlciBjYXNlLiBUaGlzIGlzIHVzZWZ1bCBmb3IgcGFzc2luZyBpbiBBV1MgcmVzb3VyY2UgbmFtZXMgaW50byBtZXRyaWMgcXVlcmllcyAobWV0cmljIG5hbWVzIGFyZSBhdXRvbWF0aWNhbGx5XG4gICAqIGxvd2VyY2FzZWQgaW4gRGF0YWRvZywgYnV0IHRoZSBtb25pdG9yIHF1ZXJpZXMgbm90KS5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZG9jcy9jbG91ZGZvcm1hdGlvbm9wdGlvbnMubWQjbG93ZXJjYXNlcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IGxvd2VyY2FzZVF1ZXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgcGF0dGVybiBmb3IgdGhlIG1vbml0b3JcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9jb25maWd1cmF0aW9uLyNtZXNzYWdlXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvIGV4cGxpY2l0bHkgZGlzYWJsZSBub3RpZmljYXRpb25zIHVzZSB7QGxpbmsgTm9Ob3RpZmljYXRpb259LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvbm90aWZ5XG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxlcnQgcHJpb3JpdHkgb2YgdGhlIG1vbml0b3JcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSA0XG4gICAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWMgb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBtb25pdG9yIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25PdmVycmlkZXM/OiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIG1vbml0b3IgaW4gYWRkaXRpb24gdG8gdGhlIFJJTyBkZWZhdWx0IHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhVGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gcmVub3RpZmljYXRpb24gc2V0dGluZ3Mgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnkvI3Jlbm90aWZ5XG4gKi9cbmV4cG9ydCBlbnVtIFJlbm90aWZ5U3RhdHVzZXMge1xuICBBTEVSVCA9ICdhbGVydCcsXG4gIE5PX0RBVEEgPSAnbm8gZGF0YScsXG4gIFdBUk4gPSAnd2FybicsXG59XG5cbi8qKlxuICogV2VsbCBrbm93biBub3RpZmljYXRpb24gcHJlc2V0cyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQge1xuICBTSE9XX0FMTCA9ICdzaG93X2FsbCcsXG4gIEhJREVfUVVFUlkgPSAnaGlkZV9xdWVyeScsXG4gIEhJREVfSEFORExFUyA9ICdoaWRlX2hhbmRsZXMnLFxuICBISURFX0FMTCA9ICdoaWRlX2FsbCcsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb25NaXNzaW5nRGF0YSBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JPbk1pc3NpbmdEYXRhIHtcbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcbiAgU0hPV19OT19EQVRBID0gJ3Nob3dfbm9fZGF0YScsXG4gIFNIT1dfQU5EX05PVElGWV9OT19EQVRBID0gJ3Nob3dfYW5kX25vdGlmeV9ub19kYXRhJyxcbiAgUkVTT0xWRSA9ICdyZXNvbHZlJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIG92ZXJyaWRlIGZvciBEYXRhZG9nIG1vbml0b3JzIGluIGNhc2UgbW9yZSBzcGVjaWZpYyBzZXR0aW5ncyBhcmUgcmVxdWlyZWQuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29ufVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgc2FtcGxlIG9mIHRoZSBsb2dzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dzU2FtcGxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2VuZCBhIGxpc3Qgb2Ygc2FtcGxlcyB3aGVuIHRoZSBtb25pdG9yIHRyaWdnZXJzLlxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBieSBDSSBUZXN0IGFuZCBQaXBlbGluZSBtb25pdG9ycy5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNhbXBsZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNZXNzYWdlIHRvIGluY2x1ZGUgd2l0aCBhIHJlLW5vdGlmaWNhdGlvbiB3aGVuIHJlbm90aWZ5X2ludGVydmFsIGlzIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgZXNjYWxhdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWUgaW4gc2Vjb25kcyB0byBkZWxheSBldmFsdWF0aW9uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uRGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIHNwYW4gYWZ0ZXIgd2hpY2ggZ3JvdXBzIHdpdGggbWlzc2luZyBkYXRhIGFyZSBkcm9wcGVkIGZyb20gdGhlIG1vbml0b3Igc3RhdGUuXG4gICAqXG4gICAqIFRoZSBtaW5pbXVtIHZhbHVlIGlzIG9uZSBob3VyLCBhbmQgdGhlIG1heGltdW0gdmFsdWUgaXMgNzIgaG91cnMuXG4gICAqIEV4YW1wbGUgdmFsdWVzIGFyZTogXCI2MG1cIiwgXCIxaFwiLCBhbmQgXCIyZFwiLlxuICAgKiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgQVBNIFRyYWNlIEFuYWx5dGljcywgQXVkaXQgVHJhaWwsIENJLCBFcnJvciBUcmFja2luZywgRXZlbnQsIExvZ3MsIGFuZCBSVU0gbW9uaXRvcnMuXG4gICAqL1xuICByZWFkb25seSBncm91cFJldGVudGlvbkR1cmF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRyaWdnZXJpbmcgdGFncyBpbnRvIG5vdGlmaWNhdGlvbiB0aXRsZSdcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlVGFncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGNoYW5nZXMgdG8gdGhpcyBtb25pdG9yIHNob3VsZCBiZSByZXN0cmljdGVkIHRvIHRoZSBjcmVhdG9yIG9yIGFkbWluc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9ja2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGxvY2F0aW9ucyBhbGxvd2VkIHRvIGZhaWwgYmVmb3JlIHRyaWdnZXJpbmcgYWxlcnRcbiAgICovXG4gIHJlYWRvbmx5IG1pbkxvY2F0aW9uRmFpbGVkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGluIHNlY29uZHMgdG8gYWxsb3cgYSBob3N0IHRvIHN0YXJ0IHJlcG9ydGluZyBkYXRhIGJlZm9yZSBzdGFydGluZyB0aGUgZXZhbHVhdGlvbiBvZiBtb25pdG9yIHJlc3VsdHNcbiAgICovXG4gIHJlYWRvbmx5IG5ld0hvc3REZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgZGF0YSBzdG9wcGVkIHJlcG9ydGluZyBiZWZvcmUgbm90aWZ5aW5nXG4gICAqL1xuICByZWFkb25seSBub0RhdGFUaW1lZnJhbWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIG5vdGlmeSB0YWdnZWQgdXNlcnMgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBtb25pdG9yXG4gICAqL1xuICByZWFkb25seSBub3RpZnlBdWRpdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoYXQgZ3JhbnVsYXJpdHkgYSBtb25pdG9yIGFsZXJ0cyBvbi5cbiAgICpcbiAgICogT25seSBhdmFpbGFibGUgZm9yIG1vbml0b3JzIHdpdGggZ3JvdXBpbmdzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGEgbW9uaXRvciBncm91cGVkIGJ5IGBjbHVzdGVyYCwgYG5hbWVzcGFjZWAsIGFuZCBgcG9kYCBjYW4gYmUgY29uZmlndXJlZCB0byBvbmx5IG5vdGlmeSBvbiBlYWNoIG5ldyBgY2x1c3RlcmAgdmlvbGF0aW5nIHRoZSBhbGVydCBjb25kaXRpb25zIGJ5IHNldHRpbmcgYG5vdGlmeV9ieWAgdG8gYFtcImNsdXN0ZXJcIl1gLlxuICAgKiBUYWdzIG1lbnRpb25lZCBpbiBgbm90aWZ5X2J5YCBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSBncm91cGluZyB0YWdzIGluIHRoZSBxdWVyeS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcXVlcnkgZ3JvdXBlZCBieSBgY2x1c3RlcmAgYW5kIGBuYW1lc3BhY2VgIGNhbm5vdCBub3RpZnkgb24gYHJlZ2lvbmAuXG4gICAqIFNldHRpbmcgYG5vdGlmeV9ieWAgdG8gYFsqXWAgY29uZmlndXJlcyB0aGUgbW9uaXRvciB0byBub3RpZnkgYXMgYSBzaW1wbGUtYWxlcnQuXG4gICAqL1xuICByZWFkb25seSBub3RpZnlCeT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBob3cgZ3JvdXBzIG9yIG1vbml0b3JzIGFyZSB0cmVhdGVkIGlmIGFuIGV2YWx1YXRpb24gZG9lcyBub3QgcmV0dXJuIGFueSBkYXRhIHBvaW50cy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgb3B0aW9uIHJlc3VsdHMgaW4gZGlmZmVyZW50IGJlaGF2aW9yIGRlcGVuZGluZyBvbiB0aGUgbW9uaXRvciBxdWVyeSB0eXBlLlxuICAgKiBGb3IgbW9uaXRvcnMgdXNpbmcgQ291bnQgcXVlcmllcywgYW4gZW1wdHkgbW9uaXRvciBldmFsdWF0aW9uIGlzIHRyZWF0ZWQgYXMgMCBhbmQgaXMgY29tcGFyZWQgdG8gdGhlIHRocmVzaG9sZCBjb25kaXRpb25zLlxuICAgKiBGb3IgbW9uaXRvcnMgdXNpbmcgYW55IHF1ZXJ5IHR5cGUgb3RoZXIgdGhhbiBDb3VudCwgZm9yIGV4YW1wbGUgR2F1Z2UsIE1lYXN1cmUsIG9yIFJhdGUsIHRoZSBtb25pdG9yIHNob3dzIHRoZSBsYXN0IGtub3duIHN0YXR1cy5cbiAgICogVGhpcyBvcHRpb24gaXMgb25seSBhdmFpbGFibGUgZm9yIEFQTSBUcmFjZSBBbmFseXRpY3MsIEF1ZGl0IFRyYWlsLCBDSSwgRXJyb3IgVHJhY2tpbmcsIEV2ZW50LCBMb2dzLCBhbmQgUlVNIG1vbml0b3JzLlxuICAgKi9cbiAgcmVhZG9ubHkgb25NaXNzaW5nRGF0YT86IE1vbml0b3JPbk1pc3NpbmdEYXRhO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBhZnRlciB0aGUgbGFzdCBub3RpZmljYXRpb24gYmVmb3JlIHRoZSBtb25pdG9yIHJlLW5vdGlmaWVzIG9uIHRoZSBjdXJyZW50IHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1vbml0b3IgcmVxdWlyZXMgYSBmdWxsIHdpbmRvdyBvZiBkYXRhIGJlZm9yZSBpdCBpcyBldmFsdWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUZ1bGxXaW5kb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHNjaGVkdWxpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxpbmdPcHRpb25zPzogTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBzeW50aGV0aWNzIGNoZWNrXG4gICAqL1xuICByZWFkb25seSBzeW50aGV0aWNzQ2hlY2tJRD86IG51bWJlcjtcblxuICByZWFkb25seSB0aHJlc2hvbGRzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZFdpbmRvd3M/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3M7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBob3VycyBvZiB0aGUgbW9uaXRvciBub3QgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIGl0IGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRIPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzaG91bGQgYmUgc2VudCBvbiB0aGUgY3VycmVudCBzdGF0dXMgYXQgdGhlIHByb3ZpZGVkIHJlLW5vdGlmaWNhdGlvbiBpbnRlcnZhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5T2NjdXJyZW5jZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlcyBvZiBtb25pdG9yIHN0YXR1c2VzIGZvciB3aGljaCByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgYXJlIHNlbnQuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeVN0YXR1c2VzPzogUmVub3RpZnlTdGF0dXNlc1tdO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0aGUgdGVzdCBzaG91bGQgYmUgaW4gZmFpbHVyZSBiZWZvcmUgYWxlcnRpbmcgKGludGVnZXIsIG51bWJlciBvZiBzZWNvbmRzLCBtYXggNzIwMCkuXG4gICAqL1xuICByZWFkb25seSBtaW5GYWlsdXJlRHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoaWNoIGluZm9ybWF0aW9uIHNob3VsZCBiZSBhZGRlZC9sZXR0IG91dCBmcm9tIHRoZSBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQuU0hPV19BTEx9XG4gICAqL1xuICByZWFkb25seSBtb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZT86IE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQ7XG5cbiAgLyoqXG4gICAqIFRpbWUgKGluIHNlY29uZHMpIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBncm91cHMuIEZvciBleGFtcGxlLCB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgaG9zdHMgd2hpbGUgdGhleSBpbml0aWFsaXplLiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICByZWFkb25seSBuZXdHcm91cERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIG1vbml0b3IgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMge1xuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBvaz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciB0cmlnZ2VyaW5nIGEgd2FybmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYSB3YXJuaW5nIHN0YXRlXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5nUmVjb3Zlcnk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHtcbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc2NoZWR1bGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGV2YWx1YXRpb25XaW5kb3c/OiBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGV2YWx1YXRpb24gd2luZG93LlxuICpcbiAqIElmIGBob3VyX3N0YXJ0c2AgaXMgc2V0LCBubyBvdGhlciBmaWVsZHMgbWF5IGJlIHNldC5cbiAqIE90aGVyd2lzZSwgYGRheV9zdGFydHNgIGFuZCBgbW9udGhfc3RhcnRzYCBtdXN0IGJlIHNldCB0b2dldGhlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93IHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lIG9mIHRoZSBkYXkgYXQgd2hpY2ggYSBvbmUgZGF5IGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzLlxuICAgKlxuICAgKiBNdXN0IGJlIGRlZmluZWQgaW4gVVRDIHRpbWUgaW4gYEhIOm1tYCBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBkYXlTdGFydHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXkgb2YgdGhlIG1vbnRoIGF0IHdoaWNoIGEgb25lIG1vbnRoIGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzXG4gICAqL1xuICByZWFkb25seSBtb250aFN0YXJ0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciBhdCB3aGljaCBhIG9uZSBob3VyIGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzXG4gICAqL1xuICByZWFkb25seSBob3VyU3RhcnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcjogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICBjb25zdCBpc0F3c01ldHJpa01vbml0b3IgPVxuICAgICAgKHByb3BzLm1vbml0b3JUeXBlID09PSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLk1FVFJJQ19BTEVSVCB8fFxuICAgICAgICBwcm9wcy5tb25pdG9yVHlwZSA9PT0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCkgJiZcbiAgICAgIHByb3BzLnF1ZXJ5LmluZGV4T2YoJ2F3cy4nKSA+IC0xO1xuICAgIGNvbnN0IG9wdGlvbk92ZXJyaWRlcyA9IHtcbiAgICAgIC4uLnByb3BzLm9wdGlvbk92ZXJyaWRlcyxcbiAgICB9O1xuXG4gICAgaWYgKGlzQXdzTWV0cmlrTW9uaXRvciAmJiBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXkgPSA5MDA7XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IGNkay5Bbm5vdGF0aW9ucy5vZihjZGsuU3RhY2sub2YodGhpcykpO1xuICAgICAgYW5ub3RhdGlvbnMuYWRkV2FybmluZ1YyKFxuICAgICAgICBgQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0cy9kYXRhZG9ndjIvRGF0YWRvZ01vbml0b3IvJHtpZH0vQ2xvdWRNZXRyaWNFdmFsdWF0aW9uRGVsYXlgLFxuICAgICAgICBcIlxcbiDinYwgWW91ciBtb25pdG9yIGlzIGFsZXJ0aW5nIG9uIENsb3VkIE1ldHJpY3MgYnV0IHlvdSBoYXZlbid0IHNldCBhbiAnb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheScuXFxuIOKchSBJdCdzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDE1IG1pbnV0ZXMsIGJ1dCBwbGVhc2UgcHJvdmlkZSBhIHN1aXRhYmxlIHZhbHVlIG9uIHlvdXIgb3duLlxcblwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjbG91ZGZvcm1hdGlvbk9wdGlvbnM6IHsgTG93ZXJjYXNlUXVlcnk6IGJvb2xlYW4gfSB8IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMubG93ZXJjYXNlUXVlcnkgPT09IHRydWUpIHtcbiAgICAgIGNsb3VkZm9ybWF0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgTG93ZXJjYXNlUXVlcnk6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gICAgdGhpcy5tb25pdG9yID0gbmV3IGNkay5DZm5SZXNvdXJjZSh0aGlzLCAnTW9uaXRvcicsIHtcbiAgICAgIHR5cGU6ICdEYXRhZG9nOjpNb25pdG9yczo6TW9uaXRvcicsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFR5cGU6IHByb3BzLm1vbml0b3JUeXBlLFxuICAgICAgICBRdWVyeTogcHJvcHMucXVlcnksXG4gICAgICAgIE5hbWU6IGAke3RlYW1OYW1lLnN0cmluZ1ZhbHVlfSAke3Byb3BzLnNlcnZpY2VOYW1lfSAke3Byb3BzLm5hbWV9YCxcbiAgICAgICAgTWVzc2FnZTogdGhpcy5jb25jYXRlbmF0ZU1lc3NhZ2Uoe1xuICAgICAgICAgIG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsXG4gICAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKG9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIENsb3VkZm9ybWF0aW9uT3B0aW9uczogY2xvdWRmb3JtYXRpb25PcHRpb25zLFxuICAgICAgICBUYWdzOiBbXG4gICAgICAgICAgLi4uKHByb3BzLmV4dHJhVGFncyA/PyBbXSksXG4gICAgICAgICAgYGFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH1gLFxuICAgICAgICAgIGBhY2NvdW50X25hbWU6JHthY2NvdW50TmFtZS5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICAgIGBzZXJ2aWNlOiR7cHJvcHMuc2VydmljZU5hbWV9YCxcbiAgICAgICAgICBgdGVhbToke3RlYW1OYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHRlYW1faWRlbnRpZmllcjoke3RlYW1JZGVudGlmaWVyLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGFpbiB0aGUgbW9uaXRvcl9pZCBhcyB1c2VkIGluIERhdGFkb2dcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2FwaS9sYXRlc3QvbW9uaXRvcnMvI2dldC1hLW1vbml0b3JzLWRldGFpbHNcbiAgICpcbiAgICogVGhpcyBhbGxvd3MgcmVmZXJlbmNpbmcgdGhpcyBtb25pdG9yIGluIG90aGVyIGNvbnN0cnVjdHMvcmVzb3VyY2VzIChlLmcuIFNMT3MpXG4gICAqL1xuICBnZXQgbW9uaXRvcklkKCkge1xuICAgIC8vIHJldHVybiBSZWYgYXMgaXQgcmV0dXJucyB0aGUgSWQgYXMgc3RyaW5nIGluc3RlYWQgb2YgdGhlIEdldEF0dChJZCkgd2loY2ggcmV0dXJucyB0aGUgaWQgYXMgbnVtYmVyXG4gICAgLy8gaHR0cHM6Ly9teS1yaW8uc2xhY2suY29tL2FyY2hpdmVzL0MwMzRXQUczUVVBL3AxNzA4NDE5ODcxMzk4OTQ5XG4gICAgcmV0dXJuIGNkay5Gbi5yZWYodGhpcy5tb25pdG9yLmxvZ2ljYWxJZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmNhdGVuYXRlTWVzc2FnZShwcm9wczogeyBtZXNzYWdlOiBzdHJpbmc7IG5vdGlmaWNhdGlvbjogSU5vdGlmaWNhdGlvbiB9KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcE1vbml0b3JPcHRpb25zKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiB7XG4gICAgRW5hYmxlTG9nc1NhbXBsZTogc291cmNlPy5lbmFibGVMb2dzU2FtcGxlLFxuICAgIEVuYWJsZVNhbXBsZXM6IHNvdXJjZT8uZW5hYmxlU2FtcGxlcyxcbiAgICBFc2NhbGF0aW9uTWVzc2FnZTogc291cmNlPy5lc2NhbGF0aW9uTWVzc2FnZSxcbiAgICBFdmFsdWF0aW9uRGVsYXk6IHNvdXJjZT8uZXZhbHVhdGlvbkRlbGF5LFxuICAgIEdyb3VwUmV0ZW50aW9uRHVyYXRpb246IHNvdXJjZT8uZ3JvdXBSZXRlbnRpb25EdXJhdGlvbixcbiAgICBJbmNsdWRlVGFnczogc291cmNlPy5pbmNsdWRlVGFncyA/PyB0cnVlLFxuICAgIExvY2tlZDogc291cmNlPy5sb2NrZWQsXG4gICAgTWluTG9jYXRpb25GYWlsZWQ6IHNvdXJjZT8ubWluTG9jYXRpb25GYWlsZWQsXG4gICAgTmV3SG9zdERlbGF5OiBzb3VyY2U/Lm5ld0hvc3REZWxheSxcbiAgICBOb0RhdGFUaW1lZnJhbWU6IHNvdXJjZT8ubm9EYXRhVGltZWZyYW1lLFxuICAgIE5vdGlmeUF1ZGl0OiBzb3VyY2U/Lm5vdGlmeUF1ZGl0LFxuICAgIE5vdGlmeUJ5OiBzb3VyY2U/Lm5vdGlmeUJ5LFxuICAgIE5vdGlmeU5vRGF0YTogc291cmNlPy5ub3RpZnlOb0RhdGEgPz8gZmFsc2UsXG4gICAgUmVub3RpZnlJbnRlcnZhbDogc291cmNlPy5yZW5vdGlmeUludGVydmFsLFxuICAgIFJlcXVpcmVGdWxsV2luZG93OiBzb3VyY2U/LnJlcXVpcmVGdWxsV2luZG93ID8/IGZhbHNlLFxuICAgIFNjaGVkdWxpbmdPcHRpb25zOiBtYXBTY2hlZHVsaW5nT3B0aW9uc1Byb3BlcnRpZXMoc291cmNlPy5zY2hlZHVsaW5nT3B0aW9ucyksXG4gICAgU3ludGhldGljc0NoZWNrSUQ6IHNvdXJjZT8uc3ludGhldGljc0NoZWNrSUQsXG4gICAgVGhyZXNob2xkczogbWFwVGhyZXNob2xkc1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRzKSxcbiAgICBUaHJlc2hvbGRXaW5kb3dzOiBtYXBUaHJlc2hvbGRXaW5kb3dzUHJvcGVydGllcyhzb3VyY2U/LnRocmVzaG9sZFdpbmRvd3MpLFxuICAgIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lOiBzb3VyY2U/Lm1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lLFxuICAgIFRpbWVvdXRIOiBzb3VyY2U/LnRpbWVvdXRILFxuICAgIFJlbm90aWZ5T2NjdXJyZW5jZXM6IHNvdXJjZT8ucmVub3RpZnlPY2N1cnJlbmNlcyxcbiAgICBSZW5vdGlmeVN0YXR1c2VzOiBzb3VyY2U/LnJlbm90aWZ5U3RhdHVzZXMsXG4gICAgTWluRmFpbHVyZUR1cmF0aW9uOiBzb3VyY2U/Lm1pbkZhaWx1cmVEdXJhdGlvbixcbiAgICBOZXdHcm91cERlbGF5OiBzb3VyY2U/Lm5ld0dyb3VwRGVsYXksXG4gICAgVmFyaWFibGVzOiBzb3VyY2U/LnZhcmlhYmxlcyxcbiAgICBPbk1pc3NpbmdEYXRhOiBzb3VyY2U/Lm9uTWlzc2luZ0RhdGEsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcFNjaGVkdWxpbmdPcHRpb25zUHJvcGVydGllcyhzb3VyY2U6IE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlXG4gICAgPyB7XG4gICAgICAgIEV2YWx1YXRpb25XaW5kb3c6IG1hcFNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvd1Byb3BlcnRpZXMoc291cmNlLmV2YWx1YXRpb25XaW5kb3cpLFxuICAgICAgfVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXBTY2hlZHVsaW5nT3B0aW9uc0V2YWx1YXRpb25XaW5kb3dQcm9wZXJ0aWVzKHNvdXJjZTogTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvdyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlXG4gICAgPyB7XG4gICAgICAgIERheVN0YXJ0czogc291cmNlLmRheVN0YXJ0cyxcbiAgICAgICAgTW9udGhTdGFydHM6IHNvdXJjZS5tb250aFN0YXJ0cyxcbiAgICAgICAgSG91clN0YXJ0czogc291cmNlLmhvdXJTdGFydHMsXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2VcbiAgICA/IHtcbiAgICAgICAgQ3JpdGljYWw6IHNvdXJjZS5jcml0aWNhbCxcbiAgICAgICAgQ3JpdGljYWxSZWNvdmVyeTogc291cmNlLmNyaXRpY2FsUmVjb3ZlcnksXG4gICAgICAgIE9LOiBzb3VyY2Uub2ssXG4gICAgICAgIFdhcm5pbmc6IHNvdXJjZS53YXJuaW5nLFxuICAgICAgICBXYXJuaW5nUmVjb3Zlcnk6IHNvdXJjZS53YXJuaW5nUmVjb3ZlcnksXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2VcbiAgICA/IHtcbiAgICAgICAgVHJpZ2dlcldpbmRvdzogc291cmNlLnRyaWdnZXJXaW5kb3csXG4gICAgICAgIFJlY292ZXJ5V2luZG93OiBzb3VyY2UucmVjb3ZlcnlXaW5kb3csXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLDBEQUFxRDtBQUNyRCxpRUFBc0Y7QUFFdEY7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBNkVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLG9CQUtY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Q0FBQztZQUNFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1NBQzlCO1FBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxNQUErQztJQUM5RSxPQUFPLE1BQU07UUFDWCxDQUFDLENBQUM7WUFDRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUN6QyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1NBQ3hDO1FBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxNQUFxRDtJQUMxRixPQUFPLE1BQU07UUFDWCxDQUFDLENBQUM7WUFDRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjO1NBQ3RDO1FBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcbmltcG9ydCB7IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgdHlwZSBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9kYXRhZG9nLW5vdGlmaWNhdGlvbic7XG5cbi8qKlxuICogV2VsbCBrbm93biBtb25pdG9yIHR5cGVzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gKi9cbmV4cG9ydCBlbnVtIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUge1xuICBBVURJVF9BTEVSVCA9ICdhdWRpdCBhbGVydCcsXG4gIENPTVBPU0lURSA9ICdjb21wb3NpdGUnLFxuICBFVkVOVF9BTEVSVCA9ICdldmVudCBhbGVydCcsXG4gIEVWRU5UX1ZfMl9BTEVSVCA9ICdldmVudC12MiBhbGVydCcsXG4gIExPR19BTEVSVCA9ICdsb2cgYWxlcnQnLFxuICBNRVRSSUNfQUxFUlQgPSAnbWV0cmljIGFsZXJ0JyxcbiAgUFJPQ0VTU19BTEVSVCA9ICdwcm9jZXNzIGFsZXJ0JyxcbiAgUVVFUllfQUxFUlQgPSAncXVlcnkgYWxlcnQnLFxuICBTRVJWSUNFX0NIRUNLID0gJ3NlcnZpY2UgY2hlY2snLFxuICBTWU5USEVUSUNTX0FMRVJUID0gJ3N5bnRoZXRpY3MgYWxlcnQnLFxuICBUUkFDRV9BTkFMWVRJQ1NfQUxFUlQgPSAndHJhY2UtYW5hbHl0aWNzIGFsZXJ0JyxcbiAgU0xPX0FMRVJUID0gJ3NsbyBhbGVydCcsXG4gIFJVTV9BTEVSVCA9ICdydW0gYWxlcnQnLFxuICBDSV9QSVBFTElORVNfQUxFUlQgPSAnY2ktcGlwZWxpbmVzIGFsZXJ0JyxcbiAgRVJST1JfVFJBQ0tJTkdfQUxFUlQgPSAnZXJyb3ItdHJhY2tpbmcgYWxlcnQnLFxuICBDSV9URVNUU19BTEVSVCA9ICdjaS10ZXN0cyBhbGVydCcsXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiB7QGxpbmsgRGF0YWRvZ01vbml0b3J9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWRvZ01vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgc3VmZml4IHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBtb25pdG9ycyBuYW1lLlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciBuYW1lIGlzIGNvbmNhdGVuYXRlZCBmb3JtIGA8VGVhbU5hbWU+IDxzZXJ2aWNlTmFtZSBwcm9wZXJ0eT4gPG5hbWUgcHJvcGVydHk+YFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSB0byB3aGljaCB0aGUgbW9uaXRvciBiZWxvbmdzLlxuICAgKlxuICAgKiBVc2VkIHRvIGdlbmVyYXRlIHRoZSBtb25pdG9yIG5hbWUgYXMgd2VsbCBhIGFwcGx5IHRoZSBgc2VydmljZWAgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHR5cGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcnMgc2VhcmNoIHF1ZXJ5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvY29uZmlndXJhdGlvbi8jZGVmaW5lLXRoZS1zZWFyY2gtcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIHF1ZXJ5IHN0cmluZyB0byBsb3dlciBjYXNlLiBUaGlzIGlzIHVzZWZ1bCBmb3IgcGFzc2luZyBpbiBBV1MgcmVzb3VyY2UgbmFtZXMgaW50byBtZXRyaWMgcXVlcmllcyAobWV0cmljIG5hbWVzIGFyZSBhdXRvbWF0aWNhbGx5XG4gICAqIGxvd2VyY2FzZWQgaW4gRGF0YWRvZywgYnV0IHRoZSBtb25pdG9yIHF1ZXJpZXMgbm90KS5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZG9jcy9jbG91ZGZvcm1hdGlvbm9wdGlvbnMubWQjbG93ZXJjYXNlcXVlcnlcbiAgICovXG4gIHJlYWRvbmx5IGxvd2VyY2FzZVF1ZXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgcGF0dGVybiBmb3IgdGhlIG1vbml0b3JcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9jb25maWd1cmF0aW9uLyNtZXNzYWdlXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvIGV4cGxpY2l0bHkgZGlzYWJsZSBub3RpZmljYXRpb25zIHVzZSB7QGxpbmsgTm9Ob3RpZmljYXRpb259LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvbm90aWZ5XG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxlcnQgcHJpb3JpdHkgb2YgdGhlIG1vbml0b3JcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSA0XG4gICAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWMgb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBtb25pdG9yIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25PdmVycmlkZXM/OiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIG1vbml0b3IgaW4gYWRkaXRpb24gdG8gdGhlIFJJTyBkZWZhdWx0IHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhVGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gcmVub3RpZmljYXRpb24gc2V0dGluZ3Mgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnkvI3Jlbm90aWZ5XG4gKi9cbmV4cG9ydCBlbnVtIFJlbm90aWZ5U3RhdHVzZXMge1xuICBBTEVSVCA9ICdhbGVydCcsXG4gIE5PX0RBVEEgPSAnbm8gZGF0YScsXG4gIFdBUk4gPSAnd2FybicsXG59XG5cbi8qKlxuICogV2VsbCBrbm93biBub3RpZmljYXRpb24gcHJlc2V0cyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQge1xuICBTSE9XX0FMTCA9ICdzaG93X2FsbCcsXG4gIEhJREVfUVVFUlkgPSAnaGlkZV9xdWVyeScsXG4gIEhJREVfSEFORExFUyA9ICdoaWRlX2hhbmRsZXMnLFxuICBISURFX0FMTCA9ICdoaWRlX2FsbCcsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igb25NaXNzaW5nRGF0YSBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gKi9cbmV4cG9ydCBlbnVtIE1vbml0b3JPbk1pc3NpbmdEYXRhIHtcbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcbiAgU0hPV19OT19EQVRBID0gJ3Nob3dfbm9fZGF0YScsXG4gIFNIT1dfQU5EX05PVElGWV9OT19EQVRBID0gJ3Nob3dfYW5kX25vdGlmeV9ub19kYXRhJyxcbiAgUkVTT0xWRSA9ICdyZXNvbHZlJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIG92ZXJyaWRlIGZvciBEYXRhZG9nIG1vbml0b3JzIGluIGNhc2UgbW9yZSBzcGVjaWZpYyBzZXR0aW5ncyBhcmUgcmVxdWlyZWQuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29ufVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgc2FtcGxlIG9mIHRoZSBsb2dzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dzU2FtcGxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2VuZCBhIGxpc3Qgb2Ygc2FtcGxlcyB3aGVuIHRoZSBtb25pdG9yIHRyaWdnZXJzLlxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBieSBDSSBUZXN0IGFuZCBQaXBlbGluZSBtb25pdG9ycy5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNhbXBsZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNZXNzYWdlIHRvIGluY2x1ZGUgd2l0aCBhIHJlLW5vdGlmaWNhdGlvbiB3aGVuIHJlbm90aWZ5X2ludGVydmFsIGlzIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgZXNjYWxhdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWUgaW4gc2Vjb25kcyB0byBkZWxheSBldmFsdWF0aW9uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uRGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIHNwYW4gYWZ0ZXIgd2hpY2ggZ3JvdXBzIHdpdGggbWlzc2luZyBkYXRhIGFyZSBkcm9wcGVkIGZyb20gdGhlIG1vbml0b3Igc3RhdGUuXG4gICAqXG4gICAqIFRoZSBtaW5pbXVtIHZhbHVlIGlzIG9uZSBob3VyLCBhbmQgdGhlIG1heGltdW0gdmFsdWUgaXMgNzIgaG91cnMuXG4gICAqIEV4YW1wbGUgdmFsdWVzIGFyZTogXCI2MG1cIiwgXCIxaFwiLCBhbmQgXCIyZFwiLlxuICAgKiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgQVBNIFRyYWNlIEFuYWx5dGljcywgQXVkaXQgVHJhaWwsIENJLCBFcnJvciBUcmFja2luZywgRXZlbnQsIExvZ3MsIGFuZCBSVU0gbW9uaXRvcnMuXG4gICAqL1xuICByZWFkb25seSBncm91cFJldGVudGlvbkR1cmF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRyaWdnZXJpbmcgdGFncyBpbnRvIG5vdGlmaWNhdGlvbiB0aXRsZSdcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlVGFncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGNoYW5nZXMgdG8gdGhpcyBtb25pdG9yIHNob3VsZCBiZSByZXN0cmljdGVkIHRvIHRoZSBjcmVhdG9yIG9yIGFkbWluc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9ja2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGxvY2F0aW9ucyBhbGxvd2VkIHRvIGZhaWwgYmVmb3JlIHRyaWdnZXJpbmcgYWxlcnRcbiAgICovXG4gIHJlYWRvbmx5IG1pbkxvY2F0aW9uRmFpbGVkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGluIHNlY29uZHMgdG8gYWxsb3cgYSBob3N0IHRvIHN0YXJ0IHJlcG9ydGluZyBkYXRhIGJlZm9yZSBzdGFydGluZyB0aGUgZXZhbHVhdGlvbiBvZiBtb25pdG9yIHJlc3VsdHNcbiAgICovXG4gIHJlYWRvbmx5IG5ld0hvc3REZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgZGF0YSBzdG9wcGVkIHJlcG9ydGluZyBiZWZvcmUgbm90aWZ5aW5nXG4gICAqL1xuICByZWFkb25seSBub0RhdGFUaW1lZnJhbWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIG5vdGlmeSB0YWdnZWQgdXNlcnMgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBtb25pdG9yXG4gICAqL1xuICByZWFkb25seSBub3RpZnlBdWRpdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoYXQgZ3JhbnVsYXJpdHkgYSBtb25pdG9yIGFsZXJ0cyBvbi5cbiAgICpcbiAgICogT25seSBhdmFpbGFibGUgZm9yIG1vbml0b3JzIHdpdGggZ3JvdXBpbmdzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGEgbW9uaXRvciBncm91cGVkIGJ5IGBjbHVzdGVyYCwgYG5hbWVzcGFjZWAsIGFuZCBgcG9kYCBjYW4gYmUgY29uZmlndXJlZCB0byBvbmx5IG5vdGlmeSBvbiBlYWNoIG5ldyBgY2x1c3RlcmAgdmlvbGF0aW5nIHRoZSBhbGVydCBjb25kaXRpb25zIGJ5IHNldHRpbmcgYG5vdGlmeV9ieWAgdG8gYFtcImNsdXN0ZXJcIl1gLlxuICAgKiBUYWdzIG1lbnRpb25lZCBpbiBgbm90aWZ5X2J5YCBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSBncm91cGluZyB0YWdzIGluIHRoZSBxdWVyeS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcXVlcnkgZ3JvdXBlZCBieSBgY2x1c3RlcmAgYW5kIGBuYW1lc3BhY2VgIGNhbm5vdCBub3RpZnkgb24gYHJlZ2lvbmAuXG4gICAqIFNldHRpbmcgYG5vdGlmeV9ieWAgdG8gYFsqXWAgY29uZmlndXJlcyB0aGUgbW9uaXRvciB0byBub3RpZnkgYXMgYSBzaW1wbGUtYWxlcnQuXG4gICAqL1xuICByZWFkb25seSBub3RpZnlCeT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBob3cgZ3JvdXBzIG9yIG1vbml0b3JzIGFyZSB0cmVhdGVkIGlmIGFuIGV2YWx1YXRpb24gZG9lcyBub3QgcmV0dXJuIGFueSBkYXRhIHBvaW50cy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgb3B0aW9uIHJlc3VsdHMgaW4gZGlmZmVyZW50IGJlaGF2aW9yIGRlcGVuZGluZyBvbiB0aGUgbW9uaXRvciBxdWVyeSB0eXBlLlxuICAgKiBGb3IgbW9uaXRvcnMgdXNpbmcgQ291bnQgcXVlcmllcywgYW4gZW1wdHkgbW9uaXRvciBldmFsdWF0aW9uIGlzIHRyZWF0ZWQgYXMgMCBhbmQgaXMgY29tcGFyZWQgdG8gdGhlIHRocmVzaG9sZCBjb25kaXRpb25zLlxuICAgKiBGb3IgbW9uaXRvcnMgdXNpbmcgYW55IHF1ZXJ5IHR5cGUgb3RoZXIgdGhhbiBDb3VudCwgZm9yIGV4YW1wbGUgR2F1Z2UsIE1lYXN1cmUsIG9yIFJhdGUsIHRoZSBtb25pdG9yIHNob3dzIHRoZSBsYXN0IGtub3duIHN0YXR1cy5cbiAgICogVGhpcyBvcHRpb24gaXMgb25seSBhdmFpbGFibGUgZm9yIEFQTSBUcmFjZSBBbmFseXRpY3MsIEF1ZGl0IFRyYWlsLCBDSSwgRXJyb3IgVHJhY2tpbmcsIEV2ZW50LCBMb2dzLCBhbmQgUlVNIG1vbml0b3JzLlxuICAgKi9cbiAgcmVhZG9ubHkgb25NaXNzaW5nRGF0YT86IE1vbml0b3JPbk1pc3NpbmdEYXRhO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBhZnRlciB0aGUgbGFzdCBub3RpZmljYXRpb24gYmVmb3JlIHRoZSBtb25pdG9yIHJlLW5vdGlmaWVzIG9uIHRoZSBjdXJyZW50IHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1vbml0b3IgcmVxdWlyZXMgYSBmdWxsIHdpbmRvdyBvZiBkYXRhIGJlZm9yZSBpdCBpcyBldmFsdWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUZ1bGxXaW5kb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHNjaGVkdWxpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxpbmdPcHRpb25zPzogTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBzeW50aGV0aWNzIGNoZWNrXG4gICAqL1xuICByZWFkb25seSBzeW50aGV0aWNzQ2hlY2tJRD86IG51bWJlcjtcblxuICByZWFkb25seSB0aHJlc2hvbGRzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZFdpbmRvd3M/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3M7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBob3VycyBvZiB0aGUgbW9uaXRvciBub3QgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIGl0IGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRIPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzaG91bGQgYmUgc2VudCBvbiB0aGUgY3VycmVudCBzdGF0dXMgYXQgdGhlIHByb3ZpZGVkIHJlLW5vdGlmaWNhdGlvbiBpbnRlcnZhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5T2NjdXJyZW5jZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlcyBvZiBtb25pdG9yIHN0YXR1c2VzIGZvciB3aGljaCByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgYXJlIHNlbnQuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeVN0YXR1c2VzPzogUmVub3RpZnlTdGF0dXNlc1tdO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0aGUgdGVzdCBzaG91bGQgYmUgaW4gZmFpbHVyZSBiZWZvcmUgYWxlcnRpbmcgKGludGVnZXIsIG51bWJlciBvZiBzZWNvbmRzLCBtYXggNzIwMCkuXG4gICAqL1xuICByZWFkb25seSBtaW5GYWlsdXJlRHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoaWNoIGluZm9ybWF0aW9uIHNob3VsZCBiZSBhZGRlZC9sZXR0IG91dCBmcm9tIHRoZSBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQuU0hPV19BTEx9XG4gICAqL1xuICByZWFkb25seSBtb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZT86IE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQ7XG5cbiAgLyoqXG4gICAqIFRpbWUgKGluIHNlY29uZHMpIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBncm91cHMuIEZvciBleGFtcGxlLCB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgaG9zdHMgd2hpbGUgdGhleSBpbml0aWFsaXplLiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICByZWFkb25seSBuZXdHcm91cERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIG1vbml0b3IgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMge1xuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBvaz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciB0cmlnZ2VyaW5nIGEgd2FybmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYSB3YXJuaW5nIHN0YXRlXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5nUmVjb3Zlcnk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHtcbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc2NoZWR1bGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGV2YWx1YXRpb25XaW5kb3c/OiBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGV2YWx1YXRpb24gd2luZG93LlxuICpcbiAqIElmIGBob3VyX3N0YXJ0c2AgaXMgc2V0LCBubyBvdGhlciBmaWVsZHMgbWF5IGJlIHNldC5cbiAqIE90aGVyd2lzZSwgYGRheV9zdGFydHNgIGFuZCBgbW9udGhfc3RhcnRzYCBtdXN0IGJlIHNldCB0b2dldGhlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yU2NoZWR1bGluZ09wdGlvbnNFdmFsdWF0aW9uV2luZG93IHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lIG9mIHRoZSBkYXkgYXQgd2hpY2ggYSBvbmUgZGF5IGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzLlxuICAgKlxuICAgKiBNdXN0IGJlIGRlZmluZWQgaW4gVVRDIHRpbWUgaW4gYEhIOm1tYCBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBkYXlTdGFydHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXkgb2YgdGhlIG1vbnRoIGF0IHdoaWNoIGEgb25lIG1vbnRoIGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzXG4gICAqL1xuICByZWFkb25seSBtb250aFN0YXJ0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciBhdCB3aGljaCBhIG9uZSBob3VyIGN1bXVsYXRpdmUgZXZhbHVhdGlvbiB3aW5kb3cgc3RhcnRzXG4gICAqL1xuICByZWFkb25seSBob3VyU3RhcnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcjogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICBjb25zdCBpc0F3c01ldHJpa01vbml0b3IgPVxuICAgICAgKHByb3BzLm1vbml0b3JUeXBlID09PSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLk1FVFJJQ19BTEVSVCB8fFxuICAgICAgICBwcm9wcy5tb25pdG9yVHlwZSA9PT0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCkgJiZcbiAgICAgIHByb3BzLnF1ZXJ5LmluZGV4T2YoJ2F3cy4nKSA+IC0xO1xuICAgIGNvbnN0IG9wdGlvbk92ZXJyaWRlcyA9IHtcbiAgICAgIC4uLnByb3BzLm9wdGlvbk92ZXJyaWRlcyxcbiAgICB9O1xuXG4gICAgaWYgKGlzQXdzTWV0cmlrTW9uaXRvciAmJiBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXkgPSA5MDA7XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IGNkay5Bbm5vdGF0aW9ucy5vZihjZGsuU3RhY2sub2YodGhpcykpO1xuICAgICAgYW5ub3RhdGlvbnMuYWRkV2FybmluZ1YyKFxuICAgICAgICBgQHJpby1jbG91ZC1pbnRlcm5hbC9jZGstdjItY29uc3RydWN0cy9kYXRhZG9ndjIvRGF0YWRvZ01vbml0b3IvJHtpZH0vQ2xvdWRNZXRyaWNFdmFsdWF0aW9uRGVsYXlgLFxuICAgICAgICBcIlxcbiDinYwgWW91ciBtb25pdG9yIGlzIGFsZXJ0aW5nIG9uIENsb3VkIE1ldHJpY3MgYnV0IHlvdSBoYXZlbid0IHNldCBhbiAnb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheScuXFxuIOKchSBJdCdzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDE1IG1pbnV0ZXMsIGJ1dCBwbGVhc2UgcHJvdmlkZSBhIHN1aXRhYmxlIHZhbHVlIG9uIHlvdXIgb3duLlxcblwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjbG91ZGZvcm1hdGlvbk9wdGlvbnM6IHsgTG93ZXJjYXNlUXVlcnk6IGJvb2xlYW4gfSB8IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMubG93ZXJjYXNlUXVlcnkgPT09IHRydWUpIHtcbiAgICAgIGNsb3VkZm9ybWF0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgTG93ZXJjYXNlUXVlcnk6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29uXG4gICAgdGhpcy5tb25pdG9yID0gbmV3IGNkay5DZm5SZXNvdXJjZSh0aGlzLCAnTW9uaXRvcicsIHtcbiAgICAgIHR5cGU6ICdEYXRhZG9nOjpNb25pdG9yczo6TW9uaXRvcicsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFR5cGU6IHByb3BzLm1vbml0b3JUeXBlLFxuICAgICAgICBRdWVyeTogcHJvcHMucXVlcnksXG4gICAgICAgIE5hbWU6IGAke3RlYW1OYW1lLnN0cmluZ1ZhbHVlfSAke3Byb3BzLnNlcnZpY2VOYW1lfSAke3Byb3BzLm5hbWV9YCxcbiAgICAgICAgTWVzc2FnZTogdGhpcy5jb25jYXRlbmF0ZU1lc3NhZ2Uoe1xuICAgICAgICAgIG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsXG4gICAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKG9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIENsb3VkZm9ybWF0aW9uT3B0aW9uczogY2xvdWRmb3JtYXRpb25PcHRpb25zLFxuICAgICAgICBUYWdzOiBbXG4gICAgICAgICAgLi4uKHByb3BzLmV4dHJhVGFncyA/PyBbXSksXG4gICAgICAgICAgYGFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH1gLFxuICAgICAgICAgIGBhY2NvdW50X25hbWU6JHthY2NvdW50TmFtZS5zdHJpbmdWYWx1ZX1gLFxuICAgICAgICAgIGBzZXJ2aWNlOiR7cHJvcHMuc2VydmljZU5hbWV9YCxcbiAgICAgICAgICBgdGVhbToke3RlYW1OYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHRlYW1faWRlbnRpZmllcjoke3RlYW1JZGVudGlmaWVyLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGFpbiB0aGUgbW9uaXRvcl9pZCBhcyB1c2VkIGluIERhdGFkb2dcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2FwaS9sYXRlc3QvbW9uaXRvcnMvI2dldC1hLW1vbml0b3JzLWRldGFpbHNcbiAgICpcbiAgICogVGhpcyBhbGxvd3MgcmVmZXJlbmNpbmcgdGhpcyBtb25pdG9yIGluIG90aGVyIGNvbnN0cnVjdHMvcmVzb3VyY2VzIChlLmcuIFNMT3MpXG4gICAqL1xuICBnZXQgbW9uaXRvcklkKCkge1xuICAgIC8vIHJldHVybiBSZWYgYXMgaXQgcmV0dXJucyB0aGUgSWQgYXMgc3RyaW5nIGluc3RlYWQgb2YgdGhlIEdldEF0dChJZCkgd2loY2ggcmV0dXJucyB0aGUgaWQgYXMgbnVtYmVyXG4gICAgLy8gaHR0cHM6Ly9teS1yaW8uc2xhY2suY29tL2FyY2hpdmVzL0MwMzRXQUczUVVBL3AxNzA4NDE5ODcxMzk4OTQ5XG4gICAgcmV0dXJuIGNkay5Gbi5yZWYodGhpcy5tb25pdG9yLmxvZ2ljYWxJZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmNhdGVuYXRlTWVzc2FnZShwcm9wczogeyBtZXNzYWdlOiBzdHJpbmc7IG5vdGlmaWNhdGlvbjogSU5vdGlmaWNhdGlvbiB9KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcE1vbml0b3JPcHRpb25zKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiB7XG4gICAgRW5hYmxlTG9nc1NhbXBsZTogc291cmNlPy5lbmFibGVMb2dzU2FtcGxlLFxuICAgIEVuYWJsZVNhbXBsZXM6IHNvdXJjZT8uZW5hYmxlU2FtcGxlcyxcbiAgICBFc2NhbGF0aW9uTWVzc2FnZTogc291cmNlPy5lc2NhbGF0aW9uTWVzc2FnZSxcbiAgICBFdmFsdWF0aW9uRGVsYXk6IHNvdXJjZT8uZXZhbHVhdGlvbkRlbGF5LFxuICAgIEdyb3VwUmV0ZW50aW9uRHVyYXRpb246IHNvdXJjZT8uZ3JvdXBSZXRlbnRpb25EdXJhdGlvbixcbiAgICBJbmNsdWRlVGFnczogc291cmNlPy5pbmNsdWRlVGFncyA/PyB0cnVlLFxuICAgIExvY2tlZDogc291cmNlPy5sb2NrZWQsXG4gICAgTWluTG9jYXRpb25GYWlsZWQ6IHNvdXJjZT8ubWluTG9jYXRpb25GYWlsZWQsXG4gICAgTmV3SG9zdERlbGF5OiBzb3VyY2U/Lm5ld0hvc3REZWxheSxcbiAgICBOb0RhdGFUaW1lZnJhbWU6IHNvdXJjZT8ubm9EYXRhVGltZWZyYW1lLFxuICAgIE5vdGlmeUF1ZGl0OiBzb3VyY2U/Lm5vdGlmeUF1ZGl0LFxuICAgIE5vdGlmeUJ5OiBzb3VyY2U/Lm5vdGlmeUJ5LFxuICAgIE5vdGlmeU5vRGF0YTogc291cmNlPy5ub3RpZnlOb0RhdGEgPz8gZmFsc2UsXG4gICAgUmVub3RpZnlJbnRlcnZhbDogc291cmNlPy5yZW5vdGlmeUludGVydmFsLFxuICAgIFJlcXVpcmVGdWxsV2luZG93OiBzb3VyY2U/LnJlcXVpcmVGdWxsV2luZG93ID8/IGZhbHNlLFxuICAgIFNjaGVkdWxpbmdPcHRpb25zOiBtYXBTY2hlZHVsaW5nT3B0aW9uc1Byb3BlcnRpZXMoc291cmNlPy5zY2hlZHVsaW5nT3B0aW9ucyksXG4gICAgU3ludGhldGljc0NoZWNrSUQ6IHNvdXJjZT8uc3ludGhldGljc0NoZWNrSUQsXG4gICAgVGhyZXNob2xkczogbWFwVGhyZXNob2xkc1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRzKSxcbiAgICBUaHJlc2hvbGRXaW5kb3dzOiBtYXBUaHJlc2hvbGRXaW5kb3dzUHJvcGVydGllcyhzb3VyY2U/LnRocmVzaG9sZFdpbmRvd3MpLFxuICAgIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lOiBzb3VyY2U/Lm1vbml0b3JOb3RpZmljYXRpb25QcmVzZXROYW1lLFxuICAgIFRpbWVvdXRIOiBzb3VyY2U/LnRpbWVvdXRILFxuICAgIFJlbm90aWZ5T2NjdXJyZW5jZXM6IHNvdXJjZT8ucmVub3RpZnlPY2N1cnJlbmNlcyxcbiAgICBSZW5vdGlmeVN0YXR1c2VzOiBzb3VyY2U/LnJlbm90aWZ5U3RhdHVzZXMsXG4gICAgTWluRmFpbHVyZUR1cmF0aW9uOiBzb3VyY2U/Lm1pbkZhaWx1cmVEdXJhdGlvbixcbiAgICBOZXdHcm91cERlbGF5OiBzb3VyY2U/Lm5ld0dyb3VwRGVsYXksXG4gICAgVmFyaWFibGVzOiBzb3VyY2U/LnZhcmlhYmxlcyxcbiAgICBPbk1pc3NpbmdEYXRhOiBzb3VyY2U/Lm9uTWlzc2luZ0RhdGEsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcFNjaGVkdWxpbmdPcHRpb25zUHJvcGVydGllcyhzb3VyY2U6IE1vbml0b3JTY2hlZHVsaW5nT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlXG4gICAgPyB7XG4gICAgICAgIEV2YWx1YXRpb25XaW5kb3c6IG1hcFNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvd1Byb3BlcnRpZXMoc291cmNlLmV2YWx1YXRpb25XaW5kb3cpLFxuICAgICAgfVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYXBTY2hlZHVsaW5nT3B0aW9uc0V2YWx1YXRpb25XaW5kb3dQcm9wZXJ0aWVzKHNvdXJjZTogTW9uaXRvclNjaGVkdWxpbmdPcHRpb25zRXZhbHVhdGlvbldpbmRvdyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlXG4gICAgPyB7XG4gICAgICAgIERheVN0YXJ0czogc291cmNlLmRheVN0YXJ0cyxcbiAgICAgICAgTW9udGhTdGFydHM6IHNvdXJjZS5tb250aFN0YXJ0cyxcbiAgICAgICAgSG91clN0YXJ0czogc291cmNlLmhvdXJTdGFydHMsXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2VcbiAgICA/IHtcbiAgICAgICAgQ3JpdGljYWw6IHNvdXJjZS5jcml0aWNhbCxcbiAgICAgICAgQ3JpdGljYWxSZWNvdmVyeTogc291cmNlLmNyaXRpY2FsUmVjb3ZlcnksXG4gICAgICAgIE9LOiBzb3VyY2Uub2ssXG4gICAgICAgIFdhcm5pbmc6IHNvdXJjZS53YXJuaW5nLFxuICAgICAgICBXYXJuaW5nUmVjb3Zlcnk6IHNvdXJjZS53YXJuaW5nUmVjb3ZlcnksXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2VcbiAgICA/IHtcbiAgICAgICAgVHJpZ2dlcldpbmRvdzogc291cmNlLnRyaWdnZXJXaW5kb3csXG4gICAgICAgIFJlY292ZXJ5V2luZG93OiBzb3VyY2UucmVjb3ZlcnlXaW5kb3csXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -16,7 +16,7 @@ class NoNotification {
|
|
|
16
16
|
}
|
|
17
17
|
exports.NoNotification = NoNotification;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
NoNotification[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.NoNotification", version: "0.0.0" };
|
|
19
|
+
NoNotification[_a] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.NoNotification", version: "0.0.0" };
|
|
20
20
|
/**
|
|
21
21
|
* This phrase is explicitly filtered out during message generation.
|
|
22
22
|
*/
|
|
@@ -35,7 +35,7 @@ class SlackNotification {
|
|
|
35
35
|
}
|
|
36
36
|
exports.SlackNotification = SlackNotification;
|
|
37
37
|
_b = JSII_RTTI_SYMBOL_1;
|
|
38
|
-
SlackNotification[_b] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.SlackNotification", version: "0.0.0" };
|
|
38
|
+
SlackNotification[_b] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.SlackNotification", version: "0.0.0" };
|
|
39
39
|
/**
|
|
40
40
|
* An {@link INotification}, that forwards alerts to the Slack channel, that was entered
|
|
41
41
|
* as alert channel during account creation process. The actual channel value is taken from
|
|
@@ -50,7 +50,7 @@ class DefaultSlackNotification {
|
|
|
50
50
|
}
|
|
51
51
|
exports.DefaultSlackNotification = DefaultSlackNotification;
|
|
52
52
|
_c = JSII_RTTI_SYMBOL_1;
|
|
53
|
-
DefaultSlackNotification[_c] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DefaultSlackNotification", version: "0.0.0" };
|
|
53
|
+
DefaultSlackNotification[_c] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DefaultSlackNotification", version: "0.0.0" };
|
|
54
54
|
/**
|
|
55
55
|
* An {@link INotification}, that forwards alerts to the RIO paging router
|
|
56
56
|
* to engage the corresponding team.
|
|
@@ -66,7 +66,7 @@ class RioPagingNotification {
|
|
|
66
66
|
}
|
|
67
67
|
exports.RioPagingNotification = RioPagingNotification;
|
|
68
68
|
_d = JSII_RTTI_SYMBOL_1;
|
|
69
|
-
RioPagingNotification[_d] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.RioPagingNotification", version: "0.0.0" };
|
|
69
|
+
RioPagingNotification[_d] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.RioPagingNotification", version: "0.0.0" };
|
|
70
70
|
RioPagingNotification.MINIMUM_PRIORITY = 2;
|
|
71
71
|
/**
|
|
72
72
|
* An {@link INotification}, that uses the team_identifier to create
|
|
@@ -85,7 +85,7 @@ class DatadogCaseNotification {
|
|
|
85
85
|
}
|
|
86
86
|
exports.DatadogCaseNotification = DatadogCaseNotification;
|
|
87
87
|
_e = JSII_RTTI_SYMBOL_1;
|
|
88
|
-
DatadogCaseNotification[_e] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogCaseNotification", version: "0.0.0" };
|
|
88
|
+
DatadogCaseNotification[_e] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DatadogCaseNotification", version: "0.0.0" };
|
|
89
89
|
/**
|
|
90
90
|
* Helper to combine multiple {@link INotification} into one.
|
|
91
91
|
*/
|
|
@@ -102,5 +102,5 @@ class NotificationAggregator {
|
|
|
102
102
|
}
|
|
103
103
|
exports.NotificationAggregator = NotificationAggregator;
|
|
104
104
|
_f = JSII_RTTI_SYMBOL_1;
|
|
105
|
-
NotificationAggregator[_f] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.NotificationAggregator", version: "0.0.0" };
|
|
105
|
+
NotificationAggregator[_f] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.NotificationAggregator", version: "0.0.0" };
|
|
106
106
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1ub3RpZmljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWRvZ3YyL2RhdGFkb2ctbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQXFEO0FBdUNyRDs7OztHQUlHO0FBQ0gsTUFBYSxjQUFjO0lBTXpCLHlCQUF5QixDQUFDLFFBQXdCO1FBQ2hELE9BQU8sY0FBYyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDOztBQVJILHdDQVNDOzs7QUFSQzs7R0FFRztBQUNhLDRCQUFhLEdBQUcsRUFBRSxDQUFDO0FBT3JDLE1BQU0sb0NBQW9DLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FBQyxVQUFVLFlBQVksRUFBRSxDQUFDO0FBWWhHOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDNUIsWUFBNkIsS0FBNkI7UUFBN0IsVUFBSyxHQUFMLEtBQUssQ0FBd0I7SUFBRyxDQUFDO0lBRTlELHlCQUF5QixDQUFDLFFBQXdCO1FBQ2hELE9BQU8sb0NBQW9DLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDOztBQUxILDhDQU1DOzs7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsd0JBQXdCO0lBQ25DLHlCQUF5QixDQUFDLE9BQXVCO1FBQy9DLE1BQU0sWUFBWSxHQUFHLGlDQUFjLENBQUMsaUNBQWlDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0UsT0FBTyxvQ0FBb0MsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7QUFKSCw0REFLQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEscUJBQXFCO0lBRWhDLHlCQUF5QixDQUFDLE9BQXVCO1FBQy9DLElBQUksT0FBTyxDQUFDLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlELE9BQU8sY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyw0QkFBNEIsQ0FBQztJQUN0QyxDQUFDOztBQVBILHNEQVFDOzs7QUFQaUIsc0NBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBU3ZDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDbEMseUJBQXlCLENBQUMsT0FBdUI7UUFDL0MsTUFBTSxjQUFjLEdBQUcsaUNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRSxPQUFPLFNBQVMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLENBQUM7O0FBSkgsMERBS0M7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDakMsWUFBNkIsYUFBOEI7UUFBOUIsa0JBQWEsR0FBYixhQUFhLENBQWlCO0lBQUcsQ0FBQztJQUUvRCx5QkFBeUIsQ0FBQyxPQUF1QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxhQUFhO2FBQ3RCLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoRCxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssY0FBYyxDQUFDLGFBQWEsQ0FBQzthQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQzs7QUFSSCx3REFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5pbXBvcnQgdHlwZSB7IERhdGFkb2dNb25pdG9yIH0gZnJvbSAnLi9kYXRhZG9nLW1vbml0b3InO1xuXG4vKipcbiAqIEludGVyZmFjZSB0byBwbHVnIGluIHNwZWNpZmljIG5vdGlmaWNhdGlvbiB0eXBlcyBmb3IgbW9uaXRvcnMgaW4gRGF0YWRvZy5cbiAqIE9uZSBpbnN0YW5jZSBjb3VsZCBiZSByZXVzZWQgb3ZlciBtdWx0aXBsZSBtb25pdG9ycywgZS5nLiB3aGVuIHVzaW5nIHRoZSB7QGxpbmsgLi8uLi93YXRjaGZ1bHYyI3dhdGNoZnVsLnRzfSBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBFeGFtcGxlIC0gcm91dGUgYWxsIHBpcGVsaW5lIG1vbml0b3JzIHRvIGEgc3BlY2lmaWMgY2hhbm5lbDpcbiAgICogYGBgdHNcbiAgICogIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgKiAgICBpZiAobW9uaXRvci5uYW1lLmluZGV4T2YoJ3BpcGVsaW5lJykgPiAtMSkge1xuICAgKiAgICAgIHJldHVybiAnQHNsYWNrLXRlYW0tcGlwZWxpbmUtYWxlcnQtY2hhbm5lbCc7XG4gICAqICAgIH0gZWxzZSB7XG4gICAqICAgICAgcmV0dXJuICdAc2xhY2stdGVhbS1zZXJpb3VzLWlzc3VlLWFsZXJ0LWNoYW5uZWwnO1xuICAgKiAgICB9XG4gICAqICB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBFeGFtcGxlIC0gcm91dGUgaXNzdWVzIGJhc2VkIG9uIHRoZWlyIHByaW9yaXR5OlxuICAgKiBgYGB0c1xuICAgKiAgZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yOiBEYXRhZG9nTW9uaXRvcik6IHN0cmluZyB7XG4gICAqICAgIGlmIChtb25pdG9yLnByaW9yaXR5IDw9IDIpIHtcbiAgICogICAgICByZXR1cm4gJ0A8cGFnZXItaW50ZWdyYXRpb24+LXRlYW0tc2NoZWR1bGUnO1xuICAgKiAgICB9IGVsc2UgaWYgKG1vbml0b3IucHJpb3JpdHkgPT0gMykge1xuICAgKiAgICAgIHJldHVybiAnQHNsYWNrLXRlYW0tYWxlcnQtY2hhbm5lbCc7XG4gICAqICAgIH0gZWxzZSB7XG4gICAqICAgICAgcmV0dXJuIE5vTm90aWZpY2F0aW9uLkRPX05PVF9OT1RJRlk7XG4gICAqICAgIH1cbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBtb25pdG9yIC0gdGhlIG1vbml0b3Igb24gd2hpY2ggdGhlIG5vdGlmaWNhdGlvbiBzaG91bGQgYmUgYXBwbGllZC5cbiAgICogQHJldHVybnMgdGhlIGludGVncmF0aW9uIGhhbmRsZSB0byByb3V0ZSBhbGVydCBub3RpZmljYXRpb25zIHRvIHNwZWNpZmljIGludGVncmF0aW9ucyBpbiBEYXRhZG9nLlxuICAgKi9cbiAgZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yOiBEYXRhZG9nTW9uaXRvcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiB7QGxpbmsgSU5vdGlmaWNhdGlvbn0gaW1wbGVtZW50YXRpb24sIHRoYXQgZXhwbGljaXRseSBzdXBwcmVzc2VzIG5vdGlmaWNhdGlvbnMuIFBlciBkZWZhdWx0IGV2ZXJ5IG1vbml0b3JcbiAqIGhhcyBhIFNsYWNrIG5vdGlmaWNhdGlvbi4gSW4gb3JkZXIgdG8gY3JlYXRlIGEge0BsaW5rIERhdGFkb2dNb25pdG9yfSBqdXN0IGZvciBhIHtAbGluayAuL2RhdGFkb2ctbW9uaXRvci50cy4jRGF0YWRvZ01vbml0b3J9XG4gKiB3aXRob3V0IGZ1cnRoZXIgbm90aWZpY2F0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgTm9Ob3RpZmljYXRpb24gaW1wbGVtZW50cyBJTm90aWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFRoaXMgcGhyYXNlIGlzIGV4cGxpY2l0bHkgZmlsdGVyZWQgb3V0IGR1cmluZyBtZXNzYWdlIGdlbmVyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgRE9fTk9UX05PVElGWSA9ICcnO1xuXG4gIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24oX21vbml0b3I6IERhdGFkb2dNb25pdG9yKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTm9Ob3RpZmljYXRpb24uRE9fTk9UX05PVElGWTtcbiAgfVxufVxuXG5jb25zdCBnZXRNZXNzYWdlQW5ub3RhdGlvbkZyb21TbGFja0NoYW5uZWwgPSAoc2xhY2tDaGFubmVsOiBzdHJpbmcpID0+IGBAc2xhY2stJHtzbGFja0NoYW5uZWx9YDtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIHtAbGluayBTbGFja05vdGlmaWNhdGlvbn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbGFja05vdGlmaWNhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBTbGFjayBjaGFubmVsIHRvIHJvdXRlIHRoZSBhbGVydCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiB7QGxpbmsgSU5vdGlmaWNhdGlvbn0sIHRoYXQgZm9yd2FyZHMgYWxlcnRzIHRvIHRoZSBTbGFjayBjaGFubmVsIHBhc3NlZCBpbiBwcm9wcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNsYWNrTm90aWZpY2F0aW9uIGltcGxlbWVudHMgSU5vdGlmaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFNsYWNrTm90aWZpY2F0aW9uUHJvcHMpIHt9XG5cbiAgZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihfbW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRNZXNzYWdlQW5ub3RhdGlvbkZyb21TbGFja0NoYW5uZWwodGhpcy5wcm9wcy5jaGFubmVsKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIHtAbGluayBJTm90aWZpY2F0aW9ufSwgdGhhdCBmb3J3YXJkcyBhbGVydHMgdG8gdGhlIFNsYWNrIGNoYW5uZWwsIHRoYXQgd2FzIGVudGVyZWRcbiAqIGFzIGFsZXJ0IGNoYW5uZWwgZHVyaW5nIGFjY291bnQgY3JlYXRpb24gcHJvY2Vzcy4gVGhlIGFjdHVhbCBjaGFubmVsIHZhbHVlIGlzIHRha2VuIGZyb21cbiAqIHNzbSBwYXJhbWV0ZXIgYC9jb25maWcvdGVhbS9zbGFjay1hbGVydC1jaGFubmVsYC5cbiAqIFRoaXMgbm90aWZpY2F0aW9uIGNvdWxkIGJyZWFrIHRoZSBkZXBsb3ltZW50LCBpZiB0aGUgc3NtIHBhcmFtZXRlciBpcyBub3Qgc2V0LlxuICovXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uIGltcGxlbWVudHMgSU5vdGlmaWNhdGlvbiB7XG4gIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNsYWNrQ2hhbm5lbCA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1BbGVydFNsYWNrQ2hhbm5lbFBhcmFtZXRlcihtb25pdG9yKTtcbiAgICByZXR1cm4gZ2V0TWVzc2FnZUFubm90YXRpb25Gcm9tU2xhY2tDaGFubmVsKHNsYWNrQ2hhbm5lbC5zdHJpbmdWYWx1ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiB7QGxpbmsgSU5vdGlmaWNhdGlvbn0sIHRoYXQgZm9yd2FyZHMgYWxlcnRzIHRvIHRoZSBSSU8gcGFnaW5nIHJvdXRlclxuICogdG8gZW5nYWdlIHRoZSBjb3JyZXNwb25kaW5nIHRlYW0uXG4gKiBBbGVydHMgd2l0aCBQcmlvcml0eSBcXD4ge0BsaW5rIFJpb1BhZ2luZ05vdGlmaWNhdGlvbi5NSU5JTVVNX1BSSU9SSVRZfSB3aWxsIG5vdCBiZSB0YWtlbiBpbnRvIGFjY291bnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBSaW9QYWdpbmdOb3RpZmljYXRpb24gaW1wbGVtZW50cyBJTm90aWZpY2F0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IE1JTklNVU1fUFJJT1JJVFkgPSAyO1xuICBnZW5lcmF0ZU1lc3NhZ2VBbm5vdGF0aW9uKG1vbml0b3I6IERhdGFkb2dNb25pdG9yKTogc3RyaW5nIHtcbiAgICBpZiAobW9uaXRvci5wcmlvcml0eSA+IFJpb1BhZ2luZ05vdGlmaWNhdGlvbi5NSU5JTVVNX1BSSU9SSVRZKSB7XG4gICAgICByZXR1cm4gTm9Ob3RpZmljYXRpb24uRE9fTk9UX05PVElGWTtcbiAgICB9XG4gICAgcmV0dXJuICdAYXdzZXZlbnRicmlkZ2UtcmlvLXBhZ2luZyc7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiB7QGxpbmsgSU5vdGlmaWNhdGlvbn0sIHRoYXQgdXNlcyB0aGUgdGVhbV9pZGVudGlmaWVyIHRvIGNyZWF0ZVxuICogYSBjYXNlIGluIGEgdGVhbSBwcm9qZWN0IGluIERhdGFkb2dzIENhc2VNYW5hZ2VtZW50LlxuICogSXQgY2FuIGJlIHVzZWQgdG8gbm90IGxvc2UgZS5nLiBhbiBsb2cgYWxlcnQsIHRoYXQgaXMgcmVjb3ZlcmluZ1xuICogYXV0b21hdGljYWxseSBhZnRlciBhIHdoaWxlLlxuICpcbiAqIFRvIHVzZSBpdCwgc2V0dXAgYSBwcm9qZWN0IGluIERhdGFkb2cgY2FzZSBtYW5hZ2VtZW50IGFuZCBjb25maWd1cmVcbiAqIHRoZSBpbnRlZ3JhdGlvbiBoYW5kbGUgYWNjb3JkaW5nIHRvIHRoZSBuYW1pbmcgY29udmVudGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dDYXNlTm90aWZpY2F0aW9uIGltcGxlbWVudHMgSU5vdGlmaWNhdGlvbiB7XG4gIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUlkZW50aWZpZXJQYXJhbWV0ZXIobW9uaXRvcik7XG4gICAgcmV0dXJuIGBAY2FzZS0ke3RlYW1JZGVudGlmaWVyLnN0cmluZ1ZhbHVlfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSB7QGxpbmsgSU5vdGlmaWNhdGlvbn0gaW50byBvbmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25BZ2dyZWdhdG9yIGltcGxlbWVudHMgSU5vdGlmaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uczogSU5vdGlmaWNhdGlvbltdKSB7fVxuXG4gIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNcbiAgICAgIC5tYXAoaXQgPT4gaXQuZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yKSlcbiAgICAgIC5maWx0ZXIoaXQgPT4gaXQgIT09IE5vTm90aWZpY2F0aW9uLkRPX05PVF9OT1RJRlkpXG4gICAgICAuam9pbignXFxuJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -67,5 +67,5 @@ class DatadogServiceCatalogEntry extends constructs.Construct {
|
|
|
67
67
|
}
|
|
68
68
|
exports.DatadogServiceCatalogEntry = DatadogServiceCatalogEntry;
|
|
69
69
|
_a = JSII_RTTI_SYMBOL_1;
|
|
70
|
-
DatadogServiceCatalogEntry[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogServiceCatalogEntry", version: "0.0.0" };
|
|
70
|
+
DatadogServiceCatalogEntry[_a] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DatadogServiceCatalogEntry", version: "0.0.0" };
|
|
71
71
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zZXJ2aWNlLWNhdGFsb2ctZW50cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWRvZ3YyL2RhdGFkb2ctc2VydmljZS1jYXRhbG9nLWVudHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLG1DQUFtQztBQUNuQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLG1EQUFtRDtBQUNuRCx5Q0FBeUM7QUFDekMsNENBQW9EO0FBQ3BELDBEQUFxRDtBQUNyRCxxRUFBK0Q7QUFpQy9ELE1BQU0sV0FBVyxHQUFHLDJDQUEyQyxDQUFDO0FBRWhFOztHQUVHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUNsRSxZQUFZLEtBQTRCLEVBQUUsRUFBVSxFQUFFLEtBQTJDO1FBQy9GLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN6RCxjQUFjLEVBQUUscUJBQXFCO1NBQ3RDLENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQWEsQ0FBQyxDQUFDO1FBRXhHLE1BQU0sY0FBYyxHQUFHLGlDQUFjLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkUsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdkMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxjQUFjLENBQUMsV0FBVztnQkFDaEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUMxQixJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBRSxXQUFXLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUN2QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7YUFDM0I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBb0IsQ0FBQztRQUM5RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sYUFBYSxHQUFHLDRDQUFtQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWxFLE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNyRCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUNBQWlDLENBQUMsRUFBRTtvQkFDbkYsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztpQkFDNUIsQ0FBQztnQkFDRixPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixPQUFPLEVBQUUsZ0NBQW9CO2dCQUM3QixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO2dCQUN4QyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxtREFBbUQsRUFBRTtvQkFDckYsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtpQkFDdkMsQ0FBQztnQkFDRixPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxXQUFXLEVBQUU7b0JBQ1gsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFNBQVM7aUJBQzVDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFhLENBQUMsQ0FBQztZQUVuRSxhQUFhLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDOztBQXJESCxnRUFzREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBERUZBVUxUX05PREVfUlVOVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuaW1wb3J0IHsgRGF0YWRvZ1NoYXJlZFNlY3JldCB9IGZyb20gJy4vZGF0YWRvZy1zaGFyZWQtc2VjcmV0cyc7XG5cbnR5cGUgU2VydmljZUxhbmd1YWdlID0gJ2RvdG5ldCcgfCAnZ28nIHwgJ2phdmEnIHwgJ2pzJyB8ICdwaHAnIHwgJ3B5dGhvbicgfCAncnVieScgfCAnYysrJztcbnR5cGUgU2VydmljZVR5cGUgPSAnd2ViJyB8ICdkYicgfCAnY2FjaGUnIHwgJ2Z1bmN0aW9uJyB8ICdicm93c2VyJyB8ICdtb2JpbGUnIHwgJ2N1c3RvbSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIERhdGFkb2dTZXJ2aWNlQ2F0YWxvZ0VudHJ5IGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nU2VydmljZUNhdGFsb2dFbnRyeVByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGFjdHVhbCBuYW1lIG9mIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEV4dHJhIHRhZ3MgdGhhdCBhcmUgdXNlZCB0byBpZGVudGlmeSBsb2dzLCBtZXRyaWNzIGFuZCBvdGhlciByZXNvdXJjZXMgb2YgdGhlIHNlcnZpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgJ3NlcnZpY2U6JHNlcnZpY2VOYW1lJ1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFUYWdzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgc2VydmljZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VUeXBlPzogU2VydmljZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHVzZWQgaW4gdGhlIHNlcnZpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZXM/OiBTZXJ2aWNlTGFuZ3VhZ2VbXTtcbn1cblxuY29uc3QgRlVOQ1RJT05fSUQgPSAnRGF0YWRvZ1NlcnZpY2VDYXRhbG9nRW50cnlSZXNvdXJjZUhhbmRsZXInO1xuXG4vKipcbiAqIEN1c3RvbSBSZXNvdXJjZSB0byBzZXR1cCBzZXJ2aWNlIGluIERhdGFkb2cncyBTZXJ2aWNlQ2F0YWxvZy5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTZXJ2aWNlQ2F0YWxvZ0VudHJ5IGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5JQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ1NlcnZpY2VDYXRhbG9nRW50cnlQcm9wZXJ0aWVzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlc291cmNlSGFuZGxlckxhbWJkYSA9IHRoaXMucmVzb3VyY2VIYW5kbGVyKCk7XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCAnUmVzb3VyY2VQcm92aWRlcicsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiByZXNvdXJjZUhhbmRsZXJMYW1iZGEsXG4gICAgfSk7XG4gICAgbmV3IGNkay5UYWcoJ1dhdGNoZnVsJywgJ2ZhbHNlJykudmlzaXQocHJvdmlkZXIubm9kZS5maW5kQ2hpbGQoJ2ZyYW1ld29yay1vbkV2ZW50Jykubm9kZS5kZWZhdWx0Q2hpbGQhKTtcblxuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUlkZW50aWZpZXJQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcGFzY2FsQ2FzZVByb3BlcnRpZXM6IHRydWUsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHRlYW06IHRlYW1JZGVudGlmaWVyLnN0cmluZ1ZhbHVlLFxuICAgICAgICBzZXJ2aWNlOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgdGFnczogWy4uLihwcm9wcy5leHRyYVRhZ3MgPz8gW10pLCBgc2VydmljZToke3Byb3BzLnNlcnZpY2VOYW1lfWBdLFxuICAgICAgICB0eXBlOiBwcm9wcy5zZXJ2aWNlVHlwZSxcbiAgICAgICAgbGFuZ3VhZ2VzOiBwcm9wcy5sYW5ndWFnZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmVzb3VyY2VIYW5kbGVyKCkge1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIGlmIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChGVU5DVElPTl9JRCkpIHtcbiAgICAgIHJldHVybiBzdGFjay5ub2RlLmZpbmRDaGlsZChGVU5DVElPTl9JRCkgYXMgbGFtYmRhLkZ1bmN0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRhZG9nU2VjcmV0ID0gRGF0YWRvZ1NoYXJlZFNlY3JldC5jcmVkZW50aWFsc1NlY3JldCh0aGlzKTtcblxuICAgICAgY29uc3QgaGFuZGxlciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgRlVOQ1RJT05fSUQsIHtcbiAgICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdzZXJ2aWNlLWNhdGFsb2ctY3VzdG9tLXJlc291cmNlJyksIHtcbiAgICAgICAgICBleGNsdWRlOiBbJyouanMnLCAnKi5kLnRzJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBoYW5kbGVyOiAnb24tY3JlYXRlLmhhbmRsZXInLFxuICAgICAgICBydW50aW1lOiBERUZBVUxUX05PREVfUlVOVElNRSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgbG9nR3JvdXA6IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsICdEYXRhZG9nU2VydmljZUNhdGFsb2dFbnRyeVJlc291cmNlSGFuZGxlckxvZ0dyb3VwJywge1xuICAgICAgICAgIHJldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgICB9KSxcbiAgICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNiksXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgREFUQURPR19TRUNSRVRfQVJOOiBkYXRhZG9nU2VjcmV0LnNlY3JldEFybixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgbmV3IGNkay5UYWcoJ1dhdGNoZnVsJywgJ2ZhbHNlJykudmlzaXQoaGFuZGxlci5ub2RlLmRlZmF1bHRDaGlsZCEpO1xuXG4gICAgICBkYXRhZG9nU2VjcmV0LmdyYW50UmVhZChoYW5kbGVyKTtcbiAgICAgIHJldHVybiBoYW5kbGVyO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -174,7 +174,7 @@ class DatadogSharedSecret extends SharedSecret {
|
|
|
174
174
|
}
|
|
175
175
|
exports.DatadogSharedSecret = DatadogSharedSecret;
|
|
176
176
|
_a = JSII_RTTI_SYMBOL_1;
|
|
177
|
-
DatadogSharedSecret[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedSecret", version: "0.0.0" };
|
|
177
|
+
DatadogSharedSecret[_a] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DatadogSharedSecret", version: "0.0.0" };
|
|
178
178
|
/*
|
|
179
179
|
* A custom resource that resolves the Datadog credentials from a shared secret
|
|
180
180
|
* @example
|
|
@@ -193,5 +193,5 @@ class DatadogSharedCredentials extends SharedSecret {
|
|
|
193
193
|
}
|
|
194
194
|
exports.DatadogSharedCredentials = DatadogSharedCredentials;
|
|
195
195
|
_b = JSII_RTTI_SYMBOL_1;
|
|
196
|
-
DatadogSharedCredentials[_b] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSharedCredentials", version: "0.0.0" };
|
|
196
|
+
DatadogSharedCredentials[_b] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DatadogSharedCredentials", version: "0.0.0" };
|
|
197
197
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhZG9ndjIvZGF0YWRvZy1zaGFyZWQtc2VjcmV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtDQUFrQztBQUNsQyxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQseUNBQXlDO0FBQ3pDLDRDQUFvRDtBQUVwRCxNQUFNLHNCQUFzQixHQUFXLGNBQWMsQ0FBQztBQUN0RCxNQUFNLHlCQUF5QixHQUFXLGNBQWMsQ0FBQztBQUV6RCxNQUFNLDBCQUEwQixHQUFXLGNBQWMsQ0FBQztBQUUxRCxNQUFNLDBCQUEwQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDcEQsMEJBQTBCLE1BQU0sSUFBSSwwQkFBMEIsb0NBQW9DLENBQUM7QUFDckcsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQ2pELDBCQUEwQixNQUFNLElBQUksMEJBQTBCLGlDQUFpQyxDQUFDO0FBRWxHLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBQy9DLE1BQU0sbUJBQW1CLEdBQUcsK0JBQStCLENBQUM7QUFDNUQsTUFBTSx1QkFBdUIsR0FBRyxvQ0FBb0MsQ0FBQztBQUVyRSxNQUFlLFlBQWEsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBZ0I7UUFDakQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFO1lBQ2hGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQyxFQUFFO2dCQUNsRixPQUFPLEVB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LGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7QUFQSCw0REFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHNlYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0ICogYXMgY3IgZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5jb25zdCBFVV9MQU5ESU5HX1pPTkVfT1JHX0lEOiBzdHJpbmcgPSAnby1yNWpmbDdtYnI5JztcbmNvbnN0IExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IHN0cmluZyA9ICdvLTVqMTJ1dDUyNHcnO1xuXG5jb25zdCBERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRDogc3RyaW5nID0gJzU3NzE0Njg5Nzc4NSc7XG5cbmNvbnN0IHNoYXJlZExhdGFtU2VjcmV0QXJuUHJlZml4ID0gKHJlZ2lvbjogc3RyaW5nKSA9PlxuICBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3JlZ2lvbn06JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0Oi9kYXRhZG9nLWludGVncmF0aW9uL2xhdGFtYDtcbmNvbnN0IHNoYXJlZEV1U2VjcmV0QXJuUHJlZml4ID0gKHJlZ2lvbjogc3RyaW5nKSA9PlxuICBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3JlZ2lvbn06JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0Oi9kYXRhZG9nLWludGVncmF0aW9uL2V1YDtcblxuY29uc3QgUkVTT1VSQ0VfSUQgPSAnX19PcmdDcmVkZW50aWFsc1NlY3JldF9fJztcbmNvbnN0IEFQSV9LRVlfUkVTT1VSQ0VfSUQgPSAnX19EYXRhZG9nQXBpS2V5U2hhcmVkU2VjcmV0X18nO1xuY29uc3QgQ1JFREVOVElBTFNfUkVTT1VSQ0VfSUQgPSAnX19EYXRhZG9nQ3JlZGVudGlhbHNTaGFyZWRTZWNyZXRfXyc7XG5cbmFic3RyYWN0IGNsYXNzIFNoYXJlZFNlY3JldCBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IGltcGxlbWVudHMgc2VjLklTZWNyZXQge1xuICBwcml2YXRlIHN0YXRpYyBzZXR1cEN1c3RvbVJlc291cmNlKHN0YWNrOiBjZGsuU3RhY2spOiBjci5Qcm92aWRlciB7XG4gICAgY29uc3Qgc2VjcmV0TG9jYXRvckxhbWJkYSA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdSZXNvbHZlU2VjcmV0QXJuSGFuZGxlcicsIHtcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VjcmV0LWxvY2F0b3ItY3VzdG9tLXJlc291cmNlJyksIHtcbiAgICAgICAgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddLFxuICAgICAgfSksXG4gICAgICBoYW5kbGVyOiAnb24tY3JlYXRlLmhhbmRsZXInLFxuICAgICAgcnVudGltZTogREVGQVVMVF9OT0RFX1JVTlRJTUUsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgbG9nR3JvdXA6IG5ldyBsb2dzLkxvZ0dyb3VwKHN0YWNrLCAnRGF0YWRvZ1NoYXJlZFNlY3JldEhhbmRsZXJMb2dHcm91cCcsIHtcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB9KSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDYpLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgU0hBUkVEX0xBVEFNX1NFQ1JFVF9BUk5fUFJFRklYOiBzaGFyZWRMYXRhbVNlY3JldEFyblByZWZpeChzdGFjay5yZWdpb24pLFxuICAgICAgICBTSEFSRURfRVVfU0VDUkVUX0FSTl9QUkVGSVg6IHNoYXJlZEV1U2VjcmV0QXJuUHJlZml4KHN0YWNrLnJlZ2lvbiksXG4gICAgICAgIExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IExBVEFNX0xBTkRJTkdfWk9ORV9PUkdfSUQsXG4gICAgICAgIEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQ6IEVVX0xBTkRJTkdfWk9ORV9PUkdfSUQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIC8vIHRvIHByZXZlbnQgaXNzdWVzIHdpdGggb3JkZXIgb2YgYXNwZWN0cyBpbiBDREssIHdlIG5lZWQgdG8gYWRkIHRoZSB0YWcgZGlyZWN0bHkuXG4gICAgbmV3IGNkay5UYWcoJ1dhdGNoZnVsJywgJ2ZhbHNlJykudmlzaXQoc2VjcmV0TG9jYXRvckxhbWJkYS5ub2RlLmRlZmF1bHRDaGlsZCEpO1xuXG4gICAgc2VjcmV0TG9jYXRvckxhbWJkYS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7IGFjdGlvbnM6IFsnb3JnYW5pemF0aW9uczpEZXNjcmliZU9yZ2FuaXphdGlvbiddLCByZXNvdXJjZXM6IFsnKiddIH0pXG4gICAgKTtcbiAgICBzZWNyZXRMb2NhdG9yTGFtYmRhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydzZWNyZXRzbWFuYWdlcjpEZXNjcmliZVNlY3JldCddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3N0YWNrLnJlZ2lvbn06JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06c2VjcmV0OipgXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHN0YWNrLCBSRVNPVVJDRV9JRCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IHNlY3JldExvY2F0b3JMYW1iZGEsXG4gICAgfSk7XG4gICAgLy8gdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBvcmRlciBvZiBhc3BlY3RzIGluIENESywgd2UgbmVlZCB0byBhZGQgdGhlIHRhZyBkaXJlY3RseS5cbiAgICBuZXcgY2RrLlRhZygnV2F0Y2hmdWwnLCAnZmFsc2UnKS52aXNpdChwcm92aWRlci5ub2RlLmZpbmRDaGlsZCgnZnJhbWV3b3JrLW9uRXZlbnQnKS5ub2RlLmRlZmF1bHRDaGlsZCEpO1xuICAgIHJldHVybiBwcm92aWRlcjtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VjcmV0OiBzZWMuSVNlY3JldDtcblxuICBwcml2YXRlIGN1c3RvbVJlc291cmNlOiBjci5Qcm92aWRlcjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuSUNvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VjcmV0TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIGlmICghc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoUkVTT1VSQ0VfSUQpKSB7XG4gICAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gU2hhcmVkU2VjcmV0LnNldHVwQ3VzdG9tUmVzb3VyY2Uoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gc3RhY2subm9kZS5maW5kQ2hpbGQoUkVTT1VSQ0VfSUQpIGFzIGNyLlByb3ZpZGVyO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldExvY2F0b3IgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdEYXRhZG9nU2hhcmVkU2VjcmV0Jywge1xuICAgICAgc2VydmljZVRva2VuOiB0aGlzLmN1c3RvbVJlc291cmNlLnNlcnZpY2VUb2tlbixcbiAgICAgIHBhc2NhbENhc2VQcm9wZXJ0aWVzOiB0cnVlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBzZWNyZXROYW1lOiBzZWNyZXROYW1lLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuc2VjcmV0ID0gc2VjLlNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgJ1Jlc291cmNlJywgc2VjcmV0TG9jYXRvci5nZXRBdHQoJ1NlY3JldEFybicpLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgZ2V0IHN0YWNrKCk6IGNkay5TdGFjayB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnN0YWNrO1xuICB9XG5cbiAgZ2V0IGVudigpOiBjZGsuUmVzb3VyY2VFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LmVudjtcbiAgfVxuXG4gIGdldCBlbmNyeXB0aW9uS2V5KCk6IGNkay5hd3Nfa21zLklLZXkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgc2VjcmV0QXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldEFybjtcbiAgfVxuXG4gIGdldCBzZWNyZXRGdWxsQXJuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LnNlY3JldEZ1bGxBcm47XG4gIH1cblxuICBnZXQgc2VjcmV0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXROYW1lO1xuICB9XG5cbiAgZ2V0IHNlY3JldFJlZigpOiBzZWMuU2VjcmV0UmVmZXJlbmNlIHtcbiAgICByZXR1cm4geyBzZWNyZXRJZDogdGhpcy5zZWNyZXQuc2VjcmV0QXJuIH07XG4gIH1cblxuICBnZXQgc2VjcmV0VmFsdWUoKTogY2RrLlNlY3JldFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0VmFsdWU7XG4gIH1cblxuICBzZWNyZXRWYWx1ZUZyb21Kc29uKGtleTogc3RyaW5nKTogY2RrLlNlY3JldFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5zZWNyZXQuc2VjcmV0VmFsdWVGcm9tSnNvbihrZXkpO1xuICB9XG5cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCB2ZXJzaW9uU3RhZ2VzPzogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJlc3VsdCA9IGdyYW50ZWUuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsna21zOkRlY3J5cHQnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6a21zOio6JHtERVZFTE9QRVJfVE9PTFNfQUNDT1VOVF9JRH06a2V5LypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzoge1xuICAgICAgICAgICAgJ2ttczpSZXNvdXJjZUFsaWFzZXMnOiAnYWxpYXMvZGF0YWRvZy1pbnRlZ3JhdGlvbi1zaGFyZWQtY3JlZGVudGlhbHMta2V5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICAgIGlmICghcmVzdWx0LnN0YXRlbWVudEFkZGVkKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnQ291bGQgbm90IGFkZCBzdGF0ZW1lbnQgdG8gdGhlIHByaW5jaXBhbCBwb2xpY3kuJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlY3JldC5ncmFudFJlYWQoZ3JhbnRlZSwgdmVyc2lvblN0YWdlcyk7XG4gIH1cblxuICBncmFudFdyaXRlKF9ncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGFsbG93ZWQuJyk7XG4gIH1cblxuICBhZGRSb3RhdGlvblNjaGVkdWxlKF9pZDogc3RyaW5nLCBfb3B0aW9uczogc2VjLlJvdGF0aW9uU2NoZWR1bGVPcHRpb25zKTogc2VjLlJvdGF0aW9uU2NoZWR1bGUge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShfc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgZGVueUFjY291bnRSb290RGVsZXRlKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgYXR0YWNoKF90YXJnZXQ6IHNlYy5JU2VjcmV0QXR0YWNobWVudFRhcmdldCk6IHNlYy5JU2VjcmV0IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgYWxsb3dlZC4nKTtcbiAgfVxuXG4gIGFwcGx5UmVtb3ZhbFBvbGljeShfcG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBhbGxvd2VkLicpO1xuICB9XG5cbiAgY2ZuRHluYW1pY1JlZmVyZW5jZUtleShvcHRpb25zPzogY2RrLlNlY3JldHNNYW5hZ2VyU2VjcmV0T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0LmNmbkR5bmFtaWNSZWZlcmVuY2VLZXkob3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGN1c3RvbSByZXNvdXJjZSB0aGF0IHJlc29sdmVzIHRoZSBEYXRhZG9nIEFQSSBrZXlzIGZyb20gYSBzaGFyZWQgc2VjcmV0XG4gKiBAZXhhbXBsZVxuICogY29uc3QgZGF0YWRvZ0FwaUtleSA9IERhdGFkb2dTaGFyZWRTZWNyZXQuYXBpS2V5U2VjcmV0KHRoaXMpO1xuICpcbiAqIGNvbnN0IGRhdGFkb2dTZWNyZXQgPSBEYXRhZG9nU2hhcmVkU2VjcmV0LmNyZWRlbnRpYWxzU2VjcmV0KHRoaXMpO1xuICogY29uc3QgZGF0YWRvZ1NpdGUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldCgnU2l0ZScpO1xuICogY29uc3QgZGF0YWRvZ0FwaUtleSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0KCdBcGlLZXknKTtcbiAqIGNvbnN0IGRhdGFkb2dBcGlLZXlWYWx1ZSA9IGRhdGFkb2dTZWNyZXQuZ2V0U2VjcmV0VmFsdWUoJ0FwaUtleScpO1xuICogY29uc3QgZGF0YWRvZ0FwaUtleVZhbHVlID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXRWYWx1ZSgnQXBwbGljYXRpb25LZXknKTtcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTaGFyZWRTZWNyZXQgZXh0ZW5kcyBTaGFyZWRTZWNyZXQge1xuICAvKipcbiAgICogVGhpcyBzdGF0aWMgZnVuY3Rpb24gcmVzb2x2ZXMgdG8gdGhlIHBsYWluIGFwaS1rZXkgc2VjcmV0LCB0aGF0IGNhbiBiZSB1c2VkIGZvciB0aGUgbG9nIGZvcndhcmRlciBvciB0aGUgTGFtYmRhIGluc3RydW1lbnRhdGlvbi5cbiAgICovXG4gIHN0YXRpYyBhcGlLZXlTZWNyZXQoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0KTogRGF0YWRvZ1NoYXJlZFNlY3JldCB7XG4gICAgY29uc3QgaWQgPSBBUElfS0VZX1JFU09VUkNFX0lEO1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHNjb3BlKTtcbiAgICBpZiAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoaWQpKSB7XG4gICAgICByZXR1cm4gc3RhY2subm9kZS5maW5kQ2hpbGQoaWQpIGFzIERhdGFkb2dTaGFyZWRTZWNyZXQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0YWRvZ1NoYXJlZFNlY3JldChzdGFjaywgaWQsICdzaGFyZWQtYXBpLWtleScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgc3RhdGljIGZ1bmN0aW9uIHJlc29sdmVzIHRvIHRoZSBqc29uIGNyZWRlbnRpYWxzIHNlY3JldCB0aGF0IGNvbnRhaW5zIFsnQXBpS2V5JywgJ0FwcGxpY2F0aW9uS2V5JywgJ1NpdGUnXS5cbiAgICovXG4gIHN0YXRpYyBjcmVkZW50aWFsc1NlY3JldChzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpOiBEYXRhZG9nU2hhcmVkQ3JlZGVudGlhbHMge1xuICAgIGNvbnN0IGlkID0gQ1JFREVOVElBTFNfUkVTT1VSQ0VfSUQ7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIGlmIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChpZCkpIHtcbiAgICAgIHJldHVybiBzdGFjay5ub2RlLmZpbmRDaGlsZChpZCkgYXMgRGF0YWRvZ1NoYXJlZENyZWRlbnRpYWxzO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGFkb2dTaGFyZWRDcmVkZW50aWFscyhzY29wZSwgaWQsICdzaGFyZWQtY3JlZGVudGlhbHMnKTtcbiAgfVxufVxuXG50eXBlIEZpZWxkID0gJ0FwcGxpY2F0aW9uS2V5JyB8ICdTaXRlJyB8ICdBcGlLZXknO1xuXG4vKlxuICogQSBjdXN0b20gcmVzb3VyY2UgdGhhdCByZXNvbHZlcyB0aGUgRGF0YWRvZyBjcmVkZW50aWFscyBmcm9tIGEgc2hhcmVkIHNlY3JldFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGRhdGFkb2dTZWNyZXQgPSBEYXRhZG9nU2hhcmVkU2VjcmV0LmNyZWRlbnRpYWxzU2VjcmV0KHRoaXMpO1xuICogY29uc3QgZGF0YWRvZ1NpdGUgPSBkYXRhZG9nU2VjcmV0LmdldFNlY3JldFZhbHVlKCdTaXRlJykudW5zYWZlVW53cmFwKCk7XG4gKiBjb25zdCBkYXRhZG9nQXBpS2V5ID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXQoJ0FwaUtleScpO1xuICogY29uc3QgZGF0YWRvZ0FwaUtleVZhbHVlID0gZGF0YWRvZ1NlY3JldC5nZXRTZWNyZXRWYWx1ZSgnQXBwbGljYXRpb25LZXknKTtcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dTaGFyZWRDcmVkZW50aWFscyBleHRlbmRzIFNoYXJlZFNlY3JldCB7XG4gIGdldFNlY3JldFZhbHVlKGZpZWxkOiBGaWVsZCkge1xuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXRWYWx1ZUZyb21Kc29uKGZpZWxkKTtcbiAgfVxuXG4gIGdldFNlY3JldChmaWVsZDogRmllbGQpIHtcbiAgICByZXR1cm4gZWNzLlNlY3JldC5mcm9tU2VjcmV0c01hbmFnZXIodGhpcy5zZWNyZXQsIGZpZWxkKTtcbiAgfVxufVxuIl19
|
|
@@ -80,7 +80,7 @@ class DatadogSlo extends constructs_1.Construct {
|
|
|
80
80
|
}
|
|
81
81
|
exports.DatadogSlo = DatadogSlo;
|
|
82
82
|
_a = JSII_RTTI_SYMBOL_1;
|
|
83
|
-
DatadogSlo[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogSlo", version: "0.0.0" };
|
|
83
|
+
DatadogSlo[_a] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.datadogv2.DatadogSlo", version: "0.0.0" };
|
|
84
84
|
function validateName(name) {
|
|
85
85
|
if (!name.trim()) {
|
|
86
86
|
throw new Error('DatadogSlo name must be non-empty.');
|
|
@@ -24,5 +24,5 @@ class DockerHubPullThroughCache {
|
|
|
24
24
|
}
|
|
25
25
|
exports.DockerHubPullThroughCache = DockerHubPullThroughCache;
|
|
26
26
|
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
-
DockerHubPullThroughCache[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.ecr.DockerHubPullThroughCache", version: "0.0.0" };
|
|
27
|
+
DockerHubPullThroughCache[_a] = { fqn: "@rio-cloud-internal/cdk-v2-constructs.ecr.DockerHubPullThroughCache", version: "0.0.0" };
|
|
28
28
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWh1Yi1wdWxsLXRocm91Z2gtY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNyL2RvY2tlci1odWItcHVsbC10aHJvdWdoLWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQXVFO0FBRXZFLE1BQWEseUJBQXlCO0lBQ3BDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBa0I7UUFDckMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDeEMsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxtQkFBbUI7Z0JBQ25CLDhCQUE4QjtnQkFDOUIsc0JBQXNCO2dCQUN0Qiw0QkFBNEI7Z0JBQzVCLGdCQUFnQjthQUNqQjtZQUNELFNBQVMsRUFBRSxDQUFDLDREQUE0RCxDQUFDO1NBQzFFLENBQUMsQ0FDSCxDQUFDO1FBRUYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDeEMsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQ3RDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBckJILDhEQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgSUdyYW50YWJsZSwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJIdWJQdWxsVGhyb3VnaENhY2hlIHtcbiAgc3RhdGljIGFsbG93QWNjZXNzVG8odGFyZ2V0OiBJR3JhbnRhYmxlKSB7XG4gICAgdGFyZ2V0LmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnZWNyOkJhdGNoR2V0SW1hZ2UnLFxuICAgICAgICAgICdlY3I6QmF0Y2hJbXBvcnRVcHN0cmVhbUltYWdlJyxcbiAgICAgICAgICAnZWNyOkNyZWF0ZVJlcG9zaXRvcnknLFxuICAgICAgICAgICdlY3I6R2V0RG93bmxvYWRVcmxGb3JMYXllcicsXG4gICAgICAgICAgJ2VjcjpMaXN0SW1hZ2VzJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6ZWNyOmV1LXdlc3QtMToyMjcxMDE0Mjk5NDc6cmVwb3NpdG9yeS9kb2NrZXItaHViLyonXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRhcmdldC5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ2VjcjpHZXRBdXRob3JpemF0aW9uVG9rZW4nXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/lib/fargate/datadog.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as ecs from 'aws-cdk-lib/aws-ecs';
|
|
|
2
2
|
import type { Construct } from 'constructs';
|
|
3
3
|
import { DataDogLoggingMode, type RioFargateService } from './rio-fargate-service';
|
|
4
4
|
import type { RioFargateServiceBlueGreenAlpha } from './rio-fargate-service-blue-green-alpha';
|
|
5
|
+
import { type TraceSamplingOptions } from './trace-sampling';
|
|
5
6
|
/**
|
|
6
7
|
* @deprecated Moved out static methods and imporoved signature. Use named import instead.
|
|
7
8
|
*/
|
|
@@ -16,7 +17,7 @@ export declare class DataDog {
|
|
|
16
17
|
};
|
|
17
18
|
static addDatadogSidecar(scope: Construct, taskDefinition: ecs.TaskDefinition, accountName: string, teamName: string, teamIdentifier: string, stage: string, serviceName: string, version: string, datadogApiKey: ecs.Secret, datadogSite: string, datadogLoggingMode: DataDogLoggingMode, apmGetResourcesToIgnore: string[], cpu: number, memoryLimitMiB: number, essential: boolean, containerTag: string, additionalTags: {
|
|
18
19
|
[k: string]: string;
|
|
19
|
-
} | undefined, enableRestartPolicy: boolean, restartIgnoredExitCodes: number[]): ecs.ContainerDefinition;
|
|
20
|
+
} | undefined, enableRestartPolicy: boolean, restartIgnoredExitCodes: number[], traceSampling?: TraceSamplingOptions): ecs.ContainerDefinition;
|
|
20
21
|
static addFireLensLogRouter(taskDefinition: ecs.TaskDefinition, cpu: number, memoryLimitMiB: number, firelensConfigFilePath: string, firelensConfigBucketArn: string, serviceName: string): ecs.ContainerDefinition;
|
|
21
22
|
static setupLogging(scope: Construct, accountName: string, teamName: string, teamIdentifier: string, stage: string, serviceName: string, version: string, datadogApiKey: ecs.Secret, datadogLoggingMode: DataDogLoggingMode, datadogSite: string, containerType: 'service' | 'datadog-sidecar', additionalTags: {
|
|
22
23
|
[k: string]: string;
|
|
@@ -34,6 +35,7 @@ export declare function getFargateContainerEnvironmentVariables(props: {
|
|
|
34
35
|
additionalTags: {
|
|
35
36
|
[k: string]: string;
|
|
36
37
|
} | undefined;
|
|
38
|
+
traceSampling?: TraceSamplingOptions;
|
|
37
39
|
}): {
|
|
38
40
|
[key: string]: string;
|
|
39
41
|
};
|
|
@@ -66,6 +68,7 @@ export declare function addDatadogSidecar(props: {
|
|
|
66
68
|
} | undefined;
|
|
67
69
|
enableRestartPolicy: boolean;
|
|
68
70
|
restartIgnoredExitCodes: number[] | undefined;
|
|
71
|
+
traceSampling?: TraceSamplingOptions;
|
|
69
72
|
}): ecs.ContainerDefinition;
|
|
70
73
|
export declare function addFirelensConfigUploadFromS3Permissions(props: {
|
|
71
74
|
taskDefinition: ecs.TaskDefinition;
|
package/lib/fargate/datadog.js
CHANGED
|
@@ -16,6 +16,7 @@ const lambda = require("aws-cdk-lib/aws-lambda");
|
|
|
16
16
|
const logs = require("aws-cdk-lib/aws-logs");
|
|
17
17
|
const ssm = require("aws-cdk-lib/aws-ssm");
|
|
18
18
|
const rio_fargate_service_1 = require("./rio-fargate-service");
|
|
19
|
+
const trace_sampling_1 = require("./trace-sampling");
|
|
19
20
|
/**
|
|
20
21
|
* @deprecated Moved out static methods and imporoved signature. Use named import instead.
|
|
21
22
|
*/
|
|
@@ -35,7 +36,7 @@ class DataDog {
|
|
|
35
36
|
static getFargateDockerLabels(stage, serviceName, version) {
|
|
36
37
|
return getFargateDockerLabels({ stage, serviceName, version });
|
|
37
38
|
}
|
|
38
|
-
static addDatadogSidecar(scope, taskDefinition, accountName, teamName, teamIdentifier, stage, serviceName, version, datadogApiKey, datadogSite, datadogLoggingMode, apmGetResourcesToIgnore, cpu, memoryLimitMiB, essential, containerTag, additionalTags, enableRestartPolicy, restartIgnoredExitCodes) {
|
|
39
|
+
static addDatadogSidecar(scope, taskDefinition, accountName, teamName, teamIdentifier, stage, serviceName, version, datadogApiKey, datadogSite, datadogLoggingMode, apmGetResourcesToIgnore, cpu, memoryLimitMiB, essential, containerTag, additionalTags, enableRestartPolicy, restartIgnoredExitCodes, traceSampling) {
|
|
39
40
|
return addDatadogSidecar({
|
|
40
41
|
scope,
|
|
41
42
|
taskDefinition,
|
|
@@ -56,6 +57,7 @@ class DataDog {
|
|
|
56
57
|
additionalTags,
|
|
57
58
|
enableRestartPolicy,
|
|
58
59
|
restartIgnoredExitCodes,
|
|
60
|
+
traceSampling,
|
|
59
61
|
});
|
|
60
62
|
}
|
|
61
63
|
static addFireLensLogRouter(taskDefinition, cpu, memoryLimitMiB, firelensConfigFilePath, firelensConfigBucketArn, serviceName) {
|
|
@@ -105,7 +107,7 @@ function getFargateContainerEnvironmentVariables(props) {
|
|
|
105
107
|
accountId,
|
|
106
108
|
region,
|
|
107
109
|
}),
|
|
108
|
-
|
|
110
|
+
...(0, trace_sampling_1.getApplicationTraceSamplingEnvironment)(props.traceSampling),
|
|
109
111
|
};
|
|
110
112
|
}
|
|
111
113
|
// we add all possible service mappings here even if not used in a particular service to get globally unique names
|
|
@@ -155,6 +157,7 @@ function addDatadogSidecar(props) {
|
|
|
155
157
|
ECS_FARGATE: 'true',
|
|
156
158
|
DD_CLOUD_PROVIDER_METADATA: 'aws',
|
|
157
159
|
DD_REMOTE_CONFIGURATION_ENABLED: 'false',
|
|
160
|
+
...(0, trace_sampling_1.getAgentTraceSamplingEnvironment)(props.traceSampling),
|
|
158
161
|
},
|
|
159
162
|
// see https://github.com/DataDog/datadog-agent/blob/master/Dockerfiles/agent/amd64/Dockerfile#L171-L172
|
|
160
163
|
healthCheck: {
|
|
@@ -348,4 +351,4 @@ function ensureLoggingAndMonitoringAreReadyBeforeServiceStarts(rioFargateService
|
|
|
348
351
|
}
|
|
349
352
|
}
|
|
350
353
|
}
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL2RhdGFkb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMElBLDBGQTRCQztBQW1CRCx3REFRQztBQUVELDhDQXVFQztBQUVELDRGQVdDO0FBMkNELG9EQThDQztBQUVELG9DQXlHQztBQUVELHNIQXFCQztBQWxmRCw2Q0FBOEQ7QUFDOUQsMkNBQTJDO0FBQzNDLGlEQUF1RDtBQUN2RCwyQ0FBMkM7QUFDM0MsaURBQWlEO0FBQ2pELDZDQUE2QztBQUM3QywyQ0FBMkM7QUFFM0MsK0RBQW1GO0FBR25GOztHQUVHO0FBQ0gsTUFBYSxPQUFPO0lBQ1gsTUFBTSxDQUFDLHVDQUF1QyxDQUNuRCxLQUFnQixFQUNoQixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLGNBQXNCLEVBQ3RCLGNBQW1EO1FBRW5ELE9BQU8sdUNBQXVDLENBQUM7WUFDN0MsS0FBSztZQUNMLEtBQUs7WUFDTCxXQUFXO1lBQ1gsT0FBTztZQUNQLFdBQVc7WUFDWCxRQUFRO1lBQ1IsY0FBYztZQUNkLGNBQWM7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxXQUFtQixFQUFFLE9BQWU7UUFDdEYsT0FBTyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUM3QixLQUFnQixFQUNoQixjQUFrQyxFQUNsQyxXQUFtQixFQUNuQixRQUFnQixFQUNoQixjQUFzQixFQUN0QixLQUFhLEVBQ2IsV0FBbUIsRUFDbkIsT0FBZSxFQUNmLGFBQXlCLEVBQ3pCLFdBQW1CLEVBQ25CLGtCQUFzQyxFQUN0Qyx1QkFBaUMsRUFDakMsR0FBVyxFQUNYLGNBQXNCLEVBQ3RC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Q3ZDLGFBQWEsRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IscURBQXFELENBQ25FLGlCQUFzRTtJQUV0RSxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQztRQUNwRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsaUNBQWlDO1FBQzlELFNBQVMsRUFBRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsT0FBTztLQUNwRCxDQUFDLENBQUM7SUFFSCxJQUFJLGlCQUFpQixDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbkQsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUM7WUFDcEUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLDRCQUE0QjtZQUN6RCxTQUFTLEVBQUUsR0FBRyxDQUFDLDRCQUE0QixDQUFDLEtBQUs7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBaUIsQ0FBQyxpQ0FBaUMsQ0FBQyxlQUFlLEVBQUUsU0FBUyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3JHLGlCQUFpQixDQUFDLGlDQUFpQyxDQUFDLHdCQUF3QixDQUFDO2dCQUMzRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsNEJBQTRCO2dCQUN6RCxTQUFTLEVBQUUsR0FBRyxDQUFDLDRCQUE0QixDQUFDLEtBQUs7YUFDbEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIEZuLCBTaXplLCBTdGFjaywgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGVjcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCB7IEF3c0xvZ0RyaXZlck1vZGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFEb2dMb2dnaW5nTW9kZSwgdHlwZSBSaW9GYXJnYXRlU2VydmljZSB9IGZyb20gJy4vcmlvLWZhcmdhdGUtc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IFJpb0ZhcmdhdGVTZXJ2aWNlQmx1ZUdyZWVuQWxwaGEgfSBmcm9tICcuL3Jpby1mYXJnYXRlLXNlcnZpY2UtYmx1ZS1ncmVlbi1hbHBoYSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTW92ZWQgb3V0IHN0YXRpYyBtZXRob2RzIGFuZCBpbXBvcm92ZWQgc2lnbmF0dXJlLiBVc2UgbmFtZWQgaW1wb3J0IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhRG9nIHtcbiAgcHVibGljIHN0YXRpYyBnZXRGYXJnYXRlQ29udGFpbmVyRW52aXJvbm1lbnRWYXJpYWJsZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBzdGFnZTogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIGFjY291bnROYW1lOiBzdHJpbmcsXG4gICAgdGVhbU5hbWU6IHN0cmluZyxcbiAgICB0ZWFtSWRlbnRpZmllcjogc3RyaW5nLFxuICAgIGFkZGl0aW9uYWxUYWdzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZFxuICApOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gZ2V0RmFyZ2F0ZUNvbnRhaW5lckVudmlyb25tZW50VmFyaWFibGVzKHtcbiAgICAgIHNjb3BlLFxuICAgICAgc3RhZ2UsXG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBhY2NvdW50TmFtZSxcbiAgICAgIHRlYW1OYW1lLFxuICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICBhZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RmFyZ2F0ZURvY2tlckxhYmVscyhzdGFnZTogc3RyaW5nLCBzZXJ2aWNlTmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gZ2V0RmFyZ2F0ZURvY2tlckxhYmVscyh7IHN0YWdlLCBzZXJ2aWNlTmFtZSwgdmVyc2lvbiB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYWRkRGF0YWRvZ1NpZGVjYXIoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICB0YXNrRGVmaW5pdGlvbjogZWNzLlRhc2tEZWZpbml0aW9uLFxuICAgIGFjY291bnROYW1lOiBzdHJpbmcsXG4gICAgdGVhbU5hbWU6IHN0cmluZyxcbiAgICB0ZWFtSWRlbnRpZmllcjogc3RyaW5nLFxuICAgIHN0YWdlOiBzdHJpbmcsXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgZGF0YWRvZ0FwaUtleTogZWNzLlNlY3JldCxcbiAgICBkYXRhZG9nU2l0ZTogc3RyaW5nLFxuICAgIGRhdGFkb2dMb2dnaW5nTW9kZTogRGF0YURvZ0xvZ2dpbmdNb2RlLFxuICAgIGFwbUdldFJlc291cmNlc1RvSWdub3JlOiBzdHJpbmdbXSxcbiAgICBjcHU6IG51bWJlcixcbiAgICBtZW1vcnlMaW1pdE1pQjogbnVtYmVyLFxuICAgIGVzc2VudGlhbDogYm9vbGVhbixcbiAgICBjb250YWluZXJUYWc6IHN0cmluZyxcbiAgICBhZGRpdGlvbmFsVGFnczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQsXG4gICAgZW5hYmxlUmVzdGFydFBvbGljeTogYm9vbGVhbixcbiAgICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogbnVtYmVyW11cbiAgKTogZWNzLkNvbnRhaW5lckRlZmluaXRpb24ge1xuICAgIHJldHVybiBhZGREYXRhZG9nU2lkZWNhcih7XG4gICAgICBzY29wZSxcbiAgICAgIHRhc2tEZWZpbml0aW9uLFxuICAgICAgYWNjb3VudE5hbWUsXG4gICAgICB0ZWFtTmFtZSxcbiAgICAgIHRlYW1JZGVudGlmaWVyLFxuICAgICAgc3RhZ2UsXG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBkYXRhZG9nQXBpS2V5LFxuICAgICAgZGF0YWRvZ1NpdGUsXG4gICAgICBkYXRhZG9nTG9nZ2luZ01vZGUsXG4gICAgICBhcG1HZXRSZXNvdXJjZXNUb0lnbm9yZSxcbiAgICAgIGNwdSxcbiAgICAgIG1lbW9yeUxpbWl0TWlCLFxuICAgICAgZXNzZW50aWFsLFxuICAgICAgY29udGFpbmVyVGFnLFxuICAgICAgYWRkaXRpb25hbFRhZ3MsXG4gICAgICBlbmFibGVSZXN0YXJ0UG9saWN5LFxuICAgICAgcmVzdGFydElnbm9yZWRFeGl0Q29kZXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFkZEZpcmVMZW5zTG9nUm91dGVyKFxuICAgIHRhc2tEZWZpbml0aW9uOiBlY3MuVGFza0RlZmluaXRpb24sXG4gICAgY3B1OiBudW1iZXIsXG4gICAgbWVtb3J5TGltaXRNaUI6IG51bWJlcixcbiAgICBmaXJlbGVuc0NvbmZpZ0ZpbGVQYXRoOiBzdHJpbmcsXG4gICAgZmlyZWxlbnNDb25maWdCdWNrZXRBcm46IHN0cmluZyxcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nXG4gICk6IGVjcy5Db250YWluZXJEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gYWRkRmlyZUxlbnNMb2dSb3V0ZXIoe1xuICAgICAgdGFza0RlZmluaXRpb24sXG4gICAgICBjcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQixcbiAgICAgIGZpcmVsZW5zQ29uZmlnRmlsZVBhdGgsXG4gICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybixcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXR1cExvZ2dpbmcoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBhY2NvdW50TmFtZTogc3RyaW5nLFxuICAgIHRlYW1OYW1lOiBzdHJpbmcsXG4gICAgdGVhbUlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBzdGFnZTogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIGRhdGFkb2dBcGlLZXk6IGVjcy5TZWNyZXQsXG4gICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBEYXRhRG9nTG9nZ2luZ01vZGUsXG4gICAgZGF0YWRvZ1NpdGU6IHN0cmluZyxcbiAgICBjb250YWluZXJUeXBlOiAnc2VydmljZScgfCAnZGF0YWRvZy1zaWRlY2FyJyxcbiAgICBhZGRpdGlvbmFsVGFnczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWRcbiAgKTogZWNzLkxvZ0RyaXZlciB7XG4gICAgcmV0dXJuIHNldHVwTG9nZ2luZyh7XG4gICAgICBzY29wZSxcbiAgICAgIGFjY291bnROYW1lLFxuICAgICAgdGVhbU5hbWUsXG4gICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgIHN0YWdlLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZGF0YWRvZ0FwaUtleSxcbiAgICAgIGRhdGFkb2dMb2dnaW5nTW9kZSxcbiAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgY29udGFpbmVyVHlwZSxcbiAgICAgIGFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyhyaW9GYXJnYXRlU2VydmljZTogUmlvRmFyZ2F0ZVNlcnZpY2UpIHtcbiAgICBlbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyhyaW9GYXJnYXRlU2VydmljZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZhcmdhdGVDb250YWluZXJFbnZpcm9ubWVudFZhcmlhYmxlcyhwcm9wczoge1xuICBzY29wZTogQ29uc3RydWN0O1xuICBzdGFnZTogc3RyaW5nO1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGFjY291bnROYW1lOiBzdHJpbmc7XG4gIHRlYW1OYW1lOiBzdHJpbmc7XG4gIHRlYW1JZGVudGlmaWVyOiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxUYWdzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbn0pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgY29uc3QgeyBhY2NvdW50OiBhY2NvdW50SWQsIHJlZ2lvbiB9ID0gU3RhY2sub2YocHJvcHMuc2NvcGUpO1xuXG4gIHJldHVybiB7XG4gICAgLy8gdW5pZmllZCB0YWdnaW5nLCBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vZ2V0dGluZ19zdGFydGVkL3RhZ2dpbmcvdW5pZmllZF9zZXJ2aWNlX3RhZ2dpbmcvP3RhYj1lY3NcbiAgICBERF9FTlY6IHByb3BzLnN0YWdlLFxuICAgIEREX1NFUlZJQ0U6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgIEREX1ZFUlNJT046IHByb3BzLnZlcnNpb24sXG4gICAgLy8gQVBNIGFuZCB0cmFjaW5nLCBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vdHJhY2luZy9zZXR1cF9vdmVydmlldy9zZXR1cC9qYXZhLz90YWI9Y29udGFpbmVyc1xuICAgIEREX0xPR1NfSU5KRUNUSU9OOiAndHJ1ZScsXG4gICAgRERfU0VSVklDRV9NQVBQSU5HOiBnZXRBcG1TZXJ2aWNlTWFwcGluZ0Vudmlyb25tZW50VmFyaWFibGVWYWx1ZShwcm9wcy5zZXJ2aWNlTmFtZSksXG4gICAgRERfVEFHUzogZ2V0VGFnc0Vudmlyb25tZW50VmFyaWFibGVWYWx1ZSh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRhaW5lclR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgIGFjY291bnRJZCxcbiAgICAgIHJlZ2lvbixcbiAgICB9KSxcbiAgICBERF9UUkFDRV9TQU1QTEVfUkFURTogJzEuMCcsIC8vIHNlZSBodHRwczovL2RkdHJhY2UucmVhZHRoZWRvY3MuaW8vZW4vc3RhYmxlL2NvbmZpZ3VyYXRpb24uaHRtbFxuICB9O1xufVxuXG4vLyB3ZSBhZGQgYWxsIHBvc3NpYmxlIHNlcnZpY2UgbWFwcGluZ3MgaGVyZSBldmVuIGlmIG5vdCB1c2VkIGluIGEgcGFydGljdWxhciBzZXJ2aWNlIHRvIGdldCBnbG9iYWxseSB1bmlxdWUgbmFtZXNcbmZ1bmN0aW9uIGdldEFwbVNlcnZpY2VNYXBwaW5nRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlKHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzZXJ2aWNlTWFwcGluZyA9IHtcbiAgICBkYXRhYmFzZTogYCR7c2VydmljZU5hbWV9LWF1cm9yYWAsXG4gICAgJ2phdmEtYXdzLXNkayc6IGAke3NlcnZpY2VOYW1lfS1hd3Mtc2RrYCxcbiAgICBrYWZrYTogYCR7c2VydmljZU5hbWV9LWthZmthYCxcbiAgICBteXNxbDogYCR7c2VydmljZU5hbWV9LWF1cm9yYWAsXG4gICAgcmVkaXM6IGAke3NlcnZpY2VOYW1lfS1yZWRpc2AsXG4gICAgJ2F3cy5keW5hbW9kYic6IGAke3NlcnZpY2VOYW1lfS1keW5hbW9kYmAsXG4gICAgbW9uZ286IGAke3NlcnZpY2VOYW1lfS1kb2N1bWVudGRiYCxcbiAgfTtcblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc2VydmljZU1hcHBpbmcpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9OiR7dmFsdWV9YClcbiAgICAuam9pbignLCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmFyZ2F0ZURvY2tlckxhYmVscyhwcm9wczogeyBzdGFnZTogc3RyaW5nOyBzZXJ2aWNlTmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmcgfSk6IHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufSB7XG4gIHJldHVybiB7XG4gICAgJ2NvbS5kYXRhZG9naHEudGFncy5lbnYnOiBwcm9wcy5zdGFnZSxcbiAgICAnY29tLmRhdGFkb2docS50YWdzLnNlcnZpY2UnOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAnY29tLmRhdGFkb2docS50YWdzLnZlcnNpb24nOiBwcm9wcy52ZXJzaW9uLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkRGF0YWRvZ1NpZGVjYXIocHJvcHM6IHtcbiAgc2NvcGU6IENvbnN0cnVjdDtcbiAgdGFza0RlZmluaXRpb246IGVjcy5UYXNrRGVmaW5pdGlvbjtcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgdGVhbU5hbWU6IHN0cmluZztcbiAgdGVhbUlkZW50aWZpZXI6IHN0cmluZztcbiAgc3RhZ2U6IHN0cmluZztcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBkYXRhZG9nQXBpS2V5OiBlY3MuU2VjcmV0O1xuICBkYXRhZG9nU2l0ZTogc3RyaW5nO1xuICBkYXRhZG9nTG9nZ2luZ01vZGU6IERhdGFEb2dMb2dnaW5nTW9kZTtcbiAgYXBtR2V0UmVzb3VyY2VzVG9JZ25vcmU6IHN0cmluZ1tdO1xuICBjcHU6IG51bWJlcjtcbiAgbWVtb3J5TGltaXRNaUI6IG51bWJlcjtcbiAgZXNzZW50aWFsOiBib29sZWFuO1xuICBjb250YWluZXJUYWc6IHN0cmluZztcbiAgYWRkaXRpb25hbFRhZ3M6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuICBlbmFibGVSZXN0YXJ0UG9saWN5OiBib29sZWFuO1xuICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG59KTogZWNzLkNvbnRhaW5lckRlZmluaXRpb24ge1xuICBjb25zdCB7IGFjY291bnQ6IGFjY291bnRJZCwgcmVnaW9uIH0gPSBTdGFjay5vZihwcm9wcy5zY29wZSk7XG4gIGNvbnN0IGRhdGFkb2dTaWRlY2FyID0gcHJvcHMudGFza0RlZmluaXRpb24uYWRkQ29udGFpbmVyKCdkYXRhZG9nLWFnZW50Jywge1xuICAgIGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KGBwdWJsaWMuZWNyLmF3cy9kYXRhZG9nL2FnZW50OiR7cHJvcHMuY29udGFpbmVyVGFnfWApLFxuICAgIGVuYWJsZVJlc3RhcnRQb2xpY3k6IHByb3BzLmVuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgcmVzdGFydElnbm9yZWRFeGl0Q29kZXM6IHByb3BzLnJlc3RhcnRJZ25vcmVkRXhpdENvZGVzLFxuICAgIGxvZ2dpbmc6IHNldHVwTG9nZ2luZyh7IC4uLnByb3BzLCBjb250YWluZXJUeXBlOiAnZGF0YWRvZy1zaWRlY2FyJyB9KSxcbiAgICBjcHU6IHByb3BzLmNwdSxcbiAgICBtZW1vcnlMaW1pdE1pQjogcHJvcHMubWVtb3J5TGltaXRNaUIsXG4gICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgIC8vIHVuaWZpZWQgdGFnZ2luZywgc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2dldHRpbmdfc3RhcnRlZC90YWdnaW5nL3VuaWZpZWRfc2VydmljZV90YWdnaW5nLz90YWI9ZWNzXG4gICAgICBERF9FTlY6IHByb3BzLnN0YWdlLFxuICAgICAgRERfU0VSVklDRTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBERF9WRVJTSU9OOiBwcm9wcy52ZXJzaW9uLFxuICAgICAgLy8gQVBNIGFuZCB0cmFjaW5nIHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9hZ2VudC9kb2NrZXIvYXBtLz90YWI9bGludXhcbiAgICAgIEREX0FQTV9FTkFCTEVEOiAndHJ1ZScsXG4gICAgICBERF9BUE1fSUdOT1JFX1JFU09VUkNFUzogcHJvcHMuYXBtR2V0UmVzb3VyY2VzVG9JZ25vcmVcbiAgICAgICAgLm1hcChhcG1HZXRSZXNvdXJjZVRvSWdub3JlID0+IGBHRVQgJHthcG1HZXRSZXNvdXJjZVRvSWdub3JlfWApXG4gICAgICAgIC5qb2luKCcsJyksXG4gICAgICAvLyBnZW5lcmFsIHNldHRpbmdzXG4gICAgICBERF9TSVRFOiBwcm9wcy5kYXRhZG9nU2l0ZSxcbiAgICAgIEREX1RBR1M6IGdldFRhZ3NFbnZpcm9ubWVudFZhcmlhYmxlVmFsdWUoeyAuLi5wcm9wcywgYWNjb3VudElkLCByZWdpb24sIGNvbnRhaW5lclR5cGU6ICdkYXRhZG9nLXNpZGVjYXInIH0pLFxuICAgICAgRUNTX0ZBUkdBVEU6ICd0cnVlJyxcbiAgICAgIEREX0NMT1VEX1BST1ZJREVSX01FVEFEQVRBOiAnYXdzJyxcbiAgICAgIEREX1JFTU9URV9DT05GSUdVUkFUSU9OX0VOQUJMRUQ6ICdmYWxzZScsXG4gICAgfSxcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1hZ2VudC9ibG9iL21hc3Rlci9Eb2NrZXJmaWxlcy9hZ2VudC9hbWQ2NC9Eb2NrZXJmaWxlI0wxNzEtTDE3MlxuICAgIGhlYWx0aENoZWNrOiB7XG4gICAgICBzdGFydFBlcmlvZDogRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgIGludGVydmFsOiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICByZXRyaWVzOiAyLFxuICAgICAgY29tbWFuZDogWydDTUQtU0hFTEwnLCAnL3Byb2JlLnNoJ10sXG4gICAgfSxcbiAgICBzZWNyZXRzOiB7XG4gICAgICBERF9BUElfS0VZOiBwcm9wcy5kYXRhZG9nQXBpS2V5LFxuICAgIH0sXG4gICAgZXNzZW50aWFsOiBwcm9wcy5lc3NlbnRpYWwsXG4gIH0pO1xuXG4gIGRhdGFkb2dTaWRlY2FyLmFkZFBvcnRNYXBwaW5ncyh7XG4gICAgY29udGFpbmVyUG9ydDogODEyNSxcbiAgICBwcm90b2NvbDogZWNzLlByb3RvY29sLlVEUCxcbiAgfSk7XG5cbiAgZGF0YWRvZ1NpZGVjYXIuYWRkUG9ydE1hcHBpbmdzKHtcbiAgICBjb250YWluZXJQb3J0OiA4MTI2LFxuICAgIHByb3RvY29sOiBlY3MuUHJvdG9jb2wuVENQLFxuICB9KTtcblxuICByZXR1cm4gZGF0YWRvZ1NpZGVjYXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRGaXJlbGVuc0NvbmZpZ1VwbG9hZEZyb21TM1Blcm1pc3Npb25zKHByb3BzOiB7XG4gIHRhc2tEZWZpbml0aW9uOiBlY3MuVGFza0RlZmluaXRpb247XG4gIGZpcmVsZW5zQ29uZmlnQnVja2V0QXJuOiBzdHJpbmc7XG59KSB7XG4gIHByb3BzLnRhc2tEZWZpbml0aW9uLmFkZFRvVGFza1JvbGVQb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbcHJvcHMuZmlyZWxlbnNDb25maWdCdWNrZXRBcm4sIGAke3Byb3BzLmZpcmVsZW5zQ29uZmlnQnVja2V0QXJufS8qYF0sXG4gICAgICBhY3Rpb25zOiBbJ3MzOkdldConXSxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICB9KVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRUYWdzRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlKHByb3BzOiB7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBhY2NvdW50TmFtZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgdGVhbU5hbWU6IHN0cmluZztcbiAgdGVhbUlkZW50aWZpZXI6IHN0cmluZztcbiAgc3RhZ2U6IHN0cmluZztcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjb250YWluZXJUeXBlOiAnc2VydmljZScgfCAnZGF0YWRvZy1zaWRlY2FyJyB8ICdmbHVlbnQtYml0JztcbiAgYWRkaXRpb25hbFRhZ3M6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IHNlcGFyYXRvciA9IGRldGVybWluZVNlcGFyYXRvcihwcm9wcy5jb250YWluZXJUeXBlKTtcblxuICBjb25zdCB0YWdzID0ge1xuICAgIC8vIHVuaWZpZWQgdGFnZ2luZ1xuICAgIC8vIG92ZXJyaWRkZW4gYnkgZGVkaWNhdGVkIHNldHRpbmdzIChlbnZpcm9ubWVudCB2YXJpYWJsZXMvdGFncylcbiAgICAvLyBkdXBsaWNhdGVkIGhlcmUgdG8gZW5zdXJlIHRoZXkgYXJlIHVzZWQgKGFuZCBzb21ldGltZXMsIG5vdCBhbGwgdGhyZWUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQpXG4gICAgZW52OiBwcm9wcy5zdGFnZSxcbiAgICBzZXJ2aWNlOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICB2ZXJzaW9uOiBwcm9wcy52ZXJzaW9uLFxuICAgIC8vIGFjY291bnQvdGVhbSBzcGVjaWZpYyBwYXJ0c1xuICAgIGFjY291bnRfaWQ6IHByb3BzLmFjY291bnRJZCxcbiAgICBhY2NvdW50X25hbWU6IHByb3BzLmFjY291bnROYW1lLFxuICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgIHRlYW06IHByb3BzLnRlYW1OYW1lLFxuICAgIHRlYW1faWRlbnRpZmllcjogcHJvcHMudGVhbUlkZW50aWZpZXIsXG4gIH07XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh7IC4uLnRhZ3MsIC4uLnByb3BzLmFkZGl0aW9uYWxUYWdzIH0pXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9OiR7dmFsdWV9YClcbiAgICAuam9pbihzZXBhcmF0b3IpO1xufVxuXG5mdW5jdGlvbiBkZXRlcm1pbmVTZXBhcmF0b3IoY29udGFpbmVyVHlwZTogJ3NlcnZpY2UnIHwgJ2RhdGFkb2ctc2lkZWNhcicgfCAnZmx1ZW50LWJpdCcpIHtcbiAgaWYgKGNvbnRhaW5lclR5cGUgPT09ICdkYXRhZG9nLXNpZGVjYXInKSB7XG4gICAgcmV0dXJuICcgJztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJywnO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRGaXJlTGVuc0xvZ1JvdXRlcihwcm9wczoge1xuICB0YXNrRGVmaW5pdGlvbjogZWNzLlRhc2tEZWZpbml0aW9uO1xuICBjcHU6IG51bWJlcjtcbiAgbWVtb3J5TGltaXRNaUI6IG51bWJlcjtcbiAgZmlyZWxlbnNDb25maWdCdWNrZXRBcm46IHN0cmluZztcbiAgZmlyZWxlbnNDb25maWdGaWxlUGF0aDogc3RyaW5nO1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xufSk6IGVjcy5Db250YWluZXJEZWZpbml0aW9uIHtcbiAgY29uc3QgZmx1ZW50Qml0UzNDb25maWdGaWxlID0gcHJvcHMuZmlyZWxlbnNDb25maWdCdWNrZXRBcm4gKyBwcm9wcy5maXJlbGVuc0NvbmZpZ0ZpbGVQYXRoO1xuXG4gIGNvbnN0IGZpcmVMZW5zTG9nUm91dGVySW1hZ2UgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJBdHRyaWJ1dGVzKFxuICAgIHByb3BzLnRhc2tEZWZpbml0aW9uLFxuICAgICdGbHVlbnRCaXRJbWFnZVRhZycsXG4gICAge1xuICAgICAgcGFyYW1ldGVyTmFtZTogJy9hd3Mvc2VydmljZS9hd3MtZm9yLWZsdWVudC1iaXQvaW5pdC0yLjMyLjIuMjAyNDA4MjAnLFxuICAgICAgLy8gSWYgdGhpcyBwcm9wZXJ0eSBpcyBub3Qgc2V0LCBpdCB3aWxsIGFsd2F5cyByZXR1cm4gdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgICAgLy8gVGhpcyBsZWFkcyB0byBhIG5vbi1kZXRlcm1pbmlzdGljIGJlaGF2aW9yLlxuICAgICAgLy8gVXBkYXRpbmcgdGhpcyBuYW1lL3ZlcnNpb24gaXMgYSBwb3RlbnRpYWwgYnJlYWtpbmcgY2hhbmdlXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgIH1cbiAgKS5zdHJpbmdWYWx1ZTtcblxuICByZXR1cm4gcHJvcHMudGFza0RlZmluaXRpb24uYWRkRmlyZWxlbnNMb2dSb3V0ZXIoJ2ZpcmVsZW5zLWxvZy1yb3V0ZXInLCB7XG4gICAgaW1hZ2U6IGVjcy5Db250YWluZXJJbWFnZS5mcm9tUmVnaXN0cnkoZmlyZUxlbnNMb2dSb3V0ZXJJbWFnZSksXG4gICAgZmlyZWxlbnNDb25maWc6IHtcbiAgICAgIHR5cGU6IGVjcy5GaXJlbGVuc0xvZ1JvdXRlclR5cGUuRkxVRU5UQklULFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBlbmFibGVFQ1NMb2dNZXRhZGF0YTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjcHU6IHByb3BzLmNwdSxcbiAgICBtZW1vcnlMaW1pdE1pQjogcHJvcHMubWVtb3J5TGltaXRNaUIsXG4gICAgbG9nZ2luZzogZWNzLkxvZ0RyaXZlcnMuYXdzTG9ncyh7XG4gICAgICBsb2dHcm91cDogbmV3IGxvZ3MuTG9nR3JvdXAocHJvcHMudGFza0RlZmluaXRpb24sICdGaXJlbGVuc0xvZ1JvdXRlckxvZ0dyb3VwJywge1xuICAgICAgICBsb2dHcm91cE5hbWU6IGAke3Byb3BzLnNlcnZpY2VOYW1lfS1maXJlbGVucy1sb2ctcm91dGVyYCxcbiAgICAgIH0pLFxuICAgICAgc3RyZWFtUHJlZml4OiAnZmlyZWxlbnMtbG9nLXJvdXRlcicsXG4gICAgICBtb2RlOiBBd3NMb2dEcml2ZXJNb2RlLk5PTl9CTE9DS0lORyxcbiAgICB9KSxcbiAgICBoZWFsdGhDaGVjazoge1xuICAgICAgY29tbWFuZDogWydDTUQtU0hFTEwnLCAnY3VybCAtLWZhaWwgLS1zaWxlbnQgaHR0cDovLzEyNy4wLjAuMToyMDIwL2FwaS92MS9oZWFsdGggfHwgZXhpdCAxJ10sXG4gICAgfSxcbiAgICBlbnZpcm9ubWVudDoge1xuICAgICAgYXdzX2ZsdWVudF9iaXRfaW5pdF9zM18xOiBmbHVlbnRCaXRTM0NvbmZpZ0ZpbGUsXG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cExvZ2dpbmcocHJvcHM6IHtcbiAgc2NvcGU6IENvbnN0cnVjdDtcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgdGVhbU5hbWU6IHN0cmluZztcbiAgdGVhbUlkZW50aWZpZXI6IHN0cmluZztcbiAgc3RhZ2U6IHN0cmluZztcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBkYXRhZG9nQXBpS2V5OiBlY3MuU2VjcmV0O1xuICBkYXRhZG9nTG9nZ2luZ01vZGU6IERhdGFEb2dMb2dnaW5nTW9kZTtcbiAgZGF0YWRvZ1NpdGU6IHN0cmluZztcbiAgY29udGFpbmVyVHlwZTogJ3NlcnZpY2UnIHwgJ2RhdGFkb2ctc2lkZWNhcic7XG4gIGFkZGl0aW9uYWxUYWdzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbn0pOiBlY3MuTG9nRHJpdmVyIHtcbiAgbGV0IGxvZ0dyb3VwTmFtZTogc3RyaW5nO1xuICBsZXQgbG9nR3JvdXBJZDogc3RyaW5nO1xuICBsZXQgY29udGFpbmVyVHlwZUNhbWVsQ2FzZTogc3RyaW5nO1xuXG4gIHN3aXRjaCAocHJvcHMuY29udGFpbmVyVHlwZSkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgbG9nR3JvdXBJZCA9ICdMb2dHcm91cEZvclNlcnZpY2UnO1xuICAgICAgbG9nR3JvdXBOYW1lID0gcHJvcHMuc2VydmljZU5hbWU7XG4gICAgICBjb250YWluZXJUeXBlQ2FtZWxDYXNlID0gJ1NlcnZpY2UnO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdkYXRhZG9nLXNpZGVjYXInOlxuICAgICAgbG9nR3JvdXBJZCA9ICdMb2dHcm91cEZvckRhdGFkb2dTaWRlY2FyJztcbiAgICAgIGxvZ0dyb3VwTmFtZSA9IGAke3Byb3BzLnNlcnZpY2VOYW1lfS0ke3Byb3BzLmNvbnRhaW5lclR5cGV9YDtcbiAgICAgIGNvbnRhaW5lclR5cGVDYW1lbENhc2UgPSAnRGF0YWRvZ1NpZGVjYXInO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCB7IGFjY291bnQ6IGFjY291bnRJZCwgcmVnaW9uIH0gPSBTdGFjay5vZihwcm9wcy5zY29wZSk7XG5cbiAgc3dpdGNoIChwcm9wcy5kYXRhZG9nTG9nZ2luZ01vZGUpIHtcbiAgICBjYXNlIERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TOlxuICAgICAgLy8gVE9ETyBjYW4gd2UgdXNlIGBzZWNyZXRPcHRpb25zYCBoZXJlIGFzIHdlbGwsIGUuZy4gYXMgaW4gaHR0cHM6Ly9naXRodWIuY29tL2F3cy1zYW1wbGVzL2FtYXpvbi1lY3MtZmlyZWxlbnMtZXhhbXBsZXMvYmxvYi9tYWlubGluZS9leGFtcGxlcy9mbHVlbnQtYml0L2RhdGFkb2cvdGFzay1kZWZpbml0aW9uLmpzb24jTDMzLUwzNlxuICAgICAgLy8gUHJvYmFibHkgbm90LCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy84MTc0XG4gICAgICByZXR1cm4gZWNzLkxvZ0RyaXZlcnMuZmlyZWxlbnMoe1xuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2ZsdWVudGJpdC8jY29uZmlndXJhdGlvbi1wYXJhbWV0ZXJzXG4gICAgICAgIHNlY3JldE9wdGlvbnM6IHtcbiAgICAgICAgICBhcGlLZXk6IHByb3BzLmRhdGFkb2dBcGlLZXksXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBOYW1lOiAnZGF0YWRvZycsXG4gICAgICAgICAgTWF0Y2g6ICcqJyxcbiAgICAgICAgICBIb3N0OiBgaHR0cC1pbnRha2UubG9ncy4ke3Byb3BzLmRhdGFkb2dTaXRlfWAsXG4gICAgICAgICAgVExTOiAnb24nLFxuICAgICAgICAgIGNvbXByZXNzOiAnZ3ppcCcsXG4gICAgICAgICAgZGRfc2VydmljZTogbG9nR3JvdXBOYW1lLFxuICAgICAgICAgIGRkX3NvdXJjZTogJ3Jpby1mYXJnYXRlJyxcbiAgICAgICAgICBkZF9tZXNzYWdlX2tleTogJ2xvZycsXG4gICAgICAgICAgZGRfdGFnczogZ2V0VGFnc0Vudmlyb25tZW50VmFyaWFibGVWYWx1ZSh7IC4uLnByb3BzLCBhY2NvdW50SWQsIHJlZ2lvbiwgY29udGFpbmVyVHlwZTogJ2ZsdWVudC1iaXQnIH0pLFxuICAgICAgICAgIHByb3ZpZGVyOiAnZWNzJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgY2FzZSBEYXRhRG9nTG9nZ2luZ01vZGUuRk9SV0FSREVSX0xBTUJEQTpcbiAgICBjYXNlIERhdGFEb2dMb2dnaW5nTW9kZS5EQVRBRE9HX0ZPUldBUkRFUl9MQU1CREE6IHtcbiAgICAgIGNvbnN0IGxvZ0dyb3VwRm9yRm9yd2FyZGluZ0xhbWJkYSA9IG5ldyBsb2dzLkxvZ0dyb3VwKHByb3BzLnNjb3BlLCBsb2dHcm91cElkLCB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB9KTtcbiAgICAgIFRhZ3Mub2YobG9nR3JvdXBGb3JGb3J3YXJkaW5nTGFtYmRhKS5hZGQoJ3NlcnZpY2UnLCBwcm9wcy5zZXJ2aWNlTmFtZSk7XG4gICAgICBjb25zdCBsb2dGb3J3YXJkZXJMYW1iZGFBcm5PdXRwdXROYW1lID1cbiAgICAgICAgcHJvcHMuZGF0YWRvZ0xvZ2dpbmdNb2RlID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuREFUQURPR19GT1JXQVJERVJfTEFNQkRBXG4gICAgICAgICAgPyAnZGF0YWRvZy1mb3J3YXJkZXItRm9yd2FyZGVyQXJuJ1xuICAgICAgICAgIDogJ2N1c3RvbS1yZXNvdXJjZS1kYXRhZG9nLWxvZ2ZvcndhcmRlci1mdW5jdGlvbi1hcm4nO1xuICAgICAgY29uc3QgbG9nRm9yd2FyZGVyTGFtYmRhQXJuID0gRm4uaW1wb3J0VmFsdWUobG9nRm9yd2FyZGVyTGFtYmRhQXJuT3V0cHV0TmFtZSk7XG4gICAgICBjb25zdCBjZm5QZXJtaXNzaW9uID0gbmV3IGxhbWJkYS5DZm5QZXJtaXNzaW9uKHByb3BzLnNjb3BlLCBgTG9nRm9yd2FyZGVyUGVybWlzc2lvbiR7Y29udGFpbmVyVHlwZUNhbWVsQ2FzZX1gLCB7XG4gICAgICAgIGFjdGlvbjogJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogbG9nRm9yd2FyZGVyTGFtYmRhQXJuLFxuICAgICAgICBwcmluY2lwYWw6IGBsb2dzLiR7cmVnaW9ufS5hbWF6b25hd3MuY29tYCxcbiAgICAgICAgc291cmNlQXJuOiBsb2dHcm91cEZvckZvcndhcmRpbmdMYW1iZGEubG9nR3JvdXBBcm4sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGNmblN1YnNjcmlwdGlvbkZpbHRlciA9IG5ldyBsb2dzLkNmblN1YnNjcmlwdGlvbkZpbHRlcihcbiAgICAgICAgcHJvcHMuc2NvcGUsXG4gICAgICAgIGBMb2dGb3J3YXJkZXJTdWJzY3JpcHRpb25GaWx0ZXIke2NvbnRhaW5lclR5cGVDYW1lbENhc2V9YCxcbiAgICAgICAge1xuICAgICAgICAgIGRlc3RpbmF0aW9uQXJuOiBsb2dGb3J3YXJkZXJMYW1iZGFBcm4sXG4gICAgICAgICAgZmlsdGVyUGF0dGVybjogJycsXG4gICAgICAgICAgbG9nR3JvdXBOYW1lOiBsb2dHcm91cEZvckZvcndhcmRpbmdMYW1iZGEubG9nR3JvdXBOYW1lLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgY2ZuU3Vic2NyaXB0aW9uRmlsdGVyLmFkZERlcGVuZGVuY3koY2ZuUGVybWlzc2lvbik7XG4gICAgICByZXR1cm4gZWNzLkxvZ0RyaXZlcnMuYXdzTG9ncyh7XG4gICAgICAgIHN0cmVhbVByZWZpeDogcHJvcHMuY29udGFpbmVyVHlwZSxcbiAgICAgICAgbG9nR3JvdXA6IGxvZ0dyb3VwRm9yRm9yd2FyZGluZ0xhbWJkYSxcbiAgICAgICAgbW9kZTogZWNzLkF3c0xvZ0RyaXZlck1vZGUuTk9OX0JMT0NLSU5HLFxuICAgICAgICBtYXhCdWZmZXJTaXplOiBTaXplLm1lYmlieXRlcygyNSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjYXNlIERhdGFEb2dMb2dnaW5nTW9kZS5OT05FOiB7XG4gICAgICBjb25zdCBsb2dHcm91cEluQ2xvdWR3YXRjaE9ubHkgPSBuZXcgbG9ncy5Mb2dHcm91cChwcm9wcy5zY29wZSwgbG9nR3JvdXBJZCwge1xuICAgICAgICByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGVjcy5Mb2dEcml2ZXJzLmF3c0xvZ3Moe1xuICAgICAgICBzdHJlYW1QcmVmaXg6IHByb3BzLmNvbnRhaW5lclR5cGUsXG4gICAgICAgIGxvZ0dyb3VwOiBsb2dHcm91cEluQ2xvdWR3YXRjaE9ubHksXG4gICAgICAgIG1vZGU6IGVjcy5Bd3NMb2dEcml2ZXJNb2RlLk5PTl9CTE9DS0lORyxcbiAgICAgICAgbWF4QnVmZmVyU2l6ZTogU2l6ZS5tZWJpYnl0ZXMoMjUpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyhcbiAgcmlvRmFyZ2F0ZVNlcnZpY2U6IFJpb0ZhcmdhdGVTZXJ2aWNlIHwgUmlvRmFyZ2F0ZVNlcnZpY2VCbHVlR3JlZW5BbHBoYVxuKTogdm9pZCB7XG4gIHJpb0ZhcmdhdGVTZXJ2aWNlLnNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uLmFkZENvbnRhaW5lckRlcGVuZGVuY2llcyh7XG4gICAgY29udGFpbmVyOiByaW9GYXJnYXRlU2VydmljZS5kYXRhZG9nU2lkZUNhckNvbnRhaW5lckRlZmluaXRpb24sXG4gICAgY29uZGl0aW9uOiBlY3MuQ29udGFpbmVyRGVwZW5kZW5jeUNvbmRpdGlvbi5IRUFMVEhZLFxuICB9KTtcblxuICBpZiAocmlvRmFyZ2F0ZVNlcnZpY2UubG9nUm91dGVyQ29udGFpbmVyRGVmaW5pdGlvbikge1xuICAgIHJpb0ZhcmdhdGVTZXJ2aWNlLnNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uLmFkZENvbnRhaW5lckRlcGVuZGVuY2llcyh7XG4gICAgICBjb250YWluZXI6IHJpb0ZhcmdhdGVTZXJ2aWNlLmxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24sXG4gICAgICBjb25kaXRpb246IGVjcy5Db250YWluZXJEZXBlbmRlbmN5Q29uZGl0aW9uLlNUQVJULFxuICAgIH0pO1xuXG4gICAgaWYgKHJpb0ZhcmdhdGVTZXJ2aWNlLmRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbi5sb2dEcml2ZXJDb25maWc/LmxvZ0RyaXZlciA9PT0gJ2F3c2ZpcmVsZW5zJykge1xuICAgICAgcmlvRmFyZ2F0ZVNlcnZpY2UuZGF0YWRvZ1NpZGVDYXJDb250YWluZXJEZWZpbml0aW9uLmFkZENvbnRhaW5lckRlcGVuZGVuY2llcyh7XG4gICAgICAgIGNvbnRhaW5lcjogcmlvRmFyZ2F0ZVNlcnZpY2UubG9nUm91dGVyQ29udGFpbmVyRGVmaW5pdGlvbixcbiAgICAgICAgY29uZGl0aW9uOiBlY3MuQ29udGFpbmVyRGVwZW5kZW5jeUNvbmRpdGlvbi5TVEFSVCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL2RhdGFkb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUpBLDBGQTZCQztBQW1CRCx3REFRQztBQUVELDhDQXlFQztBQUVELDRGQVdDO0FBMkNELG9EQThDQztBQUVELG9DQXlHQztBQUVELHNIQXFCQztBQTVmRCw2Q0FBOEQ7QUFDOUQsMkNBQTJDO0FBQzNDLGlEQUF1RDtBQUN2RCwyQ0FBMkM7QUFDM0MsaURBQWlEO0FBQ2pELDZDQUE2QztBQUM3QywyQ0FBMkM7QUFFM0MsK0RBQW1GO0FBRW5GLHFEQUkwQjtBQUUxQjs7R0FFRztBQUNILE1BQWEsT0FBTztJQUNYLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FDbkQsS0FBZ0IsRUFDaEIsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixXQUFtQixFQUNuQixRQUFnQixFQUNoQixjQUFzQixFQUN0QixjQUFtRDtRQUVuRCxPQUFPLHVDQUF1QyxDQUFDO1lBQzdDLEtBQUs7WUFDTCxLQUFLO1lBQ0wsV0FBVztZQUNYLE9BQU87WUFDUCxXQUFXO1lBQ1gsUUFBUTtZQUNSLGNBQWM7WUFDZCxjQUFjO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxPQUFlO1FBQ3RGLE9BQU8sc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDN0IsS0FBZ0IsRUFDaEIsY0FBa0MsRUFDbEMsV0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixhQUF5QixFQUN6QixXQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsdUJBQWlDLEVBQ2pDLEdBQVcsRUFD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WUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUNqQyxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFlBQVk7Z0JBQ3ZDLGFBQWEsRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IscURBQXFELENBQ25FLGlCQUFzRTtJQUV0RSxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQztRQUNwRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsaUNBQWlDO1FBQzlELFNBQVMsRUFBRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsT0FBTztLQUNwRCxDQUFDLENBQUM7SUFFSCxJQUFJLGlCQUFpQixDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbkQsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUM7WUFDcEUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLDRCQUE0QjtZQUN6RCxTQUFTLEVBQUUsR0FBRyxDQUFDLDRCQUE0QixDQUFDLEtBQUs7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBaUIsQ0FBQyxpQ0FBaUMsQ0FBQyxlQUFlLEVBQUUsU0FBUyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3JHLGlCQUFpQixDQUFDLGlDQUFpQyxDQUFDLHdCQUF3QixDQUFDO2dCQUMzRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsNEJBQTRCO2dCQUN6RCxTQUFTLEVBQUUsR0FBRyxDQUFDLDRCQUE0QixDQUFDLEtBQUs7YUFDbEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIEZuLCBTaXplLCBTdGFjaywgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGVjcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCB7IEF3c0xvZ0RyaXZlck1vZGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFEb2dMb2dnaW5nTW9kZSwgdHlwZSBSaW9GYXJnYXRlU2VydmljZSB9IGZyb20gJy4vcmlvLWZhcmdhdGUtc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IFJpb0ZhcmdhdGVTZXJ2aWNlQmx1ZUdyZWVuQWxwaGEgfSBmcm9tICcuL3Jpby1mYXJnYXRlLXNlcnZpY2UtYmx1ZS1ncmVlbi1hbHBoYSc7XG5pbXBvcnQge1xuICBnZXRBZ2VudFRyYWNlU2FtcGxpbmdFbnZpcm9ubWVudCxcbiAgZ2V0QXBwbGljYXRpb25UcmFjZVNhbXBsaW5nRW52aXJvbm1lbnQsXG4gIHR5cGUgVHJhY2VTYW1wbGluZ09wdGlvbnMsXG59IGZyb20gJy4vdHJhY2Utc2FtcGxpbmcnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIE1vdmVkIG91dCBzdGF0aWMgbWV0aG9kcyBhbmQgaW1wb3JvdmVkIHNpZ25hdHVyZS4gVXNlIG5hbWVkIGltcG9ydCBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YURvZyB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0RmFyZ2F0ZUNvbnRhaW5lckVudmlyb25tZW50VmFyaWFibGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc3RhZ2U6IHN0cmluZyxcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICBhY2NvdW50TmFtZTogc3RyaW5nLFxuICAgIHRlYW1OYW1lOiBzdHJpbmcsXG4gICAgdGVhbUlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBhZGRpdGlvbmFsVGFnczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWRcbiAgKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIGdldEZhcmdhdGVDb250YWluZXJFbnZpcm9ubWVudFZhcmlhYmxlcyh7XG4gICAgICBzY29wZSxcbiAgICAgIHN0YWdlLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgYWNjb3VudE5hbWUsXG4gICAgICB0ZWFtTmFtZSxcbiAgICAgIHRlYW1JZGVudGlmaWVyLFxuICAgICAgYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldEZhcmdhdGVEb2NrZXJMYWJlbHMoc3RhZ2U6IHN0cmluZywgc2VydmljZU5hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIGdldEZhcmdhdGVEb2NrZXJMYWJlbHMoeyBzdGFnZSwgc2VydmljZU5hbWUsIHZlcnNpb24gfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFkZERhdGFkb2dTaWRlY2FyKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgdGFza0RlZmluaXRpb246IGVjcy5UYXNrRGVmaW5pdGlvbixcbiAgICBhY2NvdW50TmFtZTogc3RyaW5nLFxuICAgIHRlYW1OYW1lOiBzdHJpbmcsXG4gICAgdGVhbUlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBzdGFnZTogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIGRhdGFkb2dBcGlLZXk6IGVjcy5TZWNyZXQsXG4gICAgZGF0YWRvZ1NpdGU6IHN0cmluZyxcbiAgICBkYXRhZG9nTG9nZ2luZ01vZGU6IERhdGFEb2dMb2dnaW5nTW9kZSxcbiAgICBhcG1HZXRSZXNvdXJjZXNUb0lnbm9yZTogc3RyaW5nW10sXG4gICAgY3B1OiBudW1iZXIsXG4gICAgbWVtb3J5TGltaXRNaUI6IG51bWJlcixcbiAgICBlc3NlbnRpYWw6IGJvb2xlYW4sXG4gICAgY29udGFpbmVyVGFnOiBzdHJpbmcsXG4gICAgYWRkaXRpb25hbFRhZ3M6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkLFxuICAgIGVuYWJsZVJlc3RhcnRQb2xpY3k6IGJvb2xlYW4sXG4gICAgcmVzdGFydElnbm9yZWRFeGl0Q29kZXM6IG51bWJlcltdLFxuICAgIHRyYWNlU2FtcGxpbmc/OiBUcmFjZVNhbXBsaW5nT3B0aW9uc1xuICApOiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIGFkZERhdGFkb2dTaWRlY2FyKHtcbiAgICAgIHNjb3BlLFxuICAgICAgdGFza0RlZmluaXRpb24sXG4gICAgICBhY2NvdW50TmFtZSxcbiAgICAgIHRlYW1OYW1lLFxuICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICBzdGFnZSxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgdmVyc2lvbixcbiAgICAgIGRhdGFkb2dBcGlLZXksXG4gICAgICBkYXRhZG9nU2l0ZSxcbiAgICAgIGRhdGFkb2dMb2dnaW5nTW9kZSxcbiAgICAgIGFwbUdldFJlc291cmNlc1RvSWdub3JlLFxuICAgICAgY3B1LFxuICAgICAgbWVtb3J5TGltaXRNaUIsXG4gICAgICBlc3NlbnRpYWwsXG4gICAgICBjb250YWluZXJUYWcsXG4gICAgICBhZGRpdGlvbmFsVGFncyxcbiAgICAgIGVuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyxcbiAgICAgIHRyYWNlU2FtcGxpbmcsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFkZEZpcmVMZW5zTG9nUm91dGVyKFxuICAgIHRhc2tEZWZpbml0aW9uOiBlY3MuVGFza0RlZmluaXRpb24sXG4gICAgY3B1OiBudW1iZXIsXG4gICAgbWVtb3J5TGltaXRNaUI6IG51bWJlcixcbiAgICBmaXJlbGVuc0NvbmZpZ0ZpbGVQYXRoOiBzdHJpbmcsXG4gICAgZmlyZWxlbnNDb25maWdCdWNrZXRBcm46IHN0cmluZyxcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nXG4gICk6IGVjcy5Db250YWluZXJEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gYWRkRmlyZUxlbnNMb2dSb3V0ZXIoe1xuICAgICAgdGFza0RlZmluaXRpb24sXG4gICAgICBjcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQixcbiAgICAgIGZpcmVsZW5zQ29uZmlnRmlsZVBhdGgsXG4gICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybixcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXR1cExvZ2dpbmcoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBhY2NvdW50TmFtZTogc3RyaW5nLFxuICAgIHRlYW1OYW1lOiBzdHJpbmcsXG4gICAgdGVhbUlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBzdGFnZTogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIGRhdGFkb2dBcGlLZXk6IGVjcy5TZWNyZXQsXG4gICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBEYXRhRG9nTG9nZ2luZ01vZGUsXG4gICAgZGF0YWRvZ1NpdGU6IHN0cmluZyxcbiAgICBjb250YWluZXJUeXBlOiAnc2VydmljZScgfCAnZGF0YWRvZy1zaWRlY2FyJyxcbiAgICBhZGRpdGlvbmFsVGFnczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWRcbiAgKTogZWNzLkxvZ0RyaXZlciB7XG4gICAgcmV0dXJuIHNldHVwTG9nZ2luZyh7XG4gICAgICBzY29wZSxcbiAgICAgIGFjY291bnROYW1lLFxuICAgICAgdGVhbU5hbWUsXG4gICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgIHN0YWdlLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZGF0YWRvZ0FwaUtleSxcbiAgICAgIGRhdGFkb2dMb2dnaW5nTW9kZSxcbiAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgY29udGFpbmVyVHlwZSxcbiAgICAgIGFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyhyaW9GYXJnYXRlU2VydmljZTogUmlvRmFyZ2F0ZVNlcnZpY2UpIHtcbiAgICBlbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyhyaW9GYXJnYXRlU2VydmljZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZhcmdhdGVDb250YWluZXJFbnZpcm9ubWVudFZhcmlhYmxlcyhwcm9wczoge1xuICBzY29wZTogQ29uc3RydWN0O1xuICBzdGFnZTogc3RyaW5nO1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGFjY291bnROYW1lOiBzdHJpbmc7XG4gIHRlYW1OYW1lOiBzdHJpbmc7XG4gIHRlYW1JZGVudGlmaWVyOiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxUYWdzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgdHJhY2VTYW1wbGluZz86IFRyYWNlU2FtcGxpbmdPcHRpb25zO1xufSk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICBjb25zdCB7IGFjY291bnQ6IGFjY291bnRJZCwgcmVnaW9uIH0gPSBTdGFjay5vZihwcm9wcy5zY29wZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyB1bmlmaWVkIHRhZ2dpbmcsIHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9nZXR0aW5nX3N0YXJ0ZWQvdGFnZ2luZy91bmlmaWVkX3NlcnZpY2VfdGFnZ2luZy8/dGFiPWVjc1xuICAgIEREX0VOVjogcHJvcHMuc3RhZ2UsXG4gICAgRERfU0VSVklDRTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgRERfVkVSU0lPTjogcHJvcHMudmVyc2lvbixcbiAgICAvLyBBUE0gYW5kIHRyYWNpbmcsIHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS90cmFjaW5nL3NldHVwX292ZXJ2aWV3L3NldHVwL2phdmEvP3RhYj1jb250YWluZXJzXG4gICAgRERfTE9HU19JTkpFQ1RJT046ICd0cnVlJyxcbiAgICBERF9TRVJWSUNFX01BUFBJTkc6IGdldEFwbVNlcnZpY2VNYXBwaW5nRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlKHByb3BzLnNlcnZpY2VOYW1lKSxcbiAgICBERF9UQUdTOiBnZXRUYWdzRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY29udGFpbmVyVHlwZTogJ3NlcnZpY2UnLFxuICAgICAgYWNjb3VudElkLFxuICAgICAgcmVnaW9uLFxuICAgIH0pLFxuICAgIC4uLmdldEFwcGxpY2F0aW9uVHJhY2VTYW1wbGluZ0Vudmlyb25tZW50KHByb3BzLnRyYWNlU2FtcGxpbmcpLFxuICB9O1xufVxuXG4vLyB3ZSBhZGQgYWxsIHBvc3NpYmxlIHNlcnZpY2UgbWFwcGluZ3MgaGVyZSBldmVuIGlmIG5vdCB1c2VkIGluIGEgcGFydGljdWxhciBzZXJ2aWNlIHRvIGdldCBnbG9iYWxseSB1bmlxdWUgbmFtZXNcbmZ1bmN0aW9uIGdldEFwbVNlcnZpY2VNYXBwaW5nRW52aXJvbm1lbnRWYXJpYWJsZVZhbHVlKHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzZXJ2aWNlTWFwcGluZyA9IHtcbiAgICBkYXRhYmFzZTogYCR7c2VydmljZU5hbWV9LWF1cm9yYWAsXG4gICAgJ2phdmEtYXdzLXNkayc6IGAke3NlcnZpY2VOYW1lfS1hd3Mtc2RrYCxcbiAgICBrYWZrYTogYCR7c2VydmljZU5hbWV9LWthZmthYCxcbiAgICBteXNxbDogYCR7c2VydmljZU5hbWV9LWF1cm9yYWAsXG4gICAgcmVkaXM6IGAke3NlcnZpY2VOYW1lfS1yZWRpc2AsXG4gICAgJ2F3cy5keW5hbW9kYic6IGAke3NlcnZpY2VOYW1lfS1keW5hbW9kYmAsXG4gICAgbW9uZ286IGAke3NlcnZpY2VOYW1lfS1kb2N1bWVudGRiYCxcbiAgfTtcblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc2VydmljZU1hcHBpbmcpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9OiR7dmFsdWV9YClcbiAgICAuam9pbignLCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmFyZ2F0ZURvY2tlckxhYmVscyhwcm9wczogeyBzdGFnZTogc3RyaW5nOyBzZXJ2aWNlTmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmcgfSk6IHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufSB7XG4gIHJldHVybiB7XG4gICAgJ2NvbS5kYXRhZG9naHEudGFncy5lbnYnOiBwcm9wcy5zdGFnZSxcbiAgICAnY29tLmRhdGFkb2docS50YWdzLnNlcnZpY2UnOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAnY29tLmRhdGFkb2docS50YWdzLnZlcnNpb24nOiBwcm9wcy52ZXJzaW9uLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkRGF0YWRvZ1NpZGVjYXIocHJvcHM6IHtcbiAgc2NvcGU6IENvbnN0cnVjdDtcbiAgdGFza0RlZmluaXRpb246IGVjcy5UYXNrRGVmaW5pdGlvbjtcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgdGVhbU5hbWU6IHN0cmluZztcbiAgdGVhbUlkZW50aWZpZXI6IHN0cmluZztcbiAgc3RhZ2U6IHN0cmluZztcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBkYXRhZG9nQXBpS2V5OiBlY3MuU2VjcmV0O1xuICBkYXRhZG9nU2l0ZTogc3RyaW5nO1xuICBkYXRhZG9nTG9nZ2luZ01vZGU6IERhdGFEb2dMb2dnaW5nTW9kZTtcbiAgYXBtR2V0UmVzb3VyY2VzVG9JZ25vcmU6IHN0cmluZ1tdO1xuICBjcHU6IG51bWJlcjtcbiAgbWVtb3J5TGltaXRNaUI6IG51bWJlcjtcbiAgZXNzZW50aWFsOiBib29sZWFuO1xuICBjb250YWluZXJUYWc6IHN0cmluZztcbiAgYWRkaXRpb25hbFRhZ3M6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuICBlbmFibGVSZXN0YXJ0UG9saWN5OiBib29sZWFuO1xuICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG4gIHRyYWNlU2FtcGxpbmc/OiBUcmFjZVNhbXBsaW5nT3B0aW9ucztcbn0pOiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHsgYWNjb3VudDogYWNjb3VudElkLCByZWdpb24gfSA9IFN0YWNrLm9mKHByb3BzLnNjb3BlKTtcbiAgY29uc3QgZGF0YWRvZ1NpZGVjYXIgPSBwcm9wcy50YXNrRGVmaW5pdGlvbi5hZGRDb250YWluZXIoJ2RhdGFkb2ctYWdlbnQnLCB7XG4gICAgaW1hZ2U6IGVjcy5Db250YWluZXJJbWFnZS5mcm9tUmVnaXN0cnkoYHB1YmxpYy5lY3IuYXdzL2RhdGFkb2cvYWdlbnQ6JHtwcm9wcy5jb250YWluZXJUYWd9YCksXG4gICAgZW5hYmxlUmVzdGFydFBvbGljeTogcHJvcHMuZW5hYmxlUmVzdGFydFBvbGljeSxcbiAgICByZXN0YXJ0SWdub3JlZEV4aXRDb2RlczogcHJvcHMucmVzdGFydElnbm9yZWRFeGl0Q29kZXMsXG4gICAgbG9nZ2luZzogc2V0dXBMb2dnaW5nKHsgLi4ucHJvcHMsIGNvbnRhaW5lclR5cGU6ICdkYXRhZG9nLXNpZGVjYXInIH0pLFxuICAgIGNwdTogcHJvcHMuY3B1LFxuICAgIG1lbW9yeUxpbWl0TWlCOiBwcm9wcy5tZW1vcnlMaW1pdE1pQixcbiAgICBlbnZpcm9ubWVudDoge1xuICAgICAgLy8gdW5pZmllZCB0YWdnaW5nLCBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vZ2V0dGluZ19zdGFydGVkL3RhZ2dpbmcvdW5pZmllZF9zZXJ2aWNlX3RhZ2dpbmcvP3RhYj1lY3NcbiAgICAgIEREX0VOVjogcHJvcHMuc3RhZ2UsXG4gICAgICBERF9TRVJWSUNFOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIEREX1ZFUlNJT046IHByb3BzLnZlcnNpb24sXG4gICAgICAvLyBBUE0gYW5kIHRyYWNpbmcgc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2FnZW50L2RvY2tlci9hcG0vP3RhYj1saW51eFxuICAgICAgRERfQVBNX0VOQUJMRUQ6ICd0cnVlJyxcbiAgICAgIEREX0FQTV9JR05PUkVfUkVTT1VSQ0VTOiBwcm9wcy5hcG1HZXRSZXNvdXJjZXNUb0lnbm9yZVxuICAgICAgICAubWFwKGFwbUdldFJlc291cmNlVG9JZ25vcmUgPT4gYEdFVCAke2FwbUdldFJlc291cmNlVG9JZ25vcmV9YClcbiAgICAgICAgLmpvaW4oJywnKSxcbiAgICAgIC8vIGdlbmVyYWwgc2V0dGluZ3NcbiAgICAgIEREX1NJVEU6IHByb3BzLmRhdGFkb2dTaXRlLFxuICAgICAgRERfVEFHUzogZ2V0VGFnc0Vudmlyb25tZW50VmFyaWFibGVWYWx1ZSh7IC4uLnByb3BzLCBhY2NvdW50SWQsIHJlZ2lvbiwgY29udGFpbmVyVHlwZTogJ2RhdGFkb2ctc2lkZWNhcicgfSksXG4gICAgICBFQ1NfRkFSR0FURTogJ3RydWUnLFxuICAgICAgRERfQ0xPVURfUFJPVklERVJfTUVUQURBVEE6ICdhd3MnLFxuICAgICAgRERfUkVNT1RFX0NPTkZJR1VSQVRJT05fRU5BQkxFRDogJ2ZhbHNlJyxcbiAgICAgIC4uLmdldEFnZW50VHJhY2VTYW1wbGluZ0Vudmlyb25tZW50KHByb3BzLnRyYWNlU2FtcGxpbmcpLFxuICAgIH0sXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctYWdlbnQvYmxvYi9tYXN0ZXIvRG9ja2VyZmlsZXMvYWdlbnQvYW1kNjQvRG9ja2VyZmlsZSNMMTcxLUwxNzJcbiAgICBoZWFsdGhDaGVjazoge1xuICAgICAgc3RhcnRQZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBpbnRlcnZhbDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgcmV0cmllczogMixcbiAgICAgIGNvbW1hbmQ6IFsnQ01ELVNIRUxMJywgJy9wcm9iZS5zaCddLFxuICAgIH0sXG4gICAgc2VjcmV0czoge1xuICAgICAgRERfQVBJX0tFWTogcHJvcHMuZGF0YWRvZ0FwaUtleSxcbiAgICB9LFxuICAgIGVzc2VudGlhbDogcHJvcHMuZXNzZW50aWFsLFxuICB9KTtcblxuICBkYXRhZG9nU2lkZWNhci5hZGRQb3J0TWFwcGluZ3Moe1xuICAgIGNvbnRhaW5lclBvcnQ6IDgxMjUsXG4gICAgcHJvdG9jb2w6IGVjcy5Qcm90b2NvbC5VRFAsXG4gIH0pO1xuXG4gIGRhdGFkb2dTaWRlY2FyLmFkZFBvcnRNYXBwaW5ncyh7XG4gICAgY29udGFpbmVyUG9ydDogODEyNixcbiAgICBwcm90b2NvbDogZWNzLlByb3RvY29sLlRDUCxcbiAgfSk7XG5cbiAgcmV0dXJuIGRhdGFkb2dTaWRlY2FyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkRmlyZWxlbnNDb25maWdVcGxvYWRGcm9tUzNQZXJtaXNzaW9ucyhwcm9wczoge1xuICB0YXNrRGVmaW5pdGlvbjogZWNzLlRhc2tEZWZpbml0aW9uO1xuICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogc3RyaW5nO1xufSkge1xuICBwcm9wcy50YXNrRGVmaW5pdGlvbi5hZGRUb1Rhc2tSb2xlUG9saWN5KFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHJlc291cmNlczogW3Byb3BzLmZpcmVsZW5zQ29uZmlnQnVja2V0QXJuLCBgJHtwcm9wcy5maXJlbGVuc0NvbmZpZ0J1Y2tldEFybn0vKmBdLFxuICAgICAgYWN0aW9uczogWydzMzpHZXQqJ10sXG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFnc0Vudmlyb25tZW50VmFyaWFibGVWYWx1ZShwcm9wczoge1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIHRlYW1OYW1lOiBzdHJpbmc7XG4gIHRlYW1JZGVudGlmaWVyOiBzdHJpbmc7XG4gIHN0YWdlOiBzdHJpbmc7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY29udGFpbmVyVHlwZTogJ3NlcnZpY2UnIHwgJ2RhdGFkb2ctc2lkZWNhcicgfCAnZmx1ZW50LWJpdCc7XG4gIGFkZGl0aW9uYWxUYWdzOiB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbn0pOiBzdHJpbmcge1xuICBjb25zdCBzZXBhcmF0b3IgPSBkZXRlcm1pbmVTZXBhcmF0b3IocHJvcHMuY29udGFpbmVyVHlwZSk7XG5cbiAgY29uc3QgdGFncyA9IHtcbiAgICAvLyB1bmlmaWVkIHRhZ2dpbmdcbiAgICAvLyBvdmVycmlkZGVuIGJ5IGRlZGljYXRlZCBzZXR0aW5ncyAoZW52aXJvbm1lbnQgdmFyaWFibGVzL3RhZ3MpXG4gICAgLy8gZHVwbGljYXRlZCBoZXJlIHRvIGVuc3VyZSB0aGV5IGFyZSB1c2VkIChhbmQgc29tZXRpbWVzLCBub3QgYWxsIHRocmVlIHZhbHVlcyBhcmUgc3VwcG9ydGVkKVxuICAgIGVudjogcHJvcHMuc3RhZ2UsXG4gICAgc2VydmljZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgdmVyc2lvbjogcHJvcHMudmVyc2lvbixcbiAgICAvLyBhY2NvdW50L3RlYW0gc3BlY2lmaWMgcGFydHNcbiAgICBhY2NvdW50X2lkOiBwcm9wcy5hY2NvdW50SWQsXG4gICAgYWNjb3VudF9uYW1lOiBwcm9wcy5hY2NvdW50TmFtZSxcbiAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICB0ZWFtOiBwcm9wcy50ZWFtTmFtZSxcbiAgICB0ZWFtX2lkZW50aWZpZXI6IHByb3BzLnRlYW1JZGVudGlmaWVyLFxuICB9O1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoeyAuLi50YWdzLCAuLi5wcm9wcy5hZGRpdGlvbmFsVGFncyB9KVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fToke3ZhbHVlfWApXG4gICAgLmpvaW4oc2VwYXJhdG9yKTtcbn1cblxuZnVuY3Rpb24gZGV0ZXJtaW5lU2VwYXJhdG9yKGNvbnRhaW5lclR5cGU6ICdzZXJ2aWNlJyB8ICdkYXRhZG9nLXNpZGVjYXInIHwgJ2ZsdWVudC1iaXQnKSB7XG4gIGlmIChjb250YWluZXJUeXBlID09PSAnZGF0YWRvZy1zaWRlY2FyJykge1xuICAgIHJldHVybiAnICc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcsJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkRmlyZUxlbnNMb2dSb3V0ZXIocHJvcHM6IHtcbiAgdGFza0RlZmluaXRpb246IGVjcy5UYXNrRGVmaW5pdGlvbjtcbiAgY3B1OiBudW1iZXI7XG4gIG1lbW9yeUxpbWl0TWlCOiBudW1iZXI7XG4gIGZpcmVsZW5zQ29uZmlnQnVja2V0QXJuOiBzdHJpbmc7XG4gIGZpcmVsZW5zQ29uZmlnRmlsZVBhdGg6IHN0cmluZztcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbn0pOiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbiB7XG4gIGNvbnN0IGZsdWVudEJpdFMzQ29uZmlnRmlsZSA9IHByb3BzLmZpcmVsZW5zQ29uZmlnQnVja2V0QXJuICsgcHJvcHMuZmlyZWxlbnNDb25maWdGaWxlUGF0aDtcblxuICBjb25zdCBmaXJlTGVuc0xvZ1JvdXRlckltYWdlID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyQXR0cmlidXRlcyhcbiAgICBwcm9wcy50YXNrRGVmaW5pdGlvbixcbiAgICAnRmx1ZW50Qml0SW1hZ2VUYWcnLFxuICAgIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6ICcvYXdzL3NlcnZpY2UvYXdzLWZvci1mbHVlbnQtYml0L2luaXQtMi4zMi4yLjIwMjQwODIwJyxcbiAgICAgIC8vIElmIHRoaXMgcHJvcGVydHkgaXMgbm90IHNldCwgaXQgd2lsbCBhbHdheXMgcmV0dXJuIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgICAgIC8vIFRoaXMgbGVhZHMgdG8gYSBub24tZGV0ZXJtaW5pc3RpYyBiZWhhdmlvci5cbiAgICAgIC8vIFVwZGF0aW5nIHRoaXMgbmFtZS92ZXJzaW9uIGlzIGEgcG90ZW50aWFsIGJyZWFraW5nIGNoYW5nZVxuICAgICAgdmVyc2lvbjogMSxcbiAgICB9XG4gICkuc3RyaW5nVmFsdWU7XG5cbiAgcmV0dXJuIHByb3BzLnRhc2tEZWZpbml0aW9uLmFkZEZpcmVsZW5zTG9nUm91dGVyKCdmaXJlbGVucy1sb2ctcm91dGVyJywge1xuICAgIGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KGZpcmVMZW5zTG9nUm91dGVySW1hZ2UpLFxuICAgIGZpcmVsZW5zQ29uZmlnOiB7XG4gICAgICB0eXBlOiBlY3MuRmlyZWxlbnNMb2dSb3V0ZXJUeXBlLkZMVUVOVEJJVCxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZW5hYmxlRUNTTG9nTWV0YWRhdGE6IHRydWUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3B1OiBwcm9wcy5jcHUsXG4gICAgbWVtb3J5TGltaXRNaUI6IHByb3BzLm1lbW9yeUxpbWl0TWlCLFxuICAgIGxvZ2dpbmc6IGVjcy5Mb2dEcml2ZXJzLmF3c0xvZ3Moe1xuICAgICAgbG9nR3JvdXA6IG5ldyBsb2dzLkxvZ0dyb3VwKHByb3BzLnRhc2tEZWZpbml0aW9uLCAnRmlyZWxlbnNMb2dSb3V0ZXJMb2dHcm91cCcsIHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBgJHtwcm9wcy5zZXJ2aWNlTmFtZX0tZmlyZWxlbnMtbG9nLXJvdXRlcmAsXG4gICAgICB9KSxcbiAgICAgIHN0cmVhbVByZWZpeDogJ2ZpcmVsZW5zLWxvZy1yb3V0ZXInLFxuICAgICAgbW9kZTogQXdzTG9nRHJpdmVyTW9kZS5OT05fQkxPQ0tJTkcsXG4gICAgfSksXG4gICAgaGVhbHRoQ2hlY2s6IHtcbiAgICAgIGNvbW1hbmQ6IFsnQ01ELVNIRUxMJywgJ2N1cmwgLS1mYWlsIC0tc2lsZW50IGh0dHA6Ly8xMjcuMC4wLjE6MjAyMC9hcGkvdjEvaGVhbHRoIHx8IGV4aXQgMSddLFxuICAgIH0sXG4gICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgIGF3c19mbHVlbnRfYml0X2luaXRfczNfMTogZmx1ZW50Qml0UzNDb25maWdGaWxlLFxuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBMb2dnaW5nKHByb3BzOiB7XG4gIHNjb3BlOiBDb25zdHJ1Y3Q7XG4gIGFjY291bnROYW1lOiBzdHJpbmc7XG4gIHRlYW1OYW1lOiBzdHJpbmc7XG4gIHRlYW1JZGVudGlmaWVyOiBzdHJpbmc7XG4gIHN0YWdlOiBzdHJpbmc7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgZGF0YWRvZ0FwaUtleTogZWNzLlNlY3JldDtcbiAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBEYXRhRG9nTG9nZ2luZ01vZGU7XG4gIGRhdGFkb2dTaXRlOiBzdHJpbmc7XG4gIGNvbnRhaW5lclR5cGU6ICdzZXJ2aWNlJyB8ICdkYXRhZG9nLXNpZGVjYXInO1xuICBhZGRpdGlvbmFsVGFnczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG59KTogZWNzLkxvZ0RyaXZlciB7XG4gIGxldCBsb2dHcm91cE5hbWU6IHN0cmluZztcbiAgbGV0IGxvZ0dyb3VwSWQ6IHN0cmluZztcbiAgbGV0IGNvbnRhaW5lclR5cGVDYW1lbENhc2U6IHN0cmluZztcblxuICBzd2l0Y2ggKHByb3BzLmNvbnRhaW5lclR5cGUpIHtcbiAgICBjYXNlICdzZXJ2aWNlJzpcbiAgICAgIGxvZ0dyb3VwSWQgPSAnTG9nR3JvdXBGb3JTZXJ2aWNlJztcbiAgICAgIGxvZ0dyb3VwTmFtZSA9IHByb3BzLnNlcnZpY2VOYW1lO1xuICAgICAgY29udGFpbmVyVHlwZUNhbWVsQ2FzZSA9ICdTZXJ2aWNlJztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZGF0YWRvZy1zaWRlY2FyJzpcbiAgICAgIGxvZ0dyb3VwSWQgPSAnTG9nR3JvdXBGb3JEYXRhZG9nU2lkZWNhcic7XG4gICAgICBsb2dHcm91cE5hbWUgPSBgJHtwcm9wcy5zZXJ2aWNlTmFtZX0tJHtwcm9wcy5jb250YWluZXJUeXBlfWA7XG4gICAgICBjb250YWluZXJUeXBlQ2FtZWxDYXNlID0gJ0RhdGFkb2dTaWRlY2FyJztcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgeyBhY2NvdW50OiBhY2NvdW50SWQsIHJlZ2lvbiB9ID0gU3RhY2sub2YocHJvcHMuc2NvcGUpO1xuXG4gIHN3aXRjaCAocHJvcHMuZGF0YWRvZ0xvZ2dpbmdNb2RlKSB7XG4gICAgY2FzZSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUzpcbiAgICAgIC8vIFRPRE8gY2FuIHdlIHVzZSBgc2VjcmV0T3B0aW9uc2AgaGVyZSBhcyB3ZWxsLCBlLmcuIGFzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3Mtc2FtcGxlcy9hbWF6b24tZWNzLWZpcmVsZW5zLWV4YW1wbGVzL2Jsb2IvbWFpbmxpbmUvZXhhbXBsZXMvZmx1ZW50LWJpdC9kYXRhZG9nL3Rhc2stZGVmaW5pdGlvbi5qc29uI0wzMy1MMzZcbiAgICAgIC8vIFByb2JhYmx5IG5vdCwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvODE3NFxuICAgICAgcmV0dXJuIGVjcy5Mb2dEcml2ZXJzLmZpcmVsZW5zKHtcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9mbHVlbnRiaXQvI2NvbmZpZ3VyYXRpb24tcGFyYW1ldGVyc1xuICAgICAgICBzZWNyZXRPcHRpb25zOiB7XG4gICAgICAgICAgYXBpS2V5OiBwcm9wcy5kYXRhZG9nQXBpS2V5LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgTmFtZTogJ2RhdGFkb2cnLFxuICAgICAgICAgIE1hdGNoOiAnKicsXG4gICAgICAgICAgSG9zdDogYGh0dHAtaW50YWtlLmxvZ3MuJHtwcm9wcy5kYXRhZG9nU2l0ZX1gLFxuICAgICAgICAgIFRMUzogJ29uJyxcbiAgICAgICAgICBjb21wcmVzczogJ2d6aXAnLFxuICAgICAgICAgIGRkX3NlcnZpY2U6IGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICBkZF9zb3VyY2U6ICdyaW8tZmFyZ2F0ZScsXG4gICAgICAgICAgZGRfbWVzc2FnZV9rZXk6ICdsb2cnLFxuICAgICAgICAgIGRkX3RhZ3M6IGdldFRhZ3NFbnZpcm9ubWVudFZhcmlhYmxlVmFsdWUoeyAuLi5wcm9wcywgYWNjb3VudElkLCByZWdpb24sIGNvbnRhaW5lclR5cGU6ICdmbHVlbnQtYml0JyB9KSxcbiAgICAgICAgICBwcm92aWRlcjogJ2VjcycsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIGNhc2UgRGF0YURvZ0xvZ2dpbmdNb2RlLkZPUldBUkRFUl9MQU1CREE6XG4gICAgY2FzZSBEYXRhRG9nTG9nZ2luZ01vZGUuREFUQURPR19GT1JXQVJERVJfTEFNQkRBOiB7XG4gICAgICBjb25zdCBsb2dHcm91cEZvckZvcndhcmRpbmdMYW1iZGEgPSBuZXcgbG9ncy5Mb2dHcm91cChwcm9wcy5zY29wZSwgbG9nR3JvdXBJZCwge1xuICAgICAgICBsb2dHcm91cE5hbWUsXG4gICAgICAgIHJldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgfSk7XG4gICAgICBUYWdzLm9mKGxvZ0dyb3VwRm9yRm9yd2FyZGluZ0xhbWJkYSkuYWRkKCdzZXJ2aWNlJywgcHJvcHMuc2VydmljZU5hbWUpO1xuICAgICAgY29uc3QgbG9nRm9yd2FyZGVyTGFtYmRhQXJuT3V0cHV0TmFtZSA9XG4gICAgICAgIHByb3BzLmRhdGFkb2dMb2dnaW5nTW9kZSA9PT0gRGF0YURvZ0xvZ2dpbmdNb2RlLkRBVEFET0dfRk9SV0FSREVSX0xBTUJEQVxuICAgICAgICAgID8gJ2RhdGFkb2ctZm9yd2FyZGVyLUZvcndhcmRlckFybidcbiAgICAgICAgICA6ICdjdXN0b20tcmVzb3VyY2UtZGF0YWRvZy1sb2dmb3J3YXJkZXItZnVuY3Rpb24tYXJuJztcbiAgICAgIGNvbnN0IGxvZ0ZvcndhcmRlckxhbWJkYUFybiA9IEZuLmltcG9ydFZhbHVlKGxvZ0ZvcndhcmRlckxhbWJkYUFybk91dHB1dE5hbWUpO1xuICAgICAgY29uc3QgY2ZuUGVybWlzc2lvbiA9IG5ldyBsYW1iZGEuQ2ZuUGVybWlzc2lvbihwcm9wcy5zY29wZSwgYExvZ0ZvcndhcmRlclBlcm1pc3Npb24ke2NvbnRhaW5lclR5cGVDYW1lbENhc2V9YCwge1xuICAgICAgICBhY3Rpb246ICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IGxvZ0ZvcndhcmRlckxhbWJkYUFybixcbiAgICAgICAgcHJpbmNpcGFsOiBgbG9ncy4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbWAsXG4gICAgICAgIHNvdXJjZUFybjogbG9nR3JvdXBGb3JGb3J3YXJkaW5nTGFtYmRhLmxvZ0dyb3VwQXJuLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBjZm5TdWJzY3JpcHRpb25GaWx0ZXIgPSBuZXcgbG9ncy5DZm5TdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgICAgIHByb3BzLnNjb3BlLFxuICAgICAgICBgTG9nRm9yd2FyZGVyU3Vic2NyaXB0aW9uRmlsdGVyJHtjb250YWluZXJUeXBlQ2FtZWxDYXNlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBkZXN0aW5hdGlvbkFybjogbG9nRm9yd2FyZGVyTGFtYmRhQXJuLFxuICAgICAgICAgIGZpbHRlclBhdHRlcm46ICcnLFxuICAgICAgICAgIGxvZ0dyb3VwTmFtZTogbG9nR3JvdXBGb3JGb3J3YXJkaW5nTGFtYmRhLmxvZ0dyb3VwTmFtZSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNmblN1YnNjcmlwdGlvbkZpbHRlci5hZGREZXBlbmRlbmN5KGNmblBlcm1pc3Npb24pO1xuICAgICAgcmV0dXJuIGVjcy5Mb2dEcml2ZXJzLmF3c0xvZ3Moe1xuICAgICAgICBzdHJlYW1QcmVmaXg6IHByb3BzLmNvbnRhaW5lclR5cGUsXG4gICAgICAgIGxvZ0dyb3VwOiBsb2dHcm91cEZvckZvcndhcmRpbmdMYW1iZGEsXG4gICAgICAgIG1vZGU6IGVjcy5Bd3NMb2dEcml2ZXJNb2RlLk5PTl9CTE9DS0lORyxcbiAgICAgICAgbWF4QnVmZmVyU2l6ZTogU2l6ZS5tZWJpYnl0ZXMoMjUpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FzZSBEYXRhRG9nTG9nZ2luZ01vZGUuTk9ORToge1xuICAgICAgY29uc3QgbG9nR3JvdXBJbkNsb3Vkd2F0Y2hPbmx5ID0gbmV3IGxvZ3MuTG9nR3JvdXAocHJvcHMuc2NvcGUsIGxvZ0dyb3VwSWQsIHtcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBlY3MuTG9nRHJpdmVycy5hd3NMb2dzKHtcbiAgICAgICAgc3RyZWFtUHJlZml4OiBwcm9wcy5jb250YWluZXJUeXBlLFxuICAgICAgICBsb2dHcm91cDogbG9nR3JvdXBJbkNsb3Vkd2F0Y2hPbmx5LFxuICAgICAgICBtb2RlOiBlY3MuQXdzTG9nRHJpdmVyTW9kZS5OT05fQkxPQ0tJTkcsXG4gICAgICAgIG1heEJ1ZmZlclNpemU6IFNpemUubWViaWJ5dGVzKDI1KSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTG9nZ2luZ0FuZE1vbml0b3JpbmdBcmVSZWFkeUJlZm9yZVNlcnZpY2VTdGFydHMoXG4gIHJpb0ZhcmdhdGVTZXJ2aWNlOiBSaW9GYXJnYXRlU2VydmljZSB8IFJpb0ZhcmdhdGVTZXJ2aWNlQmx1ZUdyZWVuQWxwaGFcbik6IHZvaWQge1xuICByaW9GYXJnYXRlU2VydmljZS5zZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbi5hZGRDb250YWluZXJEZXBlbmRlbmNpZXMoe1xuICAgIGNvbnRhaW5lcjogcmlvRmFyZ2F0ZVNlcnZpY2UuZGF0YWRvZ1NpZGVDYXJDb250YWluZXJEZWZpbml0aW9uLFxuICAgIGNvbmRpdGlvbjogZWNzLkNvbnRhaW5lckRlcGVuZGVuY3lDb25kaXRpb24uSEVBTFRIWSxcbiAgfSk7XG5cbiAgaWYgKHJpb0ZhcmdhdGVTZXJ2aWNlLmxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24pIHtcbiAgICByaW9GYXJnYXRlU2VydmljZS5zZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbi5hZGRDb250YWluZXJEZXBlbmRlbmNpZXMoe1xuICAgICAgY29udGFpbmVyOiByaW9GYXJnYXRlU2VydmljZS5sb2dSb3V0ZXJDb250YWluZXJEZWZpbml0aW9uLFxuICAgICAgY29uZGl0aW9uOiBlY3MuQ29udGFpbmVyRGVwZW5kZW5jeUNvbmRpdGlvbi5TVEFSVCxcbiAgICB9KTtcblxuICAgIGlmIChyaW9GYXJnYXRlU2VydmljZS5kYXRhZG9nU2lkZUNhckNvbnRhaW5lckRlZmluaXRpb24ubG9nRHJpdmVyQ29uZmlnPy5sb2dEcml2ZXIgPT09ICdhd3NmaXJlbGVucycpIHtcbiAgICAgIHJpb0ZhcmdhdGVTZXJ2aWNlLmRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbi5hZGRDb250YWluZXJEZXBlbmRlbmNpZXMoe1xuICAgICAgICBjb250YWluZXI6IHJpb0ZhcmdhdGVTZXJ2aWNlLmxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24sXG4gICAgICAgIGNvbmRpdGlvbjogZWNzLkNvbnRhaW5lckRlcGVuZGVuY3lDb25kaXRpb24uU1RBUlQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|