@projectcor/maia-components 2.11.65-8 → 2.11.65

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 (44) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +10 -16
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +11 -14
  3. package/lib/components/atoms/Chip/Chip.js +15 -49
  4. package/lib/components/atoms/Chip/styles.js +3 -7
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +6 -38
  6. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +13 -21
  7. package/lib/components/atoms/MAIAInput/MAIAInput.js +42 -207
  8. package/lib/components/atoms/MAIAInput/styles.js +24 -64
  9. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +4 -6
  10. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -13
  11. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +9 -15
  12. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +12 -13
  13. package/lib/components/molecules/ChatFooter/ChatFooter.js +21 -105
  14. package/lib/components/molecules/ChatFooter/styles.js +2 -11
  15. package/lib/components/molecules/Sidebar/Sidebar.js +5 -9
  16. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
  17. package/lib/context/global-context.js +1 -8
  18. package/lib/dev/DevContextMentionInput.js +1 -3
  19. package/lib/hooks/useChatManager/useChatManager.js +78 -274
  20. package/lib/hooks/useChatMessages/useChatMessages.js +1 -14
  21. package/lib/hooks/useEntitySearch.js +129 -74
  22. package/lib/hooks/useMentionAllowedTypes.js +1 -11
  23. package/lib/hooks/useMentionPopover.js +2 -3
  24. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  25. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +10 -22
  26. package/lib/hooks/useProjectSearch.js +28 -4
  27. package/lib/hooks/useProjectSummaryConfig.js +18 -103
  28. package/lib/hooks/useRecentClientsSearch.js +34 -4
  29. package/lib/lang/br/index.js +1 -15
  30. package/lib/lang/en/index.js +1 -15
  31. package/lib/lang/es/index.js +1 -15
  32. package/lib/lang/fr/index.js +1 -15
  33. package/lib/services/maia/Agents/getAgents.js +91 -68
  34. package/lib/services/maia/Chats/getChatMessages.js +3 -11
  35. package/lib/services/maia/Chats/getChatsByUserId.js +2 -10
  36. package/lib/services/maia/Orchestrator/orchestrator.js +9 -27
  37. package/lib/services/utils/mapChatMessages.js +8 -18
  38. package/lib/services/utils/validateIsMaia.js +2 -2
  39. package/lib/types/Chat.js +1 -1
  40. package/lib/types/agent.js +1 -1
  41. package/lib/utils/hitlAnalytics.js +3 -3
  42. package/package.json +1 -1
  43. package/lib/hooks/useContextPinPopover.js +0 -235
  44. package/lib/types/Hitl.js +0 -2
@@ -8,7 +8,6 @@ import { buildConfigureSettingsItems } from '../constants/permissions';
8
8
  import { useUser } from '../context/cor-user';
9
9
  import { useTWithSection } from './useT';
10
10
  export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
11
- var _project$client3;
12
11
  var section = _ref.section,
13
12
  entity = _ref.entity,
14
13
  project = _ref.project,
@@ -37,59 +36,30 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
37
36
  _useState8 = _slicedToArray(_useState7, 2),
38
37
  isDeepSearchActive = _useState8[0],
39
38
  setIsDeepSearchActive = _useState8[1];
