@projectcor/maia-components 2.11.10-2 → 2.11.10-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/App.js +10 -28
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +69 -0
- package/lib/components/atoms/ChatClientSelector/index.js +2 -0
- package/lib/components/atoms/Chip/Chip.js +5 -4
- package/lib/components/atoms/Chip/styles.js +3 -3
- package/lib/components/atoms/EntitySelector/EntitySelector.js +181 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +57 -0
- package/lib/components/atoms/EntitySelector/index.js +2 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +5 -3
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +4 -3
- package/lib/components/atoms/ProjectSelector/ProjectSelector.js +56 -193
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +56 -0
- package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -1
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -49
- package/lib/components/molecules/ChatAIHome/styles.js +13 -25
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +1 -1
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +24 -16
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +7 -10
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -6
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
- package/lib/components/molecules/ChatAIModal/constants.js +6 -2
- package/lib/components/molecules/ChatFooter/ChatFooter.js +25 -51
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +184 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +15 -0
- package/lib/components/molecules/ChatFooter/styles.js +9 -8
- package/lib/components/organisms/ChatAI/ChatAI.js +15 -18
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +26 -0
- package/lib/components/organisms/ClientAIButton/index.js +2 -0
- package/lib/constants/config.js +2 -2
- package/lib/context/global-context.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +72 -68
- package/lib/hooks/useChatMessages/useChatMessages.js +72 -38
- package/lib/hooks/useChats/useChats.js +1 -6
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -22
- package/lib/hooks/useProjectSummaryConfig.js +36 -23
- package/lib/hooks/useRecentClientsSearch.js +176 -0
- package/lib/lang/br/index.js +25 -7
- package/lib/lang/en/index.js +25 -7
- package/lib/lang/es/index.js +25 -7
- package/lib/lang/fr/index.js +21 -7
- package/lib/services/maia/Agents/getAgents.js +6 -4
- package/lib/services/maia/Chats/getChatMessages.js +27 -14
- package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
- package/lib/services/maia/Orchestrator/orchestrator.js +6 -21
- package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
- package/lib/services/maia/RecentClients/index.js +6 -0
- package/lib/services/maia/index.js +4 -2
- package/lib/services/utils/mapChatMessages.js +12 -4
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/useChatsStore.js +1 -7
- package/lib/types/Chat.js +1 -1
- package/lib/types/Client.js +2 -0
- package/lib/types/agent.js +1 -1
- package/package.json +1 -1
- package/lib/dev/DevChatAIActionsTasks.js +0 -54
|
@@ -238,11 +238,11 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
238
238
|
}(), [t]);
|
|
239
239
|
var askMaia = /*#__PURE__*/function () {
|
|
240
240
|
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
|
|
241
|
-
var message, history, projectId, lang, userId, companyId, chatId, messageId, clientId, agentName, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId,
|
|
241
|
+
var message, history, projectId, lang, userId, companyId, chatId, messageId, clientId, clientName, agentName, agentId, isWebSearchActive, isDeepSearchActive, attachments, projectName, faqId, _abortControllerRef$c, response, _t5;
|
|
242
242
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
243
243
|
while (1) switch (_context2.prev = _context2.next) {
|
|
244
244
|
case 0:
|
|
245
|
-
message = _ref3.message, history = _ref3.history, projectId = _ref3.projectId, lang = _ref3.lang, userId = _ref3.userId, companyId = _ref3.companyId, chatId = _ref3.chatId, messageId = _ref3.messageId, clientId = _ref3.clientId, agentName = _ref3.agentName, agentId = _ref3.agentId, isWebSearchActive = _ref3.isWebSearchActive, isDeepSearchActive = _ref3.isDeepSearchActive, attachments = _ref3.attachments, projectName = _ref3.projectName, faqId = _ref3.faqId
|
|
245
|
+
message = _ref3.message, history = _ref3.history, projectId = _ref3.projectId, lang = _ref3.lang, userId = _ref3.userId, companyId = _ref3.companyId, chatId = _ref3.chatId, messageId = _ref3.messageId, clientId = _ref3.clientId, clientName = _ref3.clientName, agentName = _ref3.agentName, agentId = _ref3.agentId, isWebSearchActive = _ref3.isWebSearchActive, isDeepSearchActive = _ref3.isDeepSearchActive, attachments = _ref3.attachments, projectName = _ref3.projectName, faqId = _ref3.faqId;
|
|
246
246
|
_context2.prev = 1;
|
|
247
247
|
setLoading(true);
|
|
248
248
|
setIsWriting(false);
|
|
@@ -251,19 +251,8 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
251
251
|
isStoppedRef.current = false; // Resetear flag al iniciar nueva petición
|
|
252
252
|
|
|
253
253
|
abortControllerRef.current = new AbortController();
|
|
254
|
-
console.info('[Maia][Stream] askMaia request', {
|
|
255
|
-
hasHistory: history.length > 0,
|
|
256
|
-
projectId: projectId,
|
|
257
|
-
clientId: clientId,
|
|
258
|
-
agentId: agentId,
|
|
259
|
-
hasAttachments: !!(attachments !== null && attachments !== void 0 && attachments.length),
|
|
260
|
-
hasFaqId: !!faqId,
|
|
261
|
-
hasActionsTasksId: !!actionsTasksId,
|
|
262
|
-
hasTaskId: !!taskId,
|
|
263
|
-
hasTaskName: !!taskName
|
|
264
|
-
});
|
|
265
254
|
_context2.next = 2;
|
|
266
|
-
return maia.Orchestrator.orchestrator(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(
|
|
255
|
+
return maia.Orchestrator.orchestrator(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
267
256
|
input: message,
|
|
268
257
|
history: history,
|
|
269
258
|
lang: lang,
|
|
@@ -282,14 +271,10 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
282
271
|
attachments: attachments
|
|
283
272
|
} : {}), projectName ? {
|
|
284
273
|
projectName: projectName
|
|
274
|
+
} : {}), clientName ? {
|
|
275
|
+
clientName: clientName
|
|
285
276
|
} : {}), faqId ? {
|
|
286
277
|
faqId: faqId
|
|
287
|
-
} : {}), actionsTasksId ? {
|
|
288
|
-
actionsTasksId: actionsTasksId
|
|
289
|
-
} : {}), taskId ? {
|
|
290
|
-
taskId: taskId
|
|
291
|
-
} : {}), taskName ? {
|
|
292
|
-
taskName: taskName
|
|
293
278
|
} : {}), (_abortControllerRef$c = abortControllerRef.current) === null || _abortControllerRef$c === void 0 ? void 0 : _abortControllerRef$c.signal);
|
|
294
279
|
case 2:
|
|
295
280
|
response = _context2.sent;
|
|
@@ -301,7 +286,6 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
301
286
|
case 4:
|
|
302
287
|
_context2.prev = 4;
|
|
303
288
|
_t5 = _context2["catch"](1);
|
|
304
|
-
console.error('[Maia][Stream] askMaia failed', _t5);
|
|
305
289
|
onError === null || onError === void 0 || onError();
|
|
306
290
|
setLoading(false);
|
|
307
291
|
case 5:
|
|
@@ -344,4 +328,4 @@ export var useOrchestratorStream = function useOrchestratorStream(_ref) {
|
|
|
344
328
|
handleSSEStream: handleSSEStream // Exponer para poder usarlo en continue-thread
|
|
345
329
|
};
|
|
346
330
|
};
|
|
347
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJtYWlhIiwiU0VDVElPTlMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJfcmVmIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RhcnRXcml0aW5nIiwib25TdG9wIiwib25FcnJvciIsIm9uQXBwcm92YWxSZXF1aXJlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJkYXRhIiwic2V0RGF0YSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNMb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXcml0aW5nIiwic2V0SXNXcml0aW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkaW5nTWVzc2FnZSIsInNldExvYWRpbmdNZXNzYWdlIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaXNTdG9wcGVkUmVmIiwib25TdHJlYW1VcGRhdGVSZWYiLCJvbkZpbmlzaFN0cmVhbVJlZiIsIm9uU3RhcnRXcml0aW5nUmVmIiwib25TdG9wUmVmIiwib25FcnJvclJlZiIsIm9uQXBwcm92YWxSZXF1aXJlZFJlZiIsImN1cnJlbnQiLCJoYW5kbGVTU0VTdHJlYW0iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJfb25TdHJlYW1VcGRhdGVSZWYkY3UiLCJfb25GaW5pc2hTdHJlYW1SZWYkY3UiLCJfb25BcHByb3ZhbFJlcXVpcmVkUmUiLCJfb25FcnJvclJlZiRjdXJyZW50IiwiX3Jlc3BvbnNlJGJvZHkiLCJyZWFkZXIiLCJkZWNvZGVyIiwiYnVmZmVyIiwiYWNjdW11bGF0ZWRDb250ZW50IiwiaGFzU3RhcnRlZFdyaXRpbmciLCJfeWllbGQkcmVhZGVyJHJlYWQiLCJkb25lIiwidmFsdWUiLCJsaW5lcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwibGluZSIsIl9saW5lJHNwbGl0IiwiX2xpbmUkc3BsaXQyIiwiZXZlbnRMaW5lIiwiZGF0YUxpbmUiLCJldmVudFR5cGUiLCJkYXRhU3RyIiwiX2RhdGEiLCJfb25TdGFydFdyaXRpbmdSZWYkY3UiLCJmaW5hbENvbnRlbnQiLCJzb3VyY2VzIiwibWVtb3J5U2Vzc2lvbklkIiwiX29uRXJyb3JSZWYkY3VycmVudDIiLCJfdCIsIl90MiIsIl90MyIsIl90NCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiYm9keSIsImdldFJlYWRlciIsIkVycm9yIiwiVGV4dERlY29kZXIiLCJjYW5jZWwiLCJhYnJ1cHQiLCJyZWFkIiwic2VudCIsImRlY29kZSIsInN0cmVhbSIsInNwbGl0IiwicG9wIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJzIiwibiIsInRyaW0iLCJyZXBsYWNlIiwiSlNPTiIsInBhcnNlIiwiY2FsbCIsImNvbnRlbnQiLCJtZXNzYWdlIiwibWVtb3J5X3Nlc3Npb25faWQiLCJjb25zb2xlIiwiZXJyb3IiLCJ3YXJuIiwiZSIsImYiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImFza01haWEiLCJfcmVmNCIsIl9jYWxsZWUyIiwiX3JlZjMiLCJoaXN0b3J5IiwicHJvamVjdElkIiwibGFuZyIsInVzZXJJZCIsImNvbXBhbnlJZCIsImNoYXRJZCIsIm1lc3NhZ2VJZCIsImNsaWVudElkIiwiYWdlbnROYW1lIiwiYWdlbnRJZCIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiYXR0YWNobWVudHMiLCJwcm9qZWN0TmFtZSIsImZhcUlkIiwiYWN0aW9uc1Rhc2tzSWQiLCJ0YXNrSWQiLCJ0YXNrTmFtZSIsIl9hYm9ydENvbnRyb2xsZXJSZWYkYyIsIl90NSIsIl9jb250ZXh0MiIsIkFib3J0Q29udHJvbGxlciIsImluZm8iLCJoYXNIaXN0b3J5IiwibGVuZ3RoIiwiaGFzQXR0YWNobWVudHMiLCJoYXNGYXFJZCIsImhhc0FjdGlvbnNUYXNrc0lkIiwiaGFzVGFza0lkIiwiaGFzVGFza05hbWUiLCJPcmNoZXN0cmF0b3IiLCJvcmNoZXN0cmF0b3IiLCJfb2JqZWN0U3ByZWFkIiwiaW5wdXQiLCJzaWduYWwiLCJfeDIiLCJzdG9wU3RyZWFtaW5nIiwiX29uU3RvcFJlZiRjdXJyZW50IiwiYWJvcnQiLCJyZXNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VPcmNoZXN0cmF0b3JTdHJlYW0vdXNlT3JjaGVzdHJhdG9yU3RyZWFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnN0YW50LWNvbmRpdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNhc2UtZGVjbGFyYXRpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IENoYXRIaXN0b3J5IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IFVzZU9yY2hlc3RyYXRvclN0cmVhbVByb3BzIH0gZnJvbSAnLi91c2VPcmNoZXN0cmF0b3JTdHJlYW0uaW50ZXJmYWNlJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuXG5leHBvcnQgY29uc3QgdXNlT3JjaGVzdHJhdG9yU3RyZWFtID0gKHtcbiAgb25TdHJlYW1VcGRhdGUsXG4gIG9uRmluaXNoU3RyZWFtLFxuICBvblN0YXJ0V3JpdGluZyxcbiAgb25TdG9wLFxuICBvbkVycm9yLFxuICBvbkFwcHJvdmFsUmVxdWlyZWQsXG59OiBVc2VPcmNoZXN0cmF0b3JTdHJlYW1Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUldKVxuICBjb25zdCBbZGF0YSwgc2V0RGF0YV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNXcml0aW5nLCBzZXRJc1dyaXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZSwgc2V0TG9hZGluZ01lc3NhZ2VdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgYWJvcnRDb250cm9sbGVyUmVmID0gdXNlUmVmPEFib3J0Q29udHJvbGxlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGlzU3RvcHBlZFJlZiA9IHVzZVJlZihmYWxzZSlcblxuICBjb25zdCBvblN0cmVhbVVwZGF0ZVJlZiA9IHVzZVJlZihvblN0cmVhbVVwZGF0ZSlcbiAgY29uc3Qgb25GaW5pc2hTdHJlYW1SZWYgPSB1c2VSZWYob25GaW5pc2hTdHJlYW0pXG4gIGNvbnN0IG9uU3RhcnRXcml0aW5nUmVmID0gdXNlUmVmKG9uU3RhcnRXcml0aW5nKVxuICBjb25zdCBvblN0b3BSZWYgPSB1c2VSZWYob25TdG9wKVxuICBjb25zdCBvbkVycm9yUmVmID0gdXNlUmVmKG9uRXJyb3IpXG4gIGNvbnN0IG9uQXBwcm92YWxSZXF1aXJlZFJlZiA9IHVzZVJlZihvbkFwcHJvdmFsUmVxdWlyZWQpXG5cbiAgb25TdHJlYW1VcGRhdGVSZWYuY3VycmVudCA9IG9uU3RyZWFtVXBkYXRlXG4gIG9uRmluaXNoU3RyZWFtUmVmLmN1cnJlbnQgPSBvbkZpbmlzaFN0cmVhbVxuICBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50ID0gb25TdGFydFdyaXRpbmdcbiAgb25TdG9wUmVmLmN1cnJlbnQgPSBvblN0b3BcbiAgb25FcnJvclJlZi5jdXJyZW50ID0gb25FcnJvclxuICBvbkFwcHJvdmFsUmVxdWlyZWRSZWYuY3VycmVudCA9IG9uQXBwcm92YWxSZXF1aXJlZFxuXG4gIGNvbnN0IGhhbmRsZVNTRVN0cmVhbSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHk/LmdldFJlYWRlcigpXG4gICAgICAgIGlmICghcmVhZGVyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZWFkZXIgYXZhaWxhYmxlJylcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICAgICAgICBsZXQgYnVmZmVyID0gJydcbiAgICAgICAgbGV0IGFjY3VtdWxhdGVkQ29udGVudCA9ICcnXG4gICAgICAgIGxldCBoYXNTdGFydGVkV3JpdGluZyA9IGZhbHNlXG5cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICBpZiAoaXNTdG9wcGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG4gICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzU3RvcHBlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICByZWFkZXIuY2FuY2VsKClcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnVmZmVyICs9IGRlY29kZXIuZGVjb2RlKHZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KVxuICAgICAgICAgIGNvbnN0IGxpbmVzID0gYnVmZmVyLnNwbGl0KCdcXG5cXG4nKVxuICAgICAgICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IFtldmVudExpbmUsIGRhdGFMaW5lXSA9IGxpbmUuc3BsaXQoJ1xcbicpXG4gICAgICAgICAgICBpZiAoIWV2ZW50TGluZSB8fCAhZGF0YUxpbmUpIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50VHlwZSA9IGV2ZW50TGluZS5yZXBsYWNlKCdldmVudDogJywgJycpLnRyaW0oKVxuICAgICAgICAgICAgY29uc3QgZGF0YVN0ciA9IGRhdGFMaW5lLnJlcGxhY2UoJ2RhdGE6ICcsICcnKS50cmltKClcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGF0YVN0cilcblxuICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3Rva2VuJzpcbiAgICAgICAgICAgICAgICAgIGlmICghaGFzU3RhcnRlZFdyaXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzU3RhcnRlZFdyaXRpbmcgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIHNldElzV3JpdGluZyh0cnVlKVxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZSh0KCdjaGF0LndyaXRpbmcnKSlcbiAgICAgICAgICAgICAgICAgICAgb25TdGFydFdyaXRpbmdSZWYuY3VycmVudD8uKClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVkQ29udGVudCArPSBkYXRhLmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIHNldERhdGEoYWNjdW11bGF0ZWRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgb25TdHJlYW1VcGRhdGVSZWYuY3VycmVudD8uKGFjY3VtdWxhdGVkQ29udGVudCwgbnVsbCwgJycpXG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbm9kZSc6XG4gICAgICAgICAgICAgICAgICAvLyBTaSBlbCBldmVudG8gbm9kZSB0aWVuZSB1biBtZW5zYWplLCBhY3R1YWxpemFybG8gcGFyYSBtb3N0cmFybG8gZW4gZWwgbG9hZGVyXG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YS5tZXNzYWdlICYmIHR5cGVvZiBkYXRhLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFzZWd1cmFyIHF1ZSBpc0xvYWRpbmcgZXN0w6kgZW4gdHJ1ZSBwYXJhIG1vc3RyYXIgZWwgbG9hZGVyXG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UoZGF0YS5tZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBsZXRlJzpcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsQ29udGVudCA9IGRhdGEuY29udGVudCB8fCBhY2N1bXVsYXRlZENvbnRlbnRcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZXMgPSBkYXRhLnNvdXJjZXMgfHwgbnVsbFxuICAgICAgICAgICAgICAgICAgY29uc3QgbWVtb3J5U2Vzc2lvbklkID0gZGF0YS5tZW1vcnlfc2Vzc2lvbl9pZCB8fCAnJ1xuICAgICAgICAgICAgICAgICAgc2V0RGF0YShmaW5hbENvbnRlbnQpXG4gICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKSAvLyBMaW1waWFyIG1lbnNhamUgY3VhbmRvIHNlIGNvbXBsZXRhXG4gICAgICAgICAgICAgICAgICBvbkZpbmlzaFN0cmVhbVJlZi5jdXJyZW50Py4oZmluYWxDb250ZW50LCBzb3VyY2VzLCBtZW1vcnlTZXNzaW9uSWQpXG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnYXBwcm92YWxfcmVxdWlyZWQnOlxuICAgICAgICAgICAgICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpIC8vIExpbXBpYXIgbWVuc2FqZSBjdWFuZG8gc2UgcmVxdWllcmUgYXByb2JhY2nDs25cbiAgICAgICAgICAgICAgICAgIG9uQXBwcm92YWxSZXF1aXJlZFJlZi5jdXJyZW50Py4oZGF0YSwgYWNjdW11bGF0ZWRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NTRSBFcnJvcjonLCBkYXRhLmVycm9yKVxuICAgICAgICAgICAgICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbCkgLy8gTGltcGlhciBtZW5zYWplIGN1YW5kbyBoYXkgZXJyb3JcbiAgICAgICAgICAgICAgICAgIG9uRXJyb3JSZWYuY3VycmVudD8uKClcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdVbmtub3duIFNTRSBldmVudCB0eXBlOicsIGV2ZW50VHlwZSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAocGFyc2VFcnJvcikge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIFNTRSBkYXRhOicsIHBhcnNlRXJyb3IsIGRhdGFTdHIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG5cbiAgICAgICAgLy8gU29sbyBlamVjdXRhciBvbkVycm9yIHNpIG5vIGZ1ZSB1biBzdG9wIGludGVuY2lvbmFsXG4gICAgICAgIGlmICghaXNTdG9wcGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBvbkVycm9yUmVmLmN1cnJlbnQ/LigpXG4gICAgICAgIH1cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFt0XVxuICApXG5cbiAgY29uc3QgYXNrTWFpYSA9IGFzeW5jICh7XG4gICAgbWVzc2FnZSxcbiAgICBoaXN0b3J5LFxuICAgIHByb2plY3RJZCxcbiAgICBsYW5nLFxuICAgIHVzZXJJZCxcbiAgICBjb21wYW55SWQsXG4gICAgY2hhdElkLFxuICAgIG1lc3NhZ2VJZCxcbiAgICBjbGllbnRJZCxcbiAgICBhZ2VudE5hbWUsXG4gICAgYWdlbnRJZCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgYXR0YWNobWVudHMsXG4gICAgcHJvamVjdE5hbWUsXG4gICAgZmFxSWQsXG4gICAgYWN0aW9uc1Rhc2tzSWQsXG4gICAgdGFza0lkLFxuICAgIHRhc2tOYW1lLFxuICB9OiB7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICAgIHByb2plY3RJZDogbnVtYmVyIHwgbnVsbFxuICAgIGxhbmc6IHN0cmluZ1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgY29tcGFueUlkOiBzdHJpbmdcbiAgICBjaGF0SWQ6IHN0cmluZ1xuICAgIG1lc3NhZ2VJZDogc3RyaW5nXG4gICAgY2xpZW50SWQ/OiBudW1iZXJcbiAgICBhZ2VudE5hbWU6IHN0cmluZ1xuICAgIGFnZW50SWQ6IHN0cmluZ1xuICAgIGlzV2ViU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgICBwcm9qZWN0TmFtZT86IHN0cmluZ1xuICAgIGZhcUlkPzogc3RyaW5nXG4gICAgYWN0aW9uc1Rhc2tzSWQ/OiBzdHJpbmdcbiAgICB0YXNrSWQ/OiBzdHJpbmdcbiAgICB0YXNrTmFtZT86IHN0cmluZ1xuICB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgIHNldERhdGEobnVsbClcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpXG4gICAgICBpc1N0b3BwZWRSZWYuY3VycmVudCA9IGZhbHNlIC8vIFJlc2V0ZWFyIGZsYWcgYWwgaW5pY2lhciBudWV2YSBwZXRpY2nDs25cblxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICAgICAgY29uc29sZS5pbmZvKCdbTWFpYV1bU3RyZWFtXSBhc2tNYWlhIHJlcXVlc3QnLCB7XG4gICAgICAgIGhhc0hpc3Rvcnk6IGhpc3RvcnkubGVuZ3RoID4gMCxcbiAgICAgICAgcHJvamVjdElkLFxuICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgYWdlbnRJZCxcbiAgICAgICAgaGFzQXR0YWNobWVudHM6ICEhYXR0YWNobWVudHM/Lmxlbmd0aCxcbiAgICAgICAgaGFzRmFxSWQ6ICEhZmFxSWQsXG4gICAgICAgIGhhc0FjdGlvbnNUYXNrc0lkOiAhIWFjdGlvbnNUYXNrc0lkLFxuICAgICAgICBoYXNUYXNrSWQ6ICEhdGFza0lkLFxuICAgICAgICBoYXNUYXNrTmFtZTogISF0YXNrTmFtZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbWFpYS5PcmNoZXN0cmF0b3Iub3JjaGVzdHJhdG9yKFxuICAgICAgICB7XG4gICAgICAgICAgaW5wdXQ6IG1lc3NhZ2UsXG4gICAgICAgICAgaGlzdG9yeSxcbiAgICAgICAgICBsYW5nLFxuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICBjb21wYW55SWQsXG4gICAgICAgICAgY2hhdElkLFxuICAgICAgICAgIG1lc3NhZ2VJZCxcbiAgICAgICAgICBjbGllbnRJZCxcbiAgICAgICAgICBhZ2VudE5hbWUsXG4gICAgICAgICAgYWdlbnRJZCxcbiAgICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgIC4uLihwcm9qZWN0TmFtZSA/IHsgcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oZmFxSWQgPyB7IGZhcUlkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGFjdGlvbnNUYXNrc0lkID8geyBhY3Rpb25zVGFza3NJZCB9IDoge30pLFxuICAgICAgICAgIC4uLih0YXNrSWQgPyB7IHRhc2tJZCB9IDoge30pLFxuICAgICAgICAgIC4uLih0YXNrTmFtZSA/IHsgdGFza05hbWUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQ/LnNpZ25hbFxuICAgICAgKVxuXG4gICAgICBhd2FpdCBoYW5kbGVTU0VTdHJlYW0ocmVzcG9uc2UpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tNYWlhXVtTdHJlYW1dIGFza01haWEgZmFpbGVkJywgZXJyb3IpXG4gICAgICBvbkVycm9yPy4oKVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzdG9wU3RyZWFtaW5nID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCkge1xuICAgICAgaXNTdG9wcGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5hYm9ydCgpXG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKVxuICAgICAgb25TdG9wUmVmLmN1cnJlbnQ/LigpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCByZXNldCA9ICgpID0+IHtcbiAgICBzZXREYXRhKG51bGwpXG4gICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbClcbiAgICBpc1N0b3BwZWRSZWYuY3VycmVudCA9IGZhbHNlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFza01haWEsXG4gICAgcmVzcG9uc2U6IGRhdGEsXG4gICAgaXNMb2FkaW5nLFxuICAgIGlzV3JpdGluZyxcbiAgICBsb2FkaW5nTWVzc2FnZSxcbiAgICByZXNldCxcbiAgICBzdG9wU3RyZWFtaW5nLFxuICAgIGhhbmRsZVNTRVN0cmVhbSwgLy8gRXhwb25lciBwYXJhIHBvZGVyIHVzYXJsbyBlbiBjb250aW51ZS10aHJlYWRcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3JELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBRTlDLE9BQU9DLElBQUksTUFBTSxxQkFBcUI7QUFHdEMsU0FBU0MsUUFBUSxRQUFRLHdCQUF3QjtBQUVqRCxPQUFPLElBQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUFDLElBQUEsRUFPQTtFQUFBLElBTmhDQyxjQUFjLEdBQUFELElBQUEsQ0FBZEMsY0FBYztJQUNkQyxjQUFjLEdBQUFGLElBQUEsQ0FBZEUsY0FBYztJQUNkQyxjQUFjLEdBQUFILElBQUEsQ0FBZEcsY0FBYztJQUNkQyxNQUFNLEdBQUFKLElBQUEsQ0FBTkksTUFBTTtJQUNOQyxPQUFPLEdBQUFMLElBQUEsQ0FBUEssT0FBTztJQUNQQyxrQkFBa0IsR0FBQU4sSUFBQSxDQUFsQk0sa0JBQWtCO0VBRWxCLElBQUFDLGVBQUEsR0FBY1gsY0FBYyxDQUFDLENBQUNFLFFBQVEsQ0FBQ1UsTUFBTSxDQUFDLENBQUM7SUFBdkNDLENBQUMsR0FBQUYsZUFBQSxDQUFERSxDQUFDO0VBQ1QsSUFBQUMsU0FBQSxHQUF3QmpCLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUFrQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUE5Q0csSUFBSSxHQUFBRixVQUFBO0lBQUVHLE9BQU8s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LENBQUMsK0JBQStCLEVBQUFnQyxHQUFPLENBQUM7WUFDckRuSSxPQUFPLGFBQVBBLE9BQU8sZUFBUEEsT0FBTyxDQUFHLENBQUM7WUFDWGEsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBdUgsU0FBQSxDQUFBNUIsSUFBQTtRQUFBO01BQUEsR0FBQU0sUUFBQTtJQUFBLENBRXBCO0lBQUEsZ0JBN0ZLRixPQUFPQSxDQUFBdUMsR0FBQTtNQUFBLE9BQUF0QyxLQUFBLENBQUFILEtBQUEsT0FBQUMsU0FBQTtJQUFBO0VBQUEsR0E2Rlo7RUFFRCxJQUFNeUMsYUFBYSxHQUFHL0osV0FBVyxDQUFDLFlBQU07SUFDdEMsSUFBSWlDLGtCQUFrQixDQUFDUSxPQUFPLEVBQUU7TUFBQSxJQUFBdUgsa0JBQUE7TUFDOUI5SCxZQUFZLENBQUNPLE9BQU8sR0FBRyxJQUFJO01BQzNCUixrQkFBa0IsQ0FBQ1EsT0FBTyxDQUFDd0gsS0FBSyxDQUFDLENBQUM7TUFDbENoSSxrQkFBa0IsQ0FBQ1EsT0FBTyxHQUFHLElBQUk7TUFDakNqQixVQUFVLENBQUMsS0FBSyxDQUFDO01BQ2pCSSxZQUFZLENBQUMsS0FBSyxDQUFDO01BQ25CSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7TUFDdkIsQ0FBQWdJLGtCQUFBLEdBQUExSCxTQUFTLENBQUNHLE9BQU8sY0FBQXVILGtCQUFBLGVBQWpCQSxrQkFBQSxDQUFBdkQsSUFBQSxDQUFBbkUsU0FBb0IsQ0FBQztJQUN2QjtFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNNEgsS0FBSyxHQUFHLFNBQVJBLEtBQUtBLENBQUEsRUFBUztJQUNsQjlJLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDYkksVUFBVSxDQUFDLEtBQUssQ0FBQztJQUNqQkksWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNuQkksaUJBQWlCLENBQUMsSUFBSSxDQUFDO0lBQ3ZCRSxZQUFZLENBQUNPLE9BQU8sR0FBRyxLQUFLO0VBQzlCLENBQUM7RUFFRCxPQUFPO0lBQ0w4RSxPQUFPLEVBQVBBLE9BQU87SUFDUHZFLFFBQVEsRUFBRTdCLElBQUk7SUFDZEksU0FBUyxFQUFUQSxTQUFTO0lBQ1RJLFNBQVMsRUFBVEEsU0FBUztJQUNUSSxjQUFjLEVBQWRBLGNBQWM7SUFDZG1JLEtBQUssRUFBTEEsS0FBSztJQUNMSCxhQUFhLEVBQWJBLGFBQWE7SUFDYnJILGVBQWUsRUFBZkEsZUFBZSxDQUFFO0VBQ25CLENBQUM7QUFDSCxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
331
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlVHJhbnNsYXRpb24iLCJtYWlhIiwiU0VDVElPTlMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJfcmVmIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RhcnRXcml0aW5nIiwib25TdG9wIiwib25FcnJvciIsIm9uQXBwcm92YWxSZXF1aXJlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJkYXRhIiwic2V0RGF0YSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNMb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXcml0aW5nIiwic2V0SXNXcml0aW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkaW5nTWVzc2FnZSIsInNldExvYWRpbmdNZXNzYWdlIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaXNTdG9wcGVkUmVmIiwib25TdHJlYW1VcGRhdGVSZWYiLCJvbkZpbmlzaFN0cmVhbVJlZiIsIm9uU3RhcnRXcml0aW5nUmVmIiwib25TdG9wUmVmIiwib25FcnJvclJlZiIsIm9uQXBwcm92YWxSZXF1aXJlZFJlZiIsImN1cnJlbnQiLCJoYW5kbGVTU0VTdHJlYW0iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJfb25TdHJlYW1VcGRhdGVSZWYkY3UiLCJfb25GaW5pc2hTdHJlYW1SZWYkY3UiLCJfb25BcHByb3ZhbFJlcXVpcmVkUmUiLCJfb25FcnJvclJlZiRjdXJyZW50IiwiX3Jlc3BvbnNlJGJvZHkiLCJyZWFkZXIiLCJkZWNvZGVyIiwiYnVmZmVyIiwiYWNjdW11bGF0ZWRDb250ZW50IiwiaGFzU3RhcnRlZFdyaXRpbmciLCJfeWllbGQkcmVhZGVyJHJlYWQiLCJkb25lIiwidmFsdWUiLCJsaW5lcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwibGluZSIsIl9saW5lJHNwbGl0IiwiX2xpbmUkc3BsaXQyIiwiZXZlbnRMaW5lIiwiZGF0YUxpbmUiLCJldmVudFR5cGUiLCJkYXRhU3RyIiwiX2RhdGEiLCJfb25TdGFydFdyaXRpbmdSZWYkY3UiLCJmaW5hbENvbnRlbnQiLCJzb3VyY2VzIiwibWVtb3J5U2Vzc2lvbklkIiwiX29uRXJyb3JSZWYkY3VycmVudDIiLCJfdCIsIl90MiIsIl90MyIsIl90NCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiYm9keSIsImdldFJlYWRlciIsIkVycm9yIiwiVGV4dERlY29kZXIiLCJjYW5jZWwiLCJhYnJ1cHQiLCJyZWFkIiwic2VudCIsImRlY29kZSIsInN0cmVhbSIsInNwbGl0IiwicG9wIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJzIiwibiIsInRyaW0iLCJyZXBsYWNlIiwiSlNPTiIsInBhcnNlIiwiY2FsbCIsImNvbnRlbnQiLCJtZXNzYWdlIiwibWVtb3J5X3Nlc3Npb25faWQiLCJjb25zb2xlIiwiZXJyb3IiLCJ3YXJuIiwiZSIsImYiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImFza01haWEiLCJfcmVmNCIsIl9jYWxsZWUyIiwiX3JlZjMiLCJoaXN0b3J5IiwicHJvamVjdElkIiwibGFuZyIsInVzZXJJZCIsImNvbXBhbnlJZCIsImNoYXRJZCIsIm1lc3NhZ2VJZCIsImNsaWVudElkIiwiY2xpZW50TmFtZSIsImFnZW50TmFtZSIsImFnZW50SWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImF0dGFjaG1lbnRzIiwicHJvamVjdE5hbWUiLCJmYXFJZCIsIl9hYm9ydENvbnRyb2xsZXJSZWYkYyIsIl90NSIsIl9jb250ZXh0MiIsIkFib3J0Q29udHJvbGxlciIsIk9yY2hlc3RyYXRvciIsIm9yY2hlc3RyYXRvciIsIl9vYmplY3RTcHJlYWQiLCJpbnB1dCIsInNpZ25hbCIsIl94MiIsInN0b3BTdHJlYW1pbmciLCJfb25TdG9wUmVmJGN1cnJlbnQiLCJhYm9ydCIsInJlc2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZU9yY2hlc3RyYXRvclN0cmVhbS91c2VPcmNoZXN0cmF0b3JTdHJlYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc3RhbnQtY29uZGl0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY2FzZS1kZWNsYXJhdGlvbnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgQ2hhdEhpc3RvcnkgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgVXNlT3JjaGVzdHJhdG9yU3RyZWFtUHJvcHMgfSBmcm9tICcuL3VzZU9yY2hlc3RyYXRvclN0cmVhbS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5cbmV4cG9ydCBjb25zdCB1c2VPcmNoZXN0cmF0b3JTdHJlYW0gPSAoe1xuICBvblN0cmVhbVVwZGF0ZSxcbiAgb25GaW5pc2hTdHJlYW0sXG4gIG9uU3RhcnRXcml0aW5nLFxuICBvblN0b3AsXG4gIG9uRXJyb3IsXG4gIG9uQXBwcm92YWxSZXF1aXJlZCxcbn06IFVzZU9yY2hlc3RyYXRvclN0cmVhbVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmNoYXRBSV0pXG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1dyaXRpbmcsIHNldElzV3JpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xvYWRpbmdNZXNzYWdlLCBzZXRMb2FkaW5nTWVzc2FnZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBhYm9ydENvbnRyb2xsZXJSZWYgPSB1c2VSZWY8QWJvcnRDb250cm9sbGVyIHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNTdG9wcGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IG9uU3RyZWFtVXBkYXRlUmVmID0gdXNlUmVmKG9uU3RyZWFtVXBkYXRlKVxuICBjb25zdCBvbkZpbmlzaFN0cmVhbVJlZiA9IHVzZVJlZihvbkZpbmlzaFN0cmVhbSlcbiAgY29uc3Qgb25TdGFydFdyaXRpbmdSZWYgPSB1c2VSZWYob25TdGFydFdyaXRpbmcpXG4gIGNvbnN0IG9uU3RvcFJlZiA9IHVzZVJlZihvblN0b3ApXG4gIGNvbnN0IG9uRXJyb3JSZWYgPSB1c2VSZWYob25FcnJvcilcbiAgY29uc3Qgb25BcHByb3ZhbFJlcXVpcmVkUmVmID0gdXNlUmVmKG9uQXBwcm92YWxSZXF1aXJlZClcblxuICBvblN0cmVhbVVwZGF0ZVJlZi5jdXJyZW50ID0gb25TdHJlYW1VcGRhdGVcbiAgb25GaW5pc2hTdHJlYW1SZWYuY3VycmVudCA9IG9uRmluaXNoU3RyZWFtXG4gIG9uU3RhcnRXcml0aW5nUmVmLmN1cnJlbnQgPSBvblN0YXJ0V3JpdGluZ1xuICBvblN0b3BSZWYuY3VycmVudCA9IG9uU3RvcFxuICBvbkVycm9yUmVmLmN1cnJlbnQgPSBvbkVycm9yXG4gIG9uQXBwcm92YWxSZXF1aXJlZFJlZi5jdXJyZW50ID0gb25BcHByb3ZhbFJlcXVpcmVkXG5cbiAgY29uc3QgaGFuZGxlU1NFU3RyZWFtID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gcmVzcG9uc2UuYm9keT8uZ2V0UmVhZGVyKClcbiAgICAgICAgaWYgKCFyZWFkZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlYWRlciBhdmFpbGFibGUnKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gICAgICAgIGxldCBidWZmZXIgPSAnJ1xuICAgICAgICBsZXQgYWNjdW11bGF0ZWRDb250ZW50ID0gJydcbiAgICAgICAgbGV0IGhhc1N0YXJ0ZWRXcml0aW5nID0gZmFsc2VcblxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIGlmIChpc1N0b3BwZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgcmVhZGVyLmNhbmNlbCgpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKClcbiAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaXNTdG9wcGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJlYWRlci5jYW5jZWwoKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBidWZmZXIgKz0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pXG4gICAgICAgICAgY29uc3QgbGluZXMgPSBidWZmZXIuc3BsaXQoJ1xcblxcbicpXG4gICAgICAgICAgYnVmZmVyID0gbGluZXMucG9wKCkgfHwgJydcblxuICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgICAgaWYgKGxpbmUudHJpbSgpID09PSAnJykgY29udGludWVcblxuICAgICAgICAgICAgY29uc3QgW2V2ZW50TGluZSwgZGF0YUxpbmVdID0gbGluZS5zcGxpdCgnXFxuJylcbiAgICAgICAgICAgIGlmICghZXZlbnRMaW5lIHx8ICFkYXRhTGluZSkgY29udGludWVcblxuICAgICAgICAgICAgY29uc3QgZXZlbnRUeXBlID0gZXZlbnRMaW5lLnJlcGxhY2UoJ2V2ZW50OiAnLCAnJykudHJpbSgpXG4gICAgICAgICAgICBjb25zdCBkYXRhU3RyID0gZGF0YUxpbmUucmVwbGFjZSgnZGF0YTogJywgJycpLnRyaW0oKVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkYXRhU3RyKVxuXG4gICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9rZW4nOlxuICAgICAgICAgICAgICAgICAgaWYgKCFoYXNTdGFydGVkV3JpdGluZykge1xuICAgICAgICAgICAgICAgICAgICBoYXNTdGFydGVkV3JpdGluZyA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNXcml0aW5nKHRydWUpXG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmdNZXNzYWdlKHQoJ2NoYXQud3JpdGluZycpKVxuICAgICAgICAgICAgICAgICAgICBvblN0YXJ0V3JpdGluZ1JlZi5jdXJyZW50Py4oKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRDb250ZW50ICs9IGRhdGEuY29udGVudFxuICAgICAgICAgICAgICAgICAgc2V0RGF0YShhY2N1bXVsYXRlZENvbnRlbnQpXG4gICAgICAgICAgICAgICAgICBvblN0cmVhbVVwZGF0ZVJlZi5jdXJyZW50Py4oYWNjdW11bGF0ZWRDb250ZW50LCBudWxsLCAnJylcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICBjYXNlICdub2RlJzpcbiAgICAgICAgICAgICAgICAgIC8vIFNpIGVsIGV2ZW50byBub2RlIHRpZW5lIHVuIG1lbnNhamUsIGFjdHVhbGl6YXJsbyBwYXJhIG1vc3RyYXJsbyBlbiBlbCBsb2FkZXJcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhLm1lc3NhZ2UgJiYgdHlwZW9mIGRhdGEubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQXNlZ3VyYXIgcXVlIGlzTG9hZGluZyBlc3TDqSBlbiB0cnVlIHBhcmEgbW9zdHJhciBlbCBsb2FkZXJcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShkYXRhLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnY29tcGxldGUnOlxuICAgICAgICAgICAgICAgICAgY29uc3QgZmluYWxDb250ZW50ID0gZGF0YS5jb250ZW50IHx8IGFjY3VtdWxhdGVkQ29udGVudFxuICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlcyA9IGRhdGEuc291cmNlcyB8fCBudWxsXG4gICAgICAgICAgICAgICAgICBjb25zdCBtZW1vcnlTZXNzaW9uSWQgPSBkYXRhLm1lbW9yeV9zZXNzaW9uX2lkIHx8ICcnXG4gICAgICAgICAgICAgICAgICBzZXREYXRhKGZpbmFsQ29udGVudClcbiAgICAgICAgICAgICAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpIC8vIExpbXBpYXIgbWVuc2FqZSBjdWFuZG8gc2UgY29tcGxldGFcbiAgICAgICAgICAgICAgICAgIG9uRmluaXNoU3RyZWFtUmVmLmN1cnJlbnQ/LihmaW5hbENvbnRlbnQsIHNvdXJjZXMsIG1lbW9yeVNlc3Npb25JZClcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgICAgICAgICBjYXNlICdhcHByb3ZhbF9yZXF1aXJlZCc6XG4gICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbCkgLy8gTGltcGlhciBtZW5zYWplIGN1YW5kbyBzZSByZXF1aWVyZSBhcHJvYmFjacOzblxuICAgICAgICAgICAgICAgICAgb25BcHByb3ZhbFJlcXVpcmVkUmVmLmN1cnJlbnQ/LihkYXRhLCBhY2N1bXVsYXRlZENvbnRlbnQpXG4gICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU1NFIEVycm9yOicsIGRhdGEuZXJyb3IpXG4gICAgICAgICAgICAgICAgICBzZXRJc1dyaXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKSAvLyBMaW1waWFyIG1lbnNhamUgY3VhbmRvIGhheSBlcnJvclxuICAgICAgICAgICAgICAgICAgb25FcnJvclJlZi5jdXJyZW50Py4oKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gU1NFIGV2ZW50IHR5cGU6JywgZXZlbnRUeXBlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgU1NFIGRhdGE6JywgcGFyc2VFcnJvciwgZGF0YVN0cilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcblxuICAgICAgICAvLyBTb2xvIGVqZWN1dGFyIG9uRXJyb3Igc2kgbm8gZnVlIHVuIHN0b3AgaW50ZW5jaW9uYWxcbiAgICAgICAgaWYgKCFpc1N0b3BwZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgIG9uRXJyb3JSZWYuY3VycmVudD8uKClcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZShudWxsKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3RdXG4gIClcblxuICBjb25zdCBhc2tNYWlhID0gYXN5bmMgKHtcbiAgICBtZXNzYWdlLFxuICAgIGhpc3RvcnksXG4gICAgcHJvamVjdElkLFxuICAgIGxhbmcsXG4gICAgdXNlcklkLFxuICAgIGNvbXBhbnlJZCxcbiAgICBjaGF0SWQsXG4gICAgbWVzc2FnZUlkLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudE5hbWUsXG4gICAgYWdlbnROYW1lLFxuICAgIGFnZW50SWQsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIHByb2plY3ROYW1lLFxuICAgIGZhcUlkLFxuICB9OiB7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICAgIHByb2plY3RJZDogbnVtYmVyIHwgbnVsbFxuICAgIGxhbmc6IHN0cmluZ1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgY29tcGFueUlkOiBzdHJpbmdcbiAgICBjaGF0SWQ6IHN0cmluZ1xuICAgIG1lc3NhZ2VJZDogc3RyaW5nXG4gICAgY2xpZW50SWQ/OiBudW1iZXJcbiAgICBjbGllbnROYW1lPzogc3RyaW5nXG4gICAgYWdlbnROYW1lOiBzdHJpbmdcbiAgICBhZ2VudElkOiBzdHJpbmdcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgICBpc0RlZXBTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gICAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgICBmYXFJZD86IHN0cmluZ1xuICB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldElzV3JpdGluZyhmYWxzZSlcbiAgICAgIHNldERhdGEobnVsbClcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpXG4gICAgICBpc1N0b3BwZWRSZWYuY3VycmVudCA9IGZhbHNlIC8vIFJlc2V0ZWFyIGZsYWcgYWwgaW5pY2lhciBudWV2YSBwZXRpY2nDs25cblxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5vcmNoZXN0cmF0b3IoXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dDogbWVzc2FnZSxcbiAgICAgICAgICBoaXN0b3J5LFxuICAgICAgICAgIGxhbmcsXG4gICAgICAgICAgdXNlcklkLFxuICAgICAgICAgIGNvbXBhbnlJZCxcbiAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgbWVzc2FnZUlkLFxuICAgICAgICAgIGNsaWVudElkLFxuICAgICAgICAgIGFnZW50TmFtZSxcbiAgICAgICAgICBhZ2VudElkLFxuICAgICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICAgICAgICAuLi4ocHJvamVjdElkID8geyBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oYXR0YWNobWVudHMgPyB7IGF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHByb2plY3ROYW1lID8geyBwcm9qZWN0TmFtZSB9IDoge30pLFxuICAgICAgICAgIC4uLihjbGllbnROYW1lID8geyBjbGllbnROYW1lIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGZhcUlkID8geyBmYXFJZCB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudD8uc2lnbmFsXG4gICAgICApXG5cbiAgICAgIGF3YWl0IGhhbmRsZVNTRVN0cmVhbShyZXNwb25zZSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcj8uKClcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RvcFN0cmVhbWluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlzU3RvcHBlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQuYWJvcnQoKVxuICAgICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgICAgc2V0TG9hZGluZ01lc3NhZ2UobnVsbClcbiAgICAgIG9uU3RvcFJlZi5jdXJyZW50Py4oKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgcmVzZXQgPSAoKSA9PiB7XG4gICAgc2V0RGF0YShudWxsKVxuICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgc2V0SXNXcml0aW5nKGZhbHNlKVxuICAgIHNldExvYWRpbmdNZXNzYWdlKG51bGwpXG4gICAgaXNTdG9wcGVkUmVmLmN1cnJlbnQgPSBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhc2tNYWlhLFxuICAgIHJlc3BvbnNlOiBkYXRhLFxuICAgIGlzTG9hZGluZyxcbiAgICBpc1dyaXRpbmcsXG4gICAgbG9hZGluZ01lc3NhZ2UsXG4gICAgcmVzZXQsXG4gICAgc3RvcFN0cmVhbWluZyxcbiAgICBoYW5kbGVTU0VTdHJlYW0sIC8vIEV4cG9uZXIgcGFyYSBwb2RlciB1c2FybG8gZW4gY29udGludWUtdGhyZWFkXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUNyRCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUU5QyxPQUFPQyxJQUFJLE1BQU0scUJBQXFCO0FBR3RDLFNBQVNDLFFBQVEsUUFBUSx3QkFBd0I7QUFFakQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBQyxJQUFBLEVBT0E7RUFBQSxJQU5oQ0MsY0FBYyxHQUFBRCxJQUFBLENBQWRDLGNBQWM7SUFDZEMsY0FBYyxHQUFBRixJQUFBLENBQWRFLGNBQWM7SUFDZEMsY0FBYyxHQUFBSCxJQUFBLENBQWRHLGNBQWM7SUFDZEMsTUFBTSxHQUFBSixJQUFBLENBQU5JLE1BQU07SUFDTkMsT0FBTyxHQUFBTCxJQUFBLENBQVBLLE9BQU87SUFDUEMsa0JBQWtCLEdBQUFOLElBQUEsQ0FBbEJNLGtCQUFrQjtFQUVsQixJQUFBQyxlQUFBLEdBQWNYLGNBQWMs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
|
|
@@ -12,9 +12,10 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
|
|
|
12
12
|
entity = _ref.entity,
|
|
13
13
|
project = _ref.project,
|
|
14
14
|
setProject = _ref.setProject,
|
|
15
|
-
|
|
16
|
-
_ref$
|
|
17
|
-
|
|
15
|
+
_ref$client = _ref.client,
|
|
16
|
+
initialClient = _ref$client === void 0 ? null : _ref$client,
|
|
17
|
+
setClientProp = _ref.setClient,
|
|
18
|
+
hasMultiAgents = _ref.hasMultiAgents;
|
|
18
19
|
var user = useUser();
|
|
19
20
|
var t = useTWithSection(SECTIONS.chatAI);
|
|
20
21
|
var _useState = useState(null),
|
|
@@ -40,25 +41,36 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
|
|
|
40
41
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
41
42
|
entityValues = _useState0[0],
|
|
42
43
|
setEntityValues = _useState0[1];
|
|
43
|
-
var
|
|
44
|
-
var _useState1 = useState(function () {
|
|
45
|
-
if (section === 'actionsTasks' && project && task) {
|
|
46
|
-
var _project$client;
|
|
47
|
-
return {
|
|
48
|
-
projectName: project.name,
|
|
49
|
-
clientName: ((_project$client = project.client) === null || _project$client === void 0 ? void 0 : _project$client.name) || '',
|
|
50
|
-
projectId: String(project.id),
|
|
51
|
-
taskId: task.id,
|
|
52
|
-
taskName: task.name
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
}),
|
|
44
|
+
var _useState1 = useState(initialClient !== null && initialClient !== void 0 ? initialClient : null),
|
|
57
45
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
client = _useState10[0],
|
|
47
|
+
setClientState = _useState10[1];
|
|
48
|
+
var setClient = setClientProp !== null && setClientProp !== void 0 ? setClientProp : setClientState;
|
|
49
|
+
var configureSettingsItems = useRef(buildConfigureSettingsItems(user, t));
|
|
50
|
+
var _useState11 = useState(null),
|
|
51
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
52
|
+
chipsProject = _useState12[0],
|
|
53
|
+
setChipsProjectState = _useState12[1];
|
|
54
|
+
|
|
55
|
+
// Sincronizar client cuando la prop llegue después del primer render (ej. section client, datos async)
|
|
56
|
+
useEffect(function () {
|
|
57
|
+
if (section === 'client') {
|
|
58
|
+
setClientState(initialClient !== null && initialClient !== void 0 ? initialClient : null);
|
|
59
|
+
}
|
|
60
|
+
}, [section, initialClient]);
|
|
61
|
+
|
|
62
|
+
// Sincronizar entityValues cuando entity cambie (ej. llegue después del primer render)
|
|
63
|
+
useEffect(function () {
|
|
64
|
+
if (entity != null) {
|
|
65
|
+
var _entity$projectId, _entity$clientId;
|
|
66
|
+
setEntityValues({
|
|
67
|
+
projectId: (_entity$projectId = entity.projectId) !== null && _entity$projectId !== void 0 ? _entity$projectId : null,
|
|
68
|
+
clientId: (_entity$clientId = entity.clientId) !== null && _entity$clientId !== void 0 ? _entity$clientId : null
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}, [entity === null || entity === void 0 ? void 0 : entity.projectId, entity === null || entity === void 0 ? void 0 : entity.clientId]);
|
|
60
72
|
useEffect(function () {
|
|
61
|
-
if (section === 'project') setOpenSection('project');else if (section === '
|
|
73
|
+
if (section === 'project') setOpenSection('project');else if (section === 'client') setOpenSection('client');else setOpenSection('header');
|
|
62
74
|
}, [section]);
|
|
63
75
|
var restoreConfigureSettings = useCallback(function () {
|
|
64
76
|
var _configureSettingsIte;
|
|
@@ -99,7 +111,8 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
|
|
|
99
111
|
setEntityValues: setEntityValues,
|
|
100
112
|
project: project,
|
|
101
113
|
setProject: setProject,
|
|
102
|
-
|
|
114
|
+
client: client,
|
|
115
|
+
setClient: setClient,
|
|
103
116
|
isWebSearchActive: isWebSearchActive,
|
|
104
117
|
toggleWebSearch: toggleWebSearch,
|
|
105
118
|
isDeepSearchActive: isDeepSearchActive,
|
|
@@ -108,10 +121,10 @@ export var useProjectSummaryConfig = function useProjectSummaryConfig(_ref) {
|
|
|
108
121
|
chipsProject: chipsProject,
|
|
109
122
|
setChipsProject: setChipsProject
|
|
110
123
|
};
|
|
111
|
-
}, [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,
|
|
124
|
+
}, [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, isWebSearchActive, toggleWebSearch, isDeepSearchActive, toggleDeepSearch, hasMultiAgents, chipsProject, setChipsProject]);
|
|
112
125
|
return {
|
|
113
126
|
context: context,
|
|
114
127
|
restoreConfigureSettings: restoreConfigureSettings
|
|
115
128
|
};
|
|
116
129
|
};
|
|
117
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwiYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwidXNlVXNlciIsInVzZVRXaXRoU2VjdGlvbiIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsInNlY3Rpb24iLCJlbnRpdHkiLCJwcm9qZWN0Iiwic2V0UHJvamVjdCIsImhhc011bHRpQWdlbnRzIiwiX3JlZiR0YXNrIiwidGFzayIsInVzZXIiLCJ0IiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWdlbnQiLCJzZXRBZ2VudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib3BlblNlY3Rpb24iLCJzZXRPcGVuU2VjdGlvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJzZXRJc1dlYlNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwic2V0SXNEZWVwU2VhcmNoQWN0aXZlIiwiX3VzZVN0YXRlOSIsInByb2plY3RJZCIsImNsaWVudElkIiwiX3VzZVN0YXRlMCIsImVudGl0eVZhbHVlcyIsInNldEVudGl0eVZhbHVlcyIsImNvbmZpZ3VyZVNldHRpbmdzSXRlbXMiLCJfdXNlU3RhdGUxIiwiX3Byb2plY3QkY2xpZW50IiwicHJvamVjdE5hbWUiLCJuYW1lIiwiY2xpZW50TmFtZSIsImNsaWVudCIsIlN0cmluZyIsImlkIiwidGFza0lkIiwidGFza05hbWUiLCJfdXNlU3RhdGUxMCIsImNoaXBzUHJvamVjdCIsInNldENoaXBzUHJvamVjdFN0YXRlIiwicmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzIiwiX2NvbmZpZ3VyZVNldHRpbmdzSXRlIiwiY3VycmVudCIsIm1hcCIsIml0ZW0iLCJfb2JqZWN0U3ByZWFkIiwiY2hlY2tlZCIsImhpZGRlbiIsInNlbGVjdEFnZW50IiwibmV3QWdlbnQiLCJjbGVhckFnZW50IiwidG9nZ2xlV2ViU2VhcmNoIiwicHJldiIsInRvZ2dsZURlZXBTZWFyY2giLCJzZXRDaGlwc1Byb2plY3QiLCJuZXdDaGlwc1Byb2plY3QiLCJjb250ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgQ2hpcHNQcm9qZWN0LCBTZWN0aW9uVHlwZSwgVGFza0NvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG5pbXBvcnQgeyB1c2VUV2l0aFNlY3Rpb24gfSBmcm9tICcuL3VzZVQnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vdHlwZXMvUHJvamVjdCdcblxudHlwZSBQcm9qZWN0U3VtbWFyeUNvbmZpZ1Byb3BzID0ge1xuICBzZWN0aW9uOiBTZWN0aW9uVHlwZVxuICBlbnRpdHk/OiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfSB8IG51bGxcbiAgcHJvamVjdDogUHJvamVjdCB8IG51bGxcbiAgc2V0UHJvamVjdDogKHByb2plY3Q6IFByb2plY3QgfCBudWxsKSA9PiB2b2lkXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxuICB0YXNrPzogVGFza0NvbnRleHQgfCBudWxsXG59XG5cbmV4cG9ydCBjb25zdCB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyA9ICh7XG4gIHNlY3Rpb24sXG4gIGVudGl0eSxcbiAgcHJvamVjdCxcbiAgc2V0UHJvamVjdCxcbiAgaGFzTXVsdGlBZ2VudHMsXG4gIHRhc2sgPSBudWxsLFxufTogUHJvamVjdFN1bW1hcnlDb25maWdQcm9wcykgPT4ge1xuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHQgPSB1c2VUV2l0aFNlY3Rpb24oU0VDVElPTlMuY2hhdEFJKVxuICBjb25zdCBbYWdlbnQsIHNldEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW29wZW5TZWN0aW9uLCBzZXRPcGVuU2VjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNXZWJTZWFyY2hBY3RpdmUsIHNldElzV2ViU2VhcmNoQWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbaXNEZWVwU2VhcmNoQWN0aXZlLCBzZXRJc0RlZXBTZWFyY2hBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtlbnRpdHlWYWx1ZXMsIHNldEVudGl0eVZhbHVlc10gPSB1c2VTdGF0ZTx7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfT4oZW50aXR5IHx8IHsgcHJvamVjdElkOiBudWxsLCBjbGllbnRJZDogbnVsbCB9KVxuXG4gIGNvbnN0IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMgPSB1c2VSZWYoYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zKHVzZXIsIHQpKVxuICBjb25zdCBbY2hpcHNQcm9qZWN0LCBzZXRDaGlwc1Byb2plY3RTdGF0ZV0gPSB1c2VTdGF0ZTxDaGlwc1Byb2plY3QgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdhY3Rpb25zVGFza3MnICYmIHByb2plY3QgJiYgdGFzaykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgICAgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3QuaWQpLFxuICAgICAgICB0YXNrSWQ6IHRhc2suaWQsXG4gICAgICAgIHRhc2tOYW1lOiB0YXNrLm5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VjdGlvbiA9PT0gJ3Byb2plY3QnKSBzZXRPcGVuU2VjdGlvbigncHJvamVjdCcpXG4gICAgZWxzZSBpZiAoc2VjdGlvbiA9PT0gJ2FjdGlvbnNUYXNrcycpIHNldE9wZW5TZWN0aW9uKCdhY3Rpb25zVGFza3MnKVxuICAgIGVsc2Ugc2V0T3BlblNlY3Rpb24oJ2hlYWRlcicpXG4gIH0sIFtzZWN0aW9uXSlcblxuICBjb25zdCByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uZmlndXJlU2V0dGluZ3NJdGVtcy5jdXJyZW50ID0gY29uZmlndXJlU2V0dGluZ3NJdGVtcy5jdXJyZW50Py5tYXAoaXRlbSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGNoZWNrZWQ6ICFpdGVtLmhpZGRlbixcbiAgICB9KSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2VsZWN0QWdlbnQgPSB1c2VDYWxsYmFjaygobmV3QWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgc2V0QWdlbnQobmV3QWdlbnQpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsZWFyQWdlbnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QWdlbnQobnVsbClcbiAgfSwgW10pXG5cbiAgY29uc3QgdG9nZ2xlV2ViU2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzV2ViU2VhcmNoQWN0aXZlKHByZXYgPT4gIXByZXYpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHRvZ2dsZURlZXBTZWFyY2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNEZWVwU2VhcmNoQWN0aXZlKHByZXYgPT4gIXByZXYpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNldENoaXBzUHJvamVjdCA9IHVzZUNhbGxiYWNrKChuZXdDaGlwc1Byb2plY3Q6IENoaXBzUHJvamVjdCB8IG51bGwpID0+IHtcbiAgICBzZXRDaGlwc1Byb2plY3RTdGF0ZShuZXdDaGlwc1Byb2plY3QpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBlbnRpdHlWYWx1ZXMsXG4gICAgICBzZWN0aW9uOiBvcGVuU2VjdGlvbixcbiAgICAgIGFnZW50LFxuICAgICAgc2VsZWN0QWdlbnQsXG4gICAgICBjbGVhckFnZW50LFxuICAgICAgY29uZmlndXJlU2V0dGluZ3NJdGVtcyxcbiAgICAgIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyxcbiAgICAgIHNldEVudGl0eVZhbHVlcyxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgdGFzazogdGFzayA/PyBudWxsLFxuICAgICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVEZWVwU2VhcmNoLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgICBjaGlwc1Byb2plY3QsXG4gICAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgfSksXG4gICAgW1xuICAgICAgb3BlblNlY3Rpb24sXG4gICAgICBlbnRpdHlWYWx1ZXM/LnByb2plY3RJZCxcbiAgICAgIGVudGl0eVZhbHVlcz8uY2xpZW50SWQsXG4gICAgICBhZ2VudCxcbiAgICAgIHNlbGVjdEFnZW50LFxuICAgICAgY2xlYXJBZ2VudCxcbiAgICAgIHNldEVudGl0eVZhbHVlcyxcbiAgICAgIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyxcbiAgICAgIHByb2plY3Q/LmlkLFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIHRhc2ssXG4gICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCxcbiAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICAgIHRvZ2dsZURlZXBTZWFyY2gsXG4gICAgICBoYXNNdWx0aUFnZW50cyxcbiAgICAgIGNoaXBzUHJvamVjdCxcbiAgICAgIHNldENoaXBzUHJvamVjdCxcbiAgICBdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQsXG4gICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBR3pFLFNBQVNDLFFBQVEsUUFBUSxxQkFBcUI7QUFDOUMsU0FBU0MsMkJBQTJCLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLE9BQU8sUUFBUSxxQkFBcUI7QUFHN0MsU0FBU0MsZUFBZSxRQUFRLFFBQVE7QUFleEMsT0FBTyxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFBQyxJQUFBLEVBT0g7RUFBQSxJQU4vQkMsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFDUEMsTUFBTSxHQUFBRixJQUFBLENBQU5FLE1BQU07SUFDTkMsT0FBTyxHQUFBSCxJQUFBLENBQVBHLE9BQU87SUFDUEMsVUFBVSxHQUFBSixJQUFBLENBQVZJLFVBQVU7SUFDVkMsY0FBYyxHQUFBTCxJQUFBLENBQWRLLGNBQWM7SUFBQUMsU0FBQSxHQUFBTixJQUFBLENBQ2RPLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxTQUFBLGNB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
|
|
130
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNFQ1RJT05TIiwiYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zIiwidXNlVXNlciIsInVzZVRXaXRoU2VjdGlvbiIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiX3JlZiIsInNlY3Rpb24iLCJlbnRpdHkiLCJwcm9qZWN0Iiwic2V0UHJvamVjdCIsIl9yZWYkY2xpZW50IiwiY2xpZW50IiwiaW5pdGlhbENsaWVudCIsInNldENsaWVudFByb3AiLCJzZXRDbGllbnQiLCJoYXNNdWx0aUFnZW50cyIsInVzZXIiLCJ0IiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWdlbnQiLCJzZXRBZ2VudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib3BlblNlY3Rpb24iLCJzZXRPcGVuU2VjdGlvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJzZXRJc1dlYlNlYXJjaEFjdGl2ZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwic2V0SXNEZWVwU2VhcmNoQWN0aXZlIiwiX3VzZVN0YXRlOSIsInByb2plY3RJZCIsImNsaWVudElkIiwiX3VzZVN0YXRlMCIsImVudGl0eVZhbHVlcyIsInNldEVudGl0eVZhbHVlcyIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNldENsaWVudFN0YXRlIiwiY29uZmlndXJlU2V0dGluZ3NJdGVtcyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJjaGlwc1Byb2plY3QiLCJzZXRDaGlwc1Byb2plY3RTdGF0ZSIsIl9lbnRpdHkkcHJvamVjdElkIiwiX2VudGl0eSRjbGllbnRJZCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsIl9jb25maWd1cmVTZXR0aW5nc0l0ZSIsImN1cnJlbnQiLCJtYXAiLCJpdGVtIiwiX29iamVjdFNwcmVhZCIsImNoZWNrZWQiLCJoaWRkZW4iLCJzZWxlY3RBZ2VudCIsIm5ld0FnZW50IiwiY2xlYXJBZ2VudCIsInRvZ2dsZVdlYlNlYXJjaCIsInByZXYiLCJ0b2dnbGVEZWVwU2VhcmNoIiwic2V0Q2hpcHNQcm9qZWN0IiwibmV3Q2hpcHNQcm9qZWN0IiwiY29udGV4dCIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgQ2hpcHNQcm9qZWN0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IGJ1aWxkQ29uZmlndXJlU2V0dGluZ3NJdGVtcyB9IGZyb20gJy4uL2NvbnN0YW50cy9wZXJtaXNzaW9ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcblxuaW1wb3J0IHsgdXNlVFdpdGhTZWN0aW9uIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi90eXBlcy9DbGllbnQnXG5cbnR5cGUgUHJvamVjdFN1bW1hcnlDb25maWdQcm9wcyA9IHtcbiAgc2VjdGlvbjogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xuICBlbnRpdHk/OiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfSB8IG51bGxcbiAgcHJvamVjdDogUHJvamVjdCB8IG51bGxcbiAgc2V0UHJvamVjdDogKHByb2plY3Q6IFByb2plY3QgfCBudWxsKSA9PiB2b2lkXG4gIGNsaWVudD86IENsaWVudCB8IG51bGxcbiAgc2V0Q2xpZW50PzogKGNsaWVudDogQ2xpZW50IHwgbnVsbCkgPT4gdm9pZFxuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnID0gKHtcbiAgc2VjdGlvbixcbiAgZW50aXR5LFxuICBwcm9qZWN0LFxuICBzZXRQcm9qZWN0LFxuICBjbGllbnQ6IGluaXRpYWxDbGllbnQgPSBudWxsLFxuICBzZXRDbGllbnQ6IHNldENsaWVudFByb3AsXG4gIGhhc011bHRpQWdlbnRzLFxufTogUHJvamVjdFN1bW1hcnlDb25maWdQcm9wcykgPT4ge1xuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHQgPSB1c2VUV2l0aFNlY3Rpb24oU0VDVElPTlMuY2hhdEFJKVxuICBjb25zdCBbYWdlbnQsIHNldEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW29wZW5TZWN0aW9uLCBzZXRPcGVuU2VjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNXZWJTZWFyY2hBY3RpdmUsIHNldElzV2ViU2VhcmNoQWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbaXNEZWVwU2VhcmNoQWN0aXZlLCBzZXRJc0RlZXBTZWFyY2hBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtlbnRpdHlWYWx1ZXMsIHNldEVudGl0eVZhbHVlc10gPSB1c2VTdGF0ZTx7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfT4oZW50aXR5IHx8IHsgcHJvamVjdElkOiBudWxsLCBjbGllbnRJZDogbnVsbCB9KVxuICBjb25zdCBbY2xpZW50LCBzZXRDbGllbnRTdGF0ZV0gPSB1c2VTdGF0ZTxDbGllbnQgfCBudWxsPihpbml0aWFsQ2xpZW50ID8/IG51bGwpXG5cbiAgY29uc3Qgc2V0Q2xpZW50ID0gc2V0Q2xpZW50UHJvcCA/PyBzZXRDbGllbnRTdGF0ZVxuXG4gIGNvbnN0IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMgPSB1c2VSZWYoYnVpbGRDb25maWd1cmVTZXR0aW5nc0l0ZW1zKHVzZXIsIHQpKVxuICBjb25zdCBbY2hpcHNQcm9qZWN0LCBzZXRDaGlwc1Byb2plY3RTdGF0ZV0gPSB1c2VTdGF0ZTxDaGlwc1Byb2plY3QgfCBudWxsPihudWxsKVxuXG4gIC8vIFNpbmNyb25pemFyIGNsaWVudCBjdWFuZG8gbGEgcHJvcCBsbGVndWUgZGVzcHXDqXMgZGVsIHByaW1lciByZW5kZXIgKGVqLiBzZWN0aW9uIGNsaWVudCwgZGF0b3MgYXN5bmMpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSB7XG4gICAgICBzZXRDbGllbnRTdGF0ZShpbml0aWFsQ2xpZW50ID8/IG51bGwpXG4gICAgfVxuICB9LCBbc2VjdGlvbiwgaW5pdGlhbENsaWVudF0pXG5cbiAgLy8gU2luY3Jvbml6YXIgZW50aXR5VmFsdWVzIGN1YW5kbyBlbnRpdHkgY2FtYmllIChlai4gbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbnRpdHkgIT0gbnVsbCkge1xuICAgICAgc2V0RW50aXR5VmFsdWVzKHtcbiAgICAgICAgcHJvamVjdElkOiBlbnRpdHkucHJvamVjdElkID8/IG51bGwsXG4gICAgICAgIGNsaWVudElkOiBlbnRpdHkuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbZW50aXR5Py5wcm9qZWN0SWQsIGVudGl0eT8uY2xpZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlY3Rpb24gPT09ICdwcm9qZWN0Jykgc2V0T3BlblNlY3Rpb24oJ3Byb2plY3QnKVxuICAgIGVsc2UgaWYgKHNlY3Rpb24gPT09ICdjbGllbnQnKSBzZXRPcGVuU2VjdGlvbignY2xpZW50JylcbiAgICBlbHNlIHNldE9wZW5TZWN0aW9uKCdoZWFkZXInKVxuICB9LCBbc2VjdGlvbl0pXG5cbiAgY29uc3QgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMuY3VycmVudCA9IGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMuY3VycmVudD8ubWFwKGl0ZW0gPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBjaGVja2VkOiAhaXRlbS5oaWRkZW4sXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soKG5ld0FnZW50OiBBZ2VudCkgPT4ge1xuICAgIHNldEFnZW50KG5ld0FnZW50KVxuICB9LCBbXSlcblxuICBjb25zdCBjbGVhckFnZW50ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEFnZW50KG51bGwpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHRvZ2dsZVdlYlNlYXJjaCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc1dlYlNlYXJjaEFjdGl2ZShwcmV2ID0+ICFwcmV2KVxuICB9LCBbXSlcblxuICBjb25zdCB0b2dnbGVEZWVwU2VhcmNoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzRGVlcFNlYXJjaEFjdGl2ZShwcmV2ID0+ICFwcmV2KVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRDaGlwc1Byb2plY3QgPSB1c2VDYWxsYmFjaygobmV3Q2hpcHNQcm9qZWN0OiBDaGlwc1Byb2plY3QgfCBudWxsKSA9PiB7XG4gICAgc2V0Q2hpcHNQcm9qZWN0U3RhdGUobmV3Q2hpcHNQcm9qZWN0KVxuICB9LCBbXSlcblxuICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZW50aXR5VmFsdWVzLFxuICAgICAgc2VjdGlvbjogb3BlblNlY3Rpb24sXG4gICAgICBhZ2VudCxcbiAgICAgIHNlbGVjdEFnZW50LFxuICAgICAgY2xlYXJBZ2VudCxcbiAgICAgIGNvbmZpZ3VyZVNldHRpbmdzSXRlbXMsXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MsXG4gICAgICBzZXRFbnRpdHlWYWx1ZXMsXG4gICAgICBwcm9qZWN0LFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIGNsaWVudCxcbiAgICAgIHNldENsaWVudCxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgICAgY2hpcHNQcm9qZWN0LFxuICAgICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIH0pLFxuICAgIFtcbiAgICAgIG9wZW5TZWN0aW9uLFxuICAgICAgZW50aXR5VmFsdWVzPy5wcm9qZWN0SWQsXG4gICAgICBlbnRpdHlWYWx1ZXM/LmNsaWVudElkLFxuICAgICAgYWdlbnQsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGNsZWFyQWdlbnQsXG4gICAgICBzZXRFbnRpdHlWYWx1ZXMsXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MsXG4gICAgICBwcm9qZWN0Py5pZCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQ/LmlkLFxuICAgICAgc2V0Q2xpZW50LFxuICAgICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVXZWJTZWFyY2gsXG4gICAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgICB0b2dnbGVEZWVwU2VhcmNoLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgICBjaGlwc1Byb2plY3QsXG4gICAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgXVxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0LFxuICAgIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUd6RSxTQUFTQyxRQUFRLFFBQVEscUJBQXFCO0FBQzlDLFNBQVNDLDJCQUEyQixRQUFRLDBCQUEwQjtBQUN0RSxTQUFTQyxPQUFPLFFBQVEscUJBQXFCO0FBRzdDLFNBQVNDLGVBQWUsUUFBUSxRQUFRO0FBaUJ4QyxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUFDLElBQUEsRUFRSDtFQUFBLElBUC9CQyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztJQUNQQyxNQUFNLEdBQUFGLElBQUEsQ0FBTkUsTUFBTTtJQUNOQyxPQUFPLEdBQUFILElBQUEsQ0FBUEcsT0FBTztJQUNQQyxVQUFVLEdBQUFKLElBQUEsQ0FBVkksVUFBVTtJQUFBQyxXQUFBLEdBQUFMLElBQUEsQ0FDVk0sTUFBTTtJQUFFQyxhQUFhLEdBQUFGLFdBQUEsY0FBRyxJQUFJLEdBQUFBLFdBQUE7SUFDakJHLGFBQWEsR0FBQVIsSUFBQSxDQUF4QlMsU0FBUztJQUNUQyxjQUFjLEdBQUFWLElBQUEsQ0FBZFUsY0FBYztFQUVkLElBQU1DLElBQUksR0FBR2QsT0FBTyxDQUFDLENBQUM7RUFDdEIsSUFBTWUsQ0FBQyxHQUFHZCxlQUFlLENBQUNILFFBQVEsQ0FBQ2tCLE1BQU0sQ0FBQztFQUMxQyxJQUFBQyxTQUFBLEdBQTBCckIsUUFBUSxDQUFlLElBQUksQ0FBQztJQUFBc0IsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBL0NHLEtBQUssR0FBQUYsVUFBQTtJQUFFRyxRQUFRLEdBQUFILFVBQUE7RUFDdEIsSUFBQUksVUFBQSxHQUFzQzFCLFFBQVEsQ0FB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
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
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
|
+
import { useLazyQuery } from '@apollo/client';
|
|
8
|
+
import { useEffect, useState, useCallback } from 'react';
|
|
9
|
+
import maia from '../services/maia';
|
|
10
|
+
import { useDebounce } from './useDebounce';
|
|
11
|
+
import { SEARCH_CLIENTS } from '../services/query';
|
|
12
|
+
var mapperClientsSearch = function mapperClientsSearch(values, searchValue) {
|
|
13
|
+
var _values$map;
|
|
14
|
+
return (_values$map = values === null || values === void 0 ? void 0 : values.map(function (value) {
|
|
15
|
+
var clientName = value.name || '';
|
|
16
|
+
var displayName = clientName;
|
|
17
|
+
if (searchValue && clientName.toLowerCase().includes(searchValue.toLowerCase())) {
|
|
18
|
+
var textIndex = clientName.toLowerCase().indexOf(searchValue.toLowerCase());
|
|
19
|
+
var valueToChange = clientName.slice(textIndex, textIndex + searchValue.length);
|
|
20
|
+
var escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
21
|
+
displayName = clientName.replace(new RegExp(escapedSearchValue, 'i'), "<span style=\"color: #20201F; font-weight: bold;\">".concat(valueToChange, "</span>"));
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
id: value.id,
|
|
25
|
+
name: displayName,
|
|
26
|
+
rawName: clientName,
|
|
27
|
+
totalProyectos: value.totalProyectos
|
|
28
|
+
};
|
|
29
|
+
})) !== null && _values$map !== void 0 ? _values$map : [];
|
|
30
|
+
};
|
|
31
|
+
export var useRecentClientsSearch = function useRecentClientsSearch() {
|
|
32
|
+
var _useState = useState([]),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
clients = _useState2[0],
|
|
35
|
+
setClients = _useState2[1];
|
|
36
|
+
var _useState3 = useState(true),
|
|
37
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
+
loading = _useState4[0],
|
|
39
|
+
setLoading = _useState4[1];
|
|
40
|
+
var _useState5 = useState(false),
|
|
41
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
+
error = _useState6[0],
|
|
43
|
+
setError = _useState6[1];
|
|
44
|
+
var _useState7 = useState(''),
|
|
45
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
46
|
+
searchValue = _useState8[0],
|
|
47
|
+
setSearchValue = _useState8[1];
|
|
48
|
+
var _useState9 = useState(false),
|
|
49
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
50
|
+
isQueryInProgress = _useState0[0],
|
|
51
|
+
setIsQueryInProgress = _useState0[1];
|
|
52
|
+
var debouncedSearchValue = useDebounce(searchValue, 500);
|
|
53
|
+
var _useState1 = useState(null),
|
|
54
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
55
|
+
recentClientsData = _useState10[0],
|
|
56
|
+
setRecentClientsData = _useState10[1];
|
|
57
|
+
var _useState11 = useState(false),
|
|
58
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
59
|
+
loadingRecentClients = _useState12[0],
|
|
60
|
+
setLoadingRecentClients = _useState12[1];
|
|
61
|
+
var _useState13 = useState(false),
|
|
62
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
63
|
+
recentError = _useState14[0],
|
|
64
|
+
setRecentError = _useState14[1];
|
|
65
|
+
var _useLazyQuery = useLazyQuery(SEARCH_CLIENTS, {
|
|
66
|
+
variables: {
|
|
67
|
+
page: 1,
|
|
68
|
+
perPage: 20,
|
|
69
|
+
filter: {}
|
|
70
|
+
}
|
|
71
|
+
}),
|
|
72
|
+
_useLazyQuery2 = _slicedToArray(_useLazyQuery, 2),
|
|
73
|
+
fetchSearchClients = _useLazyQuery2[0],
|
|
74
|
+
_useLazyQuery2$ = _useLazyQuery2[1],
|
|
75
|
+
searchData = _useLazyQuery2$.data,
|
|
76
|
+
loadingSearchClients = _useLazyQuery2$.loading,
|
|
77
|
+
searchError = _useLazyQuery2$.error;
|
|
78
|
+
var handleFetchSearchClients = function handleFetchSearchClients(value) {
|
|
79
|
+
var filter = value ? {
|
|
80
|
+
name: value,
|
|
81
|
+
clientStatusId: [1]
|
|
82
|
+
} : {};
|
|
83
|
+
fetchSearchClients({
|
|
84
|
+
variables: {
|
|
85
|
+
page: 1,
|
|
86
|
+
perPage: 20,
|
|
87
|
+
filter: filter
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
var fetchRecentClientsWithLoading = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
92
|
+
var data, mapped, _t;
|
|
93
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
94
|
+
while (1) switch (_context.prev = _context.next) {
|
|
95
|
+
case 0:
|
|
96
|
+
setLoading(true);
|
|
97
|
+
setError(false);
|
|
98
|
+
setRecentError(false);
|
|
99
|
+
setIsQueryInProgress(true);
|
|
100
|
+
setLoadingRecentClients(true);
|
|
101
|
+
_context.prev = 1;
|
|
102
|
+
_context.next = 2;
|
|
103
|
+
return maia.RecentClients.getRecentClients();
|
|
104
|
+
case 2:
|
|
105
|
+
data = _context.sent;
|
|
106
|
+
mapped = (Array.isArray(data) ? data : []).map(function (c) {
|
|
107
|
+
return _objectSpread({
|
|
108
|
+
id: c.id,
|
|
109
|
+
name: c.name
|
|
110
|
+
}, c.totalProyectos != null && {
|
|
111
|
+
totalProyectos: c.totalProyectos
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
setRecentClientsData(mapped);
|
|
115
|
+
_context.next = 4;
|
|
116
|
+
break;
|
|
117
|
+
case 3:
|
|
118
|
+
_context.prev = 3;
|
|
119
|
+
_t = _context["catch"](1);
|
|
120
|
+
setRecentError(true);
|
|
121
|
+
setRecentClientsData(null);
|
|
122
|
+
case 4:
|
|
123
|
+
_context.prev = 4;
|
|
124
|
+
setLoadingRecentClients(false);
|
|
125
|
+
return _context.finish(4);
|
|
126
|
+
case 5:
|
|
127
|
+
case "end":
|
|
128
|
+
return _context.stop();
|
|
129
|
+
}
|
|
130
|
+
}, _callee, null, [[1, 3, 4, 5]]);
|
|
131
|
+
})), []);
|
|
132
|
+
useEffect(function () {
|
|
133
|
+
if (loadingRecentClients || loadingSearchClients) {
|
|
134
|
+
setLoading(true);
|
|
135
|
+
setError(false);
|
|
136
|
+
}
|
|
137
|
+
if (recentError || searchError) {
|
|
138
|
+
setError(true);
|
|
139
|
+
setLoading(false);
|
|
140
|
+
setIsQueryInProgress(false);
|
|
141
|
+
}
|
|
142
|
+
}, [loadingRecentClients, loadingSearchClients, recentError, searchError]);
|
|
143
|
+
useEffect(function () {
|
|
144
|
+
var _searchData$clients;
|
|
145
|
+
if (!loadingRecentClients && !loadingSearchClients && isQueryInProgress) {
|
|
146
|
+
setIsQueryInProgress(false);
|
|
147
|
+
}
|
|
148
|
+
if (searchData !== null && searchData !== void 0 && (_searchData$clients = searchData.clients) !== null && _searchData$clients !== void 0 && _searchData$clients.data && debouncedSearchValue.trim() && !loadingSearchClients) {
|
|
149
|
+
var mapped = mapperClientsSearch(searchData.clients.data, debouncedSearchValue);
|
|
150
|
+
setClients(mapped);
|
|
151
|
+
setLoading(false);
|
|
152
|
+
setError(false);
|
|
153
|
+
}
|
|
154
|
+
if (recentClientsData !== null && !debouncedSearchValue.trim() && !loadingRecentClients && !isQueryInProgress) {
|
|
155
|
+
setClients(recentClientsData);
|
|
156
|
+
setLoading(false);
|
|
157
|
+
setError(false);
|
|
158
|
+
}
|
|
159
|
+
}, [searchData, recentClientsData, debouncedSearchValue, loadingRecentClients, loadingSearchClients, isQueryInProgress]);
|
|
160
|
+
useEffect(function () {
|
|
161
|
+
if (debouncedSearchValue.trim()) {
|
|
162
|
+
handleFetchSearchClients(debouncedSearchValue);
|
|
163
|
+
}
|
|
164
|
+
}, [debouncedSearchValue]);
|
|
165
|
+
var updateSearchValue = function updateSearchValue(newSearchValue) {
|
|
166
|
+
setSearchValue(newSearchValue);
|
|
167
|
+
};
|
|
168
|
+
return {
|
|
169
|
+
fetchRecentClients: fetchRecentClientsWithLoading,
|
|
170
|
+
recentClientsLoading: loading,
|
|
171
|
+
recentClientsError: error,
|
|
172
|
+
recentClients: clients,
|
|
173
|
+
updateSearchValue: updateSearchValue
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwibWFpYSIsInVzZURlYm91bmNlIiwiU0VBUkNIX0NMSUVOVFMiLCJtYXBwZXJDbGllbnRzU2VhcmNoIiwidmFsdWVzIiwic2VhcmNoVmFsdWUiLCJfdmFsdWVzJG1hcCIsIm1hcCIsInZhbHVlIiwiY2xpZW50TmFtZSIsIm5hbWUiLCJkaXNwbGF5TmFtZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJ0ZXh0SW5kZXgiLCJpbmRleE9mIiwidmFsdWVUb0NoYW5nZSIsInNsaWNlIiwibGVuZ3RoIiwiZXNjYXBlZFNlYXJjaFZhbHVlIiwicmVwbGFjZSIsIlJlZ0V4cCIsImNvbmNhdCIsImlkIiwicmF3TmFtZSIsInRvdGFsUHJveWVjdG9zIiwidXNlUmVjZW50Q2xpZW50c1NlYXJjaCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNsaWVudHMiLCJzZXRDbGllbnRzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2V0U2VhcmNoVmFsdWUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzUXVlcnlJblByb2dyZXNzIiwic2V0SXNRdWVyeUluUHJvZ3Jlc3MiLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInJlY2VudENsaWVudHNEYXRhIiwic2V0UmVjZW50Q2xpZW50c0RhdGEiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwibG9hZGluZ1JlY2VudENsaWVudHMiLCJzZXRMb2FkaW5nUmVjZW50Q2xpZW50cyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJyZWNlbnRFcnJvciIsInNldFJlY2VudEVycm9yIiwiX3VzZUxhenlRdWVyeSIsInZhcmlhYmxlcyIsInBhZ2UiLCJwZXJQYWdlIiwiZmlsdGVyIiwiX3VzZUxhenlRdWVyeTIiLCJmZXRjaFNlYXJjaENsaWVudHMiLCJfdXNlTGF6eVF1ZXJ5MiQiLCJzZWFyY2hEYXRhIiwiZGF0YSIsImxvYWRpbmdTZWFyY2hDbGllbnRzIiwic2VhcmNoRXJyb3IiLCJoYW5kbGVGZXRjaFNlYXJjaENsaWVudHMiLCJjbGllbnRTdGF0dXNJZCIsImZldGNoUmVjZW50Q2xpZW50c1dpdGhMb2FkaW5nIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJtYXBwZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiUmVjZW50Q2xpZW50cyIsImdldFJlY2VudENsaWVudHMiLCJzZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiYyIsIl9vYmplY3RTcHJlYWQiLCJmaW5pc2giLCJzdG9wIiwiX3NlYXJjaERhdGEkY2xpZW50cyIsInRyaW0iLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsIm5ld1NlYXJjaFZhbHVlIiwiZmV0Y2hSZWNlbnRDbGllbnRzIiwicmVjZW50Q2xpZW50c0xvYWRpbmciLCJyZWNlbnRDbGllbnRzRXJyb3IiLCJyZWNlbnRDbGllbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVJlY2VudENsaWVudHNTZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi91c2VEZWJvdW5jZSdcbmltcG9ydCB7IFNFQVJDSF9DTElFTlRTIH0gZnJvbSAnLi4vc2VydmljZXMvcXVlcnknXG5cbmV4cG9ydCB0eXBlIFJlY2VudENsaWVudFNldHRlciA9IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgLyoqIE5vbWJyZSBzaW4gSFRNTCBwYXJhIHNldENsaWVudCAoY3VhbmRvIHZpZW5lIGRlIGLDunNxdWVkYSBjb24gaGlnaGxpZ2h0KSAqL1xuICByYXdOYW1lPzogc3RyaW5nXG4gIHRvdGFsUHJveWVjdG9zPzogbnVtYmVyXG59XG5cbnR5cGUgUXVlcnlDbGllbnREYXRhID0ge1xuICBjbGllbnRzOiB7XG4gICAgdG90YWw6IG51bWJlclxuICAgIHBlclBhZ2U6IG51bWJlclxuICAgIHBhZ2U6IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZTogbnVtYmVyXG4gICAgZGF0YTogQXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHRvdGFsUHJveWVjdG9zPzogbnVtYmVyIH0+XG4gIH1cbn1cblxuY29uc3QgbWFwcGVyQ2xpZW50c1NlYXJjaCA9IChcbiAgdmFsdWVzOiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfT4sXG4gIHNlYXJjaFZhbHVlPzogc3RyaW5nXG4pOiBSZWNlbnRDbGllbnRTZXR0ZXJbXSA9PiB7XG4gIHJldHVybiAoXG4gICAgdmFsdWVzPy5tYXAodmFsdWUgPT4ge1xuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IHZhbHVlLm5hbWUgfHwgJydcbiAgICAgIGxldCBkaXNwbGF5TmFtZSA9IGNsaWVudE5hbWVcbiAgICAgIGlmIChzZWFyY2hWYWx1ZSAmJiBjbGllbnROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgY29uc3QgdGV4dEluZGV4ID0gY2xpZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgY29uc3QgdmFsdWVUb0NoYW5nZSA9IGNsaWVudE5hbWUuc2xpY2UodGV4dEluZGV4LCB0ZXh0SW5kZXggKyBzZWFyY2hWYWx1ZS5sZW5ndGgpXG4gICAgICAgIGNvbnN0IGVzY2FwZWRTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJylcbiAgICAgICAgZGlzcGxheU5hbWUgPSBjbGllbnROYW1lLnJlcGxhY2UoXG4gICAgICAgICAgbmV3IFJlZ0V4cChlc2NhcGVkU2VhcmNoVmFsdWUsICdpJyksXG4gICAgICAgICAgYDxzcGFuIHN0eWxlPVwiY29sb3I6ICMyMDIwMUY7IGZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dmFsdWVUb0NoYW5nZX08L3NwYW4+YFxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdmFsdWUuaWQsXG4gICAgICAgIG5hbWU6IGRpc3BsYXlOYW1lLFxuICAgICAgICByYXdOYW1lOiBjbGllbnROYW1lLFxuICAgICAgICB0b3RhbFByb3llY3RvczogdmFsdWUudG90YWxQcm95ZWN0b3MsXG4gICAgICB9XG4gICAgfSkgPz8gW11cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgdXNlUmVjZW50Q2xpZW50c1NlYXJjaCA9ICgpID0+IHtcbiAgY29uc3QgW2NsaWVudHMsIHNldENsaWVudHNdID0gdXNlU3RhdGU8UmVjZW50Q2xpZW50U2V0dGVyW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbaXNRdWVyeUluUHJvZ3Jlc3MsIHNldElzUXVlcnlJblByb2dyZXNzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIDUwMClcblxuICBjb25zdCBbcmVjZW50Q2xpZW50c0RhdGEsIHNldFJlY2VudENsaWVudHNEYXRhXSA9IHVzZVN0YXRlPFJlY2VudENsaWVudFNldHRlcltdIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xvYWRpbmdSZWNlbnRDbGllbnRzLCBzZXRMb2FkaW5nUmVjZW50Q2xpZW50c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3JlY2VudEVycm9yLCBzZXRSZWNlbnRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBbZmV0Y2hTZWFyY2hDbGllbnRzLCB7IGRhdGE6IHNlYXJjaERhdGEsIGxvYWRpbmc6IGxvYWRpbmdTZWFyY2hDbGllbnRzLCBlcnJvcjogc2VhcmNoRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxRdWVyeUNsaWVudERhdGE+KFNFQVJDSF9DTElFTlRTLCB7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcjoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgY29uc3QgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB2YWx1ZSA/IHsgbmFtZTogdmFsdWUsIGNsaWVudFN0YXR1c0lkOiBbMV0gfSA6IHt9XG4gICAgZmV0Y2hTZWFyY2hDbGllbnRzKHtcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmcgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0TG9hZGluZyh0cnVlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICAgIHNldFJlY2VudEVycm9yKGZhbHNlKVxuICAgIHNldElzUXVlcnlJblByb2dyZXNzKHRydWUpXG4gICAgc2V0TG9hZGluZ1JlY2VudENsaWVudHModHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IG1haWEuUmVjZW50Q2xpZW50cy5nZXRSZWNlbnRDbGllbnRzKClcbiAgICAgIGNvbnN0IG1hcHBlZCA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtdKS5tYXAoXG4gICAgICAgIChjOiB7IGlkOiBudW1iZXI7IG5hbWU6IHN0cmluZzsgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICBpZDogYy5pZCxcbiAgICAgICAgICBuYW1lOiBjLm5hbWUsXG4gICAgICAgICAgLi4uKGMudG90YWxQcm95ZWN0b3MgIT0gbnVsbCAmJiB7IHRvdGFsUHJveWVjdG9zOiBjLnRvdGFsUHJveWVjdG9zIH0pLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgc2V0UmVjZW50Q2xpZW50c0RhdGEobWFwcGVkKVxuICAgIH0gY2F0Y2gge1xuICAgICAgc2V0UmVjZW50RXJyb3IodHJ1ZSlcbiAgICAgIHNldFJlY2VudENsaWVudHNEYXRhKG51bGwpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmdSZWNlbnRDbGllbnRzKGZhbHNlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9hZGluZ1JlY2VudENsaWVudHMgfHwgbG9hZGluZ1NlYXJjaENsaWVudHMpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgIH1cbiAgICBpZiAocmVjZW50RXJyb3IgfHwgc2VhcmNoRXJyb3IpIHtcbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3MoZmFsc2UpXG4gICAgfVxuICB9LCBbbG9hZGluZ1JlY2VudENsaWVudHMsIGxvYWRpbmdTZWFyY2hDbGllbnRzLCByZWNlbnRFcnJvciwgc2VhcmNoRXJyb3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsb2FkaW5nUmVjZW50Q2xpZW50cyAmJiAhbG9hZGluZ1NlYXJjaENsaWVudHMgJiYgaXNRdWVyeUluUHJvZ3Jlc3MpIHtcbiAgICAgIHNldElzUXVlcnlJblByb2dyZXNzKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChzZWFyY2hEYXRhPy5jbGllbnRzPy5kYXRhICYmIGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSAmJiAhbG9hZGluZ1NlYXJjaENsaWVudHMpIHtcbiAgICAgIGNvbnN0IG1hcHBlZCA9IG1hcHBlckNsaWVudHNTZWFyY2goc2VhcmNoRGF0YS5jbGllbnRzLmRhdGEsIGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgICAgc2V0Q2xpZW50cyhtYXBwZWQpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRDbGllbnRzRGF0YSAhPT0gbnVsbCAmJiAhZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nUmVjZW50Q2xpZW50cyAmJiAhaXNRdWVyeUluUHJvZ3Jlc3MpIHtcbiAgICAgIHNldENsaWVudHMocmVjZW50Q2xpZW50c0RhdGEpXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICB9LCBbXG4gICAgc2VhcmNoRGF0YSxcbiAgICByZWNlbnRDbGllbnRzRGF0YSxcbiAgICBkZWJvdW5jZWRTZWFyY2hWYWx1ZSxcbiAgICBsb2FkaW5nUmVjZW50Q2xpZW50cyxcbiAgICBsb2FkaW5nU2VhcmNoQ2xpZW50cyxcbiAgICBpc1F1ZXJ5SW5Qcm9ncmVzcyxcbiAgXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGhhbmRsZUZldGNoU2VhcmNoQ2xpZW50cyhkZWJvdW5jZWRTZWFyY2hWYWx1ZSlcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgdXBkYXRlU2VhcmNoVmFsdWUgPSAobmV3U2VhcmNoVmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKG5ld1NlYXJjaFZhbHVlKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmZXRjaFJlY2VudENsaWVudHM6IGZldGNoUmVjZW50Q2xpZW50c1dpdGhMb2FkaW5nLFxuICAgIHJlY2VudENsaWVudHNMb2FkaW5nOiBsb2FkaW5nLFxuICAgIHJlY2VudENsaWVudHNFcnJvcjogZXJyb3IsXG4gICAgcmVjZW50Q2xpZW50czogY2xpZW50cyxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxZQUFZLFFBQVEsZ0JBQWdCO0FBQzdDLFNBQVNDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUN4RCxPQUFPQyxJQUFJLE1BQU0sa0JBQWtCO0FBQ25DLFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFvQmxELElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQ3ZCQyxNQUFvRSxFQUNwRUMsV0FBb0IsRUFDSztFQUFBLElBQUFDLFdBQUE7RUFDekIsUUFBQUEsV0FBQSxHQUNFRixNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRUcsR0FBRyxDQUFDLFVBQUFDLEtBQUssRUFBSTtJQUNuQixJQUFNQyxVQUFVLEdBQUdELEtBQUssQ0FBQ0UsSUFBSSxJQUFJLEVBQUU7SUFDbkMsSUFBSUMsV0FBVyxHQUFHRixVQUFVO0lBQzVCLElBQUlKLFdBQVcsSUFBSUksVUFBVSxDQUFDRyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFR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
|