@projectcor/maia-components 2.35.4-3 → 2.35.6

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 (206) hide show
  1. package/lib/App.js +19 -44
  2. package/lib/components/atoms/ActionableButton.js +6 -1
  3. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +20 -4
  4. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +18 -7
  5. package/lib/components/atoms/MAIAInput/MAIAInput.js +26 -10
  6. package/lib/components/atoms/MAIAInput/styles.js +34 -27
  7. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
  8. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +14 -10
  9. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +1 -1
  10. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +37 -57
  11. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +12 -18
  12. package/lib/components/index.js +1 -2
  13. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
  14. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +16 -5
  15. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +23 -2
  16. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +33 -5
  17. package/lib/components/molecules/ChatAIHome/styles.js +11 -2
  18. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +31 -20
  19. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +9 -10
  20. package/lib/components/molecules/ChatAIMessages/newStyles.js +26 -29
  21. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +2 -4
  22. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  23. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +8 -1
  24. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +15 -9
  25. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +14 -3
  26. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  27. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +74 -67
  28. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +14 -5
  29. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  30. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +12 -2
  31. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  32. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +36 -7
  33. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +10 -6
  34. package/lib/components/molecules/ChatFooter/ChatFooter.js +64 -48
  35. package/lib/components/molecules/ChatFooter/styles.js +12 -6
  36. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +15 -5
  37. package/lib/components/molecules/Sidebar/Sidebar.js +22 -27
  38. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  39. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +33 -0
  40. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +47 -0
  41. package/lib/components/molecules/UsageBlockedBanner/index.js +2 -0
  42. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +37 -12
  43. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +38 -19
  44. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +43 -18
  45. package/lib/components/organisms/ChatAI/ChatAI.js +6 -1
  46. package/lib/constants/permissions/index.js +2 -2
  47. package/lib/constants/permissions/utils.js +1 -4
  48. package/lib/dev/DevReasoningTimeline.js +17 -11
  49. package/lib/hooks/useChatManager/useChatManager.js +55 -34
  50. package/lib/index.js +2 -5
  51. package/lib/lang/br/index.js +4 -26
  52. package/lib/lang/en/index.js +4 -26
  53. package/lib/lang/es/index.js +4 -26
  54. package/lib/lang/fr/index.js +5 -27
  55. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  56. package/lib/services/maia/Orchestrator/orchestrator.js +5 -11
  57. package/lib/services/maia/Usage/getUsage.js +45 -0
  58. package/lib/services/maia/Usage/index.js +6 -0
  59. package/lib/services/maia/index.js +4 -2
  60. package/lib/services/utils/MaiaApiError.js +34 -0
  61. package/lib/services/utils/fetchCOR.js +106 -57
  62. package/lib/services/utils/index.js +2 -1
  63. package/lib/store/faqsStore.types.js +1 -1
  64. package/lib/store/index.js +2 -1
  65. package/lib/store/sessions/sessionStreamManager.js +112 -74
  66. package/lib/store/sessions/sessions.types.js +1 -1
  67. package/lib/store/useChatsStore.js +3 -3
  68. package/lib/store/useUsageStore.js +108 -0
  69. package/lib/styles/cascade.js +3 -29
  70. package/lib/styles/transitions.js +1 -3
  71. package/lib/types/Chat.js +1 -1
  72. package/lib/types/FrequentlyAskedQuestion.js +1 -1
  73. package/lib/types/global.d.js +1 -1
  74. package/lib/types/usage.js +9 -0
  75. package/lib/utils/streamActivityMessages.js +19 -32
  76. package/package.json +6 -9
  77. package/CHANGELOG.md +0 -727
  78. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -107
  79. package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
  80. package/lib/components/atoms/Chip/Chip.spec.js +0 -32
  81. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
  82. package/lib/components/atoms/Fade/Fade.spec.js +0 -31
  83. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
  84. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -201
  85. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
  86. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
  87. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -58
  88. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -68
  89. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
  90. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
  91. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
  92. package/lib/components/atoms/Switch/Switch.spec.js +0 -41
  93. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
  94. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -291
  95. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
  96. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -112
  97. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
  98. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
  99. package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -203
  100. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -335
  101. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -237
  102. package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
  103. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -486
  104. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -231
  105. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
  106. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
  107. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
  108. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
  109. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -229
  110. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -142
  111. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -144
  112. package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
  113. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
  114. package/lib/components/organisms/ChatAIPage/index.js +0 -3
  115. package/lib/components/organisms/ChatAIPage/pageHomeMockCards.js +0 -17
  116. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
  117. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
  118. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
  119. package/lib/dev/DevMaiaPage.js +0 -30
  120. package/lib/hooks/useCaretPosition.spec.js +0 -58
  121. package/lib/hooks/useDebounce.spec.js +0 -42
  122. package/lib/hooks/useEvent.spec.js +0 -35
  123. package/lib/hooks/useIsMaiaPageRoute.js +0 -26
  124. package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
  125. package/lib/hooks/useMentionAllowedTypes.spec.js +0 -100
  126. package/lib/hooks/useModal/useModal.spec.js +0 -73
  127. package/lib/hooks/useResize.spec.js +0 -37
  128. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
  129. package/lib/hooks/useT.spec.js +0 -20
  130. package/lib/hooks/useToggle.spec.js +0 -33
  131. package/lib/services/maia/Access/updateAccess.spec.js +0 -108
  132. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -69
  133. package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -74
  134. package/lib/services/maia/Agents/createAgent.spec.js +0 -55
  135. package/lib/services/maia/Agents/deleteAgent.spec.js +0 -42
  136. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
  137. package/lib/services/maia/Agents/getAgentById.spec.js +0 -55
  138. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -82
  139. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
  140. package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -47
  141. package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
  142. package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
  143. package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
  144. package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
  145. package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
  146. package/lib/services/maia/Chats/patchChat.spec.js +0 -41
  147. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
  148. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
  149. package/lib/services/maia/Knowledge/delete.spec.js +0 -45
  150. package/lib/services/maia/Knowledge/download.spec.js +0 -78
  151. package/lib/services/maia/Knowledge/save.spec.js +0 -58
  152. package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
  153. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -83
  154. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
  155. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
  156. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
  157. package/lib/services/maia/Skills/createSkill.spec.js +0 -59
  158. package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
  159. package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
  160. package/lib/services/maia/Skills/updateSkill.spec.js +0 -55
  161. package/lib/services/maia/client.spec.js +0 -56
  162. package/lib/services/utils/fetchCOR.spec.js +0 -211
  163. package/lib/services/utils/getCookie.spec.js +0 -20
  164. package/lib/store/chatsSidebarOptimistic.spec.js +0 -120
  165. package/lib/store/maiaLastChatPersistence.spec.js +0 -22
  166. package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
  167. package/lib/store/sessions/sessions.types.spec.js +0 -16
  168. package/lib/store/sessions/useSessionsStore.spec.js +0 -135
  169. package/lib/store/useChatsStore.spec.js +0 -619
  170. package/lib/store/useFaqsStore.spec.js +0 -57
  171. package/lib/test/buttonMock.js +0 -22
  172. package/lib/test/fetchPolyfill.js +0 -160
  173. package/lib/test/fileMock.js +0 -2
  174. package/lib/test/global-context.js +0 -49
  175. package/lib/test/iconMock.js +0 -19
  176. package/lib/test/mockFetch.js +0 -49
  177. package/lib/test/portalRoot.js +0 -13
  178. package/lib/test/styleMock.js +0 -2
  179. package/lib/test/test-utils.js +0 -26
  180. package/lib/test/tooltipMock.js +0 -11
  181. package/lib/utils/agentDisplayName.spec.js +0 -44
  182. package/lib/utils/autoApproveStorage.spec.js +0 -25
  183. package/lib/utils/chatInputFiles.spec.js +0 -39
  184. package/lib/utils/contextMentionLabel.spec.js +0 -13
  185. package/lib/utils/contextMentionTriggers.spec.js +0 -36
  186. package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
  187. package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
  188. package/lib/utils/fileDownloadHelper.spec.js +0 -67
  189. package/lib/utils/formatQuickActionMessage.spec.js +0 -27
  190. package/lib/utils/formatUnreadCount.spec.js +0 -12
  191. package/lib/utils/getUnitFileSize.spec.js +0 -18
  192. package/lib/utils/hitlAnalytics.spec.js +0 -100
  193. package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
  194. package/lib/utils/maiaPageRoute.js +0 -24
  195. package/lib/utils/maiaPageRoute.spec.js +0 -23
  196. package/lib/utils/mapBackendLang.spec.js +0 -19
  197. package/lib/utils/normalizeAgentConnectors.spec.js +0 -59
  198. package/lib/utils/orchestratorSubagents.spec.js +0 -32
  199. package/lib/utils/reasoningMappers.spec.js +0 -103
  200. package/lib/utils/retryCompletion.spec.js +0 -99
  201. package/lib/utils/skillContentSize.spec.js +0 -13
  202. package/lib/utils/slashCommandMarker.spec.js +0 -43
  203. package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
  204. package/lib/utils/sseStreamContent.spec.js +0 -31
  205. package/lib/utils/streamActivityMessages.spec.js +0 -131
  206. package/lib/utils/validateTrimmedFields.spec.js +0 -26
@@ -18,13 +18,14 @@ import { MAIAInput } from '../../atoms/MAIAInput';
18
18
  import { useGlobalContext } from '../../../context/global-context';
19
19
  import { useT } from '../../../hooks/useT';
20
20
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
21
- import { StyledChatFooter } from './styles';
21
+ import { SCComposerBlockedStack, StyledChatFooter } from './styles';
22
22
  import { TaskLinkIcon } from '../../atoms/icons/TaskLinkIcon';
23
23
  import { CsvFileIcon, MDFileIcon, DocFileIcon, DocxFileIcon, PptFileIcon, PptxFileIcon, TextFileIcon, PdfFileIcon, ImageFileIcon, XlsxFileIcon, XlsFileIcon, Mp3FileIcon, WavFileIcon, FlacFileIcon, M4aFileIcon, Mp4FileIcon, OgaFileIcon, OggFileIcon, WebmFileIcon } from '../../atoms/icons';
24
24
  import { preprocessImageForBackend } from '../../../utils/imagePreprocessor';
25
25
  import { validateIsMaia } from '../../../services/utils/validateIsMaia';
26
26
  import { isMaiakerAgent } from '../../../utils/agentDisplayName';
27
27
  import { ChatDisclaimerMessage } from '../../atoms/ChatDisclaimerMessage';
