Socket
Socket
Sign inDemoInstall

@aws-cdk/aws-events

Package Overview
Dependencies
Maintainers
4
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-events - npm Package Compare versions

Comparing version 0.9.1 to 0.9.2

3

lib/event-pattern.d.ts

@@ -1,2 +0,1 @@

import { Arn } from "@aws-cdk/cdk";
/**

@@ -86,3 +85,3 @@ * Events in Amazon CloudWatch Events are represented as JSON objects. For more

*/
resources?: Arn[];
resources?: string[];
/**

@@ -89,0 +88,0 @@ * A JSON object, whose content is at the discretion of the service

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2ZW50LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFybiB9IGZyb20gXCJAYXdzLWNkay9jZGtcIjtcblxuLyoqXG4gKiBFdmVudHMgaW4gQW1hem9uIENsb3VkV2F0Y2ggRXZlbnRzIGFyZSByZXByZXNlbnRlZCBhcyBKU09OIG9iamVjdHMuIEZvciBtb3JlXG4gKiBpbmZvcm1hdGlvbiBhYm91dCBKU09OIG9iamVjdHMsIHNlZSBSRkMgNzE1OS5cbiAqXG4gKiBSdWxlcyB1c2UgZXZlbnQgcGF0dGVybnMgdG8gc2VsZWN0IGV2ZW50cyBhbmQgcm91dGUgdGhlbSB0byB0YXJnZXRzLiBBXG4gKiBwYXR0ZXJuIGVpdGhlciBtYXRjaGVzIGFuIGV2ZW50IG9yIGl0IGRvZXNuJ3QuIEV2ZW50IHBhdHRlcm5zIGFyZSByZXByZXNlbnRlZFxuICogYXMgSlNPTiBvYmplY3RzIHdpdGggYSBzdHJ1Y3R1cmUgdGhhdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgZXZlbnRzLCBmb3JcbiAqIGV4YW1wbGU6XG4gKlxuICogSXQgaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRoZSBmb2xsb3dpbmcgYWJvdXQgZXZlbnQgcGF0dGVybiBtYXRjaGluZzpcbiAqXG4gKiAtIEZvciBhIHBhdHRlcm4gdG8gbWF0Y2ggYW4gZXZlbnQsIHRoZSBldmVudCBtdXN0IGNvbnRhaW4gYWxsIHRoZSBmaWVsZCBuYW1lc1xuICogICBsaXN0ZWQgaW4gdGhlIHBhdHRlcm4uIFRoZSBmaWVsZCBuYW1lcyBtdXN0IGFwcGVhciBpbiB0aGUgZXZlbnQgd2l0aCB0aGVcbiAqICAgc2FtZSBuZXN0aW5nIHN0cnVjdHVyZS5cbiAqXG4gKiAtIE90aGVyIGZpZWxkcyBvZiB0aGUgZXZlbnQgbm90IG1lbnRpb25lZCBpbiB0aGUgcGF0dGVybiBhcmUgaWdub3JlZDtcbiAqICAgZWZmZWN0aXZlbHksIHRoZXJlIGlzIGEgYGBcIipcIjogXCIqXCJgYCB3aWxkY2FyZCBmb3IgZmllbGRzIG5vdCBtZW50aW9uZWQuXG4gKlxuICogLSBUaGUgbWF0Y2hpbmcgaXMgZXhhY3QgKGNoYXJhY3Rlci1ieS1jaGFyYWN0ZXIpLCB3aXRob3V0IGNhc2UtZm9sZGluZyBvciBhbnlcbiAqICAgb3RoZXIgc3RyaW5nIG5vcm1hbGl6YXRpb24uXG4gKlxuICogLSBUaGUgdmFsdWVzIGJlaW5nIG1hdGNoZWQgZm9sbG93IEpTT04gcnVsZXM6IFN0cmluZ3MgZW5jbG9zZWQgaW4gcXVvdGVzLFxuICogICBudW1iZXJzLCBhbmQgdGhlIHVucXVvdGVkIGtleXdvcmRzIHRydWUsIGZhbHNlLCBhbmQgbnVsbC5cbiAqXG4gKiAtIE51bWJlciBtYXRjaGluZyBpcyBhdCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGxldmVsLiBGb3IgZXhhbXBsZSwgMzAwLFxuICogICAzMDAuMCwgYW5kIDMuMGUyIGFyZSBub3QgY29uc2lkZXJlZCBlcXVhbC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvQ2xvdWRXYXRjaEV2ZW50c2FuZEV2ZW50UGF0dGVybnMuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UGF0dGVybiB7XG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyBzZXQgdG8gMCAoemVybykgaW4gYWxsIGV2ZW50cy5cbiAgICAgKi9cbiAgICB2ZXJzaW9uPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBBIHVuaXF1ZSB2YWx1ZSBpcyBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IGV2ZW50LiBUaGlzIGNhbiBiZSBoZWxwZnVsIGluXG4gICAgICogdHJhY2luZyBldmVudHMgYXMgdGhleSBtb3ZlIHRocm91Z2ggcnVsZXMgdG8gdGFyZ2V0cywgYW5kIGFyZSBwcm9jZXNzZWQuXG4gICAgICovXG4gICAgaWQ/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXMsIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIHNvdXJjZSBmaWVsZCwgdGhlIGZpZWxkcyBhbmQgdmFsdWVzXG4gICAgICogdGhhdCBhcHBlYXIgaW4gdGhlIGRldGFpbCBmaWVsZC5cbiAgICAgKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIFwiZGV0YWlsLXR5cGVcIiBldmVudCBmaWVsZC5cbiAgICAgKi9cbiAgICBkZXRhaWxUeXBlPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVzIHRoZSBzZXJ2aWNlIHRoYXQgc291cmNlZCB0aGUgZXZlbnQuIEFsbCBldmVudHMgc291cmNlZCBmcm9tXG4gICAgICogd2l0aGluIEFXUyBiZWdpbiB3aXRoIFwiYXdzLlwiIEN1c3RvbWVyLWdlbmVyYXRlZCBldmVudHMgY2FuIGhhdmUgYW55IHZhbHVlXG4gICAgICogaGVyZSwgYXMgbG9uZyBhcyBpdCBkb2Vzbid0IGJlZ2luIHdpdGggXCJhd3MuXCIgV2UgcmVjb21tZW5kIHRoZSB1c2Ugb2ZcbiAgICAgKiBKYXZhIHBhY2thZ2UtbmFtZSBzdHlsZSByZXZlcnNlIGRvbWFpbi1uYW1lIHN0cmluZ3MuXG4gICAgICpcbiAgICAgKiBUbyBmaW5kIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzb3VyY2UgZm9yIGFuIEFXUyBzZXJ2aWNlLCBzZWUgdGhlIHRhYmxlIGluXG4gICAgICogQVdTIFNlcnZpY2UgTmFtZXNwYWNlcy4gRm9yIGV4YW1wbGUsIHRoZSBzb3VyY2UgdmFsdWUgZm9yIEFtYXpvblxuICAgICAqIENsb3VkRnJvbnQgaXMgYXdzLmNsb3VkZnJvbnQuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL2F3cy1hcm5zLWFuZC1uYW1lc3BhY2VzLmh0bWwjZ2VucmVmLWF3cy1zZXJ2aWNlLW5hbWVzcGFjZXNcbiAgICAgKi9cbiAgICBzb3VyY2U/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSAxMi1kaWdpdCBudW1iZXIgaWRlbnRpZnlpbmcgYW4gQVdTIGFjY291bnQuXG4gICAgICovXG4gICAgYWNjb3VudD86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGV2ZW50IHRpbWVzdGFtcCwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgc2VydmljZSBvcmlnaW5hdGluZ1xuICAgICAqIHRoZSBldmVudC4gSWYgdGhlIGV2ZW50IHNwYW5zIGEgdGltZSBpbnRlcnZhbCwgdGhlIHNlcnZpY2UgbWlnaHQgY2hvb3NlXG4gICAgICogdG8gcmVwb3J0IHRoZSBzdGFydCB0aW1lLCBzbyB0aGlzIHZhbHVlIGNhbiBiZSBub3RpY2VhYmx5IGJlZm9yZSB0aGUgdGltZVxuICAgICAqIHRoZSBldmVudCBpcyBhY3R1YWxseSByZWNlaXZlZC5cbiAgICAgKi9cbiAgICB0aW1lPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVzIHRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLlxuICAgICAqL1xuICAgIHJlZ2lvbj86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBKU09OIGFycmF5IGNvbnRhaW5zIEFSTnMgdGhhdCBpZGVudGlmeSByZXNvdXJjZXMgdGhhdCBhcmUgaW52b2x2ZWRcbiAgICAgKiBpbiB0aGUgZXZlbnQuIEluY2x1c2lvbiBvZiB0aGVzZSBBUk5zIGlzIGF0IHRoZSBkaXNjcmV0aW9uIG9mIHRoZVxuICAgICAqIHNlcnZpY2UuXG4gICAgICpcbiAgICAgKiBGb3IgZXhhbXBsZSwgQW1hem9uIEVDMiBpbnN0YW5jZSBzdGF0ZS1jaGFuZ2VzIGluY2x1ZGUgQW1hem9uIEVDMlxuICAgICAqIGluc3RhbmNlIEFSTnMsIEF1dG8gU2NhbGluZyBldmVudHMgaW5jbHVkZSBBUk5zIGZvciBib3RoIGluc3RhbmNlcyBhbmRcbiAgICAgKiBBdXRvIFNjYWxpbmcgZ3JvdXBzLCBidXQgQVBJIGNhbGxzIHdpdGggQVdTIENsb3VkVHJhaWwgZG8gbm90IGluY2x1ZGVcbiAgICAgKiByZXNvdXJjZSBBUk5zLlxuICAgICAqL1xuICAgIHJlc291cmNlcz86IEFybltdO1xuXG4gICAgLyoqXG4gICAgICogQSBKU09OIG9iamVjdCwgd2hvc2UgY29udGVudCBpcyBhdCB0aGUgZGlzY3JldGlvbiBvZiB0aGUgc2VydmljZVxuICAgICAqIG9yaWdpbmF0aW5nIHRoZSBldmVudC5cbiAgICAgKi9cbiAgICBkZXRhaWw/OiBhbnk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2ZW50LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXZlbnRzIGluIEFtYXpvbiBDbG91ZFdhdGNoIEV2ZW50cyBhcmUgcmVwcmVzZW50ZWQgYXMgSlNPTiBvYmplY3RzLiBGb3IgbW9yZVxuICogaW5mb3JtYXRpb24gYWJvdXQgSlNPTiBvYmplY3RzLCBzZWUgUkZDIDcxNTkuXG4gKlxuICogUnVsZXMgdXNlIGV2ZW50IHBhdHRlcm5zIHRvIHNlbGVjdCBldmVudHMgYW5kIHJvdXRlIHRoZW0gdG8gdGFyZ2V0cy4gQVxuICogcGF0dGVybiBlaXRoZXIgbWF0Y2hlcyBhbiBldmVudCBvciBpdCBkb2Vzbid0LiBFdmVudCBwYXR0ZXJucyBhcmUgcmVwcmVzZW50ZWRcbiAqIGFzIEpTT04gb2JqZWN0cyB3aXRoIGEgc3RydWN0dXJlIHRoYXQgaXMgc2ltaWxhciB0byB0aGF0IG9mIGV2ZW50cywgZm9yXG4gKiBleGFtcGxlOlxuICpcbiAqIEl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGUgZm9sbG93aW5nIGFib3V0IGV2ZW50IHBhdHRlcm4gbWF0Y2hpbmc6XG4gKlxuICogLSBGb3IgYSBwYXR0ZXJuIHRvIG1hdGNoIGFuIGV2ZW50LCB0aGUgZXZlbnQgbXVzdCBjb250YWluIGFsbCB0aGUgZmllbGQgbmFtZXNcbiAqICAgbGlzdGVkIGluIHRoZSBwYXR0ZXJuLiBUaGUgZmllbGQgbmFtZXMgbXVzdCBhcHBlYXIgaW4gdGhlIGV2ZW50IHdpdGggdGhlXG4gKiAgIHNhbWUgbmVzdGluZyBzdHJ1Y3R1cmUuXG4gKlxuICogLSBPdGhlciBmaWVsZHMgb2YgdGhlIGV2ZW50IG5vdCBtZW50aW9uZWQgaW4gdGhlIHBhdHRlcm4gYXJlIGlnbm9yZWQ7XG4gKiAgIGVmZmVjdGl2ZWx5LCB0aGVyZSBpcyBhIGBgXCIqXCI6IFwiKlwiYGAgd2lsZGNhcmQgZm9yIGZpZWxkcyBub3QgbWVudGlvbmVkLlxuICpcbiAqIC0gVGhlIG1hdGNoaW5nIGlzIGV4YWN0IChjaGFyYWN0ZXItYnktY2hhcmFjdGVyKSwgd2l0aG91dCBjYXNlLWZvbGRpbmcgb3IgYW55XG4gKiAgIG90aGVyIHN0cmluZyBub3JtYWxpemF0aW9uLlxuICpcbiAqIC0gVGhlIHZhbHVlcyBiZWluZyBtYXRjaGVkIGZvbGxvdyBKU09OIHJ1bGVzOiBTdHJpbmdzIGVuY2xvc2VkIGluIHF1b3RlcyxcbiAqICAgbnVtYmVycywgYW5kIHRoZSB1bnF1b3RlZCBrZXl3b3JkcyB0cnVlLCBmYWxzZSwgYW5kIG51bGwuXG4gKlxuICogLSBOdW1iZXIgbWF0Y2hpbmcgaXMgYXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBsZXZlbC4gRm9yIGV4YW1wbGUsIDMwMCxcbiAqICAgMzAwLjAsIGFuZCAzLjBlMiBhcmUgbm90IGNvbnNpZGVyZWQgZXF1YWwuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0Nsb3VkV2F0Y2hFdmVudHNhbmRFdmVudFBhdHRlcm5zLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFBhdHRlcm4ge1xuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQsIHRoaXMgaXMgc2V0IHRvIDAgKHplcm8pIGluIGFsbCBldmVudHMuXG4gICAgICovXG4gICAgdmVyc2lvbj86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogQSB1bmlxdWUgdmFsdWUgaXMgZ2VuZXJhdGVkIGZvciBldmVyeSBldmVudC4gVGhpcyBjYW4gYmUgaGVscGZ1bCBpblxuICAgICAqIHRyYWNpbmcgZXZlbnRzIGFzIHRoZXkgbW92ZSB0aHJvdWdoIHJ1bGVzIHRvIHRhcmdldHMsIGFuZCBhcmUgcHJvY2Vzc2VkLlxuICAgICAqL1xuICAgIGlkPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVzLCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBzb3VyY2UgZmllbGQsIHRoZSBmaWVsZHMgYW5kIHZhbHVlc1xuICAgICAqIHRoYXQgYXBwZWFyIGluIHRoZSBkZXRhaWwgZmllbGQuXG4gICAgICpcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBcImRldGFpbC10eXBlXCIgZXZlbnQgZmllbGQuXG4gICAgICovXG4gICAgZGV0YWlsVHlwZT86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllcyB0aGUgc2VydmljZSB0aGF0IHNvdXJjZWQgdGhlIGV2ZW50LiBBbGwgZXZlbnRzIHNvdXJjZWQgZnJvbVxuICAgICAqIHdpdGhpbiBBV1MgYmVnaW4gd2l0aCBcImF3cy5cIiBDdXN0b21lci1nZW5lcmF0ZWQgZXZlbnRzIGNhbiBoYXZlIGFueSB2YWx1ZVxuICAgICAqIGhlcmUsIGFzIGxvbmcgYXMgaXQgZG9lc24ndCBiZWdpbiB3aXRoIFwiYXdzLlwiIFdlIHJlY29tbWVuZCB0aGUgdXNlIG9mXG4gICAgICogSmF2YSBwYWNrYWdlLW5hbWUgc3R5bGUgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogVG8gZmluZCB0aGUgY29ycmVjdCB2YWx1ZSBmb3Igc291cmNlIGZvciBhbiBBV1Mgc2VydmljZSwgc2VlIHRoZSB0YWJsZSBpblxuICAgICAqIEFXUyBTZXJ2aWNlIE5hbWVzcGFjZXMuIEZvciBleGFtcGxlLCB0aGUgc291cmNlIHZhbHVlIGZvciBBbWF6b25cbiAgICAgKiBDbG91ZEZyb250IGlzIGF3cy5jbG91ZGZyb250LlxuICAgICAqXG4gICAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nZW5lcmFsL2xhdGVzdC9nci9hd3MtYXJucy1hbmQtbmFtZXNwYWNlcy5odG1sI2dlbnJlZi1hd3Mtc2VydmljZS1uYW1lc3BhY2VzXG4gICAgICovXG4gICAgc291cmNlPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgMTItZGlnaXQgbnVtYmVyIGlkZW50aWZ5aW5nIGFuIEFXUyBhY2NvdW50LlxuICAgICAqL1xuICAgIGFjY291bnQ/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBldmVudCB0aW1lc3RhbXAsIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgYnkgdGhlIHNlcnZpY2Ugb3JpZ2luYXRpbmdcbiAgICAgKiB0aGUgZXZlbnQuIElmIHRoZSBldmVudCBzcGFucyBhIHRpbWUgaW50ZXJ2YWwsIHRoZSBzZXJ2aWNlIG1pZ2h0IGNob29zZVxuICAgICAqIHRvIHJlcG9ydCB0aGUgc3RhcnQgdGltZSwgc28gdGhpcyB2YWx1ZSBjYW4gYmUgbm90aWNlYWJseSBiZWZvcmUgdGhlIHRpbWVcbiAgICAgKiB0aGUgZXZlbnQgaXMgYWN0dWFsbHkgcmVjZWl2ZWQuXG4gICAgICovXG4gICAgdGltZT86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllcyB0aGUgQVdTIHJlZ2lvbiB3aGVyZSB0aGUgZXZlbnQgb3JpZ2luYXRlZC5cbiAgICAgKi9cbiAgICByZWdpb24/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgSlNPTiBhcnJheSBjb250YWlucyBBUk5zIHRoYXQgaWRlbnRpZnkgcmVzb3VyY2VzIHRoYXQgYXJlIGludm9sdmVkXG4gICAgICogaW4gdGhlIGV2ZW50LiBJbmNsdXNpb24gb2YgdGhlc2UgQVJOcyBpcyBhdCB0aGUgZGlzY3JldGlvbiBvZiB0aGVcbiAgICAgKiBzZXJ2aWNlLlxuICAgICAqXG4gICAgICogRm9yIGV4YW1wbGUsIEFtYXpvbiBFQzIgaW5zdGFuY2Ugc3RhdGUtY2hhbmdlcyBpbmNsdWRlIEFtYXpvbiBFQzJcbiAgICAgKiBpbnN0YW5jZSBBUk5zLCBBdXRvIFNjYWxpbmcgZXZlbnRzIGluY2x1ZGUgQVJOcyBmb3IgYm90aCBpbnN0YW5jZXMgYW5kXG4gICAgICogQXV0byBTY2FsaW5nIGdyb3VwcywgYnV0IEFQSSBjYWxscyB3aXRoIEFXUyBDbG91ZFRyYWlsIGRvIG5vdCBpbmNsdWRlXG4gICAgICogcmVzb3VyY2UgQVJOcy5cbiAgICAgKi9cbiAgICByZXNvdXJjZXM/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgSlNPTiBvYmplY3QsIHdob3NlIGNvbnRlbnQgaXMgYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIHNlcnZpY2VcbiAgICAgKiBvcmlnaW5hdGluZyB0aGUgZXZlbnQuXG4gICAgICovXG4gICAgZGV0YWlsPzogYW55O1xufVxuIl19

@@ -54,4 +54,4 @@ import cdk = require('@aws-cdk/cdk');

*/
readonly ruleArn: RuleArn;
readonly ref: RuleId;
readonly ruleArn: string;
readonly ruleId: string;
/**

@@ -199,7 +199,1 @@ * Creates a new ``AWS::Events::Rule``.

}
export declare class RuleArn extends cdk.Arn {
private readonly thisIsARuleArn;
}
export declare class RuleId extends cdk.CloudFormationToken {
private readonly thisIsARuleId;
}

@@ -5,3 +5,3 @@ "use strict";

// See: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
// @cfn2ts:meta@ {"generated":"2018-09-14T09:07:37.171Z","fingerprint":"9TGwlUo7sAgOtIKTlyaN8UNXizftP4yaXBzqFXpuejk="}
// @cfn2ts:meta@ {"generated":"2018-09-20T12:54:36.707Z","fingerprint":"9TGwlUo7sAgOtIKTlyaN8UNXizftP4yaXBzqFXpuejk="}
Object.defineProperty(exports, "__esModule", { value: true });

@@ -68,4 +68,4 @@ // tslint:disable:max-line-length | This is generated code - line lengths are difficult to control

super(parent, name, { type: RuleResource.resourceTypeName, properties });
this.ruleArn = new RuleArn(this.getAtt('Arn'));
this.ref = new RuleId({ Ref: this.logicalId }, `${this.logicalId}.Ref`);
this.ruleArn = this.getAtt('Arn').toString();
this.ruleId = this.ref.toString();
}

@@ -298,18 +298,2 @@ renderProperties() {

})(cloudformation = exports.cloudformation || (exports.cloudformation = {}));
class RuleArn extends cdk.Arn {
constructor() {
super(...arguments);
// @ts-ignore: private but unused on purpose.
this.thisIsARuleArn = true;
}
}
exports.RuleArn = RuleArn;
class RuleId extends cdk.CloudFormationToken {
constructor() {
super(...arguments);
// @ts-ignore: private but unused on purpose.
this.thisIsARuleId = true;
}
}
exports.RuleId = RuleId;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2ZW50cy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtFQUErRTtBQUMvRSwrREFBK0Q7QUFDL0QsOEZBQThGO0FBQzlGLHNIQUFzSDs7QUFFdEgsa0dBQWtHO0FBRWxHLG9DQUFxQztBQUVyQyxJQUFpQixjQUFjLENBb2M5QjtBQXBjRCxXQUFpQixjQUFjO0lBMEMzQjs7Ozs7O09BTUc7SUFDSCxTQUFTLDBCQUEwQixDQUFDLFVBQWU7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUFFO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN6RixNQUFNLENBQUMsT0FBTyxDQUFDLEdB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LEVBQUUsd0RBQXdELENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDO1NBQ2xILENBQUM7SUFDTixDQUFDO0FBQ0wsQ0FBQyxFQXBjZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvYzlCO0FBRUQsTUFBYSxPQUFRLFNBQVEsR0FBRyxDQUFDLEdBQUc7SUFBcEM7O1FBQ0ksNkNBQTZDO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzNDLENBQUM7Q0FBQTtBQUhELDBCQUdDO0FBRUQsTUFBYSxNQUFPLFNBQVEsR0FBRyxDQUFDLG1CQUFtQjtJQUFuRDs7UUFDSSw2Q0FBNkM7UUFDNUIsa0JBQWEsR0FBRyxJQUFJLENBQUM7SUFDMUMsQ0FBQztDQUFBO0FBSEQsd0JBR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAxMi0yMDE4IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIFJlc291cmNlIFNwZWNpZmljYXRpb25cbi8vIFNlZTogZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2Nmbi1yZXNvdXJjZS1zcGVjaWZpY2F0aW9uLmh0bWxcbi8vIEBjZm4ydHM6bWV0YUAge1wiZ2VuZXJhdGVkXCI6XCIyMDE4LTA5LTE0VDA5OjA3OjM3LjE3MVpcIixcImZpbmdlcnByaW50XCI6XCI5VEd3bFVvN3NBZ090SUtUbHlhTjhVTlhpemZ0UDR5YVhCenFGWHB1ZWprPVwifVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggfCBUaGlzIGlzIGdlbmVyYXRlZCBjb2RlIC0gbGluZSBsZW5ndGhzIGFyZSBkaWZmaWN1bHQgdG8gY29udHJvbFxuXG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5cbmV4cG9ydCBuYW1lc3BhY2UgY2xvdWRmb3JtYXRpb24ge1xuICAgIC8qKlxuICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ydWxlLmh0bWxcbiAgICAgKi9cbiAgICBleHBvcnQgaW50ZXJmYWNlIFJ1bGVSZXNvdXJjZVByb3BzIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpFdmVudHM6OlJ1bGUuRGVzY3JpcHRpb25gYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sI2Nmbi1ldmVudHMtcnVsZS1kZXNjcmlwdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpFdmVudHM6OlJ1bGUuRXZlbnRQYXR0ZXJuYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLXJ1bGUuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtZXZlbnRwYXR0ZXJuXG4gICAgICAgICAqL1xuICAgICAgICBldmVudFBhdHRlcm4/OiBvYmplY3QgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGBgQVdTOjpFdmVudHM6OlJ1bGUuTmFtZWBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ydWxlLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLW5hbWVcbiAgICAgICAgICovXG4gICAgICAgIHJ1bGVOYW1lPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLlJvbGVBcm5gYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sI2Nmbi1ldmVudHMtcnVsZS1yb2xlYXJuXG4gICAgICAgICAqL1xuICAgICAgICByb2xlQXJuPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLlNjaGVkdWxlRXhwcmVzc2lvbmBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ydWxlLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXNjaGVkdWxlZXhwcmVzc2lvblxuICAgICAgICAgKi9cbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLlN0YXRlYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLXJ1bGUuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtc3RhdGVcbiAgICAgICAgICovXG4gICAgICAgIHN0YXRlPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLlRhcmdldHNgYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sI2Nmbi1ldmVudHMtcnVsZS10YXJnZXRzXG4gICAgICAgICAqL1xuICAgICAgICB0YXJnZXRzPzogQXJyYXk8UnVsZVJlc291cmNlLlRhcmdldFByb3BlcnR5IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW4+IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgYFJ1bGVSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFJ1bGVSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdkZXNjcmlwdGlvbicsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5kZXNjcmlwdGlvbikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2V2ZW50UGF0dGVybicsIGNkay52YWxpZGF0ZU9iamVjdCkocHJvcGVydGllcy5ldmVudFBhdHRlcm4pKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdydWxlTmFtZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5ydWxlTmFtZSkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3JvbGVBcm4nLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucm9sZUFybikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3NjaGVkdWxlRXhwcmVzc2lvbicsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5zY2hlZHVsZUV4cHJlc3Npb24pKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdzdGF0ZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5zdGF0ZSkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3RhcmdldHMnLCBjZGsubGlzdFZhbGlkYXRvcihSdWxlUmVzb3VyY2VfVGFyZ2V0UHJvcGVydHlWYWxpZGF0b3IpKShwcm9wZXJ0aWVzLnRhcmdldHMpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJ1bGVSZXNvdXJjZVByb3BzXCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlYGAgcmVzb3VyY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFJ1bGVSZXNvdXJjZVByb3BzYGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcnVsZVJlc291cmNlUHJvcHNUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXM6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICAgICAgUnVsZVJlc291cmNlUHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgRGVzY3JpcHRpb246IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuZGVzY3JpcHRpb24pLFxuICAgICAgICAgICAgRXZlbnRQYXR0ZXJuOiBjZGsub2JqZWN0VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmV2ZW50UGF0dGVybiksXG4gICAgICAgICAgICBOYW1lOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnJ1bGVOYW1lKSxcbiAgICAgICAgICAgIFJvbGVBcm46IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMucm9sZUFybiksXG4gICAgICAgICAgICBTY2hlZHVsZUV4cHJlc3Npb246IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuc2NoZWR1bGVFeHByZXNzaW9uKSxcbiAgICAgICAgICAgIFN0YXRlOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnN0YXRlKSxcbiAgICAgICAgICAgIFRhcmdldHM6IGNkay5saXN0TWFwcGVyKHJ1bGVSZXNvdXJjZVRhcmdldFByb3BlcnR5VG9DbG91ZEZvcm1hdGlvbikocHJvcGVydGllcy50YXJnZXRzKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGNsYXNzIFJ1bGVSZXNvdXJjZSBleHRlbmRzIGNkay5SZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgICAgICAgKi9cbiAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZXNvdXJjZVR5cGVOYW1lID0gXCJBV1M6OkV2ZW50czo6UnVsZVwiO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAY2xvdWRmb3JtYXRpb25fYXR0cmlidXRlIEFyblxuICAgICAgICAgKi9cbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHJ1bGVBcm46IFJ1bGVBcm47XG4gICAgICAgIHB1YmxpYyByZWFkb25seSByZWY6IFJ1bGVJZDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBgYEFXUzo6RXZlbnRzOjpSdWxlYGAuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBwYXJlbnQgICAgIHRoZSBgYGNkay5Db25zdHJ1Y3RgYCB0aGlzIGBgUnVsZVJlc291cmNlYGAgaXMgYSBwYXJ0IG9mXG4gICAgICAgICAqIEBwYXJhbSBuYW1lICAgICAgIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdHJlZVxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGBgUnVsZVJlc291cmNlYGBcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wZXJ0aWVzPzogUnVsZVJlc291cmNlUHJvcHMpIHtcbiAgICAgICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSwgeyB0eXBlOiBSdWxlUmVzb3VyY2UucmVzb3VyY2VUeXBlTmFtZSwgcHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIHRoaXMucnVsZUFybiA9IG5ldyBSdWxlQXJuKHRoaXMuZ2V0QXR0KCdBcm4nKSk7XG4gICAgICAgICAgICB0aGlzLnJlZiA9IG5ldyBSdWxlSWQoeyBSZWY6IHRoaXMubG9naWNhbElkIH0sIGAke3RoaXMubG9naWNhbElkfS5SZWZgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgICAgIHJldHVybiBydWxlUmVzb3VyY2VQcm9wc1RvQ2xvdWRGb3JtYXRpb24oY2RrLnJlc29sdmUodGhpcy5wcm9wZXJ0aWVzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgbmFtZXNwYWNlIFJ1bGVSZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLWVjc3BhcmFtZXRlcnMuaHRtbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGludGVyZmFjZSBFY3NQYXJhbWV0ZXJzUHJvcGVydHkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5FY3NQYXJhbWV0ZXJzUHJvcGVydHkuVGFza0NvdW50YGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtZWNzcGFyYW1ldGVycy5odG1sI2Nmbi1ldmVudHMtcnVsZS1lY3NwYXJhbWV0ZXJzLXRhc2tjb3VudFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0YXNrQ291bnQ/OiBudW1iZXIgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuRWNzUGFyYW1ldGVyc1Byb3BlcnR5LlRhc2tEZWZpbml0aW9uQXJuYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtZWNzcGFyYW1ldGVycy5odG1sI2Nmbi1ldmVudHMtcnVsZS1lY3NwYXJhbWV0ZXJzLXRhc2tkZWZpbml0aW9uYXJuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRhc2tEZWZpbml0aW9uQXJuOiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBFY3NQYXJhbWV0ZXJzUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgRWNzUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlX0Vjc1BhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Rhc2tDb3VudCcsIGNkay52YWxpZGF0ZU51bWJlcikocHJvcGVydGllcy50YXNrQ291bnQpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCd0YXNrRGVmaW5pdGlvbkFybicsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy50YXNrRGVmaW5pdGlvbkFybikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Rhc2tEZWZpbml0aW9uQXJuJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnRhc2tEZWZpbml0aW9uQXJuKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJFY3NQYXJhbWV0ZXJzUHJvcGVydHlcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuRWNzUGFyYW1ldGVyc2BgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBFY3NQYXJhbWV0ZXJzUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuRWNzUGFyYW1ldGVyc2BgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZUVjc1BhcmFtZXRlcnNQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBSdWxlUmVzb3VyY2VfRWNzUGFyYW1ldGVyc1Byb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFRhc2tDb3VudDogY2RrLm51bWJlclRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy50YXNrQ291bnQpLFxuICAgICAgICAgICAgVGFza0RlZmluaXRpb25Bcm46IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMudGFza0RlZmluaXRpb25Bcm4pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgUnVsZVJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtaW5wdXR0cmFuc2Zvcm1lci5odG1sXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgaW50ZXJmYWNlIElucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLklucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eS5JbnB1dFBhdGhzTWFwYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtaW5wdXR0cmFuc2Zvcm1lci5odG1sI2Nmbi1ldmVudHMtcnVsZS1pbnB1dHRyYW5zZm9ybWVyLWlucHV0cGF0aHNtYXBcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaW5wdXRQYXRoc01hcD86IHsgW2tleTogc3RyaW5nXTogKHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuKSB9IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLklucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eS5JbnB1dFRlbXBsYXRlYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtaW5wdXR0cmFuc2Zvcm1lci5odG1sI2Nmbi1ldmVudHMtcnVsZS1pbnB1dHRyYW5zZm9ybWVyLWlucHV0dGVtcGxhdGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaW5wdXRUZW1wbGF0ZTogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYElucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFJ1bGVSZXNvdXJjZV9JbnB1dFRyYW5zZm9ybWVyUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdpbnB1dFBhdGhzTWFwJywgY2RrLmhhc2hWYWxpZGF0b3IoY2RrLnZhbGlkYXRlU3RyaW5nKSkocHJvcGVydGllcy5pbnB1dFBhdGhzTWFwKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignaW5wdXRUZW1wbGF0ZScsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5pbnB1dFRlbXBsYXRlKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignaW5wdXRUZW1wbGF0ZScsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5pbnB1dFRlbXBsYXRlKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJJbnB1dFRyYW5zZm9ybWVyUHJvcGVydHlcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuSW5wdXRUcmFuc2Zvcm1lcmBgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBJbnB1dFRyYW5zZm9ybWVyUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuSW5wdXRUcmFuc2Zvcm1lcmBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZUlucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBSdWxlUmVzb3VyY2VfSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIElucHV0UGF0aHNNYXA6IGNkay5oYXNoTWFwcGVyKGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKShwcm9wZXJ0aWVzLmlucHV0UGF0aHNNYXApLFxuICAgICAgICAgICAgSW5wdXRUZW1wbGF0ZTogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5pbnB1dFRlbXBsYXRlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgbmFtZXNwYWNlIFJ1bGVSZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLWtpbmVzaXNwYXJhbWV0ZXJzLmh0bWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLktpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHkuUGFydGl0aW9uS2V5UGF0aGBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLWtpbmVzaXNwYXJhbWV0ZXJzLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLWtpbmVzaXNwYXJhbWV0ZXJzLXBhcnRpdGlvbmtleXBhdGhcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcGFydGl0aW9uS2V5UGF0aDogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBLaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlX0tpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdwYXJ0aXRpb25LZXlQYXRoJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnBhcnRpdGlvbktleVBhdGgpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdwYXJ0aXRpb25LZXlQYXRoJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnBhcnRpdGlvbktleVBhdGgpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIktpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHlcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuS2luZXNpc1BhcmFtZXRlcnNgYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5LaW5lc2lzUGFyYW1ldGVyc2BgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZUtpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXM6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICAgICAgUnVsZVJlc291cmNlX0tpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgUGFydGl0aW9uS2V5UGF0aDogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5wYXJ0aXRpb25LZXlQYXRoKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgbmFtZXNwYWNlIFJ1bGVSZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmRwYXJhbWV0ZXJzLmh0bWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBpbnRlcmZhY2UgUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlJ1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHkuUnVuQ29tbWFuZFRhcmdldHNgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1ydW5jb21tYW5kcGFyYW1ldGVycy5odG1sI2Nmbi1ldmVudHMtcnVsZS1ydW5jb21tYW5kcGFyYW1ldGVycy1ydW5jb21tYW5kdGFyZ2V0c1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBydW5Db21tYW5kVGFyZ2V0czogQXJyYXk8UnVuQ29tbWFuZFRhcmdldFByb3BlcnR5IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW4+IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBSdW5Db21tYW5kUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlX1J1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdydW5Db21tYW5kVGFyZ2V0cycsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5ydW5Db21tYW5kVGFyZ2V0cykpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3J1bkNvbW1hbmRUYXJnZXRzJywgY2RrLmxpc3RWYWxpZGF0b3IoUnVsZVJlc291cmNlX1J1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eVZhbGlkYXRvcikpKHByb3BlcnRpZXMucnVuQ29tbWFuZFRhcmdldHMpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJ1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHlcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuUnVuQ29tbWFuZFBhcmFtZXRlcnNgYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5SdW5Db21tYW5kUGFyYW1ldGVyc2BgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZVJ1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXM6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICAgICAgUnVsZVJlc291cmNlX1J1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgUnVuQ29tbWFuZFRhcmdldHM6IGNkay5saXN0TWFwcGVyKHJ1bGVSZXNvdXJjZVJ1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24pKHByb3BlcnRpZXMucnVuQ29tbWFuZFRhcmdldHMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgUnVsZVJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtcnVuY29tbWFuZHRhcmdldC5odG1sXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgaW50ZXJmYWNlIFJ1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlJ1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eS5LZXlgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1ydW5jb21tYW5kdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmR0YXJnZXQta2V5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGtleTogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlJ1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eS5WYWx1ZXNgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1ydW5jb21tYW5kdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmR0YXJnZXQtdmFsdWVzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZhbHVlczogQXJyYXk8c3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW4+IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBgUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFJ1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFJ1bGVSZXNvdXJjZV9SdW5Db21tYW5kVGFyZ2V0UHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogY2RrLlZhbGlkYXRpb25SZXN1bHQge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBjZGsuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgICAgIGNvbnN0IGVycm9ycyA9IG5ldyBjZGsuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdrZXknLCBjZGsucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMua2V5KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigna2V5JywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmtleSkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3ZhbHVlcycsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy52YWx1ZXMpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCd2YWx1ZXMnLCBjZGsubGlzdFZhbGlkYXRvcihjZGsudmFsaWRhdGVTdHJpbmcpKShwcm9wZXJ0aWVzLnZhbHVlcykpO1xuICAgICAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5XCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlLlJ1bkNvbW1hbmRUYXJnZXRgYCByZXNvdXJjZVxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlLlJ1bkNvbW1hbmRUYXJnZXRgYCByZXNvdXJjZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBydWxlUmVzb3VyY2VSdW5Db21tYW5kVGFyZ2V0UHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXM6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICAgICAgUnVsZVJlc291cmNlX1J1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBLZXk6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMua2V5KSxcbiAgICAgICAgICAgIFZhbHVlczogY2RrLmxpc3RNYXBwZXIoY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24pKHByb3BlcnRpZXMudmFsdWVzKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgbmFtZXNwYWNlIFJ1bGVSZXNvdXJjZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXRhcmdldC5odG1sXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgaW50ZXJmYWNlIFRhcmdldFByb3BlcnR5IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuQXJuYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1hcm5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXJuOiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuRWNzUGFyYW1ldGVyc2BgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXRhcmdldC5odG1sI2Nmbi1ldmVudHMtcnVsZS10YXJnZXQtZWNzcGFyYW1ldGVyc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBlY3NQYXJhbWV0ZXJzPzogRWNzUGFyYW1ldGVyc1Byb3BlcnR5IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlRhcmdldFByb3BlcnR5LklkYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1pZFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZDogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlRhcmdldFByb3BlcnR5LklucHV0YGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1pbnB1dFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbnB1dD86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eS5JbnB1dFBhdGhgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS10YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0LWlucHV0cGF0aFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbnB1dFBhdGg/OiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuSW5wdXRUcmFuc2Zvcm1lcmBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXRhcmdldC5odG1sI2Nmbi1ldmVudHMtcnVsZS10YXJnZXQtaW5wdXR0cmFuc2Zvcm1lclxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbnB1dFRyYW5zZm9ybWVyPzogSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlRhcmdldFByb3BlcnR5LktpbmVzaXNQYXJhbWV0ZXJzYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1raW5lc2lzcGFyYW1ldGVyc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBraW5lc2lzUGFyYW1ldGVycz86IEtpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuUm9sZUFybmBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXRhcmdldC5odG1sI2Nmbi1ldmVudHMtcnVsZS10YXJnZXQtcm9sZWFyblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICByb2xlQXJuPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlRhcmdldFByb3BlcnR5LlJ1bkNvbW1hbmRQYXJhbWV0ZXJzYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1ydW5jb21tYW5kcGFyYW1ldGVyc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBydW5Db21tYW5kUGFyYW1ldGVycz86IFJ1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBUYXJnZXRQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBUYXJnZXRQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFJ1bGVSZXNvdXJjZV9UYXJnZXRQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2FybicsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5hcm4pKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdhcm4nLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuYXJuKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignZWNzUGFyYW1ldGVycycsIFJ1bGVSZXNvdXJjZV9FY3NQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IpKHByb3BlcnRpZXMuZWNzUGFyYW1ldGVycykpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2lkJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLmlkKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignaWQnLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuaWQpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdpbnB1dCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5pbnB1dCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2lucHV0UGF0aCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5pbnB1dFBhdGgpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdpbnB1dFRyYW5zZm9ybWVyJywgUnVsZVJlc291cmNlX0lucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eVZhbGlkYXRvcikocHJvcGVydGllcy5pbnB1dFRyYW5zZm9ybWVyKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigna2luZXNpc1BhcmFtZXRlcnMnLCBSdWxlUmVzb3VyY2VfS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcikocHJvcGVydGllcy5raW5lc2lzUGFyYW1ldGVycykpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3JvbGVBcm4nLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucm9sZUFybikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3J1bkNvbW1hbmRQYXJhbWV0ZXJzJywgUnVsZVJlc291cmNlX1J1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IpKHByb3BlcnRpZXMucnVuQ29tbWFuZFBhcmFtZXRlcnMpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlRhcmdldFByb3BlcnR5XCInKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlLlRhcmdldGBgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBUYXJnZXRQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5UYXJnZXRgYCByZXNvdXJjZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBydWxlUmVzb3VyY2VUYXJnZXRQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBSdWxlUmVzb3VyY2VfVGFyZ2V0UHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQXJuOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmFybiksXG4gICAgICAgICAgICBFY3NQYXJhbWV0ZXJzOiBydWxlUmVzb3VyY2VFY3NQYXJhbWV0ZXJzUHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuZWNzUGFyYW1ldGVycyksXG4gICAgICAgICAgICBJZDogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5pZCksXG4gICAgICAgICAgICBJbnB1dDogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5pbnB1dCksXG4gICAgICAgICAgICBJbnB1dFBhdGg6IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuaW5wdXRQYXRoKSxcbiAgICAgICAgICAgIElucHV0VHJhbnNmb3JtZXI6IHJ1bGVSZXNvdXJjZUlucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5pbnB1dFRyYW5zZm9ybWVyKSxcbiAgICAgICAgICAgIEtpbmVzaXNQYXJhbWV0ZXJzOiBydWxlUmVzb3VyY2VLaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmtpbmVzaXNQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIFJvbGVBcm46IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMucm9sZUFybiksXG4gICAgICAgICAgICBSdW5Db21tYW5kUGFyYW1ldGVyczogcnVsZVJlc291cmNlUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5ydW5Db21tYW5kUGFyYW1ldGVycyksXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUnVsZUFybiBleHRlbmRzIGNkay5Bcm4ge1xuICAgIC8vIEB0cy1pZ25vcmU6IHByaXZhdGUgYnV0IHVudXNlZCBvbiBwdXJwb3NlLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhpc0lzQVJ1bGVBcm4gPSB0cnVlO1xufVxuXG5leHBvcnQgY2xhc3MgUnVsZUlkIGV4dGVuZHMgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW4ge1xuICAgIC8vIEB0cy1pZ25vcmU6IHByaXZhdGUgYnV0IHVudXNlZCBvbiBwdXJwb3NlLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhpc0lzQVJ1bGVJZCA9IHRydWU7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2ZW50cy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtFQUErRTtBQUMvRSwrREFBK0Q7QUFDL0QsOEZBQThGO0FBQzlGLHNIQUFzSDs7QUFFdEgsa0dBQWtHO0FBRWxHLG9DQUFxQztBQUVyQyxJQUFpQixjQUFjLENBb2M5QjtBQXBjRCxXQUFpQixjQUFjO0lBMEMzQjs7Ozs7O09BTUc7SUFDSCxTQUFTLDBCQUEwQixDQUFDLFVBQWU7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUFFO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN6RixNQUFNLENBQUMsT0FBTyxDQUFDLEdB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O0FBQ0wsQ0FBQyxFQXBjZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvYzlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMTItMjAxOCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gR2VuZXJhdGVkIGZyb20gdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZSBTcGVjaWZpY2F0aW9uXG4vLyBTZWU6IGRvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9jZm4tcmVzb3VyY2Utc3BlY2lmaWNhdGlvbi5odG1sXG4vLyBAY2ZuMnRzOm1ldGFAIHtcImdlbmVyYXRlZFwiOlwiMjAxOC0wOS0yMFQxMjo1NDozNi43MDdaXCIsXCJmaW5nZXJwcmludFwiOlwiOVRHd2xVbzdzQWdPdElLVGx5YU44VU5YaXpmdFA0eWFYQnpxRlhwdWVqaz1cIn1cblxuLy8gdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoIHwgVGhpcyBpcyBnZW5lcmF0ZWQgY29kZSAtIGxpbmUgbGVuZ3RocyBhcmUgZGlmZmljdWx0IHRvIGNvbnRyb2xcblxuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuXG5leHBvcnQgbmFtZXNwYWNlIGNsb3VkZm9ybWF0aW9uIHtcbiAgICAvKipcbiAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBSdWxlUmVzb3VyY2VQcm9wcyB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLkRlc2NyaXB0aW9uYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLXJ1bGUuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtZGVzY3JpcHRpb25cbiAgICAgICAgICovXG4gICAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLkV2ZW50UGF0dGVybmBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ydWxlLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLWV2ZW50cGF0dGVyblxuICAgICAgICAgKi9cbiAgICAgICAgZXZlbnRQYXR0ZXJuPzogb2JqZWN0IHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBgYEFXUzo6RXZlbnRzOjpSdWxlLk5hbWVgYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sI2Nmbi1ldmVudHMtcnVsZS1uYW1lXG4gICAgICAgICAqL1xuICAgICAgICBydWxlTmFtZT86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OkV2ZW50czo6UnVsZS5Sb2xlQXJuYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLXJ1bGUuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtcm9sZWFyblxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZUFybj86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OkV2ZW50czo6UnVsZS5TY2hlZHVsZUV4cHJlc3Npb25gYFxuICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtcnVsZS5odG1sI2Nmbi1ldmVudHMtcnVsZS1zY2hlZHVsZWV4cHJlc3Npb25cbiAgICAgICAgICovXG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbj86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OkV2ZW50czo6UnVsZS5TdGF0ZWBgXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ydWxlLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXN0YXRlXG4gICAgICAgICAqL1xuICAgICAgICBzdGF0ZT86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAvKipcbiAgICAgICAgICogYGBBV1M6OkV2ZW50czo6UnVsZS5UYXJnZXRzYGBcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLXJ1bGUuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0c1xuICAgICAgICAgKi9cbiAgICAgICAgdGFyZ2V0cz86IEFycmF5PFJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eSB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuPiB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBSdWxlUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBSdWxlUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFJ1bGVSZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignZGVzY3JpcHRpb24nLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZGVzY3JpcHRpb24pKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdldmVudFBhdHRlcm4nLCBjZGsudmFsaWRhdGVPYmplY3QpKHByb3BlcnRpZXMuZXZlbnRQYXR0ZXJuKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncnVsZU5hbWUnLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucnVsZU5hbWUpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdyb2xlQXJuJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnJvbGVBcm4pKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdzY2hlZHVsZUV4cHJlc3Npb24nLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuc2NoZWR1bGVFeHByZXNzaW9uKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignc3RhdGUnLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuc3RhdGUpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCd0YXJnZXRzJywgY2RrLmxpc3RWYWxpZGF0b3IoUnVsZVJlc291cmNlX1RhcmdldFByb3BlcnR5VmFsaWRhdG9yKSkocHJvcGVydGllcy50YXJnZXRzKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJSdWxlUmVzb3VyY2VQcm9wc1wiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZWBgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBSdWxlUmVzb3VyY2VQcm9wc2BgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZWBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZVByb3BzVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBwcm9wZXJ0aWVzOyB9XG4gICAgICAgIFJ1bGVSZXNvdXJjZVByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIERlc2NyaXB0aW9uOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSxcbiAgICAgICAgICAgIEV2ZW50UGF0dGVybjogY2RrLm9iamVjdFRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5ldmVudFBhdHRlcm4pLFxuICAgICAgICAgICAgTmFtZTogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5ydWxlTmFtZSksXG4gICAgICAgICAgICBSb2xlQXJuOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnJvbGVBcm4pLFxuICAgICAgICAgICAgU2NoZWR1bGVFeHByZXNzaW9uOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnNjaGVkdWxlRXhwcmVzc2lvbiksXG4gICAgICAgICAgICBTdGF0ZTogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5zdGF0ZSksXG4gICAgICAgICAgICBUYXJnZXRzOiBjZGsubGlzdE1hcHBlcihydWxlUmVzb3VyY2VUYXJnZXRQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24pKHByb3BlcnRpZXMudGFyZ2V0cyksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLXJ1bGUuaHRtbFxuICAgICAqL1xuICAgIGV4cG9ydCBjbGFzcyBSdWxlUmVzb3VyY2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgICAgICovXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcmVzb3VyY2VUeXBlTmFtZSA9IFwiQVdTOjpFdmVudHM6OlJ1bGVcIjtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQGNsb3VkZm9ybWF0aW9uX2F0dHJpYnV0ZSBBcm5cbiAgICAgICAgICovXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBydWxlQXJuOiBzdHJpbmc7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSBydWxlSWQ6IHN0cmluZztcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBgYEFXUzo6RXZlbnRzOjpSdWxlYGAuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSBwYXJlbnQgICAgIHRoZSBgYGNkay5Db25zdHJ1Y3RgYCB0aGlzIGBgUnVsZVJlc291cmNlYGAgaXMgYSBwYXJ0IG9mXG4gICAgICAgICAqIEBwYXJhbSBuYW1lICAgICAgIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgYGBjZGsuQ29uc3RydWN0YGAgdHJlZVxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGBgUnVsZVJlc291cmNlYGBcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wZXJ0aWVzPzogUnVsZVJlc291cmNlUHJvcHMpIHtcbiAgICAgICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSwgeyB0eXBlOiBSdWxlUmVzb3VyY2UucmVzb3VyY2VUeXBlTmFtZSwgcHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIHRoaXMucnVsZUFybiA9IHRoaXMuZ2V0QXR0KCdBcm4nKS50b1N0cmluZygpO1xuICAgICAgICAgICAgdGhpcy5ydWxlSWQgPSB0aGlzLnJlZi50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGVSZXNvdXJjZVByb3BzVG9DbG91ZEZvcm1hdGlvbihjZGsucmVzb2x2ZSh0aGlzLnByb3BlcnRpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgUnVsZVJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtZWNzcGFyYW1ldGVycy5odG1sXG4gICAgICAgICAqL1xuICAgICAgICBleHBvcnQgaW50ZXJmYWNlIEVjc1BhcmFtZXRlcnNQcm9wZXJ0eSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLkVjc1BhcmFtZXRlcnNQcm9wZXJ0eS5UYXNrQ291bnRgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1lY3NwYXJhbWV0ZXJzLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLWVjc3BhcmFtZXRlcnMtdGFza2NvdW50XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRhc2tDb3VudD86IG51bWJlciB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5FY3NQYXJhbWV0ZXJzUHJvcGVydHkuVGFza0RlZmluaXRpb25Bcm5gYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1lY3NwYXJhbWV0ZXJzLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLWVjc3BhcmFtZXRlcnMtdGFza2RlZmluaXRpb25hcm5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGFza0RlZmluaXRpb25Bcm46IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgYEVjc1BhcmFtZXRlcnNQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBFY3NQYXJhbWV0ZXJzUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBSdWxlUmVzb3VyY2VfRWNzUGFyYW1ldGVyc1Byb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigndGFza0NvdW50JywgY2RrLnZhbGlkYXRlTnVtYmVyKShwcm9wZXJ0aWVzLnRhc2tDb3VudCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3Rhc2tEZWZpbml0aW9uQXJuJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnRhc2tEZWZpbml0aW9uQXJuKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigndGFza0RlZmluaXRpb25Bcm4nLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMudGFza0RlZmluaXRpb25Bcm4pKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIkVjc1BhcmFtZXRlcnNQcm9wZXJ0eVwiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5FY3NQYXJhbWV0ZXJzYGAgcmVzb3VyY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYEVjc1BhcmFtZXRlcnNQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5FY3NQYXJhbWV0ZXJzYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcnVsZVJlc291cmNlRWNzUGFyYW1ldGVyc1Byb3BlcnR5VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBwcm9wZXJ0aWVzOyB9XG4gICAgICAgIFJ1bGVSZXNvdXJjZV9FY3NQYXJhbWV0ZXJzUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgVGFza0NvdW50OiBjZGsubnVtYmVyVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnRhc2tDb3VudCksXG4gICAgICAgICAgICBUYXNrRGVmaW5pdGlvbkFybjogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy50YXNrRGVmaW5pdGlvbkFybiksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IG5hbWVzcGFjZSBSdWxlUmVzb3VyY2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1pbnB1dHRyYW5zZm9ybWVyLmh0bWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBpbnRlcmZhY2UgSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5LklucHV0UGF0aHNNYXBgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1pbnB1dHRyYW5zZm9ybWVyLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLWlucHV0dHJhbnNmb3JtZXItaW5wdXRwYXRoc21hcFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbnB1dFBhdGhzTWFwPzogeyBba2V5OiBzdHJpbmddOiAoc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW4pIH0gfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5LklucHV0VGVtcGxhdGVgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1pbnB1dHRyYW5zZm9ybWVyLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLWlucHV0dHJhbnNmb3JtZXItaW5wdXR0ZW1wbGF0ZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbnB1dFRlbXBsYXRlOiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBJbnB1dFRyYW5zZm9ybWVyUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlX0lucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2lucHV0UGF0aHNNYXAnLCBjZGsuaGFzaFZhbGlkYXRvcihjZGsudmFsaWRhdGVTdHJpbmcpKShwcm9wZXJ0aWVzLmlucHV0UGF0aHNNYXApKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdpbnB1dFRlbXBsYXRlJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLmlucHV0VGVtcGxhdGUpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdpbnB1dFRlbXBsYXRlJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmlucHV0VGVtcGxhdGUpKTtcbiAgICAgICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIklucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eVwiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5JbnB1dFRyYW5zZm9ybWVyYGAgcmVzb3VyY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYElucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eWBgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5JbnB1dFRyYW5zZm9ybWVyYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcnVsZVJlc291cmNlSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBwcm9wZXJ0aWVzOyB9XG4gICAgICAgIFJ1bGVSZXNvdXJjZV9JbnB1dFRyYW5zZm9ybWVyUHJvcGVydHlWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgSW5wdXRQYXRoc01hcDogY2RrLmhhc2hNYXBwZXIoY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24pKHByb3BlcnRpZXMuaW5wdXRQYXRoc01hcCksXG4gICAgICAgICAgICBJbnB1dFRlbXBsYXRlOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmlucHV0VGVtcGxhdGUpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgUnVsZVJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUta2luZXNpc3BhcmFtZXRlcnMuaHRtbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eS5QYXJ0aXRpb25LZXlQYXRoYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUta2luZXNpc3BhcmFtZXRlcnMuaHRtbCNjZm4tZXZlbnRzLXJ1bGUta2luZXNpc3BhcmFtZXRlcnMtcGFydGl0aW9ua2V5cGF0aFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBwYXJ0aXRpb25LZXlQYXRoOiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBLaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYEtpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBSdWxlUmVzb3VyY2VfS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3BhcnRpdGlvbktleVBhdGgnLCBjZGsucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMucGFydGl0aW9uS2V5UGF0aCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3BhcnRpdGlvbktleVBhdGgnLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucGFydGl0aW9uS2V5UGF0aCkpO1xuICAgICAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eVwiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5LaW5lc2lzUGFyYW1ldGVyc2BgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBLaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlLktpbmVzaXNQYXJhbWV0ZXJzYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcnVsZVJlc291cmNlS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBSdWxlUmVzb3VyY2VfS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBQYXJ0aXRpb25LZXlQYXRoOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnBhcnRpdGlvbktleVBhdGgpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgUnVsZVJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtcnVuY29tbWFuZHBhcmFtZXRlcnMuaHRtbFxuICAgICAgICAgKi9cbiAgICAgICAgZXhwb3J0IGludGVyZmFjZSBSdW5Db21tYW5kUGFyYW1ldGVyc1Byb3BlcnR5IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eS5SdW5Db21tYW5kVGFyZ2V0c2BgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmRwYXJhbWV0ZXJzLmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmRwYXJhbWV0ZXJzLXJ1bmNvbW1hbmR0YXJnZXRzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJ1bkNvbW1hbmRUYXJnZXRzOiBBcnJheTxSdW5Db21tYW5kVGFyZ2V0UHJvcGVydHkgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbj4gfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBSdW5Db21tYW5kUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFJ1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBSdWxlUmVzb3VyY2VfUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3J1bkNvbW1hbmRUYXJnZXRzJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnJ1bkNvbW1hbmRUYXJnZXRzKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncnVuQ29tbWFuZFRhcmdldHMnLCBjZGsubGlzdFZhbGlkYXRvcihSdWxlUmVzb3VyY2VfUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5VmFsaWRhdG9yKSkocHJvcGVydGllcy5ydW5Db21tYW5kVGFyZ2V0cykpO1xuICAgICAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eVwiJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHByb3BlcnRpZXMgb2YgYW4gYGBBV1M6OkV2ZW50czo6UnVsZS5SdW5Db21tYW5kUGFyYW1ldGVyc2BgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBSdW5Db21tYW5kUGFyYW1ldGVyc1Byb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlLlJ1bkNvbW1hbmRQYXJhbWV0ZXJzYGAgcmVzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcnVsZVJlc291cmNlUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBSdWxlUmVzb3VyY2VfUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBSdW5Db21tYW5kVGFyZ2V0czogY2RrLmxpc3RNYXBwZXIocnVsZVJlc291cmNlUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5VG9DbG91ZEZvcm1hdGlvbikocHJvcGVydGllcy5ydW5Db21tYW5kVGFyZ2V0cyksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZXhwb3J0IG5hbWVzcGFjZSBSdWxlUmVzb3VyY2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS1ydW5jb21tYW5kdGFyZ2V0Lmh0bWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBpbnRlcmZhY2UgUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5LktleWBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmR0YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtcnVuY29tbWFuZHRhcmdldC1rZXlcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAga2V5OiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5LlZhbHVlc2BgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXJ1bmNvbW1hbmR0YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtcnVuY29tbWFuZHRhcmdldC12YWx1ZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdmFsdWVzOiBBcnJheTxzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbj4gfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYGBSdW5Db21tYW5kVGFyZ2V0UHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBgUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlX1J1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiBjZGsuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgICAgIGlmICghY2RrLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIGNkay5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICAgICAgY29uc3QgZXJyb3JzID0gbmV3IGNkay5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2tleScsIGNkay5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5rZXkpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdrZXknLCBjZGsudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMua2V5KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigndmFsdWVzJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnZhbHVlcykpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ3ZhbHVlcycsIGNkay5saXN0VmFsaWRhdG9yKGNkay52YWxpZGF0ZVN0cmluZykpKHByb3BlcnRpZXMudmFsdWVzKSk7XG4gICAgICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJSdW5Db21tYW5kVGFyZ2V0UHJvcGVydHlcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuUnVuQ29tbWFuZFRhcmdldGBgIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYGBSdW5Db21tYW5kVGFyZ2V0UHJvcGVydHlgYFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuUnVuQ29tbWFuZFRhcmdldGBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZVJ1bkNvbW1hbmRUYXJnZXRQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllczogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgICAgICBSdWxlUmVzb3VyY2VfUnVuQ29tbWFuZFRhcmdldFByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIEtleTogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5rZXkpLFxuICAgICAgICAgICAgVmFsdWVzOiBjZGsubGlzdE1hcHBlcihjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbikocHJvcGVydGllcy52YWx1ZXMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGV4cG9ydCBuYW1lc3BhY2UgUnVsZVJlc291cmNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWxcbiAgICAgICAgICovXG4gICAgICAgIGV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0UHJvcGVydHkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eS5Bcm5gYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS10YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0LWFyblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhcm46IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eS5FY3NQYXJhbWV0ZXJzYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1lY3NwYXJhbWV0ZXJzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGVjc1BhcmFtZXRlcnM/OiBFY3NQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuSWRgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS10YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0LWlkXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlkOiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuSW5wdXRgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS10YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0LWlucHV0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlucHV0Pzogc3RyaW5nIHwgY2RrLkNsb3VkRm9ybWF0aW9uVG9rZW47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGBgUnVsZVJlc291cmNlLlRhcmdldFByb3BlcnR5LklucHV0UGF0aGBgXG4gICAgICAgICAgICAgKiBAbGluayBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWV2ZW50cy1ydWxlLXRhcmdldC5odG1sI2Nmbi1ldmVudHMtcnVsZS10YXJnZXQtaW5wdXRwYXRoXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlucHV0UGF0aD86IHN0cmluZyB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eS5JbnB1dFRyYW5zZm9ybWVyYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1pbnB1dHRyYW5zZm9ybWVyXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlucHV0VHJhbnNmb3JtZXI/OiBJbnB1dFRyYW5zZm9ybWVyUHJvcGVydHkgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuS2luZXNpc1BhcmFtZXRlcnNgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS10YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0LWtpbmVzaXNwYXJhbWV0ZXJzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGtpbmVzaXNQYXJhbWV0ZXJzPzogS2luZXNpc1BhcmFtZXRlcnNQcm9wZXJ0eSB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBgYFJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eS5Sb2xlQXJuYGBcbiAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZXZlbnRzLXJ1bGUtdGFyZ2V0Lmh0bWwjY2ZuLWV2ZW50cy1ydWxlLXRhcmdldC1yb2xlYXJuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJvbGVBcm4/OiBzdHJpbmcgfCBjZGsuQ2xvdWRGb3JtYXRpb25Ub2tlbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYGBSdWxlUmVzb3VyY2UuVGFyZ2V0UHJvcGVydHkuUnVuQ29tbWFuZFBhcmFtZXRlcnNgYFxuICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1ldmVudHMtcnVsZS10YXJnZXQuaHRtbCNjZm4tZXZlbnRzLXJ1bGUtdGFyZ2V0LXJ1bmNvbW1hbmRwYXJhbWV0ZXJzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJ1bkNvbW1hbmRQYXJhbWV0ZXJzPzogUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eSB8IGNkay5DbG91ZEZvcm1hdGlvblRva2VuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgYFRhcmdldFByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFRhcmdldFByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gUnVsZVJlc291cmNlX1RhcmdldFByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IGNkay5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICAgICAgaWYgKCFjZGsuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gY2RrLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgICAgICBjb25zdCBlcnJvcnMgPSBuZXcgY2RrLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignYXJuJywgY2RrLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLmFybikpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2FybicsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5hcm4pKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdlY3NQYXJhbWV0ZXJzJywgUnVsZVJlc291cmNlX0Vjc1BhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcikocHJvcGVydGllcy5lY3NQYXJhbWV0ZXJzKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignaWQnLCBjZGsucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMuaWQpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdpZCcsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5pZCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2lucHV0JywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmlucHV0KSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcignaW5wdXRQYXRoJywgY2RrLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmlucHV0UGF0aCkpO1xuICAgICAgICBlcnJvcnMuY29sbGVjdChjZGsucHJvcGVydHlWYWxpZGF0b3IoJ2lucHV0VHJhbnNmb3JtZXInLCBSdWxlUmVzb3VyY2VfSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5VmFsaWRhdG9yKShwcm9wZXJ0aWVzLmlucHV0VHJhbnNmb3JtZXIpKTtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3QoY2RrLnByb3BlcnR5VmFsaWRhdG9yKCdraW5lc2lzUGFyYW1ldGVycycsIFJ1bGVSZXNvdXJjZV9LaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5VmFsaWRhdG9yKShwcm9wZXJ0aWVzLmtpbmVzaXNQYXJhbWV0ZXJzKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncm9sZUFybicsIGNkay52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5yb2xlQXJuKSk7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KGNkay5wcm9wZXJ0eVZhbGlkYXRvcigncnVuQ29tbWFuZFBhcmFtZXRlcnMnLCBSdWxlUmVzb3VyY2VfUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eVZhbGlkYXRvcikocHJvcGVydGllcy5ydW5Db21tYW5kUGFyYW1ldGVycykpO1xuICAgICAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiVGFyZ2V0UHJvcGVydHlcIicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0aWVzIG9mIGFuIGBgQVdTOjpFdmVudHM6OlJ1bGUuVGFyZ2V0YGAgcmVzb3VyY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgYFRhcmdldFByb3BlcnR5YGBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvcGVydGllcyBvZiBhbiBgYEFXUzo6RXZlbnRzOjpSdWxlLlRhcmdldGBgIHJlc291cmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJ1bGVSZXNvdXJjZVRhcmdldFByb3BlcnR5VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoIWNkay5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBwcm9wZXJ0aWVzOyB9XG4gICAgICAgIFJ1bGVSZXNvdXJjZV9UYXJnZXRQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBBcm46IGNkay5zdHJpbmdUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMuYXJuKSxcbiAgICAgICAgICAgIEVjc1BhcmFtZXRlcnM6IHJ1bGVSZXNvdXJjZUVjc1BhcmFtZXRlcnNQcm9wZXJ0eVRvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5lY3NQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIElkOiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmlkKSxcbiAgICAgICAgICAgIElucHV0OiBjZGsuc3RyaW5nVG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmlucHV0KSxcbiAgICAgICAgICAgIElucHV0UGF0aDogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5pbnB1dFBhdGgpLFxuICAgICAgICAgICAgSW5wdXRUcmFuc2Zvcm1lcjogcnVsZVJlc291cmNlSW5wdXRUcmFuc2Zvcm1lclByb3BlcnR5VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLmlucHV0VHJhbnNmb3JtZXIpLFxuICAgICAgICAgICAgS2luZXNpc1BhcmFtZXRlcnM6IHJ1bGVSZXNvdXJjZUtpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHlUb0Nsb3VkRm9ybWF0aW9uKHByb3BlcnRpZXMua2luZXNpc1BhcmFtZXRlcnMpLFxuICAgICAgICAgICAgUm9sZUFybjogY2RrLnN0cmluZ1RvQ2xvdWRGb3JtYXRpb24ocHJvcGVydGllcy5yb2xlQXJuKSxcbiAgICAgICAgICAgIFJ1bkNvbW1hbmRQYXJhbWV0ZXJzOiBydWxlUmVzb3VyY2VSdW5Db21tYW5kUGFyYW1ldGVyc1Byb3BlcnR5VG9DbG91ZEZvcm1hdGlvbihwcm9wZXJ0aWVzLnJ1bkNvbW1hbmRQYXJhbWV0ZXJzKSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
import { Construct } from '@aws-cdk/cdk';
import { RuleArn } from './events.generated';
export interface EventRuleRefProps {

@@ -8,3 +7,3 @@ /**

*/
eventRuleArn: RuleArn;
eventRuleArn: string;
}