40
- var _useState9 = useState('full_access'),
41
- _useState0 = _slicedToArray(_useState9, 2),
42
- hitlApprovalMode = _useState0[0],
43
- setHitlApprovalMode = _useState0[1];
44
- var _useState1 = useState(entity || {
39
+ var _useState9 = useState(entity || {
45
40
  projectId: null,
46
41
  clientId: null
47
42
  }),
43
+ _useState0 = _slicedToArray(_useState9, 2),
44
+ entityValues = _useState0[0],
45
+ setEntityValues = _useState0[1];
46
+ var _useState1 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
48
47
  _useState10 = _slicedToArray(_useState1, 2),
49
- entityValues = _useState10[0],
50
- setEntityValues = _useState10[1];
51
- var _useState11 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
52
- _useState12 = _slicedToArray(_useState11, 2),
53
- client = _useState12[0],
54
- setClientState = _useState12[1];
48
+ client = _useState10[0],
49
+ setClientState = _useState10[1];
55
50
  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];
51
+ var _useState11 = useState(initialTask !== null && initialTask !== void 0 ? initialTask : null),
52
+ _useState12 = _slicedToArray(_useState11, 2),
53
+ task = _useState12[0],
54
+ setTaskState = _useState12[1];
60
55
  var setTask = useCallback(function (newTask) {
61
56
  return setTaskState(newTask);
62
57
  }, []);
63
58
  var configureSettingsItems = useRef(buildConfigureSettingsItems(user, t));
64
- var _useState15 = useState(function () {
65
- if ((section === 'project' || section === 'task') && (project === null || project === void 0 ? void 0 : project.id) != null) {
66
- var _project$client$name, _project$client;
67
- return {
68
- projectId: String(project.id),
69
- projectName: project.name,
70
- clientName: (_project$client$name = (_project$client = project.client) === null || _project$client === void 0 ? void 0 : _project$client.name) !== null && _project$client$name !== void 0 ? _project$client$name : ''
71
- };
72
- }
73
- return null;
74
- }),
75
- _useState16 = _slicedToArray(_useState15, 2),
76
- chipsProject = _useState16[0],
77
- setChipsProjectState = _useState16[1];
78
-
79
- // Sincronizar chipsProject cuando el project prop cambia (ej. navegación entre proyectos o tareas)
80
- useEffect(function () {
81
- if ((section === 'project' || section === 'task') && (project === null || project === void 0 ? void 0 : project.id) != null) {
82
- setChipsProjectState(function (prev) {
83
- var _project$client$name2, _project$client2;
84
- if ((prev === null || prev === void 0 ? void 0 : prev.projectId) === String(project.id)) return prev;
85
- return {
86
- projectId: String(project.id),
87
- projectName: project.name,
88
- clientName: (_project$client$name2 = (_project$client2 = project.client) === null || _project$client2 === void 0 ? void 0 : _project$client2.name) !== null && _project$client$name2 !== void 0 ? _project$client$name2 : ''
89
- };
90
- });
91
- }
92
- }, [section, project === null || project === void 0 ? void 0 : project.id, project === null || project === void 0 ? void 0 : project.name, project === null || project === void 0 || (_project$client3 = project.client) === null || _project$client3 === void 0 ? void 0 : _project$client3.name]);
59
+ var _useState13 = useState(null),
60
+ _useState14 = _slicedToArray(_useState13, 2),
61
+ chipsProject = _useState14[0],
62
+ setChipsProjectState = _useState14[1];
93
63
 
94
64
  // Sincronizar client cuando la prop llegue después del primer render (ej. section client, datos async)
95
65
  useEffect(function () {
@@ -118,15 +88,6 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
118
88
  useEffect(function () {
119
89
  if (section === 'project') setOpenSection('project');else if (section === 'client') setOpenSection('client');else setOpenSection('header');
120
90
  }, [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
- }, []);
130
91
  var restoreConfigureSettings = useCallback(function () {
131
92
  var _configureSettingsIte;
132
93
  configureSettingsItems.current = (_configureSettingsIte = configureSettingsItems.current) === null || _configureSettingsIte === void 0 ? void 0 : _configureSettingsIte.map(function (item) {
@@ -154,49 +115,6 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
154
115
  var setChipsProject = useCallback(function (newChipsProject) {
155
116
  setChipsProjectState(newChipsProject);
156
117
  }, []);
157
-
158
- // Pin derivado (RFC §12.2): la entidad más específica activa (tarea > proyecto > cliente),
159
- // con su scope hacia arriba en `parents`. Mono hoy; array-ready para cross-entity.
160
- var pinnedContext = useMemo(function () {
161
- if ((task === null || task === void 0 ? void 0 : task.id) != null) {
162
- return {
163
- type: 'task',
164
- id: task.id,
165
- name: task.name,
166
- parents: _objectSpread(_objectSpread({}, task.clientId != null ? {
167
- clientId: task.clientId
168
- } : {}), task.projectId != null ? {
169
- projectId: task.projectId
170
- } : {})
171
- };
172
- }
173
- if (chipsProject !== null && chipsProject !== void 0 && chipsProject.projectId) {
174
- return {
175
- type: 'project',
176
- id: chipsProject.projectId,
177
- name: chipsProject.projectName
178
- };
179
- }
180
- if ((project === null || project === void 0 ? void 0 : project.id) != null) {
181
- return _objectSpread({
182
- type: 'project',
183
- id: project.id,
184
- name: project.name
185
- }, project.clientId != null ? {
186
- parents: {
187
- clientId: project.clientId
188
- }
189
- } : {});
190
- }
191
- if ((client === null || client === void 0 ? void 0 : client.id) != null) {
192
- return {
193
- type: 'client',
194
- id: client.id,
195
- name: client.name
196
- };
197
- }
198
- return null;
199
- }, [task === null || task === void 0 ? void 0 : task.id, task === null || task === void 0 ? void 0 : task.name, task === null || task === void 0 ? void 0 : task.clientId, task === null || task === void 0 ? void 0 : task.projectId, chipsProject, project === null || project === void 0 ? void 0 : project.id, project === null || project === void 0 ? void 0 : project.name, project === null || project === void 0 ? void 0 : project.clientId, client === null || client === void 0 ? void 0 : client.id, client === null || client === void 0 ? void 0 : client.name]);
200
118
  var context = useMemo(function () {
201
119
  return {
202
120
  entityValues: entityValues,
@@ -217,17 +135,14 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
217
135
  toggleWebSearch: toggleWebSearch,
218
136
  isDeepSearchActive: isDeepSearchActive,
219
137
  toggleDeepSearch: toggleDeepSearch,
220
- hitlApprovalMode: hitlApprovalMode,
221
- setHitlApprovalMode: setHitlApprovalMode,
222
138
  hasMultiAgents: hasMultiAgents,
223
139
  chipsProject: chipsProject,
224
- setChipsProject: setChipsProject,
225
- pinnedContext: pinnedContext
140
+ setChipsProject: setChipsProject
226
141
  };
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]);
142
+ }, [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]);
228
143
  return {
229
144
  context: context,
230
145
  restoreConfigureSettings: restoreConfigureSettings
231
146
  };
232
147
  };
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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
148
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwiYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwidXNlVXNlciIsInVzZVRXaXRoU2VjdGlvbiIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsInNlY3Rpb24iLCJlbnRpdHkiLCJwcm9qZWN0Iiwic2V0UHJvamVjdCIsIl9yZWYkY2xpZW50IiwiY2xpZW50IiwiaW5pdGlhbENsaWVudCIsInNldENsaWVudFByb3AiLCJzZXRDbGllbnQiLCJfcmVmJHRhc2siLCJ0YXNrIiwiaW5pdGlhbFRhc2siLCJoYXNNdWx0aUFnZW50cyIsInVzZXIiLCJ0IiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWdlbnQiLCJzZXRBZ2VudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib3BlblNlY3Rpb24iLCJzZXRPcGVuU2VjdGlvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJzZXRJc1dlYlNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwic2V0SXNEZWVwU2VhcmNoQWN0aXZlIiwiX3VzZVN0YXRlOSIsInByb2plY3RJZCIsImNsaWVudElkIiwiX3VzZVN0YXRlMCIsImVudGl0eVZhbHVlcyIsInNldEVudGl0eVZhbHVlcyIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNldENsaWVudFN0YXRlIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInNldFRhc2tTdGF0ZSIsInNldFRhc2siLCJuZXdUYXNrIiwiY29uZmlndXJlU2V0dGluZ3NJdGVtcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjaGlwc1Byb2plY3QiLCJzZXRDaGlwc1Byb2plY3RTdGF0ZSIsIl9lbnRpdHkkcHJvamVjdElkIiwiX2VudGl0eSRjbGllbnRJZCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsIl9jb25maWd1cmVTZXR0aW5nc0l0ZSIsImN1cnJlbnQiLCJtYXAiLCJpdGVtIiwiX29iamVjdFNwcmVhZCIsImNoZWNrZWQiLCJoaWRkZW4iLCJzZWxlY3RBZ2VudCIsIm5ld0FnZW50IiwiY2xlYXJBZ2VudCIsInRvZ2dsZVdlYlNlYXJjaCIsInByZXYiLCJ0b2dnbGVEZWVwU2VhcmNoIiwic2V0Q2hpcHNQcm9qZWN0IiwibmV3Q2hpcHNQcm9qZWN0IiwiY29udGV4dCIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgQ2hpcHNQcm9qZWN0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IGJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyB9IGZyb20gJy4uL2NvbnN0YW50cy9wZXJtaXNzaW9ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcblxuaW1wb3J0IHsgdXNlVFdpdGhTZWN0aW9uIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi90eXBlcy9DbGllbnQnXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdHlwZXMvVGFzaydcblxudHlwZSBQcm9qZWN0U3VtbWFyeUNvbmZpZ1Byb3BzID0ge1xuICBzZWN0aW9uOiAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snXG4gIGVudGl0eT86IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9IHwgbnVsbFxuICBwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbFxuICBzZXRQcm9qZWN0OiAocHJvamVjdDogUHJvamVjdCB8IG51bGwpID0+IHZvaWRcbiAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICBzZXRDbGllbnQ/OiAoY2xpZW50OiBDbGllbnQgfCBudWxsKSA9PiB2b2lkXG4gIHRhc2s/OiBUYXNrIHwgbnVsbFxuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnID0gKHtcbiAgc2VjdGlvbixcbiAgZW50aXR5LFxuICBwcm9qZWN0LFxuICBzZXRQcm9qZWN0LFxuICBjbGllbnQ6IGluaXRpYWxDbGllbnQgPSBudWxsLFxuICBzZXRDbGllbnQ6IHNldENsaWVudFByb3AsXG4gIHRhc2s6IGluaXRpYWxUYXNrID0gbnVsbCxcbiAgaGFzTXVsdGlBZ2VudHMsXG59OiBQcm9qZWN0U3VtbWFyeUNvbmZpZ1Byb3BzKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgdCA9IHVzZVRXaXRoU2VjdGlvbihTRUNUSU9OUy5jaGF0QUkpXG4gIGNvbnN0IFthZ2VudCwgc2V0QWdlbnRdID0gdXNlU3RhdGU8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbb3BlblNlY3Rpb24sIHNldE9wZW5TZWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc1dlYlNlYXJjaEFjdGl2ZSwgc2V0SXNXZWJTZWFyY2hBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtpc0RlZXBTZWFyY2hBY3RpdmUsIHNldElzRGVlcFNlYXJjaEFjdGl2ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2VudGl0eVZhbHVlcywgc2V0RW50aXR5VmFsdWVzXSA9IHVzZVN0YXRlPHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9PihlbnRpdHkgfHwgeyBwcm9qZWN0SWQ6IG51bGwsIGNsaWVudElkOiBudWxsIH0pXG4gIGNvbnN0IFtjbGllbnQsIHNldENsaWVudFN0YXRlXSA9IHVzZVN0YXRlPENsaWVudCB8IG51bGw+KGluaXRpYWxDbGllbnQgPz8gbnVsbClcblxuICBjb25zdCBzZXRDbGllbnQgPSBzZXRDbGllbnRQcm9wID8/IHNldENsaWVudFN0YXRlXG5cbiAgY29uc3QgW3Rhc2ssIHNldFRhc2tTdGF0ZV0gPSB1c2VTdGF0ZTxUYXNrIHwgbnVsbD4oaW5pdGlhbFRhc2sgPz8gbnVsbClcbiAgY29uc3Qgc2V0VGFzayA9IHVzZUNhbGxiYWNrKChuZXdUYXNrOiBUYXNrIHwgbnVsbCkgPT4gc2V0VGFza1N0YXRlKG5ld1Rhc2spLCBbXSlcblxuICBjb25zdCBjb25maWd1cmVTZXR0aW5nc0l0ZW1zID0gdXNlUmVmKGJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyh1c2VyLCB0KSlcbiAgY29uc3QgW2NoaXBzUHJvamVjdCwgc2V0Q2hpcHNQcm9qZWN0U3RhdGVdID0gdXNlU3RhdGU8Q2hpcHNQcm9qZWN0IHwgbnVsbD4obnVsbClcblxuICAvLyBTaW5jcm9uaXphciBjbGllbnQgY3VhbmRvIGxhIHByb3AgbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyIChlai4gc2VjdGlvbiBjbGllbnQsIGRhdG9zIGFzeW5jKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWN0aW9uID09PSAnY2xpZW50Jykge1xuICAgICAgc2V0Q2xpZW50U3RhdGUoaW5pdGlhbENsaWVudCA/PyBudWxsKVxuICAgIH1cbiAgfSwgW3NlY3Rpb24sIGluaXRpYWxDbGllbnRdKVxuXG4gIC8vIFNpbmNyb25pemFyIHRhc2sgY3VhbmRvIGxhIHByb3AgbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICd0YXNrJykge1xuICAgICAgc2V0VGFza1N0YXRlKGluaXRpYWxUYXNrID8/IG51bGwpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgaW5pdGlhbFRhc2tdKVxuXG4gIC8vIFNpbmNyb25pemFyIGVudGl0eVZhbHVlcyBjdWFuZG8gZW50aXR5IGNhbWJpZSAoZWouIGxsZWd1ZSBkZXNwdcOpcyBkZWwgcHJpbWVyIHJlbmRlcilcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW50aXR5ICE9IG51bGwpIHtcbiAgICAgIHNldEVudGl0eVZhbHVlcyh7XG4gICAgICAgIHByb2plY3RJZDogZW50aXR5LnByb2plY3RJZCA/PyBudWxsLFxuICAgICAgICBjbGllbnRJZDogZW50aXR5LmNsaWVudElkID8/IG51bGwsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2VudGl0eT8ucHJvamVjdElkLCBlbnRpdHk/LmNsaWVudElkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcpIHNldE9wZW5TZWN0aW9uKCdwcm9qZWN0JylcbiAgICBlbHNlIGlmIChzZWN0aW9uID09PSAnY2xpZW50Jykgc2V0T3BlblNlY3Rpb24oJ2NsaWVudCcpXG4gICAgZWxzZSBzZXRPcGVuU2VjdGlvbignaGVhZGVyJylcbiAgfSwgW3NlY3Rpb25dKVxuXG4gIGNvbnN0IHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLmN1cnJlbnQgPSBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLmN1cnJlbnQ/Lm1hcChpdGVtID0+ICh7XG4gICAgICAuLi5pdGVtLFxuICAgICAgY2hlY2tlZDogIWl0ZW0uaGlkZGVuLFxuICAgIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCBzZWxlY3RBZ2VudCA9IHVzZUNhbGxiYWNrKChuZXdBZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRBZ2VudChuZXdBZ2VudClcbiAgfSwgW10pXG5cbiAgY29uc3QgY2xlYXJBZ2VudCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRBZ2VudChudWxsKVxuICB9LCBbXSlcblxuICBjb25zdCB0b2dnbGVXZWJTZWFyY2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNXZWJTZWFyY2hBY3RpdmUocHJldiA9PiAhcHJldilcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9nZ2xlRGVlcFNlYXJjaCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc0RlZXBTZWFyY2hBY3RpdmUocHJldiA9PiAhcHJldilcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2V0Q2hpcHNQcm9qZWN0ID0gdXNlQ2FsbGJhY2soKG5ld0NoaXBzUHJvamVjdDogQ2hpcHNQcm9qZWN0IHwgbnVsbCkgPT4ge1xuICAgIHNldENoaXBzUHJvamVjdFN0YXRlKG5ld0NoaXBzUHJvamVjdClcbiAgfSwgW10pXG5cbiAgY29uc3QgY29udGV4dCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGVudGl0eVZhbHVlcyxcbiAgICAgIHNlY3Rpb246IG9wZW5TZWN0aW9uLFxuICAgICAgYWdlbnQsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGNsZWFyQWdlbnQsXG4gICAgICBjb25maWd1cmVTZXR0aW5nc0l0ZW1zLFxuICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICAgICAgc2V0RW50aXR5VmFsdWVzLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQsXG4gICAgICBzZXRDbGllbnQsXG4gICAgICB0YXNrLFxuICAgICAgc2V0VGFzayxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIH0pLFxuICAgIFtcbiAgICAgIG9wZW5TZWN0aW9uLFxuICAgICAgZW50aXR5VmFsdWVzPy5wcm9qZWN0SWQsXG4gICAgICBlbnRpdHlWYWx1ZXM/LmNsaWVudElkLFxuICAgICAgYWdlbnQsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGNsZWFyQWdlbnQsXG4gICAgICBzZXRFbnRpdHlWYWx1ZXMsXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MsXG4gICAgICBwcm9qZWN0Py5pZCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQ/LmlkLFxuICAgICAgc2V0Q2xpZW50LFxuICAgICAgdGFzaz8uaWQsXG4gICAgICBzZXRUYXNrLFxuICAgICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVEZWVwU2VhcmNoLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgICBjaGlwc1Byb2plY3QsXG4gICAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgXVxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0LFxuICAgIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUd6RSxTQUFTQyxRQUFRLFFBQVEscUJBQXFCO0FBQzlDLFNBQVNDLDJCQUEyQixRQUFRLDBCQUEwQjtBQUN0RSxTQUFTQyxPQUFPLFFBQVEscUJBQXFC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
@@ -6,6 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  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; }
7
7
  import { useLazyQuery } from '@apollo/client';
8
8
  import { useEffect, useState, useCallback } from 'react';
9
+ import maia from '../services/maia';
9
10
  import { SEARCH_QUERY_DEBOUNCE_MS } from '../constants/config';
10
11
  import { useDebounce } from './useDebounce';
11
12
  import { SEARCH_CLIENTS } from '../services/query';
@@ -93,16 +94,45 @@ export var useRecentClientsSearch = function useRecentClientsSearch() {
93
94
  });
94
95
  };
95
96
  var fetchRecentClientsWithLoading = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
97
+ var data, mapped, _t;
96
98
  return _regeneratorRuntime.wrap(function (_context) {
97
99
  while (1) switch (_context.prev = _context.next) {
98
100
  case 0:
99
- setRecentClientsData([]);
101
+ setLoading(true);
102
+ setError(false);
103
+ setRecentError(false);
104
+ setIsQueryInProgress(true);
105
+ setLoadingRecentClients(true);
106
+ _context.prev = 1;
107
+ _context.next = 2;
108
+ return maia.RecentClients.getRecentClients();
109
+ case 2:
110
+ data = _context.sent;
111
+ mapped = (Array.isArray(data) ? data : []).map(function (c) {
112
+ return _objectSpread({
113
+ id: c.id,
114
+ name: c.name
115
+ }, c.totalProyectos != null && {
116
+ totalProyectos: c.totalProyectos
117
+ });
118
+ });
119
+ setRecentClientsData(mapped);
120
+ _context.next = 4;
121
+ break;
122
+ case 3:
123
+ _context.prev = 3;
124
+ _t = _context["catch"](1);
125
+ setRecentError(true);
126
+ setRecentClientsData(null);
127
+ case 4:
128
+ _context.prev = 4;
100
129
  setLoadingRecentClients(false);
101
- case 1:
130
+ return _context.finish(4);
131
+ case 5:
102
132
  case "end":
103
133
  return _context.stop();
104
134
  }
105
- }, _callee);
135
+ }, _callee, null, [[1, 3, 4, 5]]);
106
136
  })), []);