28
+ import { UsageBlockedBanner } from '../UsageBlockedBanner';
28
29
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
30
  export var IconByFileType = {
30
31
  'text/plain': /*#__PURE__*/_jsx(TextFileIcon, {}),
@@ -53,6 +54,10 @@ export function ChatFooter(_ref) {
53
54
  var onSendMessage = _ref.onSendMessage,
54
55
  items = _ref.items,
55
56
  disabled = _ref.disabled,
57
+ _ref$usageBlocked = _ref.usageBlocked,
58
+ usageBlocked = _ref$usageBlocked === void 0 ? false : _ref$usageBlocked,
59
+ _ref$usageBlockedMess = _ref.usageBlockedMessage,
60
+ usageBlockedMessage = _ref$usageBlockedMess === void 0 ? null : _ref$usageBlockedMess,
56
61
  isStreaming = _ref.isStreaming,
57
62
  isWriting = _ref.isWriting,
58
63
  onStopGeneration = _ref.onStopGeneration,
@@ -60,9 +65,7 @@ export function ChatFooter(_ref) {
60
65
  newChatKey = _ref.newChatKey,
61
66
  tooltipZIndex = _ref.tooltipZIndex,
62
67
  layoutMode = _ref.layoutMode,
63
- onInputFocus = _ref.onInputFocus,
64
- _ref$hideDisclaimer = _ref.hideDisclaimer,
65
- hideDisclaimer = _ref$hideDisclaimer === void 0 ? false : _ref$hideDisclaimer;
68
+ onInputFocus = _ref.onInputFocus;
66
69
  var _useGlobalContext = useGlobalContext(),
67
70
  project = _useGlobalContext.project,
68
71
  agent = _useGlobalContext.agent,
@@ -182,6 +185,7 @@ export function ChatFooter(_ref) {
182
185
  var handleSelectFaq = function handleSelectFaq(message, faqId) {
183
186
  onSendMessage(message, undefined, faqId, undefined);
184
187
  };
188
+ var isComposerDisabled = Boolean(disabled || usageBlocked);
185
189
  var handleFileAttach = /*#__PURE__*/function () {
186
190
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
187
191
  var _fileNameParts$pop;
@@ -189,6 +193,12 @@ export function ChatFooter(_ref) {
189
193
  return _regeneratorRuntime.wrap(function (_context) {
190
194
  while (1) switch (_context.prev = _context.next) {
191
195
  case 0:
196
+ if (!isComposerDisabled) {
197
+ _context.next = 1;
198
+ break;
199
+ }
200
+ return _context.abrupt("return");
201
+ case 1:
192
202
  fileNameParts = file.name.split('.');
193
203
  fileExtension = fileNameParts.length > 1 ? ".".concat((_fileNameParts$pop = fileNameParts.pop()) === null || _fileNameParts$pop === void 0 ? void 0 : _fileNameParts$pop.toLowerCase()) : '';
194
204
  isImageByExtension = ['.png', '.jpg', '.jpeg'].includes(fileExtension);
@@ -240,21 +250,21 @@ export function ChatFooter(_ref) {
240
250
  }
241
251
  processedFile = file; // Si es una imagen, pre-procesarla para el backend (el chip del input usa el ícono de tipo).
242
252
  if (!isImage) {
243
- _context.next = 4;
253
+ _context.next = 5;
244
254
  break;
245
255
  }
246
- _context.prev = 1;
247
- _context.next = 2;
256
+ _context.prev = 2;
257
+ _context.next = 3;
248
258
  return preprocessImageForBackend(file);
249
- case 2:
259
+ case 3:
250
260
  processedFile = _context.sent;
251
- _context.next = 4;
261
+ _context.next = 5;
252
262
  break;
253
- case 3:
254
- _context.prev = 3;
255
- _t = _context["catch"](1);
256
- console.error('Error pre-procesando imagen:', _t);
257
263
  case 4:
264
+ _context.prev = 4;
265
+ _t = _context["catch"](2);
266
+ console.error('Error pre-procesando imagen:', _t);
267
+ case 5:
258
268
  newAttachment = {
259
269
  file: processedFile,
260
270
  originalFile: isImage ? file : undefined,
@@ -267,11 +277,11 @@ export function ChatFooter(_ref) {
267
277
  setAttachments(function (prev) {
268
278
  return [].concat(_toConsumableArray(prev), [newAttachment]);
269
279
  });
270
- case 5:
280
+ case 6:
271
281
  case "end":
272
282
  return _context.stop();
273
283
  }
274
- }, _callee, null, [[1, 3]]);
284
+ }, _callee, null, [[2, 4]]);
275
285
  }));
276
286
  return function handleFileAttach(_x) {
277
287
  return _ref2.apply(this, arguments);
@@ -299,41 +309,47 @@ export function ChatFooter(_ref) {
299
309
  }) : undefined
300
310
  };
301
311
  }, [isMAIA, loadingMessages, chipItems, chipType]);
312
+ var composerInput = /*#__PURE__*/_jsx(MAIAInput, {
313
+ popoverAnchorRef: inputPopoverAnchorRef,
314
+ onSendMessage: handleSendMessage,
315
+ className: MODAL_ELEMENTS,
316
+ disabled: isComposerDisabled,
317
+ usageBlocked: usageBlocked,
318
+ placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
319
+ onChange: onChange,
320
+ onFocus: onInputFocus,
321
+ onFileAttach: handleFileAttach,
322
+ onDeleteAttachment: handleDeleteAttachment,
323
+ attachments: attachments.filter(function (att) {
324
+ return !!att.file;
325
+ }).map(function (att) {
326
+ return {
327
+ file: att.file,
328
+ originalFile: att.originalFile,
329
+ id: att.id,
330
+ name: att.name,
331
+ size: typeof att.size === 'number' ? att.size : Number(att.size) || 0,
332
+ type: att.type,
333
+ icon: att.icon
334
+ };
335
+ }),
336
+ isStreaming: isStreaming,
337
+ isWriting: isWriting,
338
+ onStopGeneration: onStopGeneration,
339
+ chatId: chatId || undefined,
340
+ newChatKey: newChatKey,
341
+ tooltipZIndex: tooltipZIndex,
342
+ layoutMode: layoutMode,
343
+ contextChip: contextChip
344
+ });
302
345
  return /*#__PURE__*/_jsxs(StyledChatFooter, {
303
- children: [/*#__PURE__*/_jsx(MAIAInput, {
304
- popoverAnchorRef: inputPopoverAnchorRef,
305
- onSendMessage: handleSendMessage,
306
- className: MODAL_ELEMENTS,
307
- disabled: disabled,
308
- placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
309
- onChange: onChange,
310
- onFocus: onInputFocus,
311
- onFileAttach: handleFileAttach,
312
- onDeleteAttachment: handleDeleteAttachment,
313
- attachments: attachments.filter(function (att) {
314
- return !!att.file;
315
- }).map(function (att) {
316
- return {
317
- file: att.file,
318
- originalFile: att.originalFile,
319
- id: att.id,
320
- name: att.name,
321
- size: typeof att.size === 'number' ? att.size : Number(att.size) || 0,
322
- type: att.type,
323
- icon: att.icon
324
- };
325
- }),
326
- isStreaming: isStreaming,
327
- isWriting: isWriting,
328
- onStopGeneration: onStopGeneration,
329
- chatId: chatId || undefined,
330
- newChatKey: newChatKey,
331
- tooltipZIndex: tooltipZIndex,
332
- layoutMode: layoutMode,
333
- contextChip: contextChip
334
- }), hideDisclaimer ? null : /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
346
+ children: [usageBlocked ? /*#__PURE__*/_jsxs(SCComposerBlockedStack, {
347
+ children: [/*#__PURE__*/_jsx(UsageBlockedBanner, {
348
+ message: usageBlockedMessage
349
+ }), composerInput]
350
+ }) : composerInput, /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
335
351
  message: disclaimerMessage
336
352
  })]
337
353
  });