@@ -20,3 +19,3 @@ export declare abstract class EventRuleRef extends Construct {

*/
abstract readonly ruleArn: RuleArn;
abstract readonly ruleArn: string;
/**

@@ -23,0 +22,0 @@ * Exports this rule resource from this stack and returns an import token.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const cdk_1 = require("@aws-cdk/cdk");
const events_generated_1 = require("./events.generated");
class EventRuleRef extends cdk_1.Construct {

@@ -17,3 +16,3 @@ /**

return {
eventRuleArn: new events_generated_1.RuleArn(new cdk_1.Output(this, 'RuleArn', { value: this.ruleArn }).makeImportValue())
eventRuleArn: new cdk_1.Output(this, 'RuleArn', { value: this.ruleArn }).makeImportValue().toString()
};

@@ -29,2 +28,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFpRDtBQUNqRCx5REFBNkM7QUFVN0MsTUFBc0IsWUFBYSxTQUFRLGVBQVM7SUFFaEQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQWlCLEVBQUUsSUFBWSxFQUFFLEtBQXdCO1FBQzFFLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFRRDs7T0FFRztJQUNJLE1BQU07UUFDVCxPQUFPO1lBQ0gsWUFBWSxFQUFFLElBQUksMEJBQU8sQ0FBQyxJQUFJLFlBQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3BHLENBQUM7SUFDTixDQUFDO0NBQ0o7QUF2QkQsb0NBdUJDO0FBRUQsTUFBTSxpQkFBa0IsU0FBUSxZQUFZO0lBR3hDLFlBQVksTUFBaUIsRUFBRSxJQUFZLEVBQUUsS0FBd0I7UUFDakUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDdEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBPdXRwdXQgfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgUnVsZUFybiB9IGZyb20gJy4vZXZlbnRzLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRSdWxlUmVmUHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgZXZlbnQgcnVsZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSwgc3VjaCBhc1xuICAgICAqIGFybjphd3M6ZXZlbnRzOnVzLWVhc3QtMjoxMjM0NTY3ODkwMTI6cnVsZS9leGFtcGxlLlxuICAgICAqL1xuICAgIGV2ZW50UnVsZUFybjogUnVsZUFybjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEV2ZW50UnVsZVJlZiBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgICAvKipcbiAgICAgKiBJbXBvcnRzIGEgcnVsZSBieSBBUk4gaW50byB0aGlzIHN0YWNrLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaW1wb3J0KHBhcmVudDogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBFdmVudFJ1bGVSZWZQcm9wcyk6IEV2ZW50UnVsZVJlZiB7XG4gICAgICAgIHJldHVybiBuZXcgSW1wb3J0ZWRFdmVudFJ1bGUocGFyZW50LCBuYW1lLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBldmVudCBydWxlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBzdWNoIGFzXG4gICAgICogYXJuOmF3czpldmVudHM6dXMtZWFzdC0yOjEyMzQ1Njc4OTAxMjpydWxlL2V4YW1wbGUuXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHJ1bGVBcm46IFJ1bGVBcm47XG5cbiAgICAvKipcbiAgICAgKiBFeHBvcnRzIHRoaXMgcnVsZSByZXNvdXJjZSBmcm9tIHRoaXMgc3RhY2sgYW5kIHJldHVybnMgYW4gaW1wb3J0IHRva2VuLlxuICAgICAqL1xuICAgIHB1YmxpYyBleHBvcnQoKTogRXZlbnRSdWxlUmVmUHJvcHMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXZlbnRSdWxlQXJuOiBuZXcgUnVsZUFybihuZXcgT3V0cHV0KHRoaXMsICdSdWxlQXJuJywgeyB2YWx1ZTogdGhpcy5ydWxlQXJuIH0pLm1ha2VJbXBvcnRWYWx1ZSgpKVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRFdmVudFJ1bGUgZXh0ZW5kcyBFdmVudFJ1bGVSZWYge1xuICAgIHB1YmxpYyByZWFkb25seSBydWxlQXJuOiBSdWxlQXJuO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEV2ZW50UnVsZVJlZlByb3BzKSB7XG4gICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG5cbiAgICAgICAgdGhpcy5ydWxlQXJuID0gcHJvcHMuZXZlbnRSdWxlQXJuO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFpRDtBQVVqRCxNQUFzQixZQUFhLFNBQVEsZUFBUztJQUVoRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBaUIsRUFBRSxJQUFZLEVBQUUsS0FBd0I7UUFDMUUsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQVFEOztPQUVHO0lBQ0ksTUFBTTtRQUNULE9BQU87WUFDSCxZQUFZLEVBQUUsSUFBSSxZQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUU7U0FDbEcsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXZCRCxvQ0F1QkM7QUFFRCxNQUFNLGlCQUFrQixTQUFRLFlBQVk7SUFHeEMsWUFBWSxNQUFpQixFQUFFLElBQVksRUFBRSxLQUF3QjtRQUNqRSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QsIE91dHB1dCB9IGZyb20gJ0Bhd3MtY2RrL2Nkayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRSdWxlUmVmUHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgZXZlbnQgcnVsZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSwgc3VjaCBhc1xuICAgICAqIGFybjphd3M6ZXZlbnRzOnVzLWVhc3QtMjoxMjM0NTY3ODkwMTI6cnVsZS9leGFtcGxlLlxuICAgICAqL1xuICAgIGV2ZW50UnVsZUFybjogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXZlbnRSdWxlUmVmIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAgIC8qKlxuICAgICAqIEltcG9ydHMgYSBydWxlIGJ5IEFSTiBpbnRvIHRoaXMgc3RhY2suXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpbXBvcnQocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEV2ZW50UnVsZVJlZlByb3BzKTogRXZlbnRSdWxlUmVmIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbXBvcnRlZEV2ZW50UnVsZShwYXJlbnQsIG5hbWUsIHByb3BzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGV2ZW50IHJ1bGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTiksIHN1Y2ggYXNcbiAgICAgKiBhcm46YXdzOmV2ZW50czp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOnJ1bGUvZXhhbXBsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcnVsZUFybjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRXhwb3J0cyB0aGlzIHJ1bGUgcmVzb3VyY2UgZnJvbSB0aGlzIHN0YWNrIGFuZCByZXR1cm5zIGFuIGltcG9ydCB0b2tlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwb3J0KCk6IEV2ZW50UnVsZVJlZlByb3BzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGV2ZW50UnVsZUFybjogbmV3IE91dHB1dCh0aGlzLCAnUnVsZUFybicsIHsgdmFsdWU6IHRoaXMucnVsZUFybiB9KS5tYWtlSW1wb3J0VmFsdWUoKS50b1N0cmluZygpXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBJbXBvcnRlZEV2ZW50UnVsZSBleHRlbmRzIEV2ZW50UnVsZVJlZiB7XG4gICAgcHVibGljIHJlYWRvbmx5IHJ1bGVBcm46IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBFdmVudFJ1bGVSZWZQcm9wcykge1xuICAgICAgICBzdXBlcihwYXJlbnQsIG5hbWUpO1xuXG4gICAgICAgIHRoaXMucnVsZUFybiA9IHByb3BzLmV2ZW50UnVsZUFybjtcbiAgICB9XG59XG4iXX0=
import { Construct } from '@aws-cdk/cdk';
import { EventPattern } from './event-pattern';
import { RuleArn } from './events.generated';
import { TargetInputTemplate } from './input-options';

@@ -59,3 +58,3 @@ import { EventRuleRef } from './rule-ref';

export declare class EventRule extends EventRuleRef {
readonly ruleArn: RuleArn;
readonly ruleArn: string;
private readonly targets;

@@ -62,0 +61,0 @@ private readonly eventPattern;

@@ -16,2 +16,3 @@ "use strict";

const resource = new events_generated_1.cloudformation.RuleResource(this, 'Resource', {
ruleName: props.ruleName,
description: props.description,

@@ -141,2 +142,2 @@ state: props.enabled == null ? 'ENABLED' : (props.enabled ? 'ENABLED' : 'DISABLED'),

exports.EventRule = EventRule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBMEQ7QUFFMUQseURBQTZEO0FBRTdELHlDQUEwQztBQUUxQyxpQ0FBMkM7QUF3RDNDOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsdUJBQVk7SUFPdkMsWUFBWSxNQUFpQixFQUFFLElBQVksRUFBRSxRQUF3QixFQUFHO1FBQ3BFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFMUCxZQUFPLEdBQUcsSUFBSSxLQUFLLEVBQThDLENBQUM7UUFDbEUsaUJBQVksR0FBaUIsRUFBRyxDQUFDO1FBTTlDLE1BQU0sUUFBUSxHQUFHLElBQUksaUNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUMvRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDbkYsa0JBQWtCLEVBQUUsSUFBSSxXQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQzVELFlBQVksRUFBRSxJQUFJLFdBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN4RCxPQUFPLEVBQUUsSUFBSSxXQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ2pELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6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QUFDO1FBRXZDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsdUNBQXVDO1FBQ3ZDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxLQUFLLEdBQUksWUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLEdBQUcsS0FBSyxZQUFZLEVBQUU7Z0JBQ3RCLEdBQUcsR0FBRyxhQUFhLENBQUM7YUFDdkI7WUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0o7QUExSkQsOEJBMEpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBGbkNvbmNhdCwgVG9rZW4gfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgRXZlbnRQYXR0ZXJuIH0gZnJvbSAnLi9ldmVudC1wYXR0ZXJuJztcbmltcG9ydCB7IGNsb3VkZm9ybWF0aW9uLCBSdWxlQXJuIH0gZnJvbSAnLi9ldmVudHMuZ2VuZXJhdGVkJztcbmltcG9ydCB7IFRhcmdldElucHV0VGVtcGxhdGUgfSBmcm9tICcuL2lucHV0LW9wdGlvbnMnO1xuaW1wb3J0IHsgRXZlbnRSdWxlUmVmIH0gZnJvbSAnLi9ydWxlLXJlZic7XG5pbXBvcnQgeyBJRXZlbnRSdWxlVGFyZ2V0IH0gZnJvbSAnLi90YXJnZXQnO1xuaW1wb3J0IHsgbWVyZ2VFdmVudFBhdHRlcm4gfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UnVsZVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBydWxlJ3MgcHVycG9zZS5cbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgbmFtZSBmb3IgdGhlIHJ1bGUuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uXG4gICAgICogZ2VuZXJhdGVzIGEgdW5pcXVlIHBoeXNpY2FsIElEIGFuZCB1c2VzIHRoYXQgSUQgZm9yIHRoZSBydWxlIG5hbWUuIEZvclxuICAgICAqIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBOYW1lIFR5cGUuXG4gICAgICovXG4gICAgcnVsZU5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcnVsZSBpcyBlbmFibGVkLlxuICAgICAqIEBkZWZhdWx0IFJ1bGUgaXMgZW5hYmxlZFxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNjaGVkdWxlIG9yIHJhdGUgKGZyZXF1ZW5jeSkgdGhhdCBkZXRlcm1pbmVzIHdoZW4gQ2xvdWRXYXRjaCBFdmVudHNcbiAgICAgKiBydW5zIHRoZSBydWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFNjaGVkdWxlIEV4cHJlc3Npb24gU3ludGF4IGZvclxuICAgICAqIFJ1bGVzIGluIHRoZSBBbWF6b24gQ2xvdWRXYXRjaCBVc2VyIEd1aWRlLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvU2NoZWR1bGVkRXZlbnRzLmh0bWxcbiAgICAgKlxuICAgICAqIFlvdSBtdXN0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgdGhlIGBldmVudFBhdHRlcm5gIHByb3BlcnR5LCBvciBib3RoLlxuICAgICAqL1xuICAgIHNjaGVkdWxlRXhwcmVzc2lvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIERlc2NyaWJlcyB3aGljaCBldmVudHMgQ2xvdWRXYXRjaCBFdmVudHMgcm91dGVzIHRvIHRoZSBzcGVjaWZpZWQgdGFyZ2V0LlxuICAgICAqIFRoZXNlIHJvdXRlZCBldmVudHMgYXJlIG1hdGNoZWQgZXZlbnRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEV2ZW50c1xuICAgICAqIGFuZCBFdmVudCBQYXR0ZXJucyBpbiB0aGUgQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZS5cbiAgICAgKlxuICAgICAqIEBzZWVcbiAgICAgKiBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9DbG91ZFdhdGNoRXZlbnRzYW5kRXZlbnRQYXR0ZXJucy5odG1sXG4gICAgICpcbiAgICAgKiBZb3UgbXVzdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgKGVpdGhlciB2aWEgcHJvcHMgb3IgdmlhXG4gICAgICogYGFkZEV2ZW50UGF0dGVybmApLCB0aGUgYHNjaGVkdWxlRXhwcmVzc2lvbmAgcHJvcGVydHksIG9yIGJvdGguIFRoZVxuICAgICAqIG1ldGhvZCBgYWRkRXZlbnRQYXR0ZXJuYCBjYW4gYmUgdXNlZCB0byBhZGQgZmlsdGVyIHZhbHVlcyB0byB0aGUgZXZlbnRcbiAgICAgKiBwYXR0ZXJuLlxuICAgICAqL1xuICAgIGV2ZW50UGF0dGVybj86IEV2ZW50UGF0dGVybjtcblxuICAgIC8qKlxuICAgICAqIFRhcmdldHMgdG8gaW52b2tlIHdoZW4gdGhpcyBydWxlIG1hdGNoZXMgYW4gZXZlbnQuXG4gICAgICpcbiAgICAgKiBJbnB1dCB3aWxsIGJlIHRoZSBmdWxsIG1hdGNoZWQgZXZlbnQuIElmIHlvdSB3aXNoIHRvIHNwZWNpZnkgY3VzdG9tXG4gICAgICogdGFyZ2V0IGlucHV0LCB1c2UgYGFkZFRhcmdldCh0YXJnZXRbLCBpbnB1dE9wdGlvbnNdKWAuXG4gICAgICovXG4gICAgdGFyZ2V0cz86IElFdmVudFJ1bGVUYXJnZXRbXTtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIGluIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudFJ1bGUgZXh0ZW5kcyBFdmVudFJ1bGVSZWYge1xuICAgIHB1YmxpYyByZWFkb25seSBydWxlQXJuOiBSdWxlQXJuO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRzID0gbmV3IEFycmF5PGNsb3VkZm9ybWF0aW9uLlJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eT4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50UGF0dGVybjogRXZlbnRQYXR0ZXJuID0geyB9O1xuICAgIHByaXZhdGUgc2NoZWR1bGVFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEV2ZW50UnVsZVByb3BzID0geyB9KSB7XG4gICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG5cbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgY2xvdWRmb3JtYXRpb24uUnVsZVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHN0YXRlOiBwcm9wcy5lbmFibGVkID09IG51bGwgPyAnRU5BQkxFRCcgOiAocHJvcHMuZW5hYmxlZCA/ICdFTkFCTEVEJyA6ICdESVNBQkxFRCcpLFxuICAgICAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBuZXcgVG9rZW4oKCkgPT4gdGhpcy5zY2hlZHVsZUV4cHJlc3Npb24pLFxuICAgICAgICAgICAgZXZlbnRQYXR0ZXJuOiBuZXcgVG9rZW4oKCkgPT4gdGhpcy5yZW5kZXJFdmVudFBhdHRlcm4oKSksXG4gICAgICAgICAgICB0YXJnZXRzOiBuZXcgVG9rZW4oKCkgPT4gdGhpcy5yZW5kZXJUYXJnZXRzKCkpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucnVsZUFybiA9IHJlc291cmNlLnJ1bGVBcm47XG5cbiAgICAgICAgdGhpcy5hZGRFdmVudFBhdHRlcm4ocHJvcHMuZXZlbnRQYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5zY2hlZHVsZUV4cHJlc3Npb24gPSBwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb247XG5cbiAgICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgcHJvcHMudGFyZ2V0cyB8fCBbXSkge1xuICAgICAgICAgICAgdGhpcy5hZGRUYXJnZXQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSB0YXJnZXQgdG8gdGhlIHJ1bGUuIFRoZSBhYnN0cmFjdCBjbGFzcyBSdWxlVGFyZ2V0IGNhbiBiZSBleHRlbmRlZCB0byBkZWZpbmUgbmV3XG4gICAgICogdGFyZ2V0cy5cbiAgICAgKlxuICAgICAqIE5vLW9wIGlmIHRhcmdldCBpcyB1bmRlZmluZWQuXG4gICAgICovXG4gICAgcHVibGljIGFkZFRhcmdldCh0YXJnZXQ/OiBJRXZlbnRSdWxlVGFyZ2V0LCBpbnB1dE9wdGlvbnM/OiBUYXJnZXRJbnB1dFRlbXBsYXRlKSB7XG4gICAgICAgIGlmICghdGFyZ2V0KSB7IHJldHVybjsgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldFByb3BzID0gdGFyZ2V0LmFzRXZlbnRSdWxlVGFyZ2V0KHRoaXMucnVsZUFybiwgdGhpcy51bmlxdWVJZCk7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgYSB0YXJnZXQgd2l0aCB0aGlzIElEIGFscmVhZHkgZXhpc3RzXG4gICAgICAgIGlmICh0aGlzLnRhcmdldHMuZmluZCh0ID0+IHQuaWQgPT09IHRhcmdldFByb3BzLmlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEdXBsaWNhdGUgZXZlbnQgcnVsZSB0YXJnZXQgd2l0aCBJRDogJyArIHRhcmdldFByb3BzLmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHtcbiAgICAgICAgICAgIC4uLnRhcmdldFByb3BzLFxuICAgICAgICAgICAgaW5wdXRUcmFuc2Zvcm1lcjogcmVuZGVyVHJhbnNmb3JtZXIoKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVuZGVyVHJhbnNmb3JtZXIoKTogY2xvdWRmb3JtYXRpb24uUnVsZVJlc291cmNlLklucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgICBpZiAoIWlucHV0T3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbnB1dE9wdGlvbnMuanNvblRlbXBsYXRlICYmIGlucHV0T3B0aW9ucy50ZXh0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wianNvblRlbXBsYXRlXCIgYW5kIFwidGV4dFRlbXBsYXRlXCIgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlucHV0T3B0aW9ucy5qc29uVGVtcGxhdGUgJiYgIWlucHV0T3B0aW9ucy50ZXh0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiBcImpzb25UZW1wbGF0ZVwiIG9yIFwidGV4dFRlbXBsYXRlXCIgYXJlIHJlcXVpcmVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBpbnB1dFRlbXBsYXRlOiBhbnk7XG5cbiAgICAgICAgICAgIGlmIChpbnB1dE9wdGlvbnMuanNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRUZW1wbGF0ZSA9IGlucHV0T3B0aW9ucy5qc29uVGVtcGxhdGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihpbnB1dE9wdGlvbnMudGV4dFRlbXBsYXRlKSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dFRlbXBsYXRlID0gSlNPTi5zdHJpbmdpZnkoaW5wdXRPcHRpb25zLnRleHRUZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlucHV0VGVtcGxhdGUgPSBuZXcgRm5Db25jYXQoJ1wiJywgaW5wdXRPcHRpb25zLnRleHRUZW1wbGF0ZSwgJ1wiJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5wdXRQYXRoc01hcDogaW5wdXRPcHRpb25zLnBhdGhzTWFwLFxuICAgICAgICAgICAgICAgIGlucHV0VGVtcGxhdGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGFuIGV2ZW50IHBhdHRlcm4gZmlsdGVyIHRvIHRoaXMgcnVsZS4gSWYgYSBwYXR0ZXJuIHdhcyBhbHJlYWR5IHNwZWNpZmllZCxcbiAgICAgKiB0aGVzZSB2YWx1ZXMgYXJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBwYXR0ZXJuLlxuICAgICAqXG4gICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBydWxlIGFscmVhZHkgY29udGFpbnMgdGhlIHBhdHRlcm46XG4gICAgICpcbiAgICAgKiAgICAgIHtcbiAgICAgKiAgICAgICAgICBcInJlc291cmNlc1wiOiBbIFwicjFcIiBdLFxuICAgICAqICAgICAgICAgIFwiZGV0YWlsXCI6IHtcbiAgICAgKiAgICAgICAgICAgICAgXCJoZWxsb1wiOiBbIDEgXVxuICAgICAqICAgICAgICAgIH1cbiAgICAgKiAgICAgIH1cbiAgICAgKlxuICAgICAqIEFuZCBgYWRkRXZlbnRQYXR0ZXJuYCBpcyBjYWxsZWQgd2l0aCB0aGUgcGF0dGVybjpcbiAgICAgKlxuICAgICAqICAgICAge1xuICAgICAqICAgICAgICAgIFwicmVzb3VyY2VzXCI6IFsgXCJyMlwiIF0sXG4gICAgICogICAgICAgICAgXCJkZXRhaWxcIjoge1xuICAgICAqICAgICAgICAgICAgICBcImZvb1wiOiBbIFwiYmFyXCIgXVxuICAgICAqICAgICAgICAgIH1cbiAgICAgKiAgICAgIH1cbiAgICAgKlxuICAgICAqIFRoZSByZXN1bHRpbmcgZXZlbnQgcGF0dGVybiB3aWxsIGJlOlxuICAgICAqXG4gICAgICogICAgICB7XG4gICAgICogICAgICAgICAgXCJyZXNvdXJjZXNcIjogWyBcInIxXCIsIFwicjJcIiBdLFxuICAgICAqICAgICAgICAgIFwiZGV0YWlsXCI6IHtcbiAgICAgKiAgICAgICAgICAgICAgXCJoZWxsb1wiOiBbIDEgXSxcbiAgICAgKiAgICAgICAgICAgICAgXCJmb29cIjogWyBcImJhclwiIF1cbiAgICAgKiAgICAgICAgICB9XG4gICAgICogICAgICB9XG4gICAgICpcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRXZlbnRQYXR0ZXJuKGV2ZW50UGF0dGVybj86IEV2ZW50UGF0dGVybikge1xuICAgICAgICBpZiAoIWV2ZW50UGF0dGVybikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG1lcmdlRXZlbnRQYXR0ZXJuKHRoaXMuZXZlbnRQYXR0ZXJuLCBldmVudFBhdHRlcm4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZXZlbnRQYXR0ZXJuKS5sZW5ndGggPT09IDAgJiYgIXRoaXMuc2NoZWR1bGVFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gWyBgRWl0aGVyICdldmVudFBhdHRlcm4nIG9yICdzY2hlZHVsZUV4cHJlc3Npb24nIG11c3QgYmUgZGVmaW5lZGAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJUYXJnZXRzKCkge1xuICAgICAgICBpZiAodGhpcy50YXJnZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRhcmdldHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJFdmVudFBhdHRlcm4oKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50UGF0dGVybiA9IHRoaXMuZXZlbnRQYXR0ZXJuO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhldmVudFBhdHRlcm4pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlbmFtZSAnZGV0YWlsVHlwZScgdG8gJ2RldGFpbC10eXBlJ1xuICAgICAgICBjb25zdCBvdXQ6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMoZXZlbnRQYXR0ZXJuKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnRQYXR0ZXJuIGFzIGFueSlba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdkZXRhaWxUeXBlJykge1xuICAgICAgICAgICAgICAgIGtleSA9ICdkZXRhaWwtdHlwZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBMEQ7QUFFMUQseURBQW9EO0FBRXBELHlDQUEwQztBQUUxQyxpQ0FBMkM7QUF3RDNDOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsdUJBQVk7SUFPdkMsWUFBWSxNQUFpQixFQUFFLElBQVksRUFBRSxRQUF3QixFQUFHO1FBQ3BFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFMUCxZQUFPLEdBQUcsSUFBSSxLQUFLLEVBQThDLENBQUM7UUFDbEUsaUJBQVksR0FBaUIsRUFBRyxDQUFDO1FBTTlDLE1BQU0sUUFBUSxHQUFHLElBQUksaUNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUMvRCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ25GLGtCQUFrQixFQUFFLElBQUksV0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUM1RCxZQUFZLEVBQUUsSUFBSSxXQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDeEQsT0FBTyxFQUFFLElBQUksV0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNqRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFFaEMsSUFBSSxDQUFDLGVBQWUsQ0FB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TUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV2QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELHVDQUF1QztRQUN2QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sS0FBSyxHQUFJLFlBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxHQUFHLEtBQUssWUFBWSxFQUFFO2dCQUN0QixHQUFHLEdBQUcsYUFBYSxDQUFDO2FBQ3ZCO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNwQjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKO0FBM0pELDhCQTJKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCwgRm5Db25jYXQsIFRva2VuIH0gZnJvbSAnQGF3cy1jZGsvY2RrJztcbmltcG9ydCB7IEV2ZW50UGF0dGVybiB9IGZyb20gJy4vZXZlbnQtcGF0dGVybic7XG5pbXBvcnQgeyBjbG91ZGZvcm1hdGlvbiB9IGZyb20gJy4vZXZlbnRzLmdlbmVyYXRlZCc7XG5pbXBvcnQgeyBUYXJnZXRJbnB1dFRlbXBsYXRlIH0gZnJvbSAnLi9pbnB1dC1vcHRpb25zJztcbmltcG9ydCB7IEV2ZW50UnVsZVJlZiB9IGZyb20gJy4vcnVsZS1yZWYnO1xuaW1wb3J0IHsgSUV2ZW50UnVsZVRhcmdldCB9IGZyb20gJy4vdGFyZ2V0JztcbmltcG9ydCB7IG1lcmdlRXZlbnRQYXR0ZXJuIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFJ1bGVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgcnVsZSdzIHB1cnBvc2UuXG4gICAgICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIG5hbWUgZm9yIHRoZSBydWxlLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIEFXUyBDbG91ZEZvcm1hdGlvblxuICAgICAqIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgcnVsZSBuYW1lLiBGb3JcbiAgICAgKiBtb3JlIGluZm9ybWF0aW9uLCBzZWUgTmFtZSBUeXBlLlxuICAgICAqL1xuICAgIHJ1bGVOYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJ1bGUgaXMgZW5hYmxlZC5cbiAgICAgKiBAZGVmYXVsdCBSdWxlIGlzIGVuYWJsZWRcbiAgICAgKi9cbiAgICBlbmFibGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzY2hlZHVsZSBvciByYXRlIChmcmVxdWVuY3kpIHRoYXQgZGV0ZXJtaW5lcyB3aGVuIENsb3VkV2F0Y2ggRXZlbnRzXG4gICAgICogcnVucyB0aGUgcnVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBTY2hlZHVsZSBFeHByZXNzaW9uIFN5bnRheCBmb3JcbiAgICAgKiBSdWxlcyBpbiB0aGUgQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZS5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAgICpcbiAgICAgKiBZb3UgbXVzdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIHRoZSBgZXZlbnRQYXR0ZXJuYCBwcm9wZXJ0eSwgb3IgYm90aC5cbiAgICAgKi9cbiAgICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEZXNjcmliZXMgd2hpY2ggZXZlbnRzIENsb3VkV2F0Y2ggRXZlbnRzIHJvdXRlcyB0byB0aGUgc3BlY2lmaWVkIHRhcmdldC5cbiAgICAgKiBUaGVzZSByb3V0ZWQgZXZlbnRzIGFyZSBtYXRjaGVkIGV2ZW50cy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBFdmVudHNcbiAgICAgKiBhbmQgRXZlbnQgUGF0dGVybnMgaW4gdGhlIEFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUuXG4gICAgICpcbiAgICAgKiBAc2VlXG4gICAgICogaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvQ2xvdWRXYXRjaEV2ZW50c2FuZEV2ZW50UGF0dGVybnMuaHRtbFxuICAgICAqXG4gICAgICogWW91IG11c3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5IChlaXRoZXIgdmlhIHByb3BzIG9yIHZpYVxuICAgICAqIGBhZGRFdmVudFBhdHRlcm5gKSwgdGhlIGBzY2hlZHVsZUV4cHJlc3Npb25gIHByb3BlcnR5LCBvciBib3RoLiBUaGVcbiAgICAgKiBtZXRob2QgYGFkZEV2ZW50UGF0dGVybmAgY2FuIGJlIHVzZWQgdG8gYWRkIGZpbHRlciB2YWx1ZXMgdG8gdGhlIGV2ZW50XG4gICAgICogcGF0dGVybi5cbiAgICAgKi9cbiAgICBldmVudFBhdHRlcm4/OiBFdmVudFBhdHRlcm47XG5cbiAgICAvKipcbiAgICAgKiBUYXJnZXRzIHRvIGludm9rZSB3aGVuIHRoaXMgcnVsZSBtYXRjaGVzIGFuIGV2ZW50LlxuICAgICAqXG4gICAgICogSW5wdXQgd2lsbCBiZSB0aGUgZnVsbCBtYXRjaGVkIGV2ZW50LiBJZiB5b3Ugd2lzaCB0byBzcGVjaWZ5IGN1c3RvbVxuICAgICAqIHRhcmdldCBpbnB1dCwgdXNlIGBhZGRUYXJnZXQodGFyZ2V0WywgaW5wdXRPcHRpb25zXSlgLlxuICAgICAqL1xuICAgIHRhcmdldHM/OiBJRXZlbnRSdWxlVGFyZ2V0W107XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBpbiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRSdWxlIGV4dGVuZHMgRXZlbnRSdWxlUmVmIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgcnVsZUFybjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRzID0gbmV3IEFycmF5PGNsb3VkZm9ybWF0aW9uLlJ1bGVSZXNvdXJjZS5UYXJnZXRQcm9wZXJ0eT4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50UGF0dGVybjogRXZlbnRQYXR0ZXJuID0geyB9O1xuICAgIHByaXZhdGUgc2NoZWR1bGVFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEV2ZW50UnVsZVByb3BzID0geyB9KSB7XG4gICAgICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG5cbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgY2xvdWRmb3JtYXRpb24uUnVsZVJlc291cmNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgICAgICAgIHJ1bGVOYW1lOiBwcm9wcy5ydWxlTmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHN0YXRlOiBwcm9wcy5lbmFibGVkID09IG51bGwgPyAnRU5BQkxFRCcgOiAocHJvcHMuZW5hYmxlZCA/ICdFTkFCTEVEJyA6ICdESVNBQkxFRCcpLFxuICAgICAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBuZXcgVG9rZW4oKCkgPT4gdGhpcy5zY2hlZHVsZUV4cHJlc3Npb24pLFxuICAgICAgICAgICAgZXZlbnRQYXR0ZXJuOiBuZXcgVG9rZW4oKCkgPT4gdGhpcy5yZW5kZXJFdmVudFBhdHRlcm4oKSksXG4gICAgICAgICAgICB0YXJnZXRzOiBuZXcgVG9rZW4oKCkgPT4gdGhpcy5yZW5kZXJUYXJnZXRzKCkpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucnVsZUFybiA9IHJlc291cmNlLnJ1bGVBcm47XG5cbiAgICAgICAgdGhpcy5hZGRFdmVudFBhdHRlcm4ocHJvcHMuZXZlbnRQYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5zY2hlZHVsZUV4cHJlc3Npb24gPSBwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb247XG5cbiAgICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgcHJvcHMudGFyZ2V0cyB8fCBbXSkge1xuICAgICAgICAgICAgdGhpcy5hZGRUYXJnZXQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSB0YXJnZXQgdG8gdGhlIHJ1bGUuIFRoZSBhYnN0cmFjdCBjbGFzcyBSdWxlVGFyZ2V0IGNhbiBiZSBleHRlbmRlZCB0byBkZWZpbmUgbmV3XG4gICAgICogdGFyZ2V0cy5cbiAgICAgKlxuICAgICAqIE5vLW9wIGlmIHRhcmdldCBpcyB1bmRlZmluZWQuXG4gICAgICovXG4gICAgcHVibGljIGFkZFRhcmdldCh0YXJnZXQ/OiBJRXZlbnRSdWxlVGFyZ2V0LCBpbnB1dE9wdGlvbnM/OiBUYXJnZXRJbnB1dFRlbXBsYXRlKSB7XG4gICAgICAgIGlmICghdGFyZ2V0KSB7IHJldHVybjsgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldFByb3BzID0gdGFyZ2V0LmFzRXZlbnRSdWxlVGFyZ2V0KHRoaXMucnVsZUFybiwgdGhpcy51bmlxdWVJZCk7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgYSB0YXJnZXQgd2l0aCB0aGlzIElEIGFscmVhZHkgZXhpc3RzXG4gICAgICAgIGlmICh0aGlzLnRhcmdldHMuZmluZCh0ID0+IHQuaWQgPT09IHRhcmdldFByb3BzLmlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEdXBsaWNhdGUgZXZlbnQgcnVsZSB0YXJnZXQgd2l0aCBJRDogJyArIHRhcmdldFByb3BzLmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHtcbiAgICAgICAgICAgIC4uLnRhcmdldFByb3BzLFxuICAgICAgICAgICAgaW5wdXRUcmFuc2Zvcm1lcjogcmVuZGVyVHJhbnNmb3JtZXIoKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVuZGVyVHJhbnNmb3JtZXIoKTogY2xvdWRmb3JtYXRpb24uUnVsZVJlc291cmNlLklucHV0VHJhbnNmb3JtZXJQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgICBpZiAoIWlucHV0T3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbnB1dE9wdGlvbnMuanNvblRlbXBsYXRlICYmIGlucHV0T3B0aW9ucy50ZXh0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wianNvblRlbXBsYXRlXCIgYW5kIFwidGV4dFRlbXBsYXRlXCIgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlucHV0T3B0aW9ucy5qc29uVGVtcGxhdGUgJiYgIWlucHV0T3B0aW9ucy50ZXh0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiBcImpzb25UZW1wbGF0ZVwiIG9yIFwidGV4dFRlbXBsYXRlXCIgYXJlIHJlcXVpcmVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBpbnB1dFRlbXBsYXRlOiBhbnk7XG5cbiAgICAgICAgICAgIGlmIChpbnB1dE9wdGlvbnMuanNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRUZW1wbGF0ZSA9IGlucHV0T3B0aW9ucy5qc29uVGVtcGxhdGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihpbnB1dE9wdGlvbnMudGV4dFRlbXBsYXRlKSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dFRlbXBsYXRlID0gSlNPTi5zdHJpbmdpZnkoaW5wdXRPcHRpb25zLnRleHRUZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlucHV0VGVtcGxhdGUgPSBuZXcgRm5Db25jYXQoJ1wiJywgaW5wdXRPcHRpb25zLnRleHRUZW1wbGF0ZSwgJ1wiJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5wdXRQYXRoc01hcDogaW5wdXRPcHRpb25zLnBhdGhzTWFwLFxuICAgICAgICAgICAgICAgIGlucHV0VGVtcGxhdGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGFuIGV2ZW50IHBhdHRlcm4gZmlsdGVyIHRvIHRoaXMgcnVsZS4gSWYgYSBwYXR0ZXJuIHdhcyBhbHJlYWR5IHNwZWNpZmllZCxcbiAgICAgKiB0aGVzZSB2YWx1ZXMgYXJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBwYXR0ZXJuLlxuICAgICAqXG4gICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBydWxlIGFscmVhZHkgY29udGFpbnMgdGhlIHBhdHRlcm46XG4gICAgICpcbiAgICAgKiAgICAgIHtcbiAgICAgKiAgICAgICAgICBcInJlc291cmNlc1wiOiBbIFwicjFcIiBdLFxuICAgICAqICAgICAgICAgIFwiZGV0YWlsXCI6IHtcbiAgICAgKiAgICAgICAgICAgICAgXCJoZWxsb1wiOiBbIDEgXVxuICAgICAqICAgICAgICAgIH1cbiAgICAgKiAgICAgIH1cbiAgICAgKlxuICAgICAqIEFuZCBgYWRkRXZlbnRQYXR0ZXJuYCBpcyBjYWxsZWQgd2l0aCB0aGUgcGF0dGVybjpcbiAgICAgKlxuICAgICAqICAgICAge1xuICAgICAqICAgICAgICAgIFwicmVzb3VyY2VzXCI6IFsgXCJyMlwiIF0sXG4gICAgICogICAgICAgICAgXCJkZXRhaWxcIjoge1xuICAgICAqICAgICAgICAgICAgICBcImZvb1wiOiBbIFwiYmFyXCIgXVxuICAgICAqICAgICAgICAgIH1cbiAgICAgKiAgICAgIH1cbiAgICAgKlxuICAgICAqIFRoZSByZXN1bHRpbmcgZXZlbnQgcGF0dGVybiB3aWxsIGJlOlxuICAgICAqXG4gICAgICogICAgICB7XG4gICAgICogICAgICAgICAgXCJyZXNvdXJjZXNcIjogWyBcInIxXCIsIFwicjJcIiBdLFxuICAgICAqICAgICAgICAgIFwiZGV0YWlsXCI6IHtcbiAgICAgKiAgICAgICAgICAgICAgXCJoZWxsb1wiOiBbIDEgXSxcbiAgICAgKiAgICAgICAgICAgICAgXCJmb29cIjogWyBcImJhclwiIF1cbiAgICAgKiAgICAgICAgICB9XG4gICAgICogICAgICB9XG4gICAgICpcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRXZlbnRQYXR0ZXJuKGV2ZW50UGF0dGVybj86IEV2ZW50UGF0dGVybikge1xuICAgICAgICBpZiAoIWV2ZW50UGF0dGVybikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG1lcmdlRXZlbnRQYXR0ZXJuKHRoaXMuZXZlbnRQYXR0ZXJuLCBldmVudFBhdHRlcm4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZXZlbnRQYXR0ZXJuKS5sZW5ndGggPT09IDAgJiYgIXRoaXMuc2NoZWR1bGVFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gWyBgRWl0aGVyICdldmVudFBhdHRlcm4nIG9yICdzY2hlZHVsZUV4cHJlc3Npb24nIG11c3QgYmUgZGVmaW5lZGAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJUYXJnZXRzKCkge1xuICAgICAgICBpZiAodGhpcy50YXJnZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRhcmdldHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJFdmVudFBhdHRlcm4oKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50UGF0dGVybiA9IHRoaXMuZXZlbnRQYXR0ZXJuO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhldmVudFBhdHRlcm4pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlbmFtZSAnZGV0YWlsVHlwZScgdG8gJ2RldGFpbC10eXBlJ1xuICAgICAgICBjb25zdCBvdXQ6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMoZXZlbnRQYXR0ZXJuKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnRQYXR0ZXJuIGFzIGFueSlba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdkZXRhaWxUeXBlJykge1xuICAgICAgICAgICAgICAgIGtleSA9ICdkZXRhaWwtdHlwZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG59XG4iXX0=

@@ -1,4 +0,2 @@

import iam = require('@aws-cdk/aws-iam');
import cdk = require('@aws-cdk/cdk');
import { cloudformation, RuleArn } from './events.generated';
import { cloudformation } from './events.generated';
export interface EventRuleTargetProps {

@@ -14,3 +12,3 @@ /**

*/
arn: cdk.Arn;
arn: string;
/**

@@ -22,3 +20,3 @@ * The Amazon Resource Name (ARN) of the AWS Identity and Access Management

*/
roleArn?: iam.RoleArn;
roleArn?: string;
/**

@@ -52,3 +50,3 @@ * The Amazon ECS task definition and task count to use, if the event target

*/
asEventRuleTarget(ruleArn: RuleArn, ruleUniqueId: string): EventRuleTargetProps;
asEventRuleTarget(ruleArn: string, ruleUniqueId: string): EventRuleTargetProps;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IHsgY2xvdWRmb3JtYXRpb24sIFJ1bGVBcm4gfSBmcm9tICcuL2V2ZW50cy5nZW5lcmF0ZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UnVsZVRhcmdldFByb3BzIHtcbiAgICAvKipcbiAgICAgKiBBIHVuaXF1ZSwgdXNlci1kZWZpbmVkIGlkZW50aWZpZXIgZm9yIHRoZSB0YXJnZXQuIEFjY2VwdGFibGUgdmFsdWVzXG4gICAgICogaW5jbHVkZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgcGVyaW9kcyAoLiksIGh5cGhlbnMgKC0pLCBhbmRcbiAgICAgKiB1bmRlcnNjb3JlcyAoXykuXG4gICAgICovXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdGFyZ2V0LlxuICAgICAqL1xuICAgIGFybjogY2RrLkFybjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudFxuICAgICAqIChJQU0pIHJvbGUgdG8gdXNlIGZvciB0aGlzIHRhcmdldCB3aGVuIHRoZSBydWxlIGlzIHRyaWdnZXJlZC4gSWYgb25lIHJ1bGVcbiAgICAgKiB0cmlnZ2VycyBtdWx0aXBsZSB0YXJnZXRzLCB5b3UgY2FuIHVzZSBhIGRpZmZlcmVudCBJQU0gcm9sZSBmb3IgZWFjaFxuICAgICAqIHRhcmdldC5cbiAgICAgKi9cbiAgICByb2xlQXJuPzogaWFtLlJvbGVBcm47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQW1hem9uIEVDUyB0YXNrIGRlZmluaXRpb24gYW5kIHRhc2sgY291bnQgdG8gdXNlLCBpZiB0aGUgZXZlbnQgdGFyZ2V0XG4gICAgICogaXMgYW4gQW1hem9uIEVDUyB0YXNrLlxuICAgICAqL1xuICAgIGVjc1BhcmFtZXRlcnM/OiBjbG91ZGZvcm1hdGlvbi5SdWxlUmVzb3VyY2UuRWNzUGFyYW1ldGVyc1Byb3BlcnR5O1xuXG4gICAgLyoqXG4gICAgICogU2V0dGluZ3MgdGhhdCBjb250cm9sIHNoYXJkIGFzc2lnbm1lbnQsIHdoZW4gdGhlIHRhcmdldCBpcyBhIEtpbmVzaXNcbiAgICAgKiBzdHJlYW0uIElmIHlvdSBkb24ndCBpbmNsdWRlIHRoaXMgcGFyYW1ldGVyLCBldmVudElkIGlzIHVzZWQgYXMgdGhlXG4gICAgICogcGFydGl0aW9uIGtleS5cbiAgICAgKi9cbiAgICBraW5lc2lzUGFyYW1ldGVycz86IGNsb3VkZm9ybWF0aW9uLlJ1bGVSZXNvdXJjZS5LaW5lc2lzUGFyYW1ldGVyc1Byb3BlcnR5O1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVycyB1c2VkIHdoZW4gdGhlIHJ1bGUgaW52b2tlcyBBbWF6b24gRUMyIFN5c3RlbXMgTWFuYWdlciBSdW5cbiAgICAgKiBDb21tYW5kLlxuICAgICAqL1xuICAgIHJ1bkNvbW1hbmRQYXJhbWV0ZXJzPzogY2xvdWRmb3JtYXRpb24uUnVsZVJlc291cmNlLlJ1bkNvbW1hbmRQYXJhbWV0ZXJzUHJvcGVydHk7XG59XG5cbi8qKlxuICogQW4gYWJzdHJhY3QgdGFyZ2V0IGZvciBFdmVudFJ1bGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElFdmVudFJ1bGVUYXJnZXQge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJ1bGUgdGFyZ2V0IHNwZWNpZmljYXRpb24uXG4gICAgICogTk9URTogRG8gbm90IHVzZSB0aGUgdmFyaW91cyBgaW5wdXRYeHhgIG9wdGlvbnMuIFRoZXkgY2FuIGJlIHNldCBpbiBhIGNhbGwgdG8gYGFkZFRhcmdldGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcnVsZUFybiBUaGUgQVJOIG9mIHRoZSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgdGhhdCB3b3VsZCB0cmlnZ2VyIHRoaXMgdGFyZ2V0LlxuICAgICAqIEBwYXJhbSBydWxlVW5pcXVlSWQgQSB1bmlxdWUgSUQgZm9yIHRoaXMgcnVsZS4gQ2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGlkZW1wb3RlbmN5LlxuICAgICAqL1xuICAgIGFzRXZlbnRSdWxlVGFyZ2V0KHJ1bGVBcm46IFJ1bGVBcm4sIHJ1bGVVbmlxdWVJZDogc3RyaW5nKTogRXZlbnRSdWxlVGFyZ2V0UHJvcHM7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG91ZGZvcm1hdGlvbiB9IGZyb20gJy4vZXZlbnRzLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRSdWxlVGFyZ2V0UHJvcHMge1xuICAgIC8qKlxuICAgICAqIEEgdW5pcXVlLCB1c2VyLWRlZmluZWQgaWRlbnRpZmllciBmb3IgdGhlIHRhcmdldC4gQWNjZXB0YWJsZSB2YWx1ZXNcbiAgICAgKiBpbmNsdWRlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBwZXJpb2RzICguKSwgaHlwaGVucyAoLSksIGFuZFxuICAgICAqIHVuZGVyc2NvcmVzIChfKS5cbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0YXJnZXQuXG4gICAgICovXG4gICAgYXJuOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnRcbiAgICAgKiAoSUFNKSByb2xlIHRvIHVzZSBmb3IgdGhpcyB0YXJnZXQgd2hlbiB0aGUgcnVsZSBpcyB0cmlnZ2VyZWQuIElmIG9uZSBydWxlXG4gICAgICogdHJpZ2dlcnMgbXVsdGlwbGUgdGFyZ2V0cywgeW91IGNhbiB1c2UgYSBkaWZmZXJlbnQgSUFNIHJvbGUgZm9yIGVhY2hcbiAgICAgKiB0YXJnZXQuXG4gICAgICovXG4gICAgcm9sZUFybj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBBbWF6b24gRUNTIHRhc2sgZGVmaW5pdGlvbiBhbmQgdGFzayBjb3VudCB0byB1c2UsIGlmIHRoZSBldmVudCB0YXJnZXRcbiAgICAgKiBpcyBhbiBBbWF6b24gRUNTIHRhc2suXG4gICAgICovXG4gICAgZWNzUGFyYW1ldGVycz86IGNsb3VkZm9ybWF0aW9uLlJ1bGVSZXNvdXJjZS5FY3NQYXJhbWV0ZXJzUHJvcGVydHk7XG5cbiAgICAvKipcbiAgICAgKiBTZXR0aW5ncyB0aGF0IGNvbnRyb2wgc2hhcmQgYXNzaWdubWVudCwgd2hlbiB0aGUgdGFyZ2V0IGlzIGEgS2luZXNpc1xuICAgICAqIHN0cmVhbS4gSWYgeW91IGRvbid0IGluY2x1ZGUgdGhpcyBwYXJhbWV0ZXIsIGV2ZW50SWQgaXMgdXNlZCBhcyB0aGVcbiAgICAgKiBwYXJ0aXRpb24ga2V5LlxuICAgICAqL1xuICAgIGtpbmVzaXNQYXJhbWV0ZXJzPzogY2xvdWRmb3JtYXRpb24uUnVsZVJlc291cmNlLktpbmVzaXNQYXJhbWV0ZXJzUHJvcGVydHk7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXJzIHVzZWQgd2hlbiB0aGUgcnVsZSBpbnZva2VzIEFtYXpvbiBFQzIgU3lzdGVtcyBNYW5hZ2VyIFJ1blxuICAgICAqIENvbW1hbmQuXG4gICAgICovXG4gICAgcnVuQ29tbWFuZFBhcmFtZXRlcnM/OiBjbG91ZGZvcm1hdGlvbi5SdWxlUmVzb3VyY2UuUnVuQ29tbWFuZFBhcmFtZXRlcnNQcm9wZXJ0eTtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCB0YXJnZXQgZm9yIEV2ZW50UnVsZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50UnVsZVRhcmdldCB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcnVsZSB0YXJnZXQgc3BlY2lmaWNhdGlvbi5cbiAgICAgKiBOT1RFOiBEbyBub3QgdXNlIHRoZSB2YXJpb3VzIGBpbnB1dFh4eGAgb3B0aW9ucy4gVGhleSBjYW4gYmUgc2V0IGluIGEgY2FsbCB0byBgYWRkVGFyZ2V0YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBydWxlQXJuIFRoZSBBUk4gb2YgdGhlIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSB0aGF0IHdvdWxkIHRyaWdnZXIgdGhpcyB0YXJnZXQuXG4gICAgICogQHBhcmFtIHJ1bGVVbmlxdWVJZCBBIHVuaXF1ZSBJRCBmb3IgdGhpcyBydWxlLiBDYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgaWRlbXBvdGVuY3kuXG4gICAgICovXG4gICAgYXNFdmVudFJ1bGVUYXJnZXQocnVsZUFybjogc3RyaW5nLCBydWxlVW5pcXVlSWQ6IHN0cmluZyk6IEV2ZW50UnVsZVRhcmdldFByb3BzO1xufVxuIl19
{
"name": "@aws-cdk/aws-events",
"version": "0.9.1",
"version": "0.9.2",
"description": "AWS CloudWatch Events Construct Library",

@@ -56,11 +56,11 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "^0.9.1",
"cdk-build-tools": "^0.9.1",
"cfn2ts": "^0.9.1",
"pkglint": "^0.9.1"
"@aws-cdk/assert": "^0.9.2",
"cdk-build-tools": "^0.9.2",
"cfn2ts": "^0.9.2",
"pkglint": "^0.9.2"
},
"dependencies": {
"@aws-cdk/aws-iam": "^0.9.1",
"@aws-cdk/cdk": "^0.9.1",
"@aws-cdk/util": "^0.9.1"
"@aws-cdk/aws-iam": "^0.9.2",
"@aws-cdk/cdk": "^0.9.2",
"@aws-cdk/util": "^0.9.2"
},

@@ -67,0 +67,0 @@ "bundledDependencies": [

import { Test } from 'nodeunit';
declare const _default: {
'default rule'(test: Test): void;
'rule with physical name'(test: Test): void;
'eventPattern is rendered properly'(test: Test): void;

@@ -5,0 +6,0 @@ 'fails synthesis if neither eventPattern nor scheudleExpression are specified'(test: Test): void;

"use strict";
const assert_1 = require("@aws-cdk/assert");
const iam = require("@aws-cdk/aws-iam");
const cdk = require("@aws-cdk/cdk");
const cdk_1 = require("@aws-cdk/cdk");
const lib_1 = require("../lib");
const rule_1 = require("../lib/rule");

@@ -27,2 +25,16 @@ module.exports = {

},
'rule with physical name'(test) {
// GIVEN
const stack = new cdk.Stack();
// WHEN
new rule_1.EventRule(stack, 'MyRule', {
ruleName: 'PhysicalName',
scheduleExpression: 'rate(10 minutes)'
});
// THEN
assert_1.expect(stack).to(assert_1.haveResource('AWS::Events::Rule', {
Name: 'PhysicalName'
}));
test.done();
},
'eventPattern is rendered properly'(test) {

@@ -39,3 +51,3 @@ const stack = new cdk.Stack();

region: ['region1', 'region2', 'region3'],
resources: [new cdk.Arn('r1')],
resources: ['r1'],
source: ['src1', 'src2'],

@@ -130,3 +142,3 @@ time: ['t1'],

id: 'T1',
arn: new cdk.Arn('ARN1'),
arn: 'ARN1',
kinesisParameters: { partitionKeyPath: 'partitionKeyPath' }

@@ -138,4 +150,4 @@ })

id: 'T2',
arn: new cdk.Arn('ARN2'),
roleArn: new iam.RoleArn('IAM-ROLE-ARN')
arn: 'ARN2',
roleArn: 'IAM-ROLE-ARN'
})

