@horietakehiro/aws-cdk-utul 0.41.50 → 0.41.52

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.
@@ -50,11 +50,19 @@ export interface _AWS_CUSTOMERPROFILES_SEGMENTDEFINITION {
50
50
  * The unique name of the segment definition.
51
51
  */
52
52
  SegmentDefinitionName: string;
53
- SegmentGroups: SegmentGroup;
53
+ SegmentGroups?: SegmentGroup;
54
+ /**
55
+ * The SQL query that defines the segment criteria.
56
+ */
57
+ SegmentSqlQuery?: string;
54
58
  /**
55
59
  * The Amazon Resource Name (ARN) of the segment definition.
56
60
  */
57
61
  SegmentDefinitionArn?: string;
62
+ /**
63
+ * The SQL query that defines the segment criteria.
64
+ */
65
+ SegmentType?: ("CLASSIC" | "ENHANCED");
58
66
  /**
59
67
  * The tags used to organize, track, or control access for this resource.
60
68
  *
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbWVycHJvZmlsZXMtc2VnbWVudGRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtY3VzdG9tZXJwcm9maWxlcy1zZWdtZW50ZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3JpdGVyaWEgdGhhdCBkZWZpbmUgdGhlIGRpbWVuc2lvbnMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgdHlwZSBEaW1lbnNpb24gPSAoUHJvZmlsZUF0dHJpYnV0ZXMgfCBDYWxjdWxhdGVkQXR0cmlidXRlcylcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlIGZvciBhIHN0cmluZyBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ0RpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIgfCBcIkNPTlRBSU5TXCIgfCBcIkJFR0lOU19XSVRIXCIgfCBcIkVORFNfV0lUSFwiKVxuLyoqXG4gKiBUaGUgdHlwZSBvZiBzZWdtZW50IGRpbWVuc2lvbiB0byB1c2UgZm9yIGEgZGF0ZSBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIERhdGVEaW1lbnNpb25UeXBlID0gKFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIilcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlLlxuICovXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlID0gKFwiSU5DTFVTSVZFXCIgfCBcIkVYQ0xVU0lWRVwiIHwgXCJDT05UQUlOU1wiIHwgXCJCRUdJTlNfV0lUSFwiIHwgXCJFTkRTX1dJVEhcIiB8IFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIiB8IFwiR1JFQVRFUl9USEFOXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJHUkVBVEVSX1RIQU5fT1JfRVFVQUxcIiB8IFwiTEVTU19USEFOX09SX0VRVUFMXCIgfCBcIkVRVUFMXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIHNlZ21lbnQgZGltZW5zaW9uIHRvIHVzZSBmb3IgYSBwcm9maWxlIHR5cGUgZGltZW5zaW9uLlxuICovXG5leHBvcnQgdHlwZSBQcm9maWxlVHlwZURpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIHByb2ZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIFByb2ZpbGVUeXBlID0gKFwiQUNDT1VOVF9QUk9GSUxFXCIgfCBcIlBST0ZJTEVcIilcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBvcGVyYXRvciBvbiBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGdyb3VwcyB3aXRoaW4gdGhlIHNhbWUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5jbHVkZU9wdGlvbnMgPSAoXCJBTExcIiB8IFwiQU5ZXCIgfCBcIk5PTkVcIilcblxuLyoqXG4gKiBBIHNlZ21lbnQgZGVmaW5pdGlvbiByZXNvdXJjZSBvZiBBbWF6b24gQ29ubmVjdCBDdXN0b21lciBQcm9maWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQ1VTVE9NRVJQUk9GSUxFU19TRUdNRU5UREVGSU5JVElPTiB7XG4vKipcbiAqIFRoZSB0aW1lIG9mIHRoaXMgc2VnbWVudCBkZWZpbml0aW9uIGdvdCBjcmVhdGVkLlxuICovXG5DcmVhdGVkQXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZWdtZW50IGRlZmluaXRpb24uXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHNlZ21lbnQgZGVmaW5pdGlvbi5cbiAqL1xuRGlzcGxheU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIGRvbWFpbi5cbiAqL1xuRG9tYWluTmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5TZWdtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuU2VnbWVudEdyb3VwczogU2VnbWVudEdyb3VwXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5TZWdtZW50RGVmaW5pdGlvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB1c2VkIHRvIG9yZ2FuaXplLCB0cmFjaywgb3IgY29udHJvbCBhY2Nlc3MgZm9yIHRoaXMgcmVzb3VyY2UuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIEFuIGFycmF5IHRoYXQgZGVmaW5lcyB0aGUgc2V0IG9mIHNlZ21lbnQgY3JpdGVyaWEgdG8gZXZhbHVhdGUgd2hlbiBoYW5kbGluZyBzZWdtZW50IGdyb3VwcyBmb3IgdGhlIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VnbWVudEdyb3VwIHtcbkdyb3Vwcz86IEdyb3VwW11cbkluY2x1ZGU/OiBJbmNsdWRlT3B0aW9uc1xufVxuLyoqXG4gKiBBbiBhcnJheSB0aGF0IGRlZmluZXMgdGhlIHNldCBvZiBzZWdtZW50IGNyaXRlcmlhIHRvIGV2YWx1YXRlIHdoZW4gaGFuZGxpbmcgc2VnbWVudCBncm91cHMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIHtcbkRpbWVuc2lvbnM/OiBEaW1lbnNpb25bXVxuU291cmNlU2VnbWVudHM/OiBTb3VyY2VTZWdtZW50W11cblNvdXJjZVR5cGU/OiBJbmNsdWRlT3B0aW9uc1xuVHlwZT86IEluY2x1ZGVPcHRpb25zXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVBdHRyaWJ1dGVzIHtcblByb2ZpbGVBdHRyaWJ1dGVzOiBQcm9maWxlQXR0cmlidXRlczFcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkaW1lbnNpb24gc2V0dGluZ3Mgd2l0aGluIHByb2ZpbGUgYXR0cmlidXRlcyBmb3IgYSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVBdHRyaWJ1dGVzMSB7XG5BY2NvdW50TnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuQWRkaXRpb25hbEluZm9ybWF0aW9uPzogRXh0cmFMZW5ndGhWYWx1ZVByb2ZpbGVEaW1lbnNpb25cbkZpcnN0TmFtZT86IFByb2ZpbGVEaW1lbnNpb25cbkxhc3ROYW1lPzogUHJvZmlsZURpbWVuc2lvblxuTWlkZGxlTmFtZT86IFByb2ZpbGVEaW1lbnNpb25cbkdlbmRlclN0cmluZz86IFByb2ZpbGVEaW1lbnNpb25cblBhcnR5VHlwZVN0cmluZz86IFByb2ZpbGVEaW1lbnNpb25cbkJpcnRoRGF0ZT86IERhdGVEaW1lbnNpb25cblBob25lTnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuQnVzaW5lc3NOYW1lPzogUHJvZmlsZURpbWVuc2lvblxuQnVzaW5lc3NQaG9uZU51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbkhvbWVQaG9uZU51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbk1vYmlsZVBob25lTnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuRW1haWxBZGRyZXNzPzogUHJvZmlsZURpbWVuc2lvblxuUGVyc29uYWxFbWFpbEFkZHJlc3M/OiBQcm9maWxlRGltZW5zaW9uXG5CdXNpbmVzc0VtYWlsQWRkcmVzcz86IFByb2ZpbGVEaW1lbnNpb25cbkFkZHJlc3M/OiBBZGRyZXNzRGltZW5zaW9uXG5TaGlwcGluZ0FkZHJlc3M/OiBBZGRyZXNzRGltZW5zaW9uXG5NYWlsaW5nQWRkcmVzcz86IEFkZHJlc3NEaW1lbnNpb25cbkJpbGxpbmdBZGRyZXNzPzogQWRkcmVzc0RpbWVuc2lvblxuQXR0cmlidXRlcz86IEN1c3RvbUF0dHJpYnV0ZXNcblByb2ZpbGVUeXBlPzogUHJvZmlsZVR5cGVEaW1lbnNpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIHByb2ZpbGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IFN0cmluZ0RpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBjcml0ZXJpYSBmb3IgYSBzZWdtZW50IHVzaW5nIGV4dGVuZGVkLWxlbmd0aCBzdHJpbmcgdmFsdWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhTGVuZ3RoVmFsdWVQcm9maWxlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IFN0cmluZ0RpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBkYXRlIGJhc2VkIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBEYXRlRGltZW5zaW9uVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblZhbHVlczogc3RyaW5nW11cbn1cbi8qKlxuICogVGhlIGFkZHJlc3MgYmFzZWQgY3JpdGVyaWEgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NEaW1lbnNpb24ge1xuQ2l0eT86IFByb2ZpbGVEaW1lbnNpb25cbkNvdW50cnk/OiBQcm9maWxlRGltZW5zaW9uXG5Db3VudHk/OiBQcm9maWxlRGltZW5zaW9uXG5Qb3N0YWxDb2RlPzogUHJvZmlsZURpbWVuc2lvblxuUHJvdmluY2U/OiBQcm9maWxlRGltZW5zaW9uXG5TdGF0ZT86IFByb2ZpbGVEaW1lbnNpb25cbn1cbi8qKlxuICogT25lIG9yIG1vcmUgY3VzdG9tIGF0dHJpYnV0ZXMgdG8gdXNlIGFzIGNyaXRlcmlhIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdHRyaWJ1dGVzIHtcbltrOiBzdHJpbmddOiBBdHRyaWJ1dGVEaW1lbnNpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIGF0dHJpYnV0ZSBiYXNlZCBjcml0ZXJpYSBmb3IgYSBzZWdtZW50LlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgQ3VzdG9tQXR0cmlidXRlc2AncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlthLXpBLVpfXVthLXpBLVpfMC05LV0qJFwiLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgcHJvZmlsZSB0eXBlIGJhc2VkIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZVR5cGVEaW1lbnNpb24ge1xuRGltZW5zaW9uVHlwZTogUHJvZmlsZVR5cGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5WYWx1ZXM6IFByb2ZpbGVUeXBlW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZEF0dHJpYnV0ZXMge1xuQ2FsY3VsYXRlZEF0dHJpYnV0ZXM/OiBDYWxjdWxhdGVkQ3VzdG9tQXR0cmlidXRlc1xufVxuLyoqXG4gKiBPbmUgb3IgbW9yZSBjYWxjdWxhdGVkIGF0dHJpYnV0ZXMgdG8gdXNlIGFzIGNyaXRlcmlhIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGVkQ3VzdG9tQXR0cmlidXRlcyB7XG5bazogc3RyaW5nXTogQ2FsY3VsYXRlZEF0dHJpYnV0ZURpbWVuc2lvblxufVxuLyoqXG4gKiBTcGVjaWZpZXMgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqIFxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYENhbGN1bGF0ZWRDdXN0b21BdHRyaWJ1dGVzYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeW2EtekEtWl9dW2EtekEtWl8wLTktXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZEF0dHJpYnV0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxuQ29uZGl0aW9uT3ZlcnJpZGVzPzogQ29uZGl0aW9uT3ZlcnJpZGVzXG59XG4vKipcbiAqIE92ZXJyaWRlcyB0aGUgY29uZGl0aW9uIGJsb2NrIHdpdGhpbiB0aGUgb3JpZ2luYWwgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25PdmVycmlkZXMge1xuUmFuZ2U/OiBSYW5nZU92ZXJyaWRlXG59XG4vKipcbiAqIERlZmluZXMgdGhlIHJhbmdlIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNhbGN1bGF0ZWQgYXR0cmlidXRlIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VPdmVycmlkZSB7XG4vKipcbiAqIFRoZSBzdGFydGluZyBwb2ludCBmb3IgdGhpcyBvdmVycmlkZGVuIHJhbmdlLiBQb3NpdGl2ZSBudW1iZXJzIGluZGljYXRlIGhvdyBtYW55IGRheXMgaW4gdGhlIHBhc3QgZGF0YSBzaG91bGQgYmUgaW5jbHVkZWQsIGFuZCBuZWdhdGl2ZSBudW1iZXJzIGluZGljYXRlIGhvdyBtYW55IGRheXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuU3RhcnQ6IG51bWJlclxuLyoqXG4gKiBUaGUgZW5kaW5nIHBvaW50IGZvciB0aGlzIG92ZXJyaWRkZW4gcmFuZ2UuIFBvc2l0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgcGFzdCBkYXRhIHNob3VsZCBiZSBpbmNsdWRlZCwgYW5kIG5lZ2F0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgZnV0dXJlLlxuICovXG5FbmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIHVuaXQgdG8gYmUgYXBwbGllZCB0byB0aGUgcmFuZ2UuXG4gKi9cblVuaXQ6IFwiREFZU1wiXG59XG4vKipcbiAqIFRoZSBiYXNlIHNlZ21lbnQgdG8gYnVpbGQgdGhlIHNlZ21lbnQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VnbWVudCB7XG5TZWdtZW50RGVmaW5pdGlvbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbWVycHJvZmlsZXMtc2VnbWVudGRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtY3VzdG9tZXJwcm9maWxlcy1zZWdtZW50ZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3JpdGVyaWEgdGhhdCBkZWZpbmUgdGhlIGRpbWVuc2lvbnMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgdHlwZSBEaW1lbnNpb24gPSAoUHJvZmlsZUF0dHJpYnV0ZXMgfCBDYWxjdWxhdGVkQXR0cmlidXRlcylcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlIGZvciBhIHN0cmluZyBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ0RpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIgfCBcIkNPTlRBSU5TXCIgfCBcIkJFR0lOU19XSVRIXCIgfCBcIkVORFNfV0lUSFwiKVxuLyoqXG4gKiBUaGUgdHlwZSBvZiBzZWdtZW50IGRpbWVuc2lvbiB0byB1c2UgZm9yIGEgZGF0ZSBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIERhdGVEaW1lbnNpb25UeXBlID0gKFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIilcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlLlxuICovXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlID0gKFwiSU5DTFVTSVZFXCIgfCBcIkVYQ0xVU0lWRVwiIHwgXCJDT05UQUlOU1wiIHwgXCJCRUdJTlNfV0lUSFwiIHwgXCJFTkRTX1dJVEhcIiB8IFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIiB8IFwiR1JFQVRFUl9USEFOXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJHUkVBVEVSX1RIQU5fT1JfRVFVQUxcIiB8IFwiTEVTU19USEFOX09SX0VRVUFMXCIgfCBcIkVRVUFMXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIHNlZ21lbnQgZGltZW5zaW9uIHRvIHVzZSBmb3IgYSBwcm9maWxlIHR5cGUgZGltZW5zaW9uLlxuICovXG5leHBvcnQgdHlwZSBQcm9maWxlVHlwZURpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIHByb2ZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIFByb2ZpbGVUeXBlID0gKFwiQUNDT1VOVF9QUk9GSUxFXCIgfCBcIlBST0ZJTEVcIilcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBvcGVyYXRvciBvbiBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGdyb3VwcyB3aXRoaW4gdGhlIHNhbWUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5jbHVkZU9wdGlvbnMgPSAoXCJBTExcIiB8IFwiQU5ZXCIgfCBcIk5PTkVcIilcblxuLyoqXG4gKiBBIHNlZ21lbnQgZGVmaW5pdGlvbiByZXNvdXJjZSBvZiBBbWF6b24gQ29ubmVjdCBDdXN0b21lciBQcm9maWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQ1VTVE9NRVJQUk9GSUxFU19TRUdNRU5UREVGSU5JVElPTiB7XG4vKipcbiAqIFRoZSB0aW1lIG9mIHRoaXMgc2VnbWVudCBkZWZpbml0aW9uIGdvdCBjcmVhdGVkLlxuICovXG5DcmVhdGVkQXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZWdtZW50IGRlZmluaXRpb24uXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHNlZ21lbnQgZGVmaW5pdGlvbi5cbiAqL1xuRGlzcGxheU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIGRvbWFpbi5cbiAqL1xuRG9tYWluTmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5TZWdtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuU2VnbWVudEdyb3Vwcz86IFNlZ21lbnRHcm91cFxuLyoqXG4gKiBUaGUgU1FMIHF1ZXJ5IHRoYXQgZGVmaW5lcyB0aGUgc2VnbWVudCBjcml0ZXJpYS5cbiAqL1xuU2VnbWVudFNxbFF1ZXJ5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5TZWdtZW50RGVmaW5pdGlvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgU1FMIHF1ZXJ5IHRoYXQgZGVmaW5lcyB0aGUgc2VnbWVudCBjcml0ZXJpYS5cbiAqL1xuU2VnbWVudFR5cGU/OiAoXCJDTEFTU0lDXCIgfCBcIkVOSEFOQ0VEXCIpXG4vKipcbiAqIFRoZSB0YWdzIHVzZWQgdG8gb3JnYW5pemUsIHRyYWNrLCBvciBjb250cm9sIGFjY2VzcyBmb3IgdGhpcyByZXNvdXJjZS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogQW4gYXJyYXkgdGhhdCBkZWZpbmVzIHRoZSBzZXQgb2Ygc2VnbWVudCBjcml0ZXJpYSB0byBldmFsdWF0ZSB3aGVuIGhhbmRsaW5nIHNlZ21lbnQgZ3JvdXBzIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWdtZW50R3JvdXAge1xuR3JvdXBzPzogR3JvdXBbXVxuSW5jbHVkZT86IEluY2x1ZGVPcHRpb25zXG59XG4vKipcbiAqIEFuIGFycmF5IHRoYXQgZGVmaW5lcyB0aGUgc2V0IG9mIHNlZ21lbnQgY3JpdGVyaWEgdG8gZXZhbHVhdGUgd2hlbiBoYW5kbGluZyBzZWdtZW50IGdyb3VwcyBmb3IgdGhlIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xuRGltZW5zaW9ucz86IERpbWVuc2lvbltdXG5Tb3VyY2VTZWdtZW50cz86IFNvdXJjZVNlZ21lbnRbXVxuU291cmNlVHlwZT86IEluY2x1ZGVPcHRpb25zXG5UeXBlPzogSW5jbHVkZU9wdGlvbnNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZUF0dHJpYnV0ZXMge1xuUHJvZmlsZUF0dHJpYnV0ZXM6IFByb2ZpbGVBdHRyaWJ1dGVzMVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRpbWVuc2lvbiBzZXR0aW5ncyB3aXRoaW4gcHJvZmlsZSBhdHRyaWJ1dGVzIGZvciBhIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZUF0dHJpYnV0ZXMxIHtcbkFjY291bnROdW1iZXI/OiBQcm9maWxlRGltZW5zaW9uXG5BZGRpdGlvbmFsSW5mb3JtYXRpb24/OiBFeHRyYUxlbmd0aFZhbHVlUHJvZmlsZURpbWVuc2lvblxuRmlyc3ROYW1lPzogUHJvZmlsZURpbWVuc2lvblxuTGFzdE5hbWU/OiBQcm9maWxlRGltZW5zaW9uXG5NaWRkbGVOYW1lPzogUHJvZmlsZURpbWVuc2lvblxuR2VuZGVyU3RyaW5nPzogUHJvZmlsZURpbWVuc2lvblxuUGFydHlUeXBlU3RyaW5nPzogUHJvZmlsZURpbWVuc2lvblxuQmlydGhEYXRlPzogRGF0ZURpbWVuc2lvblxuUGhvbmVOdW1iZXI/OiBQcm9maWxlRGltZW5zaW9uXG5CdXNpbmVzc05hbWU/OiBQcm9maWxlRGltZW5zaW9uXG5CdXNpbmVzc1Bob25lTnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuSG9tZVBob25lTnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuTW9iaWxlUGhvbmVOdW1iZXI/OiBQcm9maWxlRGltZW5zaW9uXG5FbWFpbEFkZHJlc3M/OiBQcm9maWxlRGltZW5zaW9uXG5QZXJzb25hbEVtYWlsQWRkcmVzcz86IFByb2ZpbGVEaW1lbnNpb25cbkJ1c2luZXNzRW1haWxBZGRyZXNzPzogUHJvZmlsZURpbWVuc2lvblxuQWRkcmVzcz86IEFkZHJlc3NEaW1lbnNpb25cblNoaXBwaW5nQWRkcmVzcz86IEFkZHJlc3NEaW1lbnNpb25cbk1haWxpbmdBZGRyZXNzPzogQWRkcmVzc0RpbWVuc2lvblxuQmlsbGluZ0FkZHJlc3M/OiBBZGRyZXNzRGltZW5zaW9uXG5BdHRyaWJ1dGVzPzogQ3VzdG9tQXR0cmlidXRlc1xuUHJvZmlsZVR5cGU/OiBQcm9maWxlVHlwZURpbWVuc2lvblxufVxuLyoqXG4gKiBTcGVjaWZpZXMgcHJvZmlsZSBiYXNlZCBjcml0ZXJpYSBmb3IgYSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVEaW1lbnNpb24ge1xuRGltZW5zaW9uVHlwZTogU3RyaW5nRGltZW5zaW9uVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblZhbHVlczogc3RyaW5nW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQgdXNpbmcgZXh0ZW5kZWQtbGVuZ3RoIHN0cmluZyB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFMZW5ndGhWYWx1ZVByb2ZpbGVEaW1lbnNpb24ge1xuRGltZW5zaW9uVHlwZTogU3RyaW5nRGltZW5zaW9uVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblZhbHVlczogc3RyaW5nW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIGRhdGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IERhdGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBUaGUgYWRkcmVzcyBiYXNlZCBjcml0ZXJpYSBmb3IgdGhlIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0RpbWVuc2lvbiB7XG5DaXR5PzogUHJvZmlsZURpbWVuc2lvblxuQ291bnRyeT86IFByb2ZpbGVEaW1lbnNpb25cbkNvdW50eT86IFByb2ZpbGVEaW1lbnNpb25cblBvc3RhbENvZGU/OiBQcm9maWxlRGltZW5zaW9uXG5Qcm92aW5jZT86IFByb2ZpbGVEaW1lbnNpb25cblN0YXRlPzogUHJvZmlsZURpbWVuc2lvblxufVxuLyoqXG4gKiBPbmUgb3IgbW9yZSBjdXN0b20gYXR0cmlidXRlcyB0byB1c2UgYXMgY3JpdGVyaWEgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXMge1xuW2s6IHN0cmluZ106IEF0dHJpYnV0ZURpbWVuc2lvblxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYXR0cmlidXRlIGJhc2VkIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQuXG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBDdXN0b21BdHRyaWJ1dGVzYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeW2EtekEtWl9dW2EtekEtWl8wLTktXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IEF0dHJpYnV0ZURpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBwcm9maWxlIHR5cGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlVHlwZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBQcm9maWxlVHlwZURpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cblZhbHVlczogUHJvZmlsZVR5cGVbXVxufVxuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGVkQXR0cmlidXRlcyB7XG5DYWxjdWxhdGVkQXR0cmlidXRlcz86IENhbGN1bGF0ZWRDdXN0b21BdHRyaWJ1dGVzXG59XG4vKipcbiAqIE9uZSBvciBtb3JlIGNhbGN1bGF0ZWQgYXR0cmlidXRlcyB0byB1c2UgYXMgY3JpdGVyaWEgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbGN1bGF0ZWRDdXN0b21BdHRyaWJ1dGVzIHtcbltrOiBzdHJpbmddOiBDYWxjdWxhdGVkQXR0cmlidXRlRGltZW5zaW9uXG59XG4vKipcbiAqIFNwZWNpZmllcyBjYWxjdWxhdGVkIGF0dHJpYnV0ZSBiYXNlZCBjcml0ZXJpYSBmb3IgYSBzZWdtZW50LlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgQ2FsY3VsYXRlZEN1c3RvbUF0dHJpYnV0ZXNgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl5bYS16QS1aX11bYS16QS1aXzAtOS1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGVkQXR0cmlidXRlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IEF0dHJpYnV0ZURpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG5Db25kaXRpb25PdmVycmlkZXM/OiBDb25kaXRpb25PdmVycmlkZXNcbn1cbi8qKlxuICogT3ZlcnJpZGVzIHRoZSBjb25kaXRpb24gYmxvY2sgd2l0aGluIHRoZSBvcmlnaW5hbCBjYWxjdWxhdGVkIGF0dHJpYnV0ZSBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbk92ZXJyaWRlcyB7XG5SYW5nZT86IFJhbmdlT3ZlcnJpZGVcbn1cbi8qKlxuICogRGVmaW5lcyB0aGUgcmFuZ2UgdG8gYmUgYXBwbGllZCB0byB0aGUgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYW5nZU92ZXJyaWRlIHtcbi8qKlxuICogVGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGlzIG92ZXJyaWRkZW4gcmFuZ2UuIFBvc2l0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgcGFzdCBkYXRhIHNob3VsZCBiZSBpbmNsdWRlZCwgYW5kIG5lZ2F0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgZnV0dXJlLlxuICovXG5TdGFydDogbnVtYmVyXG4vKipcbiAqIFRoZSBlbmRpbmcgcG9pbnQgZm9yIHRoaXMgb3ZlcnJpZGRlbiByYW5nZS4gUG9zaXRpdmUgbnVtYmVycyBpbmRpY2F0ZSBob3cgbWFueSBkYXlzIGluIHRoZSBwYXN0IGRhdGEgc2hvdWxkIGJlIGluY2x1ZGVkLCBhbmQgbmVnYXRpdmUgbnVtYmVycyBpbmRpY2F0ZSBob3cgbWFueSBkYXlzIGluIHRoZSBmdXR1cmUuXG4gKi9cbkVuZD86IG51bWJlclxuLyoqXG4gKiBUaGUgdW5pdCB0byBiZSBhcHBsaWVkIHRvIHRoZSByYW5nZS5cbiAqL1xuVW5pdDogXCJEQVlTXCJcbn1cbi8qKlxuICogVGhlIGJhc2Ugc2VnbWVudCB0byBidWlsZCB0aGUgc2VnbWVudCBvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWdtZW50IHtcblNlZ21lbnREZWZpbml0aW9uTmFtZT86IHN0cmluZ1xufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRvIGFzc29jaWF0ZSB3aXRoIGEgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIGtleSBuYW1lIG9mIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Resource Type definition for EKS Capability.
3
+ */
4
+ export interface _AWS_EKS_CAPABILITY {
5
+ /**
6
+ * The name of the EKS cluster where you want to create the capability.
7
+ */
8
+ ClusterName: string;
9
+ /**
10
+ * A unique name for the capability. The name must be unique within your cluster and can contain alphanumeric characters, hyphens, and underscores.
11
+ */
12
+ CapabilityName: string;
13
+ /**
14
+ * The type of capability to create. Valid values are: ACK (AWS Controllers for Kubernetes, which lets you manage AWS resources directly from Kubernetes), ARGOCD (Argo CD for GitOps-based continuous delivery), or KRO (Kube Resource Orchestrator for composing and managing custom Kubernetes resources).
15
+ */
16
+ Type: ("ARGOCD" | "ACK" | "KRO");
17
+ /**
18
+ * The Amazon Resource Name (ARN) of the IAM role that the capability uses to interact with AWS services. This role must have a trust policy that allows the EKS service principal to assume it, and it must have the necessary permissions for the capability type you're creating.
19
+ */
20
+ RoleArn: string;
21
+ /**
22
+ * Specifies how Kubernetes resources managed by the capability should be handled when the capability is deleted. Currently, the only supported value is RETAIN which retains all Kubernetes resources managed by the capability when the capability is deleted.
23
+ */
24
+ DeletePropagationPolicy: "RETAIN";
25
+ Configuration?: CapabilityConfiguration;
26
+ /**
27
+ * The Amazon Resource Name (ARN) of the capability.
28
+ */
29
+ Arn?: string;
30
+ /**
31
+ * The current status of the capability. Valid values include: CREATING (the capability is being created), ACTIVE (the capability is running and available), UPDATING (the capability is being updated), DELETING (the capability is being deleted), CREATE_FAILED (the capability creation failed), UPDATE_FAILED (the capability update failed), or DELETE_FAILED (the capability deletion failed).
32
+ */
33
+ Status?: string;
34
+ /**
35
+ * The Unix epoch timestamp in seconds for when the capability was created.
36
+ */
37
+ CreatedAt?: string;
38
+ /**
39
+ * The Unix epoch timestamp in seconds for when the capability was last modified.
40
+ */
41
+ ModifiedAt?: string;
42
+ /**
43
+ * The version of the capability software that is currently running.
44
+ */
45
+ Version?: string;
46
+ /**
47
+ * An array of key-value pairs to apply to this resource.
48
+ */
49
+ Tags?: Tag[];
50
+ }
51
+ /**
52
+ * The configuration settings for the capability. The structure of this object varies depending on the capability type. For Argo CD capabilities, you can configure IAM Identity Center integration, RBAC role mappings, and network access settings.
53
+ */
54
+ export interface CapabilityConfiguration {
55
+ ArgoCd?: ArgoCd;
56
+ }
57
+ /**
58
+ * Configuration settings for an Argo CD capability. This includes the Kubernetes namespace, IAM Identity Center integration, RBAC role mappings, and network access configuration.
59
+ */
60
+ export interface ArgoCd {
61
+ /**
62
+ * The Kubernetes namespace where Argo CD resources will be created. If not specified, the default namespace is used.
63
+ */
64
+ Namespace?: string;
65
+ AwsIdc: AwsIdc;
66
+ /**
67
+ * A list of role mappings that define which IAM Identity Center users or groups have which Argo CD roles. Each mapping associates an Argo CD role (ADMIN, EDITOR, or VIEWER) with one or more IAM Identity Center identities.
68
+ */
69
+ RbacRoleMappings?: ArgoCdRoleMapping[];
70
+ NetworkAccess?: NetworkAccess;
71
+ /**
72
+ * The URL of the Argo CD server. Use this URL to access the Argo CD web interface and API.
73
+ */
74
+ ServerUrl?: string;
75
+ }
76
+ /**
77
+ * Configuration for integrating Argo CD with IAM Identity Center. This allows you to use your organization's identity provider for authentication to Argo CD.
78
+ */
79
+ export interface AwsIdc {
80
+ /**
81
+ * The ARN of the IAM Identity Center instance to use for authentication.
82
+ */
83
+ IdcInstanceArn: string;
84
+ /**
85
+ * The Region where your IAM Identity Center instance is located.
86
+ */
87
+ IdcRegion?: string;
88
+ /**
89
+ * The ARN of the managed application created in IAM Identity Center for this Argo CD capability. This application is automatically created and managed by EKS.
90
+ */
91
+ IdcManagedApplicationArn?: string;
92
+ }
93
+ /**
94
+ * A mapping between an Argo CD role and IAM Identity Center identities. This defines which users or groups have specific permissions in Argo CD.
95
+ */
96
+ export interface ArgoCdRoleMapping {
97
+ /**
98
+ * The Argo CD role to assign. Valid values are: ADMIN (full administrative access to Argo CD), EDITOR (edit access to Argo CD resources), or VIEWER (read-only access to Argo CD resources).
99
+ */
100
+ Role: ("ADMIN" | "EDITOR" | "VIEWER");
101
+ /**
102
+ * A list of IAM Identity Center identities (users or groups) that should be assigned this Argo CD role.
103
+ */
104
+ Identities: SsoIdentity[];
105
+ }
106
+ /**
107
+ * An IAM Identity Center identity (user or group) that can be assigned permissions in a capability.
108
+ */
109
+ export interface SsoIdentity {
110
+ /**
111
+ * The unique identifier of the IAM Identity Center user or group.
112
+ */
113
+ Id: string;
114
+ /**
115
+ * The type of identity. Valid values are SSO_USER or SSO_GROUP.
116
+ */
117
+ Type: ("SSO_USER" | "SSO_GROUP");
118
+ }
119
+ /**
120
+ * Configuration for network access to the Argo CD capability's managed API server endpoint. By default, the Argo CD server is accessible via a public endpoint. You can optionally specify one or more VPC endpoint IDs to enable private connectivity from your VPCs.
121
+ */
122
+ export interface NetworkAccess {
123
+ /**
124
+ * A list of VPC endpoint IDs to associate with the managed Argo CD API server endpoint. Each VPC endpoint provides private connectivity from a specific VPC to the Argo CD server. You can specify multiple VPC endpoint IDs to enable access from multiple VPCs.
125
+ */
126
+ VpceIds?: string[];
127
+ }
128
+ /**
129
+ * A key-value pair to associate with a resource.
130
+ */
131
+ export interface Tag {
132
+ /**
133
+ * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
134
+ */
135
+ Key: string;
136
+ /**
137
+ * The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
138
+ */
139
+ Value: string;
140
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVrcy1jYXBhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVrcy1jYXBhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgRUtTIENhcGFiaWxpdHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FS1NfQ0FQQUJJTElUWSB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBFS1MgY2x1c3RlciB3aGVyZSB5b3Ugd2FudCB0byBjcmVhdGUgdGhlIGNhcGFiaWxpdHkuXG4gKi9cbkNsdXN0ZXJOYW1lOiBzdHJpbmdcbi8qKlxuICogQSB1bmlxdWUgbmFtZSBmb3IgdGhlIGNhcGFiaWxpdHkuIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB5b3VyIGNsdXN0ZXIgYW5kIGNhbiBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBoeXBoZW5zLCBhbmQgdW5kZXJzY29yZXMuXG4gKi9cbkNhcGFiaWxpdHlOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2YgY2FwYWJpbGl0eSB0byBjcmVhdGUuIFZhbGlkIHZhbHVlcyBhcmU6IEFDSyAoQVdTIENvbnRyb2xsZXJzIGZvciBLdWJlcm5ldGVzLCB3aGljaCBsZXRzIHlvdSBtYW5hZ2UgQVdTIHJlc291cmNlcyBkaXJlY3RseSBmcm9tIEt1YmVybmV0ZXMpLCBBUkdPQ0QgKEFyZ28gQ0QgZm9yIEdpdE9wcy1iYXNlZCBjb250aW51b3VzIGRlbGl2ZXJ5KSwgb3IgS1JPIChLdWJlIFJlc291cmNlIE9yY2hlc3RyYXRvciBmb3IgY29tcG9zaW5nIGFuZCBtYW5hZ2luZyBjdXN0b20gS3ViZXJuZXRlcyByZXNvdXJjZXMpLlxuICovXG5UeXBlOiAoXCJBUkdPQ0RcIiB8IFwiQUNLXCIgfCBcIktST1wiKVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgdGhlIGNhcGFiaWxpdHkgdXNlcyB0byBpbnRlcmFjdCB3aXRoIEFXUyBzZXJ2aWNlcy4gVGhpcyByb2xlIG11c3QgaGF2ZSBhIHRydXN0IHBvbGljeSB0aGF0IGFsbG93cyB0aGUgRUtTIHNlcnZpY2UgcHJpbmNpcGFsIHRvIGFzc3VtZSBpdCwgYW5kIGl0IG11c3QgaGF2ZSB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIGZvciB0aGUgY2FwYWJpbGl0eSB0eXBlIHlvdSdyZSBjcmVhdGluZy5cbiAqL1xuUm9sZUFybjogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyBob3cgS3ViZXJuZXRlcyByZXNvdXJjZXMgbWFuYWdlZCBieSB0aGUgY2FwYWJpbGl0eSBzaG91bGQgYmUgaGFuZGxlZCB3aGVuIHRoZSBjYXBhYmlsaXR5IGlzIGRlbGV0ZWQuIEN1cnJlbnRseSwgdGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlIGlzIFJFVEFJTiB3aGljaCByZXRhaW5zIGFsbCBLdWJlcm5ldGVzIHJlc291cmNlcyBtYW5hZ2VkIGJ5IHRoZSBjYXBhYmlsaXR5IHdoZW4gdGhlIGNhcGFiaWxpdHkgaXMgZGVsZXRlZC5cbiAqL1xuRGVsZXRlUHJvcGFnYXRpb25Qb2xpY3k6IFwiUkVUQUlOXCJcbkNvbmZpZ3VyYXRpb24/OiBDYXBhYmlsaXR5Q29uZmlndXJhdGlvblxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGNhcGFiaWxpdHkuXG4gKi9cbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGNhcGFiaWxpdHkuIFZhbGlkIHZhbHVlcyBpbmNsdWRlOiBDUkVBVElORyAodGhlIGNhcGFiaWxpdHkgaXMgYmVpbmcgY3JlYXRlZCksIEFDVElWRSAodGhlIGNhcGFiaWxpdHkgaXMgcnVubmluZyBhbmQgYXZhaWxhYmxlKSwgVVBEQVRJTkcgKHRoZSBjYXBhYmlsaXR5IGlzIGJlaW5nIHVwZGF0ZWQpLCBERUxFVElORyAodGhlIGNhcGFiaWxpdHkgaXMgYmVpbmcgZGVsZXRlZCksIENSRUFURV9GQUlMRUQgKHRoZSBjYXBhYmlsaXR5IGNyZWF0aW9uIGZhaWxlZCksIFVQREFURV9GQUlMRUQgKHRoZSBjYXBhYmlsaXR5IHVwZGF0ZSBmYWlsZWQpLCBvciBERUxFVEVfRkFJTEVEICh0aGUgY2FwYWJpbGl0eSBkZWxldGlvbiBmYWlsZWQpLlxuICovXG5TdGF0dXM/OiBzdHJpbmdcbi8qKlxuICogVGhlIFVuaXggZXBvY2ggdGltZXN0YW1wIGluIHNlY29uZHMgZm9yIHdoZW4gdGhlIGNhcGFiaWxpdHkgd2FzIGNyZWF0ZWQuXG4gKi9cbkNyZWF0ZWRBdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgVW5peCBlcG9jaCB0aW1lc3RhbXAgaW4gc2Vjb25kcyBmb3Igd2hlbiB0aGUgY2FwYWJpbGl0eSB3YXMgbGFzdCBtb2RpZmllZC5cbiAqL1xuTW9kaWZpZWRBdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgY2FwYWJpbGl0eSBzb2Z0d2FyZSB0aGF0IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICovXG5WZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBjYXBhYmlsaXR5LiBUaGUgc3RydWN0dXJlIG9mIHRoaXMgb2JqZWN0IHZhcmllcyBkZXBlbmRpbmcgb24gdGhlIGNhcGFiaWxpdHkgdHlwZS4gRm9yIEFyZ28gQ0QgY2FwYWJpbGl0aWVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBJQU0gSWRlbnRpdHkgQ2VudGVyIGludGVncmF0aW9uLCBSQkFDIHJvbGUgbWFwcGluZ3MsIGFuZCBuZXR3b3JrIGFjY2VzcyBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXBhYmlsaXR5Q29uZmlndXJhdGlvbiB7XG5BcmdvQ2Q/OiBBcmdvQ2Rcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgYW4gQXJnbyBDRCBjYXBhYmlsaXR5LiBUaGlzIGluY2x1ZGVzIHRoZSBLdWJlcm5ldGVzIG5hbWVzcGFjZSwgSUFNIElkZW50aXR5IENlbnRlciBpbnRlZ3JhdGlvbiwgUkJBQyByb2xlIG1hcHBpbmdzLCBhbmQgbmV0d29yayBhY2Nlc3MgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmdvQ2Qge1xuLyoqXG4gKiBUaGUgS3ViZXJuZXRlcyBuYW1lc3BhY2Ugd2hlcmUgQXJnbyBDRCByZXNvdXJjZXMgd2lsbCBiZSBjcmVhdGVkLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UgaXMgdXNlZC5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG5Bd3NJZGM6IEF3c0lkY1xuLyoqXG4gKiBBIGxpc3Qgb2Ygcm9sZSBtYXBwaW5ncyB0aGF0IGRlZmluZSB3aGljaCBJQU0gSWRlbnRpdHkgQ2VudGVyIHVzZXJzIG9yIGdyb3VwcyBoYXZlIHdoaWNoIEFyZ28gQ0Qgcm9sZXMuIEVhY2ggbWFwcGluZyBhc3NvY2lhdGVzIGFuIEFyZ28gQ0Qgcm9sZSAoQURNSU4sIEVESVRPUiwgb3IgVklFV0VSKSB3aXRoIG9uZSBvciBtb3JlIElBTSBJZGVudGl0eSBDZW50ZXIgaWRlbnRpdGllcy5cbiAqL1xuUmJhY1JvbGVNYXBwaW5ncz86IEFyZ29DZFJvbGVNYXBwaW5nW11cbk5ldHdvcmtBY2Nlc3M/OiBOZXR3b3JrQWNjZXNzXG4vKipcbiAqIFRoZSBVUkwgb2YgdGhlIEFyZ28gQ0Qgc2VydmVyLiBVc2UgdGhpcyBVUkwgdG8gYWNjZXNzIHRoZSBBcmdvIENEIHdlYiBpbnRlcmZhY2UgYW5kIEFQSS5cbiAqL1xuU2VydmVyVXJsPzogc3RyaW5nXG59XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGludGVncmF0aW5nIEFyZ28gQ0Qgd2l0aCBJQU0gSWRlbnRpdHkgQ2VudGVyLiBUaGlzIGFsbG93cyB5b3UgdG8gdXNlIHlvdXIgb3JnYW5pemF0aW9uJ3MgaWRlbnRpdHkgcHJvdmlkZXIgZm9yIGF1dGhlbnRpY2F0aW9uIHRvIEFyZ28gQ0QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzSWRjIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgSUFNIElkZW50aXR5IENlbnRlciBpbnN0YW5jZSB0byB1c2UgZm9yIGF1dGhlbnRpY2F0aW9uLlxuICovXG5JZGNJbnN0YW5jZUFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBSZWdpb24gd2hlcmUgeW91ciBJQU0gSWRlbnRpdHkgQ2VudGVyIGluc3RhbmNlIGlzIGxvY2F0ZWQuXG4gKi9cbklkY1JlZ2lvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBtYW5hZ2VkIGFwcGxpY2F0aW9uIGNyZWF0ZWQgaW4gSUFNIElkZW50aXR5IENlbnRlciBmb3IgdGhpcyBBcmdvIENEIGNhcGFiaWxpdHkuIFRoaXMgYXBwbGljYXRpb24gaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIGFuZCBtYW5hZ2VkIGJ5IEVLUy5cbiAqL1xuSWRjTWFuYWdlZEFwcGxpY2F0aW9uQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIEEgbWFwcGluZyBiZXR3ZWVuIGFuIEFyZ28gQ0Qgcm9sZSBhbmQgSUFNIElkZW50aXR5IENlbnRlciBpZGVudGl0aWVzLiBUaGlzIGRlZmluZXMgd2hpY2ggdXNlcnMgb3IgZ3JvdXBzIGhhdmUgc3BlY2lmaWMgcGVybWlzc2lvbnMgaW4gQXJnbyBDRC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmdvQ2RSb2xlTWFwcGluZyB7XG4vKipcbiAqIFRoZSBBcmdvIENEIHJvbGUgdG8gYXNzaWduLiBWYWxpZCB2YWx1ZXMgYXJlOiBBRE1JTiAoZnVsbCBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gQXJnbyBDRCksIEVESVRPUiAoZWRpdCBhY2Nlc3MgdG8gQXJnbyBDRCByZXNvdXJjZXMpLCBvciBWSUVXRVIgKHJlYWQtb25seSBhY2Nlc3MgdG8gQXJnbyBDRCByZXNvdXJjZXMpLlxuICovXG5Sb2xlOiAoXCJBRE1JTlwiIHwgXCJFRElUT1JcIiB8IFwiVklFV0VSXCIpXG4vKipcbiAqIEEgbGlzdCBvZiBJQU0gSWRlbnRpdHkgQ2VudGVyIGlkZW50aXRpZXMgKHVzZXJzIG9yIGdyb3VwcykgdGhhdCBzaG91bGQgYmUgYXNzaWduZWQgdGhpcyBBcmdvIENEIHJvbGUuXG4gKi9cbklkZW50aXRpZXM6IFNzb0lkZW50aXR5W11cbn1cbi8qKlxuICogQW4gSUFNIElkZW50aXR5IENlbnRlciBpZGVudGl0eSAodXNlciBvciBncm91cCkgdGhhdCBjYW4gYmUgYXNzaWduZWQgcGVybWlzc2lvbnMgaW4gYSBjYXBhYmlsaXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNzb0lkZW50aXR5IHtcbi8qKlxuICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBJQU0gSWRlbnRpdHkgQ2VudGVyIHVzZXIgb3IgZ3JvdXAuXG4gKi9cbklkOiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2YgaWRlbnRpdHkuIFZhbGlkIHZhbHVlcyBhcmUgU1NPX1VTRVIgb3IgU1NPX0dST1VQLlxuICovXG5UeXBlOiAoXCJTU09fVVNFUlwiIHwgXCJTU09fR1JPVVBcIilcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgbmV0d29yayBhY2Nlc3MgdG8gdGhlIEFyZ28gQ0QgY2FwYWJpbGl0eSdzIG1hbmFnZWQgQVBJIHNlcnZlciBlbmRwb2ludC4gQnkgZGVmYXVsdCwgdGhlIEFyZ28gQ0Qgc2VydmVyIGlzIGFjY2Vzc2libGUgdmlhIGEgcHVibGljIGVuZHBvaW50LiBZb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBvbmUgb3IgbW9yZSBWUEMgZW5kcG9pbnQgSURzIHRvIGVuYWJsZSBwcml2YXRlIGNvbm5lY3Rpdml0eSBmcm9tIHlvdXIgVlBDcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrQWNjZXNzIHtcbi8qKlxuICogQSBsaXN0IG9mIFZQQyBlbmRwb2ludCBJRHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG1hbmFnZWQgQXJnbyBDRCBBUEkgc2VydmVyIGVuZHBvaW50LiBFYWNoIFZQQyBlbmRwb2ludCBwcm92aWRlcyBwcml2YXRlIGNvbm5lY3Rpdml0eSBmcm9tIGEgc3BlY2lmaWMgVlBDIHRvIHRoZSBBcmdvIENEIHNlcnZlci4gWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIFZQQyBlbmRwb2ludCBJRHMgdG8gZW5hYmxlIGFjY2VzcyBmcm9tIG11bHRpcGxlIFZQQ3MuXG4gKi9cblZwY2VJZHM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRvIGFzc29jaWF0ZSB3aXRoIGEgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIGtleSBuYW1lIG9mIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
@@ -0,0 +1,135 @@
1
+ /**
2
+ * The scaling mode for the capacity provider.
3
+ */
4
+ export type CapacityProviderScalingMode = ("Auto" | "Manual");
5
+ /**
6
+ * The predefined metric for target tracking.
7
+ */
8
+ export type CapacityProviderPredefinedMetricType = "LambdaCapacityProviderAverageCPUUtilization";
9
+ /**
10
+ * Specifications for the types of EC2 instances that the capacity provider can use.
11
+ */
12
+ export type Architecture = ("x86_64" | "arm64");
13
+ /**
14
+ * Resource Type definition for AWS::Lambda::CapacityProvider
15
+ */
16
+ export interface _AWS_LAMBDA_CAPACITYPROVIDER {
17
+ /**
18
+ * The Amazon Resource Name (ARN) of the capacity provider. This is a read-only property that is automatically generated when the capacity provider is created.
19
+ */
20
+ Arn?: string;
21
+ /**
22
+ * The name of the capacity provider. The name must be unique within your AWS account and region. If you don't specify a name, CloudFormation generates one.
23
+ */
24
+ CapacityProviderName?: string;
25
+ CapacityProviderScalingConfig?: CapacityProviderScalingConfig;
26
+ InstanceRequirements?: InstanceRequirements;
27
+ /**
28
+ * The ARN of the AWS Key Management Service (KMS) key used by the capacity provider.
29
+ */
30
+ KmsKeyArn?: string;
31
+ PermissionsConfig: CapacityProviderPermissionsConfig;
32
+ /**
33
+ * The current state of the capacity provider.
34
+ */
35
+ State?: ("Pending" | "Active" | "Failed" | "Deleting");
36
+ /**
37
+ * A list of tags to apply to the capacity provider.
38
+ */
39
+ Tags?: Tag[];
40
+ VpcConfig: CapacityProviderVpcConfig;
41
+ }
42
+ /**
43
+ * The scaling configuration for the capacity provider.
44
+ */
45
+ export interface CapacityProviderScalingConfig {
46
+ /**
47
+ * The maximum number of EC2 instances that the capacity provider can scale up to.
48
+ */
49
+ MaxVCpuCount?: number;
50
+ ScalingMode?: CapacityProviderScalingMode;
51
+ /**
52
+ * A list of target tracking scaling policies for the capacity provider.
53
+ *
54
+ * @minItems 1
55
+ * @maxItems 10
56
+ */
57
+ ScalingPolicies?: TargetTrackingScalingPolicy[];
58
+ }
59
+ /**
60
+ * A target tracking scaling policy for the capacity provider.
61
+ */
62
+ export interface TargetTrackingScalingPolicy {
63
+ PredefinedMetricType: CapacityProviderPredefinedMetricType;
64
+ /**
65
+ * The target value for the metric as a percentage (for example, 70.0 for 70%).
66
+ */
67
+ TargetValue: number;
68
+ }
69
+ /**
70
+ * Specifications for the types of EC2 instances that the capacity provider can use.
71
+ */
72
+ export interface InstanceRequirements {
73
+ /**
74
+ * The instruction set architecture for EC2 instances. Specify either x86_64 or arm64.
75
+ *
76
+ * @minItems 1
77
+ * @maxItems 1
78
+ */
79
+ Architectures?: Architecture[];
80
+ /**
81
+ * A list of instance types that the capacity provider can use. Supports wildcards (for example, m5.*).
82
+ *
83
+ * @minItems 0
84
+ * @maxItems 400
85
+ */
86
+ AllowedInstanceTypes?: string[];
87
+ /**
88
+ * A list of instance types that the capacity provider should not use. Takes precedence over AllowedInstanceTypes.
89
+ *
90
+ * @minItems 0
91
+ * @maxItems 400
92
+ */
93
+ ExcludedInstanceTypes?: string[];
94
+ }
95
+ /**
96
+ * IAM permissions configuration for the capacity provider.
97
+ */
98
+ export interface CapacityProviderPermissionsConfig {
99
+ /**
100
+ * The ARN of the IAM role that Lambda assumes to manage the capacity provider.
101
+ */
102
+ CapacityProviderOperatorRoleArn: string;
103
+ }
104
+ /**
105
+ * A key-value pair that provides metadata for the capacity provider.
106
+ */
107
+ export interface Tag {
108
+ /**
109
+ * The key name of the tag.
110
+ */
111
+ Key: string;
112
+ /**
113
+ * The value for the tag.
114
+ */
115
+ Value?: string;
116
+ }
117
+ /**
118
+ * VPC configuration for the capacity provider.
119
+ */
120
+ export interface CapacityProviderVpcConfig {
121
+ /**
122
+ * A list of subnet IDs where the capacity provider can launch EC2 instances.
123
+ *
124
+ * @minItems 1
125
+ * @maxItems 16
126
+ */
127
+ SubnetIds: string[];
128
+ /**
129
+ * A list of security group IDs to associate with EC2 instances.
130
+ *
131
+ * @minItems 0
132
+ * @maxItems 5
133
+ */
134
+ SecurityGroupIds: string[];
135
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1jYXBhY2l0eXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWxhbWJkYS1jYXBhY2l0eXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBzY2FsaW5nIG1vZGUgZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdNb2RlID0gKFwiQXV0b1wiIHwgXCJNYW51YWxcIilcbi8qKlxuICogVGhlIHByZWRlZmluZWQgbWV0cmljIGZvciB0YXJnZXQgdHJhY2tpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIENhcGFjaXR5UHJvdmlkZXJQcmVkZWZpbmVkTWV0cmljVHlwZSA9IFwiTGFtYmRhQ2FwYWNpdHlQcm92aWRlckF2ZXJhZ2VDUFVVdGlsaXphdGlvblwiXG4vKipcbiAqIFNwZWNpZmljYXRpb25zIGZvciB0aGUgdHlwZXMgb2YgRUMyIGluc3RhbmNlcyB0aGF0IHRoZSBjYXBhY2l0eSBwcm92aWRlciBjYW4gdXNlLlxuICovXG5leHBvcnQgdHlwZSBBcmNoaXRlY3R1cmUgPSAoXCJ4ODZfNjRcIiB8IFwiYXJtNjRcIilcblxuLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6TGFtYmRhOjpDYXBhY2l0eVByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19MQU1CREFfQ0FQQUNJVFlQUk9WSURFUiB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuIFRoaXMgaXMgYSByZWFkLW9ubHkgcHJvcGVydHkgdGhhdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB3aGVuIHRoZSBjYXBhY2l0eSBwcm92aWRlciBpcyBjcmVhdGVkLlxuICovXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNhcGFjaXR5IHByb3ZpZGVyLiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4geW91ciBBV1MgYWNjb3VudCBhbmQgcmVnaW9uLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBvbmUuXG4gKi9cbkNhcGFjaXR5UHJvdmlkZXJOYW1lPzogc3RyaW5nXG5DYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZz86IENhcGFjaXR5UHJvdmlkZXJTY2FsaW5nQ29uZmlnXG5JbnN0YW5jZVJlcXVpcmVtZW50cz86IEluc3RhbmNlUmVxdWlyZW1lbnRzXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlIChLTVMpIGtleSB1c2VkIGJ5IHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuS21zS2V5QXJuPzogc3RyaW5nXG5QZXJtaXNzaW9uc0NvbmZpZzogQ2FwYWNpdHlQcm92aWRlclBlcm1pc3Npb25zQ29uZmlnXG4vKipcbiAqIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuU3RhdGU/OiAoXCJQZW5kaW5nXCIgfCBcIkFjdGl2ZVwiIHwgXCJGYWlsZWRcIiB8IFwiRGVsZXRpbmdcIilcbi8qKlxuICogQSBsaXN0IG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIGNhcGFjaXR5IHByb3ZpZGVyLlxuICovXG5UYWdzPzogVGFnW11cblZwY0NvbmZpZzogQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZ1xufVxuLyoqXG4gKiBUaGUgc2NhbGluZyBjb25maWd1cmF0aW9uIGZvciB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyB0aGF0IHRoZSBjYXBhY2l0eSBwcm92aWRlciBjYW4gc2NhbGUgdXAgdG8uXG4gKi9cbk1heFZDcHVDb3VudD86IG51bWJlclxuU2NhbGluZ01vZGU/OiBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ01vZGVcbi8qKlxuICogQSBsaXN0IG9mIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljaWVzIGZvciB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuU2NhbGluZ1BvbGljaWVzPzogVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5W11cbn1cbi8qKlxuICogQSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3kge1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IENhcGFjaXR5UHJvdmlkZXJQcmVkZWZpbmVkTWV0cmljVHlwZVxuLyoqXG4gKiBUaGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgbWV0cmljIGFzIGEgcGVyY2VudGFnZSAoZm9yIGV4YW1wbGUsIDcwLjAgZm9yIDcwJSkuXG4gKi9cblRhcmdldFZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWNhdGlvbnMgZm9yIHRoZSB0eXBlcyBvZiBFQzIgaW5zdGFuY2VzIHRoYXQgdGhlIGNhcGFjaXR5IHByb3ZpZGVyIGNhbiB1c2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VSZXF1aXJlbWVudHMge1xuLyoqXG4gKiBUaGUgaW5zdHJ1Y3Rpb24gc2V0IGFyY2hpdGVjdHVyZSBmb3IgRUMyIGluc3RhbmNlcy4gU3BlY2lmeSBlaXRoZXIgeDg2XzY0IG9yIGFybTY0LlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDFcbiAqL1xuQXJjaGl0ZWN0dXJlcz86IEFyY2hpdGVjdHVyZVtdXG4vKipcbiAqIEEgbGlzdCBvZiBpbnN0YW5jZSB0eXBlcyB0aGF0IHRoZSBjYXBhY2l0eSBwcm92aWRlciBjYW4gdXNlLiBTdXBwb3J0cyB3aWxkY2FyZHMgKGZvciBleGFtcGxlLCBtNS4qKS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA0MDBcbiAqL1xuQWxsb3dlZEluc3RhbmNlVHlwZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgaW5zdGFuY2UgdHlwZXMgdGhhdCB0aGUgY2FwYWNpdHkgcHJvdmlkZXIgc2hvdWxkIG5vdCB1c2UuIFRha2VzIHByZWNlZGVuY2Ugb3ZlciBBbGxvd2VkSW5zdGFuY2VUeXBlcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA0MDBcbiAqL1xuRXhjbHVkZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogSUFNIHBlcm1pc3Npb25zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWcge1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZSB0aGF0IExhbWJkYSBhc3N1bWVzIHRvIG1hbmFnZSB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuXG4gKi9cbkNhcGFjaXR5UHJvdmlkZXJPcGVyYXRvclJvbGVBcm46IHN0cmluZ1xufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRoYXQgcHJvdmlkZXMgbWV0YWRhdGEgZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLlxuICovXG5WYWx1ZT86IHN0cmluZ1xufVxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcGFjaXR5IHByb3ZpZGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5UHJvdmlkZXJWcGNDb25maWcge1xuLyoqXG4gKiBBIGxpc3Qgb2Ygc3VibmV0IElEcyB3aGVyZSB0aGUgY2FwYWNpdHkgcHJvdmlkZXIgY2FuIGxhdW5jaCBFQzIgaW5zdGFuY2VzLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE2XG4gKi9cblN1Ym5ldElkczogc3RyaW5nW11cbi8qKlxuICogQSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwIElEcyB0byBhc3NvY2lhdGUgd2l0aCBFQzIgaW5zdGFuY2VzLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cElkczogc3RyaW5nW11cbn1cbiJdfQ==
@@ -8,6 +8,7 @@
8
8
  * For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*
9
9
  */
10
10
  export interface _AWS_LAMBDA_FUNCTION {
11
+ FunctionScalingConfig?: FunctionScalingConfig;
11
12
  /**
12
13
  * A description of the function.
13
14
  */
@@ -48,6 +49,7 @@ export interface _AWS_LAMBDA_FUNCTION {
48
49
  * If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).
49
50
  */
50
51
  KmsKeyArn?: string;
52
+ PublishToLatestPublished?: boolean;
51
53
  /**
52
54
  * The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
53
55
  */
@@ -76,6 +78,7 @@ export interface _AWS_LAMBDA_FUNCTION {
76
78
  * The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
77
79
  */
78
80
  Timeout?: number;
81
+ CapacityProviderConfig?: CapacityProviderConfig;
79
82
  /**
80
83
  * The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
81
84
  */
@@ -104,6 +107,16 @@ export interface _AWS_LAMBDA_FUNCTION {
104
107
  */
105
108
  Architectures?: ("x86_64" | "arm64")[];
106
109
  }
110
+ export interface FunctionScalingConfig {
111
+ /**
112
+ * The minimum number of execution environments to maintain for the function.
113
+ */
114
+ MinExecutionEnvironments?: number;
115
+ /**
116
+ * The maximum number of execution environments that can be provisioned for the function.
117
+ */
118
+ MaxExecutionEnvironments?: number;
119
+ }
107
120
  /**
108
121
  * Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
109
122
  */
@@ -224,6 +237,23 @@ export interface DeadLetterConfig {
224
237
  */
225
238
  TargetArn?: string;
226
239
  }
240
+ export interface CapacityProviderConfig {
241
+ LambdaManagedInstancesCapacityProviderConfig: LambdaManagedInstancesCapacityProviderConfig;
242
+ }
243
+ export interface LambdaManagedInstancesCapacityProviderConfig {
244
+ /**
245
+ * The amount of memory in GiB allocated per vCPU for execution environments.
246
+ */
247
+ ExecutionEnvironmentMemoryGiBPerVCpu?: number;
248
+ /**
249
+ * The Amazon Resource Name (ARN) of the capacity provider.
250
+ */
251
+ CapacityProviderArn: string;
252
+ /**
253
+ * The maximum number of concurrent execution environments that can run on each compute instance.
254
+ */
255
+ PerExecutionEnvironmentMaxConcurrency?: number;
256
+ }
227
257
  export interface SnapStartResponse {
228
258
  /**
229
259
  * When you provide a [qualified Amazon Resource Name (ARN)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using), this response element indicates whether SnapStart is activated for the specified function version.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1sYW1iZGEtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UgY3JlYXRlcyBhIExhbWJkYSBmdW5jdGlvbi4gVG8gY3JlYXRlIGEgZnVuY3Rpb24sIHlvdSBuZWVkIGEgW2RlcGxveW1lbnQgcGFja2FnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sKSBhbmQgYW4gW2V4ZWN1dGlvbiByb2xlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW50cm8tZXhlY3V0aW9uLXJvbGUuaHRtbCkuIFRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSAuemlwIGZpbGUgYXJjaGl2ZSBvciBjb250YWluZXIgaW1hZ2UgdGhhdCBjb250YWlucyB5b3VyIGZ1bmN0aW9uIGNvZGUuIFRoZSBleGVjdXRpb24gcm9sZSBncmFudHMgdGhlIGZ1bmN0aW9uIHBlcm1pc3Npb24gdG8gdXNlIEFXUyBzZXJ2aWNlcywgc3VjaCBhcyBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzIGZvciBsb2cgc3RyZWFtaW5nIGFuZCBBV1MgWC1SYXkgZm9yIHJlcXVlc3QgdHJhY2luZy5cbiAqICBZb3Ugc2V0IHRoZSBwYWNrYWdlIHR5cGUgdG8gYGBJbWFnZWBgIGlmIHRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSBbY29udGFpbmVyIGltYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW1hZ2VzLmh0bWwpLiBGb3IgdGhlc2UgZnVuY3Rpb25zLCBpbmNsdWRlIHRoZSBVUkkgb2YgdGhlIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgRUNSIHJlZ2lzdHJ5IGluIHRoZSBbSW1hZ2VVcmkgcHJvcGVydHkgb2YgdGhlIENvZGUgcHJvcGVydHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWxhbWJkYS1mdW5jdGlvbi1jb2RlLmh0bWwjY2ZuLWxhbWJkYS1mdW5jdGlvbi1jb2RlLWltYWdldXJpKS4gWW91IGRvIG5vdCBuZWVkIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgYW5kIHJ1bnRpbWUgcHJvcGVydGllcy4gXG4gKiAgWW91IHNldCB0aGUgcGFja2FnZSB0eXBlIHRvIGBgWmlwYGAgaWYgdGhlIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIFsuemlwIGZpbGUgYXJjaGl2ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sI2dldHRpbmdzdGFydGVkLXBhY2thZ2UtemlwKS4gRm9yIHRoZXNlIGZ1bmN0aW9ucywgc3BlY2lmeSB0aGUgUzMgbG9jYXRpb24gb2YgeW91ciAuemlwIGZpbGUgaW4gdGhlIGBgQ29kZWBgIHByb3BlcnR5LiBBbHRlcm5hdGl2ZWx5LCBmb3IgTm9kZS5qcyBhbmQgUHl0aG9uIGZ1bmN0aW9ucywgeW91IGNhbiBkZWZpbmUgeW91ciBmdW5jdGlvbiBpbmxpbmUgaW4gdGhlIFtaaXBGaWxlIHByb3BlcnR5IG9mIHRoZSBDb2RlIHByb3BlcnR5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1sYW1iZGEtZnVuY3Rpb24tY29kZS5odG1sI2Nmbi1sYW1iZGEtZnVuY3Rpb24tY29kZS16aXBmaWxlKS4gSW4gYm90aCBjYXNlcywgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBoYW5kbGVyIGFuZCBydW50aW1lIHByb3BlcnRpZXMuXG4gKiAgWW91IGNhbiB1c2UgW2NvZGUgc2lnbmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1jb2Rlc2lnbmluZy5odG1sKSBpZiB5b3VyIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIC56aXAgZmlsZSBhcmNoaXZlLiBUbyBlbmFibGUgY29kZSBzaWduaW5nIGZvciB0aGlzIGZ1bmN0aW9uLCBzcGVjaWZ5IHRoZSBBUk4gb2YgYSBjb2RlLXNpZ25pbmcgY29uZmlndXJhdGlvbi4gV2hlbiBhIHVzZXIgYXR0ZW1wdHMgdG8gZGVwbG95IGEgY29kZSBwYWNrYWdlIHdpdGggYGBVcGRhdGVGdW5jdGlvbkNvZGVgYCwgTGFtYmRhIGNoZWNrcyB0aGF0IHRoZSBjb2RlIHBhY2thZ2UgaGFzIGEgdmFsaWQgc2lnbmF0dXJlIGZyb20gYSB0cnVzdGVkIHB1Ymxpc2hlci4gVGhlIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIHNpZ25pbmcgcHJvZmlsZXMsIHdoaWNoIGRlZmluZSB0aGUgdHJ1c3RlZCBwdWJsaXNoZXJzIGZvciB0aGlzIGZ1bmN0aW9uLlxuICogIFdoZW4geW91IHVwZGF0ZSBhIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UsIENGTnNob3J0IGNhbGxzIHRoZSBbVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9hcGkvQVBJX1VwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sKSBhbmQgW1VwZGF0ZUZ1bmN0aW9uQ29kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvYXBpL0FQSV9VcGRhdGVGdW5jdGlvbkNvZGUuaHRtbClMQU0gQVBJcyB1bmRlciB0aGUgaG9vZC4gQmVjYXVzZSB0aGVzZSBjYWxscyBoYXBwZW4gc2VxdWVudGlhbGx5LCBhbmQgaW52b2NhdGlvbnMgY2FuIGhhcHBlbiBiZXR3ZWVuIHRoZXNlIGNhbGxzLCB5b3VyIGZ1bmN0aW9uIG1heSBlbmNvdW50ZXIgZXJyb3JzIGluIHRoZSB0aW1lIGJldHdlZW4gdGhlIGNhbGxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHJlbW92ZSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYW5kIHRoZSBjb2RlIHRoYXQgcmVmZXJlbmNlcyB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlIGluIHRoZSBzYW1lIENGTnNob3J0IHVwZGF0ZSwgeW91IG1heSBzZWUgaW52b2NhdGlvbiBlcnJvcnMgcmVsYXRlZCB0byBhIG1pc3NpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHlvdSBjYW4gaW52b2tlIHlvdXIgZnVuY3Rpb24gYWdhaW5zdCBhIHZlcnNpb24gb3IgYWxpYXMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIGBgJExBVEVTVGBgIHZlcnNpb24uXG4gKiAgTm90ZSB0aGF0IHlvdSBjb25maWd1cmUgW3Byb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9wcm92aXNpb25lZC1jb25jdXJyZW5jeS5odG1sKSBvbiBhIGBgQVdTOjpMYW1iZGE6OlZlcnNpb25gYCBvciBhIGBgQVdTOjpMYW1iZGE6OkFsaWFzYGAuXG4gKiAgRm9yIGEgY29tcGxldGUgaW50cm9kdWN0aW9uIHRvIExhbWJkYSBmdW5jdGlvbnMsIHNlZSBbV2hhdCBpcyBMYW1iZGE/XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtd2VsY29tZS5odG1sKSBpbiB0aGUgKkxhbWJkYSBkZXZlbG9wZXIgZ3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfTEFNQkRBX0ZVTkNUSU9OIHtcbi8qKlxuICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb24uXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5UcmFjaW5nQ29uZmlnPzogVHJhY2luZ0NvbmZpZ1xuVnBjQ29uZmlnPzogVnBjQ29uZmlnXG5SdW50aW1lTWFuYWdlbWVudENvbmZpZz86IFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnXG4vKipcbiAqIFRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGV4ZWN1dGlvbnMgdG8gcmVzZXJ2ZSBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5SZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zPzogbnVtYmVyXG5TbmFwU3RhcnQ/OiBTbmFwU3RhcnRcbi8qKlxuICogQ29ubmVjdGlvbiBzZXR0aW5ncyBmb3IgYW4gQW1hem9uIEVGUyBmaWxlIHN5c3RlbS4gVG8gY29ubmVjdCBhIGZ1bmN0aW9uIHRvIGEgZmlsZSBzeXN0ZW0sIGEgbW91bnQgdGFyZ2V0IG11c3QgYmUgYXZhaWxhYmxlIGluIGV2ZXJ5IEF2YWlsYWJpbGl0eSBab25lIHRoYXQgeW91ciBmdW5jdGlvbiBjb25uZWN0cyB0by4gSWYgeW91ciB0ZW1wbGF0ZSBjb250YWlucyBhbiBbQVdTOjpFRlM6Ok1vdW50VGFyZ2V0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWZzLW1vdW50dGFyZ2V0Lmh0bWwpIHJlc291cmNlLCB5b3UgbXVzdCBhbHNvIHNwZWNpZnkgYSBgYERlcGVuZHNPbmBgIGF0dHJpYnV0ZSB0byBlbnN1cmUgdGhhdCB0aGUgbW91bnQgdGFyZ2V0IGlzIGNyZWF0ZWQgb3IgdXBkYXRlZCBiZWZvcmUgdGhlIGZ1bmN0aW9uLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVzaW5nIHRoZSBgYERlcGVuZHNPbmBgIGF0dHJpYnV0ZSwgc2VlIFtEZXBlbmRzT24gQXR0cmlidXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtYXR0cmlidXRlLWRlcGVuZHNvbi5odG1sKS5cbiAqIFxuICogQG1heEl0ZW1zIDFcbiAqL1xuRmlsZVN5c3RlbUNvbmZpZ3M/OiBGaWxlU3lzdGVtQ29uZmlnW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvbiwgdXAgdG8gNjQgY2hhcmFjdGVycyBpbiBsZW5ndGguIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGdlbmVyYXRlcyBvbmUuXG4gKiAgSWYgeW91IHNwZWNpZnkgYSBuYW1lLCB5b3UgY2Fubm90IHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhpcyByZXNvdXJjZS4gWW91IGNhbiBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIG5vIG9yIHNvbWUgaW50ZXJydXB0aW9uLiBJZiB5b3UgbXVzdCByZXBsYWNlIHRoZSByZXNvdXJjZSwgc3BlY2lmeSBhIG5ldyBuYW1lLlxuICovXG5GdW5jdGlvbk5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGZ1bmN0aW9uJ3MgW3J1bnRpbWVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1ydW50aW1lcy5odG1sKS4gUnVudGltZSBpcyByZXF1aXJlZCBpZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlIGlzIGEgLnppcCBmaWxlIGFyY2hpdmUuIFNwZWNpZnlpbmcgYSBydW50aW1lIHJlc3VsdHMgaW4gYW4gZXJyb3IgaWYgeW91J3JlIGRlcGxveWluZyBhIGZ1bmN0aW9uIHVzaW5nIGEgY29udGFpbmVyIGltYWdlLlxuICogIFRoZSBmb2xsb3dpbmcgbGlzdCBpbmNsdWRlcyBkZXByZWNhdGVkIHJ1bnRpbWVzLiBMYW1iZGEgYmxvY2tzIGNyZWF0aW5nIG5ldyBmdW5jdGlvbnMgYW5kIHVwZGF0aW5nIGV4aXN0aW5nIGZ1bmN0aW9ucyBzaG9ydGx5IGFmdGVyIGVhY2ggcnVudGltZSBpcyBkZXByZWNhdGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSdW50aW1lIHVzZSBhZnRlciBkZXByZWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLXJ1bnRpbWVzLmh0bWwjcnVudGltZS1kZXByZWNhdGlvbi1sZXZlbHMpLlxuICogIEZvciBhIGxpc3Qgb2YgYWxsIGN1cnJlbnRseSBzdXBwb3J0ZWQgcnVudGltZXMsIHNlZSBbU3VwcG9ydGVkIHJ1bnRpbWVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtcnVudGltZXMuaHRtbCNydW50aW1lcy1zdXBwb3J0ZWQpLlxuICovXG5SdW50aW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEtNU2xvbmcgKEtNUykgY3VzdG9tZXIgbWFuYWdlZCBrZXkgdGhhdCdzIHVzZWQgdG8gZW5jcnlwdCB0aGUgZm9sbG93aW5nIHJlc291cmNlczpcbiAqICAgKyAgVGhlIGZ1bmN0aW9uJ3MgW2Vudmlyb25tZW50IHZhcmlhYmxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1lbnZ2YXJzLmh0bWwjY29uZmlndXJhdGlvbi1lbnZ2YXJzLWVuY3J5cHRpb24pLlxuICogICArICBUaGUgZnVuY3Rpb24ncyBbTGFtYmRhIFNuYXBTdGFydF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc25hcHN0YXJ0LXNlY3VyaXR5Lmh0bWwpIHNuYXBzaG90cy5cbiAqICAgKyAgV2hlbiB1c2VkIHdpdGggYGBTb3VyY2VLTVNLZXlBcm5gYCwgdGhlIHVuemlwcGVkIHZlcnNpb24gb2YgdGhlIC56aXAgZGVwbG95bWVudCBwYWNrYWdlIHRoYXQncyB1c2VkIGZvciBmdW5jdGlvbiBpbnZvY2F0aW9ucy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3BlY2lmeWluZyBhIGN1c3RvbWVyIG1hbmFnZWQga2V5IGZvciBMYW1iZGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2VuY3J5cHQtemlwLXBhY2thZ2UuaHRtbCNlbmFibGUtemlwLWN1c3RvbS1lbmNyeXB0aW9uKS5cbiAqICAgKyAgVGhlIG9wdGltaXplZCB2ZXJzaW9uIG9mIHRoZSBjb250YWluZXIgaW1hZ2UgdGhhdCdzIHVzZWQgZm9yIGZ1bmN0aW9uIGludm9jYXRpb25zLiBOb3RlIHRoYXQgdGhpcyBpcyBub3QgdGhlIHNhbWUga2V5IHRoYXQncyB1c2VkIHRvIHByb3RlY3QgeW91ciBjb250YWluZXIgaW1hZ2UgaW4gdGhlIEFtYXpvbiBFbGFzdGljIENvbnRhaW5lciBSZWdpc3RyeSAoQW1hem9uIEVDUikuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0Z1bmN0aW9uIGxpZmVjeWNsZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW1hZ2VzLWNyZWF0ZS5odG1sI2ltYWdlcy1saWZlY3ljbGUpLlxuICogICBcbiAqICBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIGN1c3RvbWVyIG1hbmFnZWQga2V5LCBMYW1iZGEgdXNlcyBhbiBbb3duZWQga2V5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20va21zL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9jb25jZXB0cy5odG1sI2F3cy1vd25lZC1jbWspIG9yIGFuIFtdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2NvbmNlcHRzLmh0bWwjYXdzLW1hbmFnZWQtY21rKS5cbiAqL1xuS21zS2V5QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0eXBlIG9mIGRlcGxveW1lbnQgcGFja2FnZS4gU2V0IHRvIGBgSW1hZ2VgYCBmb3IgY29udGFpbmVyIGltYWdlIGFuZCBzZXQgYGBaaXBgYCBmb3IgLnppcCBmaWxlIGFyY2hpdmUuXG4gKi9cblBhY2thZ2VUeXBlPzogKFwiSW1hZ2VcIiB8IFwiWmlwXCIpXG4vKipcbiAqIFRvIGVuYWJsZSBjb2RlIHNpZ25pbmcgZm9yIHRoaXMgZnVuY3Rpb24sIHNwZWNpZnkgdGhlIEFSTiBvZiBhIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uLiBBIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIHNpZ25pbmcgcHJvZmlsZXMsIHdoaWNoIGRlZmluZSB0aGUgdHJ1c3RlZCBwdWJsaXNoZXJzIGZvciB0aGlzIGZ1bmN0aW9uLlxuICovXG5Db2RlU2lnbmluZ0NvbmZpZ0Fybj86IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgW2Z1bmN0aW9uIGxheWVyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1sYXllcnMuaHRtbCkgdG8gYWRkIHRvIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4gU3BlY2lmeSBlYWNoIGxheWVyIGJ5IGl0cyBBUk4sIGluY2x1ZGluZyB0aGUgdmVyc2lvbi5cbiAqL1xuTGF5ZXJzPzogc3RyaW5nW11cblRlbmFuY3lDb25maWc/OiBUZW5hbmN5Q29uZmlnXG4vKipcbiAqIEEgbGlzdCBvZiBbdGFnc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvdGFnZ2luZy5odG1sKSB0byBhcHBseSB0byB0aGUgZnVuY3Rpb24uXG4gKiAgIFlvdSBtdXN0IGhhdmUgdGhlIGBgbGFtYmRhOlRhZ1Jlc291cmNlYGAsIGBgbGFtYmRhOlVudGFnUmVzb3VyY2VgYCwgYW5kIGBgbGFtYmRhOkxpc3RUYWdzYGAgcGVybWlzc2lvbnMgZm9yIHlvdXIgW3ByaW5jaXBhbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2lkX3JvbGVzX3Rlcm1zLWFuZC1jb25jZXB0cy5odG1sKSB0byBtYW5hZ2UgdGhlIENGTiBzdGFjay4gSWYgeW91IGRvbid0IGhhdmUgdGhlc2UgcGVybWlzc2lvbnMsIHRoZXJlIG1pZ2h0IGJlIHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2l0aCBzdGFjay1sZXZlbCB0YWdzIHByb3BhZ2F0aW5nIHRvIHRoZSByZXNvdXJjZSBkdXJpbmcgcmVzb3VyY2UgY3JlYXRpb24gYW5kIHVwZGF0ZS5cbiAqL1xuVGFncz86IFRhZ1tdXG5JbWFnZUNvbmZpZz86IEltYWdlQ29uZmlnXG4vKipcbiAqIFRoZSBhbW91bnQgb2YgW21lbW9yeSBhdmFpbGFibGUgdG8gdGhlIGZ1bmN0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWZ1bmN0aW9uLWNvbW1vbi5odG1sI2NvbmZpZ3VyYXRpb24tbWVtb3J5LWNvbnNvbGUpIGF0IHJ1bnRpbWUuIEluY3JlYXNpbmcgdGhlIGZ1bmN0aW9uIG1lbW9yeSBhbHNvIGluY3JlYXNlcyBpdHMgQ1BVIGFsbG9jYXRpb24uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEyOCBNQi4gVGhlIHZhbHVlIGNhbiBiZSBhbnkgbXVsdGlwbGUgb2YgMSBNQi4gTm90ZSB0aGF0IG5ldyBBV1MgYWNjb3VudHMgaGF2ZSByZWR1Y2VkIGNvbmN1cnJlbmN5IGFuZCBtZW1vcnkgcXVvdGFzLiBBV1MgcmFpc2VzIHRoZXNlIHF1b3RhcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHlvdXIgdXNhZ2UuIFlvdSBjYW4gYWxzbyByZXF1ZXN0IGEgcXVvdGEgaW5jcmVhc2UuXG4gKi9cbk1lbW9yeVNpemU/OiBudW1iZXJcbkRlYWRMZXR0ZXJDb25maWc/OiBEZWFkTGV0dGVyQ29uZmlnXG4vKipcbiAqIFRoZSBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgdGhhdCBMYW1iZGEgYWxsb3dzIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSBzdG9wcGluZyBpdC4gVGhlIGRlZmF1bHQgaXMgMyBzZWNvbmRzLiBUaGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIGlzIDkwMCBzZWNvbmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtMYW1iZGEgZXhlY3V0aW9uIGVudmlyb25tZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy1jb250ZXh0Lmh0bWwpLlxuICovXG5UaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRob2Qgd2l0aGluIHlvdXIgY29kZSB0aGF0IExhbWJkYSBjYWxscyB0byBydW4geW91ciBmdW5jdGlvbi4gSGFuZGxlciBpcyByZXF1aXJlZCBpZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlIGlzIGEgLnppcCBmaWxlIGFyY2hpdmUuIFRoZSBmb3JtYXQgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZS4gSXQgY2FuIGFsc28gaW5jbHVkZSBuYW1lc3BhY2VzIGFuZCBvdGhlciBxdWFsaWZpZXJzLCBkZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhbWJkYSBwcm9ncmFtbWluZyBtb2RlbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZm91bmRhdGlvbi1wcm9nbW9kZWwuaHRtbCkuXG4gKi9cbkhhbmRsZXI/OiBzdHJpbmdcblNuYXBTdGFydFJlc3BvbnNlPzogU25hcFN0YXJ0UmVzcG9uc2VcbkNvZGU6IENvZGVcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiByb2xlLlxuICovXG5Sb2xlOiBzdHJpbmdcbkxvZ2dpbmdDb25maWc/OiBMb2dnaW5nQ29uZmlnXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgeW91ciBmdW5jdGlvbidzIHJlY3Vyc2l2ZSBsb29wIGRldGVjdGlvbiBjb25maWd1cmF0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBBbGxvd2BgYW5kIExhbWJkYSBkZXRlY3RzIHlvdXIgZnVuY3Rpb24gYmVpbmcgaW52b2tlZCBhcyBwYXJ0IG9mIGEgcmVjdXJzaXZlIGxvb3AsIGl0IGRvZXNuJ3QgdGFrZSBhbnkgYWN0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBUZXJtaW5hdGVgYCBhbmQgTGFtYmRhIGRldGVjdHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFzIHBhcnQgb2YgYSByZWN1cnNpdmUgbG9vcCwgaXQgc3RvcHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFuZCBub3RpZmllcyB5b3UuXG4gKi9cblJlY3Vyc2l2ZUxvb3A/OiAoXCJBbGxvd1wiIHwgXCJUZXJtaW5hdGVcIilcbkVudmlyb25tZW50PzogRW52aXJvbm1lbnRcbkFybj86IHN0cmluZ1xuRXBoZW1lcmFsU3RvcmFnZT86IEVwaGVtZXJhbFN0b3JhZ2Vcbi8qKlxuICogVGhlIGluc3RydWN0aW9uIHNldCBhcmNoaXRlY3R1cmUgdGhhdCB0aGUgZnVuY3Rpb24gc3VwcG9ydHMuIEVudGVyIGEgc3RyaW5nIGFycmF5IHdpdGggb25lIG9mIHRoZSB2YWxpZCB2YWx1ZXMgKGFybTY0IG9yIHg4Nl82NCkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgeDg2XzY0YGAuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5BcmNoaXRlY3R1cmVzPzogKFwieDg2XzY0XCIgfCBcImFybTY0XCIpW11cbn1cbi8qKlxuICogU2V0IGBgTW9kZWBgIHRvIGBgQWN0aXZlYGAgdG8gc2FtcGxlIGFuZCB0cmFjZSBhIHN1YnNldCBvZiBpbmNvbWluZyByZXF1ZXN0cyB3aXRoIFtYLVJheV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc2VydmljZXMteHJheS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFjaW5nQ29uZmlnIHtcbi8qKlxuICogVGhlIHRyYWNpbmcgbW9kZS5cbiAqL1xuTW9kZT86IChcIkFjdGl2ZVwiIHwgXCJQYXNzVGhyb3VnaFwiKVxufVxuLyoqXG4gKiBGb3IgbmV0d29yayBjb25uZWN0aXZpdHkgdG8gQVdTIHJlc291cmNlcyBpbiBhIFZQQywgc3BlY2lmeSBhIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXBzIGFuZCBzdWJuZXRzIGluIHRoZSBWUEMuIFdoZW4geW91IGNvbm5lY3QgYSBmdW5jdGlvbiB0byBhIFZQQywgaXQgY2FuIGFjY2VzcyByZXNvdXJjZXMgYW5kIHRoZSBpbnRlcm5ldCBvbmx5IHRocm91Z2ggdGhhdCBWUEMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbmZpZ3VyaW5nIGEgTGFtYmRhIGZ1bmN0aW9uIHRvIGFjY2VzcyByZXNvdXJjZXMgaW4gYSBWUENdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tdnBjLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4vKipcbiAqIEFsbG93cyBvdXRib3VuZCBJUHY2IHRyYWZmaWMgb24gVlBDIGZ1bmN0aW9ucyB0aGF0IGFyZSBjb25uZWN0ZWQgdG8gZHVhbC1zdGFjayBzdWJuZXRzLlxuICovXG5JcHY2QWxsb3dlZEZvckR1YWxTdGFjaz86IGJvb2xlYW5cbi8qKlxuICogQSBsaXN0IG9mIFZQQyBzZWN1cml0eSBncm91cCBJRHMuXG4gKiBcbiAqIEBtYXhJdGVtcyA1XG4gKi9cblNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgVlBDIHN1Ym5ldCBJRHMuXG4gKiBcbiAqIEBtYXhJdGVtcyAxNlxuICovXG5TdWJuZXRJZHM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTZXRzIHRoZSBydW50aW1lIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbiBmb3IgYSBmdW5jdGlvbidzIHZlcnNpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1bnRpbWUgdXBkYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtdXBkYXRlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnIHtcbi8qKlxuICogU3BlY2lmeSB0aGUgcnVudGltZSB1cGRhdGUgbW9kZS5cbiAqICAgKyAgKkF1dG8gKGRlZmF1bHQpKiAtIEF1dG9tYXRpY2FsbHkgdXBkYXRlIHRvIHRoZSBtb3N0IHJlY2VudCBhbmQgc2VjdXJlIHJ1bnRpbWUgdmVyc2lvbiB1c2luZyBhIFtUd28tcGhhc2UgcnVudGltZSB2ZXJzaW9uIHJvbGxvdXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLXVwZGF0ZS5odG1sI3J1bnRpbWUtbWFuYWdlbWVudC10d28tcGhhc2UpLiBUaGlzIGlzIHRoZSBiZXN0IGNob2ljZSBmb3IgbW9zdCBjdXN0b21lcnMgdG8gZW5zdXJlIHRoZXkgYWx3YXlzIGJlbmVmaXQgZnJvbSBydW50aW1lIHVwZGF0ZXMuXG4gKiAgICsgICpGdW5jdGlvblVwZGF0ZSogLSBMQU0gdXBkYXRlcyB0aGUgcnVudGltZSBvZiB5b3UgZnVuY3Rpb24gdG8gdGhlIG1vc3QgcmVjZW50IGFuZCBzZWN1cmUgcnVudGltZSB2ZXJzaW9uIHdoZW4geW91IHVwZGF0ZSB5b3VyIGZ1bmN0aW9uLiBUaGlzIGFwcHJvYWNoIHN5bmNocm9uaXplcyBydW50aW1lIHVwZGF0ZXMgd2l0aCBmdW5jdGlvbiBkZXBsb3ltZW50cywgZ2l2aW5nIHlvdSBjb250cm9sIG92ZXIgd2hlbiBydW50aW1lIHVwZGF0ZXMgYXJlIGFwcGxpZWQgYW5kIGFsbG93aW5nIHlvdSB0byBkZXRlY3QgYW5kIG1pdGlnYXRlIHJhcmUgcnVudGltZSB1cGRhdGUgaW5jb21wYXRpYmlsaXRpZXMgZWFybHkuIFdoZW4gdXNpbmcgdGhpcyBzZXR0aW5nLCB5b3UgbmVlZCB0byByZWd1bGFybHkgdXBkYXRlIHlvdXIgZnVuY3Rpb25zIHRvIGtlZXAgdGhlaXIgcnVudGltZSB1cC10by1kYXRlLlxuICogICArICAqTWFudWFsKiAtIFlvdSBzcGVjaWZ5IGEgcnVudGltZSB2ZXJzaW9uIGluIHlvdXIgZnVuY3Rpb24gY29uZmlndXJhdGlvbi4gVGhlIGZ1bmN0aW9uIHdpbGwgdXNlIHRoaXMgcnVudGltZSB2ZXJzaW9uIGluZGVmaW5pdGVseS4gSW4gdGhlIHJhcmUgY2FzZSB3aGVyZSBhIG5ldyBydW50aW1lIHZlcnNpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggYW4gZXhpc3RpbmcgZnVuY3Rpb24sIHRoaXMgYWxsb3dzIHlvdSB0byByb2xsIGJhY2sgeW91ciBmdW5jdGlvbiB0byBhbiBlYXJsaWVyIHJ1bnRpbWUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUm9sbCBiYWNrIGEgcnVudGltZSB2ZXJzaW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy11cGRhdGUuaHRtbCNydW50aW1lLW1hbmFnZW1lbnQtcm9sbGJhY2spLlxuICogICBcbiAqICAqVmFsaWQgVmFsdWVzKjogYGBBdXRvYGAgfCBgYEZ1bmN0aW9uVXBkYXRlYGAgfCBgYE1hbnVhbGBgXG4gKi9cblVwZGF0ZVJ1bnRpbWVPbjogKFwiQXV0b1wiIHwgXCJGdW5jdGlvblVwZGF0ZVwiIHwgXCJNYW51YWxcIilcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgcnVudGltZSB2ZXJzaW9uIHlvdSB3YW50IHRoZSBmdW5jdGlvbiB0byB1c2UuXG4gKiAgIFRoaXMgaXMgb25seSByZXF1aXJlZCBpZiB5b3UncmUgdXNpbmcgdGhlICpNYW51YWwqIHJ1bnRpbWUgdXBkYXRlIG1vZGUuXG4gKi9cblJ1bnRpbWVWZXJzaW9uQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBmdW5jdGlvbidzIFtTbmFwU3RhcnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NuYXBzdGFydC5odG1sKSBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNuYXBTdGFydCB7XG4vKipcbiAqIFNldCBgYEFwcGx5T25gYCB0byBgYFB1Ymxpc2hlZFZlcnNpb25zYGAgdG8gY3JlYXRlIGEgc25hcHNob3Qgb2YgdGhlIGluaXRpYWxpemVkIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCB3aGVuIHlvdSBwdWJsaXNoIGEgZnVuY3Rpb24gdmVyc2lvbi5cbiAqL1xuQXBwbHlPbjogKFwiUHVibGlzaGVkVmVyc2lvbnNcIiB8IFwiTm9uZVwiKVxufVxuLyoqXG4gKiBEZXRhaWxzIGFib3V0IHRoZSBjb25uZWN0aW9uIGJldHdlZW4gYSBMYW1iZGEgZnVuY3Rpb24gYW5kIGFuIFtBbWF6b24gRUZTIGZpbGUgc3lzdGVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWZpbGVzeXN0ZW0uaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVN5c3RlbUNvbmZpZyB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIEVGUyBhY2Nlc3MgcG9pbnQgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGZpbGUgc3lzdGVtLlxuICovXG5Bcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgcGF0aCB3aGVyZSB0aGUgZnVuY3Rpb24gY2FuIGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0sIHN0YXJ0aW5nIHdpdGggYGAvbW50L2BgLlxuICovXG5Mb2NhbE1vdW50UGF0aDogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFRlbmFuY3lDb25maWcge1xuLyoqXG4gKiBEZXRlcm1pbmVzIGhvdyB5b3VyIExhbWJkYSBmdW5jdGlvbiBpc29sYXRlcyBleGVjdXRpb24gZW52aXJvbm1lbnRzIGJldHdlZW4gdGVuYW50cy5cbiAqL1xuVGVuYW50SXNvbGF0aW9uTW9kZTogXCJQRVJfVEVOQU5UXCJcbn1cbi8qKlxuICogQSBbdGFnXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy90YWdnaW5nLmh0bWwpIHRvIGFwcGx5IHRvIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoaXMgdGFnLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUga2V5IGZvciB0aGlzIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiB2YWx1ZXMgdGhhdCBvdmVycmlkZSB0aGUgY29udGFpbmVyIGltYWdlIERvY2tlcmZpbGUgc2V0dGluZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbnRhaW5lciBpbWFnZSBzZXR0aW5nc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW1hZ2VzLWNyZWF0ZS5odG1sI2ltYWdlcy1wYXJtcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VDb25maWcge1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiBUaGUgbGVuZ3RoIG9mIHRoZSBkaXJlY3Rvcnkgc3RyaW5nIGNhbm5vdCBleGNlZWQgMSwwMDAgY2hhcmFjdGVycy5cbiAqL1xuV29ya2luZ0RpcmVjdG9yeT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgcGFyYW1ldGVycyB0aGF0IHlvdSB3YW50IHRvIHBhc3MgaW4gd2l0aCBFTlRSWVBPSU5ULiBZb3UgY2FuIHNwZWNpZnkgYSBtYXhpbXVtIG9mIDEsNTAwIHBhcmFtZXRlcnMgaW4gdGhlIGxpc3QuXG4gKiBcbiAqIEBtYXhJdGVtcyAxNTAwXG4gKi9cbkNvbW1hbmQ/OiBzdHJpbmdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGVudHJ5IHBvaW50IHRvIHRoZWlyIGFwcGxpY2F0aW9uLCB3aGljaCBpcyB0eXBpY2FsbHkgdGhlIGxvY2F0aW9uIG9mIHRoZSBydW50aW1lIGV4ZWN1dGFibGUuIFlvdSBjYW4gc3BlY2lmeSBhIG1heGltdW0gb2YgMSw1MDAgc3RyaW5nIGVudHJpZXMgaW4gdGhlIGxpc3QuXG4gKiBcbiAqIEBtYXhJdGVtcyAxNTAwXG4gKi9cbkVudHJ5UG9pbnQ/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiBBIGRlYWQtbGV0dGVyIHF1ZXVlIGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIHF1ZXVlIG9yIHRvcGljIHdoZXJlIExhbWJkYSBzZW5kcyBhc3luY2hyb25vdXMgZXZlbnRzIHdoZW4gdGhleSBmYWlsIHByb2Nlc3NpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0RlYWQtbGV0dGVyIHF1ZXVlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1hc3luYy5odG1sI2ludm9jYXRpb24tZGxxKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWFkTGV0dGVyQ29uZmlnIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIGFuIEFtYXpvbiBTUVMgcXVldWUgb3IgQW1hem9uIFNOUyB0b3BpYy5cbiAqL1xuVGFyZ2V0QXJuPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFNuYXBTdGFydFJlc3BvbnNlIHtcbi8qKlxuICogV2hlbiB5b3UgcHJvdmlkZSBhIFtxdWFsaWZpZWQgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTildKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tdmVyc2lvbnMuaHRtbCN2ZXJzaW9uaW5nLXZlcnNpb25zLXVzaW5nKSwgdGhpcyByZXNwb25zZSBlbGVtZW50IGluZGljYXRlcyB3aGV0aGVyIFNuYXBTdGFydCBpcyBhY3RpdmF0ZWQgZm9yIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gdmVyc2lvbi5cbiAqL1xuT3B0aW1pemF0aW9uU3RhdHVzPzogKFwiT25cIiB8IFwiT2ZmXCIpXG4vKipcbiAqIFdoZW4gc2V0IHRvIGBgUHVibGlzaGVkVmVyc2lvbnNgYCwgTGFtYmRhIGNyZWF0ZXMgYSBzbmFwc2hvdCBvZiB0aGUgZXhlY3V0aW9uIGVudmlyb25tZW50IHdoZW4geW91IHB1Ymxpc2ggYSBmdW5jdGlvbiB2ZXJzaW9uLlxuICovXG5BcHBseU9uPzogKFwiUHVibGlzaGVkVmVyc2lvbnNcIiB8IFwiTm9uZVwiKVxufVxuLyoqXG4gKiBUaGUgY29kZSBmb3IgdGhlIGZ1bmN0aW9uLiBZb3UgY2FuIGRlZmluZSB5b3VyIGZ1bmN0aW9uIGNvZGUgaW4gbXVsdGlwbGUgd2F5czpcbiAqICAgKyAgRm9yIC56aXAgZGVwbG95bWVudCBwYWNrYWdlcywgeW91IGNhbiBzcGVjaWZ5IHRoZSBTMyBsb2NhdGlvbiBvZiB0aGUgLnppcCBmaWxlIGluIHRoZSBgYFMzQnVja2V0YGAsIGBgUzNLZXlgYCwgYW5kIGBgUzNPYmplY3RWZXJzaW9uYGAgcHJvcGVydGllcy5cbiAqICAgKyAgRm9yIC56aXAgZGVwbG95bWVudCBwYWNrYWdlcywgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IGRlZmluZSB0aGUgZnVuY3Rpb24gY29kZSBpbmxpbmUgaW4gdGhlIGBgWmlwRmlsZWBgIHByb3BlcnR5LiBUaGlzIG1ldGhvZCB3b3JrcyBvbmx5IGZvciBOb2RlLmpzIGFuZCBQeXRob24gZnVuY3Rpb25zLlxuICogICArICBGb3IgY29udGFpbmVyIGltYWdlcywgc3BlY2lmeSB0aGUgVVJJIG9mIHlvdXIgY29udGFpbmVyIGltYWdlIGluIHRoZSBFQ1IgcmVnaXN0cnkgaW4gdGhlIGBgSW1hZ2VVcmlgYCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgS01TbG9uZyAoS01TKSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0J3MgdXNlZCB0byBlbmNyeXB0IHlvdXIgZnVuY3Rpb24ncyAuemlwIGRlcGxveW1lbnQgcGFja2FnZS4gSWYgeW91IGRvbid0IHByb3ZpZGUgYSBjdXN0b21lciBtYW5hZ2VkIGtleSwgTGFtYmRhIHVzZXMgYW4gW293bmVkIGtleV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ttcy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY29uY2VwdHMuaHRtbCNhd3Mtb3duZWQtY21rKS5cbiAqL1xuU291cmNlS01TS2V5QXJuPzogc3RyaW5nXG4vKipcbiAqIEZvciB2ZXJzaW9uZWQgb2JqZWN0cywgdGhlIHZlcnNpb24gb2YgdGhlIGRlcGxveW1lbnQgcGFja2FnZSBvYmplY3QgdG8gdXNlLlxuICovXG5TM09iamVjdFZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogQW4gQW1hem9uIFMzIGJ1Y2tldCBpbiB0aGUgc2FtZSBBV1MtUmVnaW9uIGFzIHlvdXIgZnVuY3Rpb24uIFRoZSBidWNrZXQgY2FuIGJlIGluIGEgZGlmZmVyZW50IEFXUy1hY2NvdW50LlxuICovXG5TM0J1Y2tldD86IHN0cmluZ1xuLyoqXG4gKiAoTm9kZS5qcyBhbmQgUHl0aG9uKSBUaGUgc291cmNlIGNvZGUgb2YgeW91ciBMYW1iZGEgZnVuY3Rpb24uIElmIHlvdSBpbmNsdWRlIHlvdXIgZnVuY3Rpb24gc291cmNlIGlubGluZSB3aXRoIHRoaXMgcGFyYW1ldGVyLCBDRk4gcGxhY2VzIGl0IGluIGEgZmlsZSBuYW1lZCBgYGluZGV4YGAgYW5kIHppcHMgaXQgdG8gY3JlYXRlIGEgW2RlcGxveW1lbnQgcGFja2FnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sKS4gVGhpcyB6aXAgZmlsZSBjYW5ub3QgZXhjZWVkIDRNQi4gRm9yIHRoZSBgYEhhbmRsZXJgYCBwcm9wZXJ0eSwgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGhhbmRsZXIgaWRlbnRpZmllciBtdXN0IGJlIGBgaW5kZXhgYC4gRm9yIGV4YW1wbGUsIGBgaW5kZXguaGFuZGxlcmBgLlxuICogICBXaGVuIHlvdSBzcGVjaWZ5IHNvdXJjZSBjb2RlIGlubGluZSBmb3IgYSBOb2RlLmpzIGZ1bmN0aW9uLCB0aGUgYGBpbmRleGBgIGZpbGUgdGhhdCBDRk4gY3JlYXRlcyB1c2VzIHRoZSBleHRlbnNpb24gYGAuanNgYC4gVGhpcyBtZWFucyB0aGF0IExBTSB0cmVhdHMgdGhlIGZpbGUgYXMgYSBDb21tb25KUyBtb2R1bGUuIEVTIG1vZHVsZXMgYXJlbid0IHN1cHBvcnRlZCBmb3IgaW5saW5lIGZ1bmN0aW9ucy5cbiAqICAgIEZvciBKU09OLCB5b3UgbXVzdCBlc2NhcGUgcXVvdGVzIGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgc3VjaCBhcyBuZXdsaW5lIChgYFxcbmBgKSB3aXRoIGEgYmFja3NsYXNoLlxuICogIElmIHlvdSBzcGVjaWZ5IGEgZnVuY3Rpb24gdGhhdCBpbnRlcmFjdHMgd2l0aCBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gY3VzdG9tIHJlc291cmNlLCB5b3UgZG9uJ3QgaGF2ZSB0byB3cml0ZSB5b3VyIG93biBmdW5jdGlvbnMgdG8gc2VuZCByZXNwb25zZXMgdG8gdGhlIGN1c3RvbSByZXNvdXJjZSB0aGF0IGludm9rZWQgdGhlIGZ1bmN0aW9uLiBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvdmlkZXMgYSByZXNwb25zZSBtb2R1bGUgKFtjZm4tcmVzcG9uc2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2Nmbi1sYW1iZGEtZnVuY3Rpb24tY29kZS1jZm5yZXNwb25zZW1vZHVsZS5odG1sKSkgdGhhdCBzaW1wbGlmaWVzIHNlbmRpbmcgcmVzcG9uc2VzLiBTZWUgW1VzaW5nIExhbWJkYSB3aXRoIENsb3VkRm9ybWF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zZXJ2aWNlcy1jbG91ZGZvcm1hdGlvbi5odG1sKSBmb3IgZGV0YWlscy5cbiAqL1xuWmlwRmlsZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFMzIGtleSBvZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlLlxuICovXG5TM0tleT86IHN0cmluZ1xuLyoqXG4gKiBVUkkgb2YgYSBbY29udGFpbmVyIGltYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW1hZ2VzLmh0bWwpIGluIHRoZSBBbWF6b24gRUNSIHJlZ2lzdHJ5LlxuICovXG5JbWFnZVVyaT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgZnVuY3Rpb24ncyBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2luZ0NvbmZpZyB7XG4vKipcbiAqIFRoZSBmb3JtYXQgaW4gd2hpY2ggTGFtYmRhIHNlbmRzIHlvdXIgZnVuY3Rpb24ncyBhcHBsaWNhdGlvbiBhbmQgc3lzdGVtIGxvZ3MgdG8gQ2xvdWRXYXRjaC4gU2VsZWN0IGJldHdlZW4gcGxhaW4gdGV4dCBhbmQgc3RydWN0dXJlZCBKU09OLlxuICovXG5Mb2dGb3JtYXQ/OiAoXCJUZXh0XCIgfCBcIkpTT05cIilcbi8qKlxuICogU2V0IHRoaXMgcHJvcGVydHkgdG8gZmlsdGVyIHRoZSBhcHBsaWNhdGlvbiBsb2dzIGZvciB5b3VyIGZ1bmN0aW9uIHRoYXQgTGFtYmRhIHNlbmRzIHRvIENsb3VkV2F0Y2guIExhbWJkYSBvbmx5IHNlbmRzIGFwcGxpY2F0aW9uIGxvZ3MgYXQgdGhlIHNlbGVjdGVkIGxldmVsIG9mIGRldGFpbCBhbmQgbG93ZXIsIHdoZXJlIGBgVFJBQ0VgYCBpcyB0aGUgaGlnaGVzdCBsZXZlbCBhbmQgYGBGQVRBTGBgIGlzIHRoZSBsb3dlc3QuXG4gKi9cbkFwcGxpY2F0aW9uTG9nTGV2ZWw/OiAoXCJUUkFDRVwiIHwgXCJERUJVR1wiIHwgXCJJTkZPXCIgfCBcIldBUk5cIiB8IFwiRVJST1JcIiB8IFwiRkFUQUxcIilcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBDbG91ZFdhdGNoIGxvZyBncm91cCB0aGUgZnVuY3Rpb24gc2VuZHMgbG9ncyB0by4gQnkgZGVmYXVsdCwgTGFtYmRhIGZ1bmN0aW9ucyBzZW5kIGxvZ3MgdG8gYSBkZWZhdWx0IGxvZyBncm91cCBuYW1lZCBgYC9hd3MvbGFtYmRhLzxmdW5jdGlvbiBuYW1lPmBgLiBUbyB1c2UgYSBkaWZmZXJlbnQgbG9nIGdyb3VwLCBlbnRlciBhbiBleGlzdGluZyBsb2cgZ3JvdXAgb3IgZW50ZXIgYSBuZXcgbG9nIGdyb3VwIG5hbWUuXG4gKi9cbkxvZ0dyb3VwPzogc3RyaW5nXG4vKipcbiAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZpbHRlciB0aGUgc3lzdGVtIGxvZ3MgZm9yIHlvdXIgZnVuY3Rpb24gdGhhdCBMYW1iZGEgc2VuZHMgdG8gQ2xvdWRXYXRjaC4gTGFtYmRhIG9ubHkgc2VuZHMgc3lzdGVtIGxvZ3MgYXQgdGhlIHNlbGVjdGVkIGxldmVsIG9mIGRldGFpbCBhbmQgbG93ZXIsIHdoZXJlIGBgREVCVUdgYCBpcyB0aGUgaGlnaGVzdCBsZXZlbCBhbmQgYGBXQVJOYGAgaXMgdGhlIGxvd2VzdC5cbiAqL1xuU3lzdGVtTG9nTGV2ZWw/OiAoXCJERUJVR1wiIHwgXCJJTkZPXCIgfCBcIldBUk5cIilcbn1cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIGFjY2Vzc2libGUgZnJvbSBmdW5jdGlvbiBjb2RlIGR1cmluZyBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZSBrZXktdmFsdWUgcGFpcnMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIExhbWJkYSBlbnZpcm9ubWVudCB2YXJpYWJsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZW52dmFycy5odG1sKS5cbiAqICBJZiB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGEgdGltZSBvciBhIGR1cmF0aW9uLCBlbmNsb3NlIHRoZSB2YWx1ZSBpbiBxdW90ZXMuXG4gKi9cblZhcmlhYmxlcz86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiW2EtekEtWl1bYS16QS1aMC05X10rXCIuXG4gKi9cbltrOiBzdHJpbmddOiBzdHJpbmdcbn1cbn1cbi8qKlxuICogVGhlIHNpemUgb2YgdGhlIGZ1bmN0aW9uJ3MgYGAvdG1wYGAgZGlyZWN0b3J5IGluIE1CLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MTIsIGJ1dCBpdCBjYW4gYmUgYW55IHdob2xlIG51bWJlciBiZXR3ZWVuIDUxMiBhbmQgMTAsMjQwIE1CLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVwaGVtZXJhbFN0b3JhZ2Uge1xuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgZnVuY3Rpb24ncyBgYC90bXBgYCBkaXJlY3RvcnkuXG4gKi9cblNpemU6IG51bWJlclxufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1sYW1iZGEtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UgY3JlYXRlcyBhIExhbWJkYSBmdW5jdGlvbi4gVG8gY3JlYXRlIGEgZnVuY3Rpb24sIHlvdSBuZWVkIGEgW2RlcGxveW1lbnQgcGFja2FnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sKSBhbmQgYW4gW2V4ZWN1dGlvbiByb2xlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW50cm8tZXhlY3V0aW9uLXJvbGUuaHRtbCkuIFRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSAuemlwIGZpbGUgYXJjaGl2ZSBvciBjb250YWluZXIgaW1hZ2UgdGhhdCBjb250YWlucyB5b3VyIGZ1bmN0aW9uIGNvZGUuIFRoZSBleGVjdXRpb24gcm9sZSBncmFudHMgdGhlIGZ1bmN0aW9uIHBlcm1pc3Npb24gdG8gdXNlIEFXUyBzZXJ2aWNlcywgc3VjaCBhcyBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzIGZvciBsb2cgc3RyZWFtaW5nIGFuZCBBV1MgWC1SYXkgZm9yIHJlcXVlc3QgdHJhY2luZy5cbiAqICBZb3Ugc2V0IHRoZSBwYWNrYWdlIHR5cGUgdG8gYGBJbWFnZWBgIGlmIHRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSBbY29udGFpbmVyIGltYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW1hZ2VzLmh0bWwpLiBGb3IgdGhlc2UgZnVuY3Rpb25zLCBpbmNsdWRlIHRoZSBVUkkgb2YgdGhlIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgRUNSIHJlZ2lzdHJ5IGluIHRoZSBbSW1hZ2VVcmkgcHJvcGVydHkgb2YgdGhlIENvZGUgcHJvcGVydHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWxhbWJkYS1mdW5jdGlvbi1jb2RlLmh0bWwjY2ZuLWxhbWJkYS1mdW5jdGlvbi1jb2RlLWltYWdldXJpKS4gWW91IGRvIG5vdCBuZWVkIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgYW5kIHJ1bnRpbWUgcHJvcGVydGllcy4gXG4gKiAgWW91IHNldCB0aGUgcGFja2FnZSB0eXBlIHRvIGBgWmlwYGAgaWYgdGhlIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIFsuemlwIGZpbGUgYXJjaGl2ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sI2dldHRpbmdzdGFydGVkLXBhY2thZ2UtemlwKS4gRm9yIHRoZXNlIGZ1bmN0aW9ucywgc3BlY2lmeSB0aGUgUzMgbG9jYXRpb24gb2YgeW91ciAuemlwIGZpbGUgaW4gdGhlIGBgQ29kZWBgIHByb3BlcnR5LiBBbHRlcm5hdGl2ZWx5LCBmb3IgTm9kZS5qcyBhbmQgUHl0aG9uIGZ1bmN0aW9ucywgeW91IGNhbiBkZWZpbmUgeW91ciBmdW5jdGlvbiBpbmxpbmUgaW4gdGhlIFtaaXBGaWxlIHByb3BlcnR5IG9mIHRoZSBDb2RlIHByb3BlcnR5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1sYW1iZGEtZnVuY3Rpb24tY29kZS5odG1sI2Nmbi1sYW1iZGEtZnVuY3Rpb24tY29kZS16aXBmaWxlKS4gSW4gYm90aCBjYXNlcywgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBoYW5kbGVyIGFuZCBydW50aW1lIHByb3BlcnRpZXMuXG4gKiAgWW91IGNhbiB1c2UgW2NvZGUgc2lnbmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1jb2Rlc2lnbmluZy5odG1sKSBpZiB5b3VyIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIC56aXAgZmlsZSBhcmNoaXZlLiBUbyBlbmFibGUgY29kZSBzaWduaW5nIGZvciB0aGlzIGZ1bmN0aW9uLCBzcGVjaWZ5IHRoZSBBUk4gb2YgYSBjb2RlLXNpZ25pbmcgY29uZmlndXJhdGlvbi4gV2hlbiBhIHVzZXIgYXR0ZW1wdHMgdG8gZGVwbG95IGEgY29kZSBwYWNrYWdlIHdpdGggYGBVcGRhdGVGdW5jdGlvbkNvZGVgYCwgTGFtYmRhIGNoZWNrcyB0aGF0IHRoZSBjb2RlIHBhY2thZ2UgaGFzIGEgdmFsaWQgc2lnbmF0dXJlIGZyb20gYSB0cnVzdGVkIHB1Ymxpc2hlci4gVGhlIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIHNpZ25pbmcgcHJvZmlsZXMsIHdoaWNoIGRlZmluZSB0aGUgdHJ1c3RlZCBwdWJsaXNoZXJzIGZvciB0aGlzIGZ1bmN0aW9uLlxuICogIFdoZW4geW91IHVwZGF0ZSBhIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UsIENGTnNob3J0IGNhbGxzIHRoZSBbVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9hcGkvQVBJX1VwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sKSBhbmQgW1VwZGF0ZUZ1bmN0aW9uQ29kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvYXBpL0FQSV9VcGRhdGVGdW5jdGlvbkNvZGUuaHRtbClMQU0gQVBJcyB1bmRlciB0aGUgaG9vZC4gQmVjYXVzZSB0aGVzZSBjYWxscyBoYXBwZW4gc2VxdWVudGlhbGx5LCBhbmQgaW52b2NhdGlvbnMgY2FuIGhhcHBlbiBiZXR3ZWVuIHRoZXNlIGNhbGxzLCB5b3VyIGZ1bmN0aW9uIG1heSBlbmNvdW50ZXIgZXJyb3JzIGluIHRoZSB0aW1lIGJldHdlZW4gdGhlIGNhbGxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHJlbW92ZSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYW5kIHRoZSBjb2RlIHRoYXQgcmVmZXJlbmNlcyB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlIGluIHRoZSBzYW1lIENGTnNob3J0IHVwZGF0ZSwgeW91IG1heSBzZWUgaW52b2NhdGlvbiBlcnJvcnMgcmVsYXRlZCB0byBhIG1pc3NpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHlvdSBjYW4gaW52b2tlIHlvdXIgZnVuY3Rpb24gYWdhaW5zdCBhIHZlcnNpb24gb3IgYWxpYXMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIGBgJExBVEVTVGBgIHZlcnNpb24uXG4gKiAgTm90ZSB0aGF0IHlvdSBjb25maWd1cmUgW3Byb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9wcm92aXNpb25lZC1jb25jdXJyZW5jeS5odG1sKSBvbiBhIGBgQVdTOjpMYW1iZGE6OlZlcnNpb25gYCBvciBhIGBgQVdTOjpMYW1iZGE6OkFsaWFzYGAuXG4gKiAgRm9yIGEgY29tcGxldGUgaW50cm9kdWN0aW9uIHRvIExhbWJkYSBmdW5jdGlvbnMsIHNlZSBbV2hhdCBpcyBMYW1iZGE/XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtd2VsY29tZS5odG1sKSBpbiB0aGUgKkxhbWJkYSBkZXZlbG9wZXIgZ3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfTEFNQkRBX0ZVTkNUSU9OIHtcbkZ1bmN0aW9uU2NhbGluZ0NvbmZpZz86IEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1xuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcblRyYWNpbmdDb25maWc/OiBUcmFjaW5nQ29uZmlnXG5WcGNDb25maWc/OiBWcGNDb25maWdcblJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnPzogUnVudGltZU1hbmFnZW1lbnRDb25maWdcbi8qKlxuICogVGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgZXhlY3V0aW9ucyB0byByZXNlcnZlIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cblJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM/OiBudW1iZXJcblNuYXBTdGFydD86IFNuYXBTdGFydFxuLyoqXG4gKiBDb25uZWN0aW9uIHNldHRpbmdzIGZvciBhbiBBbWF6b24gRUZTIGZpbGUgc3lzdGVtLiBUbyBjb25uZWN0IGEgZnVuY3Rpb24gdG8gYSBmaWxlIHN5c3RlbSwgYSBtb3VudCB0YXJnZXQgbXVzdCBiZSBhdmFpbGFibGUgaW4gZXZlcnkgQXZhaWxhYmlsaXR5IFpvbmUgdGhhdCB5b3VyIGZ1bmN0aW9uIGNvbm5lY3RzIHRvLiBJZiB5b3VyIHRlbXBsYXRlIGNvbnRhaW5zIGFuIFtBV1M6OkVGUzo6TW91bnRUYXJnZXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lZnMtbW91bnR0YXJnZXQuaHRtbCkgcmVzb3VyY2UsIHlvdSBtdXN0IGFsc28gc3BlY2lmeSBhIGBgRGVwZW5kc09uYGAgYXR0cmlidXRlIHRvIGVuc3VyZSB0aGF0IHRoZSBtb3VudCB0YXJnZXQgaXMgY3JlYXRlZCBvciB1cGRhdGVkIGJlZm9yZSB0aGUgZnVuY3Rpb24uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgdGhlIGBgRGVwZW5kc09uYGAgYXR0cmlidXRlLCBzZWUgW0RlcGVuZHNPbiBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1hdHRyaWJ1dGUtZGVwZW5kc29uLmh0bWwpLlxuICogXG4gKiBAbWF4SXRlbXMgMVxuICovXG5GaWxlU3lzdGVtQ29uZmlncz86IEZpbGVTeXN0ZW1Db25maWdbXVxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLCB1cCB0byA2NCBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBDRk4gZ2VuZXJhdGVzIG9uZS5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIG5hbWUsIHlvdSBjYW5ub3QgcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGlzIHJlc291cmNlLiBZb3UgY2FuIHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgbm8gb3Igc29tZSBpbnRlcnJ1cHRpb24uIElmIHlvdSBtdXN0IHJlcGxhY2UgdGhlIHJlc291cmNlLCBzcGVjaWZ5IGEgbmV3IG5hbWUuXG4gKi9cbkZ1bmN0aW9uTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgZnVuY3Rpb24ncyBbcnVudGltZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLXJ1bnRpbWVzLmh0bWwpLiBSdW50aW1lIGlzIHJlcXVpcmVkIGlmIHRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSAuemlwIGZpbGUgYXJjaGl2ZS4gU3BlY2lmeWluZyBhIHJ1bnRpbWUgcmVzdWx0cyBpbiBhbiBlcnJvciBpZiB5b3UncmUgZGVwbG95aW5nIGEgZnVuY3Rpb24gdXNpbmcgYSBjb250YWluZXIgaW1hZ2UuXG4gKiAgVGhlIGZvbGxvd2luZyBsaXN0IGluY2x1ZGVzIGRlcHJlY2F0ZWQgcnVudGltZXMuIExhbWJkYSBibG9ja3MgY3JlYXRpbmcgbmV3IGZ1bmN0aW9ucyBhbmQgdXBkYXRpbmcgZXhpc3RpbmcgZnVuY3Rpb25zIHNob3J0bHkgYWZ0ZXIgZWFjaCBydW50aW1lIGlzIGRlcHJlY2F0ZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1bnRpbWUgdXNlIGFmdGVyIGRlcHJlY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtcnVudGltZXMuaHRtbCNydW50aW1lLWRlcHJlY2F0aW9uLWxldmVscykuXG4gKiAgRm9yIGEgbGlzdCBvZiBhbGwgY3VycmVudGx5IHN1cHBvcnRlZCBydW50aW1lcywgc2VlIFtTdXBwb3J0ZWQgcnVudGltZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1ydW50aW1lcy5odG1sI3J1bnRpbWVzLXN1cHBvcnRlZCkuXG4gKi9cblJ1bnRpbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgS01TbG9uZyAoS01TKSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0J3MgdXNlZCB0byBlbmNyeXB0IHRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzOlxuICogICArICBUaGUgZnVuY3Rpb24ncyBbZW52aXJvbm1lbnQgdmFyaWFibGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWVudnZhcnMuaHRtbCNjb25maWd1cmF0aW9uLWVudnZhcnMtZW5jcnlwdGlvbikuXG4gKiAgICsgIFRoZSBmdW5jdGlvbidzIFtMYW1iZGEgU25hcFN0YXJ0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zbmFwc3RhcnQtc2VjdXJpdHkuaHRtbCkgc25hcHNob3RzLlxuICogICArICBXaGVuIHVzZWQgd2l0aCBgYFNvdXJjZUtNU0tleUFybmBgLCB0aGUgdW56aXBwZWQgdmVyc2lvbiBvZiB0aGUgLnppcCBkZXBsb3ltZW50IHBhY2thZ2UgdGhhdCdzIHVzZWQgZm9yIGZ1bmN0aW9uIGludm9jYXRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIGEgY3VzdG9tZXIgbWFuYWdlZCBrZXkgZm9yIExhbWJkYV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZW5jcnlwdC16aXAtcGFja2FnZS5odG1sI2VuYWJsZS16aXAtY3VzdG9tLWVuY3J5cHRpb24pLlxuICogICArICBUaGUgb3B0aW1pemVkIHZlcnNpb24gb2YgdGhlIGNvbnRhaW5lciBpbWFnZSB0aGF0J3MgdXNlZCBmb3IgZnVuY3Rpb24gaW52b2NhdGlvbnMuIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgc2FtZSBrZXkgdGhhdCdzIHVzZWQgdG8gcHJvdGVjdCB5b3VyIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgQW1hem9uIEVsYXN0aWMgQ29udGFpbmVyIFJlZ2lzdHJ5IChBbWF6b24gRUNSKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbRnVuY3Rpb24gbGlmZWN5Y2xlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbWFnZXMtY3JlYXRlLmh0bWwjaW1hZ2VzLWxpZmVjeWNsZSkuXG4gKiAgIFxuICogIElmIHlvdSBkb24ndCBwcm92aWRlIGEgY3VzdG9tZXIgbWFuYWdlZCBrZXksIExhbWJkYSB1c2VzIGFuIFtvd25lZCBrZXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2NvbmNlcHRzLmh0bWwjYXdzLW93bmVkLWNtaykgb3IgYW4gW10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ttcy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY29uY2VwdHMuaHRtbCNhd3MtbWFuYWdlZC1jbWspLlxuICovXG5LbXNLZXlBcm4/OiBzdHJpbmdcblB1Ymxpc2hUb0xhdGVzdFB1Ymxpc2hlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHR5cGUgb2YgZGVwbG95bWVudCBwYWNrYWdlLiBTZXQgdG8gYGBJbWFnZWBgIGZvciBjb250YWluZXIgaW1hZ2UgYW5kIHNldCBgYFppcGBgIGZvciAuemlwIGZpbGUgYXJjaGl2ZS5cbiAqL1xuUGFja2FnZVR5cGU/OiAoXCJJbWFnZVwiIHwgXCJaaXBcIilcbi8qKlxuICogVG8gZW5hYmxlIGNvZGUgc2lnbmluZyBmb3IgdGhpcyBmdW5jdGlvbiwgc3BlY2lmeSB0aGUgQVJOIG9mIGEgY29kZS1zaWduaW5nIGNvbmZpZ3VyYXRpb24uIEEgY29kZS1zaWduaW5nIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYSBzZXQgb2Ygc2lnbmluZyBwcm9maWxlcywgd2hpY2ggZGVmaW5lIHRoZSB0cnVzdGVkIHB1Ymxpc2hlcnMgZm9yIHRoaXMgZnVuY3Rpb24uXG4gKi9cbkNvZGVTaWduaW5nQ29uZmlnQXJuPzogc3RyaW5nXG4vKipcbiAqIEEgbGlzdCBvZiBbZnVuY3Rpb24gbGF5ZXJzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWxheWVycy5odG1sKSB0byBhZGQgdG8gdGhlIGZ1bmN0aW9uJ3MgZXhlY3V0aW9uIGVudmlyb25tZW50LiBTcGVjaWZ5IGVhY2ggbGF5ZXIgYnkgaXRzIEFSTiwgaW5jbHVkaW5nIHRoZSB2ZXJzaW9uLlxuICovXG5MYXllcnM/OiBzdHJpbmdbXVxuVGVuYW5jeUNvbmZpZz86IFRlbmFuY3lDb25maWdcbi8qKlxuICogQSBsaXN0IG9mIFt0YWdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy90YWdnaW5nLmh0bWwpIHRvIGFwcGx5IHRvIHRoZSBmdW5jdGlvbi5cbiAqICAgWW91IG11c3QgaGF2ZSB0aGUgYGBsYW1iZGE6VGFnUmVzb3VyY2VgYCwgYGBsYW1iZGE6VW50YWdSZXNvdXJjZWBgLCBhbmQgYGBsYW1iZGE6TGlzdFRhZ3NgYCBwZXJtaXNzaW9ucyBmb3IgeW91ciBbcHJpbmNpcGFsXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvaWRfcm9sZXNfdGVybXMtYW5kLWNvbmNlcHRzLmh0bWwpIHRvIG1hbmFnZSB0aGUgQ0ZOIHN0YWNrLiBJZiB5b3UgZG9uJ3QgaGF2ZSB0aGVzZSBwZXJtaXNzaW9ucywgdGhlcmUgbWlnaHQgYmUgdW5leHBlY3RlZCBiZWhhdmlvciB3aXRoIHN0YWNrLWxldmVsIHRhZ3MgcHJvcGFnYXRpbmcgdG8gdGhlIHJlc291cmNlIGR1cmluZyByZXNvdXJjZSBjcmVhdGlvbiBhbmQgdXBkYXRlLlxuICovXG5UYWdzPzogVGFnW11cbkltYWdlQ29uZmlnPzogSW1hZ2VDb25maWdcbi8qKlxuICogVGhlIGFtb3VudCBvZiBbbWVtb3J5IGF2YWlsYWJsZSB0byB0aGUgZnVuY3Rpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZnVuY3Rpb24tY29tbW9uLmh0bWwjY29uZmlndXJhdGlvbi1tZW1vcnktY29uc29sZSkgYXQgcnVudGltZS4gSW5jcmVhc2luZyB0aGUgZnVuY3Rpb24gbWVtb3J5IGFsc28gaW5jcmVhc2VzIGl0cyBDUFUgYWxsb2NhdGlvbi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTI4IE1CLiBUaGUgdmFsdWUgY2FuIGJlIGFueSBtdWx0aXBsZSBvZiAxIE1CLiBOb3RlIHRoYXQgbmV3IEFXUyBhY2NvdW50cyBoYXZlIHJlZHVjZWQgY29uY3VycmVuY3kgYW5kIG1lbW9yeSBxdW90YXMuIEFXUyByYWlzZXMgdGhlc2UgcXVvdGFzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24geW91ciB1c2FnZS4gWW91IGNhbiBhbHNvIHJlcXVlc3QgYSBxdW90YSBpbmNyZWFzZS5cbiAqL1xuTWVtb3J5U2l6ZT86IG51bWJlclxuRGVhZExldHRlckNvbmZpZz86IERlYWRMZXR0ZXJDb25maWdcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IExhbWJkYSBhbGxvd3MgYSBmdW5jdGlvbiB0byBydW4gYmVmb3JlIHN0b3BwaW5nIGl0LiBUaGUgZGVmYXVsdCBpcyAzIHNlY29uZHMuIFRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgaXMgOTAwIHNlY29uZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhbWJkYSBleGVjdXRpb24gZW52aXJvbm1lbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLWNvbnRleHQuaHRtbCkuXG4gKi9cblRpbWVvdXQ/OiBudW1iZXJcbkNhcGFjaXR5UHJvdmlkZXJDb25maWc/OiBDYXBhY2l0eVByb3ZpZGVyQ29uZmlnXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRob2Qgd2l0aGluIHlvdXIgY29kZSB0aGF0IExhbWJkYSBjYWxscyB0byBydW4geW91ciBmdW5jdGlvbi4gSGFuZGxlciBpcyByZXF1aXJlZCBpZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlIGlzIGEgLnppcCBmaWxlIGFyY2hpdmUuIFRoZSBmb3JtYXQgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZS4gSXQgY2FuIGFsc28gaW5jbHVkZSBuYW1lc3BhY2VzIGFuZCBvdGhlciBxdWFsaWZpZXJzLCBkZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhbWJkYSBwcm9ncmFtbWluZyBtb2RlbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZm91bmRhdGlvbi1wcm9nbW9kZWwuaHRtbCkuXG4gKi9cbkhhbmRsZXI/OiBzdHJpbmdcblNuYXBTdGFydFJlc3BvbnNlPzogU25hcFN0YXJ0UmVzcG9uc2VcbkNvZGU6IENvZGVcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiByb2xlLlxuICovXG5Sb2xlOiBzdHJpbmdcbkxvZ2dpbmdDb25maWc/OiBMb2dnaW5nQ29uZmlnXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgeW91ciBmdW5jdGlvbidzIHJlY3Vyc2l2ZSBsb29wIGRldGVjdGlvbiBjb25maWd1cmF0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBBbGxvd2BgYW5kIExhbWJkYSBkZXRlY3RzIHlvdXIgZnVuY3Rpb24gYmVpbmcgaW52b2tlZCBhcyBwYXJ0IG9mIGEgcmVjdXJzaXZlIGxvb3AsIGl0IGRvZXNuJ3QgdGFrZSBhbnkgYWN0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBUZXJtaW5hdGVgYCBhbmQgTGFtYmRhIGRldGVjdHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFzIHBhcnQgb2YgYSByZWN1cnNpdmUgbG9vcCwgaXQgc3RvcHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFuZCBub3RpZmllcyB5b3UuXG4gKi9cblJlY3Vyc2l2ZUxvb3A/OiAoXCJBbGxvd1wiIHwgXCJUZXJtaW5hdGVcIilcbkVudmlyb25tZW50PzogRW52aXJvbm1lbnRcbkFybj86IHN0cmluZ1xuRXBoZW1lcmFsU3RvcmFnZT86IEVwaGVtZXJhbFN0b3JhZ2Vcbi8qKlxuICogVGhlIGluc3RydWN0aW9uIHNldCBhcmNoaXRlY3R1cmUgdGhhdCB0aGUgZnVuY3Rpb24gc3VwcG9ydHMuIEVudGVyIGEgc3RyaW5nIGFycmF5IHdpdGggb25lIG9mIHRoZSB2YWxpZCB2YWx1ZXMgKGFybTY0IG9yIHg4Nl82NCkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgeDg2XzY0YGAuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5BcmNoaXRlY3R1cmVzPzogKFwieDg2XzY0XCIgfCBcImFybTY0XCIpW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TY2FsaW5nQ29uZmlnIHtcbi8qKlxuICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgdG8gbWFpbnRhaW4gZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuTWluRXhlY3V0aW9uRW52aXJvbm1lbnRzPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBleGVjdXRpb24gZW52aXJvbm1lbnRzIHRoYXQgY2FuIGJlIHByb3Zpc2lvbmVkIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbk1heEV4ZWN1dGlvbkVudmlyb25tZW50cz86IG51bWJlclxufVxuLyoqXG4gKiBTZXQgYGBNb2RlYGAgdG8gYGBBY3RpdmVgYCB0byBzYW1wbGUgYW5kIHRyYWNlIGEgc3Vic2V0IG9mIGluY29taW5nIHJlcXVlc3RzIHdpdGggW1gtUmF5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zZXJ2aWNlcy14cmF5Lmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgdHJhY2luZyBtb2RlLlxuICovXG5Nb2RlPzogKFwiQWN0aXZlXCIgfCBcIlBhc3NUaHJvdWdoXCIpXG59XG4vKipcbiAqIEZvciBuZXR3b3JrIGNvbm5lY3Rpdml0eSB0byBBV1MgcmVzb3VyY2VzIGluIGEgVlBDLCBzcGVjaWZ5IGEgbGlzdCBvZiBzZWN1cml0eSBncm91cHMgYW5kIHN1Ym5ldHMgaW4gdGhlIFZQQy4gV2hlbiB5b3UgY29ubmVjdCBhIGZ1bmN0aW9uIHRvIGEgVlBDLCBpdCBjYW4gYWNjZXNzIHJlc291cmNlcyBhbmQgdGhlIGludGVybmV0IG9ubHkgdGhyb3VnaCB0aGF0IFZQQy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29uZmlndXJpbmcgYSBMYW1iZGEgZnVuY3Rpb24gdG8gYWNjZXNzIHJlc291cmNlcyBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi12cGMuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbi8qKlxuICogQWxsb3dzIG91dGJvdW5kIElQdjYgdHJhZmZpYyBvbiBWUEMgZnVuY3Rpb25zIHRoYXQgYXJlIGNvbm5lY3RlZCB0byBkdWFsLXN0YWNrIHN1Ym5ldHMuXG4gKi9cbklwdjZBbGxvd2VkRm9yRHVhbFN0YWNrPzogYm9vbGVhblxuLyoqXG4gKiBBIGxpc3Qgb2YgVlBDIHNlY3VyaXR5IGdyb3VwIElEcy5cbiAqIFxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG4vKipcbiAqIEEgbGlzdCBvZiBWUEMgc3VibmV0IElEcy5cbiAqIFxuICogQG1heEl0ZW1zIDE2XG4gKi9cblN1Ym5ldElkcz86IHN0cmluZ1tdXG59XG4vKipcbiAqIFNldHMgdGhlIHJ1bnRpbWUgbWFuYWdlbWVudCBjb25maWd1cmF0aW9uIGZvciBhIGZ1bmN0aW9uJ3MgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUnVudGltZSB1cGRhdGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy11cGRhdGUuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZU1hbmFnZW1lbnRDb25maWcge1xuLyoqXG4gKiBTcGVjaWZ5IHRoZSBydW50aW1lIHVwZGF0ZSBtb2RlLlxuICogICArICAqQXV0byAoZGVmYXVsdCkqIC0gQXV0b21hdGljYWxseSB1cGRhdGUgdG8gdGhlIG1vc3QgcmVjZW50IGFuZCBzZWN1cmUgcnVudGltZSB2ZXJzaW9uIHVzaW5nIGEgW1R3by1waGFzZSBydW50aW1lIHZlcnNpb24gcm9sbG91dF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtdXBkYXRlLmh0bWwjcnVudGltZS1tYW5hZ2VtZW50LXR3by1waGFzZSkuIFRoaXMgaXMgdGhlIGJlc3QgY2hvaWNlIGZvciBtb3N0IGN1c3RvbWVycyB0byBlbnN1cmUgdGhleSBhbHdheXMgYmVuZWZpdCBmcm9tIHJ1bnRpbWUgdXBkYXRlcy5cbiAqICAgKyAgKkZ1bmN0aW9uVXBkYXRlKiAtIExBTSB1cGRhdGVzIHRoZSBydW50aW1lIG9mIHlvdSBmdW5jdGlvbiB0byB0aGUgbW9zdCByZWNlbnQgYW5kIHNlY3VyZSBydW50aW1lIHZlcnNpb24gd2hlbiB5b3UgdXBkYXRlIHlvdXIgZnVuY3Rpb24uIFRoaXMgYXBwcm9hY2ggc3luY2hyb25pemVzIHJ1bnRpbWUgdXBkYXRlcyB3aXRoIGZ1bmN0aW9uIGRlcGxveW1lbnRzLCBnaXZpbmcgeW91IGNvbnRyb2wgb3ZlciB3aGVuIHJ1bnRpbWUgdXBkYXRlcyBhcmUgYXBwbGllZCBhbmQgYWxsb3dpbmcgeW91IHRvIGRldGVjdCBhbmQgbWl0aWdhdGUgcmFyZSBydW50aW1lIHVwZGF0ZSBpbmNvbXBhdGliaWxpdGllcyBlYXJseS4gV2hlbiB1c2luZyB0aGlzIHNldHRpbmcsIHlvdSBuZWVkIHRvIHJlZ3VsYXJseSB1cGRhdGUgeW91ciBmdW5jdGlvbnMgdG8ga2VlcCB0aGVpciBydW50aW1lIHVwLXRvLWRhdGUuXG4gKiAgICsgICpNYW51YWwqIC0gWW91IHNwZWNpZnkgYSBydW50aW1lIHZlcnNpb24gaW4geW91ciBmdW5jdGlvbiBjb25maWd1cmF0aW9uLiBUaGUgZnVuY3Rpb24gd2lsbCB1c2UgdGhpcyBydW50aW1lIHZlcnNpb24gaW5kZWZpbml0ZWx5LiBJbiB0aGUgcmFyZSBjYXNlIHdoZXJlIGEgbmV3IHJ1bnRpbWUgdmVyc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCBhbiBleGlzdGluZyBmdW5jdGlvbiwgdGhpcyBhbGxvd3MgeW91IHRvIHJvbGwgYmFjayB5b3VyIGZ1bmN0aW9uIHRvIGFuIGVhcmxpZXIgcnVudGltZSB2ZXJzaW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSb2xsIGJhY2sgYSBydW50aW1lIHZlcnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLXVwZGF0ZS5odG1sI3J1bnRpbWUtbWFuYWdlbWVudC1yb2xsYmFjaykuXG4gKiAgIFxuICogICpWYWxpZCBWYWx1ZXMqOiBgYEF1dG9gYCB8IGBgRnVuY3Rpb25VcGRhdGVgYCB8IGBgTWFudWFsYGBcbiAqL1xuVXBkYXRlUnVudGltZU9uOiAoXCJBdXRvXCIgfCBcIkZ1bmN0aW9uVXBkYXRlXCIgfCBcIk1hbnVhbFwiKVxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBydW50aW1lIHZlcnNpb24geW91IHdhbnQgdGhlIGZ1bmN0aW9uIHRvIHVzZS5cbiAqICAgVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGlmIHlvdSdyZSB1c2luZyB0aGUgKk1hbnVhbCogcnVudGltZSB1cGRhdGUgbW9kZS5cbiAqL1xuUnVudGltZVZlcnNpb25Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGZ1bmN0aW9uJ3MgW1NuYXBTdGFydF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc25hcHN0YXJ0Lmh0bWwpIHNldHRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU25hcFN0YXJ0IHtcbi8qKlxuICogU2V0IGBgQXBwbHlPbmBgIHRvIGBgUHVibGlzaGVkVmVyc2lvbnNgYCB0byBjcmVhdGUgYSBzbmFwc2hvdCBvZiB0aGUgaW5pdGlhbGl6ZWQgZXhlY3V0aW9uIGVudmlyb25tZW50IHdoZW4geW91IHB1Ymxpc2ggYSBmdW5jdGlvbiB2ZXJzaW9uLlxuICovXG5BcHBseU9uOiAoXCJQdWJsaXNoZWRWZXJzaW9uc1wiIHwgXCJOb25lXCIpXG59XG4vKipcbiAqIERldGFpbHMgYWJvdXQgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiBhIExhbWJkYSBmdW5jdGlvbiBhbmQgYW4gW0FtYXpvbiBFRlMgZmlsZSBzeXN0ZW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZmlsZXN5c3RlbS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU3lzdGVtQ29uZmlnIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBBbWF6b24gRUZTIGFjY2VzcyBwb2ludCB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgZmlsZSBzeXN0ZW0uXG4gKi9cbkFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBwYXRoIHdoZXJlIHRoZSBmdW5jdGlvbiBjYW4gYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSwgc3RhcnRpbmcgd2l0aCBgYC9tbnQvYGAuXG4gKi9cbkxvY2FsTW91bnRQYXRoOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGVuYW5jeUNvbmZpZyB7XG4vKipcbiAqIERldGVybWluZXMgaG93IHlvdXIgTGFtYmRhIGZ1bmN0aW9uIGlzb2xhdGVzIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgYmV0d2VlbiB0ZW5hbnRzLlxuICovXG5UZW5hbnRJc29sYXRpb25Nb2RlOiBcIlBFUl9URU5BTlRcIlxufVxuLyoqXG4gKiBBIFt0YWddKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3RhZ2dpbmcuaHRtbCkgdG8gYXBwbHkgdG8gdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhpcyB0YWcuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgZm9yIHRoaXMgdGFnLlxuICovXG5LZXk6IHN0cmluZ1xufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHZhbHVlcyB0aGF0IG92ZXJyaWRlIHRoZSBjb250YWluZXIgaW1hZ2UgRG9ja2VyZmlsZSBzZXR0aW5ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29udGFpbmVyIGltYWdlIHNldHRpbmdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbWFnZXMtY3JlYXRlLmh0bWwjaW1hZ2VzLXBhcm1zKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUNvbmZpZyB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgd29ya2luZyBkaXJlY3RvcnkuIFRoZSBsZW5ndGggb2YgdGhlIGRpcmVjdG9yeSBzdHJpbmcgY2Fubm90IGV4Y2VlZCAxLDAwMCBjaGFyYWN0ZXJzLlxuICovXG5Xb3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyBwYXJhbWV0ZXJzIHRoYXQgeW91IHdhbnQgdG8gcGFzcyBpbiB3aXRoIEVOVFJZUE9JTlQuIFlvdSBjYW4gc3BlY2lmeSBhIG1heGltdW0gb2YgMSw1MDAgcGFyYW1ldGVycyBpbiB0aGUgbGlzdC5cbiAqIFxuICogQG1heEl0ZW1zIDE1MDBcbiAqL1xuQ29tbWFuZD86IHN0cmluZ1tdXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgZW50cnkgcG9pbnQgdG8gdGhlaXIgYXBwbGljYXRpb24sIHdoaWNoIGlzIHR5cGljYWxseSB0aGUgbG9jYXRpb24gb2YgdGhlIHJ1bnRpbWUgZXhlY3V0YWJsZS4gWW91IGNhbiBzcGVjaWZ5IGEgbWF4aW11bSBvZiAxLDUwMCBzdHJpbmcgZW50cmllcyBpbiB0aGUgbGlzdC5cbiAqIFxuICogQG1heEl0ZW1zIDE1MDBcbiAqL1xuRW50cnlQb2ludD86IHN0cmluZ1tdXG59XG4vKipcbiAqIEEgZGVhZC1sZXR0ZXIgcXVldWUgY29uZmlndXJhdGlvbiB0aGF0IHNwZWNpZmllcyB0aGUgcXVldWUgb3IgdG9waWMgd2hlcmUgTGFtYmRhIHNlbmRzIGFzeW5jaHJvbm91cyBldmVudHMgd2hlbiB0aGV5IGZhaWwgcHJvY2Vzc2luZy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbRGVhZC1sZXR0ZXIgcXVldWVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbnZvY2F0aW9uLWFzeW5jLmh0bWwjaW52b2NhdGlvbi1kbHEpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlYWRMZXR0ZXJDb25maWcge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYW4gQW1hem9uIFNRUyBxdWV1ZSBvciBBbWF6b24gU05TIHRvcGljLlxuICovXG5UYXJnZXRBcm4/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlQcm92aWRlckNvbmZpZyB7XG5MYW1iZGFNYW5hZ2VkSW5zdGFuY2VzQ2FwYWNpdHlQcm92aWRlckNvbmZpZzogTGFtYmRhTWFuYWdlZEluc3RhbmNlc0NhcGFjaXR5UHJvdmlkZXJDb25maWdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhTWFuYWdlZEluc3RhbmNlc0NhcGFjaXR5UHJvdmlkZXJDb25maWcge1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIG1lbW9yeSBpbiBHaUIgYWxsb2NhdGVkIHBlciB2Q1BVIGZvciBleGVjdXRpb24gZW52aXJvbm1lbnRzLlxuICovXG5FeGVjdXRpb25FbnZpcm9ubWVudE1lbW9yeUdpQlBlclZDcHU/OiBudW1iZXJcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuQ2FwYWNpdHlQcm92aWRlckFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgdGhhdCBjYW4gcnVuIG9uIGVhY2ggY29tcHV0ZSBpbnN0YW5jZS5cbiAqL1xuUGVyRXhlY3V0aW9uRW52aXJvbm1lbnRNYXhDb25jdXJyZW5jeT86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBTbmFwU3RhcnRSZXNwb25zZSB7XG4vKipcbiAqIFdoZW4geW91IHByb3ZpZGUgYSBbcXVhbGlmaWVkIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLXZlcnNpb25zLmh0bWwjdmVyc2lvbmluZy12ZXJzaW9ucy11c2luZyksIHRoaXMgcmVzcG9uc2UgZWxlbWVudCBpbmRpY2F0ZXMgd2hldGhlciBTbmFwU3RhcnQgaXMgYWN0aXZhdGVkIGZvciB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHZlcnNpb24uXG4gKi9cbk9wdGltaXphdGlvblN0YXR1cz86IChcIk9uXCIgfCBcIk9mZlwiKVxuLyoqXG4gKiBXaGVuIHNldCB0byBgYFB1Ymxpc2hlZFZlcnNpb25zYGAsIExhbWJkYSBjcmVhdGVzIGEgc25hcHNob3Qgb2YgdGhlIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCB3aGVuIHlvdSBwdWJsaXNoIGEgZnVuY3Rpb24gdmVyc2lvbi5cbiAqL1xuQXBwbHlPbj86IChcIlB1Ymxpc2hlZFZlcnNpb25zXCIgfCBcIk5vbmVcIilcbn1cbi8qKlxuICogVGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbi4gWW91IGNhbiBkZWZpbmUgeW91ciBmdW5jdGlvbiBjb2RlIGluIG11bHRpcGxlIHdheXM6XG4gKiAgICsgIEZvciAuemlwIGRlcGxveW1lbnQgcGFja2FnZXMsIHlvdSBjYW4gc3BlY2lmeSB0aGUgUzMgbG9jYXRpb24gb2YgdGhlIC56aXAgZmlsZSBpbiB0aGUgYGBTM0J1Y2tldGBgLCBgYFMzS2V5YGAsIGFuZCBgYFMzT2JqZWN0VmVyc2lvbmBgIHByb3BlcnRpZXMuXG4gKiAgICsgIEZvciAuemlwIGRlcGxveW1lbnQgcGFja2FnZXMsIHlvdSBjYW4gYWx0ZXJuYXRpdmVseSBkZWZpbmUgdGhlIGZ1bmN0aW9uIGNvZGUgaW5saW5lIGluIHRoZSBgYFppcEZpbGVgYCBwcm9wZXJ0eS4gVGhpcyBtZXRob2Qgd29ya3Mgb25seSBmb3IgTm9kZS5qcyBhbmQgUHl0aG9uIGZ1bmN0aW9ucy5cbiAqICAgKyAgRm9yIGNvbnRhaW5lciBpbWFnZXMsIHNwZWNpZnkgdGhlIFVSSSBvZiB5b3VyIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgRUNSIHJlZ2lzdHJ5IGluIHRoZSBgYEltYWdlVXJpYGAgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZSB7XG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEtNU2xvbmcgKEtNUykgY3VzdG9tZXIgbWFuYWdlZCBrZXkgdGhhdCdzIHVzZWQgdG8gZW5jcnlwdCB5b3VyIGZ1bmN0aW9uJ3MgLnppcCBkZXBsb3ltZW50IHBhY2thZ2UuIElmIHlvdSBkb24ndCBwcm92aWRlIGEgY3VzdG9tZXIgbWFuYWdlZCBrZXksIExhbWJkYSB1c2VzIGFuIFtvd25lZCBrZXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2NvbmNlcHRzLmh0bWwjYXdzLW93bmVkLWNtaykuXG4gKi9cblNvdXJjZUtNU0tleUFybj86IHN0cmluZ1xuLyoqXG4gKiBGb3IgdmVyc2lvbmVkIG9iamVjdHMsIHRoZSB2ZXJzaW9uIG9mIHRoZSBkZXBsb3ltZW50IHBhY2thZ2Ugb2JqZWN0IHRvIHVzZS5cbiAqL1xuUzNPYmplY3RWZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIEFuIEFtYXpvbiBTMyBidWNrZXQgaW4gdGhlIHNhbWUgQVdTLVJlZ2lvbiBhcyB5b3VyIGZ1bmN0aW9uLiBUaGUgYnVja2V0IGNhbiBiZSBpbiBhIGRpZmZlcmVudCBBV1MtYWNjb3VudC5cbiAqL1xuUzNCdWNrZXQ/OiBzdHJpbmdcbi8qKlxuICogKE5vZGUuanMgYW5kIFB5dGhvbikgVGhlIHNvdXJjZSBjb2RlIG9mIHlvdXIgTGFtYmRhIGZ1bmN0aW9uLiBJZiB5b3UgaW5jbHVkZSB5b3VyIGZ1bmN0aW9uIHNvdXJjZSBpbmxpbmUgd2l0aCB0aGlzIHBhcmFtZXRlciwgQ0ZOIHBsYWNlcyBpdCBpbiBhIGZpbGUgbmFtZWQgYGBpbmRleGBgIGFuZCB6aXBzIGl0IHRvIGNyZWF0ZSBhIFtkZXBsb3ltZW50IHBhY2thZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2dldHRpbmdzdGFydGVkLXBhY2thZ2UuaHRtbCkuIFRoaXMgemlwIGZpbGUgY2Fubm90IGV4Y2VlZCA0TUIuIEZvciB0aGUgYGBIYW5kbGVyYGAgcHJvcGVydHksIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBoYW5kbGVyIGlkZW50aWZpZXIgbXVzdCBiZSBgYGluZGV4YGAuIEZvciBleGFtcGxlLCBgYGluZGV4LmhhbmRsZXJgYC5cbiAqICAgV2hlbiB5b3Ugc3BlY2lmeSBzb3VyY2UgY29kZSBpbmxpbmUgZm9yIGEgTm9kZS5qcyBmdW5jdGlvbiwgdGhlIGBgaW5kZXhgYCBmaWxlIHRoYXQgQ0ZOIGNyZWF0ZXMgdXNlcyB0aGUgZXh0ZW5zaW9uIGBgLmpzYGAuIFRoaXMgbWVhbnMgdGhhdCBMQU0gdHJlYXRzIHRoZSBmaWxlIGFzIGEgQ29tbW9uSlMgbW9kdWxlLiBFUyBtb2R1bGVzIGFyZW4ndCBzdXBwb3J0ZWQgZm9yIGlubGluZSBmdW5jdGlvbnMuXG4gKiAgICBGb3IgSlNPTiwgeW91IG11c3QgZXNjYXBlIHF1b3RlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIHN1Y2ggYXMgbmV3bGluZSAoYGBcXG5gYCkgd2l0aCBhIGJhY2tzbGFzaC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIGZ1bmN0aW9uIHRoYXQgaW50ZXJhY3RzIHdpdGggYW4gQVdTIENsb3VkRm9ybWF0aW9uIGN1c3RvbSByZXNvdXJjZSwgeW91IGRvbid0IGhhdmUgdG8gd3JpdGUgeW91ciBvd24gZnVuY3Rpb25zIHRvIHNlbmQgcmVzcG9uc2VzIHRvIHRoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbnZva2VkIHRoZSBmdW5jdGlvbi4gQVdTIENsb3VkRm9ybWF0aW9uIHByb3ZpZGVzIGEgcmVzcG9uc2UgbW9kdWxlIChbY2ZuLXJlc3BvbnNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9jZm4tbGFtYmRhLWZ1bmN0aW9uLWNvZGUtY2ZucmVzcG9uc2Vtb2R1bGUuaHRtbCkpIHRoYXQgc2ltcGxpZmllcyBzZW5kaW5nIHJlc3BvbnNlcy4gU2VlIFtVc2luZyBMYW1iZGEgd2l0aCBDbG91ZEZvcm1hdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc2VydmljZXMtY2xvdWRmb3JtYXRpb24uaHRtbCkgZm9yIGRldGFpbHMuXG4gKi9cblppcEZpbGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBTMyBrZXkgb2YgdGhlIGRlcGxveW1lbnQgcGFja2FnZS5cbiAqL1xuUzNLZXk/OiBzdHJpbmdcbi8qKlxuICogVVJJIG9mIGEgW2NvbnRhaW5lciBpbWFnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLWltYWdlcy5odG1sKSBpbiB0aGUgQW1hem9uIEVDUiByZWdpc3RyeS5cbiAqL1xuSW1hZ2VVcmk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGZ1bmN0aW9uJ3MgQW1hem9uIENsb3VkV2F0Y2ggTG9ncyBjb25maWd1cmF0aW9uIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgZm9ybWF0IGluIHdoaWNoIExhbWJkYSBzZW5kcyB5b3VyIGZ1bmN0aW9uJ3MgYXBwbGljYXRpb24gYW5kIHN5c3RlbSBsb2dzIHRvIENsb3VkV2F0Y2guIFNlbGVjdCBiZXR3ZWVuIHBsYWluIHRleHQgYW5kIHN0cnVjdHVyZWQgSlNPTi5cbiAqL1xuTG9nRm9ybWF0PzogKFwiVGV4dFwiIHwgXCJKU09OXCIpXG4vKipcbiAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZpbHRlciB0aGUgYXBwbGljYXRpb24gbG9ncyBmb3IgeW91ciBmdW5jdGlvbiB0aGF0IExhbWJkYSBzZW5kcyB0byBDbG91ZFdhdGNoLiBMYW1iZGEgb25seSBzZW5kcyBhcHBsaWNhdGlvbiBsb2dzIGF0IHRoZSBzZWxlY3RlZCBsZXZlbCBvZiBkZXRhaWwgYW5kIGxvd2VyLCB3aGVyZSBgYFRSQUNFYGAgaXMgdGhlIGhpZ2hlc3QgbGV2ZWwgYW5kIGBgRkFUQUxgYCBpcyB0aGUgbG93ZXN0LlxuICovXG5BcHBsaWNhdGlvbkxvZ0xldmVsPzogKFwiVFJBQ0VcIiB8IFwiREVCVUdcIiB8IFwiSU5GT1wiIHwgXCJXQVJOXCIgfCBcIkVSUk9SXCIgfCBcIkZBVEFMXCIpXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24gQ2xvdWRXYXRjaCBsb2cgZ3JvdXAgdGhlIGZ1bmN0aW9uIHNlbmRzIGxvZ3MgdG8uIEJ5IGRlZmF1bHQsIExhbWJkYSBmdW5jdGlvbnMgc2VuZCBsb2dzIHRvIGEgZGVmYXVsdCBsb2cgZ3JvdXAgbmFtZWQgYGAvYXdzL2xhbWJkYS88ZnVuY3Rpb24gbmFtZT5gYC4gVG8gdXNlIGEgZGlmZmVyZW50IGxvZyBncm91cCwgZW50ZXIgYW4gZXhpc3RpbmcgbG9nIGdyb3VwIG9yIGVudGVyIGEgbmV3IGxvZyBncm91cCBuYW1lLlxuICovXG5Mb2dHcm91cD86IHN0cmluZ1xuLyoqXG4gKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBmaWx0ZXIgdGhlIHN5c3RlbSBsb2dzIGZvciB5b3VyIGZ1bmN0aW9uIHRoYXQgTGFtYmRhIHNlbmRzIHRvIENsb3VkV2F0Y2guIExhbWJkYSBvbmx5IHNlbmRzIHN5c3RlbSBsb2dzIGF0IHRoZSBzZWxlY3RlZCBsZXZlbCBvZiBkZXRhaWwgYW5kIGxvd2VyLCB3aGVyZSBgYERFQlVHYGAgaXMgdGhlIGhpZ2hlc3QgbGV2ZWwgYW5kIGBgV0FSTmBgIGlzIHRoZSBsb3dlc3QuXG4gKi9cblN5c3RlbUxvZ0xldmVsPzogKFwiREVCVUdcIiB8IFwiSU5GT1wiIHwgXCJXQVJOXCIpXG59XG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBhY2Nlc3NpYmxlIGZyb20gZnVuY3Rpb24gY29kZSBkdXJpbmcgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUga2V5LXZhbHVlIHBhaXJzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtVc2luZyBMYW1iZGEgZW52aXJvbm1lbnQgdmFyaWFibGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWVudnZhcnMuaHRtbCkuXG4gKiAgSWYgdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBhIHRpbWUgb3IgYSBkdXJhdGlvbiwgZW5jbG9zZSB0aGUgdmFsdWUgaW4gcXVvdGVzLlxuICovXG5WYXJpYWJsZXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVpdW2EtekEtWjAtOV9dK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFRoZSBzaXplIG9mIHRoZSBmdW5jdGlvbidzIGBgL3RtcGBgIGRpcmVjdG9yeSBpbiBNQi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgNTEyLCBidXQgaXQgY2FuIGJlIGFueSB3aG9sZSBudW1iZXIgYmV0d2VlbiA1MTIgYW5kIDEwLDI0MCBNQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcGhlbWVyYWxTdG9yYWdlIHtcbi8qKlxuICogVGhlIHNpemUgb2YgdGhlIGZ1bmN0aW9uJ3MgYGAvdG1wYGAgZGlyZWN0b3J5LlxuICovXG5TaXplOiBudW1iZXJcbn1cbiJdfQ==