338
354
  }
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiVGFza0xpbmtJY29uIiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJQcHRGaWxlSWNvbiIsIlBwdHhGaWxlSWNvbiIsIlRleHRGaWxlSWNvbiIsIlBkZkZpbGVJY29uIiwiSW1hZ2VGaWxlSWNvbiIsIlhsc3hGaWxlSWNvbiIsIlhsc0ZpbGVJY29uIiwiTXAzRmlsZUljb24iLCJXYXZGaWxlSWNvbiIsIkZsYWNGaWxlSWNvbiIsIk00YUZpbGVJY29uIiwiTXA0RmlsZUljb24iLCJPZ2FGaWxlSWNvbiIsIk9nZ0ZpbGVJY29uIiwiV2VibUZpbGVJY29uIiwicHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZCIsInZhbGlkYXRlSXNNYWlhIiwiaXNNYWlha2VyQWdlbnQiLCJDaGF0RGlzY2xhaW1lck1lc3NhZ2UiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiSWNvbkJ5RmlsZVR5cGUiLCJDaGF0Rm9vdGVyIiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJpdGVtcyIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsInRvb2x0aXBaSW5kZXgiLCJsYXlvdXRNb2RlIiwib25JbnB1dEZvY3VzIiwiX3JlZiRoaWRlRGlzY2xhaW1lciIsImhpZGVEaXNjbGFpbWVyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJwcm9qZWN0IiwiYWdlbnQiLCJjaGlwc1Byb2plY3QiLCJjbGllbnQiLCJ0YXNrIiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsIl91c2VUIiwidCIsImV2ZW50IiwiaW5wdXRQb3BvdmVyQW5jaG9yUmVmIiwiaXNPcmNoZXN0cmF0b3IiLCJ0eXBlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYXR0YWNobWVudHMiLCJzZXRBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwicmVwb3J0ZWRFdmVudCIsImlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCIsImhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSIsImUiLCJkZXRhaWwiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImN1cnJlbnQiLCJfdXNlTWVtbyIsImNoaXBJdGVtcyIsIm5hbWUiLCJjaGlwVHlwZSIsInByb2plY3ROYW1lIiwiZW50aXR5Iiwib25DaGFuZ2UiLCJwbUFpVHlwZWRUZXh0IiwiYWdlbnRfdHlwZSIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVzc2FnZSIsIm5ld0F0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiZnVhSWQiLCJzY0lkIiwiZnJvbURlZXBMaW5rIiwiQm9vbGVhbiIsImFpQ2hhdFNlbmQiLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfaWQiLCJpZCIsImFnZW50X25hbWUiLCJzb3VyY2UiLCJoYW5kbGVTZWxlY3RGYXEiLCJ1bmRlZmluZWQiLCJoYW5kbGVGaWxlQXR0YWNoIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJpc0ltYWdlIiwiZXh0ZW5zaW9uVG9JY29uIiwiaWNvbiIsImV4dGVuc2lvblRvTWltZVR5cGUiLCJtaW1lVHlwZUJ5RXh0ZW5zaW9uIiwicHJvY2Vzc2VkRmlsZSIsIm5ld0F0dGFjaG1lbnQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3BsaXQiLCJsZW5ndGgiLCJjb25jYXQiLCJwb3AiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwic3RhcnRzV2l0aCIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJzZW50IiwiY29uc29sZSIsImVycm9yIiwib3JpZ2luYWxGaWxlIiwiRGF0ZSIsIm5vdyIsIk1hdGgiLCJyYW5kb20iLCJzaXplIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVEZWxldGVBdHRhY2htZW50IiwiZmlsZUlkIiwiZmlsdGVyIiwiYXR0YWNobWVudCIsImlzTUFJQSIsImRpc2NsYWltZXJNZXNzYWdlIiwiYWdlbnROYW1lIiwiY29udGV4dENoaXAiLCJsZWFkaW5nSWNvbiIsImNoaWxkcmVuIiwicG9wb3ZlckFuY2hvclJlZiIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZvY3VzIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IE1BSUFJbnB1dCB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFJbnB1dCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IFN0eWxlZENoYXRGb290ZXIgfSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IFRhc2tMaW5rSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1Rhc2tMaW5rSWNvbidcbmltcG9ydCB7XG4gIENzdkZpbGVJY29uLFxuICBNREZpbGVJY29uLFxuICBEb2NGaWxlSWNvbixcbiAgRG9jeEZpbGVJY29uLFxuICBQcHRGaWxlSWNvbixcbiAgUHB0eEZpbGVJY29uLFxuICBUZXh0RmlsZUljb24sXG4gIFBkZkZpbGVJY29uLFxuICBJbWFnZUZpbGVJY29uLFxuICBYbHN4RmlsZUljb24sXG4gIFhsc0ZpbGVJY29uLFxuICBNcDNGaWxlSWNvbixcbiAgV2F2RmlsZUljb24sXG4gIEZsYWNGaWxlSWNvbixcbiAgTTRhRmlsZUljb24sXG4gIE1wNEZpbGVJY29uLFxuICBPZ2FGaWxlSWNvbixcbiAgT2dnRmlsZUljb24sXG4gIFdlYm1GaWxlSWNvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VQcmVwcm9jZXNzb3InXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgaXNNYWlha2VyQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4uLy4uL2F0b21zL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmltcG9ydCB0eXBlIHsgTWFpYUNoYXRNb2RhbExheW91dE1vZGUgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9sYXlvdXQnXG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgdXJsX3RodW1ibmFpbD86IHN0cmluZ1xuICB1cmxfb3JpZ2luYWw/OiBzdHJpbmdcbiAgdXJsX2ZpbGU/OiBzdHJpbmdcbiAgcm9sZT86ICd1c2VyJyB8ICdhc3Npc3RhbnQnXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxuICBleHQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ3Byb2Nlc3NpbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCcgfCAnc3RhcnRlZCdcbn1cblxudHlwZSBDaGF0Rm9vdGVyUHJvcHMgPSB7XG4gIGl0ZW1zPzogc3RyaW5nW11cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBsYXlvdXRNb2RlPzogTWFpYUNoYXRNb2RhbExheW91dE1vZGVcbiAgb25JbnB1dEZvY3VzPzogKCkgPT4gdm9pZFxuICBoaWRlRGlzY2xhaW1lcj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEljb25CeUZpbGVUeXBlID0ge1xuICAndGV4dC9wbGFpbic6IDxUZXh0RmlsZUljb24gLz4sXG4gICd0ZXh0L3gtbWFya2Rvd24nOiA8TURGaWxlSWNvbiAvPixcbiAgJ3RleHQvY3N2JzogPENzdkZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vbXN3b3JkJzogPERvY0ZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnOiA8RG9jeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnOiA8UHB0RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJzogPFBwdHhGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3BkZic6IDxQZGZGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL3BuZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnaW1hZ2UvanBlZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnaW1hZ2UvanBnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCc6IDxYbHN4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnOiA8WGxzRmlsZUljb24gLz4sXG4gICdhdWRpby9tcGVnJzogPE1wM0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vZmxhYyc6IDxGbGFjRmlsZUljb24gLz4sXG4gICdhdWRpby9tcDQnOiA8TXA0RmlsZUljb24gLz4sXG4gICdhdWRpby9tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICdhdWRpby9vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICdhdWRpby9vZ2EnOiA8T2dhRmlsZUljb24gLz4sXG4gICdhdWRpby93YXYnOiA8V2F2RmlsZUljb24gLz4sXG4gICdhdWRpby93ZWJtJzogPFdlYm1GaWxlSWNvbiAvPixcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoYXRGb290ZXIoe1xuICBvblNlbmRNZXNzYWdlLFxuICBpdGVtcyxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbiAgbGF5b3V0TW9kZSxcbiAgb25JbnB1dEZvY3VzLFxuICBoaWRlRGlzY2xhaW1lciA9IGZhbHNlLFxufTogQ2hhdEZvb3RlclByb3BzKSB7XG4gIGNvbnN0IHsgcHJvamVjdCwgYWdlbnQsIGNoaXBzUHJvamVjdCwgY2xpZW50LCB0YXNrLCBkZWVwTGlua1NlbmRQZW5kaW5nUmVmIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGlucHV0UG9wb3ZlckFuY2hvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgaXNPcmNoZXN0cmF0b3IgPSBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgY29uc3QgW2F0dGFjaG1lbnRzLCBzZXRBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPihbXSlcbiAgY29uc3QgW2xvYWRpbmdNZXNzYWdlcywgc2V0TG9hZGluZ01lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHJlcG9ydGVkRXZlbnQgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA9IGlzTWFpYWtlckFnZW50KGFnZW50KVxuXG4gIC8vIHVzZUVmZmVjdCB0byBsaXN0ZW4gbG9hZGluZ01lc3NhZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlID0gKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZXMoZS5kZXRhaWwubG9hZGluZ01lc3NhZ2VzKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIENsZWFyIGF0dGFjaG1lbnRzIHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGlmIChkZWVwTGlua1NlbmRQZW5kaW5nUmVmKSB7XG4gICAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgICBzZXRBdHRhY2htZW50cyhbXSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW2RlZXBMaW5rU2VuZFBlbmRpbmdSZWZdKVxuXG4gIGNvbnN0IHsgY2hpcEl0ZW1zLCBjaGlwVHlwZSB9ID0gdXNlTWVtbzx7IGNoaXBJdGVtczogc3RyaW5nW107IGNoaXBUeXBlPzogQ29udGV4dEVudGl0eVR5cGUgfT4oKCkgPT4ge1xuICAgIGlmIChpdGVtcykgcmV0dXJuIHsgY2hpcEl0ZW1zOiBpdGVtcyB9XG5cbiAgICAvLyBNb25vLWNvbnRleHRvOiBzb2xvIGxhIGVudGlkYWQgbcOhcyBlc3BlY8OtZmljYSAoc2luIGFuaWRhciBjbGllbnRlL3Byb3llY3RvL3RhcmVhKS5cbiAgICBpZiAoYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSB7XG4gICAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG4gICAgICBpZiAoY2xpZW50Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtjbGllbnQubmFtZV0sIGNoaXBUeXBlOiAnY2xpZW50JyB9XG4gICAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtdIH1cbiAgICB9XG5cbiAgICBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcgJiYgY2xpZW50Py5uYW1lKSB7XG4gICAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtjbGllbnQubmFtZV0sIGNoaXBUeXBlOiAnY2xpZW50JyB9XG4gICAgfVxuICAgIGlmICh0YXNrPy5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFt0YXNrLm5hbWVdLCBjaGlwVHlwZTogJ3Rhc2snIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG4gICAgaWYgKHByb2plY3Q/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Byb2plY3QubmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuXG4gICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gIH0sIFtpdGVtcywgcHJvamVjdCwgY2hpcHNQcm9qZWN0LCBhZ2VudD8uZW50aXR5LCBhZ2VudD8udHlwZSwgY2xpZW50LCB0YXNrPy5uYW1lXSlcblxuICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAocmVwb3J0ZWRFdmVudC5jdXJyZW50KSByZXR1cm5cbiAgICBldmVudChFVkVOVFMucG1BaVR5cGVkVGV4dCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgIH0pXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG5ld0F0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW10sXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgc2NJZD86IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBmcm9tRGVlcExpbmsgPSBCb29sZWFuKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWY/LmN1cnJlbnQpXG4gICAgaWYgKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYpIHtcbiAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfVxuICAgIGV2ZW50KEVWRU5UUy5haUNoYXRTZW5kLCB7XG4gICAgICBhZ2VudF90eXBlOiBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPyAnbWFya2V0cGxhY2UnIDogYWdlbnQ/LnR5cGUsXG4gICAgICBhZ2VudF9pZDogYWdlbnQ/LmlkLFxuICAgICAgYWdlbnRfbmFtZTogYWdlbnQ/Lm5hbWUsXG4gICAgICAuLi4oZnJvbURlZXBMaW5rID8geyBzb3VyY2U6ICdkZWVwX2xpbmsnIH0gOiB7fSksXG4gICAgfSlcbiAgICBvblNlbmRNZXNzYWdlKG1lc3NhZ2UsIG5ld0F0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQsIG1lbnRpb25zLCBmdWFJZCwgc2NJZClcbiAgICBzZXRBdHRhY2htZW50cyhbXSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEZhcSA9IChtZXNzYWdlOiBzdHJpbmcsIGZhcUlkOiBzdHJpbmcpID0+IHtcbiAgICBvblNlbmRNZXNzYWdlKG1lc3NhZ2UsIHVuZGVmaW5lZCwgZmFxSWQsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVBdHRhY2ggPSBhc3luYyAoZmlsZTogRmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgIC8vIFNpIGVsIE1JTUUgbm8gZGlzdGluZ3VlIGJpZW4gbGEgZXh0ZW5zacOzbiAoYXVkaW8vb2dnLCBhdWRpby9tcDQsIFBvd2VyUG9pbnQpLCB1c2FyIGVsIGljb25vIHBvciBleHRlbnNpw7NuXG4gICAgY29uc3QgZXh0ZW5zaW9uVG9JY29uOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdE5vZGU+ID0ge1xuICAgICAgJy5vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICAgICAnLm9nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgICAgICcubXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAgICAgJy5tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICAgICAnLnBwdCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgICAgICcucHB0eCc6IDxQcHR4RmlsZUljb24gLz4sXG4gICAgfVxuXG4gICAgbGV0IGljb24gPSBJY29uQnlGaWxlVHlwZVtmaWxlLnR5cGVdXG5cbiAgICAvLyBTaSBlbCB0aXBvIGVzIGF1ZGlvL29nZywgYXVkaW8vbXA0IG8gUG93ZXJQb2ludCBnZW7DqXJpY28sIHVzYXIgbGEgZXh0ZW5zacOzbiBwYXJhIGVsIGljb25vXG4gICAgaWYgKFxuICAgICAgKGZpbGUudHlwZSA9PT0gJ2F1ZGlvL29nZycgfHwgZmlsZS50eXBlID09PSAnYXVkaW8vbXA0JyB8fCBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcpICYmXG4gICAgICBmaWxlRXh0ZW5zaW9uXG4gICAgKSB7XG4gICAgICBpY29uID0gZXh0ZW5zaW9uVG9JY29uW2ZpbGVFeHRlbnNpb25dIHx8IGljb25cbiAgICB9XG5cbiAgICBpZiAoIWljb24pIHtcbiAgICAgIGNvbnN0IGV4dGVuc2lvblRvTWltZVR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICcudHh0JzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAnLm1kJzogJ3RleHQveC1tYXJrZG93bicsXG4gICAgICAgICcuY3N2JzogJ3RleHQvY3N2JyxcbiAgICAgICAgJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICAgJy5kb2N4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAgICAgJy5wcHQnOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFxuICAgICAgICAnLnBwdHgnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICcueGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICcuZmxhYyc6ICdhdWRpby9mbGFjJyxcbiAgICAgICAgJy5tNGEnOiAnYXVkaW8vbTRhJyxcbiAgICAgICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgICAgICcubXA0JzogJ2F1ZGlvL21wNCcsXG4gICAgICAgICcub2dhJzogJ2F1ZGlvL29nYScsXG4gICAgICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcud2VibSc6ICdhdWRpby93ZWJtJyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlQnlFeHRlbnNpb24gPSBleHRlbnNpb25Ub01pbWVUeXBlW2ZpbGVFeHRlbnNpb25dXG4gICAgICBpZiAobWltZVR5cGVCeUV4dGVuc2lvbikge1xuICAgICAgICBpY29uID0gSWNvbkJ5RmlsZVR5cGVbbWltZVR5cGVCeUV4dGVuc2lvbl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGljb24gPSA8QXR0YWNoIGNvbG9yPVwicmdiYSgxMzUsIDY0LCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcHJvY2Vzc2VkRmlsZSA9IGZpbGVcblxuICAgIC8vIFNpIGVzIHVuYSBpbWFnZW4sIHByZS1wcm9jZXNhcmxhIHBhcmEgZWwgYmFja2VuZCAoZWwgY2hpcCBkZWwgaW5wdXQgdXNhIGVsIMOtY29ubyBkZSB0aXBvKS5cbiAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJvY2Vzc2VkRmlsZSA9IGF3YWl0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZS1wcm9jZXNhbmRvIGltYWdlbjonLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHByb2Nlc3NlZEZpbGUsXG4gICAgICBvcmlnaW5hbEZpbGU6IGlzSW1hZ2UgPyBmaWxlIDogdW5kZWZpbmVkLFxuICAgICAgaWQ6IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxuICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgc2l6ZTogcHJvY2Vzc2VkRmlsZS5zaXplLFxuICAgICAgdHlwZTogcHJvY2Vzc2VkRmlsZS50eXBlLFxuICAgICAgaWNvbixcbiAgICB9XG5cbiAgICBzZXRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBuZXdBdHRhY2htZW50XSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmZpbHRlcihhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQuaWQgIT09IGZpbGVJZClcbiAgICBzZXRBdHRhY2htZW50cyhuZXdBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9IGlzTUFJQVxuICAgID8gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lcicsIHsgYWdlbnROYW1lOiB0KCdnbG9iYWxzLmJyYW5kTmFtZScpIH0pXG4gICAgOiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyQWdlbnQnKVxuXG4gIGNvbnN0IGNvbnRleHRDaGlwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgbG9hZGluZ01lc3NhZ2VzIHx8ICFjaGlwSXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiBjaGlwSXRlbXMsXG4gICAgICB0eXBlOiBjaGlwVHlwZSxcbiAgICAgIGxlYWRpbmdJY29uOiBjaGlwVHlwZSA9PT0gJ3Rhc2snID8gPFRhc2tMaW5rSWNvbiB3aWR0aD17MTV9IGhlaWdodD17MTV9IGNvbG9yPVwiIzgwODA4MFwiIC8+IDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfSwgW2lzTUFJQSwgbG9hZGluZ01lc3NhZ2VzLCBjaGlwSXRlbXMsIGNoaXBUeXBlXSlcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDaGF0Rm9vdGVyPlxuICAgICAgPE1BSUFJbnB1dFxuICAgICAgICBwb3BvdmVyQW5jaG9yUmVmPXtpbnB1dFBvcG92ZXJBbmNob3JSZWZ9XG4gICAgICAgIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICBhZ2VudD8uaW5wdXRfcGxhY2Vob2xkZXIgfHxcbiAgICAgICAgICAoaXNPcmNoZXN0cmF0b3IgPyB0KCdjaGF0LmZvb3Rlci5vcmNoZXN0cmF0b3JQbGFjZWhvbGRlcicpIDogdCgnY2hhdC5mb290ZXIucGxhY2Vob2xkZXInKSlcbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIG9uRm9jdXM9e29uSW5wdXRGb2N1c31cbiAgICAgICAgb25GaWxlQXR0YWNoPXtoYW5kbGVGaWxlQXR0YWNofVxuICAgICAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ9e2hhbmRsZURlbGV0ZUF0dGFjaG1lbnR9XG4gICAgICAgIGF0dGFjaG1lbnRzPXthdHRhY2htZW50c1xuICAgICAgICAgIC5maWx0ZXIoYXR0ID0+ICEhYXR0LmZpbGUpXG4gICAgICAgICAgLm1hcChhdHQgPT4gKHtcbiAgICAgICAgICAgIGZpbGU6IGF0dC5maWxlISxcbiAgICAgICAgICAgIG9yaWdpbmFsRmlsZTogYXR0Lm9yaWdpbmFsRmlsZSxcbiAgICAgICAgICAgIGlkOiBhdHQuaWQsXG4gICAgICAgICAgICBuYW1lOiBhdHQubmFtZSxcbiAgICAgICAgICAgIHNpemU6IHR5cGVvZiBhdHQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHQuc2l6ZSA6IE51bWJlcihhdHQuc2l6ZSkgfHwgMCxcbiAgICAgICAgICAgIHR5cGU6IGF0dC50eXBlLFxuICAgICAgICAgICAgaWNvbjogYXR0Lmljb24sXG4gICAgICAgICAgfSkpfVxuICAgICAgICBpc1N0cmVhbWluZz17aXNTdHJlYW1pbmd9XG4gICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufVxuICAgICAgICBjaGF0SWQ9e2NoYXRJZCB8fCB1bmRlZmluZWR9XG4gICAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICAgIGxheW91dE1vZGU9e2xheW91dE1vZGV9XG4gICAgICAgIGNvbnRleHRDaGlwPXtjb250ZXh0Q2hpcH1cbiAgICAgIC8+XG4gICAgICB7aGlkZURpc2NsYWltZXIgPyBudWxsIDogPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz59XG4gICAgPC9TdHlsZWRDaGF0Rm9vdGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQW9CQSxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUN2RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7O0FBRWpFO0FBQ0EsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUNqRCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFFMUQsU0FBU0MsZ0JBQWdCLFFBQVEsVUFBVTtBQUMzQyxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQ0VDLFdBQVcsRUFDWEMs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VCxDQUFBckgsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVzSCxpQkFBaUIsTUFDdkI3RyxjQUFjLEdBQUdILENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQyxHQUFHQSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FDMUY7TUFDRDhCLFFBQVEsRUFBRUEsUUFBUztNQUNuQm1GLE9BQU8sRUFBRTVILFlBQWE7TUFDdEI2SCxZQUFZLEVBQUUvRCxnQkFBaUI7TUFDL0JnRSxrQkFBa0IsRUFBRWhCLHNCQUF1QjtNQUMzQzNGLFdBQVcsRUFBRUEsV0FBVyxDQUNyQjZGLE1BQU0sQ0FBQyxVQUFBZSxHQUFHO1FBQUEsT0FBSSxDQUFDLENBQUNBLEdBQUcsQ0FBQzNELElBQUk7TUFBQSxFQUFDLENBQ3pCNEQsR0FBRyxDQUFDLFVBQUFELEdBQUc7UUFBQSxPQUFLO1VBQ1gzRCxJQUFJLEVBQUUyRCxHQUFHLENBQUMzRCxJQUFLO1VBQ2YrQixZQUFZLEVBQUU0QixHQUFHLENBQUM1QixZQUFZO1VBQzlCMUMsRUFBRSxFQUFFc0UsR0FBRyxDQUFDdEUsRUFBRTtVQUNWcEIsSUFBSSxFQUFFMEYsR0FBRyxDQUFDMUYsSUFBSTtVQUNkbUUsSUFBSSxFQUFFLE9BQU91QixHQUFHLENBQUN2QixJQUFJLEtBQUssUUFBUSxHQUFHdUIsR0FBRyxDQUFDdkIsSUFBSSxHQUFHeUIsTUFBTSxDQUFDRixHQUFHLENBQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDO1VBQ3JFekYsSUFBSSxFQUFFZ0gsR0FBRyxDQUFDaEgsSUFBSTtVQUNkNkQsSUFBSSxFQUFFbUQsR0FBRyxDQUFDbkQ7UUFDWixDQUFDO01BQUEsQ0FBQyxDQUFFO01BQ05uRixXQUFXLEVBQUVBLFdBQVk7TUFDekJDLFNBQVMsRUFBRUEsU0FBVTtNQUNyQkMsZ0JBQWdCLEVBQUVBLGdCQUFpQjtNQUNuQ0MsTUFBTSxFQUFFQSxNQUFNLElBQUlpRSxTQUFVO01BQzVCaEUsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCQyxhQUFhLEVBQUVBLGFBQWM7TUFDN0JDLFVBQVUsRUFBRUEsVUFBVztNQUN2QnNILFdBQVcsRUFBRUE7SUFBWSxDQUMxQixDQUFDLEVBQ0RuSCxjQUFjLEdBQUcsSUFBSSxnQkFBR2xCLElBQUEsQ0FBQ0YscUJBQXFCO01BQUMrRCxPQUFPLEVBQUVzRTtJQUFrQixDQUFFLENBQUM7RUFBQSxDQUM5RCxDQUFDO0FBRXZCIiwiaWdub3JlTGlzdCI6W119
355
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrIiwiU3R5bGVkQ2hhdEZvb3RlciIsIlRhc2tMaW5rSWNvbiIsIkNzdkZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiUHB0RmlsZUljb24iLCJQcHR4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiVXNhZ2VCbG9ja2VkQmFubmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkljb25CeUZpbGVUeXBlIiwiQ2hhdEZvb3RlciIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiaXRlbXMiLCJkaXNhYmxlZCIsIl9yZWYkdXNhZ2VCbG9ja2VkIiwidXNhZ2VCbG9ja2VkIiwiX3JlZiR1c2FnZUJsb2NrZWRNZXNzIiwidXNhZ2VCbG9ja2VkTWVzc2FnZSIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwibGF5b3V0TW9kZSIsIm9uSW5wdXRGb2N1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsImFnZW50IiwiY2hpcHNQcm9qZWN0IiwiY2xpZW50IiwidGFzayIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJfdXNlVCIsInQiLCJldmVudCIsImlucHV0UG9wb3ZlckFuY2hvclJlZiIsImlzT3JjaGVzdHJhdG9yIiwidHlwZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQiLCJoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UiLCJlIiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVNlc3Npb25DaGFuZ2UiLCJjdXJyZW50IiwiX3VzZU1lbW8iLCJjaGlwSXRlbXMiLCJuYW1lIiwiY2hpcFR5cGUiLCJwcm9qZWN0TmFtZSIsImVudGl0eSIsIm9uQ2hhbmdlIiwicG1BaVR5cGVkVGV4dCIsImFnZW50X3R5cGUiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIm1lc3NhZ2UiLCJuZXdBdHRhY2htZW50cyIsIm1lbnRpb25zIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImZyb21EZWVwTGluayIsIkJvb2xlYW4iLCJhaUNoYXRTZW5kIiwiX29iamVjdFNwcmVhZCIsImFnZW50X2lkIiwiaWQiLCJhZ2VudF9uYW1lIiwic291cmNlIiwiaGFuZGxlU2VsZWN0RmFxIiwidW5kZWZpbmVkIiwiaXNDb21wb3NlckRpc2FibGVkIiwiaGFuZGxlRmlsZUF0dGFjaCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsImZpbGVFeHRlbnNpb24iLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwiaXNJbWFnZSIsImV4dGVuc2lvblRvSWNvbiIsImljb24iLCJleHRlbnNpb25Ub01pbWVUeXBlIiwibWltZVR5cGVCeUV4dGVuc2lvbiIsInByb2Nlc3NlZEZpbGUiLCJuZXdBdHRhY2htZW50IiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0Iiwic2VudCIsImNvbnNvbGUiLCJlcnJvciIsIm9yaWdpbmFsRmlsZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic2l6ZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImZpbHRlciIsImF0dGFjaG1lbnQiLCJpc01BSUEiLCJkaXNjbGFpbWVyTWVzc2FnZSIsImFnZW50TmFtZSIsImNvbnRleHRDaGlwIiwibGVhZGluZ0ljb24iLCJjb21wb3NlcklucHV0IiwicG9wb3ZlckFuY2hvclJlZiIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZvY3VzIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyBSZWFjdE5vZGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgTUFJQUlucHV0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUlucHV0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgU0NDb21wb3NlckJsb2NrZWRTdGFjaywgU3R5bGVkQ2hhdEZvb3RlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgVGFza0xpbmtJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGFza0xpbmtJY29uJ1xuaW1wb3J0IHtcbiAgQ3N2RmlsZUljb24sXG4gIE1ERmlsZUljb24sXG4gIERvY0ZpbGVJY29uLFxuICBEb2N4RmlsZUljb24sXG4gIFBwdEZpbGVJY29uLFxuICBQcHR4RmlsZUljb24sXG4gIFRleHRGaWxlSWNvbixcbiAgUGRmRmlsZUljb24sXG4gIEltYWdlRmlsZUljb24sXG4gIFhsc3hGaWxlSWNvbixcbiAgWGxzRmlsZUljb24sXG4gIE1wM0ZpbGVJY29uLFxuICBXYXZGaWxlSWNvbixcbiAgRmxhY0ZpbGVJY29uLFxuICBNNGFGaWxlSWNvbixcbiAgTXA0RmlsZUljb24sXG4gIE9nYUZpbGVJY29uLFxuICBPZ2dGaWxlSWNvbixcbiAgV2VibUZpbGVJY29uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVByZXByb2Nlc3NvcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuaW1wb3J0IHsgVXNhZ2VCbG9ja2VkQmFubmVyIH0gZnJvbSAnLi4vVXNhZ2VCbG9ja2VkQmFubmVyJ1xuaW1wb3J0IHR5cGUgeyBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2xheW91dCdcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudEZpbGUgPSB7XG4gIGZpbGU6IEZpbGVcbiAgb3JpZ2luYWxGaWxlPzogRmlsZVxuICB1cmxfdGh1bWJuYWlsPzogc3RyaW5nXG4gIHVybF9vcmlnaW5hbD86IHN0cmluZ1xuICB1cmxfZmlsZT86IHN0cmluZ1xuICByb2xlPzogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG4gIGV4dD86IHN0cmluZ1xuICBzdGF0dXM/OiAncGVuZGluZycgfCAncHJvY2Vzc2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8ICdzdGFydGVkJ1xufVxuXG50eXBlIENoYXRGb290ZXJQcm9wcyA9IHtcbiAgaXRlbXM/OiBzdHJpbmdbXVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgLyoqIFBvb2wgZGUgdXNvcyBhZ290YWRvOiBiYW5uZXIgQmxvcXVlbyArIGNvbXBvc2VyIGRlc2hhYmlsaXRhZG8uICovXG4gIHVzYWdlQmxvY2tlZD86IGJvb2xlYW5cbiAgLyoqIE1lbnNhamUgZGVsIDQwMiB1c2FnZV9xdW90YV9leGNlZWRlZCAoeWEgbG9jYWxpemFkbykuICovXG4gIHVzYWdlQmxvY2tlZE1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBsYXlvdXRNb2RlPzogTWFpYUNoYXRNb2RhbExheW91dE1vZGVcbiAgb25JbnB1dEZvY3VzPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nOiA8UHB0eEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vcGRmJzogPFBkZkZpbGVJY29uIC8+LFxuICAnaW1hZ2UvcG5nJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGVnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogPFhsc3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6IDxYbHNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wZWcnOiA8TXAzRmlsZUljb24gLz4sXG4gICdhdWRpby9mbGFjJzogPEZsYWNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL200YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dhdic6IDxXYXZGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dlYm0nOiA8V2VibUZpbGVJY29uIC8+LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3Rlcih7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGl0ZW1zLFxuICBkaXNhYmxlZCxcbiAgdXNhZ2VCbG9ja2VkID0gZmFsc2UsXG4gIHVzYWdlQmxvY2tlZE1lc3NhZ2UgPSBudWxsLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG4gIHRvb2x0aXBaSW5kZXgsXG4gIGxheW91dE1vZGUsXG4gIG9uSW5wdXRGb2N1cyxcbn06IENoYXRGb290ZXJQcm9wcykge1xuICBjb25zdCB7IHByb2plY3QsIGFnZW50LCBjaGlwc1Byb2plY3QsIGNsaWVudCwgdGFzaywgZGVlcExpbmtTZW5kUGVuZGluZ1JlZiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBpbnB1dFBvcG92ZXJBbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9yID0gYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIGNvbnN0IFthdHRhY2htZW50cywgc2V0QXR0YWNobWVudHNdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGVbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCByZXBvcnRlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPSBpc01haWFrZXJBZ2VudChhZ2VudClcblxuICAvLyB1c2VFZmZlY3QgdG8gbGlzdGVuIGxvYWRpbmdNZXNzYWdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSA9IChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGUuZGV0YWlsLmxvYWRpbmdNZXNzYWdlcylcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBDbGVhciBhdHRhY2htZW50cyB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgICAgc2V0QXR0YWNobWVudHMoW10pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtkZWVwTGlua1NlbmRQZW5kaW5nUmVmXSlcblxuICBjb25zdCB7IGNoaXBJdGVtcywgY2hpcFR5cGUgfSA9IHVzZU1lbW88eyBjaGlwSXRlbXM6IHN0cmluZ1tdOyBjaGlwVHlwZT86IENvbnRleHRFbnRpdHlUeXBlIH0+KCgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHJldHVybiB7IGNoaXBJdGVtczogaXRlbXMgfVxuXG4gICAgLy8gTW9uby1jb250ZXh0bzogc29sbyBsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgKHNpbiBhbmlkYXIgY2xpZW50ZS9wcm95ZWN0by90YXJlYSkuXG4gICAgaWYgKGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJykge1xuICAgICAgaWYgKHRhc2s/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Rhc2submFtZV0sIGNoaXBUeXBlOiAndGFzaycgfVxuICAgICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgICAgaWYgKGNsaWVudD8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gICAgfVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnICYmIGNsaWVudD8ubmFtZSkge1xuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgIH1cbiAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgIGlmIChwcm9qZWN0Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtwcm9qZWN0Lm5hbWVdLCBjaGlwVHlwZTogJ3Byb2plY3QnIH1cblxuICAgIHJldHVybiB7IGNoaXBJdGVtczogW10gfVxuICB9LCBbaXRlbXMsIHByb2plY3QsIGNoaXBzUHJvamVjdCwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGNsaWVudCwgdGFzaz8ubmFtZV0pXG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHJlcG9ydGVkRXZlbnQuY3VycmVudCkgcmV0dXJuXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICB9KVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgZnJvbURlZXBMaW5rID0gQm9vbGVhbihkZWVwTGlua1NlbmRQZW5kaW5nUmVmPy5jdXJyZW50KVxuICAgIGlmIChkZWVwTGlua1NlbmRQZW5kaW5nUmVmKSB7XG4gICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH1cbiAgICBldmVudChFVkVOVFMuYWlDaGF0U2VuZCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgICAgLi4uKGZyb21EZWVwTGluayA/IHsgc291cmNlOiAnZGVlcF9saW5rJyB9IDoge30pLFxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCBuZXdBdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQsIHNjSWQpXG4gICAgc2V0QXR0YWNobWVudHMoW10pXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RGYXEgPSAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB7XG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIGZhcUlkLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBpc0NvbXBvc2VyRGlzYWJsZWQgPSBCb29sZWFuKGRpc2FibGVkIHx8IHVzYWdlQmxvY2tlZClcblxuICBjb25zdCBoYW5kbGVGaWxlQXR0YWNoID0gYXN5bmMgKGZpbGU6IEZpbGUpID0+IHtcbiAgICBpZiAoaXNDb21wb3NlckRpc2FibGVkKSByZXR1cm5cblxuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgIC8vIFNpIGVsIE1JTUUgbm8gZGlzdGluZ3VlIGJpZW4gbGEgZXh0ZW5zacOzbiAoYXVkaW8vb2dnLCBhdWRpby9tcDQsIFBvd2VyUG9pbnQpLCB1c2FyIGVsIGljb25vIHBvciBleHRlbnNpw7NuXG4gICAgY29uc3QgZXh0ZW5zaW9uVG9JY29uOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdE5vZGU+ID0ge1xuICAgICAgJy5vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICAgICAnLm9nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgICAgICcubXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAgICAgJy5tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICAgICAnLnBwdCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgICAgICcucHB0eCc6IDxQcHR4RmlsZUljb24gLz4sXG4gICAgfVxuXG4gICAgbGV0IGljb24gPSBJY29uQnlGaWxlVHlwZVtmaWxlLnR5cGVdXG5cbiAgICAvLyBTaSBlbCB0aXBvIGVzIGF1ZGlvL29nZywgYXVkaW8vbXA0IG8gUG93ZXJQb2ludCBnZW7DqXJpY28sIHVzYXIgbGEgZXh0ZW5zacOzbiBwYXJhIGVsIGljb25vXG4gICAgaWYgKFxuICAgICAgKGZpbGUudHlwZSA9PT0gJ2F1ZGlvL29nZycgfHwgZmlsZS50eXBlID09PSAnYXVkaW8vbXA0JyB8fCBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcpICYmXG4gICAgICBmaWxlRXh0ZW5zaW9uXG4gICAgKSB7XG4gICAgICBpY29uID0gZXh0ZW5zaW9uVG9JY29uW2ZpbGVFeHRlbnNpb25dIHx8IGljb25cbiAgICB9XG5cbiAgICBpZiAoIWljb24pIHtcbiAgICAgIGNvbnN0IGV4dGVuc2lvblRvTWltZVR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICcudHh0JzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAnLm1kJzogJ3RleHQveC1tYXJrZG93bicsXG4gICAgICAgICcuY3N2JzogJ3RleHQvY3N2JyxcbiAgICAgICAgJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICAgJy5kb2N4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAgICAgJy5wcHQnOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFxuICAgICAgICAnLnBwdHgnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICcueGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICcuZmxhYyc6ICdhdWRpby9mbGFjJyxcbiAgICAgICAgJy5tNGEnOiAnYXVkaW8vbTRhJyxcbiAgICAgICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgICAgICcubXA0JzogJ2F1ZGlvL21wNCcsXG4gICAgICAgICcub2dhJzogJ2F1ZGlvL29nYScsXG4gICAgICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcud2VibSc6ICdhdWRpby93ZWJtJyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlQnlFeHRlbnNpb24gPSBleHRlbnNpb25Ub01pbWVUeXBlW2ZpbGVFeHRlbnNpb25dXG4gICAgICBpZiAobWltZVR5cGVCeUV4dGVuc2lvbikge1xuICAgICAgICBpY29uID0gSWNvbkJ5RmlsZVR5cGVbbWltZVR5cGVCeUV4dGVuc2lvbl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGljb24gPSA8QXR0YWNoIGNvbG9yPVwicmdiYSgxMzUsIDY0LCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcHJvY2Vzc2VkRmlsZSA9IGZpbGVcblxuICAgIC8vIFNpIGVzIHVuYSBpbWFnZW4sIHByZS1wcm9jZXNhcmxhIHBhcmEgZWwgYmFja2VuZCAoZWwgY2hpcCBkZWwgaW5wdXQgdXNhIGVsIMOtY29ubyBkZSB0aXBvKS5cbiAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJvY2Vzc2VkRmlsZSA9IGF3YWl0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZS1wcm9jZXNhbmRvIGltYWdlbjonLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHByb2Nlc3NlZEZpbGUsXG4gICAgICBvcmlnaW5hbEZpbGU6IGlzSW1hZ2UgPyBmaWxlIDogdW5kZWZpbmVkLFxuICAgICAgaWQ6IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxuICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgc2l6ZTogcHJvY2Vzc2VkRmlsZS5zaXplLFxuICAgICAgdHlwZTogcHJvY2Vzc2VkRmlsZS50eXBlLFxuICAgICAgaWNvbixcbiAgICB9XG5cbiAgICBzZXRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBuZXdBdHRhY2htZW50XSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmZpbHRlcihhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQuaWQgIT09IGZpbGVJZClcbiAgICBzZXRBdHRhY2htZW50cyhuZXdBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9IGlzTUFJQVxuICAgID8gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lcicsIHsgYWdlbnROYW1lOiB0KCdnbG9iYWxzLmJyYW5kTmFtZScpIH0pXG4gICAgOiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyQWdlbnQnKVxuXG4gIGNvbnN0IGNvbnRleHRDaGlwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgbG9hZGluZ01lc3NhZ2VzIHx8ICFjaGlwSXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiBjaGlwSXRlbXMsXG4gICAgICB0eXBlOiBjaGlwVHlwZSxcbiAgICAgIGxlYWRpbmdJY29uOiBjaGlwVHlwZSA9PT0gJ3Rhc2snID8gPFRhc2tMaW5rSWNvbiB3aWR0aD17MTV9IGhlaWdodD17MTV9IGNvbG9yPVwiIzgwODA4MFwiIC8+IDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfSwgW2lzTUFJQSwgbG9hZGluZ01lc3NhZ2VzLCBjaGlwSXRlbXMsIGNoaXBUeXBlXSlcblxuICBjb25zdCBjb21wb3NlcklucHV0ID0gKFxuICAgIDxNQUlBSW5wdXRcbiAgICAgIHBvcG92ZXJBbmNob3JSZWY9e2lucHV0UG9wb3ZlckFuY2hvclJlZn1cbiAgICAgIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU31cbiAgICAgIGRpc2FibGVkPXtpc0NvbXBvc2VyRGlzYWJsZWR9XG4gICAgICB1c2FnZUJsb2NrZWQ9e3VzYWdlQmxvY2tlZH1cbiAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgYWdlbnQ/LmlucHV0X3BsYWNlaG9sZGVyIHx8XG4gICAgICAgIChpc09yY2hlc3RyYXRvciA/IHQoJ2NoYXQuZm9vdGVyLm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyJykgOiB0KCdjaGF0LmZvb3Rlci5wbGFjZWhvbGRlcicpKVxuICAgICAgfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25JbnB1dEZvY3VzfVxuICAgICAgb25GaWxlQXR0YWNoPXtoYW5kbGVGaWxlQXR0YWNofVxuICAgICAgb25EZWxldGVBdHRhY2htZW50PXtoYW5kbGVEZWxldGVBdHRhY2htZW50fVxuICAgICAgYXR0YWNobWVudHM9e2F0dGFjaG1lbnRzXG4gICAgICAgIC5maWx0ZXIoYXR0ID0+ICEhYXR0LmZpbGUpXG4gICAgICAgIC5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgZmlsZTogYXR0LmZpbGUhLFxuICAgICAgICAgIG9yaWdpbmFsRmlsZTogYXR0Lm9yaWdpbmFsRmlsZSxcbiAgICAgICAgICBpZDogYXR0LmlkLFxuICAgICAgICAgIG5hbWU6IGF0dC5uYW1lLFxuICAgICAgICAgIHNpemU6IHR5cGVvZiBhdHQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHQuc2l6ZSA6IE51bWJlcihhdHQuc2l6ZSkgfHwgMCxcbiAgICAgICAgICB0eXBlOiBhdHQudHlwZSxcbiAgICAgICAgICBpY29uOiBhdHQuaWNvbixcbiAgICAgICAgfSkpfVxuICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufVxuICAgICAgY2hhdElkPXtjaGF0SWQgfHwgdW5kZWZpbmVkfVxuICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICBsYXlvdXRNb2RlPXtsYXlvdXRNb2RlfVxuICAgICAgY29udGV4dENoaXA9e2NvbnRleHRDaGlwfVxuICAgIC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDaGF0Rm9vdGVyPlxuICAgICAge3VzYWdlQmxvY2tlZCA/IChcbiAgICAgICAgPFNDQ29tcG9zZXJCbG9ja2VkU3RhY2s+XG4gICAgICAgICAgPFVzYWdlQmxvY2tlZEJhbm5lciBtZXNzYWdlPXt1c2FnZUJsb2NrZWRNZXNzYWdlfSAvPlxuICAgICAgICAgIHtjb21wb3NlcklucHV0fVxuICAgICAgICA8L1NDQ29tcG9zZXJCbG9ja2VkU3RhY2s+XG4gICAgICApIDogKFxuICAgICAgICBjb21wb3NlcklucHV0XG4gICAgICApfVxuICAgICAgPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz5cbiAgICA8L1N0eWxlZENoYXRGb290ZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ3ZFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQzs7QUFFakU7QUFDQSxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUUxRCxTQUFTQyxzQkFBc0IsRUFBRUMsZ0JBQWdCLFFBQVEsVUFBVTtBQUNuRSxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQ0VDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxX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
@@ -3,21 +3,27 @@ import colors from '@projectcor/theme/lib/base/colors';
3
3
  export var StyledChatFooter = styled.div.withConfig({
4
4
  displayName: "styles__StyledChatFooter",
5
5
  componentId: "sc-qhd26v-0"
6
- })(["display:flex;flex-direction:column;gap:6px;width:100%;max-width:864px;"]);
6
+ })(["display:flex;flex-direction:column;gap:8px;width:100%;max-width:864px;"]);
7
+
8
+ /** Figma Bloqueo: banner absoluto arriba del input (padding-top ≈ alto del banner). */
9
+ export var SCComposerBlockedStack = styled.div.withConfig({
10
+ displayName: "styles__SCComposerBlockedStack",
11
+ componentId: "sc-qhd26v-1"
12
+ })(["position:relative;width:100%;isolation:isolate;"]);
7
13
  export var ContextBarLeft = styled.div.withConfig({
8
14
  displayName: "styles__ContextBarLeft",
9
- componentId: "sc-qhd26v-1"
15
+ componentId: "sc-qhd26v-2"
10
16
  })(["display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 auto;"]);
