@projectcor/maia-components 2.11.22 → 2.11.23-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +6 -5
  2. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  3. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  4. package/lib/components/atoms/icons/index.js +3 -1
  5. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +24 -5
  6. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +26 -61
  7. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +130 -0
  8. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +91 -0
  9. package/lib/components/molecules/ChatAIHome/styles.js +37 -43
  10. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  11. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +58 -4
  12. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +43 -0
  13. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  14. package/lib/components/molecules/ChatAIMessages/newStyles.js +24 -21
  15. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +184 -14
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +20 -42
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -13
  18. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  19. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +328 -0
  20. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +178 -0
  21. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -3
  22. package/lib/components/molecules/Sidebar/Sidebar.js +138 -198
  23. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +123 -0
  24. package/lib/components/molecules/Sidebar/Sidebar.styles.js +13 -1
  25. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +99 -52
  26. package/lib/hooks/index.js +4 -1
  27. package/lib/hooks/useAgentSuggestions.js +60 -0
  28. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  29. package/lib/hooks/useChatManager/useChatManager.js +184 -79
  30. package/lib/hooks/useEvent.js +5 -2
  31. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  32. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +19 -7
  33. package/lib/lang/br/index.js +74 -9
  34. package/lib/lang/en/index.js +74 -9
  35. package/lib/lang/es/index.js +72 -7
  36. package/lib/lang/fr/index.js +57 -4
  37. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  38. package/lib/services/maia/Agents/getAgentById.js +9 -5
  39. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  40. package/lib/services/maia/Agents/getAgents.js +9 -10
  41. package/lib/services/maia/Orchestrator/orchestrator.js +29 -22
  42. package/lib/services/utils/mapChatMessages.js +2 -1
  43. package/lib/types/AgentSuggestion.js +2 -0
  44. package/lib/types/Chat.js +1 -1
  45. package/lib/types/agent.js +1 -1
  46. package/lib/types/agentModal.js +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ import { fetchMaia } from '../client';
7
+ import { parseAgentDetailResponse } from './getAgentById';
8
+ function fetchAgentJson(_x, _x2) {
9
+ return _fetchAgentJson.apply(this, arguments);
10
+ }
11
+ function _fetchAgentJson() {
12
+ _fetchAgentJson = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(agentId, signal) {
13
+ var response, data;
14
+ return _regeneratorRuntime.wrap(function (_context) {
15
+ while (1) switch (_context.prev = _context.next) {
16
+ case 0:
17
+ _context.next = 1;
18
+ return fetchMaia({
19
+ path: "agents/".concat(encodeURIComponent(agentId)),
20
+ method: 'GET',
21
+ signal: signal
22
+ });
23
+ case 1:
24
+ response = _context.sent;
25
+ if (response.ok) {
26
+ _context.next = 2;
27
+ break;
28
+ }
29
+ throw new Error("HTTP error! status: ".concat(response.status));
30
+ case 2:
31
+ _context.next = 3;
32
+ return response.json();
33
+ case 3:
34
+ data = _context.sent;
35
+ if (data) {
36
+ _context.next = 4;
37
+ break;
38
+ }
39
+ throw new Error('Invalid response format from server');
40
+ case 4:
41
+ return _context.abrupt("return", data);
42
+ case 5:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee);
47
+ }));
48
+ return _fetchAgentJson.apply(this, arguments);
49
+ }
50
+ var mapKnowledgeBasesToAgentKnowledge = function mapKnowledgeBasesToAgentKnowledge(items) {
51
+ return items.map(function (kb) {
52
+ var _kb$filename, _kb$original_file_typ, _kb$status, _kb$error_message, _kb$file_size_bytes, _kb$created_at, _kb$processing_comple, _kb$filename2;
53
+ return {
54
+ id: kb.id,
55
+ filename: String((_kb$filename = kb.filename) !== null && _kb$filename !== void 0 ? _kb$filename : ''),
56
+ original_file_type: String((_kb$original_file_typ = kb.original_file_type) !== null && _kb$original_file_typ !== void 0 ? _kb$original_file_typ : ''),
57
+ status: String((_kb$status = kb.status) !== null && _kb$status !== void 0 ? _kb$status : ''),
58
+ error_message: String((_kb$error_message = kb.error_message) !== null && _kb$error_message !== void 0 ? _kb$error_message : ''),
59
+ file_size_bytes: Number((_kb$file_size_bytes = kb.file_size_bytes) !== null && _kb$file_size_bytes !== void 0 ? _kb$file_size_bytes : 0),
60
+ created_at: String((_kb$created_at = kb.created_at) !== null && _kb$created_at !== void 0 ? _kb$created_at : ''),
61
+ processing_completed_at: String((_kb$processing_comple = kb.processing_completed_at) !== null && _kb$processing_comple !== void 0 ? _kb$processing_comple : ''),
62
+ file: new File([], String((_kb$filename2 = kb.filename) !== null && _kb$filename2 !== void 0 ? _kb$filename2 : ''))
63
+ };
64
+ });
65
+ };
66
+ export function mapAgentJsonToChatAgent(data) {
67
+ var bases = Array.isArray(data.knowledge_bases) ? data.knowledge_bases : [];
68
+ return _objectSpread(_objectSpread({}, data), {}, {
69
+ id: String(data.id),
70
+ knowledge: bases.length ? mapKnowledgeBasesToAgentKnowledge(bases) : []
71
+ });
72
+ }
73
+
74
+ /** Un solo GET: agente para el selector de chat + payload parseado para hidratar el ABM completo. */
75
+ export function fetchAgentDetailAndParsedForAbm(_x3, _x4) {
76
+ return _fetchAgentDetailAndParsedForAbm.apply(this, arguments);
77
+ }
78
+ function _fetchAgentDetailAndParsedForAbm() {
79
+ _fetchAgentDetailAndParsedForAbm = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(agentId, signal) {
80
+ var data;
81
+ return _regeneratorRuntime.wrap(function (_context2) {
82
+ while (1) switch (_context2.prev = _context2.next) {
83
+ case 0:
84
+ _context2.next = 1;
85
+ return fetchAgentJson(agentId, signal);
86
+ case 1:
87
+ data = _context2.sent;
88
+ return _context2.abrupt("return", {
89
+ chatAgent: mapAgentJsonToChatAgent(data),
90
+ abmParsed: parseAgentDetailResponse(data)
91
+ });
92
+ case 2:
93
+ case "end":
94
+ return _context2.stop();
95
+ }
96
+ }, _callee2);
97
+ }));
98
+ return _fetchAgentDetailAndParsedForAbm.apply(this, arguments);
99
+ }
100
+ export function fetchAgentDetail(_x5, _x6) {
101
+ return _fetchAgentDetail.apply(this, arguments);
102
+ }
103
+ function _fetchAgentDetail() {
104
+ _fetchAgentDetail = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(agentId, signal) {
105
+ var data;
106
+ return _regeneratorRuntime.wrap(function (_context3) {
107
+ while (1) switch (_context3.prev = _context3.next) {
108
+ case 0:
109
+ _context3.next = 1;
110
+ return fetchAgentJson(agentId, signal);
111
+ case 1:
112
+ data = _context3.sent;
113
+ return _context3.abrupt("return", mapAgentJsonToChatAgent(data));
114
+ case 2:
115
+ case "end":
116
+ return _context3.stop();
117
+ }
118
+ }, _callee3);
119
+ }));
120
+ return _fetchAgentDetail.apply(this, arguments);
121
+ }
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJwYXJzZUFnZW50RGV0YWlsUmVzcG9uc2UiLCJmZXRjaEFnZW50SnNvbiIsIl94IiwiX3gyIiwiX2ZldGNoQWdlbnRKc29uIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFnZW50SWQiLCJzaWduYWwiLCJyZXNwb25zZSIsImRhdGEiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJjb25jYXQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJtZXRob2QiLCJzZW50Iiwib2siLCJFcnJvciIsInN0YXR1cyIsImpzb24iLCJhYnJ1cHQiLCJzdG9wIiwibWFwS25vd2xlZGdlQmFzZXNUb0FnZW50S25vd2xlZGdlIiwiaXRlbXMiLCJtYXAiLCJrYiIsIl9rYiRmaWxlbmFtZSIsIl9rYiRvcmlnaW5hbF9maWxlX3R5cCIsIl9rYiRzdGF0dXMiLCJfa2IkZXJyb3JfbWVzc2FnZSIsIl9rYiRmaWxlX3NpemVfYnl0ZXMiLCJfa2IkY3JlYXRlZF9hdCIsIl9rYiRwcm9jZXNzaW5nX2NvbXBsZSIsIl9rYiRmaWxlbmFtZTIiLCJpZCIsImZpbGVuYW1lIiwiU3RyaW5nIiwib3JpZ2luYWxfZmlsZV90eXBlIiwiZXJyb3JfbWVzc2FnZSIsImZpbGVfc2l6ZV9ieXRlcyIsIk51bWJlciIsImNyZWF0ZWRfYXQiLCJwcm9jZXNzaW5nX2NvbXBsZXRlZF9hdCIsImZpbGUiLCJGaWxlIiwibWFwQWdlbnRKc29uVG9DaGF0QWdlbnQiLCJiYXNlcyIsIkFycmF5IiwiaXNBcnJheSIsImtub3dsZWRnZV9iYXNlcyIsIl9vYmplY3RTcHJlYWQiLCJrbm93bGVkZ2UiLCJsZW5ndGgiLCJmZXRjaEFnZW50RGV0YWlsQW5kUGFyc2VkRm9yQWJtIiwiX3gzIiwiX3g0IiwiX2ZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm0iLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsImNoYXRBZ2VudCIsImFibVBhcnNlZCIsImZldGNoQWdlbnREZXRhaWwiLCJfeDUiLCJfeDYiLCJfZmV0Y2hBZ2VudERldGFpbCIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2ZldGNoQWdlbnREZXRhaWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBBZ2VudCwgS25vd2xlZGdlQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHBhcnNlQWdlbnREZXRhaWxSZXNwb25zZSB9IGZyb20gJy4vZ2V0QWdlbnRCeUlkJ1xuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFnZW50SnNvbihhZ2VudElkOiBzdHJpbmcsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYGFnZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChhZ2VudElkKX1gLFxuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgc2lnbmFsLFxuICB9KVxuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgaWYgKCFkYXRhKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCBmcm9tIHNlcnZlcicpXG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cblxuY29uc3QgbWFwS25vd2xlZGdlQmFzZXNUb0FnZW50S25vd2xlZGdlID0gKGl0ZW1zOiB1bmtub3duW10pOiBLbm93bGVkZ2VBZ2VudFtdID0+XG4gIChpdGVtcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdKS5tYXAoa2IgPT4gKHtcbiAgICBpZDoga2IuaWQgYXMgbnVtYmVyLFxuICAgIGZpbGVuYW1lOiBTdHJpbmcoa2IuZmlsZW5hbWUgPz8gJycpLFxuICAgIG9yaWdpbmFsX2ZpbGVfdHlwZTogU3RyaW5nKGtiLm9yaWdpbmFsX2ZpbGVfdHlwZSA/PyAnJyksXG4gICAgc3RhdHVzOiBTdHJpbmcoa2Iuc3RhdHVzID8/ICcnKSxcbiAgICBlcnJvcl9tZXNzYWdlOiBTdHJpbmcoa2IuZXJyb3JfbWVzc2FnZSA/PyAnJyksXG4gICAgZmlsZV9zaXplX2J5dGVzOiBOdW1iZXIoa2IuZmlsZV9zaXplX2J5dGVzID8/IDApLFxuICAgIGNyZWF0ZWRfYXQ6IFN0cmluZyhrYi5jcmVhdGVkX2F0ID8/ICcnKSxcbiAgICBwcm9jZXNzaW5nX2NvbXBsZXRlZF9hdDogU3RyaW5nKGtiLnByb2Nlc3NpbmdfY29tcGxldGVkX2F0ID8/ICcnKSxcbiAgICBmaWxlOiBuZXcgRmlsZShbXSwgU3RyaW5nKGtiLmZpbGVuYW1lID8/ICcnKSksXG4gIH0pKVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwQWdlbnRKc29uVG9DaGF0QWdlbnQoZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBBZ2VudCB7XG4gIGNvbnN0IGJhc2VzID0gQXJyYXkuaXNBcnJheShkYXRhLmtub3dsZWRnZV9iYXNlcykgPyBkYXRhLmtub3dsZWRnZV9iYXNlcyA6IFtdXG4gIHJldHVybiB7XG4gICAgLi4uKGRhdGEgYXMgdW5rbm93biBhcyBBZ2VudCksXG4gICAgaWQ6IFN0cmluZyhkYXRhLmlkKSxcbiAgICBrbm93bGVkZ2U6IGJhc2VzLmxlbmd0aCA/IG1hcEtub3dsZWRnZUJhc2VzVG9BZ2VudEtub3dsZWRnZShiYXNlcykgOiBbXSxcbiAgfVxufVxuXG4vKiogVW4gc29sbyBHRVQ6IGFnZW50ZSBwYXJhIGVsIHNlbGVjdG9yIGRlIGNoYXQgKyBwYXlsb2FkIHBhcnNlYWRvIHBhcmEgaGlkcmF0YXIgZWwgQUJNIGNvbXBsZXRvLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm0oXG4gIGFnZW50SWQ6IHN0cmluZyxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWxcbik6IFByb21pc2U8eyBjaGF0QWdlbnQ6IEFnZW50OyBhYm1QYXJzZWQ6IFJldHVyblR5cGU8dHlwZW9mIHBhcnNlQWdlbnREZXRhaWxSZXNwb25zZT4gfT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hBZ2VudEpzb24oYWdlbnRJZCwgc2lnbmFsKVxuICByZXR1cm4ge1xuICAgIGNoYXRBZ2VudDogbWFwQWdlbnRKc29uVG9DaGF0QWdlbnQoZGF0YSksXG4gICAgYWJtUGFyc2VkOiBwYXJzZUFnZW50RGV0YWlsUmVzcG9uc2UoZGF0YSksXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoQWdlbnREZXRhaWwoYWdlbnRJZDogc3RyaW5nLCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8QWdlbnQ+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoQWdlbnRKc29uKGFnZW50SWQsIHNpZ25hbClcbiAgcmV0dXJuIG1hcEFnZW50SnNvblRvQ2hhdEFnZW50KGRhdGEpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFFckMsU0FBU0Msd0JBQXdCLFFBQVEsZ0JBQWdCO0FBQUEsU0FFMUNDLGNBQWNBLENBQUFDLEVBQUEsRUFBQUMsR0FBQTtFQUFBLE9BQUFDLGVBQUEsQ0FBQUMsS0FBQSxPQUFBQyxTQUFBO0FBQUE7QUFBQSxTQUFBRixnQkFBQTtFQUFBQSxlQUFBLEdBQUFHLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBN0IsU0FBQUMsUUFBOEJDLE9BQWUsRUFBRUMsTUFBb0I7SUFBQSxJQUFBQyxRQUFBLEVBQUFDLElBQUE7SUFB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
@@ -23,13 +23,16 @@ const parsedValues = (values: Agent) => {
23
23
  }
24
24
  }
25
25
  */