@@ -190,9 +202,9 @@ };

asEventRuleTarget: () => ({
id: 'T1', arn: new cdk.Arn('ARN1'), kinesisParameters: { partitionKeyPath: 'partitionKeyPath' }
id: 'T1', arn: 'ARN1', kinesisParameters: { partitionKeyPath: 'partitionKeyPath' }
})
};
const t2 = { asEventRuleTarget: () => ({ id: 'T2', arn: new cdk.Arn('ARN2'), roleArn: new iam.RoleArn('IAM-ROLE-ARN') }) };
const t3 = { asEventRuleTarget: () => ({ id: 'T3', arn: new cdk.Arn('ARN3') }) };
const t4 = { asEventRuleTarget: () => ({ id: 'T4', arn: new cdk.Arn('ARN4') }) };
const rule = new rule_1.EventRule(stack, 'EventRule');
const t2 = { asEventRuleTarget: () => ({ id: 'T2', arn: 'ARN2', roleArn: 'IAM-ROLE-ARN' }) };
const t3 = { asEventRuleTarget: () => ({ id: 'T3', arn: 'ARN3' }) };
const t4 = { asEventRuleTarget: () => ({ id: 'T4', arn: 'ARN4' }) };
const rule = new rule_1.EventRule(stack, 'EventRule', { scheduleExpression: 'rate(1 minute)' });
// a plain string should just be stringified (i.e. double quotes added and escaped)