107
137
  useEffect(function () {
108
138
  if (loadingRecentClients || loadingSearchClients) {
@@ -148,4 +178,4 @@ export var useRecentClientsSearch = function useRecentClientsSearch() {
148
178
  updateSearchValue: updateSearchValue
149
179
  };
150
180
  };
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIiwidXNlRGVib3VuY2UiLCJTRUFSQ0hfQ0xJRU5UUyIsIkNMSUVOVF9TVEFUVVNfQUNUSVZFIiwibWFwcGVyQ2xpZW50c1NlYXJjaCIsInZhbHVlcyIsInNlYXJjaFZhbHVlIiwiX3ZhbHVlcyRtYXAiLCJtYXAiLCJ2YWx1ZSIsImNsaWVudE5hbWUiLCJuYW1lIiwibmFtZUhpZ2hsaWdodCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJ0ZXh0SW5kZXgiLCJpbmRleE9mIiwic3RhcnQiLCJsZW5ndGgiLCJfb2JqZWN0U3ByZWFkIiwiaWQiLCJ0b3RhbFByb3llY3RvcyIsInVzZVJlY2VudENsaWVudHNTZWFyY2giLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjbGllbnRzIiwic2V0Q2xpZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNldFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJpc1F1ZXJ5SW5Qcm9ncmVzcyIsInNldElzUXVlcnlJblByb2dyZXNzIiwiZGVib3VuY2VkU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJyZWNlbnRDbGllbnRzRGF0YSIsInNldFJlY2VudENsaWVudHNEYXRhIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImxvYWRpbmdSZWNlbnRDbGllbnRzIiwic2V0TG9hZGluZ1JlY2VudENsaWVudHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwicmVjZW50RXJyb3IiLCJzZXRSZWNlbnRFcnJvciIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJwYWdlIiwicGVyUGFnZSIsImZpbHRlciIsIl91c2VMYXp5UXVlcnkyIiwiZmV0Y2hTZWFyY2hDbGllbnRzIiwiX3VzZUxhenlRdWVyeTIkIiwic2VhcmNoRGF0YSIsImRhdGEiLCJsb2FkaW5nU2VhcmNoQ2xpZW50cyIsInNlYXJjaEVycm9yIiwiaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzIiwiY2xpZW50U3RhdHVzSWQiLCJmZXRjaFJlY2VudENsaWVudHNXaXRoTG9hZGluZyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzdG9wIiwiX3NlYXJjaERhdGEkY2xpZW50cyIsInRyaW0iLCJtYXBwZWQiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsIm5ld1NlYXJjaFZhbHVlIiwiZmV0Y2hSZWNlbnRDbGllbnRzIiwicmVjZW50Q2xpZW50c0xvYWRpbmciLCJyZWNlbnRDbGllbnRzRXJyb3IiLCJyZWNlbnRDbGllbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVJlY2VudENsaWVudHNTZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlRGVib3VuY2UnXG5pbXBvcnQgeyBTRUFSQ0hfQ0xJRU5UUyB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5J1xuXG5jb25zdCBDTElFTlRfU1RBVFVTX0FDVElWRSA9IDFcblxuZXhwb3J0IHR5cGUgUmVjZW50Q2xpZW50U2V0dGVyID0ge1xuICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICAvKiogUmFuZ28gZGVsIHTDqXJtaW5vIGJ1c2NhZG8gZGVudHJvIGRlIGBuYW1lYCAoc29sbyByZXN1bHRhZG9zIGRlIGLDunNxdWVkYSkgKi9cbiAgbmFtZUhpZ2hsaWdodD86IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfVxuICB0b3RhbFByb3llY3Rvcz86IG51bWJlclxufVxuXG50eXBlIFF1ZXJ5Q2xpZW50RGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBwZXJQYWdlOiBudW1iZXJcbiAgICBwYWdlOiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U6IG51bWJlclxuICAgIGRhdGE6IEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyB0b3RhbFByb3llY3Rvcz86IG51bWJlciB9PlxuICB9XG59XG5cbmNvbnN0IG1hcHBlckNsaWVudHNTZWFyY2ggPSAoXG4gIHZhbHVlczogQXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHRvdGFsUHJveWVjdG9zPzogbnVtYmVyIH0+LFxuICBzZWFyY2hWYWx1ZT86IHN0cmluZ1xuKTogUmVjZW50Q2xpZW50U2V0dGVyW10gPT4ge1xuICByZXR1cm4gKFxuICAgIHZhbHVlcz8ubWFwKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudE5hbWUgPSB2YWx1ZS5uYW1lIHx8ICcnXG4gICAgICBsZXQgbmFtZUhpZ2hsaWdodDogeyBzdGFydDogbnVtYmVyOyBsZW5ndGg6IG51bWJlciB9IHwgdW5kZWZpbmVkXG4gICAgICBpZiAoc2VhcmNoVmFsdWUgJiYgY2xpZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgIGNvbnN0IHRleHRJbmRleCA9IGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIG5hbWVIaWdobGlnaHQgPSB7IHN0YXJ0OiB0ZXh0SW5kZXgsIGxlbmd0aDogc2VhcmNoVmFsdWUubGVuZ3RoIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB2YWx1ZS5pZCxcbiAgICAgICAgbmFtZTogY2xpZW50TmFtZSxcbiAgICAgICAgLi4uKG5hbWVIaWdobGlnaHQgJiYgeyBuYW1lSGlnaGxpZ2h0IH0pLFxuICAgICAgICB0b3RhbFByb3llY3RvczogdmFsdWUudG90YWxQcm95ZWN0b3MsXG4gICAgICB9XG4gICAgfSkgPz8gW11cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgdXNlUmVjZW50Q2xpZW50c1NlYXJjaCA9ICgpID0+IHtcbiAgY29uc3QgW2NsaWVudHMsIHNldENsaWVudHNdID0gdXNlU3RhdGU8UmVjZW50Q2xpZW50U2V0dGVyW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbaXNRdWVyeUluUHJvZ3Jlc3MsIHNldElzUXVlcnlJblByb2dyZXNzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUylcblxuICBjb25zdCBbcmVjZW50Q2xpZW50c0RhdGEsIHNldFJlY2VudENsaWVudHNEYXRhXSA9IHVzZVN0YXRlPFJlY2VudENsaWVudFNldHRlcltdIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xvYWRpbmdSZWNlbnRDbGllbnRzLCBzZXRMb2FkaW5nUmVjZW50Q2xpZW50c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3JlY2VudEVycm9yLCBzZXRSZWNlbnRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBbZmV0Y2hTZWFyY2hDbGllbnRzLCB7IGRhdGE6IHNlYXJjaERhdGEsIGxvYWRpbmc6IGxvYWRpbmdTZWFyY2hDbGllbnRzLCBlcnJvcjogc2VhcmNoRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxRdWVyeUNsaWVudERhdGE+KFNFQVJDSF9DTElFTlRTLCB7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcjoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgY29uc3QgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB2YWx1ZSA/IHsgbmFtZTogdmFsdWUsIGNsaWVudFN0YXR1c0lkOiBbQ0xJRU5UX1NUQVRVU19BQ1RJVkVdIH0gOiB7fVxuICAgIGZldGNoU2VhcmNoQ2xpZW50cyh7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGZldGNoUmVjZW50Q2xpZW50c1dpdGhMb2FkaW5nID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldFJlY2VudENsaWVudHNEYXRhKFtdKVxuICAgIHNldExvYWRpbmdSZWNlbnRDbGllbnRzKGZhbHNlKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nUmVjZW50Q2xpZW50cyB8fCBsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRFcnJvciB8fCBzZWFyY2hFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtsb2FkaW5nUmVjZW50Q2xpZW50cywgbG9hZGluZ1NlYXJjaENsaWVudHMsIHJlY2VudEVycm9yLCBzZWFyY2hFcnJvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cyAmJiBpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3MoZmFsc2UpXG4gICAgfVxuXG4gICAgaWYgKHNlYXJjaERhdGE/LmNsaWVudHM/LmRhdGEgJiYgZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgY29uc3QgbWFwcGVkID0gbWFwcGVyQ2xpZW50c1NlYXJjaChzZWFyY2hEYXRhLmNsaWVudHMuZGF0YSwgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRDbGllbnRzKG1hcHBlZClcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gICAgaWYgKHJlY2VudENsaWVudHNEYXRhICE9PSBudWxsICYmICFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkgJiYgIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0Q2xpZW50cyhyZWNlbnRDbGllbnRzRGF0YSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtcbiAgICBzZWFyY2hEYXRhLFxuICAgIHJlY2VudENsaWVudHNEYXRhLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGxvYWRpbmdSZWNlbnRDbGllbnRzLFxuICAgIGxvYWRpbmdTZWFyY2hDbGllbnRzLFxuICAgIGlzUXVlcnlJblByb2dyZXNzLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICBjb25zdCB1cGRhdGVTZWFyY2hWYWx1ZSA9IChuZXdTZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VhcmNoVmFsdWUobmV3U2VhcmNoVmFsdWUpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoUmVjZW50Q2xpZW50czogZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0xvYWRpbmc6IGxvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0Vycm9yOiBlcnJvcixcbiAgICByZWNlbnRDbGllbnRzOiBjbGllbnRzLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBRXhELFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBRWxELElBQU1DLG9CQUFvQixHQUFHLENBQUM7QUFvQjlCLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQ3ZCQyxNQUFvRSxFQUNwRUMsV0FBb0IsRUFDSztFQUFBLElBQUFDLFdBQUE7RUFDekIsUUFBQUEsV0FBQSxHQUNFRixNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRUcsR0FBRyxDQUFDLFVBQUFD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
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwibWFpYSIsIlNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyIsInVzZURlYm91bmNlIiwiU0VBUkNIX0NMSUVOVFMiLCJDTElFTlRfU1RBVFVTX0FDVElWRSIsIm1hcHBlckNsaWVudHNTZWFyY2giLCJ2YWx1ZXMiLCJzZWFyY2hWYWx1ZSIsIl92YWx1ZXMkbWFwIiwibWFwIiwidmFsdWUiLCJjbGllbnROYW1lIiwibmFtZSIsIm5hbWVIaWdobGlnaHQiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwiaW5kZXhPZiIsInN0YXJ0IiwibGVuZ3RoIiwiX29iamVjdFNwcmVhZCIsImlkIiwidG90YWxQcm95ZWN0b3MiLCJ1c2VSZWNlbnRDbGllbnRzU2VhcmNoIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaXNRdWVyeUluUHJvZ3Jlc3MiLCJzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwicmVjZW50Q2xpZW50c0RhdGEiLCJzZXRSZWNlbnRDbGllbnRzRGF0YSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJsb2FkaW5nUmVjZW50Q2xpZW50cyIsInNldExvYWRpbmdSZWNlbnRDbGllbnRzIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInJlY2VudEVycm9yIiwic2V0UmVjZW50RXJyb3IiLCJfdXNlTGF6eVF1ZXJ5IiwidmFyaWFibGVzIiwicGFnZSIsInBlclBhZ2UiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsInNlYXJjaERhdGEiLCJkYXRhIiwibG9hZGluZ1NlYXJjaENsaWVudHMiLCJzZWFyY2hFcnJvciIsImhhbmRsZUZldGNoU2VhcmNoQ2xpZW50cyIsImNsaWVudFN0YXR1c0lkIiwiZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmciLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIm1hcHBlZCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJSZWNlbnRDbGllbnRzIiwiZ2V0UmVjZW50Q2xpZW50cyIsInNlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJjIiwiZmluaXNoIiwic3RvcCIsIl9zZWFyY2hEYXRhJGNsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImZldGNoUmVjZW50Q2xpZW50cyIsInJlY2VudENsaWVudHNMb2FkaW5nIiwicmVjZW50Q2xpZW50c0Vycm9yIiwicmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZWNlbnRDbGllbnRzU2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBtYWlhIGZyb20gJy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcblxuY29uc3QgQ0xJRU5UX1NUQVRVU19BQ1RJVkUgPSAxXG5cbmV4cG9ydCB0eXBlIFJlY2VudENsaWVudFNldHRlciA9IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgLyoqIFJhbmdvIGRlbCB0w6lybWlubyBidXNjYWRvIGRlbnRybyBkZSBgbmFtZWAgKHNvbG8gcmVzdWx0YWRvcyBkZSBiw7pzcXVlZGEpICovXG4gIG5hbWVIaWdobGlnaHQ/OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH1cbiAgdG90YWxQcm95ZWN0b3M/OiBudW1iZXJcbn1cblxudHlwZSBRdWVyeUNsaWVudERhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbDogbnVtYmVyXG4gICAgcGVyUGFnZTogbnVtYmVyXG4gICAgcGFnZTogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlOiBudW1iZXJcbiAgICBkYXRhOiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfT5cbiAgfVxufVxuXG5jb25zdCBtYXBwZXJDbGllbnRzU2VhcmNoID0gKFxuICB2YWx1ZXM6IEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyB0b3RhbFByb3llY3Rvcz86IG51bWJlciB9PixcbiAgc2VhcmNoVmFsdWU/OiBzdHJpbmdcbik6IFJlY2VudENsaWVudFNldHRlcltdID0+IHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZXM/Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBjbGllbnROYW1lID0gdmFsdWUubmFtZSB8fCAnJ1xuICAgICAgbGV0IG5hbWVIaWdobGlnaHQ6IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfSB8IHVuZGVmaW5lZFxuICAgICAgaWYgKHNlYXJjaFZhbHVlICYmIGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBjb25zdCB0ZXh0SW5kZXggPSBjbGllbnROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICBuYW1lSGlnaGxpZ2h0ID0geyBzdGFydDogdGV4dEluZGV4LCBsZW5ndGg6IHNlYXJjaFZhbHVlLmxlbmd0aCB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdmFsdWUuaWQsXG4gICAgICAgIG5hbWU6IGNsaWVudE5hbWUsXG4gICAgICAgIC4uLihuYW1lSGlnaGxpZ2h0ICYmIHsgbmFtZUhpZ2hsaWdodCB9KSxcbiAgICAgICAgdG90YWxQcm95ZWN0b3M6IHZhbHVlLnRvdGFsUHJveWVjdG9zLFxuICAgICAgfVxuICAgIH0pID8/IFtdXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVJlY2VudENsaWVudHNTZWFyY2ggPSAoKSA9PiB7XG4gIGNvbnN0IFtjbGllbnRzLCBzZXRDbGllbnRzXSA9IHVzZVN0YXRlPFJlY2VudENsaWVudFNldHRlcltdPihbXSlcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2lzUXVlcnlJblByb2dyZXNzLCBzZXRJc1F1ZXJ5SW5Qcm9ncmVzc10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG5cbiAgY29uc3QgW3JlY2VudENsaWVudHNEYXRhLCBzZXRSZWNlbnRDbGllbnRzRGF0YV0gPSB1c2VTdGF0ZTxSZWNlbnRDbGllbnRTZXR0ZXJbXSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsb2FkaW5nUmVjZW50Q2xpZW50cywgc2V0TG9hZGluZ1JlY2VudENsaWVudHNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtyZWNlbnRFcnJvciwgc2V0UmVjZW50RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW2ZldGNoU2VhcmNoQ2xpZW50cywgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBsb2FkaW5nU2VhcmNoQ2xpZW50cywgZXJyb3I6IHNlYXJjaEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8UXVlcnlDbGllbnREYXRhPihTRUFSQ0hfQ0xJRU5UUywge1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGhhbmRsZUZldGNoU2VhcmNoQ2xpZW50cyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyID0gdmFsdWUgPyB7IG5hbWU6IHZhbHVlLCBjbGllbnRTdGF0dXNJZDogW0NMSUVOVF9TVEFUVVNfQUNUSVZFXSB9IDoge31cbiAgICBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBmZXRjaFJlY2VudENsaWVudHNXaXRoTG9hZGluZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgc2V0UmVjZW50RXJyb3IoZmFsc2UpXG4gICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3ModHJ1ZSlcbiAgICBzZXRMb2FkaW5nUmVjZW50Q2xpZW50cyh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgbWFpYS5SZWNlbnRDbGllbnRzLmdldFJlY2VudENsaWVudHMoKVxuICAgICAgY29uc3QgbWFwcGVkID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pLm1hcChcbiAgICAgICAgKGM6IHsgaWQ6IG51bWJlcjsgbmFtZTogc3RyaW5nOyB0b3RhbFByb3llY3Rvcz86IG51bWJlciB9KSA9PiAoe1xuICAgICAgICAgIGlkOiBjLmlkLFxuICAgICAgICAgIG5hbWU6IGMubmFtZSxcbiAgICAgICAgICAuLi4oYy50b3RhbFByb3llY3RvcyAhPSBudWxsICYmIHsgdG90YWxQcm95ZWN0b3M6IGMudG90YWxQcm95ZWN0b3MgfSksXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBzZXRSZWNlbnRDbGllbnRzRGF0YShtYXBwZWQpXG4gICAgfSBjYXRjaCB7XG4gICAgICBzZXRSZWNlbnRFcnJvcih0cnVlKVxuICAgICAgc2V0UmVjZW50Q2xpZW50c0RhdGEobnVsbClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ1JlY2VudENsaWVudHMoZmFsc2UpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nUmVjZW50Q2xpZW50cyB8fCBsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRFcnJvciB8fCBzZWFyY2hFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtsb2FkaW5nUmVjZW50Q2xpZW50cywgbG9hZGluZ1NlYXJjaENsaWVudHMsIHJlY2VudEVycm9yLCBzZWFyY2hFcnJvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cyAmJiBpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3MoZmFsc2UpXG4gICAgfVxuXG4gICAgaWYgKHNlYXJjaERhdGE/LmNsaWVudHM/LmRhdGEgJiYgZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgY29uc3QgbWFwcGVkID0gbWFwcGVyQ2xpZW50c1NlYXJjaChzZWFyY2hEYXRhLmNsaWVudHMuZGF0YSwgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRDbGllbnRzKG1hcHBlZClcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gICAgaWYgKHJlY2VudENsaWVudHNEYXRhICE9PSBudWxsICYmICFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkgJiYgIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0Q2xpZW50cyhyZWNlbnRDbGllbnRzRGF0YSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtcbiAgICBzZWFyY2hEYXRhLFxuICAgIHJlY2VudENsaWVudHNEYXRhLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGxvYWRpbmdSZWNlbnRDbGllbnRzLFxuICAgIGxvYWRpbmdTZWFyY2hDbGllbnRzLFxuICAgIGlzUXVlcnlJblByb2dyZXNzLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICBjb25zdCB1cGRhdGVTZWFyY2hWYWx1ZSA9IChuZXdTZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VhcmNoVmFsdWUobmV3U2VhcmNoVmFsdWUpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoUmVjZW50Q2xpZW50czogZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0xvYWRpbmc6IGxvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0Vycm9yOiBlcnJvcixcbiAgICByZWNlbnRDbGllbnRzOiBjbGllbnRzLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBQ3hELE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFDbkMsU0FBU0Msd0JBQXdCLFFBQVEscUJBQXFCO0FBQzlELFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFFbEQsSUFBTUMsb0JBQW9CLEdBQUcsQ0FBQztBQW9COUIsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FDdkJDLE1BQW9FLEVBQ3BFQyxXQUFvQixFQUNLO0VBQUEsSUFBQUMsV0FBQTtFQUN6QixRQUFBQSxXQUFBLEdBQ0VGLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFRyxHQUFHLENBQUMsVUFBQUMsS0FBSyxFQUFJO0lBQ25CLElBQU1DLFVBQVUsR0FBR0QsS0FBSyxDQUFDRSxJQUFJLElBQUksRUFBRTtJQUNuQyxJQUFJQyxhQUE0RDtJQUNoRSxJQUFJTixXQUFXLElBQUlJLFVBQVUsQ0FBQ0csV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDUixXQUFXLENBQUNPLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtN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