@aws-cdk/aws-glue-alpha 2.207.0-alpha.0 → 2.209.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -451,5 +451,5 @@ class StorageParameter {
451
451
  }
452
452
  exports.StorageParameter = StorageParameter;
453
453
  _a = JSII_RTTI_SYMBOL_1;
454
- StorageParameter[_a] = { fqn: "@aws-cdk/aws-glue-alpha.StorageParameter", version: "2.207.0-alpha.0" };
454
+ StorageParameter[_a] = { fqn: "@aws-cdk/aws-glue-alpha.StorageParameter", version: "2.209.0-alpha.0" };
455
455
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdG9yYWdlLXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztHQUlHO0FBQ0gsSUFBWSxlQW9CWDtBQXBCRCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCxnQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxrQ0FBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCxnQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxvQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBcEJXLGVBQWUsK0JBQWYsZUFBZSxRQW9CMUI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkF5Qlg7QUF6QkQsV0FBWSx5QkFBeUI7SUFDbkM7O09BRUc7SUFDSCxrREFBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILDBDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILHdEQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsa0RBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCxnREFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBekJXLHlCQUF5Qix5Q0FBekIseUJBQXlCLFFBeUJwQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLDZCQW9CWDtBQXBCRCxXQUFZLDZCQUE2QjtJQUN2Qzs7T0FFRztJQUNILHNEQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsOENBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsNERBQTJCLENBQUE7SUFFM0I7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBcEJXLDZCQUE2Qiw2Q0FBN0IsNkJBQTZCLFFBb0J4QztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLDBCQXlCWDtBQXpCRCxXQUFZLDBCQUEwQjtJQUNwQzs7T0FFRztJQUNILHlEQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsbURBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCwyQ0FBYSxDQUFBO0lBRWI7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QixDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzdEO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBb0I7Ozs7Ozs7Ozs7UUFDOUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3REO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUM1QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDdkU7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBYTtRQUN2QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDeEQ7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUMxQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsWUFBc0MsR0FBVyxFQUFrQixLQUFhO1FBQTFDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBa0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtLQUFJOztBQXZIdEYsNENBd0hDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY29tcHJlc3Npb24gdHlwZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9yZWRzaGlmdC9sYXRlc3QvZGcvcl9DUkVBVEVfRVhURVJOQUxfVEFCTEUuaHRtbCNyX0NSRUFURV9FWFRFUk5BTF9UQUJMRS1wYXJhbWV0ZXJzIC0gdW5kZXIgX1wiVEFCTEUgUFJPUEVSVElFU1wiXyA+IF9cImNvbXByZXNzaW9uX3R5cGVcIl9cbiAqL1xuZXhwb3J0IGVudW0gQ29tcHJlc3Npb25UeXBlIHtcbiAgLyoqXG4gICAqIE5vIGNvbXByZXNzaW9uLlxuICAgKi9cbiAgTk9ORSA9ICdub25lJyxcblxuICAvKipcbiAgICogQnVycm93cy1XaGVlbGVyIGNvbXByZXNzaW9uLlxuICAgKi9cbiAgQlpJUDIgPSAnYnppcDInLFxuXG4gIC8qKlxuICAgKiBEZWZsYXRlIGNvbXByZXNzaW9uLlxuICAgKi9cbiAgR1pJUCA9ICdnemlwJyxcblxuICAvKipcbiAgICogQ29tcHJlc3Npb24gYWxnb3JpdGhtIGZvY3VzZWQgb24gaGlnaCBjb21wcmVzc2lvbiBhbmQgZGVjb21wcmVzc2lvbiBzcGVlZHMsIHJhdGhlciB0aGFuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGNvbXByZXNzaW9uLlxuICAgKi9cbiAgU05BUFBZID0gJ3NuYXBweScsXG59XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSB3aGVuIHF1ZXJ5IHJlc3VsdHMgY29udGFpbiBpbnZhbGlkIFVURi04IGNoYXJhY3RlciB2YWx1ZXMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcmVkc2hpZnQvbGF0ZXN0L2RnL3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLmh0bWwjcl9DUkVBVEVfRVhURVJOQUxfVEFCTEUtcGFyYW1ldGVycyAtIHVuZGVyIF9cIlRBQkxFIFBST1BFUlRJRVNcIl8gPiBfXCJpbnZhbGlkX2NoYXJfaGFuZGxpbmdcIl9cbiAqL1xuZXhwb3J0IGVudW0gSW52YWxpZENoYXJIYW5kbGluZ0FjdGlvbiB7XG4gIC8qKlxuICAgKiBEb2Vzbid0IHBlcmZvcm0gaW52YWxpZCBjaGFyYWN0ZXIgaGFuZGxpbmcuXG4gICAqL1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG5cbiAgLyoqXG4gICAqIENhbmNlbHMgcXVlcmllcyB0aGF0IHJldHVybiBkYXRhIGNvbnRhaW5pbmcgaW52YWxpZCBVVEYtOCB2YWx1ZXMuXG4gICAqL1xuICBGQUlMID0gJ0ZBSUwnLFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBpbnZhbGlkIFVURi04IHZhbHVlcyB3aXRoIG51bGwuXG4gICAqL1xuICBTRVRfVE9fTlVMTCA9ICdTRVRfVE9fTlVMTCcsXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGVhY2ggdmFsdWUgaW4gdGhlIHJvdyB3aXRoIG51bGwuXG4gICAqL1xuICBEUk9QX1JPVyA9ICdEUk9QX1JPVycsXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIHRoZSBpbnZhbGlkIGNoYXJhY3RlciB3aXRoIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgeW91IHNwZWNpZnkgdXNpbmcgYFJFUExBQ0VNRU5UX0NIQVJgLlxuICAgKi9cbiAgUkVQTEFDRSA9ICdSRVBMQUNFJyxcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGFjdGlvbiB0byBwZXJmb3JtIHdoZW4gT1JDIGRhdGEgY29udGFpbnMgYW4gaW50ZWdlciAoZm9yIGV4YW1wbGUsIEJJR0lOVCBvciBpbnQ2NCkgdGhhdCBpcyBsYXJnZXIgdGhhbiB0aGUgY29sdW1uIGRlZmluaXRpb24gKGZvciBleGFtcGxlLCBTTUFMTElOVCBvciBpbnQxNikuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcmVkc2hpZnQvbGF0ZXN0L2RnL3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLmh0bWwjcl9DUkVBVEVfRVhURVJOQUxfVEFCTEUtcGFyYW1ldGVycyAtIHVuZGVyIF9cIlRBQkxFIFBST1BFUlRJRVNcIl8gPiBfXCJudW1lcmljX292ZXJmbG93X2hhbmRsaW5nXCJfXG4gKi9cbmV4cG9ydCBlbnVtIE51bWVyaWNPdmVyZmxvd0hhbmRsaW5nQWN0aW9uIHtcbiAgLyoqXG4gICAqIEludmFsaWQgY2hhcmFjdGVyIGhhbmRsaW5nIGlzIHR1cm5lZCBvZmYuXG4gICAqL1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG5cbiAgLyoqXG4gICAqIENhbmNlbCB0aGUgcXVlcnkgd2hlbiB0aGUgZGF0YSBpbmNsdWRlcyBpbnZhbGlkIGNoYXJhY3RlcnMuXG4gICAqL1xuICBGQUlMID0gJ0ZBSUwnLFxuXG4gIC8qKlxuICAgKiBTZXQgaW52YWxpZCBjaGFyYWN0ZXJzIHRvIG51bGwuXG4gICAqL1xuICBTRVRfVE9fTlVMTCA9ICdTRVRfVE9fTlVMTCcsXG5cbiAgLyoqXG4gICAqIFNldCBlYWNoIHZhbHVlIGluIHRoZSByb3cgdG8gbnVsbC5cbiAgICovXG4gIERST1BfUk9XID0gJ0RST1BfUk9XJyxcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgaG93IHRvIGhhbmRsZSBkYXRhIGJlaW5nIGxvYWRlZCB0aGF0IGV4Y2VlZHMgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSB0eXBlIGRlZmluZWQgZm9yIGNvbHVtbnMgY29udGFpbmluZyBWQVJCWVRFIGRhdGEuIEJ5IGRlZmF1bHQsIFJlZHNoaWZ0IFNwZWN0cnVtIHNldHMgdGhlIHZhbHVlIHRvIG51bGwgZm9yIGRhdGEgdGhhdCBleGNlZWRzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JlZHNoaWZ0L2xhdGVzdC9kZy9yX0NSRUFURV9FWFRFUk5BTF9UQUJMRS5odG1sI3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLXBhcmFtZXRlcnMgLSB1bmRlciBfXCJUQUJMRSBQUk9QRVJUSUVTXCJfID4gX1wic3VycGx1c19ieXRlc19oYW5kbGluZ1wiX1xuICovXG5leHBvcnQgZW51bSBTdXJwbHVzQnl0ZXNIYW5kbGluZ0FjdGlvbiB7XG4gIC8qKlxuICAgKiBSZXBsYWNlcyBkYXRhIHRoYXQgZXhjZWVkcyB0aGUgY29sdW1uIHdpZHRoIHdpdGggbnVsbC5cbiAgICovXG4gIFNFVF9UT19OVUxMID0gJ1NFVF9UT19OVUxMJyxcblxuICAvKipcbiAgICogRG9lc24ndCBwZXJmb3JtIHN1cnBsdXMgYnl0ZSBoYW5kbGluZy5cbiAgICovXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcblxuICAvKipcbiAgICogQ2FuY2VscyBxdWVyaWVzIHRoYXQgcmV0dXJuIGRhdGEgZXhjZWVkaW5nIHRoZSBjb2x1bW4gd2lkdGguXG4gICAqL1xuICBGQUlMID0gJ0ZBSUwnLFxuXG4gIC8qKlxuICAgKiBEcm9wIGFsbCByb3dzIHRoYXQgY29udGFpbiBkYXRhIGV4Y2VlZGluZyBjb2x1bW4gd2lkdGguXG4gICAqL1xuICBEUk9QX1JPVyA9ICdEUk9QX1JPVycsXG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGNoYXJhY3RlcnMgdGhhdCBleGNlZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgZGVmaW5lZCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIFRSVU5DQVRFID0gJ1RSVU5DQVRFJyxcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgaG93IHRvIGhhbmRsZSBkYXRhIGJlaW5nIGxvYWRlZCB0aGF0IGV4Y2VlZHMgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSB0eXBlIGRlZmluZWQgZm9yIGNvbHVtbnMgY29udGFpbmluZyBWQVJDSEFSLCBDSEFSLCBvciBzdHJpbmcgZGF0YS4gQnkgZGVmYXVsdCwgUmVkc2hpZnQgU3BlY3RydW0gc2V0cyB0aGUgdmFsdWUgdG8gbnVsbCBmb3IgZGF0YSB0aGF0IGV4Y2VlZHMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcmVkc2hpZnQvbGF0ZXN0L2RnL3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLmh0bWwjcl9DUkVBVEVfRVhURVJOQUxfVEFCTEUtcGFyYW1ldGVycyAtIHVuZGVyIF9cIlRBQkxFIFBST1BFUlRJRVNcIl8gPiBfXCJzdXJwbHVzX2NoYXJfaGFuZGxpbmdcIl9cbiAqL1xuZXhwb3J0IGVudW0gU3VycGx1c0NoYXJIYW5kbGluZ0FjdGlvbiB7XG4gIC8qKlxuICAgKiBSZXBsYWNlcyBkYXRhIHRoYXQgZXhjZWVkcyB0aGUgY29sdW1uIHdpZHRoIHdpdGggbnVsbC5cbiAgICovXG4gIFNFVF9UT19OVUxMID0gJ1NFVF9UT19OVUxMJyxcblxuICAvKipcbiAgICogRG9lc24ndCBwZXJmb3JtIHN1cnBsdXMgY2hhcmFjdGVyIGhhbmRsaW5nLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHF1ZXJpZXMgdGhhdCByZXR1cm4gZGF0YSBleGNlZWRpbmcgdGhlIGNvbHVtbiB3aWR0aC5cbiAgICovXG4gIEZBSUwgPSAnRkFJTCcsXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGVhY2ggdmFsdWUgaW4gdGhlIHJvdyB3aXRoIG51bGwuXG4gICAqL1xuICBEUk9QX1JPVyA9ICdEUk9QX1JPVycsXG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGNoYXJhY3RlcnMgdGhhdCBleGNlZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgZGVmaW5lZCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIFRSVU5DQVRFID0gJ1RSVU5DQVRFJyxcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVzIGlmIHRoZSBmaWxlIGNvbnRhaW5zIGxlc3Mgb3IgbW9yZSB2YWx1ZXMgZm9yIGEgcm93IHRoYW4gdGhlIG51bWJlciBvZiBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGUgZXh0ZXJuYWwgdGFibGUgZGVmaW5pdGlvbi4gVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYW4gdW5jb21wcmVzc2VkIHRleHQgZmlsZSBmb3JtYXQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcmVkc2hpZnQvbGF0ZXN0L2RnL3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLmh0bWwjcl9DUkVBVEVfRVhURVJOQUxfVEFCTEUtcGFyYW1ldGVycyAtIHVuZGVyIF9cIlRBQkxFIFBST1BFUlRJRVNcIl8gPiBfXCJjb2x1bW5fY291bnRfbWlzbWF0Y2hfaGFuZGxpbmdcIl9cbiAqL1xuZXhwb3J0IGVudW0gQ29sdW1uQ291bnRNaXNtYXRjaEhhbmRsaW5nQWN0aW9uIHtcbiAgLyoqXG4gICAqIENvbHVtbiBjb3VudCBtaXNtYXRjaCBoYW5kbGluZyBpcyB0dXJuZWQgb2ZmLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuXG4gIC8qKlxuICAgKiBGYWlsIHRoZSBxdWVyeSBpZiB0aGUgY29sdW1uIGNvdW50IG1pc21hdGNoIGlzIGRldGVjdGVkLlxuICAgKi9cbiAgRkFJTCA9ICdGQUlMJyxcblxuICAvKipcbiAgICogRmlsbCBtaXNzaW5nIHZhbHVlcyB3aXRoIE5VTEwgYW5kIGlnbm9yZSB0aGUgYWRkaXRpb25hbCB2YWx1ZXMgaW4gZWFjaCByb3cuXG4gICAqL1xuICBTRVRfVE9fTlVMTCA9ICdTRVRfVE9fTlVMTCcsXG5cbiAgLyoqXG4gICAqIERyb3AgYWxsIHJvd3MgdGhhdCBjb250YWluIGNvbHVtbiBjb3VudCBtaXNtYXRjaCBlcnJvciBmcm9tIHRoZSBzY2FuLlxuICAgKi9cbiAgRFJPUF9ST1cgPSAnRFJPUF9ST1cnLFxufVxuXG4vKipcbiAqIFNwZWNpZmllcyBob3cgdG8gaGFuZGxlIGRhdGEgYmVpbmcgbG9hZGVkIHRoYXQgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIHR5cGUgZGVmaW5lZCBmb3IgY29sdW1ucyBjb250YWluaW5nIFZBUkNIQVIsIENIQVIsIG9yIHN0cmluZyBkYXRhLiBCeSBkZWZhdWx0LCBSZWRzaGlmdCBTcGVjdHJ1bSBzZXRzIHRoZSB2YWx1ZSB0byBudWxsIGZvciBkYXRhIHRoYXQgZXhjZWVkcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9yZWRzaGlmdC9sYXRlc3QvZGcvcl9DUkVBVEVfRVhURVJOQUxfVEFCTEUuaHRtbCNyX0NSRUFURV9FWFRFUk5BTF9UQUJMRS1wYXJhbWV0ZXJzIC0gdW5kZXIgX1wiVEFCTEUgUFJPUEVSVElFU1wiXyA+IF9cInN1cnBsdXNfY2hhcl9oYW5kbGluZ1wiX1xuICovXG5leHBvcnQgZW51bSBXcml0ZVBhcmFsbGVsIHtcbiAgLyoqXG4gICAqIFdyaXRlIGRhdGEgaW4gcGFyYWxsZWwuXG4gICAqL1xuICBPTiA9ICdvbicsXG5cbiAgLyoqXG4gICAqIFdyaXRlIGRhdGEgc2VyaWFsbHkuXG4gICAqL1xuICBPRkYgPSAnb2ZmJyxcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgaG93IHRvIG1hcCBjb2x1bW5zIHdoZW4gdGhlIHRhYmxlIHVzZXMgT1JDIGRhdGEgZm9ybWF0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JlZHNoaWZ0L2xhdGVzdC9kZy9yX0NSRUFURV9FWFRFUk5BTF9UQUJMRS5odG1sI3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLXBhcmFtZXRlcnMgLSB1bmRlciBfXCJUQUJMRSBQUk9QRVJUSUVTXCJfID4gX1wib3JjLnNjaGVtYS5yZXNvbHV0aW9uXCJfXG4gKi9cbmV4cG9ydCBlbnVtIE9yY0NvbHVtbk1hcHBpbmdUeXBlIHtcbiAgLyoqXG4gICAqIE1hcCBjb2x1bW5zIGJ5IG5hbWUuXG4gICAqL1xuICBOQU1FID0gJ25hbWUnLFxuXG4gIC8qKlxuICAgKiBNYXAgY29sdW1ucyBieSBwb3NpdGlvbi5cbiAgICovXG4gIFBPU0lUSU9OID0gJ3Bvc2l0aW9uJyxcbn1cblxuLyoqXG4gKiBUaGUgc3RvcmFnZSBwYXJhbWV0ZXIga2V5cyB0aGF0IGFyZSBjdXJyZW50bHkga25vd24sIHRoaXMgbGlzdCBpcyBub3QgZXhoYXVzdGl2ZSBhbmQgb3RoZXIga2V5cyBtYXkgYmUgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gU3RvcmFnZVBhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByb3dzIHRvIHNraXAgYXQgdGhlIHRvcCBvZiBhIENTViBmaWxlIHdoZW4gdGhlIHRhYmxlIGlzIGJlaW5nIGNyZWF0ZWQuXG4gICAqL1xuICBTS0lQX0hFQURFUl9MSU5FX0NPVU5UID0gJ3NraXAuaGVhZGVyLmxpbmUuY291bnQnLFxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgZGF0YSBoYW5kbGluZyBpcyBvbiBmb3IgdGhlIHRhYmxlLlxuICAgKi9cbiAgREFUQV9DTEVBTlNJTkdfRU5BQkxFRCA9ICdkYXRhX2NsZWFuc2luZ19lbmFibGVkJyxcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgY29tcHJlc3Npb24gdXNlZCBvbiB0aGUgdGFibGUsIHdoZW4gdGhlIGZpbGUgbmFtZSBkb2VzIG5vdCBjb250YWluIGFuIGV4dGVuc2lvbi4gVGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIGNvbXByZXNzaW9uIHR5cGUgc3BlY2lmaWVkIHRocm91Z2ggdGhlIGV4dGVuc2lvbi5cbiAgICovXG4gIENPTVBSRVNTSU9OX1RZUEUgPSAnY29tcHJlc3Npb25fdHlwZScsXG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBxdWVyeSByZXN1bHRzIGNvbnRhaW4gaW52YWxpZCBVVEYtOCBjaGFyYWN0ZXIgdmFsdWVzLlxuICAgKi9cbiAgSU5WQUxJRF9DSEFSX0hBTkRMSU5HID0gJ2ludmFsaWRfY2hhcl9oYW5kbGluZycsXG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIHRvIHVzZSB3aGVuIHlvdSBzZXQgYElOVkFMSURfQ0hBUl9IQU5ETElOR2AgdG8gYFJFUExBQ0VgLlxuICAgKi9cbiAgUkVQTEFDRU1FTlRfQ0hBUiA9ICdyZXBsYWNlbWVudF9jaGFyJyxcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSB3aGVuIE9SQyBkYXRhIGNvbnRhaW5zIGFuIGludGVnZXIgKGZvciBleGFtcGxlLCBCSUdJTlQgb3IgaW50NjQpIHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIGNvbHVtbiBkZWZpbml0aW9uIChmb3IgZXhhbXBsZSwgU01BTExJTlQgb3IgaW50MTYpLlxuICAgKi9cbiAgTlVNRVJJQ19PVkVSRkxPV19IQU5ETElORyA9ICdudW1lcmljX292ZXJmbG93X2hhbmRsaW5nJyxcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyB0byBoYW5kbGUgZGF0YSBiZWluZyBsb2FkZWQgdGhhdCBleGNlZWRzIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgdHlwZSBkZWZpbmVkIGZvciBjb2x1bW5zIGNvbnRhaW5pbmcgVkFSQllURSBkYXRhLiBCeSBkZWZhdWx0LCBSZWRzaGlmdCBTcGVjdHJ1bSBzZXRzIHRoZSB2YWx1ZSB0byBudWxsIGZvciBkYXRhIHRoYXQgZXhjZWVkcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbi5cbiAgICovXG4gIFNVUlBMVVNfQllURVNfSEFORExJTkcgPSAnc3VycGx1c19ieXRlc19oYW5kbGluZycsXG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdG8gaGFuZGxlIGRhdGEgYmVpbmcgbG9hZGVkIHRoYXQgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIHR5cGUgZGVmaW5lZCBmb3IgY29sdW1ucyBjb250YWluaW5nIFZBUkNIQVIsIENIQVIsIG9yIHN0cmluZyBkYXRhLiBCeSBkZWZhdWx0LCBSZWRzaGlmdCBTcGVjdHJ1bSBzZXRzIHRoZSB2YWx1ZSB0byBudWxsIGZvciBkYXRhIHRoYXQgZXhjZWVkcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbi5cbiAgICovXG4gIFNVUlBMVVNfQ0hBUl9IQU5ETElORyA9ICdzdXJwbHVzX2NoYXJfaGFuZGxpbmcnLFxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGlmIHRoZSBmaWxlIGNvbnRhaW5zIGxlc3Mgb3IgbW9yZSB2YWx1ZXMgZm9yIGEgcm93IHRoYW4gdGhlIG51bWJlciBvZiBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGUgZXh0ZXJuYWwgdGFibGUgZGVmaW5pdGlvbi4gVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYW4gdW5jb21wcmVzc2VkIHRleHQgZmlsZSBmb3JtYXQuXG4gICAqL1xuICBDT0xVTU5fQ09VTlRfTUlTTUFUQ0hfSEFORExJTkcgPSAnY29sdW1uX2NvdW50X21pc21hdGNoX2hhbmRsaW5nJyxcblxuICAvKipcbiAgICogQSBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIG51bVJvd3MgdmFsdWUgZm9yIHRoZSB0YWJsZSBkZWZpbml0aW9uLiBUbyBleHBsaWNpdGx5IHVwZGF0ZSBhbiBleHRlcm5hbCB0YWJsZSdzIHN0YXRpc3RpY3MsIHNldCB0aGUgbnVtUm93cyBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGUgc2l6ZSBvZiB0aGUgdGFibGUuIEFtYXpvbiBSZWRzaGlmdCBkb2Vzbid0IGFuYWx5emUgZXh0ZXJuYWwgdGFibGVzIHRvIGdlbmVyYXRlIHRoZSB0YWJsZSBzdGF0aXN0aWNzIHRoYXQgdGhlIHF1ZXJ5IG9wdGltaXplciB1c2VzIHRvIGdlbmVyYXRlIGEgcXVlcnkgcGxhbi4gSWYgdGFibGUgc3RhdGlzdGljcyBhcmVuJ3Qgc2V0IGZvciBhbiBleHRlcm5hbCB0YWJsZSwgQW1hem9uIFJlZHNoaWZ0IGdlbmVyYXRlcyBhIHF1ZXJ5IGV4ZWN1dGlvbiBwbGFuIGJhc2VkIG9uIGFuIGFzc3VtcHRpb24gdGhhdCBleHRlcm5hbCB0YWJsZXMgYXJlIHRoZSBsYXJnZXIgdGFibGVzIGFuZCBsb2NhbCB0YWJsZXMgYXJlIHRoZSBzbWFsbGVyIHRhYmxlcy5cbiAgICovXG4gIE5VTV9ST1dTID0gJ251bV9yb3dzJyxcblxuICAvKipcbiAgICogQSBwcm9wZXJ0eSB0aGF0IHNldHMgbnVtYmVyIG9mIHJvd3MgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggc291cmNlIGZpbGUuXG4gICAqL1xuICBTRVJJQUxJWkFUSU9OX05VTExfRk9STUFUID0gJ3NlcmlhbGl6YXRpb24ubnVsbC5mb3JtYXQnLFxuXG4gIC8qKlxuICAgKiBBIHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgY29sdW1uIG1hcHBpbmcgdHlwZSBmb3IgdGFibGVzIHRoYXQgdXNlIE9SQyBkYXRhIGZvcm1hdC4gVGhpcyBwcm9wZXJ0eSBpcyBpZ25vcmVkIGZvciBvdGhlciBkYXRhIGZvcm1hdHMuXG4gICAqL1xuICBPUkNfU0NIRU1BX1JFU09MVVRJT04gPSAnb3JjLnNjaGVtYS5yZXNvbHV0aW9uJyxcblxuICAvKipcbiAgICogQSBwcm9wZXJ0eSB0aGF0IHNldHMgd2hldGhlciBDUkVBVEUgRVhURVJOQUwgVEFCTEUgQVMgc2hvdWxkIHdyaXRlIGRhdGEgaW4gcGFyYWxsZWwuIFdoZW4gJ3dyaXRlLnBhcmFsbGVsJyBpcyBzZXQgdG8gb2ZmLCBDUkVBVEUgRVhURVJOQUwgVEFCTEUgQVMgd3JpdGVzIHRvIG9uZSBvciBtb3JlIGRhdGEgZmlsZXMgc2VyaWFsbHkgb250byBBbWF6b24gUzMuIFRoaXMgdGFibGUgcHJvcGVydHkgYWxzbyBhcHBsaWVzIHRvIGFueSBzdWJzZXF1ZW50IElOU0VSVCBzdGF0ZW1lbnQgaW50byB0aGUgc2FtZSBleHRlcm5hbCB0YWJsZS5cbiAgICovXG4gIFdSSVRFX1BBUkFMTEVMID0gJ3dyaXRlLnBhcmFsbGVsJyxcblxuICAvKipcbiAgICogQSBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIG1heGltdW0gc2l6ZSAoaW4gTUIpIG9mIGVhY2ggZmlsZSB3cml0dGVuIHRvIEFtYXpvbiBTMyBieSBDUkVBVEUgRVhURVJOQUwgVEFCTEUgQVMuIFRoZSBzaXplIG11c3QgYmUgYSB2YWxpZCBpbnRlZ2VyIGJldHdlZW4gNSBhbmQgNjIwMC4gVGhlIGRlZmF1bHQgbWF4aW11bSBmaWxlIHNpemUgaXMgNiwyMDAgTUIuIFRoaXMgdGFibGUgcHJvcGVydHkgYWxzbyBhcHBsaWVzIHRvIGFueSBzdWJzZXF1ZW50IElOU0VSVCBzdGF0ZW1lbnQgaW50byB0aGUgc2FtZSBleHRlcm5hbCB0YWJsZS5cbiAgICovXG4gIFdSSVRFX01BWF9GSUxFU0laRV9NQiA9ICd3cml0ZS5tYXhmaWxlc2l6ZS5tYicsXG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBhbiBBV1MgS2V5IE1hbmFnZW1lbnQgU2VydmljZSBrZXkgdG8gZW5hYmxlIFNlcnZlcuKAk1NpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgQW1hem9uIFMzIG9iamVjdHMuXG4gICAqL1xuICBXUklURV9LTVNfS0VZX0lEID0gJ3dyaXRlLmttcy5rZXkuaWQnLFxufVxuXG4vKipcbiAqIEEgc3RvcmFnZSBwYXJhbWV0ZXIuIFRoZSBsaXN0IG9mIHN0b3JhZ2UgcGFyYW1ldGVycyBhdmFpbGFibGUgaXMgbm90IGV4aGF1c3RpdmUgYW5kIG90aGVyIGtleXMgbWF5IGJlIHVzZWQuXG4gKlxuICogSWYgeW91IHdvdWxkIGxpa2UgdG8gc3BlY2lmeSBhIHN0b3JhZ2UgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhcyBhIHN0YXRpYyBtZW1iZXIgb2YgdGhpcyBjbGFzcywgdXNlIHRoZSBgU3RvcmFnZVBhcmFtZXRlci5jdXN0b21gIG1ldGhvZC5cbiAqXG4gKiBUaGUgbGlzdCBvZiBzdG9yYWdlIHBhcmFtZXRlcnMgY3VycmVudGx5IGtub3duIHdpdGhpbiB0aGUgQ0RLIGlzIGxpc3RlZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy90YWJsZS1wcm9wZXJ0aWVzLWNyYXdsZXIuaHRtbFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JlZHNoaWZ0L2xhdGVzdC9kZy9yX0NSRUFURV9FWFRFUk5BTF9UQUJMRS5odG1sI3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLXBhcmFtZXRlcnMgLSB1bmRlciBfXCJUQUJMRSBQUk9QRVJUSUVTXCJfXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yYWdlUGFyYW1ldGVyIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygcm93cyB0byBza2lwIGF0IHRoZSB0b3Agb2YgYSBDU1YgZmlsZSB3aGVuIHRoZSB0YWJsZSBpcyBiZWluZyBjcmVhdGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBza2lwSGVhZGVyTGluZUNvdW50KHZhbHVlOiBudW1iZXIpOiBTdG9yYWdlUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IFN0b3JhZ2VQYXJhbWV0ZXIoJ3NraXAuaGVhZGVyLmxpbmUuY291bnQnLCB2YWx1ZS50b1N0cmluZygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgZGF0YSBoYW5kbGluZyBpcyBvbiBmb3IgdGhlIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkYXRhQ2xlYW5zaW5nRW5hYmxlZCh2YWx1ZTogYm9vbGVhbik6IFN0b3JhZ2VQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgU3RvcmFnZVBhcmFtZXRlcignZGF0YV9jbGVhbnNpbmdfZW5hYmxlZCcsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGNvbXByZXNzaW9uIHVzZWQgb24gdGhlIHRhYmxlLCB3aGVuIHRoZSBmaWxlIG5hbWUgZG9lcyBub3QgY29udGFpbiBhbiBleHRlbnNpb24uIFRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSBjb21wcmVzc2lvbiB0eXBlIHNwZWNpZmllZCB0aHJvdWdoIHRoZSBleHRlbnNpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbXByZXNzaW9uVHlwZSh2YWx1ZTogQ29tcHJlc3Npb25UeXBlKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdjb21wcmVzc2lvbl90eXBlJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBxdWVyeSByZXN1bHRzIGNvbnRhaW4gaW52YWxpZCBVVEYtOCBjaGFyYWN0ZXIgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkQ2hhckhhbmRsaW5nKHZhbHVlOiBJbnZhbGlkQ2hhckhhbmRsaW5nQWN0aW9uKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdpbnZhbGlkX2NoYXJfaGFuZGxpbmcnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgdG8gdXNlIHdoZW4geW91IHNldCBgSU5WQUxJRF9DSEFSX0hBTkRMSU5HYCB0byBgUkVQTEFDRWAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlcGxhY2VtZW50Q2hhcih2YWx1ZTogc3RyaW5nKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdyZXBsYWNlbWVudF9jaGFyJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBPUkMgZGF0YSBjb250YWlucyBhbiBpbnRlZ2VyIChmb3IgZXhhbXBsZSwgQklHSU5UIG9yIGludDY0KSB0aGF0IGlzIGxhcmdlciB0aGFuIHRoZSBjb2x1bW4gZGVmaW5pdGlvbiAoZm9yIGV4YW1wbGUsIFNNQUxMSU5UIG9yIGludDE2KS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbnVtZXJpY092ZXJmbG93SGFuZGxpbmcodmFsdWU6IE51bWVyaWNPdmVyZmxvd0hhbmRsaW5nQWN0aW9uKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdudW1lcmljX292ZXJmbG93X2hhbmRsaW5nJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdG8gaGFuZGxlIGRhdGEgYmVpbmcgbG9hZGVkIHRoYXQgZXhjZWVkcyB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIHR5cGUgZGVmaW5lZCBmb3IgY29sdW1ucyBjb250YWluaW5nIFZBUkJZVEUgZGF0YS4gQnkgZGVmYXVsdCwgUmVkc2hpZnQgU3BlY3RydW0gc2V0cyB0aGUgdmFsdWUgdG8gbnVsbCBmb3IgZGF0YSB0aGF0IGV4Y2VlZHMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1cnBsdXNCeXRlc0hhbmRsaW5nKHZhbHVlOiBTdXJwbHVzQnl0ZXNIYW5kbGluZ0FjdGlvbik6IFN0b3JhZ2VQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgU3RvcmFnZVBhcmFtZXRlcignc3VycGx1c19ieXRlc19oYW5kbGluZycsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaG93IHRvIGhhbmRsZSBkYXRhIGJlaW5nIGxvYWRlZCB0aGF0IGV4Y2VlZHMgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSB0eXBlIGRlZmluZWQgZm9yIGNvbHVtbnMgY29udGFpbmluZyBWQVJDSEFSLCBDSEFSLCBvciBzdHJpbmcgZGF0YS4gQnkgZGVmYXVsdCwgUmVkc2hpZnQgU3BlY3RydW0gc2V0cyB0aGUgdmFsdWUgdG8gbnVsbCBmb3IgZGF0YSB0aGF0IGV4Y2VlZHMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1cnBsdXNDaGFySGFuZGxpbmcodmFsdWU6IFN1cnBsdXNDaGFySGFuZGxpbmdBY3Rpb24pOiBTdG9yYWdlUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IFN0b3JhZ2VQYXJhbWV0ZXIoJ3N1cnBsdXNfY2hhcl9oYW5kbGluZycsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGlmIHRoZSBmaWxlIGNvbnRhaW5zIGxlc3Mgb3IgbW9yZSB2YWx1ZXMgZm9yIGEgcm93IHRoYW4gdGhlIG51bWJlciBvZiBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGUgZXh0ZXJuYWwgdGFibGUgZGVmaW5pdGlvbi4gVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYW4gdW5jb21wcmVzc2VkIHRleHQgZmlsZSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbHVtbkNvdW50TWlzbWF0Y2hIYW5kbGluZyh2YWx1ZTogQ29sdW1uQ291bnRNaXNtYXRjaEhhbmRsaW5nQWN0aW9uKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdjb2x1bW5fY291bnRfbWlzbWF0Y2hfaGFuZGxpbmcnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQSBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIG51bVJvd3MgdmFsdWUgZm9yIHRoZSB0YWJsZSBkZWZpbml0aW9uLiBUbyBleHBsaWNpdGx5IHVwZGF0ZSBhbiBleHRlcm5hbCB0YWJsZSdzIHN0YXRpc3RpY3MsIHNldCB0aGUgbnVtUm93cyBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGUgc2l6ZSBvZiB0aGUgdGFibGUuIEFtYXpvbiBSZWRzaGlmdCBkb2Vzbid0IGFuYWx5emUgZXh0ZXJuYWwgdGFibGVzIHRvIGdlbmVyYXRlIHRoZSB0YWJsZSBzdGF0aXN0aWNzIHRoYXQgdGhlIHF1ZXJ5IG9wdGltaXplciB1c2VzIHRvIGdlbmVyYXRlIGEgcXVlcnkgcGxhbi4gSWYgdGFibGUgc3RhdGlzdGljcyBhcmVuJ3Qgc2V0IGZvciBhbiBleHRlcm5hbCB0YWJsZSwgQW1hem9uIFJlZHNoaWZ0IGdlbmVyYXRlcyBhIHF1ZXJ5IGV4ZWN1dGlvbiBwbGFuIGJhc2VkIG9uIGFuIGFzc3VtcHRpb24gdGhhdCBleHRlcm5hbCB0YWJsZXMgYXJlIHRoZSBsYXJnZXIgdGFibGVzIGFuZCBsb2NhbCB0YWJsZXMgYXJlIHRoZSBzbWFsbGVyIHRhYmxlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbnVtUm93cyh2YWx1ZTogbnVtYmVyKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdudW1fcm93cycsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgcHJvcGVydHkgdGhhdCBzZXRzIG51bWJlciBvZiByb3dzIHRvIHNraXAgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHNvdXJjZSBmaWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemF0aW9uTnVsbEZvcm1hdCh2YWx1ZTogc3RyaW5nKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCdzZXJpYWxpemF0aW9uLm51bGwuZm9ybWF0JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSBjb2x1bW4gbWFwcGluZyB0eXBlIGZvciB0YWJsZXMgdGhhdCB1c2UgT1JDIGRhdGEgZm9ybWF0LiBUaGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgZm9yIG90aGVyIGRhdGEgZm9ybWF0cy4gSWYgdGhpcyBwcm9wZXJ0eSBpcyBvbWl0dGVkLCBjb2x1bW5zIGFyZSBtYXBwZWQgYnkgYE9yY0NvbHVtbk1hcHBpbmdUeXBlLk5BTUVgIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IE9yY0NvbHVtbk1hcHBpbmdUeXBlLk5BTUVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb3JjU2NoZW1hUmVzb2x1dGlvbih2YWx1ZTogT3JjQ29sdW1uTWFwcGluZ1R5cGUpOiBTdG9yYWdlUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IFN0b3JhZ2VQYXJhbWV0ZXIoJ29yYy5zY2hlbWEucmVzb2x1dGlvbicsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHByb3BlcnR5IHRoYXQgc2V0cyB3aGV0aGVyIENSRUFURSBFWFRFUk5BTCBUQUJMRSBBUyBzaG91bGQgd3JpdGUgZGF0YSBpbiBwYXJhbGxlbC4gV2hlbiAnd3JpdGUucGFyYWxsZWwnIGlzIHNldCB0byBvZmYsIENSRUFURSBFWFRFUk5BTCBUQUJMRSBBUyB3cml0ZXMgdG8gb25lIG9yIG1vcmUgZGF0YSBmaWxlcyBzZXJpYWxseSBvbnRvIEFtYXpvbiBTMy4gVGhpcyB0YWJsZSBwcm9wZXJ0eSBhbHNvIGFwcGxpZXMgdG8gYW55IHN1YnNlcXVlbnQgSU5TRVJUIHN0YXRlbWVudCBpbnRvIHRoZSBzYW1lIGV4dGVybmFsIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBXcml0ZVBhcmFsbGVsLk9OXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdyaXRlUGFyYWxsZWwodmFsdWU6IFdyaXRlUGFyYWxsZWwpOiBTdG9yYWdlUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IFN0b3JhZ2VQYXJhbWV0ZXIoJ3dyaXRlLnBhcmFsbGVsJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSBtYXhpbXVtIHNpemUgKGluIE1CKSBvZiBlYWNoIGZpbGUgd3JpdHRlbiB0byBBbWF6b24gUzMgYnkgQ1JFQVRFIEVYVEVSTkFMIFRBQkxFIEFTLiBUaGUgc2l6ZSBtdXN0IGJlIGEgdmFsaWQgaW50ZWdlciBiZXR3ZWVuIDUgYW5kIDYyMDAuIFRoZSBkZWZhdWx0IG1heGltdW0gZmlsZSBzaXplIGlzIDYsMjAwIE1CLiBUaGlzIHRhYmxlIHByb3BlcnR5IGFsc28gYXBwbGllcyB0byBhbnkgc3Vic2VxdWVudCBJTlNFUlQgc3RhdGVtZW50IGludG8gdGhlIHNhbWUgZXh0ZXJuYWwgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdyaXRlTWF4RmlsZVNpemVNYih2YWx1ZTogbnVtYmVyKTogU3RvcmFnZVBhcmFtZXRlciB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlUGFyYW1ldGVyKCd3cml0ZS5tYXhmaWxlc2l6ZS5tYicsIHZhbHVlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBhbiBBV1MgS2V5IE1hbmFnZW1lbnQgU2VydmljZSBrZXkgdG8gZW5hYmxlIFNlcnZlcuKAk1NpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgQW1hem9uIFMzIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdyaXRlS21zS2V5SWQodmFsdWU6IHN0cmluZyk6IFN0b3JhZ2VQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgU3RvcmFnZVBhcmFtZXRlcignd3JpdGUua21zLmtleS5pZCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBzdG9yYWdlIHBhcmFtZXRlci5cbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgb2YgdGhlIHN0b3JhZ2UgcGFyYW1ldGVyLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIHN0b3JhZ2UgcGFyYW1ldGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b20oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBTdG9yYWdlUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IFN0b3JhZ2VQYXJhbWV0ZXIoa2V5LCB2YWx1ZS50b1N0cmluZygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkga2V5OiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7fVxufVxuIl19
package/lib/table-base.js CHANGED
@@ -94,7 +94,7 @@ class TableBase extends core_1.Resource {
94
94
  }
