@projectcor/maia-components 2.44.5-0 → 2.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/README.md +2 -0
  2. package/lib/App.js +19 -44
  3. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +51 -5
  4. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +76 -18
  5. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +31 -3
  6. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +4 -2
  7. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +255 -15
  8. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +34 -5
  9. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +1 -3
  10. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -19
  11. package/lib/components/atoms/MAIAInput/MAIAInput.js +10 -4
  12. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +60 -8
  13. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +15 -3
  14. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
  15. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +16 -21
  16. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +5 -7
  17. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +52 -72
  18. package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +1 -6
  19. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +15 -36
  20. package/lib/components/index.js +1 -2
  21. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +29 -5
  22. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +40 -6
  23. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +90 -18
  24. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +15 -5
  25. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
  26. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +6 -21
  27. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +47 -19
  28. package/lib/components/molecules/ChatAIMessages/newStyles.js +26 -29
  29. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +4 -147
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +108 -64
  31. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +2 -3
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +153 -15
  33. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -2
  34. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +86 -76
  35. package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -5
  36. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +44 -9
  37. package/lib/components/molecules/Sidebar/Sidebar.js +23 -41
  38. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +171 -56
  39. package/lib/constants/permissions/index.js +2 -2
  40. package/lib/constants/permissions/utils.js +1 -4
  41. package/lib/dev/DevReasoningTimeline.js +37 -68
  42. package/lib/dev/Providers.js +3 -5
  43. package/lib/hooks/useChatManager/useChatManager.js +351 -76
  44. package/lib/hooks/useChatMessages/useChatMessages.js +82 -12
  45. package/lib/hooks/useClientSearch.js +32 -4
  46. package/lib/hooks/useContextMentions.js +163 -2
  47. package/lib/hooks/useContextPinPopover.js +75 -16
  48. package/lib/hooks/useEntitySearch.js +391 -38
  49. package/lib/hooks/useFrequentlyUsedActions.js +22 -60
  50. package/lib/hooks/useMentionPopover.js +35 -9
  51. package/lib/hooks/useMinimizedPillBottomOffset.js +45 -15
  52. package/lib/hooks/useProjectSearch.js +58 -4
  53. package/lib/hooks/useProjectSummaryConfig.js +52 -14
  54. package/lib/hooks/useRecentClientsSearch.js +32 -4
  55. package/lib/index.js +2 -5
  56. package/lib/lang/approvalBoxToolActions.js +492 -0
  57. package/lib/lang/br/index.js +23 -59
  58. package/lib/lang/en/index.js +23 -59
  59. package/lib/lang/es/index.js +23 -59
  60. package/lib/lang/fr/index.js +23 -59
  61. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  62. package/lib/services/maia/Agents/getAgents.js +242 -78
  63. package/lib/services/maia/Orchestrator/orchestrator.js +121 -38
  64. package/lib/store/sessions/sessionNotifications.js +41 -35
  65. package/lib/store/sessions/sessionStreamManager.js +52 -40
  66. package/lib/styles/cascade.js +3 -29
  67. package/lib/styles/transitions.js +1 -3
  68. package/lib/types/agentModal.js +1 -1
  69. package/lib/types/global.d.js +1 -1
  70. package/lib/utils/hoursPlannerQuickActionType.js +1 -74
  71. package/lib/utils/imagePreprocessor.js +37 -12
  72. package/lib/utils/streamActivityMessages.js +60 -32
  73. package/package.json +1 -1
  74. package/lib/components/atoms/ActionableButton.spec.js +0 -111
  75. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +0 -52
  76. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +0 -11
  77. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
  78. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +0 -123
  79. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +0 -65
  80. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +0 -66
  81. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +0 -211
  82. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +0 -78
  83. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +0 -55
  84. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +0 -41
  85. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +0 -253
  86. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +0 -80
  87. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +0 -31
  88. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +0 -33
  89. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +0 -25
  90. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +0 -4
  91. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +0 -11
  92. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +0 -77
  93. package/lib/components/atoms/Backdrop/Backdrop.spec.js +0 -28
  94. package/lib/components/atoms/CardMenu/CardMenu.spec.js +0 -56
  95. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +0 -67
  96. package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
  97. package/lib/components/atoms/Chip/Chip.spec.js +0 -82
  98. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +0 -26
  99. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +0 -88
  100. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
  101. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +0 -46
  102. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +0 -227
  103. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +0 -77
  104. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +0 -81
  105. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +0 -31
  106. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +0 -48
  107. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +0 -231
  108. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +0 -107
  109. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +0 -136
  110. package/lib/components/atoms/CopyToClipboard.spec.js +0 -74
  111. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +0 -76
  112. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +0 -86
  113. package/lib/components/atoms/Expand/Expand.spec.js +0 -57
  114. package/lib/components/atoms/Fade/Fade.spec.js +0 -31
  115. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +0 -75
  116. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +0 -104
  117. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +0 -91
  118. package/lib/components/atoms/HelpButton.spec.js +0 -87
  119. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +0 -96
  120. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +0 -54
  121. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +0 -21
  122. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +0 -20
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +0 -26
  124. package/lib/components/atoms/LoadingText/LoadingText.spec.js +0 -25
  125. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
  126. package/lib/components/atoms/MAIAError/MAIAError.spec.js +0 -27
  127. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +0 -12
  128. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +0 -26
  129. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -430
  130. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +0 -50
  131. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +0 -20
  132. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +0 -53
  133. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +0 -22
  134. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +0 -64
  135. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +0 -43
  136. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +0 -114
  137. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +0 -51
  138. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +0 -48
  139. package/lib/components/atoms/ModalProject/ModalProject.spec.js +0 -66
  140. package/lib/components/atoms/NextPageLoader.spec.js +0 -37
  141. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +0 -20
  142. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +0 -17
  143. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +0 -35
  144. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +0 -47
  145. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +0 -86
  146. package/lib/components/atoms/PrimaryButton.spec.js +0 -42
  147. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +0 -69
  148. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
  149. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
  150. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -132
  151. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +0 -162
  152. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +0 -70
  153. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -120
  154. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +0 -4
  155. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +0 -10
  156. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +0 -31
  157. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
  158. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
  159. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +0 -16
  160. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
  161. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +0 -24
  162. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
  163. package/lib/components/atoms/Switch/Switch.spec.js +0 -41
  164. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +0 -52
  165. package/lib/components/atoms/TextArea/TextArea.spec.js +0 -68
  166. package/lib/components/atoms/ThirdButton.spec.js +0 -29
  167. package/lib/components/atoms/VideoModal/VideoModal.spec.js +0 -68
  168. package/lib/components/atoms/WithAppCfg.spec.js +0 -60
  169. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +0 -37
  170. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +0 -53
  171. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -371
  172. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +0 -39
  173. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +0 -57
  174. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +0 -227
  175. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +0 -86
  176. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +0 -108
  177. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +0 -254
  178. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +0 -17
  179. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +0 -50
  180. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +0 -94
  181. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +0 -83
  182. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +0 -30
  183. package/lib/components/molecules/AgentInputBlock/index.js +0 -5
  184. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +0 -52
  185. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +0 -76
  186. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +0 -20
  187. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +0 -34
  188. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +0 -36
  189. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +0 -66
  190. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +0 -145
  191. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +0 -204
  192. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -246
  193. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +0 -86
  194. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
  195. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +0 -54
  196. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +0 -77
  197. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -410
  198. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
  199. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +0 -471
  200. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +0 -659
  201. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +0 -5
  202. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +0 -33
  203. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +0 -116
  204. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +0 -134
  205. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +0 -30
  206. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +0 -95
  207. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +0 -241
  208. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +0 -37
  209. package/lib/components/molecules/ChatAIModal/constants.spec.js +0 -16
  210. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +0 -22
  211. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +0 -67
  212. package/lib/components/molecules/ChatAIModal/layout.spec.js +0 -72
  213. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +0 -172
  214. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
  215. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +0 -66
  216. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -355
  217. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +0 -10
  218. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +0 -48
  219. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +0 -82
  220. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +0 -139
  221. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
  222. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
  223. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +0 -126
  224. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +0 -115
  225. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +0 -79
  226. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +0 -37
  227. package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -453
  228. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +0 -198
  229. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +0 -385
  230. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -1125
  231. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +0 -112
  232. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -405
  233. package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
  234. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -525
  235. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -231
  236. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
  237. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
  238. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
  239. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
  240. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -267
  241. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -261
  242. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -194
  243. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +0 -105
  244. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +0 -73
  245. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +0 -38
  246. package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
  247. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
  248. package/lib/components/organisms/ChatAIPage/index.js +0 -3
  249. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +0 -53
  250. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
  251. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
  252. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
  253. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +0 -49
  254. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +0 -67
  255. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +0 -117
  256. package/lib/components/organisms/SnackBar/Snackbar.spec.js +0 -66
  257. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +0 -19
  258. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +0 -52
  259. package/lib/constants/maiaExternalConnectorsAccess.spec.js +0 -29
  260. package/lib/constants/permissions/utils.spec.js +0 -128
  261. package/lib/dev/DevMaiaPage.js +0 -30
  262. package/lib/hooks/frequentlyUsedActionsCache.js +0 -17
  263. package/lib/hooks/frequentlyUsedActionsCache.spec.js +0 -25
  264. package/lib/hooks/useAccessClient/useAccessClient.spec.js +0 -149
  265. package/lib/hooks/useAgentModel/useAgentModel.spec.js +0 -83
  266. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -231
  267. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +0 -183
  268. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -313
  269. package/lib/hooks/useAgentSuggestions.spec.js +0 -89
  270. package/lib/hooks/useCaretPosition.spec.js +0 -58
  271. package/lib/hooks/useChatManager/useChatManager.helpers.js +0 -353
  272. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +0 -506
  273. package/lib/hooks/useChatManager/useChatManager.spec.js +0 -1261
  274. package/lib/hooks/useChatMessages/useChatMessages.helpers.js +0 -109
  275. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +0 -176
  276. package/lib/hooks/useChatMessages/useChatMessages.spec.js +0 -379
  277. package/lib/hooks/useChats/useChats.spec.js +0 -208
  278. package/lib/hooks/useClientSearch.helpers.js +0 -36
  279. package/lib/hooks/useClientSearch.helpers.spec.js +0 -52
  280. package/lib/hooks/useClientSearch.spec.js +0 -86
  281. package/lib/hooks/useContextMentions.helpers.js +0 -152
  282. package/lib/hooks/useContextMentions.helpers.spec.js +0 -143
  283. package/lib/hooks/useContextMentions.spec.js +0 -239
  284. package/lib/hooks/useContextMentions.types.js +0 -2
  285. package/lib/hooks/useContextPinPopover.helpers.js +0 -95
  286. package/lib/hooks/useContextPinPopover.helpers.spec.js +0 -115
  287. package/lib/hooks/useContextPinPopover.spec.js +0 -159
  288. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +0 -2
  289. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +0 -93
  290. package/lib/hooks/useDebounce.spec.js +0 -42
  291. package/lib/hooks/useEntitySearch.helpers.js +0 -359
  292. package/lib/hooks/useEntitySearch.helpers.spec.js +0 -321
  293. package/lib/hooks/useEntitySearch.spec.js +0 -443
  294. package/lib/hooks/useEvent.spec.js +0 -45
  295. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +0 -222
  296. package/lib/hooks/useFrequentlyUsedActions.spec.js +0 -135
  297. package/lib/hooks/useIsMaiaPageRoute.js +0 -26
  298. package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
  299. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +0 -122
  300. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +0 -148
  301. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +0 -104
  302. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +0 -178
  303. package/lib/hooks/useMaiaChatSessionMeta/index.js +0 -2
  304. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +0 -24
  305. package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
  306. package/lib/hooks/useMentionPopover.helpers.js +0 -41
  307. package/lib/hooks/useMentionPopover.helpers.spec.js +0 -71
  308. package/lib/hooks/useMentionPopover.spec.js +0 -215
  309. package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +0 -47
  310. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +0 -132
  311. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +0 -89
  312. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +0 -67
  313. package/lib/hooks/useModal/useModal.spec.js +0 -73
  314. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +0 -192
  315. package/lib/hooks/useProjectSearch.helpers.js +0 -61
  316. package/lib/hooks/useProjectSearch.helpers.spec.js +0 -70
  317. package/lib/hooks/useProjectSearch.spec.js +0 -91
  318. package/lib/hooks/useProjectSummary.spec.js +0 -193
  319. package/lib/hooks/useProjectSummaryConfig.helpers.js +0 -62
  320. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +0 -92
  321. package/lib/hooks/useProjectSummaryConfig.spec.js +0 -133
  322. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +0 -112
  323. package/lib/hooks/useRecentClientsSearch.helpers.js +0 -33
  324. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +0 -33
  325. package/lib/hooks/useRecentClientsSearch.spec.js +0 -85
  326. package/lib/hooks/useRecentContexts.spec.js +0 -139
  327. package/lib/hooks/useResize.spec.js +0 -37
  328. package/lib/hooks/useSkillsCatalog.spec.js +0 -88
  329. package/lib/hooks/useSlashCommands.spec.js +0 -139
  330. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +0 -101
  331. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
  332. package/lib/hooks/useStreamResponse.spec.js +0 -199
  333. package/lib/hooks/useT.spec.js +0 -20
  334. package/lib/hooks/useToggle.spec.js +0 -33
  335. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +0 -171
  336. package/lib/services/maia/Access/updateAccess.spec.js +0 -137
  337. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -56
  338. package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -91
  339. package/lib/services/maia/Agents/connectors.spec.js +0 -359
  340. package/lib/services/maia/Agents/createAgent.spec.js +0 -55
  341. package/lib/services/maia/Agents/deleteAgent.spec.js +0 -57
  342. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
  343. package/lib/services/maia/Agents/getAgentById.spec.js +0 -190
  344. package/lib/services/maia/Agents/getAgentModels.spec.js +0 -190
  345. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -89
  346. package/lib/services/maia/Agents/getAgents.helpers.js +0 -181
  347. package/lib/services/maia/Agents/getAgents.helpers.spec.js +0 -211
  348. package/lib/services/maia/Agents/getAgents.spec.js +0 -697
  349. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
  350. package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -59
  351. package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
  352. package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
  353. package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
  354. package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
  355. package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
  356. package/lib/services/maia/Chats/patchChat.spec.js +0 -41
  357. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
  358. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
  359. package/lib/services/maia/Knowledge/delete.spec.js +0 -45
  360. package/lib/services/maia/Knowledge/download.spec.js +0 -78
  361. package/lib/services/maia/Knowledge/save.spec.js +0 -58
  362. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +0 -130
  363. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +0 -153
  364. package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -181
  365. package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
  366. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -103
  367. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
  368. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
  369. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
  370. package/lib/services/maia/Skills/createSkill.spec.js +0 -68
  371. package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
  372. package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
  373. package/lib/services/maia/Skills/getSkills.spec.js +0 -152
  374. package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
  375. package/lib/services/maia/client.spec.js +0 -56
  376. package/lib/services/utils/fetchCOR.spec.js +0 -211
  377. package/lib/services/utils/getCookie.spec.js +0 -20
  378. package/lib/services/utils/mapChatMessages.spec.js +0 -254
  379. package/lib/store/chatsSidebarOptimistic.spec.js +0 -112
  380. package/lib/store/maiaLastChatPersistence.spec.js +0 -22
  381. package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
  382. package/lib/store/sessions/sessionNotificationSound.spec.js +0 -145
  383. package/lib/store/sessions/sessionNotifications.helpers.js +0 -45
  384. package/lib/store/sessions/sessionNotifications.helpers.spec.js +0 -63
  385. package/lib/store/sessions/sessionNotifications.spec.js +0 -106
  386. package/lib/store/sessions/sessionStreamManager.spec.js +0 -503
  387. package/lib/store/sessions/sessions.types.spec.js +0 -16
  388. package/lib/store/sessions/useSessionsStore.spec.js +0 -135
  389. package/lib/store/useChatsStore.spec.js +0 -619
  390. package/lib/store/useFaqsStore.spec.js +0 -57
  391. package/lib/test/mockSseStream.js +0 -121
  392. package/lib/test/streamdownCodeMock.js +0 -6
  393. package/lib/test/streamdownMock.js +0 -12
  394. package/lib/utils/actionCategoryMap.spec.js +0 -18
  395. package/lib/utils/agentDisplayName.spec.js +0 -44
  396. package/lib/utils/autoApproveStorage.spec.js +0 -25
  397. package/lib/utils/chatInputFiles.spec.js +0 -39
  398. package/lib/utils/contextMentionIcons.spec.js +0 -41
  399. package/lib/utils/contextMentionLabel.spec.js +0 -13
  400. package/lib/utils/contextMentionTriggers.spec.js +0 -38
  401. package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
  402. package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
  403. package/lib/utils/entityLinkRender.spec.js +0 -72
  404. package/lib/utils/fileDownloadHelper.spec.js +0 -67
  405. package/lib/utils/formatQuickActionMessage.spec.js +0 -27
  406. package/lib/utils/formatUnreadCount.spec.js +0 -12
  407. package/lib/utils/getUnitFileSize.spec.js +0 -18
  408. package/lib/utils/hitlAnalytics.spec.js +0 -100
  409. package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
  410. package/lib/utils/imagePreprocessor.helpers.js +0 -28
  411. package/lib/utils/imagePreprocessor.helpers.spec.js +0 -28
  412. package/lib/utils/imagePreprocessor.spec.js +0 -112
  413. package/lib/utils/maiaPageRoute.js +0 -24
  414. package/lib/utils/maiaPageRoute.spec.js +0 -23
  415. package/lib/utils/mapBackendLang.spec.js +0 -19
  416. package/lib/utils/navigateContextEntity.spec.js +0 -50
  417. package/lib/utils/normalizeAgentConnectors.spec.js +0 -107
  418. package/lib/utils/orchestratorSubagents.spec.js +0 -32
  419. package/lib/utils/reasoningMappers.spec.js +0 -103
  420. package/lib/utils/recentContextsHomeLimit.spec.js +0 -32
  421. package/lib/utils/renderContextMentions.spec.js +0 -158
  422. package/lib/utils/retryCompletion.spec.js +0 -99
  423. package/lib/utils/skillContentSize.spec.js +0 -13
  424. package/lib/utils/slashCommandMarker.spec.js +0 -43
  425. package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
  426. package/lib/utils/sseStreamContent.spec.js +0 -31
  427. package/lib/utils/streamActivityMessages.spec.js +0 -227
  428. package/lib/utils/validateTrimmedFields.spec.js +0 -26
