@projectcor/maia-components 2.11.9-7 → 2.11.9-9
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.
|
@@ -14,6 +14,7 @@ import { useT } from '../useT';
|
|
|
14
14
|
import { useUser } from '../../context/cor-user';
|
|
15
15
|
import { useTabTaskDefault } from '../useTabTaskDefault';
|
|
16
16
|
import { TASK_URL_REGEX_PATTERN } from '../../constants/taskUrls';
|
|
17
|
+
import { mapCORLang } from '../../lang/utils';
|
|
17
18
|
var rewriteTaskUrlsInContent = function rewriteTaskUrlsInContent(content, tabSegment) {
|
|
18
19
|
var taskUrlRegex = new RegExp(TASK_URL_REGEX_PATTERN, 'g');
|
|
19
20
|
return content.replace(taskUrlRegex, function (url) {
|
|
@@ -85,7 +86,7 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
85
86
|
currentUser: currentUser,
|
|
86
87
|
offset: lastEvaluatedKey,
|
|
87
88
|
cancelledText: t('chat.cancelled'),
|
|
88
|
-
lang: i18n.language
|
|
89
|
+
lang: mapCORLang(i18n.language)
|
|
89
90
|
});
|
|
90
91
|
case 1:
|
|
91
92
|
_yield$maia$Chats$get = _context.sent;
|
|
@@ -303,7 +304,7 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
303
304
|
chatId: chatId,
|
|
304
305
|
currentUser: currentUser,
|
|
305
306
|
offset: lastEvaluatedKey,
|
|
306
|
-
lang: i18n.language
|
|
307
|
+
lang: mapCORLang(i18n.language)
|
|
307
308
|
});
|
|
308
309
|
case 2:
|
|
309
310
|
_yield$maia$Chats$get2 = _context2.sent;
|
|
@@ -515,4 +516,4 @@ export var useChatMessages = function useChatMessages(_ref) {
|
|
|
515
516
|
handleScroll: handleScroll
|
|
516
517
|
};
|
|
517
518
|
};
|
|
518
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJtYWlhIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVQiLCJ1c2VVc2VyIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwicmV3cml0ZVRhc2tVcmxzSW5Db250ZW50IiwiY29udGVudCIsInRhYlNlZ21lbnQiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwidXJsIiwidXNlQ2hhdE1lc3NhZ2VzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25FcnJvciIsImNoYXRJZCIsImN1cnJlbnRVc2VyIiwidXNlckluaXRpYWxNZXNzYWdlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlciIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwiX3VzZVN0YXRlMyIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwibWVzc2FnZSIsImF0dGFjaG1lbnRzIiwiX3VzZVN0YXRlNCIsIm1lc3NhZ2VzIiwic2V0TWVzc2FnZXMiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldENoaXBzUHJvamVjdCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJwcm9qZWN0IiwiX3VzZVRhYlRhc2tEZWZhdWx0IiwiZ2V0VGFiVGFza0RlZmF1bHQiLCJ0YWJUYXNrRGVmYXVsdCIsInJlZmV0Y2hUYWJUYXNrRGVmYXVsdCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNMb2FkaW5nTW9yZU1lc3NhZ2VzIiwic2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsYXN0RXZhbHVhdGVkS2V5Iiwic2V0TGFzdEV2YWx1YXRlZEtleSIsImlzTG9hZGluZ1JlZiIsImluaXRpYWxMb2FkRG9uZSIsInByZXZpb3VzQ2hhdElkIiwibG9hZE1lc3NhZ2VzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsInByb2plY3RJZE1lc3NhZ2UiLCJwcm9qZWN0TmFtZUZyb21TZXNzaW9uIiwicHJvamVjdERlbGV0ZWQiLCJjbGllbnRJZEZyb21TZXNzaW9uIiwiY2xpZW50TmFtZUZyb21TZXNzaW9uIiwiYWdlbnRJbkxpc3QiLCJwcm9qZWN0cyIsImhhc011bHRpQWdlbnRzQWNjZXNzIiwicHJvamVjdElkTnVtIiwiZm91bmRQcm9qZWN0IiwiX2ZvdW5kUHJvamVjdCRjbGllbnQiLCJjaGlwc0RhdGEiLCJfY2hpcHNEYXRhIiwiY29udGV4dFByb2plY3RJZCIsIml0ZW1zVG9TZXQiLCJ0YWIiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiY3VycmVudCIsIkNoYXRzIiwiZ2V0Q2hhdE1lc3NhZ2VzIiwib2Zmc2V0IiwiY2FuY2VsbGVkVGV4dCIsImxhbmciLCJsYW5ndWFnZSIsInNlbnQiLCJwcm9qZWN0SWQiLCJwcm9qZWN0TmFtZSIsImNsaWVudElkIiwiY2xpZW50TmFtZSIsIm5hbWUiLCJlbW9qaSIsInR5cGUiLCJpc19kZWxldGVkIiwiZGVsZXRlZF9hdCIsImRlbGV0ZWRBdCIsInZpZXciLCJmaW5kIiwiYWdlbnQiLCJpc19mcm9tX2NvbnZlcnNhdGlvbiIsInByb2plY3RfZGVsZXRlZCIsImEiLCJ1bmRlZmluZWQiLCJoYXNfbm90X2FjY2VzcyIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJOdW1iZXIiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwicCIsImNsaWVudCIsIlN0cmluZyIsInBhcnNlSW50IiwiY29uY2F0IiwibWFwIiwiaXRlbSIsImZpbmlzaCIsInN0b3AiLCJsb2FkTW9yZU1lc3NhZ2VzIiwiX3JlZjMiLCJfY2FsbGVlMiIsImNvbnRhaW5lciIsIm9sZFNjcm9sbEhlaWdodCIsIm9sZFNjcm9sbFRvcCIsIl95aWVsZCRtYWlhJENoYXRzJGdldDIiLCJfZm91bmRQcm9qZWN0JGNsaWVudDIiLCJfY2hpcHNEYXRhMiIsIml0ZW1zVG9NZXJnZSIsIm5ld01lc3NhZ2VzIiwiX3QyIiwiX2NvbnRleHQyIiwiYWJydXB0Iiwic2Nyb2xsSGVpZ2h0Iiwic2Nyb2xsVG9wIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic2xpY2UiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjb250YWluZXJSZWYiLCJuZXdTY3JvbGxIZWlnaHQiLCJoZWlnaHREaWZmZXJlbmNlIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZVNjcm9sbCIsImNsaWVudEhlaWdodCIsInNjcm9sbFBlcmNlbnRhZ2UiLCJkaWRSZXdyaXRlUmVmIiwibGVuZ3RoIiwibmVlZHNSZXdyaXRlIiwic29tZSIsIm1zZyIsIm1hdGNoZXMiLCJtYXRjaCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJyZXdyaXR0ZW4iLCJhZGRNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlSW5kZXgiLCJmaW5kSW5kZXgiLCJyZW1vdmVNZXNzYWdlIiwibWVzc2FnZUlkIiwiZmlsdGVyIiwiaGFzTW9yZU1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRNZXNzYWdlcy91c2VDaGF0TWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdHMgfSBmcm9tICcuLi91c2VQcm9qZWN0cydcbmltcG9ydCB7IENoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCBtYWlhIGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBVc2VDaGF0TWVzc2FnZXNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdE1lc3NhZ2VzLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVRhYlRhc2tEZWZhdWx0IH0gZnJvbSAnLi4vdXNlVGFiVGFza0RlZmF1bHQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgbWVzc2FnZTogdXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgOiBbXVxuICApXG4gIGNvbnN0IHsgZmV0Y2hQcm9qZWN0cyB9ID0gdXNlUHJvamVjdHMoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3QsIHNldENsaWVudCwgcHJvamVjdCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgZ2V0VGFiVGFza0RlZmF1bHQsIHRhYlRhc2tEZWZhdWx0LCByZWZldGNoVGFiVGFza0RlZmF1bHQgfSA9IHVzZVRhYlRhc2tEZWZhdWx0KClcbiAgY29uc3QgW2lzTG9hZGluZ01vcmVNZXNzYWdlcywgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbGFzdEV2YWx1YXRlZEtleSwgc2V0TGFzdEV2YWx1YXRlZEtleV0gPSB1c2VTdGF0ZTxudW1iZXIgfCB1bmRlZmluZWQ+KDApXG4gIGNvbnN0IGlzTG9hZGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaW5pdGlhbExvYWREb25lID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHVzZVJlZihjaGF0SWQpXG5cbiAgY29uc3QgbG9hZE1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZXModHJ1ZSlcbiAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXRlbXMsXG4gICAgICAgIG5leHRJdGVtLFxuICAgICAgICBhZ2VudERlbGV0ZWQsXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgICAgICBoYXNBZ2VudEFjY2VzcyxcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uLFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICBwcm9qZWN0RGVsZXRlZCxcbiAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgIGNoYXRJZCxcbiAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgY2FuY2VsbGVkVGV4dDogdCgnY2hhdC5jYW5jZWxsZWQnKSxcbiAgICAgICAgbGFuZzogaTE4bi5sYW5ndWFnZSxcbiAgICAgIH0pXG4gICAgICBpZiAoYWdlbnREZWxldGVkKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICBpZDogYWdlbnREZWxldGVkLmlkLFxuICAgICAgICAgIG5hbWU6IGFnZW50RGVsZXRlZC5uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudERlbGV0ZWQuZW1vamksXG4gICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgaXNfZGVsZXRlZDogdHJ1ZSxcbiAgICAgICAgICBkZWxldGVkX2F0OiBhZ2VudERlbGV0ZWQuZGVsZXRlZEF0LFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZXN0w6EgZW4gbGEgbGlzdGEgcGVybyB0aWVuZSBwZXJtaXNvcywgYWNjZXNvIHkgbm8gZXN0w6EgZWxpbWluYWRvLCBzZXRlYXJsbyBub3JtYWxtZW50ZVxuICAgICAgLy8gRXhjbHVpciBhZ2VudGVzIG5vLWN1c3RvbSBwYXJhIHVzdWFyaW9zIGNvbiByb2xlcyBkZXNoYWJpbGl0YWRvc1xuICAgICAgaWYgKFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnREZWxldGVkICYmXG4gICAgICAgIHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICBoYXNBZ2VudEFjY2VzcyAmJlxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50cy5maW5kKGFnZW50ID0+IGFnZW50LmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICkge1xuICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICBpc19mcm9tX2NvbnZlcnNhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gU2kgZWwgYWdlbnRlIGVzdMOhIGVuIGxhIGxpc3RhIHkgdGllbmUgYWNjZXNvL3Blcm1pc29zLCBhY3R1YWxpemFyIHByb2plY3RfZGVsZXRlZCAobyBsaW1waWFybG8gYWwgY2FtYmlhciBkZSBjaGF0KVxuICAgICAgaWYgKFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnREZWxldGVkICYmXG4gICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGFnZW50SW5MaXN0ID0gYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICAgaWYgKGFnZW50SW5MaXN0KSB7XG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgLi4uYWdlbnRJbkxpc3QsXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHsgcHJvamVjdF9kZWxldGVkOiB1bmRlZmluZWQgfSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gdGllbmUgYWNjZXNvIG8gcGVybWlzb3Mgc2Vnw7puIGxhIHJlc3B1ZXN0YSBkZSBzZXNzaW9ucywgc2VsZWNjaW9uYXJsbyBjb24gZWwgZmxhZyBjb3JyZXNwb25kaWVudGVcbiAgICAgIC8vIExhIHZhbGlkYWNpw7NuIGFob3JhIHNlIGJhc2EgZW4gbGFzIHByb3BpZWRhZGVzIGhhc19hZ2VudF9hY2Nlc3MgeSBoYXNfYWdlbnRfcGVybWlzc2lvbiBkZSBsYSByZXNwdWVzdGFcbiAgICAgIGlmIChhZ2VudE5vUGVybWlzc2lvbiAmJiAhYWdlbnREZWxldGVkKSB7XG4gICAgICAgIGlmICghaGFzQWdlbnRBY2Nlc3MpIHtcbiAgICAgICAgICAvLyBDYXNvIDE6IE5vIHRpZW5lIGFjY2VzbyBhbCBhZ2VudGVcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgaGFzX25vdF9hY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKCFoYXNBZ2VudFBlcm1pc3Npb24pIHtcbiAgICAgICAgICAvLyBDYXNvIDI6IE5vIHRpZW5lIHBlcm1pc29zIHBhcmEgdmlzdWFsaXphci9pbnRlcmFjdHVhciBjb24gZWwgYWdlbnRlXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICAgIGhhc19ub3RfcGVybWlzc2lvbnM6IHRydWUsXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3REZWxldGVkKSB7XG4gICAgICAgICAgLy8gQ2FzbyAzOiBFbCBwcm95ZWN0byBkZSBsYSBjb252ZXJzYWNpw7NuIGZ1ZSBlbGltaW5hZG9cbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENvbnZlcnNhY2nDs24gY29uIGNsaWVudF9tZXRhZGF0YTogc2V0ZWFyIGNsaWVudGUgeSBsaW1waWFyIHByb3llY3RvXG4gICAgICBpZiAoY2xpZW50SWRGcm9tU2Vzc2lvbiAhPSBudWxsICYmIGNsaWVudE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZmV0Y2hQcm9qZWN0cyhwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgICBpZiAocHJvamVjdElkTWVzc2FnZSAmJiBoYXNNdWx0aUFnZW50c0FjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHByb2plY3RJZE51bSA9IE51bWJlcihwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgICBpZiAoZm91bmRQcm9qZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0RhdGEgPSB7XG4gICAgICAgICAgICAgIHByb2plY3ROYW1lOiBmb3VuZFByb2plY3QubmFtZSxcbiAgICAgICAgICAgICAgY2xpZW50TmFtZTogZm91bmRQcm9qZWN0LmNsaWVudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldENoaXBzUHJvamVjdChjaGlwc0RhdGEpXG4gICAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgICB9IGVsc2UgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgY2hpcHNEYXRhID0ge1xuICAgICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KGNoaXBzRGF0YSlcbiAgICAgICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgICAgICBpZDogTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgICAgICBuYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgY29uIGVsIHRhYiBkZWwgdXN1YXJpbyAobWUpXG4gICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgbGV0IGl0ZW1zVG9TZXQgPSBpdGVtc1xuICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICBpdGVtc1RvU2V0ID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChpdGVtLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgICAgICB9KSlcbiAgICAgIH1cbiAgICAgIHNldE1lc3NhZ2VzKGl0ZW1zVG9TZXQpXG4gICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcj8uKClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgY3VycmVudFVzZXIsIGZldGNoUHJvamVjdHMsIHNldENsaWVudCwgb25FcnJvciwgZ2V0VGFiVGFza0RlZmF1bHRdKVxuXG4gIGNvbnN0IGxvYWRNb3JlTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmIChpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhbGFzdEV2YWx1YXRlZEtleSB8fCAhY29udGFpbmVyKSByZXR1cm5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXModHJ1ZSlcblxuICAgICAgICBjb25zdCBvbGRTY3JvbGxIZWlnaHQgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3BcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgbmV4dEl0ZW0sXG4gICAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICAgIGxhbmc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGNsaWVudElkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiBjbGllbnROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgICAgY29uc3QgaGFzTXVsdGlBZ2VudHNBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgICAgICAgICBpZiAocHJvamVjdElkTWVzc2FnZSAmJiBoYXNNdWx0aUFnZW50c0FjY2Vzcykge1xuICAgICAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgICAgICBjb25zdCBmb3VuZFByb2plY3QgPSBwcm9qZWN0cz8uZmluZChwID0+IE51bWJlcihwLmlkKSA9PT0gcHJvamVjdElkTnVtKVxuICAgICAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgICAgICBjb25zdCBjaGlwc0RhdGEgPSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kUHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgICAgIGNsaWVudE5hbWU6IGZvdW5kUHJvamVjdC5jbGllbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzZXRDaGlwc1Byb2plY3QoY2hpcHNEYXRhKVxuICAgICAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvamVjdE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICAgICAgICBjb25zdCBjaGlwc0RhdGEgPSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcocHJvamVjdElkTWVzc2FnZSksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KGNoaXBzRGF0YSlcbiAgICAgICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIGNhcmdhZG9zXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICAgIGxldCBpdGVtc1RvTWVyZ2UgPSBpdGVtc1xuICAgICAgICBpZiAoY29udGV4dFByb2plY3RJZCkge1xuICAgICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICAgIGl0ZW1zVG9NZXJnZSA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMuc2xpY2UoMCwgMSksIC4uLml0ZW1zVG9NZXJnZSwgLi4ubWVzc2FnZXMuc2xpY2UoMSldXG4gICAgICAgIHNldE1lc3NhZ2VzKG5ld01lc3NhZ2VzKVxuICAgICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gY29udGFpbmVyXG4gICAgICAgICAgICBpZiAoY29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1Njcm9sbEhlaWdodCA9IGNvbnRhaW5lclJlZi5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0RGlmZmVyZW5jZSA9IG5ld1Njcm9sbEhlaWdodCAtIG9sZFNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb250YWluZXJSZWYuc2Nyb2xsVG9wID0gb2xkU2Nyb2xsVG9wICsgaGVpZ2h0RGlmZmVyZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvbkVycm9yPy4oKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKGZhbHNlKVxuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhdElkLCBjdXJyZW50VXNlciwgbGFzdEV2YWx1YXRlZEtleSwgb25FcnJvciwgZmV0Y2hQcm9qZWN0cywgc2V0Q2xpZW50LCBtZXNzYWdlcywgZ2V0VGFiVGFza0RlZmF1bHRdXG4gIClcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmICghY29udGFpbmVyIHx8IGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFpbml0aWFsTG9hZERvbmUuY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0ID4gMCA/IChzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSkgKiAxMDAgOiAwXG5cbiAgICAgIGlmIChzY3JvbGxQZXJjZW50YWdlIDwgMTApIHtcbiAgICAgICAgbG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbG9hZE1vcmVNZXNzYWdlc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoYXRJZCAhPT0gcHJldmlvdXNDaGF0SWQuY3VycmVudCkge1xuICAgICAgc2V0TWVzc2FnZXMoXG4gICAgICAgIHVzZXJJbml0aWFsTWVzc2FnZVxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd1c2VyLWluaXRpYWwtbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXVxuICAgICAgKVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleSgwKVxuICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcHJldmlvdXNDaGF0SWQuY3VycmVudCA9IGNoYXRJZFxuXG4gICAgICAvLyBMaW1waWFyIGVsIGVzdGFkbyBkZWwgcHJveWVjdG8gY3VhbmRvIGNhbWJpYSBkZSBjb252ZXJzYWNpw7NuXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcblxuICAgICAgLy8gVm9sdmVyIGEgZWplY3V0YXIgbGEgcXVlcnkgbWUgcGFyYSB0ZW5lciB0YWJUYXNrRGVmYXVsdCBhY3R1YWxpemFkbyBlbiBsYSBudWV2YSBjb252ZXJzYWNpw7NuXG4gICAgICByZWZldGNoVGFiVGFza0RlZmF1bHQoKVxuXG4gICAgICBpZiAoIXVzZXJJbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBsb2FkTWVzc2FnZXMoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgdXNlckluaXRpYWxNZXNzYWdlLCBjdXJyZW50VXNlciwgbG9hZE1lc3NhZ2VzLCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3QsIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdF0pXG5cbiAgLy8gQ3VhbmRvIHRhYlRhc2tEZWZhdWx0IHBhc2EgYSBlc3RhciBkaXNwb25pYmxlIGRlc3B1w6lzIGRlIGNhcmdhciwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgeWEgY2FyZ2Fkb3MuXG4gIC8vIFJlZiBwYXJhIGV2aXRhciBidWNsZTogc2V0TWVzc2FnZXMocmV3cml0dGVuKSBjYW1iaWEgbWVzc2FnZXMgeSByZS1lamVjdXRhIGVsIGVmZWN0bzsgc29sbyByZWVzY3JpYmltb3MgdW5hIHZleiBwb3IgbG90ZS5cbiAgY29uc3QgZGlkUmV3cml0ZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRhYlRhc2tEZWZhdWx0IHx8ICFwcm9qZWN0Py5pZCB8fCBtZXNzYWdlcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhYlNlZ21lbnQgPSBgLyR7dGFiVGFza0RlZmF1bHR9YFxuICAgIGNvbnN0IG5lZWRzUmV3cml0ZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZSB8fCAnJ1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2godGFza1VybFJlZ2V4KVxuICAgICAgaWYgKCFtYXRjaGVzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIG1hdGNoZXMuc29tZSh1cmwgPT4gIXVybC5lbmRzV2l0aChgLyR7dGFiVGFza0RlZmF1bHR9YCkgJiYgIXVybC5pbmNsdWRlcyhgLyR7dGFiVGFza0RlZmF1bHR9P2ApKVxuICAgIH0pXG4gICAgaWYgKCFuZWVkc1Jld3JpdGUpIHtcbiAgICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGRpZFJld3JpdGVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGNvbnN0IHJld3JpdHRlbiA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChtc2cubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgfSkpXG4gICAgc2V0TWVzc2FnZXMocmV3cml0dGVuKVxuICB9LCBbdGFiVGFza0RlZmF1bHQsIHByb2plY3Q/LmlkLCBtZXNzYWdlc10pXG5cbiAgY29uc3QgYWRkTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4ge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5wcmV2XVxuICAgICAgICBuZXdNZXNzYWdlc1tleGlzdGluZ01lc3NhZ2VJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5wcmV2LCBtZXNzYWdlXVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHJlbW92ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZCkpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIG1lc3NhZ2VzLFxuICAgIGhhc01vcmVNZXNzYWdlczogISFsYXN0RXZhbHVhdGVkS2V5LFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgbG9hZE1vcmVNZXNzYWdlcyxcbiAgICBhZGRNZXNzYWdlLFxuICAgIHJlbW92ZU1lc3NhZ2UsXG4gICAgaGFuZGxlU2Nyb2xsLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2hFLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFFNUMsT0FBT0MsSUFBSSxNQUFNLHFCQUFxQjtBQUV0QyxTQUFTQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDL0QsU0FBU0MsSUFBSSxRQUFRLFNBQVM7QUFDOUIsU0FBU0MsT0FBTyxRQUFRLHdCQUF3QjtBQUNoRCxTQUFTQyxpQkFBaUIsUUFBUSxzQkFBc0I7QUFDeEQsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBRWpFLElBQU1DLHdC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
|
|
519
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJtYWlhIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVQiLCJ1c2VVc2VyIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwibWFwQ09STGFuZyIsInJld3JpdGVUYXNrVXJsc0luQ29udGVudCIsImNvbnRlbnQiLCJ0YWJTZWdtZW50IiwidGFza1VybFJlZ2V4IiwiUmVnRXhwIiwicmVwbGFjZSIsInVybCIsInVzZUNoYXRNZXNzYWdlcyIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uRXJyb3IiLCJjaGF0SWQiLCJjdXJyZW50VXNlciIsInVzZXJJbml0aWFsTWVzc2FnZSIsIl9yZWYkYWdlbnRzIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiaTE4biIsInVzZXIiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsIl91c2VTdGF0ZTMiLCJfb2JqZWN0U3ByZWFkIiwiaWQiLCJkYXRlIiwiRGF0ZSIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsIl91c2VTdGF0ZTQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50IiwicHJvamVjdCIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwidGFiVGFza0RlZmF1bHQiLCJyZWZldGNoVGFiVGFza0RlZmF1bHQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsInNldElzTG9hZGluZ01vcmVNZXNzYWdlcyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwibGFzdEV2YWx1YXRlZEtleSIsInNldExhc3RFdmFsdWF0ZWRLZXkiLCJpc0xvYWRpbmdSZWYiLCJpbml0aWFsTG9hZERvbmUiLCJwcmV2aW91c0NoYXRJZCIsImxvYWRNZXNzYWdlcyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0IiwiaXRlbXMiLCJuZXh0SXRlbSIsImFnZW50RGVsZXRlZCIsImFnZW50Tm9QZXJtaXNzaW9uIiwiaGFzQWdlbnRBY2Nlc3MiLCJoYXNBZ2VudFBlcm1pc3Npb24iLCJwcm9qZWN0SWRNZXNzYWdlIiwicHJvamVjdE5hbWVGcm9tU2Vzc2lvbiIsInByb2plY3REZWxldGVkIiwiY2xpZW50SWRGcm9tU2Vzc2lvbiIsImNsaWVudE5hbWVGcm9tU2Vzc2lvbiIsImFnZW50SW5MaXN0IiwicHJvamVjdHMiLCJoYXNNdWx0aUFnZW50c0FjY2VzcyIsInByb2plY3RJZE51bSIsImZvdW5kUHJvamVjdCIsIl9mb3VuZFByb2plY3QkY2xpZW50IiwiY2hpcHNEYXRhIiwiX2NoaXBzRGF0YSIsImNvbnRleHRQcm9qZWN0SWQiLCJpdGVtc1RvU2V0IiwidGFiIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImN1cnJlbnQiLCJDaGF0cyIsImdldENoYXRNZXNzYWdlcyIsIm9mZnNldCIsImNhbmNlbGxlZFRleHQiLCJsYW5nIiwibGFuZ3VhZ2UiLCJzZW50IiwicHJvamVjdElkIiwicHJvamVjdE5hbWUiLCJjbGllbnRJZCIsImNsaWVudE5hbWUiLCJuYW1lIiwiZW1vamkiLCJ0eXBlIiwiaXNfZGVsZXRlZCIsImRlbGV0ZWRfYXQiLCJkZWxldGVkQXQiLCJ2aWV3IiwiZmluZCIsImFnZW50IiwiaXNfZnJvbV9jb252ZXJzYXRpb24iLCJwcm9qZWN0X2RlbGV0ZWQiLCJhIiwidW5kZWZpbmVkIiwiaGFzX25vdF9hY2Nlc3MiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiTnVtYmVyIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsInAiLCJjbGllbnQiLCJTdHJpbmciLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJmaW5pc2giLCJzdG9wIiwibG9hZE1vcmVNZXNzYWdlcyIsIl9yZWYzIiwiX2NhbGxlZTIiLCJjb250YWluZXIiLCJvbGRTY3JvbGxIZWlnaHQiLCJvbGRTY3JvbGxUb3AiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQyIiwiX2ZvdW5kUHJvamVjdCRjbGllbnQyIiwiX2NoaXBzRGF0YTIiLCJpdGVtc1RvTWVyZ2UiLCJuZXdNZXNzYWdlcyIsIl90MiIsIl9jb250ZXh0MiIsImFicnVwdCIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNsaWNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY29udGFpbmVyUmVmIiwibmV3U2Nyb2xsSGVpZ2h0IiwiaGVpZ2h0RGlmZmVyZW5jZSIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVTY3JvbGwiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxQZXJjZW50YWdlIiwiZGlkUmV3cml0ZVJlZiIsImxlbmd0aCIsIm5lZWRzUmV3cml0ZSIsInNvbWUiLCJtc2ciLCJtYXRjaGVzIiwibWF0Y2giLCJlbmRzV2l0aCIsImluY2x1ZGVzIiwicmV3cml0dGVuIiwiYWRkTWVzc2FnZSIsImV4aXN0aW5nTWVzc2FnZUluZGV4IiwiZmluZEluZGV4IiwicmVtb3ZlTWVzc2FnZSIsIm1lc3NhZ2VJZCIsImZpbHRlciIsImhhc01vcmVNZXNzYWdlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VDaGF0TWVzc2FnZXMvdXNlQ2hhdE1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVByb2plY3RzIH0gZnJvbSAnLi4vdXNlUHJvamVjdHMnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgVXNlQ2hhdE1lc3NhZ2VzUHJvcHMgfSBmcm9tICcuL3VzZUNoYXRNZXNzYWdlcy5pbnRlcmZhY2UnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi91c2VUJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB1c2VUYWJUYXNrRGVmYXVsdCB9IGZyb20gJy4uL3VzZVRhYlRhc2tEZWZhdWx0J1xuaW1wb3J0IHsgVEFTS19VUkxfUkVHRVhfUEFUVEVSTiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy90YXNrVXJscydcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi9sYW5nL3V0aWxzJ1xuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgbWVzc2FnZTogdXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgOiBbXVxuICApXG4gIGNvbnN0IHsgZmV0Y2hQcm9qZWN0cyB9ID0gdXNlUHJvamVjdHMoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3QsIHNldENsaWVudCwgcHJvamVjdCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgZ2V0VGFiVGFza0RlZmF1bHQsIHRhYlRhc2tEZWZhdWx0LCByZWZldGNoVGFiVGFza0RlZmF1bHQgfSA9IHVzZVRhYlRhc2tEZWZhdWx0KClcbiAgY29uc3QgW2lzTG9hZGluZ01vcmVNZXNzYWdlcywgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbGFzdEV2YWx1YXRlZEtleSwgc2V0TGFzdEV2YWx1YXRlZEtleV0gPSB1c2VTdGF0ZTxudW1iZXIgfCB1bmRlZmluZWQ+KDApXG4gIGNvbnN0IGlzTG9hZGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaW5pdGlhbExvYWREb25lID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHVzZVJlZihjaGF0SWQpXG5cbiAgY29uc3QgbG9hZE1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZXModHJ1ZSlcbiAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXRlbXMsXG4gICAgICAgIG5leHRJdGVtLFxuICAgICAgICBhZ2VudERlbGV0ZWQsXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgICAgICBoYXNBZ2VudEFjY2VzcyxcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uLFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICBwcm9qZWN0RGVsZXRlZCxcbiAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgIGNoYXRJZCxcbiAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgY2FuY2VsbGVkVGV4dDogdCgnY2hhdC5jYW5jZWxsZWQnKSxcbiAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgIH0pXG4gICAgICBpZiAoYWdlbnREZWxldGVkKSB7XG4gICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICBpZDogYWdlbnREZWxldGVkLmlkLFxuICAgICAgICAgIG5hbWU6IGFnZW50RGVsZXRlZC5uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudERlbGV0ZWQuZW1vamksXG4gICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgaXNfZGVsZXRlZDogdHJ1ZSxcbiAgICAgICAgICBkZWxldGVkX2F0OiBhZ2VudERlbGV0ZWQuZGVsZXRlZEF0LFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZXN0w6EgZW4gbGEgbGlzdGEgcGVybyB0aWVuZSBwZXJtaXNvcywgYWNjZXNvIHkgbm8gZXN0w6EgZWxpbWluYWRvLCBzZXRlYXJsbyBub3JtYWxtZW50ZVxuICAgICAgLy8gRXhjbHVpciBhZ2VudGVzIG5vLWN1c3RvbSBwYXJhIHVzdWFyaW9zIGNvbiByb2xlcyBkZXNoYWJpbGl0YWRvc1xuICAgICAgaWYgKFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnREZWxldGVkICYmXG4gICAgICAgIHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICBoYXNBZ2VudEFjY2VzcyAmJlxuICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50cy5maW5kKGFnZW50ID0+IGFnZW50LmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICkge1xuICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICBpc19mcm9tX2NvbnZlcnNhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gU2kgZWwgYWdlbnRlIGVzdMOhIGVuIGxhIGxpc3RhIHkgdGllbmUgYWNjZXNvL3Blcm1pc29zLCBhY3R1YWxpemFyIHByb2plY3RfZGVsZXRlZCAobyBsaW1waWFybG8gYWwgY2FtYmlhciBkZSBjaGF0KVxuICAgICAgaWYgKFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbiAmJlxuICAgICAgICAhYWdlbnREZWxldGVkICYmXG4gICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGFnZW50SW5MaXN0ID0gYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICAgaWYgKGFnZW50SW5MaXN0KSB7XG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgLi4uYWdlbnRJbkxpc3QsXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHsgcHJvamVjdF9kZWxldGVkOiB1bmRlZmluZWQgfSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gdGllbmUgYWNjZXNvIG8gcGVybWlzb3Mgc2Vnw7puIGxhIHJlc3B1ZXN0YSBkZSBzZXNzaW9ucywgc2VsZWNjaW9uYXJsbyBjb24gZWwgZmxhZyBjb3JyZXNwb25kaWVudGVcbiAgICAgIC8vIExhIHZhbGlkYWNpw7NuIGFob3JhIHNlIGJhc2EgZW4gbGFzIHByb3BpZWRhZGVzIGhhc19hZ2VudF9hY2Nlc3MgeSBoYXNfYWdlbnRfcGVybWlzc2lvbiBkZSBsYSByZXNwdWVzdGFcbiAgICAgIGlmIChhZ2VudE5vUGVybWlzc2lvbiAmJiAhYWdlbnREZWxldGVkKSB7XG4gICAgICAgIGlmICghaGFzQWdlbnRBY2Nlc3MpIHtcbiAgICAgICAgICAvLyBDYXNvIDE6IE5vIHRpZW5lIGFjY2VzbyBhbCBhZ2VudGVcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgaGFzX25vdF9hY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKCFoYXNBZ2VudFBlcm1pc3Npb24pIHtcbiAgICAgICAgICAvLyBDYXNvIDI6IE5vIHRpZW5lIHBlcm1pc29zIHBhcmEgdmlzdWFsaXphci9pbnRlcmFjdHVhciBjb24gZWwgYWdlbnRlXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyxcbiAgICAgICAgICAgIGhhc19ub3RfcGVybWlzc2lvbnM6IHRydWUsXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3REZWxldGVkKSB7XG4gICAgICAgICAgLy8gQ2FzbyAzOiBFbCBwcm95ZWN0byBkZSBsYSBjb252ZXJzYWNpw7NuIGZ1ZSBlbGltaW5hZG9cbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnLFxuICAgICAgICAgICAgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENvbnZlcnNhY2nDs24gY29uIGNsaWVudF9tZXRhZGF0YTogc2V0ZWFyIGNsaWVudGUgeSBsaW1waWFyIHByb3llY3RvXG4gICAgICBpZiAoY2xpZW50SWRGcm9tU2Vzc2lvbiAhPSBudWxsICYmIGNsaWVudE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZmV0Y2hQcm9qZWN0cyhwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgICBpZiAocHJvamVjdElkTWVzc2FnZSAmJiBoYXNNdWx0aUFnZW50c0FjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHByb2plY3RJZE51bSA9IE51bWJlcihwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgICBpZiAoZm91bmRQcm9qZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0RhdGEgPSB7XG4gICAgICAgICAgICAgIHByb2plY3ROYW1lOiBmb3VuZFByb2plY3QubmFtZSxcbiAgICAgICAgICAgICAgY2xpZW50TmFtZTogZm91bmRQcm9qZWN0LmNsaWVudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldENoaXBzUHJvamVjdChjaGlwc0RhdGEpXG4gICAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgICB9IGVsc2UgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgY2hpcHNEYXRhID0ge1xuICAgICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KGNoaXBzRGF0YSlcbiAgICAgICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgICAgICBpZDogTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgICAgICBuYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgY29uIGVsIHRhYiBkZWwgdXN1YXJpbyAobWUpXG4gICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgbGV0IGl0ZW1zVG9TZXQgPSBpdGVtc1xuICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICBpdGVtc1RvU2V0ID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChpdGVtLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgICAgICB9KSlcbiAgICAgIH1cbiAgICAgIHNldE1lc3NhZ2VzKGl0ZW1zVG9TZXQpXG4gICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcj8uKClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgY3VycmVudFVzZXIsIGZldGNoUHJvamVjdHMsIHNldENsaWVudCwgb25FcnJvciwgZ2V0VGFiVGFza0RlZmF1bHRdKVxuXG4gIGNvbnN0IGxvYWRNb3JlTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmIChpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhbGFzdEV2YWx1YXRlZEtleSB8fCAhY29udGFpbmVyKSByZXR1cm5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXModHJ1ZSlcblxuICAgICAgICBjb25zdCBvbGRTY3JvbGxIZWlnaHQgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3BcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgbmV4dEl0ZW0sXG4gICAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICAgIGxhbmc6IG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSksXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGNsaWVudElkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiBjbGllbnROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgICAgY29uc3QgaGFzTXVsdGlBZ2VudHNBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgICAgICAgICBpZiAocHJvamVjdElkTWVzc2FnZSAmJiBoYXNNdWx0aUFnZW50c0FjY2Vzcykge1xuICAgICAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgICAgICBjb25zdCBmb3VuZFByb2plY3QgPSBwcm9qZWN0cz8uZmluZChwID0+IE51bWJlcihwLmlkKSA9PT0gcHJvamVjdElkTnVtKVxuICAgICAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgICAgICBjb25zdCBjaGlwc0RhdGEgPSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kUHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgICAgIGNsaWVudE5hbWU6IGZvdW5kUHJvamVjdC5jbGllbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzZXRDaGlwc1Byb2plY3QoY2hpcHNEYXRhKVxuICAgICAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvamVjdE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICAgICAgICBjb25zdCBjaGlwc0RhdGEgPSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcocHJvamVjdElkTWVzc2FnZSksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KGNoaXBzRGF0YSlcbiAgICAgICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIGNhcmdhZG9zXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICAgIGxldCBpdGVtc1RvTWVyZ2UgPSBpdGVtc1xuICAgICAgICBpZiAoY29udGV4dFByb2plY3RJZCkge1xuICAgICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICAgIGl0ZW1zVG9NZXJnZSA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMuc2xpY2UoMCwgMSksIC4uLml0ZW1zVG9NZXJnZSwgLi4ubWVzc2FnZXMuc2xpY2UoMSldXG4gICAgICAgIHNldE1lc3NhZ2VzKG5ld01lc3NhZ2VzKVxuICAgICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gY29udGFpbmVyXG4gICAgICAgICAgICBpZiAoY29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1Njcm9sbEhlaWdodCA9IGNvbnRhaW5lclJlZi5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0RGlmZmVyZW5jZSA9IG5ld1Njcm9sbEhlaWdodCAtIG9sZFNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb250YWluZXJSZWYuc2Nyb2xsVG9wID0gb2xkU2Nyb2xsVG9wICsgaGVpZ2h0RGlmZmVyZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvbkVycm9yPy4oKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKGZhbHNlKVxuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhdElkLCBjdXJyZW50VXNlciwgbGFzdEV2YWx1YXRlZEtleSwgb25FcnJvciwgZmV0Y2hQcm9qZWN0cywgc2V0Q2xpZW50LCBtZXNzYWdlcywgZ2V0VGFiVGFza0RlZmF1bHRdXG4gIClcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmICghY29udGFpbmVyIHx8IGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFpbml0aWFsTG9hZERvbmUuY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0ID4gMCA/IChzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSkgKiAxMDAgOiAwXG5cbiAgICAgIGlmIChzY3JvbGxQZXJjZW50YWdlIDwgMTApIHtcbiAgICAgICAgbG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbG9hZE1vcmVNZXNzYWdlc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoYXRJZCAhPT0gcHJldmlvdXNDaGF0SWQuY3VycmVudCkge1xuICAgICAgc2V0TWVzc2FnZXMoXG4gICAgICAgIHVzZXJJbml0aWFsTWVzc2FnZVxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd1c2VyLWluaXRpYWwtbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXVxuICAgICAgKVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleSgwKVxuICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcHJldmlvdXNDaGF0SWQuY3VycmVudCA9IGNoYXRJZFxuXG4gICAgICAvLyBMaW1waWFyIGVsIGVzdGFkbyBkZWwgcHJveWVjdG8gY3VhbmRvIGNhbWJpYSBkZSBjb252ZXJzYWNpw7NuXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcblxuICAgICAgLy8gVm9sdmVyIGEgZWplY3V0YXIgbGEgcXVlcnkgbWUgcGFyYSB0ZW5lciB0YWJUYXNrRGVmYXVsdCBhY3R1YWxpemFkbyBlbiBsYSBudWV2YSBjb252ZXJzYWNpw7NuXG4gICAgICByZWZldGNoVGFiVGFza0RlZmF1bHQoKVxuXG4gICAgICBpZiAoIXVzZXJJbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBsb2FkTWVzc2FnZXMoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgdXNlckluaXRpYWxNZXNzYWdlLCBjdXJyZW50VXNlciwgbG9hZE1lc3NhZ2VzLCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3QsIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdF0pXG5cbiAgLy8gQ3VhbmRvIHRhYlRhc2tEZWZhdWx0IHBhc2EgYSBlc3RhciBkaXNwb25pYmxlIGRlc3B1w6lzIGRlIGNhcmdhciwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgeWEgY2FyZ2Fkb3MuXG4gIC8vIFJlZiBwYXJhIGV2aXRhciBidWNsZTogc2V0TWVzc2FnZXMocmV3cml0dGVuKSBjYW1iaWEgbWVzc2FnZXMgeSByZS1lamVjdXRhIGVsIGVmZWN0bzsgc29sbyByZWVzY3JpYmltb3MgdW5hIHZleiBwb3IgbG90ZS5cbiAgY29uc3QgZGlkUmV3cml0ZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRhYlRhc2tEZWZhdWx0IHx8ICFwcm9qZWN0Py5pZCB8fCBtZXNzYWdlcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhYlNlZ21lbnQgPSBgLyR7dGFiVGFza0RlZmF1bHR9YFxuICAgIGNvbnN0IG5lZWRzUmV3cml0ZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZSB8fCAnJ1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2godGFza1VybFJlZ2V4KVxuICAgICAgaWYgKCFtYXRjaGVzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIG1hdGNoZXMuc29tZSh1cmwgPT4gIXVybC5lbmRzV2l0aChgLyR7dGFiVGFza0RlZmF1bHR9YCkgJiYgIXVybC5pbmNsdWRlcyhgLyR7dGFiVGFza0RlZmF1bHR9P2ApKVxuICAgIH0pXG4gICAgaWYgKCFuZWVkc1Jld3JpdGUpIHtcbiAgICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGRpZFJld3JpdGVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGNvbnN0IHJld3JpdHRlbiA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChtc2cubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgfSkpXG4gICAgc2V0TWVzc2FnZXMocmV3cml0dGVuKVxuICB9LCBbdGFiVGFza0RlZmF1bHQsIHByb2plY3Q/LmlkLCBtZXNzYWdlc10pXG5cbiAgY29uc3QgYWRkTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4ge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5wcmV2XVxuICAgICAgICBuZXdNZXNzYWdlc1tleGlzdGluZ01lc3NhZ2VJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5wcmV2LCBtZXNzYWdlXVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHJlbW92ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZCkpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIG1lc3NhZ2VzLFxuICAgIGhhc01vcmVNZXNzYWdlczogISFsYXN0RXZhbHVhdGVkS2V5LFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgbG9hZE1vcmVNZXNzYWdlcyxcbiAgICBhZGRNZXNzYWdlLFxuICAgIHJlbW92ZU1lc3NhZ2UsXG4gICAgaGFuZGxlU2Nyb2xsLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2hFLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFFNUMsT0FBT0MsSUFBSSxNQUFNLHFCQUFxQjtBQUV0QyxTQUFTQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDL0QsU0FBU0MsSUFBSSxRQUFRLFNBQVM7QUFDOUIsU0FBU0MsT0FBTyxRQUFR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
|
|
@@ -10,6 +10,7 @@ import { useGlobalContext } from '../../context/global-context';
|
|
|
10
10
|
import { useChatsStore } from '../../store/useChatsStore';
|
|
11
11
|
import { useSnackBarManager } from '../useSnackBarManager/useSnackBarManager';
|
|
12
12
|
import { useT } from '../useT';
|
|
13
|
+
import { mapCORLang } from '../../lang/utils';
|
|
13
14
|
export var useChats = function useChats(_ref) {
|
|
14
15
|
var onError = _ref.onError;
|
|
15
16
|
var user = useUser();
|
|
@@ -70,7 +71,7 @@ export var useChats = function useChats(_ref) {
|
|
|
70
71
|
limit: limitParam,
|
|
71
72
|
offset: offsetParam,
|
|
72
73
|
onError: onError,
|
|
73
|
-
lang: i18n.language
|
|
74
|
+
lang: mapCORLang(i18n.language)
|
|
74
75
|
});
|
|
75
76
|
case 1:
|
|
76
77
|
case "end":
|
|
@@ -145,7 +146,7 @@ export var useChats = function useChats(_ref) {
|
|
|
145
146
|
agent: agent,
|
|
146
147
|
section: section,
|
|
147
148
|
onError: onError,
|
|
148
|
-
lang: i18n.language
|
|
149
|
+
lang: mapCORLang(i18n.language)
|
|
149
150
|
});
|
|
150
151
|
case 1:
|
|
151
152
|
case "end":
|
|
@@ -166,4 +167,4 @@ export var useChats = function useChats(_ref) {
|
|
|
166
167
|
offset: offset
|
|
167
168
|
};
|
|
168
169
|
};
|
|
169
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVVzZXIiLCJ1c2VHbG9iYWxDb250ZXh0IiwidXNlQ2hhdHNTdG9yZSIsInVzZVNuYWNrQmFyTWFuYWdlciIsInVzZVQiLCJ1c2VDaGF0cyIsIl9yZWYiLCJvbkVycm9yIiwidXNlciIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiY2hhdHMiLCJzdGF0ZSIsImxvYWRpbmdDaGF0cyIsImlzTG9hZGluZ01vcmVDaGF0cyIsIm5leHRPZmZzZXQiLCJsaW1pdCIsIm9mZnNldCIsImZldGNoQ2hhdHMiLCJsb2FkTW9yZUNoYXRzU3RvcmUiLCJsb2FkTW9yZUNoYXRzIiwiZGVsZXRlQ2hhdFN0b3JlIiwiZGVsZXRlQ2hhdCIsInVwZGF0ZUNoYXRTdG9yZSIsInVwZGF0ZUNoYXQiLCJmZXRjaENoYXRzV2l0aENvbnRleHQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYzIiwiX3JlZjMkbGltaXQiLCJsaW1pdFBhcmFtIiwiX3JlZjMkb2Zmc2V0Iiwib2Zmc2V0UGFyYW0iLCJfYXJncyIsImFyZ3VtZW50cyIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGVuZ3RoIiwidW5kZWZpbmVkIiwibGFuZyIsImxhbmd1YWdlIiwic3RvcCIsIl9yZWY0IiwiX2NhbGxlZTIiLCJjaGF0SWQiLCJzdWNjZXNzIiwiX2NvbnRleHQyIiwidXNlcklkIiwiaWQiLCJ0b1N0cmluZyIsInNlbnQiLCJfeCIsImFwcGx5IiwiX3JlZjUiLCJfY2FsbGVlMyIsImNoYXQiLCJfY29udGV4dDMiLCJfb2JqZWN0U3ByZWFkIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJ0aXRsZSIsIl94MiIsIl9jYWxsZWU0IiwiX2NvbnRleHQ0IiwiaGFzTW9yZUNoYXRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRzL3VzZUNoYXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlQ2hhdHNTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlL3VzZUNoYXRzU3RvcmUnXG5pbXBvcnQgeyBVc2VDaGF0c1Byb3BzIH0gZnJvbSAnLi91c2VDaGF0cy5pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi91c2VUJ1xuXG5leHBvcnQgY29uc3QgdXNlQ2hhdHMgPSAoeyBvbkVycm9yIH06IFVzZUNoYXRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG5cbiAgY29uc3QgY2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmNoYXRzKVxuICBjb25zdCBsb2FkaW5nQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmxvYWRpbmdDaGF0cylcbiAgY29uc3QgaXNMb2FkaW5nTW9yZUNoYXRzID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5pc0xvYWRpbmdNb3JlQ2hhdHMpXG4gIGNvbnN0IG5leHRPZmZzZXQgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLm5leHRPZmZzZXQpXG4gIGNvbnN0IGxpbWl0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5saW1pdClcbiAgY29uc3Qgb2Zmc2V0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5vZmZzZXQpXG4gIGNvbnN0IGZldGNoQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmZldGNoQ2hhdHMpXG4gIGNvbnN0IGxvYWRNb3JlQ2hhdHNTdG9yZSA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUubG9hZE1vcmVDaGF0cylcbiAgY29uc3QgZGVsZXRlQ2hhdFN0b3JlID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5kZWxldGVDaGF0KVxuICBjb25zdCB1cGRhdGVDaGF0U3RvcmUgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLnVwZGF0ZUNoYXQpXG5cbiAgY29uc3QgZmV0Y2hDaGF0c1dpdGhDb250ZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgbGltaXQ6IGxpbWl0UGFyYW0gPSAyMCwgb2Zmc2V0OiBvZmZzZXRQYXJhbSA9IDAgfTogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0gPSB7fSkgPT4ge1xuICAgICAgYXdhaXQgZmV0Y2hDaGF0cyh7XG4gICAgICAgIGFnZW50LFxuICAgICAgICBzZWN0aW9uLFxuICAgICAgICBsaW1pdDogbGltaXRQYXJhbSxcbiAgICAgICAgb2Zmc2V0OiBvZmZzZXRQYXJhbSxcbiAgICAgICAgb25FcnJvcixcbiAgICAgICAgbGFuZzogaTE4bi5sYW5ndWFnZSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbYWdlbnQsIHNlY3Rpb24sIGZldGNoQ2hhdHMsIG9uRXJyb3IsIGkxOG4ubGFuZ3VhZ2VdXG4gIClcblxuICBjb25zdCBkZWxldGVDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZGVsZXRlQ2hhdFN0b3JlKHsgY2hhdElkLCB1c2VySWQ6IHVzZXIuaWQudG9TdHJpbmcoKSB9KVxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJTdWNjZXNzKHQoJ3NuYWNrYmFyLmRlbGV0ZUNoYXQuc3VjY2VzcycpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5kZWxldGVDaGF0LmVycm9yJykpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdXNlci5pZCwgZGVsZXRlQ2hhdFN0b3JlLCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHRdXG4gIClcblxuICBjb25zdCB1cGRhdGVDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHVwZGF0ZUNoYXRTdG9yZSh7XG4gICAgICAgIHNlc3Npb25FeHRlcm5hbElkOiBjaGF0LnNlc3Npb25FeHRlcm5hbElkLFxuICAgICAgICBpZDogY2hhdC5pZCxcbiAgICAgICAgLi4uKGNoYXQudGl0bGUgIT0gbnVsbCAmJiB7IHRpdGxlOiBjaGF0LnRpdGxlIH0pLFxuICAgICAgfSlcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdzbmFja2Jhci5yZW5hbWVkQ2hhdC5zdWNjZXNzJykpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLnJlbmFtZWRDaGF0LmVycm9yJykpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdXBkYXRlQ2hhdFN0b3JlLCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHRdXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUNoYXRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGxvYWRNb3JlQ2hhdHNTdG9yZSh7IGFnZW50LCBzZWN0aW9uLCBvbkVycm9yLCBsYW5nOiBpMThuLmxhbmd1YWdlIH0pXG4gIH0sIFthZ2VudCwgc2VjdGlvbiwgbG9hZE1vcmVDaGF0c1N0b3JlLCBvbkVycm9yLCBpMThuLmxhbmd1YWdlXSlcblxuICByZXR1cm4ge1xuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBmZXRjaENoYXRzOiBmZXRjaENoYXRzV2l0aENvbnRleHQsXG4gICAgZGVsZXRlQ2hhdCxcbiAgICBjaGF0cyxcbiAgICB1cGRhdGVDaGF0LFxuICAgIGhhc01vcmVDaGF0czogbmV4dE9mZnNldCAhPT0gbnVsbCxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFFekQsU0FBU0Msa0JBQWtCLFFBQVEsMENBQTBDO0FBQzdFLFNBQVNDLElBQUksUUFBUSxTQUFTO0FBRTlCLE9BQU8sSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUFDLElBQUEsRUFBbUM7RUFBQSxJQUE3QkMsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87RUFDaEMsSUFBTUMsSUFBSSxHQUFHUixPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFBUyxLQUFBLEdBQW9CTCxJQUFJLENBQUMsQ0FBQztJQUFsQk0sQ0FBQyxHQUFBRCxLQUFBLENB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
|
|
170
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVVzZXIiLCJ1c2VHbG9iYWxDb250ZXh0IiwidXNlQ2hhdHNTdG9yZSIsInVzZVNuYWNrQmFyTWFuYWdlciIsInVzZVQiLCJtYXBDT1JMYW5nIiwidXNlQ2hhdHMiLCJfcmVmIiwib25FcnJvciIsInVzZXIiLCJfdXNlVCIsInQiLCJpMThuIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsInNlY3Rpb24iLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImNoYXRzIiwic3RhdGUiLCJsb2FkaW5nQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJuZXh0T2Zmc2V0IiwibGltaXQiLCJvZmZzZXQiLCJmZXRjaENoYXRzIiwibG9hZE1vcmVDaGF0c1N0b3JlIiwibG9hZE1vcmVDaGF0cyIsImRlbGV0ZUNoYXRTdG9yZSIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0U3RvcmUiLCJ1cGRhdGVDaGF0IiwiZmV0Y2hDaGF0c1dpdGhDb250ZXh0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmMyIsIl9yZWYzJGxpbWl0IiwibGltaXRQYXJhbSIsIl9yZWYzJG9mZnNldCIsIm9mZnNldFBhcmFtIiwiX2FyZ3MiLCJhcmd1bWVudHMiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsInVuZGVmaW5lZCIsImxhbmciLCJsYW5ndWFnZSIsInN0b3AiLCJfcmVmNCIsIl9jYWxsZWUyIiwiY2hhdElkIiwic3VjY2VzcyIsIl9jb250ZXh0MiIsInVzZXJJZCIsImlkIiwidG9TdHJpbmciLCJzZW50IiwiX3giLCJhcHBseSIsIl9yZWY1IiwiX2NhbGxlZTMiLCJjaGF0IiwiX2NvbnRleHQzIiwiX29iamVjdFNwcmVhZCIsInNlc3Npb25FeHRlcm5hbElkIiwidGl0bGUiLCJfeDIiLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsImhhc01vcmVDaGF0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VDaGF0cy91c2VDaGF0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi9zdG9yZS91c2VDaGF0c1N0b3JlJ1xuaW1wb3J0IHsgVXNlQ2hhdHNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdHMuaW50ZXJmYWNlcydcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi9sYW5nL3V0aWxzJ1xuXG5leHBvcnQgY29uc3QgdXNlQ2hhdHMgPSAoeyBvbkVycm9yIH06IFVzZUNoYXRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG5cbiAgY29uc3QgY2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmNoYXRzKVxuICBjb25zdCBsb2FkaW5nQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmxvYWRpbmdDaGF0cylcbiAgY29uc3QgaXNMb2FkaW5nTW9yZUNoYXRzID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5pc0xvYWRpbmdNb3JlQ2hhdHMpXG4gIGNvbnN0IG5leHRPZmZzZXQgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLm5leHRPZmZzZXQpXG4gIGNvbnN0IGxpbWl0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5saW1pdClcbiAgY29uc3Qgb2Zmc2V0ID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5vZmZzZXQpXG4gIGNvbnN0IGZldGNoQ2hhdHMgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLmZldGNoQ2hhdHMpXG4gIGNvbnN0IGxvYWRNb3JlQ2hhdHNTdG9yZSA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUubG9hZE1vcmVDaGF0cylcbiAgY29uc3QgZGVsZXRlQ2hhdFN0b3JlID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5kZWxldGVDaGF0KVxuICBjb25zdCB1cGRhdGVDaGF0U3RvcmUgPSB1c2VDaGF0c1N0b3JlKHN0YXRlID0+IHN0YXRlLnVwZGF0ZUNoYXQpXG5cbiAgY29uc3QgZmV0Y2hDaGF0c1dpdGhDb250ZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgbGltaXQ6IGxpbWl0UGFyYW0gPSAyMCwgb2Zmc2V0OiBvZmZzZXRQYXJhbSA9IDAgfTogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0gPSB7fSkgPT4ge1xuICAgICAgYXdhaXQgZmV0Y2hDaGF0cyh7XG4gICAgICAgIGFnZW50LFxuICAgICAgICBzZWN0aW9uLFxuICAgICAgICBsaW1pdDogbGltaXRQYXJhbSxcbiAgICAgICAgb2Zmc2V0OiBvZmZzZXRQYXJhbSxcbiAgICAgICAgb25FcnJvcixcbiAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbYWdlbnQsIHNlY3Rpb24sIGZldGNoQ2hhdHMsIG9uRXJyb3IsIGkxOG4ubGFuZ3VhZ2VdXG4gIClcblxuICBjb25zdCBkZWxldGVDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZGVsZXRlQ2hhdFN0b3JlKHsgY2hhdElkLCB1c2VySWQ6IHVzZXIuaWQudG9TdHJpbmcoKSB9KVxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJTdWNjZXNzKHQoJ3NuYWNrYmFyLmRlbGV0ZUNoYXQuc3VjY2VzcycpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdzbmFja2Jhci5kZWxldGVDaGF0LmVycm9yJykpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdXNlci5pZCwgZGVsZXRlQ2hhdFN0b3JlLCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHRdXG4gIClcblxuICBjb25zdCB1cGRhdGVDaGF0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHVwZGF0ZUNoYXRTdG9yZSh7XG4gICAgICAgIHNlc3Npb25FeHRlcm5hbElkOiBjaGF0LnNlc3Npb25FeHRlcm5hbElkLFxuICAgICAgICBpZDogY2hhdC5pZCxcbiAgICAgICAgLi4uKGNoYXQudGl0bGUgIT0gbnVsbCAmJiB7IHRpdGxlOiBjaGF0LnRpdGxlIH0pLFxuICAgICAgfSlcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdzbmFja2Jhci5yZW5hbWVkQ2hhdC5zdWNjZXNzJykpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLnJlbmFtZWRDaGF0LmVycm9yJykpXG4gICAgICB9XG4gICAgfSxcbiAgICBbdXBkYXRlQ2hhdFN0b3JlLCBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHRdXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUNoYXRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGxvYWRNb3JlQ2hhdHNTdG9yZSh7IGFnZW50LCBzZWN0aW9uLCBvbkVycm9yLCBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpIH0pXG4gIH0sIFthZ2VudCwgc2VjdGlvbiwgbG9hZE1vcmVDaGF0c1N0b3JlLCBvbkVycm9yLCBpMThuLmxhbmd1YWdlXSlcblxuICByZXR1cm4ge1xuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBmZXRjaENoYXRzOiBmZXRjaENoYXRzV2l0aENvbnRleHQsXG4gICAgZGVsZXRlQ2hhdCxcbiAgICBjaGF0cyxcbiAgICB1cGRhdGVDaGF0LFxuICAgIGhhc01vcmVDaGF0czogbmV4dE9mZnNldCAhPT0gbnVsbCxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsUUFBUSxPQUFPO0FBQ25DLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFFekQsU0FBU0Msa0JBQWtCLFFBQVEsMENBQTBDO0FBQzdFLFNBQVNDLElBQUksUUFBUSxTQUFTO0FBQzlCLFNBQVNDLFVBQVUsUUFBUSxrQkFBa0I7QUFFN0MsT0FBTyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsSUFBQSxFQUFtQztFQUFBLElBQTdCQyxPQUFPLEdBQUFELElBQUEs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
|
|
@@ -18,6 +18,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
18
18
|
import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
|
|
19
19
|
import { fetchMaia } from '../client';
|
|
20
20
|
import { useUser, CORUserRole } from '../../../context/cor-user';
|
|
21
|
+
import { mapCORLang } from '../../../lang/utils';
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Ordena los agentes: agentes clone primero (si existen), luego favoritos alfabéticamente, luego no favoritos alfabéticamente
|
|
@@ -216,7 +217,7 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
216
217
|
orderParam = section === 'client' ? '&order=client,project' : section === 'project' ? '&order=project,client' : '';
|
|
217
218
|
_context.next = 5;
|
|
218
219
|
return fetchMaia({
|
|
219
|
-
path: "agents?agent_type=clone&lang=".concat(i18n.language).concat(orderParam),
|
|
220
|
+
path: "agents?agent_type=clone&lang=".concat(mapCORLang(i18n.language)).concat(orderParam),
|
|
220
221
|
method: 'GET'
|
|
221
222
|
});
|
|
222
223
|
case 5:
|
|
@@ -321,12 +322,12 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
321
322
|
queryParams = new URLSearchParams();
|
|
322
323
|
if (section === 'project' || section === 'client') {
|
|
323
324
|
queryParams.append('agent_type', 'clone');
|
|
324
|
-
queryParams.append('lang', i18n.language);
|
|
325
|
+
queryParams.append('lang', mapCORLang(i18n.language));
|
|
325
326
|
queryParams.append('order', section === 'client' ? 'client,project' : 'project,client');
|
|
326
327
|
} else if (section === 'header' && !isMultiAgents) {
|
|
327
328
|
// Header sin multiAgents: solo listar agentes clone (Maia)
|
|
328
329
|
queryParams.append('agent_type', 'clone');
|
|
329
|
-
queryParams.append('lang', i18n.language);
|
|
330
|
+
queryParams.append('lang', mapCORLang(i18n.language));
|
|
330
331
|
queryParams.append('limit', '7');
|
|
331
332
|
queryParams.append('offset', '0');
|
|
332
333
|
}
|
|
@@ -462,7 +463,7 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
462
463
|
// Si no es multiAgents, cargar más agentes clone (Maia)
|
|
463
464
|
queryParams = new URLSearchParams();
|
|
464
465
|
queryParams.append('agent_type', 'clone');
|
|
465
|
-
queryParams.append('lang', i18n.language);
|
|
466
|
+
queryParams.append('lang', mapCORLang(i18n.language));
|
|
466
467
|
queryParams.append('limit', '7');
|
|
467
468
|
queryParams.append('offset', agents.next_offset.toString());
|
|
468
469
|
path = "agents?".concat(queryParams.toString());
|
|
@@ -562,4 +563,4 @@ export var useGetAgents = function useGetAgents(_ref) {
|
|
|
562
563
|
sortAgentsList: sortAgentsList
|
|
563
564
|
};
|
|
564
565
|
};
|
|
565
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJzb3J0QWdlbnRzIiwiYWdlbnRzIiwiY2xvbmVBZ2VudHMiLCJmaWx0ZXIiLCJhZyIsInR5cGUiLCJvdGhlckFnZW50cyIsImZhdm9yaXRlcyIsImlzX2Zhdm9yaXRlIiwic29ydCIsImEiLCJiIiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJub25GYXZvcml0ZXMiLCJsZW5ndGgiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJ1c2VHZXRBZ2VudHMiLCJfcmVmIiwic2VsZWN0QWdlbnQiLCJzZWN0aW9uIiwiYWdlbnQiLCJoYW5kbGVHb0hvbWUiLCJ1c2VyIiwiX3VzZVN0YXRlIiwiZGF0YSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldEFnZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmdNb3JlIiwic2V0TG9hZGluZ01vcmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJpMThuIiwibGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJpc1JlZnJlc2hpbmdSZWYiLCJsYXN0UmVxdWVzdFJlZiIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsImFkZEFnZW50IiwibmV3QWdlbnQiLCJwcmV2IiwiYWdlbnRFeGlzdHMiLCJzb21lIiwiZXhpc3RpbmdBZ2VudCIsImlkIiwibmV3RGF0YSIsInNvcnRlZERhdGEiLCJfb2JqZWN0U3ByZWFkIiwicmVtb3ZlQWdlbnQiLCJhZ2VudElkIiwidG9TdHJpbmciLCJ1cGRhdGVBZ2VudCIsInVwZGF0ZWRBZ2VudCIsInVwZGF0ZWREYXRhIiwibWFwIiwidXBkYXRlQWdlbnRGYXZvcml0ZSIsInNob3VsZFNvcnQiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfcmVmMiIsIm1lc3NhZ2UiLCJhZ2VudEZpZWxkcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1lcmdlZEFnZW50IiwiZmluYWxEYXRhIiwiZmluZCIsIl9yZWYzIiwiX2V4Y2x1ZGVkMiIsIl9yZWY0IiwiX2V4Y2x1ZGVkMyIsInNvcnRBZ2VudHNMaXN0Iiwic2VsZWN0Rmlyc3RBZ2VudCIsImZpcnN0QWdlbnQiLCJmaW5kSW5kZXgiLCJhZ2VudERhdGEiLCJjdXJyZW50IiwiaGFuZGxlR2V0QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50VG9TZWxlY3QiLCJfYWdlbnRUb1NlbGVjdCRpZCIsInJlcXVlc3RLZXkiLCJpc011bHRpQWdlbnRzIiwiYWdlbnRQYXJzZWQiLCJoYXNNb3JlIiwibmV4dE9mZnNldCIsIl9tYWlhRGF0YSRkYXRhIiwib3JkZXJQYXJhbSIsIm1haWFSZXNwb25zZSIsIm1haWFEYXRhIiwiX21haWFFcnJvciRyZXNwb25zZSIsIl9tYWlhRXJyb3IkbWVzc2FnZSIsIl9tYWlhRXJyb3IkbWVzc2FnZTIiLCJpczQwM0Vycm9yIiwiY3VzdG9tQWdlbnRzIiwiY3VzdG9tSGFzTW9yZSIsImN1c3RvbU5leHRPZmZzZXQiLCJjdXN0b21SZXNwb25zZSIsImN1c3RvbURhdGEiLCJfY3VzdG9tRXJyb3IkcmVzcG9uc2UiLCJfY3VzdG9tRXJyb3IkbWVzc2FnZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlMiIsIl9pczQwM0Vycm9yIiwicXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsInBhdGgiLCJyZXNwb25zZSIsIl9yZXNwb25zZUVycm9yJHJlc3BvbiIsIl9yZXNwb25zZUVycm9yJG1lc3NhZyIsIl9yZXNwb25zZUVycm9yJG1lc3NhZzIiLCJfaXM0MDNFcnJvcjIiLCJfYWdlbnRQYXJzZWQiLCJfYWdlbnRQYXJzZWQyIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMiIsImF2YWlsYWJsZUFnZW50cyIsIl9hdmFpbGFibGVBZ2VudHMiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYzIiwiX2F2YWlsYWJsZUFnZW50czIiLCJfYXZhaWxhYmxlQWdlbnRzMyIsImZpcnN0QXZhaWxhYmxlQWdlbnQiLCJfdCIsIl90MiIsIl90MyIsIl90NCIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJhYnJ1cHQiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiaW5jbHVkZXMiLCJyb2xlX2lkIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsInN0YXR1cyIsImhhc19tb3JlIiwibmV4dF9vZmZzZXQiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJhZ2VudFRvUmVxdWVzdCIsImFnZW50SXRlbSIsIkVycm9yIiwic2V0VGltZW91dCIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwibG9hZE1vcmVBZ2VudHMiLCJfY2FsbGVlMiIsImNhbkxvYWRNb3JlIiwiX3Q1IiwiX2NvbnRleHQyIiwiZXhpc3RpbmdDbG9uZUFnZW50cyIsImV4aXN0aW5nSWRzIiwiU2V0IiwibmV3QWdlbnRzIiwiaGFzIiwiaGFzTm9BZ2VudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuLyoqXG4gKiBPcmRlbmEgbG9zIGFnZW50ZXM6IGFnZW50ZXMgY2xvbmUgcHJpbWVybyAoc2kgZXhpc3RlbiksIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICovXG5jb25zdCBzb3J0QWdlbnRzID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICAvLyBTZXBhcmFyIGFnZW50ZXMgY2xvbmUgZGVsIHJlc3RvXG4gIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICBjb25zdCBvdGhlckFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWcgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJylcblxuICAvLyBTZXBhcmFyIGZhdm9yaXRvcyB5IG5vIGZhdm9yaXRvc1xuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG5cbiAgLy8gQ29tYmluYXI6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MsIGx1ZWdvIG5vIGZhdm9yaXRvc1xuICByZXR1cm4gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbnR5cGUgVXNlR2V0QWdlbnRzUHJvcHMgPSB7XG4gIHNlbGVjdEFnZW50OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCdcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGFuZGxlR29Ib21lKClcbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBRdWVyeSAxOiBBZ2VudGVzIGNsb25lIChNYWlhKSAtIFNvbG8gcGFyYSByb2xlcyBwZXJtaXRpZG9zLiBQdWVkZW4gdmVuaXIgbcO6bHRpcGxlcyBhZ2VudGVzIHRpcG8gY2xvbmVcbiAgICAgICAgICBsZXQgY2xvbmVBZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGlmICghdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JkZXJQYXJhbSA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnJm9yZGVyPWNsaWVudCxwcm9qZWN0JyA6IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/ICcmb3JkZXI9cHJvamVjdCxjbGllbnQnIDogJydcbiAgICAgICAgICAgICAgY29uc3QgbWFpYVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke2kxOG4ubGFuZ3VhZ2V9JHtvcmRlclBhcmFtfWAsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgbWFpYURhdGEgPSBhd2FpdCBtYWlhUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIGNsb25lQWdlbnRzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpIHx8IFtdXG4gICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY2xvbmVBZ2VudHNcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICAgIHRocm93IG1haWFFcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUXVlcnkgMjogQWdlbnRlcyBjdXN0b20gY29uIHBhZ2luYWNpw7NuXG4gICAgICAgICAgbGV0IGN1c3RvbUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgbGV0IGN1c3RvbUhhc01vcmUgPSBmYWxzZVxuICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICBjdXN0b21BZ2VudHMgPSBjdXN0b21EYXRhLmRhdGEgfHwgW11cbiAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICAgICAgfSBjYXRjaCAoY3VzdG9tRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKGN1c3RvbUFnZW50cyBxdWVkYSBjb21vIGFycmF5IHZhY8OtbylcbiAgICAgICAgICAgICAgLy8gRXN0byBwdWVkZSBvY3VycmlyIGVuIGRvcyBlc2NlbmFyaW9zOlxuICAgICAgICAgICAgICAvLyAxLiBVc3VhcmlvIE5PIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiB0ZW5kcsOhIHNvbG8gbG9zIGNsb25lQWdlbnRzIChzaSBsYSBxdWVyeSBjbG9uZSBmdWUgZXhpdG9zYSlcbiAgICAgICAgICAgICAgLy8gMi4gVXN1YXJpbyBTw40gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IGVsIGxpc3RhZG8gcXVlZGFyw6EgdmFjw61vIChwb3JxdWUgbm8gaGF5IGNsb25lQWdlbnRzKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDb21iaW5hcjogYWdlbnRlcyBjbG9uZSBwcmltZXJvLCBsdWVnbyBsb3MgY3VzdG9tIChzaSBleGlzdGVuKVxuICAgICAgICAgIC8vIFNpIGVsIHVzdWFyaW8gdGllbmUgdW4gcm9sIGRlc2hhYmlsaXRhZG8sIG5vIGluY2x1aXIgY2xvbmVBZ2VudHNcbiAgICAgICAgICBpZiAodXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBkZSByb2xlcyBkaXNhYmxlZDogc29sbyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdIHkgc2UgbW9zdHJhcsOhIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgLy8gcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgcHJvamVjdCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvcmRlcicsIHNlY3Rpb24gPT09ICdjbGllbnQnID8gJ2NsaWVudCxwcm9qZWN0JyA6ICdwcm9qZWN0LGNsaWVudCcpXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAhaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gSGVhZGVyIHNpbiBtdWx0aUFnZW50czogc29sbyBsaXN0YXIgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBpMThuLmxhbmd1YWdlKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPWNsb25lXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gZGF0YS5uZXh0X29mZnNldFxuXG4gICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIExpbXBpYXIgZWwgZXJyb3IgcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIGkxOG4ubGFuZ3VhZ2UpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIGNsb25lIHkgY3VzdG9tXG4gICAgICAgICAgLy8gTWFudGVuZXIgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZXhpc3RlbnRlcyBhbCBpbmljaW9cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0Nsb25lQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBjbG9uZXMpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJykubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcblxuICAgICAgICAgIC8vIEZpbHRyYXIgbnVldm9zIGFnZW50cyBxdWUgbm8gZXN0w6luIHlhIGVuIGxhIGxpc3RhICh5IHF1ZSBubyBzZWFuIGNsb25lKVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IGRhdGEuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcblxuICAgICAgICAgIC8vIENvbnN0cnVpciBlbCBudWV2byBhcnJheTogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGxvcyBhZ2VudHMgZXhpc3RlbnRlcyBxdWUgbm8gc2VhbiBjbG9uZSwgbHVlZ28gbG9zIG51ZXZvc1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBleGlzdGluZ0Nsb25lQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdDbG9uZUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IHRvZG9zIGxvcyBhZ2VudGVzIHNvbiBjbG9uZSwgc2ltcGxlbWVudGUgYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgY29uc3QgaGFzTm9BZ2VudHMgPSAhbG9hZGluZyAmJiAhbG9hZGluZ01vcmUgJiYgIWVycm9yICYmIGFnZW50cy5kYXRhLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxNQUFlLEVBQWM7RUFDL0M7RUFDQSxJQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQztFQUM1RCxJQUFNQyxXQUFXLEdBQUdMLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO0VBQUEsRUFBQzs7RUFFNUQ7RUFDQSxJQUFNRSxTQUFTLEdBQUdELFdBQVcsQ0FBQ0gsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJQSxFQUFFLENBQUNJLFdBQVc7RUFBQSxFQUFDLENBQUNDLElBQUksQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUM7SUFBQSxPQUFLRCxDQUFDLENBQUNFLElBQUksQ0FBQ0MsYUFBYSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQztFQUFBLEVBQUM7RUFDdkcsSUFBTUUsWUFB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
|
|
566
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJtYXBDT1JMYW5nIiwic29ydEFnZW50cyIsImFnZW50cyIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJ0eXBlIiwib3RoZXJBZ2VudHMiLCJmYXZvcml0ZXMiLCJpc19mYXZvcml0ZSIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwibm9uRmF2b3JpdGVzIiwibGVuZ3RoIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidXNlR2V0QWdlbnRzIiwiX3JlZiIsInNlbGVjdEFnZW50Iiwic2VjdGlvbiIsImFnZW50IiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaTE4biIsImxhc3RTZWxlY3RlZEFnZW50UmVmIiwiaXNSZWZyZXNoaW5nUmVmIiwibGFzdFJlcXVlc3RSZWYiLCJ1c2VyUm9sZXNEaXNhYmxlZCIsIkNPTExBQk9SQVRPUiIsIkZSRUVMQU5DRVIiLCJDTElFTlQiLCJhZGRBZ2VudCIsIm5ld0FnZW50IiwicHJldiIsImFnZW50RXhpc3RzIiwic29tZSIsImV4aXN0aW5nQWdlbnQiLCJpZCIsIm5ld0RhdGEiLCJzb3J0ZWREYXRhIiwiX29iamVjdFNwcmVhZCIsInJlbW92ZUFnZW50IiwiYWdlbnRJZCIsInRvU3RyaW5nIiwidXBkYXRlQWdlbnQiLCJ1cGRhdGVkQWdlbnQiLCJ1cGRhdGVkRGF0YSIsIm1hcCIsInVwZGF0ZUFnZW50RmF2b3JpdGUiLCJzaG91bGRTb3J0IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX3JlZjIiLCJtZXNzYWdlIiwiYWdlbnRGaWVsZHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJtZXJnZWRBZ2VudCIsImZpbmFsRGF0YSIsImZpbmQiLCJfcmVmMyIsIl9leGNsdWRlZDIiLCJfcmVmNCIsIl9leGNsdWRlZDMiLCJzb3J0QWdlbnRzTGlzdCIsInNlbGVjdEZpcnN0QWdlbnQiLCJmaXJzdEFnZW50IiwiZmluZEluZGV4IiwiYWdlbnREYXRhIiwiY3VycmVudCIsImhhbmRsZUdldEFnZW50cyIsIl9yZWY1IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJhZ2VudFRvU2VsZWN0IiwiX2FnZW50VG9TZWxlY3QkaWQiLCJyZXF1ZXN0S2V5IiwiaXNNdWx0aUFnZW50cyIsImFnZW50UGFyc2VkIiwiaGFzTW9yZSIsIm5leHRPZmZzZXQiLCJfbWFpYURhdGEkZGF0YSIsIm9yZGVyUGFyYW0iLCJtYWlhUmVzcG9uc2UiLCJtYWlhRGF0YSIsIl9tYWlhRXJyb3IkcmVzcG9uc2UiLCJfbWFpYUVycm9yJG1lc3NhZ2UiLCJfbWFpYUVycm9yJG1lc3NhZ2UyIiwiaXM0MDNFcnJvciIsImN1c3RvbUFnZW50cyIsImN1c3RvbUhhc01vcmUiLCJjdXN0b21OZXh0T2Zmc2V0IiwiY3VzdG9tUmVzcG9uc2UiLCJjdXN0b21EYXRhIiwiX2N1c3RvbUVycm9yJHJlc3BvbnNlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UiLCJfY3VzdG9tRXJyb3IkbWVzc2FnZTIiLCJfaXM0MDNFcnJvciIsInF1ZXJ5UGFyYW1zIiwicXVlcnlTdHJpbmciLCJwYXRoIiwicmVzcG9uc2UiLCJfcmVzcG9uc2VFcnJvciRyZXNwb24iLCJfcmVzcG9uc2VFcnJvciRtZXNzYWciLCJfcmVzcG9uc2VFcnJvciRtZXNzYWcyIiwiX2lzNDAzRXJyb3IyIiwiX2FnZW50UGFyc2VkIiwiX2FnZW50UGFyc2VkMiIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZiIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjIiLCJhdmFpbGFibGVBZ2VudHMiLCJfYXZhaWxhYmxlQWdlbnRzIiwiX2xhc3RTZWxlY3RlZEFnZW50UmVmMyIsIl9hdmFpbGFibGVBZ2VudHMyIiwiX2F2YWlsYWJsZUFnZW50czMiLCJmaXJzdEF2YWlsYWJsZUFnZW50IiwiX3QiLCJfdDIiLCJfdDMiLCJfdDQiLCJ3cmFwIiwiX2NvbnRleHQiLCJuZXh0IiwiYWJydXB0Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImluY2x1ZGVzIiwicm9sZV9pZCIsImxhbmd1YWdlIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJzdGF0dXMiLCJoYXNfbW9yZSIsIm5leHRfb2Zmc2V0IiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiYWdlbnRUb1JlcXVlc3QiLCJhZ2VudEl0ZW0iLCJFcnJvciIsInNldFRpbWVvdXQiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImxvYWRNb3JlQWdlbnRzIiwiX2NhbGxlZTIiLCJjYW5Mb2FkTW9yZSIsIl90NSIsIl9jb250ZXh0MiIsImV4aXN0aW5nQ2xvbmVBZ2VudHMiLCJleGlzdGluZ0lkcyIsIlNldCIsIm5ld0FnZW50cyIsImhhcyIsImhhc05vQWdlbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyB1c2VVc2VyLCBDT1JVc2VyUm9sZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcblxuLyoqXG4gKiBPcmRlbmEgbG9zIGFnZW50ZXM6IGFnZW50ZXMgY2xvbmUgcHJpbWVybyAoc2kgZXhpc3RlbiksIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICovXG5jb25zdCBzb3J0QWdlbnRzID0gKGFnZW50czogQWdlbnRbXSk6IEFnZW50W10gPT4ge1xuICAvLyBTZXBhcmFyIGFnZW50ZXMgY2xvbmUgZGVsIHJlc3RvXG4gIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICBjb25zdCBvdGhlckFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWcgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJylcblxuICAvLyBTZXBhcmFyIGZhdm9yaXRvcyB5IG5vIGZhdm9yaXRvc1xuICBjb25zdCBmYXZvcml0ZXMgPSBvdGhlckFnZW50cy5maWx0ZXIoYWcgPT4gYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gIGNvbnN0IG5vbkZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiAhYWcuaXNfZmF2b3JpdGUpLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG5cbiAgLy8gQ29tYmluYXI6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MsIGx1ZWdvIG5vIGZhdm9yaXRvc1xuICByZXR1cm4gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc10gOiBbLi4uZmF2b3JpdGVzLCAuLi5ub25GYXZvcml0ZXNdXG59XG5cbnR5cGUgVXNlR2V0QWdlbnRzUHJvcHMgPSB7XG4gIHNlbGVjdEFnZW50OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCdcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50cyA9ICh7IHNlbGVjdEFnZW50LCBzZWN0aW9uLCBhZ2VudCwgaGFuZGxlR29Ib21lIH06IFVzZUdldEFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPHsgZGF0YTogQWdlbnRbXTsgaGFzX21vcmU/OiBib29sZWFuOyBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGwgfT4oeyBkYXRhOiBbXSB9KVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNb3JlLCBzZXRMb2FkaW5nTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oJ2NoYXRfYWlfc2VjdGlvbicpXG4gIGNvbnN0IGxhc3RTZWxlY3RlZEFnZW50UmVmID0gdXNlUmVmPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNSZWZyZXNoaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBsYXN0UmVxdWVzdFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IGFkZEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgYWdlbnRlIHlhIGV4aXN0ZSBwYXJhIGV2aXRhciBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGFnZW50RXhpc3RzID0gcHJldi5kYXRhLnNvbWUoZXhpc3RpbmdBZ2VudCA9PiBleGlzdGluZ0FnZW50LmlkID09PSBuZXdBZ2VudC5pZClcbiAgICAgICAgaWYgKGFnZW50RXhpc3RzKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgbmV3QWdlbnRdXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGFuZGxlR29Ib21lKClcbiAgICB9LFxuICAgIFtoYW5kbGVHb0hvbWVdXG4gIClcblxuICBjb25zdCByZW1vdmVBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudElkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIGRhdGE6IHByZXYuZGF0YS5maWx0ZXIoYSA9PiBhLmlkICE9PSBhZ2VudElkLnRvU3RyaW5nKCkpLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCB1cGRhdGVBZ2VudCA9IHVzZUNhbGxiYWNrKCh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT5cbiAgICAgICAgZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkID8gdXBkYXRlZEFnZW50IDogZXhpc3RpbmdBZ2VudFxuICAgICAgKVxuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHModXBkYXRlZERhdGEpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50RmF2b3JpdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodXBkYXRlZEFnZW50OiBBZ2VudCwgc2hvdWxkU29ydDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gcHJldi5kYXRhLm1hcChleGlzdGluZ0FnZW50ID0+IHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBZ2VudC5pZCA9PT0gdXBkYXRlZEFnZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgICBjb25zdCBtZXJnZWRBZ2VudCA9IHsgLi4uZXhpc3RpbmdBZ2VudCwgLi4uYWdlbnRGaWVsZHMgfVxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEFnZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ0FnZW50XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU29sbyBvcmRlbmFyIHNpIHNob3VsZFNvcnQgZXMgdHJ1ZVxuICAgICAgICBjb25zdCBmaW5hbERhdGEgPSBzaG91bGRTb3J0ID8gc29ydEFnZW50cyh1cGRhdGVkRGF0YSkgOiB1cGRhdGVkRGF0YVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBkYXRhOiBmaW5hbERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIEFjdHVhbGl6YXIgZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBzaSBlcyBlbCBxdWUgc2UgZXN0w6EgYWN0dWFsaXphbmRvXG4gICAgICBpZiAoYWdlbnQ/LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmQoYSA9PiBhLmlkID09PSB1cGRhdGVkQWdlbnQuaWQpXG4gICAgICAgIGlmIChleGlzdGluZ0FnZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgc2VsZWN0QWdlbnQobWVyZ2VkQWdlbnQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5hZ2VudEZpZWxkcyB9ID0gdXBkYXRlZEFnZW50IGFzIGFueVxuICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50RmllbGRzIGFzIEFnZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYWdlbnQsIHNlbGVjdEFnZW50LCBhZ2VudHMuZGF0YV1cbiAgKVxuXG4gIGNvbnN0IHNvcnRBZ2VudHNMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKHByZXYuZGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0Rmlyc3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWdlbnRzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QWdlbnQgPSBhZ2VudHMuZGF0YS5maW5kSW5kZXgoYWdlbnREYXRhID0+IGFnZW50RGF0YS5pZCA9PT0gYWdlbnRJZClcbiAgICAgICAgbGFzdFNlbGVjdGVkQWdlbnRSZWYuY3VycmVudCA9IGFnZW50cy5kYXRhW2ZpcnN0QWdlbnQgPT09IDAgPyAxIDogMF1cbiAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudHMuZGF0YSwgc2VsZWN0QWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYWdlbnRUb1NlbGVjdD86IEFnZW50KSA9PiB7XG4gICAgICBpZiAoaXNSZWZyZXNoaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBhZ2VudFRvU2VsZWN0Py5pZD8udG9TdHJpbmcoKSB8fCAnZGVmYXVsdCdcbiAgICAgIGlmIChsYXN0UmVxdWVzdFJlZi5jdXJyZW50ID09PSByZXF1ZXN0S2V5ICYmICFsb2FkaW5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpc1JlZnJlc2hpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPSByZXF1ZXN0S2V5XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuXG4gICAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFnZW50UGFyc2VkOiBBZ2VudFtdID0gW11cbiAgICAgICAgbGV0IGhhc01vcmUgPSBmYWxzZVxuICAgICAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxuICAgICAgICAvLyBTaSB0aWVuZSBmZWF0dXJlIGFjY2VzcyBtdWx0aSBhZ2VudHMsIGhhY2VyIGRvcyBxdWVyaWVzIChNYWlhICsgY3VzdG9tKSBlbiBjdWFscXVpZXIgc2VjY2nDs25cbiAgICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgICAvLyBRdWVyeSAxOiBBZ2VudGVzIGNsb25lIChNYWlhKSAtIFNvbG8gcGFyYSByb2xlcyBwZXJtaXRpZG9zLiBQdWVkZW4gdmVuaXIgbcO6bHRpcGxlcyBhZ2VudGVzIHRpcG8gY2xvbmVcbiAgICAgICAgICBsZXQgY2xvbmVBZ2VudHM6IEFnZW50W10gPSBbXVxuICAgICAgICAgIGlmICghdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JkZXJQYXJhbSA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnJm9yZGVyPWNsaWVudCxwcm9qZWN0JyA6IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/ICcmb3JkZXI9cHJvamVjdCxjbGllbnQnIDogJydcbiAgICAgICAgICAgICAgY29uc3QgbWFpYVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9JHtvcmRlclBhcmFtfWAsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgbWFpYURhdGEgPSBhd2FpdCBtYWlhUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIGNsb25lQWdlbnRzID0gbWFpYURhdGEuZGF0YT8uZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpIHx8IFtdXG4gICAgICAgICAgICB9IGNhdGNoIChtYWlhRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICAgIG1haWFFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgY29udGludWFyIHNpbiBsb3MgY2xvbmVBZ2VudHNcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICAgIHRocm93IG1haWFFcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUXVlcnkgMjogQWdlbnRlcyBjdXN0b20gY29uIHBhZ2luYWNpw7NuXG4gICAgICAgICAgbGV0IGN1c3RvbUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgbGV0IGN1c3RvbUhhc01vcmUgPSBmYWxzZVxuICAgICAgICAgIGxldCBjdXN0b21OZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aDogJ2FnZW50cz9hZ2VudF90eXBlPWN1c3RvbSZsaW1pdD03Jm9mZnNldD0wJyxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgY3VzdG9tUmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICBjdXN0b21BZ2VudHMgPSBjdXN0b21EYXRhLmRhdGEgfHwgW11cbiAgICAgICAgICAgIGN1c3RvbUhhc01vcmUgPSBjdXN0b21EYXRhLmhhc19tb3JlIHx8IGZhbHNlXG4gICAgICAgICAgICBjdXN0b21OZXh0T2Zmc2V0ID0gY3VzdG9tRGF0YS5uZXh0X29mZnNldCB8fCBudWxsXG4gICAgICAgICAgfSBjYXRjaCAoY3VzdG9tRXJyb3I6IGFueSkge1xuICAgICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGVycm9yIGVzIDQwM1xuICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgIC8vIDEuIEVycm9yIGNvbiBlcnJvckRhdGEuZGV0YWlsIHNpIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAyLiBFcnJvciBnZW7DqXJpY28gJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJyBzaSBlcyA0MDMgcGVybyBubyBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgIGNvbnN0IGlzNDAzRXJyb3IgPVxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICBjdXN0b21FcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgYWdlbnRzXCIpIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjdXN0b21BZ2VudHMgKGN1c3RvbUFnZW50cyBxdWVkYSBjb21vIGFycmF5IHZhY8OtbylcbiAgICAgICAgICAgICAgLy8gRXN0byBwdWVkZSBvY3VycmlyIGVuIGRvcyBlc2NlbmFyaW9zOlxuICAgICAgICAgICAgICAvLyAxLiBVc3VhcmlvIE5PIGVzIGRlIHVzZXJSb2xlc0Rpc2FibGVkOiB0ZW5kcsOhIHNvbG8gbG9zIGNsb25lQWdlbnRzIChzaSBsYSBxdWVyeSBjbG9uZSBmdWUgZXhpdG9zYSlcbiAgICAgICAgICAgICAgLy8gMi4gVXN1YXJpbyBTw40gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IGVsIGxpc3RhZG8gcXVlZGFyw6EgdmFjw61vIChwb3JxdWUgbm8gaGF5IGNsb25lQWdlbnRzKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgb3RybyBlcnJvciwgbGFuemFybG9cbiAgICAgICAgICAgICAgdGhyb3cgY3VzdG9tRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDb21iaW5hcjogYWdlbnRlcyBjbG9uZSBwcmltZXJvLCBsdWVnbyBsb3MgY3VzdG9tIChzaSBleGlzdGVuKVxuICAgICAgICAgIC8vIFNpIGVsIHVzdWFyaW8gdGllbmUgdW4gcm9sIGRlc2hhYmlsaXRhZG8sIG5vIGluY2x1aXIgY2xvbmVBZ2VudHNcbiAgICAgICAgICBpZiAodXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSkge1xuICAgICAgICAgICAgLy8gVXN1YXJpbyBkZSByb2xlcyBkaXNhYmxlZDogc29sbyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpLCBhZ2VudFBhcnNlZCBzZXLDoSBbXSB5IHNlIG1vc3RyYXLDoSBlbXB0eVN0YXRlXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdIHkgc2UgbW9zdHJhcsOhIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gY2xvbmVBZ2VudHMubGVuZ3RoID8gWy4uLmNsb25lQWdlbnRzLCAuLi5jdXN0b21BZ2VudHNdIDogY3VzdG9tQWdlbnRzXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgIGhhc01vcmUgPSBjdXN0b21IYXNNb3JlXG4gICAgICAgICAgbmV4dE9mZnNldCA9IGN1c3RvbU5leHRPZmZzZXRcblxuICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIGhhc19tb3JlOiBoYXNNb3JlLFxuICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC8vIFNpIG5vIGhheSBhZ2VudGVzIGRlc3B1w6lzIGRlIHByb2Nlc2FyIGxhcyBxdWVyaWVzLCBsaW1waWFyIGVsIGVycm9yXG4gICAgICAgICAgLy8gcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICBpZiAoYWdlbnRQYXJzZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMw7NnaWNhIHBhcmEgcHJvamVjdCBvIGhlYWRlciBzaW4gbXVsdGlBZ2VudHNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvcmRlcicsIHNlY3Rpb24gPT09ICdjbGllbnQnID8gJ2NsaWVudCxwcm9qZWN0JyA6ICdwcm9qZWN0LGNsaWVudCcpXG4gICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uID09PSAnaGVhZGVyJyAmJiAhaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgICAgLy8gSGVhZGVyIHNpbiBtdWx0aUFnZW50czogc29sbyBsaXN0YXIgYWdlbnRlcyBjbG9uZSAoTWFpYSlcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICc3JylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgJzAnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKVxuICAgICAgICAgIGNvbnN0IHBhdGggPSBgYWdlbnRzJHtxdWVyeVN0cmluZyA/IGA/JHtxdWVyeVN0cmluZ31gIDogJyd9YFxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIC8vIGRhdGEuZGF0YSB5YSBjb250aWVuZSB0b2RvcyBsb3MgYWdlbnRlcyBjbG9uZSBkZSBsYSBxdWVyeSBhZ2VudF90eXBlPWNsb25lXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGRhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICAgIGhhc01vcmUgPSBkYXRhLmhhc19tb3JlXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gZGF0YS5uZXh0X29mZnNldFxuXG4gICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICBkYXRhOiBhZ2VudFBhcnNlZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAocmVzcG9uc2VFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5zdGF0dXMgPT09IDQwMyB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0ZhaWxlZCBmZXRjaGluZyBkYXRhJykgLy8gZmV0Y2hDT1IgbGFuemEgZXN0byBwYXJhIDQwMyBzaW4gJ0FjY2VzcyBkZW5pZWQnXG5cbiAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIDQwMywgZXN0YWJsZWNlciBhZ2VudGVzIHZhY8Otb3MgeSBjb250aW51YXJcbiAgICAgICAgICAgICAgc2V0QWdlbnRzKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgICAgICBoYXNfbW9yZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmV4dF9vZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIExpbXBpYXIgZWwgZXJyb3IgcGFyYSBxdWUgaGFzTm9BZ2VudHMgcHVlZGEgc2VyIHRydWUgeSBzZSBtdWVzdHJlIGVsIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgcGF0aCA9IGBhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9NyZvZmZzZXQ9JHthZ2VudHMubmV4dF9vZmZzZXR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgbm8gZXMgbXVsdGlBZ2VudHMsIGNhcmdhciBtw6FzIGFnZW50ZXMgY2xvbmUgKE1haWEpXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnYWdlbnRfdHlwZScsICdjbG9uZScpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnNycpXG4gICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgYWdlbnRzLm5leHRfb2Zmc2V0LnRvU3RyaW5nKCkpXG4gICAgICAgIHBhdGggPSBgYWdlbnRzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgLy8gQWN1bXVsYXIgYWdlbnRlcywgZXhjbHV5ZW5kbyBkdXBsaWNhZG9zXG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIGlmIChpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgLy8gTMOzZ2ljYSBwYXJhIG11bHRpQWdlbnRzOiBzZXBhcmFyIGNsb25lIHkgY3VzdG9tXG4gICAgICAgICAgLy8gTWFudGVuZXIgdG9kb3MgbG9zIGFnZW50ZXMgY2xvbmUgZXhpc3RlbnRlcyBhbCBpbmljaW9cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0Nsb25lQWdlbnRzID0gcHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuXG4gICAgICAgICAgLy8gT2J0ZW5lciBJRHMgZXhpc3RlbnRlcyAoZXhjbHV5ZW5kbyBjbG9uZXMpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJykubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcblxuICAgICAgICAgIC8vIEZpbHRyYXIgbnVldm9zIGFnZW50cyBxdWUgbm8gZXN0w6luIHlhIGVuIGxhIGxpc3RhICh5IHF1ZSBubyBzZWFuIGNsb25lKVxuICAgICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IGRhdGEuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyAmJiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcblxuICAgICAgICAgIC8vIENvbnN0cnVpciBlbCBudWV2byBhcnJheTogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGxvcyBhZ2VudHMgZXhpc3RlbnRlcyBxdWUgbm8gc2VhbiBjbG9uZSwgbHVlZ28gbG9zIG51ZXZvc1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBleGlzdGluZ0Nsb25lQWdlbnRzLmxlbmd0aFxuICAgICAgICAgICAgPyBbLi4uZXhpc3RpbmdDbG9uZUFnZW50cywgLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuICAgICAgICAgICAgOiBbLi4ucHJldi5kYXRhLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlICE9PSAnY2xvbmUnKSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgICAgLy8gT3JkZW5hcjogTWFpYSBwcmltZXJvLCBsdWVnbyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZSwgbHVlZ28gbm8gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGVcbiAgICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBMw7NnaWNhIHBhcmEgIWlzTXVsdGlBZ2VudHM6IHRvZG9zIGxvcyBhZ2VudGVzIHNvbiBjbG9uZSwgc2ltcGxlbWVudGUgYWdyZWdhciBldml0YW5kbyBkdXBsaWNhZG9zXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEubWFwKChhZzogQWdlbnQpID0+IGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3QWdlbnRzID0gKGRhdGEuZGF0YSB8fCBbXSkuZmlsdGVyKChhZzogQWdlbnQpID0+ICFleGlzdGluZ0lkcy5oYXMoYWcuaWQpKVxuICAgICAgICBjb25zdCBuZXdEYXRhID0gWy4uLnByZXYuZGF0YSwgLi4ubmV3QWdlbnRzXVxuXG4gICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGEgPSBzb3J0QWdlbnRzKG5ld0RhdGEpXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgIGhhc19tb3JlOiBkYXRhLmhhc19tb3JlLFxuICAgICAgICAgIG5leHRfb2Zmc2V0OiBkYXRhLm5leHRfb2Zmc2V0LFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnc25hY2tiYXIubG9hZE1vcmVBZ2VudHMuZXJyb3InKSlcbiAgICAgIHNldExvYWRpbmdNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGFnZW50cy5oYXNfbW9yZSwgYWdlbnRzLm5leHRfb2Zmc2V0LCBsb2FkaW5nTW9yZSwgaTE4bi5sYW5ndWFnZV0pXG5cbiAgY29uc3QgaGFzTm9BZ2VudHMgPSAhbG9hZGluZyAmJiAhbG9hZGluZ01vcmUgJiYgIWVycm9yICYmIGFnZW50cy5kYXRhLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFzTm9BZ2VudHMsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7QUFDaEUsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLE1BQWUsRUFBYztFQUMvQztFQUNBLElBQU1DLFdBQVcsR0FBR0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDO0VBQzVELElBQU1DLFdBQVcsR0FBR0wsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDOztFQUU1RDtFQUNBLElBQU1FLFNBQVMsR0FBR0QsV0FBVyxDQUFDSCxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0ksV0FB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
|