parse-server 9.5.2-alpha.2 → 9.5.2-alpha.4

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.
@@ -9,4 +9,4 @@ var _PubSubAdapter = require("../Adapters/PubSub/PubSubAdapter");
9
9
  var _StorageAdapter = require("../Adapters/Storage/StorageAdapter");
10
10
  var _WSSAdapter = require("../Adapters/WebSocketServer/WSSAdapter");
11
11
  var _CheckGroup = require("../Security/CheckGroup");
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQW5hbHl0aWNzQWRhcHRlciIsInJlcXVpcmUiLCJfQ2FjaGVBZGFwdGVyIiwiX01haWxBZGFwdGVyIiwiX0ZpbGVzQWRhcHRlciIsIl9Mb2dnZXJBZGFwdGVyIiwiX1B1YlN1YkFkYXB0ZXIiLCJfU3RvcmFnZUFkYXB0ZXIiLCJfV1NTQWRhcHRlciIsIl9DaGVja0dyb3VwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL09wdGlvbnMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbmltcG9ydCB7IEFuYWx5dGljc0FkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9BbmFseXRpY3MvQW5hbHl0aWNzQWRhcHRlcic7XG5pbXBvcnQgeyBDYWNoZUFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgTWFpbEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9FbWFpbC9NYWlsQWRhcHRlcic7XG5pbXBvcnQgeyBGaWxlc0FkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9GaWxlc0FkYXB0ZXInO1xuaW1wb3J0IHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0xvZ2dlci9Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IFB1YlN1YkFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9QdWJTdWIvUHViU3ViQWRhcHRlcic7XG5pbXBvcnQgeyBTdG9yYWdlQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IHsgV1NTQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL1dlYlNvY2tldFNlcnZlci9XU1NBZGFwdGVyJztcbmltcG9ydCB7IENoZWNrR3JvdXAgfSBmcm9tICcuLi9TZWN1cml0eS9DaGVja0dyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2hlbWFPcHRpb25zIHtcbiAgLyogUmVzdCByZXByZXNlbnRhdGlvbiBvbiBQYXJzZS5TY2hlbWEgaHR0cHM6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3Jlc3QvZ3VpZGUvI2FkZGluZy1hLXNjaGVtYVxuICA6REVGQVVMVDogW10gKi9cbiAgZGVmaW5pdGlvbnM6IGFueTtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGV4aXQgaWYgc2NoZW1hIHVwZGF0ZSBmYWlsLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgc3RyaWN0OiA/Ym9vbGVhbjtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGRlbGV0ZSBhbnkgZmllbGRzIG5vdCBkZWZpbmVkIGluIGEgc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBkZWxldGVFeHRyYUZpZWxkczogP2Jvb2xlYW47XG4gIC8qIElzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCByZWNyZWF0ZSBhbnkgZmllbGRzIHRoYXQgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBjdXJyZW50IGRhdGFiYXNlIHNjaGVtYSBhbmQgdGhlc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICByZWNyZWF0ZU1vZGlmaWVkRmllbGRzOiA/Ym9vbGVhbjtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgd2lsbCByZWplY3QgYW55IGF0dGVtcHRzIHRvIG1vZGlmeSB0aGUgc2NoZW1hIHdoaWxlIHRoZSBzZXJ2ZXIgaXMgcnVubmluZy5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGxvY2tTY2hlbWFzOiA/Ym9vbGVhbjtcbiAgLyogKE9wdGlvbmFsKSBLZWVwIGluZGV4ZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgZGF0YWJhc2UgYnV0IG5vdCBkZWZpbmVkIGluIHRoZSBzY2hlbWEuIFNldCB0aGlzIHRvIGB0cnVlYCBpZiB5b3UgYXJlIGFkZGluZyBpbmRleGVzIG1hbnVhbGx5LCBzbyB0aGF0IHRoZXkgd29uJ3QgYmUgcmVtb3ZlZCB3aGVuIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbi4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAga2VlcFVua25vd25JbmRleGVzOiA/Ym9vbGVhbjtcbiAgLyogRXhlY3V0ZSBhIGNhbGxiYWNrIGJlZm9yZSBydW5uaW5nIHNjaGVtYSBtaWdyYXRpb25zLiAqL1xuICBiZWZvcmVNaWdyYXRpb246ID8oKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgLyogRXhlY3V0ZSBhIGNhbGxiYWNrIGFmdGVyIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuICovXG4gIGFmdGVyTWlncmF0aW9uOiA/KCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG59XG5cbnR5cGUgQWRhcHRlcjxUPiA9IHN0cmluZyB8IGFueSB8IFQ7XG50eXBlIE51bWJlck9yQm9vbGVhbiA9IG51bWJlciB8IGJvb2xlYW47XG50eXBlIE51bWJlck9yU3RyaW5nID0gbnVtYmVyIHwgc3RyaW5nO1xudHlwZSBQcm90ZWN0ZWRGaWVsZHMgPSBhbnk7XG50eXBlIFN0cmluZ09yU3RyaW5nQXJyYXkgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbnR5cGUgUmVxdWVzdEtleXdvcmREZW55bGlzdCA9IHtcbiAga2V5OiBzdHJpbmcgfCBhbnksXG4gIHZhbHVlOiBhbnksXG59O1xudHlwZSBFbWFpbFZlcmlmaWNhdGlvblJlcXVlc3QgPSB7XG4gIG9yaWdpbmFsPzogYW55LFxuICBvYmplY3Q6IGFueSxcbiAgbWFzdGVyPzogYm9vbGVhbixcbiAgaXA/OiBzdHJpbmcsXG4gIGluc3RhbGxhdGlvbklkPzogc3RyaW5nLFxuICBjcmVhdGVkV2l0aD86IHtcbiAgICBhY3Rpb246ICdsb2dpbicgfCAnc2lnbnVwJyxcbiAgICBhdXRoUHJvdmlkZXI6IHN0cmluZyxcbiAgfSxcbiAgcmVzZW5kUmVxdWVzdD86IGJvb2xlYW4sXG59O1xudHlwZSBTZW5kRW1haWxWZXJpZmljYXRpb25SZXF1ZXN0ID0ge1xuICB1c2VyOiBhbnksXG4gIG1hc3Rlcj86IGJvb2xlYW4sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlU2VydmVyT3B0aW9ucyB7XG4gIC8qIFlvdXIgUGFyc2UgQXBwbGljYXRpb24gSURcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0FQUExJQ0FUSU9OX0lEICovXG4gIGFwcElkOiBzdHJpbmc7XG4gIC8qIFlvdXIgUGFyc2UgTWFzdGVyIEtleSAqL1xuICBtYXN0ZXJLZXk6ICgoKSA9PiB2b2lkKSB8IHN0cmluZztcbiAgLyogKE9wdGlvbmFsKSBUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3Igd2hpY2ggdGhlIGN1cnJlbnQgYG1hc3RlcktleWAgaXMgYmVpbmcgdXNlZCBiZWZvcmUgaXQgaXMgcmVxdWVzdGVkIGFnYWluIGlmIGBtYXN0ZXJLZXlgIGlzIHNldCB0byBhIGZ1bmN0aW9uLiBJZiBgbWFzdGVyS2V5YCBpcyBub3Qgc2V0IHRvIGEgZnVuY3Rpb24sIHRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QuIERlZmF1bHQgaXMgYDBgLCB3aGljaCBtZWFucyB0aGUgbWFzdGVyIGtleSBpcyByZXF1ZXN0ZWQgYnkgaW52b2tpbmcgdGhlICBgbWFzdGVyS2V5YCBmdW5jdGlvbiBldmVyeSB0aW1lIHRoZSBtYXN0ZXIga2V5IGlzIHVzZWQgaW50ZXJuYWxseSBieSBQYXJzZSBTZXJ2ZXIuICovXG4gIG1hc3RlcktleVR0bDogP251bWJlcjtcbiAgLyogKE9wdGlvbmFsKSBUaGUgbWFpbnRlbmFuY2Uga2V5IGlzIHVzZWQgZm9yIG1vZGlmeWluZyBpbnRlcm5hbCBhbmQgcmVhZC1vbmx5IGZpZWxkcyBvZiBQYXJzZSBTZXJ2ZXIuPGJyPjxicj7imqDvuI8gVGhpcyBrZXkgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgYXMgcGFydCBvZiBhIHJlZ3VsYXIgb3BlcmF0aW9uIG9mIFBhcnNlIFNlcnZlci4gVGhpcyBrZXkgaXMgaW50ZW5kZWQgdG8gY29uZHVjdCBvdXQtb2YtYmFuZCBjaGFuZ2VzIHN1Y2ggYXMgb25lLXRpbWUgbWlncmF0aW9ucyBvciBkYXRhIGNvcnJlY3Rpb24gdGFza3MuIEludGVybmFsIGZpZWxkcyBhcmUgbm90IG9mZmljaWFsbHkgZG9jdW1lbnRlZCBhbmQgbWF5IGNoYW5nZSBhdCBhbnkgdGltZSB3aXRob3V0IHB1YmxpY2F0aW9uIGluIHJlbGVhc2UgY2hhbmdlbG9ncy4gV2Ugc3Ryb25nbHkgYWR2aWNlIG5vdCB0byByZWx5IG9uIGludGVybmFsIGZpZWxkcyBhcyBwYXJ0IG9mIHlvdXIgcmVndWxhciBvcGVyYXRpb24gYW5kIHRvIGludmVzdGlnYXRlIHRoZSBpbXBsaWNhdGlvbnMgb2YgYW55IHBsYW5uZWQgY2hhbmdlcyAqZGlyZWN0bHkgaW4gdGhlIHNvdXJjZSBjb2RlKiBvZiB5b3VyIGN1cnJlbnQgdmVyc2lvbiBvZiBQYXJzZSBTZXJ2ZXIuICovXG4gIG1haW50ZW5hbmNlS2V5OiBzdHJpbmc7XG4gIC8qIFRoZSBVUkwgdG8gUGFyc2UgU2VydmVyLjxicj48YnI+4pqg77iPIENlcnRhaW4gc2VydmVyIGZlYXR1cmVzIG9yIGFkYXB0ZXJzIG1heSByZXF1aXJlIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC4gSWYgYSBmZWF0dXJlIHJlcXVpcmVzIHRoaXMsIGl0IGlzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSW4gdGhhdCBjYXNlIGVuc3VyZSB0aGF0IHRoZSBVUkwgaXMgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLlxuICA6RU5WOiBQQVJTRV9TRVJWRVJfVVJMICovXG4gIHNlcnZlclVSTDogc3RyaW5nO1xuICAvKiBQYXJzZSBTZXJ2ZXIgbWFrZXMgYSBIVFRQIHJlcXVlc3QgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAgYXQgdGhlIGVuZCBvZiBpdHMgbGF1bmNoIHJvdXRpbmUgdG8gdmVyaWZ5IHRoYXQgdGhlIGxhdW5jaCBzdWNjZWVkZWQuIElmIHRoaXMgb3B0aW9uIGlzIHNldCB0byBgZmFsc2VgLCB0aGUgdmVyaWZpY2F0aW9uIHdpbGwgYmUgc2tpcHBlZC4gVGhpcyBjYW4gYmUgdXNlZnVsIGluIGVudmlyb25tZW50cyB3aGVyZSB0aGUgc2VydmVyIFVSTCBpcyBub3QgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLCBzdWNoIGFzIHdoZW4gcnVubmluZyBiZWhpbmQgYSBmaXJld2FsbCBvciBpbiBjZXJ0YWluIGNvbnRhaW5lcml6ZWQgZW52aXJvbm1lbnRzLjxicj48YnI+4pqg77iPIFNlcnZlciBVUkwgdmVyaWZpY2F0aW9uIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICB2ZXJpZnlTZXJ2ZXJVcmw6ID9ib29sZWFuO1xuICAvKiAoT3B0aW9uYWwpIFJlc3RyaWN0cyB0aGUgdXNlIG9mIG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1hc3RlciBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFzdGVyIGtleSBhbmQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgdGhlIElQIGZpbHRlci48YnI+PGJyPjxiPkNvbnNpZGVyYXRpb25zOjwvYj48YnI+LSBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhcmUgbm90IGNvbXBhcmVkIGFnYWluc3QgZWFjaCBvdGhlci4gRWFjaCBJUCB2ZXJzaW9uIChJUHY0IGFuZCBJUHY2KSBuZWVkcyB0byBiZSBjb25zaWRlcmVkIHNlcGFyYXRlbHkuIEZvciBleGFtcGxlLCBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIGFueSBJUHY0IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY2IGFkZHJlc3MuIENvbnZlcnNlbHksIGBbJzo6MCddYCBhbGxvd3MgYW55IElQdjYgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjQgYWRkcmVzcy48YnI+LSBLZWVwIGluIG1pbmQgdGhhdCB0aGUgSVAgdmVyc2lvbiBpbiB1c2UgZGVwZW5kcyBvbiB0aGUgbmV0d29yayBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMuIEEgbG9jYWwgZW52aXJvbm1lbnQgbWF5IHVzZSBhIGRpZmZlcmVudCBJUCB2ZXJzaW9uIHRoYW4gYSByZW1vdGUgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRoYXQgbG9jYWxseSB0aGUgdmFsdWUgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyB0aGUgcmVxdWVzdCBJUCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY0LCBidXQgd2hlbiBQYXJzZSBTZXJ2ZXIgaXMgZGVwbG95ZWQgcmVtb3RlbHkgdGhlIHJlcXVlc3QgSVAgaXMgYmxvY2tlZCBiZWNhdXNlIHRoZSByZW1vdGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2Ni48YnI+LSBXaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdGhlIG5vdGF0aW9uIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgZm9yIGV4YW1wbGUgYFwiMC4wLjAuMC8wLDo6MFwiYC48YnI+LSBJUHY2IHpvbmUgaW5kaWNlcyAoYCVgIHN1ZmZpeCkgYXJlIG5vdCBzdXBwb3J0ZWQsIGZvciBleGFtcGxlIGBmZTgwOjoxJWV0aDBgLCBgZmU4MDo6MSUxYCBvciBgOjoxJWxvYC48YnI+PGJyPkRlZmF1bHRzIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgd2hpY2ggbWVhbnMgdGhhdCBvbmx5IGBsb2NhbGhvc3RgLCB0aGUgc2VydmVyIGluc3RhbmNlIG9uIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgbWFzdGVyIGtleS5cbiAgOkRFRkFVTFQ6IFtcIjEyNy4wLjAuMVwiLFwiOjoxXCJdICovXG4gIG1hc3RlcktleUlwczogPyhzdHJpbmdbXSk7XG4gIC8qIChPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgbWFpbnRlbmFuY2Uga2V5IHBlcm1pc3Npb25zIHRvIGEgbGlzdCBvZiBJUCBhZGRyZXNzZXMgb3IgcmFuZ2VzLjxicj48YnI+VGhpcyBvcHRpb24gYWNjZXB0cyBhIGxpc3Qgb2Ygc2luZ2xlIElQIGFkZHJlc3NlcywgZm9yIGV4YW1wbGUgYFsnMTAuMC4wLjEnLCAnMTAuMC4wLjInXWAuIFlvdSBjYW4gYWxzbyB1c2UgQ0lEUiBub3RhdGlvbiB0byBzcGVjaWZ5IGFuIElQIGFkZHJlc3MgcmFuZ2UsIGZvciBleGFtcGxlIGBbJzEwLjAuMS4wLzI0J11gLjxicj48YnI+PGI+U3BlY2lhbCBzY2VuYXJpb3M6PC9iPjxicj4tIFNldHRpbmcgYW4gZW1wdHkgYXJyYXkgYFtdYCBtZWFucyB0aGF0IHRoZSBtYWludGVuYW5jZSBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFpbnRlbmFuY2Uga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXCIwLjAuMC4wLzAsOjowXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMTI3LjAuMC4xJywgJzo6MSddYCB3aGljaCBtZWFucyB0aGF0IG9ubHkgYGxvY2FsaG9zdGAsIHRoZSBzZXJ2ZXIgaW5zdGFuY2Ugb24gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMsIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSBtYWludGVuYW5jZSBrZXkuXG4gIDpERUZBVUxUOiBbXCIxMjcuMC4wLjFcIixcIjo6MVwiXSAqL1xuICBtYWludGVuYW5jZUtleUlwczogPyhzdHJpbmdbXSk7XG4gIC8qIChPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgcmVhZC1vbmx5IG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGNhbm5vdCBiZSB1c2VkIGV2ZW4gaW4gUGFyc2UgU2VydmVyIENsb3VkIENvZGUuIFRoaXMgdmFsdWUgY2Fubm90IGJlIHNldCB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MgYW4gZW1wdHkgYXJyYXkgdG8gUGFyc2UgU2VydmVyIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+LSBTZXR0aW5nIGBbJzAuMC4wLjAvMCcsICc6OjAnXWAgbWVhbnMgdG8gYWxsb3cgYW55IElQdjQgYW5kIElQdjYgYWRkcmVzcyB0byB1c2UgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXCIwLjAuMC4wLzAsOjowXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMC4wLjAuMC8wJywgJzo6MCddYCB3aGljaCBtZWFucyB0aGF0IGFueSBJUCBhZGRyZXNzIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIGBsb2NhbGhvc3RgLlxuICA6REVGQVVMVDogW1wiMC4wLjAuMC8wXCIsXCI6OjBcIl0gKi9cbiAgcmVhZE9ubHlNYXN0ZXJLZXlJcHM6ID8oc3RyaW5nW10pO1xuICAvKiBTZXRzIHRoZSBhcHAgbmFtZSAqL1xuICBhcHBOYW1lOiA/c3RyaW5nO1xuICAvKiBBZGQgaGVhZGVycyB0byBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzICovXG4gIGFsbG93SGVhZGVyczogPyhzdHJpbmdbXSk7XG4gIC8qIFNldHMgb3JpZ2lucyBmb3IgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBUaGlzIGNhbiBiZSBhIHN0cmluZyBmb3IgYSBzaW5nbGUgb3JpZ2luIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MgZm9yIG11bHRpcGxlIG9yaWdpbnMuICovXG4gIGFsbG93T3JpZ2luOiA/U3RyaW5nT3JTdHJpbmdBcnJheTtcbiAgLyogQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBhbmFseXRpY3MgKi9cbiAgYW5hbHl0aWNzQWRhcHRlcjogP0FkYXB0ZXI8QW5hbHl0aWNzQWRhcHRlcj47XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZmlsZXMgc3ViLXN5c3RlbSAqL1xuICBmaWxlc0FkYXB0ZXI6ID9BZGFwdGVyPEZpbGVzQWRhcHRlcj47XG4gIC8qIENvbmZpZ3VyYXRpb24gZm9yIHB1c2gsIGFzIHN0cmluZ2lmaWVkIEpTT04uIFNlZSBodHRwOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9wYXJzZS1zZXJ2ZXIvZ3VpZGUvI3B1c2gtbm90aWZpY2F0aW9ucyAqL1xuICBwdXNoOiA/YW55O1xuICAvKiBDb25maWd1cmF0aW9uIGZvciBwdXNoIHNjaGVkdWxpbmcsIGRlZmF1bHRzIHRvIGZhbHNlLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgc2NoZWR1bGVkUHVzaDogP2Jvb2xlYW47XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgbG9nZ2luZyBzdWItc3lzdGVtICovXG4gIGxvZ2dlckFkYXB0ZXI6ID9BZGFwdGVyPExvZ2dlckFkYXB0ZXI+O1xuICAvKiBMb2cgYXMgc3RydWN0dXJlZCBKU09OIG9iamVjdHNcbiAgOkVOVjogSlNPTl9MT0dTICovXG4gIGpzb25Mb2dzOiA/Ym9vbGVhbjtcbiAgLyogRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1xuICA6RU5WOiBQQVJTRV9TRVJWRVJfTE9HU19GT0xERVJcbiAgOkRFRkFVTFQ6IC4vbG9ncyAqL1xuICBsb2dzRm9sZGVyOiA/c3RyaW5nO1xuICAvKiBTZXQgdGhlIGxvZ2dpbmcgdG8gdmVyYm9zZVxuICA6RU5WOiBWRVJCT1NFICovXG4gIHZlcmJvc2U6ID9ib29sZWFuO1xuICAvKiBTZXRzIHRoZSBsZXZlbCBmb3IgbG9ncyAqL1xuICBsb2dMZXZlbDogP3N0cmluZztcbiAgLyogKE9wdGlvbmFsKSBPdmVycmlkZXMgdGhlIGxvZyBsZXZlbHMgdXNlZCBpbnRlcm5hbGx5IGJ5IFBhcnNlIFNlcnZlciB0byBsb2cgZXZlbnRzLlxuICA6REVGQVVMVDoge30gKi9cbiAgbG9nTGV2ZWxzOiA/TG9nTGV2ZWxzO1xuICAvKiBNYXhpbXVtIG51bWJlciBvZiBsb2dzIHRvIGtlZXAuIElmIG5vdCBzZXQsIG5vIGxvZ3Mgd2lsbCBiZSByZW1vdmVkLiBUaGlzIGNhbiBiZSBhIG51bWJlciBvZiBmaWxlcyBvciBudW1iZXIgb2YgZGF5cy4gSWYgdXNpbmcgZGF5cywgYWRkICdkJyBhcyB0aGUgc3VmZml4LiAoZGVmYXVsdDogbnVsbCkgKi9cbiAgbWF4TG9nRmlsZXM6ID9OdW1iZXJPclN0cmluZztcbiAgLyogRGlzYWJsZXMgY29uc29sZSBvdXRwdXRcbiAgOkVOVjogU0lMRU5UICovXG4gIHNpbGVudDogP2Jvb2xlYW47XG4gIC8qIFRoZSBmdWxsIFVSSSB0byB5b3VyIGRhdGFiYXNlLiBTdXBwb3J0ZWQgZGF0YWJhc2VzIGFyZSBtb25nb2RiIG9yIHBvc3RncmVzLlxuICA6REVGQVVMVDogbW9uZ29kYjovL2xvY2FsaG9zdDoyNzAxNy9wYXJzZSAqL1xuICBkYXRhYmFzZVVSSTogc3RyaW5nO1xuICAvKiBPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGRhdGFiYXNlIGNsaWVudFxuICA6RU5WOiBQQVJTRV9TRVJWRVJfREFUQUJBU0VfT1BUSU9OUyAqL1xuICBkYXRhYmFzZU9wdGlvbnM6ID9EYXRhYmFzZU9wdGlvbnM7XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZGF0YWJhc2U7IGFueSBvcHRpb25zIHRoYXQgYXJlIG5vdCBleHBsaWNpdGx5IGRlc2NyaWJlZCBoZXJlIGFyZSBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIGRhdGFiYXNlIGNsaWVudC4gKi9cbiAgZGF0YWJhc2VBZGFwdGVyOiA/QWRhcHRlcjxTdG9yYWdlQWRhcHRlcj47XG4gIC8qIE9wdGlvbmFsLiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgY29sbGF0aW9uIHJ1bGUgb2YgY2FzZSBjb21wYXJpc29uIGZvciBxdWVyaWVzIGFuZCBpbmRleGVzIGlzIGVuYWJsZWQuIEVuYWJsZSB0aGlzIG9wdGlvbiB0byBydW4gUGFyc2UgU2VydmVyIHdpdGggTW9uZ29EQiBBdGxhcyBTZXJ2ZXJsZXNzIG9yIEFXUyBBbWF6b24gRG9jdW1lbnREQi4gSWYgYGZhbHNlYCwgdGhlIGNvbGxhdGlvbiBydWxlIG9mIGNhc2UgY29tcGFyaXNvbiBpcyBkaXNhYmxlZC4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb246ID9ib29sZWFuO1xuICAvKiBPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGBlbWFpbGAgcHJvcGVydHkgb2YgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGxvd2VyY2FzZSBiZWZvcmUgYmVpbmcgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gQ29uc2VxdWVudGx5LCBxdWVyaWVzIG11c3QgbWF0Y2ggdGhlIGNhc2UgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgd2hpY2ggd291bGQgYmUgbG93ZXJjYXNlIGluIHRoaXMgc2NlbmFyaW8uIElmIGBmYWxzZWAsIHRoZSBgZW1haWxgIHByb3BlcnR5IGlzIHN0b3JlZCBhcyBzZXQsIHdpdGhvdXQgYW55IGNhc2UgbW9kaWZpY2F0aW9ucy4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgY29udmVydEVtYWlsVG9Mb3dlcmNhc2U6ID9ib29sZWFuO1xuICAvKiBPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGB1c2VybmFtZWAgcHJvcGVydHkgb2YgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGxvd2VyY2FzZSBiZWZvcmUgYmVpbmcgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gQ29uc2VxdWVudGx5LCBxdWVyaWVzIG11c3QgbWF0Y2ggdGhlIGNhc2UgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgd2hpY2ggd291bGQgYmUgbG93ZXJjYXNlIGluIHRoaXMgc2NlbmFyaW8uIElmIGBmYWxzZWAsIHRoZSBgdXNlcm5hbWVgIHByb3BlcnR5IGlzIHN0b3JlZCBhcyBzZXQsIHdpdGhvdXQgYW55IGNhc2UgbW9kaWZpY2F0aW9ucy4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgY29udmVydFVzZXJuYW1lVG9Mb3dlcmNhc2U6ID9ib29sZWFuO1xuICAvKiBGdWxsIHBhdGggdG8geW91ciBjbG91ZCBjb2RlIG1haW4uanMgKi9cbiAgY2xvdWQ6ID9zdHJpbmc7XG4gIC8qIEEgY29sbGVjdGlvbiBwcmVmaXggZm9yIHRoZSBjbGFzc2VzXG4gIDpERUZBVUxUOiAnJyAqL1xuICBjb2xsZWN0aW9uUHJlZml4OiA/c3RyaW5nO1xuICAvKiBLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cyAqL1xuICBjbGllbnRLZXk6ID9zdHJpbmc7XG4gIC8qIEtleSBmb3IgdGhlIEphdmFzY3JpcHQgU0RLICovXG4gIGphdmFzY3JpcHRLZXk6ID9zdHJpbmc7XG4gIC8qIEtleSBmb3IgVW5pdHkgYW5kIC5OZXQgU0RLICovXG4gIGRvdE5ldEtleTogP3N0cmluZztcbiAgLyogS2V5IGZvciBlbmNyeXB0aW5nIHlvdXIgZmlsZXNcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0VOQ1JZUFRJT05fS0VZICovXG4gIGVuY3J5cHRpb25LZXk6ID9zdHJpbmc7XG4gIC8qIEtleSBmb3IgUkVTVCBjYWxsc1xuICA6RU5WOiBQQVJTRV9TRVJWRVJfUkVTVF9BUElfS0VZICovXG4gIHJlc3RBUElLZXk6ID9zdHJpbmc7XG4gIC8qIFJlYWQtb25seSBrZXksIHdoaWNoIGhhcyB0aGUgc2FtZSBjYXBhYmlsaXRpZXMgYXMgTWFzdGVyS2V5IHdpdGhvdXQgd3JpdGVzICovXG4gIHJlYWRPbmx5TWFzdGVyS2V5OiA/c3RyaW5nO1xuICAvKiBLZXkgc2VudCB3aXRoIG91dGdvaW5nIHdlYmhvb2sgY2FsbHMgKi9cbiAgd2ViaG9va0tleTogP3N0cmluZztcbiAgLyogS2V5IGZvciB5b3VyIGZpbGVzICovXG4gIGZpbGVLZXk6ID9zdHJpbmc7XG4gIC8qIEVuYWJsZSAob3IgZGlzYWJsZSkgdGhlIGFkZGl0aW9uIG9mIGEgdW5pcXVlIGhhc2ggdG8gdGhlIGZpbGUgbmFtZXNcbiAgOkVOVjogUEFSU0VfU0VSVkVSX1BSRVNFUlZFX0ZJTEVfTkFNRVxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgcHJlc2VydmVGaWxlTmFtZTogP2Jvb2xlYW47XG4gIC8qIFBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uIGZpZWxkcyBpbiB0aGUgdXNlciB0YWJsZSB0aGUgc2hvdWxkIGJlIHJlbW92ZWQgZm9yIG5vbi1hdXRob3JpemVkIHVzZXJzLiBEZXByZWNhdGVkIEBzZWUgcHJvdGVjdGVkRmllbGRzICovXG4gIHVzZXJTZW5zaXRpdmVGaWVsZHM6ID8oc3RyaW5nW10pO1xuICAvKiBQcm90ZWN0ZWQgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgd2l0aCBleHRyYSBzZWN1cml0eSB3aGVuIGZldGNoaW5nIGRldGFpbHMuXG4gIDpERUZBVUxUOiB7XCJfVXNlclwiOiB7XCIqXCI6IFtcImVtYWlsXCJdfX0gKi9cbiAgcHJvdGVjdGVkRmllbGRzOiA/UHJvdGVjdGVkRmllbGRzO1xuICAvKiBFbmFibGUgKG9yIGRpc2FibGUpIGFub255bW91cyB1c2VycywgZGVmYXVsdHMgdG8gdHJ1ZVxuICA6RU5WOiBQQVJTRV9TRVJWRVJfRU5BQkxFX0FOT05fVVNFUlNcbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgZW5hYmxlQW5vbnltb3VzVXNlcnM6ID9ib29sZWFuO1xuICAvKiBFbmFibGUgKG9yIGRpc2FibGUpIGNsaWVudCBjbGFzcyBjcmVhdGlvbiwgZGVmYXVsdHMgdG8gZmFsc2VcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0FMTE9XX0NMSUVOVF9DTEFTU19DUkVBVElPTlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgYWxsb3dDbGllbnRDbGFzc0NyZWF0aW9uOiA/Ym9vbGVhbjtcbiAgLyogRW5hYmxlIChvciBkaXNhYmxlKSBjdXN0b20gb2JqZWN0SWRcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0FMTE9XX0NVU1RPTV9PQkpFQ1RfSURcbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGFsbG93Q3VzdG9tT2JqZWN0SWQ6ID9ib29sZWFuO1xuICAvKiBDb25maWd1cmF0aW9uIGZvciB5b3VyIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVycywgYXMgc3RyaW5naWZpZWQgSlNPTi4gU2VlIGh0dHA6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3BhcnNlLXNlcnZlci9ndWlkZS8jb2F1dGgtYW5kLTNyZC1wYXJ0eS1hdXRoZW50aWNhdGlvblxuICA6RU5WOiBQQVJTRV9TRVJWRVJfQVVUSF9QUk9WSURFUlMgKi9cbiAgYXV0aDogP3sgW3N0cmluZ106IEF1dGhBZGFwdGVyIH07XG4gIC8qIE9wdGlvbmFsLiBFbmFibGVzIGluc2VjdXJlIGF1dGhlbnRpY2F0aW9uIGFkYXB0ZXJzLiBJbnNlY3VyZSBhdXRoIGFkYXB0ZXJzIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX0VOQUJMRV9JTlNFQ1VSRV9BVVRIX0FEQVBURVJTXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBlbmFibGVJbnNlY3VyZUF1dGhBZGFwdGVyczogP2Jvb2xlYW47XG4gIC8qIE1heCBmaWxlIHNpemUgZm9yIHVwbG9hZHMsIGRlZmF1bHRzIHRvIDIwbWJcbiAgOkRFRkFVTFQ6IDIwbWIgKi9cbiAgbWF4VXBsb2FkU2l6ZTogP3N0cmluZztcbiAgLyogU2V0IHRvIGB0cnVlYCB0byByZXF1aXJlIHVzZXJzIHRvIHZlcmlmeSB0aGVpciBlbWFpbCBhZGRyZXNzIHRvIGNvbXBsZXRlIHRoZSBzaWduLXVwIHByb2Nlc3MuIFN1cHBvcnRzIGEgZnVuY3Rpb24gd2l0aCBhIHJldHVybiB2YWx1ZSBvZiBgdHJ1ZWAgb3IgYGZhbHNlYCBmb3IgY29uZGl0aW9uYWwgdmVyaWZpY2F0aW9uLiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYSByZXF1ZXN0IG9iamVjdCB0aGF0IGluY2x1ZGVzIGBjcmVhdGVkV2l0aGAgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW52b2NhdGlvbiBpcyBmb3IgYHNpZ251cGAgb3IgYGxvZ2luYCBhbmQgdGhlIHVzZWQgYXV0aCBwcm92aWRlci5cbiAgPGJyPjxicj5cbiAgVGhlIGBjcmVhdGVkV2l0aGAgdmFsdWVzIHBlciBzY2VuYXJpbzpcbiAgPHVsPjxsaT5QYXNzd29yZCBzaWdudXA6IGB7IGFjdGlvbjogJ3NpZ251cCcsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICc8cHJvdmlkZXI+JyB9YDwvbGk+PGxpPlBhc3N3b3JkIGxvZ2luOiBgeyBhY3Rpb246ICdsb2dpbicsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgbG9naW46IGZ1bmN0aW9uIG5vdCBpbnZva2VkOyBhdXRoIHByb3ZpZGVyIGxvZ2luIGJ5cGFzc2VzIGVtYWlsIHZlcmlmaWNhdGlvbjwvbGk+PGxpPlJlc2VuZCB2ZXJpZmljYXRpb24gZW1haWw6IGBjcmVhdGVkV2l0aGAgaXMgYHVuZGVmaW5lZGA7IHVzZSB0aGUgYHJlc2VuZFJlcXVlc3RgIHByb3BlcnR5IHRvIGlkZW50aWZ5IHRob3NlPC9saT48L3VsPlxuICBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICB2ZXJpZnlVc2VyRW1haWxzOiA/KGJvb2xlYW4gfCAoRW1haWxWZXJpZmljYXRpb25SZXF1ZXN0ID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+KSk7XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gcHJldmVudCBhIHVzZXIgZnJvbSBsb2dnaW5nIGluIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuIFN1cHBvcnRzIGEgZnVuY3Rpb24gd2l0aCBhIHJldHVybiB2YWx1ZSBvZiBgdHJ1ZWAgb3IgYGZhbHNlYCBmb3IgY29uZGl0aW9uYWwgcHJldmVudGlvbi4gVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIGEgcmVxdWVzdCBvYmplY3QgdGhhdCBpbmNsdWRlcyBgY3JlYXRlZFdpdGhgIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGludm9jYXRpb24gaXMgZm9yIGBzaWdudXBgIG9yIGBsb2dpbmAgYW5kIHRoZSB1c2VkIGF1dGggcHJvdmlkZXIuXG4gIDxicj48YnI+XG4gIFRoZSBgY3JlYXRlZFdpdGhgIHZhbHVlcyBwZXIgc2NlbmFyaW86XG4gIDx1bD48bGk+UGFzc3dvcmQgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICdwYXNzd29yZCcgfWA8L2xpPjxsaT5BdXRoIHByb3ZpZGVyIHNpZ251cDogYHsgYWN0aW9uOiAnc2lnbnVwJywgYXV0aFByb3ZpZGVyOiAnPHByb3ZpZGVyPicgfWA8L2xpPjxsaT5QYXNzd29yZCBsb2dpbjogYHsgYWN0aW9uOiAnbG9naW4nLCBhdXRoUHJvdmlkZXI6ICdwYXNzd29yZCcgfWA8L2xpPjxsaT5BdXRoIHByb3ZpZGVyIGxvZ2luOiBmdW5jdGlvbiBub3QgaW52b2tlZDsgYXV0aCBwcm92aWRlciBsb2dpbiBieXBhc3NlcyBlbWFpbCB2ZXJpZmljYXRpb248L2xpPjwvdWw+XG4gIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgPGJyPlxuICBSZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgcHJldmVudExvZ2luV2l0aFVudmVyaWZpZWRFbWFpbDogPyhcbiAgICB8IGJvb2xlYW5cbiAgICB8IChFbWFpbFZlcmlmaWNhdGlvblJlcXVlc3QgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pXG4gICk7XG4gIC8qIElmIHNldCB0byBgdHJ1ZWAgaXQgcHJldmVudHMgYSB1c2VyIGZyb20gc2lnbmluZyB1cCBpZiB0aGUgZW1haWwgaGFzIG5vdCB5ZXQgYmVlbiB2ZXJpZmllZCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkLiBJbiB0aGF0IGNhc2UgdGhlIHNlcnZlciByZXNwb25kcyB0byB0aGUgc2lnbi11cCB3aXRoIEhUVFAgc3RhdHVzIDQwMCBhbmQgYSBQYXJzZSBFcnJvciAyMDUgYEVNQUlMX05PVF9GT1VORGAuIElmIHNldCB0byBgZmFsc2VgIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCBIVFRQIHN0YXR1cyAyMDAsIGFuZCBjbGllbnQgU0RLcyByZXR1cm4gYW4gdW5hdXRoZW50aWNhdGVkIFBhcnNlIFVzZXIgd2l0aG91dCBzZXNzaW9uIHRva2VuLiBJbiB0aGF0IGNhc2Ugc3Vic2VxdWVudCByZXF1ZXN0cyBmYWlsIHVudGlsIHRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzcyBpcyB2ZXJpZmllZC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBwcmV2ZW50U2lnbnVwV2l0aFVudmVyaWZpZWRFbWFpbDogP2Jvb2xlYW47XG4gIC8qIFNldCB0aGUgdmFsaWRpdHkgZHVyYXRpb24gb2YgdGhlIGVtYWlsIHZlcmlmaWNhdGlvbiB0b2tlbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSB0b2tlbiBleHBpcmVzLiBUaGUgdG9rZW4gaXMgdXNlZCBpbiB0aGUgbGluayB0aGF0IGlzIHNldCBpbiB0aGUgZW1haWwuIEFmdGVyIHRoZSB0b2tlbiBleHBpcmVzLCB0aGUgbGluayBiZWNvbWVzIGludmFsaWQgYW5kIGEgbmV3IGxpbmsgaGFzIHRvIGJlIHNlbnQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYHVuZGVmaW5lZGAsIHRoZW4gdGhlIHRva2VuIG5ldmVyIGV4cGlyZXMuXG4gIDxicj48YnI+XG4gIEZvciBleGFtcGxlLCB0byBleHBpcmUgdGhlIHRva2VuIGFmdGVyIDIgaG91cnMsIHNldCBhIHZhbHVlIG9mIDcyMDAgc2Vjb25kcyAoPSA2MCBzZWNvbmRzICogNjAgbWludXRlcyAqIDIgaG91cnMpLlxuICA8YnI+PGJyPlxuICBEZWZhdWx0IGlzIGB1bmRlZmluZWRgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXG4gICovXG4gIGVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uOiA/bnVtYmVyO1xuICAvKiBTZXQgdG8gYHRydWVgIGlmIGEgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBlbWFpbFZlcmlmeVRva2VuUmV1c2VJZlZhbGlkOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBzZW5kaW5nIG9mIHZlcmlmaWNhdGlvbiBlbWFpbC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBlbWFpbCBzZW5kaW5nLlxuICA8YnI+PGJyPlxuICBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgPGJyPlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBzZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uOiA/KFxuICAgIHwgYm9vbGVhblxuICAgIHwgKFNlbmRFbWFpbFZlcmlmaWNhdGlvblJlcXVlc3QgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pXG4gICk7XG4gIC8qIFRoZSBhY2NvdW50IGxvY2tvdXQgcG9saWN5IGZvciBmYWlsZWQgbG9naW4gYXR0ZW1wdHMuICovXG4gIGFjY291bnRMb2Nrb3V0OiA/QWNjb3VudExvY2tvdXRPcHRpb25zO1xuICAvKiBUaGUgcGFzc3dvcmQgcG9saWN5IGZvciBlbmZvcmNpbmcgcGFzc3dvcmQgcmVsYXRlZCBydWxlcy4gKi9cbiAgcGFzc3dvcmRQb2xpY3k6ID9QYXNzd29yZFBvbGljeU9wdGlvbnM7XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgY2FjaGUgKi9cbiAgY2FjaGVBZGFwdGVyOiA/QWRhcHRlcjxDYWNoZUFkYXB0ZXI+O1xuICAvKiBBZGFwdGVyIG1vZHVsZSBmb3IgZW1haWwgc2VuZGluZyAqL1xuICBlbWFpbEFkYXB0ZXI6ID9BZGFwdGVyPE1haWxBZGFwdGVyPjtcbiAgLyogT3B0aW9uYWwuIFRoZSBwdWJsaWMgVVJMIHRvIFBhcnNlIFNlcnZlci4gVGhpcyBVUkwgd2lsbCBiZSB1c2VkIHRvIHJlYWNoIFBhcnNlIFNlcnZlciBwdWJsaWNseSBmb3IgZmVhdHVyZXMgbGlrZSBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGxpbmtzLiBUaGUgb3B0aW9uIGNhbiBiZSBzZXQgdG8gYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhc3luY2hyb25vdXNseSByZXNvbHZlZC4gVGhlIHJldHVybmVkIFVSTCBzdHJpbmcgbXVzdCBzdGFydCB3aXRoIGBodHRwOi8vYCBvciBgaHR0cHM6Ly9gLlxuICA6RU5WOiBQQVJTRV9QVUJMSUNfU0VSVkVSX1VSTCAqL1xuICBwdWJsaWNTZXJ2ZXJVUkw6ID8oc3RyaW5nIHwgKCgpID0+IHN0cmluZykgfCAoKCkgPT4gUHJvbWlzZTxzdHJpbmc+KSk7XG4gIC8qIFRoZSBvcHRpb25zIGZvciBwYWdlcyBzdWNoIGFzIHBhc3N3b3JkIHJlc2V0IGFuZCBlbWFpbCB2ZXJpZmljYXRpb24uXG4gIDpERUZBVUxUOiB7fSAqL1xuICBwYWdlczogP1BhZ2VzT3B0aW9ucztcbiAgLyogY3VzdG9tIHBhZ2VzIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uIGFuZCByZXNldFxuICA6REVGQVVMVDoge30gKi9cbiAgY3VzdG9tUGFnZXM6ID9DdXN0b21QYWdlc09wdGlvbnM7XG4gIC8qIHBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjb25maWd1cmF0aW9uIG9iamVjdCAqL1xuICBsaXZlUXVlcnk6ID9MaXZlUXVlcnlPcHRpb25zO1xuICAvKiBTZXNzaW9uIGR1cmF0aW9uLCBpbiBzZWNvbmRzLCBkZWZhdWx0cyB0byAxIHllYXJcbiAgOkRFRkFVTFQ6IDMxNTM2MDAwICovXG4gIHNlc3Npb25MZW5ndGg6ID9udW1iZXI7XG4gIC8qIFdoZXRoZXIgUGFyc2UgU2VydmVyIHNob3VsZCBhdXRvbWF0aWNhbGx5IGV4dGVuZCBhIHZhbGlkIHNlc3Npb24gYnkgdGhlIHNlc3Npb25MZW5ndGguIEluIG9yZGVyIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHNlc3Npb24gdXBkYXRlcyBpbiB0aGUgZGF0YWJhc2UsIGEgc2Vzc2lvbiB3aWxsIG9ubHkgYmUgZXh0ZW5kZWQgd2hlbiBhIHJlcXVlc3QgaXMgcmVjZWl2ZWQgYWZ0ZXIgYXQgbGVhc3QgaGFsZiBvZiB0aGUgY3VycmVudCBzZXNzaW9uJ3MgbGlmZXRpbWUgaGFzIHBhc3NlZC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGV4dGVuZFNlc3Npb25PblVzZTogP2Jvb2xlYW47XG4gIC8qIERlZmF1bHQgdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byBgMTAwYC5cbiAgOkRFRkFVTFQ6IDEwMCAqL1xuICBkZWZhdWx0TGltaXQ6ID9udW1iZXI7XG4gIC8qIE1heCB2YWx1ZSBmb3IgbGltaXQgb3B0aW9uIG9uIHF1ZXJpZXMsIGRlZmF1bHRzIHRvIHVubGltaXRlZCAqL1xuICBtYXhMaW1pdDogP251bWJlcjtcbiAgLyogU2V0cyB3aGV0aGVyIHdlIHNob3VsZCBleHBpcmUgdGhlIGluYWN0aXZlIHNlc3Npb25zLCBkZWZhdWx0cyB0byB0cnVlLiBJZiBmYWxzZSwgYWxsIG5ldyBzZXNzaW9ucyBhcmUgY3JlYXRlZCB3aXRoIG5vIGV4cGlyYXRpb24gZGF0ZS5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgZXhwaXJlSW5hY3RpdmVTZXNzaW9uczogP2Jvb2xlYW47XG4gIC8qIFdoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIHJldm9rZVNlc3Npb25PblBhc3N3b3JkUmVzZXQ6ID9ib29sZWFuO1xuICAvKiBTZXRzIHRoZSBUVEwgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUgKGluIG1zKSwgZGVmYXVsdHMgdG8gNTAwMCAoNSBzZWNvbmRzKVxuICA6REVGQVVMVDogNTAwMCAqL1xuICBjYWNoZVRUTDogP251bWJlcjtcbiAgLyogU2V0cyB0aGUgbWF4aW11bSBzaXplIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlLCBkZWZhdWx0cyB0byAxMDAwMFxuICA6REVGQVVMVDogMTAwMDAgKi9cbiAgY2FjaGVNYXhTaXplOiA/bnVtYmVyO1xuICAvKiBTZXQgdG8gYHRydWVgIGlmIFBhcnNlIHJlcXVlc3RzIHdpdGhpbiB0aGUgc2FtZSBOb2RlLmpzIGVudmlyb25tZW50IGFzIFBhcnNlIFNlcnZlciBzaG91bGQgYmUgcm91dGVkIHRvIFBhcnNlIFNlcnZlciBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSB0aGUgSFRUUCBpbnRlcmZhY2UuIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgPGJyPjxicj5cbiAgSWYgc2V0IHRvIGBmYWxzZWAgdGhlbiBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgTm9kZS5qcyBlbnZpcm9ubWVudCBhcyBQYXJzZSBTZXJ2ZXIgYXJlIGV4ZWN1dGVkIGFzIEhUVFAgcmVxdWVzdHMgc2VudCB0byBQYXJzZSBTZXJ2ZXIgdmlhIHRoZSBgc2VydmVyVVJMYC4gRm9yIGV4YW1wbGUsIGEgYFBhcnNlLlF1ZXJ5YCBpbiBDbG91ZCBDb2RlIGlzIGNhbGxpbmcgUGFyc2UgU2VydmVyIHZpYSBhIEhUVFAgcmVxdWVzdC4gVGhlIHNlcnZlciBpcyBlc3NlbnRpYWxseSBtYWtpbmcgYSBIVFRQIHJlcXVlc3QgdG8gaXRzZWxmLCB1bm5lY2Vzc2FyaWx5IHVzaW5nIG5ldHdvcmsgcmVzb3VyY2VzIHN1Y2ggYXMgbmV0d29yayBwb3J0cy5cbiAgPGJyPjxicj5cbiAg4pqg77iPIEluIGVudmlyb25tZW50cyB3aGVyZSBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIHJ1biBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyIGFuZCBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIGN1cnJlbnQgTm9kZS5qcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgcm91dGVkIHZpYSB0aGUgbG9hZCBiYWxhbmNlciBhbmQgZGlzdHJpYnV0ZWQgYXMgSFRUUCByZXF1ZXN0cyBhbW9uZyBhbGwgaW5zdGFuY2VzIHZpYSB0aGUgYHNlcnZlclVSTGAsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBkaXJlY3RBY2Nlc3M6ID9ib29sZWFuO1xuICAvKiBFbmFibGVzIHRoZSBkZWZhdWx0IGV4cHJlc3MgZXJyb3IgaGFuZGxlciBmb3IgYWxsIGVycm9yc1xuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlRXhwcmVzc0Vycm9ySGFuZGxlcjogP2Jvb2xlYW47XG4gIC8qIFNldHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGdlbmVyYXRlZCBvYmplY3QgaWQncywgZGVmYXVsdCAxMFxuICA6REVGQVVMVDogMTAgKi9cbiAgb2JqZWN0SWRTaXplOiA/bnVtYmVyO1xuICAvKiBUaGUgcG9ydCB0byBydW4gdGhlIFBhcnNlU2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LlxuICA6RU5WOiBQT1JUXG4gIDpERUZBVUxUOiAxMzM3ICovXG4gIHBvcnQ6ID9udW1iZXI7XG4gIC8qIFRoZSBob3N0IHRvIHNlcnZlIFBhcnNlU2VydmVyIG9uLCBkZWZhdWx0cyB0byAwLjAuMC4wXG4gIDpERUZBVUxUOiAwLjAuMC4wICovXG4gIGhvc3Q6ID9zdHJpbmc7XG4gIC8qIE1vdW50IHBhdGggZm9yIHRoZSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIC9wYXJzZVxuICA6REVGQVVMVDogL3BhcnNlICovXG4gIG1vdW50UGF0aDogP3N0cmluZztcbiAgLyogUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoICovXG4gIGNsdXN0ZXI6ID9OdW1iZXJPckJvb2xlYW47XG4gIC8qIG1pZGRsZXdhcmUgZm9yIGV4cHJlc3Mgc2VydmVyLCBjYW4gYmUgc3RyaW5nIG9yIGZ1bmN0aW9uICovXG4gIG1pZGRsZXdhcmU6ID8oKCgpID0+IHZvaWQpIHwgc3RyaW5nKTtcbiAgLyogVGhlIHRydXN0IHByb3h5IHNldHRpbmdzLiBJdCBpcyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgZXhhY3Qgc2V0dXAgb2YgdGhlIHJldmVyc2UgcHJveHksIHNpbmNlIHRoaXMgc2V0dGluZyB3aWxsIHRydXN0IHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgUGFyc2UgU2VydmVyIEFQSSByZXF1ZXN0LiBTZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vZ3VpZGUvYmVoaW5kLXByb3hpZXMuaHRtbFwiPmV4cHJlc3MgdHJ1c3QgcHJveHkgc2V0dGluZ3M8L2E+IGRvY3VtZW50YXRpb24uIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICB0cnVzdFByb3h5OiA/YW55O1xuICAvKiBTdGFydHMgdGhlIGxpdmVRdWVyeSBzZXJ2ZXIgKi9cbiAgc3RhcnRMaXZlUXVlcnlTZXJ2ZXI6ID9ib29sZWFuO1xuICAvKiBMaXZlIHF1ZXJ5IHNlcnZlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgKHdpbGwgc3RhcnQgdGhlIGxpdmVRdWVyeSBzZXJ2ZXIpICovXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6ID9MaXZlUXVlcnlTZXJ2ZXJPcHRpb25zO1xuICAvKiBPcHRpb25zIGZvciByZXF1ZXN0IGlkZW1wb3RlbmN5IHRvIGRlZHVwbGljYXRlIGlkZW50aWNhbCByZXF1ZXN0cyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgbmV0d29yayBpc3N1ZXMuIENhdXRpb24sIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgdGhhdCBtYXkgbm90IGJlIGFwcHJvcHJpYXRlIGZvciBwcm9kdWN0aW9uLlxuICA6RU5WOiBQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX09QVElPTlNcbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGlkZW1wb3RlbmN5T3B0aW9uczogP0lkZW1wb3RlbmN5T3B0aW9ucztcbiAgLyogT3B0aW9ucyBmb3IgZmlsZSB1cGxvYWRzXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9PUFRJT05TXG4gIDpERUZBVUxUOiB7fSAqL1xuICBmaWxlVXBsb2FkOiA/RmlsZVVwbG9hZE9wdGlvbnM7XG4gIC8qIEZ1bGwgcGF0aCB0byB5b3VyIEdyYXBoUUwgY3VzdG9tIHNjaGVtYS5ncmFwaHFsIGZpbGUgKi9cbiAgZ3JhcGhRTFNjaGVtYTogP3N0cmluZztcbiAgLyogTW91bnRzIHRoZSBHcmFwaFFMIGVuZHBvaW50XG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9NT1VOVF9HUkFQSFFMXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBtb3VudEdyYXBoUUw6ID9ib29sZWFuO1xuICAvKiBUaGUgbW91bnQgcGF0aCBmb3IgdGhlIEdyYXBoUUwgZW5kcG9pbnQ8YnI+PGJyPuKaoO+4jyBGaWxlIHVwbG9hZCBpbnNpZGUgdGhlIEdyYXBoUUwgbXV0YXRpb24gc3lzdGVtIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHRzIGlzIGAvZ3JhcGhxbGAuXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9HUkFQSFFMX1BBVEhcbiAgOkRFRkFVTFQ6IC9ncmFwaHFsICovXG4gIGdyYXBoUUxQYXRoOiA/c3RyaW5nO1xuICAvKiBFbmFibGUgcHVibGljIGludHJvc3BlY3Rpb24gZm9yIHRoZSBHcmFwaFFMIGVuZHBvaW50LCBkZWZhdWx0cyB0byBmYWxzZVxuICA6RU5WOiBQQVJTRV9TRVJWRVJfR1JBUEhRTF9QVUJMSUNfSU5UUk9TUEVDVElPTlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZ3JhcGhRTFB1YmxpY0ludHJvc3BlY3Rpb246ID9ib29sZWFuO1xuICAvKiBEZXByZWNhdGVkLiBNb3VudHMgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCB3aGljaCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gVGhlIHBsYXlncm91bmQgZXhwb3NlcyB0aGUgbWFzdGVyIGtleSBpbiB0aGUgYnJvd3Nlci4gVXNlIFBhcnNlIERhc2hib2FyZCBhcyBHcmFwaFFMIElERSBvciBjb25maWd1cmUgYSB0aGlyZC1wYXJ0eSBHcmFwaFFMIGNsaWVudCB3aXRoIGN1c3RvbSByZXF1ZXN0IGhlYWRlcnMuXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9NT1VOVF9QTEFZR1JPVU5EXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBtb3VudFBsYXlncm91bmQ6ID9ib29sZWFuO1xuICAvKiBEZXByZWNhdGVkLiBNb3VudCBwYXRoIGZvciB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kLiBUaGUgcGxheWdyb3VuZCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX1BMQVlHUk9VTkRfUEFUSFxuICA6REVGQVVMVDogL3BsYXlncm91bmQgKi9cbiAgcGxheWdyb3VuZFBhdGg6ID9zdHJpbmc7XG4gIC8qIERlZmluZWQgc2NoZW1hXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9TQ0hFTUFcbiAgKi9cbiAgc2NoZW1hOiA/U2NoZW1hT3B0aW9ucztcbiAgLyogQ2FsbGJhY2sgd2hlbiBzZXJ2ZXIgaGFzIGNsb3NlZCAqL1xuICBzZXJ2ZXJDbG9zZUNvbXBsZXRlOiA/KCkgPT4gdm9pZDtcbiAgLyogT3B0aW9ucyB0byBsaW1pdCB0aGUgY29tcGxleGl0eSBvZiByZXF1ZXN0cyB0byBwcmV2ZW50IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3MuIExpbWl0cyBhcmUgZW5mb3JjZWQgZm9yIGFsbCByZXF1ZXN0cyBleGNlcHQgdGhvc2UgdXNpbmcgdGhlIG1hc3RlciBvciBtYWludGVuYW5jZSBrZXkuIEVhY2ggcHJvcGVydHkgY2FuIGJlIHNldCB0byBgLTFgIHRvIGRpc2FibGUgdGhhdCBzcGVjaWZpYyBsaW1pdC5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWVxuICA6REVGQVVMVDoge30gKi9cbiAgcmVxdWVzdENvbXBsZXhpdHk6ID9SZXF1ZXN0Q29tcGxleGl0eU9wdGlvbnM7XG4gIC8qIFRoZSBzZWN1cml0eSBvcHRpb25zIHRvIGlkZW50aWZ5IGFuZCByZXBvcnQgd2VhayBzZWN1cml0eSBzZXR0aW5ncy5cbiAgOkRFRkFVTFQ6IHt9ICovXG4gIHNlY3VyaXR5OiA/U2VjdXJpdHlPcHRpb25zO1xuICAvKiBTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBlbmZvcmNlUHJpdmF0ZVVzZXJzOiA/Ym9vbGVhbjtcbiAgLyogQWxsb3cgYSB1c2VyIHRvIGxvZyBpbiBldmVuIGlmIHRoZSAzcmQgcGFydHkgYXV0aGVudGljYXRpb24gdG9rZW4gdGhhdCB3YXMgdXNlZCB0byBzaWduIGluIHRvIHRoZWlyIGFjY291bnQgaGFzIGV4cGlyZWQuIElmIHRoaXMgaXMgc2V0IHRvIGBmYWxzZWAsIHRoZW4gdGhlIHRva2VuIHdpbGwgYmUgdmFsaWRhdGVkIGV2ZXJ5IHRpbWUgdGhlIHVzZXIgc2lnbnMgaW4gdG8gdGhlaXIgYWNjb3VudC4gVGhpcyByZWZlcnMgdG8gdGhlIHRva2VuIHRoYXQgaXMgc3RvcmVkIGluIHRoZSBgX1VzZXIuYXV0aERhdGFgIGZpZWxkLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbjogP2Jvb2xlYW47XG4gIC8qIEFuIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcyB0aGF0IGFyZSBwcm9oaWJpdGVkIGluIGRhdGFiYXNlIHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzIHRvIHByZXZlbnQgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBvbmx5IGEga2V5IChge1wia2V5XCI6XCIuLi5cIn1gKSwgb25seSBhIHZhbHVlIChge1widmFsdWVcIjpcIi4uLlwifWApIG9yIGEga2V5LXZhbHVlIHBhaXIgKGB7XCJrZXlcIjpcIi4uLlwiLFwidmFsdWVcIjpcIi4uLlwifWApLiBUaGUgc3BlY2lmaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdHlwZXM6IGBib29sZWFuYCwgYG51bWVyaWNgIG9yIGBzdHJpbmdgLCB3aGVyZSBgc3RyaW5nYCB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgcmVnZXggbm90YXRpb24uIFJlcXVlc3QgZGF0YSBpcyBkZWVwLXNjYW5uZWQgZm9yIG1hdGNoaW5nIGRlZmluaXRpb25zIHRvIGRldGVjdCBhbHNvIGFueSBuZXN0ZWQgb2NjdXJyZW5jZXMuIERlZmF1bHRzIGFyZSBwYXR0ZXJucyB0aGF0IGFyZSBsaWtlbHkgdG8gYmUgdXNlZCBpbiBtYWxpY2lvdXMgcmVxdWVzdHMuIFNldHRpbmcgdGhpcyBvcHRpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBwYXR0ZXJucy5cbiAgOkRFRkFVTFQ6IFt7XCJrZXlcIjpcIl9ic29udHlwZVwiLFwidmFsdWVcIjpcIkNvZGVcIn0se1wia2V5XCI6XCJjb25zdHJ1Y3RvclwifSx7XCJrZXlcIjpcIl9fcHJvdG9fX1wifV0gKi9cbiAgcmVxdWVzdEtleXdvcmREZW55bGlzdDogPyhSZXF1ZXN0S2V5d29yZERlbnlsaXN0W10pO1xuICAvKiBPcHRpb25zIHRvIGxpbWl0IHJlcGVhdGVkIHJlcXVlc3RzIHRvIFBhcnNlIFNlcnZlciBBUElzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByb3RlY3Qgc2Vuc2l0aXZlIGVuZHBvaW50cyBzdWNoIGFzIGAvcmVxdWVzdFBhc3N3b3JkUmVzZXRgIGZyb20gYnJ1dGUtZm9yY2UgYXR0YWNrcyBvciBQYXJzZSBTZXJ2ZXIgYXMgYSB3aG9sZSBmcm9tIGRlbmlhbC1vZi1zZXJ2aWNlIChEb1MpIGF0dGFja3MuPGJyPjxicj7ihLnvuI8gTWluZCB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zOjxicj4tIHJhdGUgbGltaXRzIGFwcGxpZWQgcGVyIElQIGFkZHJlc3M7IHRoaXMgbGltaXRzIHByb3RlY3Rpb24gYWdhaW5zdCBkaXN0cmlidXRlZCBkZW5pYWwtb2Ytc2VydmljZSAoRERvUykgYXR0YWNrcyB3aGVyZSBtYW55IHJlcXVlc3RzIGFyZSBjb21pbmcgZnJvbSB2YXJpb3VzIElQIGFkZHJlc3Nlczxicj4tIGlmIG11bHRpcGxlIFBhcnNlIFNlcnZlciBpbnN0YW5jZXMgYXJlIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIgb3IgcmFuIGluIGEgY2x1c3RlciwgZWFjaCBpbnN0YW5jZSB3aWxsIGNhbGN1bGF0ZSBpdCdzIG93biByZXF1ZXN0IHJhdGVzLCBpbmRlcGVuZGVudCBmcm9tIG90aGVyIGluc3RhbmNlczsgdGhpcyBsaW1pdHMgdGhlIGFwcGxpY2FiaWxpdHkgb2YgdGhpcyBmZWF0dXJlIHdoZW4gdXNpbmcgYSBsb2FkIGJhbGFuY2VyIGFuZCBhbm90aGVyIHJhdGUgbGltaXRpbmcgc29sdXRpb24gdGhhdCB0YWtlcyByZXF1ZXN0cyBhY3Jvc3MgYWxsIGluc3RhbmNlcyBpbnRvIGFjY291bnQgbWF5IGJlIG1vcmUgc3VpdGFibGU8YnI+LSB0aGlzIGZlYXR1cmUgcHJvdmlkZXMgYmFzaWMgcHJvdGVjdGlvbiBhZ2FpbnN0IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3MsIGJ1dCBhIG1vcmUgc29waGlzdGljYXRlZCBzb2x1dGlvbiB3b3JrcyBlYXJsaWVyIGluIHRoZSByZXF1ZXN0IGZsb3cgYW5kIHByZXZlbnRzIGEgbWFsaWNpb3VzIHJlcXVlc3RzIHRvIGV2ZW4gcmVhY2ggYSBzZXJ2ZXIgaW5zdGFuY2U7IGl0J3MgdGhlcmVmb3JlIHJlY29tbWVuZGVkIHRvIGltcGxlbWVudCBhIHNvbHV0aW9uIGFjY29yZGluZyB0byBhcmNoaXRlY3R1cmUgYW5kIHVzZXIgY2FzZS5cbiAgOkRFRkFVTFQ6IFtdICovXG4gIHJhdGVMaW1pdDogPyhSYXRlTGltaXRPcHRpb25zW10pO1xuICAvKiBPcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdCBjb250ZXh0IHVzaW5nIGludmVyc2lvbiBvZiBjb250cm9sL2RlcGVuZGVuY3kgaW5qZWN0aW9uLiovXG4gIHJlcXVlc3RDb250ZXh0TWlkZGxld2FyZTogPyhyZXE6IGFueSwgcmVzOiBhbnksIG5leHQ6IGFueSkgPT4gdm9pZDtcbiAgLyogSWYgc2V0IHRvIGB0cnVlYCwgZXJyb3IgZGV0YWlscyBhcmUgcmVtb3ZlZCBmcm9tIGVycm9yIG1lc3NhZ2VzIGluIHJlc3BvbnNlcyB0byBjbGllbnQgcmVxdWVzdHMsIGFuZCBpbnN0ZWFkIGEgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGlzIHNlbnQuIERlZmF1bHQgaXMgYHRydWVgLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBlbmFibGVTYW5pdGl6ZWRFcnJvclJlc3BvbnNlOiA/Ym9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYXRlTGltaXRPcHRpb25zIHtcbiAgLyogVGhlIHBhdGggb2YgdGhlIEFQSSByb3V0ZSB0byBiZSByYXRlIGxpbWl0ZWQuIFJvdXRlIHBhdGhzLCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgcmVxdWVzdCBtZXRob2QsIGRlZmluZSB0aGUgZW5kcG9pbnRzIGF0IHdoaWNoIHJlcXVlc3RzIGNhbiBiZSBtYWRlLiBSb3V0ZSBwYXRocyBjYW4gYmUgc3RyaW5ncyBvciBzdHJpbmcgcGF0dGVybnMgZm9sbG93aW5nIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcIj5wYXRoLXRvLXJlZ2V4cCB2ODwvYT4gc3ludGF4LiAqL1xuICByZXF1ZXN0UGF0aDogc3RyaW5nO1xuICAvKiBUaGUgd2luZG93IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHdpdGhpbiB3aGljaCB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHNldCBpbiBgcmVxdWVzdENvdW50YCBjYW4gYmUgbWFkZSBiZWZvcmUgdGhlIHJhdGUgbGltaXQgaXMgYXBwbGllZC4gKi9cbiAgcmVxdWVzdFRpbWVXaW5kb3c6ID9udW1iZXI7XG4gIC8qIFRoZSBudW1iZXIgb2YgcmVxdWVzdHMgdGhhdCBjYW4gYmUgbWFkZSBwZXIgSVAgYWRkcmVzcyB3aXRoaW4gdGhlIHRpbWUgd2luZG93IHNldCBpbiBgcmVxdWVzdFRpbWVXaW5kb3dgIGJlZm9yZSB0aGUgcmF0ZSBsaW1pdCBpcyBhcHBsaWVkLiAqL1xuICByZXF1ZXN0Q291bnQ6ID9udW1iZXI7XG4gIC8qIFRoZSBlcnJvciBtZXNzYWdlIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIGluIHRoZSBib2R5IG9mIHRoZSBIVFRQIDQyOSByZXNwb25zZSB3aGVuIHRoZSByYXRlIGxpbWl0IGlzIGhpdC4gRGVmYXVsdCBpcyBgVG9vIG1hbnkgcmVxdWVzdHMuYC5cbiAgOkRFRkFVTFQ6IFRvbyBtYW55IHJlcXVlc3RzLiAqL1xuICBlcnJvclJlc3BvbnNlTWVzc2FnZTogP3N0cmluZztcbiAgLyogT3B0aW9uYWwsIHRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kcyB0byB3aGljaCB0aGUgcmF0ZSBsaW1pdCBzaG91bGQgYmUgYXBwbGllZCwgZGVmYXVsdCBpcyBhbGwgbWV0aG9kcy4gKi9cbiAgcmVxdWVzdE1ldGhvZHM6ID8oc3RyaW5nW10pO1xuICAvKiBPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAgbWF5IGNpcmN1bXZlbnQgcmF0ZSBsaW1pdGluZyBhbmQgYmUgdnVsbmVyYWJsZSB0byBhdHRhY2tzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgaW5jbHVkZU1hc3RlcktleTogP2Jvb2xlYW47XG4gIC8qIE9wdGlvbmFsLCBpZiBgdHJ1ZWAgdGhlIHJhdGUgbGltaXQgd2lsbCBhbHNvIGFwcGx5IHRvIHJlcXVlc3RzIHRoYXQgYXJlIG1hZGUgaW4gYnkgQ2xvdWQgQ29kZSwgZGVmYXVsdCBpcyBgZmFsc2VgLiBOb3RlIHRoYXQgYSBwdWJsaWMgQ2xvdWQgQ29kZSBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIGludGVybmFsIHJlcXVlc3RzIG1heSBjaXJjdW12ZW50IHJhdGUgbGltaXRpbmcgYW5kIGJlIHZ1bG5lcmFibGUgdG8gYXR0YWNrcy5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGluY2x1ZGVJbnRlcm5hbFJlcXVlc3RzOiA/Ym9vbGVhbjtcbiAgLyogT3B0aW9uYWwsIHRoZSBVUkwgb2YgdGhlIFJlZGlzIHNlcnZlciB0byBzdG9yZSByYXRlIGxpbWl0IGRhdGEuIFRoaXMgYWxsb3dzIHRvIHJhdGUgbGltaXQgcmVxdWVzdHMgZm9yIG11bHRpcGxlIHNlcnZlcnMgYnkgY2FsY3VsYXRpbmcgdGhlIHN1bSBvZiBhbGwgcmVxdWVzdHMgYWNyb3NzIGFsbCBzZXJ2ZXJzLiBUaGlzIGlzIHVzZWZ1bCBpZiBtdWx0aXBsZSBzZXJ2ZXJzIGFyZSBwcm9jZXNzaW5nIHJlcXVlc3RzIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIuIEZvciBleGFtcGxlLCB0aGUgbGltaXQgb2YgMTAgcmVxdWVzdHMgaXMgcmVhY2hlZCBpZiBlYWNoIG9mIDIgc2VydmVycyBwcm9jZXNzZWQgNSByZXF1ZXN0cy5cbiAgICovXG4gIHJlZGlzVXJsOiA/c3RyaW5nO1xuICAvKiBUaGUgdHlwZSBvZiByYXRlIGxpbWl0IHRvIGFwcGx5LiBUaGUgZm9sbG93aW5nIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6XG4gIDx1bD5cbiAgPGxpPmBnbG9iYWxgOiByYXRlIGxpbWl0IGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgbWFkZSBieSBhbGwgdXNlcnM8L2xpPlxuICA8bGk+YGlwYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgcmVxdWVzdDwvbGk+XG4gIDxsaT5gdXNlcmA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHVzZXIgSUQgb2YgdGhlIHJlcXVlc3Q8L2xpPlxuICA8bGk+YHNlc3Npb25gOiByYXRlIGxpbWl0IGJhc2VkIG9uIHRoZSBzZXNzaW9uIHRva2VuIG9mIHRoZSByZXF1ZXN0PC9saT5cbiAgPC91bD5cbiAgRGVmYXVsdCBpcyBgaXBgLlxuICA6REVGQVVMVDogaXAgKi9cbiAgem9uZTogP3N0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0Q29tcGxleGl0eU9wdGlvbnMge1xuICAvKiBNYXhpbXVtIGRlcHRoIG9mIGluY2x1ZGUgcG9pbnRlciBjaGFpbnMgKGUuZy4gYGEuYi5jYCA9IGRlcHRoIDMpLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGA1YC5cbiAgOkRFRkFVTFQ6IDUgKi9cbiAgaW5jbHVkZURlcHRoOiA/bnVtYmVyO1xuICAvKiBNYXhpbXVtIG51bWJlciBvZiBpbmNsdWRlIHBhdGhzIGluIGEgc2luZ2xlIHF1ZXJ5LiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGA1MGAuXG4gIDpERUZBVUxUOiA1MCAqL1xuICBpbmNsdWRlQ291bnQ6ID9udW1iZXI7XG4gIC8qIE1heGltdW0gbmVzdGluZyBkZXB0aCBvZiBgJGluUXVlcnlgLCBgJG5vdEluUXVlcnlgLCBgJHNlbGVjdGAsIGAkZG9udFNlbGVjdGAgc3VicXVlcmllcy4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgNWAuXG4gIDpERUZBVUxUOiA1ICovXG4gIHN1YnF1ZXJ5RGVwdGg6ID9udW1iZXI7XG4gIC8qIE1heGltdW0gZGVwdGggb2YgR3JhcGhRTCBmaWVsZCBzZWxlY3Rpb25zLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGA1MGAuXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfR1JBUEhRTF9ERVBUSFxuICA6REVGQVVMVDogNTAgKi9cbiAgZ3JhcGhRTERlcHRoOiA/bnVtYmVyO1xuICAvKiBNYXhpbXVtIG51bWJlciBvZiBmaWVsZCBzZWxlY3Rpb25zIGluIGEgR3JhcGhRTCBxdWVyeS4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgMjAwYC5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWV9HUkFQSFFMX0ZJRUxEU1xuICA6REVGQVVMVDogMjAwICovXG4gIGdyYXBoUUxGaWVsZHM6ID9udW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlPcHRpb25zIHtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGNoZWNrIGZvciB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlQ2hlY2s6ID9ib29sZWFuO1xuICAvKiBJcyB0cnVlIGlmIHRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9ncy4gVGhpcyBzaG91bGQgb25seSBiZSBlbmFibGVkIHRlbXBvcmFyaWx5IHRvIG5vdCBleHBvc2Ugd2VhayBzZWN1cml0eSBzZXR0aW5ncyBpbiBsb2dzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlQ2hlY2tMb2c6ID9ib29sZWFuO1xuICAvKiBUaGUgc2VjdXJpdHkgY2hlY2sgZ3JvdXBzIHRvIHJ1bi4gVGhpcyBhbGxvd3MgdG8gYWRkIGN1c3RvbSBzZWN1cml0eSBjaGVja3Mgb3Igb3ZlcnJpZGUgZXhpc3Rpbmcgb25lcy4gRGVmYXVsdCBhcmUgdGhlIGdyb3VwcyBkZWZpbmVkIGluIGBDaGVja0dyb3Vwcy5qc2AuICovXG4gIGNoZWNrR3JvdXBzOiA/KENoZWNrR3JvdXBbXSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZXNPcHRpb25zIHtcbiAgLyogSXMgdHJ1ZSBpZiBwYWdlcyBzaG91bGQgYmUgbG9jYWxpemVkOyB0aGlzIGhhcyBubyBlZmZlY3Qgb24gY3VzdG9tIHBhZ2UgcmVkaXJlY3RzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlTG9jYWxpemF0aW9uOiA/Ym9vbGVhbjtcbiAgLyogVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZSBmb3IgbG9jYWxpemF0aW9uOyB0aGUgdHJhbnNsYXRpb25zIHdpbGwgYmUgdXNlZCB0byBmaWxsIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBhY2NvcmRpbmcgdG8gdGhlIGxvY2FsZS4gKi9cbiAgbG9jYWxpemF0aW9uSnNvblBhdGg6ID9zdHJpbmc7XG4gIC8qIFRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIGxvY2FsaXphdGlvbiBpZiBubyBtYXRjaGluZyB0cmFuc2xhdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4gVGhpcyBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcHJvdmlkaW5nIHRyYW5zbGF0aW9uIHJlc291cmNlcyB2aWEgSlNPTiBmaWxlLlxuICA6REVGQVVMVDogZW4gKi9cbiAgbG9jYWxpemF0aW9uRmFsbGJhY2tMb2NhbGU6ID9zdHJpbmc7XG4gIC8qIFRoZSBwbGFjZWhvbGRlciBrZXlzIGFuZCB2YWx1ZXMgd2hpY2ggd2lsbCBiZSBmaWxsZWQgaW4gcGFnZXM7IHRoaXMgY2FuIGJlIGEgc2ltcGxlIG9iamVjdCBvciBhIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICA6REVGQVVMVDoge30gKi9cbiAgcGxhY2Vob2xkZXJzOiA/T2JqZWN0O1xuICAvKiBJcyB0cnVlIGlmIHJlc3BvbnNlcyBzaG91bGQgYWx3YXlzIGJlIHJlZGlyZWN0cyBhbmQgbmV2ZXIgY29udGVudCwgZmFsc2UgaWYgdGhlIHJlc3BvbnNlIHR5cGUgc2hvdWxkIGRlcGVuZCBvbiB0aGUgcmVxdWVzdCB0eXBlIChHRVQgcmVxdWVzdCAtPiBjb250ZW50IHJlc3BvbnNlOyBQT1NUIHJlcXVlc3QgLT4gcmVkaXJlY3QgcmVzcG9uc2UpLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZm9yY2VSZWRpcmVjdDogP2Jvb2xlYW47XG4gIC8qIFRoZSBwYXRoIHRvIHRoZSBwYWdlcyBkaXJlY3Rvcnk7IHRoaXMgYWxzbyBkZWZpbmVzIHdoZXJlIHRoZSBzdGF0aWMgZW5kcG9pbnQgJy9hcHBzJyBwb2ludHMgdG8uIERlZmF1bHQgaXMgdGhlICcuL3B1YmxpYy8nIGRpcmVjdG9yeSBvZiB0aGUgcGFyc2Utc2VydmVyIG1vZHVsZS4gKi9cbiAgcGFnZXNQYXRoOiA/c3RyaW5nO1xuICAvKiBUaGUgQVBJIGVuZHBvaW50IGZvciB0aGUgcGFnZXMuIERlZmF1bHQgaXMgJ2FwcHMnLlxuICA6REVGQVVMVDogYXBwcyAqL1xuICBwYWdlc0VuZHBvaW50OiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMcyB0byB0aGUgY3VzdG9tIHBhZ2VzLlxuICA6REVGQVVMVDoge30gKi9cbiAgY3VzdG9tVXJsczogP1BhZ2VzQ3VzdG9tVXJsc09wdGlvbnM7XG4gIC8qIFRoZSBjdXN0b20gcm91dGVzLlxuICA6REVGQVVMVDogW10gKi9cbiAgY3VzdG9tUm91dGVzOiA/KFBhZ2VzUm91dGVbXSk7XG4gIC8qIElzIGB0cnVlYCBpZiB0aGUgcGFnZSBwYXJhbWV0ZXIgaGVhZGVycyBzaG91bGQgYmUgVVJJLWVuY29kZWQuIFRoaXMgaXMgcmVxdWlyZWQgaWYgYW55IHBhZ2UgcGFyYW1ldGVyIHZhbHVlIGNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBzdWNoIGFzIHRoZSBhcHAgbmFtZS5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGVuY29kZVBhZ2VQYXJhbUhlYWRlcnM6ID9ib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VzUm91dGUge1xuICAvKiBUaGUgcm91dGUgcGF0aC4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiBUaGUgcm91dGUgbWV0aG9kLCBlLmcuICdHRVQnIG9yICdQT1NUJy4gKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG4gIC8qIFRoZSByb3V0ZSBoYW5kbGVyIHRoYXQgaXMgYW4gYXN5bmMgZnVuY3Rpb24uICovXG4gIGhhbmRsZXI6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZXNDdXN0b21VcmxzT3B0aW9ucyB7XG4gIC8qIFRoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBwYXNzd29yZCByZXNldC4gKi9cbiAgcGFzc3dvcmRSZXNldDogP3N0cmluZztcbiAgLyogVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IGxpbmsgaW52YWxpZC4gKi9cbiAgcGFzc3dvcmRSZXNldExpbmtJbnZhbGlkOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgcGFzc3dvcmQgcmVzZXQgLT4gc3VjY2Vzcy4gKi9cbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIFRoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gc3VjY2Vzcy4gKi9cbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgc2VuZCBmYWlsLiAqL1xuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHJlc2VuZCBsaW5rIC0+IHN1Y2Nlc3MuICovXG4gIGVtYWlsVmVyaWZpY2F0aW9uU2VuZFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIFRoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBpbnZhbGlkLiAqL1xuICBlbWFpbFZlcmlmaWNhdGlvbkxpbmtJbnZhbGlkOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgZXhwaXJlZC4gKi9cbiAgZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZDogP3N0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21QYWdlc09wdGlvbnMge1xuICAvKiBpbnZhbGlkIGxpbmsgcGFnZSBwYXRoICovXG4gIGludmFsaWRMaW5rOiA/c3RyaW5nO1xuICAvKiB2ZXJpZmljYXRpb24gbGluayBzZW5kIGZhaWwgcGFnZSBwYXRoICovXG4gIGxpbmtTZW5kRmFpbDogP3N0cmluZztcbiAgLyogY2hvb3NlIHBhc3N3b3JkIHBhZ2UgcGF0aCAqL1xuICBjaG9vc2VQYXNzd29yZDogP3N0cmluZztcbiAgLyogdmVyaWZpY2F0aW9uIGxpbmsgc2VuZCBzdWNjZXNzIHBhZ2UgcGF0aCAqL1xuICBsaW5rU2VuZFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIHZlcmlmeSBlbWFpbCBzdWNjZXNzIHBhZ2UgcGF0aCAqL1xuICB2ZXJpZnlFbWFpbFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIHBhc3N3b3JkIHJlc2V0IHN1Y2Nlc3MgcGFnZSBwYXRoICovXG4gIHBhc3N3b3JkUmVzZXRTdWNjZXNzOiA/c3RyaW5nO1xuICAvKiBpbnZhbGlkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCAqL1xuICBpbnZhbGlkVmVyaWZpY2F0aW9uTGluazogP3N0cmluZztcbiAgLyogZXhwaXJlZCB2ZXJpZmljYXRpb24gbGluayBwYWdlIHBhdGggKi9cbiAgZXhwaXJlZFZlcmlmaWNhdGlvbkxpbms6ID9zdHJpbmc7XG4gIC8qIGludmFsaWQgcGFzc3dvcmQgcmVzZXQgbGluayBwYWdlIHBhdGggKi9cbiAgaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rOiA/c3RyaW5nO1xuICAvKiBmb3IgbWFza2luZyB1c2VyLWZhY2luZyBwYWdlcyAqL1xuICBwYXJzZUZyYW1lVVJMOiA/c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVRdWVyeU9wdGlvbnMge1xuICAvKiBwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgY2xhc3NOYW1lc1xuICA6RU5WOiBQQVJTRV9TRVJWRVJfTElWRVFVRVJZX0NMQVNTTkFNRVMgKi9cbiAgY2xhc3NOYW1lczogPyhzdHJpbmdbXSk7XG4gIC8qIHBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnMgKi9cbiAgcmVkaXNPcHRpb25zOiA/YW55O1xuICAvKiBwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNVUkwgKi9cbiAgcmVkaXNVUkw6ID9zdHJpbmc7XG4gIC8qIExpdmVRdWVyeSBwdWJzdWIgYWRhcHRlciAqL1xuICBwdWJTdWJBZGFwdGVyOiA/QWRhcHRlcjxQdWJTdWJBZGFwdGVyPjtcbiAgLyogU2V0cyB0aGUgbWF4aW11bSBleGVjdXRpb24gdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIG1hdGNoaW5nIGluIExpdmVRdWVyeS4gVGhpcyBwcm90ZWN0cyBhZ2FpbnN0IFJlZ3VsYXIgRXhwcmVzc2lvbiBEZW5pYWwgb2YgU2VydmljZSAoUmVEb1MpIGF0dGFja3Mgd2hlcmUgYSBtYWxpY2lvdXMgcmVnZXggcGF0dGVybiBjb3VsZCBibG9jayB0aGUgZXZlbnQgbG9vcC4gQSByZWdleCB0aGF0IGV4Y2VlZHMgdGhlIHRpbWVvdXQgd2lsbCBiZSB0cmVhdGVkIGFzIG5vbi1tYXRjaGluZy48YnI+PGJyPlRoZSBwcm90ZWN0aW9uIHJ1bnMgZWFjaCByZWdleCBldmFsdWF0aW9uIGluIGFuIGlzb2xhdGVkIFZNIGNvbnRleHQgd2l0aCBhIHRpbWVvdXQuIFRoaXMgYWRkcyBhcHByb3hpbWF0ZWx5IDUwIG1pY3Jvc2Vjb25kcyBvZiBvdmVyaGVhZCBwZXIgcmVnZXggZXZhbHVhdGlvbi4gRm9yIG1vc3QgYXBwbGljYXRpb25zIHRoaXMgaXMgbmVnbGlnaWJsZSwgYnV0IGl0IGNhbiBhZGQgdXAgaWYgeW91IGhhdmUgYSB2ZXJ5IGxhcmdlIG51bWJlciBvZiBMaXZlUXVlcnkgc3Vic2NyaXB0aW9ucyB0aGF0IHVzZSBgJHJlZ2V4YCBvbiB0aGUgc2FtZSBjbGFzcy4gRm9yIGV4YW1wbGUsIDEwLDAwMCBjb25jdXJyZW50IHJlZ2V4IHN1YnNjcmlwdGlvbnMgd291bGQgYWRkIGFwcHJveGltYXRlbHkgNTAwbXMgb2YgcHJvY2Vzc2luZyB0aW1lIHBlciBvYmplY3Qgc2F2ZSBldmVudCBvbiB0aGF0IGNsYXNzLjxicj48YnI+U2V0IHRvIGAwYCB0byBkaXNhYmxlIHRoZSB0aW1lb3V0IGFuZCB1c2UgbmF0aXZlIHJlZ2V4IGV2YWx1YXRpb24gd2l0aG91dCBwcm90ZWN0aW9uLiBEZWZhdWx0cyB0byBgMTAwYC5cbiAgOkRFRkFVTFQ6IDEwMCAqL1xuICByZWdleFRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyICovXG4gIHdzc0FkYXB0ZXI6ID9BZGFwdGVyPFdTU0FkYXB0ZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVRdWVyeVNlcnZlck9wdGlvbnMge1xuICAvKiBUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIGFwcElkIGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgYXBwSWQuKi9cbiAgYXBwSWQ6ID9zdHJpbmc7XG4gIC8qIFRoaXMgc3RyaW5nIHNob3VsZCBtYXRjaCB0aGUgbWFzdGVyS2V5IGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgbWFzdGVyS2V5LiovXG4gIG1hc3RlcktleTogP3N0cmluZztcbiAgLyogVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBzZXJ2ZXJVUkwgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBzZXJ2ZXJVUkwuKi9cbiAgc2VydmVyVVJMOiA/c3RyaW5nO1xuICAvKiBBIEpTT04gb2JqZWN0IHRoYXQgc2VydmVzIGFzIGEgd2hpdGVsaXN0IG9mIGtleXMuIEl0IGlzIHVzZWQgZm9yIHZhbGlkYXRpbmcgY2xpZW50cyB3aGVuIHRoZXkgdHJ5IHRvIGNvbm5lY3QgdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIENoZWNrIHRoZSBmb2xsb3dpbmcgU2VjdXJpdHkgc2VjdGlvbiBhbmQgb3VyIHByb3RvY29sIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMuKi9cbiAga2V5UGFpcnM6ID9hbnk7XG4gIC8qIE51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiBwaW5nL3BvbmcgZnJhbWVzLiBUaGUgV2ViU29ja2V0IHNlcnZlciBzZW5kcyBwaW5nL3BvbmcgZnJhbWVzIHRvIHRoZSBjbGllbnRzIHRvIGtlZXAgdGhlIFdlYlNvY2tldCBhbGl2ZS4gVGhpcyB2YWx1ZSBkZWZpbmVzIHRoZSBpbnRlcnZhbCBvZiB0aGUgcGluZy9wb25nIGZyYW1lIGZyb20gdGhlIHNlcnZlciB0byBjbGllbnRzLCBkZWZhdWx0cyB0byAxMCAqIDEwMDAgbXMgKDEwIHMpLiovXG4gIHdlYnNvY2tldFRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIE51bWJlciBpbiBtaWxsaXNlY29uZHMuIFdoZW4gY2xpZW50cyBwcm92aWRlIHRoZSBzZXNzaW9uVG9rZW4gdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIGZldGNoIGl0cyBQYXJzZVVzZXIncyBvYmplY3RJZCBmcm9tIHBhcnNlIHNlcnZlciBhbmQgc3RvcmUgaXQgaW4gdGhlIGNhY2hlLiBUaGUgdmFsdWUgZGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNhY2hlLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLCBkZWZhdWx0cyB0byA1ICogMTAwMCBtcyAoNSBzZWNvbmRzKS4qL1xuICBjYWNoZVRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIFRoaXMgc3RyaW5nIGRlZmluZXMgdGhlIGxvZyBsZXZlbCBvZiB0aGUgTGl2ZVF1ZXJ5IHNlcnZlci4gV2Ugc3VwcG9ydCBWRVJCT1NFLCBJTkZPLCBFUlJPUiwgTk9ORSwgZGVmYXVsdHMgdG8gSU5GTy4qL1xuICBsb2dMZXZlbDogP3N0cmluZztcbiAgLyogVGhlIHBvcnQgdG8gcnVuIHRoZSBMaXZlUXVlcnkgc2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LlxuICA6REVGQVVMVDogMTMzNyAqL1xuICBwb3J0OiA/bnVtYmVyO1xuICAvKiBwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNPcHRpb25zICovXG4gIHJlZGlzT3B0aW9uczogP2FueTtcbiAgLyogcGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzVVJMICovXG4gIHJlZGlzVVJMOiA/c3RyaW5nO1xuICAvKiBMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXIgKi9cbiAgcHViU3ViQWRhcHRlcjogP0FkYXB0ZXI8UHViU3ViQWRhcHRlcj47XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyICovXG4gIHdzc0FkYXB0ZXI6ID9BZGFwdGVyPFdTU0FkYXB0ZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW1wb3RlbmN5T3B0aW9ucyB7XG4gIC8qIEFuIGFycmF5IG9mIHBhdGhzIGZvciB3aGljaCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZW5hYmxlZC4gVGhlIG1vdW50IHBhdGggbXVzdCBub3QgYmUgaW5jbHVkZWQsIGZvciBleGFtcGxlIGluc3RlYWQgb2YgYC9wYXJzZS9mdW5jdGlvbnMvbXlGdW5jdGlvbmAgc3BlY2lmaXkgYGZ1bmN0aW9ucy9teUZ1bmN0aW9uYC4gVGhlIGVudHJpZXMgYXJlIGludGVycHJldGVkIGFzIHJlZ3VsYXIgZXhwcmVzc2lvbiwgZm9yIGV4YW1wbGUgYGZ1bmN0aW9ucy8uKmAgbWF0Y2hlcyBhbGwgZnVuY3Rpb25zLCBgam9icy8uKmAgbWF0Y2hlcyBhbGwgam9icywgYGNsYXNzZXMvLipgIG1hdGNoZXMgYWxsIGNsYXNzZXMsIGAuKmAgbWF0Y2hlcyBhbGwgcGF0aHMuXG4gIDpERUZBVUxUOiBbXSAqL1xuICBwYXRoczogPyhzdHJpbmdbXSk7XG4gIC8qIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIGEgcmVxdWVzdCByZWNvcmQgaXMgZGlzY2FyZGVkIGZyb20gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byAzMDBzLlxuICA6REVGQVVMVDogMzAwICovXG4gIHR0bDogP251bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50TG9ja291dE9wdGlvbnMge1xuICAvKiBTZXQgdGhlIGR1cmF0aW9uIGluIG1pbnV0ZXMgdGhhdCBhIGxvY2tlZC1vdXQgYWNjb3VudCByZW1haW5zIGxvY2tlZCBvdXQgYmVmb3JlIGF1dG9tYXRpY2FsbHkgYmVjb21pbmcgdW5sb2NrZWQuXG4gIDxicj48YnI+XG4gIFZhbGlkIHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGAwYCBhbmQgbGVzcyB0aGFuIGAxMDAwMDBgLiAqL1xuICBkdXJhdGlvbjogP251bWJlcjtcbiAgLyogU2V0IHRoZSBudW1iZXIgb2YgZmFpbGVkIHNpZ24taW4gYXR0ZW1wdHMgdGhhdCB3aWxsIGNhdXNlIGEgdXNlciBhY2NvdW50IHRvIGJlIGxvY2tlZC4gSWYgdGhlIGFjY291bnQgaXMgbG9ja2VkLiBUaGUgYWNjb3VudCB3aWxsIHVubG9jayBhZnRlciB0aGUgZHVyYXRpb24gc2V0IGluIHRoZSBgZHVyYXRpb25gIG9wdGlvbiBoYXMgcGFzc2VkIGFuZCBubyBmdXJ0aGVyIGxvZ2luIGF0dGVtcHRzIGhhdmUgYmVlbiBtYWRlLlxuICA8YnI+PGJyPlxuICBWYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMGAuICovXG4gIHRocmVzaG9sZDogP251bWJlcjtcbiAgLyogU2V0IHRvIGB0cnVlYCAgaWYgdGhlIGFjY291bnQgc2hvdWxkIGJlIHVubG9ja2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXNzd29yZCByZXNldC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbnMgYGR1cmF0aW9uYCBhbmQgYHRocmVzaG9sZGAgdG8gYmUgc2V0LlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgdW5sb2NrT25QYXNzd29yZFJlc2V0OiA/Ym9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZFBvbGljeU9wdGlvbnMge1xuICAvKiBTZXQgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB2YWxpZGF0aW9uIHBhdHRlcm4gYSBwYXNzd29yZCBtdXN0IG1hdGNoIHRvIGJlIGFjY2VwdGVkLlxuICA8YnI+PGJyPlxuICBJZiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYHZhbGlkYXRvckNhbGxiYWNrYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLiAqL1xuICB2YWxpZGF0b3JQYXR0ZXJuOiA/c3RyaW5nO1xuICAvKiAgICovXG4gIC8qIFNldCBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGEgcGFzc3dvcmQgdG8gYmUgYWNjZXB0ZWQuXG4gIDxicj48YnI+XG4gIElmIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgdmFsaWRhdG9yUGF0dGVybmAsIHRoZSBwYXNzd29yZCBtdXN0IHBhc3MgYm90aCB0byBiZSBhY2NlcHRlZC4gKi9cbiAgdmFsaWRhdG9yQ2FsbGJhY2s6ID8oKSA9PiB2b2lkO1xuICAvKiBTZXQgdGhlIGVycm9yIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgUGFzc3dvcmQgZG9lcyBub3QgbWVldCB0aGUgUGFzc3dvcmQgUG9saWN5IHJlcXVpcmVtZW50cy5gICovXG4gIHZhbGlkYXRpb25FcnJvcjogP3N0cmluZztcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBkaXNhbGxvdyB0aGUgdXNlcm5hbWUgYXMgcGFydCBvZiB0aGUgcGFzc3dvcmQuXG4gIDxicj48YnI+XG4gIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGRvTm90QWxsb3dVc2VybmFtZTogP2Jvb2xlYW47XG4gIC8qIFNldCB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggYSBwYXNzd29yZCBleHBpcmVzLiBMb2dpbiBhdHRlbXB0cyBmYWlsIGlmIHRoZSB1c2VyIGRvZXMgbm90IHJlc2V0IHRoZSBwYXNzd29yZCBiZWZvcmUgZXhwaXJhdGlvbi4gKi9cbiAgbWF4UGFzc3dvcmRBZ2U6ID9udW1iZXI7XG4gIC8qIFNldCB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIHBhc3N3b3JkIHRoYXQgd2lsbCBub3QgYmUgYWxsb3dlZCB0byBiZSBzZXQgYXMgbmV3IHBhc3N3b3JkLiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGAwYCwgbm8gcHJldmlvdXMgcGFzc3dvcmRzIHdpbGwgYmUgY29uc2lkZXJlZC5cbiAgPGJyPjxicj5cbiAgVmFsaWQgdmFsdWVzIGFyZSA+PSBgMGAgYW5kIDw9IGAyMGAuXG4gIDxicj5cbiAgRGVmYXVsdCBpcyBgMGAuXG4gICovXG4gIG1heFBhc3N3b3JkSGlzdG9yeTogP251bWJlcjtcbiAgLyogU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLlxuICA8YnI+PGJyPlxuICBGb3IgZXhhbXBsZSwgdG8gZXhwaXJlIHRoZSB0b2tlbiBhZnRlciAyIGhvdXJzLCBzZXQgYSB2YWx1ZSBvZiA3MjAwIHNlY29uZHMgKD0gNjAgc2Vjb25kcyAqIDYwIG1pbnV0ZXMgKiAyIGhvdXJzKS5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgdW5kZWZpbmVkYC5cbiAgKi9cbiAgcmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb246ID9udW1iZXI7XG4gIC8qIFNldCB0byBgdHJ1ZWAgaWYgYSBwYXNzd29yZCByZXNldCB0b2tlbiBzaG91bGQgYmUgcmV1c2VkIGluIGNhc2UgYW5vdGhlciB0b2tlbiBpcyByZXF1ZXN0ZWQgYnV0IHRoZXJlIGlzIGEgdG9rZW4gdGhhdCBpcyBzdGlsbCB2YWxpZCwgaS5lLiBoYXMgbm90IGV4cGlyZWQuIFRoaXMgYXZvaWRzIHRoZSBvZnRlbiBvYnNlcnZlZCBpc3N1ZSB0aGF0IGEgdXNlciByZXF1ZXN0cyBtdWx0aXBsZSBlbWFpbHMgYW5kIGRvZXMgbm90IGtub3cgd2hpY2ggbGluayBjb250YWlucyBhIHZhbGlkIHRva2VuIGJlY2F1c2UgZWFjaCBuZXdseSBnZW5lcmF0ZWQgdG9rZW4gd291bGQgaW52YWxpZGF0ZSB0aGUgcHJldmlvdXMgdG9rZW4uXG4gIDxicj48YnI+XG4gIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIHJlc2V0VG9rZW5SZXVzZUlmVmFsaWQ6ID9ib29sZWFuO1xuICAvKiBTZXQgdG8gYHRydWVgIGlmIGEgcmVxdWVzdCB0byByZXNldCB0aGUgcGFzc3dvcmQgc2hvdWxkIHJldHVybiBhIHN1Y2Nlc3MgcmVzcG9uc2UgZXZlbiBpZiB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcyBpcyBpbnZhbGlkLCBvciBgZmFsc2VgIGlmIHRoZSByZXF1ZXN0IHNob3VsZCByZXR1cm4gYW4gZXJyb3IgcmVzcG9uc2UgaWYgdGhlIGVtYWlsIGFkZHJlc3MgaXMgaW52YWxpZC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIHJlc2V0UGFzc3dvcmRTdWNjZXNzT25JbnZhbGlkRW1haWw6ID9ib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRPcHRpb25zIHtcbiAgLyogU2V0cyB0aGUgYWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgZm9yIHVwbG9hZGluZyBmaWxlcy4gVGhlIGV4dGVuc2lvbiBpcyBkZWZpbmVkIGFzIGFuIGFycmF5IG9mIGZpbGUgZXh0ZW5zaW9ucywgb3IgYSByZWdleCBwYXR0ZXJuLjxicj48YnI+SXQgaXMgcmVjb21tZW5kZWQgdG8gcmVzdHJpY3QgdGhlIGZpbGUgdXBsb2FkIGV4dGVuc2lvbnMgYXMgbXVjaCBhcyBwb3NzaWJsZS4gSFRNTCBmaWxlcyBhcmUgZXNwZWNpYWxseSBwcm9ibGVtYXRpYyBhcyB0aGV5IG1heSBiZSB1c2VkIGJ5IGFuIGF0dGFja2VyIHdobyB1cGxvYWRzIGEgSFRNTCBmb3JtIHRvIGxvb2sgbGVnaXRpbWF0ZSB1bmRlciB5b3VyIGFwcCdzIGRvbWFpbiBuYW1lLCBvciB0byBjb21wcm9taXNlIHRoZSBzZXNzaW9uIHRva2VuIG9mIGFub3RoZXIgdXNlciB2aWEgYWNjZXNzaW5nIHRoZSBicm93c2VyJ3MgbG9jYWwgc3RvcmFnZS48YnI+PGJyPkRlZmF1bHRzIHRvIGBeKD8hW3hYc1NdP1toSF1bdFRdW21NXVtsTF0/JClgIHdoaWNoIGFsbG93cyBhbnkgZmlsZSBleHRlbnNpb24gZXhjZXB0IHRob3NlIE1JTUUgdHlwZXMgdGhhdCBhcmUgbWFwcGVkIHRvIGB0ZXh0L2h0bWxgIGFuZCBhcmUgcmVuZGVyZWQgYXMgd2Vic2l0ZSBieSBhIHdlYiBicm93c2VyLlxuICA6REVGQVVMVDogW1wiXig/IVt4WHNTXT9baEhdW3RUXVttTV1bbExdPyQpXCJdICovXG4gIGZpbGVFeHRlbnNpb25zOiA/KHN0cmluZ1tdKTtcbiAgLyogIElzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFub255bW91cyB1c2Vycy5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGVuYWJsZUZvckFub255bW91c1VzZXI6ID9ib29sZWFuO1xuICAvKiBJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhdXRoZW50aWNhdGVkIHVzZXJzLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBlbmFibGVGb3JBdXRoZW50aWNhdGVkVXNlcjogP2Jvb2xlYW47XG4gIC8qIElzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFueW9uZSwgcmVnYXJkbGVzcyBvZiB1c2VyIGF1dGhlbnRpY2F0aW9uLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlRm9yUHVibGljOiA/Ym9vbGVhbjtcbiAgLyogU2V0cyB0aGUgYWxsb3dlZCBob3N0bmFtZXMgZm9yIGZpbGUgVVJMcyByZWZlcmVuY2VkIGluIFBhcnNlIG9iamVjdHMuIFdoZW4gYSBGaWxlIG9iamVjdCBpbmNsdWRlcyBhIFVSTCwgaXRzIGhvc3RuYW1lIG11c3QgbWF0Y2ggb25lIG9mIHRoZXNlIGVudHJpZXMgdG8gYmUgYWNjZXB0ZWQuIFN1cHBvcnRzIGV4YWN0IGhvc3RuYW1lcyAoZS5nLiwgYCdjZG4uZXhhbXBsZS5jb20nYCkgYW5kIHdpbGRjYXJkIHN1YmRvbWFpbnMgKGUuZy4sIGAnKi5leGFtcGxlLmNvbSdgKS4gVXNlIGBbJyonXWAgdG8gYWxsb3cgYW55IGRvbWFpbi4gVXNlIGBbXWAgdG8gYmxvY2sgYWxsIGZpbGUgVVJMcyAob25seSBuYW1lLWJhc2VkIGZpbGVzIGFsbG93ZWQpLlxuICA6REVGQVVMVDogW1wiKlwiXSAqL1xuICBhbGxvd2VkRmlsZVVybERvbWFpbnM6ID8oc3RyaW5nW10pO1xufVxuXG4vKiBUaGUgYXZhaWxhYmxlIGxvZyBsZXZlbHMgZm9yIFBhcnNlIFNlcnZlciBsb2dnaW5nLiBWYWxpZCB2YWx1ZXMgYXJlOjxicj4tIGAnZXJyb3InYCAtIEVycm9yIGxldmVsIChoaWdoZXN0IHByaW9yaXR5KTxicj4tIGAnd2FybidgIC0gV2FybmluZyBsZXZlbDxicj4tIGAnaW5mbydgIC0gSW5mbyBsZXZlbCAoZGVmYXVsdCk8YnI+LSBgJ3ZlcmJvc2UnYCAtIFZlcmJvc2UgbGV2ZWw8YnI+LSBgJ2RlYnVnJ2AgLSBEZWJ1ZyBsZXZlbDxicj4tIGAnc2lsbHknYCAtIFNpbGx5IGxldmVsIChsb3dlc3QgcHJpb3JpdHkpICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0xldmVsIHtcbiAgLyogRXJyb3IgbGV2ZWwgLSBoaWdoZXN0IHByaW9yaXR5ICovXG4gIGVycm9yOiAnZXJyb3InO1xuICAvKiBXYXJuaW5nIGxldmVsICovXG4gIHdhcm46ICd3YXJuJztcbiAgLyogSW5mbyBsZXZlbCAtIGRlZmF1bHQgKi9cbiAgaW5mbzogJ2luZm8nO1xuICAvKiBWZXJib3NlIGxldmVsICovXG4gIHZlcmJvc2U6ICd2ZXJib3NlJztcbiAgLyogRGVidWcgbGV2ZWwgKi9cbiAgZGVidWc6ICdkZWJ1Zyc7XG4gIC8qIFNpbGx5IGxldmVsIC0gbG93ZXN0IHByaW9yaXR5ICovXG4gIHNpbGx5OiAnc2lsbHknO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ0NsaWVudEV2ZW50IHtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIGV2ZW50IG5hbWUgdG8gbGlzdGVuIGZvci4gU2VlIHRoZSBbTW9uZ29EQiBkcml2ZXIgZXZlbnRzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tL2RvY3MvZHJpdmVycy9ub2RlL2N1cnJlbnQvZnVuZGFtZW50YWxzL21vbml0b3JpbmcvKSBmb3IgYXZhaWxhYmxlIGV2ZW50cy4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiBPcHRpb25hbCBhcnJheSBvZiBkb3Qtbm90YXRpb24gcGF0aHMgdG8gZXh0cmFjdCBzcGVjaWZpYyBkYXRhIGZyb20gdGhlIGV2ZW50IG9iamVjdC4gSWYgbm90IHByb3ZpZGVkIG9yIGVtcHR5LCB0aGUgZW50aXJlIGV2ZW50IG9iamVjdCB3aWxsIGJlIGxvZ2dlZC4gKi9cbiAga2V5czogPyhzdHJpbmdbXSk7XG4gIC8qIFRoZSBsb2cgbGV2ZWwgdG8gdXNlIGZvciB0aGlzIGV2ZW50LiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4gRGVmYXVsdHMgdG8gYCdpbmZvJ2AuXG4gIDpERUZBVUxUOiBpbmZvICovXG4gIGxvZ0xldmVsOiA/c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlT3B0aW9ucyB7XG4gIC8qIEVuYWJsZXMgZGF0YWJhc2UgcmVhbC10aW1lIGhvb2tzIHRvIHVwZGF0ZSBzaW5nbGUgc2NoZW1hIGNhY2hlLiBTZXQgdG8gYHRydWVgIGlmIHVzaW5nIG11bHRpcGxlIFBhcnNlIFNlcnZlcnMgaW5zdGFuY2VzIGNvbm5lY3RlZCB0byB0aGUgc2FtZSBkYXRhYmFzZS4gRmFpbGluZyB0byBkbyBzbyB3aWxsIGNhdXNlIGEgc2NoZW1hIGNoYW5nZSB0byBub3QgcHJvcGFnYXRlIHRvIGFsbCBpbnN0YW5jZXMgYW5kIHJlLXN5bmNpbmcgd2lsbCBvbmx5IGhhcHBlbiB3aGVuIHRoZSBpbnN0YW5jZXMgcmVzdGFydC4gVG8gdXNlIHRoaXMgZmVhdHVyZSB3aXRoIE1vbmdvREIsIGEgcmVwbGljYSBzZXQgY2x1c3RlciB3aXRoIFtjaGFuZ2Ugc3RyZWFtXShodHRwczovL2RvY3MubW9uZ29kYi5jb20vbWFudWFsL2NoYW5nZVN0cmVhbXMvI2F2YWlsYWJpbGl0eSkgc3VwcG9ydCBpcyByZXF1aXJlZC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGVuYWJsZVNjaGVtYUhvb2tzOiA/Ym9vbGVhbjtcbiAgLyogVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHNjaGVtYSBjYWNoZSBleHBpcmVzIGFuZCB3aWxsIGJlIHJlZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZS4gVXNlIHRoaXMgb3B0aW9uIGlmIHVzaW5nIG11bHRpcGxlIFBhcnNlIFNlcnZlcnMgaW5zdGFuY2VzIGNvbm5lY3RlZCB0byB0aGUgc2FtZSBkYXRhYmFzZS4gQSBsb3cgZHVyYXRpb24gd2lsbCBjYXVzZSB0aGUgc2NoZW1hIGNhY2hlIHRvIGJlIHVwZGF0ZWQgdG9vIG9mdGVuLCBjYXVzaW5nIHVubmVjZXNzYXJ5IGRhdGFiYXNlIHJlYWRzLiBBIGhpZ2ggZHVyYXRpb24gd2lsbCBjYXVzZSB0aGUgc2NoZW1hIHRvIGJlIHVwZGF0ZWQgdG9vIHJhcmVseSwgaW5jcmVhc2luZyB0aGUgdGltZSByZXF1aXJlZCB1bnRpbCBzY2hlbWEgY2hhbmdlcyBwcm9wYWdhdGUgdG8gYWxsIHNlcnZlciBpbnN0YW5jZXMuIFRoaXMgZmVhdHVyZSBjYW4gYmUgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSBvciBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBvcHRpb24gYGVuYWJsZVNjaGVtYUhvb2tzYC4gRGVmYXVsdCBpcyBpbmZpbml0ZSB3aGljaCBtZWFucyB0aGUgc2NoZW1hIGNhY2hlIG5ldmVyIGV4cGlyZXMuICovXG4gIHNjaGVtYUNhY2hlVHRsOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB3aGV0aGVyIHRvIHJldHJ5IGZhaWxlZCB3cml0ZXMuICovXG4gIHJldHJ5V3JpdGVzOiA/Ym9vbGVhbjtcbiAgLyogVGhlIG51bWJlciBvZiBkb2N1bWVudHMgcGVyIGJhdGNoIGZvciBNb25nb0RCIGN1cnNvciBgZ2V0TW9yZWAgb3BlcmF0aW9ucy4gQSBsb3dlciB2YWx1ZSByZWR1Y2VzIG1lbW9yeSB1c2FnZSBwZXIgYmF0Y2g7IGEgaGlnaGVyIHZhbHVlIHJlZHVjZXMgdGhlIG51bWJlciBvZiBuZXR3b3JrIHJvdW5kLXRyaXBzLlxuICA6REVGQVVMVDogMTAwMCAqL1xuICBiYXRjaFNpemU6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IGEgY3VtdWxhdGl2ZSB0aW1lIGxpbWl0IGluIG1pbGxpc2Vjb25kcyBmb3IgcHJvY2Vzc2luZyBvcGVyYXRpb25zIG9uIGEgY3Vyc29yLiAqL1xuICBtYXhUaW1lTVM6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IHRoZSBtYXhpbXVtIHJlcGxpY2F0aW9uIGxhZyBmb3IgcmVhZHMgZnJvbSBzZWNvbmRhcnkgbm9kZXMuKi9cbiAgbWF4U3RhbGVuZXNzU2Vjb25kczogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG9wZW5lZCwgY2FjaGVkLCByZWFkeS10by11c2UgZGF0YWJhc2UgY29ubmVjdGlvbnMgbWFpbnRhaW5lZCBieSB0aGUgZHJpdmVyLiAqL1xuICBtaW5Qb29sU2l6ZTogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZW5lZCwgY2FjaGVkLCByZWFkeS10by11c2UgZGF0YWJhc2UgY29ubmVjdGlvbnMgbWFpbnRhaW5lZCBieSB0aGUgZHJpdmVyLiAqL1xuICBtYXhQb29sU2l6ZTogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIGEgc2VydmVyIHRvIGJlIGNvbnNpZGVyZWQgc3VpdGFibGUgZm9yIHNlbGVjdGlvbi4gKi9cbiAgc2VydmVyU2VsZWN0aW9uVGltZW91dE1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IGEgY29ubmVjdGlvbiBjYW4gcmVtYWluIGlkbGUgaW4gdGhlIGNvbm5lY3Rpb24gcG9vbCBiZWZvcmUgYmVpbmcgcmVtb3ZlZCBhbmQgY2xvc2VkLiAqL1xuICBtYXhJZGxlVGltZU1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGZyZXF1ZW5jeSBpbiBtaWxsaXNlY29uZHMgYXQgd2hpY2ggdGhlIGRyaXZlciBjaGVja3MgdGhlIHN0YXRlIG9mIHRoZSBNb25nb0RCIGRlcGxveW1lbnQuICovXG4gIGhlYXJ0YmVhdEZyZXF1ZW5jeU1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRvIHdhaXQgdG8gZXN0YWJsaXNoIGEgc2luZ2xlIFRDUCBzb2NrZXQgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGJlZm9yZSByYWlzaW5nIGFuIGVycm9yLiBTcGVjaWZ5aW5nIDAgZGlzYWJsZXMgdGhlIGNvbm5lY3Rpb24gdGltZW91dC4gKi9cbiAgY29ubmVjdFRpbWVvdXRNUzogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCBzcGVudCBhdHRlbXB0aW5nIHRvIHNlbmQgb3IgcmVjZWl2ZSBvbiBhIHNvY2tldCBiZWZvcmUgdGltaW5nIG91dC4gU3BlY2lmeWluZyAwIG1lYW5zIG5vIHRpbWVvdXQuICovXG4gIHNvY2tldFRpbWVvdXRNUzogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgd2hldGhlciB0aGUgc29ja2V0IGF0dGVtcHRzIHRvIGNvbm5lY3QgdG8gSVB2NiBhbmQgSVB2NCBhZGRyZXNzZXMgdW50aWwgYSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkLiBJZiBhdmFpbGFibGUsIHRoZSBkcml2ZXIgd2lsbCBzZWxlY3QgdGhlIGZpcnN0IElQdjYgYWRkcmVzcy4gKi9cbiAgYXV0b1NlbGVjdEZhbWlseTogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIGEgY29ubmVjdGlvbiBhdHRlbXB0IHRvIGZpbmlzaCBiZWZvcmUgdHJ5aW5nIHRoZSBuZXh0IGFkZHJlc3Mgd2hlbiB1c2luZyB0aGUgYXV0b1NlbGVjdEZhbWlseSBvcHRpb24uIElmIHNldCB0byBhIHBvc2l0aXZlIGludGVnZXIgbGVzcyB0aGFuIDEwLCB0aGUgdmFsdWUgMTAgaXMgdXNlZCBpbnN0ZWFkLiAqL1xuICBhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdGhhdCBtYXkgYmUgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgZXN0YWJsaXNoZWQgY29uY3VycmVudGx5IGJ5IHRoZSBjb25uZWN0aW9uIHBvb2wuICovXG4gIG1heENvbm5lY3Rpbmc6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IGEgdGhyZWFkIGNhbiB3YWl0IGZvciBhIGNvbm5lY3Rpb24gdG8gYmVjb21lIGF2YWlsYWJsZS4gKi9cbiAgd2FpdFF1ZXVlVGltZW91dE1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxpY2Egc2V0LCBpZiB0aGUgbW9uZ29kIGlzIGEgbWVtYmVyIG9mIGEgcmVwbGljYSBzZXQuICovXG4gIHJlcGxpY2FTZXQ6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZm9yY2UgYSBTaW5nbGUgdG9wb2xvZ3kgdHlwZSB3aXRoIGEgY29ubmVjdGlvbiBzdHJpbmcgY29udGFpbmluZyBvbmUgaG9zdC4gKi9cbiAgZGlyZWN0Q29ubmVjdGlvbjogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gaW5zdHJ1Y3QgdGhlIGRyaXZlciBpdCBpcyBjb25uZWN0aW5nIHRvIGEgbG9hZCBiYWxhbmNlciBmcm9udGluZyBhIG1vbmdvcyBsaWtlIHNlcnZpY2UuICovXG4gIGxvYWRCYWxhbmNlZDogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgc2l6ZSAoaW4gbWlsbGlzZWNvbmRzKSBvZiB0aGUgbGF0ZW5jeSB3aW5kb3cgZm9yIHNlbGVjdGluZyBhbW9uZyBtdWx0aXBsZSBzdWl0YWJsZSBNb25nb0RCIGluc3RhbmNlcy4gKi9cbiAgbG9jYWxUaHJlc2hvbGRNUzogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBob3N0cyB0byBjb25uZWN0IHRvIHdoZW4gdXNpbmcgYW4gc3J2IGNvbm5lY3Rpb24gc3RyaW5nLCBhIHNldHRpbmcgb2YgMCBtZWFucyB1bmxpbWl0ZWQgaG9zdHMuICovXG4gIHNydk1heEhvc3RzOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIG1vZGlmeSB0aGUgc3J2IFVSSSBzZXJ2aWNlIG5hbWUuICovXG4gIHNydlNlcnZpY2VOYW1lOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGVuYWJsZSBvciBkaXNhYmxlIFRMUy9TU0wgZm9yIHRoZSBjb25uZWN0aW9uLiAqL1xuICB0bHM6ID9ib29sZWFuO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGVuYWJsZSBvciBkaXNhYmxlIFRMUy9TU0wgZm9yIHRoZSBjb25uZWN0aW9uIChlcXVpdmFsZW50IHRvIHRscyBvcHRpb24pLiAqL1xuICBzc2w6ID9ib29sZWFuO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgbG9jYWwgLnBlbSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNsaWVudCdzIFRMUy9TU0wgY2VydGlmaWNhdGUgYW5kIGtleS4gKi9cbiAgdGxzQ2VydGlmaWNhdGVLZXlGaWxlOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHBhc3N3b3JkIHRvIGRlY3J5cHQgdGhlIHRsc0NlcnRpZmljYXRlS2V5RmlsZS4gKi9cbiAgdGxzQ2VydGlmaWNhdGVLZXlGaWxlUGFzc3dvcmQ6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBsb2NhbCAucGVtIGZpbGUgdGhhdCBjb250YWlucyB0aGUgcm9vdCBjZXJ0aWZpY2F0ZSBjaGFpbiBmcm9tIHRoZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkuICovXG4gIHRsc0NBRmlsZTogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBieXBhc3MgdmFsaWRhdGlvbiBvZiB0aGUgY2VydGlmaWNhdGVzIHByZXNlbnRlZCBieSB0aGUgbW9uZ29kL21vbmdvcyBpbnN0YW5jZS4gKi9cbiAgdGxzQWxsb3dJbnZhbGlkQ2VydGlmaWNhdGVzOiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBkaXNhYmxlIGhvc3RuYW1lIHZhbGlkYXRpb24gb2YgdGhlIGNlcnRpZmljYXRlIHByZXNlbnRlZCBieSB0aGUgbW9uZ29kL21vbmdvcyBpbnN0YW5jZS4gKi9cbiAgdGxzQWxsb3dJbnZhbGlkSG9zdG5hbWVzOiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBkaXNhYmxlIHZhcmlvdXMgY2VydGlmaWNhdGUgdmFsaWRhdGlvbnMuICovXG4gIHRsc0luc2VjdXJlOiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IGFuIGFycmF5IG9yIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcgb2YgY29tcHJlc3NvcnMgdG8gZW5hYmxlIG5ldHdvcmsgY29tcHJlc3Npb24gZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGlzIGNsaWVudCBhbmQgYSBtb25nb2QvbW9uZ29zIGluc3RhbmNlLiAqL1xuICBjb21wcmVzc29yczogPyhzdHJpbmdbXSB8IHN0cmluZyk7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgY29tcHJlc3Npb24gbGV2ZWwgaWYgdXNpbmcgemxpYiBmb3IgbmV0d29yayBjb21wcmVzc2lvbiAoMC05KS4gKi9cbiAgemxpYkNvbXByZXNzaW9uTGV2ZWw6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcmVhZCBwcmVmZXJlbmNlcyBmb3IgdGhpcyBjb25uZWN0aW9uLiAqL1xuICByZWFkUHJlZmVyZW5jZTogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSB0YWdzIGRvY3VtZW50IGFzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgY29sb24tc2VwYXJhdGVkIGtleS12YWx1ZSBwYWlycy4gKi9cbiAgcmVhZFByZWZlcmVuY2VUYWdzOiA/KGFueVtdKTtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBsZXZlbCBvZiBpc29sYXRpb24uICovXG4gIHJlYWRDb25jZXJuTGV2ZWw6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZGF0YWJhc2UgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXIncyBjcmVkZW50aWFscy4gKi9cbiAgYXV0aFNvdXJjZTogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gdGhhdCBNb25nb0RCIHdpbGwgdXNlIHRvIGF1dGhlbnRpY2F0ZSB0aGUgY29ubmVjdGlvbi4gKi9cbiAgYXV0aE1lY2hhbmlzbTogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgYXV0aE1lY2hhbmlzbSBhcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNvbG9uLXNlcGFyYXRlZCBrZXktdmFsdWUgcGFpcnMuICovXG4gIGF1dGhNZWNoYW5pc21Qcm9wZXJ0aWVzOiA/YW55O1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHRoYXQgY3JlYXRlZCB0aGlzIE1vbmdvQ2xpZW50IGluc3RhbmNlLiAqL1xuICBhcHBOYW1lOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGVuYWJsZSByZXRyeWFibGUgcmVhZHMuICovXG4gIHJldHJ5UmVhZHM6ID9ib29sZWFuO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGZvcmNlIHNlcnZlciB0byBhc3NpZ24gX2lkIHZhbHVlcyBpbnN0ZWFkIG9mIGRyaXZlci4gKi9cbiAgZm9yY2VTZXJ2ZXJPYmplY3RJZDogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gaW5zdHJ1Y3QgdGhlIGRyaXZlciBtb25pdG9ycyB0byB1c2UgYSBzcGVjaWZpYyBtb25pdG9yaW5nIG1vZGUuICovXG4gIHNlcnZlck1vbml0b3JpbmdNb2RlOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBob3N0IHVzZWQgZm9yIGNyZWF0aW5nIFRDUCBjb25uZWN0aW9ucy4gKi9cbiAgcHJveHlIb3N0OiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBwb3J0IHVzZWQgZm9yIGNyZWF0aW5nIFRDUCBjb25uZWN0aW9ucy4gKi9cbiAgcHJveHlQb3J0OiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSB1c2VybmFtZSB3aGVuIHRoZSBwcm94eSByZXF1aXJlcyB1c2VybmFtZS9wYXNzd29yZCBhdXRoZW50aWNhdGlvbi4gKi9cbiAgcHJveHlVc2VybmFtZTogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBjb25maWd1cmUgYSBTb2NrczUgcHJveHkgcGFzc3dvcmQgd2hlbiB0aGUgcHJveHkgcmVxdWlyZXMgdXNlcm5hbWUvcGFzc3dvcmQgYXV0aGVudGljYXRpb24uICovXG4gIHByb3h5UGFzc3dvcmQ6ID9zdHJpbmc7XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgaW5kZXhlcyBvbiB0aGUgZW1haWwgZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPuKaoO+4jyBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBjcmVhdGVJbmRleFVzZXJFbWFpbDogP2Jvb2xlYW47XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4IG9uIHRoZSBlbWFpbCBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4VXNlckVtYWlsQ2FzZUluc2Vuc2l0aXZlOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbiBpbmRleCBvbiB0aGUgX2VtYWlsX3ZlcmlmeV90b2tlbiBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4VXNlckVtYWlsVmVyaWZ5VG9rZW46ID9ib29sZWFuO1xuICAvKiBTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGluZGV4IG9uIHRoZSBfcGVyaXNoYWJsZV90b2tlbiBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4VXNlclBhc3N3b3JkUmVzZXRUb2tlbjogP2Jvb2xlYW47XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgaW5kZXhlcyBvbiB0aGUgdXNlcm5hbWUgZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPuKaoO+4jyBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBjcmVhdGVJbmRleFVzZXJVc2VybmFtZTogP2Jvb2xlYW47XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4IG9uIHRoZSB1c2VybmFtZSBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4VXNlclVzZXJuYW1lQ2FzZUluc2Vuc2l0aXZlOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHVuaXF1ZSBpbmRleCBvbiB0aGUgbmFtZSBmaWVsZCBvZiB0aGUgX1JvbGUgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4Um9sZU5hbWU6ID9ib29sZWFuO1xuICAvKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdmFsaWRhdGlvbiBvZiBpbmRleCBmaWVsZHMuIFdoZW4gZGlzYWJsZWQsIGluZGV4ZXMgY2FuIGJlIGNyZWF0ZWQgZXZlbiBpZiB0aGUgZmllbGRzIGRvIG5vdCBleGlzdCBpbiB0aGUgc2NoZW1hLiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiBjcmVhdGluZyBpbmRleGVzIG9uIGZpZWxkcyB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIuICovXG4gIGRpc2FibGVJbmRleEZpZWxkVmFsaWRhdGlvbjogP2Jvb2xlYW47XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gYWxsb3cgYFBhcnNlLlF1ZXJ5LmV4cGxhaW5gIHdpdGhvdXQgbWFzdGVyIGtleS48YnI+PGJyPuKaoO+4jyBFbmFibGluZyB0aGlzIG9wdGlvbiBtYXkgZXhwb3NlIHNlbnNpdGl2ZSBxdWVyeSBwZXJmb3JtYW5jZSBkYXRhIHRvIHVuYXV0aG9yaXplZCB1c2VycyBhbmQgY291bGQgcG90ZW50aWFsbHkgYmUgZXhwbG9pdGVkIGZvciBtYWxpY2lvdXMgcHVycG9zZXMuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBhbGxvd1B1YmxpY0V4cGxhaW46ID9ib29sZWFuO1xuICAvKiBBbiBhcnJheSBvZiBNb25nb0RCIGNsaWVudCBldmVudCBjb25maWd1cmF0aW9ucyB0byBlbmFibGUgbG9nZ2luZyBvZiBzcGVjaWZpYyBldmVudHMuICovXG4gIGxvZ0NsaWVudEV2ZW50czogPyhMb2dDbGllbnRFdmVudFtdKTtcbiAgLyogQ3VzdG9tIG1ldGFkYXRhIHRvIGFwcGVuZCB0byBkYXRhYmFzZSBjbGllbnQgY29ubmVjdGlvbnMgZm9yIGlkZW50aWZ5aW5nIFBhcnNlIFNlcnZlciBpbnN0YW5jZXMgaW4gZGF0YWJhc2UgbG9ncy4gSWYgc2V0LCB0aGlzIG1ldGFkYXRhIHdpbGwgYmUgdmlzaWJsZSBpbiBkYXRhYmFzZSBsb2dzIGR1cmluZyBjb25uZWN0aW9uIGhhbmRzaGFrZXMuIFRoaXMgY2FuIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgYW5kIG1vbml0b3JpbmcgaW4gZGVwbG95bWVudHMgd2l0aCBtdWx0aXBsZSBkYXRhYmFzZSBjbGllbnRzLiBTZXQgYG5hbWVgIHRvIGlkZW50aWZ5IHlvdXIgYXBwbGljYXRpb24gKGUuZy4sICdNeUFwcCcpIGFuZCBgdmVyc2lvbmAgdG8geW91ciBhcHBsaWNhdGlvbidzIHZlcnNpb24uIExlYXZlIHVuZGVmaW5lZCAoZGVmYXVsdCkgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUgYW5kIGF2b2lkIHRoZSBhZGRpdGlvbmFsIGRhdGEgdHJhbnNmZXIgb3ZlcmhlYWQuICovXG4gIGNsaWVudE1ldGFkYXRhOiA/RGF0YWJhc2VPcHRpb25zQ2xpZW50TWV0YWRhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VPcHRpb25zQ2xpZW50TWV0YWRhdGEge1xuICAvKiBUaGUgbmFtZSB0byBpZGVudGlmeSB5b3VyIGFwcGxpY2F0aW9uIGluIGRhdGFiYXNlIGxvZ3MgKGUuZy4sICdNeUFwcCcpLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qIFRoZSB2ZXJzaW9uIG9mIHlvdXIgYXBwbGljYXRpb24gKGUuZy4sICcxLjAuMCcpLiAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEFkYXB0ZXIge1xuICAvKiBJcyBgdHJ1ZWAgaWYgdGhlIGF1dGggYWRhcHRlciBpcyBlbmFibGVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgOkRFRkFVTFQ6IGZhbHNlXG4gIDpFTlY6XG4gICovXG4gIGVuYWJsZWQ6ID9ib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ0xldmVscyB7XG4gIC8qIExvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBhZnRlclNhdmVgLCBgYWZ0ZXJEZWxldGVgLCBgYWZ0ZXJGaW5kYCwgYGFmdGVyTG9nb3V0YC4gRGVmYXVsdCBpcyBgaW5mb2AuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLlxuICA6REVGQVVMVDogaW5mb1xuICAqL1xuICB0cmlnZ2VyQWZ0ZXI6ID9zdHJpbmc7XG4gIC8qIExvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBiZWZvcmVTYXZlYCwgYGJlZm9yZURlbGV0ZWAsIGBiZWZvcmVGaW5kYCwgYGJlZm9yZUxvZ2luYCBvbiBzdWNjZXNzLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuXG4gIDpERUZBVUxUOiBpbmZvXG4gICovXG4gIHRyaWdnZXJCZWZvcmVTdWNjZXNzOiA/c3RyaW5nO1xuICAvKiBMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBUcmlnZ2VycyBgYmVmb3JlU2F2ZWAsIGBiZWZvcmVEZWxldGVgLCBgYmVmb3JlRmluZGAsIGBiZWZvcmVMb2dpbmAgb24gZXJyb3IuIERlZmF1bHQgaXMgYGVycm9yYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuXG4gIDpERUZBVUxUOiBlcnJvclxuICAqL1xuICB0cmlnZ2VyQmVmb3JlRXJyb3I6ID9zdHJpbmc7XG4gIC8qIExvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIEZ1bmN0aW9ucyBvbiBzdWNjZXNzLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuXG4gIDpERUZBVUxUOiBpbmZvXG4gICovXG4gIGNsb3VkRnVuY3Rpb25TdWNjZXNzOiA/c3RyaW5nO1xuICAvKiBMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBGdW5jdGlvbnMgb24gZXJyb3IuIERlZmF1bHQgaXMgYGVycm9yYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuXG4gIDpERUZBVUxUOiBlcnJvclxuICAqL1xuICBjbG91ZEZ1bmN0aW9uRXJyb3I6ID9zdHJpbmc7XG4gIC8qIExvZyBsZXZlbCB1c2VkIHdoZW4gYSBzaWduLXVwIGZhaWxzIGJlY2F1c2UgdGhlIHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuXG4gIDpERUZBVUxUOiBpbmZvXG4gICovXG4gIHNpZ251cFVzZXJuYW1lVGFrZW46ID9zdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQ0EsSUFBQUEsaUJBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQW5hbHl0aWNzQWRhcHRlciIsInJlcXVpcmUiLCJfQ2FjaGVBZGFwdGVyIiwiX01haWxBZGFwdGVyIiwiX0ZpbGVzQWRhcHRlciIsIl9Mb2dnZXJBZGFwdGVyIiwiX1B1YlN1YkFkYXB0ZXIiLCJfU3RvcmFnZUFkYXB0ZXIiLCJfV1NTQWRhcHRlciIsIl9DaGVja0dyb3VwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL09wdGlvbnMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbmltcG9ydCB7IEFuYWx5dGljc0FkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9BbmFseXRpY3MvQW5hbHl0aWNzQWRhcHRlcic7XG5pbXBvcnQgeyBDYWNoZUFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgTWFpbEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9FbWFpbC9NYWlsQWRhcHRlcic7XG5pbXBvcnQgeyBGaWxlc0FkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9GaWxlc0FkYXB0ZXInO1xuaW1wb3J0IHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0xvZ2dlci9Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IFB1YlN1YkFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9QdWJTdWIvUHViU3ViQWRhcHRlcic7XG5pbXBvcnQgeyBTdG9yYWdlQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IHsgV1NTQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL1dlYlNvY2tldFNlcnZlci9XU1NBZGFwdGVyJztcbmltcG9ydCB7IENoZWNrR3JvdXAgfSBmcm9tICcuLi9TZWN1cml0eS9DaGVja0dyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2hlbWFPcHRpb25zIHtcbiAgLyogUmVzdCByZXByZXNlbnRhdGlvbiBvbiBQYXJzZS5TY2hlbWEgaHR0cHM6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3Jlc3QvZ3VpZGUvI2FkZGluZy1hLXNjaGVtYVxuICA6REVGQVVMVDogW10gKi9cbiAgZGVmaW5pdGlvbnM6IGFueTtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGV4aXQgaWYgc2NoZW1hIHVwZGF0ZSBmYWlsLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgc3RyaWN0OiA/Ym9vbGVhbjtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGRlbGV0ZSBhbnkgZmllbGRzIG5vdCBkZWZpbmVkIGluIGEgc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBkZWxldGVFeHRyYUZpZWxkczogP2Jvb2xlYW47XG4gIC8qIElzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCByZWNyZWF0ZSBhbnkgZmllbGRzIHRoYXQgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBjdXJyZW50IGRhdGFiYXNlIHNjaGVtYSBhbmQgdGhlc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICByZWNyZWF0ZU1vZGlmaWVkRmllbGRzOiA/Ym9vbGVhbjtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgd2lsbCByZWplY3QgYW55IGF0dGVtcHRzIHRvIG1vZGlmeSB0aGUgc2NoZW1hIHdoaWxlIHRoZSBzZXJ2ZXIgaXMgcnVubmluZy5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGxvY2tTY2hlbWFzOiA/Ym9vbGVhbjtcbiAgLyogKE9wdGlvbmFsKSBLZWVwIGluZGV4ZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgZGF0YWJhc2UgYnV0IG5vdCBkZWZpbmVkIGluIHRoZSBzY2hlbWEuIFNldCB0aGlzIHRvIGB0cnVlYCBpZiB5b3UgYXJlIGFkZGluZyBpbmRleGVzIG1hbnVhbGx5LCBzbyB0aGF0IHRoZXkgd29uJ3QgYmUgcmVtb3ZlZCB3aGVuIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbi4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAga2VlcFVua25vd25JbmRleGVzOiA/Ym9vbGVhbjtcbiAgLyogRXhlY3V0ZSBhIGNhbGxiYWNrIGJlZm9yZSBydW5uaW5nIHNjaGVtYSBtaWdyYXRpb25zLiAqL1xuICBiZWZvcmVNaWdyYXRpb246ID8oKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgLyogRXhlY3V0ZSBhIGNhbGxiYWNrIGFmdGVyIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuICovXG4gIGFmdGVyTWlncmF0aW9uOiA/KCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG59XG5cbnR5cGUgQWRhcHRlcjxUPiA9IHN0cmluZyB8IGFueSB8IFQ7XG50eXBlIE51bWJlck9yQm9vbGVhbiA9IG51bWJlciB8IGJvb2xlYW47XG50eXBlIE51bWJlck9yU3RyaW5nID0gbnVtYmVyIHwgc3RyaW5nO1xudHlwZSBQcm90ZWN0ZWRGaWVsZHMgPSBhbnk7XG50eXBlIFN0cmluZ09yU3RyaW5nQXJyYXkgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbnR5cGUgUmVxdWVzdEtleXdvcmREZW55bGlzdCA9IHtcbiAga2V5OiBzdHJpbmcgfCBhbnksXG4gIHZhbHVlOiBhbnksXG59O1xudHlwZSBFbWFpbFZlcmlmaWNhdGlvblJlcXVlc3QgPSB7XG4gIG9yaWdpbmFsPzogYW55LFxuICBvYmplY3Q6IGFueSxcbiAgbWFzdGVyPzogYm9vbGVhbixcbiAgaXA/OiBzdHJpbmcsXG4gIGluc3RhbGxhdGlvbklkPzogc3RyaW5nLFxuICBjcmVhdGVkV2l0aD86IHtcbiAgICBhY3Rpb246ICdsb2dpbicgfCAnc2lnbnVwJyxcbiAgICBhdXRoUHJvdmlkZXI6IHN0cmluZyxcbiAgfSxcbiAgcmVzZW5kUmVxdWVzdD86IGJvb2xlYW4sXG59O1xudHlwZSBTZW5kRW1haWxWZXJpZmljYXRpb25SZXF1ZXN0ID0ge1xuICB1c2VyOiBhbnksXG4gIG1hc3Rlcj86IGJvb2xlYW4sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlU2VydmVyT3B0aW9ucyB7XG4gIC8qIFlvdXIgUGFyc2UgQXBwbGljYXRpb24gSURcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0FQUExJQ0FUSU9OX0lEICovXG4gIGFwcElkOiBzdHJpbmc7XG4gIC8qIFlvdXIgUGFyc2UgTWFzdGVyIEtleSAqL1xuICBtYXN0ZXJLZXk6ICgoKSA9PiB2b2lkKSB8IHN0cmluZztcbiAgLyogKE9wdGlvbmFsKSBUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3Igd2hpY2ggdGhlIGN1cnJlbnQgYG1hc3RlcktleWAgaXMgYmVpbmcgdXNlZCBiZWZvcmUgaXQgaXMgcmVxdWVzdGVkIGFnYWluIGlmIGBtYXN0ZXJLZXlgIGlzIHNldCB0byBhIGZ1bmN0aW9uLiBJZiBgbWFzdGVyS2V5YCBpcyBub3Qgc2V0IHRvIGEgZnVuY3Rpb24sIHRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QuIERlZmF1bHQgaXMgYDBgLCB3aGljaCBtZWFucyB0aGUgbWFzdGVyIGtleSBpcyByZXF1ZXN0ZWQgYnkgaW52b2tpbmcgdGhlICBgbWFzdGVyS2V5YCBmdW5jdGlvbiBldmVyeSB0aW1lIHRoZSBtYXN0ZXIga2V5IGlzIHVzZWQgaW50ZXJuYWxseSBieSBQYXJzZSBTZXJ2ZXIuICovXG4gIG1hc3RlcktleVR0bDogP251bWJlcjtcbiAgLyogKE9wdGlvbmFsKSBUaGUgbWFpbnRlbmFuY2Uga2V5IGlzIHVzZWQgZm9yIG1vZGlmeWluZyBpbnRlcm5hbCBhbmQgcmVhZC1vbmx5IGZpZWxkcyBvZiBQYXJzZSBTZXJ2ZXIuPGJyPjxicj7imqDvuI8gVGhpcyBrZXkgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgYXMgcGFydCBvZiBhIHJlZ3VsYXIgb3BlcmF0aW9uIG9mIFBhcnNlIFNlcnZlci4gVGhpcyBrZXkgaXMgaW50ZW5kZWQgdG8gY29uZHVjdCBvdXQtb2YtYmFuZCBjaGFuZ2VzIHN1Y2ggYXMgb25lLXRpbWUgbWlncmF0aW9ucyBvciBkYXRhIGNvcnJlY3Rpb24gdGFza3MuIEludGVybmFsIGZpZWxkcyBhcmUgbm90IG9mZmljaWFsbHkgZG9jdW1lbnRlZCBhbmQgbWF5IGNoYW5nZSBhdCBhbnkgdGltZSB3aXRob3V0IHB1YmxpY2F0aW9uIGluIHJlbGVhc2UgY2hhbmdlbG9ncy4gV2Ugc3Ryb25nbHkgYWR2aWNlIG5vdCB0byByZWx5IG9uIGludGVybmFsIGZpZWxkcyBhcyBwYXJ0IG9mIHlvdXIgcmVndWxhciBvcGVyYXRpb24gYW5kIHRvIGludmVzdGlnYXRlIHRoZSBpbXBsaWNhdGlvbnMgb2YgYW55IHBsYW5uZWQgY2hhbmdlcyAqZGlyZWN0bHkgaW4gdGhlIHNvdXJjZSBjb2RlKiBvZiB5b3VyIGN1cnJlbnQgdmVyc2lvbiBvZiBQYXJzZSBTZXJ2ZXIuICovXG4gIG1haW50ZW5hbmNlS2V5OiBzdHJpbmc7XG4gIC8qIFRoZSBVUkwgdG8gUGFyc2UgU2VydmVyLjxicj48YnI+4pqg77iPIENlcnRhaW4gc2VydmVyIGZlYXR1cmVzIG9yIGFkYXB0ZXJzIG1heSByZXF1aXJlIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC4gSWYgYSBmZWF0dXJlIHJlcXVpcmVzIHRoaXMsIGl0IGlzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSW4gdGhhdCBjYXNlIGVuc3VyZSB0aGF0IHRoZSBVUkwgaXMgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLlxuICA6RU5WOiBQQVJTRV9TRVJWRVJfVVJMICovXG4gIHNlcnZlclVSTDogc3RyaW5nO1xuICAvKiBQYXJzZSBTZXJ2ZXIgbWFrZXMgYSBIVFRQIHJlcXVlc3QgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAgYXQgdGhlIGVuZCBvZiBpdHMgbGF1bmNoIHJvdXRpbmUgdG8gdmVyaWZ5IHRoYXQgdGhlIGxhdW5jaCBzdWNjZWVkZWQuIElmIHRoaXMgb3B0aW9uIGlzIHNldCB0byBgZmFsc2VgLCB0aGUgdmVyaWZpY2F0aW9uIHdpbGwgYmUgc2tpcHBlZC4gVGhpcyBjYW4gYmUgdXNlZnVsIGluIGVudmlyb25tZW50cyB3aGVyZSB0aGUgc2VydmVyIFVSTCBpcyBub3QgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLCBzdWNoIGFzIHdoZW4gcnVubmluZyBiZWhpbmQgYSBmaXJld2FsbCBvciBpbiBjZXJ0YWluIGNvbnRhaW5lcml6ZWQgZW52aXJvbm1lbnRzLjxicj48YnI+4pqg77iPIFNlcnZlciBVUkwgdmVyaWZpY2F0aW9uIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICB2ZXJpZnlTZXJ2ZXJVcmw6ID9ib29sZWFuO1xuICAvKiAoT3B0aW9uYWwpIFJlc3RyaWN0cyB0aGUgdXNlIG9mIG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1hc3RlciBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFzdGVyIGtleSBhbmQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgdGhlIElQIGZpbHRlci48YnI+PGJyPjxiPkNvbnNpZGVyYXRpb25zOjwvYj48YnI+LSBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhcmUgbm90IGNvbXBhcmVkIGFnYWluc3QgZWFjaCBvdGhlci4gRWFjaCBJUCB2ZXJzaW9uIChJUHY0IGFuZCBJUHY2KSBuZWVkcyB0byBiZSBjb25zaWRlcmVkIHNlcGFyYXRlbHkuIEZvciBleGFtcGxlLCBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIGFueSBJUHY0IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY2IGFkZHJlc3MuIENvbnZlcnNlbHksIGBbJzo6MCddYCBhbGxvd3MgYW55IElQdjYgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjQgYWRkcmVzcy48YnI+LSBLZWVwIGluIG1pbmQgdGhhdCB0aGUgSVAgdmVyc2lvbiBpbiB1c2UgZGVwZW5kcyBvbiB0aGUgbmV0d29yayBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMuIEEgbG9jYWwgZW52aXJvbm1lbnQgbWF5IHVzZSBhIGRpZmZlcmVudCBJUCB2ZXJzaW9uIHRoYW4gYSByZW1vdGUgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRoYXQgbG9jYWxseSB0aGUgdmFsdWUgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyB0aGUgcmVxdWVzdCBJUCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY0LCBidXQgd2hlbiBQYXJzZSBTZXJ2ZXIgaXMgZGVwbG95ZWQgcmVtb3RlbHkgdGhlIHJlcXVlc3QgSVAgaXMgYmxvY2tlZCBiZWNhdXNlIHRoZSByZW1vdGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2Ni48YnI+LSBXaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdGhlIG5vdGF0aW9uIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgZm9yIGV4YW1wbGUgYFwiMC4wLjAuMC8wLDo6MFwiYC48YnI+LSBJUHY2IHpvbmUgaW5kaWNlcyAoYCVgIHN1ZmZpeCkgYXJlIG5vdCBzdXBwb3J0ZWQsIGZvciBleGFtcGxlIGBmZTgwOjoxJWV0aDBgLCBgZmU4MDo6MSUxYCBvciBgOjoxJWxvYC48YnI+PGJyPkRlZmF1bHRzIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgd2hpY2ggbWVhbnMgdGhhdCBvbmx5IGBsb2NhbGhvc3RgLCB0aGUgc2VydmVyIGluc3RhbmNlIG9uIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgbWFzdGVyIGtleS5cbiAgOkRFRkFVTFQ6IFtcIjEyNy4wLjAuMVwiLFwiOjoxXCJdICovXG4gIG1hc3RlcktleUlwczogPyhzdHJpbmdbXSk7XG4gIC8qIChPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgbWFpbnRlbmFuY2Uga2V5IHBlcm1pc3Npb25zIHRvIGEgbGlzdCBvZiBJUCBhZGRyZXNzZXMgb3IgcmFuZ2VzLjxicj48YnI+VGhpcyBvcHRpb24gYWNjZXB0cyBhIGxpc3Qgb2Ygc2luZ2xlIElQIGFkZHJlc3NlcywgZm9yIGV4YW1wbGUgYFsnMTAuMC4wLjEnLCAnMTAuMC4wLjInXWAuIFlvdSBjYW4gYWxzbyB1c2UgQ0lEUiBub3RhdGlvbiB0byBzcGVjaWZ5IGFuIElQIGFkZHJlc3MgcmFuZ2UsIGZvciBleGFtcGxlIGBbJzEwLjAuMS4wLzI0J11gLjxicj48YnI+PGI+U3BlY2lhbCBzY2VuYXJpb3M6PC9iPjxicj4tIFNldHRpbmcgYW4gZW1wdHkgYXJyYXkgYFtdYCBtZWFucyB0aGF0IHRoZSBtYWludGVuYW5jZSBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFpbnRlbmFuY2Uga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXCIwLjAuMC4wLzAsOjowXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMTI3LjAuMC4xJywgJzo6MSddYCB3aGljaCBtZWFucyB0aGF0IG9ubHkgYGxvY2FsaG9zdGAsIHRoZSBzZXJ2ZXIgaW5zdGFuY2Ugb24gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMsIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSBtYWludGVuYW5jZSBrZXkuXG4gIDpERUZBVUxUOiBbXCIxMjcuMC4wLjFcIixcIjo6MVwiXSAqL1xuICBtYWludGVuYW5jZUtleUlwczogPyhzdHJpbmdbXSk7XG4gIC8qIChPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgcmVhZC1vbmx5IG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGNhbm5vdCBiZSB1c2VkIGV2ZW4gaW4gUGFyc2UgU2VydmVyIENsb3VkIENvZGUuIFRoaXMgdmFsdWUgY2Fubm90IGJlIHNldCB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MgYW4gZW1wdHkgYXJyYXkgdG8gUGFyc2UgU2VydmVyIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+LSBTZXR0aW5nIGBbJzAuMC4wLjAvMCcsICc6OjAnXWAgbWVhbnMgdG8gYWxsb3cgYW55IElQdjQgYW5kIElQdjYgYWRkcmVzcyB0byB1c2UgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXCIwLjAuMC4wLzAsOjowXCJgLjxicj4tIElQdjYgem9uZSBpbmRpY2VzIChgJWAgc3VmZml4KSBhcmUgbm90IHN1cHBvcnRlZCwgZm9yIGV4YW1wbGUgYGZlODA6OjElZXRoMGAsIGBmZTgwOjoxJTFgIG9yIGA6OjElbG9gLjxicj48YnI+RGVmYXVsdHMgdG8gYFsnMC4wLjAuMC8wJywgJzo6MCddYCB3aGljaCBtZWFucyB0aGF0IGFueSBJUCBhZGRyZXNzIGlzIGFsbG93ZWQgdG8gdXNlIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIGBsb2NhbGhvc3RgLlxuICA6REVGQVVMVDogW1wiMC4wLjAuMC8wXCIsXCI6OjBcIl0gKi9cbiAgcmVhZE9ubHlNYXN0ZXJLZXlJcHM6ID8oc3RyaW5nW10pO1xuICAvKiBTZXRzIHRoZSBhcHAgbmFtZSAqL1xuICBhcHBOYW1lOiA/c3RyaW5nO1xuICAvKiBBZGQgaGVhZGVycyB0byBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzICovXG4gIGFsbG93SGVhZGVyczogPyhzdHJpbmdbXSk7XG4gIC8qIFNldHMgb3JpZ2lucyBmb3IgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBUaGlzIGNhbiBiZSBhIHN0cmluZyBmb3IgYSBzaW5nbGUgb3JpZ2luIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MgZm9yIG11bHRpcGxlIG9yaWdpbnMuICovXG4gIGFsbG93T3JpZ2luOiA/U3RyaW5nT3JTdHJpbmdBcnJheTtcbiAgLyogQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBhbmFseXRpY3MgKi9cbiAgYW5hbHl0aWNzQWRhcHRlcjogP0FkYXB0ZXI8QW5hbHl0aWNzQWRhcHRlcj47XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZmlsZXMgc3ViLXN5c3RlbSAqL1xuICBmaWxlc0FkYXB0ZXI6ID9BZGFwdGVyPEZpbGVzQWRhcHRlcj47XG4gIC8qIENvbmZpZ3VyYXRpb24gZm9yIHB1c2gsIGFzIHN0cmluZ2lmaWVkIEpTT04uIFNlZSBodHRwOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9wYXJzZS1zZXJ2ZXIvZ3VpZGUvI3B1c2gtbm90aWZpY2F0aW9ucyAqL1xuICBwdXNoOiA/YW55O1xuICAvKiBDb25maWd1cmF0aW9uIGZvciBwdXNoIHNjaGVkdWxpbmcsIGRlZmF1bHRzIHRvIGZhbHNlLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgc2NoZWR1bGVkUHVzaDogP2Jvb2xlYW47XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgbG9nZ2luZyBzdWItc3lzdGVtICovXG4gIGxvZ2dlckFkYXB0ZXI6ID9BZGFwdGVyPExvZ2dlckFkYXB0ZXI+O1xuICAvKiBMb2cgYXMgc3RydWN0dXJlZCBKU09OIG9iamVjdHNcbiAgOkVOVjogSlNPTl9MT0dTICovXG4gIGpzb25Mb2dzOiA/Ym9vbGVhbjtcbiAgLyogRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1xuICA6RU5WOiBQQVJTRV9TRVJWRVJfTE9HU19GT0xERVJcbiAgOkRFRkFVTFQ6IC4vbG9ncyAqL1xuICBsb2dzRm9sZGVyOiA/c3RyaW5nO1xuICAvKiBTZXQgdGhlIGxvZ2dpbmcgdG8gdmVyYm9zZVxuICA6RU5WOiBWRVJCT1NFICovXG4gIHZlcmJvc2U6ID9ib29sZWFuO1xuICAvKiBTZXRzIHRoZSBsZXZlbCBmb3IgbG9ncyAqL1xuICBsb2dMZXZlbDogP3N0cmluZztcbiAgLyogKE9wdGlvbmFsKSBPdmVycmlkZXMgdGhlIGxvZyBsZXZlbHMgdXNlZCBpbnRlcm5hbGx5IGJ5IFBhcnNlIFNlcnZlciB0byBsb2cgZXZlbnRzLlxuICA6REVGQVVMVDoge30gKi9cbiAgbG9nTGV2ZWxzOiA/TG9nTGV2ZWxzO1xuICAvKiBNYXhpbXVtIG51bWJlciBvZiBsb2dzIHRvIGtlZXAuIElmIG5vdCBzZXQsIG5vIGxvZ3Mgd2lsbCBiZSByZW1vdmVkLiBUaGlzIGNhbiBiZSBhIG51bWJlciBvZiBmaWxlcyBvciBudW1iZXIgb2YgZGF5cy4gSWYgdXNpbmcgZGF5cywgYWRkICdkJyBhcyB0aGUgc3VmZml4LiAoZGVmYXVsdDogbnVsbCkgKi9cbiAgbWF4TG9nRmlsZXM6ID9OdW1iZXJPclN0cmluZztcbiAgLyogRGlzYWJsZXMgY29uc29sZSBvdXRwdXRcbiAgOkVOVjogU0lMRU5UICovXG4gIHNpbGVudDogP2Jvb2xlYW47XG4gIC8qIFRoZSBmdWxsIFVSSSB0byB5b3VyIGRhdGFiYXNlLiBTdXBwb3J0ZWQgZGF0YWJhc2VzIGFyZSBtb25nb2RiIG9yIHBvc3RncmVzLlxuICA6REVGQVVMVDogbW9uZ29kYjovL2xvY2FsaG9zdDoyNzAxNy9wYXJzZSAqL1xuICBkYXRhYmFzZVVSSTogc3RyaW5nO1xuICAvKiBPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGRhdGFiYXNlIGNsaWVudFxuICA6RU5WOiBQQVJTRV9TRVJWRVJfREFUQUJBU0VfT1BUSU9OUyAqL1xuICBkYXRhYmFzZU9wdGlvbnM6ID9EYXRhYmFzZU9wdGlvbnM7XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZGF0YWJhc2U7IGFueSBvcHRpb25zIHRoYXQgYXJlIG5vdCBleHBsaWNpdGx5IGRlc2NyaWJlZCBoZXJlIGFyZSBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIGRhdGFiYXNlIGNsaWVudC4gKi9cbiAgZGF0YWJhc2VBZGFwdGVyOiA/QWRhcHRlcjxTdG9yYWdlQWRhcHRlcj47XG4gIC8qIE9wdGlvbmFsLiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgY29sbGF0aW9uIHJ1bGUgb2YgY2FzZSBjb21wYXJpc29uIGZvciBxdWVyaWVzIGFuZCBpbmRleGVzIGlzIGVuYWJsZWQuIEVuYWJsZSB0aGlzIG9wdGlvbiB0byBydW4gUGFyc2UgU2VydmVyIHdpdGggTW9uZ29EQiBBdGxhcyBTZXJ2ZXJsZXNzIG9yIEFXUyBBbWF6b24gRG9jdW1lbnREQi4gSWYgYGZhbHNlYCwgdGhlIGNvbGxhdGlvbiBydWxlIG9mIGNhc2UgY29tcGFyaXNvbiBpcyBkaXNhYmxlZC4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb246ID9ib29sZWFuO1xuICAvKiBPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGBlbWFpbGAgcHJvcGVydHkgb2YgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGxvd2VyY2FzZSBiZWZvcmUgYmVpbmcgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gQ29uc2VxdWVudGx5LCBxdWVyaWVzIG11c3QgbWF0Y2ggdGhlIGNhc2UgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgd2hpY2ggd291bGQgYmUgbG93ZXJjYXNlIGluIHRoaXMgc2NlbmFyaW8uIElmIGBmYWxzZWAsIHRoZSBgZW1haWxgIHByb3BlcnR5IGlzIHN0b3JlZCBhcyBzZXQsIHdpdGhvdXQgYW55IGNhc2UgbW9kaWZpY2F0aW9ucy4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgY29udmVydEVtYWlsVG9Mb3dlcmNhc2U6ID9ib29sZWFuO1xuICAvKiBPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGB1c2VybmFtZWAgcHJvcGVydHkgb2YgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGxvd2VyY2FzZSBiZWZvcmUgYmVpbmcgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gQ29uc2VxdWVudGx5LCBxdWVyaWVzIG11c3QgbWF0Y2ggdGhlIGNhc2UgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgd2hpY2ggd291bGQgYmUgbG93ZXJjYXNlIGluIHRoaXMgc2NlbmFyaW8uIElmIGBmYWxzZWAsIHRoZSBgdXNlcm5hbWVgIHByb3BlcnR5IGlzIHN0b3JlZCBhcyBzZXQsIHdpdGhvdXQgYW55IGNhc2UgbW9kaWZpY2F0aW9ucy4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgY29udmVydFVzZXJuYW1lVG9Mb3dlcmNhc2U6ID9ib29sZWFuO1xuICAvKiBGdWxsIHBhdGggdG8geW91ciBjbG91ZCBjb2RlIG1haW4uanMgKi9cbiAgY2xvdWQ6ID9zdHJpbmc7XG4gIC8qIEEgY29sbGVjdGlvbiBwcmVmaXggZm9yIHRoZSBjbGFzc2VzXG4gIDpERUZBVUxUOiAnJyAqL1xuICBjb2xsZWN0aW9uUHJlZml4OiA/c3RyaW5nO1xuICAvKiBLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cyAqL1xuICBjbGllbnRLZXk6ID9zdHJpbmc7XG4gIC8qIEtleSBmb3IgdGhlIEphdmFzY3JpcHQgU0RLICovXG4gIGphdmFzY3JpcHRLZXk6ID9zdHJpbmc7XG4gIC8qIEtleSBmb3IgVW5pdHkgYW5kIC5OZXQgU0RLICovXG4gIGRvdE5ldEtleTogP3N0cmluZztcbiAgLyogS2V5IGZvciBlbmNyeXB0aW5nIHlvdXIgZmlsZXNcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0VOQ1JZUFRJT05fS0VZICovXG4gIGVuY3J5cHRpb25LZXk6ID9zdHJpbmc7XG4gIC8qIEtleSBmb3IgUkVTVCBjYWxsc1xuICA6RU5WOiBQQVJTRV9TRVJWRVJfUkVTVF9BUElfS0VZICovXG4gIHJlc3RBUElLZXk6ID9zdHJpbmc7XG4gIC8qIFJlYWQtb25seSBrZXksIHdoaWNoIGhhcyB0aGUgc2FtZSBjYXBhYmlsaXRpZXMgYXMgTWFzdGVyS2V5IHdpdGhvdXQgd3JpdGVzICovXG4gIHJlYWRPbmx5TWFzdGVyS2V5OiA/c3RyaW5nO1xuICAvKiBLZXkgc2VudCB3aXRoIG91dGdvaW5nIHdlYmhvb2sgY2FsbHMgKi9cbiAgd2ViaG9va0tleTogP3N0cmluZztcbiAgLyogS2V5IGZvciB5b3VyIGZpbGVzICovXG4gIGZpbGVLZXk6ID9zdHJpbmc7XG4gIC8qIEVuYWJsZSAob3IgZGlzYWJsZSkgdGhlIGFkZGl0aW9uIG9mIGEgdW5pcXVlIGhhc2ggdG8gdGhlIGZpbGUgbmFtZXNcbiAgOkVOVjogUEFSU0VfU0VSVkVSX1BSRVNFUlZFX0ZJTEVfTkFNRVxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgcHJlc2VydmVGaWxlTmFtZTogP2Jvb2xlYW47XG4gIC8qIFBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uIGZpZWxkcyBpbiB0aGUgdXNlciB0YWJsZSB0aGUgc2hvdWxkIGJlIHJlbW92ZWQgZm9yIG5vbi1hdXRob3JpemVkIHVzZXJzLiBEZXByZWNhdGVkIEBzZWUgcHJvdGVjdGVkRmllbGRzICovXG4gIHVzZXJTZW5zaXRpdmVGaWVsZHM6ID8oc3RyaW5nW10pO1xuICAvKiBQcm90ZWN0ZWQgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgd2l0aCBleHRyYSBzZWN1cml0eSB3aGVuIGZldGNoaW5nIGRldGFpbHMuXG4gIDpERUZBVUxUOiB7XCJfVXNlclwiOiB7XCIqXCI6IFtcImVtYWlsXCJdfX0gKi9cbiAgcHJvdGVjdGVkRmllbGRzOiA/UHJvdGVjdGVkRmllbGRzO1xuICAvKiBFbmFibGUgKG9yIGRpc2FibGUpIGFub255bW91cyB1c2VycywgZGVmYXVsdHMgdG8gdHJ1ZVxuICA6RU5WOiBQQVJTRV9TRVJWRVJfRU5BQkxFX0FOT05fVVNFUlNcbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgZW5hYmxlQW5vbnltb3VzVXNlcnM6ID9ib29sZWFuO1xuICAvKiBFbmFibGUgKG9yIGRpc2FibGUpIGNsaWVudCBjbGFzcyBjcmVhdGlvbiwgZGVmYXVsdHMgdG8gZmFsc2VcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0FMTE9XX0NMSUVOVF9DTEFTU19DUkVBVElPTlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgYWxsb3dDbGllbnRDbGFzc0NyZWF0aW9uOiA/Ym9vbGVhbjtcbiAgLyogRW5hYmxlIChvciBkaXNhYmxlKSBjdXN0b20gb2JqZWN0SWRcbiAgOkVOVjogUEFSU0VfU0VSVkVSX0FMTE9XX0NVU1RPTV9PQkpFQ1RfSURcbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGFsbG93Q3VzdG9tT2JqZWN0SWQ6ID9ib29sZWFuO1xuICAvKiBDb25maWd1cmF0aW9uIGZvciB5b3VyIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVycywgYXMgc3RyaW5naWZpZWQgSlNPTi4gU2VlIGh0dHA6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3BhcnNlLXNlcnZlci9ndWlkZS8jb2F1dGgtYW5kLTNyZC1wYXJ0eS1hdXRoZW50aWNhdGlvblxuICA6RU5WOiBQQVJTRV9TRVJWRVJfQVVUSF9QUk9WSURFUlMgKi9cbiAgYXV0aDogP3sgW3N0cmluZ106IEF1dGhBZGFwdGVyIH07XG4gIC8qIE9wdGlvbmFsLiBFbmFibGVzIGluc2VjdXJlIGF1dGhlbnRpY2F0aW9uIGFkYXB0ZXJzLiBJbnNlY3VyZSBhdXRoIGFkYXB0ZXJzIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX0VOQUJMRV9JTlNFQ1VSRV9BVVRIX0FEQVBURVJTXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBlbmFibGVJbnNlY3VyZUF1dGhBZGFwdGVyczogP2Jvb2xlYW47XG4gIC8qIE1heCBmaWxlIHNpemUgZm9yIHVwbG9hZHMsIGRlZmF1bHRzIHRvIDIwbWJcbiAgOkRFRkFVTFQ6IDIwbWIgKi9cbiAgbWF4VXBsb2FkU2l6ZTogP3N0cmluZztcbiAgLyogU2V0IHRvIGB0cnVlYCB0byByZXF1aXJlIHVzZXJzIHRvIHZlcmlmeSB0aGVpciBlbWFpbCBhZGRyZXNzIHRvIGNvbXBsZXRlIHRoZSBzaWduLXVwIHByb2Nlc3MuIFN1cHBvcnRzIGEgZnVuY3Rpb24gd2l0aCBhIHJldHVybiB2YWx1ZSBvZiBgdHJ1ZWAgb3IgYGZhbHNlYCBmb3IgY29uZGl0aW9uYWwgdmVyaWZpY2F0aW9uLiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYSByZXF1ZXN0IG9iamVjdCB0aGF0IGluY2x1ZGVzIGBjcmVhdGVkV2l0aGAgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgaW52b2NhdGlvbiBpcyBmb3IgYHNpZ251cGAgb3IgYGxvZ2luYCBhbmQgdGhlIHVzZWQgYXV0aCBwcm92aWRlci5cbiAgPGJyPjxicj5cbiAgVGhlIGBjcmVhdGVkV2l0aGAgdmFsdWVzIHBlciBzY2VuYXJpbzpcbiAgPHVsPjxsaT5QYXNzd29yZCBzaWdudXA6IGB7IGFjdGlvbjogJ3NpZ251cCcsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICc8cHJvdmlkZXI+JyB9YDwvbGk+PGxpPlBhc3N3b3JkIGxvZ2luOiBgeyBhY3Rpb246ICdsb2dpbicsIGF1dGhQcm92aWRlcjogJ3Bhc3N3b3JkJyB9YDwvbGk+PGxpPkF1dGggcHJvdmlkZXIgbG9naW46IGZ1bmN0aW9uIG5vdCBpbnZva2VkOyBhdXRoIHByb3ZpZGVyIGxvZ2luIGJ5cGFzc2VzIGVtYWlsIHZlcmlmaWNhdGlvbjwvbGk+PGxpPlJlc2VuZCB2ZXJpZmljYXRpb24gZW1haWw6IGBjcmVhdGVkV2l0aGAgaXMgYHVuZGVmaW5lZGA7IHVzZSB0aGUgYHJlc2VuZFJlcXVlc3RgIHByb3BlcnR5IHRvIGlkZW50aWZ5IHRob3NlPC9saT48L3VsPlxuICBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICB2ZXJpZnlVc2VyRW1haWxzOiA/KGJvb2xlYW4gfCAoRW1haWxWZXJpZmljYXRpb25SZXF1ZXN0ID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+KSk7XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gcHJldmVudCBhIHVzZXIgZnJvbSBsb2dnaW5nIGluIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuIFN1cHBvcnRzIGEgZnVuY3Rpb24gd2l0aCBhIHJldHVybiB2YWx1ZSBvZiBgdHJ1ZWAgb3IgYGZhbHNlYCBmb3IgY29uZGl0aW9uYWwgcHJldmVudGlvbi4gVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIGEgcmVxdWVzdCBvYmplY3QgdGhhdCBpbmNsdWRlcyBgY3JlYXRlZFdpdGhgIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGludm9jYXRpb24gaXMgZm9yIGBzaWdudXBgIG9yIGBsb2dpbmAgYW5kIHRoZSB1c2VkIGF1dGggcHJvdmlkZXIuXG4gIDxicj48YnI+XG4gIFRoZSBgY3JlYXRlZFdpdGhgIHZhbHVlcyBwZXIgc2NlbmFyaW86XG4gIDx1bD48bGk+UGFzc3dvcmQgc2lnbnVwOiBgeyBhY3Rpb246ICdzaWdudXAnLCBhdXRoUHJvdmlkZXI6ICdwYXNzd29yZCcgfWA8L2xpPjxsaT5BdXRoIHByb3ZpZGVyIHNpZ251cDogYHsgYWN0aW9uOiAnc2lnbnVwJywgYXV0aFByb3ZpZGVyOiAnPHByb3ZpZGVyPicgfWA8L2xpPjxsaT5QYXNzd29yZCBsb2dpbjogYHsgYWN0aW9uOiAnbG9naW4nLCBhdXRoUHJvdmlkZXI6ICdwYXNzd29yZCcgfWA8L2xpPjxsaT5BdXRoIHByb3ZpZGVyIGxvZ2luOiBmdW5jdGlvbiBub3QgaW52b2tlZDsgYXV0aCBwcm92aWRlciBsb2dpbiBieXBhc3NlcyBlbWFpbCB2ZXJpZmljYXRpb248L2xpPjwvdWw+XG4gIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgPGJyPlxuICBSZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgcHJldmVudExvZ2luV2l0aFVudmVyaWZpZWRFbWFpbDogPyhcbiAgICB8IGJvb2xlYW5cbiAgICB8IChFbWFpbFZlcmlmaWNhdGlvblJlcXVlc3QgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pXG4gICk7XG4gIC8qIElmIHNldCB0byBgdHJ1ZWAgaXQgcHJldmVudHMgYSB1c2VyIGZyb20gc2lnbmluZyB1cCBpZiB0aGUgZW1haWwgaGFzIG5vdCB5ZXQgYmVlbiB2ZXJpZmllZCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkLiBJbiB0aGF0IGNhc2UgdGhlIHNlcnZlciByZXNwb25kcyB0byB0aGUgc2lnbi11cCB3aXRoIEhUVFAgc3RhdHVzIDQwMCBhbmQgYSBQYXJzZSBFcnJvciAyMDUgYEVNQUlMX05PVF9GT1VORGAuIElmIHNldCB0byBgZmFsc2VgIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCBIVFRQIHN0YXR1cyAyMDAsIGFuZCBjbGllbnQgU0RLcyByZXR1cm4gYW4gdW5hdXRoZW50aWNhdGVkIFBhcnNlIFVzZXIgd2l0aG91dCBzZXNzaW9uIHRva2VuLiBJbiB0aGF0IGNhc2Ugc3Vic2VxdWVudCByZXF1ZXN0cyBmYWlsIHVudGlsIHRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzcyBpcyB2ZXJpZmllZC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBwcmV2ZW50U2lnbnVwV2l0aFVudmVyaWZpZWRFbWFpbDogP2Jvb2xlYW47XG4gIC8qIFNldCB0aGUgdmFsaWRpdHkgZHVyYXRpb24gb2YgdGhlIGVtYWlsIHZlcmlmaWNhdGlvbiB0b2tlbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSB0b2tlbiBleHBpcmVzLiBUaGUgdG9rZW4gaXMgdXNlZCBpbiB0aGUgbGluayB0aGF0IGlzIHNldCBpbiB0aGUgZW1haWwuIEFmdGVyIHRoZSB0b2tlbiBleHBpcmVzLCB0aGUgbGluayBiZWNvbWVzIGludmFsaWQgYW5kIGEgbmV3IGxpbmsgaGFzIHRvIGJlIHNlbnQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYHVuZGVmaW5lZGAsIHRoZW4gdGhlIHRva2VuIG5ldmVyIGV4cGlyZXMuXG4gIDxicj48YnI+XG4gIEZvciBleGFtcGxlLCB0byBleHBpcmUgdGhlIHRva2VuIGFmdGVyIDIgaG91cnMsIHNldCBhIHZhbHVlIG9mIDcyMDAgc2Vjb25kcyAoPSA2MCBzZWNvbmRzICogNjAgbWludXRlcyAqIDIgaG91cnMpLlxuICA8YnI+PGJyPlxuICBEZWZhdWx0IGlzIGB1bmRlZmluZWRgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXG4gICovXG4gIGVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uOiA/bnVtYmVyO1xuICAvKiBTZXQgdG8gYHRydWVgIGlmIGEgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBlbWFpbFZlcmlmeVRva2VuUmV1c2VJZlZhbGlkOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBzZW5kaW5nIG9mIHZlcmlmaWNhdGlvbiBlbWFpbC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBlbWFpbCBzZW5kaW5nLlxuICA8YnI+PGJyPlxuICBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgPGJyPlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBzZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uOiA/KFxuICAgIHwgYm9vbGVhblxuICAgIHwgKFNlbmRFbWFpbFZlcmlmaWNhdGlvblJlcXVlc3QgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pXG4gICk7XG4gIC8qIFRoZSBhY2NvdW50IGxvY2tvdXQgcG9saWN5IGZvciBmYWlsZWQgbG9naW4gYXR0ZW1wdHMuICovXG4gIGFjY291bnRMb2Nrb3V0OiA/QWNjb3VudExvY2tvdXRPcHRpb25zO1xuICAvKiBUaGUgcGFzc3dvcmQgcG9saWN5IGZvciBlbmZvcmNpbmcgcGFzc3dvcmQgcmVsYXRlZCBydWxlcy4gKi9cbiAgcGFzc3dvcmRQb2xpY3k6ID9QYXNzd29yZFBvbGljeU9wdGlvbnM7XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgY2FjaGUgKi9cbiAgY2FjaGVBZGFwdGVyOiA/QWRhcHRlcjxDYWNoZUFkYXB0ZXI+O1xuICAvKiBBZGFwdGVyIG1vZHVsZSBmb3IgZW1haWwgc2VuZGluZyAqL1xuICBlbWFpbEFkYXB0ZXI6ID9BZGFwdGVyPE1haWxBZGFwdGVyPjtcbiAgLyogT3B0aW9uYWwuIFRoZSBwdWJsaWMgVVJMIHRvIFBhcnNlIFNlcnZlci4gVGhpcyBVUkwgd2lsbCBiZSB1c2VkIHRvIHJlYWNoIFBhcnNlIFNlcnZlciBwdWJsaWNseSBmb3IgZmVhdHVyZXMgbGlrZSBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGxpbmtzLiBUaGUgb3B0aW9uIGNhbiBiZSBzZXQgdG8gYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhc3luY2hyb25vdXNseSByZXNvbHZlZC4gVGhlIHJldHVybmVkIFVSTCBzdHJpbmcgbXVzdCBzdGFydCB3aXRoIGBodHRwOi8vYCBvciBgaHR0cHM6Ly9gLlxuICA6RU5WOiBQQVJTRV9QVUJMSUNfU0VSVkVSX1VSTCAqL1xuICBwdWJsaWNTZXJ2ZXJVUkw6ID8oc3RyaW5nIHwgKCgpID0+IHN0cmluZykgfCAoKCkgPT4gUHJvbWlzZTxzdHJpbmc+KSk7XG4gIC8qIFRoZSBvcHRpb25zIGZvciBwYWdlcyBzdWNoIGFzIHBhc3N3b3JkIHJlc2V0IGFuZCBlbWFpbCB2ZXJpZmljYXRpb24uXG4gIDpERUZBVUxUOiB7fSAqL1xuICBwYWdlczogP1BhZ2VzT3B0aW9ucztcbiAgLyogY3VzdG9tIHBhZ2VzIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uIGFuZCByZXNldFxuICA6REVGQVVMVDoge30gKi9cbiAgY3VzdG9tUGFnZXM6ID9DdXN0b21QYWdlc09wdGlvbnM7XG4gIC8qIHBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjb25maWd1cmF0aW9uIG9iamVjdCAqL1xuICBsaXZlUXVlcnk6ID9MaXZlUXVlcnlPcHRpb25zO1xuICAvKiBTZXNzaW9uIGR1cmF0aW9uLCBpbiBzZWNvbmRzLCBkZWZhdWx0cyB0byAxIHllYXJcbiAgOkRFRkFVTFQ6IDMxNTM2MDAwICovXG4gIHNlc3Npb25MZW5ndGg6ID9udW1iZXI7XG4gIC8qIFdoZXRoZXIgUGFyc2UgU2VydmVyIHNob3VsZCBhdXRvbWF0aWNhbGx5IGV4dGVuZCBhIHZhbGlkIHNlc3Npb24gYnkgdGhlIHNlc3Npb25MZW5ndGguIEluIG9yZGVyIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHNlc3Npb24gdXBkYXRlcyBpbiB0aGUgZGF0YWJhc2UsIGEgc2Vzc2lvbiB3aWxsIG9ubHkgYmUgZXh0ZW5kZWQgd2hlbiBhIHJlcXVlc3QgaXMgcmVjZWl2ZWQgYWZ0ZXIgYXQgbGVhc3QgaGFsZiBvZiB0aGUgY3VycmVudCBzZXNzaW9uJ3MgbGlmZXRpbWUgaGFzIHBhc3NlZC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGV4dGVuZFNlc3Npb25PblVzZTogP2Jvb2xlYW47XG4gIC8qIERlZmF1bHQgdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byBgMTAwYC5cbiAgOkRFRkFVTFQ6IDEwMCAqL1xuICBkZWZhdWx0TGltaXQ6ID9udW1iZXI7XG4gIC8qIE1heCB2YWx1ZSBmb3IgbGltaXQgb3B0aW9uIG9uIHF1ZXJpZXMsIGRlZmF1bHRzIHRvIHVubGltaXRlZCAqL1xuICBtYXhMaW1pdDogP251bWJlcjtcbiAgLyogU2V0cyB3aGV0aGVyIHdlIHNob3VsZCBleHBpcmUgdGhlIGluYWN0aXZlIHNlc3Npb25zLCBkZWZhdWx0cyB0byB0cnVlLiBJZiBmYWxzZSwgYWxsIG5ldyBzZXNzaW9ucyBhcmUgY3JlYXRlZCB3aXRoIG5vIGV4cGlyYXRpb24gZGF0ZS5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgZXhwaXJlSW5hY3RpdmVTZXNzaW9uczogP2Jvb2xlYW47XG4gIC8qIFdoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIHJldm9rZVNlc3Npb25PblBhc3N3b3JkUmVzZXQ6ID9ib29sZWFuO1xuICAvKiBTZXRzIHRoZSBUVEwgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUgKGluIG1zKSwgZGVmYXVsdHMgdG8gNTAwMCAoNSBzZWNvbmRzKVxuICA6REVGQVVMVDogNTAwMCAqL1xuICBjYWNoZVRUTDogP251bWJlcjtcbiAgLyogU2V0cyB0aGUgbWF4aW11bSBzaXplIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlLCBkZWZhdWx0cyB0byAxMDAwMFxuICA6REVGQVVMVDogMTAwMDAgKi9cbiAgY2FjaGVNYXhTaXplOiA/bnVtYmVyO1xuICAvKiBTZXQgdG8gYHRydWVgIGlmIFBhcnNlIHJlcXVlc3RzIHdpdGhpbiB0aGUgc2FtZSBOb2RlLmpzIGVudmlyb25tZW50IGFzIFBhcnNlIFNlcnZlciBzaG91bGQgYmUgcm91dGVkIHRvIFBhcnNlIFNlcnZlciBkaXJlY3RseSBpbnN0ZWFkIG9mIHZpYSB0aGUgSFRUUCBpbnRlcmZhY2UuIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgPGJyPjxicj5cbiAgSWYgc2V0IHRvIGBmYWxzZWAgdGhlbiBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgTm9kZS5qcyBlbnZpcm9ubWVudCBhcyBQYXJzZSBTZXJ2ZXIgYXJlIGV4ZWN1dGVkIGFzIEhUVFAgcmVxdWVzdHMgc2VudCB0byBQYXJzZSBTZXJ2ZXIgdmlhIHRoZSBgc2VydmVyVVJMYC4gRm9yIGV4YW1wbGUsIGEgYFBhcnNlLlF1ZXJ5YCBpbiBDbG91ZCBDb2RlIGlzIGNhbGxpbmcgUGFyc2UgU2VydmVyIHZpYSBhIEhUVFAgcmVxdWVzdC4gVGhlIHNlcnZlciBpcyBlc3NlbnRpYWxseSBtYWtpbmcgYSBIVFRQIHJlcXVlc3QgdG8gaXRzZWxmLCB1bm5lY2Vzc2FyaWx5IHVzaW5nIG5ldHdvcmsgcmVzb3VyY2VzIHN1Y2ggYXMgbmV0d29yayBwb3J0cy5cbiAgPGJyPjxicj5cbiAg4pqg77iPIEluIGVudmlyb25tZW50cyB3aGVyZSBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIHJ1biBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyIGFuZCBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIGN1cnJlbnQgTm9kZS5qcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgcm91dGVkIHZpYSB0aGUgbG9hZCBiYWxhbmNlciBhbmQgZGlzdHJpYnV0ZWQgYXMgSFRUUCByZXF1ZXN0cyBhbW9uZyBhbGwgaW5zdGFuY2VzIHZpYSB0aGUgYHNlcnZlclVSTGAsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBkaXJlY3RBY2Nlc3M6ID9ib29sZWFuO1xuICAvKiBFbmFibGVzIHRoZSBkZWZhdWx0IGV4cHJlc3MgZXJyb3IgaGFuZGxlciBmb3IgYWxsIGVycm9yc1xuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlRXhwcmVzc0Vycm9ySGFuZGxlcjogP2Jvb2xlYW47XG4gIC8qIFNldHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGdlbmVyYXRlZCBvYmplY3QgaWQncywgZGVmYXVsdCAxMFxuICA6REVGQVVMVDogMTAgKi9cbiAgb2JqZWN0SWRTaXplOiA/bnVtYmVyO1xuICAvKiBUaGUgcG9ydCB0byBydW4gdGhlIFBhcnNlU2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LlxuICA6RU5WOiBQT1JUXG4gIDpERUZBVUxUOiAxMzM3ICovXG4gIHBvcnQ6ID9udW1iZXI7XG4gIC8qIFRoZSBob3N0IHRvIHNlcnZlIFBhcnNlU2VydmVyIG9uLCBkZWZhdWx0cyB0byAwLjAuMC4wXG4gIDpERUZBVUxUOiAwLjAuMC4wICovXG4gIGhvc3Q6ID9zdHJpbmc7XG4gIC8qIE1vdW50IHBhdGggZm9yIHRoZSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIC9wYXJzZVxuICA6REVGQVVMVDogL3BhcnNlICovXG4gIG1vdW50UGF0aDogP3N0cmluZztcbiAgLyogUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoICovXG4gIGNsdXN0ZXI6ID9OdW1iZXJPckJvb2xlYW47XG4gIC8qIG1pZGRsZXdhcmUgZm9yIGV4cHJlc3Mgc2VydmVyLCBjYW4gYmUgc3RyaW5nIG9yIGZ1bmN0aW9uICovXG4gIG1pZGRsZXdhcmU6ID8oKCgpID0+IHZvaWQpIHwgc3RyaW5nKTtcbiAgLyogVGhlIHRydXN0IHByb3h5IHNldHRpbmdzLiBJdCBpcyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgZXhhY3Qgc2V0dXAgb2YgdGhlIHJldmVyc2UgcHJveHksIHNpbmNlIHRoaXMgc2V0dGluZyB3aWxsIHRydXN0IHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgUGFyc2UgU2VydmVyIEFQSSByZXF1ZXN0LiBTZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vZ3VpZGUvYmVoaW5kLXByb3hpZXMuaHRtbFwiPmV4cHJlc3MgdHJ1c3QgcHJveHkgc2V0dGluZ3M8L2E+IGRvY3VtZW50YXRpb24uIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICB0cnVzdFByb3h5OiA/YW55O1xuICAvKiBTdGFydHMgdGhlIGxpdmVRdWVyeSBzZXJ2ZXIgKi9cbiAgc3RhcnRMaXZlUXVlcnlTZXJ2ZXI6ID9ib29sZWFuO1xuICAvKiBMaXZlIHF1ZXJ5IHNlcnZlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgKHdpbGwgc3RhcnQgdGhlIGxpdmVRdWVyeSBzZXJ2ZXIpICovXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6ID9MaXZlUXVlcnlTZXJ2ZXJPcHRpb25zO1xuICAvKiBPcHRpb25zIGZvciByZXF1ZXN0IGlkZW1wb3RlbmN5IHRvIGRlZHVwbGljYXRlIGlkZW50aWNhbCByZXF1ZXN0cyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgbmV0d29yayBpc3N1ZXMuIENhdXRpb24sIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgdGhhdCBtYXkgbm90IGJlIGFwcHJvcHJpYXRlIGZvciBwcm9kdWN0aW9uLlxuICA6RU5WOiBQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX09QVElPTlNcbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGlkZW1wb3RlbmN5T3B0aW9uczogP0lkZW1wb3RlbmN5T3B0aW9ucztcbiAgLyogT3B0aW9ucyBmb3IgZmlsZSB1cGxvYWRzXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9PUFRJT05TXG4gIDpERUZBVUxUOiB7fSAqL1xuICBmaWxlVXBsb2FkOiA/RmlsZVVwbG9hZE9wdGlvbnM7XG4gIC8qIEZ1bGwgcGF0aCB0byB5b3VyIEdyYXBoUUwgY3VzdG9tIHNjaGVtYS5ncmFwaHFsIGZpbGUgKi9cbiAgZ3JhcGhRTFNjaGVtYTogP3N0cmluZztcbiAgLyogTW91bnRzIHRoZSBHcmFwaFFMIGVuZHBvaW50XG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9NT1VOVF9HUkFQSFFMXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBtb3VudEdyYXBoUUw6ID9ib29sZWFuO1xuICAvKiBUaGUgbW91bnQgcGF0aCBmb3IgdGhlIEdyYXBoUUwgZW5kcG9pbnQ8YnI+PGJyPuKaoO+4jyBGaWxlIHVwbG9hZCBpbnNpZGUgdGhlIEdyYXBoUUwgbXV0YXRpb24gc3lzdGVtIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHRzIGlzIGAvZ3JhcGhxbGAuXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9HUkFQSFFMX1BBVEhcbiAgOkRFRkFVTFQ6IC9ncmFwaHFsICovXG4gIGdyYXBoUUxQYXRoOiA/c3RyaW5nO1xuICAvKiBFbmFibGUgcHVibGljIGludHJvc3BlY3Rpb24gZm9yIHRoZSBHcmFwaFFMIGVuZHBvaW50LCBkZWZhdWx0cyB0byBmYWxzZVxuICA6RU5WOiBQQVJTRV9TRVJWRVJfR1JBUEhRTF9QVUJMSUNfSU5UUk9TUEVDVElPTlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZ3JhcGhRTFB1YmxpY0ludHJvc3BlY3Rpb246ID9ib29sZWFuO1xuICAvKiBEZXByZWNhdGVkLiBNb3VudHMgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCB3aGljaCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gVGhlIHBsYXlncm91bmQgZXhwb3NlcyB0aGUgbWFzdGVyIGtleSBpbiB0aGUgYnJvd3Nlci4gVXNlIFBhcnNlIERhc2hib2FyZCBhcyBHcmFwaFFMIElERSBvciBjb25maWd1cmUgYSB0aGlyZC1wYXJ0eSBHcmFwaFFMIGNsaWVudCB3aXRoIGN1c3RvbSByZXF1ZXN0IGhlYWRlcnMuXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9NT1VOVF9QTEFZR1JPVU5EXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBtb3VudFBsYXlncm91bmQ6ID9ib29sZWFuO1xuICAvKiBEZXByZWNhdGVkLiBNb3VudCBwYXRoIGZvciB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kLiBUaGUgcGxheWdyb3VuZCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX1BMQVlHUk9VTkRfUEFUSFxuICA6REVGQVVMVDogL3BsYXlncm91bmQgKi9cbiAgcGxheWdyb3VuZFBhdGg6ID9zdHJpbmc7XG4gIC8qIERlZmluZWQgc2NoZW1hXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9TQ0hFTUFcbiAgKi9cbiAgc2NoZW1hOiA/U2NoZW1hT3B0aW9ucztcbiAgLyogQ2FsbGJhY2sgd2hlbiBzZXJ2ZXIgaGFzIGNsb3NlZCAqL1xuICBzZXJ2ZXJDbG9zZUNvbXBsZXRlOiA/KCkgPT4gdm9pZDtcbiAgLyogT3B0aW9ucyB0byBsaW1pdCB0aGUgY29tcGxleGl0eSBvZiByZXF1ZXN0cyB0byBwcmV2ZW50IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3MuIExpbWl0cyBhcmUgZW5mb3JjZWQgZm9yIGFsbCByZXF1ZXN0cyBleGNlcHQgdGhvc2UgdXNpbmcgdGhlIG1hc3RlciBvciBtYWludGVuYW5jZSBrZXkuIEVhY2ggcHJvcGVydHkgY2FuIGJlIHNldCB0byBgLTFgIHRvIGRpc2FibGUgdGhhdCBzcGVjaWZpYyBsaW1pdC5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWVxuICA6REVGQVVMVDoge30gKi9cbiAgcmVxdWVzdENvbXBsZXhpdHk6ID9SZXF1ZXN0Q29tcGxleGl0eU9wdGlvbnM7XG4gIC8qIFRoZSBzZWN1cml0eSBvcHRpb25zIHRvIGlkZW50aWZ5IGFuZCByZXBvcnQgd2VhayBzZWN1cml0eSBzZXR0aW5ncy5cbiAgOkRFRkFVTFQ6IHt9ICovXG4gIHNlY3VyaXR5OiA/U2VjdXJpdHlPcHRpb25zO1xuICAvKiBTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBlbmZvcmNlUHJpdmF0ZVVzZXJzOiA/Ym9vbGVhbjtcbiAgLyogQWxsb3cgYSB1c2VyIHRvIGxvZyBpbiBldmVuIGlmIHRoZSAzcmQgcGFydHkgYXV0aGVudGljYXRpb24gdG9rZW4gdGhhdCB3YXMgdXNlZCB0byBzaWduIGluIHRvIHRoZWlyIGFjY291bnQgaGFzIGV4cGlyZWQuIElmIHRoaXMgaXMgc2V0IHRvIGBmYWxzZWAsIHRoZW4gdGhlIHRva2VuIHdpbGwgYmUgdmFsaWRhdGVkIGV2ZXJ5IHRpbWUgdGhlIHVzZXIgc2lnbnMgaW4gdG8gdGhlaXIgYWNjb3VudC4gVGhpcyByZWZlcnMgdG8gdGhlIHRva2VuIHRoYXQgaXMgc3RvcmVkIGluIHRoZSBgX1VzZXIuYXV0aERhdGFgIGZpZWxkLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbjogP2Jvb2xlYW47XG4gIC8qIEFuIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcyB0aGF0IGFyZSBwcm9oaWJpdGVkIGluIGRhdGFiYXNlIHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzIHRvIHByZXZlbnQgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBvbmx5IGEga2V5IChge1wia2V5XCI6XCIuLi5cIn1gKSwgb25seSBhIHZhbHVlIChge1widmFsdWVcIjpcIi4uLlwifWApIG9yIGEga2V5LXZhbHVlIHBhaXIgKGB7XCJrZXlcIjpcIi4uLlwiLFwidmFsdWVcIjpcIi4uLlwifWApLiBUaGUgc3BlY2lmaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdHlwZXM6IGBib29sZWFuYCwgYG51bWVyaWNgIG9yIGBzdHJpbmdgLCB3aGVyZSBgc3RyaW5nYCB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgcmVnZXggbm90YXRpb24uIFJlcXVlc3QgZGF0YSBpcyBkZWVwLXNjYW5uZWQgZm9yIG1hdGNoaW5nIGRlZmluaXRpb25zIHRvIGRldGVjdCBhbHNvIGFueSBuZXN0ZWQgb2NjdXJyZW5jZXMuIERlZmF1bHRzIGFyZSBwYXR0ZXJucyB0aGF0IGFyZSBsaWtlbHkgdG8gYmUgdXNlZCBpbiBtYWxpY2lvdXMgcmVxdWVzdHMuIFNldHRpbmcgdGhpcyBvcHRpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBwYXR0ZXJucy5cbiAgOkRFRkFVTFQ6IFt7XCJrZXlcIjpcIl9ic29udHlwZVwiLFwidmFsdWVcIjpcIkNvZGVcIn0se1wia2V5XCI6XCJjb25zdHJ1Y3RvclwifSx7XCJrZXlcIjpcIl9fcHJvdG9fX1wifV0gKi9cbiAgcmVxdWVzdEtleXdvcmREZW55bGlzdDogPyhSZXF1ZXN0S2V5d29yZERlbnlsaXN0W10pO1xuICAvKiBPcHRpb25zIHRvIGxpbWl0IHJlcGVhdGVkIHJlcXVlc3RzIHRvIFBhcnNlIFNlcnZlciBBUElzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByb3RlY3Qgc2Vuc2l0aXZlIGVuZHBvaW50cyBzdWNoIGFzIGAvcmVxdWVzdFBhc3N3b3JkUmVzZXRgIGZyb20gYnJ1dGUtZm9yY2UgYXR0YWNrcyBvciBQYXJzZSBTZXJ2ZXIgYXMgYSB3aG9sZSBmcm9tIGRlbmlhbC1vZi1zZXJ2aWNlIChEb1MpIGF0dGFja3MuPGJyPjxicj7ihLnvuI8gTWluZCB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zOjxicj4tIHJhdGUgbGltaXRzIGFwcGxpZWQgcGVyIElQIGFkZHJlc3M7IHRoaXMgbGltaXRzIHByb3RlY3Rpb24gYWdhaW5zdCBkaXN0cmlidXRlZCBkZW5pYWwtb2Ytc2VydmljZSAoRERvUykgYXR0YWNrcyB3aGVyZSBtYW55IHJlcXVlc3RzIGFyZSBjb21pbmcgZnJvbSB2YXJpb3VzIElQIGFkZHJlc3Nlczxicj4tIGlmIG11bHRpcGxlIFBhcnNlIFNlcnZlciBpbnN0YW5jZXMgYXJlIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIgb3IgcmFuIGluIGEgY2x1c3RlciwgZWFjaCBpbnN0YW5jZSB3aWxsIGNhbGN1bGF0ZSBpdCdzIG93biByZXF1ZXN0IHJhdGVzLCBpbmRlcGVuZGVudCBmcm9tIG90aGVyIGluc3RhbmNlczsgdGhpcyBsaW1pdHMgdGhlIGFwcGxpY2FiaWxpdHkgb2YgdGhpcyBmZWF0dXJlIHdoZW4gdXNpbmcgYSBsb2FkIGJhbGFuY2VyIGFuZCBhbm90aGVyIHJhdGUgbGltaXRpbmcgc29sdXRpb24gdGhhdCB0YWtlcyByZXF1ZXN0cyBhY3Jvc3MgYWxsIGluc3RhbmNlcyBpbnRvIGFjY291bnQgbWF5IGJlIG1vcmUgc3VpdGFibGU8YnI+LSB0aGlzIGZlYXR1cmUgcHJvdmlkZXMgYmFzaWMgcHJvdGVjdGlvbiBhZ2FpbnN0IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3MsIGJ1dCBhIG1vcmUgc29waGlzdGljYXRlZCBzb2x1dGlvbiB3b3JrcyBlYXJsaWVyIGluIHRoZSByZXF1ZXN0IGZsb3cgYW5kIHByZXZlbnRzIGEgbWFsaWNpb3VzIHJlcXVlc3RzIHRvIGV2ZW4gcmVhY2ggYSBzZXJ2ZXIgaW5zdGFuY2U7IGl0J3MgdGhlcmVmb3JlIHJlY29tbWVuZGVkIHRvIGltcGxlbWVudCBhIHNvbHV0aW9uIGFjY29yZGluZyB0byBhcmNoaXRlY3R1cmUgYW5kIHVzZXIgY2FzZS5cbiAgOkRFRkFVTFQ6IFtdICovXG4gIHJhdGVMaW1pdDogPyhSYXRlTGltaXRPcHRpb25zW10pO1xuICAvKiBPcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdCBjb250ZXh0IHVzaW5nIGludmVyc2lvbiBvZiBjb250cm9sL2RlcGVuZGVuY3kgaW5qZWN0aW9uLiovXG4gIHJlcXVlc3RDb250ZXh0TWlkZGxld2FyZTogPyhyZXE6IGFueSwgcmVzOiBhbnksIG5leHQ6IGFueSkgPT4gdm9pZDtcbiAgLyogSWYgc2V0IHRvIGB0cnVlYCwgZXJyb3IgZGV0YWlscyBhcmUgcmVtb3ZlZCBmcm9tIGVycm9yIG1lc3NhZ2VzIGluIHJlc3BvbnNlcyB0byBjbGllbnQgcmVxdWVzdHMsIGFuZCBpbnN0ZWFkIGEgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGlzIHNlbnQuIERlZmF1bHQgaXMgYHRydWVgLlxuICA6REVGQVVMVDogdHJ1ZSAqL1xuICBlbmFibGVTYW5pdGl6ZWRFcnJvclJlc3BvbnNlOiA/Ym9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYXRlTGltaXRPcHRpb25zIHtcbiAgLyogVGhlIHBhdGggb2YgdGhlIEFQSSByb3V0ZSB0byBiZSByYXRlIGxpbWl0ZWQuIFJvdXRlIHBhdGhzLCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgcmVxdWVzdCBtZXRob2QsIGRlZmluZSB0aGUgZW5kcG9pbnRzIGF0IHdoaWNoIHJlcXVlc3RzIGNhbiBiZSBtYWRlLiBSb3V0ZSBwYXRocyBjYW4gYmUgc3RyaW5ncyBvciBzdHJpbmcgcGF0dGVybnMgZm9sbG93aW5nIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcIj5wYXRoLXRvLXJlZ2V4cCB2ODwvYT4gc3ludGF4LiAqL1xuICByZXF1ZXN0UGF0aDogc3RyaW5nO1xuICAvKiBUaGUgd2luZG93IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHdpdGhpbiB3aGljaCB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHNldCBpbiBgcmVxdWVzdENvdW50YCBjYW4gYmUgbWFkZSBiZWZvcmUgdGhlIHJhdGUgbGltaXQgaXMgYXBwbGllZC4gKi9cbiAgcmVxdWVzdFRpbWVXaW5kb3c6ID9udW1iZXI7XG4gIC8qIFRoZSBudW1iZXIgb2YgcmVxdWVzdHMgdGhhdCBjYW4gYmUgbWFkZSBwZXIgSVAgYWRkcmVzcyB3aXRoaW4gdGhlIHRpbWUgd2luZG93IHNldCBpbiBgcmVxdWVzdFRpbWVXaW5kb3dgIGJlZm9yZSB0aGUgcmF0ZSBsaW1pdCBpcyBhcHBsaWVkLiAqL1xuICByZXF1ZXN0Q291bnQ6ID9udW1iZXI7XG4gIC8qIFRoZSBlcnJvciBtZXNzYWdlIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIGluIHRoZSBib2R5IG9mIHRoZSBIVFRQIDQyOSByZXNwb25zZSB3aGVuIHRoZSByYXRlIGxpbWl0IGlzIGhpdC4gRGVmYXVsdCBpcyBgVG9vIG1hbnkgcmVxdWVzdHMuYC5cbiAgOkRFRkFVTFQ6IFRvbyBtYW55IHJlcXVlc3RzLiAqL1xuICBlcnJvclJlc3BvbnNlTWVzc2FnZTogP3N0cmluZztcbiAgLyogT3B0aW9uYWwsIHRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kcyB0byB3aGljaCB0aGUgcmF0ZSBsaW1pdCBzaG91bGQgYmUgYXBwbGllZCwgZGVmYXVsdCBpcyBhbGwgbWV0aG9kcy4gKi9cbiAgcmVxdWVzdE1ldGhvZHM6ID8oc3RyaW5nW10pO1xuICAvKiBPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAgbWF5IGNpcmN1bXZlbnQgcmF0ZSBsaW1pdGluZyBhbmQgYmUgdnVsbmVyYWJsZSB0byBhdHRhY2tzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgaW5jbHVkZU1hc3RlcktleTogP2Jvb2xlYW47XG4gIC8qIE9wdGlvbmFsLCBpZiBgdHJ1ZWAgdGhlIHJhdGUgbGltaXQgd2lsbCBhbHNvIGFwcGx5IHRvIHJlcXVlc3RzIHRoYXQgYXJlIG1hZGUgaW4gYnkgQ2xvdWQgQ29kZSwgZGVmYXVsdCBpcyBgZmFsc2VgLiBOb3RlIHRoYXQgYSBwdWJsaWMgQ2xvdWQgQ29kZSBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIGludGVybmFsIHJlcXVlc3RzIG1heSBjaXJjdW12ZW50IHJhdGUgbGltaXRpbmcgYW5kIGJlIHZ1bG5lcmFibGUgdG8gYXR0YWNrcy5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGluY2x1ZGVJbnRlcm5hbFJlcXVlc3RzOiA/Ym9vbGVhbjtcbiAgLyogT3B0aW9uYWwsIHRoZSBVUkwgb2YgdGhlIFJlZGlzIHNlcnZlciB0byBzdG9yZSByYXRlIGxpbWl0IGRhdGEuIFRoaXMgYWxsb3dzIHRvIHJhdGUgbGltaXQgcmVxdWVzdHMgZm9yIG11bHRpcGxlIHNlcnZlcnMgYnkgY2FsY3VsYXRpbmcgdGhlIHN1bSBvZiBhbGwgcmVxdWVzdHMgYWNyb3NzIGFsbCBzZXJ2ZXJzLiBUaGlzIGlzIHVzZWZ1bCBpZiBtdWx0aXBsZSBzZXJ2ZXJzIGFyZSBwcm9jZXNzaW5nIHJlcXVlc3RzIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIuIEZvciBleGFtcGxlLCB0aGUgbGltaXQgb2YgMTAgcmVxdWVzdHMgaXMgcmVhY2hlZCBpZiBlYWNoIG9mIDIgc2VydmVycyBwcm9jZXNzZWQgNSByZXF1ZXN0cy5cbiAgICovXG4gIHJlZGlzVXJsOiA/c3RyaW5nO1xuICAvKiBUaGUgdHlwZSBvZiByYXRlIGxpbWl0IHRvIGFwcGx5LiBUaGUgZm9sbG93aW5nIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6XG4gIDx1bD5cbiAgPGxpPmBnbG9iYWxgOiByYXRlIGxpbWl0IGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgbWFkZSBieSBhbGwgdXNlcnM8L2xpPlxuICA8bGk+YGlwYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgcmVxdWVzdDwvbGk+XG4gIDxsaT5gdXNlcmA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHVzZXIgSUQgb2YgdGhlIHJlcXVlc3Q8L2xpPlxuICA8bGk+YHNlc3Npb25gOiByYXRlIGxpbWl0IGJhc2VkIG9uIHRoZSBzZXNzaW9uIHRva2VuIG9mIHRoZSByZXF1ZXN0PC9saT5cbiAgPC91bD5cbiAgRGVmYXVsdCBpcyBgaXBgLlxuICA6REVGQVVMVDogaXAgKi9cbiAgem9uZTogP3N0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0Q29tcGxleGl0eU9wdGlvbnMge1xuICAvKiBNYXhpbXVtIGRlcHRoIG9mIGluY2x1ZGUgcG9pbnRlciBjaGFpbnMgKGUuZy4gYGEuYi5jYCA9IGRlcHRoIDMpLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGA1YC5cbiAgOkRFRkFVTFQ6IDUgKi9cbiAgaW5jbHVkZURlcHRoOiA/bnVtYmVyO1xuICAvKiBNYXhpbXVtIG51bWJlciBvZiBpbmNsdWRlIHBhdGhzIGluIGEgc2luZ2xlIHF1ZXJ5LiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGA1MGAuXG4gIDpERUZBVUxUOiA1MCAqL1xuICBpbmNsdWRlQ291bnQ6ID9udW1iZXI7XG4gIC8qIE1heGltdW0gbmVzdGluZyBkZXB0aCBvZiBgJGluUXVlcnlgLCBgJG5vdEluUXVlcnlgLCBgJHNlbGVjdGAsIGAkZG9udFNlbGVjdGAgc3VicXVlcmllcy4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgNWAuXG4gIDpERUZBVUxUOiA1ICovXG4gIHN1YnF1ZXJ5RGVwdGg6ID9udW1iZXI7XG4gIC8qIE1heGltdW0gZGVwdGggb2YgR3JhcGhRTCBmaWVsZCBzZWxlY3Rpb25zLiBTZXQgdG8gYC0xYCB0byBkaXNhYmxlLiBEZWZhdWx0IGlzIGA1MGAuXG4gIDpFTlY6IFBBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTVBMRVhJVFlfR1JBUEhRTF9ERVBUSFxuICA6REVGQVVMVDogNTAgKi9cbiAgZ3JhcGhRTERlcHRoOiA/bnVtYmVyO1xuICAvKiBNYXhpbXVtIG51bWJlciBvZiBmaWVsZCBzZWxlY3Rpb25zIGluIGEgR3JhcGhRTCBxdWVyeS4gU2V0IHRvIGAtMWAgdG8gZGlzYWJsZS4gRGVmYXVsdCBpcyBgMjAwYC5cbiAgOkVOVjogUEFSU0VfU0VSVkVSX1JFUVVFU1RfQ09NUExFWElUWV9HUkFQSFFMX0ZJRUxEU1xuICA6REVGQVVMVDogMjAwICovXG4gIGdyYXBoUUxGaWVsZHM6ID9udW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlPcHRpb25zIHtcbiAgLyogSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGNoZWNrIGZvciB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlQ2hlY2s6ID9ib29sZWFuO1xuICAvKiBJcyB0cnVlIGlmIHRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9ncy4gVGhpcyBzaG91bGQgb25seSBiZSBlbmFibGVkIHRlbXBvcmFyaWx5IHRvIG5vdCBleHBvc2Ugd2VhayBzZWN1cml0eSBzZXR0aW5ncyBpbiBsb2dzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlQ2hlY2tMb2c6ID9ib29sZWFuO1xuICAvKiBUaGUgc2VjdXJpdHkgY2hlY2sgZ3JvdXBzIHRvIHJ1bi4gVGhpcyBhbGxvd3MgdG8gYWRkIGN1c3RvbSBzZWN1cml0eSBjaGVja3Mgb3Igb3ZlcnJpZGUgZXhpc3Rpbmcgb25lcy4gRGVmYXVsdCBhcmUgdGhlIGdyb3VwcyBkZWZpbmVkIGluIGBDaGVja0dyb3Vwcy5qc2AuICovXG4gIGNoZWNrR3JvdXBzOiA/KENoZWNrR3JvdXBbXSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZXNPcHRpb25zIHtcbiAgLyogSXMgdHJ1ZSBpZiBwYWdlcyBzaG91bGQgYmUgbG9jYWxpemVkOyB0aGlzIGhhcyBubyBlZmZlY3Qgb24gY3VzdG9tIHBhZ2UgcmVkaXJlY3RzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlTG9jYWxpemF0aW9uOiA/Ym9vbGVhbjtcbiAgLyogVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZSBmb3IgbG9jYWxpemF0aW9uOyB0aGUgdHJhbnNsYXRpb25zIHdpbGwgYmUgdXNlZCB0byBmaWxsIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBhY2NvcmRpbmcgdG8gdGhlIGxvY2FsZS4gKi9cbiAgbG9jYWxpemF0aW9uSnNvblBhdGg6ID9zdHJpbmc7XG4gIC8qIFRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIGxvY2FsaXphdGlvbiBpZiBubyBtYXRjaGluZyB0cmFuc2xhdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4gVGhpcyBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcHJvdmlkaW5nIHRyYW5zbGF0aW9uIHJlc291cmNlcyB2aWEgSlNPTiBmaWxlLlxuICA6REVGQVVMVDogZW4gKi9cbiAgbG9jYWxpemF0aW9uRmFsbGJhY2tMb2NhbGU6ID9zdHJpbmc7XG4gIC8qIFRoZSBwbGFjZWhvbGRlciBrZXlzIGFuZCB2YWx1ZXMgd2hpY2ggd2lsbCBiZSBmaWxsZWQgaW4gcGFnZXM7IHRoaXMgY2FuIGJlIGEgc2ltcGxlIG9iamVjdCBvciBhIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICA6REVGQVVMVDoge30gKi9cbiAgcGxhY2Vob2xkZXJzOiA/T2JqZWN0O1xuICAvKiBJcyB0cnVlIGlmIHJlc3BvbnNlcyBzaG91bGQgYWx3YXlzIGJlIHJlZGlyZWN0cyBhbmQgbmV2ZXIgY29udGVudCwgZmFsc2UgaWYgdGhlIHJlc3BvbnNlIHR5cGUgc2hvdWxkIGRlcGVuZCBvbiB0aGUgcmVxdWVzdCB0eXBlIChHRVQgcmVxdWVzdCAtPiBjb250ZW50IHJlc3BvbnNlOyBQT1NUIHJlcXVlc3QgLT4gcmVkaXJlY3QgcmVzcG9uc2UpLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZm9yY2VSZWRpcmVjdDogP2Jvb2xlYW47XG4gIC8qIFRoZSBwYXRoIHRvIHRoZSBwYWdlcyBkaXJlY3Rvcnk7IHRoaXMgYWxzbyBkZWZpbmVzIHdoZXJlIHRoZSBzdGF0aWMgZW5kcG9pbnQgJy9hcHBzJyBwb2ludHMgdG8uIERlZmF1bHQgaXMgdGhlICcuL3B1YmxpYy8nIGRpcmVjdG9yeSBvZiB0aGUgcGFyc2Utc2VydmVyIG1vZHVsZS4gKi9cbiAgcGFnZXNQYXRoOiA/c3RyaW5nO1xuICAvKiBUaGUgQVBJIGVuZHBvaW50IGZvciB0aGUgcGFnZXMuIERlZmF1bHQgaXMgJ2FwcHMnLlxuICA6REVGQVVMVDogYXBwcyAqL1xuICBwYWdlc0VuZHBvaW50OiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMcyB0byB0aGUgY3VzdG9tIHBhZ2VzLlxuICA6REVGQVVMVDoge30gKi9cbiAgY3VzdG9tVXJsczogP1BhZ2VzQ3VzdG9tVXJsc09wdGlvbnM7XG4gIC8qIFRoZSBjdXN0b20gcm91dGVzLlxuICA6REVGQVVMVDogW10gKi9cbiAgY3VzdG9tUm91dGVzOiA/KFBhZ2VzUm91dGVbXSk7XG4gIC8qIElzIGB0cnVlYCBpZiB0aGUgcGFnZSBwYXJhbWV0ZXIgaGVhZGVycyBzaG91bGQgYmUgVVJJLWVuY29kZWQuIFRoaXMgaXMgcmVxdWlyZWQgaWYgYW55IHBhZ2UgcGFyYW1ldGVyIHZhbHVlIGNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBzdWNoIGFzIHRoZSBhcHAgbmFtZS5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGVuY29kZVBhZ2VQYXJhbUhlYWRlcnM6ID9ib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VzUm91dGUge1xuICAvKiBUaGUgcm91dGUgcGF0aC4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiBUaGUgcm91dGUgbWV0aG9kLCBlLmcuICdHRVQnIG9yICdQT1NUJy4gKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG4gIC8qIFRoZSByb3V0ZSBoYW5kbGVyIHRoYXQgaXMgYW4gYXN5bmMgZnVuY3Rpb24uICovXG4gIGhhbmRsZXI6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZXNDdXN0b21VcmxzT3B0aW9ucyB7XG4gIC8qIFRoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBwYXNzd29yZCByZXNldC4gKi9cbiAgcGFzc3dvcmRSZXNldDogP3N0cmluZztcbiAgLyogVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IGxpbmsgaW52YWxpZC4gKi9cbiAgcGFzc3dvcmRSZXNldExpbmtJbnZhbGlkOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgcGFzc3dvcmQgcmVzZXQgLT4gc3VjY2Vzcy4gKi9cbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIFRoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gc3VjY2Vzcy4gKi9cbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgc2VuZCBmYWlsLiAqL1xuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHJlc2VuZCBsaW5rIC0+IHN1Y2Nlc3MuICovXG4gIGVtYWlsVmVyaWZpY2F0aW9uU2VuZFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIFRoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBpbnZhbGlkLiAqL1xuICBlbWFpbFZlcmlmaWNhdGlvbkxpbmtJbnZhbGlkOiA/c3RyaW5nO1xuICAvKiBUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgZXhwaXJlZC4gKi9cbiAgZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZDogP3N0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21QYWdlc09wdGlvbnMge1xuICAvKiBpbnZhbGlkIGxpbmsgcGFnZSBwYXRoICovXG4gIGludmFsaWRMaW5rOiA/c3RyaW5nO1xuICAvKiB2ZXJpZmljYXRpb24gbGluayBzZW5kIGZhaWwgcGFnZSBwYXRoICovXG4gIGxpbmtTZW5kRmFpbDogP3N0cmluZztcbiAgLyogY2hvb3NlIHBhc3N3b3JkIHBhZ2UgcGF0aCAqL1xuICBjaG9vc2VQYXNzd29yZDogP3N0cmluZztcbiAgLyogdmVyaWZpY2F0aW9uIGxpbmsgc2VuZCBzdWNjZXNzIHBhZ2UgcGF0aCAqL1xuICBsaW5rU2VuZFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIHZlcmlmeSBlbWFpbCBzdWNjZXNzIHBhZ2UgcGF0aCAqL1xuICB2ZXJpZnlFbWFpbFN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIHBhc3N3b3JkIHJlc2V0IHN1Y2Nlc3MgcGFnZSBwYXRoICovXG4gIHBhc3N3b3JkUmVzZXRTdWNjZXNzOiA/c3RyaW5nO1xuICAvKiBpbnZhbGlkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCAqL1xuICBpbnZhbGlkVmVyaWZpY2F0aW9uTGluazogP3N0cmluZztcbiAgLyogZXhwaXJlZCB2ZXJpZmljYXRpb24gbGluayBwYWdlIHBhdGggKi9cbiAgZXhwaXJlZFZlcmlmaWNhdGlvbkxpbms6ID9zdHJpbmc7XG4gIC8qIGludmFsaWQgcGFzc3dvcmQgcmVzZXQgbGluayBwYWdlIHBhdGggKi9cbiAgaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rOiA/c3RyaW5nO1xuICAvKiBmb3IgbWFza2luZyB1c2VyLWZhY2luZyBwYWdlcyAqL1xuICBwYXJzZUZyYW1lVVJMOiA/c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVRdWVyeU9wdGlvbnMge1xuICAvKiBwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgY2xhc3NOYW1lc1xuICA6RU5WOiBQQVJTRV9TRVJWRVJfTElWRVFVRVJZX0NMQVNTTkFNRVMgKi9cbiAgY2xhc3NOYW1lczogPyhzdHJpbmdbXSk7XG4gIC8qIHBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnMgKi9cbiAgcmVkaXNPcHRpb25zOiA/YW55O1xuICAvKiBwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNVUkwgKi9cbiAgcmVkaXNVUkw6ID9zdHJpbmc7XG4gIC8qIExpdmVRdWVyeSBwdWJzdWIgYWRhcHRlciAqL1xuICBwdWJTdWJBZGFwdGVyOiA/QWRhcHRlcjxQdWJTdWJBZGFwdGVyPjtcbiAgLyogU2V0cyB0aGUgbWF4aW11bSBleGVjdXRpb24gdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIG1hdGNoaW5nIGluIExpdmVRdWVyeS4gVGhpcyBwcm90ZWN0cyBhZ2FpbnN0IFJlZ3VsYXIgRXhwcmVzc2lvbiBEZW5pYWwgb2YgU2VydmljZSAoUmVEb1MpIGF0dGFja3Mgd2hlcmUgYSBtYWxpY2lvdXMgcmVnZXggcGF0dGVybiBjb3VsZCBibG9jayB0aGUgZXZlbnQgbG9vcC4gQSByZWdleCB0aGF0IGV4Y2VlZHMgdGhlIHRpbWVvdXQgd2lsbCBiZSB0cmVhdGVkIGFzIG5vbi1tYXRjaGluZy48YnI+PGJyPlRoZSBwcm90ZWN0aW9uIHJ1bnMgZWFjaCByZWdleCBldmFsdWF0aW9uIGluIGFuIGlzb2xhdGVkIFZNIGNvbnRleHQgd2l0aCBhIHRpbWVvdXQuIFRoaXMgYWRkcyBhcHByb3hpbWF0ZWx5IDUwIG1pY3Jvc2Vjb25kcyBvZiBvdmVyaGVhZCBwZXIgcmVnZXggZXZhbHVhdGlvbi4gRm9yIG1vc3QgYXBwbGljYXRpb25zIHRoaXMgaXMgbmVnbGlnaWJsZSwgYnV0IGl0IGNhbiBhZGQgdXAgaWYgeW91IGhhdmUgYSB2ZXJ5IGxhcmdlIG51bWJlciBvZiBMaXZlUXVlcnkgc3Vic2NyaXB0aW9ucyB0aGF0IHVzZSBgJHJlZ2V4YCBvbiB0aGUgc2FtZSBjbGFzcy4gRm9yIGV4YW1wbGUsIDEwLDAwMCBjb25jdXJyZW50IHJlZ2V4IHN1YnNjcmlwdGlvbnMgd291bGQgYWRkIGFwcHJveGltYXRlbHkgNTAwbXMgb2YgcHJvY2Vzc2luZyB0aW1lIHBlciBvYmplY3Qgc2F2ZSBldmVudCBvbiB0aGF0IGNsYXNzLjxicj48YnI+U2V0IHRvIGAwYCB0byBkaXNhYmxlIHRoZSB0aW1lb3V0IGFuZCB1c2UgbmF0aXZlIHJlZ2V4IGV2YWx1YXRpb24gd2l0aG91dCBwcm90ZWN0aW9uLiBEZWZhdWx0cyB0byBgMTAwYC5cbiAgOkRFRkFVTFQ6IDEwMCAqL1xuICByZWdleFRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyICovXG4gIHdzc0FkYXB0ZXI6ID9BZGFwdGVyPFdTU0FkYXB0ZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpdmVRdWVyeVNlcnZlck9wdGlvbnMge1xuICAvKiBUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIGFwcElkIGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgYXBwSWQuKi9cbiAgYXBwSWQ6ID9zdHJpbmc7XG4gIC8qIFRoaXMgc3RyaW5nIHNob3VsZCBtYXRjaCB0aGUgbWFzdGVyS2V5IGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgbWFzdGVyS2V5LiovXG4gIG1hc3RlcktleTogP3N0cmluZztcbiAgLyogVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBzZXJ2ZXJVUkwgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBzZXJ2ZXJVUkwuKi9cbiAgc2VydmVyVVJMOiA/c3RyaW5nO1xuICAvKiBBIEpTT04gb2JqZWN0IHRoYXQgc2VydmVzIGFzIGEgd2hpdGVsaXN0IG9mIGtleXMuIEl0IGlzIHVzZWQgZm9yIHZhbGlkYXRpbmcgY2xpZW50cyB3aGVuIHRoZXkgdHJ5IHRvIGNvbm5lY3QgdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIENoZWNrIHRoZSBmb2xsb3dpbmcgU2VjdXJpdHkgc2VjdGlvbiBhbmQgb3VyIHByb3RvY29sIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMuKi9cbiAga2V5UGFpcnM6ID9hbnk7XG4gIC8qIE51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiBwaW5nL3BvbmcgZnJhbWVzLiBUaGUgV2ViU29ja2V0IHNlcnZlciBzZW5kcyBwaW5nL3BvbmcgZnJhbWVzIHRvIHRoZSBjbGllbnRzIHRvIGtlZXAgdGhlIFdlYlNvY2tldCBhbGl2ZS4gVGhpcyB2YWx1ZSBkZWZpbmVzIHRoZSBpbnRlcnZhbCBvZiB0aGUgcGluZy9wb25nIGZyYW1lIGZyb20gdGhlIHNlcnZlciB0byBjbGllbnRzLCBkZWZhdWx0cyB0byAxMCAqIDEwMDAgbXMgKDEwIHMpLiovXG4gIHdlYnNvY2tldFRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIE51bWJlciBpbiBtaWxsaXNlY29uZHMuIFdoZW4gY2xpZW50cyBwcm92aWRlIHRoZSBzZXNzaW9uVG9rZW4gdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIGZldGNoIGl0cyBQYXJzZVVzZXIncyBvYmplY3RJZCBmcm9tIHBhcnNlIHNlcnZlciBhbmQgc3RvcmUgaXQgaW4gdGhlIGNhY2hlLiBUaGUgdmFsdWUgZGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNhY2hlLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLCBkZWZhdWx0cyB0byA1ICogMTAwMCBtcyAoNSBzZWNvbmRzKS4qL1xuICBjYWNoZVRpbWVvdXQ6ID9udW1iZXI7XG4gIC8qIFRoaXMgc3RyaW5nIGRlZmluZXMgdGhlIGxvZyBsZXZlbCBvZiB0aGUgTGl2ZVF1ZXJ5IHNlcnZlci4gV2Ugc3VwcG9ydCBWRVJCT1NFLCBJTkZPLCBFUlJPUiwgTk9ORSwgZGVmYXVsdHMgdG8gSU5GTy4qL1xuICBsb2dMZXZlbDogP3N0cmluZztcbiAgLyogVGhlIHBvcnQgdG8gcnVuIHRoZSBMaXZlUXVlcnkgc2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LlxuICA6REVGQVVMVDogMTMzNyAqL1xuICBwb3J0OiA/bnVtYmVyO1xuICAvKiBwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNPcHRpb25zICovXG4gIHJlZGlzT3B0aW9uczogP2FueTtcbiAgLyogcGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzVVJMICovXG4gIHJlZGlzVVJMOiA/c3RyaW5nO1xuICAvKiBMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXIgKi9cbiAgcHViU3ViQWRhcHRlcjogP0FkYXB0ZXI8UHViU3ViQWRhcHRlcj47XG4gIC8qIEFkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyICovXG4gIHdzc0FkYXB0ZXI6ID9BZGFwdGVyPFdTU0FkYXB0ZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW1wb3RlbmN5T3B0aW9ucyB7XG4gIC8qIEFuIGFycmF5IG9mIHBhdGhzIGZvciB3aGljaCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZW5hYmxlZC4gVGhlIG1vdW50IHBhdGggbXVzdCBub3QgYmUgaW5jbHVkZWQsIGZvciBleGFtcGxlIGluc3RlYWQgb2YgYC9wYXJzZS9mdW5jdGlvbnMvbXlGdW5jdGlvbmAgc3BlY2lmaXkgYGZ1bmN0aW9ucy9teUZ1bmN0aW9uYC4gVGhlIGVudHJpZXMgYXJlIGludGVycHJldGVkIGFzIHJlZ3VsYXIgZXhwcmVzc2lvbiwgZm9yIGV4YW1wbGUgYGZ1bmN0aW9ucy8uKmAgbWF0Y2hlcyBhbGwgZnVuY3Rpb25zLCBgam9icy8uKmAgbWF0Y2hlcyBhbGwgam9icywgYGNsYXNzZXMvLipgIG1hdGNoZXMgYWxsIGNsYXNzZXMsIGAuKmAgbWF0Y2hlcyBhbGwgcGF0aHMuXG4gIDpERUZBVUxUOiBbXSAqL1xuICBwYXRoczogPyhzdHJpbmdbXSk7XG4gIC8qIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIGEgcmVxdWVzdCByZWNvcmQgaXMgZGlzY2FyZGVkIGZyb20gdGhlIGRhdGFiYXNlLCBkZWZhdWx0cyB0byAzMDBzLlxuICA6REVGQVVMVDogMzAwICovXG4gIHR0bDogP251bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50TG9ja291dE9wdGlvbnMge1xuICAvKiBTZXQgdGhlIGR1cmF0aW9uIGluIG1pbnV0ZXMgdGhhdCBhIGxvY2tlZC1vdXQgYWNjb3VudCByZW1haW5zIGxvY2tlZCBvdXQgYmVmb3JlIGF1dG9tYXRpY2FsbHkgYmVjb21pbmcgdW5sb2NrZWQuXG4gIDxicj48YnI+XG4gIFZhbGlkIHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGAwYCBhbmQgbGVzcyB0aGFuIGAxMDAwMDBgLiAqL1xuICBkdXJhdGlvbjogP251bWJlcjtcbiAgLyogU2V0IHRoZSBudW1iZXIgb2YgZmFpbGVkIHNpZ24taW4gYXR0ZW1wdHMgdGhhdCB3aWxsIGNhdXNlIGEgdXNlciBhY2NvdW50IHRvIGJlIGxvY2tlZC4gSWYgdGhlIGFjY291bnQgaXMgbG9ja2VkLiBUaGUgYWNjb3VudCB3aWxsIHVubG9jayBhZnRlciB0aGUgZHVyYXRpb24gc2V0IGluIHRoZSBgZHVyYXRpb25gIG9wdGlvbiBoYXMgcGFzc2VkIGFuZCBubyBmdXJ0aGVyIGxvZ2luIGF0dGVtcHRzIGhhdmUgYmVlbiBtYWRlLlxuICA8YnI+PGJyPlxuICBWYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMGAuICovXG4gIHRocmVzaG9sZDogP251bWJlcjtcbiAgLyogU2V0IHRvIGB0cnVlYCAgaWYgdGhlIGFjY291bnQgc2hvdWxkIGJlIHVubG9ja2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXNzd29yZCByZXNldC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgZmFsc2VgLlxuICA8YnI+XG4gIFJlcXVpcmVzIG9wdGlvbnMgYGR1cmF0aW9uYCBhbmQgYHRocmVzaG9sZGAgdG8gYmUgc2V0LlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgdW5sb2NrT25QYXNzd29yZFJlc2V0OiA/Ym9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZFBvbGljeU9wdGlvbnMge1xuICAvKiBTZXQgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB2YWxpZGF0aW9uIHBhdHRlcm4gYSBwYXNzd29yZCBtdXN0IG1hdGNoIHRvIGJlIGFjY2VwdGVkLlxuICA8YnI+PGJyPlxuICBJZiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYHZhbGlkYXRvckNhbGxiYWNrYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLiAqL1xuICB2YWxpZGF0b3JQYXR0ZXJuOiA/c3RyaW5nO1xuICAvKiAgICovXG4gIC8qIFNldCBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGEgcGFzc3dvcmQgdG8gYmUgYWNjZXB0ZWQuXG4gIDxicj48YnI+XG4gIElmIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgdmFsaWRhdG9yUGF0dGVybmAsIHRoZSBwYXNzd29yZCBtdXN0IHBhc3MgYm90aCB0byBiZSBhY2NlcHRlZC4gKi9cbiAgdmFsaWRhdG9yQ2FsbGJhY2s6ID8oKSA9PiB2b2lkO1xuICAvKiBTZXQgdGhlIGVycm9yIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgUGFzc3dvcmQgZG9lcyBub3QgbWVldCB0aGUgUGFzc3dvcmQgUG9saWN5IHJlcXVpcmVtZW50cy5gICovXG4gIHZhbGlkYXRpb25FcnJvcjogP3N0cmluZztcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBkaXNhbGxvdyB0aGUgdXNlcm5hbWUgYXMgcGFydCBvZiB0aGUgcGFzc3dvcmQuXG4gIDxicj48YnI+XG4gIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGRvTm90QWxsb3dVc2VybmFtZTogP2Jvb2xlYW47XG4gIC8qIFNldCB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggYSBwYXNzd29yZCBleHBpcmVzLiBMb2dpbiBhdHRlbXB0cyBmYWlsIGlmIHRoZSB1c2VyIGRvZXMgbm90IHJlc2V0IHRoZSBwYXNzd29yZCBiZWZvcmUgZXhwaXJhdGlvbi4gKi9cbiAgbWF4UGFzc3dvcmRBZ2U6ID9udW1iZXI7XG4gIC8qIFNldCB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIHBhc3N3b3JkIHRoYXQgd2lsbCBub3QgYmUgYWxsb3dlZCB0byBiZSBzZXQgYXMgbmV3IHBhc3N3b3JkLiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGAwYCwgbm8gcHJldmlvdXMgcGFzc3dvcmRzIHdpbGwgYmUgY29uc2lkZXJlZC5cbiAgPGJyPjxicj5cbiAgVmFsaWQgdmFsdWVzIGFyZSA+PSBgMGAgYW5kIDw9IGAyMGAuXG4gIDxicj5cbiAgRGVmYXVsdCBpcyBgMGAuXG4gICovXG4gIG1heFBhc3N3b3JkSGlzdG9yeTogP251bWJlcjtcbiAgLyogU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLlxuICA8YnI+PGJyPlxuICBGb3IgZXhhbXBsZSwgdG8gZXhwaXJlIHRoZSB0b2tlbiBhZnRlciAyIGhvdXJzLCBzZXQgYSB2YWx1ZSBvZiA3MjAwIHNlY29uZHMgKD0gNjAgc2Vjb25kcyAqIDYwIG1pbnV0ZXMgKiAyIGhvdXJzKS5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgdW5kZWZpbmVkYC5cbiAgKi9cbiAgcmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb246ID9udW1iZXI7XG4gIC8qIFNldCB0byBgdHJ1ZWAgaWYgYSBwYXNzd29yZCByZXNldCB0b2tlbiBzaG91bGQgYmUgcmV1c2VkIGluIGNhc2UgYW5vdGhlciB0b2tlbiBpcyByZXF1ZXN0ZWQgYnV0IHRoZXJlIGlzIGEgdG9rZW4gdGhhdCBpcyBzdGlsbCB2YWxpZCwgaS5lLiBoYXMgbm90IGV4cGlyZWQuIFRoaXMgYXZvaWRzIHRoZSBvZnRlbiBvYnNlcnZlZCBpc3N1ZSB0aGF0IGEgdXNlciByZXF1ZXN0cyBtdWx0aXBsZSBlbWFpbHMgYW5kIGRvZXMgbm90IGtub3cgd2hpY2ggbGluayBjb250YWlucyBhIHZhbGlkIHRva2VuIGJlY2F1c2UgZWFjaCBuZXdseSBnZW5lcmF0ZWQgdG9rZW4gd291bGQgaW52YWxpZGF0ZSB0aGUgcHJldmlvdXMgdG9rZW4uXG4gIDxicj48YnI+XG4gIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIHJlc2V0VG9rZW5SZXVzZUlmVmFsaWQ6ID9ib29sZWFuO1xuICAvKiBTZXQgdG8gYHRydWVgIGlmIGEgcmVxdWVzdCB0byByZXNldCB0aGUgcGFzc3dvcmQgc2hvdWxkIHJldHVybiBhIHN1Y2Nlc3MgcmVzcG9uc2UgZXZlbiBpZiB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcyBpcyBpbnZhbGlkLCBvciBgZmFsc2VgIGlmIHRoZSByZXF1ZXN0IHNob3VsZCByZXR1cm4gYW4gZXJyb3IgcmVzcG9uc2UgaWYgdGhlIGVtYWlsIGFkZHJlc3MgaXMgaW52YWxpZC5cbiAgPGJyPjxicj5cbiAgRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIHJlc2V0UGFzc3dvcmRTdWNjZXNzT25JbnZhbGlkRW1haWw6ID9ib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRPcHRpb25zIHtcbiAgLyogU2V0cyB0aGUgYWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgZm9yIHVwbG9hZGluZyBmaWxlcy4gVGhlIGV4dGVuc2lvbiBpcyBkZWZpbmVkIGFzIGFuIGFycmF5IG9mIGZpbGUgZXh0ZW5zaW9ucywgb3IgYSByZWdleCBwYXR0ZXJuLjxicj48YnI+SXQgaXMgcmVjb21tZW5kZWQgdG8gcmVzdHJpY3QgdGhlIGZpbGUgdXBsb2FkIGV4dGVuc2lvbnMgYXMgbXVjaCBhcyBwb3NzaWJsZS4gSFRNTCBhbmQgU1ZHIGZpbGVzIGFyZSBlc3BlY2lhbGx5IHByb2JsZW1hdGljIGFzIHRoZXkgbWF5IGJlIHVzZWQgYnkgYW4gYXR0YWNrZXIgd2hvIHVwbG9hZHMgYSBIVE1MIGZvcm0gb3IgU1ZHIGltYWdlIHRvIGxvb2sgbGVnaXRpbWF0ZSB1bmRlciB5b3VyIGFwcCdzIGRvbWFpbiBuYW1lLCBvciB0byBjb21wcm9taXNlIHRoZSBzZXNzaW9uIHRva2VuIG9mIGFub3RoZXIgdXNlciB2aWEgYWNjZXNzaW5nIHRoZSBicm93c2VyJ3MgbG9jYWwgc3RvcmFnZS48YnI+PGJyPkRlZmF1bHRzIHRvIGBeKD8hKFt4WHNTXT9baEhdW3RUXVttTV1bbExdP3xbc1NdW3ZWXVtnR10oXFxcXCtbeFhdW21NXVtsTF0pPykkKWAgd2hpY2ggYWxsb3dzIGFueSBmaWxlIGV4dGVuc2lvbiBleGNlcHQgdGhvc2UgdGhhdCBhcmUgcmVuZGVyZWQgYXMgd2Vic2l0ZSBvciBhY3RpdmUgY29udGVudCBieSBhIHdlYiBicm93c2VyLlxuICA6REVGQVVMVDogW1wiXig/IShbeFhzU10/W2hIXVt0VF1bbU1dW2xMXT98W3NTXVt2Vl1bZ0ddKFxcXFwrW3hYXVttTV1bbExdKT8pJClcIl0gKi9cbiAgZmlsZUV4dGVuc2lvbnM6ID8oc3RyaW5nW10pO1xuICAvKiAgSXMgdHJ1ZSBpZiBmaWxlIHVwbG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYW5vbnltb3VzIHVzZXJzLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlRm9yQW5vbnltb3VzVXNlcjogP2Jvb2xlYW47XG4gIC8qIElzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGVuYWJsZUZvckF1dGhlbnRpY2F0ZWRVc2VyOiA/Ym9vbGVhbjtcbiAgLyogSXMgdHJ1ZSBpZiBmaWxlIHVwbG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYW55b25lLCByZWdhcmRsZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24uXG4gIDpERUZBVUxUOiBmYWxzZSAqL1xuICBlbmFibGVGb3JQdWJsaWM6ID9ib29sZWFuO1xuICAvKiBTZXRzIHRoZSBhbGxvd2VkIGhvc3RuYW1lcyBmb3IgZmlsZSBVUkxzIHJlZmVyZW5jZWQgaW4gUGFyc2Ugb2JqZWN0cy4gV2hlbiBhIEZpbGUgb2JqZWN0IGluY2x1ZGVzIGEgVVJMLCBpdHMgaG9zdG5hbWUgbXVzdCBtYXRjaCBvbmUgb2YgdGhlc2UgZW50cmllcyB0byBiZSBhY2NlcHRlZC4gU3VwcG9ydHMgZXhhY3QgaG9zdG5hbWVzIChlLmcuLCBgJ2Nkbi5leGFtcGxlLmNvbSdgKSBhbmQgd2lsZGNhcmQgc3ViZG9tYWlucyAoZS5nLiwgYCcqLmV4YW1wbGUuY29tJ2ApLiBVc2UgYFsnKiddYCB0byBhbGxvdyBhbnkgZG9tYWluLiBVc2UgYFtdYCB0byBibG9jayBhbGwgZmlsZSBVUkxzIChvbmx5IG5hbWUtYmFzZWQgZmlsZXMgYWxsb3dlZCkuXG4gIDpERUZBVUxUOiBbXCIqXCJdICovXG4gIGFsbG93ZWRGaWxlVXJsRG9tYWluczogPyhzdHJpbmdbXSk7XG59XG5cbi8qIFRoZSBhdmFpbGFibGUgbG9nIGxldmVscyBmb3IgUGFyc2UgU2VydmVyIGxvZ2dpbmcuIFZhbGlkIHZhbHVlcyBhcmU6PGJyPi0gYCdlcnJvcidgIC0gRXJyb3IgbGV2ZWwgKGhpZ2hlc3QgcHJpb3JpdHkpPGJyPi0gYCd3YXJuJ2AgLSBXYXJuaW5nIGxldmVsPGJyPi0gYCdpbmZvJ2AgLSBJbmZvIGxldmVsIChkZWZhdWx0KTxicj4tIGAndmVyYm9zZSdgIC0gVmVyYm9zZSBsZXZlbDxicj4tIGAnZGVidWcnYCAtIERlYnVnIGxldmVsPGJyPi0gYCdzaWxseSdgIC0gU2lsbHkgbGV2ZWwgKGxvd2VzdCBwcmlvcml0eSkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nTGV2ZWwge1xuICAvKiBFcnJvciBsZXZlbCAtIGhpZ2hlc3QgcHJpb3JpdHkgKi9cbiAgZXJyb3I6ICdlcnJvcic7XG4gIC8qIFdhcm5pbmcgbGV2ZWwgKi9cbiAgd2FybjogJ3dhcm4nO1xuICAvKiBJbmZvIGxldmVsIC0gZGVmYXVsdCAqL1xuICBpbmZvOiAnaW5mbyc7XG4gIC8qIFZlcmJvc2UgbGV2ZWwgKi9cbiAgdmVyYm9zZTogJ3ZlcmJvc2UnO1xuICAvKiBEZWJ1ZyBsZXZlbCAqL1xuICBkZWJ1ZzogJ2RlYnVnJztcbiAgLyogU2lsbHkgbGV2ZWwgLSBsb3dlc3QgcHJpb3JpdHkgKi9cbiAgc2lsbHk6ICdzaWxseSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQ2xpZW50RXZlbnQge1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgZXZlbnQgbmFtZSB0byBsaXN0ZW4gZm9yLiBTZWUgdGhlIFtNb25nb0RCIGRyaXZlciBldmVudHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cubW9uZ29kYi5jb20vZG9jcy9kcml2ZXJzL25vZGUvY3VycmVudC9mdW5kYW1lbnRhbHMvbW9uaXRvcmluZy8pIGZvciBhdmFpbGFibGUgZXZlbnRzLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qIE9wdGlvbmFsIGFycmF5IG9mIGRvdC1ub3RhdGlvbiBwYXRocyB0byBleHRyYWN0IHNwZWNpZmljIGRhdGEgZnJvbSB0aGUgZXZlbnQgb2JqZWN0LiBJZiBub3QgcHJvdmlkZWQgb3IgZW1wdHksIHRoZSBlbnRpcmUgZXZlbnQgb2JqZWN0IHdpbGwgYmUgbG9nZ2VkLiAqL1xuICBrZXlzOiA/KHN0cmluZ1tdKTtcbiAgLyogVGhlIGxvZyBsZXZlbCB0byB1c2UgZm9yIHRoaXMgZXZlbnQuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLiBEZWZhdWx0cyB0byBgJ2luZm8nYC5cbiAgOkRFRkFVTFQ6IGluZm8gKi9cbiAgbG9nTGV2ZWw6ID9zdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VPcHRpb25zIHtcbiAgLyogRW5hYmxlcyBkYXRhYmFzZSByZWFsLXRpbWUgaG9va3MgdG8gdXBkYXRlIHNpbmdsZSBzY2hlbWEgY2FjaGUuIFNldCB0byBgdHJ1ZWAgaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBGYWlsaW5nIHRvIGRvIHNvIHdpbGwgY2F1c2UgYSBzY2hlbWEgY2hhbmdlIHRvIG5vdCBwcm9wYWdhdGUgdG8gYWxsIGluc3RhbmNlcyBhbmQgcmUtc3luY2luZyB3aWxsIG9ubHkgaGFwcGVuIHdoZW4gdGhlIGluc3RhbmNlcyByZXN0YXJ0LiBUbyB1c2UgdGhpcyBmZWF0dXJlIHdpdGggTW9uZ29EQiwgYSByZXBsaWNhIHNldCBjbHVzdGVyIHdpdGggW2NoYW5nZSBzdHJlYW1dKGh0dHBzOi8vZG9jcy5tb25nb2RiLmNvbS9tYW51YWwvY2hhbmdlU3RyZWFtcy8jYXZhaWxhYmlsaXR5KSBzdXBwb3J0IGlzIHJlcXVpcmVkLlxuICA6REVGQVVMVDogZmFsc2UgKi9cbiAgZW5hYmxlU2NoZW1hSG9va3M6ID9ib29sZWFuO1xuICAvKiBUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgc2NoZW1hIGNhY2hlIGV4cGlyZXMgYW5kIHdpbGwgYmUgcmVmZXRjaGVkIGZyb20gdGhlIGRhdGFiYXNlLiBVc2UgdGhpcyBvcHRpb24gaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBBIGxvdyBkdXJhdGlvbiB3aWxsIGNhdXNlIHRoZSBzY2hlbWEgY2FjaGUgdG8gYmUgdXBkYXRlZCB0b28gb2Z0ZW4sIGNhdXNpbmcgdW5uZWNlc3NhcnkgZGF0YWJhc2UgcmVhZHMuIEEgaGlnaCBkdXJhdGlvbiB3aWxsIGNhdXNlIHRoZSBzY2hlbWEgdG8gYmUgdXBkYXRlZCB0b28gcmFyZWx5LCBpbmNyZWFzaW5nIHRoZSB0aW1lIHJlcXVpcmVkIHVudGlsIHNjaGVtYSBjaGFuZ2VzIHByb3BhZ2F0ZSB0byBhbGwgc2VydmVyIGluc3RhbmNlcy4gVGhpcyBmZWF0dXJlIGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIG9yIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIG9wdGlvbiBgZW5hYmxlU2NoZW1hSG9va3NgLiBEZWZhdWx0IGlzIGluZmluaXRlIHdoaWNoIG1lYW5zIHRoZSBzY2hlbWEgY2FjaGUgbmV2ZXIgZXhwaXJlcy4gKi9cbiAgc2NoZW1hQ2FjaGVUdGw6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IHdoZXRoZXIgdG8gcmV0cnkgZmFpbGVkIHdyaXRlcy4gKi9cbiAgcmV0cnlXcml0ZXM6ID9ib29sZWFuO1xuICAvKiBUaGUgbnVtYmVyIG9mIGRvY3VtZW50cyBwZXIgYmF0Y2ggZm9yIE1vbmdvREIgY3Vyc29yIGBnZXRNb3JlYCBvcGVyYXRpb25zLiBBIGxvd2VyIHZhbHVlIHJlZHVjZXMgbWVtb3J5IHVzYWdlIHBlciBiYXRjaDsgYSBoaWdoZXIgdmFsdWUgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIG5ldHdvcmsgcm91bmQtdHJpcHMuXG4gIDpERUZBVUxUOiAxMDAwICovXG4gIGJhdGNoU2l6ZTogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgYSBjdW11bGF0aXZlIHRpbWUgbGltaXQgaW4gbWlsbGlzZWNvbmRzIGZvciBwcm9jZXNzaW5nIG9wZXJhdGlvbnMgb24gYSBjdXJzb3IuICovXG4gIG1heFRpbWVNUzogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1heGltdW0gcmVwbGljYXRpb24gbGFnIGZvciByZWFkcyBmcm9tIHNlY29uZGFyeSBub2Rlcy4qL1xuICBtYXhTdGFsZW5lc3NTZWNvbmRzOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWluaW11bSBudW1iZXIgb2Ygb3BlbmVkLCBjYWNoZWQsIHJlYWR5LXRvLXVzZSBkYXRhYmFzZSBjb25uZWN0aW9ucyBtYWludGFpbmVkIGJ5IHRoZSBkcml2ZXIuICovXG4gIG1pblBvb2xTaXplOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3BlbmVkLCBjYWNoZWQsIHJlYWR5LXRvLXVzZSBkYXRhYmFzZSBjb25uZWN0aW9ucyBtYWludGFpbmVkIGJ5IHRoZSBkcml2ZXIuICovXG4gIG1heFBvb2xTaXplOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgYSBzZXJ2ZXIgdG8gYmUgY29uc2lkZXJlZCBzdWl0YWJsZSBmb3Igc2VsZWN0aW9uLiAqL1xuICBzZXJ2ZXJTZWxlY3Rpb25UaW1lb3V0TVM6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgYSBjb25uZWN0aW9uIGNhbiByZW1haW4gaWRsZSBpbiB0aGUgY29ubmVjdGlvbiBwb29sIGJlZm9yZSBiZWluZyByZW1vdmVkIGFuZCBjbG9zZWQuICovXG4gIG1heElkbGVUaW1lTVM6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZnJlcXVlbmN5IGluIG1pbGxpc2Vjb25kcyBhdCB3aGljaCB0aGUgZHJpdmVyIGNoZWNrcyB0aGUgc3RhdGUgb2YgdGhlIE1vbmdvREIgZGVwbG95bWVudC4gKi9cbiAgaGVhcnRiZWF0RnJlcXVlbmN5TVM6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdG8gd2FpdCB0byBlc3RhYmxpc2ggYSBzaW5nbGUgVENQIHNvY2tldCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgYmVmb3JlIHJhaXNpbmcgYW4gZXJyb3IuIFNwZWNpZnlpbmcgMCBkaXNhYmxlcyB0aGUgY29ubmVjdGlvbiB0aW1lb3V0LiAqL1xuICBjb25uZWN0VGltZW91dE1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHNwZW50IGF0dGVtcHRpbmcgdG8gc2VuZCBvciByZWNlaXZlIG9uIGEgc29ja2V0IGJlZm9yZSB0aW1pbmcgb3V0LiBTcGVjaWZ5aW5nIDAgbWVhbnMgbm8gdGltZW91dC4gKi9cbiAgc29ja2V0VGltZW91dE1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB3aGV0aGVyIHRoZSBzb2NrZXQgYXR0ZW1wdHMgdG8gY29ubmVjdCB0byBJUHY2IGFuZCBJUHY0IGFkZHJlc3NlcyB1bnRpbCBhIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIElmIGF2YWlsYWJsZSwgdGhlIGRyaXZlciB3aWxsIHNlbGVjdCB0aGUgZmlyc3QgSVB2NiBhZGRyZXNzLiAqL1xuICBhdXRvU2VsZWN0RmFtaWx5OiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgYSBjb25uZWN0aW9uIGF0dGVtcHQgdG8gZmluaXNoIGJlZm9yZSB0cnlpbmcgdGhlIG5leHQgYWRkcmVzcyB3aGVuIHVzaW5nIHRoZSBhdXRvU2VsZWN0RmFtaWx5IG9wdGlvbi4gSWYgc2V0IHRvIGEgcG9zaXRpdmUgaW50ZWdlciBsZXNzIHRoYW4gMTAsIHRoZSB2YWx1ZSAxMCBpcyB1c2VkIGluc3RlYWQuICovXG4gIGF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dDogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyB0aGF0IG1heSBiZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBlc3RhYmxpc2hlZCBjb25jdXJyZW50bHkgYnkgdGhlIGNvbm5lY3Rpb24gcG9vbC4gKi9cbiAgbWF4Q29ubmVjdGluZzogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgYSB0aHJlYWQgY2FuIHdhaXQgZm9yIGEgY29ubmVjdGlvbiB0byBiZWNvbWUgYXZhaWxhYmxlLiAqL1xuICB3YWl0UXVldWVUaW1lb3V0TVM6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcmVwbGljYSBzZXQsIGlmIHRoZSBtb25nb2QgaXMgYSBtZW1iZXIgb2YgYSByZXBsaWNhIHNldC4gKi9cbiAgcmVwbGljYVNldDogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBmb3JjZSBhIFNpbmdsZSB0b3BvbG9neSB0eXBlIHdpdGggYSBjb25uZWN0aW9uIHN0cmluZyBjb250YWluaW5nIG9uZSBob3N0LiAqL1xuICBkaXJlY3RDb25uZWN0aW9uOiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBpbnN0cnVjdCB0aGUgZHJpdmVyIGl0IGlzIGNvbm5lY3RpbmcgdG8gYSBsb2FkIGJhbGFuY2VyIGZyb250aW5nIGEgbW9uZ29zIGxpa2Ugc2VydmljZS4gKi9cbiAgbG9hZEJhbGFuY2VkOiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBzaXplIChpbiBtaWxsaXNlY29uZHMpIG9mIHRoZSBsYXRlbmN5IHdpbmRvdyBmb3Igc2VsZWN0aW5nIGFtb25nIG11bHRpcGxlIHN1aXRhYmxlIE1vbmdvREIgaW5zdGFuY2VzLiAqL1xuICBsb2NhbFRocmVzaG9sZE1TOiA/bnVtYmVyO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIGhvc3RzIHRvIGNvbm5lY3QgdG8gd2hlbiB1c2luZyBhbiBzcnYgY29ubmVjdGlvbiBzdHJpbmcsIGEgc2V0dGluZyBvZiAwIG1lYW5zIHVubGltaXRlZCBob3N0cy4gKi9cbiAgc3J2TWF4SG9zdHM6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gbW9kaWZ5IHRoZSBzcnYgVVJJIHNlcnZpY2UgbmFtZS4gKi9cbiAgc3J2U2VydmljZU5hbWU6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIG9yIGRpc2FibGUgVExTL1NTTCBmb3IgdGhlIGNvbm5lY3Rpb24uICovXG4gIHRsczogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIG9yIGRpc2FibGUgVExTL1NTTCBmb3IgdGhlIGNvbm5lY3Rpb24gKGVxdWl2YWxlbnQgdG8gdGxzIG9wdGlvbikuICovXG4gIHNzbDogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBsb2NhbCAucGVtIGZpbGUgdGhhdCBjb250YWlucyB0aGUgY2xpZW50J3MgVExTL1NTTCBjZXJ0aWZpY2F0ZSBhbmQga2V5LiAqL1xuICB0bHNDZXJ0aWZpY2F0ZUtleUZpbGU6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgdGxzQ2VydGlmaWNhdGVLZXlGaWxlLiAqL1xuICB0bHNDZXJ0aWZpY2F0ZUtleUZpbGVQYXNzd29yZDogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGxvY2FsIC5wZW0gZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSByb290IGNlcnRpZmljYXRlIGNoYWluIGZyb20gdGhlIENlcnRpZmljYXRlIEF1dGhvcml0eS4gKi9cbiAgdGxzQ0FGaWxlOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGJ5cGFzcyB2YWxpZGF0aW9uIG9mIHRoZSBjZXJ0aWZpY2F0ZXMgcHJlc2VudGVkIGJ5IHRoZSBtb25nb2QvbW9uZ29zIGluc3RhbmNlLiAqL1xuICB0bHNBbGxvd0ludmFsaWRDZXJ0aWZpY2F0ZXM6ID9ib29sZWFuO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGRpc2FibGUgaG9zdG5hbWUgdmFsaWRhdGlvbiBvZiB0aGUgY2VydGlmaWNhdGUgcHJlc2VudGVkIGJ5IHRoZSBtb25nb2QvbW9uZ29zIGluc3RhbmNlLiAqL1xuICB0bHNBbGxvd0ludmFsaWRIb3N0bmFtZXM6ID9ib29sZWFuO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGRpc2FibGUgdmFyaW91cyBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9ucy4gKi9cbiAgdGxzSW5zZWN1cmU6ID9ib29sZWFuO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgYW4gYXJyYXkgb3IgY29tbWEtZGVsaW1pdGVkIHN0cmluZyBvZiBjb21wcmVzc29ycyB0byBlbmFibGUgbmV0d29yayBjb21wcmVzc2lvbiBmb3IgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoaXMgY2xpZW50IGFuZCBhIG1vbmdvZC9tb25nb3MgaW5zdGFuY2UuICovXG4gIGNvbXByZXNzb3JzOiA/KHN0cmluZ1tdIHwgc3RyaW5nKTtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBjb21wcmVzc2lvbiBsZXZlbCBpZiB1c2luZyB6bGliIGZvciBuZXR3b3JrIGNvbXByZXNzaW9uICgwLTkpLiAqL1xuICB6bGliQ29tcHJlc3Npb25MZXZlbDogP251bWJlcjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSByZWFkIHByZWZlcmVuY2VzIGZvciB0aGlzIGNvbm5lY3Rpb24uICovXG4gIHJlYWRQcmVmZXJlbmNlOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHRhZ3MgZG9jdW1lbnQgYXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb2xvbi1zZXBhcmF0ZWQga2V5LXZhbHVlIHBhaXJzLiAqL1xuICByZWFkUHJlZmVyZW5jZVRhZ3M6ID8oYW55W10pO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxldmVsIG9mIGlzb2xhdGlvbi4gKi9cbiAgcmVhZENvbmNlcm5MZXZlbDogP3N0cmluZztcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBkYXRhYmFzZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlcidzIGNyZWRlbnRpYWxzLiAqL1xuICBhdXRoU291cmNlOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbSB0aGF0IE1vbmdvREIgd2lsbCB1c2UgdG8gYXV0aGVudGljYXRlIHRoZSBjb25uZWN0aW9uLiAqL1xuICBhdXRoTWVjaGFuaXNtOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCBhdXRoTWVjaGFuaXNtIGFzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgY29sb24tc2VwYXJhdGVkIGtleS12YWx1ZSBwYWlycy4gKi9cbiAgYXV0aE1lY2hhbmlzbVByb3BlcnRpZXM6ID9hbnk7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGhhdCBjcmVhdGVkIHRoaXMgTW9uZ29DbGllbnQgaW5zdGFuY2UuICovXG4gIGFwcE5hbWU6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIHJldHJ5YWJsZSByZWFkcy4gKi9cbiAgcmV0cnlSZWFkczogP2Jvb2xlYW47XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZm9yY2Ugc2VydmVyIHRvIGFzc2lnbiBfaWQgdmFsdWVzIGluc3RlYWQgb2YgZHJpdmVyLiAqL1xuICBmb3JjZVNlcnZlck9iamVjdElkOiA/Ym9vbGVhbjtcbiAgLyogVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBpbnN0cnVjdCB0aGUgZHJpdmVyIG1vbml0b3JzIHRvIHVzZSBhIHNwZWNpZmljIG1vbml0b3JpbmcgbW9kZS4gKi9cbiAgc2VydmVyTW9uaXRvcmluZ01vZGU6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IGhvc3QgdXNlZCBmb3IgY3JlYXRpbmcgVENQIGNvbm5lY3Rpb25zLiAqL1xuICBwcm94eUhvc3Q6ID9zdHJpbmc7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IHBvcnQgdXNlZCBmb3IgY3JlYXRpbmcgVENQIGNvbm5lY3Rpb25zLiAqL1xuICBwcm94eVBvcnQ6ID9udW1iZXI7XG4gIC8qIFRoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IHVzZXJuYW1lIHdoZW4gdGhlIHByb3h5IHJlcXVpcmVzIHVzZXJuYW1lL3Bhc3N3b3JkIGF1dGhlbnRpY2F0aW9uLiAqL1xuICBwcm94eVVzZXJuYW1lOiA/c3RyaW5nO1xuICAvKiBUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBwYXNzd29yZCB3aGVuIHRoZSBwcm94eSByZXF1aXJlcyB1c2VybmFtZS9wYXNzd29yZCBhdXRoZW50aWNhdGlvbi4gKi9cbiAgcHJveHlQYXNzd29yZDogP3N0cmluZztcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBpbmRleGVzIG9uIHRoZSBlbWFpbCBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4VXNlckVtYWlsOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXggb24gdGhlIGVtYWlsIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj7imqDvuI8gV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgY3JlYXRlSW5kZXhVc2VyRW1haWxDYXNlSW5zZW5zaXRpdmU6ID9ib29sZWFuO1xuICAvKiBTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGluZGV4IG9uIHRoZSBfZW1haWxfdmVyaWZ5X3Rva2VuIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj7imqDvuI8gV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgY3JlYXRlSW5kZXhVc2VyRW1haWxWZXJpZnlUb2tlbjogP2Jvb2xlYW47XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW5kZXggb24gdGhlIF9wZXJpc2hhYmxlX3Rva2VuIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj7imqDvuI8gV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgY3JlYXRlSW5kZXhVc2VyUGFzc3dvcmRSZXNldFRva2VuOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBpbmRleGVzIG9uIHRoZSB1c2VybmFtZSBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+4pqg77iPIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuXG4gIDpERUZBVUxUOiB0cnVlICovXG4gIGNyZWF0ZUluZGV4VXNlclVzZXJuYW1lOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXggb24gdGhlIHVzZXJuYW1lIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj7imqDvuI8gV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWVDYXNlSW5zZW5zaXRpdmU6ID9ib29sZWFuO1xuICAvKiBTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgdW5pcXVlIGluZGV4IG9uIHRoZSBuYW1lIGZpZWxkIG9mIHRoZSBfUm9sZSBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj7imqDvuI8gV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci5cbiAgOkRFRkFVTFQ6IHRydWUgKi9cbiAgY3JlYXRlSW5kZXhSb2xlTmFtZTogP2Jvb2xlYW47XG4gIC8qIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB2YWxpZGF0aW9uIG9mIGluZGV4IGZpZWxkcy4gV2hlbiBkaXNhYmxlZCwgaW5kZXhlcyBjYW4gYmUgY3JlYXRlZCBldmVuIGlmIHRoZSBmaWVsZHMgZG8gbm90IGV4aXN0IGluIHRoZSBzY2hlbWEuIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIGNyZWF0aW5nIGluZGV4ZXMgb24gZmllbGRzIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlci4gKi9cbiAgZGlzYWJsZUluZGV4RmllbGRWYWxpZGF0aW9uOiA/Ym9vbGVhbjtcbiAgLyogU2V0IHRvIGB0cnVlYCB0byBhbGxvdyBgUGFyc2UuUXVlcnkuZXhwbGFpbmAgd2l0aG91dCBtYXN0ZXIga2V5Ljxicj48YnI+4pqg77iPIEVuYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBleHBvc2Ugc2Vuc2l0aXZlIHF1ZXJ5IHBlcmZvcm1hbmNlIGRhdGEgdG8gdW5hdXRob3JpemVkIHVzZXJzIGFuZCBjb3VsZCBwb3RlbnRpYWxseSBiZSBleHBsb2l0ZWQgZm9yIG1hbGljaW91cyBwdXJwb3Nlcy5cbiAgOkRFRkFVTFQ6IGZhbHNlICovXG4gIGFsbG93UHVibGljRXhwbGFpbjogP2Jvb2xlYW47XG4gIC8qIEFuIGFycmF5IG9mIE1vbmdvREIgY2xpZW50IGV2ZW50IGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBsb2dnaW5nIG9mIHNwZWNpZmljIGV2ZW50cy4gKi9cbiAgbG9nQ2xpZW50RXZlbnRzOiA/KExvZ0NsaWVudEV2ZW50W10pO1xuICAvKiBDdXN0b20gbWV0YWRhdGEgdG8gYXBwZW5kIHRvIGRhdGFiYXNlIGNsaWVudCBjb25uZWN0aW9ucyBmb3IgaWRlbnRpZnlpbmcgUGFyc2UgU2VydmVyIGluc3RhbmNlcyBpbiBkYXRhYmFzZSBsb2dzLiBJZiBzZXQsIHRoaXMgbWV0YWRhdGEgd2lsbCBiZSB2aXNpYmxlIGluIGRhdGFiYXNlIGxvZ3MgZHVyaW5nIGNvbm5lY3Rpb24gaGFuZHNoYWtlcy4gVGhpcyBjYW4gaGVscCB3aXRoIGRlYnVnZ2luZyBhbmQgbW9uaXRvcmluZyBpbiBkZXBsb3ltZW50cyB3aXRoIG11bHRpcGxlIGRhdGFiYXNlIGNsaWVudHMuIFNldCBgbmFtZWAgdG8gaWRlbnRpZnkgeW91ciBhcHBsaWNhdGlvbiAoZS5nLiwgJ015QXBwJykgYW5kIGB2ZXJzaW9uYCB0byB5b3VyIGFwcGxpY2F0aW9uJ3MgdmVyc2lvbi4gTGVhdmUgdW5kZWZpbmVkIChkZWZhdWx0KSB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZSBhbmQgYXZvaWQgdGhlIGFkZGl0aW9uYWwgZGF0YSB0cmFuc2ZlciBvdmVyaGVhZC4gKi9cbiAgY2xpZW50TWV0YWRhdGE6ID9EYXRhYmFzZU9wdGlvbnNDbGllbnRNZXRhZGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZU9wdGlvbnNDbGllbnRNZXRhZGF0YSB7XG4gIC8qIFRoZSBuYW1lIHRvIGlkZW50aWZ5IHlvdXIgYXBwbGljYXRpb24gaW4gZGF0YWJhc2UgbG9ncyAoZS5nLiwgJ015QXBwJykuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyogVGhlIHZlcnNpb24gb2YgeW91ciBhcHBsaWNhdGlvbiAoZS5nLiwgJzEuMC4wJykuICovXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoQWRhcHRlciB7XG4gIC8qIElzIGB0cnVlYCBpZiB0aGUgYXV0aCBhZGFwdGVyIGlzIGVuYWJsZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICA6REVGQVVMVDogZmFsc2VcbiAgOkVOVjpcbiAgKi9cbiAgZW5hYmxlZDogP2Jvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nTGV2ZWxzIHtcbiAgLyogTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgVHJpZ2dlcnMgYGFmdGVyU2F2ZWAsIGBhZnRlckRlbGV0ZWAsIGBhZnRlckZpbmRgLCBgYWZ0ZXJMb2dvdXRgLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuXG4gIDpERUZBVUxUOiBpbmZvXG4gICovXG4gIHRyaWdnZXJBZnRlcjogP3N0cmluZztcbiAgLyogTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgVHJpZ2dlcnMgYGJlZm9yZVNhdmVgLCBgYmVmb3JlRGVsZXRlYCwgYGJlZm9yZUZpbmRgLCBgYmVmb3JlTG9naW5gIG9uIHN1Y2Nlc3MuIERlZmF1bHQgaXMgYGluZm9gLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy5cbiAgOkRFRkFVTFQ6IGluZm9cbiAgKi9cbiAgdHJpZ2dlckJlZm9yZVN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIExvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBiZWZvcmVTYXZlYCwgYGJlZm9yZURlbGV0ZWAsIGBiZWZvcmVGaW5kYCwgYGJlZm9yZUxvZ2luYCBvbiBlcnJvci4gRGVmYXVsdCBpcyBgZXJyb3JgLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy5cbiAgOkRFRkFVTFQ6IGVycm9yXG4gICovXG4gIHRyaWdnZXJCZWZvcmVFcnJvcjogP3N0cmluZztcbiAgLyogTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgRnVuY3Rpb25zIG9uIHN1Y2Nlc3MuIERlZmF1bHQgaXMgYGluZm9gLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy5cbiAgOkRFRkFVTFQ6IGluZm9cbiAgKi9cbiAgY2xvdWRGdW5jdGlvblN1Y2Nlc3M6ID9zdHJpbmc7XG4gIC8qIExvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIEZ1bmN0aW9ucyBvbiBlcnJvci4gRGVmYXVsdCBpcyBgZXJyb3JgLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy5cbiAgOkRFRkFVTFQ6IGVycm9yXG4gICovXG4gIGNsb3VkRnVuY3Rpb25FcnJvcjogP3N0cmluZztcbiAgLyogTG9nIGxldmVsIHVzZWQgd2hlbiBhIHNpZ24tdXAgZmFpbHMgYmVjYXVzZSB0aGUgdXNlcm5hbWUgYWxyZWFkeSBleGlzdHMuIERlZmF1bHQgaXMgYGluZm9gLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy5cbiAgOkRFRkFVTFQ6IGluZm9cbiAgKi9cbiAgc2lnbnVwVXNlcm5hbWVUYWtlbjogP3N0cmluZztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFDQSxJQUFBQSxpQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBIiwiaWdub3JlTGlzdCI6W119
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parse-server",
3
- "version": "9.5.2-alpha.2",
3
+ "version": "9.5.2-alpha.4",
4
4
  "description": "An express module providing a Parse-compatible API server",
5
5
  "main": "lib/index.js",
6
6
  "repository": {