@@ -8,11 +8,6 @@ export var LEADING_NARRATION_INDEX = -1;
8
8
  export var isLeadingNarrationStep = function isLeadingNarrationStep(step) {
9
9
  return step.i === LEADING_NARRATION_INDEX && step.type === 'narration';
10
10
  };
11
-
12
- /** Los `thinking` son el razonamiento crudo del modelo: fuera de la vista por defecto. */
13
- export var isVisibleStep = function isVisibleStep(step) {
14
- return step.type !== 'thinking';
15
- };
16
11
  export var findLeadingNarration = function findLeadingNarration(steps) {
17
12
  return steps.find(isLeadingNarrationStep);
18
13
  };
@@ -70,4 +65,4 @@ export var stripOrphanLeadingNarration = function stripOrphanLeadingNarration(st
70
65
  return !isLeadingNarrationStep(step);
71
66
  });
72
67
  };
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMRUFESU5HX05BUlJBVElPTl9JTkRFWCIsImlzTGVhZGluZ05hcnJhdGlvblN0ZXAiLCJzdGVwIiwiaSIsInR5cGUiLCJpc1Zpc2libGVTdGVwIiwiZmluZExlYWRpbmdOYXJyYXRpb24iLCJzdGVwcyIsImZpbmQiLCJoYXNBY3Rpb25TdGVwIiwic29tZSIsInRvb2wiLCJuYXJyYXRpb25UZXh0c01hdGNoIiwiY29tbWl0dGVkIiwic3RyZWFtZWQiLCJzdGFydHNXaXRoIiwibmFycmF0aW9uVGV4dHNSZWxhdGVkIiwibGVmdCIsInJpZ2h0IiwibG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtIiwidGV4dCIsInRyaW1tZWQiLCJ0cmltIiwibGVuZ3RoIiwidGVzdCIsInBsYWNlTGVhZGluZ05hcnJhdGlvbkZpcnN0IiwibGl2ZVN0ZXBzIiwiYXV0aG9yaXRhdGl2ZVN0ZXBzIiwibGVhZGluZyIsIm1hdGNoSW5kZXgiLCJmaW5kSW5kZXgiLCJuZXh0Iiwic2xpY2UiLCJfbmV4dCRzcGxpY2UiLCJzcGxpY2UiLCJfbmV4dCRzcGxpY2UyIiwiX3NsaWNlZFRvQXJyYXkiLCJuYXJyYXRpb24iLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfb2JqZWN0U3ByZWFkIiwic3RyaXBPcnBoYW5MZWFkaW5nTmFycmF0aW9uIiwiZmlsdGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svcmVhc29uaW5nTGVhZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlYXNvbmluZ1N0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5cbi8qKiBTdGVwIHNpbnTDqXRpY286IG5hcnJhY2nDs24gcXVlIGxsZWfDsyBjb21vIHRva2VucyBhbnRlcyBkZSBjdWFscXVpZXIgYWNjacOzbi4gKi9cbmV4cG9ydCBjb25zdCBMRUFESU5HX05BUlJBVElPTl9JTkRFWCA9IC0xXG5cbmV4cG9ydCBjb25zdCBpc0xlYWRpbmdOYXJyYXRpb25TdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+XG4gIHN0ZXAuaSA9PT0gTEVBRElOR19OQVJSQVRJT05fSU5ERVggJiYgc3RlcC50eXBlID09PSAnbmFycmF0aW9uJ1xuXG4vKiogTG9zIGB0aGlua2luZ2Agc29uIGVsIHJhem9uYW1pZW50byBjcnVkbyBkZWwgbW9kZWxvOiBmdWVyYSBkZSBsYSB2aXN0YSBwb3IgZGVmZWN0by4gKi9cbmV4cG9ydCBjb25zdCBpc1Zpc2libGVTdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSAhPT0gJ3RoaW5raW5nJ1xuXG5leHBvcnQgY29uc3QgZmluZExlYWRpbmdOYXJyYXRpb24gPSAoc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSk6IFJlYXNvbmluZ1N0ZXAgfCB1bmRlZmluZWQgPT5cbiAgc3RlcHMuZmluZChpc0xlYWRpbmdOYXJyYXRpb25TdGVwKVxuXG5leHBvcnQgY29uc3QgaGFzQWN0aW9uU3RlcCA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogYm9vbGVhbiA9PlxuICBzdGVwcy5zb21lKHN0ZXAgPT4gc3RlcC50eXBlID09PSAndG9vbCcgfHwgc3RlcC50eXBlID09PSAnaGFuZG9mZicgfHwgKCEhc3RlcC50b29sICYmIHN0ZXAudHlwZSAhPT0gJ25hcnJhdGlvbicpKVxuXG5leHBvcnQgY29uc3QgbmFycmF0aW9uVGV4dHNNYXRjaCA9IChjb21taXR0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgc3RyZWFtZWQ6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+IHtcbiAgaWYgKCFjb21taXR0ZWQgfHwgIXN0cmVhbWVkKSByZXR1cm4gZmFsc2VcbiAgaWYgKGNvbW1pdHRlZCA9PT0gc3RyZWFtZWQpIHJldHVybiB0cnVlXG4gIHJldHVybiBjb21taXR0ZWQuc3RhcnRzV2l0aChzdHJlYW1lZClcbn1cblxuZXhwb3J0IGNvbnN0IG5hcnJhdGlvblRleHRzUmVsYXRlZCA9IChsZWZ0OiBzdHJpbmcgfCB1bmRlZmluZWQsIHJpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcbiAgaWYgKCFsZWZ0IHx8ICFyaWdodCkgcmV0dXJuIGZhbHNlXG4gIGlmIChsZWZ0ID09PSByaWdodCkgcmV0dXJuIHRydWVcbiAgcmV0dXJuIGxlZnQuc3RhcnRzV2l0aChyaWdodCkgfHwgcmlnaHQuc3RhcnRzV2l0aChsZWZ0KVxufVxuXG4vKiogTmFycmFjacOzbiBpbnRlcm1lZGlhID0gcMOhcnJhZm8gY29ydG87IHRhYmxhcyBvIGhlYWRlcnMgaW5kaWNhbiByZXNwdWVzdGEgZmluYWwuICovXG5leHBvcnQgY29uc3QgbG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB0cmltbWVkID0gdGV4dC50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gdHJ1ZVxuICBpZiAodHJpbW1lZC5sZW5ndGggPiAzMjApIHJldHVybiBmYWxzZVxuICBpZiAoL1xcbig/OiN7MSwzfVxcc3wtLS18XFx8LitcXHwpLy50ZXN0KHRleHQpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTaSBsYSBuYXJyYWNpw7NuIHNlIGVzY3JpYmnDsyBhbnRlcyBxdWUgbG9zIHN0ZXBzLCBlbiBlbCBjb21wbGV0ZSBkZWwgYmFjayBzdWVsZVxuICogcXVlZGFyIGFsIGZpbmFsIChjb21vIHNpIGZ1ZXJhIGRlbCDDumx0aW1vIHRvb2wpLiBMYSBkZXZvbHZlbW9zIGFsIGluaWNpby5cbiAqL1xuZXhwb3J0IGNvbnN0IHBsYWNlTGVhZGluZ05hcnJhdGlvbkZpcnN0ID0gKFxuICBsaXZlU3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgYXV0aG9yaXRhdGl2ZVN0ZXBzOiBSZWFzb25pbmdTdGVwW11cbik6IFJlYXNvbmluZ1N0ZXBbXSA9PiB7XG4gIGNvbnN0IGxlYWRpbmcgPSBmaW5kTGVhZGluZ05hcnJhdGlvbihsaXZlU3RlcHMpXG4gIGlmICghbGVhZGluZz8udGV4dCB8fCAhYXV0aG9yaXRhdGl2ZVN0ZXBzLmxlbmd0aCkgcmV0dXJuIGF1dGhvcml0YXRpdmVTdGVwc1xuXG4gIGNvbnN0IG1hdGNoSW5kZXggPSBhdXRob3JpdGF0aXZlU3RlcHMuZmluZEluZGV4KFxuICAgIHN0ZXAgPT4gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c1JlbGF0ZWQoc3RlcC50ZXh0LCBsZWFkaW5nLnRleHQpXG4gIClcblxuICBpZiAobWF0Y2hJbmRleCA9PT0gMCkgcmV0dXJuIGF1dGhvcml0YXRpdmVTdGVwc1xuICBpZiAobWF0Y2hJbmRleCA+IDApIHtcbiAgICBjb25zdCBuZXh0ID0gYXV0aG9yaXRhdGl2ZVN0ZXBzLnNsaWNlKClcbiAgICBjb25zdCBbbmFycmF0aW9uXSA9IG5leHQuc3BsaWNlKG1hdGNoSW5kZXgsIDEpXG4gICAgcmV0dXJuIFtuYXJyYXRpb24sIC4uLm5leHRdXG4gIH1cblxuICByZXR1cm4gW3sgLi4ubGVhZGluZyB9LCAuLi5hdXRob3JpdGF0aXZlU3RlcHNdXG59XG5cbi8qKiBUdXJubyBzb2xvIGNvbiBuYXJyYWNpw7NuIHNpbnTDqXRpY2EgKHNpbiBhY2Npb25lcyBkZWwgYmFjayk6IG5vIGVzIHJhem9uYW1pZW50byByZWFsLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmlwT3JwaGFuTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogUmVhc29uaW5nU3RlcFtdID0+IHtcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICBpZiAoIWxlYWRpbmcgfHwgaGFzQWN0aW9uU3RlcChzdGVwcykpIHJldHVybiBzdGVwc1xuICByZXR1cm4gc3RlcHMuZmlsdGVyKHN0ZXAgPT4gIWlzTGVhZGluZ05hcnJhdGlvblN0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
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMRUFESU5HX05BUlJBVElPTl9JTkRFWCIsImlzTGVhZGluZ05hcnJhdGlvblN0ZXAiLCJzdGVwIiwiaSIsInR5cGUiLCJmaW5kTGVhZGluZ05hcnJhdGlvbiIsInN0ZXBzIiwiZmluZCIsImhhc0FjdGlvblN0ZXAiLCJzb21lIiwidG9vbCIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJjb21taXR0ZWQiLCJzdHJlYW1lZCIsInN0YXJ0c1dpdGgiLCJuYXJyYXRpb25UZXh0c1JlbGF0ZWQiLCJsZWZ0IiwicmlnaHQiLCJsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0iLCJ0ZXh0IiwidHJpbW1lZCIsInRyaW0iLCJsZW5ndGgiLCJ0ZXN0IiwicGxhY2VMZWFkaW5nTmFycmF0aW9uRmlyc3QiLCJsaXZlU3RlcHMiLCJhdXRob3JpdGF0aXZlU3RlcHMiLCJsZWFkaW5nIiwibWF0Y2hJbmRleCIsImZpbmRJbmRleCIsIm5leHQiLCJzbGljZSIsIl9uZXh0JHNwbGljZSIsInNwbGljZSIsIl9uZXh0JHNwbGljZTIiLCJfc2xpY2VkVG9BcnJheSIsIm5hcnJhdGlvbiIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9vYmplY3RTcHJlYWQiLCJzdHJpcE9ycGhhbkxlYWRpbmdOYXJyYXRpb24iLCJmaWx0ZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9yZWFzb25pbmdMZWFkaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhc29uaW5nU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcblxuLyoqIFN0ZXAgc2ludMOpdGljbzogbmFycmFjacOzbiBxdWUgbGxlZ8OzIGNvbW8gdG9rZW5zIGFudGVzIGRlIGN1YWxxdWllciBhY2Npw7NuLiAqL1xuZXhwb3J0IGNvbnN0IExFQURJTkdfTkFSUkFUSU9OX0lOREVYID0gLTFcblxuZXhwb3J0IGNvbnN0IGlzTGVhZGluZ05hcnJhdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT5cbiAgc3RlcC5pID09PSBMRUFESU5HX05BUlJBVElPTl9JTkRFWCAmJiBzdGVwLnR5cGUgPT09ICduYXJyYXRpb24nXG5cbmV4cG9ydCBjb25zdCBmaW5kTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogUmVhc29uaW5nU3RlcCB8IHVuZGVmaW5lZCA9PlxuICBzdGVwcy5maW5kKGlzTGVhZGluZ05hcnJhdGlvblN0ZXApXG5cbmV4cG9ydCBjb25zdCBoYXNBY3Rpb25TdGVwID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10pOiBib29sZWFuID0+XG4gIHN0ZXBzLnNvbWUoc3RlcCA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJyB8fCAoISFzdGVwLnRvb2wgJiYgc3RlcC50eXBlICE9PSAnbmFycmF0aW9uJykpXG5cbmV4cG9ydCBjb25zdCBuYXJyYXRpb25UZXh0c01hdGNoID0gKGNvbW1pdHRlZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBzdHJlYW1lZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWNvbW1pdHRlZCB8fCAhc3RyZWFtZWQpIHJldHVybiBmYWxzZVxuICBpZiAoY29tbWl0dGVkID09PSBzdHJlYW1lZCkgcmV0dXJuIHRydWVcbiAgcmV0dXJuIGNvbW1pdHRlZC5zdGFydHNXaXRoKHN0cmVhbWVkKVxufVxuXG5leHBvcnQgY29uc3QgbmFycmF0aW9uVGV4dHNSZWxhdGVkID0gKGxlZnQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgcmlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWxlZnQgfHwgIXJpZ2h0KSByZXR1cm4gZmFsc2VcbiAgaWYgKGxlZnQgPT09IHJpZ2h0KSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gbGVmdC5zdGFydHNXaXRoKHJpZ2h0KSB8fCByaWdodC5zdGFydHNXaXRoKGxlZnQpXG59XG5cbi8qKiBOYXJyYWNpw7NuIGludGVybWVkaWEgPSBww6FycmFmbyBjb3J0bzsgdGFibGFzIG8gaGVhZGVycyBpbmRpY2FuIHJlc3B1ZXN0YSBmaW5hbC4gKi9cbmV4cG9ydCBjb25zdCBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0gPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSB0ZXh0LnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiB0cnVlXG4gIGlmICh0cmltbWVkLmxlbmd0aCA+IDMyMCkgcmV0dXJuIGZhbHNlXG4gIGlmICgvXFxuKD86I3sxLDN9XFxzfC0tLXxcXHwuK1xcfCkvLnRlc3QodGV4dCkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFNpIGxhIG5hcnJhY2nDs24gc2UgZXNjcmliacOzIGFudGVzIHF1ZSBsb3Mgc3RlcHMsIGVuIGVsIGNvbXBsZXRlIGRlbCBiYWNrIHN1ZWxlXG4gKiBxdWVkYXIgYWwgZmluYWwgKGNvbW8gc2kgZnVlcmEgZGVsIMO6bHRpbW8gdG9vbCkuIExhIGRldm9sdmVtb3MgYWwgaW5pY2lvLlxuICovXG5leHBvcnQgY29uc3QgcGxhY2VMZWFkaW5nTmFycmF0aW9uRmlyc3QgPSAoXG4gIGxpdmVTdGVwczogUmVhc29uaW5nU3RlcFtdLFxuICBhdXRob3JpdGF0aXZlU3RlcHM6IFJlYXNvbmluZ1N0ZXBbXVxuKTogUmVhc29uaW5nU3RlcFtdID0+IHtcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKGxpdmVTdGVwcylcbiAgaWYgKCFsZWFkaW5nPy50ZXh0IHx8ICFhdXRob3JpdGF0aXZlU3RlcHMubGVuZ3RoKSByZXR1cm4gYXV0aG9yaXRhdGl2ZVN0ZXBzXG5cbiAgY29uc3QgbWF0Y2hJbmRleCA9IGF1dGhvcml0YXRpdmVTdGVwcy5maW5kSW5kZXgoXG4gICAgc3RlcCA9PiBzdGVwLnR5cGUgPT09ICduYXJyYXRpb24nICYmIG5hcnJhdGlvblRleHRzUmVsYXRlZChzdGVwLnRleHQsIGxlYWRpbmcudGV4dClcbiAgKVxuXG4gIGlmIChtYXRjaEluZGV4ID09PSAwKSByZXR1cm4gYXV0aG9yaXRhdGl2ZVN0ZXBzXG4gIGlmIChtYXRjaEluZGV4ID4gMCkge1xuICAgIGNvbnN0IG5leHQgPSBhdXRob3JpdGF0aXZlU3RlcHMuc2xpY2UoKVxuICAgIGNvbnN0IFtuYXJyYXRpb25dID0gbmV4dC5zcGxpY2UobWF0Y2hJbmRleCwgMSlcbiAgICByZXR1cm4gW25hcnJhdGlvbiwgLi4ubmV4dF1cbiAgfVxuXG4gIHJldHVybiBbeyAuLi5sZWFkaW5nIH0sIC4uLmF1dGhvcml0YXRpdmVTdGVwc11cbn1cblxuLyoqIFR1cm5vIHNvbG8gY29uIG5hcnJhY2nDs24gc2ludMOpdGljYSAoc2luIGFjY2lvbmVzIGRlbCBiYWNrKTogbm8gZXMgcmF6b25hbWllbnRvIHJlYWwuICovXG5leHBvcnQgY29uc3Qgc3RyaXBPcnBoYW5MZWFkaW5nTmFycmF0aW9uID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10pOiBSZWFzb25pbmdTdGVwW10gPT4ge1xuICBjb25zdCBsZWFkaW5nID0gZmluZExlYWRpbmdOYXJyYXRpb24oc3RlcHMpXG4gIGlmICghbGVhZGluZyB8fCBoYXNBY3Rpb25TdGVwKHN0ZXBzKSkgcmV0dXJuIHN0ZXBzXG4gIHJldHVybiBzdGVwcy5maWx0ZXIoc3RlcCA9PiAhaXNMZWFkaW5nTmFycmF0aW9uU3RlcChzdGVwKSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTtBQUNBLE9BQU8sSUFBTUEsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO0FBRXpDLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsSUFBbUI7RUFBQSxPQUN4REEsSUFBSSxDQUFDQyxDQUFDLEtBQUtILHVCQUF1QixJQUFJRSxJQUFJLENBQUNFLElBQUksS0FB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
@@ -1,5 +1,5 @@
1
1
  import { reasoningStore } from '../../../hooks/useReasoningTrace/reasoningStore';