95
95
  const numPartitions = this.partitionIndexCustomResources.length;
96
96
  if (numPartitions >= 3) {
97
- throw new Error('Maximum number of partition indexes allowed is 3');
97
+ throw new core_1.ValidationError('Maximum number of partition indexes allowed is 3', this);
98
98
  }
99
99
  this.validatePartitionIndex(index);
100
100
  const indexName = index.indexName ?? this.generateIndexName(index.keyNames);
@@ -134,14 +134,14 @@ class TableBase extends core_1.Resource {
134
134
  }
135
135
  validatePartitionIndex(index) {
136
136
  if (index.indexName !== undefined && (index.indexName.length < 1 || index.indexName.length > 255)) {
137
- throw new Error(`Index name must be between 1 and 255 characters, but got ${index.indexName.length}`);
137
+ throw new core_1.ValidationError(`Index name must be between 1 and 255 characters, but got ${index.indexName.length}`, this);
138
138
  }
139
139
  if (!this.partitionKeys || this.partitionKeys.length === 0) {
140
- throw new Error('The table must have partition keys to create a partition index');
140
+ throw new core_1.ValidationError('The table must have partition keys to create a partition index', this);
141
141
  }
142
142
  const keyNames = this.partitionKeys.map(pk => pk.name);
143
143
  if (!index.keyNames.every(k => keyNames.includes(k))) {
144
- throw new Error(`All index keys must also be partition keys. Got ${index.keyNames} but partition key names are ${keyNames}`);
144
+ throw new core_1.ValidationError(`All index keys must also be partition keys. Got ${index.keyNames} but partition key names are ${keyNames}`, this);
145
145
  }
146
146
  }
