@pepperize/cdk-route53-health-check
Version:
Create Route53 HealthChecks to monitor TCP, HTTP, HTTPS endpoints, CloudWatch Alarms and other Route53 HealthChecks.
75 lines • 12.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Failover = exports.HealthCheckBase = void 0;
const aws_cdk_lib_1 = require("aws-cdk-lib");
const cloudwatch = require("aws-cdk-lib/aws-cloudwatch");
const route53 = require("aws-cdk-lib/aws-route53");
/**
* @internal
*/
class HealthCheckBase extends aws_cdk_lib_1.Resource {
constructor() {
super(...arguments);
this.tags = new aws_cdk_lib_1.TagManager(aws_cdk_lib_1.TagType.STANDARD, "AWS::Route53::HealthCheck");
}
/**
* Import an existing Route53 HealthCheck.
*/
static fromHealthCheckId(scope, id, healthCheckId) {
return new (class Imported extends HealthCheckBase {
constructor() {
super(scope, id);
this.healthCheckId = healthCheckId;
}
})();
}
failover(recordSet, evaluateTargetHealth, failover) {
const resource = recordSet.node.defaultChild;
if (!(resource instanceof route53.CfnRecordSet)) {
throw new Error(`RecordSet ${recordSet.node.path} doesn't have a default child of type CfnRecordSet`);
}
resource.healthCheckId = this.healthCheckId;
if (failover) {
resource.failover = failover;
}
if (evaluateTargetHealth) {
resource.addPropertyOverride("AliasTarget.EvaluateTargetHealth", evaluateTargetHealth);
}
}
failoverPrimary(recordSet, evaluateTargetHealth) {
this.failover(recordSet, evaluateTargetHealth, Failover.PRIMARY);
}
failoverSecondary(recordSet, evaluateTargetHealth) {
this.failover(recordSet, evaluateTargetHealth, Failover.SECONDARY);
}
/**
* Return the given named metric for this HealthCheck.
*/
metric(metricName, props) {
return new cloudwatch.Metric({
namespace: "AWS/Route53",
metricName,
dimensionsMap: { HealthCheckId: this.healthCheckId },
...props,
}).attachTo(this);
}
/**
* Route53 health checkers report that the HealthCheck is healthy or unhealthy.
*/
metricHealthCheckStatus(props) {
return this.metric("HealthCheckStatus", { statistic: cloudwatch.Statistic.MINIMUM, ...props });
}
}
exports.HealthCheckBase = HealthCheckBase;
var Failover;
(function (Failover) {
/**
* The primary record set
*/
Failover["PRIMARY"] = "PRIMARY";
/**
* The secondary record set
*/
Failover["SECONDARY"] = "SECONDARY";
})(Failover || (exports.Failover = Failover = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoLWNoZWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hlYWx0aC1jaGVjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUU7QUFDdkUseURBQXlEO0FBQ3pELG1EQUFtRDtBQWlFbkQ7O0dBRUc7QUFDSCxNQUFzQixlQUFnQixTQUFRLHNCQUFRO0lBQXREOztRQWVXLFNBQUksR0FBRyxJQUFJLHdCQUFVLENBQUMscUJBQU8sQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQTZDaEYsQ0FBQztJQTNEQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxhQUFxQjtRQUNqRixPQUFPLElBQUksQ0FBQyxNQUFNLFFBQVMsU0FBUSxlQUFlO1lBRWhEO2dCQUNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRkgsa0JBQWEsR0FBRyxhQUFhLENBQUM7WUFHOUMsQ0FBQztTQUNGLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQU1ELFFBQVEsQ0FBQyxTQUFvQixFQUFFLG9CQUE4QixFQUFFLFFBQW1CO1FBQ2hGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRTdDLElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLG9EQUFvRCxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUVELFFBQVEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUU1QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUN6QixRQUFRLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUE0QixFQUFFLG9CQUE4QjtRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQTRCLEVBQUUsb0JBQThCO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsVUFBa0IsRUFBRSxLQUFnQztRQUN6RCxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixTQUFTLEVBQUUsYUFBYTtZQUN4QixVQUFVO1lBQ1YsYUFBYSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEQsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0Q7O09BRUc7SUFDSCx1QkFBdUIsQ0FBQyxLQUFnQztRQUN0RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7Q0FDRjtBQTVERCwwQ0E0REM7QUFFRCxJQUFZLFFBU1g7QUFURCxXQUFZLFFBQVE7SUFDbEI7O09BRUc7SUFDSCwrQkFBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILG1DQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFUVyxRQUFRLHdCQUFSLFFBQVEsUUFTbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGFnZ2FibGUsIFJlc291cmNlLCBUYWdNYW5hZ2VyLCBUYWdUeXBlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IFJlY29yZFNldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFsdGhDaGVja09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGlzIFJvdXRlNTMgSGVhbHRoQ2hlY2tcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW52ZXJ0IHRoZSBzdGF0dXMgb2YgdGhlIFJvdXRlNTMgaGVhbHRoIGNoZWNrIHN0YXR1cy5cbiAgICovXG4gIHJlYWRvbmx5IGludmVydGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGVhbHRoQ2hlY2sge1xuICByZWFkb25seSBoZWFsdGhDaGVja0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXRzIGB0aGlzLmhlYWx0aENoZWNrSWRgIGFzIHRoZSB2YWx1ZSBmb3IgYEhlYWx0aENoZWNrSWRgIG9uIHRoZSBnaXZlbiBSZWNvcmRTZXQuXG4gICAqXG4gICAqIDxiPkFwcGxpZXMgb25seSB0byBhbGlhcywgZmFpbG92ZXIgYWxpYXMsIGdlb2xvY2F0aW9uIGFsaWFzLCBsYXRlbmN5IGFsaWFzLCBhbmQgd2VpZ2h0ZWQgYWxpYXMgcmVzb3VyY2UgcmVjb3JkIHNldHM8L2I+XG4gICAqXG4gICAqIEBwYXJhbSByZWNvcmRTZXQgVGhlIFJvdXRlNTMgUmVjb3JkU2V0IHRvIGNvbmZpZ3VyZSBmYWlsb3ZlclxuICAgKiBAcGFyYW0gZXZhbHVhdGVUYXJnZXRIZWFsdGggSW5oZXJpdCB0aGUgaGVhbHRoIG9mIHRoZSByZWZlcmVuY2VkIEFsaWFzIFJlY29yZFNldCBUYXJnZXRcbiAgICogQHBhcmFtIGZhaWxvdmVyIFNldHMgYFBSSU1BUllgIG9yIGBTRUNPTkRBUllgIGFzIHRoZSB2YWx1ZSBmb3IgYEZhaWxvdmVyYCBvbiB0aGUgZ2l2ZW4gUmVjb3JkU2V0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXJvdXRlNTMtYWxpYXN0YXJnZXQuaHRtbCNjZm4tcm91dGU1My1hbGlhc3RhcmdldC1ldmFsdWF0ZXRhcmdldGhlYWx0aFxuICAgKi9cbiAgZmFpbG92ZXIocmVjb3JkU2V0OiBSZWNvcmRTZXQsIGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbiwgZmFpbG92ZXI/OiBGYWlsb3Zlcik6IHZvaWQ7XG4gIC8qKlxuICAgKiBTZXRzIGBQUklNQVJZYCBhcyB0aGUgdmFsdWUgZm9yIGBGYWlsb3ZlcmAgb24gdGhlIGdpdmVuIFJlY29yZFNldC4gQWRkaXRpb25hbGx5LCBzZXRzIGB0aGlzLmhlYWx0aENoZWNrSWRgIGFzIHRoZSB2YWx1ZSBmb3IgYEhlYWx0aENoZWNrSWRgLlxuICAgKlxuICAgKiA8Yj5BcHBsaWVzIG9ubHkgdG8gYWxpYXMsIGZhaWxvdmVyIGFsaWFzLCBnZW9sb2NhdGlvbiBhbGlhcywgbGF0ZW5jeSBhbGlhcywgYW5kIHdlaWdodGVkIGFsaWFzIHJlc291cmNlIHJlY29yZCBzZXRzPC9iPlxuICAgKlxuICAgKiBAcGFyYW0gcmVjb3JkU2V0IFRoZSBSb3V0ZTUzIFJlY29yZFNldCB0byBjb25maWd1cmUgZmFpbG92ZXJcbiAgICogQHBhcmFtIGV2YWx1YXRlVGFyZ2V0SGVhbHRoIEluaGVyaXQgdGhlIGhlYWx0aCBvZiB0aGUgcmVmZXJlbmNlZCBBbGlhcyBSZWNvcmRTZXQgVGFyZ2V0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcm91dGU1My1hbGlhc3RhcmdldC5odG1sI2Nmbi1yb3V0ZTUzLWFsaWFzdGFyZ2V0LWV2YWx1YXRldGFyZ2V0aGVhbHRoXG4gICAqL1xuICBmYWlsb3ZlclByaW1hcnkocmVjb3JkU2V0OiByb3V0ZTUzLlJlY29yZFNldCwgZXZhbHVhdGVUYXJnZXRIZWFsdGg/OiBib29sZWFuKTogdm9pZDtcbiAgLyoqXG4gICAqIFNldHMgYFBSSU1BUllgIGFzIHRoZSB2YWx1ZSBmb3IgYEZhaWxvdmVyYCBvbiB0aGUgZ2l2ZW4gUmVjb3JkU2V0LiBBZGRpdGlvbmFsbHksIHNldHMgYHRoaXMuaGVhbHRoQ2hlY2tJZGAgYXMgdGhlIHZhbHVlIGZvciBgSGVhbHRoQ2hlY2tJZGAuXG4gICAqXG4gICAqIDxiPkFwcGxpZXMgb25seSB0byBhbGlhcywgZmFpbG92ZXIgYWxpYXMsIGdlb2xvY2F0aW9uIGFsaWFzLCBsYXRlbmN5IGFsaWFzLCBhbmQgd2VpZ2h0ZWQgYWxpYXMgcmVzb3VyY2UgcmVjb3JkIHNldHM8L2I+XG4gICAqXG4gICAqIEBwYXJhbSByZWNvcmRTZXQgVGhlIFJvdXRlNTMgUmVjb3JkU2V0IHRvIGNvbmZpZ3VyZSBmYWlsb3ZlclxuICAgKiBAcGFyYW0gZXZhbHVhdGVUYXJnZXRIZWFsdGggSW5oZXJpdCB0aGUgaGVhbHRoIG9mIHRoZSByZWZlcmVuY2VkIEFsaWFzIFJlY29yZFNldCBUYXJnZXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yb3V0ZTUzLWFsaWFzdGFyZ2V0Lmh0bWwjY2ZuLXJvdXRlNTMtYWxpYXN0YXJnZXQtZXZhbHVhdGV0YXJnZXRoZWFsdGhcbiAgICovXG4gIGZhaWxvdmVyU2Vjb25kYXJ5KHJlY29yZFNldDogcm91dGU1My5SZWNvcmRTZXQsIGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBIZWFsdGhDaGVjay5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJvdXRlNTMgaGVhbHRoIGNoZWNrZXJzIHJlcG9ydCB0aGF0IHRoZSBIZWFsdGhDaGVjayBpcyBoZWFsdGh5IG9yIHVuaGVhbHRoeS5cbiAgICovXG4gIG1ldHJpY0hlYWx0aENoZWNrU3RhdHVzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIZWFsdGhDaGVja0Jhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElIZWFsdGhDaGVjaywgSVRhZ2dhYmxlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBSb3V0ZTUzIEhlYWx0aENoZWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSGVhbHRoQ2hlY2tJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBoZWFsdGhDaGVja0lkOiBzdHJpbmcpOiBJSGVhbHRoQ2hlY2sge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIEltcG9ydGVkIGV4dGVuZHMgSGVhbHRoQ2hlY2tCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBoZWFsdGhDaGVja0lkID0gaGVhbHRoQ2hlY2tJZDtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgaGVhbHRoQ2hlY2tJZDogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHRhZ3MgPSBuZXcgVGFnTWFuYWdlcihUYWdUeXBlLlNUQU5EQVJELCBcIkFXUzo6Um91dGU1Mzo6SGVhbHRoQ2hlY2tcIik7XG5cbiAgZmFpbG92ZXIocmVjb3JkU2V0OiBSZWNvcmRTZXQsIGV2YWx1YXRlVGFyZ2V0SGVhbHRoPzogYm9vbGVhbiwgZmFpbG92ZXI/OiBGYWlsb3Zlcikge1xuICAgIGNvbnN0IHJlc291cmNlID0gcmVjb3JkU2V0Lm5vZGUuZGVmYXVsdENoaWxkO1xuXG4gICAgaWYgKCEocmVzb3VyY2UgaW5zdGFuY2VvZiByb3V0ZTUzLkNmblJlY29yZFNldCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVjb3JkU2V0ICR7cmVjb3JkU2V0Lm5vZGUucGF0aH0gZG9lc24ndCBoYXZlIGEgZGVmYXVsdCBjaGlsZCBvZiB0eXBlIENmblJlY29yZFNldGApO1xuICAgIH1cblxuICAgIHJlc291cmNlLmhlYWx0aENoZWNrSWQgPSB0aGlzLmhlYWx0aENoZWNrSWQ7XG5cbiAgICBpZiAoZmFpbG92ZXIpIHtcbiAgICAgIHJlc291cmNlLmZhaWxvdmVyID0gZmFpbG92ZXI7XG4gICAgfVxuXG4gICAgaWYgKGV2YWx1YXRlVGFyZ2V0SGVhbHRoKSB7XG4gICAgICByZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKFwiQWxpYXNUYXJnZXQuRXZhbHVhdGVUYXJnZXRIZWFsdGhcIiwgZXZhbHVhdGVUYXJnZXRIZWFsdGgpO1xuICAgIH1cbiAgfVxuXG4gIGZhaWxvdmVyUHJpbWFyeShyZWNvcmRTZXQ6IHJvdXRlNTMuUmVjb3JkU2V0LCBldmFsdWF0ZVRhcmdldEhlYWx0aD86IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZhaWxvdmVyKHJlY29yZFNldCwgZXZhbHVhdGVUYXJnZXRIZWFsdGgsIEZhaWxvdmVyLlBSSU1BUlkpO1xuICB9XG5cbiAgZmFpbG92ZXJTZWNvbmRhcnkocmVjb3JkU2V0OiByb3V0ZTUzLlJlY29yZFNldCwgZXZhbHVhdGVUYXJnZXRIZWFsdGg/OiBib29sZWFuKSB7XG4gICAgdGhpcy5mYWlsb3ZlcihyZWNvcmRTZXQsIGV2YWx1YXRlVGFyZ2V0SGVhbHRoLCBGYWlsb3Zlci5TRUNPTkRBUlkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIEhlYWx0aENoZWNrLlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JvdXRlNTNcIixcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7IEhlYWx0aENoZWNrSWQ6IHRoaXMuaGVhbHRoQ2hlY2tJZCB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSkuYXR0YWNoVG8odGhpcyk7XG4gIH1cbiAgLyoqXG4gICAqIFJvdXRlNTMgaGVhbHRoIGNoZWNrZXJzIHJlcG9ydCB0aGF0IHRoZSBIZWFsdGhDaGVjayBpcyBoZWFsdGh5IG9yIHVuaGVhbHRoeS5cbiAgICovXG4gIG1ldHJpY0hlYWx0aENoZWNrU3RhdHVzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYyhcIkhlYWx0aENoZWNrU3RhdHVzXCIsIHsgc3RhdGlzdGljOiBjbG91ZHdhdGNoLlN0YXRpc3RpYy5NSU5JTVVNLCAuLi5wcm9wcyB9KTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBGYWlsb3ZlciB7XG4gIC8qKlxuICAgKiBUaGUgcHJpbWFyeSByZWNvcmQgc2V0XG4gICAqL1xuICBQUklNQVJZID0gXCJQUklNQVJZXCIsXG4gIC8qKlxuICAgKiBUaGUgc2Vjb25kYXJ5IHJlY29yZCBzZXRcbiAgICovXG4gIFNFQ09OREFSWSA9IFwiU0VDT05EQVJZXCIsXG59XG4iXX0=