11
17
  export var GlobalContextLabel = styled.span.withConfig({
12
18
  displayName: "styles__GlobalContextLabel",
13
- componentId: "sc-qhd26v-2"
19
+ componentId: "sc-qhd26v-3"
14
20
  })(["display:inline-flex;align-items:center;flex-shrink:0;height:30px;padding:0 10px;border:0.5px dashed #bfbfbf;border-radius:20px;color:", ";font-size:12px;line-height:130%;white-space:nowrap;"], colors.secondary);
15
21
  export var ChipsAndFaqsRow = styled.div.withConfig({
16
22
  displayName: "styles__ChipsAndFaqsRow",
17
- componentId: "sc-qhd26v-3"
23
+ componentId: "sc-qhd26v-4"
18
24
  })(["display:flex;align-items:center;justify-content:space-between;gap:6px;box-sizing:border-box;width:100%;min-width:0;& > *:first-child{flex:0 1 auto;min-width:0;max-width:100%;}& > *:last-child{flex-shrink:0;}"]);
19
25
  export var FooterActionsRight = styled.div.withConfig({
20
26
  displayName: "styles__FooterActionsRight",
21
- componentId: "sc-qhd26v-4"
27
+ componentId: "sc-qhd26v-5"
22
28
  })(["display:flex;align-items:center;gap:8px;flex-shrink:0;"]);
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJDb250ZXh0QmFyTGVmdCIsIkdsb2JhbENvbnRleHRMYWJlbCIsInNwYW4iLCJzZWNvbmRhcnkiLCJDaGlwc0FuZEZhcXNSb3ciLCJGb290ZXJBY3Rpb25zUmlnaHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ2hhdEZvb3RlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NjRweDtcbmBcblxuZXhwb3J0IGNvbnN0IENvbnRleHRCYXJMZWZ0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMCAxIGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb250ZXh0TGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYm9yZGVyOiAwLjVweCBkYXNoZWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnNlY29uZGFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwc0FuZEZhcXNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuXG4gIC8qIENoaXAgYWwgYW5jaG8gZGVsIHRleHRvOyBzaSBubyBlbnRyYSwgZW5jb2dlIHkgdHJ1bmNhLiBBY2Npb25lcyBmaWphcyBhIGxhIGRlcmVjaGEuICovXG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEZvb3RlckFjdGlvbnNSaWdodCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdGLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhFQU16QztBQUVELE9BQU8sSUFBTUMsY0FBYyxHQUFHUCxNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFNdkM7QUFFRCxPQUFPLElBQU1FLGtCQUFrQixHQUFHUixNQUFNLENBQUNTLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzTUFRbENMLE1BQU0sQ0FBQ1MsU0FBUyxDQUkxQjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHWCxNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1TkFtQnhDO0FBRUQsT0FBTyxJQUFNTSxrQkFBa0IsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOERBSzNDIiwiaWdub3JlTGlzdCI6W119
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrIiwiQ29udGV4dEJhckxlZnQiLCJHbG9iYWxDb250ZXh0TGFiZWwiLCJzcGFuIiwic2Vjb25kYXJ5IiwiQ2hpcHNBbmRGYXFzUm93IiwiRm9vdGVyQWN0aW9uc1JpZ2h0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENoYXRGb290ZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODY0cHg7XG5gXG5cbi8qKiBGaWdtYSBCbG9xdWVvOiBiYW5uZXIgYWJzb2x1dG8gYXJyaWJhIGRlbCBpbnB1dCAocGFkZGluZy10b3Ag4omIIGFsdG8gZGVsIGJhbm5lcikuICovXG5leHBvcnQgY29uc3QgU0NDb21wb3NlckJsb2NrZWRTdGFjayA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbmBcblxuZXhwb3J0IGNvbnN0IENvbnRleHRCYXJMZWZ0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMCAxIGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb250ZXh0TGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYm9yZGVyOiAwLjVweCBkYXNoZWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnNlY29uZGFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwc0FuZEZhcXNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuXG4gIC8qIENoaXAgYWwgYW5jaG8gZGVsIHRleHRvOyBzaSBubyBlbnRyYSwgZW5jb2dlIHkgdHJ1bmNhLiBBY2Npb25lcyBmaWphcyBhIGxhIGRlcmVjaGEuICovXG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEZvb3RlckFjdGlvbnNSaWdodCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdGLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhFQU16Qzs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUdQLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVEQUkvQztBQUVELE9BQU8sSUFBTUUsY0FBYyxHQUFHUixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFNdkM7QUFFRCxPQUFPLElBQU1HLGtCQUFrQixHQUFHVCxNQUFNLENBQUNVLElBQUksQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzTUFRbENMLE1BQU0sQ0FBQ1UsU0FBUyxDQUkxQjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHWixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1TkFtQnhDO0FBRUQsT0FBTyxJQUFNTyxrQkFBa0IsR0FBR2IsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOERBSzNDIiwiaWdub3JlTGlzdCI6W119
@@ -15,6 +15,7 @@ import { useT } from '../../../hooks/useT';
15
15
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
16
16
  import { SCMFWrapperSources, SCMFSourcesSpan, StyledMessageFeedback } from './styles';