147
147
  /**
@@ -172,18 +172,18 @@ class TableBase extends core_1.Resource {
172
172
  }
173
173
  exports.TableBase = TableBase;
174
174
  _a = JSII_RTTI_SYMBOL_1;
175
- TableBase[_a] = { fqn: "@aws-cdk/aws-glue-alpha.TableBase", version: "2.207.0-alpha.0" };
175
+ TableBase[_a] = { fqn: "@aws-cdk/aws-glue-alpha.TableBase", version: "2.209.0-alpha.0" };
176
176
  function validateSchema(columns, partitionKeys) {
177
177
  if (columns.length === 0) {
178
- throw new Error('you must specify at least one column for the table');
178
+ throw new core_1.UnscopedValidationError('you must specify at least one column for the table');
179
179
  }
180
180
  // Check there is at least one column and no duplicated column names or partition keys.
181
181
  const names = new Set();
182
182
  (columns.concat(partitionKeys || [])).forEach(column => {
183
183
  if (names.has(column.name)) {
184
- throw new Error(`column names and partition keys must be unique, but \'${column.name}\' is duplicated`);
184
+ throw new core_1.UnscopedValidationError(`column names and partition keys must be unique, but \'${column.name}\' is duplicated`);
185
185
  }
186
186
  names.add(column.name);
187
187
  });
188
188
  }
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhYmxlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMkNBQTJDO0FBQzNDLDJDQUEwRjtBQUMxRixtREFBbUQ7QUE4Sm5EOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLGVBQVE7SUFDdkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFnQjtRQUN2RSxNQUFNLFNBQVMsR0FBRyxTQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQWEsQ0FBQyxDQUFDLENBQUM7UUFFL0gsT0FBTyxTQUFTLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM5QyxRQUFRO1lBQ1IsU0FBUztTQUNWLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCOzs7Ozs7Ozs7O1FBQ3BGLE1BQU0sTUFBTyxTQUFRLGVBQVE7WUFBN0I7O2dCQUNrQixhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsY0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDOUMsQ0FBQztTQUFBO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFrREQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDM0IsV0FBSSxDQUFDLE1BQU0s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QUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJuRm9ybWF0LCBGbiwgSVJlc291cmNlLCBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFGb3JtYXQgfSBmcm9tICcuL2RhdGEtZm9ybWF0JztcbmltcG9ydCB7IElEYXRhYmFzZSB9IGZyb20gJy4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgU3RvcmFnZVBhcmFtZXRlciB9IGZyb20gJy4vc3RvcmFnZS1wYXJhbWV0ZXInO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBQYXJ0aXRpb24gSW5kZXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGl0aW9uSW5kZXgge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRpdGlvbiBpbmRleC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHlvdS5cbiAgICovXG4gIHJlYWRvbmx5IGluZGV4TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnRpdGlvbiBrZXkgbmFtZXMgdGhhdCBjb21wcmlzZSB0aGUgcGFydGl0aW9uXG4gICAqIGluZGV4LiBUaGUgbmFtZXMgbXVzdCBjb3JyZXNwb25kIHRvIGEgbmFtZSBpbiB0aGVcbiAgICogdGFibGUncyBwYXJ0aXRpb24ga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGtleU5hbWVzOiBzdHJpbmdbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQXR0cmlidXRlcyB7XG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZCBieSBDREsuXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogRGF0YWJhc2UgaW4gd2hpY2ggdG8gc3RvcmUgdGhlIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2U6IElEYXRhYmFzZTtcblxuICAvKipcbiAgICogQ29sdW1ucyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBjb2x1bW5zOiBDb2x1bW5bXTtcblxuICAvKipcbiAgICogUGFydGl0aW9uIGNvbHVtbnMgb2YgdGhlIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0YWJsZSBpcyBub3QgcGFydGl0aW9uZWRcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbktleXM/OiBDb2x1bW5bXTtcblxuICAvKipcbiAgICogUGFydGl0aW9uIGluZGV4ZXMgb24gdGhlIHRhYmxlLiBBIG1heGltdW0gb2YgMyBpbmRleGVzXG4gICAqIGFyZSBhbGxvd2VkIG9uIGEgdGFibGUuIEtleXMgaW4gdGhlIGluZGV4IG11c3QgYmUgcGFydFxuICAgKiBvZiB0aGUgdGFibGUncyBwYXJ0aXRpb24ga2V5cy5cbiAgICpcbiAgICogQGRlZmF1bHQgdGFibGUgaGFzIG5vIHBhcnRpdGlvbiBpbmRleGVzXG4gICAqL1xuICByZWFkb25seSBwYXJ0aXRpb25JbmRleGVzPzogUGFydGl0aW9uSW5kZXhbXTtcblxuICAvKipcbiAgICogU3RvcmFnZSB0eXBlIG9mIHRoZSB0YWJsZSdzIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBkYXRhRm9ybWF0OiBEYXRhRm9ybWF0O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGFibGUncyBkYXRhIGlzIGNvbXByZXNzZWQgb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3NlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0YWJsZSBkYXRhIGlzIHN0b3JlZCBpbiBzdWJkaXJlY3Rvcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlZEFzU3ViRGlyZWN0b3JpZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHBhcnRpdGlvbiBmaWx0ZXJpbmcuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZ2x1ZS1iZXN0LXByYWN0aWNlcy5odG1sI2dsdWUtYmVzdC1wcmFjdGljZXMtcGFydGl0aW9uLWluZGV4XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUGFydGl0aW9uRmlsdGVyaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHVzZXItc3VwcGxpZWQgcHJvcGVydGllcyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBwaHlzaWNhbCBzdG9yYWdlIG9mIHRoaXMgdGFibGUuIFRoZXNlIHByb3BlcnRpZXMgaGVscCBkZXNjcmliZSB0aGUgZm9ybWF0IG9mIHRoZSBkYXRhIHRoYXQgaXMgc3RvcmVkIHdpdGhpbiB0aGUgY3Jhd2xlZCBkYXRhIHNvdXJjZXMuXG4gICAqXG4gICAqIFRoZSBrZXkvdmFsdWUgcGFpcnMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBzdWJtaXR0ZWQgYXJlIG5vdCBsaW1pdGVkLCBob3dldmVyIHRoZWlyIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGd1YXJhbnRlZWQuXG4gICAqXG4gICAqIFNvbWUga2V5cyB3aWxsIGJlIGF1dG8tcG9wdWxhdGVkIGJ5IGdsdWUgY3Jhd2xlcnMsIGhvd2V2ZXIsIHlvdSBjYW4gb3ZlcnJpZGUgdGhlbSBieSBzcGVjaWZ5aW5nIHRoZSBrZXkgYW5kIHZhbHVlIGluIHRoaXMgcHJvcGVydHkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL3RhYmxlLXByb3BlcnRpZXMtY3Jhd2xlci5odG1sXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JlZHNoaWZ0L2xhdGVzdC9kZy9yX0NSRUFURV9FWFRFUk5BTF9UQUJMRS5odG1sI3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLXBhcmFtZXRlcnMgLSB1bmRlciBfXCJUQUJMRSBQUk9QRVJUSUVTXCJfXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqICAgIGRlY2xhcmUgY29uc3QgZ2x1ZURhdGFiYXNlOiBnbHVlLklEYXRhYmFzZTtcbiAgICogICAgY29uc3QgdGFibGUgPSBuZXcgZ2x1ZS5UYWJsZSh0aGlzLCAnVGFibGUnLCB7XG4gICAqICAgICAgc3RvcmFnZVBhcmFtZXRlcnM6IFtcbiAgICogICAgICAgICAgZ2x1ZS5TdG9yYWdlUGFyYW1ldGVyLnNraXBIZWFkZXJMaW5lQ291bnQoMSksXG4gICAqICAgICAgICAgIGdsdWUuU3RvcmFnZVBhcmFtZXRlci5jb21wcmVzc2lvblR5cGUoZ2x1ZS5Db21wcmVzc2lvblR5cGUuR1pJUCksXG4gICAqICAgICAgICAgIGdsdWUuU3RvcmFnZVBhcmFtZXRlci5jdXN0b20oJ2ZvbycsICdiYXInKSwgLy8gV2lsbCBoYXZlIG5vIGVmZmVjdFxuICAgKiAgICAgICAgICBnbHVlLlN0b3JhZ2VQYXJhbWV0ZXIuY3VzdG9tKCdzZXBhcmF0b3JDaGFyJywgJywnKSwgLy8gV2lsbCBkZXNjcmliZSB0aGUgc2VwYXJhdG9yIGNoYXIgdXNlZCBpbiB0aGUgZGF0YVxuICAgKiAgICAgICAgICBnbHVlLlN0b3JhZ2VQYXJhbWV0ZXIuY3VzdG9tKGdsdWUuU3RvcmFnZVBhcmFtZXRlcnMuV1JJVEVfUEFSQUxMRUwsICdvZmYnKSxcbiAgICogICAgICBdLFxuICAgKiAgICAgIC8vIC4uLlxuICAgKiAgICAgIGRhdGFiYXNlOiBnbHVlRGF0YWJhc2UsXG4gICAqICAgICAgY29sdW1uczogW3tcbiAgICogICAgICAgICAgbmFtZTogJ2NvbDEnLFxuICAgKiAgICAgICAgICB0eXBlOiBnbHVlLlNjaGVtYS5TVFJJTkcsXG4gICAqICAgICAgfV0sXG4gICAqICAgICAgZGF0YUZvcm1hdDogZ2x1ZS5EYXRhRm9ybWF0LkNTVixcbiAgICogICAgfSk7XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZVBhcmFtZXRlcnM/OiBTdG9yYWdlUGFyYW1ldGVyW107XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkvdmFsdWUgcGFpcnMgZGVmaW5lIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJsZS5cbiAgICogVGhlIGtleS92YWx1ZSBwYWlycyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHN1Ym1pdHRlZCBhcmUgbm90IGxpbWl0ZWQsIGhvd2V2ZXIgdGhlaXIgZnVuY3Rpb25hbGl0eSBpcyBub3QgZ3VhcmFudGVlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1nbHVlLXRhYmxlLXRhYmxlaW5wdXQuaHRtbCNjZm4tZ2x1ZS10YWJsZS10YWJsZWlucHV0LXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgcGFyYW1ldGVyIGlzIG5vdCBkZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBIEdsdWUgdGFibGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHRhYmxlQXJuOiBzdHJpbmcpOiBJVGFibGUge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IEZuLnNlbGVjdCgxLCBGbi5zcGxpdCgnLycsIFN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybih0YWJsZUFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSEpKTtcblxuICAgIHJldHVybiBUYWJsZUJhc2UuZnJvbVRhYmxlQXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHRhYmxlQXJuLFxuICAgICAgdGFibGVOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUYWJsZSBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIGlkLlxuICAgKiBAcGFyYW0gYXR0cnMgSW1wb3J0IGF0dHJpYnV0ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogVGFibGVBdHRyaWJ1dGVzKTogSVRhYmxlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm4gPSBhdHRycy50YWJsZUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWUgPSBhdHRycy50YWJsZU5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSB0YWJsZVJlc291cmNlOiBDZm5UYWJsZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBhcnRpdGlvbkluZGV4ZXM/OiBQYXJ0aXRpb25JbmRleFtdO1xuXG4gIC8qKlxuICAgKiBEYXRhYmFzZSB0aGlzIHRhYmxlIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2U6IElEYXRhYmFzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYmxlJ3MgZGF0YSBpcyBjb21wcmVzc2VkIG9yIG5vdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb21wcmVzc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3JtYXQgb2YgdGhpcyB0YWJsZSdzIGRhdGEgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUZvcm1hdDogRGF0YUZvcm1hdDtcblxuICAvKipcbiAgICogVGhpcyB0YWJsZSdzIGNvbHVtbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uczogQ29sdW1uW107XG5cbiAgLyoqXG4gICAqIFRoaXMgdGFibGUncyBwYXJ0aXRpb24ga2V5cyBpZiB0aGUgdGFibGUgaXMgcGFydGl0aW9uZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGFydGl0aW9uS2V5cz86IENvbHVtbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGVzJyBzdG9yYWdlIGRlc2NyaXB0b3IgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdG9yYWdlUGFyYW1ldGVycz86IFN0b3JhZ2VQYXJhbWV0ZXJbXTtcblxuICAvKipcbiAgICogVGhlIHRhYmxlcycgcHJvcGVydGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhYmxlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWdsdWUtdGFibGUtdGFibGVpbnB1dC5odG1sI2Nmbi1nbHVlLXRhYmxlLXRhYmxlaW5wdXQtcGFyYW1ldGVyc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFBhcnRpdGlvbiBpbmRleGVzIG11c3QgYmUgY3JlYXRlZCBvbmUgYXQgYSB0aW1lLiBUbyBhdm9pZFxuICAgKiByYWNlIGNvbmRpdGlvbnMsIHdlIHN0b3JlIHRoZSByZXNvdXJjZSBhbmQgYWRkIGRlcGVuZGVuY2llc1xuICAgKiBlYWNoIHRpbWUgYSBuZXcgcGFydGl0aW9uIGluZGV4IGlzIGNyZWF0ZWQuXG4gICAqL1xuICBwcml2YXRlIHBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRhYmxlQmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlTmFtZSA/P1xuICAgICAgICBMYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHt9KS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuZGF0YWJhc2UgPSBwcm9wcy5kYXRhYmFzZTtcbiAgICB0aGlzLmRhdGFGb3JtYXQgPSBwcm9wcy5kYXRhRm9ybWF0O1xuXG4gICAgdmFsaWRhdGVTY2hlbWEocHJvcHMuY29sdW1ucywgcHJvcHMucGFydGl0aW9uS2V5cyk7XG4gICAgdGhpcy5jb2x1bW5zID0gcHJvcHMuY29sdW1ucztcbiAgICB0aGlzLnBhcnRpdGlvbktleXMgPSBwcm9wcy5wYXJ0aXRpb25LZXlzO1xuICAgIHRoaXMuc3RvcmFnZVBhcmFtZXRlcnMgPSBwcm9wcy5zdG9yYWdlUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwcm9wcy5wYXJhbWV0ZXJzID8/IHt9O1xuXG4gICAgdGhpcy5jb21wcmVzc2VkID0gcHJvcHMuY29tcHJlc3NlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG4gIHB1YmxpYyBhYnN0cmFjdCBncmFudFdyaXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICBwdWJsaWMgYWJzdHJhY3QgZ3JhbnRSZWFkV3JpdGUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEFkZCBhIHBhcnRpdGlvbiBpbmRleCB0byB0aGUgdGFibGUuIFlvdSBjYW4gaGF2ZSBhIG1heGltdW0gb2YgMyBwYXJ0aXRpb25cbiAgICogaW5kZXhlcyB0byBhIHRhYmxlLiBQYXJ0aXRpb24gaW5kZXgga2V5cyBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB0YWJsZSdzXG4gICAqIHBhcnRpdGlvbiBrZXlzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9wYXJ0aXRpb24taW5kZXhlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgYWRkUGFydGl0aW9uSW5kZXgoaW5kZXg6IFBhcnRpdGlvbkluZGV4KSB7XG4gICAgY29uc3QgbnVtUGFydGl0aW9ucyA9IHRoaXMucGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZXMubGVuZ3RoO1xuICAgIGlmIChudW1QYXJ0aXRpb25zID49IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9uIGluZGV4ZXMgYWxsb3dlZCBpcyAzJyk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVQYXJ0aXRpb25JbmRleChpbmRleCk7XG5cbiAgICBjb25zdCBpbmRleE5hbWUgPSBpbmRleC5pbmRleE5hbWUgPz8gdGhpcy5nZW5lcmF0ZUluZGV4TmFtZShpbmRleC5rZXlOYW1lcyk7XG4gICAgY29uc3QgcGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZSA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBgcGFydGl0aW9uLWluZGV4LSR7aW5kZXhOYW1lfWAsIHtcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdHbHVlJyxcbiAgICAgICAgYWN0aW9uOiAnY3JlYXRlUGFydGl0aW9uSW5kZXgnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgRGF0YWJhc2VOYW1lOiB0aGlzLmRhdGFiYXNlLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICBUYWJsZU5hbWU6IHRoaXMudGFibGVOYW1lLFxuICAgICAgICAgIFBhcnRpdGlvbkluZGV4OiB7XG4gICAgICAgICAgICBJbmRleE5hbWU6IGluZGV4TmFtZSxcbiAgICAgICAgICAgIEtleXM6IGluZGV4LmtleU5hbWVzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgIGluZGV4TmFtZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgIHJlc291cmNlczogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFLFxuICAgICAgfSksXG4gICAgICAvLyBBUElzIGFyZSBhdmFpbGFibGUgaW4gMi4xMDU1LjBcbiAgICAgIGluc3RhbGxMYXRlc3RBd3NTZGs6IGZhbHNlLFxuICAgIH0pO1xuICAgIHRoaXMuZ3JhbnRUb1VuZGVybHlpbmdSZXNvdXJjZXMocGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZSwgWydnbHVlOlVwZGF0ZVRhYmxlJ10pO1xuXG4gICAgLy8gRGVwZW5kIG9uIHByZXZpb3VzIHBhcnRpdGlvbiBpbmRleCBpZiBwb3NzaWJsZSwgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25cbiAgICBpZiAobnVtUGFydGl0aW9ucyA+IDApIHtcbiAgICAgIHRoaXMucGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZXNbbnVtUGFydGl0aW9ucy0xXS5ub2RlLmFkZERlcGVuZGVuY3kocGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZSk7XG4gICAgfVxuICAgIHRoaXMucGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZXMucHVzaChwYXJ0aXRpb25JbmRleEN1c3RvbVJlc291cmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVJbmRleE5hbWUoa2V5czogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9IGtleXMuam9pbignLScpICsgJy0nO1xuICAgIGNvbnN0IHVuaXF1ZUlkID0gTmFtZXMudW5pcXVlSWQodGhpcyk7XG4gICAgY29uc3QgbWF4SW5kZXhMZW5ndGggPSA4MDsgLy8gYXJiaXRyYXJpbHkgc3BlY2lmaWVkXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IE1hdGgubWF4KDAsIHVuaXF1ZUlkLmxlbmd0aCAtIChtYXhJbmRleExlbmd0aCAtIHByZWZpeC5sZW5ndGgpKTtcbiAgICByZXR1cm4gcHJlZml4ICsgdW5pcXVlSWQuc3Vic3RyaW5nKHN0YXJ0SW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcnRpdGlvbkluZGV4KGluZGV4OiBQYXJ0aXRpb25JbmRleCkge1xuICAgIGlmIChpbmRleC5pbmRleE5hbWUgIT09IHVuZGVmaW5lZCAmJiAoaW5kZXguaW5kZXhOYW1lLmxlbmd0aCA8IDEgfHwgaW5kZXguaW5kZXhOYW1lLmxlbmd0aCA+IDI1NSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5kZXggbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjU1IGNoYXJhY3RlcnMsIGJ1dCBnb3QgJHtpbmRleC5pbmRleE5hbWUubGVuZ3RofWApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucGFydGl0aW9uS2V5cyB8fCB0aGlzLnBhcnRpdGlvbktleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSB0YWJsZSBtdXN0IGhhdmUgcGFydGl0aW9uIGtleXMgdG8gY3JlYXRlIGEgcGFydGl0aW9uIGluZGV4Jyk7XG4gICAgfVxuICAgIGNvbnN0IGtleU5hbWVzID0gdGhpcy5wYXJ0aXRpb25LZXlzLm1hcChwayA9PiBway5uYW1lKTtcbiAgICBpZiAoIWluZGV4LmtleU5hbWVzLmV2ZXJ5KGsgPT4ga2V5TmFtZXMuaW5jbHVkZXMoaykpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFsbCBpbmRleCBrZXlzIG11c3QgYWxzbyBiZSBwYXJ0aXRpb24ga2V5cy4gR290ICR7aW5kZXgua2V5TmFtZXN9IGJ1dCBwYXJ0aXRpb24ga2V5IG5hbWVzIGFyZSAke2tleU5hbWVzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgY3VzdG9tIHBlcm1pc3Npb25zLlxuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCBhY3Rpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMudGFibGVBcm5dLFxuICAgICAgYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgY3VzdG9tIHBlcm1pc3Npb25zIHRvIEFMTCB1bmRlcmx5aW5nIHJlc291cmNlcyBvZiB0aGUgdGFibGUuXG4gICAqIFBlcm1pc3Npb25zIHdpbGwgYmUgZ3JhbnRlZCB0byB0aGUgY2F0YWxvZywgdGhlIGRhdGFiYXNlLCBhbmQgdGhlIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIGdyYW50VG9VbmRlcmx5aW5nUmVzb3VyY2VzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCBhY3Rpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIHJlc291cmNlQXJuczogW1xuICAgICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICAgICB0aGlzLmRhdGFiYXNlLmNhdGFsb2dBcm4sXG4gICAgICAgIHRoaXMuZGF0YWJhc2UuZGF0YWJhc2VBcm4sXG4gICAgICBdLFxuICAgICAgYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVNjaGVtYShjb2x1bW5zOiBDb2x1bW5bXSwgcGFydGl0aW9uS2V5cz86IENvbHVtbltdKTogdm9pZCB7XG4gIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcigneW91IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgY29sdW1uIGZvciB0aGUgdGFibGUnKTtcbiAgfVxuICAvLyBDaGVjayB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY29sdW1uIGFuZCBubyBkdXBsaWNhdGVkIGNvbHVtbiBuYW1lcyBvciBwYXJ0aXRpb24ga2V5cy5cbiAgY29uc3QgbmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgKGNvbHVtbnMuY29uY2F0KHBhcnRpdGlvbktleXMgfHwgW10pKS5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgaWYgKG5hbWVzLmhhcyhjb2x1bW4ubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY29sdW1uIG5hbWVzIGFuZCBwYXJ0aXRpb24ga2V5cyBtdXN0IGJlIHVuaXF1ZSwgYnV0IFxcJyR7Y29sdW1uLm5hbWV9XFwnIGlzIGR1cGxpY2F0ZWRgKTtcbiAgICB9XG4gICAgbmFtZXMuYWRkKGNvbHVtbi5uYW1lKTtcbiAgfSk7XG59XG4iXX0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhYmxlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMkNBQTJDO0FBQzNDLDJDQUFvSTtBQUNwSSxtREFBbUQ7QUE4Sm5EOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLGVBQVE7SUFDdkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFnQjtRQUN2RSxNQUFNLFNBQVMsR0FBRyxTQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQWEsQ0FBQyxDQUFDLENBQUM7UUFFL0gsT0FBTyxTQUFTLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM5QyxRQUFRO1lBQ1IsU0FBUztTQUNWLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCOzs7Ozs7Ozs7O1FBQ3BGLE1BQU0sTUFBTyxTQUFRLGVBQVE7WUFBN0I7O2dCQUNrQixhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsY0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDOUMsQ0FBQztTQUFBO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFrREQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDM0IsV0FBSSxDQUFDLE1BQU0s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QU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUM7UUFDNUgsQ0FBQztRQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJuRm9ybWF0LCBGbiwgSVJlc291cmNlLCBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFN0YWNrLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFGb3JtYXQgfSBmcm9tICcuL2RhdGEtZm9ybWF0JztcbmltcG9ydCB7IElEYXRhYmFzZSB9IGZyb20gJy4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgU3RvcmFnZVBhcmFtZXRlciB9IGZyb20gJy4vc3RvcmFnZS1wYXJhbWV0ZXInO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBQYXJ0aXRpb24gSW5kZXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGl0aW9uSW5kZXgge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRpdGlvbiBpbmRleC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHlvdS5cbiAgICovXG4gIHJlYWRvbmx5IGluZGV4TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnRpdGlvbiBrZXkgbmFtZXMgdGhhdCBjb21wcmlzZSB0aGUgcGFydGl0aW9uXG4gICAqIGluZGV4LiBUaGUgbmFtZXMgbXVzdCBjb3JyZXNwb25kIHRvIGEgbmFtZSBpbiB0aGVcbiAgICogdGFibGUncyBwYXJ0aXRpb24ga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGtleU5hbWVzOiBzdHJpbmdbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQXR0cmlidXRlcyB7XG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZCBieSBDREsuXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIG9mIHRoZSB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogRGF0YWJhc2UgaW4gd2hpY2ggdG8gc3RvcmUgdGhlIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2U6IElEYXRhYmFzZTtcblxuICAvKipcbiAgICogQ29sdW1ucyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBjb2x1bW5zOiBDb2x1bW5bXTtcblxuICAvKipcbiAgICogUGFydGl0aW9uIGNvbHVtbnMgb2YgdGhlIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0YWJsZSBpcyBub3QgcGFydGl0aW9uZWRcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbktleXM/OiBDb2x1bW5bXTtcblxuICAvKipcbiAgICogUGFydGl0aW9uIGluZGV4ZXMgb24gdGhlIHRhYmxlLiBBIG1heGltdW0gb2YgMyBpbmRleGVzXG4gICAqIGFyZSBhbGxvd2VkIG9uIGEgdGFibGUuIEtleXMgaW4gdGhlIGluZGV4IG11c3QgYmUgcGFydFxuICAgKiBvZiB0aGUgdGFibGUncyBwYXJ0aXRpb24ga2V5cy5cbiAgICpcbiAgICogQGRlZmF1bHQgdGFibGUgaGFzIG5vIHBhcnRpdGlvbiBpbmRleGVzXG4gICAqL1xuICByZWFkb25seSBwYXJ0aXRpb25JbmRleGVzPzogUGFydGl0aW9uSW5kZXhbXTtcblxuICAvKipcbiAgICogU3RvcmFnZSB0eXBlIG9mIHRoZSB0YWJsZSdzIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBkYXRhRm9ybWF0OiBEYXRhRm9ybWF0O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGFibGUncyBkYXRhIGlzIGNvbXByZXNzZWQgb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3NlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0YWJsZSBkYXRhIGlzIHN0b3JlZCBpbiBzdWJkaXJlY3Rvcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlZEFzU3ViRGlyZWN0b3JpZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHBhcnRpdGlvbiBmaWx0ZXJpbmcuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZ2x1ZS1iZXN0LXByYWN0aWNlcy5odG1sI2dsdWUtYmVzdC1wcmFjdGljZXMtcGFydGl0aW9uLWluZGV4XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUGFydGl0aW9uRmlsdGVyaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHVzZXItc3VwcGxpZWQgcHJvcGVydGllcyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBwaHlzaWNhbCBzdG9yYWdlIG9mIHRoaXMgdGFibGUuIFRoZXNlIHByb3BlcnRpZXMgaGVscCBkZXNjcmliZSB0aGUgZm9ybWF0IG9mIHRoZSBkYXRhIHRoYXQgaXMgc3RvcmVkIHdpdGhpbiB0aGUgY3Jhd2xlZCBkYXRhIHNvdXJjZXMuXG4gICAqXG4gICAqIFRoZSBrZXkvdmFsdWUgcGFpcnMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBzdWJtaXR0ZWQgYXJlIG5vdCBsaW1pdGVkLCBob3dldmVyIHRoZWlyIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGd1YXJhbnRlZWQuXG4gICAqXG4gICAqIFNvbWUga2V5cyB3aWxsIGJlIGF1dG8tcG9wdWxhdGVkIGJ5IGdsdWUgY3Jhd2xlcnMsIGhvd2V2ZXIsIHlvdSBjYW4gb3ZlcnJpZGUgdGhlbSBieSBzcGVjaWZ5aW5nIHRoZSBrZXkgYW5kIHZhbHVlIGluIHRoaXMgcHJvcGVydHkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL3RhYmxlLXByb3BlcnRpZXMtY3Jhd2xlci5odG1sXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JlZHNoaWZ0L2xhdGVzdC9kZy9yX0NSRUFURV9FWFRFUk5BTF9UQUJMRS5odG1sI3JfQ1JFQVRFX0VYVEVSTkFMX1RBQkxFLXBhcmFtZXRlcnMgLSB1bmRlciBfXCJUQUJMRSBQUk9QRVJUSUVTXCJfXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqICAgIGRlY2xhcmUgY29uc3QgZ2x1ZURhdGFiYXNlOiBnbHVlLklEYXRhYmFzZTtcbiAgICogICAgY29uc3QgdGFibGUgPSBuZXcgZ2x1ZS5UYWJsZSh0aGlzLCAnVGFibGUnLCB7XG4gICAqICAgICAgc3RvcmFnZVBhcmFtZXRlcnM6IFtcbiAgICogICAgICAgICAgZ2x1ZS5TdG9yYWdlUGFyYW1ldGVyLnNraXBIZWFkZXJMaW5lQ291bnQoMSksXG4gICAqICAgICAgICAgIGdsdWUuU3RvcmFnZVBhcmFtZXRlci5jb21wcmVzc2lvblR5cGUoZ2x1ZS5Db21wcmVzc2lvblR5cGUuR1pJUCksXG4gICAqICAgICAgICAgIGdsdWUuU3RvcmFnZVBhcmFtZXRlci5jdXN0b20oJ2ZvbycsICdiYXInKSwgLy8gV2lsbCBoYXZlIG5vIGVmZmVjdFxuICAgKiAgICAgICAgICBnbHVlLlN0b3JhZ2VQYXJhbWV0ZXIuY3VzdG9tKCdzZXBhcmF0b3JDaGFyJywgJywnKSwgLy8gV2lsbCBkZXNjcmliZSB0aGUgc2VwYXJhdG9yIGNoYXIgdXNlZCBpbiB0aGUgZGF0YVxuICAgKiAgICAgICAgICBnbHVlLlN0b3JhZ2VQYXJhbWV0ZXIuY3VzdG9tKGdsdWUuU3RvcmFnZVBhcmFtZXRlcnMuV1JJVEVfUEFSQUxMRUwsICdvZmYnKSxcbiAgICogICAgICBdLFxuICAgKiAgICAgIC8vIC4uLlxuICAgKiAgICAgIGRhdGFiYXNlOiBnbHVlRGF0YWJhc2UsXG4gICAqICAgICAgY29sdW1uczogW3tcbiAgICogICAgICAgICAgbmFtZTogJ2NvbDEnLFxuICAgKiAgICAgICAgICB0eXBlOiBnbHVlLlNjaGVtYS5TVFJJTkcsXG4gICAqICAgICAgfV0sXG4gICAqICAgICAgZGF0YUZvcm1hdDogZ2x1ZS5EYXRhRm9ybWF0LkNTVixcbiAgICogICAgfSk7XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZVBhcmFtZXRlcnM/OiBTdG9yYWdlUGFyYW1ldGVyW107XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkvdmFsdWUgcGFpcnMgZGVmaW5lIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJsZS5cbiAgICogVGhlIGtleS92YWx1ZSBwYWlycyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHN1Ym1pdHRlZCBhcmUgbm90IGxpbWl0ZWQsIGhvd2V2ZXIgdGhlaXIgZnVuY3Rpb25hbGl0eSBpcyBub3QgZ3VhcmFudGVlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1nbHVlLXRhYmxlLXRhYmxlaW5wdXQuaHRtbCNjZm4tZ2x1ZS10YWJsZS10YWJsZWlucHV0LXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgcGFyYW1ldGVyIGlzIG5vdCBkZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBIEdsdWUgdGFibGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHRhYmxlQXJuOiBzdHJpbmcpOiBJVGFibGUge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IEZuLnNlbGVjdCgxLCBGbi5zcGxpdCgnLycsIFN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybih0YWJsZUFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSEpKTtcblxuICAgIHJldHVybiBUYWJsZUJhc2UuZnJvbVRhYmxlQXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHRhYmxlQXJuLFxuICAgICAgdGFibGVOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUYWJsZSBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIGlkLlxuICAgKiBAcGFyYW0gYXR0cnMgSW1wb3J0IGF0dHJpYnV0ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogVGFibGVBdHRyaWJ1dGVzKTogSVRhYmxlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm4gPSBhdHRycy50YWJsZUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWUgPSBhdHRycy50YWJsZU5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSB0YWJsZVJlc291cmNlOiBDZm5UYWJsZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBhcnRpdGlvbkluZGV4ZXM/OiBQYXJ0aXRpb25JbmRleFtdO1xuXG4gIC8qKlxuICAgKiBEYXRhYmFzZSB0aGlzIHRhYmxlIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2U6IElEYXRhYmFzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYmxlJ3MgZGF0YSBpcyBjb21wcmVzc2VkIG9yIG5vdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb21wcmVzc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3JtYXQgb2YgdGhpcyB0YWJsZSdzIGRhdGEgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUZvcm1hdDogRGF0YUZvcm1hdDtcblxuICAvKipcbiAgICogVGhpcyB0YWJsZSdzIGNvbHVtbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uczogQ29sdW1uW107XG5cbiAgLyoqXG4gICAqIFRoaXMgdGFibGUncyBwYXJ0aXRpb24ga2V5cyBpZiB0aGUgdGFibGUgaXMgcGFydGl0aW9uZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGFydGl0aW9uS2V5cz86IENvbHVtbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGVzJyBzdG9yYWdlIGRlc2NyaXB0b3IgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdG9yYWdlUGFyYW1ldGVycz86IFN0b3JhZ2VQYXJhbWV0ZXJbXTtcblxuICAvKipcbiAgICogVGhlIHRhYmxlcycgcHJvcGVydGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRhYmxlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWdsdWUtdGFibGUtdGFibGVpbnB1dC5odG1sI2Nmbi1nbHVlLXRhYmxlLXRhYmxlaW5wdXQtcGFyYW1ldGVyc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFBhcnRpdGlvbiBpbmRleGVzIG11c3QgYmUgY3JlYXRlZCBvbmUgYXQgYSB0aW1lLiBUbyBhdm9pZFxuICAgKiByYWNlIGNvbmRpdGlvbnMsIHdlIHN0b3JlIHRoZSByZXNvdXJjZSBhbmQgYWRkIGRlcGVuZGVuY2llc1xuICAgKiBlYWNoIHRpbWUgYSBuZXcgcGFydGl0aW9uIGluZGV4IGlzIGNyZWF0ZWQuXG4gICAqL1xuICBwcml2YXRlIHBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRhYmxlQmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlTmFtZSA/P1xuICAgICAgICBMYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHt9KS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuZGF0YWJhc2UgPSBwcm9wcy5kYXRhYmFzZTtcbiAgICB0aGlzLmRhdGFGb3JtYXQgPSBwcm9wcy5kYXRhRm9ybWF0O1xuXG4gICAgdmFsaWRhdGVTY2hlbWEocHJvcHMuY29sdW1ucywgcHJvcHMucGFydGl0aW9uS2V5cyk7XG4gICAgdGhpcy5jb2x1bW5zID0gcHJvcHMuY29sdW1ucztcbiAgICB0aGlzLnBhcnRpdGlvbktleXMgPSBwcm9wcy5wYXJ0aXRpb25LZXlzO1xuICAgIHRoaXMuc3RvcmFnZVBhcmFtZXRlcnMgPSBwcm9wcy5zdG9yYWdlUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwcm9wcy5wYXJhbWV0ZXJzID8/IHt9O1xuXG4gICAgdGhpcy5jb21wcmVzc2VkID0gcHJvcHMuY29tcHJlc3NlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG4gIHB1YmxpYyBhYnN0cmFjdCBncmFudFdyaXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICBwdWJsaWMgYWJzdHJhY3QgZ3JhbnRSZWFkV3JpdGUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEFkZCBhIHBhcnRpdGlvbiBpbmRleCB0byB0aGUgdGFibGUuIFlvdSBjYW4gaGF2ZSBhIG1heGltdW0gb2YgMyBwYXJ0aXRpb25cbiAgICogaW5kZXhlcyB0byBhIHRhYmxlLiBQYXJ0aXRpb24gaW5kZXgga2V5cyBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB0YWJsZSdzXG4gICAqIHBhcnRpdGlvbiBrZXlzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9wYXJ0aXRpb24taW5kZXhlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgYWRkUGFydGl0aW9uSW5kZXgoaW5kZXg6IFBhcnRpdGlvbkluZGV4KSB7XG4gICAgY29uc3QgbnVtUGFydGl0aW9ucyA9IHRoaXMucGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZXMubGVuZ3RoO1xuICAgIGlmIChudW1QYXJ0aXRpb25zID49IDMpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ01heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbiBpbmRleGVzIGFsbG93ZWQgaXMgMycsIHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlUGFydGl0aW9uSW5kZXgoaW5kZXgpO1xuXG4gICAgY29uc3QgaW5kZXhOYW1lID0gaW5kZXguaW5kZXhOYW1lID8/IHRoaXMuZ2VuZXJhdGVJbmRleE5hbWUoaW5kZXgua2V5TmFtZXMpO1xuICAgIGNvbnN0IHBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2UgPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYHBhcnRpdGlvbi1pbmRleC0ke2luZGV4TmFtZX1gLCB7XG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiAnR2x1ZScsXG4gICAgICAgIGFjdGlvbjogJ2NyZWF0ZVBhcnRpdGlvbkluZGV4JyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIERhdGFiYXNlTmFtZTogdGhpcy5kYXRhYmFzZS5kYXRhYmFzZU5hbWUsXG4gICAgICAgICAgVGFibGVOYW1lOiB0aGlzLnRhYmxlTmFtZSxcbiAgICAgICAgICBQYXJ0aXRpb25JbmRleDoge1xuICAgICAgICAgICAgSW5kZXhOYW1lOiBpbmRleE5hbWUsXG4gICAgICAgICAgICBLZXlzOiBpbmRleC5rZXlOYW1lcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICByZXNvdXJjZXM6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRSxcbiAgICAgIH0pLFxuICAgICAgLy8gQVBJcyBhcmUgYXZhaWxhYmxlIGluIDIuMTA1NS4wXG4gICAgICBpbnN0YWxsTGF0ZXN0QXdzU2RrOiBmYWxzZSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50VG9VbmRlcmx5aW5nUmVzb3VyY2VzKHBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2UsIFsnZ2x1ZTpVcGRhdGVUYWJsZSddKTtcblxuICAgIC8vIERlcGVuZCBvbiBwcmV2aW91cyBwYXJ0aXRpb24gaW5kZXggaWYgcG9zc2libGUsIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9uXG4gICAgaWYgKG51bVBhcnRpdGlvbnMgPiAwKSB7XG4gICAgICB0aGlzLnBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2VzW251bVBhcnRpdGlvbnMtMV0ubm9kZS5hZGREZXBlbmRlbmN5KHBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2UpO1xuICAgIH1cbiAgICB0aGlzLnBhcnRpdGlvbkluZGV4Q3VzdG9tUmVzb3VyY2VzLnB1c2gocGFydGl0aW9uSW5kZXhDdXN0b21SZXNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlSW5kZXhOYW1lKGtleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSBrZXlzLmpvaW4oJy0nKSArICctJztcbiAgICBjb25zdCB1bmlxdWVJZCA9IE5hbWVzLnVuaXF1ZUlkKHRoaXMpO1xuICAgIGNvbnN0IG1heEluZGV4TGVuZ3RoID0gODA7IC8vIGFyYml0cmFyaWx5IHNwZWNpZmllZFxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBNYXRoLm1heCgwLCB1bmlxdWVJZC5sZW5ndGggLSAobWF4SW5kZXhMZW5ndGggLSBwcmVmaXgubGVuZ3RoKSk7XG4gICAgcmV0dXJuIHByZWZpeCArIHVuaXF1ZUlkLnN1YnN0cmluZyhzdGFydEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVQYXJ0aXRpb25JbmRleChpbmRleDogUGFydGl0aW9uSW5kZXgpIHtcbiAgICBpZiAoaW5kZXguaW5kZXhOYW1lICE9PSB1bmRlZmluZWQgJiYgKGluZGV4LmluZGV4TmFtZS5sZW5ndGggPCAxIHx8IGluZGV4LmluZGV4TmFtZS5sZW5ndGggPiAyNTUpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBJbmRleCBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyNTUgY2hhcmFjdGVycywgYnV0IGdvdCAke2luZGV4LmluZGV4TmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5wYXJ0aXRpb25LZXlzIHx8IHRoaXMucGFydGl0aW9uS2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1RoZSB0YWJsZSBtdXN0IGhhdmUgcGFydGl0aW9uIGtleXMgdG8gY3JlYXRlIGEgcGFydGl0aW9uIGluZGV4JywgdGhpcyk7XG4gICAgfVxuICAgIGNvbnN0IGtleU5hbWVzID0gdGhpcy5wYXJ0aXRpb25LZXlzLm1hcChwayA9PiBway5uYW1lKTtcbiAgICBpZiAoIWluZGV4LmtleU5hbWVzLmV2ZXJ5KGsgPT4ga2V5TmFtZXMuaW5jbHVkZXMoaykpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBBbGwgaW5kZXgga2V5cyBtdXN0IGFsc28gYmUgcGFydGl0aW9uIGtleXMuIEdvdCAke2luZGV4LmtleU5hbWVzfSBidXQgcGFydGl0aW9uIGtleSBuYW1lcyBhcmUgJHtrZXlOYW1lc31gLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IGN1c3RvbSBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgYWN0aW9uczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLnRhYmxlQXJuXSxcbiAgICAgIGFjdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IGN1c3RvbSBwZXJtaXNzaW9ucyB0byBBTEwgdW5kZXJseWluZyByZXNvdXJjZXMgb2YgdGhlIHRhYmxlLlxuICAgKiBQZXJtaXNzaW9ucyB3aWxsIGJlIGdyYW50ZWQgdG8gdGhlIGNhdGFsb2csIHRoZSBkYXRhYmFzZSwgYW5kIHRoZSB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyBncmFudFRvVW5kZXJseWluZ1Jlc291cmNlcyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgYWN0aW9uczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFtcbiAgICAgICAgdGhpcy50YWJsZUFybixcbiAgICAgICAgdGhpcy5kYXRhYmFzZS5jYXRhbG9nQXJuLFxuICAgICAgICB0aGlzLmRhdGFiYXNlLmRhdGFiYXNlQXJuLFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnMsXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTY2hlbWEoY29sdW1uczogQ29sdW1uW10sIHBhcnRpdGlvbktleXM/OiBDb2x1bW5bXSk6IHZvaWQge1xuICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoJ3lvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIGNvbHVtbiBmb3IgdGhlIHRhYmxlJyk7XG4gIH1cbiAgLy8gQ2hlY2sgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNvbHVtbiBhbmQgbm8gZHVwbGljYXRlZCBjb2x1bW4gbmFtZXMgb3IgcGFydGl0aW9uIGtleXMuXG4gIGNvbnN0IG5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIChjb2x1bW5zLmNvbmNhdChwYXJ0aXRpb25LZXlzIHx8IFtdKSkuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgIGlmIChuYW1lcy5oYXMoY29sdW1uLm5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoYGNvbHVtbiBuYW1lcyBhbmQgcGFydGl0aW9uIGtleXMgbXVzdCBiZSB1bmlxdWUsIGJ1dCBcXCcke2NvbHVtbi5uYW1lfVxcJyBpcyBkdXBsaWNhdGVkYCk7XG4gICAgfVxuICAgIG5hbWVzLmFkZChjb2x1bW4ubmFtZSk7XG4gIH0pO1xufVxuIl19
@@ -20,7 +20,7 @@ let Table = class Table extends s3_table_1.S3Table {
20
20
  };
21
21
  exports.Table = Table;
22
22
  _a = JSII_RTTI_SYMBOL_1;
23
- Table[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Table", version: "2.207.0-alpha.0" };
23
+ Table[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Table", version: "2.209.0-alpha.0" };
24
24
  /** Uniquely identifies this class. */