@@ -225,2 +237,3 @@ rule.addTarget(t2, {

"State": "ENABLED",
"ScheduleExpression": "rate(1 minute)",
"Targets": [

@@ -291,3 +304,3 @@ {

const stack = new cdk.Stack();
let receivedRuleArn = new lib_1.RuleArn('FAIL');
let receivedRuleArn = 'FAIL';
let receivedRuleId = 'FAIL';

@@ -300,3 +313,3 @@ const t1 = {

id: 'T1',
arn: new cdk.Arn('ARN1'),
arn: 'ARN1',
kinesisParameters: { partitionKeyPath: 'partitionKeyPath' }

@@ -313,2 +326,2 @@ };

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC5ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBeUM7QUFDekMsd0NBQXlDO0FBQ3pDLG9DQUFxQztBQUNyQyxzQ0FBdUM7QUFFdkMsZ0NBQW1EO0FBQ25ELHNDQUF3QztBQUl4QyxpQkFBUztJQUNMLGNBQWMsQ0FBQyxJQUFVO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLElBQUksZ0JBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzNCLGtCQUFrQixFQUFFLGtCQUFrQjtTQUN6QyxDQUFDLENBQUM7UUFFSCxlQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2xCLFdBQVcsRUFBRTtnQkFDWCxnQkFBZ0IsRUFBRTtvQkFDaEIsTUFBTSxFQUFFLG1CQUFtQjtvQkFDM0IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQixFQUFFLGtCQUFrQjt3QkFDeEMsT0FBTyxFQUFFLFNBQVM7cUJBQ25CO2lCQUNGO2FBQ0Y7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELG1DQUFtQyxDQUFDLElBQVU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxnQkFBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDM0IsWUFBWSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxDQUFFLFVBQVUsRUFBRSxVQUFVLENBQUU7Z0JBQ25DLE1BQU0sRUFBRTtvQkFDSixHQUFHLEVBQUUsQ0FBRSxDQUFDLEVBQUUsQ0FBQyxDQUFFO2lCQUNoQjtnQkFDRCxVQUFVLEVBQUUsQ0FBRSxhQUFhLENBQUU7Z0JBQzdCLEVBQUUsRUFBRSxDQUFFLEtBQUssRUFBRSxLQUFLLENBQUU7Z0JBQ3BCLE1B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aEIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QgfSBmcm9tICdAYXdzLWNkay9hc3NlcnQnO1xuaW1wb3J0IGlhbSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1pYW0nKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgVGVzdCB9IGZyb20gJ25vZGV1bml0JztcbmltcG9ydCB7IElFdmVudFJ1bGVUYXJnZXQsIFJ1bGVBcm4gfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgRXZlbnRSdWxlIH0gZnJvbSAnLi4vbGliL3J1bGUnO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1rZXktcXVvdGVzXG5cbmV4cG9ydCA9IHtcbiAgICAnZGVmYXVsdCBydWxlJyh0ZXN0OiBUZXN0KSB7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgICAgIG5ldyBFdmVudFJ1bGUoc3RhY2ssICdNeVJ1bGUnLCB7XG4gICAgICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246ICdyYXRlKDEwIG1pbnV0ZXMpJ1xuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3Qoc3RhY2spLnRvTWF0Y2goe1xuICAgICAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgICBcIk15UnVsZUE0NEFCODMxXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjogXCJBV1M6OkV2ZW50czo6UnVsZVwiLFxuICAgICAgICAgICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiBcInJhdGUoMTAgbWludXRlcylcIixcbiAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjogXCJFTkFCTEVEXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRlc3QuZG9uZSgpO1xuICAgIH0sXG5cbiAgICAnZXZlbnRQYXR0ZXJuIGlzIHJlbmRlcmVkIHByb3Blcmx5Jyh0ZXN0OiBUZXN0KSB7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgICAgIG5ldyBFdmVudFJ1bGUoc3RhY2ssICdNeVJ1bGUnLCB7XG4gICAgICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICAgICAgICBhY2NvdW50OiBbICdhY2NvdW50MScsICdhY2NvdW50MicgXSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgZm9vOiBbIDEsIDIgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRldGFpbFR5cGU6IFsgJ2RldGFpbFR5cGUxJyBdLFxuICAgICAgICAgICAgICAgIGlkOiBbICdpZDEnLCAnaWQyJyBdLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogWyAncmVnaW9uMScsICdyZWdpb24yJywgJ3JlZ2lvbjMnIF0sXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbIG5ldyBjZGsuQXJuKCdyMScpIF0sXG4gICAgICAgICAgICAgICAgc291cmNlOiBbICdzcmMxJywgJ3NyYzInIF0sXG4gICAgICAgICAgICAgICAgdGltZTogWyAndDEnIF0sXG4gICAgICAgICAgICAgICAgdmVyc2lvbjogWyAnMCcgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3Qoc3RhY2spLnRvTWF0Y2goe1xuICAgICAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgICBcIk15UnVsZUE0NEFCODMxXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjogXCJBV1M6OkV2ZW50czo6UnVsZVwiLFxuICAgICAgICAgICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkV2ZW50UGF0dGVyblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50OiBbICdhY2NvdW50MScsICdhY2NvdW50MicgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogeyBmb286IFsgMSwgMiBdIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGV0YWlsLXR5cGUnOiBbICdkZXRhaWxUeXBlMScgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBbICdpZDEnLCAnaWQyJyBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uOiBbICdyZWdpb24xJywgJ3JlZ2lvbjInLCAncmVnaW9uMycgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczogWyAncjEnIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IFsgJ3NyYzEnLCAnc3JjMicgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWU6IFsgJ3QxJyBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjogWyAnMCcgXVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IFwiRU5BQkxFRFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRlc3QuZG9uZSgpO1xuICAgIH0sXG5cbiAgICAnZmFpbHMgc3ludGhlc2lzIGlmIG5laXRoZXIgZXZlbnRQYXR0ZXJuIG5vciBzY2hldWRsZUV4cHJlc3Npb24gYXJlIHNwZWNpZmllZCcodGVzdDogVGVzdCkge1xuICAgICAgICBjb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuICAgICAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCAnTXlTdGFjaycpO1xuICAgICAgICBuZXcgRXZlbnRSdWxlKHN0YWNrLCAnUnVsZScpO1xuICAgICAgICB0ZXN0LnRocm93cygoKSA9PiBhcHAuc3ludGhlc2l6ZVN0YWNrKHN0YWNrLm5hbWUpLCAvRWl0aGVyICdldmVudFBhdHRlcm4nIG9yICdzY2hlZHVsZUV4cHJlc3Npb24nIG11c3QgYmUgZGVmaW5lZC8pO1xuICAgICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuXG4gICAgJ2FkZEV2ZW50UGF0dGVybiBjYW4gYmUgdXNlZCB0byBhZGQgZmlsdGVycycodGVzdDogVGVzdCkge1xuICAgICAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgICAgICBjb25zdCBydWxlID0gbmV3IEV2ZW50UnVsZShzdGFjaywgJ015UnVsZScpO1xuICAgICAgICBydWxlLmFkZEV2ZW50UGF0dGVybih7XG4gICAgICAgICAgICBhY2NvdW50OiBbICcxMjM0NScgXSxcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgIGZvbzogWyAnaGVsbG8nIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcnVsZS5hZGRFdmVudFBhdHRlcm4oe1xuICAgICAgICAgICAgc291cmNlOiBbICdhd3Muc291cmNlJyBdLFxuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgZm9vOiBbICdiYXInIF0sXG4gICAgICAgICAgICAgICAgZ29vOiB7XG4gICAgICAgICAgICAgICAgICAgIGhlbGxvOiBbICd3b3JsZCcgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZXhwZWN0KHN0YWNrKS50b01hdGNoKHtcbiAgICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgICAgXCJNeVJ1bGVBNDRBQjgzMVwiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IFwiQVdTOjpFdmVudHM6OlJ1bGVcIixcbiAgICAgICAgICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJFdmVudFBhdHRlcm5cIjoge1xuICAgICAgICAgICAgICAgICAgICBcImFjY291bnRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiMTIzNDVcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcImRldGFpbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJmb29cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxsb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJiYXJcIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJnb29cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxsb1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwid29ybGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiYXdzLnNvdXJjZVwiXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IFwiRU5BQkxFRFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuXG4gICAgJ3RhcmdldHMgY2FuIGJlIGFkZGVkIHZpYSBwcm9wcyBvciBhZGRUYXJnZXQgd2l0aCBpbnB1dCB0cmFuc2Zvcm1lcicodGVzdDogVGVzdCkge1xuICAgICAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgICAgICAgY29uc3QgdDE6IElFdmVudFJ1bGVUYXJnZXQgPSB7XG4gICAgICAgICAgICBhc0V2ZW50UnVsZVRhcmdldDogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICBpZDogJ1QxJyxcbiAgICAgICAgICAgICAgICBhcm46IG5ldyBjZGsuQXJuKCdBUk4xJyksXG4gICAgICAgICAgICAgICAga2luZXNpc1BhcmFtZXRlcnM6IHsgcGFydGl0aW9uS2V5UGF0aDogJ3BhcnRpdGlvbktleVBhdGgnIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdDI6IElFdmVudFJ1bGVUYXJnZXQgPSB7XG4gICAgICAgICAgICBhc0V2ZW50UnVsZVRhcmdldDogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICBpZDogJ1QyJyxcbiAgICAgICAgICAgICAgICBhcm46IG5ldyBjZGsuQXJuKCdBUk4yJyksXG4gICAgICAgICAgICAgICAgcm9sZUFybjogbmV3IGlhbS5Sb2xlQXJuKCdJQU0tUk9MRS1BUk4nKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBydWxlID0gbmV3IEV2ZW50UnVsZShzdGFjaywgJ0V2ZW50UnVsZScsIHtcbiAgICAgICAgICAgIHRhcmdldHM6IFsgdDEgXSxcbiAgICAgICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogJ3JhdGUoNSBtaW51dGVzKSdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcnVsZS5hZGRUYXJnZXQodDIsIHtcbiAgICAgICAgICAgIHRleHRUZW1wbGF0ZTogJ1RoaXMgaXMgPGJsYT4nLFxuICAgICAgICAgICAgcGF0aHNNYXA6IHtcbiAgICAgICAgICAgICAgICBibGE6ICckLmRldGFpbC5ibGEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdChzdGFjaykudG9NYXRjaCh7XG4gICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXZlbnRSdWxlNUE0OTFEMkNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6RXZlbnRzOjpSdWxlXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IFwicmF0ZSg1IG1pbnV0ZXMpXCIsXG4gICAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IFwiRU5BQkxFRFwiLFxuICAgICAgICAgICAgICAgICAgXCJUYXJnZXRzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCI6IFwiQVJOMVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiSWRcIjogXCJUMVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiS2luZXNpc1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlQYXRoXCI6IFwicGFydGl0aW9uS2V5UGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIjogXCJBUk4yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiBcIlQyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRyYW5zZm9ybWVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5wdXRQYXRoc01hcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmxhXCI6IFwiJC5kZXRhaWwuYmxhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIjogXCJcXFwiVGhpcyBpcyA8YmxhPlxcXCJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQXJuXCI6IFwiSUFNLVJPTEUtQVJOXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdpbnB1dCB0ZW1wbGF0ZSBjYW4gY29udGFpbiB0b2tlbnMnKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgICAgIGNvbnN0IHQxOiBJRXZlbnRSdWxlVGFyZ2V0ID0ge1xuICAgICAgICAgICAgYXNFdmVudFJ1bGVUYXJnZXQ6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6ICdUMScsIGFybjogbmV3IGNkay5Bcm4oJ0FSTjEnKSwga2luZXNpc1BhcmFtZXRlcnM6IHsgcGFydGl0aW9uS2V5UGF0aDogJ3BhcnRpdGlvbktleVBhdGgnIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdDI6IElFdmVudFJ1bGVUYXJnZXQgPSB7IGFzRXZlbnRSdWxlVGFyZ2V0OiAoKSA9PiAoeyBpZDogJ1QyJywgYXJuOiBuZXcgY2RrLkFybignQVJOMicpLCByb2xlQXJuOiBuZXcgaWFtLlJvbGVBcm4oJ0lBTS1ST0xFLUFSTicpIH0pIH07XG4gICAgICAgIGNvbnN0IHQzOiBJRXZlbnRSdWxlVGFyZ2V0ID0geyBhc0V2ZW50UnVsZVRhcmdldDogKCkgPT4gKHsgaWQ6ICdUMycsIGFybjogbmV3IGNkay5Bcm4oJ0FSTjMnKSB9KSB9O1xuICAgICAgICBjb25zdCB0NDogSUV2ZW50UnVsZVRhcmdldCA9IHsgYXNFdmVudFJ1bGVUYXJnZXQ6ICgpID0+ICh7IGlkOiAnVDQnLCBhcm46IG5ldyBjZGsuQXJuKCdBUk40JykgfSkgfTtcblxuICAgICAgICBjb25zdCBydWxlID0gbmV3IEV2ZW50UnVsZShzdGFjaywgJ0V2ZW50UnVsZScpO1xuXG4gICAgICAgIC8vIGEgcGxhaW4gc3RyaW5nIHNob3VsZCBqdXN0IGJlIHN0cmluZ2lmaWVkIChpLmUuIGRvdWJsZSBxdW90ZXMgYWRkZWQgYW5kIGVzY2FwZWQpXG4gICAgICAgIHJ1bGUuYWRkVGFyZ2V0KHQyLCB7XG4gICAgICAgICAgICB0ZXh0VGVtcGxhdGU6ICdIZWxsbywgXCJ3b3JsZFwiJ1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyB0b2tlbnMgYXJlIHVzZWQgaGVyZSAoRm5Db25jYXQpLCBidXQgdGhpcyBpcyBhIHRleHQgdGVtcGxhdGUgc28gd2VcbiAgICAgICAgLy8gZXhwZWN0IGl0IHRvIGJlIHdyYXBwZWQgaW4gZG91YmxlIHF1b3RlcyBhdXRvbWF0aWNhbGx5IGZvciB1cy5cbiAgICAgICAgcnVsZS5hZGRUYXJnZXQodDEsIHtcbiAgICAgICAgICAgIHRleHRUZW1wbGF0ZTogbmV3IGNkay5GbkNvbmNhdCgnYScsICdiJylcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8ganNvblRlbXBsYXRlIGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBKU09OIGRvY3VtZW50cyB3aXRoIHJlcGxhY2VtZW50c1xuICAgICAgICBydWxlLmFkZFRhcmdldCh0Mywge1xuICAgICAgICAgICAganNvblRlbXBsYXRlOiAneyBcImZvb1wiOiA8YmFyPiB9JyxcbiAgICAgICAgICAgIHBhdGhzTWFwOiB7XG4gICAgICAgICAgICAgICAgYmFyOiAnJC5kZXRhaWwuYmFyJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyB0b2tlbnMgY2FuIGFsc28gdXNlZCBmb3IgSlNPTiB0ZW1wbGF0ZXMsIGJ1dCB0aGF0IG1lYW5zIGVzY2FwaW5nIGlzXG4gICAgICAgIC8vIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgdXNlci5cbiAgICAgICAgcnVsZS5hZGRUYXJnZXQodDQsIHtcbiAgICAgICAgICAgIGpzb25UZW1wbGF0ZTogbmV3IGNkay5GbkpvaW4oJyAnLCBbJ1wiJywgJ2hlbGxvJywgJ1xcXCJ3b3JsZFxcXCInLCAnXCInXSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdChzdGFjaykudG9NYXRjaCh7XG4gICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXZlbnRSdWxlNUE0OTFEMkNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6RXZlbnRzOjpSdWxlXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiBcIkVOQUJMRURcIixcbiAgICAgICAgICAgICAgICAgICAgXCJUYXJnZXRzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkFyblwiOiBcIkFSTjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSWRcIjogXCJUMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRyYW5zZm9ybWVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRlbXBsYXRlXCI6IFwiXFxcIkhlbGxvLCBcXFxcXFxcIndvcmxkXFxcXFxcXCJcXFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJvbGVBcm5cIjogXCJJQU0tUk9MRS1BUk5cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIjogXCJBUk4xXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklkXCI6IFwiVDFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5wdXRUcmFuc2Zvcm1lclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5wdXRUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiS2luZXNpc1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpdGlvbktleVBhdGhcIjogXCJwYXJ0aXRpb25LZXlQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCI6IFwiQVJOM1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiBcIlQzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VHJhbnNmb3JtZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0UGF0aHNNYXBcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFyXCI6IFwiJC5kZXRhaWwuYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRlbXBsYXRlXCI6IFwieyBcXFwiZm9vXFxcIjogPGJhcj4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkFyblwiOiBcIkFSTjRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSWRcIjogXCJUNFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRyYW5zZm9ybWVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkZuOjpKb2luXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxsb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcXCJ3b3JsZFxcXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdhc0V2ZW50UnVsZVRhcmdldCBjYW4gdXNlIHRoZSBydWxlQXJuIGFuZCBhIHVuaXF1ZUlkIG9mIHRoZSBydWxlJyh0ZXN0OiBUZXN0KSB7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgICAgIGxldCByZWNlaXZlZFJ1bGVBcm4gPSBuZXcgUnVsZUFybignRkFJTCcpO1xuICAgICAgICBsZXQgcmVjZWl2ZWRSdWxlSWQgPSAnRkFJTCc7XG5cbiAgICAgICAgY29uc3QgdDE6IElFdmVudFJ1bGVUYXJnZXQgPSB7XG4gICAgICAgICAgICBhc0V2ZW50UnVsZVRhcmdldDogKHJ1bGVBcm46IFJ1bGVBcm4sIHJ1bGVJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRSdWxlQXJuID0gcnVsZUFybjtcbiAgICAgICAgICAgICAgICByZWNlaXZlZFJ1bGVJZCA9IHJ1bGVJZDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAnVDEnLFxuICAgICAgICAgICAgICAgICAgICBhcm46IG5ldyBjZGsuQXJuKCdBUk4xJyksXG4gICAgICAgICAgICAgICAgICAgIGtpbmVzaXNQYXJhbWV0ZXJzOiB7IHBhcnRpdGlvbktleVBhdGg6ICdwYXJ0aXRpb25LZXlQYXRoJyB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBydWxlID0gbmV3IEV2ZW50UnVsZShzdGFjaywgJ0V2ZW50UnVsZScpO1xuICAgICAgICBydWxlLmFkZFRhcmdldCh0MSk7XG5cbiAgICAgICAgdGVzdC5kZWVwRXF1YWwocmVzb2x2ZShyZWNlaXZlZFJ1bGVBcm4pLCByZXNvbHZlKHJ1bGUucnVsZUFybikpO1xuICAgICAgICB0ZXN0LmRlZXBFcXVhbChyZWNlaXZlZFJ1bGVJZCwgcnVsZS51bmlxdWVJZCk7XG4gICAgICAgIHRlc3QuZG9uZSgpO1xuICAgIH1cbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC5ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBdUQ7QUFDdkQsb0NBQXFDO0FBQ3JDLHNDQUF1QztBQUd2QyxzQ0FBd0M7QUFJeEMsaUJBQVM7SUFDTCxjQUFjLENBQUMsSUFBVTtRQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU5QixJQUFJLGdCQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUMzQixrQkFBa0IsRUFBRSxrQkFBa0I7U0FDekMsQ0FBQyxDQUFDO1FBRUgsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNsQixXQUFXLEVBQUU7Z0JBQ1gsZ0JBQWdCLEVBQUU7b0JBQ2hCLE1BQU0sRUFBRSxtQkFBbUI7b0JBQzNCLFlBQVksRUFBRTt3QkFDWixvQkFBb0IsRUFBRSxrQkFBa0I7d0JBQ3hDLE9BQU8sRUFBRSxTQUFTO3FCQUNuQjtpQkFDRjthQUNGO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxJQUFVO1FBQ2xDLFFBQVE7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU5QixPQUFPO1FBQ1AsSUFBSSxnQkFBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDN0IsUUFBUSxFQUFFLGNBQWM7WUFDeEIsa0JBQWtCLEVBQUUsa0JBQWtCO1NBQ3ZDLENBQUMsQ0FBQztRQUVILE9BQU87UUFDUCxlQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFZLENBQUMsbUJBQW1CLEVBQUU7WUFDakQsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFD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QUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4cGVjdCwgaGF2ZVJlc291cmNlIH0gZnJvbSAnQGF3cy1jZGsvYXNzZXJ0JztcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdAYXdzLWNkay9jZGsnO1xuaW1wb3J0IHsgVGVzdCB9IGZyb20gJ25vZGV1bml0JztcbmltcG9ydCB7IElFdmVudFJ1bGVUYXJnZXQgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgRXZlbnRSdWxlIH0gZnJvbSAnLi4vbGliL3J1bGUnO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1rZXktcXVvdGVzXG5cbmV4cG9ydCA9IHtcbiAgICAnZGVmYXVsdCBydWxlJyh0ZXN0OiBUZXN0KSB7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgICAgIG5ldyBFdmVudFJ1bGUoc3RhY2ssICdNeVJ1bGUnLCB7XG4gICAgICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246ICdyYXRlKDEwIG1pbnV0ZXMpJ1xuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3Qoc3RhY2spLnRvTWF0Y2goe1xuICAgICAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgICBcIk15UnVsZUE0NEFCODMxXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjogXCJBV1M6OkV2ZW50czo6UnVsZVwiLFxuICAgICAgICAgICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiBcInJhdGUoMTAgbWludXRlcylcIixcbiAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjogXCJFTkFCTEVEXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRlc3QuZG9uZSgpO1xuICAgIH0sXG5cbiAgICAncnVsZSB3aXRoIHBoeXNpY2FsIG5hbWUnKHRlc3Q6IFRlc3QpIHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgbmV3IEV2ZW50UnVsZShzdGFjaywgJ015UnVsZScsIHtcbiAgICAgICAgcnVsZU5hbWU6ICdQaHlzaWNhbE5hbWUnLFxuICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246ICdyYXRlKDEwIG1pbnV0ZXMpJ1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlKCdBV1M6OkV2ZW50czo6UnVsZScsIHtcbiAgICAgICAgTmFtZTogJ1BoeXNpY2FsTmFtZSdcbiAgICAgIH0pKTtcblxuICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdldmVudFBhdHRlcm4gaXMgcmVuZGVyZWQgcHJvcGVybHknKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAgICAgbmV3IEV2ZW50UnVsZShzdGFjaywgJ015UnVsZScsIHtcbiAgICAgICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgICAgICAgIGFjY291bnQ6IFsgJ2FjY291bnQxJywgJ2FjY291bnQyJyBdLFxuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgICBmb286IFsgMSwgMiBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGV0YWlsVHlwZTogWyAnZGV0YWlsVHlwZTEnIF0sXG4gICAgICAgICAgICAgICAgaWQ6IFsgJ2lkMScsICdpZDInIF0sXG4gICAgICAgICAgICAgICAgcmVnaW9uOiBbICdyZWdpb24xJywgJ3JlZ2lvbjInLCAncmVnaW9uMycgXSxcbiAgICAgICAgICAgICAgICByZXNvdXJjZXM6IFsgJ3IxJyBdLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogWyAnc3JjMScsICdzcmMyJyBdLFxuICAgICAgICAgICAgICAgIHRpbWU6IFsgJ3QxJyBdLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IFsgJzAnIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZXhwZWN0KHN0YWNrKS50b01hdGNoKHtcbiAgICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgICAgXCJNeVJ1bGVBNDRBQjgzMVwiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IFwiQVdTOjpFdmVudHM6OlJ1bGVcIixcbiAgICAgICAgICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJFdmVudFBhdHRlcm5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudDogWyAnYWNjb3VudDEnLCAnYWNjb3VudDInIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHsgZm9vOiBbIDEsIDIgXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RldGFpbC10eXBlJzogWyAnZGV0YWlsVHlwZTEnIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogWyAnaWQxJywgJ2lkMicgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbjogWyAncmVnaW9uMScsICdyZWdpb24yJywgJ3JlZ2lvbjMnIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXM6IFsgJ3IxJyBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBbICdzcmMxJywgJ3NyYzInIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lOiBbICd0MScgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb246IFsgJzAnIF1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiBcIkVOQUJMRURcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuXG4gICAgJ2ZhaWxzIHN5bnRoZXNpcyBpZiBuZWl0aGVyIGV2ZW50UGF0dGVybiBub3Igc2NoZXVkbGVFeHByZXNzaW9uIGFyZSBzcGVjaWZpZWQnKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgJ015U3RhY2snKTtcbiAgICAgICAgbmV3IEV2ZW50UnVsZShzdGFjaywgJ1J1bGUnKTtcbiAgICAgICAgdGVzdC50aHJvd3MoKCkgPT4gYXBwLnN5bnRoZXNpemVTdGFjayhzdGFjay5uYW1lKSwgL0VpdGhlciAnZXZlbnRQYXR0ZXJuJyBvciAnc2NoZWR1bGVFeHByZXNzaW9uJyBtdXN0IGJlIGRlZmluZWQvKTtcbiAgICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdhZGRFdmVudFBhdHRlcm4gY2FuIGJlIHVzZWQgdG8gYWRkIGZpbHRlcnMnKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAgICAgY29uc3QgcnVsZSA9IG5ldyBFdmVudFJ1bGUoc3RhY2ssICdNeVJ1bGUnKTtcbiAgICAgICAgcnVsZS5hZGRFdmVudFBhdHRlcm4oe1xuICAgICAgICAgICAgYWNjb3VudDogWyAnMTIzNDUnIF0sXG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICBmb286IFsgJ2hlbGxvJyBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJ1bGUuYWRkRXZlbnRQYXR0ZXJuKHtcbiAgICAgICAgICAgIHNvdXJjZTogWyAnYXdzLnNvdXJjZScgXSxcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgIGZvbzogWyAnYmFyJyBdLFxuICAgICAgICAgICAgICAgIGdvbzoge1xuICAgICAgICAgICAgICAgICAgICBoZWxsbzogWyAnd29ybGQnIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdChzdGFjaykudG9NYXRjaCh7XG4gICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgIFwiTXlSdWxlQTQ0QUI4MzFcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6RXZlbnRzOjpSdWxlXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRXZlbnRQYXR0ZXJuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJhY2NvdW50XCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIjEyMzQ1XCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJkZXRhaWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiZm9vXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGVsbG9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIFwiZ29vXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGVsbG9cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIndvcmxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcImF3cy5zb3VyY2VcIlxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiBcIkVOQUJMRURcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICd0YXJnZXRzIGNhbiBiZSBhZGRlZCB2aWEgcHJvcHMgb3IgYWRkVGFyZ2V0IHdpdGggaW5wdXQgdHJhbnNmb3JtZXInKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgICAgIGNvbnN0IHQxOiBJRXZlbnRSdWxlVGFyZ2V0ID0ge1xuICAgICAgICAgICAgYXNFdmVudFJ1bGVUYXJnZXQ6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6ICdUMScsXG4gICAgICAgICAgICAgICAgYXJuOiAnQVJOMScsXG4gICAgICAgICAgICAgICAga2luZXNpc1BhcmFtZXRlcnM6IHsgcGFydGl0aW9uS2V5UGF0aDogJ3BhcnRpdGlvbktleVBhdGgnIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdDI6IElFdmVudFJ1bGVUYXJnZXQgPSB7XG4gICAgICAgICAgICBhc0V2ZW50UnVsZVRhcmdldDogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICBpZDogJ1QyJyxcbiAgICAgICAgICAgICAgICBhcm46ICdBUk4yJyxcbiAgICAgICAgICAgICAgICByb2xlQXJuOiAnSUFNLVJPTEUtQVJOJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBydWxlID0gbmV3IEV2ZW50UnVsZShzdGFjaywgJ0V2ZW50UnVsZScsIHtcbiAgICAgICAgICAgIHRhcmdldHM6IFsgdDEgXSxcbiAgICAgICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogJ3JhdGUoNSBtaW51dGVzKSdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcnVsZS5hZGRUYXJnZXQodDIsIHtcbiAgICAgICAgICAgIHRleHRUZW1wbGF0ZTogJ1RoaXMgaXMgPGJsYT4nLFxuICAgICAgICAgICAgcGF0aHNNYXA6IHtcbiAgICAgICAgICAgICAgICBibGE6ICckLmRldGFpbC5ibGEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdChzdGFjaykudG9NYXRjaCh7XG4gICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXZlbnRSdWxlNUE0OTFEMkNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6RXZlbnRzOjpSdWxlXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IFwicmF0ZSg1IG1pbnV0ZXMpXCIsXG4gICAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IFwiRU5BQkxFRFwiLFxuICAgICAgICAgICAgICAgICAgXCJUYXJnZXRzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCI6IFwiQVJOMVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiSWRcIjogXCJUMVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiS2luZXNpc1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlQYXRoXCI6IFwicGFydGl0aW9uS2V5UGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIjogXCJBUk4yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiBcIlQyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRyYW5zZm9ybWVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5wdXRQYXRoc01hcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmxhXCI6IFwiJC5kZXRhaWwuYmxhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIjogXCJcXFwiVGhpcyBpcyA8YmxhPlxcXCJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQXJuXCI6IFwiSUFNLVJPTEUtQVJOXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdpbnB1dCB0ZW1wbGF0ZSBjYW4gY29udGFpbiB0b2tlbnMnKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgICAgIGNvbnN0IHQxOiBJRXZlbnRSdWxlVGFyZ2V0ID0ge1xuICAgICAgICAgICAgYXNFdmVudFJ1bGVUYXJnZXQ6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6ICdUMScsIGFybjogJ0FSTjEnLCBraW5lc2lzUGFyYW1ldGVyczogeyBwYXJ0aXRpb25LZXlQYXRoOiAncGFydGl0aW9uS2V5UGF0aCcgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCB0MjogSUV2ZW50UnVsZVRhcmdldCA9IHsgYXNFdmVudFJ1bGVUYXJnZXQ6ICgpID0+ICh7IGlkOiAnVDInLCBhcm46ICdBUk4yJywgcm9sZUFybjogJ0lBTS1ST0xFLUFSTicgfSkgfTtcbiAgICAgICAgY29uc3QgdDM6IElFdmVudFJ1bGVUYXJnZXQgPSB7IGFzRXZlbnRSdWxlVGFyZ2V0OiAoKSA9PiAoeyBpZDogJ1QzJywgYXJuOiAnQVJOMycgfSkgfTtcbiAgICAgICAgY29uc3QgdDQ6IElFdmVudFJ1bGVUYXJnZXQgPSB7IGFzRXZlbnRSdWxlVGFyZ2V0OiAoKSA9PiAoeyBpZDogJ1Q0JywgYXJuOiAnQVJONCcgfSkgfTtcblxuICAgICAgICBjb25zdCBydWxlID0gbmV3IEV2ZW50UnVsZShzdGFjaywgJ0V2ZW50UnVsZScsIHsgc2NoZWR1bGVFeHByZXNzaW9uOiAncmF0ZSgxIG1pbnV0ZSknIH0pO1xuXG4gICAgICAgIC8vIGEgcGxhaW4gc3RyaW5nIHNob3VsZCBqdXN0IGJlIHN0cmluZ2lmaWVkIChpLmUuIGRvdWJsZSBxdW90ZXMgYWRkZWQgYW5kIGVzY2FwZWQpXG4gICAgICAgIHJ1bGUuYWRkVGFyZ2V0KHQyLCB7XG4gICAgICAgICAgICB0ZXh0VGVtcGxhdGU6ICdIZWxsbywgXCJ3b3JsZFwiJ1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyB0b2tlbnMgYXJlIHVzZWQgaGVyZSAoRm5Db25jYXQpLCBidXQgdGhpcyBpcyBhIHRleHQgdGVtcGxhdGUgc28gd2VcbiAgICAgICAgLy8gZXhwZWN0IGl0IHRvIGJlIHdyYXBwZWQgaW4gZG91YmxlIHF1b3RlcyBhdXRvbWF0aWNhbGx5IGZvciB1cy5cbiAgICAgICAgcnVsZS5hZGRUYXJnZXQodDEsIHtcbiAgICAgICAgICAgIHRleHRUZW1wbGF0ZTogbmV3IGNkay5GbkNvbmNhdCgnYScsICdiJylcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8ganNvblRlbXBsYXRlIGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBKU09OIGRvY3VtZW50cyB3aXRoIHJlcGxhY2VtZW50c1xuICAgICAgICBydWxlLmFkZFRhcmdldCh0Mywge1xuICAgICAgICAgICAganNvblRlbXBsYXRlOiAneyBcImZvb1wiOiA8YmFyPiB9JyxcbiAgICAgICAgICAgIHBhdGhzTWFwOiB7XG4gICAgICAgICAgICAgICAgYmFyOiAnJC5kZXRhaWwuYmFyJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyB0b2tlbnMgY2FuIGFsc28gdXNlZCBmb3IgSlNPTiB0ZW1wbGF0ZXMsIGJ1dCB0aGF0IG1lYW5zIGVzY2FwaW5nIGlzXG4gICAgICAgIC8vIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgdXNlci5cbiAgICAgICAgcnVsZS5hZGRUYXJnZXQodDQsIHtcbiAgICAgICAgICAgIGpzb25UZW1wbGF0ZTogbmV3IGNkay5GbkpvaW4oJyAnLCBbJ1wiJywgJ2hlbGxvJywgJ1xcXCJ3b3JsZFxcXCInLCAnXCInXSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdChzdGFjaykudG9NYXRjaCh7XG4gICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXZlbnRSdWxlNUE0OTFEMkNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiBcIkFXUzo6RXZlbnRzOjpSdWxlXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiBcIkVOQUJMRURcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTY2hlZHVsZUV4cHJlc3Npb25cIjogXCJyYXRlKDEgbWludXRlKVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlRhcmdldHNcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCI6IFwiQVJOMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiBcIlQyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VHJhbnNmb3JtZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIjogXCJcXFwiSGVsbG8sIFxcXFxcXFwid29ybGRcXFxcXFxcIlxcXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUm9sZUFyblwiOiBcIklBTS1ST0xFLUFSTlwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkFyblwiOiBcIkFSTjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSWRcIjogXCJUMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRyYW5zZm9ybWVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnB1dFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkZuOjpKb2luXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJLaW5lc2lzUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGl0aW9uS2V5UGF0aFwiOiBcInBhcnRpdGlvbktleVBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIjogXCJBUk4zXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklkXCI6IFwiVDNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5wdXRUcmFuc2Zvcm1lclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5wdXRQYXRoc01hcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYXJcIjogXCIkLmRldGFpbC5iYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIjogXCJ7IFxcXCJmb29cXFwiOiA8YmFyPiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCI6IFwiQVJONFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiBcIlQ0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VHJhbnNmb3JtZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRm46OkpvaW5cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhlbGxvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxcIndvcmxkXFxcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuXG4gICAgJ2FzRXZlbnRSdWxlVGFyZ2V0IGNhbiB1c2UgdGhlIHJ1bGVBcm4gYW5kIGEgdW5pcXVlSWQgb2YgdGhlIHJ1bGUnKHRlc3Q6IFRlc3QpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAgICAgbGV0IHJlY2VpdmVkUnVsZUFybiA9ICdGQUlMJztcbiAgICAgICAgbGV0IHJlY2VpdmVkUnVsZUlkID0gJ0ZBSUwnO1xuXG4gICAgICAgIGNvbnN0IHQxOiBJRXZlbnRSdWxlVGFyZ2V0ID0ge1xuICAgICAgICAgICAgYXNFdmVudFJ1bGVUYXJnZXQ6IChydWxlQXJuOiBzdHJpbmcsIHJ1bGVJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRSdWxlQXJuID0gcnVsZUFybjtcbiAgICAgICAgICAgICAgICByZWNlaXZlZFJ1bGVJZCA9IHJ1bGVJZDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAnVDEnLFxuICAgICAgICAgICAgICAgICAgICBhcm46ICdBUk4xJyxcbiAgICAgICAgICAgICAgICAgICAga2luZXNpc1BhcmFtZXRlcnM6IHsgcGFydGl0aW9uS2V5UGF0aDogJ3BhcnRpdGlvbktleVBhdGgnIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJ1bGUgPSBuZXcgRXZlbnRSdWxlKHN0YWNrLCAnRXZlbnRSdWxlJyk7XG4gICAgICAgIHJ1bGUuYWRkVGFyZ2V0KHQxKTtcblxuICAgICAgICB0ZXN0LmRlZXBFcXVhbChyZXNvbHZlKHJlY2VpdmVkUnVsZUFybiksIHJlc29sdmUocnVsZS5ydWxlQXJuKSk7XG4gICAgICAgIHRlc3QuZGVlcEVxdWFsKHJlY2VpdmVkUnVsZUlkLCBydWxlLnVuaXF1ZUlkKTtcbiAgICAgICAgdGVzdC5kb25lKCk7XG4gICAgfVxufTtcbiJdfQ==

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc