@projectcor/maia-components 2.11.65-1 → 2.11.65-10

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 (29) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +16 -10
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +14 -11
  3. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +4 -2
  4. package/lib/components/atoms/MAIAInput/MAIAInput.js +202 -40
  5. package/lib/components/atoms/MAIAInput/styles.js +64 -24
  6. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +160 -14
  7. package/lib/components/molecules/ChatAIHome/styles.js +39 -18
  8. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +18 -4
  9. package/lib/context/global-context.js +1 -1
  10. package/lib/dev/DevContextMentionInput.js +3 -1
  11. package/lib/hooks/index.js +2 -1
  12. package/lib/hooks/useChatManager/useChatManager.js +134 -63
  13. package/lib/hooks/useContextPinPopover.js +8 -1
  14. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +10 -7
  15. package/lib/hooks/useProjectSummaryConfig.js +32 -17
  16. package/lib/hooks/useRecentContexts.js +84 -0
  17. package/lib/lang/br/index.js +17 -1
  18. package/lib/lang/en/index.js +17 -1
  19. package/lib/lang/es/index.js +17 -1
  20. package/lib/lang/fr/index.js +17 -1
  21. package/lib/services/maia/Orchestrator/orchestrator.js +15 -7
  22. package/lib/services/maia/RecentContexts/getRecentContexts.js +51 -0
  23. package/lib/services/maia/RecentContexts/index.js +6 -0
  24. package/lib/services/maia/index.js +4 -2
  25. package/lib/services/utils/mapChatMessages.js +18 -8
  26. package/lib/types/Chat.js +1 -1
  27. package/lib/types/Hitl.js +2 -0
  28. package/lib/utils/renderContextMentions.js +7 -3
  29. package/package.json +1 -1
@@ -37,27 +37,31 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
37
37
  _useState8 = _slicedToArray(_useState7, 2),
38
38
  isDeepSearchActive = _useState8[0],
39
39
  setIsDeepSearchActive = _useState8[1];
40
- var _useState9 = useState(entity || {
40
+ var _useState9 = useState('full_access'),
41
+ _useState0 = _slicedToArray(_useState9, 2),
42
+ hitlApprovalMode = _useState0[0],
43
+ setHitlApprovalMode = _useState0[1];
44
+ var _useState1 = useState(entity || {
41
45
  projectId: null,
42
46
  clientId: null
43
47
  }),
44
- _useState0 = _slicedToArray(_useState9, 2),
45
- entityValues = _useState0[0],
46
- setEntityValues = _useState0[1];
47
- var _useState1 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
48
48
  _useState10 = _slicedToArray(_useState1, 2),
49
- client = _useState10[0],
50
- setClientState = _useState10[1];
51
- var setClient = setClientProp !== null && setClientProp !== void 0 ? setClientProp : setClientState;
52
- var _useState11 = useState(initialTask !== null && initialTask !== void 0 ? initialTask : null),
49
+ entityValues = _useState10[0],
50
+ setEntityValues = _useState10[1];
51
+ var _useState11 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
53
52
  _useState12 = _slicedToArray(_useState11, 2),
54
- task = _useState12[0],
55
- setTaskState = _useState12[1];
53
+ client = _useState12[0],
54
+ setClientState = _useState12[1];
55
+ var setClient = setClientProp !== null && setClientProp !== void 0 ? setClientProp : setClientState;
56
+ var _useState13 = useState(initialTask !== null && initialTask !== void 0 ? initialTask : null),
57
+ _useState14 = _slicedToArray(_useState13, 2),
58
+ task = _useState14[0],
59
+ setTaskState = _useState14[1];
56
60
  var setTask = useCallback(function (newTask) {
57
61
  return setTaskState(newTask);
58
62
  }, []);
59
63
  var configureSettingsItems = useRef(buildConfigureSettingsItems(user, t));
60
- var _useState13 = useState(function () {
64
+ var _useState15 = useState(function () {
61
65
  if ((section === 'project' || section === 'task') && (project === null || project === void 0 ? void 0 : project.id) != null) {
62
66
  var _project$client$name, _project$client;
63
67
  return {
@@ -68,9 +72,9 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
68
72
  }
69
73
  return null;
70
74
  }),
71
- _useState14 = _slicedToArray(_useState13, 2),
72
- chipsProject = _useState14[0],
73
- setChipsProjectState = _useState14[1];
75
+ _useState16 = _slicedToArray(_useState15, 2),
76
+ chipsProject = _useState16[0],
77
+ setChipsProjectState = _useState16[1];
74
78
 
75
79
  // Sincronizar chipsProject cuando el project prop cambia (ej. navegación entre proyectos o tareas)
76
80
  useEffect(function () {
@@ -114,6 +118,15 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
114
118
  useEffect(function () {
115
119
  if (section === 'project') setOpenSection('project');else if (section === 'client') setOpenSection('client');else setOpenSection('header');
116
120
  }, [section]);
121
+ useEffect(function () {
122
+ var resetHitlApprovalMode = function resetHitlApprovalMode() {
123
+ return setHitlApprovalMode('full_access');
124
+ };
125
+ document.addEventListener('chat-session-changed', resetHitlApprovalMode);
126
+ return function () {
127
+ return document.removeEventListener('chat-session-changed', resetHitlApprovalMode);
128
+ };
129
+ }, []);
117
130
  var restoreConfigureSettings = useCallback(function () {
118
131
  var _configureSettingsIte;
119
132
  configureSettingsItems.current = (_configureSettingsIte = configureSettingsItems.current) === null || _configureSettingsIte === void 0 ? void 0 : _configureSettingsIte.map(function (item) {
@@ -204,15 +217,17 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
204
217
  toggleWebSearch: toggleWebSearch,
205
218
  isDeepSearchActive: isDeepSearchActive,
206
219
  toggleDeepSearch: toggleDeepSearch,
220
+ hitlApprovalMode: hitlApprovalMode,
221
+ setHitlApprovalMode: setHitlApprovalMode,
207
222
  hasMultiAgents: hasMultiAgents,
208
223
  chipsProject: chipsProject,
209
224
  setChipsProject: setChipsProject,
210
225
  pinnedContext: pinnedContext
211
226
  };
212
- }, [openSection, entityValues === null || entityValues === void 0 ? void 0 : entityValues.projectId, entityValues === null || entityValues === void 0 ? void 0 : entityValues.clientId, agent, selectAgent, clearAgent, setEntityValues, restoreConfigureSettings, project === null || project === void 0 ? void 0 : project.id, setProject, client === null || client === void 0 ? void 0 : client.id, setClient, task === null || task === void 0 ? void 0 : task.id, setTask, isWebSearchActive, toggleWebSearch, isDeepSearchActive, toggleDeepSearch, hasMultiAgents, chipsProject, setChipsProject, pinnedContext]);
227
+ }, [openSection, entityValues === null || entityValues === void 0 ? void 0 : entityValues.projectId, entityValues === null || entityValues === void 0 ? void 0 : entityValues.clientId, agent, selectAgent, clearAgent, setEntityValues, restoreConfigureSettings, project === null || project === void 0 ? void 0 : project.id, setProject, client === null || client === void 0 ? void 0 : client.id, setClient, task === null || task === void 0 ? void 0 : task.id, setTask, isWebSearchActive, toggleWebSearch, isDeepSearchActive, toggleDeepSearch, hitlApprovalMode, setHitlApprovalMode, hasMultiAgents, chipsProject, setChipsProject, pinnedContext]);
213
228
  return {
214
229
  context: context,
215
230
  restoreConfigureSettings: restoreConfigureSettings
216
231
  };
217
232
  };
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwiYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwidXNlVXNlciIsInVzZVRXaXRoU2VjdGlvbiIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsIl9wcm9qZWN0JGNsaWVudDMiLCJzZWN0aW9uIiwiZW50aXR5IiwicHJvamVjdCIsInNldFByb2plY3QiLCJfcmVmJGNsaWVudCIsImNsaWVudCIsImluaXRpYWxDbGllbnQiLCJzZXRDbGllbnRQcm9wIiwic2V0Q2xpZW50IiwiX3JlZiR0YXNrIiwidGFzayIsImluaXRpYWxUYXNrIiwiaGFzTXVsdGlBZ2VudHMiLCJ1c2VyIiwidCIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFnZW50Iiwic2V0QWdlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm9wZW5TZWN0aW9uIiwic2V0T3BlblNlY3Rpb24iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzV2ViU2VhcmNoQWN0aXZlIiwic2V0SXNXZWJTZWFyY2hBY3RpdmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInNldElzRGVlcFNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTkiLCJwcm9qZWN0SWQiLCJjbGllbnRJZCIsIl91c2VTdGF0ZTAiLCJlbnRpdHlWYWx1ZXMiLCJzZXRFbnRpdHlWYWx1ZXMiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzZXRDbGllbnRTdGF0ZSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJzZXRUYXNrU3RhdGUiLCJzZXRUYXNrIiwibmV3VGFzayIsImNvbmZpZ3VyZVNldHRpbmdzSXRlbXMiLCJfdXNlU3RhdGUxMyIsImlkIiwiX3Byb2plY3QkY2xpZW50JG5hbWUiLCJfcHJvamVjdCRjbGllbnQiLCJTdHJpbmciLCJwcm9qZWN0TmFtZSIsIm5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVN0YXRlMTQiLCJjaGlwc1Byb2plY3QiLCJzZXRDaGlwc1Byb2plY3RTdGF0ZSIsInByZXYiLCJfcHJvamVjdCRjbGllbnQkbmFtZTIiLCJfcHJvamVjdCRjbGllbnQyIiwiX2VudGl0eSRwcm9qZWN0SWQiLCJfZW50aXR5JGNsaWVudElkIiwicmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzIiwiX2NvbmZpZ3VyZVNldHRpbmdzSXRlIiwiY3VycmVudCIsIm1hcCIsIml0ZW0iLCJfb2JqZWN0U3ByZWFkIiwiY2hlY2tlZCIsImhpZGRlbiIsInNlbGVjdEFnZW50IiwibmV3QWdlbnQiLCJjbGVhckFnZW50IiwidG9nZ2xlV2ViU2VhcmNoIiwidG9nZ2xlRGVlcFNlYXJjaCIsInNldENoaXBzUHJvamVjdCIsIm5ld0NoaXBzUHJvamVjdCIsInBpbm5lZENvbnRleHQiLCJ0eXBlIiwicGFyZW50cyIsImNvbnRleHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBDaGlwc1Byb2plY3QsIFBpbm5lZENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG5pbXBvcnQgeyB1c2VUV2l0aFNlY3Rpb24gfSBmcm9tICcuL3VzZVQnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90eXBlcy9UYXNrJ1xuXG50eXBlIFByb2plY3RTdW1tYXJ5Q29uZmlnUHJvcHMgPSB7XG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaydcbiAgZW50aXR5Pzoge1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH0gfCBudWxsXG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIHNldFByb2plY3Q6IChwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbCkgPT4gdm9pZFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHNldENsaWVudD86IChjbGllbnQ6IENsaWVudCB8IG51bGwpID0+IHZvaWRcbiAgdGFzaz86IFRhc2sgfCBudWxsXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlUHJvamVjdFN1bW1hcnlDb25maWcgPSAoe1xuICBzZWN0aW9uLFxuICBlbnRpdHksXG4gIHByb2plY3QsXG4gIHNldFByb2plY3QsXG4gIGNsaWVudDogaW5pdGlhbENsaWVudCA9IG51bGwsXG4gIHNldENsaWVudDogc2V0Q2xpZW50UHJvcCxcbiAgdGFzazogaW5pdGlhbFRhc2sgPSBudWxsLFxuICBoYXNNdWx0aUFnZW50cyxcbn06IFByb2plY3RTdW1tYXJ5Q29uZmlnUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB0ID0gdXNlVFdpdGhTZWN0aW9uKFNFQ1RJT05TLmNoYXRBSSlcbiAgY29uc3QgW2FnZW50LCBzZXRBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtvcGVuU2VjdGlvbiwgc2V0T3BlblNlY3Rpb25dID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzV2ViU2VhcmNoQWN0aXZlLCBzZXRJc1dlYlNlYXJjaEFjdGl2ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2lzRGVlcFNlYXJjaEFjdGl2ZSwgc2V0SXNEZWVwU2VhcmNoQWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbZW50aXR5VmFsdWVzLCBzZXRFbnRpdHlWYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH0+KGVudGl0eSB8fCB7IHByb2plY3RJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfSlcbiAgY29uc3QgW2NsaWVudCwgc2V0Q2xpZW50U3RhdGVdID0gdXNlU3RhdGU8Q2xpZW50IHwgbnVsbD4oaW5pdGlhbENsaWVudCA/PyBudWxsKVxuXG4gIGNvbnN0IHNldENsaWVudCA9IHNldENsaWVudFByb3AgPz8gc2V0Q2xpZW50U3RhdGVcblxuICBjb25zdCBbdGFzaywgc2V0VGFza1N0YXRlXSA9IHVzZVN0YXRlPFRhc2sgfCBudWxsPihpbml0aWFsVGFzayA/PyBudWxsKVxuICBjb25zdCBzZXRUYXNrID0gdXNlQ2FsbGJhY2soKG5ld1Rhc2s6IFRhc2sgfCBudWxsKSA9PiBzZXRUYXNrU3RhdGUobmV3VGFzayksIFtdKVxuXG4gIGNvbnN0IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMgPSB1c2VSZWYoYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zKHVzZXIsIHQpKVxuICBjb25zdCBbY2hpcHNQcm9qZWN0LCBzZXRDaGlwc1Byb2plY3RTdGF0ZV0gPSB1c2VTdGF0ZTxDaGlwc1Byb2plY3QgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snKSAmJiBwcm9qZWN0Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0LmlkKSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQ/Lm5hbWUgPz8gJycsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH0pXG5cbiAgLy8gU2luY3Jvbml6YXIgY2hpcHNQcm9qZWN0IGN1YW5kbyBlbCBwcm9qZWN0IHByb3AgY2FtYmlhIChlai4gbmF2ZWdhY2nDs24gZW50cmUgcHJveWVjdG9zIG8gdGFyZWFzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICgoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICd0YXNrJykgJiYgcHJvamVjdD8uaWQgIT0gbnVsbCkge1xuICAgICAgc2V0Q2hpcHNQcm9qZWN0U3RhdGUocHJldiA9PiB7XG4gICAgICAgIGlmIChwcmV2Py5wcm9qZWN0SWQgPT09IFN0cmluZyhwcm9qZWN0LmlkKSkgcmV0dXJuIHByZXZcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0LmlkKSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgICAgIGNsaWVudE5hbWU6IHByb2plY3QuY2xpZW50Py5uYW1lID8/ICcnLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIHByb2plY3Q/LmlkLCBwcm9qZWN0Py5uYW1lLCBwcm9qZWN0Py5jbGllbnQ/Lm5hbWVdKVxuXG4gIC8vIFNpbmNyb25pemFyIGNsaWVudCBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXIgKGVqLiBzZWN0aW9uIGNsaWVudCwgZGF0b3MgYXN5bmMpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSB7XG4gICAgICBzZXRDbGllbnRTdGF0ZShpbml0aWFsQ2xpZW50ID8/IG51bGwpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgaW5pdGlhbENsaWVudF0pXG5cbiAgLy8gU2luY3Jvbml6YXIgdGFzayBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXJcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSB7XG4gICAgICBzZXRUYXNrU3RhdGUoaW5pdGlhbFRhc2sgPz8gbnVsbClcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBpbml0aWFsVGFza10pXG5cbiAgLy8gU2luY3Jvbml6YXIgZW50aXR5VmFsdWVzIGN1YW5kbyBlbnRpdHkgY2FtYmllIChlai4gbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbnRpdHkgIT0gbnVsbCkge1xuICAgICAgc2V0RW50aXR5VmFsdWVzKHtcbiAgICAgICAgcHJvamVjdElkOiBlbnRpdHkucHJvamVjdElkID8/IG51bGwsXG4gICAgICAgIGNsaWVudElkOiBlbnRpdHkuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbZW50aXR5Py5wcm9qZWN0SWQsIGVudGl0eT8uY2xpZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0Jykgc2V0T3BlblNlY3Rpb24oJ3Byb2plY3QnKVxuICAgIGVsc2UgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSBzZXRPcGVuU2VjdGlvbignY2xpZW50JylcbiAgICBlbHNlIHNldE9wZW5TZWN0aW9uKCdoZWFkZXInKVxuICB9LCBbc2VjdGlvbl0pXG5cbiAgY29uc3QgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMuY3VycmVudCA9IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMuY3VycmVudD8ubWFwKGl0ZW0gPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBjaGVja2VkOiAhaXRlbS5oaWRkZW4sXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgIHNldEFnZW50KG5ld0FnZW50KVxuICB9LCBbXSlcblxuICBjb25zdCBjbGVhckFnZW50ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50KG51bGwpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHRvZ2dsZVdlYlNlYXJjaCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc1dlYlNlYXJjaEFjdGl2ZShwcmV2ID0+ICFwcmV2KVxuICB9LCBbXSlcblxuICBjb25zdCB0b2dnbGVEZWVwU2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzRGVlcFNlYXJjaEFjdGl2ZShwcmV2ID0+ICFwcmV2KVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRDaGlwc1Byb2plY3QgPSB1c2VDYWxsYmFjaygobmV3Q2hpcHNQcm9qZWN0OiBDaGlwc1Byb2plY3QgfCBudWxsKSA9PiB7XG4gICAgc2V0Q2hpcHNQcm9qZWN0U3RhdGUobmV3Q2hpcHNQcm9qZWN0KVxuICB9LCBbXSlcblxuICAvLyBQaW4gZGVyaXZhZG8gKFJGQyDCpzEyLjIpOiBsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgYWN0aXZhICh0YXJlYSA+IHByb3llY3RvID4gY2xpZW50ZSksXG4gIC8vIGNvbiBzdSBzY29wZSBoYWNpYSBhcnJpYmEgZW4gYHBhcmVudHNgLiBNb25vIGhveTsgYXJyYXktcmVhZHkgcGFyYSBjcm9zcy1lbnRpdHkuXG4gIGNvbnN0IHBpbm5lZENvbnRleHQgPSB1c2VNZW1vPFBpbm5lZENvbnRleHQgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICd0YXNrJyxcbiAgICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICAgIG5hbWU6IHRhc2submFtZSxcbiAgICAgICAgcGFyZW50czoge1xuICAgICAgICAgIC4uLih0YXNrLmNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkOiB0YXNrLmNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHRhc2sucHJvamVjdElkICE9IG51bGwgPyB7IHByb2plY3RJZDogdGFzay5wcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAncHJvamVjdCcsXG4gICAgICAgIGlkOiBjaGlwc1Byb2plY3QucHJvamVjdElkLFxuICAgICAgICBuYW1lOiBjaGlwc1Byb2plY3QucHJvamVjdE5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9qZWN0Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAncHJvamVjdCcsXG4gICAgICAgIGlkOiBwcm9qZWN0LmlkLFxuICAgICAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICAgIC4uLihwcm9qZWN0LmNsaWVudElkICE9IG51bGwgPyB7IHBhcmVudHM6IHsgY2xpZW50SWQ6IHByb2plY3QuY2xpZW50SWQgfSB9IDoge30pLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2xpZW50Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnY2xpZW50JywgaWQ6IGNsaWVudC5pZCwgbmFtZTogY2xpZW50Lm5hbWUgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgdGFzaz8uaWQsXG4gICAgdGFzaz8ubmFtZSxcbiAgICB0YXNrPy5jbGllbnRJZCxcbiAgICB0YXNrPy5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0LFxuICAgIHByb2plY3Q/LmlkLFxuICAgIHByb2plY3Q/Lm5hbWUsXG4gICAgcHJvamVjdD8uY2xpZW50SWQsXG4gICAgY2xpZW50Py5pZCxcbiAgICBjbGllbnQ/Lm5hbWUsXG4gIF0pXG5cbiAgY29uc3QgY29udGV4dCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGVudGl0eVZhbHVlcyxcbiAgICAgIHNlY3Rpb246IG9wZW5TZWN0aW9uLFxuICAgICAgYWdlbnQsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGNsZWFyQWdlbnQsXG4gICAgICBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLFxuICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICAgICAgc2V0RW50aXR5VmFsdWVzLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQsXG4gICAgICBzZXRDbGllbnQsXG4gICAgICB0YXNrLFxuICAgICAgc2V0VGFzayxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgICAgcGlubmVkQ29udGV4dCxcbiAgICB9KSxcbiAgICBbXG4gICAgICBvcGVuU2VjdGlvbixcbiAgICAgIGVudGl0eVZhbHVlcz8ucHJvamVjdElkLFxuICAgICAgZW50aXR5VmFsdWVzPy5jbGllbnRJZCxcbiAgICAgIGFnZW50LFxuICAgICAgc2VsZWN0QWdlbnQsXG4gICAgICBjbGVhckFnZW50LFxuICAgICAgc2V0RW50aXR5VmFsdWVzLFxuICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICAgICAgcHJvamVjdD8uaWQsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50Py5pZCxcbiAgICAgIHNldENsaWVudCxcbiAgICAgIHRhc2s/LmlkLFxuICAgICAgc2V0VGFzayxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgICAgcGlubmVkQ29udGV4dCxcbiAgICBdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQsXG4gICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBR3pFLFNBQVNDLFFBQVEsUUFBUSxxQkFBcUI7QUFDOUMsU0FBU0MsMkJBQTJCLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLE9BQU8sUUFBUSxxQkFBcUI7QUFHN0MsU0FBU0MsZUFBZSxRQUFRLFFBQVE7QUFtQnhDLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBQUMsSUFBQSxFQVNIO0VBQUEsSUFBQUMsZ0JBQUE7RUFBQSxJQVIvQkMsT0FBTyxHQUFBRixJQUFBLENBQVBFLE9BQU87SUFDUEMsTUFBTSxHQUFBSCxJQUFBLENBQU5HLE1BQU07SUFDTkMsT0FBTyxHQUFBSixJQUFBLENBQVBJLE9BQU87SUFDUEMsVUFBVSxHQUFBTCxJQUFBLENBQVZLLFVBQVU7SUFBQUMsV0FBQSxHQUFBTixJQUFBLENBQ1ZPLE1BQU07SUFBRUMsYUFBYSxHQUFBRixXQUFBLGNBQUcsSUFBSSxHQUFBQSxXQUFBO0lBQ2pCRyxhQUFhLEdBQUFULElBQUEs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WTtNQUNackMsT0FBTyxFQUFFdUIsV0FBVztNQUNwQkosS0FBSyxFQUFMQSxLQUFLO01BQ0xxRCxXQUFXLEVBQVhBLFdBQVc7TUFDWEUsVUFBVSxFQUFWQSxVQUFVO01BQ1YzQixzQkFBc0IsRUFBdEJBLHNCQUFzQjtNQUN0QmlCLHdCQUF3QixFQUF4QkEsd0JBQXdCO01BQ3hCMUIsZUFBZSxFQUFmQSxlQUFlO01BQ2ZwQyxPQUFPLEVBQVBBLE9BQU87TUFDUEMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZFLE1BQU0sRUFBTkEsTUFBTTtNQUNORyxTQUFTLEVBQVRBLFNBQVM7TUFDVEUsSUFBSSxFQUFKQSxJQUFJO01BQ0ptQyxPQUFPLEVBQVBBLE9BQU87TUFDUGxCLGlCQUFpQixFQUFqQkEsaUJBQWlCO01BQ2pCZ0QsZUFBZSxFQUFmQSxlQUFlO01BQ2Y1QyxrQkFBa0IsRUFBbEJBLGtCQUFrQjtNQUNsQjZDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCaEUsY0FBYyxFQUFkQSxjQUFjO01BQ2Q2QyxZQUFZLEVBQVpBLFlBQVk7TUFDWm9CLGVBQWUsRUFBZkEsZUFBZTtNQUNmRSxhQUFhLEVBQWJBO0lBQ0YsQ0FBQztFQUFBLENBQUMsRUFDRixDQUNFeEQsV0FBVyxFQUNYYyxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRUgsU0FBUyxFQUN2QkcsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUVGLFFBQVEsRUFDdEJoQixLQUFLLEVBQ0xxRCxXQUFXLEVBQ1hFLFVBQVUsRUFDVnBDLGVBQWUsRUFDZjBCLHdCQUF3QixFQUN4QjlELE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFK0MsRUFBRSxFQUNYOUMsVUFBVSxFQUNWRSxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRTRDLEVBQUUsRUFDVnpDLFNBQVMsRUFDVEUsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUV1QyxFQUFFLEVBQ1JKLE9BQU8sRUFDUGxCLGlCQUFpQixFQUNqQmdELGVBQWUsRUFDZjVDLGtCQUFrQixFQUNsQjZDLGdCQUFnQixFQUNoQmhFLGNBQWMsRUFDZDZDLFlBQVksRUFDWm9CLGVBQWUsRUFDZkUsYUFBYSxDQUVqQixDQUFDO0VBRUQsT0FBTztJQUNMRyxPQUFPLEVBQVBBLE9BQU87SUFDUGxCLHdCQUF3QixFQUF4QkE7RUFDRixDQUFDO0FBQ0gsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
233
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwiYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwidXNlVXNlciIsInVzZVRXaXRoU2VjdGlvbiIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsIl9wcm9qZWN0JGNsaWVudDMiLCJzZWN0aW9uIiwiZW50aXR5IiwicHJvamVjdCIsInNldFByb2plY3QiLCJfcmVmJGNsaWVudCIsImNsaWVudCIsImluaXRpYWxDbGllbnQiLCJzZXRDbGllbnRQcm9wIiwic2V0Q2xpZW50IiwiX3JlZiR0YXNrIiwidGFzayIsImluaXRpYWxUYXNrIiwiaGFzTXVsdGlBZ2VudHMiLCJ1c2VyIiwidCIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFnZW50Iiwic2V0QWdlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm9wZW5TZWN0aW9uIiwic2V0T3BlblNlY3Rpb24iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzV2ViU2VhcmNoQWN0aXZlIiwic2V0SXNXZWJTZWFyY2hBY3RpdmUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInNldElzRGVlcFNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaGl0bEFwcHJvdmFsTW9kZSIsInNldEhpdGxBcHByb3ZhbE1vZGUiLCJfdXNlU3RhdGUxIiwicHJvamVjdElkIiwiY2xpZW50SWQiLCJfdXNlU3RhdGUxMCIsImVudGl0eVZhbHVlcyIsInNldEVudGl0eVZhbHVlcyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJzZXRDbGllbnRTdGF0ZSIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzZXRUYXNrU3RhdGUiLCJzZXRUYXNrIiwibmV3VGFzayIsImNvbmZpZ3VyZVNldHRpbmdzSXRlbXMiLCJfdXNlU3RhdGUxNSIsImlkIiwiX3Byb2plY3QkY2xpZW50JG5hbWUiLCJfcHJvamVjdCRjbGllbnQiLCJTdHJpbmciLCJwcm9qZWN0TmFtZSIsIm5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVN0YXRlMTYiLCJjaGlwc1Byb2plY3QiLCJzZXRDaGlwc1Byb2plY3RTdGF0ZSIsInByZXYiLCJfcHJvamVjdCRjbGllbnQkbmFtZTIiLCJfcHJvamVjdCRjbGllbnQyIiwiX2VudGl0eSRwcm9qZWN0SWQiLCJfZW50aXR5JGNsaWVudElkIiwicmVzZXRIaXRsQXBwcm92YWxNb2RlIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsIl9jb25maWd1cmVTZXR0aW5nc0l0ZSIsImN1cnJlbnQiLCJtYXAiLCJpdGVtIiwiX29iamVjdFNwcmVhZCIsImNoZWNrZWQiLCJoaWRkZW4iLCJzZWxlY3RBZ2VudCIsIm5ld0FnZW50IiwiY2xlYXJBZ2VudCIsInRvZ2dsZVdlYlNlYXJjaCIsInRvZ2dsZURlZXBTZWFyY2giLCJzZXRDaGlwc1Byb2plY3QiLCJuZXdDaGlwc1Byb2plY3QiLCJwaW5uZWRDb250ZXh0IiwidHlwZSIsInBhcmVudHMiLCJjb250ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgQ2hpcHNQcm9qZWN0LCBQaW5uZWRDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IGJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyB9IGZyb20gJy4uL2NvbnN0YW50cy9wZXJtaXNzaW9ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcblxuaW1wb3J0IHsgdXNlVFdpdGhTZWN0aW9uIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi90eXBlcy9DbGllbnQnXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdHlwZXMvVGFzaydcbmltcG9ydCB7IEhpdGxBcHByb3ZhbE1vZGUgfSBmcm9tICcuLi90eXBlcy9IaXRsJ1xuXG50eXBlIFByb2plY3RTdW1tYXJ5Q29uZmlnUHJvcHMgPSB7XG4gIHNlY3Rpb246ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaydcbiAgZW50aXR5Pzoge1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH0gfCBudWxsXG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIHNldFByb2plY3Q6IChwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbCkgPT4gdm9pZFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHNldENsaWVudD86IChjbGllbnQ6IENsaWVudCB8IG51bGwpID0+IHZvaWRcbiAgdGFzaz86IFRhc2sgfCBudWxsXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdXNlUHJvamVjdFN1bW1hcnlDb25maWcgPSAoe1xuICBzZWN0aW9uLFxuICBlbnRpdHksXG4gIHByb2plY3QsXG4gIHNldFByb2plY3QsXG4gIGNsaWVudDogaW5pdGlhbENsaWVudCA9IG51bGwsXG4gIHNldENsaWVudDogc2V0Q2xpZW50UHJvcCxcbiAgdGFzazogaW5pdGlhbFRhc2sgPSBudWxsLFxuICBoYXNNdWx0aUFnZW50cyxcbn06IFByb2plY3RTdW1tYXJ5Q29uZmlnUHJvcHMpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB0ID0gdXNlVFdpdGhTZWN0aW9uKFNFQ1RJT05TLmNoYXRBSSlcbiAgY29uc3QgW2FnZW50LCBzZXRBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtvcGVuU2VjdGlvbiwgc2V0T3BlblNlY3Rpb25dID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzV2ViU2VhcmNoQWN0aXZlLCBzZXRJc1dlYlNlYXJjaEFjdGl2ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2lzRGVlcFNlYXJjaEFjdGl2ZSwgc2V0SXNEZWVwU2VhcmNoQWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbaGl0bEFwcHJvdmFsTW9kZSwgc2V0SGl0bEFwcHJvdmFsTW9kZV0gPSB1c2VTdGF0ZTxIaXRsQXBwcm92YWxNb2RlPignZnVsbF9hY2Nlc3MnKVxuICBjb25zdCBbZW50aXR5VmFsdWVzLCBzZXRFbnRpdHlWYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH0+KGVudGl0eSB8fCB7IHByb2plY3RJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfSlcbiAgY29uc3QgW2NsaWVudCwgc2V0Q2xpZW50U3RhdGVdID0gdXNlU3RhdGU8Q2xpZW50IHwgbnVsbD4oaW5pdGlhbENsaWVudCA/PyBudWxsKVxuXG4gIGNvbnN0IHNldENsaWVudCA9IHNldENsaWVudFByb3AgPz8gc2V0Q2xpZW50U3RhdGVcblxuICBjb25zdCBbdGFzaywgc2V0VGFza1N0YXRlXSA9IHVzZVN0YXRlPFRhc2sgfCBudWxsPihpbml0aWFsVGFzayA/PyBudWxsKVxuICBjb25zdCBzZXRUYXNrID0gdXNlQ2FsbGJhY2soKG5ld1Rhc2s6IFRhc2sgfCBudWxsKSA9PiBzZXRUYXNrU3RhdGUobmV3VGFzayksIFtdKVxuXG4gIGNvbnN0IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMgPSB1c2VSZWYoYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zKHVzZXIsIHQpKVxuICBjb25zdCBbY2hpcHNQcm9qZWN0LCBzZXRDaGlwc1Byb2plY3RTdGF0ZV0gPSB1c2VTdGF0ZTxDaGlwc1Byb2plY3QgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snKSAmJiBwcm9qZWN0Py5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0LmlkKSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQ/Lm5hbWUgPz8gJycsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH0pXG5cbiAgLy8gU2luY3Jvbml6YXIgY2hpcHNQcm9qZWN0IGN1YW5kbyBlbCBwcm9qZWN0IHByb3AgY2FtYmlhIChlai4gbmF2ZWdhY2nDs24gZW50cmUgcHJveWVjdG9zIG8gdGFyZWFzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICgoc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IHNlY3Rpb24gPT09ICd0YXNrJykgJiYgcHJvamVjdD8uaWQgIT0gbnVsbCkge1xuICAgICAgc2V0Q2hpcHNQcm9qZWN0U3RhdGUocHJldiA9PiB7XG4gICAgICAgIGlmIChwcmV2Py5wcm9qZWN0SWQgPT09IFN0cmluZyhwcm9qZWN0LmlkKSkgcmV0dXJuIHByZXZcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0LmlkKSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgICAgIGNsaWVudE5hbWU6IHByb2plY3QuY2xpZW50Py5uYW1lID8/ICcnLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIHByb2plY3Q/LmlkLCBwcm9qZWN0Py5uYW1lLCBwcm9qZWN0Py5jbGllbnQ/Lm5hbWVdKVxuXG4gIC8vIFNpbmNyb25pemFyIGNsaWVudCBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXIgKGVqLiBzZWN0aW9uIGNsaWVudCwgZGF0b3MgYXN5bmMpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSB7XG4gICAgICBzZXRDbGllbnRTdGF0ZShpbml0aWFsQ2xpZW50ID8/IG51bGwpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgaW5pdGlhbENsaWVudF0pXG5cbiAgLy8gU2luY3Jvbml6YXIgdGFzayBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXJcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSB7XG4gICAgICBzZXRUYXNrU3RhdGUoaW5pdGlhbFRhc2sgPz8gbnVsbClcbiAgICB9XG4gIH0sIFtzZWN0aW9uLCBpbml0aWFsVGFza10pXG5cbiAgLy8gU2luY3Jvbml6YXIgZW50aXR5VmFsdWVzIGN1YW5kbyBlbnRpdHkgY2FtYmllIChlai4gbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbnRpdHkgIT0gbnVsbCkge1xuICAgICAgc2V0RW50aXR5VmFsdWVzKHtcbiAgICAgICAgcHJvamVjdElkOiBlbnRpdHkucHJvamVjdElkID8/IG51bGwsXG4gICAgICAgIGNsaWVudElkOiBlbnRpdHkuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbZW50aXR5Py5wcm9qZWN0SWQsIGVudGl0eT8uY2xpZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0Jykgc2V0T3BlblNlY3Rpb24oJ3Byb2plY3QnKVxuICAgIGVsc2UgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSBzZXRPcGVuU2VjdGlvbignY2xpZW50JylcbiAgICBlbHNlIHNldE9wZW5TZWN0aW9uKCdoZWFkZXInKVxuICB9LCBbc2VjdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCByZXNldEhpdGxBcHByb3ZhbE1vZGUgPSAoKSA9PiBzZXRIaXRsQXBwcm92YWxNb2RlKCdmdWxsX2FjY2VzcycpXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCByZXNldEhpdGxBcHByb3ZhbE1vZGUpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgcmVzZXRIaXRsQXBwcm92YWxNb2RlKVxuICB9LCBbXSlcblxuICBjb25zdCByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uZmlndXJlU2V0dGluZ3NJdGVtcy5jdXJyZW50ID0gY29uZmlndXJlU2V0dGluZ3NJdGVtcy5jdXJyZW50Py5tYXAoaXRlbSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGNoZWNrZWQ6ICFpdGVtLmhpZGRlbixcbiAgICB9KSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0QWdlbnQgPSB1c2VDYWxsYmFjaygobmV3QWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnQobmV3QWdlbnQpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsZWFyQWdlbnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnQobnVsbClcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9nZ2xlV2ViU2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzV2ViU2VhcmNoQWN0aXZlKHByZXYgPT4gIXByZXYpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHRvZ2dsZURlZXBTZWFyY2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNEZWVwU2VhcmNoQWN0aXZlKHByZXYgPT4gIXByZXYpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNldENoaXBzUHJvamVjdCA9IHVzZUNhbGxiYWNrKChuZXdDaGlwc1Byb2plY3Q6IENoaXBzUHJvamVjdCB8IG51bGwpID0+IHtcbiAgICBzZXRDaGlwc1Byb2plY3RTdGF0ZShuZXdDaGlwc1Byb2plY3QpXG4gIH0sIFtdKVxuXG4gIC8vIFBpbiBkZXJpdmFkbyAoUkZDIMKnMTIuMik6IGxhIGVudGlkYWQgbcOhcyBlc3BlY8OtZmljYSBhY3RpdmEgKHRhcmVhID4gcHJveWVjdG8gPiBjbGllbnRlKSxcbiAgLy8gY29uIHN1IHNjb3BlIGhhY2lhIGFycmliYSBlbiBgcGFyZW50c2AuIE1vbm8gaG95OyBhcnJheS1yZWFkeSBwYXJhIGNyb3NzLWVudGl0eS5cbiAgY29uc3QgcGlubmVkQ29udGV4dCA9IHVzZU1lbW88UGlubmVkQ29udGV4dCB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAodGFzaz8uaWQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ3Rhc2snLFxuICAgICAgICBpZDogdGFzay5pZCxcbiAgICAgICAgbmFtZTogdGFzay5uYW1lLFxuICAgICAgICBwYXJlbnRzOiB7XG4gICAgICAgICAgLi4uKHRhc2suY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQ6IHRhc2suY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4odGFzay5wcm9qZWN0SWQgIT0gbnVsbCA/IHsgcHJvamVjdElkOiB0YXNrLnByb2plY3RJZCB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgaWQ6IGNoaXBzUHJvamVjdC5wcm9qZWN0SWQsXG4gICAgICAgIG5hbWU6IGNoaXBzUHJvamVjdC5wcm9qZWN0TmFtZSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb2plY3Q/LmlkICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgaWQ6IHByb2plY3QuaWQsXG4gICAgICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgLi4uKHByb2plY3QuY2xpZW50SWQgIT0gbnVsbCA/IHsgcGFyZW50czogeyBjbGllbnRJZDogcHJvamVjdC5jbGllbnRJZCB9IH0gOiB7fSksXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjbGllbnQ/LmlkICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdjbGllbnQnLCBpZDogY2xpZW50LmlkLCBuYW1lOiBjbGllbnQubmFtZSB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH0sIFtcbiAgICB0YXNrPy5pZCxcbiAgICB0YXNrPy5uYW1lLFxuICAgIHRhc2s/LmNsaWVudElkLFxuICAgIHRhc2s/LnByb2plY3RJZCxcbiAgICBjaGlwc1Byb2plY3QsXG4gICAgcHJvamVjdD8uaWQsXG4gICAgcHJvamVjdD8ubmFtZSxcbiAgICBwcm9qZWN0Py5jbGllbnRJZCxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZW50aXR5VmFsdWVzLFxuICAgICAgc2VjdGlvbjogb3BlblNlY3Rpb24sXG4gICAgICBhZ2VudCxcbiAgICAgIHNlbGVjdEFnZW50LFxuICAgICAgY2xlYXJBZ2VudCxcbiAgICAgIGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMsXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MsXG4gICAgICBzZXRFbnRpdHlWYWx1ZXMsXG4gICAgICBwcm9qZWN0LFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIGNsaWVudCxcbiAgICAgIHNldENsaWVudCxcbiAgICAgIHRhc2ssXG4gICAgICBzZXRUYXNrLFxuICAgICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVEZWVwU2VhcmNoLFxuICAgICAgaGl0bEFwcHJvdmFsTW9kZSxcbiAgICAgIHNldEhpdGxBcHByb3ZhbE1vZGUsXG4gICAgICBoYXNNdWx0aUFnZW50cyxcbiAgICAgIGNoaXBzUHJvamVjdCxcbiAgICAgIHNldENoaXBzUHJvamVjdCxcbiAgICAgIHBpbm5lZENvbnRleHQsXG4gICAgfSksXG4gICAgW1xuICAgICAgb3BlblNlY3Rpb24sXG4gICAgICBlbnRpdHlWYWx1ZXM/LnByb2plY3RJZCxcbiAgICAgIGVudGl0eVZhbHVlcz8uY2xpZW50SWQsXG4gICAgICBhZ2VudCxcbiAgICAgIHNlbGVjdEFnZW50LFxuICAgICAgY2xlYXJBZ2VudCxcbiAgICAgIHNldEVudGl0eVZhbHVlcyxcbiAgICAgIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyxcbiAgICAgIHByb2plY3Q/LmlkLFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIGNsaWVudD8uaWQsXG4gICAgICBzZXRDbGllbnQsXG4gICAgICB0YXNrPy5pZCxcbiAgICAgIHNldFRhc2ssXG4gICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICAgIHRvZ2dsZURlZXBTZWFyY2gsXG4gICAgICBoaXRsQXBwcm92YWxNb2RlLFxuICAgICAgc2V0SGl0bEFwcHJvdmFsTW9kZSxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgICAgcGlubmVkQ29udGV4dCxcbiAgICBdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQsXG4gICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBR3pFLFNBQVNDLFFBQVEsUUFBUSxxQkFBcUI7QUFDOUMsU0FBU0MsMkJBQTJCLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLE9BQU8sUUFBUSxxQkFBcUI7QUFHN0MsU0FBU0MsZUFBZSxRQUFRLFFBQVE7QUFvQnhDLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBQUMsSUFBQSxFQVNIO0VBQUEsSUFBQUMsZ0JBQUE7RUFBQSxJQVIvQkMsT0FBTyxHQUFBRixJQUFBLENBQVBFLE9BQU87SUFDUEMsTUFBTSxHQUFBSCxJQUFBLENBQU5HLE1BQU07SUFDTkMsT0FBTyxHQUFBSixJQUFBLENBQVBJLE9BQU87SUFDUEMsVUFBVSxHQUFBTCxJQUFBLENBQVZLLFVBQVU7SUFBQUMsV0FBQSxHQUFBTixJQUFBLENBQ1ZPLE1BQU07SUFBRUMsYUFBYSxHQUFBRixXQUFBLGNBQUcsSUFBSSxHQUFBQSxXQUFBO0lBQ2pCRyxhQUFhLEdBQUFULElBQUEsQ0FBeEJVLFNBQVM7SUFBQUMsU0FBQSxHQUFBWCxJQUFBLENBQ1RZLElBQUk7SUFBRUMsV0FBVyxHQUFBRixTQUFBLGNBQUcsSUFBSSxHQUFBQSxTQUFBO0lBQ3hCRyxjQUFjLEdBQUFkLElBQUEsQ0FBZGMsY0FBYztFQUVkLElBQU1DLElBQUksR0FBR2xCLE9BQU8sQ0FBQyxDQUFDO0VBQ3RCLElBQU1tQixDQUFDLEdBQUdsQixlQUFlLENBQUNILFFBQVEsQ0FBQ3NCLE1BQU0sQ0FBQztFQUMxQyxJ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
@@ -0,0 +1,84 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ import { useCallback, useEffect, useState } from 'react';
5
+ import { getRecentContexts } from '../services/maia/RecentContexts';
6
+ export var useRecentContexts = function useRecentContexts() {
7
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
8
+ _ref$enabled = _ref.enabled,
9
+ enabled = _ref$enabled === void 0 ? true : _ref$enabled,
10
+ _ref$limit = _ref.limit,
11
+ limit = _ref$limit === void 0 ? 3 : _ref$limit;
12
+ var _useState = useState([]),
13
+ _useState2 = _slicedToArray(_useState, 2),
14
+ contexts = _useState2[0],
15
+ setContexts = _useState2[1];
16
+ var _useState3 = useState(false),
17
+ _useState4 = _slicedToArray(_useState3, 2),
18
+ loading = _useState4[0],
19
+ setLoading = _useState4[1];
20
+ var _useState5 = useState(null),
21
+ _useState6 = _slicedToArray(_useState5, 2),
22
+ error = _useState6[0],
23
+ setError = _useState6[1];
24
+ var _useState7 = useState(false),
25
+ _useState8 = _slicedToArray(_useState7, 2),
26
+ loaded = _useState8[0],
27
+ setLoaded = _useState8[1];
28
+ var fetchRecentContexts = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
29
+ var data, message, _t;
30
+ return _regeneratorRuntime.wrap(function (_context) {
31
+ while (1) switch (_context.prev = _context.next) {
32
+ case 0:
33
+ if (enabled) {
34
+ _context.next = 1;
35
+ break;
36
+ }
37
+ setContexts([]);
38
+ setLoading(false);
39
+ setError(null);
40
+ setLoaded(false);
41
+ return _context.abrupt("return");
42
+ case 1:
43
+ setLoading(true);
44
+ setError(null);
45
+ _context.prev = 2;
46
+ _context.next = 3;
47
+ return getRecentContexts({
48
+ limit: limit
49
+ });
50
+ case 3:
51
+ data = _context.sent;
52
+ setContexts(data);
53
+ _context.next = 5;
54
+ break;
55
+ case 4:
56
+ _context.prev = 4;
57
+ _t = _context["catch"](2);
58
+ message = _t instanceof Error ? _t.message : 'An unknown error occurred';
59
+ setError(message);
60
+ setContexts([]);
61
+ console.error('Error fetching recent contexts:', _t);
62
+ case 5:
63
+ _context.prev = 5;
64
+ setLoading(false);
65
+ setLoaded(true);
66
+ return _context.finish(5);
67
+ case 6:
68
+ case "end":
69
+ return _context.stop();
70
+ }
71
+ }, _callee, null, [[2, 4, 5, 6]]);
72
+ })), [enabled, limit]);
73
+ useEffect(function () {
74
+ fetchRecentContexts();
75
+ }, [fetchRecentContexts]);
76
+ return {
77
+ contexts: contexts,
78
+ loading: loading,
79
+ loaded: loaded,
80
+ error: error,
81
+ fetchRecentContexts: fetchRecentContexts
82
+ };
83
+ };
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiZ2V0UmVjZW50Q29udGV4dHMiLCJ1c2VSZWNlbnRDb250ZXh0cyIsIl9yZWYiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfcmVmJGVuYWJsZWQiLCJlbmFibGVkIiwiX3JlZiRsaW1pdCIsImxpbWl0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY29udGV4dHMiLCJzZXRDb250ZXh0cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxvYWRlZCIsInNldExvYWRlZCIsImZldGNoUmVjZW50Q29udGV4dHMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImRhdGEiLCJtZXNzYWdlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInNlbnQiLCJFcnJvciIsImNvbnNvbGUiLCJmaW5pc2giLCJzdG9wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVJlY2VudENvbnRleHRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBnZXRSZWNlbnRDb250ZXh0cywgdHlwZSBSZWNlbnRDb250ZXh0SXRlbSB9IGZyb20gJy4uL3NlcnZpY2VzL21haWEvUmVjZW50Q29udGV4dHMnXG5cbnR5cGUgVXNlUmVjZW50Q29udGV4dHNPcHRpb25zID0ge1xuICBlbmFibGVkPzogYm9vbGVhblxuICBsaW1pdD86IG51bWJlclxufVxuXG5leHBvcnQgY29uc3QgdXNlUmVjZW50Q29udGV4dHMgPSAoeyBlbmFibGVkID0gdHJ1ZSwgbGltaXQgPSAzIH06IFVzZVJlY2VudENvbnRleHRzT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IFtjb250ZXh0cywgc2V0Q29udGV4dHNdID0gdXNlU3RhdGU8UmVjZW50Q29udGV4dEl0ZW1bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBmZXRjaFJlY2VudENvbnRleHRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgc2V0Q29udGV4dHMoW10pXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIHNldExvYWRlZChmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihudWxsKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0UmVjZW50Q29udGV4dHMoeyBsaW1pdCB9KVxuICAgICAgc2V0Q29udGV4dHMoZGF0YSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnXG4gICAgICBzZXRFcnJvcihtZXNzYWdlKVxuICAgICAgc2V0Q29udGV4dHMoW10pXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyByZWNlbnQgY29udGV4dHM6JywgZXJyKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0TG9hZGVkKHRydWUpXG4gICAgfVxuICB9LCBbZW5hYmxlZCwgbGltaXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hSZWNlbnRDb250ZXh0cygpXG4gIH0sIFtmZXRjaFJlY2VudENvbnRleHRzXSlcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHRzLFxuICAgIGxvYWRpbmcsXG4gICAgbG9hZGVkLFxuICAgIGVycm9yLFxuICAgIGZldGNoUmVjZW50Q29udGV4dHMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3hELFNBQVNDLGlCQUFpQixRQUFnQyxpQ0FBaUM7QUFPM0YsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQXFFO0VBQUEsSUFBQUMsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBUCxDQUFDLENBQUM7SUFBQUcsWUFBQSxHQUFBSixJQUFBLENBQTFESyxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsWUFBQSxjQUFHLElBQUksR0FBQUEsWUFBQTtJQUFBRSxVQUFBLEdBQUFOLElBQUEsQ0FBRU8sS0FBSztJQUFMQSxLQUFLLEdBQUFELFVBQUEsY0FBRyxDQUFDLEdBQUFBLFVBQUE7RUFDM0QsSUFBQUUsU0FBQSxHQUFnQ1gsUUFBUSxDQUFzQixFQUFFLENBQUM7SUFBQVksVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBMURHLFFBQVEsR0FBQUYsVUFBQTtJQUFFRyxXQUFXLEdBQUFILFVBQUE7RUFDNUIsSUFBQUksVUFBQSxHQUE4QmhCLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQWlCLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBO0VBQzFCLElBQUFHLFVBQUEsR0FBMEJwQixRQUFR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