25
25
  Table.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Table';
26
26
  exports.Table = Table = __decorate([
@@ -35,5 +35,5 @@ class TriggerSchedule {
35
35
  }
36
36
  exports.TriggerSchedule = TriggerSchedule;
37
37
  _a = JSII_RTTI_SYMBOL_1;
38
- TriggerSchedule[_a] = { fqn: "@aws-cdk/aws-glue-alpha.TriggerSchedule", version: "2.207.0-alpha.0" };
38
+ TriggerSchedule[_a] = { fqn: "@aws-cdk/aws-glue-alpha.TriggerSchedule", version: "2.209.0-alpha.0" };
39
39
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHJpZ2dlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsaURBQWlEO0FBMENqRDs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUMxQjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBMkI7UUFDNUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQzVFO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQWtCO1FBQ3pDLE9BQU8sSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDeEM7SUFFRDs7T0FFRztJQUNILFlBQW9DLGdCQUF3QjtRQUF4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7S0FBSTs7QUF4QmxFLDBDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IEpvYlN0YXRlLCBDcmF3bGVyU3RhdGUsIENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvciwgUHJlZGljYXRlTG9naWNhbCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJSm9iIH0gZnJvbSAnLi4vam9icy9qb2InOyAvLyBVc2UgSUpvYiBpbnRlcmZhY2UgaW5zdGVhZCBvZiBjb25jcmV0ZSBjbGFzc1xuaW1wb3J0IHsgQ2ZuQ3Jhd2xlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB7IElTZWN1cml0eUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9zZWN1cml0eS1jb25maWd1cmF0aW9uJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdHJpZ2dlciBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBqb2IgdG8gYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gam9iIGlzIGV4ZWN1dGVkXG4gICAqL1xuICByZWFkb25seSBqb2I/OiBJSm9iO1xuXG4gIC8qKlxuICAgKiBUaGUgam9iIGFyZ3VtZW50cyB1c2VkIHdoZW4gdGhpcyB0cmlnZ2VyIGZpcmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBqb2JcbiAgICovXG4gIHJlYWRvbmx5IGFyZ3VtZW50cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBqb2IgcnVuIHRpbWVvdXQuIFRoaXMgaXMgdGhlIG1heGltdW0gdGltZSB0aGF0IGEgam9iIHJ1biBjYW4gY29uc3VtZSByZXNvdXJjZXMgYmVmb3JlIGl0IGlzIHRlcm1pbmF0ZWQgYW5kIGVudGVycyBUSU1FT1VUIHN0YXR1cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCB0aW1lb3V0IHZhbHVlIHNldCBpbiB0aGUgam9iIGRlZmluaXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBgU2VjdXJpdHlDb25maWd1cmF0aW9uYCB0byBiZSB1c2VkIHdpdGggdGhpcyBhY3Rpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2VjdXJpdHkgY29uZmlndXJhdGlvbiBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUNvbmZpZ3VyYXRpb24/OiBJU2VjdXJpdHlDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY3Jhd2xlciB0byBiZSB1c2VkIHdpdGggdGhpcyBhY3Rpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY3Jhd2xlciBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBjcmF3bGVyPzogQ2ZuQ3Jhd2xlcjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdHJpZ2dlciBzY2hlZHVsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRyaWdnZXJTY2hlZHVsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFRyaWdnZXJTY2hlZHVsZSBpbnN0YW5jZSB3aXRoIGEgY3JvbiBleHByZXNzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgY3JvbiBvcHRpb25zIGZvciB0aGUgc2NoZWR1bGUuXG4gICAqIEByZXR1cm5zIEEgbmV3IFRyaWdnZXJTY2hlZHVsZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3JvbihvcHRpb25zOiBldmVudHMuQ3Jvbk9wdGlvbnMpOiBUcmlnZ2VyU2NoZWR1bGUge1xuICAgIHJldHVybiBuZXcgVHJpZ2dlclNjaGVkdWxlKGV2ZW50cy5TY2hlZHVsZS5jcm9uKG9wdGlvbnMpLmV4cHJlc3Npb25TdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgVHJpZ2dlclNjaGVkdWxlIGluc3RhbmNlIHdpdGggYSBjdXN0b20gZXhwcmVzc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIGN1c3RvbSBleHByZXNzaW9uIGZvciB0aGUgc2NoZWR1bGUuXG4gICAqIEByZXR1cm5zIEEgbmV3IFRyaWdnZXJTY2hlZHVsZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcpOiBUcmlnZ2VyU2NoZWR1bGUge1xuICAgIHJldHVybiBuZXcgVHJpZ2dlclNjaGVkdWxlKGV4cHJlc3Npb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uU3RyaW5nIFRoZSBleHByZXNzaW9uIHN0cmluZyBmb3IgdGhlIHNjaGVkdWxlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZXhwcmVzc2lvblN0cmluZzogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0cmlnZ2VyIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWNhdGUge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgb3BlcmF0b3IgdG8gYmUgYXBwbGllZCB0byB0aGUgY29uZGl0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDb25kaXRpb25Mb2dpY2FsLkFORCBpZiBtdWx0aXBsZSBjb25kaXRpb25zIGFyZSBwcm92aWRlZCwgbm8gbG9naWNhbCBvcGVyYXRvciBpZiBvbmx5IG9uZSBjb25kaXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWw/OiBQcmVkaWNhdGVMb2dpY2FsO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGhlIGNvbmRpdGlvbnMgdGhhdCBkZXRlcm1pbmUgd2hlbiB0aGUgdHJpZ2dlciB3aWxsIGZpcmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29uZGl0aW9ucyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM/OiBDb25kaXRpb25bXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdHJpZ2dlciBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsIG9wZXJhdG9yIGZvciB0aGUgY29uZGl0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IuRVFVQUxTXG4gICAqL1xuICByZWFkb25seSBsb2dpY2FsT3BlcmF0b3I/OiBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBqb2IgdG8gd2hpY2ggdGhpcyBjb25kaXRpb24gYXBwbGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBqb2IgaXMgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBqb2I/OiBJSm9iO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZGl0aW9uIGpvYiBzdGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBqb2Igc3RhdGUgaXMgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBzdGF0ZT86IEpvYlN0YXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY3Jhd2xlciB0byB3aGljaCB0aGlzIGNvbmRpdGlvbiBhcHBsaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNyYXdsZXIgaXMgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBjcmF3bGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbmRpdGlvbiBjcmF3bGVyIHN0YXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNyYXdsZXIgc3RhdGUgaXMgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBjcmF3bFN0YXRlPzogQ3Jhd2xlclN0YXRlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZXZlbnQgdHJpZ2dlciBiYXRjaCBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCYXRjaGluZ0NvbmRpdGlvbiB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZXZlbnRzIHRoYXQgbXVzdCBiZSByZWNlaXZlZCBmcm9tIEFtYXpvbiBFdmVudEJyaWRnZSBiZWZvcmUgRXZlbnRCcmlkZ2UgZXZlbnQgdHJpZ2dlciBmaXJlcy5cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaW5kb3cgb2YgdGltZSBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIEV2ZW50QnJpZGdlIGV2ZW50IHRyaWdnZXIgZmlyZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gOTAwIHNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoV2luZG93PzogY2RrLkR1cmF0aW9uO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGEgR2x1ZSBUcmlnZ2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlck9wdGlvbnMge1xuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgdHJpZ2dlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuYW1lIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgdHJpZ2dlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb25zIGluaXRpYXRlZCBieSB0aGlzIHRyaWdnZXIuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25zOiBBY3Rpb25bXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhbiBvbi1kZW1hbmQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uRGVtYW5kVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBUcmlnZ2VyT3B0aW9ucyB7fVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGEgZGFpbHktc2NoZWR1bGVkIEdsdWUgVHJpZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYWlseVNjaGVkdWxlVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHN0YXJ0IHRoZSB0cmlnZ2VyIG9uIGNyZWF0aW9uIG9yIG5vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRPbkNyZWF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhIHdlZWtseS1zY2hlZHVsZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdlZWtseVNjaGVkdWxlVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBEYWlseVNjaGVkdWxlVHJpZ2dlck9wdGlvbnMge31cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhIGN1c3RvbS1zY2hlZHVsZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVNjaGVkdWxlZFRyaWdnZXJPcHRpb25zIGV4dGVuZHMgV2Vla2x5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHNjaGVkdWxlIGZvciB0aGUgdHJpZ2dlci5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlOiBUcmlnZ2VyU2NoZWR1bGU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgYW4gRXZlbnQgQnJpZGdlIGJhc2VkIEdsdWUgVHJpZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RpZnlFdmVudFRyaWdnZXJPcHRpb25zIGV4dGVuZHMgVHJpZ2dlck9wdGlvbnMge1xuICAvKipcbiAgICogQmF0Y2ggY29uZGl0aW9uIGZvciB0aGUgdHJpZ2dlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBiYXRjaCBjb25kaXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QmF0Y2hpbmdDb25kaXRpb24/OiBFdmVudEJhdGNoaW5nQ29uZGl0aW9uO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGEgQ29uZGl0aW9uIChQcmVkaWNhdGUpIGJhc2VkIEdsdWUgVHJpZ2dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25hbFRyaWdnZXJPcHRpb25zIGV4dGVuZHMgRGFpbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25ze1xuICAvKipcbiAgICogVGhlIHByZWRpY2F0ZSBmb3IgdGhlIHRyaWdnZXIuXG4gICAqL1xuICByZWFkb25seSBwcmVkaWNhdGU6IFByZWRpY2F0ZTtcbn1cbiJdfQ==
@@ -209,10 +209,10 @@ class WorkflowBase extends cdk.Resource {
209
209
  renderAction(action) {
210
210
  // Validate that either job or crawler is provided, but not both
211
211
  if (!action.job && !action.crawler) {
212
- throw new Error('You must provide either a job or a crawler for the action.');
212
+ throw new cdk.ValidationError('You must provide either a job or a crawler for the action.', this);
213
213
  }
214
214
  else if (action.job && action.crawler) {
215
- throw new Error('You cannot provide both a job and a crawler for the action.');
215
+ throw new cdk.ValidationError('You cannot provide both a job and a crawler for the action.', this);
216
216
  }
217
217
  return {
218
218
  jobName: action.job?.jobName,
@@ -226,18 +226,18 @@ class WorkflowBase extends cdk.Resource {
226
226
  const conditions = props.predicate.conditions?.map(condition => {
227
227
  // Validate that either job or crawler is provided, but not both
228
228
  if (!condition.job && !condition.crawlerName) {
229
- throw new Error('You must provide either a job or a crawler for the condition.');
229
+ throw new cdk.ValidationError('You must provide either a job or a crawler for the condition.', this);
230
230
  }
231
231
  else if (condition.job && condition.crawlerName) {
232
- throw new Error('You cannot provide both a job and a crawler for the condition.');
232
+ throw new cdk.ValidationError('You cannot provide both a job and a crawler for the condition.', this);
233
233
  }
234
234
  // Validate that if job is provided, job state is also provided
235
235
  if (condition.job && !condition.state) {
236
- throw new Error('If you provide a job for the condition, you must also provide a job state.');
236
+ throw new cdk.ValidationError('If you provide a job for the condition, you must also provide a job state.', this);
237
237
  }
238
238
  // Validate that if crawler is provided, crawler state is also provided
239
239
  if (condition.crawlerName && !condition.crawlState) {
240
- throw new Error('If you provide a crawler for the condition, you must also provide a crawler state.');
240
+ throw new cdk.ValidationError('If you provide a crawler for the condition, you must also provide a crawler state.', this);
241
241
  }
242
242
  return {
243
243
  logicalOperator: condition.logicalOperator ?? constants_1.ConditionLogicalOperator.EQUALS,
@@ -276,7 +276,7 @@ class WorkflowBase extends cdk.Resource {
276
276
  }
277
277
  exports.WorkflowBase = WorkflowBase;
278
278
  _a = JSII_RTTI_SYMBOL_1;
279
- WorkflowBase[_a] = { fqn: "@aws-cdk/aws-glue-alpha.WorkflowBase", version: "2.207.0-alpha.0" };
279
+ WorkflowBase[_a] = { fqn: "@aws-cdk/aws-glue-alpha.WorkflowBase", version: "2.209.0-alpha.0" };
280
280
  /**
281
281
  * This module defines a construct for creating and managing AWS Glue Workflows and Triggers.
282
282
  *
@@ -374,10 +374,10 @@ let Workflow = class Workflow extends WorkflowBase {
374
374
  };
375
375
  exports.Workflow = Workflow;
376
376
  _b = JSII_RTTI_SYMBOL_1;
377
- Workflow[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Workflow", version: "2.207.0-alpha.0" };
377
+ Workflow[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Workflow", version: "2.209.0-alpha.0" };
378
378
  /** Uniquely identifies this class. */
379
379
  Workflow.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Workflow';
380
380
  exports.Workflow = Workflow = __decorate([
381
381
  prop_injectable_1.propertyInjectable
382
382
  ], Workflow);
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBd0M7QUFFeEMsbURBQStEO0FBQy9ELDRDQUdzQjtBQUN0Qix1REFTMkI7QUFDM0IsOEVBQThFO0FBQzlFLDBFQUEwRTtBQTJGMUU7Ozs7R0FJRztBQUNILE1BQXNCLFlBQWEsU0FBUSxHQUFHLENBQUMsUUFBUTtJQUNyRDs7T0FFRztJQUNPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUEyQixFQUFFLFdBQW1CO1FBQ2xGLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUNqQyxXQUFXLEVBQ1gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQWEsQ0FBQztLQUNwRDtJQUtEOzs7Ozs7O09BT0c7SUFDSSxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsT0FBK0I7Ozs7Ozs7Ozs7UUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdkMsR0FBRyxPQUFPO1lBQ1YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxTQUFTO1NBQzlDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLHdCQUF3QixDQUFDLEVBQVUsRUFBRSxPQUFvQzs7Ozs7Ozs7OztRQUM5RSxNQUFNLGFBQWEsR0FBRyxpQ0FBZSxDQUFDLElBQUksQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FB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LGlCQUFpQjtTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuRTs7QUF0RFUsNEJBQVE7OztBQUNuQixzQ0FBc0M7QUFDZiw4QkFBcUIsR0FBVyxrQ0FBa0MsQUFBN0MsQ0FBOEM7bUJBRi9FLFFBQVE7SUFEcEIsb0NBQWtCO0dBQ04sUUFBUSxDQXVEcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuV29ya2Zsb3csIENmblRyaWdnZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQge1xuICBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IsXG4gIFByZWRpY2F0ZUxvZ2ljYWwsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIFRyaWdnZXJTY2hlZHVsZSxcbiAgT25EZW1hbmRUcmlnZ2VyT3B0aW9ucyxcbiAgV2Vla2x5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyxcbiAgRGFpbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zLFxuICBDdXN0b21TY2hlZHVsZWRUcmlnZ2VyT3B0aW9ucyxcbiAgTm90aWZ5RXZlbnRUcmlnZ2VyT3B0aW9ucyxcbiAgQ29uZGl0aW9uYWxUcmlnZ2VyT3B0aW9ucyxcbn0gZnJvbSAnLi90cmlnZ2VyLW9wdGlvbnMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGludGVyZmFjZSBmb3IgR2x1ZSBXb3JrZmxvd1xuICpcbiAqIEBzZWUge0BsaW5rIFdvcmtmbG93fVxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvd29ya2Zsb3dzX292ZXJ2aWV3Lmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV29ya2Zsb3cgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3JrZmxvd1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgd29ya2Zsb3dcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQWRkIGFuIG9uLWRlbWFuZCB0cmlnZ2VyIHRvIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgYWRkT25EZW1hbmRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IE9uRGVtYW5kVHJpZ2dlck9wdGlvbnMpOiBDZm5UcmlnZ2VyO1xuXG4gIC8qKlxuICAgKiBBZGQgYW4gZGFpbHktc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93XG4gICAqL1xuICBhZGREYWlseVNjaGVkdWxlZFRyaWdnZXIoaWQ6IHN0cmluZywgb3B0aW9uczogRGFpbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlcjtcblxuICAvKipcbiAgICogQWRkIGFuIHdlZWtseS1zY2hlZHVsZWQgdHJpZ2dlciB0byB0aGUgd29ya2Zsb3dcbiAgICovXG4gIGFkZFdlZWtseVNjaGVkdWxlZFRyaWdnZXIoaWQ6IHN0cmluZywgb3B0aW9uczogV2Vla2x5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXI7XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBjdXN0b20tc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93XG4gICAqL1xuICBhZGRDdXN0b21TY2hlZHVsZWRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IEN1c3RvbVNjaGVkdWxlZFRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBpbXBvcnRpbmcgYSBXb3JrZmxvdyB1c2luZyBpdHMgYXR0cmlidXRlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cgdG8gaW1wb3J0XG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93IHRvIGltcG9ydFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB0aGUgd29ya2Zsb3cgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXb3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIHByb3BlcnRpZXMgdG8gdXNlIHdoZW4gdGhpcyB3b3JrZmxvdyBpcyBleGVjdXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlZmF1bHQgcnVuIHByb3BlcnRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRSdW5Qcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgcnVucyBhbGxvd2VkIGZvciB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsaW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVudFJ1bnM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgV29ya2Zsb3dcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hYm91dC10cmlnZ2Vycy5odG1sXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrZmxvd0Jhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJV29ya2Zsb3cge1xuICAvKipcbiAgICogRXh0cmFjdCB3b3JrZmxvd05hbWUgZnJvbSBhcm5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgZXh0cmFjdE5hbWVGcm9tQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgd29ya2Zsb3dBcm46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oXG4gICAgICB3b3JrZmxvd0FybixcbiAgICAgIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHdvcmtmbG93QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBvbi1kZW1hbmQgdHJpZ2dlciB0byB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIHRyaWdnZXIuXG4gICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHRyaWdnZXIuXG4gICAqIEB0aHJvd3MgSWYgYm90aCBqb2IgYW5kIGNyYXdsZXIgYXJlIHByb3ZpZGVkLCBvciBpZiBuZWl0aGVyIGpvYiBub3IgY3Jhd2xlciBpcyBwcm92aWRlZC5cbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgQ2ZuVHJpZ2dlciByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRPbkRlbWFuZFRyaWdnZXIoaWQ6IHN0cmluZywgb3B0aW9uczogT25EZW1hbmRUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIge1xuICAgIGNvbnN0IHRyaWdnZXIgPSBuZXcgQ2ZuVHJpZ2dlcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93TmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0eXBlOiAnT05fREVNQU5EJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24gfHwgdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyaWdnZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZGFpbHktc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRGFpbHlTY2hlZHVsZWRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IERhaWx5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIge1xuICAgIGNvbnN0IGRhaWx5U2NoZWR1bGUgPSBUcmlnZ2VyU2NoZWR1bGUuY3Jvbih7XG4gICAgICBtaW51dGU6ICcwJyxcbiAgICAgIGhvdXI6ICcwJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHRyaWdnZXIgPSBuZXcgQ2ZuVHJpZ2dlcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93TmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0eXBlOiAnU0NIRURVTEVEJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgc2NoZWR1bGU6IGRhaWx5U2NoZWR1bGUuZXhwcmVzc2lvblN0cmluZyxcbiAgICAgIHN0YXJ0T25DcmVhdGlvbjogb3B0aW9ucy5zdGFydE9uQ3JlYXRpb24gPz8gZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB3ZWVrbHktc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkV2Vla2x5U2NoZWR1bGVkVHJpZ2dlcihpZDogc3RyaW5nLCBvcHRpb25zOiBXZWVrbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlciB7XG4gICAgY29uc3Qgd2Vla2x5U2NoZWR1bGUgPSBUcmlnZ2VyU2NoZWR1bGUuY3Jvbih7XG4gICAgICBtaW51dGU6ICcwJyxcbiAgICAgIGhvdXI6ICcwJyxcbiAgICAgIHdlZWtEYXk6ICdTVU4nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdHJpZ2dlciA9IG5ldyBDZm5UcmlnZ2VyKHRoaXMsIGlkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcbiAgICAgIHR5cGU6ICdTQ0hFRFVMRUQnLFxuICAgICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zPy5tYXAodGhpcy5yZW5kZXJBY3Rpb24uYmluZCh0aGlzKSksXG4gICAgICBzY2hlZHVsZTogd2Vla2x5U2NoZWR1bGUuZXhwcmVzc2lvblN0cmluZyxcbiAgICAgIHN0YXJ0T25DcmVhdGlvbjogb3B0aW9ucy5zdGFydE9uQ3JlYXRpb24gPz8gZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20tc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkQ3VzdG9tU2NoZWR1bGVkVHJpZ2dlcihpZDogc3RyaW5nLCBvcHRpb25zOiBDdXN0b21TY2hlZHVsZWRUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIge1xuICAgIGNvbnN0IHRyaWdnZXIgPSBuZXcgQ2ZuVHJpZ2dlcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93TmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0eXBlOiAnU0NIRURVTEVEJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgc2NoZWR1bGU6IG9wdGlvbnMuc2NoZWR1bGUuZXhwcmVzc2lvblN0cmluZyxcbiAgICAgIHN0YXJ0T25DcmVhdGlvbjogb3B0aW9ucy5zdGFydE9uQ3JlYXRpb24gPz8gZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gRXZlbnQgQnJpZGdlIGJhc2VkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTm90aWZ5RXZlbnRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IE5vdGlmeUV2ZW50VHJpZ2dlck9wdGlvbnMpOiBDZm5UcmlnZ2VyIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gbmV3IENmblRyaWdnZXIodGhpcywgaWQsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB3b3JrZmxvd05hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxuICAgICAgdHlwZTogJ0VWRU5UJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgZXZlbnRCYXRjaGluZ0NvbmRpdGlvbjogdGhpcy5yZW5kZXJFdmVudEJhdGNoaW5nQ29uZGl0aW9uKG9wdGlvbnMpLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyaWdnZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgQ29uZGl0aW9uIChQcmVkaWNhdGUpIGJhc2VkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQgZm9yIGFueSBjb25kaXRpb24uXG4gICAqIEB0aHJvd3MgSWYgYSBqb2IgaXMgcHJvdmlkZWQgd2l0aG91dCBhIGpvYiBzdGF0ZSwgb3IgaWYgYSBjcmF3bGVyIGlzIHByb3ZpZGVkIHdpdGhvdXQgYSBjcmF3bGVyIHN0YXRlIGZvciBhbnkgY29uZGl0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBDZm5UcmlnZ2VyIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZENvbmRpdGlvbmFsVHJpZ2dlcihpZDogc3RyaW5nLCBvcHRpb25zOiBDb25kaXRpb25hbFRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlciB7XG4gICAgY29uc3QgdHJpZ2dlciA9IG5ldyBDZm5UcmlnZ2VyKHRoaXMsIGlkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcbiAgICAgIHR5cGU6ICdDT05ESVRJT05BTCcsXG4gICAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnM/Lm1hcCh0aGlzLnJlbmRlckFjdGlvbi5iaW5kKHRoaXMpKSxcbiAgICAgIHByZWRpY2F0ZTogdGhpcy5yZW5kZXJQcmVkaWNhdGUob3B0aW9ucyksXG4gICAgICBldmVudEJhdGNoaW5nQ29uZGl0aW9uOiB0aGlzLnJlbmRlckV2ZW50QmF0Y2hpbmdDb25kaXRpb24ob3B0aW9ucyksXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbiA/PyB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogQ2ZuVHJpZ2dlci5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgLy8gVmFsaWRhdGUgdGhhdCBlaXRoZXIgam9iIG9yIGNyYXdsZXIgaXMgcHJvdmlkZWQsIGJ1dCBub3QgYm90aFxuICAgIGlmICghYWN0aW9uLmpvYiAmJiAhYWN0aW9uLmNyYXdsZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYSBqb2Igb3IgYSBjcmF3bGVyIGZvciB0aGUgYWN0aW9uLicpO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLmpvYiAmJiBhY3Rpb24uY3Jhd2xlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHByb3ZpZGUgYm90aCBhIGpvYiBhbmQgYSBjcmF3bGVyIGZvciB0aGUgYWN0aW9uLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBqb2JOYW1lOiBhY3Rpb24uam9iPy5qb2JOYW1lLFxuICAgICAgYXJndW1lbnRzOiBhY3Rpb24uYXJndW1lbnRzLFxuICAgICAgdGltZW91dDogYWN0aW9uLnRpbWVvdXQ/LnRvTWludXRlcygpLFxuICAgICAgc2VjdXJpdHlDb25maWd1cmF0aW9uOiBhY3Rpb24uc2VjdXJpdHlDb25maWd1cmF0aW9uPy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgY3Jhd2xlck5hbWU6IGFjdGlvbi5jcmF3bGVyPy5uYW1lLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclByZWRpY2F0ZShwcm9wczogQ29uZGl0aW9uYWxUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIuUHJlZGljYXRlUHJvcGVydHkge1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBwcm9wcy5wcmVkaWNhdGUuY29uZGl0aW9ucz8ubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IGVpdGhlciBqb2Igb3IgY3Jhd2xlciBpcyBwcm92aWRlZCwgYnV0IG5vdCBib3RoXG4gICAgICBpZiAoIWNvbmRpdGlvbi5qb2IgJiYgIWNvbmRpdGlvbi5jcmF3bGVyTmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGEgam9iIG9yIGEgY3Jhd2xlciBmb3IgdGhlIGNvbmRpdGlvbi4nKTtcbiAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLmpvYiAmJiBjb25kaXRpb24uY3Jhd2xlck5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHByb3ZpZGUgYm90aCBhIGpvYiBhbmQgYSBjcmF3bGVyIGZvciB0aGUgY29uZGl0aW9uLicpO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IGlmIGpvYiBpcyBwcm92aWRlZCwgam9iIHN0YXRlIGlzIGFsc28gcHJvdmlkZWRcbiAgICAgIGlmIChjb25kaXRpb24uam9iICYmICFjb25kaXRpb24uc3RhdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJZiB5b3UgcHJvdmlkZSBhIGpvYiBmb3IgdGhlIGNvbmRpdGlvbiwgeW91IG11c3QgYWxzbyBwcm92aWRlIGEgam9iIHN0YXRlLicpO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IGlmIGNyYXdsZXIgaXMgcHJvdmlkZWQsIGNyYXdsZXIgc3RhdGUgaXMgYWxzbyBwcm92aWRlZFxuICAgICAgaWYgKGNvbmRpdGlvbi5jcmF3bGVyTmFtZSAmJiAhY29uZGl0aW9uLmNyYXdsU3RhdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJZiB5b3UgcHJvdmlkZSBhIGNyYXdsZXIgZm9yIHRoZSBjb25kaXRpb24sIHlvdSBtdXN0IGFsc28gcHJvdmlkZSBhIGNyYXdsZXIgc3RhdGUuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxvZ2ljYWxPcGVyYXRvcjogY29uZGl0aW9uLmxvZ2ljYWxPcGVyYXRvciA/PyBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IuRVFVQUxTLFxuICAgICAgICBqb2JOYW1lOiBjb25kaXRpb24uam9iPy5qb2JOYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgICAgc3RhdGU6IGNvbmRpdGlvbi5zdGF0ZSA/PyB1bmRlZmluZWQsXG4gICAgICAgIGNyYXdsZXJOYW1lOiBjb25kaXRpb24uY3Jhd2xlck5hbWUgPz8gdW5kZWZpbmVkLFxuICAgICAgICBjcmF3bFN0YXRlOiBjb25kaXRpb24uY3Jhd2xTdGF0ZSA/PyB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2ljYWw6IHByb3BzLnByZWRpY2F0ZS5jb25kaXRpb25zPy5sZW5ndGggPT09IDEgPyB1bmRlZmluZWQgOiBwcm9wcy5wcmVkaWNhdGUubG9naWNhbCA/PyBQcmVkaWNhdGVMb2dpY2FsLkFORCxcbiAgICAgIGNvbmRpdGlvbnM6IGNvbmRpdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRXZlbnRCYXRjaGluZ0NvbmRpdGlvbihwcm9wczogTm90aWZ5RXZlbnRUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIuRXZlbnRCYXRjaGluZ0NvbmRpdGlvblByb3BlcnR5IHtcbiAgICBjb25zdCBkZWZhdWx0QmF0Y2hTaXplID0gMTtcbiAgICBjb25zdCBkZWZhdWx0QmF0Y2hXaW5kb3cgPSBjZGsuRHVyYXRpb24uc2Vjb25kcyg5MDApLnRvU2Vjb25kcygpO1xuXG4gICAgaWYgKCFwcm9wcy5ldmVudEJhdGNoaW5nQ29uZGl0aW9uKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYXRjaFNpemU6IGRlZmF1bHRCYXRjaFNpemUsXG4gICAgICAgIGJhdGNoV2luZG93OiBkZWZhdWx0QmF0Y2hXaW5kb3csXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBiYXRjaFNpemU6IHByb3BzLmV2ZW50QmF0Y2hpbmdDb25kaXRpb24uYmF0Y2hTaXplIHx8IGRlZmF1bHRCYXRjaFNpemUsXG4gICAgICBiYXRjaFdpbmRvdzogcHJvcHMuZXZlbnRCYXRjaGluZ0NvbmRpdGlvbi5iYXRjaFdpbmRvdz8udG9TZWNvbmRzKCkgfHwgZGVmYXVsdEJhdGNoV2luZG93LFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRXb3JrZmxvd0FybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIHdvcmtmbG93TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICd3b3JrZmxvdycsXG4gICAgICByZXNvdXJjZU5hbWU6IHdvcmtmbG93TmFtZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYSBjb25zdHJ1Y3QgZm9yIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyBBV1MgR2x1ZSBXb3JrZmxvd3MgYW5kIFRyaWdnZXJzLlxuICpcbiAqIEFXUyBHbHVlIFdvcmtmbG93cyBhcmUgb3JjaGVzdHJhdGlvbiBzZXJ2aWNlcyB0aGF0IGFsbG93IHlvdSB0byBjcmVhdGUsIG1hbmFnZSwgYW5kIG1vbml0b3IgY29tcGxleCBleHRyYWN0LCB0cmFuc2Zvcm0sIGFuZCBsb2FkIChFVEwpIGFjdGl2aXRpZXMgaW52b2x2aW5nIG11bHRpcGxlIGNyYXdsZXJzLCBqb2JzLCBhbmQgdHJpZ2dlcnMuIFdvcmtmbG93cyBhcmUgZGVzaWduZWQgdG8gYWxsb3cgeW91IHRvIG1hbmFnZSBpbnRlcmRlcGVuZGVudCBqb2JzIGFuZCBjcmF3bGVycyBhcyBhIHNpbmdsZSB1bml0LCBtYWtpbmcgaXQgZWFzaWVyIHRvIG9yY2hlc3RyYXRlIGFuZCBtb25pdG9yIGNvbXBsZXggRVRMIHBpcGVsaW5lcy5cbiAqXG4gKiBUcmlnZ2VycyBhcmUgdXNlZCB0byBpbml0aWF0ZSBhbiBBV1MgR2x1ZSBXb3JrZmxvdy4gWW91IGNhbiBjb25maWd1cmUgZGlmZmVyZW50IHR5cGVzIG9mIHRyaWdnZXJzLCBzdWNoIGFzIG9uLWRlbWFuZCwgc2NoZWR1bGVkLCBldmVudC1iYXNlZCwgb3IgY29uZGl0aW9uYWwgdHJpZ2dlcnMsIHRvIHN0YXJ0IHlvdXIgV29ya2Zsb3cgYmFzZWQgb24gc3BlY2lmaWMgY29uZGl0aW9ucyBvciBldmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvd29ya2Zsb3dzX292ZXJ2aWV3Lmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2Fib3V0LXRyaWdnZXJzLmh0bWxcbiAqXG4gKiAjIyBVc2FnZSBFeGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbiAqIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgJ1Rlc3RTdGFjaycpO1xuICpcbiAqIC8vIENyZWF0ZSBhIEdsdWUgSm9iXG4gKiBkZWNsYXJlIGNvbnN0IHJvbGU6IGlhbS5JUm9sZTtcbiAqIGRlY2xhcmUgY29uc3Qgc2NyaXB0OiBnbHVlLkNvZGU7XG4gKiBjb25zdCBqb2IgPSBuZXcgZ2x1ZS5QeVNwYXJrU3RyZWFtaW5nSm9iKHN0YWNrLCAnSW1wb3J0ZWRKb2InLCB7IHJvbGUsIHNjcmlwdCB9KTtcbiAqXG4gKiAvLyBDcmVhdGUgYSBHbHVlIFdvcmtmbG93XG4gKiBjb25zdCB3b3JrZmxvdyA9IG5ldyBnbHVlLldvcmtmbG93KHN0YWNrLCAnVGVzdFdvcmtmbG93Jyk7XG4gKlxuICogLy8gQWRkIGFuIG9uLWRlbWFuZCB0cmlnZ2VyIHRvIHRoZSBXb3JrZmxvd1xuICogd29ya2Zsb3cuYWRkT25EZW1hbmRUcmlnZ2VyKCdPbkRlbWFuZFRyaWdnZXInLCB7XG4gKiAgIGFjdGlvbnM6IFt7IGpvYjogam9iIH1dLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93IGV4dGVuZHMgV29ya2Zsb3dCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5Xb3JrZmxvdyc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIHdvcmtmbG93IGZyb20gaXRzIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVdvcmtmbG93TmFtZShzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHdvcmtmbG93TmFtZTogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiB3b3JrZmxvdyBmcm9tIGl0J3MgbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tV29ya2Zsb3dBcm4oc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCB3b3JrZmxvd0Fybjogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLmV4dHJhY3ROYW1lRnJvbUFybihzY29wZSwgd29ya2Zsb3dBcm4pLFxuICAgICAgd29ya2Zsb3dBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Xb3JrZmxvd0F0dHJpYnV0ZXMoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogV29ya2Zsb3dBdHRyaWJ1dGVzKTogSVdvcmtmbG93IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBXb3JrZmxvd0Jhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93TmFtZSA9IGF0dHJzLndvcmtmbG93TmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd0FybiA9IHRoaXMuYnVpbGRXb3JrZmxvd0FybihzY29wZSwgdGhpcy53b3JrZmxvd05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd0Fybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBXb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzPy53b3JrZmxvd05hbWUsXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5Xb3JrZmxvdyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcz8uZGVzY3JpcHRpb24sXG4gICAgICBkZWZhdWx0UnVuUHJvcGVydGllczogcHJvcHM/LmRlZmF1bHRSdW5Qcm9wZXJ0aWVzLFxuICAgICAgbWF4Q29uY3VycmVudFJ1bnM6IHByb3BzPy5tYXhDb25jdXJyZW50UnVucyxcbiAgICB9KTtcblxuICAgIHRoaXMud29ya2Zsb3dOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLndvcmtmbG93QXJuID0gdGhpcy5idWlsZFdvcmtmbG93QXJuKHRoaXMsIHRoaXMud29ya2Zsb3dOYW1lKTtcbiAgfVxufVxuIl19
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBd0M7QUFFeEMsbURBQStEO0FBQy9ELDRDQUdzQjtBQUN0Qix1REFTMkI7QUFDM0IsOEVBQThFO0FBQzlFLDBFQUEwRTtBQTJGMUU7Ozs7R0FJRztBQUNILE1BQXNCLFlBQWEsU0FBUSxHQUFHLENBQUMsUUFBUTtJQUNyRDs7T0FFRztJQUNPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUEyQixFQUFFLFdBQW1CO1FBQ2xGLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUNqQyxXQUFXLEVBQ1gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQWEsQ0FBQztLQUNwRDtJQUtEOzs7Ozs7O09BT0c7SUFDSSxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsT0FBK0I7Ozs7Ozs7Ozs7UUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdkMsR0FBRyxPQUFPO1lBQ1YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxTQUFTO1NBQzlDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLHdCQUF3QixDQUFDLEVBQVUsRUFBRSxPQUFvQzs7Ozs7Ozs7OztRQUM5RSxNQUFNLGFBQWEsR0FBRyxpQ0FBZSxDQUFDLElBQUksQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FB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RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDdkIsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXO1lBQy9CLG9CQUFvQixFQUFFLEtBQUssRUFBRSxvQkFBb0I7WUFDakQsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQjtTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuRTs7QUF0RFUsNEJBQVE7OztBQUNuQixzQ0FBc0M7QUFDZiw4QkFBcUIsR0FBVyxrQ0FBa0MsQUFBN0MsQ0FBOEM7bUJBRi9FLFFBQVE7SUFEcEIsb0NBQWtCO0dBQ04sUUFBUSxDQXVEcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuV29ya2Zsb3csIENmblRyaWdnZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQge1xuICBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IsXG4gIFByZWRpY2F0ZUxvZ2ljYWwsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIFRyaWdnZXJTY2hlZHVsZSxcbiAgT25EZW1hbmRUcmlnZ2VyT3B0aW9ucyxcbiAgV2Vla2x5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyxcbiAgRGFpbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zLFxuICBDdXN0b21TY2hlZHVsZWRUcmlnZ2VyT3B0aW9ucyxcbiAgTm90aWZ5RXZlbnRUcmlnZ2VyT3B0aW9ucyxcbiAgQ29uZGl0aW9uYWxUcmlnZ2VyT3B0aW9ucyxcbn0gZnJvbSAnLi90cmlnZ2VyLW9wdGlvbnMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGludGVyZmFjZSBmb3IgR2x1ZSBXb3JrZmxvd1xuICpcbiAqIEBzZWUge0BsaW5rIFdvcmtmbG93fVxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvd29ya2Zsb3dzX292ZXJ2aWV3Lmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV29ya2Zsb3cgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3JrZmxvd1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgd29ya2Zsb3dcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQWRkIGFuIG9uLWRlbWFuZCB0cmlnZ2VyIHRvIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgYWRkT25EZW1hbmRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IE9uRGVtYW5kVHJpZ2dlck9wdGlvbnMpOiBDZm5UcmlnZ2VyO1xuXG4gIC8qKlxuICAgKiBBZGQgYW4gZGFpbHktc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93XG4gICAqL1xuICBhZGREYWlseVNjaGVkdWxlZFRyaWdnZXIoaWQ6IHN0cmluZywgb3B0aW9uczogRGFpbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlcjtcblxuICAvKipcbiAgICogQWRkIGFuIHdlZWtseS1zY2hlZHVsZWQgdHJpZ2dlciB0byB0aGUgd29ya2Zsb3dcbiAgICovXG4gIGFkZFdlZWtseVNjaGVkdWxlZFRyaWdnZXIoaWQ6IHN0cmluZywgb3B0aW9uczogV2Vla2x5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXI7XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBjdXN0b20tc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93XG4gICAqL1xuICBhZGRDdXN0b21TY2hlZHVsZWRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IEN1c3RvbVNjaGVkdWxlZFRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBpbXBvcnRpbmcgYSBXb3JrZmxvdyB1c2luZyBpdHMgYXR0cmlidXRlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cgdG8gaW1wb3J0XG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93IHRvIGltcG9ydFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB0aGUgd29ya2Zsb3cgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXb3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIHByb3BlcnRpZXMgdG8gdXNlIHdoZW4gdGhpcyB3b3JrZmxvdyBpcyBleGVjdXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlZmF1bHQgcnVuIHByb3BlcnRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRSdW5Qcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgcnVucyBhbGxvd2VkIGZvciB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsaW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVudFJ1bnM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgV29ya2Zsb3dcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hYm91dC10cmlnZ2Vycy5odG1sXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrZmxvd0Jhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJV29ya2Zsb3cge1xuICAvKipcbiAgICogRXh0cmFjdCB3b3JrZmxvd05hbWUgZnJvbSBhcm5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgZXh0cmFjdE5hbWVGcm9tQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgd29ya2Zsb3dBcm46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oXG4gICAgICB3b3JrZmxvd0FybixcbiAgICAgIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHdvcmtmbG93QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBvbi1kZW1hbmQgdHJpZ2dlciB0byB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIHRyaWdnZXIuXG4gICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHRyaWdnZXIuXG4gICAqIEB0aHJvd3MgSWYgYm90aCBqb2IgYW5kIGNyYXdsZXIgYXJlIHByb3ZpZGVkLCBvciBpZiBuZWl0aGVyIGpvYiBub3IgY3Jhd2xlciBpcyBwcm92aWRlZC5cbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgQ2ZuVHJpZ2dlciByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRPbkRlbWFuZFRyaWdnZXIoaWQ6IHN0cmluZywgb3B0aW9uczogT25EZW1hbmRUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIge1xuICAgIGNvbnN0IHRyaWdnZXIgPSBuZXcgQ2ZuVHJpZ2dlcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93TmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0eXBlOiAnT05fREVNQU5EJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24gfHwgdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyaWdnZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZGFpbHktc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRGFpbHlTY2hlZHVsZWRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IERhaWx5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIge1xuICAgIGNvbnN0IGRhaWx5U2NoZWR1bGUgPSBUcmlnZ2VyU2NoZWR1bGUuY3Jvbih7XG4gICAgICBtaW51dGU6ICcwJyxcbiAgICAgIGhvdXI6ICcwJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHRyaWdnZXIgPSBuZXcgQ2ZuVHJpZ2dlcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93TmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0eXBlOiAnU0NIRURVTEVEJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgc2NoZWR1bGU6IGRhaWx5U2NoZWR1bGUuZXhwcmVzc2lvblN0cmluZyxcbiAgICAgIHN0YXJ0T25DcmVhdGlvbjogb3B0aW9ucy5zdGFydE9uQ3JlYXRpb24gPz8gZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB3ZWVrbHktc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkV2Vla2x5U2NoZWR1bGVkVHJpZ2dlcihpZDogc3RyaW5nLCBvcHRpb25zOiBXZWVrbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlciB7XG4gICAgY29uc3Qgd2Vla2x5U2NoZWR1bGUgPSBUcmlnZ2VyU2NoZWR1bGUuY3Jvbih7XG4gICAgICBtaW51dGU6ICcwJyxcbiAgICAgIGhvdXI6ICcwJyxcbiAgICAgIHdlZWtEYXk6ICdTVU4nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdHJpZ2dlciA9IG5ldyBDZm5UcmlnZ2VyKHRoaXMsIGlkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcbiAgICAgIHR5cGU6ICdTQ0hFRFVMRUQnLFxuICAgICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zPy5tYXAodGhpcy5yZW5kZXJBY3Rpb24uYmluZCh0aGlzKSksXG4gICAgICBzY2hlZHVsZTogd2Vla2x5U2NoZWR1bGUuZXhwcmVzc2lvblN0cmluZyxcbiAgICAgIHN0YXJ0T25DcmVhdGlvbjogb3B0aW9ucy5zdGFydE9uQ3JlYXRpb24gPz8gZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20tc2NoZWR1bGVkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkQ3VzdG9tU2NoZWR1bGVkVHJpZ2dlcihpZDogc3RyaW5nLCBvcHRpb25zOiBDdXN0b21TY2hlZHVsZWRUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIge1xuICAgIGNvbnN0IHRyaWdnZXIgPSBuZXcgQ2ZuVHJpZ2dlcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93TmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0eXBlOiAnU0NIRURVTEVEJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgc2NoZWR1bGU6IG9wdGlvbnMuc2NoZWR1bGUuZXhwcmVzc2lvblN0cmluZyxcbiAgICAgIHN0YXJ0T25DcmVhdGlvbjogb3B0aW9ucy5zdGFydE9uQ3JlYXRpb24gPz8gZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gRXZlbnQgQnJpZGdlIGJhc2VkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIENmblRyaWdnZXIgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTm90aWZ5RXZlbnRUcmlnZ2VyKGlkOiBzdHJpbmcsIG9wdGlvbnM6IE5vdGlmeUV2ZW50VHJpZ2dlck9wdGlvbnMpOiBDZm5UcmlnZ2VyIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gbmV3IENmblRyaWdnZXIodGhpcywgaWQsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB3b3JrZmxvd05hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxuICAgICAgdHlwZTogJ0VWRU5UJyxcbiAgICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucz8ubWFwKHRoaXMucmVuZGVyQWN0aW9uLmJpbmQodGhpcykpLFxuICAgICAgZXZlbnRCYXRjaGluZ0NvbmRpdGlvbjogdGhpcy5yZW5kZXJFdmVudEJhdGNoaW5nQ29uZGl0aW9uKG9wdGlvbnMpLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyaWdnZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgQ29uZGl0aW9uIChQcmVkaWNhdGUpIGJhc2VkIHRyaWdnZXIgdG8gdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKiBAdGhyb3dzIElmIGJvdGggam9iIGFuZCBjcmF3bGVyIGFyZSBwcm92aWRlZCwgb3IgaWYgbmVpdGhlciBqb2Igbm9yIGNyYXdsZXIgaXMgcHJvdmlkZWQgZm9yIGFueSBjb25kaXRpb24uXG4gICAqIEB0aHJvd3MgSWYgYSBqb2IgaXMgcHJvdmlkZWQgd2l0aG91dCBhIGpvYiBzdGF0ZSwgb3IgaWYgYSBjcmF3bGVyIGlzIHByb3ZpZGVkIHdpdGhvdXQgYSBjcmF3bGVyIHN0YXRlIGZvciBhbnkgY29uZGl0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBDZm5UcmlnZ2VyIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZENvbmRpdGlvbmFsVHJpZ2dlcihpZDogc3RyaW5nLCBvcHRpb25zOiBDb25kaXRpb25hbFRyaWdnZXJPcHRpb25zKTogQ2ZuVHJpZ2dlciB7XG4gICAgY29uc3QgdHJpZ2dlciA9IG5ldyBDZm5UcmlnZ2VyKHRoaXMsIGlkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcbiAgICAgIHR5cGU6ICdDT05ESVRJT05BTCcsXG4gICAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnM/Lm1hcCh0aGlzLnJlbmRlckFjdGlvbi5iaW5kKHRoaXMpKSxcbiAgICAgIHByZWRpY2F0ZTogdGhpcy5yZW5kZXJQcmVkaWNhdGUob3B0aW9ucyksXG4gICAgICBldmVudEJhdGNoaW5nQ29uZGl0aW9uOiB0aGlzLnJlbmRlckV2ZW50QmF0Y2hpbmdDb25kaXRpb24ob3B0aW9ucyksXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbiA/PyB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpZ2dlcjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogQ2ZuVHJpZ2dlci5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgLy8gVmFsaWRhdGUgdGhhdCBlaXRoZXIgam9iIG9yIGNyYXdsZXIgaXMgcHJvdmlkZWQsIGJ1dCBub3QgYm90aFxuICAgIGlmICghYWN0aW9uLmpvYiAmJiAhYWN0aW9uLmNyYXdsZXIpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBhIGpvYiBvciBhIGNyYXdsZXIgZm9yIHRoZSBhY3Rpb24uJywgdGhpcyk7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24uam9iICYmIGFjdGlvbi5jcmF3bGVyKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignWW91IGNhbm5vdCBwcm92aWRlIGJvdGggYSBqb2IgYW5kIGEgY3Jhd2xlciBmb3IgdGhlIGFjdGlvbi4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgam9iTmFtZTogYWN0aW9uLmpvYj8uam9iTmFtZSxcbiAgICAgIGFyZ3VtZW50czogYWN0aW9uLmFyZ3VtZW50cyxcbiAgICAgIHRpbWVvdXQ6IGFjdGlvbi50aW1lb3V0Py50b01pbnV0ZXMoKSxcbiAgICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbjogYWN0aW9uLnNlY3VyaXR5Q29uZmlndXJhdGlvbj8uc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZSxcbiAgICAgIGNyYXdsZXJOYW1lOiBhY3Rpb24uY3Jhd2xlcj8ubmFtZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJQcmVkaWNhdGUocHJvcHM6IENvbmRpdGlvbmFsVHJpZ2dlck9wdGlvbnMpOiBDZm5UcmlnZ2VyLlByZWRpY2F0ZVByb3BlcnR5IHtcbiAgICBjb25zdCBjb25kaXRpb25zID0gcHJvcHMucHJlZGljYXRlLmNvbmRpdGlvbnM/Lm1hcChjb25kaXRpb24gPT4ge1xuICAgICAgLy8gVmFsaWRhdGUgdGhhdCBlaXRoZXIgam9iIG9yIGNyYXdsZXIgaXMgcHJvdmlkZWQsIGJ1dCBub3QgYm90aFxuICAgICAgaWYgKCFjb25kaXRpb24uam9iICYmICFjb25kaXRpb24uY3Jhd2xlck5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGEgam9iIG9yIGEgY3Jhd2xlciBmb3IgdGhlIGNvbmRpdGlvbi4nLCB0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLmpvYiAmJiBjb25kaXRpb24uY3Jhd2xlck5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1lvdSBjYW5ub3QgcHJvdmlkZSBib3RoIGEgam9iIGFuZCBhIGNyYXdsZXIgZm9yIHRoZSBjb25kaXRpb24uJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRoYXQgaWYgam9iIGlzIHByb3ZpZGVkLCBqb2Igc3RhdGUgaXMgYWxzbyBwcm92aWRlZFxuICAgICAgaWYgKGNvbmRpdGlvbi5qb2IgJiYgIWNvbmRpdGlvbi5zdGF0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignSWYgeW91IHByb3ZpZGUgYSBqb2IgZm9yIHRoZSBjb25kaXRpb24sIHlvdSBtdXN0IGFsc28gcHJvdmlkZSBhIGpvYiBzdGF0ZS4nLCB0aGlzKTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWRhdGUgdGhhdCBpZiBjcmF3bGVyIGlzIHByb3ZpZGVkLCBjcmF3bGVyIHN0YXRlIGlzIGFsc28gcHJvdmlkZWRcbiAgICAgIGlmIChjb25kaXRpb24uY3Jhd2xlck5hbWUgJiYgIWNvbmRpdGlvbi5jcmF3bFN0YXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdJZiB5b3UgcHJvdmlkZSBhIGNyYXdsZXIgZm9yIHRoZSBjb25kaXRpb24sIHlvdSBtdXN0IGFsc28gcHJvdmlkZSBhIGNyYXdsZXIgc3RhdGUuJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxvZ2ljYWxPcGVyYXRvcjogY29uZGl0aW9uLmxvZ2ljYWxPcGVyYXRvciA/PyBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IuRVFVQUxTLFxuICAgICAgICBqb2JOYW1lOiBjb25kaXRpb24uam9iPy5qb2JOYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgICAgc3RhdGU6IGNvbmRpdGlvbi5zdGF0ZSA/PyB1bmRlZmluZWQsXG4gICAgICAgIGNyYXdsZXJOYW1lOiBjb25kaXRpb24uY3Jhd2xlck5hbWUgPz8gdW5kZWZpbmVkLFxuICAgICAgICBjcmF3bFN0YXRlOiBjb25kaXRpb24uY3Jhd2xTdGF0ZSA/PyB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2ljYWw6IHByb3BzLnByZWRpY2F0ZS5jb25kaXRpb25zPy5sZW5ndGggPT09IDEgPyB1bmRlZmluZWQgOiBwcm9wcy5wcmVkaWNhdGUubG9naWNhbCA/PyBQcmVkaWNhdGVMb2dpY2FsLkFORCxcbiAgICAgIGNvbmRpdGlvbnM6IGNvbmRpdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRXZlbnRCYXRjaGluZ0NvbmRpdGlvbihwcm9wczogTm90aWZ5RXZlbnRUcmlnZ2VyT3B0aW9ucyk6IENmblRyaWdnZXIuRXZlbnRCYXRjaGluZ0NvbmRpdGlvblByb3BlcnR5IHtcbiAgICBjb25zdCBkZWZhdWx0QmF0Y2hTaXplID0gMTtcbiAgICBjb25zdCBkZWZhdWx0QmF0Y2hXaW5kb3cgPSBjZGsuRHVyYXRpb24uc2Vjb25kcyg5MDApLnRvU2Vjb25kcygpO1xuXG4gICAgaWYgKCFwcm9wcy5ldmVudEJhdGNoaW5nQ29uZGl0aW9uKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYXRjaFNpemU6IGRlZmF1bHRCYXRjaFNpemUsXG4gICAgICAgIGJhdGNoV2luZG93OiBkZWZhdWx0QmF0Y2hXaW5kb3csXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBiYXRjaFNpemU6IHByb3BzLmV2ZW50QmF0Y2hpbmdDb25kaXRpb24uYmF0Y2hTaXplIHx8IGRlZmF1bHRCYXRjaFNpemUsXG4gICAgICBiYXRjaFdpbmRvdzogcHJvcHMuZXZlbnRCYXRjaGluZ0NvbmRpdGlvbi5iYXRjaFdpbmRvdz8udG9TZWNvbmRzKCkgfHwgZGVmYXVsdEJhdGNoV2luZG93LFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRXb3JrZmxvd0FybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIHdvcmtmbG93TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICd3b3JrZmxvdycsXG4gICAgICByZXNvdXJjZU5hbWU6IHdvcmtmbG93TmFtZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYSBjb25zdHJ1Y3QgZm9yIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyBBV1MgR2x1ZSBXb3JrZmxvd3MgYW5kIFRyaWdnZXJzLlxuICpcbiAqIEFXUyBHbHVlIFdvcmtmbG93cyBhcmUgb3JjaGVzdHJhdGlvbiBzZXJ2aWNlcyB0aGF0IGFsbG93IHlvdSB0byBjcmVhdGUsIG1hbmFnZSwgYW5kIG1vbml0b3IgY29tcGxleCBleHRyYWN0LCB0cmFuc2Zvcm0sIGFuZCBsb2FkIChFVEwpIGFjdGl2aXRpZXMgaW52b2x2aW5nIG11bHRpcGxlIGNyYXdsZXJzLCBqb2JzLCBhbmQgdHJpZ2dlcnMuIFdvcmtmbG93cyBhcmUgZGVzaWduZWQgdG8gYWxsb3cgeW91IHRvIG1hbmFnZSBpbnRlcmRlcGVuZGVudCBqb2JzIGFuZCBjcmF3bGVycyBhcyBhIHNpbmdsZSB1bml0LCBtYWtpbmcgaXQgZWFzaWVyIHRvIG9yY2hlc3RyYXRlIGFuZCBtb25pdG9yIGNvbXBsZXggRVRMIHBpcGVsaW5lcy5cbiAqXG4gKiBUcmlnZ2VycyBhcmUgdXNlZCB0byBpbml0aWF0ZSBhbiBBV1MgR2x1ZSBXb3JrZmxvdy4gWW91IGNhbiBjb25maWd1cmUgZGlmZmVyZW50IHR5cGVzIG9mIHRyaWdnZXJzLCBzdWNoIGFzIG9uLWRlbWFuZCwgc2NoZWR1bGVkLCBldmVudC1iYXNlZCwgb3IgY29uZGl0aW9uYWwgdHJpZ2dlcnMsIHRvIHN0YXJ0IHlvdXIgV29ya2Zsb3cgYmFzZWQgb24gc3BlY2lmaWMgY29uZGl0aW9ucyBvciBldmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvd29ya2Zsb3dzX292ZXJ2aWV3Lmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2Fib3V0LXRyaWdnZXJzLmh0bWxcbiAqXG4gKiAjIyBVc2FnZSBFeGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbiAqIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgJ1Rlc3RTdGFjaycpO1xuICpcbiAqIC8vIENyZWF0ZSBhIEdsdWUgSm9iXG4gKiBkZWNsYXJlIGNvbnN0IHJvbGU6IGlhbS5JUm9sZTtcbiAqIGRlY2xhcmUgY29uc3Qgc2NyaXB0OiBnbHVlLkNvZGU7XG4gKiBjb25zdCBqb2IgPSBuZXcgZ2x1ZS5QeVNwYXJrU3RyZWFtaW5nSm9iKHN0YWNrLCAnSW1wb3J0ZWRKb2InLCB7IHJvbGUsIHNjcmlwdCB9KTtcbiAqXG4gKiAvLyBDcmVhdGUgYSBHbHVlIFdvcmtmbG93XG4gKiBjb25zdCB3b3JrZmxvdyA9IG5ldyBnbHVlLldvcmtmbG93KHN0YWNrLCAnVGVzdFdvcmtmbG93Jyk7XG4gKlxuICogLy8gQWRkIGFuIG9uLWRlbWFuZCB0cmlnZ2VyIHRvIHRoZSBXb3JrZmxvd1xuICogd29ya2Zsb3cuYWRkT25EZW1hbmRUcmlnZ2VyKCdPbkRlbWFuZFRyaWdnZXInLCB7XG4gKiAgIGFjdGlvbnM6IFt7IGpvYjogam9iIH1dLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93IGV4dGVuZHMgV29ya2Zsb3dCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5Xb3JrZmxvdyc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIHdvcmtmbG93IGZyb20gaXRzIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVdvcmtmbG93TmFtZShzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHdvcmtmbG93TmFtZTogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiB3b3JrZmxvdyBmcm9tIGl0J3MgbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tV29ya2Zsb3dBcm4oc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCB3b3JrZmxvd0Fybjogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLmV4dHJhY3ROYW1lRnJvbUFybihzY29wZSwgd29ya2Zsb3dBcm4pLFxuICAgICAgd29ya2Zsb3dBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Xb3JrZmxvd0F0dHJpYnV0ZXMoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogV29ya2Zsb3dBdHRyaWJ1dGVzKTogSVdvcmtmbG93IHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBXb3JrZmxvd0Jhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93TmFtZSA9IGF0dHJzLndvcmtmbG93TmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd0FybiA9IHRoaXMuYnVpbGRXb3JrZmxvd0FybihzY29wZSwgdGhpcy53b3JrZmxvd05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd0Fybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBXb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzPy53b3JrZmxvd05hbWUsXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5Xb3JrZmxvdyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcz8uZGVzY3JpcHRpb24sXG4gICAgICBkZWZhdWx0UnVuUHJvcGVydGllczogcHJvcHM/LmRlZmF1bHRSdW5Qcm9wZXJ0aWVzLFxuICAgICAgbWF4Q29uY3VycmVudFJ1bnM6IHByb3BzPy5tYXhDb25jdXJyZW50UnVucyxcbiAgICB9KTtcblxuICAgIHRoaXMud29ya2Zsb3dOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLndvcmtmbG93QXJuID0gdGhpcy5idWlsZFdvcmtmbG93QXJuKHRoaXMsIHRoaXMud29ya2Zsb3dOYW1lKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-glue-alpha",
3
- "version": "2.207.0-alpha.0",
3
+ "version": "2.209.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for AWS::Glue",
6
6
  "main": "lib/index.js",
@@ -81,22 +81,22 @@
81
81
  },
82
82
  "license": "Apache-2.0",
83
83
  "devDependencies": {
84
- "@aws-cdk/cdk-build-tools": "2.207.0-alpha.0",
85
- "@aws-cdk/integ-runner": "^2.188.3",
86
- "@aws-cdk/integ-tests-alpha": "2.207.0-alpha.0",
87
- "@aws-cdk/pkglint": "2.207.0-alpha.0",
84
+ "@aws-cdk/cdk-build-tools": "2.209.0-alpha.0",
85
+ "@aws-cdk/integ-runner": "^2.189.2",
86
+ "@aws-cdk/integ-tests-alpha": "2.209.0-alpha.0",
87
+ "@aws-cdk/pkglint": "2.209.0-alpha.0",
88
88
  "@types/jest": "^29.5.14",
89
- "aws-cdk-lib": "2.207.0",
89
+ "aws-cdk-lib": "2.209.0",
90
90
  "constructs": "^10.0.0",
91
91
  "jest": "^29.7.0"
92
92
  },
93
93
  "homepage": "https://github.com/aws/aws-cdk",
94
94
  "peerDependencies": {
95
- "aws-cdk-lib": "^2.207.0",
95
+ "aws-cdk-lib": "^2.209.0",
96
96
  "constructs": "^10.0.0"
97
97
  },
98
98
  "engines": {
99
- "node": ">= 14.15.0"
99
+ "node": ">= 18.0.0"
100
100
  },
101
101
  "stability": "experimental",
102
102
  "maturity": "experimental",