17
17
  import { useGlobalContext } from '../../../context/global-context';
18
+ import { useUsageStore } from '../../../store/useUsageStore';
18
19
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
19
20
  export var Feedback = /*#__PURE__*/function (Feedback) {
20
21
  Feedback["THUMBS_UP"] = "thumb_up";
@@ -31,6 +32,9 @@ export function MessageFeedback(_ref) {
31
32
  _useState2 = _slicedToArray(_useState, 2),
32
33
  like = _useState2[0],
33
34
  setLike = _useState2[1];
35
+ var usageBlocked = useUsageStore(function (state) {
36
+ return state.blocked;
37
+ });
34
38
  var _useGlobalContext = useGlobalContext(),
35
39
  agent = _useGlobalContext.agent;
36
40
  var _useT = useT(),
@@ -66,7 +70,13 @@ export function MessageFeedback(_ref) {
66
70
  text: content,
67
71
  className: MODAL_ELEMENTS
68
72
  }), onRetry && /*#__PURE__*/_jsx(IconButton, {
73
+ disabled: usageBlocked,
74
+ style: usageBlocked ? {
75
+ opacity: 0.5,
76
+ cursor: 'not-allowed'
77
+ } : undefined,
69
78
  handleClick: function handleClick() {
79
+ if (usageBlocked) return;
70
80
  handleSendEvent('retry');
71
81
  onRetry();
72
82
  },
@@ -77,7 +87,7 @@ export function MessageFeedback(_ref) {
77
87
  }), handleFeedback && /*#__PURE__*/_jsxs(_Fragment, {
78
88
  children: [!like || like === Feedback.THUMBS_UP ? /*#__PURE__*/_jsx(ActionableButton, {
79
89
  handleClick: function handleClick() {
80
- if (like === Feedback.THUMBS_UP) return;
90
+ if (usageBlocked || like === Feedback.THUMBS_UP) return;
81
91
  handleSendEvent('thumbs_up');
82
92
  handleFeedbackClick(Feedback.THUMBS_UP);
83
93
  },
@@ -86,10 +96,10 @@ export function MessageFeedback(_ref) {
86
96
  defaultIcon: /*#__PURE__*/_jsx(ThumbsUp, {
87
97
  className: MODAL_ELEMENTS
88
98
  }),
89
- disabled: !!like
99
+ disabled: !!like || usageBlocked
90
100
  }) : null, !like || like === Feedback.THUMBS_DOWN ? /*#__PURE__*/_jsx(ActionableButton, {
91
101
  handleClick: function handleClick() {
92
- if (like === Feedback.THUMBS_DOWN) return;
102
+ if (usageBlocked || like === Feedback.THUMBS_DOWN) return;
93
103
  handleSendEvent('thumbs_down');
94
104
  handleFeedbackClick(Feedback.THUMBS_DOWN);
95
105
  },
@@ -98,7 +108,7 @@ export function MessageFeedback(_ref) {
98
108
  defaultIcon: /*#__PURE__*/_jsx(ThumbsDown, {
99
109
  className: MODAL_ELEMENTS
100
110
  }),
101
- disabled: !!like
111
+ disabled: !!like || usageBlocked
102
112
  }) : null]
103
113
  }), !!(sources !== null && sources !== void 0 && sources.length) && /*#__PURE__*/_jsxs(SCMFWrapperSources, {
104
114
  onClick: function onClick() {
@@ -115,4 +125,4 @@ export function MessageFeedback(_ref) {
115
125
  })]
116
126
  });
117
127
  }
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIlRodW1ic0Rvd24iLCJUaHVtYnNVcCIsIkdsb2JlIiwiU291cmNlc0luZm9ybWF0aW9uTW9kYWwiLCJBY3Rpb25hYmxlQnV0dG9uIiwiQ29weVRvQ2xpcGJvYXJkIiwiSWNvbkJ1dHRvbiIsIlJldHJ5SWNvbiIsIk1PREFMX0VMRU1FTlRTIiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NNRldyYXBwZXJTb3VyY2VzIiwiU0NNRlNvdXJjZXNTcGFuIiwiU3R5bGVkTWVzc2FnZUZlZWRiYWNrIiwidXNlR2xvYmFsQ29udGV4dCIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIkZlZWRiYWNrIiwiTWVzc2FnZUZlZWRiYWNrIiwiX3JlZiIsImhhbmRsZUZlZWRiYWNrIiwiZGlzYWJsZUZlZWRiYWNrIiwiY29udGVudCIsInNvdXJjZXMiLCJvblJldHJ5IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibGlrZSIsInNldExpa2UiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiX3VzZVQiLCJ0IiwiZXZlbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzT3BlblNvdXJjZXMiLCJzZXRJc09wZW5Tb3VyY2VzIiwiaGFuZGxlQ2xpY2tTb3VyY2VzIiwidmFsdWVzIiwiaGFuZGxlRmVlZGJhY2tDbGljayIsImZlZWRiYWNrIiwiaGFuZGxlU2VuZEV2ZW50Iiwib3B0aW9uIiwiYWlDaGF0UmVzcG9uc2UiLCJhZ2VudF90eXBlIiwidHlwZSIsImFnZW50X2lkIiwiaWQiLCJhZ2VudF9uYW1lIiwibmFtZSIsImNoaWxkcmVuIiwib25DbG9zZSIsInRleHQiLCJjbGFzc05hbWUiLCJoYW5kbGVDbGljayIsInRvb2x0aXAiLCJUSFVNQlNfVVAiLCJjaGVja1Rvb2x0aXAiLCJkZWZhdWx0SWNvbiIsImRpc2FibGVkIiwiVEhVTUJTX0RPV04iLCJsZW5ndGgiLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9NZXNzYWdlRmVlZGJhY2svTWVzc2FnZUZlZWRiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9yZXF1aXJlLWRlZmF1bHQtcHJvcHMgKi9cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUaHVtYnNEb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVGh1bWJzRG93bidcbmltcG9ydCB7IFRodW1ic1VwIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVGh1bWJzVXAnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgU291cmNlc0luZm9ybWF0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvU291cmNlc0luZm9ybWF0aW9uJ1xuaW1wb3J0IHsgQWN0aW9uYWJsZUJ1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0FjdGlvbmFibGVCdXR0b24nXG5pbXBvcnQgeyBDb3B5VG9DbGlwYm9hcmQgfSBmcm9tICcuLi8uLi9hdG9tcy9Db3B5VG9DbGlwYm9hcmQnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vYXRvbXMvSWNvbkJ1dHRvbidcbmltcG9ydCB7IFJldHJ5SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1JldHJ5SWNvbidcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IFNDTUZXcmFwcGVyU291cmNlcywgU0NNRlNvdXJjZXNTcGFuLCBTdHlsZWRNZXNzYWdlRmVlZGJhY2sgfSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuXG5leHBvcnQgZW51bSBGZWVkYmFjayB7XG4gIFRIVU1CU19VUCA9ICd0aHVtYl91cCcsXG4gIFRIVU1CU19ET1dOID0gJ3RodW1iX2Rvd24nLFxufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlRmVlZGJhY2tQcm9wcyA9IHtcbiAgaGFuZGxlRmVlZGJhY2s/OiAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB2b2lkXG4gIGRpc2FibGVGZWVkYmFjaz86IEZlZWRiYWNrIHwgbnVsbFxuICBjb250ZW50OiBzdHJpbmdcbiAgc291cmNlcz86IGFueVxuICBvblJldHJ5PzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gTWVzc2FnZUZlZWRiYWNrKHsgaGFuZGxlRmVlZGJhY2ssIGRpc2FibGVGZWVkYmFjaywgY29udGVudCwgc291cmNlcywgb25SZXRyeSB9OiBNZXNzYWdlRmVlZGJhY2tQcm9wcykge1xuICBjb25zdCBbbGlrZSwgc2V0TGlrZV0gPSB1c2VTdGF0ZTxhbnk+KGRpc2FibGVGZWVkYmFjaylcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbaXNPcGVuU291cmNlcywgc2V0SXNPcGVuU291cmNlc10gPSB1c2VTdGF0ZTxhbnk+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tTb3VyY2VzID0gKHZhbHVlczogYW55KSA9PiB7XG4gICAgc2V0SXNPcGVuU291cmNlcyh2YWx1ZXMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGZWVkYmFja0NsaWNrID0gKGZlZWRiYWNrOiBGZWVkYmFjaykgPT4ge1xuICAgIHNldExpa2UoZmVlZGJhY2spXG4gICAgaGFuZGxlRmVlZGJhY2s/LihmZWVkYmFjaylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRFdmVudCA9IChvcHRpb246IHN0cmluZykgPT4ge1xuICAgIGV2ZW50KEVWRU5UUy5haUNoYXRSZXNwb25zZSwge1xuICAgICAgYWdlbnRfdHlwZTogYWdlbnQ/LnR5cGUsXG4gICAgICBvcHRpb24sXG4gICAgICBhZ2VudF9pZDogYWdlbnQ/LmlkLFxuICAgICAgYWdlbnRfbmFtZTogYWdlbnQ/Lm5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtpc09wZW5Tb3VyY2VzICYmIDxTb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCBzb3VyY2VzPXtpc09wZW5Tb3VyY2VzfSBvbkNsb3NlPXsoKSA9PiBzZXRJc09wZW5Tb3VyY2VzKG51bGwpfSAvPn1cbiAgICAgIDxTdHlsZWRNZXNzYWdlRmVlZGJhY2s+XG4gICAgICAgIDxDb3B5VG9DbGlwYm9hcmQgdGV4dD17Y29udGVudH0gY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU30gLz5cbiAgICAgICAge29uUmV0cnkgJiYgKFxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBoYW5kbGVDbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBoYW5kbGVTZW5kRXZlbnQoJ3JldHJ5JylcbiAgICAgICAgICAgICAgb25SZXRyeSgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdG9vbHRpcD17dCgnY2hhdC5yZXRyeScpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXRyeUljb24gY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU30gLz5cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIHtoYW5kbGVGZWVkYmFjayAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbGlrZSB8fCBsaWtlID09PSBGZWVkYmFjay5USFVNQlNfVVAgPyAoXG4gICAgICAgICAgICAgIDxBY3Rpb25hYmxlQnV0dG9uXG4gICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChsaWtlID09PSBGZWVkYmFjay5USFVNQlNfVVApIHJldHVyblxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2VuZEV2ZW50KCd0aHVtYnNfdXAnKVxuICAgICAgICAgICAgICAgICAgaGFuZGxlRmVlZGJhY2tDbGljayhGZWVkYmFjay5USFVNQlNfVVApXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0b29sdGlwPXt0KCdmZWVkYmFjay50aHVtYnNVcCcpfVxuICAgICAgICAgICAgICAgIGNoZWNrVG9vbHRpcD17dCgnZ2xvYmFscy5zYXZlZCcpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRJY29uPXs8VGh1bWJzVXAgY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU30gLz59XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyEhbGlrZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgeyFsaWtlIHx8IGxpa2UgPT09IEZlZWRiYWNrLlRIVU1CU19ET1dOID8gKFxuICAgICAgICAgICAgICA8QWN0aW9uYWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgIGhhbmRsZUNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAobGlrZSA9PT0gRmVlZGJhY2suVEhVTUJTX0RPV04pIHJldHVyblxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2VuZEV2ZW50KCd0aHVtYnNfZG93bicpXG4gICAgICAgICAgICAgICAgICBoYW5kbGVGZWVkYmFja0NsaWNrKEZlZWRiYWNrLlRIVU1CU19ET1dOKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdG9vbHRpcD17dCgnZmVlZGJhY2sudGh1bWJzRG93bicpfVxuICAgICAgICAgICAgICAgIGNoZWNrVG9vbHRpcD17dCgnZ2xvYmFscy5zYXZlZCcpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRJY29uPXs8VGh1bWJzRG93biBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfSAvPn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ISFsaWtlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHshIXNvdXJjZXM/Lmxlbmd0aCAmJiAoXG4gICAgICAgICAgPFNDTUZXcmFwcGVyU291cmNlc1xuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBoYW5kbGVDbGlja1NvdXJjZXMoc291cmNlcylcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEdsb2JlIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjNjY2NjY2XCIgLz5cbiAgICAgICAgICAgIDxTQ01GU291cmNlc1NwYW4+e3QoJ2ZlZWRiYWNrLnNvdXJjZXMnKX08L1NDTUZTb3VyY2VzU3Bhbj5cbiAgICAgICAgICA8L1NDTUZXcmFwcGVyU291cmNlcz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkTWVzc2FnZUZlZWRiYWNrPlxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxRQUFRLE9BQU87QUFDaEMsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxRQUFRLFFBQVEsMkNBQTJDO0FBQ3BFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsdUJBQXVCLFFBQVEsb0NBQW9DO0FBQzVFLFNBQVNDLGdCQUFnQixRQUFRLDhC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
128
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIlRodW1ic0Rvd24iLCJUaHVtYnNVcCIsIkdsb2JlIiwiU291cmNlc0luZm9ybWF0aW9uTW9kYWwiLCJBY3Rpb25hYmxlQnV0dG9uIiwiQ29weVRvQ2xpcGJvYXJkIiwiSWNvbkJ1dHRvbiIsIlJldHJ5SWNvbiIsIk1PREFMX0VMRU1FTlRTIiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NNRldyYXBwZXJTb3VyY2VzIiwiU0NNRlNvdXJjZXNTcGFuIiwiU3R5bGVkTWVzc2FnZUZlZWRiYWNrIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzYWdlU3RvcmUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJGZWVkYmFjayIsIk1lc3NhZ2VGZWVkYmFjayIsIl9yZWYiLCJoYW5kbGVGZWVkYmFjayIsImRpc2FibGVGZWVkYmFjayIsImNvbnRlbnQiLCJzb3VyY2VzIiwib25SZXRyeSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxpa2UiLCJzZXRMaWtlIiwidXNhZ2VCbG9ja2VkIiwic3RhdGUiLCJibG9ja2VkIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc09wZW5Tb3VyY2VzIiwic2V0SXNPcGVuU291cmNlcyIsImhhbmRsZUNsaWNrU291cmNlcyIsInZhbHVlcyIsImhhbmRsZUZlZWRiYWNrQ2xpY2siLCJmZWVkYmFjayIsImhhbmRsZVNlbmRFdmVudCIsIm9wdGlvbiIsImFpQ2hhdFJlc3BvbnNlIiwiYWdlbnRfdHlwZSIsInR5cGUiLCJhZ2VudF9pZCIsImlkIiwiYWdlbnRfbmFtZSIsIm5hbWUiLCJjaGlsZHJlbiIsIm9uQ2xvc2UiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJzdHlsZSIsIm9wYWNpdHkiLCJjdXJzb3IiLCJ1bmRlZmluZWQiLCJoYW5kbGVDbGljayIsInRvb2x0aXAiLCJUSFVNQlNfVVAiLCJjaGVja1Rvb2x0aXAiLCJkZWZhdWx0SWNvbiIsIlRIVU1CU19ET1dOIiwibGVuZ3RoIiwib25DbGljayIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGh1bWJzRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RodW1ic0Rvd24nXG5pbXBvcnQgeyBUaHVtYnNVcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RodW1ic1VwJ1xuaW1wb3J0IHsgR2xvYmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9HbG9iZSdcbmltcG9ydCB7IFNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL1NvdXJjZXNJbmZvcm1hdGlvbidcbmltcG9ydCB7IEFjdGlvbmFibGVCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9BY3Rpb25hYmxlQnV0dG9uJ1xuaW1wb3J0IHsgQ29weVRvQ2xpcGJvYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ29weVRvQ2xpcGJvYXJkJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ljb25CdXR0b24nXG5pbXBvcnQgeyBSZXRyeUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9SZXRyeUljb24nXG5pbXBvcnQgeyBNT0RBTF9FTEVNRU5UUyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1vZGFsL3VzZU1vZGFsJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBTQ01GV3JhcHBlclNvdXJjZXMsIFNDTUZTb3VyY2VzU3BhbiwgU3R5bGVkTWVzc2FnZUZlZWRiYWNrIH0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVVzYWdlU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VVc2FnZVN0b3JlJ1xuXG5leHBvcnQgZW51bSBGZWVkYmFjayB7XG4gIFRIVU1CU19VUCA9ICd0aHVtYl91cCcsXG4gIFRIVU1CU19ET1dOID0gJ3RodW1iX2Rvd24nLFxufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlRmVlZGJhY2tQcm9wcyA9IHtcbiAgaGFuZGxlRmVlZGJhY2s/OiAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB2b2lkXG4gIGRpc2FibGVGZWVkYmFjaz86IEZlZWRiYWNrIHwgbnVsbFxuICBjb250ZW50OiBzdHJpbmdcbiAgc291cmNlcz86IGFueVxuICBvblJldHJ5PzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gTWVzc2FnZUZlZWRiYWNrKHsgaGFuZGxlRmVlZGJhY2ssIGRpc2FibGVGZWVkYmFjaywgY29udGVudCwgc291cmNlcywgb25SZXRyeSB9OiBNZXNzYWdlRmVlZGJhY2tQcm9wcykge1xuICBjb25zdCBbbGlrZSwgc2V0TGlrZV0gPSB1c2VTdGF0ZTxhbnk+KGRpc2FibGVGZWVkYmFjaylcbiAgY29uc3QgdXNhZ2VCbG9ja2VkID0gdXNlVXNhZ2VTdG9yZShzdGF0ZSA9PiBzdGF0ZS5ibG9ja2VkKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IFtpc09wZW5Tb3VyY2VzLCBzZXRJc09wZW5Tb3VyY2VzXSA9IHVzZVN0YXRlPGFueT4obnVsbClcblxuICBjb25zdCBoYW5kbGVDbGlja1NvdXJjZXMgPSAodmFsdWVzOiBhbnkpID0+IHtcbiAgICBzZXRJc09wZW5Tb3VyY2VzKHZhbHVlcylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrQ2xpY2sgPSAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB7XG4gICAgc2V0TGlrZShmZWVkYmFjaylcbiAgICBoYW5kbGVGZWVkYmFjaz8uKGZlZWRiYWNrKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZEV2ZW50ID0gKG9wdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgZXZlbnQoRVZFTlRTLmFpQ2hhdFJlc3BvbnNlLCB7XG4gICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIG9wdGlvbixcbiAgICAgIGFnZW50X2lkOiBhZ2VudD8uaWQsXG4gICAgICBhZ2VudF9uYW1lOiBhZ2VudD8ubmFtZSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2lzT3BlblNvdXJjZXMgJiYgPFNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIHNvdXJjZXM9e2lzT3BlblNvdXJjZXN9IG9uQ2xvc2U9eygpID0+IHNldElzT3BlblNvdXJjZXMobnVsbCl9IC8+fVxuICAgICAgPFN0eWxlZE1lc3NhZ2VGZWVkYmFjaz5cbiAgICAgICAgPENvcHlUb0NsaXBib2FyZCB0ZXh0PXtjb250ZW50fSBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfSAvPlxuICAgICAgICB7b25SZXRyeSAmJiAoXG4gICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgIGRpc2FibGVkPXt1c2FnZUJsb2NrZWR9XG4gICAgICAgICAgICBzdHlsZT17dXNhZ2VCbG9ja2VkID8geyBvcGFjaXR5OiAwLjUsIGN1cnNvcjogJ25vdC1hbGxvd2VkJyB9IDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgaGFuZGxlQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHVzYWdlQmxvY2tlZCkgcmV0dXJuXG4gICAgICAgICAgICAgIGhhbmRsZVNlbmRFdmVudCgncmV0cnknKVxuICAgICAgICAgICAgICBvblJldHJ5KClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0b29sdGlwPXt0KCdjaGF0LnJldHJ5Jyl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFJldHJ5SWNvbiBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfSAvPlxuICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAge2hhbmRsZUZlZWRiYWNrICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFsaWtlIHx8IGxpa2UgPT09IEZlZWRiYWNrLlRIVU1CU19VUCA/IChcbiAgICAgICAgICAgICAgPEFjdGlvbmFibGVCdXR0b25cbiAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHVzYWdlQmxvY2tlZCB8fCBsaWtlID09PSBGZWVkYmFjay5USFVNQlNfVVApIHJldHVyblxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2VuZEV2ZW50KCd0aHVtYnNfdXAnKVxuICAgICAgICAgICAgICAgICAgaGFuZGxlRmVlZGJhY2tDbGljayhGZWVkYmFjay5USFVNQlNfVVApXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0b29sdGlwPXt0KCdmZWVkYmFjay50aHVtYnNVcCcpfVxuICAgICAgICAgICAgICAgIGNoZWNrVG9vbHRpcD17dCgnZ2xvYmFscy5zYXZlZCcpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRJY29uPXs8VGh1bWJzVXAgY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU30gLz59XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyEhbGlrZSB8fCB1c2FnZUJsb2NrZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHshbGlrZSB8fCBsaWtlID09PSBGZWVkYmFjay5USFVNQlNfRE9XTiA/IChcbiAgICAgICAgICAgICAgPEFjdGlvbmFibGVCdXR0b25cbiAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHVzYWdlQmxvY2tlZCB8fCBsaWtlID09PSBGZWVkYmFjay5USFVNQlNfRE9XTikgcmV0dXJuXG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5kRXZlbnQoJ3RodW1ic19kb3duJylcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUZlZWRiYWNrQ2xpY2soRmVlZGJhY2suVEhVTUJTX0RPV04pXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0b29sdGlwPXt0KCdmZWVkYmFjay50aHVtYnNEb3duJyl9XG4gICAgICAgICAgICAgICAgY2hlY2tUb29sdGlwPXt0KCdnbG9iYWxzLnNhdmVkJyl9XG4gICAgICAgICAgICAgICAgZGVmYXVsdEljb249ezxUaHVtYnNEb3duIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9IC8+fVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshIWxpa2UgfHwgdXNhZ2VCbG9ja2VkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHshIXNvdXJjZXM/Lmxlbmd0aCAmJiAoXG4gICAgICAgICAgPFNDTUZXcmFwcGVyU291cmNlc1xuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBoYW5kbGVDbGlja1NvdXJjZXMoc291cmNlcylcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEdsb2JlIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjNjY2NjY2XCIgLz5cbiAgICAgICAgICAgIDxTQ01GU291cmNlc1NwYW4+e3QoJ2ZlZWRiYWNrLnNvdXJjZXMnKX08L1NDTUZTb3VyY2VzU3Bhbj5cbiAgICAgICAgICA8L1NDTUZXcmFwcGVyU291cmNlcz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkTWVzc2FnZUZlZWRiYWNrPlxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0EsU0FBU0EsUUFBUSxRQUFRLE9BQU87QUFDaEMsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxRQUFRLFFBQVEsMkNBQTJDO0FBQ3BFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsdUJBQXVCLFFBQVEsb0NBQW9DO0FBQzVFLFNBQVNDLGdCQUFnQixRQUFRLDhCQUE4QjtBQUMvRCxTQUFTQyxlQUFlLFFBQVEsNkJBQTZCO0FBQzdELFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FBU0MsU0FBUyxRQUFRLDZCQUE2QjtBQUN2RCxTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBQ2pFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLGtCQUFrQixFQUFFQyxlQUFlLEVBQUVDLHFCQUFxQixRQUFRLFVBQVU7QUFDckYsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLGFBQWEsUUFBUSw4QkFBOEI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUU1RCxXQUFZQyxRQUFRLDBCQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFBLE9BQVJBLFFBQVE7QUFBQTtBQWFwQixPQUFPLFNB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