appium-remote-debugger 9.0.0 → 9.0.3
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.
- package/README.md +3 -3
- package/build/index.js +1 -1
- package/build/lib/atoms.js +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/mixins/connect.js +1 -1
- package/build/lib/mixins/events.js +1 -1
- package/build/lib/mixins/execute.js +1 -1
- package/build/lib/mixins/index.js +1 -1
- package/build/lib/mixins/message-handlers.js +1 -1
- package/build/lib/mixins/navigate.js +1 -1
- package/build/lib/protocol/index.js +1 -1
- package/build/lib/remote-debugger-real-device.js +1 -1
- package/build/lib/remote-debugger.js +1 -1
- package/build/lib/rpc/index.js +1 -1
- package/build/lib/rpc/remote-messages.js +1 -1
- package/build/lib/rpc/rpc-client-real-device.js +1 -1
- package/build/lib/rpc/rpc-client-simulator.js +1 -1
- package/build/lib/rpc/rpc-client.js +1 -1
- package/build/lib/rpc/rpc-message-handler.js +1 -1
- package/build/lib/utils.js +1 -1
- package/package.json +10 -7
package/build/lib/rpc/index.js
CHANGED
|
@@ -25,4 +25,4 @@ var _rpcClientSimulator = _interopRequireDefault(require("./rpc-client-simulator
|
|
|
25
25
|
var _rpcClientRealDevice = _interopRequireDefault(require("./rpc-client-real-device"));require('source-map-support').install();
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9pbmRleC5qcyIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvcnBjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBScGNDbGllbnRTaW11bGF0b3IgZnJvbSAnLi9ycGMtY2xpZW50LXNpbXVsYXRvcic7XG5pbXBvcnQgUnBjQ2xpZW50UmVhbERldmljZSBmcm9tICcuL3JwYy1jbGllbnQtcmVhbC1kZXZpY2UnO1xuXG5cbmV4cG9ydCB7IFJwY0NsaWVudFNpbXVsYXRvciwgUnBjQ2xpZW50UmVhbERldmljZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0EifQ==
|
|
@@ -264,4 +264,4 @@ var _default = RemoteMessages;
|
|
|
264
264
|
exports.default = _default;require('source-map-support').install();
|
|
265
265
|
|
|
266
266
|
|
|
267
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ycGMvcmVtb3RlLW1lc3NhZ2VzLmpzIl0sIm5hbWVzIjpbIk9CSkVDVF9HUk9VUCIsIk1JTklNQUxfQ09NTUFORCIsIkZVTExfQ09NTUFORCIsIkRJUkVDVF9DT01NQU5EIiwiQ09NTUFORFMiLCJSZW1vdGVNZXNzYWdlcyIsImNvbnN0cnVjdG9yIiwiaXNUYXJnZXRCYXNlZCIsIl9pc1RhcmdldEJhc2VkIiwic2V0Q29ubmVjdGlvbktleSIsImNvbm5JZCIsIl9fYXJndW1lbnQiLCJXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleSIsIl9fc2VsZWN0b3IiLCJjb25uZWN0VG9BcHAiLCJhcHBJZEtleSIsIldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsInNldFNlbmRlcktleSIsInNlbmRlcklkIiwicGFnZUlkS2V5IiwiV0lSU2VuZGVyS2V5IiwiV0lSUGFnZUlkZW50aWZpZXJLZXkiLCJXSVJBdXRvbWF0aWNhbGx5UGF1c2UiLCJpbmRpY2F0ZVdlYlZpZXciLCJlbmFibGVkIiwiV0lSSW5kaWNhdGVFbmFibGVkS2V5IiwiXyIsImlzTmlsIiwibGF1bmNoQXBwbGljYXRpb24iLCJidW5kbGVJZCIsIldJUkFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcktleSIsImdldEZ1bGxDb21tYW5kIiwib3B0cyIsIm1ldGhvZCIsInBhcmFtcyIsInRhcmdldElkIiwiaWQiLCJyZWFsTWV0aG9kIiwicmVhbFBhcmFtcyIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiT2JqZWN0IiwiYXNzaWduIiwib2JqZWN0R3JvdXAiLCJpbmNsdWRlQ29tbWFuZExpbmVBUEkiLCJkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUiLCJlbXVsYXRlVXNlckdlc3R1cmUiLCJnZW5lcmF0ZVByZXZpZXciLCJzYXZlUmVzdWx0IiwicGxpc3QiLCJXSVJTb2NrZXREYXRhS2V5Iiwib21pdEJ5IiwiZ2V0TWluaW1hbENvbW1hbmQiLCJnZXREaXJlY3RD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QUFBLFNBTEk7QUFNSmdCLE1BQUFBO0FBTkksUUFPRkgsSUFQSjs7QUFVQSxZQUFRd0IsT0FBUjtBQUNFLFdBQUssa0JBQUw7QUFDRSxlQUFPLEtBQUsvQyxnQkFBTCxDQUFzQkMsTUFBdEIsQ0FBUDs7QUFDRixXQUFLLGlCQUFMO0FBQ0UsZUFBTyxLQUFLYSxlQUFMLENBQXFCYixNQUFyQixFQUE2QkssUUFBN0IsRUFBdUNJLFNBQXZDLEVBQWtEYSxJQUFJLENBQUNSLE9BQXZELENBQVA7O0FBQ0YsV0FBSyxjQUFMO0FBQ0UsZUFBTyxLQUFLVixZQUFMLENBQWtCSixNQUFsQixFQUEwQkssUUFBMUIsQ0FBUDs7QUFDRixXQUFLLGNBQUw7QUFDRSxlQUFPLEtBQUtFLFlBQUwsQ0FBa0JQLE1BQWxCLEVBQTBCUSxRQUExQixFQUFvQ0gsUUFBcEMsRUFBOENJLFNBQTlDLENBQVA7O0FBQ0YsV0FBSyxtQkFBTDtBQUNFLGVBQU8sS0FBS1MsaUJBQUwsQ0FBdUJJLElBQUksQ0FBQ0gsUUFBNUIsQ0FBUDtBQVZKOztBQWNBLFVBQU00QixlQUFlLEdBQUdyRCxRQUFRLENBQUNvRCxPQUFELENBQVIsSUFBcUJ2RCxlQUE3QztBQUNBLFdBQU8sS0FBS3dELGVBQUwsRUFBc0IsRUFDM0IsR0FBRyx1QkFBbUJyQixFQUFuQixFQUF1Qm9CLE9BQXZCLEVBQWdDeEIsSUFBaEMsQ0FEd0I7QUFFM0J0QixNQUFBQSxNQUYyQjtBQUczQkssTUFBQUEsUUFIMkI7QUFJM0JHLE1BQUFBLFFBSjJCO0FBSzNCQyxNQUFBQSxTQUwyQjtBQU0zQmdCLE1BQUFBO0FBTjJCLEtBQXRCLENBQVA7QUFRRDs7QUE5TmtCOzs7ZUFrT045QixjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBnZXRQcm90b2NvbENvbW1hbmQgZnJvbSAnLi4vcHJvdG9jb2wnO1xuXG5cbmNvbnN0IE9CSkVDVF9HUk9VUCA9ICdjb25zb2xlJztcblxuY29uc3QgTUlOSU1BTF9DT01NQU5EID0gJ2dldE1pbmltYWxDb21tYW5kJztcbmNvbnN0IEZVTExfQ09NTUFORCA9ICdnZXRGdWxsQ29tbWFuZCc7XG5jb25zdCBESVJFQ1RfQ09NTUFORCA9ICdnZXREaXJlY3RDb21tYW5kJztcblxuLy8gbWFwcGluZyBvZiBjb21tYW5kcyB0byB0aGUgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIGNvbW1hbmRcbi8vIGRlZmF1bHRzIHRvIGBnZXRNaW5pbWFsQ29tbWFuZGAsIHNvIG5vIG5lZWQgdG8gaGF2ZSB0aG9zZSBsaXN0ZWQgaGVyZVxuY29uc3QgQ09NTUFORFMgPSB7XG4gICdQYWdlLmdldENvb2tpZXMnOiBGVUxMX0NPTU1BTkQsXG4gICdQYWdlLm5hdmlnYXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdSdW50aW1lLmF3YWl0UHJvbWlzZSc6IEZVTExfQ09NTUFORCxcbiAgJ1J1bnRpbWUuY2FsbEZ1bmN0aW9uT24nOiBGVUxMX0NPTU1BTkQsXG4gICdSdW50aW1lLmV2YWx1YXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdUYXJnZXQuZXhpc3RzJzogRElSRUNUX0NPTU1BTkQsXG5cbiAgJ1RpbWVsaW5lLnN0YXJ0JzogRlVMTF9DT01NQU5ELFxuICAnVGltZWxpbmUuc3RvcCc6IEZVTExfQ09NTUFORCxcbn07XG5cbmNsYXNzIFJlbW90ZU1lc3NhZ2VzIHtcbiAgY29uc3RydWN0b3IgKGlzVGFyZ2V0QmFzZWQgPSBmYWxzZSkge1xuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgLypcbiAgICogQ29ubmVjdGlvbiBmdW5jdGlvbnNcbiAgICovXG5cbiAgc2V0Q29ubmVjdGlvbktleSAoY29ubklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZFxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX3JlcG9ydElkZW50aWZpZXI6J1xuICAgIH07XG4gIH1cblxuICBjb25uZWN0VG9BcHAgKGNvbm5JZCwgYXBwSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5XG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZEdldExpc3Rpbmc6J1xuICAgIH07XG4gIH1cblxuICBzZXRTZW5kZXJLZXkgKGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJTZW5kZXJLZXk6IHNlbmRlcklkLFxuICAgICAgICBXSVJQYWdlSWRlbnRpZmllcktleTogcGFnZUlkS2V5LFxuICAgICAgICBXSVJBdXRvbWF0aWNhbGx5UGF1c2U6IGZhbHNlXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldFNldHVwOidcbiAgICB9O1xuICB9XG5cbiAgaW5kaWNhdGVXZWJWaWV3IChjb25uSWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIGVuYWJsZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJJbmRpY2F0ZUVuYWJsZWRLZXk6IF8uaXNOaWwoZW5hYmxlZCkgPyB0cnVlIDogZW5hYmxlZCxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleVxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX2ZvcndhcmRJbmRpY2F0ZVdlYlZpZXc6J1xuICAgIH07XG4gIH1cblxuICBsYXVuY2hBcHBsaWNhdGlvbiAoYnVuZGxlSWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXk6IGJ1bmRsZUlkXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfcmVxdWVzdEFwcGxpY2F0aW9uTGF1bmNoOidcbiAgICB9O1xuICB9XG5cbiAgZ2V0RnVsbENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGNvbm5JZCxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgICB0YXJnZXRJZCxcbiAgICAgIGlkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLyogVGhlIFdlYiBJbnNwZWN0b3IgaGFzIGEgbnVtYmVyIG9mIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgcGFzc2VkIGluLCBhc1xuICAgICAqIHNlZW4gd2hlbiBkdW1waW5nIHdoYXQgU2FmYXJpIGlzIGRvaW5nIHdoZW4gY29tbXVuaWNhdGluZyB3aXRoIGl0LiBNb3N0XG4gICAgICogYXJlIGtlcHQgYXMgdGhleSBhcmUgc2V0IGZvciBTYWZhcmkuIFRoZSBleGNlcHRpb24gaXMgYGVtdWxhdGVVc2VyR2VzdHVyZWBcbiAgICAgKiB3aGljaCwgb24gaU9TIDEzKywgYnJlYWtzIHBvcHVwIGJsb2NraW5nIChpLmUuLCBldmVuIHdpdGggdGhlIHBvcHVwXG4gICAgICogYmxvY2tpbmcgc2V0dGluZyBvbiwgbmV3IHdpbmRvd3MgYXJlIG9wZW5hYmxlIGJvdGggZnJvbSBsaW5rcyBhbmQgZnJvbVxuICAgICAqIEphdmFTY3JpcHQpLlxuICAgICAqL1xuXG4gICAgbGV0IHJlYWxNZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgb2JqZWN0R3JvdXA6IE9CSkVDVF9HUk9VUCxcbiAgICAgICAgICAgIGluY2x1ZGVDb21tYW5kTGluZUFQSTogdHJ1ZSxcbiAgICAgICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgICAgICBlbXVsYXRlVXNlckdlc3R1cmU6IGZhbHNlLFxuICAgICAgICAgICAgZ2VuZXJhdGVQcmV2aWV3OiBmYWxzZSxcbiAgICAgICAgICAgIHNhdmVSZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sIHBhcmFtcylcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFsTWV0aG9kID0gbWV0aG9kO1xuICAgICAgcmVhbFBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBvYmplY3RHcm91cDogT0JKRUNUX0dST1VQLFxuICAgICAgICBpbmNsdWRlQ29tbWFuZExpbmVBUEk6IHRydWUsXG4gICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgIGVtdWxhdGVVc2VyR2VzdHVyZTogZmFsc2UsXG4gICAgICB9LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgbWV0aG9kOiByZWFsTWV0aG9kLFxuICAgICAgICAgIHBhcmFtczogcmVhbFBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonLFxuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldE1pbmltYWxDb21tYW5kIChvcHRzID0ge30pIHtcbiAgICBjb25zdCB7bWV0aG9kLCBwYXJhbXMsIGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIHRhcmdldElkLCBpZH0gPSBvcHRzO1xuXG4gICAgbGV0IHJlYWxNZXRob2QgPSBtZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBwbGlzdCA9IHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSU29ja2V0RGF0YUtleToge1xuICAgICAgICAgIG1ldGhvZDogcmVhbE1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IHJlYWxQYXJhbXMsXG4gICAgICAgIH0sXG4gICAgICAgIFdJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5OiBjb25uSWQsXG4gICAgICAgIFdJUlNlbmRlcktleTogc2VuZGVySWQsXG4gICAgICAgIFdJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTogYXBwSWRLZXksXG4gICAgICAgIFdJUlBhZ2VJZGVudGlmaWVyS2V5OiBwYWdlSWRLZXksXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldERhdGE6J1xuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldERpcmVjdENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHttZXRob2QsIHBhcmFtcywgY29ubklkLCBzZW5kZXJJZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgaWR9ID0gb3B0cztcblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonXG4gICAgfTtcbiAgICByZXR1cm4gXy5vbWl0QnkocGxpc3QsIF8uaXNOaWwpO1xuICB9XG5cbiAgZ2V0UmVtb3RlQ29tbWFuZCAoY29tbWFuZCwgb3B0cykge1xuICAgIGNvbnN0IHtcbiAgICAgIGlkLFxuICAgICAgY29ubklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBzZW5kZXJJZCxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICAgIHRhcmdldElkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLy8gZGVhbCB3aXRoIFNhZmFyaSBXZWIgSW5zcGVjdG9yIGNvbW1hbmRzXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlICdzZXRDb25uZWN0aW9uS2V5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29ubmVjdGlvbktleShjb25uSWQpO1xuICAgICAgY2FzZSAnaW5kaWNhdGVXZWJWaWV3JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kaWNhdGVXZWJWaWV3KGNvbm5JZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgb3B0cy5lbmFibGVkKTtcbiAgICAgIGNhc2UgJ2Nvbm5lY3RUb0FwcCc6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3RUb0FwcChjb25uSWQsIGFwcElkS2V5KTtcbiAgICAgIGNhc2UgJ3NldFNlbmRlcktleSc6XG4gICAgICAgIHJldHVybiB0aGlzLnNldFNlbmRlcktleShjb25uSWQsIHNlbmRlcklkLCBhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICAgIGNhc2UgJ2xhdW5jaEFwcGxpY2F0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMubGF1bmNoQXBwbGljYXRpb24ob3B0cy5idW5kbGVJZCk7XG4gICAgfVxuXG4gICAgLy8gZGVhbCB3aXRoIFdlYktpdCBjb21tYW5kc1xuICAgIGNvbnN0IGJ1aWxkZXJGdW5jdGlvbiA9IENPTU1BTkRTW2NvbW1hbmRdIHx8IE1JTklNQUxfQ09NTUFORDtcbiAgICByZXR1cm4gdGhpc1tidWlsZGVyRnVuY3Rpb25dKHtcbiAgICAgIC4uLmdldFByb3RvY29sQ29tbWFuZChpZCwgY29tbWFuZCwgb3B0cyksXG4gICAgICBjb25uSWQsXG4gICAgICBhcHBJZEtleSxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgcGFnZUlkS2V5LFxuICAgICAgdGFyZ2V0SWQsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgUmVtb3RlTWVzc2FnZXMgfTtcbmV4cG9ydCBkZWZhdWx0IFJlbW90ZU1lc3NhZ2VzO1xuIl0sImZpbGUiOiJsaWIvcnBjL3JlbW90ZS1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
267
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9yZW1vdGUtbWVzc2FnZXMuanMiLCJuYW1lcyI6WyJPQkpFQ1RfR1JPVVAiLCJNSU5JTUFMX0NPTU1BTkQiLCJGVUxMX0NPTU1BTkQiLCJESVJFQ1RfQ09NTUFORCIsIkNPTU1BTkRTIiwiUmVtb3RlTWVzc2FnZXMiLCJjb25zdHJ1Y3RvciIsImlzVGFyZ2V0QmFzZWQiLCJfaXNUYXJnZXRCYXNlZCIsInNldENvbm5lY3Rpb25LZXkiLCJjb25uSWQiLCJfX2FyZ3VtZW50IiwiV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXkiLCJfX3NlbGVjdG9yIiwiY29ubmVjdFRvQXBwIiwiYXBwSWRLZXkiLCJXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJzZXRTZW5kZXJLZXkiLCJzZW5kZXJJZCIsInBhZ2VJZEtleSIsIldJUlNlbmRlcktleSIsIldJUlBhZ2VJZGVudGlmaWVyS2V5IiwiV0lSQXV0b21hdGljYWxseVBhdXNlIiwiaW5kaWNhdGVXZWJWaWV3IiwiZW5hYmxlZCIsIldJUkluZGljYXRlRW5hYmxlZEtleSIsIl8iLCJpc05pbCIsImxhdW5jaEFwcGxpY2F0aW9uIiwiYnVuZGxlSWQiLCJXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXkiLCJnZXRGdWxsQ29tbWFuZCIsIm9wdHMiLCJtZXRob2QiLCJwYXJhbXMiLCJ0YXJnZXRJZCIsImlkIiwicmVhbE1ldGhvZCIsInJlYWxQYXJhbXMiLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsIk9iamVjdCIsImFzc2lnbiIsIm9iamVjdEdyb3VwIiwiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwiZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlIiwiZW11bGF0ZVVzZXJHZXN0dXJlIiwiZ2VuZXJhdGVQcmV2aWV3Iiwic2F2ZVJlc3VsdCIsInBsaXN0IiwiV0lSU29ja2V0RGF0YUtleSIsIm9taXRCeSIsImdldE1pbmltYWxDb21tYW5kIiwiZ2V0RGlyZWN0Q29tbWFuZCIsImdldFJlbW90ZUNvbW1hbmQiLCJjb21tYW5kIiwiYnVpbGRlckZ1bmN0aW9uIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL3JwYy9yZW1vdGUtbWVzc2FnZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBnZXRQcm90b2NvbENvbW1hbmQgZnJvbSAnLi4vcHJvdG9jb2wnO1xuXG5cbmNvbnN0IE9CSkVDVF9HUk9VUCA9ICdjb25zb2xlJztcblxuY29uc3QgTUlOSU1BTF9DT01NQU5EID0gJ2dldE1pbmltYWxDb21tYW5kJztcbmNvbnN0IEZVTExfQ09NTUFORCA9ICdnZXRGdWxsQ29tbWFuZCc7XG5jb25zdCBESVJFQ1RfQ09NTUFORCA9ICdnZXREaXJlY3RDb21tYW5kJztcblxuLy8gbWFwcGluZyBvZiBjb21tYW5kcyB0byB0aGUgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIGNvbW1hbmRcbi8vIGRlZmF1bHRzIHRvIGBnZXRNaW5pbWFsQ29tbWFuZGAsIHNvIG5vIG5lZWQgdG8gaGF2ZSB0aG9zZSBsaXN0ZWQgaGVyZVxuY29uc3QgQ09NTUFORFMgPSB7XG4gICdQYWdlLmdldENvb2tpZXMnOiBGVUxMX0NPTU1BTkQsXG4gICdQYWdlLm5hdmlnYXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdSdW50aW1lLmF3YWl0UHJvbWlzZSc6IEZVTExfQ09NTUFORCxcbiAgJ1J1bnRpbWUuY2FsbEZ1bmN0aW9uT24nOiBGVUxMX0NPTU1BTkQsXG4gICdSdW50aW1lLmV2YWx1YXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdUYXJnZXQuZXhpc3RzJzogRElSRUNUX0NPTU1BTkQsXG5cbiAgJ1RpbWVsaW5lLnN0YXJ0JzogRlVMTF9DT01NQU5ELFxuICAnVGltZWxpbmUuc3RvcCc6IEZVTExfQ09NTUFORCxcbn07XG5cbmNsYXNzIFJlbW90ZU1lc3NhZ2VzIHtcbiAgY29uc3RydWN0b3IgKGlzVGFyZ2V0QmFzZWQgPSBmYWxzZSkge1xuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgLypcbiAgICogQ29ubmVjdGlvbiBmdW5jdGlvbnNcbiAgICovXG5cbiAgc2V0Q29ubmVjdGlvbktleSAoY29ubklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZFxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX3JlcG9ydElkZW50aWZpZXI6J1xuICAgIH07XG4gIH1cblxuICBjb25uZWN0VG9BcHAgKGNvbm5JZCwgYXBwSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5XG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZEdldExpc3Rpbmc6J1xuICAgIH07XG4gIH1cblxuICBzZXRTZW5kZXJLZXkgKGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJTZW5kZXJLZXk6IHNlbmRlcklkLFxuICAgICAgICBXSVJQYWdlSWRlbnRpZmllcktleTogcGFnZUlkS2V5LFxuICAgICAgICBXSVJBdXRvbWF0aWNhbGx5UGF1c2U6IGZhbHNlXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldFNldHVwOidcbiAgICB9O1xuICB9XG5cbiAgaW5kaWNhdGVXZWJWaWV3IChjb25uSWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIGVuYWJsZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJJbmRpY2F0ZUVuYWJsZWRLZXk6IF8uaXNOaWwoZW5hYmxlZCkgPyB0cnVlIDogZW5hYmxlZCxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleVxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX2ZvcndhcmRJbmRpY2F0ZVdlYlZpZXc6J1xuICAgIH07XG4gIH1cblxuICBsYXVuY2hBcHBsaWNhdGlvbiAoYnVuZGxlSWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXk6IGJ1bmRsZUlkXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfcmVxdWVzdEFwcGxpY2F0aW9uTGF1bmNoOidcbiAgICB9O1xuICB9XG5cbiAgZ2V0RnVsbENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGNvbm5JZCxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgICB0YXJnZXRJZCxcbiAgICAgIGlkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLyogVGhlIFdlYiBJbnNwZWN0b3IgaGFzIGEgbnVtYmVyIG9mIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgcGFzc2VkIGluLCBhc1xuICAgICAqIHNlZW4gd2hlbiBkdW1waW5nIHdoYXQgU2FmYXJpIGlzIGRvaW5nIHdoZW4gY29tbXVuaWNhdGluZyB3aXRoIGl0LiBNb3N0XG4gICAgICogYXJlIGtlcHQgYXMgdGhleSBhcmUgc2V0IGZvciBTYWZhcmkuIFRoZSBleGNlcHRpb24gaXMgYGVtdWxhdGVVc2VyR2VzdHVyZWBcbiAgICAgKiB3aGljaCwgb24gaU9TIDEzKywgYnJlYWtzIHBvcHVwIGJsb2NraW5nIChpLmUuLCBldmVuIHdpdGggdGhlIHBvcHVwXG4gICAgICogYmxvY2tpbmcgc2V0dGluZyBvbiwgbmV3IHdpbmRvd3MgYXJlIG9wZW5hYmxlIGJvdGggZnJvbSBsaW5rcyBhbmQgZnJvbVxuICAgICAqIEphdmFTY3JpcHQpLlxuICAgICAqL1xuXG4gICAgbGV0IHJlYWxNZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgb2JqZWN0R3JvdXA6IE9CSkVDVF9HUk9VUCxcbiAgICAgICAgICAgIGluY2x1ZGVDb21tYW5kTGluZUFQSTogdHJ1ZSxcbiAgICAgICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgICAgICBlbXVsYXRlVXNlckdlc3R1cmU6IGZhbHNlLFxuICAgICAgICAgICAgZ2VuZXJhdGVQcmV2aWV3OiBmYWxzZSxcbiAgICAgICAgICAgIHNhdmVSZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sIHBhcmFtcylcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFsTWV0aG9kID0gbWV0aG9kO1xuICAgICAgcmVhbFBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBvYmplY3RHcm91cDogT0JKRUNUX0dST1VQLFxuICAgICAgICBpbmNsdWRlQ29tbWFuZExpbmVBUEk6IHRydWUsXG4gICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgIGVtdWxhdGVVc2VyR2VzdHVyZTogZmFsc2UsXG4gICAgICB9LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgbWV0aG9kOiByZWFsTWV0aG9kLFxuICAgICAgICAgIHBhcmFtczogcmVhbFBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonLFxuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldE1pbmltYWxDb21tYW5kIChvcHRzID0ge30pIHtcbiAgICBjb25zdCB7bWV0aG9kLCBwYXJhbXMsIGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIHRhcmdldElkLCBpZH0gPSBvcHRzO1xuXG4gICAgbGV0IHJlYWxNZXRob2QgPSBtZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBwbGlzdCA9IHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSU29ja2V0RGF0YUtleToge1xuICAgICAgICAgIG1ldGhvZDogcmVhbE1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IHJlYWxQYXJhbXMsXG4gICAgICAgIH0sXG4gICAgICAgIFdJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5OiBjb25uSWQsXG4gICAgICAgIFdJUlNlbmRlcktleTogc2VuZGVySWQsXG4gICAgICAgIFdJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTogYXBwSWRLZXksXG4gICAgICAgIFdJUlBhZ2VJZGVudGlmaWVyS2V5OiBwYWdlSWRLZXksXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldERhdGE6J1xuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldERpcmVjdENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHttZXRob2QsIHBhcmFtcywgY29ubklkLCBzZW5kZXJJZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgaWR9ID0gb3B0cztcblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonXG4gICAgfTtcbiAgICByZXR1cm4gXy5vbWl0QnkocGxpc3QsIF8uaXNOaWwpO1xuICB9XG5cbiAgZ2V0UmVtb3RlQ29tbWFuZCAoY29tbWFuZCwgb3B0cykge1xuICAgIGNvbnN0IHtcbiAgICAgIGlkLFxuICAgICAgY29ubklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBzZW5kZXJJZCxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICAgIHRhcmdldElkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLy8gZGVhbCB3aXRoIFNhZmFyaSBXZWIgSW5zcGVjdG9yIGNvbW1hbmRzXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlICdzZXRDb25uZWN0aW9uS2V5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29ubmVjdGlvbktleShjb25uSWQpO1xuICAgICAgY2FzZSAnaW5kaWNhdGVXZWJWaWV3JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kaWNhdGVXZWJWaWV3KGNvbm5JZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgb3B0cy5lbmFibGVkKTtcbiAgICAgIGNhc2UgJ2Nvbm5lY3RUb0FwcCc6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3RUb0FwcChjb25uSWQsIGFwcElkS2V5KTtcbiAgICAgIGNhc2UgJ3NldFNlbmRlcktleSc6XG4gICAgICAgIHJldHVybiB0aGlzLnNldFNlbmRlcktleShjb25uSWQsIHNlbmRlcklkLCBhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICAgIGNhc2UgJ2xhdW5jaEFwcGxpY2F0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMubGF1bmNoQXBwbGljYXRpb24ob3B0cy5idW5kbGVJZCk7XG4gICAgfVxuXG4gICAgLy8gZGVhbCB3aXRoIFdlYktpdCBjb21tYW5kc1xuICAgIGNvbnN0IGJ1aWxkZXJGdW5jdGlvbiA9IENPTU1BTkRTW2NvbW1hbmRdIHx8IE1JTklNQUxfQ09NTUFORDtcbiAgICByZXR1cm4gdGhpc1tidWlsZGVyRnVuY3Rpb25dKHtcbiAgICAgIC4uLmdldFByb3RvY29sQ29tbWFuZChpZCwgY29tbWFuZCwgb3B0cyksXG4gICAgICBjb25uSWQsXG4gICAgICBhcHBJZEtleSxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgcGFnZUlkS2V5LFxuICAgICAgdGFyZ2V0SWQsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgUmVtb3RlTWVzc2FnZXMgfTtcbmV4cG9ydCBkZWZhdWx0IFJlbW90ZU1lc3NhZ2VzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLE1BQU1BLFlBQVksR0FBRyxTQUFyQjtBQUVBLE1BQU1DLGVBQWUsR0FBRyxtQkFBeEI7QUFDQSxNQUFNQyxZQUFZLEdBQUcsZ0JBQXJCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLGtCQUF2QjtBQUlBLE1BQU1DLFFBQVEsR0FBRztFQUNmLG1CQUFtQkYsWUFESjtFQUVmLGlCQUFpQkEsWUFGRjtFQUlmLHdCQUF3QkEsWUFKVDtFQUtmLDBCQUEwQkEsWUFMWDtFQU1mLG9CQUFvQkEsWUFOTDtFQVFmLGlCQUFpQkMsY0FSRjtFQVVmLGtCQUFrQkQsWUFWSDtFQVdmLGlCQUFpQkE7QUFYRixDQUFqQjs7QUFjQSxNQUFNRyxjQUFOLENBQXFCO0VBQ25CQyxXQUFXLENBQUVDLGFBQWEsR0FBRyxLQUFsQixFQUF5QjtJQUNsQyxLQUFL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
|
|
@@ -68,4 +68,4 @@ class RpcClientRealDevice extends _rpcClient.default {
|
|
|
68
68
|
exports.default = RpcClientRealDevice;require('source-map-support').install();
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtY2xpZW50LXJlYWwtZGV2aWNlLmpzIiwibmFtZXMiOlsiUnBjQ2xpZW50UmVhbERldmljZSIsIlJwY0NsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInNob3VsZENoZWNrRm9yVGFyZ2V0IiwidWRpZCIsImNvbm5lY3QiLCJzZXJ2aWNlIiwic2VydmljZXMiLCJzdGFydFdlYkluc3BlY3RvclNlcnZpY2UiLCJvc1ZlcnNpb24iLCJwbGF0Zm9ybVZlcnNpb24iLCJpc1NpbXVsYXRvciIsInZlcmJvc2UiLCJsb2dBbGxDb21tdW5pY2F0aW9uIiwidmVyYm9zZUhleER1bXAiLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsInNvY2tldENodW5rU2l6ZSIsIm1heEZyYW1lTGVuZ3RoIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJsaXN0ZW5NZXNzYWdlIiwicmVjZWl2ZSIsImJpbmQiLCJpc0Nvbm5lY3RlZCIsImRpc2Nvbm5lY3QiLCJsb2ciLCJkZWJ1ZyIsImNsb3NlIiwic2VuZE1lc3NhZ2UiLCJjbWQiLCJkYXRhIiwibWVzc2FnZUhhbmRsZXIiLCJoYW5kbGVNZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL3JwYy9ycGMtY2xpZW50LXJlYWwtZGV2aWNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBScGNDbGllbnQgZnJvbSAnLi9ycGMtY2xpZW50JztcbmltcG9ydCB7IHNlcnZpY2VzIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudFJlYWxEZXZpY2UgZXh0ZW5kcyBScGNDbGllbnQge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7XG4gICAgICBzaG91bGRDaGVja0ZvclRhcmdldDogZmFsc2UsXG4gICAgfSwgb3B0cykpO1xuXG4gICAgY29uc3Qge1xuICAgICAgdWRpZCxcbiAgICB9ID0gb3B0cztcblxuICAgIHRoaXMudWRpZCA9IHVkaWQ7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ICgpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydFdlYkluc3BlY3RvclNlcnZpY2UodGhpcy51ZGlkLCB7XG4gICAgICBvc1ZlcnNpb246IHRoaXMucGxhdGZvcm1WZXJzaW9uLFxuICAgICAgaXNTaW11bGF0b3I6IGZhbHNlLFxuICAgICAgdmVyYm9zZTogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uLFxuICAgICAgdmVyYm9zZUhleER1bXA6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAsXG4gICAgICBzb2NrZXRDaHVua1NpemU6IHRoaXMuc29ja2V0Q2h1bmtTaXplLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2UubGlzdGVuTWVzc2FnZSh0aGlzLnJlY2VpdmUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ICgpIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2cuZGVidWcoJ0Rpc2Nvbm5lY3RpbmcgZnJvbSByZW1vdGUgZGVidWdnZXInKTtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlKCk7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UgKGNtZCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aGlzLnNlcnZpY2Uuc2VuZE1lc3NhZ2UoY21kKTtcbiAgfVxuXG4gIGFzeW5jIHJlY2VpdmUgKGRhdGEpIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5tZXNzYWdlSGFuZGxlci5oYW5kbGVNZXNzYWdlKGRhdGEpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR2UsTUFBTUEsbUJBQU4sU0FBa0NDLGtCQUFsQyxDQUE0QztFQUN6REMsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0lBQ3RCLE1BQU1DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQ2xCQyxvQkFBb0IsRUFBRTtJQURKLENBQWQsRUFFSEgsSUFGRyxDQUFOO0lBSUEsTUFBTTtNQUNKSTtJQURJLElBRUZKLElBRko7SUFJQSxLQUFLSSxJQUFMLEdBQVlBLElBQVo7RUFDRDs7RUFFWSxNQUFQQyxPQUFPLEdBQUk7SUFDZixLQUFLQyxPQUFMLEdBQWUsTUFBTUMsMEJBQVNDLHdCQUFULENBQWtDLEtBQUtKLElBQXZDLEVBQTZDO01BQ2hFSyxTQUFTLEVBQUUsS0FBS0MsZUFEZ0Q7TUFFaEVDLFdBQVcsRUFBRSxLQUZtRDtNQUdoRUMsT0FBTyxFQUFFLEtBQUtDLG1CQUhrRDtNQUloRUMsY0FBYyxFQUFFLEtBQUtDLDBCQUoyQztNQUtoRUMsZUFBZSxFQUFFLEtBQUtBLGVBTDBDO01BTWhFQyxjQUFjLEVBQUUsS0FBS0M7SUFOMkMsQ0FBN0MsQ0FBckI7SUFTQSxLQUFLWixPQUFMLENBQWFhLGFBQWIsQ0FBMkIsS0FBS0MsT0FBTCxDQUFhQyxJQUFiLENBQWtCLElBQWxCLENBQTNCO0lBQ0EsS0FBS0MsV0FBTCxHQUFtQixJQUFuQjtFQUNEOztFQUVlLE1BQVZDLFVBQVUsR0FBSTtJQUNsQixJQUFJLENBQUMsS0FBS0QsV0FBVixFQUF1QjtNQUNyQjtJQUNEOztJQUVERSxnQkFBSUMsS0FBSixDQUFVLG9DQUFWOztJQUNBLE1BQU0sTUFBTUYsVUFBTixFQUFOO0lBQ0EsS0FBS2pCLE9BQUwsQ0FBYW9CLEtBQWI7SUFDQSxLQUFLSixXQUFMLEdBQW1CLEtBQW5CO0VBQ0Q7O0VBRWdCLE1BQVhLLFdBQVcsQ0FBRUMsR0FBRixFQUFPO0lBQ3RCLEtBQUt0QixPQUFMLENBQWFxQixXQUFiLENBQXlCQyxHQUF6QjtFQUNEOztFQUVZLE1BQVBSLE9BQU8sQ0FBRVMsSUFBRixFQUFRO0lBQ25CLElBQUksQ0FBQyxLQUFLUCxXQUFWLEVBQXVCO01BQ3JCO0lBQ0Q7O0lBQ0QsTUFBTSxLQUFLUSxjQUFMLENBQW9CQyxhQUFwQixDQUFrQ0YsSUFBbEMsQ0FBTjtFQUNEOztBQS9Dd0QifQ==
|
|
@@ -165,4 +165,4 @@ class RpcClientSimulator extends _rpcClient.default {
|
|
|
165
165
|
exports.default = RpcClientSimulator;require('source-map-support').install();
|
|
166
166
|
|
|
167
167
|
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ycGMvcnBjLWNsaWVudC1zaW11bGF0b3IuanMiXSwibmFtZXMiOlsiUnBjQ2xpZW50U2ltdWxhdG9yIiwiUnBjQ2xpZW50IiwiY29uc3RydWN0b3IiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwic2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJzb2NrZXRQYXRoIiwiaG9zdCIsInBvcnQiLCJtZXNzYWdlUHJveHkiLCJzb2NrZXQiLCJjb25uZWN0IiwibG9nIiwiZGVidWciLCJuZXQiLCJvbmNlIiwid3JpdGUiLCJKU09OIiwic3RyaW5naWZ5IiwiU29ja2V0IiwidHlwZSIsInNldE5vRGVsYXkiLCJzZXRLZWVwQWxpdmUiLCJvbiIsImlzQ29ubmVjdGVkIiwic2VydmljZSIsInNlcnZpY2VzIiwic3RhcnRXZWJJbnNwZWN0b3JTZXJ2aWNlIiwidWRpZCIsImlzU2ltdWxhdG9yIiwib3NWZXJzaW9uIiwicGxhdGZvcm1WZXJzaW9uIiwidmVyYm9zZSIsImxvZ0FsbENvbW11bmljYXRpb24iLCJ2ZXJib3NlSGV4RHVtcCIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwibWF4RnJhbWVMZW5ndGgiLCJ3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCIsImxpc3Rlbk1lc3NhZ2UiLCJyZWNlaXZlIiwiYmluZCIsIkIiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXJyIiwiZXJyb3IiLCJtZXNzYWdlIiwiZGlzY29ubmVjdCIsImNsb3NlIiwic2VuZE1lc3NhZ2UiLCJjbWQiLCJvblNvY2tldEVycm9yIiwiZmluYWxseSIsInJlbW92ZUxpc3RlbmVyIiwiaWduIiwiZGF0YSIsImtleSIsIl8iLCJpc1VuZGVmaW5lZCIsInRvU3RyaW5nIiwibWVzc2FnZUhhbmRsZXIiLCJoYW5kbGVNZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdlLE1BQU1BLGtCQUFOLFNBQWlDQyxrQkFBakMs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dkJoQyx3QkFBSWlDLEtBQUosQ0FBVyxpQkFBZ0JELEdBQUcsQ0FBQ0UsT0FBUSxFQUF2Qzs7QUFHQUgsUUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU47QUFDRCxPQUxEOztBQU9BLFdBQUtsQyxNQUFMLENBQVlhLEVBQVosQ0FBZSxPQUFmLEVBQXdCNEIsYUFBeEI7QUFDQSxXQUFLMUIsT0FBTCxDQUFhd0IsV0FBYixDQUF5QkMsR0FBekI7QUFDQVIsTUFBQUEsT0FBTztBQUNSLEtBWlksRUFhWlUsT0FiWSxDQWFKLE1BQU07QUFFYixVQUFJO0FBQ0YsYUFBSzFDLE1BQUwsQ0FBWTJDLGNBQVosQ0FBMkIsT0FBM0IsRUFBb0NGLGFBQXBDO0FBQ0QsT0FGRCxDQUVFLE9BQU9HLEdBQVAsRUFBWSxDQUFFO0FBQ2pCLEtBbEJZLENBQWI7QUFtQkQ7O0FBRVksUUFBUGYsT0FBTyxDQUFFZ0IsSUFBRixFQUFRO0FBQ25CLFFBQUksQ0FBQyxLQUFLL0IsV0FBVixFQUF1QjtBQUNyQjtBQUNEOztBQUVELFFBQUksQ0FBQytCLElBQUwsRUFBVztBQUNUO0FBQ0Q7O0FBRUQsU0FBSyxNQUFNQyxHQUFYLElBQWtCLENBQUMsbUJBQUQsRUFBc0IsbUJBQXRCLEVBQTJDLGtCQUEzQyxDQUFsQixFQUFrRjtBQUNoRixVQUFJLENBQUNDLGdCQUFFQyxXQUFGLENBQWNILElBQUksQ0FBQ0MsR0FBRCxDQUFsQixDQUFMLEVBQStCO0FBQzdCRCxRQUFBQSxJQUFJLENBQUNDLEdBQUQsQ0FBSixHQUFZRCxJQUFJLENBQUNDLEdBQUQsQ0FBSixDQUFVRyxRQUFWLENBQW1CLE1BQW5CLENBQVo7QUFDRDtBQUNGOztBQUNELFVBQU0sS0FBS0MsY0FBTCxDQUFvQkMsYUFBcEIsQ0FBa0NOLElBQWxDLENBQU47QUFDRDs7QUFwSnVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBScGNDbGllbnQgZnJvbSAnLi9ycGMtY2xpZW50JztcbmltcG9ydCB7IHNlcnZpY2VzIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudFNpbXVsYXRvciBleHRlbmRzIFJwY0NsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHtcbiAgICAgIHNob3VsZENoZWNrRm9yVGFyZ2V0OiBmYWxzZSxcbiAgICB9LCBvcHRzKSk7XG5cbiAgICBjb25zdCB7XG4gICAgICBzb2NrZXRQYXRoLFxuICAgICAgaG9zdCA9ICc6OjEnLFxuICAgICAgcG9ydCxcbiAgICAgIG1lc3NhZ2VQcm94eSxcbiAgICB9ID0gb3B0cztcblxuICAgIC8vIGhvc3QvcG9ydCBjb25maWcgZm9yIFRDUCBjb21tdW5pY2F0aW9uLCBzb2NrZXRQYXRoIGZvciB1bml4IGRvbWFpbiBzb2NrZXRzXG4gICAgdGhpcy5ob3N0ID0gaG9zdDtcbiAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgIHRoaXMubWVzc2FnZVByb3h5ID0gbWVzc2FnZVByb3h5O1xuXG4gICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIHRoaXMuc29ja2V0UGF0aCA9IHNvY2tldFBhdGg7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ICgpIHtcbiAgICAvLyBjcmVhdGUgc29ja2V0IGFuZCBoYW5kbGUgaXRzIG1lc3NhZ2VzXG4gICAgaWYgKHRoaXMuc29ja2V0UGF0aCkge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZVByb3h5KSB7XG4gICAgICAgIC8vIHVuaXggZG9tYWluIHNvY2tldCB2aWEgcHJveHlcbiAgICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIHJlbW90ZSBkZWJ1Z2dlciB2aWEgcHJveHkgdGhyb3VnaCB1bml4IGRvbWFpbiBzb2NrZXQ6ICcke3RoaXMubWVzc2FnZVByb3h5fSdgKTtcbiAgICAgICAgdGhpcy5zb2NrZXQgPSBuZXQuY29ubmVjdCh0aGlzLm1lc3NhZ2VQcm94eSk7XG5cbiAgICAgICAgLy8gRm9yd2FyZCB0aGUgYWN0dWFsIHNvY2tldFBhdGggdG8gdGhlIHByb3h5XG4gICAgICAgIHRoaXMuc29ja2V0Lm9uY2UoJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBGb3J3YXJkaW5nIHRoZSBhY3R1YWwgd2ViIGluc3BlY3RvciBzb2NrZXQgdG8gdGhlIHByb3h5OiAnJHt0aGlzLnNvY2tldFBhdGh9J2ApO1xuICAgICAgICAgIHRoaXMuc29ja2V0LndyaXRlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHNvY2tldFBhdGg6IHRoaXMuc29ja2V0UGF0aFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHVuaXggZG9tYWluIHNvY2tldFxuICAgICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gcmVtb3RlIGRlYnVnZ2VyIHRocm91Z2ggdW5peCBkb21haW4gc29ja2V0OiAnJHt0aGlzLnNvY2tldFBhdGh9J2ApO1xuICAgICAgICB0aGlzLnNvY2tldCA9IG5ldC5jb25uZWN0KHRoaXMuc29ja2V0UGF0aCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VQcm94eSkge1xuICAgICAgICAvLyBjb25uZWN0IHRvIHRoZSBwcm94eSBpbnN0ZWFkIG9mIHRoZSByZW1vdGUgZGVidWdnZXIgZGlyZWN0bHlcbiAgICAgICAgdGhpcy5wb3J0ID0gdGhpcy5tZXNzYWdlUHJveHk7XG4gICAgICB9XG5cbiAgICAgIC8vIHRjcCBzb2NrZXRcbiAgICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byByZW1vdGUgZGVidWdnZXIgJHt0aGlzLm1lc3NhZ2VQcm94eSA/ICd2aWEgcHJveHkgJyA6ICcnfXRocm91Z2ggVENQOiAke3RoaXMuaG9zdH06JHt0aGlzLnBvcnR9YCk7XG4gICAgICB0aGlzLnNvY2tldCA9IG5ldyBuZXQuU29ja2V0KHt0eXBlOiAndGNwNid9KTtcbiAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QodGhpcy5wb3J0LCB0aGlzLmhvc3QpO1xuICAgIH1cblxuICAgIHRoaXMuc29ja2V0LnNldE5vRGVsYXkodHJ1ZSk7XG4gICAgdGhpcy5zb2NrZXQuc2V0S2VlcEFsaXZlKHRydWUpO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnRGVidWdnZXIgc29ja2V0IGRpc2Nvbm5lY3RlZCcpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIH0pO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRXZWJJbnNwZWN0b3JTZXJ2aWNlKHRoaXMudWRpZCwge1xuICAgICAgc29ja2V0OiB0aGlzLnNvY2tldCxcbiAgICAgIGlzU2ltdWxhdG9yOiB0cnVlLFxuICAgICAgb3NWZXJzaW9uOiB0aGlzLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgIHZlcmJvc2U6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbixcbiAgICAgIHZlcmJvc2VIZXhEdW1wOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLmxpc3Rlbk1lc3NhZ2UodGhpcy5yZWNlaXZlLmJpbmQodGhpcykpO1xuXG4gICAgLy8gY29ubmVjdCB0aGUgc29ja2V0XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIG9ubHkgcmVzb2x2ZSB0aGlzIGZ1bmN0aW9uIHdoZW4gd2UgYXJlIGFjdHVhbGx5IGNvbm5lY3RlZFxuICAgICAgdGhpcy5zb2NrZXQub24oJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgRGVidWdnZXIgc29ja2V0IGNvbm5lY3RlZGApO1xuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoYFNvY2tldCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGUgY29ubmVjdGlvbiB3YXMgcmVmdXNlZCwgc28gcmVqZWN0IHRoZSBjb25uZWN0IHByb21pc2VcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QgKCkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5kZWJ1ZygnRGlzY29ubmVjdGluZyBmcm9tIHJlbW90ZSBkZWJ1Z2dlcicpO1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZSAoY21kKSB7XG4gICAgbGV0IG9uU29ja2V0RXJyb3I7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gaGFuZGxlIHNvY2tldCBwcm9ibGVtc1xuICAgICAgb25Tb2NrZXRFcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgbG9nLmVycm9yKGBTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG5cbiAgICAgICAgLy8gdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQsIHNvIHJlamVjdCB0aGUgY29ubmVjdCBwcm9taXNlXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zb2NrZXQub24oJ2Vycm9yJywgb25Tb2NrZXRFcnJvcik7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE1lc3NhZ2UoY21kKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KVxuICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgIC8vIHJlbW92ZSB0aGlzIGxpc3RlbmVyLCBzbyB3ZSBkb24ndCBleGhhdXN0IHRoZSBzeXN0ZW1cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uU29ja2V0RXJyb3IpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVjZWl2ZSAoZGF0YSkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnV0lSTWVzc2FnZURhdGFLZXknLCAnV0lSRGVzdGluYXRpb25LZXknLCAnV0lSU29ja2V0RGF0YUtleSddKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQoZGF0YVtrZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBkYXRhW2tleV0udG9TdHJpbmcoJ3V0ZjgnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgdGhpcy5tZXNzYWdlSGFuZGxlci5oYW5kbGVNZXNzYWdlKGRhdGEpO1xuICB9XG59XG4iXSwiZmlsZSI6ImxpYi9ycGMvcnBjLWNsaWVudC1zaW11bGF0b3IuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtY2xpZW50LXNpbXVsYXRvci5qcyIsIm5hbWVzIjpbIlJwY0NsaWVudFNpbXVsYXRvciIsIlJwY0NsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInNob3VsZENoZWNrRm9yVGFyZ2V0Iiwic29ja2V0UGF0aCIsImhvc3QiLCJwb3J0IiwibWVzc2FnZVByb3h5Iiwic29ja2V0IiwiY29ubmVjdCIsImxvZyIsImRlYnVnIiwibmV0Iiwib25jZSIsIndyaXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsIlNvY2tldCIsInR5cGUiLCJzZXROb0RlbGF5Iiwic2V0S2VlcEFsaXZlIiwib24iLCJpc0Nvbm5lY3RlZCIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0V2ViSW5zcGVjdG9yU2VydmljZSIsInVkaWQiLCJpc1NpbXVsYXRvciIsIm9zVmVyc2lvbiIsInBsYXRmb3JtVmVyc2lvbiIsInZlcmJvc2UiLCJsb2dBbGxDb21tdW5pY2F0aW9uIiwidmVyYm9zZUhleER1bXAiLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsIm1heEZyYW1lTGVuZ3RoIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJsaXN0ZW5NZXNzYWdlIiwicmVjZWl2ZSIsImJpbmQiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImRpc2Nvbm5lY3QiLCJjbG9zZSIsInNlbmRNZXNzYWdlIiwiY21kIiwib25Tb2NrZXRFcnJvciIsImZpbmFsbHkiLCJyZW1vdmVMaXN0ZW5lciIsImlnbiIsImRhdGEiLCJrZXkiLCJfIiwiaXNVbmRlZmluZWQiLCJ0b1N0cmluZyIsIm1lc3NhZ2VIYW5kbGVyIiwiaGFuZGxlTWVzc2FnZSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9ycGMvcnBjLWNsaWVudC1zaW11bGF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBScGNDbGllbnQgZnJvbSAnLi9ycGMtY2xpZW50JztcbmltcG9ydCB7IHNlcnZpY2VzIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudFNpbXVsYXRvciBleHRlbmRzIFJwY0NsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHtcbiAgICAgIHNob3VsZENoZWNrRm9yVGFyZ2V0OiBmYWxzZSxcbiAgICB9LCBvcHRzKSk7XG5cbiAgICBjb25zdCB7XG4gICAgICBzb2NrZXRQYXRoLFxuICAgICAgaG9zdCA9ICc6OjEnLFxuICAgICAgcG9ydCxcbiAgICAgIG1lc3NhZ2VQcm94eSxcbiAgICB9ID0gb3B0cztcblxuICAgIC8vIGhvc3QvcG9ydCBjb25maWcgZm9yIFRDUCBjb21tdW5pY2F0aW9uLCBzb2NrZXRQYXRoIGZvciB1bml4IGRvbWFpbiBzb2NrZXRzXG4gICAgdGhpcy5ob3N0ID0gaG9zdDtcbiAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgIHRoaXMubWVzc2FnZVByb3h5ID0gbWVzc2FnZVByb3h5O1xuXG4gICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIHRoaXMuc29ja2V0UGF0aCA9IHNvY2tldFBhdGg7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ICgpIHtcbiAgICAvLyBjcmVhdGUgc29ja2V0IGFuZCBoYW5kbGUgaXRzIG1lc3NhZ2VzXG4gICAgaWYgKHRoaXMuc29ja2V0UGF0aCkge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZVByb3h5KSB7XG4gICAgICAgIC8vIHVuaXggZG9tYWluIHNvY2tldCB2aWEgcHJveHlcbiAgICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIHJlbW90ZSBkZWJ1Z2dlciB2aWEgcHJveHkgdGhyb3VnaCB1bml4IGRvbWFpbiBzb2NrZXQ6ICcke3RoaXMubWVzc2FnZVByb3h5fSdgKTtcbiAgICAgICAgdGhpcy5zb2NrZXQgPSBuZXQuY29ubmVjdCh0aGlzLm1lc3NhZ2VQcm94eSk7XG5cbiAgICAgICAgLy8gRm9yd2FyZCB0aGUgYWN0dWFsIHNvY2tldFBhdGggdG8gdGhlIHByb3h5XG4gICAgICAgIHRoaXMuc29ja2V0Lm9uY2UoJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBGb3J3YXJkaW5nIHRoZSBhY3R1YWwgd2ViIGluc3BlY3RvciBzb2NrZXQgdG8gdGhlIHByb3h5OiAnJHt0aGlzLnNvY2tldFBhdGh9J2ApO1xuICAgICAgICAgIHRoaXMuc29ja2V0LndyaXRlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHNvY2tldFBhdGg6IHRoaXMuc29ja2V0UGF0aFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHVuaXggZG9tYWluIHNvY2tldFxuICAgICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gcmVtb3RlIGRlYnVnZ2VyIHRocm91Z2ggdW5peCBkb21haW4gc29ja2V0OiAnJHt0aGlzLnNvY2tldFBhdGh9J2ApO1xuICAgICAgICB0aGlzLnNvY2tldCA9IG5ldC5jb25uZWN0KHRoaXMuc29ja2V0UGF0aCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VQcm94eSkge1xuICAgICAgICAvLyBjb25uZWN0IHRvIHRoZSBwcm94eSBpbnN0ZWFkIG9mIHRoZSByZW1vdGUgZGVidWdnZXIgZGlyZWN0bHlcbiAgICAgICAgdGhpcy5wb3J0ID0gdGhpcy5tZXNzYWdlUHJveHk7XG4gICAgICB9XG5cbiAgICAgIC8vIHRjcCBzb2NrZXRcbiAgICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byByZW1vdGUgZGVidWdnZXIgJHt0aGlzLm1lc3NhZ2VQcm94eSA/ICd2aWEgcHJveHkgJyA6ICcnfXRocm91Z2ggVENQOiAke3RoaXMuaG9zdH06JHt0aGlzLnBvcnR9YCk7XG4gICAgICB0aGlzLnNvY2tldCA9IG5ldyBuZXQuU29ja2V0KHt0eXBlOiAndGNwNid9KTtcbiAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QodGhpcy5wb3J0LCB0aGlzLmhvc3QpO1xuICAgIH1cblxuICAgIHRoaXMuc29ja2V0LnNldE5vRGVsYXkodHJ1ZSk7XG4gICAgdGhpcy5zb2NrZXQuc2V0S2VlcEFsaXZlKHRydWUpO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnRGVidWdnZXIgc29ja2V0IGRpc2Nvbm5lY3RlZCcpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIH0pO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRXZWJJbnNwZWN0b3JTZXJ2aWNlKHRoaXMudWRpZCwge1xuICAgICAgc29ja2V0OiB0aGlzLnNvY2tldCxcbiAgICAgIGlzU2ltdWxhdG9yOiB0cnVlLFxuICAgICAgb3NWZXJzaW9uOiB0aGlzLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgIHZlcmJvc2U6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbixcbiAgICAgIHZlcmJvc2VIZXhEdW1wOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLmxpc3Rlbk1lc3NhZ2UodGhpcy5yZWNlaXZlLmJpbmQodGhpcykpO1xuXG4gICAgLy8gY29ubmVjdCB0aGUgc29ja2V0XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIG9ubHkgcmVzb2x2ZSB0aGlzIGZ1bmN0aW9uIHdoZW4gd2UgYXJlIGFjdHVhbGx5IGNvbm5lY3RlZFxuICAgICAgdGhpcy5zb2NrZXQub24oJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgRGVidWdnZXIgc29ja2V0IGNvbm5lY3RlZGApO1xuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoYFNvY2tldCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGUgY29ubmVjdGlvbiB3YXMgcmVmdXNlZCwgc28gcmVqZWN0IHRoZSBjb25uZWN0IHByb21pc2VcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QgKCkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5kZWJ1ZygnRGlzY29ubmVjdGluZyBmcm9tIHJlbW90ZSBkZWJ1Z2dlcicpO1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZSAoY21kKSB7XG4gICAgbGV0IG9uU29ja2V0RXJyb3I7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gaGFuZGxlIHNvY2tldCBwcm9ibGVtc1xuICAgICAgb25Tb2NrZXRFcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgbG9nLmVycm9yKGBTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG5cbiAgICAgICAgLy8gdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQsIHNvIHJlamVjdCB0aGUgY29ubmVjdCBwcm9taXNlXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zb2NrZXQub24oJ2Vycm9yJywgb25Tb2NrZXRFcnJvcik7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE1lc3NhZ2UoY21kKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KVxuICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgIC8vIHJlbW92ZSB0aGlzIGxpc3RlbmVyLCBzbyB3ZSBkb24ndCBleGhhdXN0IHRoZSBzeXN0ZW1cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uU29ja2V0RXJyb3IpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVjZWl2ZSAoZGF0YSkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnV0lSTWVzc2FnZURhdGFLZXknLCAnV0lSRGVzdGluYXRpb25LZXknLCAnV0lSU29ja2V0RGF0YUtleSddKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQoZGF0YVtrZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBkYXRhW2tleV0udG9TdHJpbmcoJ3V0ZjgnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgdGhpcy5tZXNzYWdlSGFuZGxlci5oYW5kbGVNZXNzYWdlKGRhdGEpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR2UsTUFBTUEsa0JBQU4sU0FBaUNDLGtCQUFqQyxDQUEyQztFQUN4REMsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0lBQ3RCLE1BQU1DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQ2xCQyxvQkFBb0IsRUFBRTtJQURKLENBQWQsRUFFSEgsSUFGRyxDQUFOO0lBSUEsTUFBTTtNQUNKSSxVQURJO01BRUpDLElBQUksR0FBRyxLQUZIO01BR0pDLElBSEk7TUFJSkM7SUFKSSxJQUtGUCxJQUxKO0lBUUEsS0FBS0ssSUFBTCxHQUFZQSxJQUFaO0lBQ0EsS0FBS0MsSUFBTCxHQUFZQSxJQUFaO0lBQ0EsS0FBS0MsWUFBTCxHQUFvQkEsWUFBcEI7SUFFQSxLQUFLQyxNQUFMLEdBQWMsSUFBZDtJQUNBLEtBQUtKLFVBQUwsR0FBa0JBLFVBQWxCO0VBQ0Q7O0VBRVksTUFBUEssT0FBTyxHQUFJO0lBRWYsSUFBSSxLQUFLTCxVQUFULEVBQXFCO01BQ25CLElBQUksS0FBS0csWUFBVCxFQUF1QjtRQUVyQkcsZ0JBQUlDLEtBQUosQ0FBVyx3RUFBdUUsS0FBS0osWUFBYSxHQUFwRzs7UUFDQSxLQUFLQyxNQUFMLEdBQWNJLGFBQUlILE9BQUosQ0FBWSxLQUFLRixZQUFqQixDQUFkO1FBR0EsS0FBS0MsTUFBTCxDQUFZSyxJQUFaLENBQWlCLFNBQWpCLEVBQTRCLE1BQU07VUFDaENILGdCQUFJQyxLQUFKLENBQVcsNkRBQTRELEtBQUtQLFVBQVcsR0FBdkY7O1VBQ0EsS0FBS0ksTUFBTCxDQUFZTSxLQUFaLENBQWtCQyxJQUFJLENBQUNDLFNBQUwsQ0FBZTtZQUMvQlosVUFBVSxFQUFFLEtBQUtBO1VBRGMsQ0FBZixDQUFsQjtRQUdELENBTEQ7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
|
|
@@ -568,4 +568,4 @@ class RpcClient {
|
|
|
568
568
|
exports.default = RpcClient;require('source-map-support').install();
|
|
569
569
|
|
|
570
570
|
|
|
571
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ycGMvcnBjLWNsaWVudC5qcyJdLCJuYW1lcyI6WyJEQVRBX0xPR19MRU5HVEgiLCJsZW5ndGgiLCJXQUlUX0ZPUl9UQVJHRVRfVElNRU9VVCIsIldBSVRfRk9SX1RBUkdFVF9JTlRFUlZBTCIsIk1JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEIiwiTUlOX1BMQVRGT1JNX05PX1RBUkdFVF9FWElTVFMiLCJpc1RhcmdldEJhc2VkIiwiaXNTYWZhcmkiLCJwbGF0Zm9ybVZlcnNpb24iLCJpc0hpZ2hWZXJzaW9uIiwidXRpbCIsImNvbXBhcmVWZXJzaW9ucyIsImxvZyIsImRlYnVnIiwiUnBjQ2xpZW50IiwiY29uc3RydWN0b3IiLCJvcHRzIiwiX3RhcmdldHMiLCJfc2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJzaG91bGRDaGVja0ZvclRhcmdldCIsImJ1bmRsZUlkIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJzb2NrZXRDaHVua1NpemUiLCJmdWxsUGFnZUluaXRpYWxpemF0aW9uIiwiaXNDb25uZWN0ZWQiLCJjb25uSWQiLCJ1dWlkVjQiLCJzZW5kZXJJZCIsIm1zZ0lkIiwiX2NvbnRleHRzIiwiY29udGV4dHMiLCJuZWVkc1RhcmdldCIsInRhcmdldHMiLCJjb25uZWN0ZWQiLCJvbiIsImV2ZW50IiwibGlzdGVuZXIiLCJtZXNzYWdlSGFuZGxlciIsIm9uY2UiLCJvZmYiLCJ3YXJuIiwiX2lzVGFyZ2V0QmFzZWQiLCJyZW1vdGVNZXNzYWdlcyIsIlJlbW90ZU1lc3NhZ2VzIiwiUnBjTWVzc2FnZUhhbmRsZXIiLCJhZGRUYXJnZXQiLCJiaW5kIiwidXBkYXRlVGFyZ2V0IiwicmVtb3ZlVGFyZ2V0Iiwib25FeGVjdXRpb25Db250ZXh0Q3JlYXRlZCIsIm9uR2FyYmFnZUNvbGxlY3RlZCIsIndhaXRGb3JUYXJnZXQiLCJhcHBJZEtleSIsInBhZ2VJZEtleSIsImZvcmNlIiwiZ2V0VGFyZ2V0IiwiXyIsImlzRW1wdHkiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiZXJyb3IiLCJlcnIiLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJFcnJvciIsInNlbmQiLCJjb21tYW5kIiwid2FpdEZvclJlc3BvbnNlIiwidGltZXIiLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0Iiwic2VuZFRvRGV2aWNlIiwidG9Mb3dlckNhc2UiLCJpbmZvIiwiZ2V0RHVyYXRpb24iLCJhc01pbGxpU2Vjb25kcyIsInRvRml4ZWQiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsIndyYXBwZXJNc2dJZCIsInRvU3RyaW5nIiwidGFyZ2V0SWQiLCJmdWxsT3B0cyIsImRlZmF1bHRzIiwiaWQiLCJjbWQiLCJnZXRSZW1vdGVDb21tYW5kIiwiX19hcmd1bWVudCIsIldJUlNvY2tldERhdGFLZXkiLCJpc05pbCIsIkJ1ZmZlciIsImZyb20iLCJKU09OIiwic3RyaW5naWZ5IiwibWVzc2FnZUhhbmRsZWQiLCJ0cnVuY2F0ZSIsImxpc3RlbmVycyIsIl9fc2VsZWN0b3IiLCJwcmVwZW5kT25jZUxpc3RlbmVyIiwiYXJncyIsInZhbHVlIiwiY29kZSIsIm1zZyIsInJlcyIsInNlbmRNZXNzYWdlIiwiY29ubmVjdCIsImRpc2Nvbm5lY3QiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJyZWNlaXZlIiwiYXBwIiwidGFyZ2V0SW5mbyIsInBlbmRpbmdUYXJnZXROb3RpZmljYXRpb24iLCJpc1Byb3Zpc2lvbmFsIiwiaGFzIiwib2xkVGFyZ2V0SWQiLCJuZXdUYXJnZXRJZCIsInByb3Zpc2lvbmFsIiwicGFnZSIsInRvUGFpcnMiLCJzZWxlY3RQYWdlIiwic2VuZE9wdHMiLCJlbmFibGVkIiwiT2JqZWN0IiwiYXNzaWduIiwiaW5pdGlhbGl6ZVBhZ2VGdWxsIiwiaW5pdGlhbGl6ZVBhZ2UiLCJkaXNhYmxlZCIsImluc3RydW1lbnRzIiwiYWN0aXZlIiwic3RhdGUiLCJkZXB0aCIsInNob3VsZFBhdXNlIiwibG9nZ2luZ0NoYW5uZWxzIiwic291cmNlIiwiY2hhbm5lbHMiLCJtYXAiLCJlbnRyeSIsImxldmVsIiwic2VsZWN0QXBwIiwib25BcHBDaGFuZ2UiLCJkaWN0Iiwib2xkQXBwSWRLZXkiLCJXSVJIb3N0QXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwiY29ycmVjdEFwcElkS2V5IiwiV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwicGFnZURpY3QiLCJjb25uZWN0ZWRBcHBJZEtleSIsImNvbnRleHQiLCJwdXNoIiwib25TY3JpcHRQYXJzZWQiLCJzY3JpcHRJbmZvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLGVBQWUsR0FBRztBQUFDQyxFQUFBQSxNQUFNLEVBQUU7QUFBVCxDQUF4QjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHLEtBQWhDO0FBQ0EsTUFBTUMsd0JBQXdCLEdBQUcsSUFBakM7QUFFQSxNQUFNQyw2QkFBNkIsR0FBRyxNQUF0QztBQUdBLE1BQU1DLDZCQUE2QixHQUFHLE1BQXRDOztBQUVBLFNBQVNDLGFBQVQsQ0FBd0JDLFFBQXhCLEVBQWtDQyxlQUFsQyxFQUFtRDtBQUlqRCxRQUFNQyxhQUFhLEdBQUdDLGNBQUtDLGVBQUwsQ0FBcUJILGVBQXJCLEVBQXNDLElBQXRDLEVBQTRDSiw2QkFBNUMsQ0FBdEI7O0FBQ0FRLGtCQUFJQyxLQUFKLENBQVcsOENBQTZDTixRQUFRLEdBQUcsRUFBSCxHQUFRLE1BQU8sK0JBQThCQyxlQUFnQixJQUE3SDs7QUFDQUksa0JBQUlDLEtBQUosQ0FBVywwQ0FBeUNULDZCQUE4QixNQUFLSyxhQUFjLEVBQXJHOztBQUNBLFNBQU9BLGFBQVA7QUFDRDs7QUFFYyxNQUFNSyxTQUFOLENBQWdCO0FBQzdCQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7QUFDdEIsU0FBS0MsUUFBTCxHQUFnQixFQUFoQjtBQUNBLFNBQUtDLHFCQUFMLEdBQTZC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MUIsQ0FBdkM7QUFHRCxTQUpELENBSUUsT0FBT1MsR0FBUCxFQUFZO0FBQ1puRCwwQkFBSThCLElBQUosQ0FBVSw2QkFBNEJxQixHQUFHLENBQUNDLE9BQVEsRUFBbEQ7O0FBQ0FrQixVQUFBQSxNQUFNLENBQUNuQixHQUFELENBQU47QUFDRDs7QUFJRCxZQUFJTCxnQkFBRUMsT0FBRixDQUFVMEYsUUFBVixDQUFKLEVBQXlCO0FBQ3ZCLGNBQUkzQyxHQUFHLEdBQUcsZ0NBQVY7O0FBQ0E5RiwwQkFBSUMsS0FBSixDQUFVNkYsR0FBVjs7QUFDQXhCLFVBQUFBLE1BQU0sQ0FBQyxJQUFJaEIsS0FBSixDQUFVd0MsR0FBVixDQUFELENBQU47QUFDRCxTQUpELE1BSU87QUFDTHpCLFVBQUFBLE9BQU8sQ0FBQyxDQUFDcUUsaUJBQUQsRUFBb0JELFFBQXBCLENBQUQsQ0FBUDtBQUNEO0FBQ0YsT0FwQk0sR0FBUDtBQXFCRCxLQTdDWSxDQUFiO0FBOENEOztBQUVEbEcsRUFBQUEseUJBQXlCLENBQUVZLEdBQUYsRUFBT3dGLE9BQVAsRUFBZ0I7QUFJdkMsU0FBS3ZILFFBQUwsQ0FBY3dILElBQWQsQ0FBbUJELE9BQU8sQ0FBQy9ELEVBQTNCO0FBQ0Q7O0FBRURwQyxFQUFBQSxrQkFBa0IsR0FBSTtBQUVwQnhDLG9CQUFJQyxLQUFKLENBQVcsaUNBQVg7QUFDRDs7QUFFRDRJLEVBQUFBLGNBQWMsQ0FBRTFGLEdBQUYsRUFBTzJGLFVBQVAsRUFBbUI7QUFFL0I5SSxvQkFBSUMsS0FBSixDQUFXLGtCQUFpQm1GLElBQUksQ0FBQ0MsU0FBTCxDQUFleUQsVUFBZixDQUEyQixFQUF2RDtBQUNEOztBQWxpQjRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlbW90ZU1lc3NhZ2VzIGZyb20gJy4vcmVtb3RlLW1lc3NhZ2VzJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IFJwY01lc3NhZ2VIYW5kbGVyIGZyb20gJy4vcnBjLW1lc3NhZ2UtaGFuZGxlcic7XG5pbXBvcnQgeyB1dGlsLCB0aW1pbmcgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmNvbnN0IERBVEFfTE9HX0xFTkdUSCA9IHtsZW5ndGg6IDIwMH07XG5cbmNvbnN0IFdBSVRfRk9SX1RBUkdFVF9USU1FT1VUID0gMTAwMDA7XG5jb25zdCBXQUlUX0ZPUl9UQVJHRVRfSU5URVJWQUwgPSAxMDAwO1xuXG5jb25zdCBNSU5fUExBVEZPUk1fRk9SX1RBUkdFVF9CQVNFRCA9ICcxMi4yJztcblxuLy8gYFRhcmdldC5leGlzdHNgIHByb3RvY29sIG1ldGhvZCB3YXMgcmVtb3ZlZCBmcm9tIFdlYktpdGluIDEzLjRcbmNvbnN0IE1JTl9QTEFURk9STV9OT19UQVJHRVRfRVhJU1RTID0gJzEzLjQnO1xuXG5mdW5jdGlvbiBpc1RhcmdldEJhc2VkIChpc1NhZmFyaSwgcGxhdGZvcm1WZXJzaW9uKSB7XG4gIC8vIE9uIGlPUyAxMi4yIHRoZSBtZXNzYWdlcyBnZXQgc2VudCB0aHJvdWdoIHRoZSBUYXJnZXQgZG9tYWluXG4gIC8vIE9uIGlPUyAxMy4wKywgV0tXZWJWaWV3IGFsc28gbmVlZHMgdG8gZm9sbG93IHRoZSBUYXJnZXQgZG9tYWluLFxuICAvLyBzbyBoZXJlIG9ubHkgY2hlY2sgdGhlIHRhcmdldCBPUyB2ZXJzaW9uIGFzIHRoZSBkZWZhdWx0IGJlaGF2aW91ci5cbiAgY29uc3QgaXNIaWdoVmVyc2lvbiA9IHV0aWwuY29tcGFyZVZlcnNpb25zKHBsYXRmb3JtVmVyc2lvbiwgJz49JywgTUlOX1BMQVRGT1JNX0ZPUl9UQVJHRVRfQkFTRUQpO1xuICBsb2cuZGVidWcoYENoZWNraW5nIHdoaWNoIGNvbW11bmljYXRpb24gc3R5bGUgdG8gdXNlICgke2lzU2FmYXJpID8gJycgOiAnbm9uLSd9U2FmYXJpIG9uIHBsYXRmb3JtIHZlcnNpb24gJyR7cGxhdGZvcm1WZXJzaW9ufScpYCk7XG4gIGxvZy5kZWJ1ZyhgUGxhdGZvcm0gdmVyc2lvbiBlcXVhbCBvciBoaWdoZXIgdGhhbiAnJHtNSU5fUExBVEZPUk1fRk9SX1RBUkdFVF9CQVNFRH0nOiAke2lzSGlnaFZlcnNpb259YCk7XG4gIHJldHVybiBpc0hpZ2hWZXJzaW9uO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBScGNDbGllbnQge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgdGhpcy5fdGFyZ2V0cyA9IFtdO1xuICAgIHRoaXMuX3Nob3VsZENoZWNrRm9yVGFyZ2V0ID0gISFvcHRzLnNob3VsZENoZWNrRm9yVGFyZ2V0O1xuXG4gICAgY29uc3Qge1xuICAgICAgYnVuZGxlSWQsXG4gICAgICBwbGF0Zm9ybVZlcnNpb24gPSB7fSxcbiAgICAgIGlzU2FmYXJpID0gdHJ1ZSxcbiAgICAgIGxvZ0FsbENvbW11bmljYXRpb24gPSBmYWxzZSxcbiAgICAgIGxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wID0gZmFsc2UsXG4gICAgICB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCxcbiAgICAgIHNvY2tldENodW5rU2l6ZSxcbiAgICAgIGZ1bGxQYWdlSW5pdGlhbGl6YXRpb24gPSBmYWxzZSxcbiAgICB9ID0gb3B0cztcblxuICAgIHRoaXMuaXNTYWZhcmkgPSBpc1NhZmFyaTtcblxuICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmNvbm5JZCA9IHV0aWwudXVpZFY0KCk7XG4gICAgdGhpcy5zZW5kZXJJZCA9IHV0aWwudXVpZFY0KCk7XG4gICAgdGhpcy5tc2dJZCA9IDA7XG5cbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24gPSBsb2dBbGxDb21tdW5pY2F0aW9uO1xuICAgIHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgPSBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcDtcbiAgICB0aGlzLnNvY2tldENodW5rU2l6ZSA9IHNvY2tldENodW5rU2l6ZTtcbiAgICB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoID0gd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGg7XG5cbiAgICB0aGlzLmZ1bGxQYWdlSW5pdGlhbGl6YXRpb24gPSBmdWxsUGFnZUluaXRpYWxpemF0aW9uO1xuXG4gICAgdGhpcy5idW5kbGVJZCA9IGJ1bmRsZUlkO1xuICAgIHRoaXMucGxhdGZvcm1WZXJzaW9uID0gcGxhdGZvcm1WZXJzaW9uO1xuXG4gICAgdGhpcy5fY29udGV4dHMgPSBbXTtcbiAgICB0aGlzLl90YXJnZXRzID0ge307XG5cbiAgICAvLyBzdGFydCB3aXRoIGEgYmVzdCBndWVzcyBmb3IgdGhlIHByb3RvY29sXG4gICAgdGhpcy5pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZChpc1NhZmFyaSwgdGhpcy5wbGF0Zm9ybVZlcnNpb24pO1xuICB9XG5cbiAgZ2V0IGNvbnRleHRzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dHM7XG4gIH1cblxuICBnZXQgbmVlZHNUYXJnZXQgKCkge1xuICAgIHJldHVybiB0aGlzLnNob3VsZENoZWNrRm9yVGFyZ2V0ICYmIHRoaXMuaXNUYXJnZXRCYXNlZDtcbiAgfVxuXG4gIGdldCB0YXJnZXRzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0cztcbiAgfVxuXG4gIGdldCBzaG91bGRDaGVja0ZvclRhcmdldCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB9XG5cbiAgc2V0IHNob3VsZENoZWNrRm9yVGFyZ2V0IChzaG91bGRDaGVja0ZvclRhcmdldCkge1xuICAgIHRoaXMuX3Nob3VsZENoZWNrRm9yVGFyZ2V0ID0gISFzaG91bGRDaGVja0ZvclRhcmdldDtcbiAgfVxuXG4gIGdldCBpc0Nvbm5lY3RlZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGVkO1xuICB9XG5cbiAgc2V0IGlzQ29ubmVjdGVkIChjb25uZWN0ZWQpIHtcbiAgICB0aGlzLmNvbm5lY3RlZCA9ICEhY29ubmVjdGVkO1xuICB9XG5cbiAgb24gKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24oZXZlbnQsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9uY2UgKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub25jZShldmVudCwgbGlzdGVuZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb2ZmIChldmVudCwgbGlzdGVuZXIpIHtcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9mZihldmVudCwgbGlzdGVuZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0IGlzVGFyZ2V0QmFzZWQgKGlzVGFyZ2V0QmFzZWQpIHtcbiAgICBsb2cud2FybihgU2V0dGluZyBjb21tdW5pY2F0aW9uIHByb3RvY29sOiB1c2luZyAke2lzVGFyZ2V0QmFzZWQgPyAnVGFyZ2V0LWJhc2VkJyA6ICdmdWxsIFdlYiBJbnNwZWN0b3IgcHJvdG9jb2wnfSBjb21tdW5pY2F0aW9uYCk7XG4gICAgdGhpcy5faXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG5cbiAgICBpZiAoIXRoaXMucmVtb3RlTWVzc2FnZXMpIHtcbiAgICAgIHRoaXMucmVtb3RlTWVzc2FnZXMgPSBuZXcgUmVtb3RlTWVzc2FnZXMoaXNUYXJnZXRCYXNlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3RlTWVzc2FnZXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyID0gbmV3IFJwY01lc3NhZ2VIYW5kbGVyKGlzVGFyZ2V0QmFzZWQpO1xuXG4gICAgICAvLyBhZGQgaGFuZGxlcnMgZm9yIGludGVybmFsIGV2ZW50c1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignVGFyZ2V0LnRhcmdldENyZWF0ZWQnLCB0aGlzLmFkZFRhcmdldC5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24oJ1RhcmdldC5kaWRDb21taXRQcm92aXNpb25hbFRhcmdldCcsIHRoaXMudXBkYXRlVGFyZ2V0LmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignVGFyZ2V0LnRhcmdldERlc3Ryb3llZCcsIHRoaXMucmVtb3ZlVGFyZ2V0LmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCcsIHRoaXMub25FeGVjdXRpb25Db250ZXh0Q3JlYXRlZC5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24oJ0hlYXAuZ2FyYmFnZUNvbGxlY3RlZCcsIHRoaXMub25HYXJiYWdlQ29sbGVjdGVkLmJpbmQodGhpcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLmlzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc1RhcmdldEJhc2VkICgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNUYXJnZXRCYXNlZDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JUYXJnZXQgKGFwcElkS2V5LCBwYWdlSWRLZXksIGZvcmNlID0gZmFsc2UpIHtcbiAgICBpZiAoIWZvcmNlICYmICF0aGlzLm5lZWRzVGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0VGFyZ2V0KGFwcElkS2V5LCBwYWdlSWRLZXkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlIHdhaXRpbmcgaXMgbmVjZXNzYXJ5IHRvIHNlZSB3aGF0IHRoZSB0YXJnZXQgaXNcbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiAhXy5pc0VtcHR5KHRoaXMuZ2V0VGFyZ2V0KGFwcElkS2V5LCBwYWdlSWRLZXkpKSwge1xuICAgICAgICB3YWl0TXM6IFdBSVRfRk9SX1RBUkdFVF9USU1FT1VULFxuICAgICAgICBpbnRlcnZhbE1zOiBXQUlUX0ZPUl9UQVJHRVRfSU5URVJWQUwsXG4gICAgICAgIGVycm9yOiAnTm8gdGFyZ2V0cyBmb3VuZCwgdW5hYmxlIHRvIGNvbW11bmljYXRlIHdpdGggZGV2aWNlJyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKCFlcnIubWVzc2FnZS5pbmNsdWRlcygnQ29uZGl0aW9uIHVubWV0JykpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB0YXJnZXRzIGZvdW5kLCB1bmFibGUgdG8gY29tbXVuaWNhdGUgd2l0aCBkZXZpY2UnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZW5kIChjb21tYW5kLCBvcHRzID0ge30sIHdhaXRGb3JSZXNwb25zZSA9IHRydWUpIHtcbiAgICBjb25zdCB0aW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICAgIGNvbnN0IHtcbiAgICAgIGFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5XG4gICAgfSA9IG9wdHM7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghXy5pc0VtcHR5KGFwcElkS2V5KSAmJiAhXy5pc0VtcHR5KHBhZ2VJZEtleSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGFyZ2V0KGFwcElkS2V5LCBwYWdlSWRLZXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZFRvRGV2aWNlKGNvbW1hbmQsIG9wdHMsIHdhaXRGb3JSZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsZXQgeyBtZXNzYWdlID0gJycgfSA9IGVycjtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobWVzc2FnZS5pbmNsdWRlcyhgJ3RhcmdldCcgZG9tYWluIHdhcyBub3QgZm91bmRgKSkge1xuICAgICAgICBsb2cuaW5mbygnVGhlIHRhcmdldCBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBUYXJnZXQgYmFzZWQgY29tbXVuaWNhdGlvbi4gJyArXG4gICAgICAgICAgJ1dpbGwgZm9sbG93IG5vbi10YXJnZXQgYmFzZWQgY29tbXVuaWNhdGlvbi4nKTtcbiAgICAgICAgdGhpcy5pc1RhcmdldEJhc2VkID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmRUb0RldmljZShjb21tYW5kLCBvcHRzLCB3YWl0Rm9yUmVzcG9uc2UpO1xuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluY2x1ZGVzKGBkb21haW4gd2FzIG5vdCBmb3VuZGApIHx8XG4gICAgICAgICAgbWVzc2FnZS5pbmNsdWRlcyhgc29tZSBhcmd1bWVudHMgb2YgbWV0aG9kYCkgfHxcbiAgICAgICAgICBtZXNzYWdlLmluY2x1ZGVzKGBtaXNzaW5nIHRhcmdldGApKSB7XG4gICAgICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IHRydWU7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRhcmdldChhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZFRvRGV2aWNlKGNvbW1hbmQsIG9wdHMsIHdhaXRGb3JSZXNwb25zZSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGxvZy5kZWJ1ZyhgU2VuZGluZyB0byBXZWIgSW5zcGVjdG9yIHRvb2sgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZW5kVG9EZXZpY2UgKGNvbW1hbmQsIG9wdHMgPSB7fSwgd2FpdEZvclJlc3BvbnNlID0gdHJ1ZSkge1xuICAgIHJldHVybiBhd2FpdCBuZXcgQihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBwcm9taXNlIHRvIGJlIHJlc29sdmVkIHdoZW5ldmVyIHJlbW90ZSBkZWJ1Z2dlclxuICAgICAgLy8gcmVwbGllcyB0byBvdXIgcmVxdWVzdFxuXG4gICAgICAvLyBrZWVwIHRyYWNrIG9mIHRoZSBtZXNzYWdlcyBjb21pbmcgYW5kIGdvaW5nIHVzaW5nIGEgc2ltcGxlIHNlcXVlbnRpYWwgaWRcbiAgICAgIGNvbnN0IG1zZ0lkID0gdGhpcy5tc2dJZCsrO1xuICAgICAgbGV0IHdyYXBwZXJNc2dJZCA9IG1zZ0lkO1xuICAgICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgICAvLyBmb3IgdGFyZ2V0LWJhc2UgY29tbXVuaWNhdGlvbiwgZXZlcnl0aGluZyBpcyB3cmFwcGVkIHVwXG4gICAgICAgIHdyYXBwZXJNc2dJZCA9IHRoaXMubXNnSWQrKztcbiAgICAgICAgLy8gYWNrbm93bGVkZ2Ugd3JhcHBlciBtZXNzYWdlXG4gICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24od3JhcHBlck1zZ0lkLnRvU3RyaW5nKCksIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhcHBJZEtleSA9IG9wdHMuYXBwSWRLZXk7XG4gICAgICBjb25zdCBwYWdlSWRLZXkgPSBvcHRzLnBhZ2VJZEtleTtcbiAgICAgIGNvbnN0IHRhcmdldElkID0gdGhpcy5nZXRUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG5cbiAgICAgIC8vIHJldHJpZXZlIHRoZSBjb3JyZWN0IGNvbW1hbmQgdG8gc2VuZFxuICAgICAgY29uc3QgZnVsbE9wdHMgPSBfLmRlZmF1bHRzKHtcbiAgICAgICAgY29ubklkOiB0aGlzLmNvbm5JZCxcbiAgICAgICAgc2VuZGVySWQ6IHRoaXMuc2VuZGVySWQsXG4gICAgICAgIHRhcmdldElkLFxuICAgICAgICBpZDogbXNnSWQsXG4gICAgICB9LCBvcHRzKTtcbiAgICAgIGNvbnN0IGNtZCA9IHRoaXMucmVtb3RlTWVzc2FnZXMuZ2V0UmVtb3RlQ29tbWFuZChjb21tYW5kLCBmdWxsT3B0cyk7XG5cbiAgICAgIGlmIChjbWQ/Ll9fYXJndW1lbnQ/LldJUlNvY2tldERhdGFLZXkpIHtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBtZXNzYWdlIGJlaW5nIHNlbnQgaGFzIGFsbCB0aGUgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWRcbiAgICAgICAgaWYgKF8uaXNOaWwoY21kLl9fYXJndW1lbnQuV0lSU29ja2V0RGF0YUtleS5pZCkpIHtcbiAgICAgICAgICBjbWQuX19hcmd1bWVudC5XSVJTb2NrZXREYXRhS2V5LmlkID0gd3JhcHBlck1zZ0lkO1xuICAgICAgICB9XG4gICAgICAgIGNtZC5fX2FyZ3VtZW50LldJUlNvY2tldERhdGFLZXkgPVxuICAgICAgICAgIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGNtZC5fX2FyZ3VtZW50LldJUlNvY2tldERhdGFLZXkpKTtcbiAgICAgIH1cblxuICAgICAgbGV0IG1lc3NhZ2VIYW5kbGVkID0gdHJ1ZTtcbiAgICAgIGlmICghd2FpdEZvclJlc3BvbnNlKSB7XG4gICAgICAgIC8vIHRoZSBwcm9taXNlIHdpbGwgYmUgcmVzb2x2ZWQgYXMgc29vbiBhcyB0aGUgc29ja2V0IGhhcyBiZWVuIHNlbnRcbiAgICAgICAgbWVzc2FnZUhhbmRsZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gZG8gbm90IGxvZyByZWNlaXB0c1xuICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uY2UobXNnSWQudG9TdHJpbmcoKSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIC8vIHdlIGFyZSBub3Qgd2FpdGluZyBmb3IgdGhpcywgYW5kIGlmIGl0IGVycm9ycyBpdCBpcyBtb3N0IGxpa2VseVxuICAgICAgICAgICAgLy8gYSBwcm90b2NvbCBjaGFuZ2UuIExvZyBhbmQgY2hlY2sgZHVyaW5nIHRlc3RpbmdcbiAgICAgICAgICAgIGxvZy5lcnJvcihgUmVjZWl2ZWQgZXJyb3IgZnJvbSBzZW5kIHRoYXQgaXMgbm90IGJlaW5nIHdhaXRlZCBmb3IgKGlkOiAke21zZ0lkfSk6ICcke18udHJ1bmNhdGUoSlNPTi5zdHJpbmdpZnkoZXJyKSwgREFUQV9MT0dfTEVOR1RIKX0nYCk7XG4gICAgICAgICAgICAvLyByZWplY3QsIHRob3VnaCBpdCBpcyB2ZXJ5IHJhcmUgdGhhdCB0aGlzIHdpbGwgYmUgdHJpZ2dlcmVkLCBzaW5jZVxuICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgZGlyZWN0bHR5IGFmdGVyIHNlbmQuIE9uIHRoZSBvZmYgY2hhbmNlLFxuICAgICAgICAgICAgLy8gdGhvdWdoLCBpdCB3aWxsIGFsZXJ0IG9mIGEgcHJvdG9jb2wgY2hhbmdlLlxuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5tZXNzYWdlSGFuZGxlci5saXN0ZW5lcnMoY21kLl9fc2VsZWN0b3IpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLnByZXBlbmRPbmNlTGlzdGVuZXIoY21kLl9fc2VsZWN0b3IsIGZ1bmN0aW9uIChlcnIsIC4uLmFyZ3MpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgcmVzcG9uc2UgZnJvbSBzZW5kIChpZDogJHttc2dJZH0pOiAnJHtfLnRydW5jYXRlKEpTT04uc3RyaW5naWZ5KGFyZ3MpLCBEQVRBX0xPR19MRU5HVEgpfSdgKTtcbiAgICAgICAgICByZXNvbHZlKGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY21kPy5fX2FyZ3VtZW50Py5XSVJTb2NrZXREYXRhS2V5KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub25jZShtc2dJZC50b1N0cmluZygpLCBmdW5jdGlvbiAoZXJyLCB2YWx1ZSkge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEVycm9yKGBSZW1vdGUgZGVidWdnZXIgZXJyb3Igd2l0aCBjb2RlICcke2Vyci5jb2RlfSc6ICR7ZXJyLm1lc3NhZ2V9YCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuZGVidWcoYFJlY2VpdmVkIGRhdGEgcmVzcG9uc2UgZnJvbSBzZW5kIChpZDogJHttc2dJZH0pOiAnJHtfLnRydW5jYXRlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgREFUQV9MT0dfTEVOR1RIKX0nYCk7XG4gICAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbm90aGluZyBlbHNlIGlzIGhhbmRsaW5nIHRoaW5ncywgc28ganVzdCByZXNvbHZlIHdoZW4gdGhlIG1lc3NhZ2UgaXMgc2VudFxuICAgICAgICBtZXNzYWdlSGFuZGxlZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtc2cgPSBgU2VuZGluZyAnJHtjbWQuX19zZWxlY3Rvcn0nIG1lc3NhZ2VgICtcbiAgICAgICAgKGZ1bGxPcHRzLmFwcElkS2V5ID8gYCB0byBhcHAgJyR7ZnVsbE9wdHMuYXBwSWRLZXl9J2AgOiAnJykgK1xuICAgICAgICAoZnVsbE9wdHMucGFnZUlkS2V5ID8gYCwgcGFnZSAnJHtmdWxsT3B0cy5wYWdlSWRLZXl9J2AgOiAnJykgK1xuICAgICAgICAodGhpcy5uZWVkc1RhcmdldCAmJiB0YXJnZXRJZCA/IGAsIHRhcmdldCAnJHt0YXJnZXRJZH0nYCA6ICcnKSArXG4gICAgICAgIGAgKGlkOiAke21zZ0lkfSk6ICcke2NvbW1hbmR9J2A7XG4gICAgICBsb2cuZGVidWcobXNnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VuZE1lc3NhZ2UoY21kKTtcbiAgICAgICAgaWYgKCFtZXNzYWdlSGFuZGxlZCkge1xuICAgICAgICAgIC8vIFRoZXJlIGFyZSBubyBoYW5kbGVycyB3YWl0aW5nIGZvciBhIHJlc3BvbnNlIGJlZm9yZSByZXNvbHZpbmcsXG4gICAgICAgICAgLy8gYW5kIG5vIGVycm9ycyBzZW5kaW5nIHRoZSBtZXNzYWdlIG92ZXIgdGhlIHNvY2tldCwgc28gcmVzb2x2ZVxuICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbm5lY3QgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFN1Yi1jbGFzc2VzIG5lZWQgdG8gaW1wbGVtZW50IGEgJ2Nvbm5lY3QnIGZ1bmN0aW9uYCk7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlci5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlICgvKiBjb21tYW5kICovKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHRocm93IG5ldyBFcnJvcihgU3ViLWNsYXNzZXMgbmVlZCB0byBpbXBsZW1lbnQgYSAnc2VuZE1lc3NhZ2UnIGZ1bmN0aW9uYCk7XG4gIH1cblxuICBhc3luYyByZWNlaXZlICgvKiBkYXRhICovKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHRocm93IG5ldyBFcnJvcihgU3ViLWNsYXNzZXMgbmVlZCB0byBpbXBsZW1lbnQgYSAncmVjZWl2ZScgZnVuY3Rpb25gKTtcbiAgfVxuXG4gIGFkZFRhcmdldCAoZXJyLCBhcHAsIHRhcmdldEluZm8pIHtcbiAgICBpZiAoXy5pc05pbCh0YXJnZXRJbmZvPy50YXJnZXRJZCkpIHtcbiAgICAgIGxvZy53YXJuKGBSZWNlaXZlZCAnVGFyZ2V0LnRhcmdldENyZWF0ZWQnIGV2ZW50IGZvciBhcHAgJyR7YXBwfScgd2l0aCBubyB0YXJnZXQuIFNraXBwaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChfLmlzRW1wdHkodGhpcy5wZW5kaW5nVGFyZ2V0Tm90aWZpY2F0aW9uKSAmJiAhdGFyZ2V0SW5mby5pc1Byb3Zpc2lvbmFsKSB7XG4gICAgICBsb2cud2FybihgUmVjZWl2ZWQgJ1RhcmdldC50YXJnZXRDcmVhdGVkJyBldmVudCBmb3IgYXBwICcke2FwcH0nIHdpdGggbm8gcGVuZGluZyByZXF1ZXN0OiAke0pTT04uc3RyaW5naWZ5KHRhcmdldEluZm8pfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXRJbmZvLmlzUHJvdmlzaW9uYWwpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUHJvdmlzaW9uYWwgdGFyZ2V0IGNyZWF0ZWQgZm9yIGFwcCAnJHthcHB9JywgJyR7dGFyZ2V0SW5mby50YXJnZXRJZH0nLiBJZ25vcmluZyB1bnRpbCB0YXJnZXQgdXBkYXRlIGV2ZW50YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgW2FwcElkS2V5LCBwYWdlSWRLZXldID0gdGhpcy5wZW5kaW5nVGFyZ2V0Tm90aWZpY2F0aW9uO1xuXG4gICAgbG9nLmRlYnVnKGBUYXJnZXQgY3JlYXRlZCBmb3IgYXBwICcke2FwcElkS2V5fScgYW5kIHBhZ2UgJyR7cGFnZUlkS2V5fSc6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0SW5mbyl9YCk7XG4gICAgaWYgKF8uaGFzKHRoaXMudGFyZ2V0c1thcHBJZEtleV0sIHBhZ2VJZEtleSkpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgVGhlcmUgaXMgYWxyZWFkeSBhIHRhcmdldCBmb3IgdGhpcyBhcHAgYW5kIHBhZ2UgKCcke3RoaXMudGFyZ2V0c1thcHBJZEtleV1bcGFnZUlkS2V5XX0nKS4gVGhpcyBtaWdodCBjYXVzZSBwcm9ibGVtc2ApO1xuICAgIH1cbiAgICB0aGlzLnRhcmdldHNbYXBwXSA9IHRoaXMudGFyZ2V0c1thcHBdIHx8IHt9O1xuICAgIHRoaXMudGFyZ2V0c1thcHBJZEtleV1bcGFnZUlkS2V5XSA9IHRhcmdldEluZm8udGFyZ2V0SWQ7XG4gIH1cblxuICB1cGRhdGVUYXJnZXQgKGVyciwgYXBwLCBvbGRUYXJnZXRJZCwgbmV3VGFyZ2V0SWQpIHtcbiAgICBsb2cuZGVidWcoYFRhcmdldCB1cGRhdGVkIGZvciBhcHAgJyR7YXBwfScuIE9sZCB0YXJnZXQ6ICcke29sZFRhcmdldElkfScsIG5ldyB0YXJnZXQ6ICcke25ld1RhcmdldElkfSdgKTtcbiAgICBpZiAoIXRoaXMudGFyZ2V0c1thcHBdKSB7XG4gICAgICBsb2cud2FybihgTm8gZXhpc3RpbmcgdGFyZ2V0IGZvciBhcHAgJyR7YXBwfScuIE5vdCBzdXJlIHdoYXQgdG8gZG9gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gc2F2ZSB0aGlzLCB0byBiZSB1c2VkIGlmL3doZW4gdGhlIGV4aXN0aW5nIHRhcmdldCBpcyBkZXN0cm95ZWRcbiAgICB0aGlzLnRhcmdldHNbYXBwXS5wcm92aXNpb25hbCA9IHtcbiAgICAgIG9sZFRhcmdldElkLFxuICAgICAgbmV3VGFyZ2V0SWQsXG4gICAgfTtcbiAgfVxuXG4gIHJlbW92ZVRhcmdldCAoZXJyLCBhcHAsIHRhcmdldEluZm8pIHtcbiAgICBpZiAoXy5pc05pbCh0YXJnZXRJbmZvPy50YXJnZXRJZCkpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgJ1RhcmdldC50YXJnZXREZXN0cm95ZWQnIGV2ZW50IHdpdGggbm8gdGFyZ2V0LiBTa2lwcGluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5kZWJ1ZyhgVGFyZ2V0IGRlc3Ryb3llZCBmb3IgYXBwICcke2FwcH0nOiAke3RhcmdldEluZm8udGFyZ2V0SWR9YCk7XG5cbiAgICAvLyBnbyB0aHJvdWdoIHRoZSB0YXJnZXRzIGFuZCBmaW5kIHRoZSBvbmUgdGhhdCBoYXMgYSB3YWl0aW5nIHByb3Zpc2lvbmFsIHRhcmdldFxuICAgIGlmICh0aGlzLnRhcmdldHNbYXBwXT8ucHJvdmlzaW9uYWw/Lm9sZFRhcmdldElkID09PSB0YXJnZXRJbmZvLnRhcmdldElkKSB7XG4gICAgICBjb25zdCB7b2xkVGFyZ2V0SWQsIG5ld1RhcmdldElkfSA9IHRoaXMudGFyZ2V0c1thcHBdLnByb3Zpc2lvbmFsO1xuICAgICAgZGVsZXRlIHRoaXMudGFyZ2V0c1thcHBdLnByb3Zpc2lvbmFsO1xuXG4gICAgICAvLyB3ZSBkbyBub3Qga25vdyB0aGUgcGFnZSwgc28gZ28gdGhyb3VnaCBhbmQgZmluZCB0aGUgZXhpc3RpbmcgdGFyZ2V0XG4gICAgICBjb25zdCB0YXJnZXRzID0gdGhpcy50YXJnZXRzW2FwcF07XG4gICAgICBmb3IgKGNvbnN0IFtwYWdlLCB0YXJnZXRJZF0gb2YgXy50b1BhaXJzKHRhcmdldHMpKSB7XG4gICAgICAgIGlmICh0YXJnZXRJZCA9PT0gb2xkVGFyZ2V0SWQpIHtcbiAgICAgICAgICBsb2cuZGVidWcoYEZvdW5kIHByb3Zpc2lvbmFsIHRhcmdldCBmb3IgYXBwICcke2FwcH0nLiBPbGQgdGFyZ2V0OiAnJHtvbGRUYXJnZXRJZH0nLCBuZXcgdGFyZ2V0OiAnJHtuZXdUYXJnZXRJZH0nLiBVcGRhdGluZ2ApO1xuICAgICAgICAgIHRhcmdldHNbcGFnZV0gPSBuZXdUYXJnZXRJZDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxvZy53YXJuKGBQcm92aXNpb25hbCB0YXJnZXQgZm9yIGFwcCAnJHthcHB9JyBmb3VuZCwgYnV0IG5vIHN1aXRhYmxlIGV4aXN0aW5nIHRhcmdldCBmb3VuZC4gVGhpcyBtYXkgY2F1c2UgcHJvYmxlbXNgKTtcbiAgICAgIGxvZy53YXJuKGBPbGQgdGFyZ2V0OiAnJHtvbGRUYXJnZXRJZH0nLCBuZXcgdGFyZ2V0OiAnJHtuZXdUYXJnZXRJZH0nLiBFeGlzdGluZyB0YXJnZXRzOiAke0pTT04uc3RyaW5naWZ5KHRhcmdldHMpfWApO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZXJlIGlzIG5vIHdhaXRpbmcgcHJvdmlzaW9uYWwgdGFyZ2V0LCBqdXN0IGdldCByaWQgb2YgdGhlIGV4aXN0aW5nIG9uZVxuICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnRhcmdldHNbYXBwXTtcbiAgICBmb3IgKGNvbnN0IFtwYWdlLCB0YXJnZXRJZF0gb2YgXy50b1BhaXJzKHRhcmdldHMpKSB7XG4gICAgICBpZiAodGFyZ2V0SWQgPT09IHRhcmdldEluZm8udGFyZ2V0SWQpIHtcbiAgICAgICAgZGVsZXRlIHRhcmdldHNbcGFnZV07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgbG9nLmRlYnVnKGBUYXJnZXQgJyR7dGFyZ2V0SW5mby50YXJnZXRJZH0nIGRlbGV0ZWQgZm9yIGFwcCAnJHthcHB9JywgYnV0IG5vIHN1Y2ggdGFyZ2V0IGV4aXN0c2ApO1xuICB9XG5cbiAgZ2V0VGFyZ2V0IChhcHBJZEtleSwgcGFnZUlkS2V5KSB7XG4gICAgcmV0dXJuICh0aGlzLnRhcmdldHNbYXBwSWRLZXldIHx8IHt9KVtwYWdlSWRLZXldO1xuICB9XG5cbiAgYXN5bmMgc2VsZWN0UGFnZSAoYXBwSWRLZXksIHBhZ2VJZEtleSkge1xuICAgIHRoaXMucGVuZGluZ1RhcmdldE5vdGlmaWNhdGlvbiA9IFthcHBJZEtleSwgcGFnZUlkS2V5XTtcbiAgICB0aGlzLnNob3VsZENoZWNrRm9yVGFyZ2V0ID0gZmFsc2U7XG5cbiAgICAvLyBnbyB0aHJvdWdoIHRoZSBzdGVwcyB0aGF0IHRoZSBEZXNrdG9wIFNhZmFyaSBzeXN0ZW1cbiAgICAvLyBnb2VzIHRocm91Z2ggdG8gaW5pdGlhbGl6ZSB0aGUgV2ViIEluc3BlY3RvciBzZXNzaW9uXG5cbiAgICBjb25zdCBzZW5kT3B0cyA9IHtcbiAgICAgIGFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5LFxuICAgIH07XG5cbiAgICAvLyBoaWdobGlnaHQgYW5kIHRoZW4gdW4taGlnaGxpZ2h0IHRoZSB3ZWJ2aWV3XG4gICAgZm9yIChjb25zdCBlbmFibGVkIG9mIFt0cnVlLCBmYWxzZV0pIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZCgnaW5kaWNhdGVXZWJWaWV3JywgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIGVuYWJsZWQsXG4gICAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNlbmQoJ3NldFNlbmRlcktleScsIHNlbmRPcHRzKTtcbiAgICBsb2cuZGVidWcoJ1NlbmRlciBrZXkgc2V0Jyk7XG5cbiAgICBpZiAodGhpcy5pc1RhcmdldEJhc2VkICYmIHV0aWwuY29tcGFyZVZlcnNpb25zKHRoaXMucGxhdGZvcm1WZXJzaW9uLCAnPCcsIE1JTl9QTEFURk9STV9OT19UQVJHRVRfRVhJU1RTKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kKCdUYXJnZXQuZXhpc3RzJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNob3VsZENoZWNrRm9yVGFyZ2V0ID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmZ1bGxQYWdlSW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVBhZ2VGdWxsKGFwcElkS2V5LCBwYWdlSWRLZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQYWdlKGFwcElkS2V5LCBwYWdlSWRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIFBlcmZvcm0gdGhlIG1pbmltYWwgaW5pdGlhbGl6YXRpb24gdG8gZ2V0IHRoZSBXZWIgSW5zcGVjdG9yIHdvcmtpbmdcbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVQYWdlIChhcHBJZEtleSwgcGFnZUlkS2V5KSB7XG4gICAgY29uc3Qgc2VuZE9wdHMgPSB7XG4gICAgICBhcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICB9O1xuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdJbnNwZWN0b3IuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1BhZ2UuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcblxuICAgIC8vIGdvIHRocm91Z2ggdGhlIHRhc2tzIHRvIGluaXRpYWxpemVcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ05ldHdvcmsuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1J1bnRpbWUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0hlYXAuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdDb25zb2xlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdJbnNwZWN0b3IuaW5pdGlhbGl6ZWQnLCBzZW5kT3B0cywgZmFsc2UpO1xuICB9XG5cbiAgLypcbiAgICogTWltaWMgZXZlcnkgc3RlcCB0aGF0IERlc2t0b3AgU2FmYXJpIERldmVsb3AgdG9vbHMgdXNlcyB0byBpbml0aWFsaXplIGFcbiAgICogV2ViIEluc3BlY3RvciBzZXNzaW9uXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplUGFnZUZ1bGwgKGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICBjb25zdCBzZW5kT3B0cyA9IHtcbiAgICAgIGFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5LFxuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luc3BlY3Rvci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnUGFnZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuXG4gICAgLy8gZ28gdGhyb3VnaCB0aGUgdGFza3MgdG8gaW5pdGlhbGl6ZVxuICAgIGF3YWl0IHRoaXMuc2VuZCgnUGFnZS5nZXRSZXNvdXJjZVRyZWUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnTmV0d29yay5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnTmV0d29yay5zZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCcsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRE9NU3RvcmFnZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGF0YWJhc2UuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luZGV4ZWREQi5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQ1NTLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdSdW50aW1lLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdIZWFwLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdNZW1vcnkuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0FwcGxpY2F0aW9uQ2FjaGUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0FwcGxpY2F0aW9uQ2FjaGUuZ2V0RnJhbWVzV2l0aE1hbmlmZXN0cycsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdUaW1lbGluZS5zZXRJbnN0cnVtZW50cycsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgaW5zdHJ1bWVudHM6IFsnVGltZWxpbmUnLCAnU2NyaXB0UHJvZmlsZXInLCAnQ1BVJ10sXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdUaW1lbGluZS5zZXRBdXRvQ2FwdHVyZUVuYWJsZWQnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0aXZlJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucycsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgc3RhdGU6ICdub25lJyxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLnNldFBhdXNlT25Bc3NlcnRpb25zJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLnNldEFzeW5jU3RhY2tUcmFjZURlcHRoJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBkZXB0aDogMjAwLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0UGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIHNob3VsZFBhdXNlOiBmYWxzZSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnTGF5ZXJUcmVlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdXb3JrZXIuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0NhbnZhcy5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQ29uc29sZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRE9NLmdldERvY3VtZW50Jywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBjb25zdCBsb2dnaW5nQ2hhbm5lbHMgPSBhd2FpdCB0aGlzLnNlbmQoJ0NvbnNvbGUuZ2V0TG9nZ2luZ0NoYW5uZWxzJywgc2VuZE9wdHMpO1xuICAgIGZvciAoY29uc3Qgc291cmNlIG9mIChsb2dnaW5nQ2hhbm5lbHMuY2hhbm5lbHMgfHwgW10pLm1hcCgoZW50cnkpID0+IGVudHJ5LnNvdXJjZSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZCgnQ29uc29sZS5zZXRMb2dnaW5nQ2hhbm5lbExldmVsJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgbGV2ZWw6ICd2ZXJib3NlJyxcbiAgICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5zcGVjdG9yLmluaXRpYWxpemVkJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgfVxuXG4gIGFzeW5jIHNlbGVjdEFwcCAoYXBwSWRLZXkpIHtcbiAgICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gbG9jYWwgY2FsbGJhY2ssIHRlbXBvcmFyaWx5IGFkZGVkIGFzIGNhbGxiYWNrIHRvXG4gICAgICAvLyBgX3JwY19hcHBsaWNhdGlvbkNvbm5lY3RlZDpgIHJlbW90ZSBkZWJ1Z2dlciByZXNwb25zZVxuICAgICAgLy8gdG8gaGFuZGxlIHRoZSBpbml0aWFsIGNvbm5lY3Rpb25cbiAgICAgIGNvbnN0IG9uQXBwQ2hhbmdlID0gKGVyciwgZGljdCkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGZyb20gdGhlIGRpY3Rpb25hcnkgcmV0dXJuZWQsIGdldCB0aGUgaWRzXG4gICAgICAgIGNvbnN0IG9sZEFwcElkS2V5ID0gZGljdC5XSVJIb3N0QXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICAgICAgICBjb25zdCBjb3JyZWN0QXBwSWRLZXkgPSBkaWN0LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcblxuICAgICAgICAvLyBpZiB0aGlzIGlzIGEgcmVwb3J0IG9mIGEgcHJveHkgcmVkaXJlY3QgZnJvbSB0aGUgcmVtb3RlIGRlYnVnZ2VyXG4gICAgICAgIC8vIHdlIHdhbnQgdG8gdXBkYXRlIG91ciBkaWN0aW9uYXJ5IGFuZCBnZXQgYSBuZXcgYXBwIGlkXG4gICAgICAgIGlmIChvbGRBcHBJZEtleSAmJiBjb3JyZWN0QXBwSWRLZXkgIT09IG9sZEFwcElkS2V5KSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBXZSB3ZXJlIG5vdGlmaWVkIHdlIG1pZ2h0IGhhdmUgY29ubmVjdGVkIHRvIHRoZSB3cm9uZyBhcHAuIGAgK1xuICAgICAgICAgICAgICAgICAgICBgVXNpbmcgaWQgJHtjb3JyZWN0QXBwSWRLZXl9IGluc3RlYWQgb2YgJHtvbGRBcHBJZEtleX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ05ldyBhcHBsaWNhdGlvbiBoYXMgY29ubmVjdGVkJykpO1xuICAgICAgfTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIucHJlcGVuZE9uY2VMaXN0ZW5lcignX3JwY19hcHBsaWNhdGlvbkNvbm5lY3RlZDonLCBvbkFwcENoYW5nZSk7XG5cbiAgICAgIC8vIGRvIHRoZSBhY3R1YWwgY29ubmVjdGluZyB0byB0aGUgYXBwXG4gICAgICByZXR1cm4gKGFzeW5jICgpID0+IHtcbiAgICAgICAgbGV0IHBhZ2VEaWN0LCBjb25uZWN0ZWRBcHBJZEtleTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAoW2Nvbm5lY3RlZEFwcElkS2V5LCBwYWdlRGljdF0gPSBhd2FpdCB0aGlzLnNlbmQoJ2Nvbm5lY3RUb0FwcCcsIHtcbiAgICAgICAgICAgIGFwcElkS2V5XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBsb2cud2FybihgVW5hYmxlIHRvIGNvbm5lY3QgdG8gYXBwOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc29tZXRpbWVzIHRoZSBjb25uZWN0IGxvZ2ljIGhhcHBlbnMsIGJ1dCB3aXRoIGFuIGVtcHR5IGRpY3Rpb25hcnlcbiAgICAgICAgLy8gd2hpY2ggbGVhZHMgdG8gdGhlIHJlbW90ZSBkZWJ1Z2dlciBnZXR0aW5nIGRpc2Nvbm5lY3RlZCwgYW5kIGludG8gYSBsb29wXG4gICAgICAgIGlmIChfLmlzRW1wdHkocGFnZURpY3QpKSB7XG4gICAgICAgICAgbGV0IG1zZyA9ICdFbXB0eSBwYWdlIGRpY3Rpb25hcnkgcmVjZWl2ZWQnO1xuICAgICAgICAgIGxvZy5kZWJ1Zyhtc2cpO1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IobXNnKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZShbY29ubmVjdGVkQXBwSWRLZXksIHBhZ2VEaWN0XSk7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIChlcnIsIGNvbnRleHQpIHtcbiAgICAvLyB7IGlkOiAyLCBpc1BhZ2VDb250ZXh0OiB0cnVlLCBuYW1lOiAnJywgZnJhbWVJZDogJzAuMScgfVxuICAgIC8vIHJpZ2h0IG5vdyB3ZSBoYXZlIG5vIHdheSB0byBtYXAgY29udGV4dHMgdG8gYXBwcy9wYWdlc1xuICAgIC8vIHNvIGp1c3Qgc3RvcmVcbiAgICB0aGlzLmNvbnRleHRzLnB1c2goY29udGV4dC5pZCk7XG4gIH1cblxuICBvbkdhcmJhZ2VDb2xsZWN0ZWQgKCkge1xuICAgIC8vIGp1c3Qgd2FudCB0byBsb2cgdGhhdCB0aGlzIGlzIGhhcHBlbmluZywgYXMgaXQgY2FuIGFmZmVjdCBvcGVydGlvblxuICAgIGxvZy5kZWJ1ZyhgV2ViIEluc3BlY3RvciBnYXJiYWdlIGNvbGxlY3RlZGApO1xuICB9XG5cbiAgb25TY3JpcHRQYXJzZWQgKGVyciwgc2NyaXB0SW5mbykge1xuICAgIC8vIHsgc2NyaXB0SWQ6ICcxMycsIHVybDogJycsIHN0YXJ0TGluZTogMCwgc3RhcnRDb2x1bW46IDAsIGVuZExpbmU6IDgyLCBlbmRDb2x1bW46IDMgfVxuICAgIGxvZy5kZWJ1ZyhgU2NyaXB0IHBhcnNlZDogJHtKU09OLnN0cmluZ2lmeShzY3JpcHRJbmZvKX1gKTtcbiAgfVxufVxuIl0sImZpbGUiOiJsaWIvcnBjL3JwYy1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
571
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtY2xpZW50LmpzIiwibmFtZXMiOlsiREFUQV9MT0dfTEVOR1RIIiwibGVuZ3RoIiwiV0FJVF9GT1JfVEFSR0VUX1RJTUVPVVQiLCJXQUlUX0ZPUl9UQVJHRVRfSU5URVJWQUwiLCJNSU5fUExBVEZPUk1fRk9SX1RBUkdFVF9CQVNFRCIsIk1JTl9QTEFURk9STV9OT19UQVJHRVRfRVhJU1RTIiwiaXNUYXJnZXRCYXNlZCIsImlzU2FmYXJpIiwicGxhdGZvcm1WZXJzaW9uIiwiaXNIaWdoVmVyc2lvbiIsInV0aWwiLCJjb21wYXJlVmVyc2lvbnMiLCJsb2ciLCJkZWJ1ZyIsIlJwY0NsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIl90YXJnZXRzIiwiX3Nob3VsZENoZWNrRm9yVGFyZ2V0Iiwic2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJidW5kbGVJZCIsImxvZ0FsbENvbW11bmljYXRpb24iLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsIndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIiwic29ja2V0Q2h1bmtTaXplIiwiZnVsbFBhZ2VJbml0aWFsaXphdGlvbiIsImlzQ29ubmVjdGVkIiwiY29ubklkIiwidXVpZFY0Iiwic2VuZGVySWQiLCJtc2dJZCIsIl9jb250ZXh0cyIsImNvbnRleHRzIiwibmVlZHNUYXJnZXQiLCJ0YXJnZXRzIiwiY29ubmVjdGVkIiwib24iLCJldmVudCIsImxpc3RlbmVyIiwibWVzc2FnZUhhbmRsZXIiLCJvbmNlIiwib2ZmIiwid2FybiIsIl9pc1RhcmdldEJhc2VkIiwicmVtb3RlTWVzc2FnZXMiLCJSZW1vdGVNZXNzYWdlcyIsIlJwY01lc3NhZ2VIYW5kbGVyIiwiYWRkVGFyZ2V0IiwiYmluZCIsInVwZGF0ZVRhcmdldCIsInJlbW92ZVRhcmdldCIsIm9uRXhlY3V0aW9uQ29udGV4dENyZWF0ZWQiLCJvbkdhcmJhZ2VDb2xsZWN0ZWQiLCJ3YWl0Rm9yVGFyZ2V0IiwiYXBwSWRLZXkiLCJwYWdlSWRLZXkiLCJmb3JjZSIsImdldFRhcmdldCIsIl8iLCJpc0VtcHR5Iiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImVycm9yIiwiZXJyIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiRXJyb3IiLCJzZW5kIiwiY29tbWFuZCIsIndhaXRGb3JSZXNwb25zZSIsInRpbWVyIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsInNlbmRUb0RldmljZSIsInRvTG93ZXJDYXNlIiwiaW5mbyIsImdldER1cmF0aW9uIiwiYXNNaWxsaVNlY29uZHMiLCJ0b0ZpeGVkIiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJ3cmFwcGVyTXNnSWQiLCJ0b1N0cmluZyIsInRhcmdldElkIiwiZnVsbE9wdHMiLCJkZWZhdWx0cyIsImlkIiwiY21kIiwiZ2V0UmVtb3RlQ29tbWFuZCIsIl9fYXJndW1lbnQiLCJXSVJTb2NrZXREYXRhS2V5IiwiaXNOaWwiLCJCdWZmZXIiLCJmcm9tIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1lc3NhZ2VIYW5kbGVkIiwidHJ1bmNhdGUiLCJsaXN0ZW5lcnMiLCJfX3NlbGVjdG9yIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsImFyZ3MiLCJ2YWx1ZSIsImNvZGUiLCJtc2ciLCJyZXMiLCJzZW5kTWVzc2FnZSIsImNvbm5lY3QiLCJkaXNjb25uZWN0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwicmVjZWl2ZSIsImFwcCIsInRhcmdldEluZm8iLCJwZW5kaW5nVGFyZ2V0Tm90aWZpY2F0aW9uIiwiaXNQcm92aXNpb25hbCIsImhhcyIsIm9sZFRhcmdldElkIiwibmV3VGFyZ2V0SWQiLCJwcm92aXNpb25hbCIsInBhZ2UiLCJ0b1BhaXJzIiwic2VsZWN0UGFnZSIsInNlbmRPcHRzIiwiZW5hYmxlZCIsIk9iamVjdCIsImFzc2lnbiIsImluaXRpYWxpemVQYWdlRnVsbCIsImluaXRpYWxpemVQYWdlIiwiZGlzYWJsZWQiLCJpbnN0cnVtZW50cyIsImFjdGl2ZSIsInN0YXRlIiwiZGVwdGgiLCJzaG91bGRQYXVzZSIsImxvZ2dpbmdDaGFubmVscyIsInNvdXJjZSIsImNoYW5uZWxzIiwibWFwIiwiZW50cnkiLCJsZXZlbCIsInNlbGVjdEFwcCIsIm9uQXBwQ2hhbmdlIiwiZGljdCIsIm9sZEFwcElkS2V5IiwiV0lSSG9zdEFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsImNvcnJlY3RBcHBJZEtleSIsIldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsInBhZ2VEaWN0IiwiY29ubmVjdGVkQXBwSWRLZXkiLCJjb250ZXh0IiwicHVzaCIsIm9uU2NyaXB0UGFyc2VkIiwic2NyaXB0SW5mbyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9ycGMvcnBjLWNsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVtb3RlTWVzc2FnZXMgZnJvbSAnLi9yZW1vdGUtbWVzc2FnZXMnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgUnBjTWVzc2FnZUhhbmRsZXIgZnJvbSAnLi9ycGMtbWVzc2FnZS1oYW5kbGVyJztcbmltcG9ydCB7IHV0aWwsIHRpbWluZyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cblxuY29uc3QgREFUQV9MT0dfTEVOR1RIID0ge2xlbmd0aDogMjAwfTtcblxuY29uc3QgV0FJVF9GT1JfVEFSR0VUX1RJTUVPVVQgPSAxMDAwMDtcbmNvbnN0IFdBSVRfRk9SX1RBUkdFVF9JTlRFUlZBTCA9IDEwMDA7XG5cbmNvbnN0IE1JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEID0gJzEyLjInO1xuXG4vLyBgVGFyZ2V0LmV4aXN0c2AgcHJvdG9jb2wgbWV0aG9kIHdhcyByZW1vdmVkIGZyb20gV2ViS2l0aW4gMTMuNFxuY29uc3QgTUlOX1BMQVRGT1JNX05PX1RBUkdFVF9FWElTVFMgPSAnMTMuNCc7XG5cbmZ1bmN0aW9uIGlzVGFyZ2V0QmFzZWQgKGlzU2FmYXJpLCBwbGF0Zm9ybVZlcnNpb24pIHtcbiAgLy8gT24gaU9TIDEyLjIgdGhlIG1lc3NhZ2VzIGdldCBzZW50IHRocm91Z2ggdGhlIFRhcmdldCBkb21haW5cbiAgLy8gT24gaU9TIDEzLjArLCBXS1dlYlZpZXcgYWxzbyBuZWVkcyB0byBmb2xsb3cgdGhlIFRhcmdldCBkb21haW4sXG4gIC8vIHNvIGhlcmUgb25seSBjaGVjayB0aGUgdGFyZ2V0IE9TIHZlcnNpb24gYXMgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLlxuICBjb25zdCBpc0hpZ2hWZXJzaW9uID0gdXRpbC5jb21wYXJlVmVyc2lvbnMocGxhdGZvcm1WZXJzaW9uLCAnPj0nLCBNSU5fUExBVEZPUk1fRk9SX1RBUkdFVF9CQVNFRCk7XG4gIGxvZy5kZWJ1ZyhgQ2hlY2tpbmcgd2hpY2ggY29tbXVuaWNhdGlvbiBzdHlsZSB0byB1c2UgKCR7aXNTYWZhcmkgPyAnJyA6ICdub24tJ31TYWZhcmkgb24gcGxhdGZvcm0gdmVyc2lvbiAnJHtwbGF0Zm9ybVZlcnNpb259JylgKTtcbiAgbG9nLmRlYnVnKGBQbGF0Zm9ybSB2ZXJzaW9uIGVxdWFsIG9yIGhpZ2hlciB0aGFuICcke01JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEfSc6ICR7aXNIaWdoVmVyc2lvbn1gKTtcbiAgcmV0dXJuIGlzSGlnaFZlcnNpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICB0aGlzLl90YXJnZXRzID0gW107XG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSAhIW9wdHMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG5cbiAgICBjb25zdCB7XG4gICAgICBidW5kbGVJZCxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbiA9IHt9LFxuICAgICAgaXNTYWZhcmkgPSB0cnVlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbiA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgPSBmYWxzZSxcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgICAgc29ja2V0Q2h1bmtTaXplLFxuICAgICAgZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZhbHNlLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgdGhpcy5pc1NhZmFyaSA9IGlzU2FmYXJpO1xuXG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuY29ubklkID0gdXRpbC51dWlkVjQoKTtcbiAgICB0aGlzLnNlbmRlcklkID0gdXRpbC51dWlkVjQoKTtcbiAgICB0aGlzLm1zZ0lkID0gMDtcblxuICAgIHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbiA9IGxvZ0FsbENvbW11bmljYXRpb247XG4gICAgdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wO1xuICAgIHRoaXMuc29ja2V0Q2h1bmtTaXplID0gc29ja2V0Q2h1bmtTaXplO1xuICAgIHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGggPSB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aDtcblxuICAgIHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZ1bGxQYWdlSW5pdGlhbGl6YXRpb247XG5cbiAgICB0aGlzLmJ1bmRsZUlkID0gYnVuZGxlSWQ7XG4gICAgdGhpcy5wbGF0Zm9ybVZlcnNpb24gPSBwbGF0Zm9ybVZlcnNpb247XG5cbiAgICB0aGlzLl9jb250ZXh0cyA9IFtdO1xuICAgIHRoaXMuX3RhcmdldHMgPSB7fTtcblxuICAgIC8vIHN0YXJ0IHdpdGggYSBiZXN0IGd1ZXNzIGZvciB0aGUgcHJvdG9jb2xcbiAgICB0aGlzLmlzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkKGlzU2FmYXJpLCB0aGlzLnBsYXRmb3JtVmVyc2lvbik7XG4gIH1cblxuICBnZXQgY29udGV4dHMgKCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZXh0cztcbiAgfVxuXG4gIGdldCBuZWVkc1RhcmdldCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgJiYgdGhpcy5pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IHRhcmdldHMgKCkge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXRzO1xuICB9XG5cbiAgZ2V0IHNob3VsZENoZWNrRm9yVGFyZ2V0ICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG4gIH1cblxuICBzZXQgc2hvdWxkQ2hlY2tGb3JUYXJnZXQgKHNob3VsZENoZWNrRm9yVGFyZ2V0KSB7XG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSAhIXNob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB9XG5cbiAgZ2V0IGlzQ29ubmVjdGVkICgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XG4gIH1cblxuICBzZXQgaXNDb25uZWN0ZWQgKGNvbm5lY3RlZCkge1xuICAgIHRoaXMuY29ubmVjdGVkID0gISFjb25uZWN0ZWQ7XG4gIH1cblxuICBvbiAoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbihldmVudCwgbGlzdGVuZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb25jZSAoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbmNlKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvZmYgKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub2ZmKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIGxvZy53YXJuKGBTZXR0aW5nIGNvbW11bmljYXRpb24gcHJvdG9jb2w6IHVzaW5nICR7aXNUYXJnZXRCYXNlZCA/ICdUYXJnZXQtYmFzZWQnIDogJ2Z1bGwgV2ViIEluc3BlY3RvciBwcm90b2NvbCd9IGNvbW11bmljYXRpb25gKTtcbiAgICB0aGlzLl9pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZDtcblxuICAgIGlmICghdGhpcy5yZW1vdGVNZXNzYWdlcykge1xuICAgICAgdGhpcy5yZW1vdGVNZXNzYWdlcyA9IG5ldyBSZW1vdGVNZXNzYWdlcyhpc1RhcmdldEJhc2VkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdGVNZXNzYWdlcy5pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSBuZXcgUnBjTWVzc2FnZUhhbmRsZXIoaXNUYXJnZXRCYXNlZCk7XG5cbiAgICAgIC8vIGFkZCBoYW5kbGVycyBmb3IgaW50ZXJuYWwgZXZlbnRzXG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcsIHRoaXMuYWRkVGFyZ2V0LmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignVGFyZ2V0LmRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0JywgdGhpcy51cGRhdGVUYXJnZXQuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdUYXJnZXQudGFyZ2V0RGVzdHJveWVkJywgdGhpcy5yZW1vdmVUYXJnZXQuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkJywgdGhpcy5vbkV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignSGVhcC5nYXJiYWdlQ29sbGVjdGVkJywgdGhpcy5vbkdhcmJhZ2VDb2xsZWN0ZWQuYmluZCh0aGlzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvclRhcmdldCAoYXBwSWRLZXksIHBhZ2VJZEtleSwgZm9yY2UgPSBmYWxzZSkge1xuICAgIGlmICghZm9yY2UgJiYgIXRoaXMubmVlZHNUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2Ugd2FpdGluZyBpcyBuZWNlc3NhcnkgdG8gc2VlIHdoYXQgdGhlIHRhcmdldCBpc1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+ICFfLmlzRW1wdHkodGhpcy5nZXRUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSkpLCB7XG4gICAgICAgIHdhaXRNczogV0FJVF9GT1JfVEFSR0VUX1RJTUVPVVQsXG4gICAgICAgIGludGVydmFsTXM6IFdBSVRfRk9SX1RBUkdFVF9JTlRFUlZBTCxcbiAgICAgICAgZXJyb3I6ICdObyB0YXJnZXRzIGZvdW5kLCB1bmFibGUgdG8gY29tbXVuaWNhdGUgd2l0aCBkZXZpY2UnLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWVyci5tZXNzYWdlLmluY2x1ZGVzKCdDb25kaXRpb24gdW5tZXQnKSkge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRhcmdldHMgZm91bmQsIHVuYWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoIGRldmljZScpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmQgKGNvbW1hbmQsIG9wdHMgPSB7fSwgd2FpdEZvclJlc3BvbnNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gICAgY29uc3Qge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXlcbiAgICB9ID0gb3B0cztcbiAgICB0cnkge1xuICAgICAgaWYgKCFfLmlzRW1wdHkoYXBwSWRLZXkpICYmICFfLmlzRW1wdHkocGFnZUlkS2V5KSkge1xuICAgICAgICBhd2FpdCB0aGlzLndhaXRGb3JUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kVG9EZXZpY2UoY29tbWFuZCwgb3B0cywgd2FpdEZvclJlc3BvbnNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxldCB7IG1lc3NhZ2UgPSAnJyB9ID0gZXJyO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKGAndGFyZ2V0JyBkb21haW4gd2FzIG5vdCBmb3VuZGApKSB7XG4gICAgICAgIGxvZy5pbmZvKCdUaGUgdGFyZ2V0IGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IFRhcmdldCBiYXNlZCBjb21tdW5pY2F0aW9uLiAnICtcbiAgICAgICAgICAnV2lsbCBmb2xsb3cgbm9uLXRhcmdldCBiYXNlZCBjb21tdW5pY2F0aW9uLicpO1xuICAgICAgICB0aGlzLmlzVGFyZ2V0QmFzZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZFRvRGV2aWNlKGNvbW1hbmQsIG9wdHMsIHdhaXRGb3JSZXNwb25zZSk7XG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoYGRvbWFpbiB3YXMgbm90IGZvdW5kYCkgfHxcbiAgICAgICAgICBtZXNzYWdlLmluY2x1ZGVzKGBzb21lIGFyZ3VtZW50cyBvZiBtZXRob2RgKSB8fFxuICAgICAgICAgIG1lc3NhZ2UuaW5jbHVkZXMoYG1pc3NpbmcgdGFyZ2V0YCkpIHtcbiAgICAgICAgdGhpcy5pc1RhcmdldEJhc2VkID0gdHJ1ZTtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGFyZ2V0KGFwcElkS2V5LCBwYWdlSWRLZXkpO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kVG9EZXZpY2UoY29tbWFuZCwgb3B0cywgd2FpdEZvclJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgbG9nLmRlYnVnKGBTZW5kaW5nIHRvIFdlYiBJbnNwZWN0b3IgdG9vayAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmRUb0RldmljZSAoY29tbWFuZCwgb3B0cyA9IHt9LCB3YWl0Rm9yUmVzcG9uc2UgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIHByb21pc2UgdG8gYmUgcmVzb2x2ZWQgd2hlbmV2ZXIgcmVtb3RlIGRlYnVnZ2VyXG4gICAgICAvLyByZXBsaWVzIHRvIG91ciByZXF1ZXN0XG5cbiAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIG1lc3NhZ2VzIGNvbWluZyBhbmQgZ29pbmcgdXNpbmcgYSBzaW1wbGUgc2VxdWVudGlhbCBpZFxuICAgICAgY29uc3QgbXNnSWQgPSB0aGlzLm1zZ0lkKys7XG4gICAgICBsZXQgd3JhcHBlck1zZ0lkID0gbXNnSWQ7XG4gICAgICBpZiAodGhpcy5pc1RhcmdldEJhc2VkKSB7XG4gICAgICAgIC8vIGZvciB0YXJnZXQtYmFzZSBjb21tdW5pY2F0aW9uLCBldmVyeXRoaW5nIGlzIHdyYXBwZWQgdXBcbiAgICAgICAgd3JhcHBlck1zZ0lkID0gdGhpcy5tc2dJZCsrO1xuICAgICAgICAvLyBhY2tub3dsZWRnZSB3cmFwcGVyIG1lc3NhZ2VcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbih3cmFwcGVyTXNnSWQudG9TdHJpbmcoKSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFwcElkS2V5ID0gb3B0cy5hcHBJZEtleTtcbiAgICAgIGNvbnN0IHBhZ2VJZEtleSA9IG9wdHMucGFnZUlkS2V5O1xuICAgICAgY29uc3QgdGFyZ2V0SWQgPSB0aGlzLmdldFRhcmdldChhcHBJZEtleSwgcGFnZUlkS2V5KTtcblxuICAgICAgLy8gcmV0cmlldmUgdGhlIGNvcnJlY3QgY29tbWFuZCB0byBzZW5kXG4gICAgICBjb25zdCBmdWxsT3B0cyA9IF8uZGVmYXVsdHMoe1xuICAgICAgICBjb25uSWQ6IHRoaXMuY29ubklkLFxuICAgICAgICBzZW5kZXJJZDogdGhpcy5zZW5kZXJJZCxcbiAgICAgICAgdGFyZ2V0SWQsXG4gICAgICAgIGlkOiBtc2dJZCxcbiAgICAgIH0sIG9wdHMpO1xuICAgICAgY29uc3QgY21kID0gdGhpcy5yZW1vdGVNZXNzYWdlcy5nZXRSZW1vdGVDb21tYW5kKGNvbW1hbmQsIGZ1bGxPcHRzKTtcblxuICAgICAgaWYgKGNtZD8uX19hcmd1bWVudD8uV0lSU29ja2V0RGF0YUtleSkge1xuICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIG1lc3NhZ2UgYmVpbmcgc2VudCBoYXMgYWxsIHRoZSBpbmZvcm1hdGlvbiB0aGF0IGlzIG5lZWRlZFxuICAgICAgICBpZiAoXy5pc05pbChjbWQuX19hcmd1bWVudC5XSVJTb2NrZXREYXRhS2V5LmlkKSkge1xuICAgICAgICAgIGNtZC5fX2FyZ3VtZW50LldJUlNvY2tldERhdGFLZXkuaWQgPSB3cmFwcGVyTXNnSWQ7XG4gICAgICAgIH1cbiAgICAgICAgY21kLl9fYXJndW1lbnQuV0lSU29ja2V0RGF0YUtleSA9XG4gICAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY21kLl9fYXJndW1lbnQuV0lSU29ja2V0RGF0YUtleSkpO1xuICAgICAgfVxuXG4gICAgICBsZXQgbWVzc2FnZUhhbmRsZWQgPSB0cnVlO1xuICAgICAgaWYgKCF3YWl0Rm9yUmVzcG9uc2UpIHtcbiAgICAgICAgLy8gdGhlIHByb21pc2Ugd2lsbCBiZSByZXNvbHZlZCBhcyBzb29uIGFzIHRoZSBzb2NrZXQgaGFzIGJlZW4gc2VudFxuICAgICAgICBtZXNzYWdlSGFuZGxlZCA9IGZhbHNlO1xuICAgICAgICAvLyBkbyBub3QgbG9nIHJlY2VpcHRzXG4gICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub25jZShtc2dJZC50b1N0cmluZygpLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgLy8gd2UgYXJlIG5vdCB3YWl0aW5nIGZvciB0aGlzLCBhbmQgaWYgaXQgZXJyb3JzIGl0IGlzIG1vc3QgbGlrZWx5XG4gICAgICAgICAgICAvLyBhIHByb3RvY29sIGNoYW5nZS4gTG9nIGFuZCBjaGVjayBkdXJpbmcgdGVzdGluZ1xuICAgICAgICAgICAgbG9nLmVycm9yKGBSZWNlaXZlZCBlcnJvciBmcm9tIHNlbmQgdGhhdCBpcyBub3QgYmVpbmcgd2FpdGVkIGZvciAoaWQ6ICR7bXNnSWR9KTogJyR7Xy50cnVuY2F0ZShKU09OLnN0cmluZ2lmeShlcnIpLCBEQVRBX0xPR19MRU5HVEgpfSdgKTtcbiAgICAgICAgICAgIC8vIHJlamVjdCwgdGhvdWdoIGl0IGlzIHZlcnkgcmFyZSB0aGF0IHRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQsIHNpbmNlXG4gICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZCBkaXJlY3RsdHkgYWZ0ZXIgc2VuZC4gT24gdGhlIG9mZiBjaGFuY2UsXG4gICAgICAgICAgICAvLyB0aG91Z2gsIGl0IHdpbGwgYWxlcnQgb2YgYSBwcm90b2NvbCBjaGFuZ2UuXG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyLmxpc3RlbmVycyhjbWQuX19zZWxlY3RvcikubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIucHJlcGVuZE9uY2VMaXN0ZW5lcihjbWQuX19zZWxlY3RvciwgZnVuY3Rpb24gKGVyciwgLi4uYXJncykge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCByZXNwb25zZSBmcm9tIHNlbmQgKGlkOiAke21zZ0lkfSk6ICcke18udHJ1bmNhdGUoSlNPTi5zdHJpbmdpZnkoYXJncyksIERBVEFfTE9HX0xFTkdUSCl9J2ApO1xuICAgICAgICAgIHJlc29sdmUoYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChjbWQ/Ll9fYXJndW1lbnQ/LldJUlNvY2tldERhdGFLZXkpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbmNlKG1zZ0lkLnRvU3RyaW5nKCksIGZ1bmN0aW9uIChlcnIsIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoYFJlbW90ZSBkZWJ1Z2dlciBlcnJvciB3aXRoIGNvZGUgJyR7ZXJyLmNvZGV9JzogJHtlcnIubWVzc2FnZX1gKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgZGF0YSByZXNwb25zZSBmcm9tIHNlbmQgKGlkOiAke21zZ0lkfSk6ICcke18udHJ1bmNhdGUoSlNPTi5zdHJpbmdpZnkodmFsdWUpLCBEQVRBX0xPR19MRU5HVEgpfSdgKTtcbiAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBub3RoaW5nIGVsc2UgaXMgaGFuZGxpbmcgdGhpbmdzLCBzbyBqdXN0IHJlc29sdmUgd2hlbiB0aGUgbWVzc2FnZSBpcyBzZW50XG4gICAgICAgIG1lc3NhZ2VIYW5kbGVkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1zZyA9IGBTZW5kaW5nICcke2NtZC5fX3NlbGVjdG9yfScgbWVzc2FnZWAgK1xuICAgICAgICAoZnVsbE9wdHMuYXBwSWRLZXkgPyBgIHRvIGFwcCAnJHtmdWxsT3B0cy5hcHBJZEtleX0nYCA6ICcnKSArXG4gICAgICAgIChmdWxsT3B0cy5wYWdlSWRLZXkgPyBgLCBwYWdlICcke2Z1bGxPcHRzLnBhZ2VJZEtleX0nYCA6ICcnKSArXG4gICAgICAgICh0aGlzLm5lZWRzVGFyZ2V0ICYmIHRhcmdldElkID8gYCwgdGFyZ2V0ICcke3RhcmdldElkfSdgIDogJycpICtcbiAgICAgICAgYCAoaWQ6ICR7bXNnSWR9KTogJyR7Y29tbWFuZH0nYDtcbiAgICAgIGxvZy5kZWJ1Zyhtc2cpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZW5kTWVzc2FnZShjbWQpO1xuICAgICAgICBpZiAoIW1lc3NhZ2VIYW5kbGVkKSB7XG4gICAgICAgICAgLy8gVGhlcmUgYXJlIG5vIGhhbmRsZXJzIHdhaXRpbmcgZm9yIGEgcmVzcG9uc2UgYmVmb3JlIHJlc29sdmluZyxcbiAgICAgICAgICAvLyBhbmQgbm8gZXJyb3JzIHNlbmRpbmcgdGhlIG1lc3NhZ2Ugb3ZlciB0aGUgc29ja2V0LCBzbyByZXNvbHZlXG4gICAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdCAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHRocm93IG5ldyBFcnJvcihgU3ViLWNsYXNzZXMgbmVlZCB0byBpbXBsZW1lbnQgYSAnY29ubmVjdCcgZnVuY3Rpb25gKTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UgKC8qIGNvbW1hbmQgKi8pIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdWItY2xhc3NlcyBuZWVkIHRvIGltcGxlbWVudCBhICdzZW5kTWVzc2FnZScgZnVuY3Rpb25gKTtcbiAgfVxuXG4gIGFzeW5jIHJlY2VpdmUgKC8qIGRhdGEgKi8pIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdWItY2xhc3NlcyBuZWVkIHRvIGltcGxlbWVudCBhICdyZWNlaXZlJyBmdW5jdGlvbmApO1xuICB9XG5cbiAgYWRkVGFyZ2V0IChlcnIsIGFwcCwgdGFyZ2V0SW5mbykge1xuICAgIGlmIChfLmlzTmlsKHRhcmdldEluZm8/LnRhcmdldElkKSkge1xuICAgICAgbG9nLndhcm4oYFJlY2VpdmVkICdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcgZXZlbnQgZm9yIGFwcCAnJHthcHB9JyB3aXRoIG5vIHRhcmdldC4gU2tpcHBpbmdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eSh0aGlzLnBlbmRpbmdUYXJnZXROb3RpZmljYXRpb24pICYmICF0YXJnZXRJbmZvLmlzUHJvdmlzaW9uYWwpIHtcbiAgICAgIGxvZy53YXJuKGBSZWNlaXZlZCAnVGFyZ2V0LnRhcmdldENyZWF0ZWQnIGV2ZW50IGZvciBhcHAgJyR7YXBwfScgd2l0aCBubyBwZW5kaW5nIHJlcXVlc3Q6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0SW5mbyl9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldEluZm8uaXNQcm92aXNpb25hbCkge1xuICAgICAgbG9nLmRlYnVnKGBQcm92aXNpb25hbCB0YXJnZXQgY3JlYXRlZCBmb3IgYXBwICcke2FwcH0nLCAnJHt0YXJnZXRJbmZvLnRhcmdldElkfScuIElnbm9yaW5nIHVudGlsIHRhcmdldCB1cGRhdGUgZXZlbnRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBbYXBwSWRLZXksIHBhZ2VJZEtleV0gPSB0aGlzLnBlbmRpbmdUYXJnZXROb3RpZmljYXRpb247XG5cbiAgICBsb2cuZGVidWcoYFRhcmdldCBjcmVhdGVkIGZvciBhcHAgJyR7YXBwSWRLZXl9JyBhbmQgcGFnZSAnJHtwYWdlSWRLZXl9JzogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXRJbmZvKX1gKTtcbiAgICBpZiAoXy5oYXModGhpcy50YXJnZXRzW2FwcElkS2V5XSwgcGFnZUlkS2V5KSkge1xuICAgICAgbG9nLmRlYnVnKGBUaGVyZSBpcyBhbHJlYWR5IGEgdGFyZ2V0IGZvciB0aGlzIGFwcCBhbmQgcGFnZSAoJyR7dGhpcy50YXJnZXRzW2FwcElkS2V5XVtwYWdlSWRLZXldfScpLiBUaGlzIG1pZ2h0IGNhdXNlIHByb2JsZW1zYCk7XG4gICAgfVxuICAgIHRoaXMudGFyZ2V0c1thcHBdID0gdGhpcy50YXJnZXRzW2FwcF0gfHwge307XG4gICAgdGhpcy50YXJnZXRzW2FwcElkS2V5XVtwYWdlSWRLZXldID0gdGFyZ2V0SW5mby50YXJnZXRJZDtcbiAgfVxuXG4gIHVwZGF0ZVRhcmdldCAoZXJyLCBhcHAsIG9sZFRhcmdldElkLCBuZXdUYXJnZXRJZCkge1xuICAgIGxvZy5kZWJ1ZyhgVGFyZ2V0IHVwZGF0ZWQgZm9yIGFwcCAnJHthcHB9Jy4gT2xkIHRhcmdldDogJyR7b2xkVGFyZ2V0SWR9JywgbmV3IHRhcmdldDogJyR7bmV3VGFyZ2V0SWR9J2ApO1xuICAgIGlmICghdGhpcy50YXJnZXRzW2FwcF0pIHtcbiAgICAgIGxvZy53YXJuKGBObyBleGlzdGluZyB0YXJnZXQgZm9yIGFwcCAnJHthcHB9Jy4gTm90IHN1cmUgd2hhdCB0byBkb2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBzYXZlIHRoaXMsIHRvIGJlIHVzZWQgaWYvd2hlbiB0aGUgZXhpc3RpbmcgdGFyZ2V0IGlzIGRlc3Ryb3llZFxuICAgIHRoaXMudGFyZ2V0c1thcHBdLnByb3Zpc2lvbmFsID0ge1xuICAgICAgb2xkVGFyZ2V0SWQsXG4gICAgICBuZXdUYXJnZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgcmVtb3ZlVGFyZ2V0IChlcnIsIGFwcCwgdGFyZ2V0SW5mbykge1xuICAgIGlmIChfLmlzTmlsKHRhcmdldEluZm8/LnRhcmdldElkKSkge1xuICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCAnVGFyZ2V0LnRhcmdldERlc3Ryb3llZCcgZXZlbnQgd2l0aCBubyB0YXJnZXQuIFNraXBwaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nLmRlYnVnKGBUYXJnZXQgZGVzdHJveWVkIGZvciBhcHAgJyR7YXBwfSc6ICR7dGFyZ2V0SW5mby50YXJnZXRJZH1gKTtcblxuICAgIC8vIGdvIHRocm91Z2ggdGhlIHRhcmdldHMgYW5kIGZpbmQgdGhlIG9uZSB0aGF0IGhhcyBhIHdhaXRpbmcgcHJvdmlzaW9uYWwgdGFyZ2V0XG4gICAgaWYgKHRoaXMudGFyZ2V0c1thcHBdPy5wcm92aXNpb25hbD8ub2xkVGFyZ2V0SWQgPT09IHRhcmdldEluZm8udGFyZ2V0SWQpIHtcbiAgICAgIGNvbnN0IHtvbGRUYXJnZXRJZCwgbmV3VGFyZ2V0SWR9ID0gdGhpcy50YXJnZXRzW2FwcF0ucHJvdmlzaW9uYWw7XG4gICAgICBkZWxldGUgdGhpcy50YXJnZXRzW2FwcF0ucHJvdmlzaW9uYWw7XG5cbiAgICAgIC8vIHdlIGRvIG5vdCBrbm93IHRoZSBwYWdlLCBzbyBnbyB0aHJvdWdoIGFuZCBmaW5kIHRoZSBleGlzdGluZyB0YXJnZXRcbiAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnRhcmdldHNbYXBwXTtcbiAgICAgIGZvciAoY29uc3QgW3BhZ2UsIHRhcmdldElkXSBvZiBfLnRvUGFpcnModGFyZ2V0cykpIHtcbiAgICAgICAgaWYgKHRhcmdldElkID09PSBvbGRUYXJnZXRJZCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRm91bmQgcHJvdmlzaW9uYWwgdGFyZ2V0IGZvciBhcHAgJyR7YXBwfScuIE9sZCB0YXJnZXQ6ICcke29sZFRhcmdldElkfScsIG5ldyB0YXJnZXQ6ICcke25ld1RhcmdldElkfScuIFVwZGF0aW5nYCk7XG4gICAgICAgICAgdGFyZ2V0c1twYWdlXSA9IG5ld1RhcmdldElkO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbG9nLndhcm4oYFByb3Zpc2lvbmFsIHRhcmdldCBmb3IgYXBwICcke2FwcH0nIGZvdW5kLCBidXQgbm8gc3VpdGFibGUgZXhpc3RpbmcgdGFyZ2V0IGZvdW5kLiBUaGlzIG1heSBjYXVzZSBwcm9ibGVtc2ApO1xuICAgICAgbG9nLndhcm4oYE9sZCB0YXJnZXQ6ICcke29sZFRhcmdldElkfScsIG5ldyB0YXJnZXQ6ICcke25ld1RhcmdldElkfScuIEV4aXN0aW5nIHRhcmdldHM6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0cyl9YCk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlcmUgaXMgbm8gd2FpdGluZyBwcm92aXNpb25hbCB0YXJnZXQsIGp1c3QgZ2V0IHJpZCBvZiB0aGUgZXhpc3Rpbmcgb25lXG4gICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMudGFyZ2V0c1thcHBdO1xuICAgIGZvciAoY29uc3QgW3BhZ2UsIHRhcmdldElkXSBvZiBfLnRvUGFpcnModGFyZ2V0cykpIHtcbiAgICAgIGlmICh0YXJnZXRJZCA9PT0gdGFyZ2V0SW5mby50YXJnZXRJZCkge1xuICAgICAgICBkZWxldGUgdGFyZ2V0c1twYWdlXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBsb2cuZGVidWcoYFRhcmdldCAnJHt0YXJnZXRJbmZvLnRhcmdldElkfScgZGVsZXRlZCBmb3IgYXBwICcke2FwcH0nLCBidXQgbm8gc3VjaCB0YXJnZXQgZXhpc3RzYCk7XG4gIH1cblxuICBnZXRUYXJnZXQgKGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICByZXR1cm4gKHRoaXMudGFyZ2V0c1thcHBJZEtleV0gfHwge30pW3BhZ2VJZEtleV07XG4gIH1cblxuICBhc3luYyBzZWxlY3RQYWdlIChhcHBJZEtleSwgcGFnZUlkS2V5KSB7XG4gICAgdGhpcy5wZW5kaW5nVGFyZ2V0Tm90aWZpY2F0aW9uID0gW2FwcElkS2V5LCBwYWdlSWRLZXldO1xuICAgIHRoaXMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSBmYWxzZTtcblxuICAgIC8vIGdvIHRocm91Z2ggdGhlIHN0ZXBzIHRoYXQgdGhlIERlc2t0b3AgU2FmYXJpIHN5c3RlbVxuICAgIC8vIGdvZXMgdGhyb3VnaCB0byBpbml0aWFsaXplIHRoZSBXZWIgSW5zcGVjdG9yIHNlc3Npb25cblxuICAgIGNvbnN0IHNlbmRPcHRzID0ge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgfTtcblxuICAgIC8vIGhpZ2hsaWdodCBhbmQgdGhlbiB1bi1oaWdobGlnaHQgdGhlIHdlYnZpZXdcbiAgICBmb3IgKGNvbnN0IGVuYWJsZWQgb2YgW3RydWUsIGZhbHNlXSkge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kKCdpbmRpY2F0ZVdlYlZpZXcnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgZW5hYmxlZCxcbiAgICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnc2V0U2VuZGVyS2V5Jywgc2VuZE9wdHMpO1xuICAgIGxvZy5kZWJ1ZygnU2VuZGVyIGtleSBzZXQnKTtcblxuICAgIGlmICh0aGlzLmlzVGFyZ2V0QmFzZWQgJiYgdXRpbC5jb21wYXJlVmVyc2lvbnModGhpcy5wbGF0Zm9ybVZlcnNpb24sICc8JywgTUlOX1BMQVRGT1JNX05PX1RBUkdFVF9FWElTVFMpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQoJ1RhcmdldC5leGlzdHMnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbikge1xuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUGFnZUZ1bGwoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVBhZ2UoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogUGVyZm9ybSB0aGUgbWluaW1hbCBpbml0aWFsaXphdGlvbiB0byBnZXQgdGhlIFdlYiBJbnNwZWN0b3Igd29ya2luZ1xuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZVBhZ2UgKGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICBjb25zdCBzZW5kT3B0cyA9IHtcbiAgICAgIGFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5LFxuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luc3BlY3Rvci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnUGFnZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuXG4gICAgLy8gZ28gdGhyb3VnaCB0aGUgdGFza3MgdG8gaW5pdGlhbGl6ZVxuICAgIGF3YWl0IHRoaXMuc2VuZCgnTmV0d29yay5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnUnVudGltZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnSGVhcC5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0NvbnNvbGUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luc3BlY3Rvci5pbml0aWFsaXplZCcsIHNlbmRPcHRzLCBmYWxzZSk7XG4gIH1cblxuICAvKlxuICAgKiBNaW1pYyBldmVyeSBzdGVwIHRoYXQgRGVza3RvcCBTYWZhcmkgRGV2ZWxvcCB0b29scyB1c2VzIHRvIGluaXRpYWxpemUgYVxuICAgKiBXZWIgSW5zcGVjdG9yIHNlc3Npb25cbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVQYWdlRnVsbCAoYXBwSWRLZXksIHBhZ2VJZEtleSkge1xuICAgIGNvbnN0IHNlbmRPcHRzID0ge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgfTtcblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5zcGVjdG9yLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdQYWdlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG5cbiAgICAvLyBnbyB0aHJvdWdoIHRoZSB0YXNrcyB0byBpbml0aWFsaXplXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdQYWdlLmdldFJlc291cmNlVHJlZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdOZXR3b3JrLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdOZXR3b3JrLnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdET01TdG9yYWdlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEYXRhYmFzZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5kZXhlZERCLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdDU1MuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1J1bnRpbWUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0hlYXAuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ01lbW9yeS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQXBwbGljYXRpb25DYWNoZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQXBwbGljYXRpb25DYWNoZS5nZXRGcmFtZXNXaXRoTWFuaWZlc3RzJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1RpbWVsaW5lLnNldEluc3RydW1lbnRzJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBpbnN0cnVtZW50czogWydUaW1lbGluZScsICdTY3JpcHRQcm9maWxlcicsICdDUFUnXSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1RpbWVsaW5lLnNldEF1dG9DYXB0dXJlRW5hYmxlZCcsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBzdGF0ZTogJ25vbmUnLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0UGF1c2VPbkFzc2VydGlvbnMnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0QXN5bmNTdGFja1RyYWNlRGVwdGgnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGRlcHRoOiAyMDAsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5zZXRQYXVzZUZvckludGVybmFsU2NyaXB0cycsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgc2hvdWxkUGF1c2U6IGZhbHNlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdMYXllclRyZWUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1dvcmtlci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQ2FudmFzLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdDb25zb2xlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdET00uZ2V0RG9jdW1lbnQnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGNvbnN0IGxvZ2dpbmdDaGFubmVscyA9IGF3YWl0IHRoaXMuc2VuZCgnQ29uc29sZS5nZXRMb2dnaW5nQ2hhbm5lbHMnLCBzZW5kT3B0cyk7XG4gICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgKGxvZ2dpbmdDaGFubmVscy5jaGFubmVscyB8fCBbXSkubWFwKChlbnRyeSkgPT4gZW50cnkuc291cmNlKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kKCdDb25zb2xlLnNldExvZ2dpbmdDaGFubmVsTGV2ZWwnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICBsZXZlbDogJ3ZlcmJvc2UnLFxuICAgICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdJbnNwZWN0b3IuaW5pdGlhbGl6ZWQnLCBzZW5kT3B0cywgZmFsc2UpO1xuICB9XG5cbiAgYXN5bmMgc2VsZWN0QXBwIChhcHBJZEtleSkge1xuICAgIHJldHVybiBhd2FpdCBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBsb2NhbCBjYWxsYmFjaywgdGVtcG9yYXJpbHkgYWRkZWQgYXMgY2FsbGJhY2sgdG9cbiAgICAgIC8vIGBfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOmAgcmVtb3RlIGRlYnVnZ2VyIHJlc3BvbnNlXG4gICAgICAvLyB0byBoYW5kbGUgdGhlIGluaXRpYWwgY29ubmVjdGlvblxuICAgICAgY29uc3Qgb25BcHBDaGFuZ2UgPSAoZXJyLCBkaWN0KSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZnJvbSB0aGUgZGljdGlvbmFyeSByZXR1cm5lZCwgZ2V0IHRoZSBpZHNcbiAgICAgICAgY29uc3Qgb2xkQXBwSWRLZXkgPSBkaWN0LldJUkhvc3RBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG4gICAgICAgIGNvbnN0IGNvcnJlY3RBcHBJZEtleSA9IGRpY3QuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuXG4gICAgICAgIC8vIGlmIHRoaXMgaXMgYSByZXBvcnQgb2YgYSBwcm94eSByZWRpcmVjdCBmcm9tIHRoZSByZW1vdGUgZGVidWdnZXJcbiAgICAgICAgLy8gd2Ugd2FudCB0byB1cGRhdGUgb3VyIGRpY3Rpb25hcnkgYW5kIGdldCBhIG5ldyBhcHAgaWRcbiAgICAgICAgaWYgKG9sZEFwcElkS2V5ICYmIGNvcnJlY3RBcHBJZEtleSAhPT0gb2xkQXBwSWRLZXkpIHtcbiAgICAgICAgICBsb2cuZGVidWcoYFdlIHdlcmUgbm90aWZpZWQgd2UgbWlnaHQgaGF2ZSBjb25uZWN0ZWQgdG8gdGhlIHdyb25nIGFwcC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBVc2luZyBpZCAke2NvcnJlY3RBcHBJZEtleX0gaW5zdGVhZCBvZiAke29sZEFwcElkS2V5fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignTmV3IGFwcGxpY2F0aW9uIGhhcyBjb25uZWN0ZWQnKSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5wcmVwZW5kT25jZUxpc3RlbmVyKCdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOicsIG9uQXBwQ2hhbmdlKTtcblxuICAgICAgLy8gZG8gdGhlIGFjdHVhbCBjb25uZWN0aW5nIHRvIHRoZSBhcHBcbiAgICAgIHJldHVybiAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgcGFnZURpY3QsIGNvbm5lY3RlZEFwcElkS2V5O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIChbY29ubmVjdGVkQXBwSWRLZXksIHBhZ2VEaWN0XSA9IGF3YWl0IHRoaXMuc2VuZCgnY29ubmVjdFRvQXBwJywge1xuICAgICAgICAgICAgYXBwSWRLZXlcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGxvZy53YXJuKGBVbmFibGUgdG8gY29ubmVjdCB0byBhcHA6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzb21ldGltZXMgdGhlIGNvbm5lY3QgbG9naWMgaGFwcGVucywgYnV0IHdpdGggYW4gZW1wdHkgZGljdGlvbmFyeVxuICAgICAgICAvLyB3aGljaCBsZWFkcyB0byB0aGUgcmVtb3RlIGRlYnVnZ2VyIGdldHRpbmcgZGlzY29ubmVjdGVkLCBhbmQgaW50byBhIGxvb3BcbiAgICAgICAgaWYgKF8uaXNFbXB0eShwYWdlRGljdCkpIHtcbiAgICAgICAgICBsZXQgbXNnID0gJ0VtcHR5IHBhZ2UgZGljdGlvbmFyeSByZWNlaXZlZCc7XG4gICAgICAgICAgbG9nLmRlYnVnKG1zZyk7XG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihtc2cpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKFtjb25uZWN0ZWRBcHBJZEtleSwgcGFnZURpY3RdKTtcbiAgICAgICAgfVxuICAgICAgfSkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgKGVyciwgY29udGV4dCkge1xuICAgIC8vIHsgaWQ6IDIsIGlzUGFnZUNvbnRleHQ6IHRydWUsIG5hbWU6ICcnLCBmcmFtZUlkOiAnMC4xJyB9XG4gICAgLy8gcmlnaHQgbm93IHdlIGhhdmUgbm8gd2F5IHRvIG1hcCBjb250ZXh0cyB0byBhcHBzL3BhZ2VzXG4gICAgLy8gc28ganVzdCBzdG9yZVxuICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0LmlkKTtcbiAgfVxuXG4gIG9uR2FyYmFnZUNvbGxlY3RlZCAoKSB7XG4gICAgLy8ganVzdCB3YW50IHRvIGxvZyB0aGF0IHRoaXMgaXMgaGFwcGVuaW5nLCBhcyBpdCBjYW4gYWZmZWN0IG9wZXJ0aW9uXG4gICAgbG9nLmRlYnVnKGBXZWIgSW5zcGVjdG9yIGdhcmJhZ2UgY29sbGVjdGVkYCk7XG4gIH1cblxuICBvblNjcmlwdFBhcnNlZCAoZXJyLCBzY3JpcHRJbmZvKSB7XG4gICAgLy8geyBzY3JpcHRJZDogJzEzJywgdXJsOiAnJywgc3RhcnRMaW5lOiAwLCBzdGFydENvbHVtbjogMCwgZW5kTGluZTogODIsIGVuZENvbHVtbjogMyB9XG4gICAgbG9nLmRlYnVnKGBTY3JpcHQgcGFyc2VkOiAke0pTT04uc3RyaW5naWZ5KHNjcmlwdEluZm8pfWApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsZUFBZSxHQUFHO0VBQUNDLE1BQU0sRUFBRTtBQUFULENBQXhCO0FBRUEsTUFBTUMsdUJBQXVCLEdBQUcsS0FBaEM7QUFDQSxNQUFNQyx3QkFBd0IsR0FBRyxJQUFqQztBQUVBLE1BQU1DLDZCQUE2QixHQUFHLE1BQXRDO0FBR0EsTUFBTUMsNkJBQTZCLEdBQUcsTUFBdEM7O0FBRUEsU0FBU0MsYUFBVCxDQUF3QkMsUUFBeEIsRUFBa0NDLGVBQWxDLEVBQW1EO0VBSWpELE1BQU1DLGFBQWEsR0FBR0MsY0FBS0MsZUFBTCxDQUFxQkgsZUFBckIsRUFBc0MsSUFBdEMsRUFBNENKLDZCQUE1QyxDQUF0Qjs7RUFDQVEsZ0JBQUlDLEtBQUosQ0FBVyw4Q0FBNkNOLFFBQVEsR0FBRyxFQUFILEdBQVEsTUFBTywrQkFBOEJDLGVBQWdCLElBQTdIOztFQUNBSSxnQkFBSUMsS0FBSixDQUFXLDBDQUF5Q1QsNkJBQThCLE1BQUtLLGFBQWMsRUFBckc7O0VBQ0EsT0FBT0EsYUFBUDtBQUNEOztBQUVjLE1BQU1LLFNBQU4sQ0FBZ0I7RUFDN0JDLFdBQVcsQ0FBRUMsSUFBSSxHQUFHLEVBQVQsRUFBYTtJQUN0QixLQUFLQyxRQUFMLEdBQWdCLEVBQWhCO0lBQ0EsS0FBS0MscUJBQUwsR0FBNkIsQ0FBQyxDQUFDRixJQUFJLENBQUNHLG9CQUFwQztJQUVBLE1BQU07TUFDSkMsUUFESTtNQUVKWixlQUFlLEdBQUcsRUFGZDtNQUdKRCxRQUFRLEdBQUcsSUFIUDtNQUlKYyxtQkFBbUIsR0FBRyxLQUpsQjtNQUtKQywwQkFBMEIsR0FBRyxLQUx6QjtNQU1KQywwQkFOSTtNQU9KQyxlQVBJO01BUUpDLHNCQUFzQixHQUFHO0lBUnJCLElBU0ZULElBVEo7SUFXQSxLQUFLVCxRQUFMLEdBQWdCQSxRQUFoQjtJQUVBLEtBQUttQixXQUFMLEdBQW1CLEtBQW5CO0lBQ0EsS0FBS0MsTUFBTCxHQUFjakIsY0FBS2tCLE1BQUwsRUFBZDtJQUNBLEtBQUtDLFFBQUwsR0FBZ0JuQixjQUFLa0IsTUFBTCxFQUFoQjtJQUNBLEtBQUtFLEtBQUwsR0FBYSxDQUFiO0lBRUEsS0FBS1QsbUJBQUwsR0FBMkJBLG1CQUEzQjtJQUNBLEtBQUtDLDBCQUFMLEdBQWtDQSwwQkFBbEM7SUFDQSxLQUFLRSxlQUFMLEdBQXVCQSxlQUF2QjtJQUNBLEtBQUtELDBCQUFMLEdBQWtDQSwwQkFBbEM7SUFFQSxLQUFLRSxzQkFBTCxHQUE4QkEsc0JBQTlCO0lBRUEsS0FBS0wsUUFBTCxHQUFnQkEsUUFBaEI7SUFDQSxLQUFLWixlQUFMLEdBQXVCQSxlQUF2QjtJQUVBLEtBQUt1QixTQUFMLEdBQWlCLEVBQWpCO0lBQ0EsS0FBS2QsUUFBTCxHQUFnQixFQUFoQjtJQUdBLEtBQUtYLGFBQUwsR0FBcUJBLGFBQWEsQ0FBQ0MsUUFBRCxFQUFXLEtBQUtDLGVBQWhCLENBQWxDO0VBQ0Q7O0VBRVcsSUFBUndCLFFBQVEsR0FBSTtJQUNkLE9BQU8sS0FBS0QsU0FBWjtFQUNEOztFQUVjLElBQVhFLFdBQVcsR0FBSTtJQUNqQixPQUFPLEtBQUtkLG9CQUFMLElBQTZCLEtBQUtiLGFBQXpDO0VBQ0Q7O0VBRVUsSUFBUDRCLE9BQU8sR0FBSTtJQUNiLE9BQU8sS0FBS2pCLFFBQVo7RUFDRDs7RUFFdUIsSUFBcEJFLG9CQUFvQixHQUFJO0lBQzFCLE9BQU8sS0FBS0QscUJBQVo7RUFDRDs7RUFFdUIsSUFBcEJDLG9CQUFvQixDQUFFQSxvQkFBRixFQUF3QjtJQUM5QyxLQUFLRCxxQkFBTCxHQUE2QixDQUFDLENBQUNDLG9CQUEvQjtFQUNEOztFQUVjLElBQVhPLFdBQVcsR0FBSTtJQUNqQixPQUFPLEtBQUtTLFNBQVo7RUFDRDs7RUFFYyxJQUFYVCxXQUFXLENBQUVTLFNBQUYsRUFBYTtJQUMxQixLQUFLQSxTQUFMLEdBQWlCLENBQUMsQ0FBQ0EsU0FBbkI7RUFDRDs7RUFFREMsRUFBRSxDQUFFQyxLQUFGLEVBQVNDLFFBQVQsRUFBbUI7SUFDbkIsS0FBS0MsY0FBTCxDQUFvQkgsRUFBcEIsQ0FBdUJDLEtBQXZCLEVBQThCQyxRQUE5QjtJQUNBLE9BQU8sSUFBUDtFQUNEOztFQUVERSxJQUFJLENBQUVILEtBQUYsRUFBU0MsUUFBVCxFQUFtQjtJQUNyQixLQUFLQyxjQUFMLENBQW9CQyxJQUFwQixDQUF5QkgsS0FBekIsRUFBZ0NDLFFBQWhDO0lBQ0EsT0FBTyxJQUFQO0VBQ0Q7O0VBRURHLEdBQUcsQ0FBRUosS0FBRixFQUFTQyxRQUFULEVBQW1CO0lBQ3BCLEtBQUtDLGNBQUwsQ0FBb0JFLEdBQXBCLENBQXdCSixLQUF4QixFQUErQkMsUUFBL0I7SUFDQSxPQUFPLElBQVA7RUFDRDs7RUFFZ0IsSUFBYmhDLGFBQWEsQ0FBRUEsYUFBRixFQUFpQjtJQUNoQ00sZ0JBQUk4QixJQUFKLENBQVUseUNBQXdDcEMsYUFBYSxHQUFHLGNBQUgsR0FBb0IsNkJBQThCLGdCQUFqSDs7SUFDQSxLQUFLcUMsY0FBTCxHQUFzQnJDLGFBQXRCOztJQUVBLElBQUksQ0FBQyxLQUFLc0MsY0FBVixFQUEwQjtNQUN4QixLQUFLQSxjQUFMLEdBQXNCLElBQUlDLHVCQUFKLENBQW1CdkMsYUFBbkIsQ0FBdEI7SUFDRCxDQUZELE1BRU87TUFDTCxLQUFLc0MsY0FBTCxDQUFvQnRDLGFBQXBCLEdBQW9DQSxhQUFwQztJQUNEOztJQUVELElBQUksQ0FBQyxLQUFLaUMsY0FBVixFQUEwQjtNQUN4QixLQUFLQSxjQUFMLEdBQXNCLElBQUlPLDBCQUFKLENBQXNCeEMsYUFBdEIsQ0FBdEI7TUFHQSxLQUFLaUMsY0FBTCxDQUFvQkgsRUFBcEIsQ0FBdUIsc0JBQXZCLEVBQStDLEtBQUtXLFNBQUwsQ0FBZUMsSUFBZixDQUFvQixJQUFwQixDQUEvQztNQUNBLEtBQUtULGNBQUwsQ0FBb0JILEVBQXBCLENBQXVCLG1DQUF2QixFQUE0RCxLQUFLYSxZQUFMLENBQWtCRCxJQUFsQixDQUF1QixJQUF2QixDQUE1RDtNQUNBLEtBQUtULGNBQUwsQ0FBb0JILEVBQXBCLENBQXVCLHdCQUF2QixFQUFpRCxLQUFLYyxZQUFMLENBQWtCRixJQUFsQixDQUF1QixJQUF2QixDQUFqRDtNQUNBLEtBQUtULGNBQUwsQ0FBb0JILEVBQXBCLENBQXVCLGlDQUF2QixFQUEwRCxLQUFLZSx5QkFBTCxDQUErQkgsSUFBL0IsQ0FBb0MsSUFBcEMsQ0FBMUQ7TUFDQSxLQUFLVCxjQUFMLENBQW9CSCxFQUFwQixDQUF1Qix1QkFBdkIsRUFBZ0QsS0FBS2dCLGtCQUFMLENBQXdCSixJQUF4QixDQUE2QixJQUE3QixDQUFoRDtJQUNELENBVEQsTUFTTztNQUNMLEtBQUtULGNBQUwsQ0FBb0JqQyxhQUFwQixHQUFvQ0EsYUFBcEM7SUFDRDtFQUNGOztFQUVnQixJQUFiQSxhQUFhLEdBQUk7SUFDbkIsT0FBTyxLQUFLcUMsY0FBWjtFQUNEOztFQUVrQixNQUFiVSxhQUFhLENBQUVDLFFBQUYsRUFBWUMsU0FBWixFQUF1QkMsS0FBSyxHQUFHLEtBQS9CLEVBQXNDO0lBQ3ZELElBQUksQ0FBQ0EsS0FBRCxJQUFVLENBQUMsS0FBS3ZCLFdBQXBCLEVBQWlDO01BQy9CO0lBQ0Q7O0lBRUQsSUFBSSxLQUFLd0IsU0FBTCxDQUFlSCxRQUFmLEVBQXlCQyxTQUF6QixDQUFKLEVBQXlDO01BQ3ZDO0lBQ0Q7O0lBR0QsSUFBSTtNQUNGLE1BQU0sZ0NBQWlCLE1BQU0sQ0FBQ0csZ0JBQUVDLE9BQUYsQ0FBVSxLQUFLRixTQUFMLENBQWVILFFBQWYsRUFBeUJDLFNBQXpCLENBQVYsQ0FBeEIsRUFBd0U7UUFDNUVLLE1BQU0sRUFBRTFELHVCQURvRTtRQUU1RTJELFVBQVUsRUFBRTFELHdCQUZnRTtRQUc1RTJELEtBQUssRUFBRTtNQUhxRSxDQUF4RSxDQUFOO0lBS0QsQ0FORCxDQU1FLE9BQU9DLEdBQVAsRUFBWTtNQUNaLElBQUksQ0FBQ0EsR0FBRyxDQUFDQyxPQUFKLENBQVlDLFFBQVosQ0FBcUIsaUJBQXJCLENBQUwsRUFBOEM7UUFDNUMsTUFBTUYsR0FBTjtNQUNEOztNQUNELE1BQU0sSUFBSUcsS0FBSixDQUFVLHFEQUFWLENBQU47SUFDRDtFQUNGOztFQUVTLE1BQUpDLElBQUksQ0FBRUMsT0FBRixFQUFXcEQsSUFBSSxHQUFHLEVBQWxCLEVBQXNCcUQsZUFBZSxHQUFHLElBQXhDLEVBQThDO0lBQ3RELE1BQU1DLEtBQUssR0FBRyxJQUFJQyxnQkFBT0MsS0FBWCxHQUFtQkMsS0FBbkIsRUFBZDtJQUNBLE1BQU07TUFDSm5CLFFBREk7TUFFSkM7SUFGSSxJQUdGdkMsSUFISjs7SUFJQSxJQUFJO01BQ0YsSUFBSSxDQUFDMEMsZ0JBQUVDLE9BQUYsQ0FBVUwsUUFBVixDQUFELElBQXdCLENBQUNJLGdCQUFFQyxPQUFGLENBQVVKLFNBQVYsQ0FBN0IsRUFBbUQ7UUFDakQsTUFBTSxLQUFLRixhQUFMLENBQW1CQyxRQUFuQixFQUE2QkMsU0FBN0IsQ0FBTjtNQUNEOztNQUNELE9BQU8sTUFBTSxLQUFLbUIsWUFBTCxDQUFrQk4sT0FBbEIsRUFBMkJwRCxJQUEzQixFQUFpQ3FELGVBQWpDLENBQWI7SUFDRCxDQUxELENBS0UsT0FBT04sR0FBUCxFQUFZO01BQ1osSUFBSTtRQUFFQyxPQUFPLEdBQUc7TUFBWixJQUFtQkQsR0FBdkI7TUFDQUMsT0FBTyxHQUFHQSxPQUFPLENBQUNXLFdBQVIsRUFBVjs7TUFDQSxJQUFJWCxPQUFPLENBQUNDLFFBQVIsQ0FBa0IsK0JBQWxCLENBQUosRUFBdUQ7UUFDckRyRCxnQkFBSWdFLElBQUosQ0FBUyxvRUFDUCw2Q0FERjs7UUFFQSxLQUFLdEUsYUFBTCxHQUFxQixLQUFyQjtRQUNBLE9BQU8sTUFBTSxLQUFLb0UsWUFBTCxDQUFrQk4sT0FBbEIsRUFBMkJwRCxJQUEzQixFQUFpQ3FELGVBQWpDLENBQWI7TUFDRCxDQUxELE1BS08sSUFBSUwsT0FBTyxDQUFDQyxRQUFSLENBQWtCLHNCQUFsQixLQUNQRCxPQUFPLENBQUNDLFFBQVIsQ0FBa0IsMEJBQWxCLENBRE8sSUFFUEQsT0FBTyxDQUFDQyxRQUFSLENBQWtCLGdCQUFsQixDQUZHLEVBRWlDO1FBQ3RDLEtBQUszRCxhQUFMLEdBQXFCLElBQXJCO1FBQ0EsTUFBTSxLQUFLK0MsYUFBTCxDQUFtQkMsUUFBbkIsRUFBNkJDLFNBQTdCLENBQU47UUFDQSxPQUFPLE1BQU0sS0FBS21CLFlBQUwsQ0FBa0JOLE9BQWxCLEVBQTJCcEQsSUFBM0IsRUFBaUNxRCxlQUFqQyxDQUFiO01BQ0Q7O01BQ0QsTUFBTU4sR0FBTjtJQUNELENBckJELFNBcUJVO01BQ1JuRCxnQkFBSUMsS0FBSixDQUFXLGlDQUFnQ3lELEtBQUssQ0FBQ08sV0FBTixHQUFvQkMsY0FBcEIsQ0FBbUNDLE9BQW5DLENBQTJDLENBQTNDLENBQThDLElBQXpGO0lBQ0Q7RUFDRjs7RUFFaUIsTUFBWkwsWUFBWSxDQUFFTixPQUFGLEVBQVdwRCxJQUFJLEdBQUcsRUFBbEIsRUFBc0JxRCxlQUFlLEdBQUcsSUFBeEMsRUFBOEM7SUFDOUQsT0FBTyxNQUFNLElBQUlXLGlCQUFKLENBQU0sT0FBT0MsT0FBUCxFQUFnQkMsTUFBaEIsS0FBMkI7TUFBQTs7TUFLNUMsTUFBTXBELEtBQUssR0FBRyxLQUFLQSxLQUFMLEVBQWQ7TUFDQSxJQUFJcUQsWUFBWSxHQUFHckQsS0FBbkI7O01BQ0EsSUFBSSxLQUFLeEIsYUFBVCxFQUF3QjtRQUV0QjZFLFlBQVksR0FBRyxLQUFLckQsS0FBTCxFQUFmO1FBRUEsS0FBS1MsY0FBTCxDQUFvQkgsRUFBcEIsQ0FBdUIrQyxZQUFZLENBQUNDLFFBQWIsRUFBdkIsRUFBZ0QsVUFBVXJCLEdBQVYsRUFBZTtVQUM3RCxJQUFJQSxHQUFKLEVBQVM7WUFDUG1CLE1BQU0sQ0FBQ25CLEdBQUQsQ0FBTjtVQUNEO1FBQ0YsQ0FKRDtNQUtEOztNQUVELE1BQU1ULFFBQVEsR0FBR3RDLElBQUksQ0FBQ3NDLFFBQXRCO01BQ0EsTUFBTUMsU0FBUyxHQUFHdkMsSUFBSSxDQUFDdUMsU0FBdkI7TUFDQSxNQUFNOEIsUUFBUSxHQUFHLEtBQUs1QixTQUFMLENBQWVILFFBQWYsRUFBeUJDLFNBQXpCLENBQWpCOztNQUdBLE1BQU0rQixRQUFRLEdBQUc1QixnQkFBRTZCLFFBQUYsQ0FBVztRQUMxQjVELE1BQU0sRUFBRSxLQUFLQSxNQURhO1FBRTFCRSxRQUFRLEVBQUUsS0FBS0EsUUFGVztRQUcxQndELFFBSDBCO1FBSTFCRyxFQUFFLEVBQUUxRDtNQUpzQixDQUFYLEVBS2RkLElBTGMsQ0FBakI7O01BTUEsTUFBTXlFLEdBQUcsR0FBRyxLQUFLN0MsY0FBTCxDQUFvQjhDLGdCQUFwQixDQUFxQ3RCLE9BQXJDLEVBQThDa0IsUUFBOUMsQ0FBWjs7TUFFQSxJQUFJRyxHQUFKLGFBQUlBLEdBQUosa0NBQUlBLEdBQUcsQ0FBRUUsVUFBVCw0Q0FBSSxnQkFBaUJDLGdCQUFyQixFQUF1QztRQUVyQyxJQUFJbEMsZ0JBQUVtQyxLQUFGLENBQVFKLEdBQUcsQ0FBQ0UsVUFBSixDQUFlQyxnQkFBZixDQUFnQ0osRUFBeEMsQ0FBSixFQUFpRDtVQUMvQ0MsR0FBRyxDQUFDRSxVQUFKLENBQWVDLGdCQUFmLENBQWdDSixFQUFoQyxHQUFxQ0wsWUFBckM7UUFDRDs7UUFDRE0sR0FBRyxDQUFDRSxVQUFKLENBQWVDLGdCQUFmLEdBQ0VFLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVIsR0FBRyxDQUFDRSxVQUFKLENBQWVDLGdCQUE5QixDQUFaLENBREY7TUFFRDs7TUFFRCxJQUFJTSxjQUFjLEdBQUcsSUFBckI7O01BQ0EsSUFBSSxDQUFDN0IsZUFBTCxFQUFzQjtRQUVwQjZCLGNBQWMsR0FBRyxLQUFqQjtRQUVBLEtBQUszRCxjQUFMLENBQW9CQyxJQUFwQixDQUF5QlYsS0FBSyxDQUFDc0QsUUFBTixFQUF6QixFQUEyQyxVQUFVckIsR0FBVixFQUFlO1VBQ3hELElBQUlBLEdBQUosRUFBUztZQUdQbkQsZ0JBQUlrRCxLQUFKLENBQVcsOERBQTZEaEMsS0FBTSxPQUFNNEIsZ0JBQUV5QyxRQUFGLENBQVdILElBQUksQ0FBQ0MsU0FBTCxDQUFlbEMsR0FBZixDQUFYLEVBQWdDL0QsZUFBaEMsQ0FBaUQsR0FBckk7O1lBSUFrRixNQUFNLENBQUNuQixHQUFELENBQU47VUFDRDtRQUNGLENBVkQ7TUFXRCxDQWZELE1BZU8sSUFBSSxLQUFLeEIsY0FBTCxDQUFvQjZELFNBQXBCLENBQThCWCxHQUFHLENBQUNZLFVBQWxDLEVBQThDcEcsTUFBbEQsRUFBMEQ7UUFDL0QsS0FBS3NDLGNBQUwsQ0FBb0IrRCxtQkFBcEIsQ0FBd0NiLEdBQUcsQ0FBQ1ksVUFBNUMsRUFBd0QsVUFBVXRDLEdBQVYsRUFBZSxHQUFHd0MsSUFBbEIsRUFBd0I7VUFDOUUsSUFBSXhDLEdBQUosRUFBUztZQUNQLE9BQU9tQixNQUFNLENBQUNuQixHQUFELENBQWI7VUFDRDs7VUFDRG5ELGdCQUFJQyxLQUFKLENBQVcsb0NBQW1DaUIsS0FBTSxPQUFNNEIsZ0JBQUV5QyxRQUFGLENBQVdILElBQUksQ0FBQ0MsU0FBTCxDQUFlTSxJQUFmLENBQVgsRUFBaUN2RyxlQUFqQyxDQUFrRCxHQUE1Rzs7VUFDQWlGLE9BQU8sQ0FBQ3NCLElBQUQsQ0FBUDtRQUNELENBTkQ7TUFPRCxDQVJNLE1BUUEsSUFBSWQsR0FBSixhQUFJQSxHQUFKLG1DQUFJQSxHQUFHLENBQUVFLFVBQVQsNkNBQUksaUJBQWlCQyxnQkFBckIsRUFBdUM7UUFDNUMsS0FBS3JELGNBQUwsQ0FBb0JDLElBQXBCLENBQXlCVixLQUFLLENBQUNzRCxRQUFOLEVBQXpCLEVBQTJDLFVBQVVyQixHQUFWLEVBQWV5QyxLQUFmLEVBQXNCO1VBQy9ELElBQUl6QyxHQUFKLEVBQVM7WUFDUCxPQUFPbUIsTUFBTSxDQUFDLElBQUloQixLQUFKLENBQVcsb0NBQW1DSCxHQUFHLENBQUMwQyxJQUFLLE1BQUsxQyxHQUFHLENBQUNDLE9BQVEsRUFBeEUsQ0FBRCxDQUFiO1VBQ0Q7O1VBQ0RwRCxnQkFBSUMsS0FBSixDQUFXLHlDQUF3Q2lCLEtBQU0sT0FBTTRCLGdCQUFFeUMsUUFBRixDQUFXSCxJQUFJLENBQUNDLFNBQUwsQ0FBZU8sS0FBZixDQUFYLEVBQWtDeEcsZUFBbEMsQ0FBbUQsR0FBbEg7O1VBQ0FpRixPQUFPLENBQUN1QixLQUFELENBQVA7UUFDRCxDQU5EO01BT0QsQ0FSTSxNQVFBO1FBRUxOLGNBQWMsR0FBRyxLQUFqQjtNQUNEOztNQUVELE1BQU1RLEdBQUcsR0FBSSxZQUFXakIsR0FBRyxDQUFDWSxVQUFXLFdBQTNCLElBQ1RmLFFBQVEsQ0FBQ2hDLFFBQVQsR0FBcUIsWUFBV2dDLFFBQVEsQ0FBQ2hDLFFBQVMsR0FBbEQsR0FBdUQsRUFEOUMsS0FFVGdDLFFBQVEsQ0FBQy9CLFNBQVQsR0FBc0IsV0FBVStCLFFBQVEsQ0FBQy9CLFNBQVUsR0FBbkQsR0FBd0QsRUFGL0MsS0FHVCxLQUFLdEIsV0FBTCxJQUFvQm9ELFFBQXBCLEdBQWdDLGFBQVlBLFFBQVMsR0FBckQsR0FBMEQsRUFIakQsSUFJVCxTQUFRdkQsS0FBTSxPQUFNc0MsT0FBUSxHQUovQjs7TUFLQXhELGdCQUFJQyxLQUFKLENBQVU2RixHQUFWOztNQUNBLElBQUk7UUFDRixNQUFNQyxHQUFHLEdBQUcsTUFBTSxLQUFLQyxXQUFMLENBQWlCbkIsR0FBakIsQ0FBbEI7O1FBQ0EsSUFBSSxDQUFDUyxjQUFMLEVBQXFCO1VBR25CakIsT0FBTyxDQUFDMEIsR0FBRCxDQUFQO1FBQ0Q7TUFDRixDQVBELENBT0UsT0FBTzVDLEdBQVAsRUFBWTtRQUNaLE9BQU9tQixNQUFNLENBQUNuQixHQUFELENBQWI7TUFDRDtJQUNGLENBN0ZZLENBQWI7RUE4RkQ7O0VBRVksTUFBUDhDLE9BQU8sR0FBSTtJQUNmLE1BQU0sSUFBSTNDLEtBQUosQ0FBVyxvREFBWCxDQUFOO0VBQ0Q7O0VBRWUsTUFBVjRDLFVBQVUsR0FBSTtJQUNsQixLQUFLdkUsY0FBTCxDQUFvQndFLGtCQUFwQjtFQUNEOztFQUVnQixNQUFYSCxXQUFXLEdBQWlCO0lBQ2hDLE1BQU0sSUFBSTFDLEtBQUosQ0FBVyx3REFBWCxDQUFOO0VBQ0Q7O0VBRVksTUFBUDhDLE9BQU8sR0FBYztJQUN6QixNQUFNLElBQUk5QyxLQUFKLENBQVcsb0RBQVgsQ0FBTjtFQUNEOztFQUVEbkIsU0FBUyxDQUFFZ0IsR0FBRixFQUFPa0QsR0FBUCxFQUFZQyxVQUFaLEVBQXdCO0lBQy9CLElBQUl4RCxnQkFBRW1DLEtBQUYsQ0FBUXFCLFVBQVIsYUFBUUEsVUFBUix1QkFBUUEsVUFBVSxDQUFFN0IsUUFBcEIsQ0FBSixFQUFtQztNQUNqQ3pFLGdCQUFJOEIsSUFBSixDQUFVLGtEQUFpRHVFLEdBQUksNEJBQS9EOztNQUNBO0lBQ0Q7O0lBQ0QsSUFBSXZELGdCQUFFQyxPQUFGLENBQVUsS0FBS3dELHlCQUFmLEtBQTZDLENBQUNELFVBQVUsQ0FBQ0UsYUFBN0QsRUFBNEU7TUFDMUV4RyxnQkFBSThCLElBQUosQ0FBVSxrREFBaUR1RSxHQUFJLDhCQUE2QmpCLElBQUksQ0FBQ0MsU0FBTCxDQUFlaUIsVUFBZixDQUEyQixFQUF2SDs7TUFDQTtJQUNEOztJQUVELElBQUlBLFVBQVUsQ0FBQ0UsYUFBZixFQUE4QjtNQUM1QnhHLGdCQUFJQyxLQUFKLENBQVcsdUNBQXNDb0csR0FBSSxPQUFNQyxVQUFVLENBQUM3QixRQUFTLHVDQUEvRTs7TUFDQTtJQUNEOztJQUVELE1BQU0sQ0FBQy9CLFFBQUQsRUFBV0MsU0FBWCxJQUF3QixLQUFLNEQseUJBQW5DOztJQUVBdkcsZ0JBQUlDLEtBQUosQ0FBVywyQkFBMEJ5QyxRQUFTLGVBQWNDLFNBQVUsTUFBS3lDLElBQUksQ0FBQ0MsU0FBTCxDQUFlaUIsVUFBZixDQUEyQixFQUF0Rzs7SUFDQSxJQUFJeEQsZ0JBQUUyRCxHQUFGLENBQU0sS0FBS25GLE9BQUwsQ0FBYW9CLFFBQWIsQ0FBTixFQUE4QkMsU0FBOUIsQ0FBSixFQUE4QztNQUM1QzNDLGdCQUFJQyxLQUFKLENBQVcscURBQW9ELEtBQUtxQixPQUFMLENBQWFvQixRQUFiLEVBQXVCQyxTQUF2QixDQUFrQywrQkFBakc7SUFDRDs7SUFDRCxLQUFLckIsT0FBTCxDQUFhK0UsR0FBYixJQUFvQixLQUFLL0UsT0FBTCxDQUFhK0UsR0FBYixLQUFxQixFQUF6QztJQUNBLEtBQUsvRSxPQUFMLENBQWFvQixRQUFiLEVBQXVCQyxTQUF2QixJQUFvQzJELFVBQVUsQ0FBQzdCLFFBQS9DO0VBQ0Q7O0VBRURwQyxZQUFZLENBQUVjLEdBQUYsRUFBT2tELEdBQVAsRUFBWUssV0FBWixFQUF5QkMsV0FBekIsRUFBc0M7SUFDaEQzRyxnQkFBSUMsS0FBSixDQUFXLDJCQUEwQm9HLEdBQUksbUJBQWtCSyxXQUFZLG1CQUFrQkMsV0FBWSxHQUFyRzs7SUFDQSxJQUFJLENBQUMsS0FBS3JGLE9BQUwsQ0FBYStFLEdBQWIsQ0FBTCxFQUF3QjtNQUN0QnJHLGdCQUFJOEIsSUFBSixDQUFVLCtCQUE4QnVFLEdBQUksd0JBQTVDOztNQUNBO0lBQ0Q7O0lBRUQsS0FBSy9FLE9BQUwsQ0FBYStFLEdBQWIsRUFBa0JPLFdBQWxCLEdBQWdDO01BQzlCRixXQUQ4QjtNQUU5QkM7SUFGOEIsQ0FBaEM7RUFJRDs7RUFFRHJFLFlBQVksQ0FBRWEsR0FBRixFQUFPa0QsR0FBUCxFQUFZQyxVQUFaLEVBQXdCO0lBQUE7O0lBQ2xDLElBQUl4RCxnQkFBRW1DLEtBQUYsQ0FBUXFCLFVBQVIsYUFBUUEsVUFBUix1QkFBUUEsVUFBVSxDQUFFN0IsUUFBcEIsQ0FBSixFQUFtQztNQUNqQ3pFLGdCQUFJQyxLQUFKLENBQVcsa0VBQVg7O01BQ0E7SUFDRDs7SUFFREQsZ0JBQUlDLEtBQUosQ0FBVyw2QkFBNEJvRyxHQUFJLE1BQUtDLFVBQVUsQ0FBQzdCLFFBQVMsRUFBcEU7O0lBR0EsSUFBSSwyQkFBS25ELE9BQUwsQ0FBYStFLEdBQWIsa0dBQW1CTyxXQUFuQixnRkFBZ0NGLFdBQWhDLE1BQWdESixVQUFVLENBQUM3QixRQUEvRCxFQUF5RTtNQUN2RSxNQUFNO1FBQUNpQyxXQUFEO1FBQWNDO01BQWQsSUFBNkIsS0FBS3JGLE9BQUwsQ0FBYStFLEdBQWIsRUFBa0JPLFdBQXJEO01BQ0EsT0FBTyxLQUFLdEYsT0FBTCxDQUFhK0UsR0FBYixFQUFrQk8sV0FBekI7TUFHQSxNQUFNdEYsT0FBTyxHQUFHLEtBQUtBLE9BQUwsQ0FBYStFLEdBQWIsQ0FBaEI7O01BQ0EsS0FBSyxNQUFNLENBQUNRLElBQUQsRUFBT3BDLFFBQVAsQ0FBWCxJQUErQjNCLGdCQUFFZ0UsT0FBRixDQUFVeEYsT0FBVixDQUEvQixFQUFtRDtRQUNqRCxJQUFJbUQsUUFBUSxLQUFLaUMsV0FBakIsRUFBOEI7VUFDNUIxRyxnQkFBSUMsS0FBSixDQUFXLHFDQUFvQ29HLEdBQUksbUJBQWtCSyxXQUFZLG1CQUFrQkMsV0FBWSxhQUEvRzs7VUFDQXJGLE9BQU8sQ0FBQ3VGLElBQUQsQ0FBUCxHQUFnQkYsV0FBaEI7VUFDQTtRQUNEO01BQ0Y7O01BQ0QzRyxnQkFBSThCLElBQUosQ0FBVSwrQkFBOEJ1RSxHQUFJLHlFQUE1Qzs7TUFDQXJHLGdCQUFJOEIsSUFBSixDQUFVLGdCQUFlNEUsV0FBWSxtQkFBa0JDLFdBQVksd0JBQXVCdkIsSUFBSSxDQUFDQyxTQUFMLENBQWUvRCxPQUFmLENBQXdCLEVBQWxIO0lBQ0Q7O0lBR0QsTUFBTUEsT0FBTyxHQUFHLEtBQUtBLE9BQUwsQ0FBYStFLEdBQWIsQ0FBaEI7O0lBQ0EsS0FBSyxNQUFNLENBQUNRLElBQUQsRUFBT3BDLFFBQVAsQ0FBWCxJQUErQjNCLGdCQUFFZ0UsT0FBRixDQUFVeEYsT0FBVixDQUEvQixFQUFtRDtNQUNqRCxJQUFJbUQsUUFBUSxLQUFLNkIsVUFBVSxDQUFDN0IsUUFBNUIsRUFBc0M7UUFDcEMsT0FBT25ELE9BQU8sQ0FBQ3VGLElBQUQsQ0FBZDtRQUNBO01BQ0Q7SUFDRjs7SUFDRDdHLGdCQUFJQyxLQUFKLENBQVcsV0FBVXFHLFVBQVUsQ0FBQzdCLFFBQVMsc0JBQXFCNEIsR0FBSSw4QkFBbEU7RUFDRDs7RUFFRHhELFNBQVMsQ0FBRUgsUUFBRixFQUFZQyxTQUFaLEVBQXVCO0lBQzlCLE9BQU8sQ0FBQyxLQUFLckIsT0FBTCxDQUFhb0IsUUFBYixLQUEwQixFQUEzQixFQUErQkMsU0FBL0IsQ0FBUDtFQUNEOztFQUVlLE1BQVZvRSxVQUFVLENBQUVyRSxRQUFGLEVBQVlDLFNBQVosRUFBdUI7SUFDckMsS0FBSzRELHlCQUFMLEdBQWlDLENBQUM3RCxRQUFELEVBQVdDLFNBQVgsQ0FBakM7SUFDQSxLQUFLcEMsb0JBQUwsR0FBNEIsS0FBNUI7SUFLQSxNQUFNeUcsUUFBUSxHQUFHO01BQ2Z0RSxRQURlO01BRWZDO0lBRmUsQ0FBakI7O0lBTUEsS0FBSyxNQUFNc0UsT0FBWCxJQUFzQixDQUFDLElBQUQsRUFBTyxLQUFQLENBQXRCLEVBQXFDO01BQ25DLE1BQU0sS0FBSzFELElBQUwsQ0FBVSxpQkFBVixFQUE2QjJELE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO1FBQy9DRjtNQUQrQyxDQUFkLEVBRWhDRCxRQUZnQyxDQUE3QixFQUVRLEtBRlIsQ0FBTjtJQUdEOztJQUVELE1BQU0sS0FBS3pELElBQUwsQ0FBVSxjQUFWLEVBQTBCeUQsUUFBMUIsQ0FBTjs7SUFDQWhILGdCQUFJQyxLQUFKLENBQVUsZ0JBQVY7O0lBRUEsSUFBSSxLQUFLUCxhQUFMLElBQXNCSSxjQUFLQyxlQUFMLENBQXFCLEtBQUtILGVBQTFCLEVBQTJDLEdBQTNDLEVBQWdESCw2QkFBaEQsQ0FBMUIsRUFBMEc7TUFDeEcsTUFBTSxLQUFLOEQsSUFBTCxDQUFVLGVBQVYsRUFBMkJ5RCxRQUEzQixFQUFxQyxLQUFyQyxDQUFOO0lBQ0Q7O0lBRUQsS0FBS3pHLG9CQUFMLEdBQTRCLElBQTVCOztJQUVBLElBQUksS0FBS00sc0JBQVQsRUFBaUM7TUFDL0IsTUFBTSxLQUFLdUcsa0JBQUwsQ0FBd0IxRSxRQUF4QixFQUFrQ0MsU0FBbEMsQ0FBTjtJQUNELENBRkQsTUFFTztNQUNMLE1BQU0sS0FBSzBFLGNBQUwsQ0FBb0IzRSxRQUFwQixFQUE4QkMsU0FBOUIsQ0FBTjtJQUNEO0VBQ0Y7O0VBS21CLE1BQWQwRSxjQUFjLENBQUUzRSxRQUFGLEVBQVlDLFNBQVosRUFBdUI7SUFDekMsTUFBTXFFLFFBQVEsR0FBRztNQUNmdEUsUUFEZTtNQUVmQztJQUZlLENBQWpCO0lBS0EsTUFBTSxLQUFLWSxJQUFMLENBQVUsa0JBQVYsRUFBOEJ5RCxRQUE5QixFQUF3QyxLQUF4QyxDQUFOO0lBQ0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLGFBQVYsRUFBeUJ5RCxRQUF6QixFQUFtQyxLQUFuQyxDQUFOO0lBR0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLGdCQUFWLEVBQTRCeUQsUUFBNUIsRUFBc0MsS0FBdEMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxnQkFBVixFQUE0QnlELFFBQTVCLEVBQXNDLEtBQXRDLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsYUFBVixFQUF5QnlELFFBQXpCLEVBQW1DLEtBQW5DLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsaUJBQVYsRUFBNkJ5RCxRQUE3QixFQUF1QyxLQUF2QyxDQUFOO0lBQ0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLGdCQUFWLEVBQTRCeUQsUUFBNUIsRUFBc0MsS0FBdEMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSx1QkFBVixFQUFtQ3lELFFBQW5DLEVBQTZDLEtBQTdDLENBQU47RUFDRDs7RUFNdUIsTUFBbEJJLGtCQUFrQixDQUFFMUUsUUFBRixFQUFZQyxTQUFaLEVBQXVCO0lBQzdDLE1BQU1xRSxRQUFRLEdBQUc7TUFDZnRFLFFBRGU7TUFFZkM7SUFGZSxDQUFqQjtJQUtBLE1BQU0sS0FBS1ksSUFBTCxDQUFVLGtCQUFWLEVBQThCeUQsUUFBOUIsRUFBd0MsS0FBeEMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxhQUFWLEVBQXlCeUQsUUFBekIsRUFBbUMsS0FBbkMsQ0FBTjtJQUdBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxzQkFBVixFQUFrQ3lELFFBQWxDLEVBQTRDLEtBQTVDLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsZ0JBQVYsRUFBNEJ5RCxRQUE1QixFQUFzQyxLQUF0QyxDQUFOO0lBQ0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLG9DQUFWLEVBQWdEMkQsTUFBTSxDQUFDQyxNQUFQLENBQWM7TUFDbEVHLFFBQVEsRUFBRTtJQUR3RCxDQUFkLEVBRW5ETixRQUZtRCxDQUFoRCxFQUVRLEtBRlIsQ0FBTjtJQUdBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxtQkFBVixFQUErQnlELFFBQS9CLEVBQXlDLEtBQXpDLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsaUJBQVYsRUFBNkJ5RCxRQUE3QixFQUF1QyxLQUF2QyxDQUFOO0lBQ0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLGtCQUFWLEVBQThCeUQsUUFBOUIsRUFBd0MsS0FBeEMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxZQUFWLEVBQXdCeUQsUUFBeEIsRUFBa0MsS0FBbEMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxnQkFBVixFQUE0QnlELFFBQTVCLEVBQXNDLEtBQXRDLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsYUFBVixFQUF5QnlELFFBQXpCLEVBQW1DLEtBQW5DLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsZUFBVixFQUEyQnlELFFBQTNCLEVBQXFDLEtBQXJDLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUseUJBQVYsRUFBcUN5RCxRQUFyQyxFQUErQyxLQUEvQyxDQUFOO0lBQ0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLHlDQUFWLEVBQXFEeUQsUUFBckQsRUFBK0QsS0FBL0QsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSx5QkFBVixFQUFxQzJELE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQ3ZESSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWEsZ0JBQWIsRUFBK0IsS0FBL0I7SUFEMEMsQ0FBZCxFQUV4Q1AsUUFGd0MsQ0FBckMsRUFFUSxLQUZSLENBQU47SUFHQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsZ0NBQVYsRUFBNEMyRCxNQUFNLENBQUNDLE1BQVAsQ0FBYztNQUM5REYsT0FBTyxFQUFFO0lBRHFELENBQWQsRUFFL0NELFFBRitDLENBQTVDLEVBRVEsS0FGUixDQUFOO0lBR0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLGlCQUFWLEVBQTZCeUQsUUFBN0IsRUFBdUMsS0FBdkMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSwrQkFBVixFQUEyQzJELE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQzdESyxNQUFNLEVBQUU7SUFEcUQsQ0FBZCxFQUU5Q1IsUUFGOEMsQ0FBM0MsRUFFUSxLQUZSLENBQU47SUFHQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsK0JBQVYsRUFBMkMyRCxNQUFNLENBQUNDLE1BQVAsQ0FBYztNQUM3RE0sS0FBSyxFQUFFO0lBRHNELENBQWQsRUFFOUNULFFBRjhDLENBQTNDLEVBRVEsS0FGUixDQUFOO0lBR0EsTUFBTSxLQUFLekQsSUFBTCxDQUFVLCtCQUFWLEVBQTJDMkQsTUFBTSxDQUFDQyxNQUFQLENBQWM7TUFDN0RGLE9BQU8sRUFBRTtJQURvRCxDQUFkLEVBRTlDRCxRQUY4QyxDQUEzQyxFQUVRLEtBRlIsQ0FBTjtJQUdBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxrQ0FBVixFQUE4QzJELE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQ2hFTyxLQUFLLEVBQUU7SUFEeUQsQ0FBZCxFQUVqRFYsUUFGaUQsQ0FBOUMsRUFFUSxLQUZSLENBQU47SUFHQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUscUNBQVYsRUFBaUQyRCxNQUFNLENBQUNDLE1BQVAsQ0FBYztNQUNuRVEsV0FBVyxFQUFFO0lBRHNELENBQWQsRUFFcERYLFFBRm9ELENBQWpELEVBRVEsS0FGUixDQUFOO0lBSUEsTUFBTSxLQUFLekQsSUFBTCxDQUFVLGtCQUFWLEVBQThCeUQsUUFBOUIsRUFBd0MsS0FBeEMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxlQUFWLEVBQTJCeUQsUUFBM0IsRUFBcUMsS0FBckMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxlQUFWLEVBQTJCeUQsUUFBM0IsRUFBcUMsS0FBckMsQ0FBTjtJQUNBLE1BQU0sS0FBS3pELElBQUwsQ0FBVSxnQkFBVixFQUE0QnlELFFBQTVCLEVBQXNDLEtBQXRDLENBQU47SUFDQSxNQUFNLEtBQUt6RCxJQUFMLENBQVUsaUJBQVYsRUFBNkJ5RCxRQUE3QixFQUF1QyxLQUF2QyxDQUFOO0lBQ0EsTUFBTVksZUFBZSxHQUFHLE1BQU0sS0FBS3JFLElBQUwsQ0FBVSw0QkFBVixFQUF3Q3lELFFBQXhDLENBQTlCOztJQUNBLEtBQUssTUFBTWEsTUFBWCxJQUFxQixDQUFDRCxlQUFlLENBQUNFLFFBQWhCLElBQTRCLEVBQTdCLEVBQWlDQyxHQUFqQyxDQUFzQ0MsS0FBRCxJQUFXQSxLQUFLLENBQUNILE1BQXRELENBQXJCLEVBQW9GO01BQ2xGLE1BQU0sS0FBS3RFLElBQUwsQ0FBVSxnQ0FBVixFQUE0QzJELE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO1FBQzlEVSxNQUQ4RDtRQUU5REksS0FBSyxFQUFFO01BRnVELENBQWQsRUFHL0NqQixRQUgrQyxDQUE1QyxFQUdRLEtBSFIsQ0FBTjtJQUlEOztJQUVELE1BQU0sS0FBS3pELElBQUwsQ0FBVSx1QkFBVixFQUFtQ3lELFFBQW5DLEVBQTZDLEtBQTdDLENBQU47RUFDRDs7RUFFYyxNQUFUa0IsU0FBUyxDQUFFeEYsUUFBRixFQUFZO0lBQ3pCLE9BQU8sTUFBTSxJQUFJMEIsaUJBQUosQ0FBTSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7TUFJdEMsTUFBTTZELFdBQVcsR0FBRyxDQUFDaEYsR0FBRCxFQUFNaUYsSUFBTixLQUFlO1FBQ2pDLElBQUlqRixHQUFKLEVBQVM7VUFDUCxPQUFPbUIsTUFBTSxDQUFDbkIsR0FBRCxDQUFiO1FBQ0Q7O1FBRUQsTUFBTWtGLFdBQVcsR0FBR0QsSUFBSSxDQUFDRSwrQkFBekI7UUFDQSxNQUFNQyxlQUFlLEdBQUdILElBQUksQ0FBQ0ksMkJBQTdCOztRQUlBLElBQUlILFdBQVcsSUFBSUUsZUFBZSxLQUFLRixXQUF2QyxFQUFvRDtVQUNsRHJJLGdCQUFJQyxLQUFKLENBQVcsNkRBQUQsR0FDQyxZQUFXc0ksZUFBZ0IsZUFBY0YsV0FBWSxFQURoRTtRQUVEOztRQUVEL0QsTUFBTSxDQUFDLElBQUloQixLQUFKLENBQVUsK0JBQVYsQ0FBRCxDQUFOO01BQ0QsQ0FoQkQ7O01BaUJBLEtBQUszQixjQUFMLENBQW9CK0QsbUJBQXBCLENBQXdDLDRCQUF4QyxFQUFzRXlDLFdBQXRFO01BR0EsT0FBTyxDQUFDLFlBQVk7UUFDbEIsSUFBSU0sUUFBSixFQUFjQyxpQkFBZDs7UUFDQSxJQUFJO1VBQ0QsQ0FBQ0EsaUJBQUQsRUFBb0JELFFBQXBCLElBQWdDLE1BQU0sS0FBS2xGLElBQUwsQ0FBVSxjQUFWLEVBQTBCO1lBQy9EYjtVQUQrRCxDQUExQixDQUF2QztRQUdELENBSkQsQ0FJRSxPQUFPUyxHQUFQLEVBQVk7VUFDWm5ELGdCQUFJOEIsSUFBSixDQUFVLDZCQUE0QnFCLEdBQUcsQ0FBQ0MsT0FBUSxFQUFsRDs7VUFDQWtCLE1BQU0sQ0FBQ25CLEdBQUQsQ0FBTjtRQUNEOztRQUlELElBQUlMLGdCQUFFQyxPQUFGLENBQVUwRixRQUFWLENBQUosRUFBeUI7VUFDdkIsSUFBSTNDLEdBQUcsR0FBRyxnQ0FBVjs7VUFDQTlGLGdCQUFJQyxLQUFKLENBQVU2RixHQUFWOztVQUNBeEIsTUFBTSxDQUFDLElBQUloQixLQUFKLENBQVV3QyxHQUFWLENBQUQsQ0FBTjtRQUNELENBSkQsTUFJTztVQUNMekIsT0FBTyxDQUFDLENBQUNxRSxpQkFBRCxFQUFvQkQsUUFBcEIsQ0FBRCxDQUFQO1FBQ0Q7TUFDRixDQXBCTSxHQUFQO0lBcUJELENBN0NZLENBQWI7RUE4Q0Q7O0VBRURsRyx5QkFBeUIsQ0FBRVksR0FBRixFQUFPd0YsT0FBUCxFQUFnQjtJQUl2QyxLQUFLdkgsUUFBTCxDQUFjd0gsSUFBZCxDQUFtQkQsT0FBTyxDQUFDL0QsRUFBM0I7RUFDRDs7RUFFRHBDLGtCQUFrQixHQUFJO0lBRXBCeEMsZ0JBQUlDLEtBQUosQ0FBVyxpQ0FBWDtFQUNEOztFQUVENEksY0FBYyxDQUFFMUYsR0FBRixFQUFPMkYsVUFBUCxFQUFtQjtJQUUvQjlJLGdCQUFJQyxLQUFKLENBQVcsa0JBQWlCbUYsSUFBSSxDQUFDQyxTQUFMLENBQWV5RCxVQUFmLENBQTJCLEVBQXZEO0VBQ0Q7O0FBbGlCNEIifQ==
|
|
@@ -229,4 +229,4 @@ class RpcMessageHandler extends _events.default {
|
|
|
229
229
|
exports.default = RpcMessageHandler;require('source-map-support').install();
|
|
230
230
|
|
|
231
231
|
|
|
232
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ycGMvcnBjLW1lc3NhZ2UtaGFuZGxlci5qcyJdLCJuYW1lcyI6WyJScGNNZXNzYWdlSGFuZGxlciIsIkV2ZW50RW1pdHRlcnMiLCJjb25zdHJ1Y3RvciIsImlzVGFyZ2V0QmFzZWQiLCJfaXNUYXJnZXRCYXNlZCIsImhhbmRsZU1lc3NhZ2UiLCJwbGlzdCIsInNlbGVjdG9yIiwiX19zZWxlY3RvciIsImxvZyIsImRlYnVnIiwiYXJndW1lbnQiLCJfX2FyZ3VtZW50IiwiZW1pdCIsIldJUlNpbXVsYXRvck5hbWVLZXkiLCJXSVJTaW11bGF0b3JCdWlsZEtleSIsIldJUlNpbXVsYXRvclByb2R1Y3RWZXJzaW9uS2V5IiwiV0lSQXBwbGljYXRpb25EaWN0aW9uYXJ5S2V5IiwiV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwiV0lSTGlzdGluZ0tleSIsImhhbmRsZURhdGFNZXNzYWdlIiwicGFyc2VEYXRhS2V5IiwiSlNPTiIsInBhcnNlIiwiV0lSTWVzc2FnZURhdGFLZXkiLCJ0b1N0cmluZyIsImVyciIsImVycm9yIiwiXyIsInRydW5jYXRlIiwic3RyaW5naWZ5IiwibGVuZ3RoIiwiRXJyb3IiLCJtZXNzYWdlIiwiZGlzcGF0Y2hEYXRhTWVzc2FnZSIsIm1zZ0lkIiwibWV0aG9kIiwicGFyYW1zIiwicmVzdWx0IiwiaXNFbXB0eSIsImxpc3RlbmVyQ291bnQiLCJoYXMiLCJ2YWx1ZSIsImV2ZW50TmFtZXMiLCJhcmdzIiwicHVzaCIsInJlY29yZCIsImNvbnRleHQiLCJzdGFydHNXaXRoIiwibmFtZSIsImRhdGFLZXkiLCJpZCIsImFwcCIsInRhcmdldEluZm8iLCJvbGRUYXJnZXRJZCIsIm5ld1RhcmdldElkIiwidGFyZ2V0SWQiLCJ3YXJuIiwidXRpbCIsImpzb25TdHJpbmdpZnkiLCJ3YXNUaHJvd24iLCJkZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHZSxNQUFNQSxpQkFBTixTQUFnQ0MsZUFBaEMsQ0FBOEM7QUFDM0RDLEVBQUFBLFdBQVcsQ0FBRUMsYUFBYSxHQUFHLEtBQWxCLEVBQXlCO0FBQ2xDO0FBRUEsU0FBS0EsYUFBTCxHQUFxQkEsYUFBckI7QUFDRDs7QUFFZ0IsTUFBYkEsYUFBYSxHQUFJO0FBQ25CLFdBQU8sS0FBS0MsY0FBWjtBQUNEOztBQUVnQixNQUFiRCxhQUFhLENBQUVBLGFBQUYsRUFBaUI7QUFDaEMsU0FBS0MsY0FBTCxHQUFzQixDQUFDLENBQUNELGFBQXhCO0FBQ0Q7O0FBRWtCLFFBQWJFLGFBQWEsQ0FBRUMsS0FBRixFQUFTO0FBQzFCLFVBQU1DLFFBQVEsR0FBR0QsS0FBSyxDQUFDRSxVQUF2Qjs7QUFDQSxRQUFJLENBQUNELFFBQUwsRUFBZTtBQUNiRSxzQkFBSUMsS0FBSixDQUFVLHNCQUFWOztBQUNBO0FBQ0Q7O0FBRUQsVUFBTUMsUUFBUSxHQUFHTCxLQUFLLENBQUNNLFVBQXZCOztBQUNBLFlBQVFMLFFBQVI7QUFDRSxXQUFLLG1CQUFMO0FBQ0UsYUFBS00sSUFBTCxDQUFVLG1CQUFWLEVBQ0UsSUFERixFQUVFRixRQUFRLENBQUNHLG1CQUZYLEVBR0VILFFBQVEsQ0FBQ0ksb0JBSFgsRUFJRUosUUFBUSxDQUFDSyw2QkFKWDtBQU1BOztBQUNGLFdBQUssc0NBQUw7QUFDRSxhQUFLSCxJQUFMLENBQVUsc0NBQVYsRUFDRSxJQURGLEVBRUVGLFFBQVEsQ0FBQ00sMkJBRlg7QUFJQTs7QUFDRixXQUFLLDhCQUFMO0FBQ0UsYUFBS0osSUFBTCxDQUFVLHlCQUFWLEVBQ0UsSUFERixFQUVFRixRQUFRLENBQUNPLDJCQUZYLEVBR0VQLFFBQVEsQ0FBQ1EsYUFIWDtBQUtBOztBQUNGLFdBQUssNEJBQUw7QUFDRSxhQUFLTixJQUFMLENBQVUsNEJBQVYsRUFBd0MsSUFBeEMsRUFBOENGLFFBQTlDO0FBQ0E7O0FBQ0YsV0FBSywrQkFBTDtBQUNFLGFBQUtFLElBQUwsQ0FBVSwrQkFBVixFQUEyQyxJQUEzQyxFQUFpREYsUUFBakQ7QUFDQTs7QUFDRixXQUFLLDBCQUFMO0FBQ0UsYUFBS0UsSUFBTCxDQUFVLDBCQUFWLEVBQXNDLElBQXRDLEVBQTRDRixRQUE1QztBQUNBOztBQUNGLFdBQUssaUNBQUw7QUFDRSxhQUFLRSxJQUFMLENBQVUsaUNBQVYsRUFBNkMsSUFBN0MsRUFBbURGLFFBQW5EO0FBQ0E7O0FBQ0YsV0FBSywwQkFBTDtBQUNFLGFBQUtFLElBQUwsQ0FBVSwwQkFBVixFQUFzQyxJQUF0QyxFQUE0Q0YsUUFBNUM7QUFDQTs7QUFDRixXQUFLLDJCQUFMO0FBQ0UsY0FBTSxLQUFLUyxpQkFBTCxDQUF1QmQsS0FBdkIsQ0FBTjtBQUNBOztBQUNGO0FBQ0VHLHdCQUFJQyxLQUFKLENBQVcsK0JBQThCSCxRQUFTLGdCQUF4QyxHQUNQLHlCQURIOztBQXpDSjtBQTRDRDs7QUFFRGMsRUFBQUEsWUFBWSxDQUFFZixLQUFGLEVBQVM7QUFDbkIsUUFBSTtBQUNGLGFBQU9nQixJQUFJLENBQUNDLEtBQUwsQ0FBV2pCLEtBQUssQ0FBQ00sVUFBTixDQUFpQlksaUJBQWpCLENBQW1DQyxRQUFuQyxDQUE0QyxNQUE1QyxDQUFYLENBQVA7QUFDRCxLQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZO0FBQ1pqQixzQkFBSWtCLEtBQUosQ0FBVyw2QkFBNEJDLGdCQUFFQyxRQUFGLENBQVdQLElBQUksQ0FBQ1EsU0FBTCxDQUFleEIsS0FBZixDQUFYLEVBQWtDO0FBQUN5QixRQUFBQSxNQUFNLEVBQUU7QUFBVCxPQUFsQyxDQUFpRCxFQUF4Rjs7QUFDQSxZQUFNLElBQUlDLEtBQUosQ0FBVyxpQ0FBZ0NOLEdBQUcsQ0FBQ08sT0FBUSxFQUF2RCxDQUFOO0FBQ0Q7QUFDRjs7QUFFd0IsUUFBbkJDLG1CQUFtQixDQUFFQyxLQUFGLEVBQVNDLE1BQVQsRUFBaUJDLE1BQWpCLEVBQXlCQyxNQUF6QixFQUFpQ1gsS0FBakMsRUFBd0M7QUFDL0QsUUFBSSxDQUFDQyxnQkFBRVcsT0FBRixDQUFVSixLQUFWLENBQUwsRUFBdUI7QUFDckIxQixzQkFBSUMsS0FBSixDQUFXLDBCQUF5QnlCLEtBQU0sSUFBMUM7QUFDRDs7QUFFRCxRQUFJQSxLQUFKLEVBQVc7QUFDVCxVQUFJLEtBQUtLLGFBQUwsQ0FBbUJMLEtBQW5CLENBQUosRUFBK0I7QUFBQTs7QUFDN0IsWUFBSVAsZ0JBQUVhLEdBQUYsWUFBTUgsTUFBTiw0Q0FBTSxRQUFRQSxNQUFkLEVBQXNCLE9BQXRCLENBQUosRUFBb0M7QUFDbENBLFVBQUFBLE1BQU0sR0FBR0EsTUFBTSxDQUFDQSxNQUFQLENBQWNJLEtBQXZCO0FBQ0Q7O0FBQ0QsYUFBSzdCLElBQUwsQ0FBVXNCLEtBQVYsRUFBaUJSLEtBQWpCLEVBQXdCVyxNQUF4QjtBQUNELE9BTEQsTUFLTztBQUNMN0Isd0JBQUlrQixLQUFKLENBQVcsNENBQTJDUSxLQUFNLElBQWxELEdBQ1AsNENBRE8sR0FFUCxZQUFXYixJQUFJLENBQUNRLFNBQUwsQ0FBZVEsTUFBZixDQUF1QixLQUYzQixHQUdQLFdBQVVoQixJQUFJLENBQUNRLFNBQUwsQ0FBZUgsS0FBZixDQUFzQixHQUhuQztBQUlEOztBQUNEO0FBQ0Q7O0FBRUQsUUFBSWdCLFVBQVUsR0FBRyxDQUFDUCxNQUFELENBQWpCO0FBQ0EsUUFBSVEsSUFBSSxHQUFHLENBQUNQLE1BQUQsQ0FBWDs7QUFJQSxZQUFRRCxNQUFSO0FBQ0UsV0FBSywwQkFBTDtBQUNFTyxRQUFBQSxVQUFVLENBQUNFLElBQVgsQ0FBZ0IscUJBQWhCOztBQUVGLFdBQUsscUJBQUw7QUFDRUQsUUFBQUEsSUFBSSxHQUFHLENBQUUsSUFBR1IsTUFBTyxTQUFaLENBQVA7QUFDQTs7QUFDRixXQUFLLHdCQUFMO0FBQ0VRLFFBQUFBLElBQUksR0FBRyxDQUFDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ1MsTUFBbEIsQ0FBUDtBQUNBOztBQUNGLFdBQUssc0JBQUw7QUFDRUYsUUFBQUEsSUFBSSxHQUFHLENBQUNQLE1BQU0sQ0FBQ0osT0FBUixDQUFQO0FBQ0E7O0FBQ0YsV0FBSyxpQ0FBTDtBQUNFVyxRQUFBQSxJQUFJLEdBQUcsQ0FBQ1AsTUFBTSxDQUFDVSxPQUFSLENBQVA7QUFDQTs7QUFDRjtBQUVFO0FBbEJKOztBQXFCQSxRQUFJbkIsZ0JBQUVvQixVQUFGLENBQWFaLE1BQWIsRUFBcUIsVUFBckIsQ0FBSixFQUFzQztBQUVwQ08sTUFBQUEsVUFBVSxDQUFDRSxJQUFYLENBQWdCLGNBQWhCO0FBQ0FELE1BQUFBLElBQUksQ0FBQ0MsSUFBTCxDQUFVVCxNQUFWO0FBQ0Q7O0FBQ0QsUUFBSVIsZ0JBQUVvQixVQUFGLENBQWFaLE1BQWIsRUFBcUIsVUFBckIsQ0FBSixFQUFzQztBQUVwQ08sTUFBQUEsVUFBVSxDQUFDRSxJQUFYLENBQWdCLGNBQWhCO0FBQ0FELE1BQUFBLElBQUksQ0FBQ0MsSUFBTCxDQUFVVCxNQUFWO0FBQ0Q7O0FBRUQsU0FBSyxNQUFNYSxJQUFYLElBQW1CTixVQUFuQixFQUErQjtBQUM3QixXQUFLOUIsSUFBTCxDQUFVb0MsSUFBVixFQUFnQnRCLEtBQWhCLEVBQXVCLEdBQUdpQixJQUExQjtBQUNEO0FBQ0Y7O0FBRXNCLFFBQWpCeEIsaUJBQWlCLENBQUVkLEtBQUYsRUFBUztBQUFBOztBQUM5QixVQUFNNEMsT0FBTyxHQUFHLEtBQUs3QixZQUFMLENBQWtCZixLQUFsQixDQUFoQjtBQUNBLFFBQUk2QixLQUFLLEdBQUcsQ0FBQ2UsT0FBTyxDQUFDQyxFQUFSLElBQWMsRUFBZixFQUFtQjFCLFFBQW5CLEVBQVo7QUFDQSxRQUFJYSxNQUFNLEdBQUdZLE9BQU8sQ0FBQ1osTUFBckI7QUFFQSxRQUFJRixNQUFNLEdBQUdjLE9BQU8sQ0FBQ2QsTUFBckI7QUFDQSxRQUFJQyxNQUFKOztBQUVBLFFBQUlELE1BQU0sS0FBSyxzQkFBZixFQUF1QztBQUdyQyxZQUFNZ0IsR0FBRyxHQUFHOUMsS0FBSyxDQUFDTSxVQUFOLENBQWlCTSwyQkFBN0I7QUFDQSxZQUFNbUMsVUFBVSxHQUFHSCxPQUFPLENBQUNiLE1BQVIsQ0FBZWdCLFVBQWxDO0FBQ0EsV0FBS3hDLElBQUwsQ0FBVSxzQkFBVixFQUFrQyxJQUFsQyxFQUF3Q3VDLEdBQXhDLEVBQTZDQyxVQUE3QztBQUNBO0FBQ0QsS0FQRCxNQU9PLElBQUlqQixNQUFNLEtBQUssbUNBQWYsRUFBb0Q7QUFDekQsWUFBTWdCLEdBQUcsR0FBRzlDLEtBQUssQ0FBQ00sVUFBTixDQUFpQk0sMkJBQTdCO0FBQ0EsWUFBTW9DLFdBQVcsR0FBR0osT0FBTyxDQUFDYixNQUFSLENBQWVpQixXQUFuQztBQUNBLFlBQU1DLFdBQVcsR0FBR0wsT0FBTyxDQUFDYixNQUFSLENBQWVrQixXQUFuQztBQUNBLFdBQUsxQyxJQUFMLENBQVUsbUNBQVYsRUFBK0MsSUFBL0MsRUFBcUR1QyxHQUFyRCxFQUEwREUsV0FBMUQsRUFBdUVDLFdBQXZFO0FBQ0E7QUFDRCxLQU5NLE1BTUEsSUFBSW5CLE1BQU0sS0FBSyx3QkFBZixFQUF5QztBQUM5QyxZQUFNZ0IsR0FBRyxHQUFHOUMsS0FBSyxDQUFDTSxVQUFOLENBQWlCTSwyQkFBN0I7QUFDQSxZQUFNbUMsVUFBVSxHQUFHSCxPQUFPLENBQUNiLE1BQVIsQ0FBZWdCLFVBQWYsSUFBNkI7QUFBQ0csUUFBQUEsUUFBUSxFQUFFTixPQUFPLENBQUNiLE1BQVIsQ0FBZW1CO0FBQTFCLE9BQWhEO0FBQ0EsV0FBSzNDLElBQUwsQ0FBVSx3QkFBVixFQUFvQyxJQUFwQyxFQUEwQ3VDLEdBQTFDLEVBQStDQyxVQUEvQztBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDSCxPQUFPLENBQUN2QixLQUFULElBQWtCLEtBQUt4QixhQUEzQixFQUEwQztBQUN4QyxVQUFJK0MsT0FBTyxDQUFDZCxNQUFSLEtBQW1CLGtDQUF2QixFQUEyRDtBQUd6RDtBQUNEOztBQUdELFVBQUlILE9BQUo7O0FBQ0EsVUFBSTtBQUNGQSxRQUFBQSxPQUFPLEdBQUdYLElBQUksQ0FBQ0MsS0FBTCxDQUFXMkIsT0FBTyxDQUFDYixNQUFSLENBQWVKLE9BQTFCLENBQVY7QUFDQUUsUUFBQUEsS0FBSyxHQUFHRixPQUFPLENBQUNrQixFQUFoQjtBQUNBZixRQUFBQSxNQUFNLEdBQUdILE9BQU8sQ0FBQ0csTUFBakI7QUFDQUUsUUFBQUEsTUFBTSxHQUFHTCxPQUFPLENBQUNLLE1BQVIsSUFBa0JMLE9BQTNCO0FBQ0FJLFFBQUFBLE1BQU0sR0FBR0MsTUFBTSxDQUFDRCxNQUFoQjtBQUNELE9BTkQsQ0FNRSxPQUFPWCxHQUFQLEVBQVk7QUFHWmpCLHdCQUFJa0IsS0FBSixDQUFXLCtDQUFYOztBQUNBLGFBQUs4QixJQUFMLENBQVVDLGNBQUtDLGFBQUwsQ0FBbUJyRCxLQUFuQixDQUFWO0FBQ0EsY0FBTW9CLEdBQU47QUFDRDtBQUNGLEtBdEJELE1Bc0JPO0FBQ0xXLE1BQUFBLE1BQU0sR0FBR2EsT0FBTyxDQUFDYixNQUFqQjtBQUNEOztBQUdELFFBQUlWLEtBQUssR0FBR3VCLE9BQU8sQ0FBQ3ZCLEtBQVIsSUFBaUIsSUFBN0I7O0FBQ0Esb0JBQUlXLE1BQUoscUNBQUksU0FBUXNCLFNBQVosRUFBdUI7QUFBQTs7QUFDckIsWUFBTTNCLE9BQU8sR0FBSSxZQUFBSyxNQUFNLFVBQU4sdURBQVFBLE1BQVIsNERBQWdCSSxLQUFoQixnQkFBeUJKLE1BQXpCLHdEQUF5QixTQUFRQSxNQUFqQyw0Q0FBeUIsZ0JBQWdCdUIsV0FBMUMsR0FDWCxhQUFBdkIsTUFBTSxVQUFOLCtEQUFRQSxNQUFSLG9FQUFnQkksS0FBaEIsa0JBQXlCSixNQUF6QixnRUFBeUIsU0FBUUEsTUFBakMsb0RBQXlCLGdCQUFnQnVCLFdBQXpDLENBRFcsR0FFWix5Q0FGSjtBQUdBbEMsTUFBQUEsS0FBSyxHQUFHLElBQUlLLEtBQUosQ0FBVUMsT0FBVixDQUFSO0FBQ0Q7O0FBRUQsVUFBTSxLQUFLQyxtQkFBTCxDQUF5QkMsS0FBekIsRUFBZ0NDLE1BQWhDLEVBQXdDQyxNQUF4QyxFQUFnREMsTUFBaEQsRUFBd0RYLEtBQXhELENBQU47QUFDRDs7QUE1TTBEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEV2ZW50RW1pdHRlcnMgZnJvbSAnZXZlbnRzJztcblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBScGNNZXNzYWdlSGFuZGxlciBleHRlbmRzIEV2ZW50RW1pdHRlcnMge1xuICBjb25zdHJ1Y3RvciAoaXNUYXJnZXRCYXNlZCA9IGZhbHNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBnZXQgaXNUYXJnZXRCYXNlZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSAhIWlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBhc3luYyBoYW5kbGVNZXNzYWdlIChwbGlzdCkge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gcGxpc3QuX19zZWxlY3RvcjtcbiAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICBsb2cuZGVidWcoJ0dvdCBhbiBpbnZhbGlkIHBsaXN0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXJndW1lbnQgPSBwbGlzdC5fX2FyZ3VtZW50O1xuICAgIHN3aXRjaCAoc2VsZWN0b3IpIHtcbiAgICAgIGNhc2UgJ19ycGNfcmVwb3J0U2V0dXA6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydFNldHVwOicsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBhcmd1bWVudC5XSVJTaW11bGF0b3JOYW1lS2V5LFxuICAgICAgICAgIGFyZ3VtZW50LldJUlNpbXVsYXRvckJ1aWxkS2V5LFxuICAgICAgICAgIGFyZ3VtZW50LldJUlNpbXVsYXRvclByb2R1Y3RWZXJzaW9uS2V5XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19yZXBvcnRDb25uZWN0ZWRBcHBsaWNhdGlvbkxpc3Q6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydENvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdDonLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYXJndW1lbnQuV0lSQXBwbGljYXRpb25EaWN0aW9uYXJ5S2V5XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvblNlbnRMaXN0aW5nOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19mb3J3YXJkR2V0TGlzdGluZzonLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5LFxuICAgICAgICAgIGFyZ3VtZW50LldJUkxpc3RpbmdLZXlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19hcHBsaWNhdGlvbkNvbm5lY3RlZDonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvbkRpc2Nvbm5lY3RlZDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfYXBwbGljYXRpb25EaXNjb25uZWN0ZWQ6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfYXBwbGljYXRpb25VcGRhdGVkOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19hcHBsaWNhdGlvblVwZGF0ZWQ6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfcmVwb3J0Q29ubmVjdGVkRHJpdmVyTGlzdDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfcmVwb3J0Q29ubmVjdGVkRHJpdmVyTGlzdDonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19yZXBvcnRDdXJyZW50U3RhdGU6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydEN1cnJlbnRTdGF0ZTonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvblNlbnREYXRhOic6XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRGF0YU1lc3NhZ2UocGxpc3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxvZy5kZWJ1ZyhgRGVidWdnZXIgZ290IGEgbWVzc2FnZSBmb3IgJyR7c2VsZWN0b3J9JyBhbmQgaGF2ZSBubyBgICtcbiAgICAgICAgICBgaGFuZGxlciwgZG9pbmcgbm90aGluZy5gKTtcbiAgICB9XG4gIH1cblxuICBwYXJzZURhdGFLZXkgKHBsaXN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHBsaXN0Ll9fYXJndW1lbnQuV0lSTWVzc2FnZURhdGFLZXkudG9TdHJpbmcoJ3V0ZjgnKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZXJyb3IoYFVucGFyc2VhYmxlIG1lc3NhZ2UgZGF0YTogJHtfLnRydW5jYXRlKEpTT04uc3RyaW5naWZ5KHBsaXN0KSwge2xlbmd0aDogMTAwfSl9YCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBtZXNzYWdlIGRhdGE6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGlzcGF0Y2hEYXRhTWVzc2FnZSAobXNnSWQsIG1ldGhvZCwgcGFyYW1zLCByZXN1bHQsIGVycm9yKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIGlmICghXy5pc0VtcHR5KG1zZ0lkKSkge1xuICAgICAgbG9nLmRlYnVnKGBIYW5kbGluZyBtZXNzYWdlIChpZDogJyR7bXNnSWR9JylgKTtcbiAgICB9XG5cbiAgICBpZiAobXNnSWQpIHtcbiAgICAgIGlmICh0aGlzLmxpc3RlbmVyQ291bnQobXNnSWQpKSB7XG4gICAgICAgIGlmIChfLmhhcyhyZXN1bHQ/LnJlc3VsdCwgJ3ZhbHVlJykpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQucmVzdWx0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdChtc2dJZCwgZXJyb3IsIHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZXJyb3IoYFdlYiBJbnNwZWN0b3IgcmV0dXJuZWQgZGF0YSBmb3IgbWVzc2FnZSAnJHttc2dJZH0nIGAgK1xuICAgICAgICAgIGBidXQgd2Ugd2VyZSBub3Qgd2FpdGluZyBmb3IgdGhhdCBtZXNzYWdlISBgICtcbiAgICAgICAgICBgcmVzdWx0OiAnJHtKU09OLnN0cmluZ2lmeShyZXN1bHQpfSc7IGAgK1xuICAgICAgICAgIGBlcnJvcjogJyR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfSdgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZXZlbnROYW1lcyA9IFttZXRob2RdO1xuICAgIGxldCBhcmdzID0gW3BhcmFtc107XG5cbiAgICAvLyBzb21lIGV2ZW50cyBoYXZlIGRpZmZlcmVudCBuYW1lcywgb3IgdGhlIGFyZ3VtZW50cyBhcmUgbWFwcGVkIGZyb20gdGhlXG4gICAgLy8gcGFyYW1ldGVycyByZWNlaXZlZFxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdQYWdlLmZyYW1lU3RvcHBlZExvYWRpbmcnOlxuICAgICAgICBldmVudE5hbWVzLnB1c2goJ1BhZ2UuZnJhbWVOYXZpZ2F0ZWQnKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgY2FzZSAnUGFnZS5mcmFtZU5hdmlnYXRlZCc6XG4gICAgICAgIGFyZ3MgPSBbYCcke21ldGhvZH0nIGV2ZW50YF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGltZWxpbmUuZXZlbnRSZWNvcmRlZCc6XG4gICAgICAgIGFyZ3MgPSBbcGFyYW1zIHx8IHBhcmFtcy5yZWNvcmRdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NvbnNvbGUubWVzc2FnZUFkZGVkJzpcbiAgICAgICAgYXJncyA9IFtwYXJhbXMubWVzc2FnZV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCc6XG4gICAgICAgIGFyZ3MgPSBbcGFyYW1zLmNvbnRleHRdO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIHBhc3NcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKF8uc3RhcnRzV2l0aChtZXRob2QsICdOZXR3b3JrLicpKSB7XG4gICAgICAvLyBhZ2dyZWdhdGUgTmV0d29yayBldmVudHMsIGFuZCBhZGQgb3JpZ2luYWwgbWV0aG9kIG5hbWUgdG8gdGhlIGFyZ3VtZW50c1xuICAgICAgZXZlbnROYW1lcy5wdXNoKCdOZXR3b3JrRXZlbnQnKTtcbiAgICAgIGFyZ3MucHVzaChtZXRob2QpO1xuICAgIH1cbiAgICBpZiAoXy5zdGFydHNXaXRoKG1ldGhvZCwgJ0NvbnNvbGUuJykpIHtcbiAgICAgIC8vIGFnZ3JlZ2F0ZSBOZXR3b3JrIGV2ZW50cywgYW5kIGFkZCBvcmlnaW5hbCBtZXRob2QgbmFtZSB0byB0aGUgYXJndW1lbnRzXG4gICAgICBldmVudE5hbWVzLnB1c2goJ0NvbnNvbGVFdmVudCcpO1xuICAgICAgYXJncy5wdXNoKG1ldGhvZCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIGV2ZW50TmFtZXMpIHtcbiAgICAgIHRoaXMuZW1pdChuYW1lLCBlcnJvciwgLi4uYXJncyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlRGF0YU1lc3NhZ2UgKHBsaXN0KSB7XG4gICAgY29uc3QgZGF0YUtleSA9IHRoaXMucGFyc2VEYXRhS2V5KHBsaXN0KTtcbiAgICBsZXQgbXNnSWQgPSAoZGF0YUtleS5pZCB8fCAnJykudG9TdHJpbmcoKTtcbiAgICBsZXQgcmVzdWx0ID0gZGF0YUtleS5yZXN1bHQ7XG5cbiAgICBsZXQgbWV0aG9kID0gZGF0YUtleS5tZXRob2Q7XG4gICAgbGV0IHBhcmFtcztcblxuICAgIGlmIChtZXRob2QgPT09ICdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcpIHtcbiAgICAgIC8vIHRoaXMgaXMgaW4gcmVzcG9uc2UgdG8gYSBgX3JwY19mb3J3YXJkU29ja2V0U2V0dXA6YCBjYWxsXG4gICAgICAvLyB0YXJnZXRJbmZvOiB7IHRhcmdldElkOiAncGFnZS0xJywgdHlwZTogJ3BhZ2UnIH1cbiAgICAgIGNvbnN0IGFwcCA9IHBsaXN0Ll9fYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICAgICAgY29uc3QgdGFyZ2V0SW5mbyA9IGRhdGFLZXkucGFyYW1zLnRhcmdldEluZm87XG4gICAgICB0aGlzLmVtaXQoJ1RhcmdldC50YXJnZXRDcmVhdGVkJywgbnVsbCwgYXBwLCB0YXJnZXRJbmZvKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ1RhcmdldC5kaWRDb21taXRQcm92aXNpb25hbFRhcmdldCcpIHtcbiAgICAgIGNvbnN0IGFwcCA9IHBsaXN0Ll9fYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICAgICAgY29uc3Qgb2xkVGFyZ2V0SWQgPSBkYXRhS2V5LnBhcmFtcy5vbGRUYXJnZXRJZDtcbiAgICAgIGNvbnN0IG5ld1RhcmdldElkID0gZGF0YUtleS5wYXJhbXMubmV3VGFyZ2V0SWQ7XG4gICAgICB0aGlzLmVtaXQoJ1RhcmdldC5kaWRDb21taXRQcm92aXNpb25hbFRhcmdldCcsIG51bGwsIGFwcCwgb2xkVGFyZ2V0SWQsIG5ld1RhcmdldElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ1RhcmdldC50YXJnZXREZXN0cm95ZWQnKSB7XG4gICAgICBjb25zdCBhcHAgPSBwbGlzdC5fX2FyZ3VtZW50LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgICAgIGNvbnN0IHRhcmdldEluZm8gPSBkYXRhS2V5LnBhcmFtcy50YXJnZXRJbmZvIHx8IHt0YXJnZXRJZDogZGF0YUtleS5wYXJhbXMudGFyZ2V0SWR9O1xuICAgICAgdGhpcy5lbWl0KCdUYXJnZXQudGFyZ2V0RGVzdHJveWVkJywgbnVsbCwgYXBwLCB0YXJnZXRJbmZvKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGFLZXkuZXJyb3IgJiYgdGhpcy5pc1RhcmdldEJhc2VkKSB7XG4gICAgICBpZiAoZGF0YUtleS5tZXRob2QgIT09ICdUYXJnZXQuZGlzcGF0Y2hNZXNzYWdlRnJvbVRhcmdldCcpIHtcbiAgICAgICAgLy8gdGhpcyBzb3J0IG9mIG1lc3NhZ2UsIGF0IHRoaXMgcG9pbnQsIGlzIGp1c3QgYW4gYWNrbm93bGVkZ2VtZW50XG4gICAgICAgIC8vIHRoYXQgdGhlIG9yaWdpbmFsIG1lc3NhZ2Ugd2FzIHJlY2VpdmVkXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYXQgdGhpcyBwb2ludCwgd2UgaGF2ZSBhIFRhcmdldC1iYXNlZCBtZXNzYWdlIHdyYXBwaW5nIGEgcHJvdG9jb2wgbWVzc2FnZVxuICAgICAgbGV0IG1lc3NhZ2U7XG4gICAgICB0cnkge1xuICAgICAgICBtZXNzYWdlID0gSlNPTi5wYXJzZShkYXRhS2V5LnBhcmFtcy5tZXNzYWdlKTtcbiAgICAgICAgbXNnSWQgPSBtZXNzYWdlLmlkO1xuICAgICAgICBtZXRob2QgPSBtZXNzYWdlLm1ldGhvZDtcbiAgICAgICAgcmVzdWx0ID0gbWVzc2FnZS5yZXN1bHQgfHwgbWVzc2FnZTtcbiAgICAgICAgcGFyYW1zID0gcmVzdWx0LnBhcmFtcztcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBpZiB0aGlzIGhhcHBlbnMgdGhlbiBzb21lIGFzcGVjdCBvZiB0aGUgcHJvdG9jb2wgaXMgbWlzc2luZyB0byB1c1xuICAgICAgICAvLyBzbyBwcmludCB0aGUgZW50aXJlIG1lc3NhZ2UgdG8gZ2V0IHZpc2liaWl0eSBpbnRvIHdoYXQgaXMgZ29pbmcgb25cbiAgICAgICAgbG9nLmVycm9yKGBVbmV4cGVjdGVkIG1lc3NhZ2UgZm9ybWF0IGZyb20gV2ViIEluc3BlY3RvcjpgKTtcbiAgICAgICAgdGhpcy53YXJuKHV0aWwuanNvblN0cmluZ2lmeShwbGlzdCkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtcyA9IGRhdGFLZXkucGFyYW1zO1xuICAgIH1cblxuICAgIC8vIHdlIGNhbiBnZXQgYW4gZXJyb3IsIG9yIHdlIGNhbiBnZXQgYSByZXNwb25zZSB0aGF0IGlzIGFuIGVycm9yXG4gICAgbGV0IGVycm9yID0gZGF0YUtleS5lcnJvciB8fCBudWxsO1xuICAgIGlmIChyZXN1bHQ/Lndhc1Rocm93bikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IChyZXN1bHQ/LnJlc3VsdD8udmFsdWUgfHwgcmVzdWx0Py5yZXN1bHQ/LmRlc2NyaXB0aW9uKVxuICAgICAgICA/IChyZXN1bHQ/LnJlc3VsdD8udmFsdWUgfHwgcmVzdWx0Py5yZXN1bHQ/LmRlc2NyaXB0aW9uKVxuICAgICAgICA6ICdFcnJvciBvY2N1cnJlZCBpbiBoYW5kbGluZyBkYXRhIG1lc3NhZ2UnO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5kaXNwYXRjaERhdGFNZXNzYWdlKG1zZ0lkLCBtZXRob2QsIHBhcmFtcywgcmVzdWx0LCBlcnJvcik7XG4gIH1cbn1cbiJdLCJmaWxlIjoibGliL3JwYy9ycGMtbWVzc2FnZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtbWVzc2FnZS1oYW5kbGVyLmpzIiwibmFtZXMiOlsiUnBjTWVzc2FnZUhhbmRsZXIiLCJFdmVudEVtaXR0ZXJzIiwiY29uc3RydWN0b3IiLCJpc1RhcmdldEJhc2VkIiwiX2lzVGFyZ2V0QmFzZWQiLCJoYW5kbGVNZXNzYWdlIiwicGxpc3QiLCJzZWxlY3RvciIsIl9fc2VsZWN0b3IiLCJsb2ciLCJkZWJ1ZyIsImFyZ3VtZW50IiwiX19hcmd1bWVudCIsImVtaXQiLCJXSVJTaW11bGF0b3JOYW1lS2V5IiwiV0lSU2ltdWxhdG9yQnVpbGRLZXkiLCJXSVJTaW11bGF0b3JQcm9kdWN0VmVyc2lvbktleSIsIldJUkFwcGxpY2F0aW9uRGljdGlvbmFyeUtleSIsIldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsIldJUkxpc3RpbmdLZXkiLCJoYW5kbGVEYXRhTWVzc2FnZSIsInBhcnNlRGF0YUtleSIsIkpTT04iLCJwYXJzZSIsIldJUk1lc3NhZ2VEYXRhS2V5IiwidG9TdHJpbmciLCJlcnIiLCJlcnJvciIsIl8iLCJ0cnVuY2F0ZSIsInN0cmluZ2lmeSIsImxlbmd0aCIsIkVycm9yIiwibWVzc2FnZSIsImRpc3BhdGNoRGF0YU1lc3NhZ2UiLCJtc2dJZCIsIm1ldGhvZCIsInBhcmFtcyIsInJlc3VsdCIsImlzRW1wdHkiLCJsaXN0ZW5lckNvdW50IiwiaGFzIiwidmFsdWUiLCJldmVudE5hbWVzIiwiYXJncyIsInB1c2giLCJyZWNvcmQiLCJjb250ZXh0Iiwic3RhcnRzV2l0aCIsIm5hbWUiLCJkYXRhS2V5IiwiaWQiLCJhcHAiLCJ0YXJnZXRJbmZvIiwib2xkVGFyZ2V0SWQiLCJuZXdUYXJnZXRJZCIsInRhcmdldElkIiwid2FybiIsInV0aWwiLCJqc29uU3RyaW5naWZ5Iiwid2FzVGhyb3duIiwiZGVzY3JpcHRpb24iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvcnBjL3JwYy1tZXNzYWdlLWhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEV2ZW50RW1pdHRlcnMgZnJvbSAnZXZlbnRzJztcblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBScGNNZXNzYWdlSGFuZGxlciBleHRlbmRzIEV2ZW50RW1pdHRlcnMge1xuICBjb25zdHJ1Y3RvciAoaXNUYXJnZXRCYXNlZCA9IGZhbHNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBnZXQgaXNUYXJnZXRCYXNlZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSAhIWlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBhc3luYyBoYW5kbGVNZXNzYWdlIChwbGlzdCkge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gcGxpc3QuX19zZWxlY3RvcjtcbiAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICBsb2cuZGVidWcoJ0dvdCBhbiBpbnZhbGlkIHBsaXN0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXJndW1lbnQgPSBwbGlzdC5fX2FyZ3VtZW50O1xuICAgIHN3aXRjaCAoc2VsZWN0b3IpIHtcbiAgICAgIGNhc2UgJ19ycGNfcmVwb3J0U2V0dXA6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydFNldHVwOicsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBhcmd1bWVudC5XSVJTaW11bGF0b3JOYW1lS2V5LFxuICAgICAgICAgIGFyZ3VtZW50LldJUlNpbXVsYXRvckJ1aWxkS2V5LFxuICAgICAgICAgIGFyZ3VtZW50LldJUlNpbXVsYXRvclByb2R1Y3RWZXJzaW9uS2V5XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19yZXBvcnRDb25uZWN0ZWRBcHBsaWNhdGlvbkxpc3Q6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydENvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdDonLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYXJndW1lbnQuV0lSQXBwbGljYXRpb25EaWN0aW9uYXJ5S2V5XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvblNlbnRMaXN0aW5nOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19mb3J3YXJkR2V0TGlzdGluZzonLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5LFxuICAgICAgICAgIGFyZ3VtZW50LldJUkxpc3RpbmdLZXlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19hcHBsaWNhdGlvbkNvbm5lY3RlZDonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvbkRpc2Nvbm5lY3RlZDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfYXBwbGljYXRpb25EaXNjb25uZWN0ZWQ6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfYXBwbGljYXRpb25VcGRhdGVkOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19hcHBsaWNhdGlvblVwZGF0ZWQ6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfcmVwb3J0Q29ubmVjdGVkRHJpdmVyTGlzdDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfcmVwb3J0Q29ubmVjdGVkRHJpdmVyTGlzdDonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19yZXBvcnRDdXJyZW50U3RhdGU6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydEN1cnJlbnRTdGF0ZTonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvblNlbnREYXRhOic6XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRGF0YU1lc3NhZ2UocGxpc3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxvZy5kZWJ1ZyhgRGVidWdnZXIgZ290IGEgbWVzc2FnZSBmb3IgJyR7c2VsZWN0b3J9JyBhbmQgaGF2ZSBubyBgICtcbiAgICAgICAgICBgaGFuZGxlciwgZG9pbmcgbm90aGluZy5gKTtcbiAgICB9XG4gIH1cblxuICBwYXJzZURhdGFLZXkgKHBsaXN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHBsaXN0Ll9fYXJndW1lbnQuV0lSTWVzc2FnZURhdGFLZXkudG9TdHJpbmcoJ3V0ZjgnKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZXJyb3IoYFVucGFyc2VhYmxlIG1lc3NhZ2UgZGF0YTogJHtfLnRydW5jYXRlKEpTT04uc3RyaW5naWZ5KHBsaXN0KSwge2xlbmd0aDogMTAwfSl9YCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBtZXNzYWdlIGRhdGE6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGlzcGF0Y2hEYXRhTWVzc2FnZSAobXNnSWQsIG1ldGhvZCwgcGFyYW1zLCByZXN1bHQsIGVycm9yKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIGlmICghXy5pc0VtcHR5KG1zZ0lkKSkge1xuICAgICAgbG9nLmRlYnVnKGBIYW5kbGluZyBtZXNzYWdlIChpZDogJyR7bXNnSWR9JylgKTtcbiAgICB9XG5cbiAgICBpZiAobXNnSWQpIHtcbiAgICAgIGlmICh0aGlzLmxpc3RlbmVyQ291bnQobXNnSWQpKSB7XG4gICAgICAgIGlmIChfLmhhcyhyZXN1bHQ/LnJlc3VsdCwgJ3ZhbHVlJykpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQucmVzdWx0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdChtc2dJZCwgZXJyb3IsIHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZXJyb3IoYFdlYiBJbnNwZWN0b3IgcmV0dXJuZWQgZGF0YSBmb3IgbWVzc2FnZSAnJHttc2dJZH0nIGAgK1xuICAgICAgICAgIGBidXQgd2Ugd2VyZSBub3Qgd2FpdGluZyBmb3IgdGhhdCBtZXNzYWdlISBgICtcbiAgICAgICAgICBgcmVzdWx0OiAnJHtKU09OLnN0cmluZ2lmeShyZXN1bHQpfSc7IGAgK1xuICAgICAgICAgIGBlcnJvcjogJyR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfSdgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZXZlbnROYW1lcyA9IFttZXRob2RdO1xuICAgIGxldCBhcmdzID0gW3BhcmFtc107XG5cbiAgICAvLyBzb21lIGV2ZW50cyBoYXZlIGRpZmZlcmVudCBuYW1lcywgb3IgdGhlIGFyZ3VtZW50cyBhcmUgbWFwcGVkIGZyb20gdGhlXG4gICAgLy8gcGFyYW1ldGVycyByZWNlaXZlZFxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdQYWdlLmZyYW1lU3RvcHBlZExvYWRpbmcnOlxuICAgICAgICBldmVudE5hbWVzLnB1c2goJ1BhZ2UuZnJhbWVOYXZpZ2F0ZWQnKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgY2FzZSAnUGFnZS5mcmFtZU5hdmlnYXRlZCc6XG4gICAgICAgIGFyZ3MgPSBbYCcke21ldGhvZH0nIGV2ZW50YF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGltZWxpbmUuZXZlbnRSZWNvcmRlZCc6XG4gICAgICAgIGFyZ3MgPSBbcGFyYW1zIHx8IHBhcmFtcy5yZWNvcmRdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NvbnNvbGUubWVzc2FnZUFkZGVkJzpcbiAgICAgICAgYXJncyA9IFtwYXJhbXMubWVzc2FnZV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCc6XG4gICAgICAgIGFyZ3MgPSBbcGFyYW1zLmNvbnRleHRdO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIHBhc3NcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKF8uc3RhcnRzV2l0aChtZXRob2QsICdOZXR3b3JrLicpKSB7XG4gICAgICAvLyBhZ2dyZWdhdGUgTmV0d29yayBldmVudHMsIGFuZCBhZGQgb3JpZ2luYWwgbWV0aG9kIG5hbWUgdG8gdGhlIGFyZ3VtZW50c1xuICAgICAgZXZlbnROYW1lcy5wdXNoKCdOZXR3b3JrRXZlbnQnKTtcbiAgICAgIGFyZ3MucHVzaChtZXRob2QpO1xuICAgIH1cbiAgICBpZiAoXy5zdGFydHNXaXRoKG1ldGhvZCwgJ0NvbnNvbGUuJykpIHtcbiAgICAgIC8vIGFnZ3JlZ2F0ZSBOZXR3b3JrIGV2ZW50cywgYW5kIGFkZCBvcmlnaW5hbCBtZXRob2QgbmFtZSB0byB0aGUgYXJndW1lbnRzXG4gICAgICBldmVudE5hbWVzLnB1c2goJ0NvbnNvbGVFdmVudCcpO1xuICAgICAgYXJncy5wdXNoKG1ldGhvZCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIGV2ZW50TmFtZXMpIHtcbiAgICAgIHRoaXMuZW1pdChuYW1lLCBlcnJvciwgLi4uYXJncyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlRGF0YU1lc3NhZ2UgKHBsaXN0KSB7XG4gICAgY29uc3QgZGF0YUtleSA9IHRoaXMucGFyc2VEYXRhS2V5KHBsaXN0KTtcbiAgICBsZXQgbXNnSWQgPSAoZGF0YUtleS5pZCB8fCAnJykudG9TdHJpbmcoKTtcbiAgICBsZXQgcmVzdWx0ID0gZGF0YUtleS5yZXN1bHQ7XG5cbiAgICBsZXQgbWV0aG9kID0gZGF0YUtleS5tZXRob2Q7XG4gICAgbGV0IHBhcmFtcztcblxuICAgIGlmIChtZXRob2QgPT09ICdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcpIHtcbiAgICAgIC8vIHRoaXMgaXMgaW4gcmVzcG9uc2UgdG8gYSBgX3JwY19mb3J3YXJkU29ja2V0U2V0dXA6YCBjYWxsXG4gICAgICAvLyB0YXJnZXRJbmZvOiB7IHRhcmdldElkOiAncGFnZS0xJywgdHlwZTogJ3BhZ2UnIH1cbiAgICAgIGNvbnN0IGFwcCA9IHBsaXN0Ll9fYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICAgICAgY29uc3QgdGFyZ2V0SW5mbyA9IGRhdGFLZXkucGFyYW1zLnRhcmdldEluZm87XG4gICAgICB0aGlzLmVtaXQoJ1RhcmdldC50YXJnZXRDcmVhdGVkJywgbnVsbCwgYXBwLCB0YXJnZXRJbmZvKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ1RhcmdldC5kaWRDb21taXRQcm92aXNpb25hbFRhcmdldCcpIHtcbiAgICAgIGNvbnN0IGFwcCA9IHBsaXN0Ll9fYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICAgICAgY29uc3Qgb2xkVGFyZ2V0SWQgPSBkYXRhS2V5LnBhcmFtcy5vbGRUYXJnZXRJZDtcbiAgICAgIGNvbnN0IG5ld1RhcmdldElkID0gZGF0YUtleS5wYXJhbXMubmV3VGFyZ2V0SWQ7XG4gICAgICB0aGlzLmVtaXQoJ1RhcmdldC5kaWRDb21taXRQcm92aXNpb25hbFRhcmdldCcsIG51bGwsIGFwcCwgb2xkVGFyZ2V0SWQsIG5ld1RhcmdldElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ1RhcmdldC50YXJnZXREZXN0cm95ZWQnKSB7XG4gICAgICBjb25zdCBhcHAgPSBwbGlzdC5fX2FyZ3VtZW50LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgICAgIGNvbnN0IHRhcmdldEluZm8gPSBkYXRhS2V5LnBhcmFtcy50YXJnZXRJbmZvIHx8IHt0YXJnZXRJZDogZGF0YUtleS5wYXJhbXMudGFyZ2V0SWR9O1xuICAgICAgdGhpcy5lbWl0KCdUYXJnZXQudGFyZ2V0RGVzdHJveWVkJywgbnVsbCwgYXBwLCB0YXJnZXRJbmZvKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGFLZXkuZXJyb3IgJiYgdGhpcy5pc1RhcmdldEJhc2VkKSB7XG4gICAgICBpZiAoZGF0YUtleS5tZXRob2QgIT09ICdUYXJnZXQuZGlzcGF0Y2hNZXNzYWdlRnJvbVRhcmdldCcpIHtcbiAgICAgICAgLy8gdGhpcyBzb3J0IG9mIG1lc3NhZ2UsIGF0IHRoaXMgcG9pbnQsIGlzIGp1c3QgYW4gYWNrbm93bGVkZ2VtZW50XG4gICAgICAgIC8vIHRoYXQgdGhlIG9yaWdpbmFsIG1lc3NhZ2Ugd2FzIHJlY2VpdmVkXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYXQgdGhpcyBwb2ludCwgd2UgaGF2ZSBhIFRhcmdldC1iYXNlZCBtZXNzYWdlIHdyYXBwaW5nIGEgcHJvdG9jb2wgbWVzc2FnZVxuICAgICAgbGV0IG1lc3NhZ2U7XG4gICAgICB0cnkge1xuICAgICAgICBtZXNzYWdlID0gSlNPTi5wYXJzZShkYXRhS2V5LnBhcmFtcy5tZXNzYWdlKTtcbiAgICAgICAgbXNnSWQgPSBtZXNzYWdlLmlkO1xuICAgICAgICBtZXRob2QgPSBtZXNzYWdlLm1ldGhvZDtcbiAgICAgICAgcmVzdWx0ID0gbWVzc2FnZS5yZXN1bHQgfHwgbWVzc2FnZTtcbiAgICAgICAgcGFyYW1zID0gcmVzdWx0LnBhcmFtcztcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBpZiB0aGlzIGhhcHBlbnMgdGhlbiBzb21lIGFzcGVjdCBvZiB0aGUgcHJvdG9jb2wgaXMgbWlzc2luZyB0byB1c1xuICAgICAgICAvLyBzbyBwcmludCB0aGUgZW50aXJlIG1lc3NhZ2UgdG8gZ2V0IHZpc2liaWl0eSBpbnRvIHdoYXQgaXMgZ29pbmcgb25cbiAgICAgICAgbG9nLmVycm9yKGBVbmV4cGVjdGVkIG1lc3NhZ2UgZm9ybWF0IGZyb20gV2ViIEluc3BlY3RvcjpgKTtcbiAgICAgICAgdGhpcy53YXJuKHV0aWwuanNvblN0cmluZ2lmeShwbGlzdCkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtcyA9IGRhdGFLZXkucGFyYW1zO1xuICAgIH1cblxuICAgIC8vIHdlIGNhbiBnZXQgYW4gZXJyb3IsIG9yIHdlIGNhbiBnZXQgYSByZXNwb25zZSB0aGF0IGlzIGFuIGVycm9yXG4gICAgbGV0IGVycm9yID0gZGF0YUtleS5lcnJvciB8fCBudWxsO1xuICAgIGlmIChyZXN1bHQ/Lndhc1Rocm93bikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IChyZXN1bHQ/LnJlc3VsdD8udmFsdWUgfHwgcmVzdWx0Py5yZXN1bHQ/LmRlc2NyaXB0aW9uKVxuICAgICAgICA/IChyZXN1bHQ/LnJlc3VsdD8udmFsdWUgfHwgcmVzdWx0Py5yZXN1bHQ/LmRlc2NyaXB0aW9uKVxuICAgICAgICA6ICdFcnJvciBvY2N1cnJlZCBpbiBoYW5kbGluZyBkYXRhIG1lc3NhZ2UnO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5kaXNwYXRjaERhdGFNZXNzYWdlKG1zZ0lkLCBtZXRob2QsIHBhcmFtcywgcmVzdWx0LCBlcnJvcik7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6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
|