2
- import { findLeadingNarration, hasActionStep, narrationTextsMatch } from './reasoningLeading';
2
+ import { findLeadingNarration, hasActionStep, looksLikeIntermediateNarrationStream, narrationTextsMatch } from './reasoningLeading';
3
3
  import { isVisibleStep } from './ReasoningSteps';
4
4
  export var PENDING_NARRATION_KEY = 'pending-narration';
5
5
  export { narrationTextsMatch } from './reasoningLeading';
@@ -11,42 +11,21 @@ export var isSeamlessNarrationCommit = function isSeamlessNarrationCommit(step,
11
11
  return step.type === 'narration' && narrationTextsMatch(step.text, streamedText);
12
12
  };
13
13
 
14
- /** Narración inicial sin tools: vive en el cuerpo, no en la traza. */
15
- export var shouldHideOrphanLeadingNarration = function shouldHideOrphanLeadingNarration(steps) {
16
- return !hasActionStep(steps);
17
- };
18
-
19
- /**
20
- * Oculta la narración commiteada al final de la traza mientras el mismo texto
21
- * sigue streameando en el cuerpo del mensaje (evita duplicado body + bloque).
22
- */
23
- export var shouldHideTailNarrationInTimeline = function shouldHideTailNarrationInTimeline(steps, streamActivity, streamingText) {
24
- var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
25
- var _context$showThinking = context.showThinking,
26
- showThinking = _context$showThinking === void 0 ? false : _context$showThinking;
27
- if ((streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) !== 'writing') return false;
28
- if (!streamingText.trim()) return false;
29
- var last = visibleReasoningSteps(steps, showThinking).at(-1);
30
- if ((last === null || last === void 0 ? void 0 : last.type) !== 'narration') return false;
31
- return narrationTextsMatch(last.text, streamingText);
32
- };
33
-
34
14
  /**
35
15
  * Narración de turno: tokens sin step van anclados al inicio. Una narración
36
16
  * commiteada (pre answer_reset) se pinta en su fila, no se recuelga al último tool.
37
17
  */