26
- var parsedValues = function parsedValues(values) {
26
+ /** Misma forma que consume AbmAgentModal / useGetAgentById (camelCase + knowledge_bases sin transformar). */
27
+ export var parseAgentDetailResponse = function parseAgentDetailResponse(values) {
28
+ var _values$is_active;
29
+ if (!values) return values;
27
30
  return {
28
31
  companyId: values.company_id,
29
32
  createdBy: values.created_by,
30
33
  emoji: values.emoji,
31
34
  hasApiKey: values.has_api_key,
32
- id: values.id,
35
+ id: values.id != null ? String(values.id) : values.id,
33
36
  inputPlaceholder: values.input_placeholder,
34
37
  introduction: values.introduction,
35
38
  knowledgeBases: values.knowledge_bases,
@@ -40,7 +43,8 @@ var parsedValues = function parsedValues(values) {
40
43
  userPrompt: values.user_prompt,
41
44
  access: values.access,
42
45
  clients: values.clients,
43
- is_favorite: values.is_favorite
46
+ is_favorite: values.is_favorite,
47
+ isActive: (_values$is_active = values.is_active) !== null && _values$is_active !== void 0 ? _values$is_active : values.isActive
44
48
  };
45
49
  };
46
50
  /**
@@ -105,7 +109,7 @@ export var useGetAgentById = function useGetAgentById() {
105
109
  }
106
110
  throw new Error('Invalid response format from server');
107
111
  case 6:
108
- setAgent(parsedValues(data));
112
+ setAgent(parseAgentDetailResponse(data));
109
113
  _context.next = 9;
110
114
  break;
111
115
  case 7:
@@ -153,4 +157,4 @@ export var useGetAgentById = function useGetAgentById() {
153
157
  handleCleanAgent: handleCleanAgent
154
158
  };
155
159
  };
156
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiZmV0Y2hNYWlhIiwicGFyc2VkVmFsdWVzIiwidmFsdWVzIiwiY29tcGFueUlkIiwiY29tcGFueV9pZCIsImNyZWF0ZWRCeSIsImNyZWF0ZWRfYnkiLCJlbW9qaSIsImhhc0FwaUtleSIsImhhc19hcGlfa2V5IiwiaWQiLCJpbnB1dFBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb24iLCJrbm93bGVkZ2VCYXNlcyIsImtub3dsZWRnZV9iYXNlcyIsIm1vZGVsQWlJZCIsIm1vZGVsX2FpX2lkIiwibW9kZWxEaXNwbGF5TmFtZSIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsIm5hbWUiLCJ0eXBlIiwidXNlclByb21wdCIsInVzZXJfcHJvbXB0IiwiYWNjZXNzIiwiY2xpZW50cyIsImlzX2Zhdm9yaXRlIiwidXNlR2V0QWdlbnRCeUlkIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWdlbnQiLCJzZXRBZ2VudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImVycm9yIiwic2V0RXJyb3IiLCJhYm9ydENvbnRyb2xsZXJSZWYiLCJoYW5kbGVHZXRBZ2VudEJ5SWQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJzaWduYWwiLCJyZXNwb25zZSIsImRhdGEiLCJlcnJvck1lc3NhZ2UiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiY3VycmVudCIsImFib3J0IiwiQWJvcnRDb250cm9sbGVyIiwiRXJyb3IiLCJwYXRoIiwiY29uY2F0IiwibWV0aG9kIiwic2VudCIsIm9rIiwic3RhdHVzIiwianNvbiIsImFicnVwdCIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVDbGVhbkFnZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2dldEFnZW50QnlJZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG4vKipcbmNvbnN0IHBhcnNlZFZhbHVlcyA9ICh2YWx1ZXM6IEFnZW50KSA9PiB7XG4gIHJldHVybiB7XG4gICAgY29tcGFueV9pZDogdmFsdWVzLmNvbXBhbnlfaWQsXG4gICAgY3JlYXRlZF9ieTogdmFsdWVzLmNyZWF0ZWRfYnksXG4gICAgZW1vamk6IHZhbHVlcy5lbW9qaSxcbiAgICBoYXNfYXBpX2tleTogdmFsdWVzLmhhc19hcGlfa2V5LFxuICAgIGlkOiB2YWx1ZXMuaWQsXG4gICAgaW5wdXRfcGxhY2Vob2xkZXI6IHZhbHVlcy5pbnB1dF9wbGFjZWhvbGRlcixcbiAgICBpbnRyb2R1Y3Rpb246IHZhbHVlcy5pbnRyb2R1Y3Rpb24sXG4gICAga25vd2xlZGdlX2Jhc2VzOiB2YWx1ZXMua25vd2xlZGdlX2Jhc2VzLFxuICAgIG1vZGVsX2FpX2lkOiB2YWx1ZXMubW9kZWxfYWlfaWQsXG4gICAgbW9kZWxfZGlzcGxheV9uYW1lOiB2YWx1ZXMubW9kZWxfZGlzcGxheV9uYW1lLFxuICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgIHR5cGU6IHZhbHVlcy50eXBlLFxuICAgIHVzZXJfcHJvbXB0OiB2YWx1ZXMudXNlcl9wcm9tcHQsXG4gIH1cbn1cbiovXG5jb25zdCBwYXJzZWRWYWx1ZXMgPSAodmFsdWVzOiBhbnkpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBjb21wYW55SWQ6IHZhbHVlcy5jb21wYW55X2lkLFxuICAgIGNyZWF0ZWRCeTogdmFsdWVzLmNyZWF0ZWRfYnksXG4gICAgZW1vamk6IHZhbHVlcy5lbW9qaSxcbiAgICBoYXNBcGlLZXk6IHZhbHVlcy5oYXNfYXBpX2tleSxcbiAgICBpZDogdmFsdWVzLmlkLFxuICAgIGlucHV0UGxhY2Vob2xkZXI6IHZhbHVlcy5pbnB1dF9wbGFjZWhvbGRlcixcbiAgICBpbnRyb2R1Y3Rpb246IHZhbHVlcy5pbnRyb2R1Y3Rpb24sXG4gICAga25vd2xlZGdlQmFzZXM6IHZhbHVlcy5rbm93bGVkZ2VfYmFzZXMsXG4gICAgbW9kZWxBaUlkOiB2YWx1ZXMubW9kZWxfYWlfaWQsXG4gICAgbW9kZWxEaXNwbGF5TmFtZTogdmFsdWVzLm1vZGVsX2Rpc3BsYXlfbmFtZSxcbiAgICBuYW1lOiB2YWx1ZXMubmFtZSxcbiAgICB0eXBlOiB2YWx1ZXMudHlwZSxcbiAgICB1c2VyUHJvbXB0OiB2YWx1ZXMudXNlcl9wcm9tcHQsXG4gICAgYWNjZXNzOiB2YWx1ZXMuYWNjZXNzLFxuICAgIGNsaWVudHM6IHZhbHVlcy5jbGllbnRzLFxuICAgIGlzX2Zhdm9yaXRlOiB2YWx1ZXMuaXNfZmF2b3JpdGUsXG4gIH1cbn1cbi8qKlxuICogSG9vayB0byBnZXQgdGhlIGFnZW50IG1vZGVsc1xuICogQHJldHVybnMge09iamVjdH0gLSBPYmplY3Qgd2l0aCB0aGUgYWdlbnQgbW9kZWxzLCBsb2FkaW5nIHN0YXRlLCBlcnJvciwgYW5kIGhhbmRsZXIgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUdldEFnZW50QnlJZCA9ICgpID0+IHtcbiAgY29uc3QgW2FnZW50LCBzZXRBZ2VudF0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFib3J0Q29udHJvbGxlclJlZiA9IHVzZVJlZjxBYm9ydENvbnRyb2xsZXIgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50QnlJZCA9IHVzZUNhbGxiYWNrKGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50KSB7XG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5hYm9ydCgpXG4gICAgfVxuXG4gICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgICBpZiAoIWFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgQWJvcnRDb250cm9sbGVyJylcbiAgICB9XG4gICAgY29uc3QgeyBzaWduYWwgfSA9IGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50XG5cbiAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgc2V0RXJyb3IobnVsbClcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHMvJHtpZH1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBzaWduYWwsXG4gICAgICB9KVxuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIGlmICghZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gc2VydmVyJylcbiAgICAgIH1cblxuICAgICAgc2V0QWdlbnQocGFyc2VkVmFsdWVzKGRhdGEpIGFzIGFueSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnXG4gICAgICBzZXRFcnJvcihlcnJvck1lc3NhZ2UpXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBhZ2VudCBtb2RlbHM6JywgZXJyKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQuYWJvcnQoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgaGFuZGxlQ2xlYW5BZ2VudCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRBZ2VudChudWxsKVxuICB9LCBbXSlcblxuICByZXR1cm4ge1xuICAgIGFnZW50LFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRCeUlkLFxuICAgIGhhbmRsZUNsZWFuQWdlbnQsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUNoRSxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxNQUFXLEVBQUs7RUFDcEMsT0FBTztJQUNMQyxTQUFTLEVBQUVELE1BQU0sQ0FBQ0UsVUFBVTtJQUM1QkMsU0FBUyxFQUFFSCxNQUFNLENBQUNJLFVBQVU7SUFDNUJDLEtBQUssRUFBRUwsTUFBTSxDQUFDSyxLQUFLO0lBQ25CQyxTQUFTLEVBQUVOLE1BQU0sQ0FBQ08sV0FBVztJQUM3QkMsRUFBRSxFQUFFUixNQUFNLENBQUNRLEVBQUU7SUFDYkMsZ0JBQWdCLEVBQUVULE1BQU0sQ0FBQ1UsaUJBQWlCO0lBQzFDQyxZQUFZLEVBQUVYLE1BQU0sQ0FBQ1csWUFBWTtJQUNqQ0MsY0FBYyxFQUFFWixNQUFNLENBQUNhLGVBQWU7SUFDdENDLFNBQVMsRUFBRWQsTUFBTSxDQUFDZSxXQUFXO0lBQzdCQyxnQkFBZ0IsRUFBRWhCLE1BQU0sQ0FBQ2lCLGtCQUFrQjtJQUMzQ0MsSUFBSSxFQUFFbEIsTUFBTSxDQUFDa0IsSUFBSTtJQUNqQkMsSUFBSSxFQUFFbkIsTUFBTSxDQUFDbUIsSUFBSTtJQUNqQkMsVUFBVSxFQUFFcEIsTUFBTSxDQUFDcUIsV0FBVztJQUM5QkMsTUFBTSxFQUFFdEIsTUFBTSxDQUFDc0IsTUFBTTtJQUNyQkMsT0FBTyxFQUFFdkIsTUFBTSxDQUFDdUIsT0FBTztJQUN2QkMsV0FBVyxFQUFFeEIsTUFBTSxDQUFDd0I7RUFDdEIsQ0FBQztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQVM7RUFDbkMsSUFBQUMsU0FBQSxHQUEwQmhDLFFBQVEsQ0FBTSxJQUFJLENBQUM7SUFBQWlDLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXRDRyxLQUFLLEdBQUFGLFVBQUE7SUFBRUcsUUFBUSxHQUFBSCxVQUFBO0VBQ3RCLElBQUFJLFVBQUEsR0FBOEJyQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFzQyxVQUFBLEdBQUFKLGNBQUEsQ0FBQUcsVUFBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTtFQUMxQixJQUFBRyxVQUFBLEdBQTBCekMsUUFBUSxDQUFnQixJQUFJLENBQUM7SUFBQTBDLFVBQUEsR0FBQVIsY0FBQSxDQUFBTyxVQUFBO0lBQWhERSxLQUFLLEdBQUFELFVBQUE7SUFBRUUsUUFBUSxHQUFBRixVQUFBO0VBQ3RCLElBQU1HLGtCQUFrQixHQUFHM0MsTUFBTSxDQUF5QixJQUFJLENBQUM7RUFFL0QsSUFBTTRDLGtCQUFrQixHQUFHN0MsV0FBVztJQUFBLElBQUE4QyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBQyxTQUFBQyxRQUFPckMsRUFBVTtNQUFBLElBQUFzQyxNQUFBLEVBQUFDLFFBQUEsRUFBQUMsSUFBQSxFQUFBQyxZQUFBLEVBQUFDLEVBQUE7TUFBQSxPQUFBUCxtQkFBQSxDQUFBUSxJQUFBLFdBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1lBQ3RELElBQUlmLGtCQUFrQixDQUFDZ0IsT0FBTyxFQUFFO2NBQzlCaEIsa0JBQWtCLENBQUNnQixPQUFPLENBQUNDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDO1lBRUFqQixrQkFBa0IsQ0FBQ2dCLE9BQU8sR0FBRyxJQUFJRSxlQUFlLENBQUMsQ0FBQztZQUFBLElBQzdDbEIsa0JBQWtCLENBQUNnQixPQUFPO2NBQUFILFFBQUEsQ0FBQUUsSUFBQTtjQUFBO1lBQUE7WUFBQSxNQUN2QixJQUFJSSxLQUFLLENBQUMsa0NBQWtDLENBQUM7VUFBQTtZQUU3Q1osTUFBTSxHQUFLUCxrQkFBa0IsQ0FBQ2dCLE9BQU8sQ0FBckNULE1BQU07WUFFZFosVUFBVSxDQUFDLElBQUksQ0FBQztZQUNoQkksUUFBUSxDQUFDLElBQUksQ0FBQztZQUFBYyxRQUFBLENBQUFDLElBQUE7WUFBQUQsUUFBQSxDQUFBRSxJQUFBO1lBQUEsT0FHV3hELFNBQVMsQ0FBQztjQUMvQjZELElBQUksWUFBQUMsTUFBQSxDQUFZcEQsRUFBRSxDQUFFO2NBQ3BCcUQsTUFBTSxFQUFFLEtBQUs7Y0FDYmYsTUFBTSxFQUFOQTtZQUNGLENBQUMsQ0FBQztVQUFBO1lBSklDLFFBQVEsR0FBQUssUUFBQSxDQUFBVSxJQUFBO1lBQUEsSUFNVGYsUUFBUSxDQUFDZ0IsRUFBRTtjQUFBWCxRQUFBLENBQUFFLElBQUE7Y0FBQTtZQUFBO1lBQUEsTUFDUixJQUFJSSxLQUFLLHdCQUFBRSxNQUFBLENBQXdCYixRQUFRLENBQUNpQixNQUFNLENBQUUsQ0FBQztVQUFBO1lBQUFaLFFBQUEsQ0FBQUUsSUFBQTtZQUFBLE9BR3hDUCxRQUFRLENBQUNrQixJQUFJLENBQUMsQ0FBQztVQUFBO1lBQTVCakIsSUFBSSxHQUFBSSxRQUFBLENBQUFVLElBQUE7WUFBQSxJQUVMZCxJQUFJO2NBQUFJLFFBQUEsQ0FBQUUsSUFBQTtjQUFBO1lBQUE7WUFBQSxNQUNELElBQUlJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQztVQUFBO1lBR3hENUIsUUFBUSxDQUFDL0IsWUFBWSxDQUFDaUQsSUFBSSxDQUFRLENBQUM7WUFBQUksUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtZQUFBRixRQUFBLENBQUFDLElBQUE7WUFBQUgsRUFBQSxHQUFBRSxRQUFBO1lBQUEsTUFFL0JGLEVBQUEsWUFBZVEsS0FBSyxJQUFJUixFQUFBLENBQUloQyxJQUFJLEtBQUssWUFBWTtjQUFBa0MsUUFBQSxDQUFBRSxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFGLFFBQUEsQ0FBQWMsTUFBQTtVQUFBO1lBSS9DakIsWUFBWSxHQUFHQyxFQUFBLFlBQWVRLEtBQUssR0FBR1IsRUFBQSxDQUFJaUIsT0FBTyxHQUFHLDJCQUEyQjtZQUNyRjdCLFFBQVEsQ0FBQ1csWUFBWSxDQUFDO1lBQ3RCbUIsT0FBTyxDQUFDL0IsS0FBSyxDQUFDLDhCQUE4QixFQUFBYSxFQUFLLENBQUM7VUFBQTtZQUFBRSxRQUFBLENBQUFDLElBQUE7WUFFbERuQixVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ2pCSyxrQkFBa0IsQ0FBQ2dCLE9BQU8sR0FBRyxJQUFJO1lBQUEsT0FBQUgsUUFBQSxDQUFBaUIsTUFBQTtVQUFBO1VBQUE7WUFBQSxPQUFBakIsUUFBQSxDQUFBa0IsSUFBQTtRQUFBO01BQUEsR0FBQXpCLE9BQUE7SUFBQSxDQUVwQztJQUFBLGlCQUFBMEIsRUFBQTtNQUFBLE9BQUE5QixJQUFBLENBQUErQixLQUFBLE9BQUFDLFNBQUE7SUFBQTtFQUFBLEtBQUUsRUFBRSxDQUFDO0VBRU41RSxTQUFTLENBQUMsWUFBTTtJQUNkLE9BQU8sWUFBTTtNQUNYLElBQUkwQyxrQkFBa0IsQ0FBQ2dCLE9BQU8sRUFBRTtRQUM5QmhCLGtCQUFrQixDQUFDZ0IsT0FBTyxDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUNwQztJQUNGLENBQUM7RUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTWtCLGdCQUFnQixHQUFHL0UsV0FBVyxDQUFDLFlBQU07SUFDekNtQyxRQUFRLENBQUMsSUFBSSxDQUFDO0VBQ2hCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixPQUFPO0lBQ0xELEtBQUssRUFBTEEsS0FBSztJQUNMSSxPQUFPLEVBQVBBLE9BQU87SUFDUEksS0FBSyxFQUFMQSxLQUFLO0lBQ0xHLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCa0MsZ0JBQWdCLEVBQWhCQTtFQUNGLENBQUM7QUFDSCxDQUFDIiwiaWdub3JlTGlzdCI6W119
160
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiZmV0Y2hNYWlhIiwicGFyc2VBZ2VudERldGFpbFJlc3BvbnNlIiwidmFsdWVzIiwiX3ZhbHVlcyRpc19hY3RpdmUiLCJjb21wYW55SWQiLCJjb21wYW55X2lkIiwiY3JlYXRlZEJ5IiwiY3JlYXRlZF9ieSIsImVtb2ppIiwiaGFzQXBpS2V5IiwiaGFzX2FwaV9rZXkiLCJpZCIsIlN0cmluZyIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnB1dF9wbGFjZWhvbGRlciIsImludHJvZHVjdGlvbiIsImtub3dsZWRnZUJhc2VzIiwia25vd2xlZGdlX2Jhc2VzIiwibW9kZWxBaUlkIiwibW9kZWxfYWlfaWQiLCJtb2RlbERpc3BsYXlOYW1lIiwibW9kZWxfZGlzcGxheV9uYW1lIiwibmFtZSIsInR5cGUiLCJ1c2VyUHJvbXB0IiwidXNlcl9wcm9tcHQiLCJhY2Nlc3MiLCJjbGllbnRzIiwiaXNfZmF2b3JpdGUiLCJpc0FjdGl2ZSIsImlzX2FjdGl2ZSIsInVzZUdldEFnZW50QnlJZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFnZW50Iiwic2V0QWdlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaGFuZGxlR2V0QWdlbnRCeUlkIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwic2lnbmFsIiwicmVzcG9uc2UiLCJkYXRhIiwiZXJyb3JNZXNzYWdlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImN1cnJlbnQiLCJhYm9ydCIsIkFib3J0Q29udHJvbGxlciIsIkVycm9yIiwicGF0aCIsImNvbmNhdCIsIm1ldGhvZCIsInNlbnQiLCJvayIsInN0YXR1cyIsImpzb24iLCJhYnJ1cHQiLCJtZXNzYWdlIiwiY29uc29sZSIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlQ2xlYW5BZ2VudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9nZXRBZ2VudEJ5SWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuLyoqXG5jb25zdCBwYXJzZWRWYWx1ZXMgPSAodmFsdWVzOiBBZ2VudCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNvbXBhbnlfaWQ6IHZhbHVlcy5jb21wYW55X2lkLFxuICAgIGNyZWF0ZWRfYnk6IHZhbHVlcy5jcmVhdGVkX2J5LFxuICAgIGVtb2ppOiB2YWx1ZXMuZW1vamksXG4gICAgaGFzX2FwaV9rZXk6IHZhbHVlcy5oYXNfYXBpX2tleSxcbiAgICBpZDogdmFsdWVzLmlkLFxuICAgIGlucHV0X3BsYWNlaG9sZGVyOiB2YWx1ZXMuaW5wdXRfcGxhY2Vob2xkZXIsXG4gICAgaW50cm9kdWN0aW9uOiB2YWx1ZXMuaW50cm9kdWN0aW9uLFxuICAgIGtub3dsZWRnZV9iYXNlczogdmFsdWVzLmtub3dsZWRnZV9iYXNlcyxcbiAgICBtb2RlbF9haV9pZDogdmFsdWVzLm1vZGVsX2FpX2lkLFxuICAgIG1vZGVsX2Rpc3BsYXlfbmFtZTogdmFsdWVzLm1vZGVsX2Rpc3BsYXlfbmFtZSxcbiAgICBuYW1lOiB2YWx1ZXMubmFtZSxcbiAgICB0eXBlOiB2YWx1ZXMudHlwZSxcbiAgICB1c2VyX3Byb21wdDogdmFsdWVzLnVzZXJfcHJvbXB0LFxuICB9XG59XG4qL1xuLyoqIE1pc21hIGZvcm1hIHF1ZSBjb25zdW1lIEFibUFnZW50TW9kYWwgLyB1c2VHZXRBZ2VudEJ5SWQgKGNhbWVsQ2FzZSArIGtub3dsZWRnZV9iYXNlcyBzaW4gdHJhbnNmb3JtYXIpLiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlQWdlbnREZXRhaWxSZXNwb25zZSA9ICh2YWx1ZXM6IGFueSkgPT4ge1xuICBpZiAoIXZhbHVlcykgcmV0dXJuIHZhbHVlc1xuICByZXR1cm4ge1xuICAgIGNvbXBhbnlJZDogdmFsdWVzLmNvbXBhbnlfaWQsXG4gICAgY3JlYXRlZEJ5OiB2YWx1ZXMuY3JlYXRlZF9ieSxcbiAgICBlbW9qaTogdmFsdWVzLmVtb2ppLFxuICAgIGhhc0FwaUtleTogdmFsdWVzLmhhc19hcGlfa2V5LFxuICAgIGlkOiB2YWx1ZXMuaWQgIT0gbnVsbCA/IFN0cmluZyh2YWx1ZXMuaWQpIDogdmFsdWVzLmlkLFxuICAgIGlucHV0UGxhY2Vob2xkZXI6IHZhbHVlcy5pbnB1dF9wbGFjZWhvbGRlcixcbiAgICBpbnRyb2R1Y3Rpb246IHZhbHVlcy5pbnRyb2R1Y3Rpb24sXG4gICAga25vd2xlZGdlQmFzZXM6IHZhbHVlcy5rbm93bGVkZ2VfYmFzZXMsXG4gICAgbW9kZWxBaUlkOiB2YWx1ZXMubW9kZWxfYWlfaWQsXG4gICAgbW9kZWxEaXNwbGF5TmFtZTogdmFsdWVzLm1vZGVsX2Rpc3BsYXlfbmFtZSxcbiAgICBuYW1lOiB2YWx1ZXMubmFtZSxcbiAgICB0eXBlOiB2YWx1ZXMudHlwZSxcbiAgICB1c2VyUHJvbXB0OiB2YWx1ZXMudXNlcl9wcm9tcHQsXG4gICAgYWNjZXNzOiB2YWx1ZXMuYWNjZXNzLFxuICAgIGNsaWVudHM6IHZhbHVlcy5jbGllbnRzLFxuICAgIGlzX2Zhdm9yaXRlOiB2YWx1ZXMuaXNfZmF2b3JpdGUsXG4gICAgaXNBY3RpdmU6IHZhbHVlcy5pc19hY3RpdmUgPz8gdmFsdWVzLmlzQWN0aXZlLFxuICB9XG59XG4vKipcbiAqIEhvb2sgdG8gZ2V0IHRoZSBhZ2VudCBtb2RlbHNcbiAqIEByZXR1cm5zIHtPYmplY3R9IC0gT2JqZWN0IHdpdGggdGhlIGFnZW50IG1vZGVscywgbG9hZGluZyBzdGF0ZSwgZXJyb3IsIGFuZCBoYW5kbGVyIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VHZXRBZ2VudEJ5SWQgPSAoKSA9PiB7XG4gIGNvbnN0IFthZ2VudCwgc2V0QWdlbnRdID0gdXNlU3RhdGU8YW55PihudWxsKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBhYm9ydENvbnRyb2xsZXJSZWYgPSB1c2VSZWY8QWJvcnRDb250cm9sbGVyIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoYW5kbGVHZXRBZ2VudEJ5SWQgPSB1c2VDYWxsYmFjayhhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCkge1xuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQuYWJvcnQoKVxuICAgIH1cblxuICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50ID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgaWYgKCFhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIEFib3J0Q29udHJvbGxlcicpXG4gICAgfVxuICAgIGNvbnN0IHsgc2lnbmFsIH0gPSBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudFxuXG4gICAgc2V0TG9hZGluZyh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoOiBgYWdlbnRzLyR7aWR9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgc2lnbmFsLFxuICAgICAgfSlcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCBmcm9tIHNlcnZlcicpXG4gICAgICB9XG5cbiAgICAgIHNldEFnZW50KHBhcnNlQWdlbnREZXRhaWxSZXNwb25zZShkYXRhKSBhcyBhbnkpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJ1xuICAgICAgc2V0RXJyb3IoZXJyb3JNZXNzYWdlKVxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgYWdlbnQgbW9kZWxzOicsIGVycilcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50KSB7XG4gICAgICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50LmFib3J0KClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUNsZWFuQWdlbnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnQobnVsbClcbiAgfSwgW10pXG5cbiAgcmV0dXJuIHtcbiAgICBhZ2VudCxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhhbmRsZUdldEFnZW50QnlJZCxcbiAgICBoYW5kbGVDbGVhbkFnZW50LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDaEUsU0FBU0MsU0FBUyxRQUFRLFdBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsTUFBVyxFQUFLO0VBQUEsSUFBQUMsaUJBQUE7RUFDdkQsSUFBSSxDQUFDRCxNQUFNLEVBQUUsT0FBT0EsTUFBTTtFQUMxQixPQUFPO0lBQ0xFLFNBQVMsRUFBRUYsTUFBTSxDQUFDRyxVQUFVO0lBQzVCQyxTQUFTLEVBQUVKLE1BQU0sQ0FBQ0ssVUFBVTtJQUM1QkMsS0FBSyxFQUFFTixNQUFNLENBQUNNLEtBQUs7SUFDbkJDLFNBQVMsRUFBRVAsTUFBTSxDQUFDUSxXQUFXO0lBQzdCQyxFQUFFLEVBQUVULE1BQU0sQ0FBQ1MsRUFBRSxJQUFJLElBQUksR0FBR0MsTUFBTSxDQUFDVixNQUFNLENBQUNTLEVBQUUsQ0FBQyxHQUFHVCxNQUFNLENBQUNTLEVBQUU7SUFDckRFLGdCQUFnQixFQUFFWCxNQUFNLENBQUNZLGlCQUFpQjtJQUMxQ0MsWUFBWSxFQUFFYixNQUFNLENBQUNhLFlBQVk7SUFDakNDLGNBQWMsRUFBRWQsTUFBTSxDQUFDZSxlQUFlO0lBQ3RDQyxTQUFTLEVBQUVoQixNQUFNLENBQUNpQixXQUFXO0lBQzdC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
@@ -0,0 +1,44 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { fetchMaia } from '../client';
5
+ export var getAgentSuggestions = /*#__PURE__*/function () {
6
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
7
+ var lang, signal, response, json, list;
8
+ return _regeneratorRuntime.wrap(function (_context) {
9
+ while (1) switch (_context.prev = _context.next) {
10
+ case 0:
11
+ lang = _ref.lang, signal = _ref.signal;
12
+ _context.next = 1;
13
+ return fetchMaia({
14
+ path: "agents/agent-suggestions?lang=".concat(encodeURIComponent(lang)),
15
+ method: 'GET',
16
+ signal: signal
17
+ });
18
+ case 1:
19
+ response = _context.sent;
20
+ if (response.ok) {
21
+ _context.next = 2;
22
+ break;
23
+ }
24
+ throw new Error("HTTP error! status: ".concat(response.status));
25
+ case 2:
26
+ _context.next = 3;
27
+ return response.json();
28
+ case 3:
29
+ json = _context.sent;
30
+ list = Array.isArray(json.data) ? json.data : [];
31
+ return _context.abrupt("return", _toConsumableArray(list).sort(function (a, b) {
32
+ return a.order - b.order || a.title.localeCompare(b.title);
33
+ }));
34
+ case 4:
35
+ case "end":
36
+ return _context.stop();
37
+ }
38
+ }, _callee);
39
+ }));
40
+ return function getAgentSuggestions(_x) {
41
+ return _ref2.apply(this, arguments);
42
+ };
43
+ }();
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRBZ2VudFN1Z2dlc3Rpb25zIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYiLCJsYW5nIiwic2lnbmFsIiwicmVzcG9uc2UiLCJqc29uIiwibGlzdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicGF0aCIsImNvbmNhdCIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1ldGhvZCIsInNlbnQiLCJvayIsIkVycm9yIiwic3RhdHVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsImFicnVwdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNvcnQiLCJhIiwiYiIsIm9yZGVyIiwidGl0bGUiLCJsb2NhbGVDb21wYXJlIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRTdWdnZXN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgdHlwZSB7IEFnZW50U3VnZ2VzdGlvbiwgQWdlbnRTdWdnZXN0aW9uc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWdlbnRTdWdnZXN0aW9uJ1xuXG5leHBvcnQgdHlwZSBHZXRBZ2VudFN1Z2dlc3Rpb25zUGFyYW1zID0ge1xuICBsYW5nOiBzdHJpbmdcbiAgc2lnbmFsPzogQWJvcnRTaWduYWxcbn1cblxuZXhwb3J0IGNvbnN0IGdldEFnZW50U3VnZ2VzdGlvbnMgPSBhc3luYyAoeyBsYW5nLCBzaWduYWwgfTogR2V0QWdlbnRTdWdnZXN0aW9uc1BhcmFtcyk6IFByb21pc2U8QWdlbnRTdWdnZXN0aW9uW10+ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgIHBhdGg6IGBhZ2VudHMvYWdlbnQtc3VnZ2VzdGlvbnM/bGFuZz0ke2VuY29kZVVSSUNvbXBvbmVudChsYW5nKX1gLFxuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgc2lnbmFsLFxuICB9KVxuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgfVxuXG4gIGNvbnN0IGpzb24gPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBBZ2VudFN1Z2dlc3Rpb25zUmVzcG9uc2VcbiAgY29uc3QgbGlzdCA9IEFycmF5LmlzQXJyYXkoanNvbi5kYXRhKSA/IGpzb24uZGF0YSA6IFtdXG4gIHJldHVybiBbLi4ubGlzdF0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIgfHwgYS50aXRsZS5sb2NhbGVDb21wYXJlKGIudGl0bGUpKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQVFyQyxPQUFPLElBQU1DLG1CQUFtQjtFQUFBLElBQUFDLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQUFDLElBQUE7SUFBQSxJQUFBQyxJQUFBLEVBQUFDLE1BQUEsRUFBQUMsUUFBQSxFQUFBQyxJQUFBLEVBQUFDLElBQUE7SUFBQSxPQUFBUixtQkFBQSxDQUFBUyxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQVNSLElBQUksR0FBQUQsSUFBQSxDQUFKQyxJQUFJLEVBQUVDLE1BQU0sR0FBQUYsSUFBQSxDQUFORSxNQUFNO1VBQUFLLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BQy9CaEIsU0FBUyxDQUFDO1lBQy9CaUIsSUFBSSxtQ0FBQUMsTUFBQSxDQUFtQ0Msa0JBQWtCLENBQUNYLElBQUksQ0FBQyxDQUFFO1lBQ2pFWSxNQUFNLEVBQUUsS0FBSztZQUNiWCxNQUFNLEVBQU5BO1VBQ0YsQ0FBQyxDQUFDO1FBQUE7VUFKSUMsUUFBUSxHQUFBSSxRQUFBLENBQUFPLElBQUE7VUFBQSxJQU1UWCxRQUFRLENBQUNZLEVBQUU7WUFBQVIsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSU8sS0FBSyx3QkFBQUwsTUFBQSxDQUF3QlIsUUFBUSxDQUFDYyxNQUFNLENBQUUsQ0FBQztRQUFBO1VBQUFWLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BR3ZDTixRQUFRLENBQUNDLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBN0JBLElBQUksR0FBQUcsUUFBQSxDQUFBTyxJQUFBO1VBQ0pULElBQUksR0FBR2EsS0FBSyxDQUFDQyxPQUFPLENBQUNmLElBQUksQ0FBQ2dCLElBQUksQ0FBQyxHQUFHaEIsSUFBSSxDQUFDZ0IsSUFBSSxHQUFHLEVBQUU7VUFBQSxPQUFBYixRQUFBLENBQUFjLE1BQUEsV0FDL0NDLGtCQUFBLENBQUlqQixJQUFJLEVBQUVrQixJQUFJLENBQUMsVUFBQ0MsQ0FBQyxFQUFFQyxDQUFDO1lBQUEsT0FBS0QsQ0FBQyxDQUFDRSxLQUFLLEdBQUdELENBQUMsQ0FBQ0MsS0FBSyxJQUFJRixDQUFDLENBQUNHLEtBQUssQ0FBQ0MsYUFBYSxDQUFDSCxDQUFDLENBQUNFLEtBQUssQ0FBQztVQUFBLEVBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQXBCLFFBQUEsQ0FBQXNCLElBQUE7TUFBQTtJQUFBLEdBQUE5QixPQUFBO0VBQUEsQ0FDckY7RUFBQSxnQkFkWUwsbUJBQW1CQSxDQUFBb0MsRUFBQTtJQUFBLE9BQUFuQyxLQUFBLENBQUFvQyxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBYy9CIiwiaWdub3JlTGlzdCI6W119
@@ -80,7 +80,7 @@ export var useGetAgents = function useGetAgents(_ref) {
80
80
  var isRefreshingRef = useRef(false);
81
81
  var lastRequestRef = useRef(null);
82
82
  var userRolesDisabled = [CORUserRole.COLLABORATOR, CORUserRole.FREELANCER, CORUserRole.CLIENT];
83
- var addAgent = useCallback(function (newAgent) {
83
+ var addAgent = useCallback(function (newAgent, options) {
84
84
  setAgents(function (prev) {
85
85
  // Verificar si el agente ya existe para evitar duplicados
86
86
  var agentExists = prev.data.some(function (existingAgent) {
@@ -95,7 +95,9 @@ export var useGetAgents = function useGetAgents(_ref) {
95
95
  data: sortedData
96
96
  });
97
97
  });
98
- handleGoHome();
98
+ if ((options === null || options === void 0 ? void 0 : options.navigateHome) !== false) {
99
+ handleGoHome();
100
+ }
99
101
  }, [handleGoHome]);
100
102
  var removeAgent = useCallback(function (agentId) {
101
103
  setAgents(function (prev) {
@@ -292,12 +294,12 @@ export var useGetAgents = function useGetAgents(_ref) {
292
294
  // Si el usuario tiene un rol deshabilitado, no incluir cloneAgents
293
295
  if (userRolesDisabled.includes(user.role_id)) {
294
296
  // Usuario de roles disabled: solo customAgents
295
- // Si customAgents está vacío (por 403), agentParsed será [] y se mostrará emptyState
297
+ // Si customAgents está vacío (por 403), agentParsed será []
296
298
  agentParsed = customAgents;
297
299
  } else {
298
300
  // Usuario normal: cloneAgents + customAgents
299
301
  // Si customAgents está vacío (por 403) pero hay cloneAgents, agentParsed tendrá los clones
300
- // Si no hay cloneAgents ni customAgents, agentParsed será [] y se mostrará emptyState
302
+ // Si no hay cloneAgents ni customAgents, agentParsed será []
301
303
  agentParsed = cloneAgents.length ? [].concat(_toConsumableArray(cloneAgents), _toConsumableArray(customAgents)) : customAgents;
302
304
  }
303
305
  // Ordenar: Maia primero, luego favoritos alfabéticamente, luego no favoritos alfabéticamente
@@ -311,7 +313,6 @@ export var useGetAgents = function useGetAgents(_ref) {
311
313
  });
312
314
 
313
315
  // Si no hay agentes después de procesar las queries, limpiar el error
314
- // para que hasNoAgents pueda ser true y se muestre el emptyState
315
316
  if (agentParsed.length === 0) {
316
317
  setError(null);
317
318
  }
@@ -375,7 +376,6 @@ export var useGetAgents = function useGetAgents(_ref) {
375
376
  has_more: false,
376
377
  next_offset: null
377
378
  });
378
- // Limpiar el error para que hasNoAgents pueda ser true y se muestre el emptyState
379
379
  setError(null);
380
380
  _context.next = 22;
381
381
  break;
@@ -458,7 +458,8 @@ export var useGetAgents = function useGetAgents(_ref) {
458
458
  _context2.prev = 2;
459
459
  // Si es multiAgents, solo cargar agents custom (Maia ya está cargado)
460
460
  if (isMultiAgents) {
461
- path = "agents?agent_type=custom&limit=7&offset=".concat(agents.next_offset);
461
+ // Mantener cantidad impar de cards: primera carga 7, siguientes +6 (7, 13, 19, ...)
462
+ path = "agents?agent_type=custom&limit=6&offset=".concat(agents.next_offset);
462
463
  } else {
463
464
  // Si no es multiAgents, cargar más agentes clone (Maia)
464
465
  queryParams = new URLSearchParams();
@@ -546,13 +547,11 @@ export var useGetAgents = function useGetAgents(_ref) {
546
547
  }
547
548
  }, _callee2, null, [[2, 5]]);
548
549
  })), [section, agents.has_more, agents.next_offset, loadingMore, i18n.language]);
549
- var hasNoAgents = !loading && !loadingMore && !error && agents.data.length === 0;
550
550
  return {
551
551
  agents: agents,
552
552
  loading: loading,
553
553
  loadingMore: loadingMore,
554
554
  error: error,
555
- hasNoAgents: hasNoAgents,
556
555
  handleGetAgents: handleGetAgents,
557
556
  loadMoreAgents: loadMoreAgents,
558
557
  addAgent: addAgent,
@@ -563,4 +562,4 @@ export var useGetAgents = function useGetAgents(_ref) {
563
562
  sortAgentsList: sortAgentsList
564
563
  };
565
564
  };
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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
565
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaE1haWEiLCJ1c2VVc2VyIiwiQ09SVXNlclJvbGUiLCJtYXBDT1JMYW5nIiwic29ydEFnZW50cyIsImFnZW50cyIsImNsb25lQWdlbnRzIiwiZmlsdGVyIiwiYWciLCJ0eXBlIiwib3RoZXJBZ2VudHMiLCJmYXZvcml0ZXMiLCJpc19mYXZvcml0ZSIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwibm9uRmF2b3JpdGVzIiwibGVuZ3RoIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidXNlR2V0QWdlbnRzIiwiX3JlZiIsInNlbGVjdEFnZW50Iiwic2VjdGlvbiIsImFnZW50IiwiaGFuZGxlR29Ib21lIiwidXNlciIsIl91c2VTdGF0ZSIsImRhdGEiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nTW9yZSIsInNldExvYWRpbmdNb3JlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaTE4biIsImxhc3RTZWxlY3RlZEFnZW50UmVmIiwiaXNSZWZyZXNoaW5nUmVmIiwibGFzdFJlcXVlc3RSZWYiLCJ1c2VyUm9sZXNEaXNhYmxlZCIsIkNPTExBQk9SQVRPUiIsIkZSRUVMQU5DRVIiLCJDTElFTlQiLCJhZGRBZ2VudCIsIm5ld0FnZW50Iiwib3B0aW9ucyIsInByZXYiLCJhZ2VudEV4aXN0cyIsInNvbWUiLCJleGlzdGluZ0FnZW50IiwiaWQiLCJuZXdEYXRhIiwic29ydGVkRGF0YSIsIl9vYmplY3RTcHJlYWQiLCJuYXZpZ2F0ZUhvbWUiLCJyZW1vdmVBZ2VudCIsImFnZW50SWQiLCJ0b1N0cmluZyIsInVwZGF0ZUFnZW50IiwidXBkYXRlZEFnZW50IiwidXBkYXRlZERhdGEiLCJtYXAiLCJ1cGRhdGVBZ2VudEZhdm9yaXRlIiwic2hvdWxkU29ydCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9yZWYyIiwibWVzc2FnZSIsImFnZW50RmllbGRzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibWVyZ2VkQWdlbnQiLCJmaW5hbERhdGEiLCJmaW5kIiwiX3JlZjMiLCJfZXhjbHVkZWQyIiwiX3JlZjQiLCJfZXhjbHVkZWQzIiwic29ydEFnZW50c0xpc3QiLCJzZWxlY3RGaXJzdEFnZW50IiwiZmlyc3RBZ2VudCIsImZpbmRJbmRleCIsImFnZW50RGF0YSIsImN1cnJlbnQiLCJoYW5kbGVHZXRBZ2VudHMiLCJfcmVmNSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiYWdlbnRUb1NlbGVjdCIsIl9hZ2VudFRvU2VsZWN0JGlkIiwicmVxdWVzdEtleSIsImlzTXVsdGlBZ2VudHMiLCJhZ2VudFBhcnNlZCIsImhhc01vcmUiLCJuZXh0T2Zmc2V0IiwiX21haWFEYXRhJGRhdGEiLCJvcmRlclBhcmFtIiwibWFpYVJlc3BvbnNlIiwibWFpYURhdGEiLCJfbWFpYUVycm9yJHJlc3BvbnNlIiwiX21haWFFcnJvciRtZXNzYWdlIiwiX21haWFFcnJvciRtZXNzYWdlMiIsImlzNDAzRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJjdXN0b21IYXNNb3JlIiwiY3VzdG9tTmV4dE9mZnNldCIsImN1c3RvbVJlc3BvbnNlIiwiY3VzdG9tRGF0YSIsIl9jdXN0b21FcnJvciRyZXNwb25zZSIsIl9jdXN0b21FcnJvciRtZXNzYWdlIiwiX2N1c3RvbUVycm9yJG1lc3NhZ2UyIiwiX2lzNDAzRXJyb3IiLCJxdWVyeVBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsInJlc3BvbnNlIiwiX3Jlc3BvbnNlRXJyb3IkcmVzcG9uIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnIiwiX3Jlc3BvbnNlRXJyb3IkbWVzc2FnMiIsIl9pczQwM0Vycm9yMiIsIl9hZ2VudFBhcnNlZCIsIl9hZ2VudFBhcnNlZDIiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYiLCJfbGFzdFNlbGVjdGVkQWdlbnRSZWYyIiwiYXZhaWxhYmxlQWdlbnRzIiwiX2F2YWlsYWJsZUFnZW50cyIsIl9sYXN0U2VsZWN0ZWRBZ2VudFJlZjMiLCJfYXZhaWxhYmxlQWdlbnRzMiIsIl9hdmFpbGFibGVBZ2VudHMzIiwiZmlyc3RBdmFpbGFibGVBZ2VudCIsIl90IiwiX3QyIiwiX3QzIiwiX3Q0Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFicnVwdCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwic3RhdHVzIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImFnZW50VG9SZXF1ZXN0IiwiYWdlbnRJdGVtIiwiRXJyb3IiLCJzZXRUaW1lb3V0IiwiZmluaXNoIiwic3RvcCIsIl94IiwiYXBwbHkiLCJsb2FkTW9yZUFnZW50cyIsIl9jYWxsZWUyIiwiY2FuTG9hZE1vcmUiLCJfdDUiLCJfY29udGV4dDIiLCJleGlzdGluZ0Nsb25lQWdlbnRzIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJuZXdBZ2VudHMiLCJoYXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BZ2VudHMvZ2V0QWdlbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXJSb2xlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuXG4vKipcbiAqIE9yZGVuYSBsb3MgYWdlbnRlczogYWdlbnRlcyBjbG9uZSBwcmltZXJvIChzaSBleGlzdGVuKSwgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gKi9cbmNvbnN0IHNvcnRBZ2VudHMgPSAoYWdlbnRzOiBBZ2VudFtdKTogQWdlbnRbXSA9PiB7XG4gIC8vIFNlcGFyYXIgYWdlbnRlcyBjbG9uZSBkZWwgcmVzdG9cbiAgY29uc3QgY2xvbmVBZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gIGNvbnN0IG90aGVyQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZyA9PiBhZy50eXBlICE9PSAnY2xvbmUnKVxuXG4gIC8vIFNlcGFyYXIgZmF2b3JpdG9zIHkgbm8gZmF2b3JpdG9zXG4gIGNvbnN0IGZhdm9yaXRlcyA9IG90aGVyQWdlbnRzLmZpbHRlcihhZyA9PiBhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgY29uc3Qgbm9uRmF2b3JpdGVzID0gb3RoZXJBZ2VudHMuZmlsdGVyKGFnID0+ICFhZy5pc19mYXZvcml0ZSkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcblxuICAvLyBDb21iaW5hcjogY2xvbmVzIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcywgbHVlZ28gbm8gZmF2b3JpdG9zXG4gIHJldHVybiBjbG9uZUFnZW50cy5sZW5ndGggPyBbLi4uY2xvbmVBZ2VudHMsIC4uLmZhdm9yaXRlcywgLi4ubm9uRmF2b3JpdGVzXSA6IFsuLi5mYXZvcml0ZXMsIC4uLm5vbkZhdm9yaXRlc11cbn1cblxudHlwZSBVc2VHZXRBZ2VudHNQcm9wcyA9IHtcbiAgc2VsZWN0QWdlbnQ6IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xuICBhZ2VudDogQWdlbnQgfCBudWxsXG4gIGhhbmRsZUdvSG9tZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBBZGRBZ2VudE9wdGlvbnMgPSB7XG4gIC8qKiBQb3IgZGVmZWN0byBgdHJ1ZWAgKGNvbXBvcnRhbWllbnRvIEFCTSkuIFBhc2FyIGBmYWxzZWAgYWwgaW5zZXJ0YXIgYWdlbnRlIGNyZWFkbyBwb3IgY2hhdCBzaW4gY2FtYmlhciBkZSB2aXN0YS4gKi9cbiAgbmF2aWdhdGVIb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlR2V0QWdlbnRzID0gKHsgc2VsZWN0QWdlbnQsIHNlY3Rpb24sIGFnZW50LCBoYW5kbGVHb0hvbWUgfTogVXNlR2V0QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBbYWdlbnRzLCBzZXRBZ2VudHNdID0gdXNlU3RhdGU8eyBkYXRhOiBBZ2VudFtdOyBoYXNfbW9yZT86IGJvb2xlYW47IG5leHRfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCB9Pih7IGRhdGE6IFtdIH0pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ01vcmUsIHNldExvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbignY2hhdF9haV9zZWN0aW9uJylcbiAgY29uc3QgbGFzdFNlbGVjdGVkQWdlbnRSZWYgPSB1c2VSZWY8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBpc1JlZnJlc2hpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGxhc3RSZXF1ZXN0UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgYWRkQWdlbnQgPSB1c2VDYWxsYmFjayhcbiAgICAobmV3QWdlbnQ6IEFnZW50LCBvcHRpb25zPzogQWRkQWdlbnRPcHRpb25zKSA9PiB7XG4gICAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBhZ2VudGUgeWEgZXhpc3RlIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcbiAgICAgICAgY29uc3QgYWdlbnRFeGlzdHMgPSBwcmV2LmRhdGEuc29tZShleGlzdGluZ0FnZW50ID0+IGV4aXN0aW5nQWdlbnQuaWQgPT09IG5ld0FnZW50LmlkKVxuICAgICAgICBpZiAoYWdlbnRFeGlzdHMpIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBbLi4ucHJldi5kYXRhLCBuZXdBZ2VudF1cbiAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAob3B0aW9ucz8ubmF2aWdhdGVIb21lICE9PSBmYWxzZSkge1xuICAgICAgICBoYW5kbGVHb0hvbWUoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZUdvSG9tZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZUFnZW50ID0gdXNlQ2FsbGJhY2soKGFnZW50SWQ6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICAgIHNldEFnZW50cyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgZGF0YTogcHJldi5kYXRhLmZpbHRlcihhID0+IGEuaWQgIT09IGFnZW50SWQudG9TdHJpbmcoKSksXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHVwZGF0ZUFnZW50ID0gdXNlQ2FsbGJhY2soKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudHMocHJldiA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHByZXYuZGF0YS5tYXAoZXhpc3RpbmdBZ2VudCA9PlxuICAgICAgICBleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQgPyB1cGRhdGVkQWdlbnQgOiBleGlzdGluZ0FnZW50XG4gICAgICApXG4gICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyh1cGRhdGVkRGF0YSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGRhdGE6IHNvcnRlZERhdGEsXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdXBkYXRlQWdlbnRGYXZvcml0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh1cGRhdGVkQWdlbnQ6IEFnZW50LCBzaG91bGRTb3J0OiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIHNldEFnZW50cyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBwcmV2LmRhdGEubWFwKGV4aXN0aW5nQWdlbnQgPT4ge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FnZW50LmlkID09PSB1cGRhdGVkQWdlbnQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSwgLi4uYWdlbnRGaWVsZHMgfSA9IHVwZGF0ZWRBZ2VudCBhcyBhbnlcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZEFnZW50ID0geyAuLi5leGlzdGluZ0FnZW50LCAuLi5hZ2VudEZpZWxkcyB9XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkQWdlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQWdlbnRcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb2xvIG9yZGVuYXIgc2kgc2hvdWxkU29ydCBlcyB0cnVlXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0YSA9IHNob3VsZFNvcnQgPyBzb3J0QWdlbnRzKHVwZGF0ZWREYXRhKSA6IHVwZGF0ZWREYXRhXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGRhdGE6IGZpbmFsRGF0YSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gQWN0dWFsaXphciBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIHNpIGVzIGVsIHF1ZSBzZSBlc3TDoSBhY3R1YWxpemFuZG9cbiAgICAgIGlmIChhZ2VudD8uaWQgPT09IHVwZGF0ZWRBZ2VudC5pZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0FnZW50ID0gYWdlbnRzLmRhdGEuZmluZChhID0+IGEuaWQgPT09IHVwZGF0ZWRBZ2VudC5pZClcbiAgICAgICAgaWYgKGV4aXN0aW5nQWdlbnQpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgY29uc3QgbWVyZ2VkQWdlbnQgPSB7IC4uLmV4aXN0aW5nQWdlbnQsIC4uLmFnZW50RmllbGRzIH1cbiAgICAgICAgICBzZWxlY3RBZ2VudChtZXJnZWRBZ2VudClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIC4uLmFnZW50RmllbGRzIH0gPSB1cGRhdGVkQWdlbnQgYXMgYW55XG4gICAgICAgICAgc2VsZWN0QWdlbnQoYWdlbnRGaWVsZHMgYXMgQWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudCwgc2VsZWN0QWdlbnQsIGFnZW50cy5kYXRhXVxuICApXG5cbiAgY29uc3Qgc29ydEFnZW50c0xpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMocHJldi5kYXRhKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RGaXJzdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChhZ2VudHMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmlyc3RBZ2VudCA9IGFnZW50cy5kYXRhLmZpbmRJbmRleChhZ2VudERhdGEgPT4gYWdlbnREYXRhLmlkID09PSBhZ2VudElkKVxuICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gYWdlbnRzLmRhdGFbZmlyc3RBZ2VudCA9PT0gMCA/IDEgOiAwXVxuICAgICAgICBzZWxlY3RBZ2VudChhZ2VudHMuZGF0YVtmaXJzdEFnZW50ID09PSAwID8gMSA6IDBdKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50cy5kYXRhLCBzZWxlY3RBZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUdldEFnZW50cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudFRvU2VsZWN0PzogQWdlbnQpID0+IHtcbiAgICAgIGlmIChpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdEtleSA9IGFnZW50VG9TZWxlY3Q/LmlkPy50b1N0cmluZygpIHx8ICdkZWZhdWx0J1xuICAgICAgaWYgKGxhc3RSZXF1ZXN0UmVmLmN1cnJlbnQgPT09IHJlcXVlc3RLZXkgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IHJlcXVlc3RLZXlcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKG51bGwpXG5cbiAgICAgIGNvbnN0IGlzTXVsdGlBZ2VudHMgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgYWdlbnRQYXJzZWQ6IEFnZW50W10gPSBbXVxuICAgICAgICBsZXQgaGFzTW9yZSA9IGZhbHNlXG4gICAgICAgIGxldCBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAgIC8vIFNpIHRpZW5lIGZlYXR1cmUgYWNjZXNzIG11bHRpIGFnZW50cywgaGFjZXIgZG9zIHF1ZXJpZXMgKE1haWEgKyBjdXN0b20pIGVuIGN1YWxxdWllciBzZWNjacOzblxuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIFF1ZXJ5IDE6IEFnZW50ZXMgY2xvbmUgKE1haWEpIC0gU29sbyBwYXJhIHJvbGVzIHBlcm1pdGlkb3MuIFB1ZWRlbiB2ZW5pciBtw7psdGlwbGVzIGFnZW50ZXMgdGlwbyBjbG9uZVxuICAgICAgICAgIGxldCBjbG9uZUFnZW50czogQWdlbnRbXSA9IFtdXG4gICAgICAgICAgaWYgKCF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBvcmRlclBhcmFtID1cbiAgICAgICAgICAgICAgICBzZWN0aW9uID09PSAnY2xpZW50JyA/ICcmb3JkZXI9Y2xpZW50LHByb2plY3QnIDogc2VjdGlvbiA9PT0gJ3Byb2plY3QnID8gJyZvcmRlcj1wcm9qZWN0LGNsaWVudCcgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBtYWlhUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX0ke29yZGVyUGFyYW19YCxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBtYWlhRGF0YSA9IGF3YWl0IG1haWFSZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgICAgY2xvbmVBZ2VudHMgPSBtYWlhRGF0YS5kYXRhPy5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJykgfHwgW11cbiAgICAgICAgICAgIH0gY2F0Y2ggKG1haWFFcnJvcjogYW55KSB7XG4gICAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgICAgLy8gZmV0Y2hDT1IgcHVlZGUgbGFuemFyIGRpZmVyZW50ZXMgdGlwb3MgZGUgZXJyb3JlczpcbiAgICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgICAgLy8gMy4gTmVjZXNpdGFtb3MgdmVyaWZpY2FyIGVsIHN0YXR1cyBjb2RlIHNpIGVzdMOhIGRpc3BvbmlibGVcbiAgICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgICAgbWFpYUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgICBtYWlhRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICAgIGlmIChpczQwM0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBjb250aW51YXIgc2luIGxvcyBjbG9uZUFnZW50c1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgICAgdGhyb3cgbWFpYUVycm9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBRdWVyeSAyOiBBZ2VudGVzIGN1c3RvbSBjb24gcGFnaW5hY2nDs25cbiAgICAgICAgICBsZXQgY3VzdG9tQWdlbnRzOiBBZ2VudFtdID0gW11cbiAgICAgICAgICBsZXQgY3VzdG9tSGFzTW9yZSA9IGZhbHNlXG4gICAgICAgICAgbGV0IGN1c3RvbU5leHRPZmZzZXQ6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tUmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoOiAnYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTcmb2Zmc2V0PTAnLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbURhdGEgPSBhd2FpdCBjdXN0b21SZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIGN1c3RvbUFnZW50cyA9IGN1c3RvbURhdGEuZGF0YSB8fCBbXVxuICAgICAgICAgICAgY3VzdG9tSGFzTW9yZSA9IGN1c3RvbURhdGEuaGFzX21vcmUgfHwgZmFsc2VcbiAgICAgICAgICAgIGN1c3RvbU5leHRPZmZzZXQgPSBjdXN0b21EYXRhLm5leHRfb2Zmc2V0IHx8IG51bGxcbiAgICAgICAgICB9IGNhdGNoIChjdXN0b21FcnJvcjogYW55KSB7XG4gICAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgZWwgZXJyb3IgZXMgNDAzXG4gICAgICAgICAgICAvLyBmZXRjaENPUiBwdWVkZSBsYW56YXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBlcnJvcmVzOlxuICAgICAgICAgICAgLy8gMS4gRXJyb3IgY29uIGVycm9yRGF0YS5kZXRhaWwgc2kgaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDIuIEVycm9yIGdlbsOpcmljbyAnRmFpbGVkIGZldGNoaW5nIGRhdGEnIHNpIGVzIDQwMyBwZXJvIG5vIGluY2x1eWUgJ0FjY2VzcyBkZW5pZWQnXG4gICAgICAgICAgICAvLyAzLiBOZWNlc2l0YW1vcyB2ZXJpZmljYXIgZWwgc3RhdHVzIGNvZGUgc2kgZXN0w6EgZGlzcG9uaWJsZVxuICAgICAgICAgICAgY29uc3QgaXM0MDNFcnJvciA9XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5yZXNwb25zZT8uc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIGN1c3RvbUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcyhcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBhZ2VudHNcIikgfHxcbiAgICAgICAgICAgICAgY3VzdG9tRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKCdGYWlsZWQgZmV0Y2hpbmcgZGF0YScpIC8vIGZldGNoQ09SIGxhbnphIGVzdG8gcGFyYSA0MDMgc2luICdBY2Nlc3MgZGVuaWVkJ1xuXG4gICAgICAgICAgICBpZiAoaXM0MDNFcnJvcikge1xuICAgICAgICAgICAgICAvLyBTaSBlcyA0MDMsIGNvbnRpbnVhciBzaW4gbG9zIGN1c3RvbUFnZW50cyAoY3VzdG9tQWdlbnRzIHF1ZWRhIGNvbW8gYXJyYXkgdmFjw61vKVxuICAgICAgICAgICAgICAvLyBFc3RvIHB1ZWRlIG9jdXJyaXIgZW4gZG9zIGVzY2VuYXJpb3M6XG4gICAgICAgICAgICAgIC8vIDEuIFVzdWFyaW8gTk8gZXMgZGUgdXNlclJvbGVzRGlzYWJsZWQ6IHRlbmRyw6Egc29sbyBsb3MgY2xvbmVBZ2VudHMgKHNpIGxhIHF1ZXJ5IGNsb25lIGZ1ZSBleGl0b3NhKVxuICAgICAgICAgICAgICAvLyAyLiBVc3VhcmlvIFPDjSBlcyBkZSB1c2VyUm9sZXNEaXNhYmxlZDogZWwgbGlzdGFkbyBxdWVkYXLDoSB2YWPDrW8gKHBvcnF1ZSBubyBoYXkgY2xvbmVBZ2VudHMpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBTaSBlcyBvdHJvIGVycm9yLCBsYW56YXJsb1xuICAgICAgICAgICAgICB0aHJvdyBjdXN0b21FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENvbWJpbmFyOiBhZ2VudGVzIGNsb25lIHByaW1lcm8sIGx1ZWdvIGxvcyBjdXN0b20gKHNpIGV4aXN0ZW4pXG4gICAgICAgICAgLy8gU2kgZWwgdXN1YXJpbyB0aWVuZSB1biByb2wgZGVzaGFiaWxpdGFkbywgbm8gaW5jbHVpciBjbG9uZUFnZW50c1xuICAgICAgICAgIGlmICh1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpKSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIGRlIHJvbGVzIGRpc2FibGVkOiBzb2xvIGN1c3RvbUFnZW50c1xuICAgICAgICAgICAgLy8gU2kgY3VzdG9tQWdlbnRzIGVzdMOhIHZhY8OtbyAocG9yIDQwMyksIGFnZW50UGFyc2VkIHNlcsOhIFtdXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc3VhcmlvIG5vcm1hbDogY2xvbmVBZ2VudHMgKyBjdXN0b21BZ2VudHNcbiAgICAgICAgICAgIC8vIFNpIGN1c3RvbUFnZW50cyBlc3TDoSB2YWPDrW8gKHBvciA0MDMpIHBlcm8gaGF5IGNsb25lQWdlbnRzLCBhZ2VudFBhcnNlZCB0ZW5kcsOhIGxvcyBjbG9uZXNcbiAgICAgICAgICAgIC8vIFNpIG5vIGhheSBjbG9uZUFnZW50cyBuaSBjdXN0b21BZ2VudHMsIGFnZW50UGFyc2VkIHNlcsOhIFtdXG4gICAgICAgICAgICBhZ2VudFBhcnNlZCA9IGNsb25lQWdlbnRzLmxlbmd0aCA/IFsuLi5jbG9uZUFnZW50cywgLi4uY3VzdG9tQWdlbnRzXSA6IGN1c3RvbUFnZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgIGFnZW50UGFyc2VkID0gc29ydEFnZW50cyhhZ2VudFBhcnNlZClcbiAgICAgICAgICBoYXNNb3JlID0gY3VzdG9tSGFzTW9yZVxuICAgICAgICAgIG5leHRPZmZzZXQgPSBjdXN0b21OZXh0T2Zmc2V0XG5cbiAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgZGF0YTogYWdlbnRQYXJzZWQsXG4gICAgICAgICAgICBoYXNfbW9yZTogaGFzTW9yZSxcbiAgICAgICAgICAgIG5leHRfb2Zmc2V0OiBuZXh0T2Zmc2V0LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBTaSBubyBoYXkgYWdlbnRlcyBkZXNwdcOpcyBkZSBwcm9jZXNhciBsYXMgcXVlcmllcywgbGltcGlhciBlbCBlcnJvclxuICAgICAgICAgIGlmIChhZ2VudFBhcnNlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBwcm9qZWN0IG8gaGVhZGVyIHNpbiBtdWx0aUFnZW50c1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAnY2xpZW50Jykge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29yZGVyJywgc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAnY2xpZW50LHByb2plY3QnIDogJ3Byb2plY3QsY2xpZW50JylcbiAgICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb24gPT09ICdoZWFkZXInICYmICFpc011bHRpQWdlbnRzKSB7XG4gICAgICAgICAgICAvLyBIZWFkZXIgc2luIG11bHRpQWdlbnRzOiBzb2xvIGxpc3RhciBhZ2VudGVzIGNsb25lIChNYWlhKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdhZ2VudF90eXBlJywgJ2Nsb25lJylcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnbGFuZycsIG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSkpXG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCAnMCcpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBxdWVyeVBhcmFtcy50b1N0cmluZygpXG4gICAgICAgICAgY29uc3QgcGF0aCA9IGBhZ2VudHMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgLy8gZGF0YS5kYXRhIHlhIGNvbnRpZW5lIHRvZG9zIGxvcyBhZ2VudGVzIGNsb25lIGRlIGxhIHF1ZXJ5IGFnZW50X3R5cGU9Y2xvbmVcbiAgICAgICAgICAgIGFnZW50UGFyc2VkID0gZGF0YS5kYXRhIHx8IFtdXG4gICAgICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICAgICAgYWdlbnRQYXJzZWQgPSBzb3J0QWdlbnRzKGFnZW50UGFyc2VkKVxuICAgICAgICAgICAgaGFzTW9yZSA9IGRhdGEuaGFzX21vcmVcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBkYXRhLm5leHRfb2Zmc2V0XG5cbiAgICAgICAgICAgIHNldEFnZW50cyh7XG4gICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgIGRhdGE6IGFnZW50UGFyc2VkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGNhdGNoIChyZXNwb25zZUVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBlcnJvciBlcyA0MDNcbiAgICAgICAgICAgIC8vIGZldGNoQ09SIHB1ZWRlIGxhbnphciBkaWZlcmVudGVzIHRpcG9zIGRlIGVycm9yZXM6XG4gICAgICAgICAgICAvLyAxLiBFcnJvciBjb24gZXJyb3JEYXRhLmRldGFpbCBzaSBpbmNsdXllICdBY2Nlc3MgZGVuaWVkJ1xuICAgICAgICAgICAgLy8gMi4gRXJyb3IgZ2Vuw6lyaWNvICdGYWlsZWQgZmV0Y2hpbmcgZGF0YScgc2kgZXMgNDAzIHBlcm8gbm8gaW5jbHV5ZSAnQWNjZXNzIGRlbmllZCdcbiAgICAgICAgICAgIC8vIDMuIE5lY2VzaXRhbW9zIHZlcmlmaWNhciBlbCBzdGF0dXMgY29kZSBzaSBlc3TDoSBkaXNwb25pYmxlXG4gICAgICAgICAgICBjb25zdCBpczQwM0Vycm9yID1cbiAgICAgICAgICAgICAgcmVzcG9uc2VFcnJvcj8ucmVzcG9uc2U/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/LnN0YXR1cyA9PT0gNDAzIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlRXJyb3I/Lm1lc3NhZ2U/LmluY2x1ZGVzKFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB2aWV3IGFnZW50c1wiKSB8fFxuICAgICAgICAgICAgICByZXNwb25zZUVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnRmFpbGVkIGZldGNoaW5nIGRhdGEnKSAvLyBmZXRjaENPUiBsYW56YSBlc3RvIHBhcmEgNDAzIHNpbiAnQWNjZXNzIGRlbmllZCdcblxuICAgICAgICAgICAgaWYgKGlzNDAzRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gU2kgZXMgNDAzLCBlc3RhYmxlY2VyIGFnZW50ZXMgdmFjw61vcyB5IGNvbnRpbnVhclxuICAgICAgICAgICAgICBzZXRBZ2VudHMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgICAgICAgIGhhc19tb3JlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuZXh0X29mZnNldDogbnVsbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpIGVzIG90cm8gZXJyb3IsIGxhbnphcmxvXG4gICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMw7NnaWNhIGRlIHNlbGVjdCBhZ2VudCAtIFNvbG8gc2VsZWNjaW9uYXIgc2kgaGF5IGFnZW50ZXMgZGlzcG9uaWJsZXNcbiAgICAgICAgaWYgKGFnZW50UGFyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZC5maW5kKChhZ2VudFRvUmVxdWVzdDogQWdlbnQpID0+IGFnZW50VG9SZXF1ZXN0LmlkID09PSBhZ2VudFRvU2VsZWN0LmlkKSkge1xuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQ/LmlkICE9PSBhZ2VudFRvU2VsZWN0LmlkKSB7XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3RlZEFnZW50UmVmLmN1cnJlbnQgPSBhZ2VudFRvU2VsZWN0XG4gICAgICAgICAgICAgIHNlbGVjdEFnZW50KGFnZW50VG9TZWxlY3QpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhZ2VudFBhcnNlZD8uWzBdICYmICghYWdlbnQgfHwgIWFnZW50UGFyc2VkLmZpbmQoKGE6IEFnZW50KSA9PiBhLmlkID09PSBhZ2VudC5pZCkpKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWdlbnRUb1NlbGVjdCAmJiBhZ2VudFBhcnNlZD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVBZ2VudHMgPVxuICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpXG4gICAgICAgICAgICAgICAgPyBhZ2VudFBhcnNlZFxuICAgICAgICAgICAgICAgIDogYWdlbnRQYXJzZWQuZmlsdGVyKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSAhPT0gJ2Nsb25lJylcblxuICAgICAgICAgICAgY29uc3QgW2ZpcnN0QXZhaWxhYmxlQWdlbnRdID0gYXZhaWxhYmxlQWdlbnRzXG4gICAgICAgICAgICBpZiAoZmlyc3RBdmFpbGFibGVBZ2VudCAmJiBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50Py5pZCAhPT0gZmlyc3RBdmFpbGFibGVBZ2VudC5pZCkge1xuICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWRBZ2VudFJlZi5jdXJyZW50ID0gZmlyc3RBdmFpbGFibGVBZ2VudFxuICAgICAgICAgICAgICBzZWxlY3RBZ2VudChmaXJzdEF2YWlsYWJsZUFnZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJylcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlzUmVmcmVzaGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2hpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbGFzdFJlcXVlc3RSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2VjdGlvbiwgYWdlbnQsIGxvYWRpbmddXG4gIClcblxuICBjb25zdCBsb2FkTW9yZUFnZW50cyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpc011bHRpQWdlbnRzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICAvLyBDYXJnYXIgbcOhczogZW4gaGVhZGVyIHNpZW1wcmU7IGVuIHByb2plY3Qgc29sbyBzaSBpc011bHRpQWdlbnRzIChwb3JxdWUgc29sbyBlbnRvbmNlcyBoYXkgcGFnaW5hY2nDs24gZGUgY3VzdG9tKVxuICAgIGNvbnN0IGNhbkxvYWRNb3JlID0gc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgaXNNdWx0aUFnZW50c1xuICAgIGlmICghY2FuTG9hZE1vcmUgfHwgIWFnZW50cy5oYXNfbW9yZSB8fCAhYWdlbnRzLm5leHRfb2Zmc2V0IHx8IGxvYWRpbmdNb3JlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHNldEVycm9yKG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhdGg6IHN0cmluZ1xuXG4gICAgICAvLyBTaSBlcyBtdWx0aUFnZW50cywgc29sbyBjYXJnYXIgYWdlbnRzIGN1c3RvbSAoTWFpYSB5YSBlc3TDoSBjYXJnYWRvKVxuICAgICAgaWYgKGlzTXVsdGlBZ2VudHMpIHtcbiAgICAgICAgLy8gTWFudGVuZXIgY2FudGlkYWQgaW1wYXIgZGUgY2FyZHM6IHByaW1lcmEgY2FyZ2EgNywgc2lndWllbnRlcyArNiAoNywgMTMsIDE5LCAuLi4pXG4gICAgICAgIHBhdGggPSBgYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTYmb2Zmc2V0PSR7YWdlbnRzLm5leHRfb2Zmc2V0fWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpIG5vIGVzIG11bHRpQWdlbnRzLCBjYXJnYXIgbcOhcyBhZ2VudGVzIGNsb25lIChNYWlhKVxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2FnZW50X3R5cGUnLCAnY2xvbmUnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xhbmcnLCBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzcnKVxuICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ29mZnNldCcsIGFnZW50cy5uZXh0X29mZnNldC50b1N0cmluZygpKVxuICAgICAgICBwYXRoID0gYGFnZW50cz8ke3F1ZXJ5UGFyYW1zLnRvU3RyaW5nKCl9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIC8vIEFjdW11bGFyIGFnZW50ZXMsIGV4Y2x1eWVuZG8gZHVwbGljYWRvc1xuICAgICAgc2V0QWdlbnRzKHByZXYgPT4ge1xuICAgICAgICBpZiAoaXNNdWx0aUFnZW50cykge1xuICAgICAgICAgIC8vIEzDs2dpY2EgcGFyYSBtdWx0aUFnZW50czogc2VwYXJhciBjbG9uZSB5IGN1c3RvbVxuICAgICAgICAgIC8vIE1hbnRlbmVyIHRvZG9zIGxvcyBhZ2VudGVzIGNsb25lIGV4aXN0ZW50ZXMgYWwgaW5pY2lvXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdDbG9uZUFnZW50cyA9IHByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSA9PT0gJ2Nsb25lJylcblxuICAgICAgICAgIC8vIE9idGVuZXIgSURzIGV4aXN0ZW50ZXMgKGV4Y2x1eWVuZG8gY2xvbmVzKVxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2LmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScpLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG5cbiAgICAgICAgICAvLyBGaWx0cmFyIG51ZXZvcyBhZ2VudHMgcXVlIG5vIGVzdMOpbiB5YSBlbiBsYSBsaXN0YSAoeSBxdWUgbm8gc2VhbiBjbG9uZSlcbiAgICAgICAgICBjb25zdCBuZXdBZ2VudHMgPSBkYXRhLmRhdGEuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgIT09ICdjbG9uZScgJiYgIWV4aXN0aW5nSWRzLmhhcyhhZy5pZCkpXG5cbiAgICAgICAgICAvLyBDb25zdHJ1aXIgZWwgbnVldm8gYXJyYXk6IGNsb25lcyBwcmltZXJvLCBsdWVnbyBsb3MgYWdlbnRzIGV4aXN0ZW50ZXMgcXVlIG5vIHNlYW4gY2xvbmUsIGx1ZWdvIGxvcyBudWV2b3NcbiAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZXhpc3RpbmdDbG9uZUFnZW50cy5sZW5ndGhcbiAgICAgICAgICAgID8gWy4uLmV4aXN0aW5nQ2xvbmVBZ2VudHMsIC4uLnByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyksIC4uLm5ld0FnZW50c11cbiAgICAgICAgICAgIDogWy4uLnByZXYuZGF0YS5maWx0ZXIoKGFnOiBBZ2VudCkgPT4gYWcudHlwZSAhPT0gJ2Nsb25lJyksIC4uLm5ld0FnZW50c11cblxuICAgICAgICAgIC8vIE9yZGVuYXI6IE1haWEgcHJpbWVybywgbHVlZ28gZmF2b3JpdG9zIGFsZmFiw6l0aWNhbWVudGUsIGx1ZWdvIG5vIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlXG4gICAgICAgICAgY29uc3Qgc29ydGVkRGF0YSA9IHNvcnRBZ2VudHMobmV3RGF0YSlcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRhOiBzb3J0ZWREYXRhLFxuICAgICAgICAgICAgaGFzX21vcmU6IGRhdGEuaGFzX21vcmUsXG4gICAgICAgICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gTMOzZ2ljYSBwYXJhICFpc011bHRpQWdlbnRzOiB0b2RvcyBsb3MgYWdlbnRlcyBzb24gY2xvbmUsIHNpbXBsZW1lbnRlIGFncmVnYXIgZXZpdGFuZG8gZHVwbGljYWRvc1xuICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5kYXRhLm1hcCgoYWc6IEFnZW50KSA9PiBhZy5pZCkpXG4gICAgICAgIGNvbnN0IG5ld0FnZW50cyA9IChkYXRhLmRhdGEgfHwgW10pLmZpbHRlcigoYWc6IEFnZW50KSA9PiAhZXhpc3RpbmdJZHMuaGFzKGFnLmlkKSlcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IFsuLi5wcmV2LmRhdGEsIC4uLm5ld0FnZW50c11cblxuICAgICAgICAvLyBPcmRlbmFyOiBNYWlhIHByaW1lcm8sIGx1ZWdvIGZhdm9yaXRvcyBhbGZhYsOpdGljYW1lbnRlLCBsdWVnbyBubyBmYXZvcml0b3MgYWxmYWLDqXRpY2FtZW50ZVxuICAgICAgICBjb25zdCBzb3J0ZWREYXRhID0gc29ydEFnZW50cyhuZXdEYXRhKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogc29ydGVkRGF0YSxcbiAgICAgICAgICBoYXNfbW9yZTogZGF0YS5oYXNfbW9yZSxcbiAgICAgICAgICBuZXh0X29mZnNldDogZGF0YS5uZXh0X29mZnNldCxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgc2V0TG9hZGluZ01vcmUoZmFsc2UpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ3NuYWNrYmFyLmxvYWRNb3JlQWdlbnRzLmVycm9yJykpXG4gICAgICBzZXRMb2FkaW5nTW9yZShmYWxzZSlcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBhZ2VudHMuaGFzX21vcmUsIGFnZW50cy5uZXh0X29mZnNldCwgbG9hZGluZ01vcmUsIGkxOG4ubGFuZ3VhZ2VdKVxuXG4gIHJldHVybiB7XG4gICAgYWdlbnRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGluZ01vcmUsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0QWdlbnRzLFxuICAgIGxvYWRNb3JlQWdlbnRzLFxuICAgIGFkZEFnZW50LFxuICAgIHJlbW92ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50LFxuICAgIHVwZGF0ZUFnZW50RmF2b3JpdGUsXG4gICAgc2VsZWN0Rmlyc3RBZ2VudCxcbiAgICBzb3J0QWdlbnRzTGlzdCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSwyQkFBMkI7QUFDaEUsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLE1BQWUsRUFBYztFQUMvQztFQUNBLElBQU1DLFdBQVcsR0FBR0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDO0VBQzVELElBQU1DLFdBQVcsR0FBR0wsTUFBTSxDQUFDRSxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87RUFBQSxFQUFDOztFQUU1RDtFQUNBLElBQU1FLFNBQVMsR0FBR0QsV0FBVyxDQUFDSCxNQUFNLENBQUMsVUFBQUMsRUFBRTtJQUFBLE9BQUlBLEVBQUUsQ0FBQ0ksV0FBVztFQUFBLEVBQUMsQ0FBQ0MsSUFBSSxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQztJQUFBLE9BQUtELENBQUMsQ0FBQ0UsSUFBSSxDQUFDQyxhQUFhLENBQUNGLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO0VBQUEsRUFBQztFQUN2RyxJQUFNRSxZQUFZLEdBQUdSLFdBQVcsQ0FBQ0gsTUFBTSxDQUFDLFVBQUFDLEVBQUU7SUFBQSxPQUFJLENBQUNBLEVBQUUsQ0FBQ0ksV0FBVztFQUFBLEVBQUMsQ0FBQ0MsSUFBSSxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQztJQUFBLE9BQUtELENBQUMsQ0FBQ0UsSUFBSSxDQUFDQyxhQUFhLENBQUNGLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO0VBQUEsRUFBQzs7RUFFM0c7RUFDQSxPQUFPVixXQUFXLENBQUNhLE1BQU0sTUFBQUMsTUFBQSxDQUFBQyxrQkFBQSxDQUFPZixXQUFXLEdBQUFlLGtCQUFBLENBQUtWLFNBQVMsR0FBQVUsa0JBQUEsQ0FBS0gsWUFBWSxRQUFBRSxNQUFBLENBQUFDLGtCQUFBLENBQVFWLFNBQVMsR0FBQVUsa0JBQUEsQ0FBS0gsWUFBWSxFQUFDO0FBQy9HLENBQUM7QUFjRCxPQUFPLElBQU1JLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBQyxJQUFBLEVBQXlFO0VBQUEsSUFBbkVDLFdBQVcsR0FBQUQsSUFBQSxDQUFYQyxXQUFXO0lBQUVDLE9BQU8sR0FBQUYsSUFBQSxDQUFQRSxPQUFPO0lBQUVDLEtBQUssR0FBQUgsSUFBQSxDQUFMRyxLQUFLO0lBQUVDLFlBQVksR0FBQUosSUFBQSxDQUFaSSxZQUFZO0VBQ3RFLElBQU1DLElBQUksR0FBRzNCLE9BQU8sQ0FBQyxDQUFDO0VBQ3RCLElBQUE0QixTQUFBLEdBQTRCbEMsUUFBUSxDQUFxRTtNQUFFbUMsSUFBSSxFQUFFO0lBQUcsQ0FBQyxDQUFDO0lBQUFDLFVBQUEsR0FBQUMsY0FBQSxDQUFBSCxTQUFBO0lBQS9HeEIsTUFBTSxHQUFBMEIsVUFBQTtJQUFFRSxTQUFTLEdBQUFGLFVBQUE7RUFDeEIsSUFBQUcsVUFBQSxHQUE4QnZDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXdDLFVBQUEsR0FBQUgsY0FBQSxDQUFBRSxVQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBO0VBQzFCLElBQUFHLFVBQUEsR0FBc0MzQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE0QyxVQUFBLEdBQUFQLGNBQUEsQ0FBQU0sVUFBQTtJQUE5Q0UsV0FBVyxHQUFBRCxVQUFBO0lBQUVFLGNBQWMsR0FBQUYsVUFBQTtFQUNsQyxJQUFBRyxVQUFBLEdBQTBCL0MsUUFBUSxDQUFnQixJQUFJLENBQUM7SUFBQWdELFVBQUEsR0FBQVgsY0FBQSxDQUFBVSxVQUFBO0lBQWhERSxLQUFLLEdBQUFELFVBQUE7SUFBRUUsUUFBUSxHQUFBRixVQUFBO0VBQ3RCLElBQUFHLG1CQUFBLEdBQWdDL0Msa0JBQWtCLENBQUMsQ0FBQztJQUE1Q2dELG1CQUFtQixHQUFBRCxtQkFBQSxDQUFuQkMsbUJBQW1CO0VBQzNCLElBQUFDLGVBQUEsR0FBb0JsRCxjQUFjLENBQUMsaUJBQWlCLENBQUM7SUFBN0NtRCxDQUFDLEdBQUFELGVBQUEsQ0FBREMsQ0FBQztJQUFFQyxJQUFJLEdBQUFGLGVBQUEsQ0FBSkUsSUFBSTtFQUNmLElBQU1DLG9CQUFvQixHQUFHdEQsTUFBTSxDQUFlLElBQUksQ0FBQztFQUN2RCxJQUFNdUQsZUFBZSxHQUFHdkQsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNyQyxJQUFNd0QsY0FBYyxHQUFHeEQsTUFBTSxDQUFnQixJQUFJLENBQUM7RUFFbEQsSUFBTXlELGlCQUFpQixHQUFHLENBQUNwRCxXQUFXLENBQUNxRCxZQUFZLEVBQUVyRCxXQUFXLENBQUNzRCxVQUFVLEVBQUV0RCxXQUFXLENBQUN1RCxNQUFNLENBQUM7RUFFaEcsSUFBTUMsUUFBUSxHQUFHOUQsV0FBVyxDQUMxQixVQUFDK0QsUUFBZSxFQUFFQyxPQUF5QixFQUFLO0lBQzlDM0IsU0FBUyxDQUFDLFVBQUE0QixJQUFJLEVBQUk7TUFDaEI7TUFDQSxJQUFNQyxXQUFXLEdBQUdELElBQUksQ0FBQy9CLElBQUksQ0FBQ2lDLElBQUksQ0FBQyxVQUFBQyxhQUFhO1FBQUEsT0FBSUEsYUFBYSxDQUFDQyxFQUFFLEtBQUtOLFFBQVEsQ0FBQ00sRUFBRTtNQUFBLEVBQUM7TUFDckYsSUFBSUgsV0FBVyxFQUFFO1FBQ2YsT0FBT0QsSUFBSTtNQUNiO01BQ0EsSUFBTUssT0FBTyxNQUFBOUMsTUFBQSxDQUFBQyxrQkFBQSxDQUFPd0MsSUFBSSxDQUFDL0IsSUFBSSxJQUFFNkIsUUFBUSxFQUFDO01BQ3hDLElBQU1RLFVBQVUsR0FBRy9ELFVBQVUsQ0FBQzhELE9BQU8sQ0FBQztNQUN0QyxPQUFBRSxhQUFBLENBQUFBLGFBQUEsS0FDS1AsSUFBSTtRQUNQL0IsSUFBSSxFQUFFcUM7TUFBVTtJQUVwQixDQUFDLENBQUM7SUFDRixJQUFJLENBQUFQLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFUyxZQUFZLE1BQUssS0FBSyxFQUFFO01BQ25DMUMsWUFBWSxDQUFDLENBQUM7SUFDaEI7RUFDRixDQUFDLEVBQ0QsQ0FBQ0EsWUFBWSxDQUNmLENBQUM7RUFFRCxJQUFNMkMsV0FBVyxHQUFHMUUsV0FBVyxDQUFDLFVBQUMyRSxPQUF3QixFQUFLO0lBQzVEdEMsU0FBUyxDQUFDLFVBQUE0QixJQUFJO01BQUEsT0FBQU8sYUFBQSxDQUFBQSxhQUFBLEtBQ1RQLElBQUk7UUFDUC9CLElBQUksRUFBRStCLElBQUksQ0FBQy9CLElBQUksQ0FBQ3ZCLE1BQU0sQ0FBQyxVQUFBTyxDQUFDO1VBQUEsT0FBSUEsQ0FBQyxDQUFDbUQsRUFBRSxLQUFLTSxPQUFPLENBQUNDLFFBQVEsQ0FBQyxDQUFDO1FBQUE7TUFBQztJQUFBLENBQ3hELENBQUM7RUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTUMsV0FBVyxHQUFHN0UsV0FBVyxDQUFDLFVBQUM4RSxZQUFtQixFQUFLO0lBQ3ZEekMsU0FBUyxDQUFDLFVBQUE0QixJQUFJLEVBQUk7TUFDaEIsSUFBTWMsV0FBVyxHQUFHZCxJQUFJLENBQUMvQixJQUFJLENBQUM4QyxHQUFHLENBQUMsVUFBQVosYUFBYTtRQUFBLE9BQzdDQSxhQUFhLENBQUNDLEVBQUUsS0FBS1MsWUFBWSxDQUFDVCxFQUFFLEdBQUdTLFlBQVksR0FBR1YsYUFBYTtNQUFBLENBQ3JFLENBQUM7TUFDRCxJQUFNRyxVQUFVLEdBQUcvRCxVQUFVLENBQUN1RSxXQUFXLENBQUM7TUFDMUMsT0FBQVAsYUFBQSxDQUFBQSxhQUFBLEtBQ0tQLElBQUk7UUFDUC9CLElBQUksRUFBRXFDO01BQVU7SUFFcEIsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1VLG1CQUFtQixHQUFHakYsV0FBVyxDQUNyQyxVQUFDOEUsWUFBbUIsRUFBa0M7SUFBQSxJQUFoQ0ksVUFBbUIsR0FBQUMsU0FBQSxDQUFBNUQsTUFBQSxRQUFBNEQsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxLQUFLO0lBQy9DOUMsU0FBUyxDQUFDLFVBQUE0QixJQUFJLEVBQUk7TUFDaEIsSUFBTWMsV0FBVyxHQUFHZCxJQUFJLENBQUMvQixJQUFJLENBQUM4QyxHQUFHLENBQUMsVUFBQVosYUFBYSxFQUFJO1FBQ2pELElBQUlBLGFBQWEsQ0FBQ0MsRUFBRSxLQUFLUyxZQUFZLENBQUNULEVBQUUsRUFBRTtVQUN4QyxJQUFBZ0IsS0FBQSxHQUFvQ1AsWUFBWTtZQUF4Q1EsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87WUFBS0MsV0FBVyxHQUFBQyx3QkFBQSxDQUFBSCxLQUFBLEVBQUFJLFNBQUE7VUFDL0IsSUFBTUMsV0FBVyxHQUFBbEIsYUFBQSxDQUFBQSxhQUFBLEtBQVFKLGFBQWEsR0FBS21CLFdBQVcsQ0FBRTtVQUN4RCxPQUFPRyxXQUFXO1FBQ3BCO1FBQ0EsT0FBT3RCLGFBQWE7TUFDdEIsQ0FBQyxDQUFDOztNQUVGO01BQ0EsSUFBTXVCLFNBQVMsR0FBR1QsVUFBVSxHQUFHMUUsVUFBVSxDQUFDdUUsV0FBVyxDQUFDLEdBQUdBLFdBQVc7TUFFcEUsT0FBQVAsYUFBQSxDQUFBQSxhQUFBLEtBQ0tQLElBQUk7UUFDUC9CLElBQUksRUFBRXlEO01BQVM7SUFFbkIsQ0FBQyxDQUFDOztJQUVGO0lBQ0EsSUFBSSxDQUFBN0QsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV1QyxFQUFFLE1BQUtTLFlBQVksQ0FBQ1QsRUFBRSxFQUFFO01BQ2pDLElBQU1ELGFBQWEsR0FBRzNELE1BQU0sQ0FBQ3lCLElBQUksQ0FBQzBELElBQUksQ0FBQyxVQUFBMUUsQ0FBQztRQUFBLE9BQUlBLENBQUMsQ0FBQ21ELEVBQUUsS0FBS1MsWUFBWSxDQUFDVCxFQUFFO01BQUEsRUFBQztNQUNyRSxJQUFJRCxhQUFhLEVBQUU7UUFDakIsSUFBQXlCLEtBQUEsR0FBb0NmLFlBQVk7VUFBeENRLE9BQU8sR0FBQU8sS0FBQSxDQUFQUCxPQUFPO1VBQUtDLFdBQVcsR0FBQUMsd0JBQUEsQ0FBQUssS0FBQSxFQUFBQyxVQUFBO1FBQy9CLElBQU1KLFdBQVcsR0FBQWxCLGFBQUEsQ0FBQUEsYUFBQSxLQUFRSixhQUFhLEdBQUttQixXQUFXLENBQUU7UUFDeEQzRCxXQUFXLENBQUM4RCxXQUFXLENBQUM7TUFDMUIsQ0FBQyxNQUFNO1FBQ0wsSUFBQUssS0FBQSxHQUFvQ2pCLFlBQVk7VUFBeENRLFFBQU8sR0FBQVMsS0FBQSxDQUFQVCxPQUFPO1VBQUtDLFlBQVcsR0FBQUMsd0JBQUEsQ0FBQU8sS0FBQSxFQUFBQyxVQUFBO1FBQy9CcEUsV0FBVyxDQUFDMkQsWUFBb0IsQ0FBQztNQUNuQztJQUNGO0VBQ0YsQ0FBQyxFQUNELENBQUN6RCxLQUFLLEVBQUVGLFdBQVcsRUFBRW5CLE1BQU0sQ0FBQ3lCLElBQUksQ0FDbEMsQ0FBQztFQUVELElBQU0rRCxjQUFjLEdBQUdqRyxXQUFXLENBQUMsWUFBTTtJQUN2Q3FDLFNBQVMsQ0FBQyxVQUFBNEIsSUFBSSxFQUFJO01BQ2hCLElBQU1NLFVBQVUsR0FBRy9ELFVBQVUsQ0FBQ3lELElBQUksQ0FBQy9CLElBQUksQ0FBQztNQUN4QyxPQUFBc0MsYUFBQSxDQUFBQSxhQUFBLEtBQ0tQLElBQUk7UUFDUC9CLElBQUksRUFBRXFDO01BQVU7SUFFcEIsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU0yQixnQkFBZ0IsR0FBR2xHLFdBQVcsQ0FDbEMsVUFBQzJFLE9BQWdCLEVBQUs7SUFDcEIsSUFBSWxFLE1BQU0sQ0FBQ3lCLElBQUksQ0FBQ1gsTUFBTSxFQUFFO01BQ3RCLElBQU00RSxVQUFVLEdBQUcxRixNQUFNLENBQUN5QixJQUFJLENBQUNrRSxTQUFTLENBQUMsVUFBQUMsU0FBUztRQUFBLE9BQUlBLFNBQVMsQ0FBQ2hDLEVBQUUsS0FBS00sT0FBTztNQUFBLEVBQUM7TUFDL0VwQixvQkFBb0IsQ0FBQytDLE9BQU8sR0FBRzdGLE1BQU0sQ0FBQ3lCLElBQUksQ0FBQ2lFLFVBQVUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUNwRXZFLFdBQVcsQ0FBQ25CLE1BQU0sQ0FBQ3lCLElBQUksQ0FBQ2lFLFVBQVUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BEO0VBQ0YsQ0FBQyxFQUNELENBQUMxRixNQUFNLENBQUN5QixJQUFJLEVBQUVOLFdBQVcsQ0FDM0IsQ0FBQztFQUVELElBQU0yRSxlQUFlLEdBQUd2RyxXQUFXO0lBQUEsSUFBQXdHLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUNqQyxTQUFBQyxRQUFPQyxhQUFxQjtNQUFBLElBQUFDLGlCQUFBO01BQUEsSUFBQUMsVUFBQSxFQUFBQyxhQUFBLEVBQUFDLFdBQUEsRUFBQUMsT0FBQSxFQUFBQyxVQUFBLEVBQUF6RyxXQUFBLEVBQUEwRyxjQUFBLEVBQUFDLFVBQUEsRUFBQUMsWUFBQSxFQUFBQyxRQUFBLEVBQUFDLG1CQUFBLEVBQUFDLGtCQUFBLEVBQUFDLG1CQUFBLEVBQUFDLFVBQUEsRUFBQUMsWUFBQSxFQUFBQyxhQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGNBQUEsRUFBQUMsVUFBQSxFQUFBQyxxQkFBQSxFQUFBQyxvQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxXQUFBLEVBQUFDLFdBQUEsRUFBQUMsV0FBQSxFQUFBQyxJQUFBLEVBQUFDLFFBQUEsRUFBQXRHLElBQUEsRUFBQXVHLHFCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLFlBQUEsRUFBQUMsWUFBQSxFQUFBQyxhQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQS9DLFVBQUEsRUFBQWdELHNCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLG1CQUFBLEVBQUFDLEVBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7TUFBQSxPQUFBaEQsbUJBQUEsQ0FBQWlELElBQUEsV0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUEzRixJQUFBLEdBQUEyRixRQUFBLENBQUFDLElBQUE7VUFBQTtZQUFBLEtBQ3RCckcsZUFBZSxDQUFDOEMsT0FBTztjQUFBc0QsUUFBQSxDQUFBQyxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFELFFBQUEsQ0FBQUUsTUFBQTtVQUFBO1lBSXJCL0MsVUFBVSxHQUFHLENBQUFGLGFBQWEsYUFBYkEsYUFBYSxnQkFBQUMsaUJBQUEsR0FBYkQsYUFBYSxDQUFFeEMsRUFBRSxjQUFBeUMsaUJBQUEsdUJBQWpCQSxpQkFBQSxDQUFtQmxDLFFBQVEsQ0FBQyxDQUFDLEtBQUksU0FBUztZQUFBLE1BQ3pEbkIsY0FBYyxDQUFDNkMsT0FBTyxLQUFLUyxVQUFVLElBQUksQ0FBQ3ZFLE9BQU87Y0FBQW9ILFFBQUEsQ0FBQUMsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBRCxRQUFBLENBQUFFLE1BQUE7VUFBQTtZQUlyRHRHLGVBQWUsQ0FBQzhDLE9BQU8sR0FBRyxJQUFJO1lBQzlCN0MsY0FBYyxDQUFDNkMsT0FBTyxHQUFHUyxVQUFVO1lBQ25DdEUsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNoQlEsUUFBUSxDQUFDLElBQUksQ0FBQztZQUVSK0QsYUFBYSxHQUFHLENBQUMsQ0FBQytDLE1BQU0sQ0FBQ0MsMkJBQTJCLElBQUksQ0FBQyxDQUFDRCxNQUFNLENBQUNFLHdDQUF3QztZQUFBTCxRQUFBLENBQUEzRixJQUFBO1lBR3pHZ0QsV0FBb0IsR0FBRyxFQUFFO1lBQ3pCQyxPQUFPLEdBQUcsS0FBSztZQUNmQyxVQUF5QixHQUFHLElBQUksRUFFcEM7WUFBQSxLQUNJSCxhQUFhO2NBQUE0QyxRQUFBLENBQUFDLElBQUE7Y0FBQTtZQUFBO1lBQ2Y7WUFDSW5KLFdBQW9CLEdBQUcsRUFBRTtZQUFBLElBQ3hCZ0QsaUJBQWlCLENBQUN3RyxRQUFRLENBQUNsSSxJQUFJLENBQUNtSSxPQUFPLENBQUM7Y0FBQVAsUUFBQSxDQUFBQyxJQUFBO2NBQUE7WUFBQTtZQUFBRCxRQUFBLENBQUEzRixJQUFBO1lBRW5Db0QsVUFBVSxHQUNkeEYsT0FBTyxLQUFLLFFBQVEsR0FBRyx1QkFBdUIsR0FBR0EsT0FBTyxLQUFLLFNBQVMsR0FBRyx1QkFBdUIsR0FBRyxFQUFFO1lBQUErSCxRQUFBLENBQUFDLElBQUE7WUFBQSxPQUM1RXpKLFNBQVMsQ0FBQztjQUNuQ21JLElBQUksa0NBQUEvRyxNQUFBLENBQWtDakIsVUFBVSxDQUFDK0MsSUFBSSxDQUFDOEcsUUFBUSxDQUFDLEVBQUE1SSxNQUFBLENBQUc2RixVQUFVLENBQUU7Y0FDOUVnRCxNQUFNLEVBQUU7WUFDVixDQUFDLENBQUM7VUFBQTtZQUhJL0MsWUFBWSxHQUFBc0MsUUFBQSxDQUFBVSxJQUFBO1lBQUFWLFFBQUEsQ0FBQUMsSUFBQTtZQUFBLE9BSUt2QyxZQUFZLENBQUNpRCxJQUFJLENBQUMsQ0FBQztVQUFBO1lBQXBDaEQsUUFBUSxHQUFBcUMsUUFBQSxDQUFBVSxJQUFBO1lBQ2Q1SixXQUFXLEdBQUcsRUFBQTBHLGNBQUEsR0FBQUcsUUFBUSxDQUFDckYsSUFBSSxjQUFBa0YsY0FBQSx1QkFBYkEsY0FBQSxDQUFlekcsTUFBTSxDQUFDLFVBQUNDLEVBQVM7Y0FBQSxPQUFLQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO1lBQUEsRUFBQyxLQUFJLEVBQUU7WUFBQStJLFFBQUEsQ0FBQUMsSUFBQTtZQUFBO1VBQUE7WUFBQUQsUUFBQSxDQUFBM0YsSUFBQTtZQUFBc0YsRUFBQSxHQUFBSyxRQUFBO1lBRTdFO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDTWpDLFVBQVUsR0FDZCxDQUFBNEIsRUFBQSxhQUFBQSxFQUFBLGdCQUFBL0IsbUJBQUEsR0FBQStCLEVBQUEsQ0FBV2YsUUFBUSxjQUFBaEIsbUJBQUEsdUJBQW5CQSxtQkFBQSxDQUFxQmdELE1BQU0sTUFBSyxHQUFHLElBQ25DLENBQUFqQixFQUFBLGFBQUFBLEVBQUEsdUJBQUFBLEVBQUEsQ0FBV2lCLE1BQU0sTUFBSyxHQUFHLEtBQUFqQixFQUFBLGFBQUFBLEVBQUEsZ0JBQUE5QixrQkFBQSxHQUN6QjhCLEVBQUEsQ0FBV2pFLE9BQU8sY0FBQW1DLGtCQUFBLHVCQUFsQkEsa0JBQUEsQ0FBb0J5QyxRQUFRLENBQUMsMENBQTBDLENBQUMsTUFBQVgsRUFBQSxhQUFBQSxFQUFBLGdCQUFBN0IsbUJBQUEsR0FDeEU2QixFQUFBLENBQVdqRSxPQUFPLGNBQUFvQyxtQkFBQSx1QkFBbEJBLG1CQUFBLENBQW9Cd0MsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEdBQUM7WUFBQSxLQUVuRHZDLFVBQVU7Y0FBQWlDLFFBQUEsQ0FBQUMsSUFBQTtjQUFBO1lBQUE7WUFBQUQsUUFBQSxDQUFBQyxJQUFBO1lBQUE7VUFBQTtZQUFBLE1BQUFOLEVBQUE7VUFBQTtZQVNsQjtZQUNJM0IsWUFBcUIsR0FBRyxFQUFFO1lBQzFCQyxhQUFhLEdBQUcsS0FBSztZQUNyQkMsZ0JBQStCLEdBQUcsSUFBSTtZQUFBOEIsUUFBQSxDQUFBM0YsSUFBQTtZQUFBMkYsUUFBQSxDQUFBQyxJQUFBO1lBQUEsT0FHWHpKLFNBQVMsQ0FBQztjQUNyQ21JLElBQUksRUFBRSwyQ0FBMkM7Y0FDakQ4QixNQUFNLEVBQUU7WUFDVixDQUFDLENBQUM7VUFBQTtZQUhJdEMsY0FBYyxHQUFBNkIsUUFBQSxDQUFBVSxJQUFBO1lBQUFWLFFBQUEsQ0FBQUMsSUFBQTtZQUFBLE9BSUs5QixjQUFjLENBQUN3QyxJQUFJLENBQUMsQ0FBQztVQUFBO1lBQXhDdkMsVUFBVSxHQUFBNEIsUUFBQSxDQUFBVSxJQUFBO1lBQ2hCMUMsWUFBWSxHQUFHSSxVQUFVLENBQUM5RixJQUFJLElBQUksRUFBRTtZQUNwQzJGLGFBQWEsR0FBR0csVUFBVSxDQUFDeUMsUUFBUSxJQUFJLEtBQUs7WUFDNUMzQyxnQkFBZ0IsR0FBR0UsVUFBVSxDQUFDMEMsV0FBVyxJQUFJLElBQUk7WUFBQWQsUUFBQSxDQUFBQyxJQUFBO1lBQUE7VUFBQTtZQUFBRCxRQUFBLENBQUEzRixJQUFBO1lBQUF1RixHQUFBLEdBQUFJLFFBQUE7WUFFakQ7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNNakMsV0FBVSxHQUNkLENBQUE2QixHQUFBLGFBQUFBLEdBQUEsZ0JBQUF2QixxQkFBQSxHQUFBdUIsR0FBQSxDQUFhaEIsUUFBUSxjQUFBUCxxQkFBQSx1QkFBckJBLHFCQUFBLENBQXVCdUMsTUFBTSxNQUFLLEdBQUcsSUFDckMsQ0FBQWhCLEdBQUEsYUFBQUEsR0FBQSx1QkFBQUEsR0FBQSxDQUFhZ0IsTUFBTSxNQUFLLEdBQUcsS0FBQWhCLEdBQUEsYUFBQUEsR0FBQSxnQkFBQXRCLG9CQUFBLEdBQzNCc0IsR0FBQSxDQUFhbEUsT0FBTyxjQUFBNEMsb0JBQUEsdUJBQXBCQSxvQkFBQSxDQUFzQmdDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxNQUFBVixHQUFBLGFBQUFBLEdBQUEsZ0JBQUFyQixxQkFBQSxHQUMxRXFCLEdBQUEsQ0FBYWxFLE9BQU8sY0FBQTZDLHFCQUFBLHVCQUFwQkEscUJBQUEsQ0FBc0IrQixRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBQztZQUFBLEtBRXJEdkMsV0FBVTtjQUFBaUMsUUFBQSxDQUFBQyxJQUFBO2NBQUE7WUFBQTtZQUFBRCxRQUFBLENBQUFDLElBQUE7WUFBQTtVQUFBO1lBQUEsTUFBQUwsR0FBQTtVQUFBO1lBV2hCO1lBQ0E7WUFDQSxJQUFJOUYsaUJBQWlCLENBQUN3RyxRQUFRLENBQUNsSSxJQUFJLENBQUNtSSxPQUFPLENBQUMsRUFBRTtjQUM1QztjQUNBO2NBQ0FsRCxXQUFXLEdBQUdXLFlBQVk7WUFDNUIsQ0FBQyxNQUFNO2NBQ0w7Y0FDQTtjQUNBO2NBQ0FYLFdBQVcsR0FBR3ZHLFdBQVcsQ0FBQ2EsTUFBTSxNQUFBQyxNQUFBLENBQUFDLGtCQUFBLENBQU9mLFdBQVcsR0FBQWUsa0JBQUEsQ0FBS21HLFlBQVksS0FBSUEsWUFBWTtZQUNyRjtZQUNBO1lBQ0FYLFdBQVcsR0FBR3pHLFVBQVUsQ0FBQ3lHLFdBQVcsQ0FBQztZQUNyQ0MsT0FBTyxHQUFHVyxhQUFhO1lBQ3ZCVixVQUFVLEdBQUdXLGdCQUFnQjtZQUU3QnpGLFNBQVMsQ0FBQztjQUNSSCxJQUFJLEVBQUUrRSxXQUFXO2NBQ2pCd0QsUUFBUSxFQUFFdkQsT0FBTztjQUNqQndELFdBQVcsRUFBRXZEO1lBQ2YsQ0FBQyxDQUFDOztZQUVGO1lBQ0EsSUFBSUYsV0FBVyxDQUFDMUYsTUFBTSxLQUFLLENBQUMsRUFBRTtjQUM1QjBCLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDaEI7WUFBQzJHLFFBQUEsQ0FBQUMsSUFBQTtZQUFBO1VBQUE7WUFFRDtZQUNNeEIsV0FBVyxHQUFHLElBQUlzQyxlQUFlLENBQUMsQ0FBQztZQUN6QyxJQUFJOUksT0FBTyxLQUFLLFNBQVMsSUFBSUEsT0FBTyxLQUFLLFFBQVEsRUFBRTtjQUNqRHdHLFdBQVcsQ0FBQ3VDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDO2NBQ3pDdkMsV0FBVyxDQUFDdUMsTUFBTSxDQUFDLE1BQU0sRUFBRXJLLFVBQVUsQ0FBQytDLElBQUksQ0FBQzhHLFFBQVEsQ0FBQyxDQUFDO2NBQ3JEL0IsV0FBVyxDQUFDdUMsTUFBTSxDQUFDLE9BQU8sRUFBRS9JLE9BQU8sS0FBSyxRQUFRLEdBQUcsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7WUFDekYsQ0FBQyxNQUFNLElBQUlBLE9BQU8sS0FBSyxRQUFRLElBQUksQ0FBQ21GLGFBQWEsRUFBRTtjQUNqRDtjQUNBcUIsV0FBVyxDQUFDdUMsTUFBTSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7Y0FDekN2QyxXQUFXLENBQUN1QyxNQUFNLENBQUMsTUFBTSxFQUFFckssVUFBVSxDQUFDK0MsSUFBSSxDQUFDOEcsUUFBUSxDQUFDLENBQUM7Y0FDckQvQixXQUFXLENBQUN1QyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztjQUNoQ3ZDLFdBQVcsQ0FBQ3VDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1lBQ25DO1lBRU10QyxXQUFXLEdBQUdELFdBQVcsQ0FBQ3pELFFBQVEsQ0FBQyxDQUFDO1lBQ3BDMkQsSUFBSSxZQUFBL0csTUFBQSxDQUFZOEcsV0FBVyxPQUFBOUcsTUFBQSxDQUFPOEcsV0FBVyxJQUFLLEVBQUU7WUFBQXNCLFFBQUEsQ0FBQTNGLElBQUE7WUFBQTJGLFFBQUEsQ0FBQUMsSUFBQTtZQUFBLE9BR2pDekosU0FBUyxDQUFDO2NBQy9CbUksSUFBSSxFQUFKQSxJQUFJO2NBQ0o4QixNQUFNLEVBQUU7WUFDVixDQUFDLENBQUM7VUFBQTtZQUhJN0IsUUFBUSxHQUFBb0IsUUFBQSxDQUFBVSxJQUFBO1lBQUFWLFFBQUEsQ0FBQUMsSUFBQTtZQUFBLE9BS0tyQixRQUFRLENBQUMrQixJQUFJLENBQUMsQ0FBQztVQUFBO1lBQTVCckksSUFBSSxHQUFBMEgsUUFBQSxDQUFBVSxJQUFBO1lBQ1Y7WUFDQXJELFdBQVcsR0FBRy9FLElBQUksQ0FBQ0EsSUFBSSxJQUFJLEVBQUU7WUFDN0I7WUFDQStFLFdBQVcsR0FBR3pHLFVBQVUsQ0FBQ3lHLFdBQVcsQ0FBQztZQUNyQ0MsT0FBTyxHQUFHaEYsSUFBSSxDQUFDdUksUUFBUTtZQUN2QnRELFVBQVUsR0FBR2pGLElBQUksQ0FBQ3dJLFdBQVc7WUFFN0JySSxTQUFTLENBQUFtQyxhQUFBLENBQUFBLGFBQUEsS0FDSnRDLElBQUk7Y0FDUEEsSUFBSSxFQUFFK0U7WUFBVyxFQUNsQixDQUFDO1lBQUEyQyxRQUFBLENBQUFDLElBQUE7WUFBQTtVQUFBO1lBQUFELFFBQUEsQ0FBQTNGLElBQUE7WUFBQXdGLEdBQUEsR0FBQUcsUUFBQTtZQUVGO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDTWpDLFlBQVUsR0FDZCxDQUFBOEIsR0FBQSxhQUFBQSxHQUFBLGdCQUFBaEIscUJBQUEsR0FBQWdCLEdBQUEsQ0FBZWpCLFFBQVEsY0FBQUMscUJBQUEsdUJBQXZCQSxxQkFBQSxDQUF5QitCLE1BQU0sTUFBSyxHQUFHLElBQ3ZDLENBQUFmLEdBQUEsYUFBQUEsR0FBQSx1QkFBQUEsR0FBQSxDQUFlZSxNQUFNLE1BQUssR0FBRyxLQUFBZixHQUFBLGFBQUFBLEdBQUEsZ0JBQUFmLHFCQUFBLEdBQzdCZSxHQUFBLENBQWVuRSxPQUFPLGNBQUFvRCxxQkFBQSx1QkFBdEJBLHFCQUFBLENBQXdCd0IsUUFBUSxDQUFDLDBDQUEwQyxDQUFDLE1BQUFULEdBQUEsYUFBQUEsR0FBQSxnQkFBQWQsc0JBQUEsR0FDNUVjLEdBQUEsQ0FBZW5FLE9BQU8sY0FBQXFELHNCQUFBLHVCQUF0QkEsc0JBQUEsQ0FBd0J1QixRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBQztZQUFBLEtBRXZEdkMsWUFBVTtjQUFBaUMsUUFBQSxDQUFBQyxJQUFBO2NBQUE7WUFBQTtZQUNaO1lBQ0F4SCxTQUFTLENBQUM7Y0FDUkgsSUFBSSxFQUFFLEVBQUU7Y0FDUnVJLFFBQVEsRUFBRSxLQUFLO2NBQ2ZDLFdBQVcsRUFBRTtZQUNmLENBQUMsQ0FBQztZQUNGekgsUUFBUSxDQUFDLElBQUksQ0FBQztZQUFBMkcsUUFBQSxDQUFBQyxJQUFBO1lBQUE7VUFBQTtZQUFBLE1BQUFKLEdBQUE7VUFBQTtZQVFwQjtZQUNBLElBQUl4QyxXQUFXLENBQUMxRixNQUFNLEdBQUcsQ0FBQyxFQUFFO2NBQzFCLElBQUlzRixhQUFhLElBQUlJLFdBQVcsQ0FBQ3JCLElBQUksQ0FBQyxVQUFDaUYsY0FBcUI7Z0JBQUEsT0FBS0EsY0FBYyxDQUFDeEcsRUFBRSxLQUFLd0MsYUFBYSxDQUFDeEMsRUFBRTtjQUFBLEVBQUMsRUFBRTtnQkFDeEcsSUFBSSxFQUFBMEUscUJBQUEsR0FBQXhGLG9CQUFvQixDQUFDK0MsT0FBTyxjQUFBeUMscUJBQUEsdUJBQTVCQSxxQkFBQSxDQUE4QjFFLEVBQUUsTUFBS3dDLGFBQWEsQ0FBQ3hDLEVBQUUsRUFBRTtrQkFDekRkLG9CQUFvQixDQUFDK0MsT0FBTyxHQUFHTyxhQUFhO2tCQUM1Q2pGLFdBQVcsQ0FBQ2lGLGFBQWEsQ0FBQztnQkFDNUI7Y0FDRixDQUFDLE1BQU0sSUFBSSxDQUFBZ0MsWUFBQSxHQUFBNUIsV0FBVyxjQUFBNEIsWUFBQSxlQUFYQSxZQUFBLENBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQy9HLEtBQUssSUFBSSxDQUFDbUYsV0FBVyxDQUFDckIsSUFBSSxDQUFDLFVBQUMxRSxDQUFRO2dCQUFBLE9BQUtBLENBQUMsQ0FBQ21ELEVBQUUsS0FBS3ZDLEtBQUssQ0FBQ3VDLEVBQUU7Y0FBQSxFQUFDLENBQUMsRUFBRTtnQkFDdkY0RSxlQUFlLEdBQ25CYyxNQUFNLENBQUNDLDJCQUEyQixJQUFJLENBQUN0RyxpQkFBaUIsQ0FBQ3dHLFFBQVEsQ0FBQ2xJLElBQUksQ0FBQ21JLE9BQU8sQ0FBQyxHQUMzRWxELFdBQVcsR0FDWEEsV0FBVyxDQUFDdEcsTUFBTSxDQUFDLFVBQUNtSyxTQUFnQjtrQkFBQSxPQUFLQSxTQUFTLENBQUNqSyxJQUFJLEtBQUssT0FBTztnQkFBQSxFQUFDO2dCQUFBcUksZ0JBQUEsR0FBQTlHLGNBQUEsQ0FFckQ2RyxlQUFlLE1BQTdCOUMsVUFBVSxHQUFBK0MsZ0JBQUE7Z0JBQ2pCLElBQUkvQyxVQUFVLElBQUksRUFBQTZDLHNCQUFBLEdBQUF6RixvQkFBb0IsQ0FBQytDLE9BQU8sY0FBQTBDLHNCQUFBLHVCQUE1QkEsc0JBQUEsQ0FBOEIzRSxFQUFFLE1BQUs4QixVQUFVLENBQUM5QixFQUFFLEVBQUU7a0JBQ3BFZCxvQkFBb0IsQ0FBQytDLE9BQU8sR0FBR0gsVUFBVTtrQkFDekN2RSxXQUFXLENBQUN1RSxVQUFVLENBQUM7Z0JBQ3pCO2NBQ0YsQ0FBQyxNQUFNLElBQUlVLGFBQWEsS0FBQWlDLGFBQUEsR0FBSTdCLFdBQVcsY0FBQTZCLGFBQUEsZUFBWEEsYUFBQSxDQUFhdkgsTUFBTSxFQUFFO2dCQUN6QzBILGlCQUFlLEdBQ25CYyxNQUFNLENBQUNDLDJCQUEyQixJQUFJLENBQUN0RyxpQkFBaUIsQ0FBQ3dHLFFBQVEsQ0FBQ2xJLElBQUksQ0FBQ21JLE9BQU8sQ0FBQyxHQUMzRWxELFdBQVcsR0FDWEEsV0FBVyxDQUFDdEcsTUFBTSxDQUFDLFVBQUNtSyxTQUFnQjtrQkFBQSxPQUFLQSxTQUFTLENBQUNqSyxJQUFJLEtBQUssT0FBTztnQkFBQSxFQUFDO2dCQUFBd0ksaUJBQUEsR0FBQWpILGNBQUEsQ0FFNUM2RyxpQkFBZSxNQUF0Q0ssbUJBQW1CLEdBQUFELGlCQUFBO2dCQUMxQixJQUFJQyxtQkFBbUIsSUFBSSxFQUFBSCxzQkFBQSxHQUFBNUYsb0JBQW9CLENBQUMrQyxPQUFPLGNBQUE2QyxzQkFBQSx1QkFBNUJBLHNCQUFBLENBQThCOUUsRUFBRSxNQUFLaUYsbUJBQW1CLENBQUNqRixFQUFFLEVBQUU7a0JBQ3RGZCxvQkFBb0IsQ0FBQytDLE9BQU8sR0FBR2dELG1CQUFtQjtrQkFDbEQxSCxXQUFXLENBQUMwSCxtQkFBbUIsQ0FBQztnQkFDbEM7Y0FDRjtZQUNGO1lBRUE3RyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQUFtSCxRQUFBLENBQUFDLElBQUE7WUFBQTtVQUFBO1lBQUFELFFBQUEsQ0FBQTNGLElBQUE7WUFBQXlGLEdBQUEsR0FBQUUsUUFBQTtZQUVqQjNHLFFBQVEsQ0FBQ3lHLEdBQUEsWUFBZXFCLEtBQUssR0FBR3JCLEdBQUEsQ0FBSXBFLE9BQU8sR0FBRywyQkFBMkIsQ0FBQztZQUMxRTdDLFVBQVUsQ0FBQyxLQUFLLENBQUM7VUFBQTtZQUFBbUgsUUFBQSxDQUFBM0YsSUFBQTtZQUVqQlQsZUFBZSxDQUFDOEMsT0FBTyxHQUFHLEtBQUs7WUFDL0IwRSxVQUFVLENBQUMsWUFBTTtjQUNmLElBQUksQ0FBQ3hILGVBQWUsQ0FBQzhDLE9BQU8sRUFBRTtnQkFDNUI3QyxjQUFjLENBQUM2QyxPQUFPLEdBQUcsSUFBSTtjQUMvQjtZQUNGLENBQUMsRUFBRSxHQUFHLENBQUM7WUFBQSxPQUFBc0QsUUFBQSxDQUFBcUIsTUFBQTtVQUFBO1VBQUE7WUFBQSxPQUFBckIsUUFBQSxDQUFBc0IsSUFBQTtRQUFBO01BQUEsR0FBQXRFLE9BQUE7SUFBQSxDQUVWO0lBQUEsaUJBQUF1RSxFQUFBO01BQUEsT0FBQTNFLEtBQUEsQ0FBQTRFLEtBQUEsT0FBQWpHLFNBQUE7SUFBQTtFQUFBLEtBQ0QsQ0FBQ3ZELFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxLQUFLLEVBQUVVLE9BQU8sQ0FDdkMsQ0FBQztFQUVELElBQU02SSxjQUFjLEdBQUdyTCxXQUFXLGNBQUF5RyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUMsU0FBQTJFLFNBQUE7SUFBQSxJQUFBdEUsYUFBQSxFQUFBdUUsV0FBQSxFQUFBaEQsSUFBQSxFQUFBRixXQUFBLEVBQUFHLFFBQUEsRUFBQXRHLElBQUEsRUFBQXNKLEdBQUE7SUFBQSxPQUFBOUUsbUJBQUEsQ0FBQWlELElBQUEsV0FBQThCLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBeEgsSUFBQSxHQUFBd0gsU0FBQSxDQUFBNUIsSUFBQTtRQUFBO1VBQzNCN0MsYUFBYSxHQUFHLENBQUMsQ0FBQytDLE1BQU0sQ0FBQ0MsMkJBQTJCLElBQUksQ0FBQyxDQUFDRCxNQUFNLENBQUNFLHdDQUF3QyxFQUMvRztVQUNNc0IsV0FBVyxHQUFHMUosT0FBTyxLQUFLLFFBQVEsSUFBSW1GLGFBQWE7VUFBQSxNQUNyRCxDQUFDdUUsV0FBVyxJQUFJLENBQUM5SyxNQUFNLENBQUNnSyxRQUFRLElBQUksQ0FBQ2hLLE1BQU0sQ0FBQ2lLLFdBQVcsSUFBSTlILFdBQVc7WUFBQTZJLFNBQUEsQ0FBQTVCLElBQUE7WUFBQTtVQUFBO1VBQUEsT0FBQTRCLFNBQUEsQ0FBQTNCLE1BQUE7UUFBQTtVQUkxRWpILGNBQWMsQ0FBQyxJQUFJLENBQUM7VUFDcEJJLFFBQVEsQ0FBQyxJQUFJLENBQUM7VUFBQXdJLFNBQUEsQ0FBQXhILElBQUE7VUFLWjtVQUNBLElBQUkrQyxhQUFhLEVBQUU7WUFDakI7WUFDQXVCLElBQUksOENBQUEvRyxNQUFBLENBQThDZixNQUFNLENBQUNpSyxXQUFXLENBQUU7VUFDeEUsQ0FBQyxNQUFNO1lBQ0w7WUFDTXJDLFdBQVcsR0FBRyxJQUFJc0MsZUFBZSxDQUFDLENBQUM7WUFDekN0QyxXQUFXLENBQUN1QyxNQUFNLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQztZQUN6Q3ZDLFdBQVcsQ0FBQ3VDLE1BQU0sQ0FBQyxNQUFNLEVBQUVySyxVQUFVLENBQUMrQyxJQUFJLENBQUM4RyxRQUFRLENBQUMsQ0FBQztZQUNyRC9CLFdBQVcsQ0FBQ3VDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO1lBQ2hDdkMsV0FBVyxDQUFDdUMsTUFBTSxDQUFDLFFBQVEsRUFBRW5LLE1BQU0sQ0FBQ2lLLFdBQVcsQ0FBQzlGLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0QyRCxJQUFJLGFBQUEvRyxNQUFBLENBQWE2RyxXQUFXLENBQUN6RCxRQUFRLENBQUMsQ0FBQyxDQUFFO1VBQzNDO1VBQUM2RyxTQUFBLENBQUE1QixJQUFBO1VBQUEsT0FFc0J6SixTQUFTLENBQUM7WUFDL0JtSSxJQUFJLEVBQUpBLElBQUk7WUFDSjhCLE1BQU0sRUFBRTtVQUNWLENBQUMsQ0FBQztRQUFBO1VBSEk3QixRQUFRLEdBQUFpRCxTQUFBLENBQUFuQixJQUFBO1VBQUFtQixTQUFBLENBQUE1QixJQUFBO1VBQUEsT0FLS3JCLFFBQVEsQ0FBQytCLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBNUJySSxJQUFJLEdBQUF1SixTQUFBLENBQUFuQixJQUFBO1VBRVY7VUFDQWpJLFNBQVMsQ0FBQyxVQUFBNEIsSUFBSSxFQUFJO1lBQ2hCLElBQUkrQyxhQUFhLEVBQUU7Y0FDakI7Y0FDQTtjQUNBLElBQU0wRSxtQkFBbUIsR0FBR3pILElBQUksQ0FBQy9CLElBQUksQ0FBQ3ZCLE1BQU0sQ0FBQyxVQUFDQyxFQUFTO2dCQUFBLE9BQUtBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU87Y0FBQSxFQUFDOztjQUVoRjtjQUNBLElBQU04SyxZQUFXLEdBQUcsSUFBSUMsR0FBRyxDQUFDM0gsSUFBSSxDQUFDL0IsSUFBSSxDQUFDdkIsTUFBTSxDQUFDLFVBQUNDLEVBQVM7Z0JBQUEsT0FBS0EsRUFBRSxDQUFDQyxJQUFJLEtBQUssT0FBTztjQUFBLEVBQUMsQ0FBQ21FLEdBQUcsQ0FBQyxVQUFDcEUsRUFBUztnQkFBQSxPQUFLQSxFQUFFLENBQUN5RCxFQUFFO2NBQUEsRUFBQyxDQUFDOztjQUUzRztjQUNBLElBQU13SCxVQUFTLEdBQUczSixJQUFJLENBQUNBLElBQUksQ0FBQ3ZCLE1BQU0sQ0FBQyxVQUFDQyxFQUFTO2dCQUFBLE9BQUtBLEVBQUUsQ0FBQ0MsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDOEssWUFBVyxDQUFDRyxHQUFHLENBQUNsTCxFQUFFLENBQUN5RCxFQUFFLENBQUM7Y0FBQSxFQUFDOztjQUVqRztjQUNBLElBQU1DLFFBQU8sR0FBR29ILG1CQUFtQixDQUFDbkssTUFBTSxNQUFBQyxNQUFBLENBQUFDLGtCQUFBLENBQ2xDaUssbUJBQW1CLEdBQUFqSyxrQkFBQSxDQUFLd0MsSUFBSSxDQUFDL0IsSUFBSSxDQUFDdkIsTUFBTSxDQUFDLFVBQUNDLEVBQVM7Z0JBQUEsT0FBS0EsRUFBRSxDQUFDQyxJQUFJLEtBQUssT0FBTztjQUFBLEVBQUMsR0FBQVksa0JBQUEsQ0FBS29LLFVBQVMsUUFBQXJLLE1BQUEsQ0FBQUMsa0JBQUEsQ0FDMUZ3QyxJQUFJLENBQUMvQixJQUFJLENBQUN2QixNQUFNLENBQUMsVUFBQ0MsRUFBUztnQkFBQSxPQUFLQSxFQUFFLENBQUNDLElBQUksS0FBSyxPQUFPO2NBQUEsRUFBQyxHQUFBWSxrQkFBQSxDQUFLb0ssVUFBUyxFQUFDOztjQUUzRTtjQUNBLElBQU10SCxXQUFVLEdBQUcvRCxVQUFVLENBQUM4RCxRQUFPLENBQUM7Y0FFdEMsT0FBTztnQkFDTHBDLElBQUksRUFBRXFDLFdBQVU7Z0JBQ2hCa0csUUFBUSxFQUFFdkksSUFBSSxDQUFDdUksUUFBUTtnQkFDdkJDLFdBQVcsRUFBRXhJLElBQUksQ0FBQ3dJO2NBQ3BCLENBQUM7WUFDSDtZQUNBO1lBQ0EsSUFBTWlCLFdBQVcsR0FBRyxJQUFJQyxHQUFHLENBQUMzSCxJQUFJLENBQUMvQixJQUFJLENBQUM4QyxHQUFHLENBQUMsVUFBQ3BFLEVBQVM7Y0FBQSxPQUFLQSxFQUFFLENBQUN5RCxFQUFFO1lBQUEsRUFBQyxDQUFDO1lBQ2hFLElBQU13SCxTQUFTLEdBQUcsQ0FBQzNKLElBQUksQ0FBQ0EsSUFBSSxJQUFJLEVBQUUsRUFBRXZCLE1BQU0sQ0FBQyxVQUFDQyxFQUFTO2NBQUEsT0FBSyxDQUFDK0ssV0FBVyxDQUFDRyxHQUFHLENBQUNsTCxFQUFFLENBQUN5RCxFQUFFLENBQUM7WUFBQSxFQUFDO1lBQ2xGLElBQU1DLE9BQU8sTUFBQTlDLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBT3dDLElBQUksQ0FBQy9CLElBQUksR0FBQVQsa0JBQUEsQ0FBS29LLFNBQVMsRUFBQzs7WUFFNUM7WUFDQSxJQUFNdEgsVUFBVSxHQUFHL0QsVUFBVSxDQUFDOEQsT0FBTyxDQUFDO1lBRXRDLE9BQU87Y0FDTHBDLElBQUksRUFBRXFDLFVBQVU7Y0FDaEJrRyxRQUFRLEVBQUV2SSxJQUFJLENBQUN1SSxRQUFRO2NBQ3ZCQyxXQUFXLEVBQUV4SSxJQUFJLENBQUN3STtZQUNwQixDQUFDO1VBQ0gsQ0FBQyxDQUFDO1VBRUY3SCxjQUFjLENBQUMsS0FBSyxDQUFDO1VBQUE0SSxTQUFBLENBQUE1QixJQUFBO1VBQUE7UUFBQTtVQUFBNEIsU0FBQSxDQUFBeEgsSUFBQTtVQUFBdUgsR0FBQSxHQUFBQyxTQUFBO1VBRXJCdEksbUJBQW1CLENBQUNFLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1VBQ3ZEUixjQUFjLENBQUMsS0FBSyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUE0SSxTQUFBLENBQUFQLElBQUE7TUFBQTtJQUFBLEdBQUFJLFFBQUE7RUFBQSxDQUV4QixJQUFFLENBQUN6SixPQUFPLEVBQUVwQixNQUFNLENBQUNnSyxRQUFRLEVBQUVoSyxNQUFNLENBQUNpSyxXQUFXLEVBQUU5SCxXQUFXLEVBQUVVLElBQUksQ0FBQzhHLFFBQVEsQ0FBQyxDQUFDO0VBRTlFLE9BQU87SUFDTDNKLE1BQU0sRUFBTkEsTUFBTTtJQUNOK0IsT0FBTyxFQUFQQSxPQUFPO0lBQ1BJLFdBQVcsRUFBWEEsV0FBVztJQUNYSSxLQUFLLEVBQUxBLEtBQUs7SUFDTHVELGVBQWUsRUFBZkEsZUFBZTtJQUNmOEUsY0FBYyxFQUFkQSxjQUFjO0lBQ2R2SCxRQUFRLEVBQVJBLFFBQVE7SUFDUlksV0FBVyxFQUFYQSxXQUFXO0lBQ1hHLFdBQVcsRUFBWEEsV0FBVztJQUNYSSxtQkFBbUIsRUFBbkJBLG1CQUFtQjtJQUNuQmlCLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCRCxjQUFjLEVBQWRBO0VBQ0YsQ0FBQztBQUNILENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=