truemark-cdk-lib 1.7.5 → 1.7.7-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -73,8 +73,8 @@ class StandardTags {
73
73
  this.addCostCenterTags(standardTagsProps.costCenterTags);
74
74
  this.addSecurityTags(standardTagsProps.securityTags);
75
75
  this.addTeamTags(standardTagsProps.teamTags);
76
- if (props === null || props === void 0 ? void 0 : props.mapMigrated) {
77
- this.tags.add("map-migrated", props.mapMigrated);
76
+ if (standardTagsProps === null || standardTagsProps === void 0 ? void 0 : standardTagsProps.mapMigrated) {
77
+ this.tags.add("map-migrated", standardTagsProps.mapMigrated);
78
78
  }
79
79
  }
80
80
  /**
@@ -289,4 +289,4 @@ class StandardTags {
289
289
  }
290
290
  }
291
291
  exports.StandardTags = StandardTags;
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YW5kYXJkLXRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXlEO0FBK0d6RDs7R0FFRztBQUNILElBQVksa0JBeUJYO0FBekJELFdBQVksa0JBQWtCO0lBQzVCOzs7T0FHRztJQUNILDREQUFzQyxDQUFBO0lBRXRDOzs7O09BSUc7SUFDSCwrQ0FBeUIsQ0FBQTtJQUV6Qjs7OztPQUlHO0lBQ0gsK0NBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCx1Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBekJXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBeUI3QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxlQXNCWDtBQXRCRCxXQUFZLGVBQWU7SUFFekI7O09BRUc7SUFDSCw4QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCw4QkFBVyxDQUFBO0lBRVg7OztPQUdHO0lBQ0gsOEJBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUF0QlcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFzQjFCO0FBK0hEOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBaUJ2Qjs7Ozs7T0FLRztJQUNILFlBQVksS0FBZ0IsRUFBRSxLQUF5Qjs7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxTQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlLG1DQUFJLEtBQUssQ0FBQztRQUNsRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLENB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LEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVE7Z0JBQ2pCLEdBQUcsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFFBQVE7YUFDaEIsQ0FBQTtTQUNGO1FBQ0QsT0FBTztZQUNMLFdBQVcsUUFBRSxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsV0FBVyxtQ0FBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsV0FBVztZQUNqRCx1QkFBdUI7WUFDdkIsY0FBYztZQUNkLGNBQWM7WUFDZCxZQUFZO1lBQ1osUUFBUTtTQUNULENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUEzUEQsb0NBMlBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0YWNrLCBTdGFnZSwgVGFnUHJvcHMsIFRhZ3N9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGF1dG9tYXRpb24gY29tcG9uZW50IHRhZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGlvbkNvbXBvbmVudFRhZ3NQcm9wcyBleHRlbmRzIFRhZ1Byb3BzIHtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVuZG9yIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSB2ZW5kb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYXV0b21hdGlvbiB0YWdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpb25UYWdzUHJvcHMgZXh0ZW5kcyBUYWdQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3RhY2suIElmIG9uZSBpZiBub3QgcHJvdmlkZWQsIHRoZSBuYW1lIG9mIHRoZSBzdGFjayBpcyB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgdG8gd2hlcmUgdGhlIGF1dG9tYXRpb24gaXMgc3RvcmVkIG9yIHB1Ymxpc2hlZC4gVGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICAgKiB3aGVuIGFwcGx5aW5nIGF1dG9tYXRpb24gdGFncy5cbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb3N0IGNlbnRlciB0YWdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvc3RDZW50ZXJUYWdzUHJvcHMgZXh0ZW5kcyBUYWdQcm9wcyB7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHByb2plY3QgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSBjb3N0cy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3ROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgcHJvamVjdCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIGNvc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCBpbmN1cnJpbmcgdGhlIGNvc3RzLiBFeGFtcGxlIFwic3RhZ2VcIiBvciBcInByb2RcIlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGNvbnRhY3QgcmVzcG9uc2libGUgZm9yIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICogSWYgbm90IHNldCwgdGhlIHRhZyBpcyBub3QgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhY3ROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWFpbCBvZiB0aGUgY29udGFjdCByZXNwb25zaWJsZSBmb3IgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICogSWYgbm90IHNldCwgdGhlIHRhZyBpcyBub3QgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhY3RFbWFpbD86IHN0cmluZztcblxuICAvKipcbiAgICogUGhvbmUgbnVtYmVyIG9mIHRoZSBjb250YWN0IHJlc3BvbnNpYmxlIGZvciBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqIElmIG5vdCBzZXQsIHRoZSB0YWcgaXMgbm90IGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWN0UGhvbmU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJ1c2luZXNzIHVuaXQgcmVzcG9uc2libGUgZm9yIHRoZSBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBidXNpbmVzc1VuaXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgYnVzaW5lc3MgdW5pdCByZXNwb25zaWJsZSBmb3IgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1c2luZXNzVW5pdElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBidXNpbmVzcyBkaXZpc2lvbiByZXNwb25zaWJsZSBmb3IgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRpdmlzaW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGJ1c2luZXNzIGRpdmlzaW9uIHJlc3BvbnNpYmxlIGZvciB0aGUgY29zdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWdnZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGl2aXNpb25JZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZGVwYXJ0bWVudCByZXNwb25zaWJsZSBmb3IgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGFydG1lbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgZGVwYXJ0bWVudCByZXNwb25zaWJsZSBmb3IgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGFydG1lbnRJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIb2xkcyB2YWx1ZXMgdGhhdCBtYXkgYmUgYXBwbGllZCB0byB0aGUgZGF0YS1jbGFzc2lmaWNhdGlvbiBzZWN1cml0eSB0YWcuXG4gKi9cbmV4cG9ydCBlbnVtIERhdGFDbGFzc2lmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gZGF0YSBtYXkgbm90IGxlYXZlIHRoZSBnZW9ncmFwaGljIHJlZ2lvbiBpbiB3aGljaCBpdCBpcyBzdG9yZWQuXG4gICAqIFRoaXMgaXMgdXN1YWxseSByZWxhdGVkIHRvIGdvdmVybm1lbnQgcmVzdHJpY3Rpb25zIGFwcGxpZWQgdG8gdGhlIGRhdGEuXG4gICAqL1xuICBFeHBvcnRSZXN0cmljdGVkID0gXCJleHBvcnQtcmVzdHJpY3RlZFwiLFxuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gdW5hdXRob3JpemVkIGRpc2Nsb3N1cmUsIGFsdGVyYXRpb24gb3IgZGVzdHJ1Y3Rpb24gb2YgZGF0YSB3b3VsZFxuICAgKiByZXN1bHQgaW4gYSBzaWduaWZpY2FudCByaXNrIHRvIHRoZSBvcmdhbml6YXRpb24uIFRoaXMgaW5jbHVkZXMgUElJLCBQSElcbiAgICogYW5kIFBDSSBkYXRhLlxuICAgKi9cbiAgUmVzdHJpY3RlZCA9IFwicmVzdHJpY3RlZFwiLFxuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gdW5hdXRob3JpemVkIGRpc2Nsb3N1cmUsIGFsdGVyYXRpb24gb3IgZGVzdHJ1Y3Rpb24gb2YgdGhlIGRhdGEgd291bGRcbiAgICogcmVzdWx0IGluIG1vZGVyYXRlIHJpc2suIFRoaXMgaW5jbHVkZXMgYWxsIGRhdGEgdGhhdCBpcyBub3QgaW4gb25lIG9mIHRoZSBvdGhlclxuICAgKiBjbGFzc2lmaWNhdGlvbnMuXG4gICAqL1xuICBDb250cm9sbGVkID0gXCJjb250cm9sbGVkXCIsXG5cbiAgLyoqXG4gICAqIFVzZWQgd2hlbiBoYW5kbGVkIG9yIHN0b3JlZCBkYXRhIHJlYWRpbHkgYXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMuXG4gICAqL1xuICBQdWJsaWMgPSBcInB1YmxpY1wiXG59XG5cbi8qKlxuICogSG9sZHMgdmFsdWVzIHRoYXQgbWF5IGJlIGFwcGxpZWQgdG8gdGhlIGRhdGEtc2Vuc2l0aXZpdHkgc2VjdXJpdHkgdGFnLlxuICovXG5leHBvcnQgZW51bSBEYXRhU2Vuc2l0aXZpdHkge1xuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gcmVzb3VyY2VzIGFyZSBpbiBQQ0kgc2NvcGUuXG4gICAqL1xuICBQQ0kgPSBcInBjaVwiLFxuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gcmVzb3VyY2VzIGhhbmRsZSBvciBzdG9yZSBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIFBJSSA9IFwicGlpXCIsXG5cbiAgLyoqXG4gICAqIFVzZWQgd2hlbiByZXNvdXJjZXMgaGFuZGxlIG9yIHN0b3JlIHBlcnNvbmFsIGhlYWx0aCBpbmZvcm1hdGlvbiBhbmQgYXJlXG4gICAqIHN1YmplY3QgdG8gSElQUEEgcnVsZXMuXG4gICAqL1xuICBQSEkgPSBcInBoaVwiLFxuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gdGhlcmUgaXMgbm8gZGF0YSBzZW5zaXRpdml0eS5cbiAgICovXG4gIE5PTkUgPSBcIm5vbmVcIlxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHNlY3VyaXR5IHRhZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlUYWdzUHJvcHMgZXh0ZW5kcyBUYWdQcm9wcyB7XG5cbiAgLyoqXG4gICAqIERhdGEgY2xhc3NpZmljYXRpb24gdmFsdWUuIFNlZSB0aGUgVHJ1ZU1hcmsgQVdTIHRhZ2dpbmcgc3RyYXRlZ3kgZG9jdW1lbnRhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFDbGFzc2lmaWNhdGlvbj86IERhdGFDbGFzc2lmaWNhdGlvbjtcblxuICAvKipcbiAgICogRGF0YSBzZW5zaXRpdml0eS4gU2VlIHRoZSBUcnVlTWFyayBBV1MgdGFnZ2luZyBzdHJhdGVneSBkb2N1bWVudGF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVNlbnNpdGl2aXR5PzogRGF0YVNlbnNpdGl2aXR5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRlYW0gdGFncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZWFtVGFnc1Byb3BzIGV4dGVuZHMgVGFnUHJvcHMge1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB0ZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBpZiBkaWZmZXJlbnQgdGhhbiB0aGUgdGVhbSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRlYW0gbGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhY3ROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWFpbCBvZiB0aGUgdGVhbSBsZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFjdEVtYWlsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaG9uZSBudW1iZXIgZm9yIHRoZSB0ZWFtIGxlYWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWN0UGhvbmU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJ1c2luZXNzIHVuaXQgcmVzcG9uc2libGUgZm9yIHRoZSB0ZWFtIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1c2luZXNzVW5pdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIHRoZSBidXNpbmVzcyB1bml0IHJlc3BvbnNpYmxlIGZvciB0aGUgdGVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBidXNpbmVzc1VuaXRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYnVzaW5lc3MgZGl2aXNpb24gcmVzcG9uc2libGUgZm9yIHRoZSB0ZWFtIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRpdmlzaW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGJ1c2luZXNzIGRpdmlzaW9uIHJlc3BvbnNpYmxlIGZvciB0aGUgdGVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkaXZpc2lvbklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBkZXBhcnRtZW50IHJlc3BvbnNpYmxlIGZvciB0aGUgdGVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkZXBhcnRtZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGRlcGFydG1lbnQgcmVzcG9uc2libGUgZm9yIHRoZSB0ZWFtIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGFydG1lbnRJZD86IHN0cmluZztcbn1cblxuLy8gVE9ETyBOZWVkIHRvIHN1cHBvcnQgYnVzaW5lc3MgdW5pdCwgZGl2aXNpb24gYW5kIGRlcGFydG1lbnRcbi8vIFRPRE8gTmVlZCB0byBtYWtlIHRhZ3MgY29uc2lzdGVudCBiZXR3ZWVuIGVsZW1lbnRzXG4vLyBUT0RPIE5lZWQgdG8gYWRkIHRpdGxlIGZvciBwZW9wbGVcbi8vIFRPRE8gSSBoYXRlIGhvdyB3ZSBoYXZlIHRvIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudCB0YWdcbi8qKlxuICogQ29udGFpbnMgc3RhbmRhcmQgdGFnZ2luZyBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkVGFnc1Byb3BzIHtcblxuICAvKipcbiAgICogQXV0b21hdGlvbiBjb21wb25lbnQgdGFncy5cbiAgICovXG4gIHJlYWRvbmx5IGF1dG9tYXRpb25Db21wb25lbnRUYWdzPzogQXV0b21hdGlvbkNvbXBvbmVudFRhZ3NQcm9wcztcblxuICAvKipcbiAgICogQXV0b21hdGlvbiB0YWdzIHRvIGFwcGx5IHRvIGNyZWF0ZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b21hdGlvblRhZ3M/OiBBdXRvbWF0aW9uVGFnc1Byb3BzO1xuXG4gIC8qKlxuICAgKiBDb3N0IGNlbnRlciB0YWdzIHRvIGFwcGx5IHRvIGNyZWF0ZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29zdENlbnRlclRhZ3M/OiBDb3N0Q2VudGVyVGFnc1Byb3BzO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSB0YWdzIHRvIGFwcGx5IHRvIGNyZWF0ZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlUYWdzPzogU2VjdXJpdHlUYWdzUHJvcHM7XG5cbiAgLyoqXG4gICAqIFRlYW0gdGFncyB0byBhcHBseSB0byBjcmVhdGVkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRlYW1UYWdzPzogVGVhbVRhZ3NQcm9wcztcblxuICAvKipcbiAgICogVGhlIG1hcCBtaWdyYXRlZCB0YWcgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBtYXBNaWdyYXRlZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBzdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgdGFncyB0aGlzIHJlc291cmNlIGNyZWF0ZXMuXG4gICAqIERlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN1cHByZXNzVGFnZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvdmlkZXMgY29udmVuaWVuY2UgbWV0aG9kcyB0byB0YWcgcmVzb3VyY2VzIGZvbGxvd2luZyBUcnVlTWFyaydzIHRhZ2dpbmcgc3RyYXRlZ3kuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZFRhZ3Mge1xuXG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgYmVpbmcgdGFnZ2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogVGhlIHRhZ3MuXG4gICAqL1xuICByZWFkb25seSB0YWdzOiBUYWdzO1xuXG4gIC8qKlxuICAgKiBJZiB0YWdzIHdlcmUgc3VwcHJlc3NlZC5cbiAgICovXG4gIHJlYWRvbmx5IHN1cHByZXNzZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RhbmRhcmRUYWdzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIHRhZ1xuICAgKiBAcGFyYW0gcHJvcHMgdGhlIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzPzogU3RhbmRhcmRUYWdzUHJvcHMpIHtcbiAgICB0aGlzLnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy50YWdzID0gVGFncy5vZihzY29wZSk7XG4gICAgdGhpcy5zdXBwcmVzc2VkID0gcHJvcHM/LnN1cHByZXNzVGFnZ2luZyA/PyBmYWxzZTtcbiAgICBjb25zdCBzdGFuZGFyZFRhZ3NQcm9wcyA9IFN0YW5kYXJkVGFncy5tZXJnZShzY29wZS5ub2RlLnRyeUdldENvbnRleHQoXCJzdGFuZGFyZFRhZ3NcIiksIHByb3BzKTtcbiAgICB0aGlzLmFkZEF1dG9tYXRpb25Db21wb25lbnRUYWdzKHN0YW5kYXJkVGFnc1Byb3BzLmF1dG9tYXRpb25Db21wb25lbnRUYWdzKTtcbiAgICB0aGlzLmFkZEF1dG9tYXRpb25UYWdzKHN0YW5kYXJkVGFnc1Byb3BzLmF1dG9tYXRpb25UYWdzKTtcbiAgICB0aGlzLmFkZENvc3RDZW50ZXJUYWdzKHN0YW5kYXJkVGFnc1Byb3BzLmNvc3RDZW50ZXJUYWdzKTtcbiAgICB0aGlzLmFkZFNlY3VyaXR5VGFncyhzdGFuZGFyZFRhZ3NQcm9wcy5zZWN1cml0eVRhZ3MpO1xuICAgIHRoaXMuYWRkVGVhbVRhZ3Moc3RhbmRhcmRUYWdzUHJvcHMudGVhbVRhZ3MpO1xuICAgIGlmIChwcm9wcz8ubWFwTWlncmF0ZWQpIHtcbiAgICAgIHRoaXMudGFncy5hZGQoXCJtYXAtbWlncmF0ZWRcIiwgcHJvcHMubWFwTWlncmF0ZWQpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYXV0b21hdGlvbiBjb21wb25lbnQgdGFncy4gVGhlc2UgYXJlIG1lYW50IHRvIGJlIHVzZWQgaW4gaW5kaXZpZHVhbCBjb25zdHJ1Y3RzIHRvIGlkZW50aWZ5XG4gICAqIHdoYXQgcmVzb3VyY2VzIHdlcmUgc3Rvb2QgdXAgYnkgc3BlY2lmaWMgY29uc3RydWN0cy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIG9wdGlvbmFsIHByb3BlcnRpZXMgZm9yIHRoZSB0YWdzXG4gICAqL1xuICBhZGRBdXRvbWF0aW9uQ29tcG9uZW50VGFncyhwcm9wcz86IEF1dG9tYXRpb25Db21wb25lbnRUYWdzUHJvcHMpOiBTdGFuZGFyZFRhZ3Mge1xuICAgIGlmIChwcm9wcyAmJiAhdGhpcy5zdXBwcmVzc2VkKSB7XG4gICAgICBpZiAocHJvcHMuaWQgPT09IFwie3tUTUNES319XCIpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImF1dG9tYXRpb246Y29tcG9uZW50LWlkXCIsIHRoaXMuc2NvcGUuY29uc3RydWN0b3IubmFtZSwgcHJvcHMpO1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiYXV0b21hdGlvbjpjb21wb25lbnQtdXJsXCIsIFwiaHR0cHM6Ly9naXRodWIuY29tL3RydWVtYXJrL2Nka1wiLCBwcm9wcyk7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJhdXRvbWF0aW9uOmNvbXBvbmVudC12ZW5kb3JcIiwgXCJUcnVlTWFya1wiLCBwcm9wcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvcHMuaWQpIHtcbiAgICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiYXV0b21hdGlvbjpjb21wb25lbnQtaWRcIiwgcHJvcHMuaWQsIHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcHMudXJsKSB7XG4gICAgICAgICAgdGhpcy50YWdzLmFkZChcImF1dG9tYXRpb246Y29tcG9uZW50LXVybFwiLCBwcm9wcy51cmwsIHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcHMudmVuZG9yKSB7XG4gICAgICAgICAgdGhpcy50YWdzLmFkZChcImF1dG9tYXRpb246Y29tcG9uZW50LXZlbmRvclwiLCBwcm9wcy52ZW5kb3IsIHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGF1dG9tYXRpb24gdGFncy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgZm9yIHRoZSB0YWdzXG4gICAqL1xuICBhZGRBdXRvbWF0aW9uVGFncyhwcm9wcz86IEF1dG9tYXRpb25UYWdzUHJvcHMpOiBTdGFuZGFyZFRhZ3Mge1xuICAgIGlmICghdGhpcy5zdXBwcmVzc2VkKSB7XG4gICAgICBsZXQgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHByb3BzPy5pZFxuICAgICAgaWYgKCFTdGFnZS5pc1N0YWdlKHRoaXMuc2NvcGUpICYmICFpZCkge1xuICAgICAgICBpZCA9IFN0YWNrLm9mKHRoaXMuc2NvcGUpLnN0YWNrTmFtZVxuICAgICAgfVxuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJhdXRvbWF0aW9uOmlkXCIsIGlkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHM/LnVybCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiYXV0b21hdGlvbjp1cmxcIiwgcHJvcHMudXJsLCBwcm9wcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgY29zdCBjZW50ZXIgdGFncy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgZm9yIHRoZSB0YWdzXG4gICAqL1xuICBhZGRDb3N0Q2VudGVyVGFncyhwcm9wcz86IENvc3RDZW50ZXJUYWdzUHJvcHMpOiBTdGFuZGFyZFRhZ3Mge1xuICAgIGlmIChwcm9wcyAmJiAhdGhpcy5zdXBwcmVzc2VkKSB7XG4gICAgICBpZiAocHJvcHMucHJvamVjdE5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOnByb2plY3QtbmFtZVwiLCBwcm9wcy5wcm9qZWN0TmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnByb2plY3RJZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6cHJvamVjdC1pZFwiLCBwcm9wcy5wcm9qZWN0SWQsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5lbnZpcm9ubWVudCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6ZW52aXJvbm1lbnRcIiwgcHJvcHMuZW52aXJvbm1lbnQsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5jb250YWN0TmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6Y29udGFjdC1uYW1lXCIsIHByb3BzLmNvbnRhY3ROYW1lLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY29udGFjdEVtYWlsKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpjb250YWN0LWVtYWlsXCIsIHByb3BzLmNvbnRhY3RFbWFpbCwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNvbnRhY3RQaG9uZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6Y29udGFjdC1waG9uZVwiLCBwcm9wcy5jb250YWN0UGhvbmUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5idXNpbmVzc1VuaXROYW1lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpidXNpbmVzcy11bml0LW5hbWVcIiwgcHJvcHMuYnVzaW5lc3NVbml0TmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmJ1c2luZXNzVW5pdElkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpidXNpbmVzcy11bml0LWlkXCIsIHByb3BzLmJ1c2luZXNzVW5pdElkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGl2aXNpb25OYW1lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpkaXZpc2lvbi1uYW1lXCIsIHByb3BzLmRpdmlzaW9uTmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRpdmlzaW9uSWQpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOmRpdmlzaW9uLWlkXCIsIHByb3BzLmRpdmlzaW9uSWQsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kZXBhcnRtZW50TmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6ZGVwYXJ0bWVudC1uYW1lXCIsIHByb3BzLmRlcGFydG1lbnROYW1lLCBwcm9wcylcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kZXBhcnRtZW50SWQpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOmRlcGFydG1lbnQtaWRcIiwgcHJvcHMuZGVwYXJ0bWVudElkLCBwcm9wcylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBzZWN1cml0eSB0YWdzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyBmb3Igc2VjdXJpdHkgdGFnc1xuICAgKi9cbiAgYWRkU2VjdXJpdHlUYWdzKHByb3BzPzogU2VjdXJpdHlUYWdzUHJvcHMpOiBTdGFuZGFyZFRhZ3Mge1xuICAgIGlmIChwcm9wcyAmJiAhdGhpcy5zdXBwcmVzc2VkKSB7XG4gICAgICBpZiAocHJvcHMuZGF0YUNsYXNzaWZpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJzZWN1cml0eTpkYXRhLWNsYXNzaWZpY2F0aW9uXCIsIHByb3BzLmRhdGFDbGFzc2lmaWNhdGlvbiwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRhdGFTZW5zaXRpdml0eSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwic2VjdXJpdHk6ZGF0YS1zZW5zaXRpdml0eVwiLCBwcm9wcy5kYXRhU2Vuc2l0aXZpdHksIHByb3BzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0ZWFtIHRhZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzIGZvciB0ZWFtIHRhZ3NcbiAgICovXG4gIGFkZFRlYW1UYWdzKHByb3BzPzogVGVhbVRhZ3NQcm9wcyk6IFN0YW5kYXJkVGFncyB7XG4gICAgaWYgKHByb3BzICYmICF0aGlzLnN1cHByZXNzZWQpIHtcbiAgICAgIGlmIChwcm9wcy5uYW1lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOm5hbWVcIiwgcHJvcHMubmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmlkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmlkXCIsIHByb3BzLmlkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY29udGFjdE5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcInRlYW06Y29udGFjdC1uYW1lXCIsIHByb3BzLmNvbnRhY3ROYW1lLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY29udGFjdEVtYWlsKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmNvbnRhY3QtZW1haWxcIiwgcHJvcHMuY29udGFjdEVtYWlsLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY29udGFjdFBob25lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmNvbnRhY3QtcGhvbmVcIiwgcHJvcHMuY29udGFjdFBob25lLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYnVzaW5lc3NVbml0TmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpidXNpbmVzcy11bml0LW5hbWVcIiwgcHJvcHMuYnVzaW5lc3NVbml0TmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmJ1c2luZXNzVW5pdElkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmJ1c2luZXNzLXVuaXQtaWRcIiwgcHJvcHMuYnVzaW5lc3NVbml0SWQsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kaXZpc2lvbk5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcInRlYW06ZGl2aXNpb24tbmFtZVwiLCBwcm9wcy5kaXZpc2lvbk5hbWUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kaXZpc2lvbklkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmRpdmlzaW9uLWlkXCIsIHByb3BzLmRpdmlzaW9uSWQsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kZXBhcnRtZW50TmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpkZXBhcnRtZW50LW5hbWVcIiwgcHJvcHMuZGVwYXJ0bWVudE5hbWUsIHByb3BzKVxuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRlcGFydG1lbnRJZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpkZXBhcnRtZW50LWlkXCIsIHByb3BzLmRlcGFydG1lbnRJZCwgcHJvcHMpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBtZXJnZWQgU3RhbmRhcmRUYWdzUHJvcHMuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9tIHByb3BlcnRpZXMgdG8gc291cmNlIGZyb21cbiAgICogQHBhcmFtIHRvIHByb3BlcnRpZXMgdG8gc291cmNlIHRvXG4gICAqL1xuICBzdGF0aWMgbWVyZ2UoZnJvbT86IFN0YW5kYXJkVGFnc1Byb3BzLCB0bz86IFN0YW5kYXJkVGFnc1Byb3BzKTogU3RhbmRhcmRUYWdzUHJvcHMge1xuICAgIGxldCBhdXRvbWF0aW9uQ29tcG9uZW50VGFnczogQXV0b21hdGlvbkNvbXBvbmVudFRhZ3NQcm9wcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZnJvbT8uYXV0b21hdGlvbkNvbXBvbmVudFRhZ3MgfHwgdG8/LmF1dG9tYXRpb25Db21wb25lbnRUYWdzKSB7XG4gICAgICBhdXRvbWF0aW9uQ29tcG9uZW50VGFncyA9IHtcbiAgICAgICAgaWQ6IHRvPy5hdXRvbWF0aW9uQ29tcG9uZW50VGFncz8uaWQgPz8gZnJvbT8uYXV0b21hdGlvbkNvbXBvbmVudFRhZ3M/LmlkID8/IFwiXCIsXG4gICAgICAgIC4uLmZyb20/LmF1dG9tYXRpb25Db21wb25lbnRUYWdzLFxuICAgICAgICAuLi50bz8uYXV0b21hdGlvbkNvbXBvbmVudFRhZ3NcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGF1dG9tYXRpb25UYWdzOiBBdXRvbWF0aW9uVGFnc1Byb3BzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChmcm9tPy5hdXRvbWF0aW9uVGFncyB8fCB0bz8uYXV0b21hdGlvblRhZ3MpIHtcbiAgICAgIGF1dG9tYXRpb25UYWdzID0ge1xuICAgICAgICBpZDogdG8/LmF1dG9tYXRpb25UYWdzPy5pZCA/PyBmcm9tPy5hdXRvbWF0aW9uVGFncz8uaWQgPz8gXCJcIixcbiAgICAgICAgLi4uZnJvbT8uYXV0b21hdGlvblRhZ3MsXG4gICAgICAgIC4uLnRvPy5hdXRvbWF0aW9uVGFnc1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgY29zdENlbnRlclRhZ3M6IENvc3RDZW50ZXJUYWdzUHJvcHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGZyb20/LmNvc3RDZW50ZXJUYWdzIHx8IHRvPy5jb3N0Q2VudGVyVGFncykge1xuICAgICAgY29zdENlbnRlclRhZ3MgPSB7XG4gICAgICAgIGJ1c2luZXNzVW5pdE5hbWU6IHRvPy5jb3N0Q2VudGVyVGFncz8uYnVzaW5lc3NVbml0TmFtZSA/PyBmcm9tPy5jb3N0Q2VudGVyVGFncz8uYnVzaW5lc3NVbml0TmFtZSA/PyBcIlwiLFxuICAgICAgICBwcm9qZWN0TmFtZTogdG8/LmNvc3RDZW50ZXJUYWdzPy5wcm9qZWN0TmFtZSA/PyBmcm9tPy5jb3N0Q2VudGVyVGFncz8ucHJvamVjdE5hbWUgPz8gXCJcIixcbiAgICAgICAgLi4uZnJvbT8uY29zdENlbnRlclRhZ3MsXG4gICAgICAgIC4uLnRvPy5jb3N0Q2VudGVyVGFnc1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgc2VjdXJpdHlUYWdzOiBTZWN1cml0eVRhZ3NQcm9wcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZnJvbT8uc2VjdXJpdHlUYWdzIHx8IHRvPy5zZWN1cml0eVRhZ3MpIHtcbiAgICAgIHNlY3VyaXR5VGFncyA9IHtcbiAgICAgICAgZGF0YUNsYXNzaWZpY2F0aW9uOiB0bz8uc2VjdXJpdHlUYWdzPy5kYXRhQ2xhc3NpZmljYXRpb24gPz8gZnJvbT8uc2VjdXJpdHlUYWdzPy5kYXRhQ2xhc3NpZmljYXRpb24gPz8gRGF0YUNsYXNzaWZpY2F0aW9uLkNvbnRyb2xsZWQsXG4gICAgICAgIC4uLmZyb20/LnNlY3VyaXR5VGFncyxcbiAgICAgICAgLi4udG8/LnNlY3VyaXR5VGFnc1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgdGVhbVRhZ3M6IFRlYW1UYWdzUHJvcHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGZyb20/LnRlYW1UYWdzIHx8IHRvPy50ZWFtVGFncykge1xuICAgICAgdGVhbVRhZ3MgPSB7XG4gICAgICAgIG5hbWU6IHRvPy50ZWFtVGFncz8ubmFtZSA/PyBmcm9tPy50ZWFtVGFncz8ubmFtZSA/PyBcIlwiLFxuICAgICAgICAuLi5mcm9tPy50ZWFtVGFncyxcbiAgICAgICAgLi4udG8/LnRlYW1UYWdzXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBtYXBNaWdyYXRlZDogdG8/Lm1hcE1pZ3JhdGVkID8/IGZyb20/Lm1hcE1pZ3JhdGVkLFxuICAgICAgYXV0b21hdGlvbkNvbXBvbmVudFRhZ3MsXG4gICAgICBhdXRvbWF0aW9uVGFncyxcbiAgICAgIGNvc3RDZW50ZXJUYWdzLFxuICAgICAgc2VjdXJpdHlUYWdzLFxuICAgICAgdGVhbVRhZ3NcbiAgICB9XG4gIH1cbn1cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YW5kYXJkLXRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXlEO0FBK0d6RDs7R0FFRztBQUNILElBQVksa0JBeUJYO0FBekJELFdBQVksa0JBQWtCO0lBQzVCOzs7T0FHRztJQUNILDREQUFzQyxDQUFBO0lBRXRDOzs7O09BSUc7SUFDSCwrQ0FBeUIsQ0FBQTtJQUV6Qjs7OztPQUlHO0lBQ0gsK0NBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCx1Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBekJXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBeUI3QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxlQXNCWDtBQXRCRCxXQUFZLGVBQWU7SUFFekI7O09BRUc7SUFDSCw4QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCw4QkFBVyxDQUFBO0lBRVg7OztPQUdHO0lBQ0gsOEJBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsZ0NBQWEsQ0FBQTtBQUNmLENBQUMsRUF0QlcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFzQjFCO0FBK0hEOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBaUJ2Qjs7Ozs7T0FLRztJQUNILFlBQVksS0FBZ0IsRUFBRSxLQUF5Qjs7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxTQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlLG1DQUFJLEtBQUssQ0FBQztRQUNsRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLENB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QUFFO2dCQUN0RCxHQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRO2dCQUNqQixHQUFHLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxRQUFRO2FBQ2hCLENBQUE7U0FDRjtRQUNELE9BQU87WUFDTCxXQUFXLFFBQUUsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFdBQVcsbUNBQUksSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVc7WUFDakQsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsWUFBWTtZQUNaLFFBQVE7U0FDVCxDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBM1BELG9DQTJQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtTdGFjaywgU3RhZ2UsIFRhZ1Byb3BzLCBUYWdzfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhdXRvbWF0aW9uIGNvbXBvbmVudCB0YWdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpb25Db21wb25lbnRUYWdzUHJvcHMgZXh0ZW5kcyBUYWdQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlbmRvciBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgdmVuZG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGF1dG9tYXRpb24gdGFncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aW9uVGFnc1Byb3BzIGV4dGVuZHMgVGFnUHJvcHMge1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHN0YWNrLiBJZiBvbmUgaWYgbm90IHByb3ZpZGVkLCB0aGUgbmFtZSBvZiB0aGUgc3RhY2sgaXMgdXNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBTdGFjay5vZih0aGlzKS5zdGFja05hbWVcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIHRvIHdoZXJlIHRoZSBhdXRvbWF0aW9uIGlzIHN0b3JlZCBvciBwdWJsaXNoZWQuIFRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICogd2hlbiBhcHBseWluZyBhdXRvbWF0aW9uIHRhZ3MuXG4gICAqL1xuICByZWFkb25seSB1cmw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29zdCBjZW50ZXIgdGFncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3N0Q2VudGVyVGFnc1Byb3BzIGV4dGVuZHMgVGFnUHJvcHMge1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9qZWN0IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgY29zdHMuXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIHByb2plY3QgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSBjb3N0cy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgaW5jdXJyaW5nIHRoZSBjb3N0cy4gRXhhbXBsZSBcInN0YWdlXCIgb3IgXCJwcm9kXCJcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBjb250YWN0IHJlc3BvbnNpYmxlIGZvciBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqIElmIG5vdCBzZXQsIHRoZSB0YWcgaXMgbm90IGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW1haWwgb2YgdGhlIGNvbnRhY3QgcmVzcG9uc2libGUgZm9yIHRoZSBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqIElmIG5vdCBzZXQsIHRoZSB0YWcgaXMgbm90IGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWN0RW1haWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBob25lIG51bWJlciBvZiB0aGUgY29udGFjdCByZXNwb25zaWJsZSBmb3IgY29zdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWdnZWQgcmVzb3VyY2VzLlxuICAgKiBJZiBub3Qgc2V0LCB0aGUgdGFnIGlzIG5vdCBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFjdFBob25lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBidXNpbmVzcyB1bml0IHJlc3BvbnNpYmxlIGZvciB0aGUgY29zdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWdnZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVzaW5lc3NVbml0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGJ1c2luZXNzIHVuaXQgcmVzcG9uc2libGUgZm9yIHRoZSBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBidXNpbmVzc1VuaXRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYnVzaW5lc3MgZGl2aXNpb24gcmVzcG9uc2libGUgZm9yIHRoZSBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkaXZpc2lvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIHRoZSBidXNpbmVzcyBkaXZpc2lvbiByZXNwb25zaWJsZSBmb3IgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnZ2VkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGRpdmlzaW9uSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGRlcGFydG1lbnQgcmVzcG9uc2libGUgZm9yIHRoZSBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkZXBhcnRtZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgdGhlIGRlcGFydG1lbnQgcmVzcG9uc2libGUgZm9yIHRoZSBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkZXBhcnRtZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSG9sZHMgdmFsdWVzIHRoYXQgbWF5IGJlIGFwcGxpZWQgdG8gdGhlIGRhdGEtY2xhc3NpZmljYXRpb24gc2VjdXJpdHkgdGFnLlxuICovXG5leHBvcnQgZW51bSBEYXRhQ2xhc3NpZmljYXRpb24ge1xuICAvKipcbiAgICogVXNlZCB3aGVuIGRhdGEgbWF5IG5vdCBsZWF2ZSB0aGUgZ2VvZ3JhcGhpYyByZWdpb24gaW4gd2hpY2ggaXQgaXMgc3RvcmVkLlxuICAgKiBUaGlzIGlzIHVzdWFsbHkgcmVsYXRlZCB0byBnb3Zlcm5tZW50IHJlc3RyaWN0aW9ucyBhcHBsaWVkIHRvIHRoZSBkYXRhLlxuICAgKi9cbiAgRXhwb3J0UmVzdHJpY3RlZCA9IFwiZXhwb3J0LXJlc3RyaWN0ZWRcIixcblxuICAvKipcbiAgICogVXNlZCB3aGVuIHVuYXV0aG9yaXplZCBkaXNjbG9zdXJlLCBhbHRlcmF0aW9uIG9yIGRlc3RydWN0aW9uIG9mIGRhdGEgd291bGRcbiAgICogcmVzdWx0IGluIGEgc2lnbmlmaWNhbnQgcmlzayB0byB0aGUgb3JnYW5pemF0aW9uLiBUaGlzIGluY2x1ZGVzIFBJSSwgUEhJXG4gICAqIGFuZCBQQ0kgZGF0YS5cbiAgICovXG4gIFJlc3RyaWN0ZWQgPSBcInJlc3RyaWN0ZWRcIixcblxuICAvKipcbiAgICogVXNlZCB3aGVuIHVuYXV0aG9yaXplZCBkaXNjbG9zdXJlLCBhbHRlcmF0aW9uIG9yIGRlc3RydWN0aW9uIG9mIHRoZSBkYXRhIHdvdWxkXG4gICAqIHJlc3VsdCBpbiBtb2RlcmF0ZSByaXNrLiBUaGlzIGluY2x1ZGVzIGFsbCBkYXRhIHRoYXQgaXMgbm90IGluIG9uZSBvZiB0aGUgb3RoZXJcbiAgICogY2xhc3NpZmljYXRpb25zLlxuICAgKi9cbiAgQ29udHJvbGxlZCA9IFwiY29udHJvbGxlZFwiLFxuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gaGFuZGxlZCBvciBzdG9yZWQgZGF0YSByZWFkaWx5IGF2YWlsYWJsZSB0byB0aGUgcHVibGljLlxuICAgKi9cbiAgUHVibGljID0gXCJwdWJsaWNcIlxufVxuXG4vKipcbiAqIEhvbGRzIHZhbHVlcyB0aGF0IG1heSBiZSBhcHBsaWVkIHRvIHRoZSBkYXRhLXNlbnNpdGl2aXR5IHNlY3VyaXR5IHRhZy5cbiAqL1xuZXhwb3J0IGVudW0gRGF0YVNlbnNpdGl2aXR5IHtcblxuICAvKipcbiAgICogVXNlZCB3aGVuIHJlc291cmNlcyBhcmUgaW4gUENJIHNjb3BlLlxuICAgKi9cbiAgUENJID0gXCJwY2lcIixcblxuICAvKipcbiAgICogVXNlZCB3aGVuIHJlc291cmNlcyBoYW5kbGUgb3Igc3RvcmUgcGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24uXG4gICAqL1xuICBQSUkgPSBcInBpaVwiLFxuXG4gIC8qKlxuICAgKiBVc2VkIHdoZW4gcmVzb3VyY2VzIGhhbmRsZSBvciBzdG9yZSBwZXJzb25hbCBoZWFsdGggaW5mb3JtYXRpb24gYW5kIGFyZVxuICAgKiBzdWJqZWN0IHRvIEhJUFBBIHJ1bGVzLlxuICAgKi9cbiAgUEhJID0gXCJwaGlcIixcblxuICAvKipcbiAgICogVXNlZCB3aGVuIHRoZXJlIGlzIG5vIGRhdGEgc2Vuc2l0aXZpdHkuXG4gICAqL1xuICBOT05FID0gXCJub25lXCJcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBzZWN1cml0eSB0YWdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5VGFnc1Byb3BzIGV4dGVuZHMgVGFnUHJvcHMge1xuXG4gIC8qKlxuICAgKiBEYXRhIGNsYXNzaWZpY2F0aW9uIHZhbHVlLiBTZWUgdGhlIFRydWVNYXJrIEFXUyB0YWdnaW5nIHN0cmF0ZWd5IGRvY3VtZW50YXRpb24uXG4gICAqL1xuICByZWFkb25seSBkYXRhQ2xhc3NpZmljYXRpb24/OiBEYXRhQ2xhc3NpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIERhdGEgc2Vuc2l0aXZpdHkuIFNlZSB0aGUgVHJ1ZU1hcmsgQVdTIHRhZ2dpbmcgc3RyYXRlZ3kgZG9jdW1lbnRhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTZW5zaXRpdml0eT86IERhdGFTZW5zaXRpdml0eTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0ZWFtIHRhZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVhbVRhZ3NQcm9wcyBleHRlbmRzIFRhZ1Byb3BzIHtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgdGVhbS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgaWYgZGlmZmVyZW50IHRoYW4gdGhlIHRlYW0gbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSB0ZWFtIGxlYWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW1haWwgb2YgdGhlIHRlYW0gbGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhY3RFbWFpbD86IHN0cmluZztcblxuICAvKipcbiAgICogUGhvbmUgbnVtYmVyIGZvciB0aGUgdGVhbSBsZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFjdFBob25lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBidXNpbmVzcyB1bml0IHJlc3BvbnNpYmxlIGZvciB0aGUgdGVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBidXNpbmVzc1VuaXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgYnVzaW5lc3MgdW5pdCByZXNwb25zaWJsZSBmb3IgdGhlIHRlYW0gYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWdnZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVzaW5lc3NVbml0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJ1c2luZXNzIGRpdmlzaW9uIHJlc3BvbnNpYmxlIGZvciB0aGUgdGVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkaXZpc2lvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIHRoZSBidXNpbmVzcyBkaXZpc2lvbiByZXNwb25zaWJsZSBmb3IgdGhlIHRlYW0gYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWdnZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGl2aXNpb25JZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZGVwYXJ0bWVudCByZXNwb25zaWJsZSBmb3IgdGhlIHRlYW0gYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWdnZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwYXJ0bWVudE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIHRoZSBkZXBhcnRtZW50IHJlc3BvbnNpYmxlIGZvciB0aGUgdGVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIHRhZ2dlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBkZXBhcnRtZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8vIFRPRE8gTmVlZCB0byBzdXBwb3J0IGJ1c2luZXNzIHVuaXQsIGRpdmlzaW9uIGFuZCBkZXBhcnRtZW50XG4vLyBUT0RPIE5lZWQgdG8gbWFrZSB0YWdzIGNvbnNpc3RlbnQgYmV0d2VlbiBlbGVtZW50c1xuLy8gVE9ETyBOZWVkIHRvIGFkZCB0aXRsZSBmb3IgcGVvcGxlXG4vLyBUT0RPIEkgaGF0ZSBob3cgd2UgaGF2ZSB0byBvdmVycmlkZSB0aGUgZW52aXJvbm1lbnQgdGFnXG4vKipcbiAqIENvbnRhaW5zIHN0YW5kYXJkIHRhZ2dpbmcgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFRhZ3NQcm9wcyB7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpb24gY29tcG9uZW50IHRhZ3MuXG4gICAqL1xuICByZWFkb25seSBhdXRvbWF0aW9uQ29tcG9uZW50VGFncz86IEF1dG9tYXRpb25Db21wb25lbnRUYWdzUHJvcHM7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpb24gdGFncyB0byBhcHBseSB0byBjcmVhdGVkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGF1dG9tYXRpb25UYWdzPzogQXV0b21hdGlvblRhZ3NQcm9wcztcblxuICAvKipcbiAgICogQ29zdCBjZW50ZXIgdGFncyB0byBhcHBseSB0byBjcmVhdGVkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvc3RDZW50ZXJUYWdzPzogQ29zdENlbnRlclRhZ3NQcm9wcztcblxuICAvKipcbiAgICogU2VjdXJpdHkgdGFncyB0byBhcHBseSB0byBjcmVhdGVkIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5VGFncz86IFNlY3VyaXR5VGFnc1Byb3BzO1xuXG4gIC8qKlxuICAgKiBUZWFtIHRhZ3MgdG8gYXBwbHkgdG8gY3JlYXRlZCByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSB0ZWFtVGFncz86IFRlYW1UYWdzUHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXAgbWlncmF0ZWQgdGFnIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFwTWlncmF0ZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIHRhZ3MgdGhpcyByZXNvdXJjZSBjcmVhdGVzLlxuICAgKiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1RhZ2dpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGNvbnZlbmllbmNlIG1ldGhvZHMgdG8gdGFnIHJlc291cmNlcyBmb2xsb3dpbmcgVHJ1ZU1hcmsncyB0YWdnaW5nIHN0cmF0ZWd5LlxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRUYWdzIHtcblxuICAvKipcbiAgICogVGhlIHNjb3BlIGJlaW5nIHRhZ2dlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWdzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFnczogVGFncztcblxuICAvKipcbiAgICogSWYgdGFncyB3ZXJlIHN1cHByZXNzZWQuXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFN0YW5kYXJkVGFncyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0byB0YWdcbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcm9wcz86IFN0YW5kYXJkVGFnc1Byb3BzKSB7XG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMudGFncyA9IFRhZ3Mub2Yoc2NvcGUpO1xuICAgIHRoaXMuc3VwcHJlc3NlZCA9IHByb3BzPy5zdXBwcmVzc1RhZ2dpbmcgPz8gZmFsc2U7XG4gICAgY29uc3Qgc3RhbmRhcmRUYWdzUHJvcHMgPSBTdGFuZGFyZFRhZ3MubWVyZ2Uoc2NvcGUubm9kZS50cnlHZXRDb250ZXh0KFwic3RhbmRhcmRUYWdzXCIpLCBwcm9wcyk7XG4gICAgdGhpcy5hZGRBdXRvbWF0aW9uQ29tcG9uZW50VGFncyhzdGFuZGFyZFRhZ3NQcm9wcy5hdXRvbWF0aW9uQ29tcG9uZW50VGFncyk7XG4gICAgdGhpcy5hZGRBdXRvbWF0aW9uVGFncyhzdGFuZGFyZFRhZ3NQcm9wcy5hdXRvbWF0aW9uVGFncyk7XG4gICAgdGhpcy5hZGRDb3N0Q2VudGVyVGFncyhzdGFuZGFyZFRhZ3NQcm9wcy5jb3N0Q2VudGVyVGFncyk7XG4gICAgdGhpcy5hZGRTZWN1cml0eVRhZ3Moc3RhbmRhcmRUYWdzUHJvcHMuc2VjdXJpdHlUYWdzKTtcbiAgICB0aGlzLmFkZFRlYW1UYWdzKHN0YW5kYXJkVGFnc1Byb3BzLnRlYW1UYWdzKTtcbiAgICBpZiAoc3RhbmRhcmRUYWdzUHJvcHM/Lm1hcE1pZ3JhdGVkKSB7XG4gICAgICB0aGlzLnRhZ3MuYWRkKFwibWFwLW1pZ3JhdGVkXCIsIHN0YW5kYXJkVGFnc1Byb3BzLm1hcE1pZ3JhdGVkKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGF1dG9tYXRpb24gY29tcG9uZW50IHRhZ3MuIFRoZXNlIGFyZSBtZWFudCB0byBiZSB1c2VkIGluIGluZGl2aWR1YWwgY29uc3RydWN0cyB0byBpZGVudGlmeVxuICAgKiB3aGF0IHJlc291cmNlcyB3ZXJlIHN0b29kIHVwIGJ5IHNwZWNpZmljIGNvbnN0cnVjdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBvcHRpb25hbCBwcm9wZXJ0aWVzIGZvciB0aGUgdGFnc1xuICAgKi9cbiAgYWRkQXV0b21hdGlvbkNvbXBvbmVudFRhZ3MocHJvcHM/OiBBdXRvbWF0aW9uQ29tcG9uZW50VGFnc1Byb3BzKTogU3RhbmRhcmRUYWdzIHtcbiAgICBpZiAocHJvcHMgJiYgIXRoaXMuc3VwcHJlc3NlZCkge1xuICAgICAgaWYgKHByb3BzLmlkID09PSBcInt7VE1DREt9fVwiKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJhdXRvbWF0aW9uOmNvbXBvbmVudC1pZFwiLCB0aGlzLnNjb3BlLmNvbnN0cnVjdG9yLm5hbWUsIHByb3BzKTtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImF1dG9tYXRpb246Y29tcG9uZW50LXVybFwiLCBcImh0dHBzOi8vZ2l0aHViLmNvbS90cnVlbWFyay9jZGtcIiwgcHJvcHMpO1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiYXV0b21hdGlvbjpjb21wb25lbnQtdmVuZG9yXCIsIFwiVHJ1ZU1hcmtcIiwgcHJvcHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb3BzLmlkKSB7XG4gICAgICAgICAgdGhpcy50YWdzLmFkZChcImF1dG9tYXRpb246Y29tcG9uZW50LWlkXCIsIHByb3BzLmlkLCBwcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzLnVybCkge1xuICAgICAgICAgIHRoaXMudGFncy5hZGQoXCJhdXRvbWF0aW9uOmNvbXBvbmVudC11cmxcIiwgcHJvcHMudXJsLCBwcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzLnZlbmRvcikge1xuICAgICAgICAgIHRoaXMudGFncy5hZGQoXCJhdXRvbWF0aW9uOmNvbXBvbmVudC12ZW5kb3JcIiwgcHJvcHMudmVuZG9yLCBwcm9wcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhdXRvbWF0aW9uIHRhZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzIGZvciB0aGUgdGFnc1xuICAgKi9cbiAgYWRkQXV0b21hdGlvblRhZ3MocHJvcHM/OiBBdXRvbWF0aW9uVGFnc1Byb3BzKTogU3RhbmRhcmRUYWdzIHtcbiAgICBpZiAoIXRoaXMuc3VwcHJlc3NlZCkge1xuICAgICAgbGV0IGlkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBwcm9wcz8uaWRcbiAgICAgIGlmICghU3RhZ2UuaXNTdGFnZSh0aGlzLnNjb3BlKSAmJiAhaWQpIHtcbiAgICAgICAgaWQgPSBTdGFjay5vZih0aGlzLnNjb3BlKS5zdGFja05hbWVcbiAgICAgIH1cbiAgICAgIGlmIChpZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiYXV0b21hdGlvbjppZFwiLCBpZCwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzPy51cmwpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImF1dG9tYXRpb246dXJsXCIsIHByb3BzLnVybCwgcHJvcHMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGNvc3QgY2VudGVyIHRhZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzIGZvciB0aGUgdGFnc1xuICAgKi9cbiAgYWRkQ29zdENlbnRlclRhZ3MocHJvcHM/OiBDb3N0Q2VudGVyVGFnc1Byb3BzKTogU3RhbmRhcmRUYWdzIHtcbiAgICBpZiAocHJvcHMgJiYgIXRoaXMuc3VwcHJlc3NlZCkge1xuICAgICAgaWYgKHByb3BzLnByb2plY3ROYW1lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpwcm9qZWN0LW5hbWVcIiwgcHJvcHMucHJvamVjdE5hbWUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wcm9qZWN0SWQpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOnByb2plY3QtaWRcIiwgcHJvcHMucHJvamVjdElkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOmVudmlyb25tZW50XCIsIHByb3BzLmVudmlyb25tZW50LCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY29udGFjdE5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOmNvbnRhY3QtbmFtZVwiLCBwcm9wcy5jb250YWN0TmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNvbnRhY3RFbWFpbCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6Y29udGFjdC1lbWFpbFwiLCBwcm9wcy5jb250YWN0RW1haWwsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5jb250YWN0UGhvbmUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOmNvbnRhY3QtcGhvbmVcIiwgcHJvcHMuY29udGFjdFBob25lLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYnVzaW5lc3NVbml0TmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6YnVzaW5lc3MtdW5pdC1uYW1lXCIsIHByb3BzLmJ1c2luZXNzVW5pdE5hbWUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5idXNpbmVzc1VuaXRJZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6YnVzaW5lc3MtdW5pdC1pZFwiLCBwcm9wcy5idXNpbmVzc1VuaXRJZCwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRpdmlzaW9uTmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwiY29zdC1jZW50ZXI6ZGl2aXNpb24tbmFtZVwiLCBwcm9wcy5kaXZpc2lvbk5hbWUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kaXZpc2lvbklkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpkaXZpc2lvbi1pZFwiLCBwcm9wcy5kaXZpc2lvbklkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGVwYXJ0bWVudE5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcImNvc3QtY2VudGVyOmRlcGFydG1lbnQtbmFtZVwiLCBwcm9wcy5kZXBhcnRtZW50TmFtZSwgcHJvcHMpXG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGVwYXJ0bWVudElkKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJjb3N0LWNlbnRlcjpkZXBhcnRtZW50LWlkXCIsIHByb3BzLmRlcGFydG1lbnRJZCwgcHJvcHMpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgc2VjdXJpdHkgdGFncy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgZm9yIHNlY3VyaXR5IHRhZ3NcbiAgICovXG4gIGFkZFNlY3VyaXR5VGFncyhwcm9wcz86IFNlY3VyaXR5VGFnc1Byb3BzKTogU3RhbmRhcmRUYWdzIHtcbiAgICBpZiAocHJvcHMgJiYgIXRoaXMuc3VwcHJlc3NlZCkge1xuICAgICAgaWYgKHByb3BzLmRhdGFDbGFzc2lmaWNhdGlvbikge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwic2VjdXJpdHk6ZGF0YS1jbGFzc2lmaWNhdGlvblwiLCBwcm9wcy5kYXRhQ2xhc3NpZmljYXRpb24sIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kYXRhU2Vuc2l0aXZpdHkpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcInNlY3VyaXR5OmRhdGEtc2Vuc2l0aXZpdHlcIiwgcHJvcHMuZGF0YVNlbnNpdGl2aXR5LCBwcm9wcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGVhbSB0YWdzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyBmb3IgdGVhbSB0YWdzXG4gICAqL1xuICBhZGRUZWFtVGFncyhwcm9wcz86IFRlYW1UYWdzUHJvcHMpOiBTdGFuZGFyZFRhZ3Mge1xuICAgIGlmIChwcm9wcyAmJiAhdGhpcy5zdXBwcmVzc2VkKSB7XG4gICAgICBpZiAocHJvcHMubmFtZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpuYW1lXCIsIHByb3BzLm5hbWUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5pZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTppZFwiLCBwcm9wcy5pZCwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNvbnRhY3ROYW1lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmNvbnRhY3QtbmFtZVwiLCBwcm9wcy5jb250YWN0TmFtZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNvbnRhY3RFbWFpbCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpjb250YWN0LWVtYWlsXCIsIHByb3BzLmNvbnRhY3RFbWFpbCwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNvbnRhY3RQaG9uZSkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpjb250YWN0LXBob25lXCIsIHByb3BzLmNvbnRhY3RQaG9uZSwgcHJvcHMpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmJ1c2luZXNzVW5pdE5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcInRlYW06YnVzaW5lc3MtdW5pdC1uYW1lXCIsIHByb3BzLmJ1c2luZXNzVW5pdE5hbWUsIHByb3BzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5idXNpbmVzc1VuaXRJZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpidXNpbmVzcy11bml0LWlkXCIsIHByb3BzLmJ1c2luZXNzVW5pdElkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGl2aXNpb25OYW1lKSB7XG4gICAgICAgIHRoaXMudGFncy5hZGQoXCJ0ZWFtOmRpdmlzaW9uLW5hbWVcIiwgcHJvcHMuZGl2aXNpb25OYW1lLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGl2aXNpb25JZCkge1xuICAgICAgICB0aGlzLnRhZ3MuYWRkKFwidGVhbTpkaXZpc2lvbi1pZFwiLCBwcm9wcy5kaXZpc2lvbklkLCBwcm9wcyk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGVwYXJ0bWVudE5hbWUpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcInRlYW06ZGVwYXJ0bWVudC1uYW1lXCIsIHByb3BzLmRlcGFydG1lbnROYW1lLCBwcm9wcylcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5kZXBhcnRtZW50SWQpIHtcbiAgICAgICAgdGhpcy50YWdzLmFkZChcInRlYW06ZGVwYXJ0bWVudC1pZFwiLCBwcm9wcy5kZXBhcnRtZW50SWQsIHByb3BzKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbWVyZ2VkIFN0YW5kYXJkVGFnc1Byb3BzLlxuICAgKlxuICAgKiBAcGFyYW0gZnJvbSBwcm9wZXJ0aWVzIHRvIHNvdXJjZSBmcm9tXG4gICAqIEBwYXJhbSB0byBwcm9wZXJ0aWVzIHRvIHNvdXJjZSB0b1xuICAgKi9cbiAgc3RhdGljIG1lcmdlKGZyb20/OiBTdGFuZGFyZFRhZ3NQcm9wcywgdG8/OiBTdGFuZGFyZFRhZ3NQcm9wcyk6IFN0YW5kYXJkVGFnc1Byb3BzIHtcbiAgICBsZXQgYXV0b21hdGlvbkNvbXBvbmVudFRhZ3M6IEF1dG9tYXRpb25Db21wb25lbnRUYWdzUHJvcHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGZyb20/LmF1dG9tYXRpb25Db21wb25lbnRUYWdzIHx8IHRvPy5hdXRvbWF0aW9uQ29tcG9uZW50VGFncykge1xuICAgICAgYXV0b21hdGlvbkNvbXBvbmVudFRhZ3MgPSB7XG4gICAgICAgIGlkOiB0bz8uYXV0b21hdGlvbkNvbXBvbmVudFRhZ3M/LmlkID8/IGZyb20/LmF1dG9tYXRpb25Db21wb25lbnRUYWdzPy5pZCA/PyBcIlwiLFxuICAgICAgICAuLi5mcm9tPy5hdXRvbWF0aW9uQ29tcG9uZW50VGFncyxcbiAgICAgICAgLi4udG8/LmF1dG9tYXRpb25Db21wb25lbnRUYWdzXG4gICAgICB9XG4gICAgfVxuICAgIGxldCBhdXRvbWF0aW9uVGFnczogQXV0b21hdGlvblRhZ3NQcm9wcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZnJvbT8uYXV0b21hdGlvblRhZ3MgfHwgdG8/LmF1dG9tYXRpb25UYWdzKSB7XG4gICAgICBhdXRvbWF0aW9uVGFncyA9IHtcbiAgICAgICAgaWQ6IHRvPy5hdXRvbWF0aW9uVGFncz8uaWQgPz8gZnJvbT8uYXV0b21hdGlvblRhZ3M/LmlkID8/IFwiXCIsXG4gICAgICAgIC4uLmZyb20/LmF1dG9tYXRpb25UYWdzLFxuICAgICAgICAuLi50bz8uYXV0b21hdGlvblRhZ3NcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGNvc3RDZW50ZXJUYWdzOiBDb3N0Q2VudGVyVGFnc1Byb3BzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChmcm9tPy5jb3N0Q2VudGVyVGFncyB8fCB0bz8uY29zdENlbnRlclRhZ3MpIHtcbiAgICAgIGNvc3RDZW50ZXJUYWdzID0ge1xuICAgICAgICBidXNpbmVzc1VuaXROYW1lOiB0bz8uY29zdENlbnRlclRhZ3M/LmJ1c2luZXNzVW5pdE5hbWUgPz8gZnJvbT8uY29zdENlbnRlclRhZ3M/LmJ1c2luZXNzVW5pdE5hbWUgPz8gXCJcIixcbiAgICAgICAgcHJvamVjdE5hbWU6IHRvPy5jb3N0Q2VudGVyVGFncz8ucHJvamVjdE5hbWUgPz8gZnJvbT8uY29zdENlbnRlclRhZ3M/LnByb2plY3ROYW1lID8/IFwiXCIsXG4gICAgICAgIC4uLmZyb20/LmNvc3RDZW50ZXJUYWdzLFxuICAgICAgICAuLi50bz8uY29zdENlbnRlclRhZ3NcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHNlY3VyaXR5VGFnczogU2VjdXJpdHlUYWdzUHJvcHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGZyb20/LnNlY3VyaXR5VGFncyB8fCB0bz8uc2VjdXJpdHlUYWdzKSB7XG4gICAgICBzZWN1cml0eVRhZ3MgPSB7XG4gICAgICAgIGRhdGFDbGFzc2lmaWNhdGlvbjogdG8/LnNlY3VyaXR5VGFncz8uZGF0YUNsYXNzaWZpY2F0aW9uID8/IGZyb20/LnNlY3VyaXR5VGFncz8uZGF0YUNsYXNzaWZpY2F0aW9uID8/IERhdGFDbGFzc2lmaWNhdGlvbi5Db250cm9sbGVkLFxuICAgICAgICAuLi5mcm9tPy5zZWN1cml0eVRhZ3MsXG4gICAgICAgIC4uLnRvPy5zZWN1cml0eVRhZ3NcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHRlYW1UYWdzOiBUZWFtVGFnc1Byb3BzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChmcm9tPy50ZWFtVGFncyB8fCB0bz8udGVhbVRhZ3MpIHtcbiAgICAgIHRlYW1UYWdzID0ge1xuICAgICAgICBuYW1lOiB0bz8udGVhbVRhZ3M/Lm5hbWUgPz8gZnJvbT8udGVhbVRhZ3M/Lm5hbWUgPz8gXCJcIixcbiAgICAgICAgLi4uZnJvbT8udGVhbVRhZ3MsXG4gICAgICAgIC4uLnRvPy50ZWFtVGFnc1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbWFwTWlncmF0ZWQ6IHRvPy5tYXBNaWdyYXRlZCA/PyBmcm9tPy5tYXBNaWdyYXRlZCxcbiAgICAgIGF1dG9tYXRpb25Db21wb25lbnRUYWdzLFxuICAgICAgYXV0b21hdGlvblRhZ3MsXG4gICAgICBjb3N0Q2VudGVyVGFncyxcbiAgICAgIHNlY3VyaXR5VGFncyxcbiAgICAgIHRlYW1UYWdzXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -115,10 +115,14 @@ test("Test StandardTags", () => {
115
115
  const prodTemplate = assertions_1.Template.fromStack(prodStage.stack);
116
116
  // TestHelper.logTemplate(testTemplate);
117
117
  // TestHelper.logTemplate(prodTemplate);
118
- // const stack = TestHelper.stack();
119
- // const testConstruct = new TestConstruct(stack, "TestConstruct");
120
- // const template = Template.fromStack(stack);
121
- // TestHelper.logTemplate(template);
122
- // const standardTags = new StandardTags(stack);
118
+ testTemplate.resourceCountIs(test_helper_1.ResourceType.S3_BUCKET, 2);
119
+ testTemplate.hasResourceProperties(test_helper_1.ResourceType.S3_BUCKET, {
120
+ Tags: assertions_1.Match.arrayWith([
121
+ {
122
+ Key: "map-migrated",
123
+ Value: "mig12345"
124
+ }
125
+ ])
126
+ });
123
127
  });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdGFncy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhcmQtdGFncy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQTZDO0FBQzdDLG9DQU9rQjtBQUVsQix1REFBZ0Q7QUFDaEQsK0NBQTBDO0FBRTFDLE1BQU0sZ0JBQWlCLFNBQVEseUJBQWlCO0lBRTlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFO2dCQUNaLHVCQUF1QixFQUFFO29CQUN2QixFQUFFLEVBQUUsa0JBQWtCO29CQUN0QixHQUFHLEVBQUUsOEJBQThCO2lCQUNwQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sYUFBYyxTQUFRLHlCQUFpQjtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRTtnQkFDWix1QkFBdUIsRUFBRTtvQkFDdkIsRUFBRSxFQUFFLGVBQWU7b0JBQ25CLEdBQUcsRUFBRSwyQkFBMkI7aUJBQ2pDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0IsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvQyxxQ0FBcUM7SUFDdkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxTQUFVLFNBQVEscUJBQWE7SUFDbkMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUU7Z0JBQ1osdUJBQXVCLEVBQUU7b0JBQ3ZCLEVBQUUsRUFBRSxXQUFXO29C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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Rlc3RIZWxwZXJ9IGZyb20gXCIuLi8uLi90ZXN0LWhlbHBlclwiO1xuaW1wb3J0IHtcbiAgRGF0YUNsYXNzaWZpY2F0aW9uLFxuICBEYXRhU2Vuc2l0aXZpdHksXG4gIEV4dGVuZGVkQXBwLFxuICBFeHRlbmRlZENvbnN0cnVjdCxcbiAgRXh0ZW5kZWRTdGFjayxcbiAgRXh0ZW5kZWRTdGFnZSxcbn0gZnJvbSBcIi4uL2luZGV4XCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7VGVtcGxhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQge0J1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuXG5jbGFzcyBUZXN0U3ViQ29uc3RydWN0IGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczoge1xuICAgICAgICBhdXRvbWF0aW9uQ29tcG9uZW50VGFnczoge1xuICAgICAgICAgIGlkOiBcIlRlc3RTdWJDb25zdHJ1Y3RcIixcbiAgICAgICAgICB1cmw6IFwiaHR0cHM6Ly90ZXN0c3ViY29uc3RydWN0LmNvbVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBuZXcgQnVja2V0KHRoaXMsIFwiVGVzdFN1YkJ1Y2tldFwiKTtcbiAgfVxufVxuXG5jbGFzcyBUZXN0Q29uc3RydWN0IGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBzdGFuZGFyZFRhZ3M6IHtcbiAgICAgICAgYXV0b21hdGlvbkNvbXBvbmVudFRhZ3M6IHtcbiAgICAgICAgICBpZDogXCJUZXN0Q29uc3RydWN0XCIsXG4gICAgICAgICAgdXJsOiBcImh0dHBzOi8vdGVzdGNvbnN0cnVjdC5jb21cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgbmV3IEJ1Y2tldCh0aGlzLCBcIlRlc3RCdWNrZXRcIik7XG4gICAgbmV3IFRlc3RTdWJDb25zdHJ1Y3QodGhpcywgXCJUZXN0U3ViQ29uc3RydWN0XCIpO1xuICAgIC8vIFRhZ3Mub2YodGhpcykuYWRkKFwiYmFya1wiLCBcIm1lb3dcIik7XG4gIH1cbn1cblxuY2xhc3MgVGVzdFN0YWNrIGV4dGVuZHMgRXh0ZW5kZWRTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczoge1xuICAgICAgICBhdXRvbWF0aW9uQ29tcG9uZW50VGFnczoge1xuICAgICAgICAgIGlkOiBcIlRlc3RTdGFja1wiLFxuICAgICAgICAgIHVybDogXCJodHRwczovL3Rlc3RzdGFjay5jb21cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgbmV3IFRlc3RDb25zdHJ1Y3QodGhpcywgXCJUZXN0Q29uc3RydWN0XCIpO1xuICB9XG59XG5cbmludGVyZmFjZSBUZXN0U3RhZ2VQcm9wcyB7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG59XG5cbmNsYXNzIFRlc3RTdGFnZSBleHRlbmRzIEV4dGVuZGVkU3RhZ2Uge1xuICByZWFkb25seSBzdGFjazogVGVzdFN0YWNrO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGVzdFN0YWdlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczoge1xuICAgICAgICBjb3N0Q2VudGVyVGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBwcm9wcy5lbnZpcm9ubWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFjayA9IG5ldyBUZXN0U3RhY2sodGhpcywgXCJUZXN0U3RhY2tcIik7XG4gIH1cbn1cblxuY2xhc3MgVGVzdEFwcCBleHRlbmRzIEV4dGVuZGVkQXBwIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYWNjb3VudDogVGVzdEhlbHBlci5ERUZBVUxUX0FDQ09VTlQsXG4gICAgICByZWdpb246IFRlc3RIZWxwZXIuREVGQVVMVF9SRUdJT04sXG4gICAgICBzdGFuZGFyZFRhZ3M6IHtcbiAgICAgICAgbWFwTWlncmF0ZWQ6IFwibWlnMTIzNDVcIixcbiAgICAgICAgYXV0b21hdGlvblRhZ3M6IHtcbiAgICAgICAgICBpZDogXCJUZXN0QXBwXCIsXG4gICAgICAgICAgdXJsOiBcImh0dHBzOi8vdGVzdGFwcC5jb21cIlxuICAgICAgICB9LFxuICAgICAgICBjb3N0Q2VudGVyVGFnczoge1xuICAgICAgICAgIHByb2plY3ROYW1lOiBcIlRlc3RBcHBcIixcbiAgICAgICAgICBwcm9qZWN0SWQ6IFwidGVzdC1hcHBcIixcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsXG4gICAgICAgICAgY29udGFjdE5hbWU6IFwiSm9obiBEb2VcIixcbiAgICAgICAgICBjb250YWN0RW1haWw6IFwiamRvZUBleGFtcGxlLmNvbVwiLFxuICAgICAgICAgIGNvbnRhY3RQaG9uZTogXCIrMSA1NTUtNTU1LTU1NTVcIixcbiAgICAgICAgICBidXNpbmVzc1VuaXROYW1lOiBcIlRlc3QgVW5pdFwiLFxuICAgICAgICAgIGJ1c2luZXNzVW5pdElkOiBcInRlc3QtdW5pdFwiLFxuICAgICAgICAgIGRpdmlzaW9uTmFtZTogXCJUZXN0IERpdmlzaW9uXCIsXG4gICAgICAgICAgZGl2aXNpb25JZDogXCJ0ZXN0LWRpdmlzaW9uXCIsXG4gICAgICAgICAgZGVwYXJ0bWVudE5hbWU6IFwiVGVzdCBEZXBhcnRtZW50XCIsXG4gICAgICAgICAgZGVwYXJ0bWVudElkOiBcInRlc3QtZGVwYXJ0bWVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHNlY3VyaXR5VGFnczoge1xuICAgICAgICAgIGRhdGFDbGFzc2lmaWNhdGlvbjogRGF0YUNsYXNzaWZpY2F0aW9uLlJlc3RyaWN0ZWQsXG4gICAgICAgICAgZGF0YVNlbnNpdGl2aXR5OiBEYXRhU2Vuc2l0aXZpdHkuUElJXG4gICAgICAgIH0sXG4gICAgICAgIHRlYW1UYWdzOiB7XG4gICAgICAgICAgbmFtZTogXCJUZXN0IFRlYW1cIixcbiAgICAgICAgICBpZDogXCJ0ZXN0LXRlYW1cIixcbiAgICAgICAgICBjb250YWN0TmFtZTogXCJKb2huIERvZVwiLFxuICAgICAgICAgIGNvbnRhY3RFbWFpbDogXCJqZG9lQGV4YW1wbGUuY29tXCIsXG4gICAgICAgICAgY29udGFjdFBob25lOiBcIisxIDU1NS01NTUtNTU1NVwiLFxuICAgICAgICAgIGJ1c2luZXNzVW5pdE5hbWU6IFwiVGVzdCBVbml0XCIsXG4gICAgICAgICAgYnVzaW5lc3NVbml0SWQ6IFwidGVzdC11bml0XCIsXG4gICAgICAgICAgZGl2aXNpb25OYW1lOiBcIlRlc3QgRGl2aXNpb25cIixcbiAgICAgICAgICBkaXZpc2lvbklkOiBcInRlc3QtZGl2aXNpb25cIixcbiAgICAgICAgICBkZXBhcnRtZW50TmFtZTogXCJUZXN0IERlcGFydG1lbnRcIixcbiAgICAgICAgICBkZXBhcnRtZW50SWQ6IFwidGVzdC1kZXBhcnRtZW50XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbnRlc3QoXCJUZXN0IFN0YW5kYXJkVGFnc1wiLCAoKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBUZXN0QXBwKCk7XG4gIGNvbnN0IHRlc3RTdGFnZSA9IG5ldyBUZXN0U3RhZ2UoYXBwLCBcIlRlc3RTdGFnZVwiLCB7XG4gICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiXG4gIH0pO1xuICBjb25zdCBwcm9kU3RhZ2UgPSBuZXcgVGVzdFN0YWdlKGFwcCwgXCJQcm9kU3RhZ2VcIiwge1xuICAgIGVudmlyb25tZW50OiBcInByb2RcIlxuICB9KVxuICBjb25zdCB0ZXN0VGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2sodGVzdFN0YWdlLnN0YWNrKTtcbiAgY29uc3QgcHJvZFRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHByb2RTdGFnZS5zdGFjayk7XG4gIC8vIFRlc3RIZWxwZXIubG9nVGVtcGxhdGUodGVzdFRlbXBsYXRlKTtcbiAgLy8gVGVzdEhlbHBlci5sb2dUZW1wbGF0ZShwcm9kVGVtcGxhdGUpO1xuICAvLyBjb25zdCBzdGFjayA9IFRlc3RIZWxwZXIuc3RhY2soKTtcbiAgLy8gY29uc3QgdGVzdENvbnN0cnVjdCA9IG5ldyBUZXN0Q29uc3RydWN0KHN0YWNrLCBcIlRlc3RDb25zdHJ1Y3RcIik7XG4gIC8vIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgLy8gVGVzdEhlbHBlci5sb2dUZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gIC8vIGNvbnN0IHN0YW5kYXJkVGFncyA9IG5ldyBTdGFuZGFyZFRhZ3Moc3RhY2spO1xufSk7XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdGFncy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhcmQtdGFncy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQTJEO0FBQzNELG9DQU9rQjtBQUVsQix1REFBdUQ7QUFDdkQsK0NBQTBDO0FBRTFDLE1BQU0sZ0JBQWlCLFNBQVEseUJBQWlCO0lBRTlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFO2dCQUNaLHVCQUF1QixFQUFFO29CQUN2QixFQUFFLEVBQUUsa0JBQWtCO29CQUN0QixHQUFHLEVBQUUsOEJBQThCO2lCQUNwQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sYUFBYyxTQUFRLHlCQUFpQjtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRTtnQkFDWix1QkFBdUIsRUFBRTtvQkFDdkIsRUFBRSxFQUFFLGVBQWU7b0JBQ25CLEdBQUcsRUFBRSwyQkFBMkI7aUJBQ2pDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0IsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvQyxxQ0FBcUM7SUFDdkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxTQUFVLFNBQVEscUJBQWE7SUFDbkMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUU7Z0JBQ1osdUJBQXVCLEVBQUU7b0JBQ3ZCLEVBQUUsRUFBRSxXQUFXO29C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LDBCQUFZLENBQUMsU0FBUyxFQUFFO1FBQ3pELElBQUksRUFBRSxrQkFBSyxDQUFDLFNBQVMsQ0FBQztZQUNwQjtnQkFDRSxHQUFHLEVBQUUsY0FBYztnQkFDbkIsS0FBSyxFQUFFLFVBQVU7YUFDbEI7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Jlc291cmNlVHlwZSwgVGVzdEhlbHBlcn0gZnJvbSBcIi4uLy4uL3Rlc3QtaGVscGVyXCI7XG5pbXBvcnQge1xuICBEYXRhQ2xhc3NpZmljYXRpb24sXG4gIERhdGFTZW5zaXRpdml0eSxcbiAgRXh0ZW5kZWRBcHAsXG4gIEV4dGVuZGVkQ29uc3RydWN0LFxuICBFeHRlbmRlZFN0YWNrLFxuICBFeHRlbmRlZFN0YWdlLFxufSBmcm9tIFwiLi4vaW5kZXhcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtNYXRjaCwgVGVtcGxhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQge0J1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuXG5jbGFzcyBUZXN0U3ViQ29uc3RydWN0IGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczoge1xuICAgICAgICBhdXRvbWF0aW9uQ29tcG9uZW50VGFnczoge1xuICAgICAgICAgIGlkOiBcIlRlc3RTdWJDb25zdHJ1Y3RcIixcbiAgICAgICAgICB1cmw6IFwiaHR0cHM6Ly90ZXN0c3ViY29uc3RydWN0LmNvbVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBuZXcgQnVja2V0KHRoaXMsIFwiVGVzdFN1YkJ1Y2tldFwiKTtcbiAgfVxufVxuXG5jbGFzcyBUZXN0Q29uc3RydWN0IGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBzdGFuZGFyZFRhZ3M6IHtcbiAgICAgICAgYXV0b21hdGlvbkNvbXBvbmVudFRhZ3M6IHtcbiAgICAgICAgICBpZDogXCJUZXN0Q29uc3RydWN0XCIsXG4gICAgICAgICAgdXJsOiBcImh0dHBzOi8vdGVzdGNvbnN0cnVjdC5jb21cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgbmV3IEJ1Y2tldCh0aGlzLCBcIlRlc3RCdWNrZXRcIik7XG4gICAgbmV3IFRlc3RTdWJDb25zdHJ1Y3QodGhpcywgXCJUZXN0U3ViQ29uc3RydWN0XCIpO1xuICAgIC8vIFRhZ3Mub2YodGhpcykuYWRkKFwiYmFya1wiLCBcIm1lb3dcIik7XG4gIH1cbn1cblxuY2xhc3MgVGVzdFN0YWNrIGV4dGVuZHMgRXh0ZW5kZWRTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczoge1xuICAgICAgICBhdXRvbWF0aW9uQ29tcG9uZW50VGFnczoge1xuICAgICAgICAgIGlkOiBcIlRlc3RTdGFja1wiLFxuICAgICAgICAgIHVybDogXCJodHRwczovL3Rlc3RzdGFjay5jb21cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgbmV3IFRlc3RDb25zdHJ1Y3QodGhpcywgXCJUZXN0Q29uc3RydWN0XCIpO1xuICB9XG59XG5cbmludGVyZmFjZSBUZXN0U3RhZ2VQcm9wcyB7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG59XG5cbmNsYXNzIFRlc3RTdGFnZSBleHRlbmRzIEV4dGVuZGVkU3RhZ2Uge1xuICByZWFkb25seSBzdGFjazogVGVzdFN0YWNrO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGVzdFN0YWdlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczoge1xuICAgICAgICBjb3N0Q2VudGVyVGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBwcm9wcy5lbnZpcm9ubWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFjayA9IG5ldyBUZXN0U3RhY2sodGhpcywgXCJUZXN0U3RhY2tcIik7XG4gIH1cbn1cblxuY2xhc3MgVGVzdEFwcCBleHRlbmRzIEV4dGVuZGVkQXBwIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYWNjb3VudDogVGVzdEhlbHBlci5ERUZBVUxUX0FDQ09VTlQsXG4gICAgICByZWdpb246IFRlc3RIZWxwZXIuREVGQVVMVF9SRUdJT04sXG4gICAgICBzdGFuZGFyZFRhZ3M6IHtcbiAgICAgICAgbWFwTWlncmF0ZWQ6IFwibWlnMTIzNDVcIixcbiAgICAgICAgYXV0b21hdGlvblRhZ3M6IHtcbiAgICAgICAgICBpZDogXCJUZXN0QXBwXCIsXG4gICAgICAgICAgdXJsOiBcImh0dHBzOi8vdGVzdGFwcC5jb21cIlxuICAgICAgICB9LFxuICAgICAgICBjb3N0Q2VudGVyVGFnczoge1xuICAgICAgICAgIHByb2plY3ROYW1lOiBcIlRlc3RBcHBcIixcbiAgICAgICAgICBwcm9qZWN0SWQ6IFwidGVzdC1hcHBcIixcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsXG4gICAgICAgICAgY29udGFjdE5hbWU6IFwiSm9obiBEb2VcIixcbiAgICAgICAgICBjb250YWN0RW1haWw6IFwiamRvZUBleGFtcGxlLmNvbVwiLFxuICAgICAgICAgIGNvbnRhY3RQaG9uZTogXCIrMSA1NTUtNTU1LTU1NTVcIixcbiAgICAgICAgICBidXNpbmVzc1VuaXROYW1lOiBcIlRlc3QgVW5pdFwiLFxuICAgICAgICAgIGJ1c2luZXNzVW5pdElkOiBcInRlc3QtdW5pdFwiLFxuICAgICAgICAgIGRpdmlzaW9uTmFtZTogXCJUZXN0IERpdmlzaW9uXCIsXG4gICAgICAgICAgZGl2aXNpb25JZDogXCJ0ZXN0LWRpdmlzaW9uXCIsXG4gICAgICAgICAgZGVwYXJ0bWVudE5hbWU6IFwiVGVzdCBEZXBhcnRtZW50XCIsXG4gICAgICAgICAgZGVwYXJ0bWVudElkOiBcInRlc3QtZGVwYXJ0bWVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHNlY3VyaXR5VGFnczoge1xuICAgICAgICAgIGRhdGFDbGFzc2lmaWNhdGlvbjogRGF0YUNsYXNzaWZpY2F0aW9uLlJlc3RyaWN0ZWQsXG4gICAgICAgICAgZGF0YVNlbnNpdGl2aXR5OiBEYXRhU2Vuc2l0aXZpdHkuUElJXG4gICAgICAgIH0sXG4gICAgICAgIHRlYW1UYWdzOiB7XG4gICAgICAgICAgbmFtZTogXCJUZXN0IFRlYW1cIixcbiAgICAgICAgICBpZDogXCJ0ZXN0LXRlYW1cIixcbiAgICAgICAgICBjb250YWN0TmFtZTogXCJKb2huIERvZVwiLFxuICAgICAgICAgIGNvbnRhY3RFbWFpbDogXCJqZG9lQGV4YW1wbGUuY29tXCIsXG4gICAgICAgICAgY29udGFjdFBob25lOiBcIisxIDU1NS01NTUtNTU1NVwiLFxuICAgICAgICAgIGJ1c2luZXNzVW5pdE5hbWU6IFwiVGVzdCBVbml0XCIsXG4gICAgICAgICAgYnVzaW5lc3NVbml0SWQ6IFwidGVzdC11bml0XCIsXG4gICAgICAgICAgZGl2aXNpb25OYW1lOiBcIlRlc3QgRGl2aXNpb25cIixcbiAgICAgICAgICBkaXZpc2lvbklkOiBcInRlc3QtZGl2aXNpb25cIixcbiAgICAgICAgICBkZXBhcnRtZW50TmFtZTogXCJUZXN0IERlcGFydG1lbnRcIixcbiAgICAgICAgICBkZXBhcnRtZW50SWQ6IFwidGVzdC1kZXBhcnRtZW50XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbnRlc3QoXCJUZXN0IFN0YW5kYXJkVGFnc1wiLCAoKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBUZXN0QXBwKCk7XG4gIGNvbnN0IHRlc3RTdGFnZSA9IG5ldyBUZXN0U3RhZ2UoYXBwLCBcIlRlc3RTdGFnZVwiLCB7XG4gICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiXG4gIH0pO1xuICBjb25zdCBwcm9kU3RhZ2UgPSBuZXcgVGVzdFN0YWdlKGFwcCwgXCJQcm9kU3RhZ2VcIiwge1xuICAgIGVudmlyb25tZW50OiBcInByb2RcIlxuICB9KTtcbiAgY29uc3QgdGVzdFRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHRlc3RTdGFnZS5zdGFjayk7XG4gIGNvbnN0IHByb2RUZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhwcm9kU3RhZ2Uuc3RhY2spO1xuICAvLyBUZXN0SGVscGVyLmxvZ1RlbXBsYXRlKHRlc3RUZW1wbGF0ZSk7XG4gIC8vIFRlc3RIZWxwZXIubG9nVGVtcGxhdGUocHJvZFRlbXBsYXRlKTtcbiAgdGVzdFRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhSZXNvdXJjZVR5cGUuUzNfQlVDS0VULCAyKTtcbiAgdGVzdFRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhSZXNvdXJjZVR5cGUuUzNfQlVDS0VULCB7XG4gICAgVGFnczogTWF0Y2guYXJyYXlXaXRoKFtcbiAgICAgIHtcbiAgICAgICAgS2V5OiBcIm1hcC1taWdyYXRlZFwiLFxuICAgICAgICBWYWx1ZTogXCJtaWcxMjM0NVwiXG4gICAgICB9XG4gICAgXSlcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { ExtendedConstruct } from "../../aws-cdk";
2
+ import { Construct } from "constructs";
3
+ import { Duration } from "aws-cdk-lib";
4
+ export interface EcsServiceUpdateProps {
5
+ readonly cluster: string;
6
+ readonly service: string;
7
+ readonly desiredCount?: number;
8
+ readonly ignoreServiceNotFound?: boolean;
9
+ readonly timeout?: Duration;
10
+ }
11
+ export declare class EcsServiceUpdate extends ExtendedConstruct {
12
+ constructor(scope: Construct, id: string, props: EcsServiceUpdateProps);
13
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EcsServiceUpdate = void 0;
4
+ const custom_resources_1 = require("aws-cdk-lib/custom-resources");
5
+ const aws_cdk_1 = require("../../aws-cdk");
6
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
7
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
8
+ class EcsServiceUpdate extends aws_cdk_1.ExtendedConstruct {
9
+ constructor(scope, id, props) {
10
+ var _a;
11
+ super(scope, id);
12
+ if (props.desiredCount) {
13
+ const stack = aws_cdk_lib_1.Stack.of(this);
14
+ new custom_resources_1.AwsCustomResource(this, "", {
15
+ installLatestAwsSdk: false,
16
+ onUpdate: {
17
+ service: "ECS",
18
+ action: "updateService",
19
+ ignoreErrorCodesMatching: props.ignoreServiceNotFound ? ".*ServiceNotFound.*" : undefined,
20
+ parameters: {
21
+ cluster: props.cluster,
22
+ service: props.service,
23
+ desiredCount: props.desiredCount
24
+ },
25
+ physicalResourceId: { id: Date.now().toString() },
26
+ outputPaths: [
27
+ "service.desiredCount"
28
+ ]
29
+ },
30
+ policy: {
31
+ statements: [new aws_iam_1.PolicyStatement({
32
+ resources: [`arn:aws:ecs:${stack.region}:${stack.account}:service/${props.cluster}/${props.service}`],
33
+ actions: ["ecs:UpdateService"],
34
+ effect: aws_iam_1.Effect.ALLOW
35
+ })]
36
+ },
37
+ timeout: (_a = props.timeout) !== null && _a !== void 0 ? _a : aws_cdk_lib_1.Duration.minutes(2)
38
+ });
39
+ }
40
+ }
41
+ }
42
+ exports.EcsServiceUpdate = EcsServiceUpdate;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNzLXNlcnZpY2UtdXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWNzLXNlcnZpY2UtdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUErRDtBQUMvRCwyQ0FBZ0Q7QUFFaEQsaURBQTREO0FBQzVELDZDQUE0QztBQVU1QyxNQUFhLGdCQUFpQixTQUFRLDJCQUFpQjtJQUNyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCOztRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtZQUN0QixNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixJQUFJLG9DQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsS0FBSztvQkFDZCxNQUFNLEVBQUUsZUFBZTtvQkFDdkIsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFDekYsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTzt3QkFDdEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO3dCQUN0QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7cUJBQ2pDO29CQUNELGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDakQsV0FBVyxFQUFFO3dCQUNYLHNCQUFzQjtxQkFDdkI7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRSxDQUFDLElBQUkseUJBQWUsQ0FBQzs0QkFDL0IsU0FBUyxFQUFFLENBQUMsZUFBZSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLFlBQVksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7NEJBQ3JHLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDOzRCQUM5QixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO3lCQUNyQixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsT0FBTyxRQUFFLEtBQUssQ0FBQyxPQUFPLG1DQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM5QyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRjtBQWhDRCw0Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F3c0N1c3RvbVJlc291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdH0gZnJvbSBcIi4uLy4uL2F3cy1jZGtcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtFZmZlY3QsIFBvbGljeVN0YXRlbWVudH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7RHVyYXRpb24sIFN0YWNrfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFY3NTZXJ2aWNlVXBkYXRlUHJvcHMge1xuICByZWFkb25seSBjbHVzdGVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVzaXJlZENvdW50PzogbnVtYmVyO1xuICByZWFkb25seSBpZ25vcmVTZXJ2aWNlTm90Rm91bmQ/OiBib29sZWFuO1xuICByZWFkb25seSB0aW1lb3V0PzogRHVyYXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBFY3NTZXJ2aWNlVXBkYXRlIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRWNzU2VydmljZVVwZGF0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBpZiAocHJvcHMuZGVzaXJlZENvdW50KSB7XG4gICAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiXCIsIHtcbiAgICAgICAgaW5zdGFsbExhdGVzdEF3c1NkazogZmFsc2UsXG4gICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgc2VydmljZTogXCJFQ1NcIixcbiAgICAgICAgICBhY3Rpb246IFwidXBkYXRlU2VydmljZVwiLFxuICAgICAgICAgIGlnbm9yZUVycm9yQ29kZXNNYXRjaGluZzogcHJvcHMuaWdub3JlU2VydmljZU5vdEZvdW5kID8gXCIuKlNlcnZpY2VOb3RGb3VuZC4qXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgY2x1c3RlcjogcHJvcHMuY2x1c3RlcixcbiAgICAgICAgICAgIHNlcnZpY2U6IHByb3BzLnNlcnZpY2UsXG4gICAgICAgICAgICBkZXNpcmVkQ291bnQ6IHByb3BzLmRlc2lyZWRDb3VudFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiB7IGlkOiBEYXRlLm5vdygpLnRvU3RyaW5nKCkgfSxcbiAgICAgICAgICBvdXRwdXRQYXRoczogW1xuICAgICAgICAgICAgXCJzZXJ2aWNlLmRlc2lyZWRDb3VudFwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czplY3M6JHtzdGFjay5yZWdpb259OiR7c3RhY2suYWNjb3VudH06c2VydmljZS8ke3Byb3BzLmNsdXN0ZXJ9LyR7cHJvcHMuc2VydmljZX1gXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImVjczpVcGRhdGVTZXJ2aWNlXCJdLFxuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1dcbiAgICAgICAgICB9KV1cbiAgICAgICAgfSxcbiAgICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5taW51dGVzKDIpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -3,3 +3,4 @@ export * from "./standard-fargate-cluster";
3
3
  export * from "./standard-fargate-service";
4
4
  export * from "./standard-application-fargate-service";
5
5
  export * from "./standard-network-fargate-service";
6
+ export * from "./ecs-service-update";
@@ -15,4 +15,5 @@ __exportStar(require("./standard-fargate-cluster"), exports);
15
15
  __exportStar(require("./standard-fargate-service"), exports);
16
16
  __exportStar(require("./standard-application-fargate-service"), exports);
17
17
  __exportStar(require("./standard-network-fargate-service"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsNkRBQTJDO0FBQzNDLDZEQUEyQztBQUMzQyx5RUFBdUQ7QUFDdkQscUVBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbG9nLWNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLWZhcmdhdGUtY2x1c3RlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtZmFyZ2F0ZS1zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1hcHBsaWNhdGlvbi1mYXJnYXRlLXNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLW5ldHdvcmstZmFyZ2F0ZS1zZXJ2aWNlXCI7XG4iXX0=
18
+ __exportStar(require("./ecs-service-update"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsNkRBQTJDO0FBQzNDLDZEQUEyQztBQUMzQyx5RUFBdUQ7QUFDdkQscUVBQW1EO0FBQ25ELHVEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xvZy1jb25maWd1cmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1mYXJnYXRlLWNsdXN0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLWZhcmdhdGUtc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtYXBwbGljYXRpb24tZmFyZ2F0ZS1zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1uZXR3b3JrLWZhcmdhdGUtc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWNzLXNlcnZpY2UtdXBkYXRlXCI7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "1.7.5",
3
+ "version": "1.7.7-alpha.0+6f7ed6b",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "d05bfa7b4eccb89283c513b6bc3641accd0d6199"
75
+ "gitHead": "6f7ed6bd1c1a7ad04bd168f952d00a6b7d78a803"
76
76
  }
package/test-helper.d.ts CHANGED
@@ -6,7 +6,8 @@ export declare enum ResourceType {
6
6
  CLOUDWATCH_ALARM = "AWS::CloudWatch::Alarm",
7
7
  LAMBDA_FUNCTION = "AWS::Lambda::Function",
8
8
  DYNAMODB_TABLE = "AWS::DynamoDB::Table",
9
- SSM_PARAMETER = "AWS::SSM::Parameter"
9
+ SSM_PARAMETER = "AWS::SSM::Parameter",
10
+ S3_BUCKET = "AWS::S3::Bucket"
10
11
  }
11
12
  export declare class TestHelper {
12
13
  static readonly DEFAULT_REGION = "us-east-2";
package/test-helper.js CHANGED
@@ -10,6 +10,7 @@ var ResourceType;
10
10
  ResourceType["LAMBDA_FUNCTION"] = "AWS::Lambda::Function";
11
11
  ResourceType["DYNAMODB_TABLE"] = "AWS::DynamoDB::Table";
12
12
  ResourceType["SSM_PARAMETER"] = "AWS::SSM::Parameter";
13
+ ResourceType["S3_BUCKET"] = "AWS::S3::Bucket";
13
14
  })(ResourceType = exports.ResourceType || (exports.ResourceType = {}));
14
15
  class TestHelper {
15
16
  static app() {
@@ -41,4 +42,4 @@ class TestHelper {
41
42
  exports.TestHelper = TestHelper;
42
43
  TestHelper.DEFAULT_REGION = "us-east-2";
43
44
  TestHelper.DEFAULT_ACCOUNT = "100000000000";
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFHN0IsMkNBQTBFO0FBRTFFLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUN0Qiw0REFBNEMsQ0FBQTtJQUM1QywyREFBMkMsQ0FBQTtJQUMzQyx5REFBeUMsQ0FBQTtJQUN6Qyx1REFBdUMsQ0FBQTtJQUN2QyxxREFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBTlcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFNdkI7QUFFRCxNQUFhLFVBQVU7SUFLckIsTUFBTSxDQUFDLEdBQUc7UUFDUixPQUFPLElBQUksbUJBQVcsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFTLEVBQUUsRUFBVztRQUNqQyxPQUFPLElBQUkscUJBQWEsQ0FBQyxHQUFHLGFBQUgsR0FBRyxjQUFILEdBQUcsR0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxhQUFGLEVBQUUsY0FBRixFQUFFLEdBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBbUIsRUFBRSxFQUFXO1FBQzNDLE9BQU8sSUFBSSxxQkFBYSxDQUFDLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQWtCO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFrQixFQUFFLElBQTJCLEVBQUUsS0FBVztRQUM5RSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBa0I7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixPQUFPO1lBQ04sT0FBTyxFQUFFLFVBQVUsQ0FBQyxlQUFlO1lBQ25DLE1BQU0sRUFBRSxVQUFVLENBQUMsY0FBYztTQUNqQyxDQUFBO0lBQ0gsQ0FBQzs7QUFuQ0gsZ0NBb0NDO0FBbENpQix5QkFBYyxHQUFHLFdBQVcsQ0FBQztBQUM3QiwwQkFBZSxHQUFHLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7VGVtcGxhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQge0FwcCwgUmVzb3VyY2VFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWdlfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7RXh0ZW5kZWRBcHAsIEV4dGVuZGVkU3RhY2ssIEV4dGVuZGVkU3RhZ2V9IGZyb20gXCIuL2F3cy1jZGsvaW5kZXhcIjtcblxuZXhwb3J0IGVudW0gUmVzb3VyY2VUeXBlIHtcbiAgQ09ERVBJUEVMSU5FID0gXCJBV1M6OkNvZGVQaXBlbGluZTo6UGlwZWxpbmVcIixcbiAgQ0xPVURXQVRDSF9BTEFSTSA9IFwiQVdTOjpDbG91ZFdhdGNoOjpBbGFybVwiLFxuICBMQU1CREFfRlVOQ1RJT04gPSBcIkFXUzo6TGFtYmRhOjpGdW5jdGlvblwiLFxuICBEWU5BTU9EQl9UQUJMRSA9IFwiQVdTOjpEeW5hbW9EQjo6VGFibGVcIixcbiAgU1NNX1BBUkFNRVRFUiA9IFwiQVdTOjpTU006OlBhcmFtZXRlclwiXG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0SGVscGVyIHtcblxuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9SRUdJT04gPSBcInVzLWVhc3QtMlwiO1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BQ0NPVU5UID0gXCIxMDAwMDAwMDAwMDBcIjtcblxuICBzdGF0aWMgYXBwKCkge1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWRBcHAoe2FjY291bnQ6IHRoaXMuREVGQVVMVF9BQ0NPVU5ULCByZWdpb246IHRoaXMuREVGQVVMVF9SRUdJT059KTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFnZShhcHA/OiBBcHAsIGlkPzogc3RyaW5nKTogU3RhZ2Uge1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWRTdGFnZShhcHAgPz8gdGhpcy5hcHAoKSwgaWQ/P1wiVGVzdFN0YWdlXCIpO1xuICB9XG5cbiAgc3RhdGljIHN0YWNrKHNjb3BlPzogQXBwIHwgU3RhZ2UsIGlkPzogc3RyaW5nKTogU3RhY2sge1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWRTdGFjayhzY29wZSA/PyB0aGlzLmFwcCgpLCBpZCA/PyBcIlRlc3RTdGFja1wiKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNvbHZlVGVzdEZpbGVzKGNoaWxkUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwidGVzdC1maWxlc1wiKTtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKGNoaWxkUGF0aCA9PSB1bmRlZmluZWQgPyBkaXIgOiBwYXRoLmpvaW4oZGlyLCBjaGlsZFBhdGgpKTtcbiAgfVxuXG4gIHN0YXRpYyBsb2dSZXNvdXJjZXModGVtcGxhdGU6IFRlbXBsYXRlLCB0eXBlOiBzdHJpbmcgfCBSZXNvdXJjZVR5cGUsIHByb3BzPzogYW55KSB7XG4gICAgY29uc29sZS5sb2codGVtcGxhdGUuZmluZFJlc291cmNlcyh0eXBlLCBwcm9wcykpO1xuICB9XG5cbiAgc3RhdGljIGxvZ1RlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSkge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRlbXBsYXRlLCBudWxsLCBcIiAgXCIpKTtcbiAgfVxuXG4gIHN0YXRpYyBlbnYoKTogUmVzb3VyY2VFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgYWNjb3VudDogVGVzdEhlbHBlci5ERUZBVUxUX0FDQ09VTlQsXG4gICAgIHJlZ2lvbjogVGVzdEhlbHBlci5ERUZBVUxUX1JFR0lPTlxuICAgIH1cbiAgfVxufVxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFHN0IsMkNBQTBFO0FBRTFFLElBQVksWUFPWDtBQVBELFdBQVksWUFBWTtJQUN0Qiw0REFBNEMsQ0FBQTtJQUM1QywyREFBMkMsQ0FBQTtJQUMzQyx5REFBeUMsQ0FBQTtJQUN6Qyx1REFBdUMsQ0FBQTtJQUN2QyxxREFBcUMsQ0FBQTtJQUNyQyw2Q0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBUFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFPdkI7QUFFRCxNQUFhLFVBQVU7SUFLckIsTUFBTSxDQUFDLEdBQUc7UUFDUixPQUFPLElBQUksbUJBQVcsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFTLEVBQUUsRUFBVztRQUNqQyxPQUFPLElBQUkscUJBQWEsQ0FBQyxHQUFHLGFBQUgsR0FBRyxjQUFILEdBQUcsR0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxhQUFGLEVBQUUsY0FBRixFQUFFLEdBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBbUIsRUFBRSxFQUFXO1FBQzNDLE9BQU8sSUFBSSxxQkFBYSxDQUFDLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQWtCO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFrQixFQUFFLElBQTJCLEVBQUUsS0FBVztRQUM5RSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBa0I7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixPQUFPO1lBQ04sT0FBTyxFQUFFLFVBQVUsQ0FBQyxlQUFlO1lBQ25DLE1BQU0sRUFBRSxVQUFVLENBQUMsY0FBYztTQUNqQyxDQUFBO0lBQ0gsQ0FBQzs7QUFuQ0gsZ0NBb0NDO0FBbENpQix5QkFBYyxHQUFHLFdBQVcsQ0FBQztBQUM3QiwwQkFBZSxHQUFHLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7VGVtcGxhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQge0FwcCwgUmVzb3VyY2VFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWdlfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7RXh0ZW5kZWRBcHAsIEV4dGVuZGVkU3RhY2ssIEV4dGVuZGVkU3RhZ2V9IGZyb20gXCIuL2F3cy1jZGsvaW5kZXhcIjtcblxuZXhwb3J0IGVudW0gUmVzb3VyY2VUeXBlIHtcbiAgQ09ERVBJUEVMSU5FID0gXCJBV1M6OkNvZGVQaXBlbGluZTo6UGlwZWxpbmVcIixcbiAgQ0xPVURXQVRDSF9BTEFSTSA9IFwiQVdTOjpDbG91ZFdhdGNoOjpBbGFybVwiLFxuICBMQU1CREFfRlVOQ1RJT04gPSBcIkFXUzo6TGFtYmRhOjpGdW5jdGlvblwiLFxuICBEWU5BTU9EQl9UQUJMRSA9IFwiQVdTOjpEeW5hbW9EQjo6VGFibGVcIixcbiAgU1NNX1BBUkFNRVRFUiA9IFwiQVdTOjpTU006OlBhcmFtZXRlclwiLFxuICBTM19CVUNLRVQgPSBcIkFXUzo6UzM6OkJ1Y2tldFwiXG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0SGVscGVyIHtcblxuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9SRUdJT04gPSBcInVzLWVhc3QtMlwiO1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BQ0NPVU5UID0gXCIxMDAwMDAwMDAwMDBcIjtcblxuICBzdGF0aWMgYXBwKCkge1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWRBcHAoe2FjY291bnQ6IHRoaXMuREVGQVVMVF9BQ0NPVU5ULCByZWdpb246IHRoaXMuREVGQVVMVF9SRUdJT059KTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFnZShhcHA/OiBBcHAsIGlkPzogc3RyaW5nKTogU3RhZ2Uge1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWRTdGFnZShhcHAgPz8gdGhpcy5hcHAoKSwgaWQ/P1wiVGVzdFN0YWdlXCIpO1xuICB9XG5cbiAgc3RhdGljIHN0YWNrKHNjb3BlPzogQXBwIHwgU3RhZ2UsIGlkPzogc3RyaW5nKTogU3RhY2sge1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWRTdGFjayhzY29wZSA/PyB0aGlzLmFwcCgpLCBpZCA/PyBcIlRlc3RTdGFja1wiKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNvbHZlVGVzdEZpbGVzKGNoaWxkUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwidGVzdC1maWxlc1wiKTtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKGNoaWxkUGF0aCA9PSB1bmRlZmluZWQgPyBkaXIgOiBwYXRoLmpvaW4oZGlyLCBjaGlsZFBhdGgpKTtcbiAgfVxuXG4gIHN0YXRpYyBsb2dSZXNvdXJjZXModGVtcGxhdGU6IFRlbXBsYXRlLCB0eXBlOiBzdHJpbmcgfCBSZXNvdXJjZVR5cGUsIHByb3BzPzogYW55KSB7XG4gICAgY29uc29sZS5sb2codGVtcGxhdGUuZmluZFJlc291cmNlcyh0eXBlLCBwcm9wcykpO1xuICB9XG5cbiAgc3RhdGljIGxvZ1RlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSkge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRlbXBsYXRlLCBudWxsLCBcIiAgXCIpKTtcbiAgfVxuXG4gIHN0YXRpYyBlbnYoKTogUmVzb3VyY2VFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgYWNjb3VudDogVGVzdEhlbHBlci5ERUZBVUxUX0FDQ09VTlQsXG4gICAgIHJlZ2lvbjogVGVzdEhlbHBlci5ERUZBVUxUX1JFR0lPTlxuICAgIH1cbiAgfVxufVxuIl19