38
- export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTimeline(steps, streamActivity, streamingText) {
39
- var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
40
- var messageId = context.messageId,
41
- _context$showThinking2 = context.showThinking,
42
- showThinking = _context$showThinking2 === void 0 ? false : _context$showThinking2;
18
+ export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, messageId) {
19
+ var showThinking = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
43
20
  if ((streamActivity === null || streamActivity === void 0 ? void 0 : streamActivity.phase) !== 'writing') return false;
44
21
  if (!streamingText.trim()) return false;
45
22
  var visible = visibleReasoningSteps(steps, showThinking);
46
23
  var leading = findLeadingNarration(steps);
47
24
 
48
- // Antes de cualquier acción el texto va al cuerpo, no a la traza.
49
- if (leading && !hasActionStep(visible)) return false;
25
+ // Tokens antes de cualquier acción: la narración es el primer paso.
26
+ if (leading && !hasActionStep(visible) && looksLikeIntermediateNarrationStream(streamingText)) {
27
+ return true;
28
+ }
50
29
 
51
30
  // Leading ya anclada: el body todavía es esa misma narración (sin respuesta final).
52
31
  if (leading && narrationTextsMatch(leading.text, streamingText)) {
@@ -55,28 +34,28 @@ export var shouldStreamNarrationInTimeline = function shouldStreamNarrationInTim
55
34
  var last = visible[visible.length - 1];
56
35
  if (!last || last.type === 'thinking') return false;
57
36
  if (last.type === 'narration') {
58
- // Mientras el mismo texto vive en el body, no duplicar en timeline.
59
- if (narrationTextsMatch(last.text, streamingText)) return false;
60
- if (messageId && !reasoningStore.isNarrationHandoffPending(messageId)) return false;
37
+ if (messageId && !reasoningStore.isNarrationHandoffPending(messageId)) {
38
+ return false;
39
+ }
61
40
  return narrationTextsMatch(last.text, streamingText);
62
41
  }
63
42
  return false;
64
43
  };
65
44
 
66
45
  /** Texto de la fila live al final de la traza; null si ya está anclada o va al cuerpo. */
67
- export var resolvePendingNarrationText = function resolvePendingNarrationText(steps, streamActivity, streamingText) {
68
- var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
69
- if (!shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, context)) return null;
46
+ export var resolvePendingNarrationText = function resolvePendingNarrationText(steps, streamActivity, streamingText, messageId) {
47
+ var showThinking = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
48
+ if (!shouldStreamNarrationInTimeline(steps, streamActivity, streamingText, messageId, showThinking)) return null;
70
49
  var leading = findLeadingNarration(steps);
71
50
  // Ya está anclada al inicio: no recuelgues el mismo texto detrás de cada tool.
72
51
  if (leading && narrationTextsMatch(leading.text, streamingText)) {
73
52
  return null;
74
53
  }
75
- var last = visibleReasoningSteps(steps, context.showThinking).at(-1);
54
+ var last = visibleReasoningSteps(steps, showThinking).at(-1);
76
55
  if ((last === null || last === void 0 ? void 0 : last.type) === 'narration' && narrationTextsMatch(last.text, streamingText)) {
77
56
  return streamingText;
78
57
  }
79
58
  if (!last || last.type === 'thinking') return streamingText;
80
59
  return null;
81
60
  };
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJpc1Zpc2libGVTdGVwIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkSGlkZU9ycGhhbkxlYWRpbmdOYXJyYXRpb24iLCJzaG91bGRIaWRlVGFpbE5hcnJhdGlvbkluVGltZWxpbmUiLCJzdHJlYW1BY3Rpdml0eSIsInN0cmVhbWluZ1RleHQiLCJjb250ZXh0IiwiX2NvbnRleHQkc2hvd1RoaW5raW5nIiwicGhhc2UiLCJ0cmltIiwibGFzdCIsImF0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsIm1lc3NhZ2VJZCIsIl9jb250ZXh0JHNob3dUaGlua2luZzIiLCJ2aXNpYmxlIiwibGVhZGluZyIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9yZWFzb25pbmdMaXZlTmFycmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhc29uaW5nU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcbmltcG9ydCB0eXBlIHsgU3RyZWFtQWN0aXZpdHkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9zdHJlYW1BY3Rpdml0eSdcbmltcG9ydCB7IHJlYXNvbmluZ1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UvcmVhc29uaW5nU3RvcmUnXG5pbXBvcnQgeyBmaW5kTGVhZGluZ05hcnJhdGlvbiwgaGFzQWN0aW9uU3RlcCwgbmFycmF0aW9uVGV4dHNNYXRjaCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuXG5leHBvcnQgY29uc3QgUEVORElOR19OQVJSQVRJT05fS0VZID0gJ3BlbmRpbmctbmFycmF0aW9uJ1xuXG5leHBvcnQgdHlwZSBTdHJlYW1OYXJyYXRpb25Db250ZXh0ID0ge1xuICBtZXNzYWdlSWQ/OiBzdHJpbmcgfCBudWxsXG4gIHNob3dUaGlua2luZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHsgbmFycmF0aW9uVGV4dHNNYXRjaCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcblxuZXhwb3J0IGNvbnN0IHZpc2libGVSZWFzb25pbmdTdGVwcyA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdLCBzaG93VGhpbmtpbmcgPSBmYWxzZSk6IFJlYXNvbmluZ1N0ZXBbXSA9PlxuICBzaG93VGhpbmtpbmcgPyBzdGVwcyA6IHN0ZXBzLmZpbHRlcihpc1Zpc2libGVTdGVwKVxuXG5leHBvcnQgY29uc3QgaXNTZWFtbGVzc05hcnJhdGlvbkNvbW1pdCA9IChzdGVwOiBSZWFzb25pbmdTdGVwLCBzdHJlYW1lZFRleHQ6IHN0cmluZyB8IG51bGwpOiBib29sZWFuID0+XG4gIHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChzdGVwLnRleHQsIHN0cmVhbWVkVGV4dClcblxuLyoqIE5hcnJhY2nDs24gaW5pY2lhbCBzaW4gdG9vbHM6IHZpdmUgZW4gZWwgY3VlcnBvLCBubyBlbiBsYSB0cmF6YS4gKi9cbmV4cG9ydCBjb25zdCBzaG91bGRIaWRlT3JwaGFuTGVhZGluZ05hcnJhdGlvbiA9IChzdGVwczogUmVhc29uaW5nU3RlcFtdKTogYm9vbGVhbiA9PiAhaGFzQWN0aW9uU3RlcChzdGVwcylcblxuLyoqXG4gKiBPY3VsdGEgbGEgbmFycmFjacOzbiBjb21taXRlYWRhIGFsIGZpbmFsIGRlIGxhIHRyYXphIG1pZW50cmFzIGVsIG1pc21vIHRleHRvXG4gKiBzaWd1ZSBzdHJlYW1lYW5kbyBlbiBlbCBjdWVycG8gZGVsIG1lbnNhamUgKGV2aXRhIGR1cGxpY2FkbyBib2R5ICsgYmxvcXVlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZEhpZGVUYWlsTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBjb250ZXh0OiBTdHJlYW1OYXJyYXRpb25Db250ZXh0ID0ge31cbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IHNob3dUaGlua2luZyA9IGZhbHNlIH0gPSBjb250ZXh0XG4gIGlmIChzdHJlYW1BY3Rpdml0eT8ucGhhc2UgIT09ICd3cml0aW5nJykgcmV0dXJuIGZhbHNlXG4gIGlmICghc3RyZWFtaW5nVGV4dC50cmltKCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZykuYXQoLTEpXG4gIGlmIChsYXN0Py50eXBlICE9PSAnbmFycmF0aW9uJykgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxufVxuXG4vKipcbiAqIE5hcnJhY2nDs24gZGUgdHVybm86IHRva2VucyBzaW4gc3RlcCB2YW4gYW5jbGFkb3MgYWwgaW5pY2lvLiBVbmEgbmFycmFjacOzblxuICogY29tbWl0ZWFkYSAocHJlIGFuc3dlcl9yZXNldCkgc2UgcGludGEgZW4gc3UgZmlsYSwgbm8gc2UgcmVjdWVsZ2EgYWwgw7psdGltbyB0b29sLlxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBjb250ZXh0OiBTdHJlYW1OYXJyYXRpb25Db250ZXh0ID0ge31cbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IG1lc3NhZ2VJZCwgc2hvd1RoaW5raW5nID0gZmFsc2UgfSA9IGNvbnRleHRcbiAgaWYgKHN0cmVhbUFjdGl2aXR5Py5waGFzZSAhPT0gJ3dyaXRpbmcnKSByZXR1cm4gZmFsc2VcbiAgaWYgKCFzdHJlYW1pbmdUZXh0LnRyaW0oKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdmlzaWJsZSA9IHZpc2libGVSZWFzb25pbmdTdGVwcyhzdGVwcywgc2hvd1RoaW5raW5nKVxuICBjb25zdCBsZWFkaW5nID0gZmluZExlYWRpbmdOYXJyYXRpb24oc3RlcHMpXG5cbiAgLy8gQW50ZXMgZGUgY3VhbHF1aWVyIGFjY2nDs24gZWwgdGV4dG8gdmEgYWwgY3VlcnBvLCBubyBhIGxhIHRyYXphLlxuICBpZiAobGVhZGluZyAmJiAhaGFzQWN0aW9uU3RlcCh2aXNpYmxlKSkgcmV0dXJuIGZhbHNlXG5cbiAgLy8gTGVhZGluZyB5YSBhbmNsYWRhOiBlbCBib2R5IHRvZGF2w61hIGVzIGVzYSBtaXNtYSBuYXJyYWNpw7NuIChzaW4gcmVzcHVlc3RhIGZpbmFsKS5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlW3Zpc2libGUubGVuZ3RoIC0gMV1cbiAgaWYgKCFsYXN0IHx8IGxhc3QudHlwZSA9PT0gJ3RoaW5raW5nJykgcmV0dXJuIGZhbHNlXG5cbiAgaWYgKGxhc3QudHlwZSA9PT0gJ25hcnJhdGlvbicpIHtcbiAgICAvLyBNaWVudHJhcyBlbCBtaXNtbyB0ZXh0byB2aXZlIGVuIGVsIGJvZHksIG5vIGR1cGxpY2FyIGVuIHRpbWVsaW5lLlxuICAgIGlmIChuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHJldHVybiBmYWxzZVxuICAgIGlmIChtZXNzYWdlSWQgJiYgIXJlYXNvbmluZ1N0b3JlLmlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmcobWVzc2FnZUlkKSkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKiBUZXh0byBkZSBsYSBmaWxhIGxpdmUgYWwgZmluYWwgZGUgbGEgdHJhemE7IG51bGwgc2kgeWEgZXN0w6EgYW5jbGFkYSBvIHZhIGFsIGN1ZXJwby4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgY29udGV4dDogU3RyZWFtTmFycmF0aW9uQ29udGV4dCA9IHt9XG4pOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKCFzaG91bGRTdHJlYW1OYXJyYXRpb25JblRpbWVsaW5lKHN0ZXBzLCBzdHJlYW1BY3Rpdml0eSwgc3RyZWFtaW5nVGV4dCwgY29udGV4dCkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICAvLyBZYSBlc3TDoSBhbmNsYWRhIGFsIGluaWNpbzogbm8gcmVjdWVsZ3VlcyBlbCBtaXNtbyB0ZXh0byBkZXRyw6FzIGRlIGNhZGEgdG9vbC5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIGNvbnRleHQuc2hvd1RoaW5raW5nKS5hdCgtMSlcbiAgaWYgKGxhc3Q/LnR5cGUgPT09ICduYXJyYXRpb24nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiBzdHJlYW1pbmdUZXh0XG4gIH1cblxuICBpZiAoIWxhc3QgfHwgbGFzdC50eXBlID09PSAndGhpbmtpbmcnKSByZXR1cm4gc3RyZWFtaW5nVGV4dFxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLGNBQWMsUUFBUSxpREFBaUQ7QUFDaEYsU0FBU0Msb0JBQW9CLEVBQUVDLGFBQWEsRUFBRUMsbUJBQW1CLFFBQVEsb0JBQW9CO0FBQzdGLFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFFaEQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxtQkFBbUI7QUFPeEQsU0FBU0YsbUJBQW1CLFFBQVEsb0JBQW9CO0FBRXhELE9BQU8sSUFBTUcscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsS0FBc0I7RUFBQSxJQUFFQyxZQUFZLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7RUFBQSxPQUNoRkQsWUFBWSxHQUFHRCxLQUFLLEdBQUdBLEtBQUssQ0FBQ0ssTUFBTSxDQUFDUixhQUFhLENBQUM7QUFBQTtBQUVwRCxPQUFPLElBQU1TLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUlDLElBQW1CLEVBQUVDLFlBQTJCO0VBQUEsT0FDeEZELElBQUksQ0FBQ0UsSUFBSSxLQUFLLFdBQVcsSUFBSWIsbUJBQW1CLENBQUNX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
61
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWFzb25pbmdTdG9yZSIsImZpbmRMZWFkaW5nTmFycmF0aW9uIiwiaGFzQWN0aW9uU3RlcCIsImxvb2tzTGlrZUludGVybWVkaWF0ZU5hcnJhdGlvblN0cmVhbSIsIm5hcnJhdGlvblRleHRzTWF0Y2giLCJpc1Zpc2libGVTdGVwIiwiUEVORElOR19OQVJSQVRJT05fS0VZIiwidmlzaWJsZVJlYXNvbmluZ1N0ZXBzIiwic3RlcHMiLCJzaG93VGhpbmtpbmciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0Iiwic3RlcCIsInN0cmVhbWVkVGV4dCIsInR5cGUiLCJ0ZXh0Iiwic2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSIsInN0cmVhbUFjdGl2aXR5Iiwic3RyZWFtaW5nVGV4dCIsIm1lc3NhZ2VJZCIsInBoYXNlIiwidHJpbSIsInZpc2libGUiLCJsZWFkaW5nIiwibGFzdCIsImlzTmFycmF0aW9uSGFuZG9mZlBlbmRpbmciLCJyZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQiLCJhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL3JlYXNvbmluZ0xpdmVOYXJyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3N0cmVhbUFjdGl2aXR5J1xuaW1wb3J0IHsgcmVhc29uaW5nU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWFzb25pbmdUcmFjZS9yZWFzb25pbmdTdG9yZSdcbmltcG9ydCB7XG4gIGZpbmRMZWFkaW5nTmFycmF0aW9uLFxuICBoYXNBY3Rpb25TdGVwLFxuICBsb29rc0xpa2VJbnRlcm1lZGlhdGVOYXJyYXRpb25TdHJlYW0sXG4gIG5hcnJhdGlvblRleHRzTWF0Y2gsXG59IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAgfSBmcm9tICcuL1JlYXNvbmluZ1N0ZXBzJ1xuXG5leHBvcnQgY29uc3QgUEVORElOR19OQVJSQVRJT05fS0VZID0gJ3BlbmRpbmctbmFycmF0aW9uJ1xuXG5leHBvcnQgeyBuYXJyYXRpb25UZXh0c01hdGNoIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuXG5leHBvcnQgY29uc3QgdmlzaWJsZVJlYXNvbmluZ1N0ZXBzID0gKHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sIHNob3dUaGlua2luZyA9IGZhbHNlKTogUmVhc29uaW5nU3RlcFtdID0+XG4gIHNob3dUaGlua2luZyA/IHN0ZXBzIDogc3RlcHMuZmlsdGVyKGlzVmlzaWJsZVN0ZXApXG5cbmV4cG9ydCBjb25zdCBpc1NlYW1sZXNzTmFycmF0aW9uQ29tbWl0ID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHN0cmVhbWVkVGV4dDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gPT5cbiAgc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKHN0ZXAudGV4dCwgc3RyZWFtZWRUZXh0KVxuXG4vKipcbiAqIE5hcnJhY2nDs24gZGUgdHVybm86IHRva2VucyBzaW4gc3RlcCB2YW4gYW5jbGFkb3MgYWwgaW5pY2lvLiBVbmEgbmFycmFjacOzblxuICogY29tbWl0ZWFkYSAocHJlIGFuc3dlcl9yZXNldCkgc2UgcGludGEgZW4gc3UgZmlsYSwgbm8gc2UgcmVjdWVsZ2EgYWwgw7psdGltbyB0b29sLlxuICovXG5leHBvcnQgY29uc3Qgc2hvdWxkU3RyZWFtTmFycmF0aW9uSW5UaW1lbGluZSA9IChcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXSxcbiAgc3RyZWFtQWN0aXZpdHk6IFN0cmVhbUFjdGl2aXR5IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgc3RyZWFtaW5nVGV4dDogc3RyaW5nLFxuICBtZXNzYWdlSWQ/OiBzdHJpbmcgfCBudWxsLFxuICBzaG93VGhpbmtpbmcgPSBmYWxzZVxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChzdHJlYW1BY3Rpdml0eT8ucGhhc2UgIT09ICd3cml0aW5nJykgcmV0dXJuIGZhbHNlXG4gIGlmICghc3RyZWFtaW5nVGV4dC50cmltKCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHZpc2libGUgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZylcbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuXG4gIC8vIFRva2VucyBhbnRlcyBkZSBjdWFscXVpZXIgYWNjacOzbjogbGEgbmFycmFjacOzbiBlcyBlbCBwcmltZXIgcGFzby5cbiAgaWYgKGxlYWRpbmcgJiYgIWhhc0FjdGlvblN0ZXAodmlzaWJsZSkgJiYgbG9va3NMaWtlSW50ZXJtZWRpYXRlTmFycmF0aW9uU3RyZWFtKHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIExlYWRpbmcgeWEgYW5jbGFkYTogZWwgYm9keSB0b2RhdsOtYSBlcyBlc2EgbWlzbWEgbmFycmFjacOzbiAoc2luIHJlc3B1ZXN0YSBmaW5hbCkuXG4gIGlmIChsZWFkaW5nICYmIG5hcnJhdGlvblRleHRzTWF0Y2gobGVhZGluZy50ZXh0LCBzdHJlYW1pbmdUZXh0KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBjb25zdCBsYXN0ID0gdmlzaWJsZVt2aXNpYmxlLmxlbmd0aCAtIDFdXG4gIGlmICghbGFzdCB8fCBsYXN0LnR5cGUgPT09ICd0aGlua2luZycpIHJldHVybiBmYWxzZVxuXG4gIGlmIChsYXN0LnR5cGUgPT09ICduYXJyYXRpb24nKSB7XG4gICAgaWYgKG1lc3NhZ2VJZCAmJiAhcmVhc29uaW5nU3RvcmUuaXNOYXJyYXRpb25IYW5kb2ZmUGVuZGluZyhtZXNzYWdlSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIG5hcnJhdGlvblRleHRzTWF0Y2gobGFzdC50ZXh0LCBzdHJlYW1pbmdUZXh0KVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKiBUZXh0byBkZSBsYSBmaWxhIGxpdmUgYWwgZmluYWwgZGUgbGEgdHJhemE7IG51bGwgc2kgeWEgZXN0w6EgYW5jbGFkYSBvIHZhIGFsIGN1ZXJwby4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlUGVuZGluZ05hcnJhdGlvblRleHQgPSAoXG4gIHN0ZXBzOiBSZWFzb25pbmdTdGVwW10sXG4gIHN0cmVhbUFjdGl2aXR5OiBTdHJlYW1BY3Rpdml0eSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHN0cmVhbWluZ1RleHQ6IHN0cmluZyxcbiAgbWVzc2FnZUlkPzogc3RyaW5nIHwgbnVsbCxcbiAgc2hvd1RoaW5raW5nID0gZmFsc2Vcbik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBpZiAoIXNob3VsZFN0cmVhbU5hcnJhdGlvbkluVGltZWxpbmUoc3RlcHMsIHN0cmVhbUFjdGl2aXR5LCBzdHJlYW1pbmdUZXh0LCBtZXNzYWdlSWQsIHNob3dUaGlua2luZykpIHJldHVybiBudWxsXG5cbiAgY29uc3QgbGVhZGluZyA9IGZpbmRMZWFkaW5nTmFycmF0aW9uKHN0ZXBzKVxuICAvLyBZYSBlc3TDoSBhbmNsYWRhIGFsIGluaWNpbzogbm8gcmVjdWVsZ3VlcyBlbCBtaXNtbyB0ZXh0byBkZXRyw6FzIGRlIGNhZGEgdG9vbC5cbiAgaWYgKGxlYWRpbmcgJiYgbmFycmF0aW9uVGV4dHNNYXRjaChsZWFkaW5nLnRleHQsIHN0cmVhbWluZ1RleHQpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGxhc3QgPSB2aXNpYmxlUmVhc29uaW5nU3RlcHMoc3RlcHMsIHNob3dUaGlua2luZykuYXQoLTEpXG4gIGlmIChsYXN0Py50eXBlID09PSAnbmFycmF0aW9uJyAmJiBuYXJyYXRpb25UZXh0c01hdGNoKGxhc3QudGV4dCwgc3RyZWFtaW5nVGV4dCkpIHtcbiAgICByZXR1cm4gc3RyZWFtaW5nVGV4dFxuICB9XG5cbiAgaWYgKCFsYXN0IHx8IGxhc3QudHlwZSA9PT0gJ3RoaW5raW5nJykgcmV0dXJuIHN0cmVhbWluZ1RleHRcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxjQUFjLFFBQVEsaURBQWlEO0FBQ2hGLFNBQ0VDLG9CQUFvQixFQUNwQkMsYUFBYSxFQUNiQyxvQ0FBb0MsRUFDcENDLG1CQUFtQixRQUNkLG9CQUFvQjtBQUMzQixTQUFTQyxhQUFhLFFBQVEsa0JBQWtCO0FBRWhELE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsbUJBQW1CO0FBRXhELFNBQVNGLG1CQUFtQixRQUFRLG9CQUFvQjtBQUV4RCxPQUFPLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLEtBQXNCO0VBQUEsSUFBRUMsWUFBWSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxLQUFLO0VBQUEsT0FDaEZELFlBQVksR0FBR0QsS0FBSyxHQUFHQSxLQUFLLENBQUNLLE1BQU0sQ0FBQ1IsYUFBYSxDQUFDO0FBQUE7QUFFcEQsT0FBTyxJQUFNUyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxJQUFtQixFQUFFQyxZQUEyQjtFQUFBLE9BQ3hGRCxJQUFJLENBQUNFLElBQUksS0FBSyxXQUFXLElBQUliLG1CQUFtQixDQUFDVyxJQUFJLENBQUNHLElBQUksRUFBRUYsWUFBWSxDQUFDO0FBQUE7O0FBRTNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNRywrQkFBK0IsR0FBRyxTQUFsQ0EsK0JBQStCQSxDQUMxQ1gsS0FBc0IsRUFDdEJZLGNBQWlELEVBQ2pEQyxhQUFxQixFQUNyQkMsU0FBeUIsRUFFYjtFQUFBLElBRFpiLFlBQVksR0FBQUMsU0FBQSxDQUFBQyxN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
@@ -6,7 +6,6 @@ export { ProjectSummaryModal } from './molecules/ProjectSummaryModal';
6
6
  export { ContextMentionInput } from './molecules/ContextMentionInput';
7
7
  export { ProjectSummary } from './organisms/ProjectSummary';
8
8
  export { ChatAI } from './organisms/ChatAI';
9
- export { ChatAIPage } from './organisms/ChatAIPage';
10
9
  export { ProjectAIButton } from './organisms/ProjectAIButton';
11
10
  export { ClientAIButton } from './organisms/ClientAIButton';
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBQnV0dG9uIiwiTWFpYVdyYXBwZXIiLCJNQUlBRXJyb3IiLCJBSUljb24iLCJQcm9qZWN0U3VtbWFyeU1vZGFsIiwiQ29udGV4dE1lbnRpb25JbnB1dCIsIlByb2plY3RTdW1tYXJ5IiwiQ2hhdEFJIiwiQ2hhdEFJUGFnZSIsIlByb2plY3RBSUJ1dHRvbiIsIkNsaWVudEFJQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTUFJQUJ1dHRvbiB9IGZyb20gJy4vYXRvbXMvTUFJQUJ1dHRvbidcbmV4cG9ydCB7IE1haWFXcmFwcGVyIH0gZnJvbSAnLi9hdG9tcy9NYWlhV3JhcHBlcidcbmV4cG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4vYXRvbXMvTUFJQUVycm9yJ1xuXG5leHBvcnQgeyBBSUljb24gfSBmcm9tICcuL2F0b21zL2ljb25zJ1xuXG5leHBvcnQgeyBQcm9qZWN0U3VtbWFyeU1vZGFsIH0gZnJvbSAnLi9tb2xlY3VsZXMvUHJvamVjdFN1bW1hcnlNb2RhbCdcbmV4cG9ydCB7IENvbnRleHRNZW50aW9uSW5wdXQgfSBmcm9tICcuL21vbGVjdWxlcy9Db250ZXh0TWVudGlvbklucHV0J1xuXG5leHBvcnQgeyBQcm9qZWN0U3VtbWFyeSB9IGZyb20gJy4vb3JnYW5pc21zL1Byb2plY3RTdW1tYXJ5J1xuZXhwb3J0IHsgQ2hhdEFJIH0gZnJvbSAnLi9vcmdhbmlzbXMvQ2hhdEFJJ1xuZXhwb3J0IHsgQ2hhdEFJUGFnZSB9IGZyb20gJy4vb3JnYW5pc21zL0NoYXRBSVBhZ2UnXG5leHBvcnQgeyBQcm9qZWN0QUlCdXR0b24gfSBmcm9tICcuL29yZ2FuaXNtcy9Qcm9qZWN0QUlCdXR0b24nXG5leHBvcnQgeyBDbGllbnRBSUJ1dHRvbiB9IGZyb20gJy4vb3JnYW5pc21zL0NsaWVudEFJQnV0dG9uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsb0JBQW9CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUU3QyxTQUFTQyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBU0MsbUJBQW1CLFFBQVEsaUNBQWlDO0FBRXJFLFNBQVNDLGNBQWMsUUFBUSw0QkFBNEI7QUFDM0QsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxVQUFVLFFBQVEsd0JBQXdCO0FBQ25ELFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QiIsImlnbm9yZUxpc3QiOltdfQ==
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBQnV0dG9uIiwiTWFpYVdyYXBwZXIiLCJNQUlBRXJyb3IiLCJBSUljb24iLCJQcm9qZWN0U3VtbWFyeU1vZGFsIiwiQ29udGV4dE1lbnRpb25JbnB1dCIsIlByb2plY3RTdW1tYXJ5IiwiQ2hhdEFJIiwiUHJvamVjdEFJQnV0dG9uIiwiQ2xpZW50QUlCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNQUlBQnV0dG9uIH0gZnJvbSAnLi9hdG9tcy9NQUlBQnV0dG9uJ1xuZXhwb3J0IHsgTWFpYVdyYXBwZXIgfSBmcm9tICcuL2F0b21zL01haWFXcmFwcGVyJ1xuZXhwb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi9hdG9tcy9NQUlBRXJyb3InXG5cbmV4cG9ydCB7IEFJSWNvbiB9IGZyb20gJy4vYXRvbXMvaWNvbnMnXG5cbmV4cG9ydCB7IFByb2plY3RTdW1tYXJ5TW9kYWwgfSBmcm9tICcuL21vbGVjdWxlcy9Qcm9qZWN0U3VtbWFyeU1vZGFsJ1xuZXhwb3J0IHsgQ29udGV4dE1lbnRpb25JbnB1dCB9IGZyb20gJy4vbW9sZWN1bGVzL0NvbnRleHRNZW50aW9uSW5wdXQnXG5cbmV4cG9ydCB7IFByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9vcmdhbmlzbXMvUHJvamVjdFN1bW1hcnknXG5leHBvcnQgeyBDaGF0QUkgfSBmcm9tICcuL29yZ2FuaXNtcy9DaGF0QUknXG5leHBvcnQgeyBQcm9qZWN0QUlCdXR0b24gfSBmcm9tICcuL29yZ2FuaXNtcy9Qcm9qZWN0QUlCdXR0b24nXG5leHBvcnQgeyBDbGllbnRBSUJ1dHRvbiB9IGZyb20gJy4vb3JnYW5pc21zL0NsaWVudEFJQnV0dG9uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsb0JBQW9CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUU3QyxTQUFTQyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBU0MsbUJBQW1CLFFBQVEsaUNBQWlDO0FBRXJFLFNBQVNDLGNBQWMsUUFBUSw0QkFBNEI7QUFDM0QsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxlQUFlLFFBQVEsNkJBQTZCO0FBQzdELFNBQVNDLGNBQWMsUUFBUSw0QkFBNEIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -12,7 +12,6 @@ import { getAvailableConnectors } from '../../../../services/maia/Agents/connect
12
12
  import { DEFAULT_COR_ACCESS } from '../../../../utils/normalizeAgentConnectors';
13
13
  import { hasMaiaExternalConnectorsAccess } from '../../../../constants/maiaExternalConnectorsAccess';
14
14
  import { SCAASWrapper, SCAASHeader, SCAASTitle, SCAASSubtitle, SCAASContent, SCAASSection, SCAASSectionHeader, SCAASSectionTitle, SCAASSectionSubtitle, SCAASOptionsContainer, SCAASDivider } from './AbmAccessibilitySection.styles';
15
- import { buildAccessibilitySelection, mapAccessibilityAnalyticsOption, shouldTrackAccessibilityClientSelection } from './AbmAccessibilitySection.helpers';
16
15
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
16
  // Orden = jerarquía de COR (cliente > proyecto > tarea), de más amplio a más específico.
18
17
  var COR_PERMISSION_ROWS = [{
@@ -51,13 +50,38 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
51
50
  setCatalogConnectors = _useState4[1];
52
51
  var externalConnectorsEnabled = hasMaiaExternalConnectorsAccess();
53
52
  var _handleSelectOption = function handleSelectOption(option, clients) {
53
+ var optionMapping = {
54
+ company: 'all_company',
55
+ clients: 'by_clientes',
56
+ only_me: 'just_me'
57
+ };
54
58
  eventAmplitude(EVENTS.accessibilityType, {
55
- option: mapAccessibilityAnalyticsOption(option)
59
+ option: optionMapping[option]
60
+ });
61
+ var valueToSend = {
62
+ accessType: option,
63
+ clients: null,
64
+ corAccess: formValues.corAccess,
65
+ selectedConnectors: formValues.selectedConnectors
66
+ };
67
+ if (option !== 'clients' || !clients) {
68
+ setFormValues(valueToSend);
69
+ return;
70
+ }
71
+ var clientFormData = clients.map(function (client) {
72
+ return {
73
+ id: client.id,
74
+ name: client.name,
75
+ is_active: client.is_active,
76
+ is_deleted: client.is_deleted
77
+ };
56
78
  });
57
- if (shouldTrackAccessibilityClientSelection(clients)) {
79
+ if (clients && clients.length > 0) {
58
80
  eventAmplitude(EVENTS.accessibilitySelectClient);
59
81
  }
60
- setFormValues(buildAccessibilitySelection(option, clients, formValues.corAccess, formValues.selectedConnectors));
82
+ setFormValues(_objectSpread(_objectSpread({}, valueToSend), {}, {
83
+ clients: clientFormData
84
+ }));
61
85
  };
62
86
  var handleCorAccessChange = function handleCorAccessChange(slug, checked) {
63
87
  eventAmplitude(EVENTS.connectorCor, {
@@ -230,4 +254,4 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
230
254
  })]
231
255
  });
232
256
  };
233
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIiwiU0NBQVNXcmFwcGVyIiwiU0NBQVNIZWFkZXIiLCJTQ0FBU1RpdGxlIiwiU0NBQVNTdWJ0aXRsZSIsIlNDQUFTQ29udGVudCIsIlNDQUFTU2VjdGlvbiIsIlNDQUFTU2VjdGlvbkhlYWRlciIsIlNDQUFTU2VjdGlvblRpdGxlIiwiU0NBQVNTZWN0aW9uU3VidGl0bGUiLCJTQ0FBU09wdGlvbnNDb250YWluZXIiLCJTQ0FBU0RpdmlkZXIiLCJidWlsZEFjY2Vzc2liaWxpdHlTZWxlY3Rpb24iLCJtYXBBY2Nlc3NpYmlsaXR5QW5hbHl0aWNzT3B0aW9uIiwic2hvdWxkVHJhY2tBY2Nlc3NpYmlsaXR5Q2xpZW50U2VsZWN0aW9uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiQ09SX1BFUk1JU1NJT05fUk9XUyIsInNsdWciLCJ0aXRsZUtleSIsImRlc2NyaXB0aW9uS2V5IiwiQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24iLCJfcmVmIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTMiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk0IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTciLCJfZm9ybVZhbHVlcyRjbGllbnRzIiwidmFsdWVzIiwiaGFuZGxlU2V0QWdlbnRWYWx1ZXMiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlU3RhdGUiLCJhY2Nlc3NUeXBlIiwiYWNjZXNzaWJpbGl0eSIsImNsaWVudHMiLCJjb3JBY2Nlc3MiLCJzZWxlY3RlZENvbm5lY3RvcnMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JtVmFsdWVzIiwic2V0Rm9ybVZhbHVlcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY2F0YWxvZ0Nvbm5lY3RvcnMiLCJzZXRDYXRhbG9nQ29ubmVjdG9ycyIsImV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQiLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJvcHRpb24iLCJhY2Nlc3NpYmlsaXR5VHlwZSIsImFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQiLCJoYW5kbGVDb3JBY2Nlc3NDaGFuZ2UiLCJjaGVja2VkIiwiY29ubmVjdG9yQ29yIiwicHJldiIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJoYW5kbGVDb25uZWN0b3JBY2Nlc3NDaGFuZ2UiLCJjb25uZWN0b3JNY3AiLCJuZXh0IiwiU2V0IiwiYWRkIiwiQXJyYXkiLCJmcm9tIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NiIsIm5leHRDb25uZWN0b3JzIiwiY3VycmVudCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNvcnQiLCJqb2luIiwiaW5jb21pbmciLCJrZXkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNhbmNlbGxlZCIsInRoZW4iLCJjb25uZWN0b3JzIiwiZmlsdGVyIiwiY29ubmVjdG9yIiwiaXNfYWN0aXZlIiwiZXJyb3IiLCJjb25zb2xlIiwiY2hpbGRyZW4iLCIkaW5kZXgiLCJtYXAiLCJfcmVmMiIsInRpdGxlIiwiY29uY2F0IiwiZGVzY3JpcHRpb24iLCJvbkNoYW5nZSIsIm5hbWUiLCJpbmNsdWRlcyIsIm9wdGlvblNlbGVjdGVkIiwiaXNDbGllbnQiLCJwcm9wcyIsInNlbGVjdGVkQ2xpZW50cyIsImNsaWVudCIsIl9jbGllbnQkbmFtZSIsImlkIiwiaXNfZGVsZXRlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBPcHRpb25BY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQWNjZXNzaWJpbGl0eSdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0QXZhaWxhYmxlQ29ubmVjdG9ycywgdHlwZSBDYXRhbG9nQ29ubmVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvY29ubmVjdG9ycydcbmltcG9ydCB7IENvckFjY2VzcywgQ29yVG9vbEdyb3VwU2x1ZywgREVGQVVMVF9DT1JfQUNDRVNTIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHsgaGFzTWFpYUV4dGVybmFsQ29ubmVjdG9yc0FjY2VzcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cy9tYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzJ1xuaW1wb3J0IHtcbiAgU0NBQVNXcmFwcGVyLFxuICBTQ0FBU0hlYWRlcixcbiAgU0NBQVNUaXRsZSxcbiAgU0NBQVNTdWJ0aXRsZSxcbiAgU0NBQVNDb250ZW50LFxuICBTQ0FBU1NlY3Rpb24sXG4gIFNDQUFTU2VjdGlvbkhlYWRlcixcbiAgU0NBQVNTZWN0aW9uVGl0bGUsXG4gIFNDQUFTU2VjdGlvblN1YnRpdGxlLFxuICBTQ0FBU09wdGlvbnNDb250YWluZXIsXG4gIFNDQUFTRGl2aWRlcixcbn0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdHlsZXMnXG5pbXBvcnQgeyBDbGllbnRGb3JtRGF0YSB9IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgYnVpbGRBY2Nlc3NpYmlsaXR5U2VsZWN0aW9uLFxuICBtYXBBY2Nlc3NpYmlsaXR5QW5hbHl0aWNzT3B0aW9uLFxuICBzaG91bGRUcmFja0FjY2Vzc2liaWxpdHlDbGllbnRTZWxlY3Rpb24sXG59IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uaGVscGVycydcblxuaW50ZXJmYWNlIEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uUHJvcHMge1xuICB2YWx1ZXM/OiB7XG4gICAgYWNjZXNzaWJpbGl0eT86IHtcbiAgICAgIGFjY2Vzc1R5cGU/OiBzdHJpbmdcbiAgICAgIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgICAgY29yQWNjZXNzPzogQ29yQWNjZXNzXG4gICAgICBzZWxlY3RlZENvbm5lY3RvcnM/OiBzdHJpbmdbXVxuICAgIH1cbiAgfVxuICBoYW5kbGVTZXRBZ2VudFZhbHVlcz86ICh7IGtleSwgdmFsdWUgfTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSkgPT4gdm9pZFxufVxuXG4vLyBPcmRlbiA9IGplcmFycXXDrWEgZGUgQ09SIChjbGllbnRlID4gcHJveWVjdG8gPiB0YXJlYSksIGRlIG3DoXMgYW1wbGlvIGEgbcOhcyBlc3BlY8OtZmljby5cbmNvbnN0IENPUl9QRVJNSVNTSU9OX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiA9ICh7IHZhbHVlcywgaGFuZGxlU2V0QWdlbnRWYWx1ZXMgfTogQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IFtmb3JtVmFsdWVzLCBzZXRGb3JtVmFsdWVzXSA9IHVzZVN0YXRlPHtcbiAgICBhY2Nlc3NUeXBlOiBzdHJpbmdcbiAgICBjbGllbnRzOiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgIGNvckFjY2VzczogQ29yQWNjZXNzXG4gICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBzdHJpbmdbXVxuICB9Pih7XG4gICAgYWNjZXNzVHlwZTogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5hY2Nlc3NUeXBlIHx8ICdjb21wYW55JyxcbiAgICBjbGllbnRzOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmNsaWVudHMgfHwgbnVsbCxcbiAgICBjb3JBY2Nlc3M6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY29yQWNjZXNzID8/IERFRkFVTFRfQ09SX0FDQ0VTUyxcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uc2VsZWN0ZWRDb25uZWN0b3JzIHx8IFtdLFxuICB9KVxuICAvLyBFbCBjYXTDoWxvZ28gbG8gZGVmaW5lIGVsIGJhY2sgKGBHRVQgL3YxL2Nvbm5lY3RvcnNgKTsgZWwgQUJNIHJlbmRlcml6YSB1bmEgZmlsYSBwb3IgY29uZWN0b3IgYWN0aXZvLlxuICBjb25zdCBbY2F0YWxvZ0Nvbm5lY3RvcnMsIHNldENhdGFsb2dDb25uZWN0b3JzXSA9IHVzZVN0YXRlPENhdGFsb2dDb25uZWN0b3JbXT4oW10pXG4gIGNvbnN0IGV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQgPSBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzKClcblxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSAob3B0aW9uOiBzdHJpbmcsIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5VHlwZSwgeyBvcHRpb246IG1hcEFjY2Vzc2liaWxpdHlBbmFseXRpY3NPcHRpb24ob3B0aW9uKSB9KVxuXG4gICAgaWYgKHNob3VsZFRyYWNrQWNjZXNzaWJpbGl0eUNsaWVudFNlbGVjdGlvbihjbGllbnRzKSkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhidWlsZEFjY2Vzc2liaWxpdHlTZWxlY3Rpb24ob3B0aW9uLCBjbGllbnRzLCBmb3JtVmFsdWVzLmNvckFjY2VzcywgZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMpKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IENvclRvb2xHcm91cFNsdWcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgY29yQWNjZXNzOiB7IC4uLnByZXYuY29yQWNjZXNzLCBbc2x1Z106IGNoZWNrZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBnZXRBdmFpbGFibGVDb25uZWN0b3JzKClcbiAgICAgIC50aGVuKGNvbm5lY3RvcnMgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKGNvbm5lY3RvcnMuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuaXNfYWN0aXZlKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbm5lY3RvcnMgY2F0YWxvZzonLCBlcnJvcilcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAge0NPUl9QRVJNSVNTSU9OX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWApfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5jb3JBY2Nlc3Nbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtjaGVja2VkID0+IGhhbmRsZUNvckFjY2Vzc0NoYW5nZShzbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIHtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAga2V5PXtjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb25uZWN0b3IubmFtZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxtQkFBbUIsUUFBUSxvQ0FBb0M7QUFDeEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsNEJBQTRCO0FBQzdELFNBQVNDLHNCQUFzQixRQUErQiw2Q0FBNkM7QUFDM0csU0FBc0NDLGtCQUFrQixRQUFRLDRDQUE0QztBQUM1RyxTQUFTQywrQkFBK0IsUUFBUSxvREFBb0Q7QUFDcEcsU0FDRUMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxpQkFBaUIsRUFDakJDLG9CQUFvQixFQUNwQkMscUJBQXFCLEVBQ3JCQyxZQUFZLFFBQ1Asa0NBQWtDO0FBRXpDLFNBQ0VDLDJCQUEyQixFQUMzQkMsK0JBQStCLEVBQy9CQyx1Q0FBdUMsUUFDbEMsbUNBQW1DO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFjMUM7QUFDQSxJQUFNQyxtQkFBMkYsR0FB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
257
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIiwiU0NBQVNXcmFwcGVyIiwiU0NBQVNIZWFkZXIiLCJTQ0FBU1RpdGxlIiwiU0NBQVNTdWJ0aXRsZSIsIlNDQUFTQ29udGVudCIsIlNDQUFTU2VjdGlvbiIsIlNDQUFTU2VjdGlvbkhlYWRlciIsIlNDQUFTU2VjdGlvblRpdGxlIiwiU0NBQVNTZWN0aW9uU3VidGl0bGUiLCJTQ0FBU09wdGlvbnNDb250YWluZXIiLCJTQ0FBU0RpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDT1JfUEVSTUlTU0lPTl9ST1dTIiwic2x1ZyIsInRpdGxlS2V5IiwiZGVzY3JpcHRpb25LZXkiLCJBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiIsIl9yZWYiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkyIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTQiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk1IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NyIsIl9mb3JtVmFsdWVzJGNsaWVudHMiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTdGF0ZSIsImFjY2Vzc1R5cGUiLCJhY2Nlc3NpYmlsaXR5IiwiY2xpZW50cyIsImNvckFjY2VzcyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm1WYWx1ZXMiLCJzZXRGb3JtVmFsdWVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJjYXRhbG9nQ29ubmVjdG9ycyIsInNldENhdGFsb2dDb25uZWN0b3JzIiwiZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsIm9wdGlvbk1hcHBpbmciLCJjb21wYW55Iiwib25seV9tZSIsImFjY2Vzc2liaWxpdHlUeXBlIiwidmFsdWVUb1NlbmQiLCJjbGllbnRGb3JtRGF0YSIsIm1hcCIsImNsaWVudCIsImlkIiwibmFtZSIsImlzX2FjdGl2ZSIsImlzX2RlbGV0ZWQiLCJsZW5ndGgiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50IiwiX29iamVjdFNwcmVhZCIsImhhbmRsZUNvckFjY2Vzc0NoYW5nZSIsImNoZWNrZWQiLCJjb25uZWN0b3JDb3IiLCJwcmV2IiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlIiwiY29ubmVjdG9yTWNwIiwibmV4dCIsIlNldCIsImFkZCIsIkFycmF5IiwiZnJvbSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTYiLCJuZXh0Q29ubmVjdG9ycyIsImN1cnJlbnQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsImluY29taW5nIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJjYW5jZWxsZWQiLCJ0aGVuIiwiY29ubmVjdG9ycyIsImZpbHRlciIsImNvbm5lY3RvciIsImVycm9yIiwiY29uc29sZSIsImNoaWxkcmVuIiwiJGluZGV4IiwiX3JlZjIiLCJ0aXRsZSIsImNvbmNhdCIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJpbmNsdWRlcyIsIm9wdGlvblNlbGVjdGVkIiwiaXNDbGllbnQiLCJwcm9wcyIsInNlbGVjdGVkQ2xpZW50cyIsIl9jbGllbnQkbmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBPcHRpb25BY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQWNjZXNzaWJpbGl0eSdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0QXZhaWxhYmxlQ29ubmVjdG9ycywgdHlwZSBDYXRhbG9nQ29ubmVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvY29ubmVjdG9ycydcbmltcG9ydCB7IENvckFjY2VzcywgQ29yVG9vbEdyb3VwU2x1ZywgREVGQVVMVF9DT1JfQUNDRVNTIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHsgaGFzTWFpYUV4dGVybmFsQ29ubmVjdG9yc0FjY2VzcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cy9tYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzJ1xuaW1wb3J0IHtcbiAgU0NBQVNXcmFwcGVyLFxuICBTQ0FBU0hlYWRlcixcbiAgU0NBQVNUaXRsZSxcbiAgU0NBQVNTdWJ0aXRsZSxcbiAgU0NBQVNDb250ZW50LFxuICBTQ0FBU1NlY3Rpb24sXG4gIFNDQUFTU2VjdGlvbkhlYWRlcixcbiAgU0NBQVNTZWN0aW9uVGl0bGUsXG4gIFNDQUFTU2VjdGlvblN1YnRpdGxlLFxuICBTQ0FBU09wdGlvbnNDb250YWluZXIsXG4gIFNDQUFTRGl2aWRlcixcbn0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdHlsZXMnXG5pbXBvcnQgeyBDbGllbnRGb3JtRGF0YSB9IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uaW50ZXJmYWNlJ1xuXG5pbnRlcmZhY2UgQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcyB7XG4gIHZhbHVlcz86IHtcbiAgICBhY2Nlc3NpYmlsaXR5Pzoge1xuICAgICAgYWNjZXNzVHlwZT86IHN0cmluZ1xuICAgICAgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgICBjb3JBY2Nlc3M/OiBDb3JBY2Nlc3NcbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9ycz86IHN0cmluZ1tdXG4gICAgfVxuICB9XG4gIGhhbmRsZVNldEFnZW50VmFsdWVzPzogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG59XG5cbi8vIE9yZGVuID0gamVyYXJxdcOtYSBkZSBDT1IgKGNsaWVudGUgPiBwcm95ZWN0byA+IHRhcmVhKSwgZGUgbcOhcyBhbXBsaW8gYSBtw6FzIGVzcGVjw61maWNvLlxuY29uc3QgQ09SX1BFUk1JU1NJT05fUk9XUzogeyBzbHVnOiBDb3JUb29sR3JvdXBTbHVnOyB0aXRsZUtleTogc3RyaW5nOyBkZXNjcmlwdGlvbktleTogc3RyaW5nIH1bXSA9IFtcbiAgeyBzbHVnOiAnY2xpZW50ZXMnLCB0aXRsZUtleTogJ2NsaWVudEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdjbGllbnRBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbiAgeyBzbHVnOiAncHJveWVjdG9zJywgdGl0bGVLZXk6ICdwcm9qZWN0QWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ3Byb2plY3RBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbiAgeyBzbHVnOiAndGFyZWFzJywgdGl0bGVLZXk6ICd0YXNrQWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ3Rhc2tBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbl1cblxuZXhwb3J0IGNvbnN0IEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uID0gKHsgdmFsdWVzLCBoYW5kbGVTZXRBZ2VudFZhbHVlcyB9OiBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgY29yQWNjZXNzOiBDb3JBY2Nlc3NcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIGNvckFjY2VzczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gIH0pXG4gIC8vIEVsIGNhdMOhbG9nbyBsbyBkZWZpbmUgZWwgYmFjayAoYEdFVCAvdjEvY29ubmVjdG9yc2ApOyBlbCBBQk0gcmVuZGVyaXphIHVuYSBmaWxhIHBvciBjb25lY3RvciBhY3Rpdm8uXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihbXSlcbiAgY29uc3QgZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCA9IGhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MoKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IChvcHRpb246IHN0cmluZywgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uTWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIGNvbXBhbnk6ICdhbGxfY29tcGFueScsXG4gICAgICBjbGllbnRzOiAnYnlfY2xpZW50ZXMnLFxuICAgICAgb25seV9tZTogJ2p1c3RfbWUnLFxuICAgIH1cblxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5VHlwZSwgeyBvcHRpb246IG9wdGlvbk1hcHBpbmdbb3B0aW9uXSB9KVxuXG4gICAgY29uc3QgdmFsdWVUb1NlbmQgPSB7XG4gICAgICBhY2Nlc3NUeXBlOiBvcHRpb24sXG4gICAgICBjbGllbnRzOiBudWxsIGFzIENsaWVudEZvcm1EYXRhW10gfCBudWxsLFxuICAgICAgY29yQWNjZXNzOiBmb3JtVmFsdWVzLmNvckFjY2VzcyxcbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9yczogZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMsXG4gICAgfVxuICAgIGlmIChvcHRpb24gIT09ICdjbGllbnRzJyB8fCAhY2xpZW50cykge1xuICAgICAgc2V0Rm9ybVZhbHVlcyh2YWx1ZVRvU2VuZClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudEZvcm1EYXRhID0gY2xpZW50cy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICBpZDogY2xpZW50LmlkLFxuICAgICAgbmFtZTogY2xpZW50Lm5hbWUsXG4gICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICBpc19kZWxldGVkOiBjbGllbnQuaXNfZGVsZXRlZCxcbiAgICB9KSlcblxuICAgIGlmIChjbGllbnRzICYmIGNsaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyh7IC4uLnZhbHVlVG9TZW5kLCBjbGllbnRzOiBjbGllbnRGb3JtRGF0YSB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IENvclRvb2xHcm91cFNsdWcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgY29yQWNjZXNzOiB7IC4uLnByZXYuY29yQWNjZXNzLCBbc2x1Z106IGNoZWNrZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBnZXRBdmFpbGFibGVDb25uZWN0b3JzKClcbiAgICAgIC50aGVuKGNvbm5lY3RvcnMgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKGNvbm5lY3RvcnMuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuaXNfYWN0aXZlKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbm5lY3RvcnMgY2F0YWxvZzonLCBlcnJvcilcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAge0NPUl9QRVJNSVNTSU9OX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWApfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5jb3JBY2Nlc3Nbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtjaGVja2VkID0+IGhhbmRsZUNvckFjY2Vzc0NoYW5nZShzbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIHtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAga2V5PXtjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb25uZWN0b3IubmFtZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxtQkFBbUIsUUFBUSxvQ0FBb0M7QUFDeEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsNEJBQTRCO0FBQzdELFNBQVNDLHNCQUFzQixRQUErQiw2Q0FBNkM7QUFDM0csU0FB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