@projectcor/maia-components 2.29.0 → 2.30.1-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 (669) hide show
  1. package/CHANGELOG.md +656 -0
  2. package/lib/App.js +55 -0
  3. package/lib/components/atoms/ActionableButton.js +60 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  6. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  7. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  9. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  10. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  16. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  17. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  23. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  25. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  26. package/lib/components/atoms/Backdrop/index.js +2 -0
  27. package/lib/components/atoms/CardItem.js +7 -0
  28. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  29. package/lib/components/atoms/CardMenu/index.js +2 -0
  30. package/lib/components/atoms/CardMenu/styles.js +21 -0
  31. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  32. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  35. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  36. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  37. package/lib/components/atoms/Checkbox/index.js +2 -0
  38. package/lib/components/atoms/Checkbox/styles.js +39 -0
  39. package/lib/components/atoms/Chip/Chip.js +150 -0
  40. package/lib/components/atoms/Chip/index.js +2 -0
  41. package/lib/components/atoms/Chip/styles.js +43 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  43. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  44. package/lib/components/atoms/ChipLlm/index.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  47. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  48. package/lib/components/atoms/ChipStatus/index.js +2 -0
  49. package/lib/components/atoms/ClearButton.js +6 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  51. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  52. package/lib/components/atoms/ClientSelector/index.js +2 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  54. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  55. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  56. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +445 -0
  57. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +533 -0
  59. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  60. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +282 -0
  62. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +148 -0
  63. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +290 -0
  65. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  66. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  67. package/lib/components/atoms/CopyToClipboard.js +70 -0
  68. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  69. package/lib/components/atoms/EditableLabel/index.js +2 -0
  70. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  72. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  73. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  75. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  76. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  79. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  80. package/lib/components/atoms/EntitySelector/index.js +2 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  82. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  85. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  87. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  88. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  89. package/lib/components/atoms/Expand/Expand.js +32 -0
  90. package/lib/components/atoms/Expand/index.js +2 -0
  91. package/lib/components/atoms/Fade/Fade.js +56 -0
  92. package/lib/components/atoms/Fade/index.js +2 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  94. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  95. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  99. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  103. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  104. package/lib/components/atoms/GoBackButton.js +24 -0
  105. package/lib/components/atoms/HelpButton.js +44 -0
  106. package/lib/components/atoms/IconButton.js +56 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  108. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  109. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  110. package/lib/components/atoms/Input/CustomInput.js +91 -0
  111. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  112. package/lib/components/atoms/Input/index.js +2 -0
  113. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  114. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  115. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  116. package/lib/components/atoms/Loader.js +41 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  118. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  119. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  121. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  122. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  124. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  125. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  126. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  127. package/lib/components/atoms/LoadingText/index.js +2 -0
  128. package/lib/components/atoms/LoadingText/styles.js +7 -0
  129. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  130. package/lib/components/atoms/MAIAButton/index.js +2 -0
  131. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  132. package/lib/components/atoms/MAIAError/index.js +2 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInput.js +1233 -0
  134. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  135. package/lib/components/atoms/MAIAInput/index.js +2 -0
  136. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  137. package/lib/components/atoms/MAIAInput/styles.js +186 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  139. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  140. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  141. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  145. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  146. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  148. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  149. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  150. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  151. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  154. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  155. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  157. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  158. package/lib/components/atoms/ModalInfo/index.js +3 -0
  159. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  162. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  163. package/lib/components/atoms/ModalProject/index.js +2 -0
  164. package/lib/components/atoms/NextPageLoader.js +33 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  167. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  168. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  170. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  171. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  173. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  174. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  175. package/lib/components/atoms/PrimaryButton.js +31 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  177. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  178. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  179. package/lib/components/atoms/SecondaryButton.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  182. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  183. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  184. package/lib/components/atoms/Skeleton/index.js +2 -0
  185. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
  186. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
  187. package/lib/components/atoms/SkillsDropdown/index.js +2 -0
  188. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  189. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  190. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  191. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  192. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  193. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  194. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  195. package/lib/components/atoms/Switch/Switch.js +27 -0
  196. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  197. package/lib/components/atoms/Switch/index.js +2 -0
  198. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  199. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  200. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  201. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  202. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  203. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  204. package/lib/components/atoms/TextArea/index.js +2 -0
  205. package/lib/components/atoms/ThirdButton.js +19 -0
  206. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  207. package/lib/components/atoms/VideoModal/index.js +2 -0
  208. package/lib/components/atoms/WithAppCfg.js +26 -0
  209. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  210. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  211. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  212. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  213. package/lib/components/atoms/icons/AIIcon.js +23 -0
  214. package/lib/components/atoms/icons/AacFile.js +39 -0
  215. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  216. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  217. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  218. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  219. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  220. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  221. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  222. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  223. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  224. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  225. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  226. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  227. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  228. package/lib/components/atoms/icons/Brain.js +77 -0
  229. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  230. package/lib/components/atoms/icons/CorLogo.js +76 -0
  231. package/lib/components/atoms/icons/CsvFile.js +41 -0
  232. package/lib/components/atoms/icons/DocFile.js +41 -0
  233. package/lib/components/atoms/icons/DocxFile.js +41 -0
  234. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  235. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  236. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  237. package/lib/components/atoms/icons/EmptyState.js +84 -0
  238. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  239. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  240. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  241. package/lib/components/atoms/icons/ErrorState.js +51 -0
  242. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  243. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  244. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  245. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  246. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  247. package/lib/components/atoms/icons/ImageFile.js +46 -0
  248. package/lib/components/atoms/icons/M4aFile.js +39 -0
  249. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  250. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  251. package/lib/components/atoms/icons/MDFile.js +41 -0
  252. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  253. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  254. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  256. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  257. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  259. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  260. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  261. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  262. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  263. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  264. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  265. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  266. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  267. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  268. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  269. package/lib/components/atoms/icons/Mp3File.js +39 -0
  270. package/lib/components/atoms/icons/Mp4File.js +39 -0
  271. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  272. package/lib/components/atoms/icons/NewChat.js +29 -0
  273. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  274. package/lib/components/atoms/icons/OgaFile.js +39 -0
  275. package/lib/components/atoms/icons/OggFile.js +39 -0
  276. package/lib/components/atoms/icons/PdfFile.js +39 -0
  277. package/lib/components/atoms/icons/PlusIcon.js +29 -0
  278. package/lib/components/atoms/icons/PptFile.js +47 -0
  279. package/lib/components/atoms/icons/PptxFile.js +49 -0
  280. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  281. package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
  282. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  283. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
  284. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
  285. package/lib/components/atoms/icons/SkillsNavIcon.js +24 -0
  286. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  287. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  288. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  289. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  290. package/lib/components/atoms/icons/TextFile.js +41 -0
  291. package/lib/components/atoms/icons/WavFile.js +39 -0
  292. package/lib/components/atoms/icons/WebmFile.js +50 -0
  293. package/lib/components/atoms/icons/XlsFile.js +42 -0
  294. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  295. package/lib/components/atoms/icons/index.js +54 -0
  296. package/lib/components/atoms/index.js +42 -0
  297. package/lib/components/index.js +11 -0
  298. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  299. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +236 -0
  300. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  301. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  302. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  303. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  304. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  305. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  306. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  307. package/lib/components/molecules/AbmSection/index.js +4 -0
  308. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  309. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  310. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +119 -0
  311. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  312. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  313. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  314. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  315. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  316. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  317. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  318. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  319. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  320. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  321. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  322. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  323. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  324. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  325. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  326. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  327. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  328. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  329. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  330. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1254 -0
  331. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  333. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  334. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  335. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  336. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  337. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  338. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +453 -0
  339. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  340. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  341. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  342. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  343. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  344. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  345. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  346. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  347. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  348. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  349. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  350. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  351. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  352. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  353. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  354. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +430 -0
  355. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +169 -0
  356. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  357. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  358. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  359. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  360. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  361. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  362. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  363. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  364. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  365. package/lib/components/molecules/ChatFooter/index.js +2 -0
  366. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  367. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +60 -0
  368. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  369. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  370. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  371. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  372. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  373. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  374. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  376. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  377. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  378. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  379. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  380. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  381. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  382. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  383. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  384. package/lib/components/molecules/Sidebar/Sidebar.js +716 -0
  385. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  386. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  387. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  388. package/lib/components/molecules/Sidebar/index.js +2 -0
  389. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1449 -0
  390. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  391. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  392. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +182 -0
  393. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  394. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  395. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +585 -0
  396. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +154 -0
  397. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  398. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  399. package/lib/components/organisms/ChatAI/index.js +2 -0
  400. package/lib/components/organisms/ChatAI/styles.js +7 -0
  401. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  402. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  403. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  404. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  405. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  406. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  407. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  408. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  409. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  410. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  411. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  412. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  413. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  414. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  415. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  416. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  417. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  418. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  419. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  420. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  421. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  422. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  423. package/lib/components/organisms/SnackBar/index.js +2 -0
  424. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  425. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  426. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  427. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  428. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  429. package/lib/constants/config.js +10 -0
  430. package/lib/constants/formatExtensions.js +55 -0
  431. package/lib/constants/gqlClient.js +4 -0
  432. package/lib/constants/maiaHourAgentAccess.js +15 -0
  433. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  434. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  435. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  436. package/lib/constants/permissions/config.js +72 -0
  437. package/lib/constants/permissions/index.js +3 -0
  438. package/lib/constants/permissions/types.js +2 -0
  439. package/lib/constants/permissions/utils.js +18 -0
  440. package/lib/constants/plannerSyncEvents.js +15 -0
  441. package/lib/constants/taskLinkIcon.js +15 -0
  442. package/lib/constants/taskUrls.js +11 -0
  443. package/lib/context/cor-user.js +31 -0
  444. package/lib/context/global-context.js +39 -0
  445. package/lib/dev/DevChatAI.js +101 -0
  446. package/lib/dev/DevContextMentionInput.js +67 -0
  447. package/lib/dev/ProjectSummary.js +9 -0
  448. package/lib/dev/Providers.js +27 -0
  449. package/lib/exports.js +2 -0
  450. package/lib/hooks/README.md +192 -0
  451. package/lib/hooks/index.js +30 -0
  452. package/lib/hooks/useAccessClient/index.js +2 -0
  453. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  454. package/lib/hooks/useAgentModel/index.js +2 -0
  455. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  456. package/lib/hooks/useAgentModel/useCreateAgent.js +175 -0
  457. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  458. package/lib/hooks/useAgentModel/useUpdateAgent.js +176 -0
  459. package/lib/hooks/useAgentSuggestions.js +60 -0
  460. package/lib/hooks/useCaretPosition.js +65 -0
  461. package/lib/hooks/useChatManager/index.js +2 -0
  462. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  463. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  464. package/lib/hooks/useChatMessages/index.js +2 -0
  465. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  466. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  467. package/lib/hooks/useChats/index.js +2 -0
  468. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  469. package/lib/hooks/useChats/useChats.js +187 -0
  470. package/lib/hooks/useClientSearch.js +163 -0
  471. package/lib/hooks/useContextMentions.js +500 -0
  472. package/lib/hooks/useContextPinPopover.js +228 -0
  473. package/lib/hooks/useDebounce.js +18 -0
  474. package/lib/hooks/useEntitySearch.js +1053 -0
  475. package/lib/hooks/useEvent.js +94 -0
  476. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  477. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  478. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  479. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  480. package/lib/hooks/useKnowledge/index.js +4 -0
  481. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  482. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  483. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  484. package/lib/hooks/useMentionAllowedTypes.js +120 -0
  485. package/lib/hooks/useMentionPopover.js +342 -0
  486. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  487. package/lib/hooks/useModal/index.js +2 -0
  488. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  489. package/lib/hooks/useModal/useModal.js +47 -0
  490. package/lib/hooks/useOnboardingNavigation.js +20 -0
  491. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  492. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  493. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  494. package/lib/hooks/useProjectSearch.js +183 -0
  495. package/lib/hooks/useProjectSummary.js +101 -0
  496. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  497. package/lib/hooks/useProjects.js +46 -0
  498. package/lib/hooks/useRecentClientsSearch.js +150 -0
  499. package/lib/hooks/useRecentContexts.js +86 -0
  500. package/lib/hooks/useResize.js +29 -0
  501. package/lib/hooks/useSkillsCatalog.js +66 -0
  502. package/lib/hooks/useSlashCommands.js +84 -0
  503. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  504. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  505. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  506. package/lib/hooks/useStreamResponse.js +112 -0
  507. package/lib/hooks/useStreamdownStyles.js +13 -0
  508. package/lib/hooks/useStreamingMessage/index.js +2 -0
  509. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  510. package/lib/hooks/useT.js +17 -0
  511. package/lib/hooks/useTabTaskDefault.js +33 -0
  512. package/lib/hooks/useTaskPanel.js +22 -0
  513. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  514. package/lib/hooks/useToggle.js +19 -0
  515. package/lib/hooks/useToggleFavorite/index.js +2 -0
  516. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  517. package/lib/index.css +76 -0
  518. package/lib/index.js +30 -0
  519. package/lib/lang/br/index.js +793 -0
  520. package/lib/lang/en/index.js +793 -0
  521. package/lib/lang/es/index.js +794 -0
  522. package/lib/lang/fr/index.js +614 -0
  523. package/lib/lang/index.js +24 -0
  524. package/lib/lang/utils.js +33 -0
  525. package/lib/mocks/mockChats.js +395 -0
  526. package/lib/mocks/mockOrchestrator.js +5 -0
  527. package/lib/mocks/mockProject.js +11 -0
  528. package/lib/mocks/mockProjectSummary.js +6 -0
  529. package/lib/mocks/mockedUser.js +169 -0
  530. package/lib/services/apolloClient.js +3 -0
  531. package/lib/services/appcues.js +19 -0
  532. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  533. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  534. package/lib/services/corpilot/client.js +27 -0
  535. package/lib/services/corpilot/index.js +5 -0
  536. package/lib/services/maia/Access/updateAccess.js +59 -0
  537. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  538. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  539. package/lib/services/maia/Actions/index.js +7 -0
  540. package/lib/services/maia/Agents/connectors.js +250 -0
  541. package/lib/services/maia/Agents/createAgent.js +39 -0
  542. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  543. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  544. package/lib/services/maia/Agents/getAgentById.js +162 -0
  545. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  546. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  547. package/lib/services/maia/Agents/getAgents.js +718 -0
  548. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  549. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  550. package/lib/services/maia/Agents/updateAgent.js +39 -0
  551. package/lib/services/maia/Chats/deleteChat.js +32 -0
  552. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  553. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  554. package/lib/services/maia/Chats/index.js +15 -0
  555. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  556. package/lib/services/maia/Chats/patchChat.js +43 -0
  557. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  558. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  559. package/lib/services/maia/Faqs/index.js +5 -0
  560. package/lib/services/maia/Knowledge/delete.js +41 -0
  561. package/lib/services/maia/Knowledge/download.js +48 -0
  562. package/lib/services/maia/Knowledge/index.js +3 -0
  563. package/lib/services/maia/Knowledge/save.js +43 -0
  564. package/lib/services/maia/Orchestrator/index.js +7 -0
  565. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  566. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  567. package/lib/services/maia/RecentClients/index.js +6 -0
  568. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  569. package/lib/services/maia/RecentContexts/index.js +6 -0
  570. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  571. package/lib/services/maia/RecentProjects/index.js +6 -0
  572. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  573. package/lib/services/maia/RecentTasks/index.js +6 -0
  574. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  575. package/lib/services/maia/RecentUsers/index.js +6 -0
  576. package/lib/services/maia/Skills/createSkill.js +39 -0
  577. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  578. package/lib/services/maia/Skills/generateSkill.js +41 -0
  579. package/lib/services/maia/Skills/getSkills.js +120 -0
  580. package/lib/services/maia/Skills/updateSkill.js +39 -0
  581. package/lib/services/maia/client.js +27 -0
  582. package/lib/services/maia/index.js +17 -0
  583. package/lib/services/query/ClientSearchQuery.js +5 -0
  584. package/lib/services/query/entitySearchQuery.js +18 -0
  585. package/lib/services/query/index.js +2 -0
  586. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  587. package/lib/services/query/taskUserTabQuery.js +8 -0
  588. package/lib/services/query/usersDirectoryQuery.js +19 -0
  589. package/lib/services/types.js +6 -0
  590. package/lib/services/utils/fetchCOR.js +117 -0
  591. package/lib/services/utils/getCookie.js +10 -0
  592. package/lib/services/utils/index.js +3 -0
  593. package/lib/services/utils/mapChatMessages.js +287 -0
  594. package/lib/services/utils/validateIsMaia.js +4 -0
  595. package/lib/store/chatsSidebarOptimistic.js +92 -0
  596. package/lib/store/chatsStore.types.js +2 -0
  597. package/lib/store/chatsStoreLifecycle.js +8 -0
  598. package/lib/store/faqsStore.types.js +2 -0
  599. package/lib/store/index.js +4 -0
  600. package/lib/store/maiaLastChatPersistence.js +35 -0
  601. package/lib/store/sessions/activeView.js +22 -0
  602. package/lib/store/sessions/index.js +9 -0
  603. package/lib/store/sessions/sessionHitlContext.js +15 -0
  604. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  605. package/lib/store/sessions/sessionNotifications.js +110 -0
  606. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  607. package/lib/store/sessions/sessionStreamManager.js +715 -0
  608. package/lib/store/sessions/sessionStreamingText.js +80 -0
  609. package/lib/store/sessions/sessions.types.js +35 -0
  610. package/lib/store/sessions/useSessionMeta.js +39 -0
  611. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  612. package/lib/store/sessions/useSessionsStore.js +197 -0
  613. package/lib/store/useChatsStore.js +387 -0
  614. package/lib/store/useFaqsStore.js +27 -0
  615. package/lib/streamdownStyles.js +9 -0
  616. package/lib/styles/StyledCleanContainer.js +7 -0
  617. package/lib/styles/cascade.js +14 -0
  618. package/lib/styles/config.js +47 -0
  619. package/lib/styles/shared/scrollable.js +3 -0
  620. package/lib/styles/transitions.js +21 -0
  621. package/lib/types/Action.js +2 -0
  622. package/lib/types/AgentSuggestion.js +2 -0
  623. package/lib/types/Chat.js +10 -0
  624. package/lib/types/Client.js +2 -0
  625. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  626. package/lib/types/Project.js +2 -0
  627. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  628. package/lib/types/Task.js +2 -0
  629. package/lib/types/agent.js +2 -0
  630. package/lib/types/agentModal.js +2 -0
  631. package/lib/types/contextMention.js +37 -0
  632. package/lib/types/global.d.js +2 -0
  633. package/lib/types/skill.js +2 -0
  634. package/lib/types/streamActivity.js +2 -0
  635. package/lib/types/userType.d.js +2 -0
  636. package/lib/utils/actionCategoryMap.js +37 -0
  637. package/lib/utils/actionIconMap.js +61 -0
  638. package/lib/utils/agentDisplayName.js +42 -0
  639. package/lib/utils/chatInputFiles.js +52 -0
  640. package/lib/utils/contextMentionIcons.js +134 -0
  641. package/lib/utils/contextMentionLabel.js +4 -0
  642. package/lib/utils/contextMentionTriggers.js +51 -0
  643. package/lib/utils/contextMentionTypeLabel.js +17 -0
  644. package/lib/utils/corConnectorMentionTypes.js +41 -0
  645. package/lib/utils/ensureStreamdownStyles.js +21 -0
  646. package/lib/utils/entityLinkRender.js +135 -0
  647. package/lib/utils/fileDownloadHelper.js +40 -0
  648. package/lib/utils/formatQuickActionMessage.js +16 -0
  649. package/lib/utils/formatUnreadCount.js +6 -0
  650. package/lib/utils/getUnitFileSize.js +13 -0
  651. package/lib/utils/hitlAnalytics.js +65 -0
  652. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  653. package/lib/utils/imagePreprocessor.js +108 -0
  654. package/lib/utils/index.js +3 -0
  655. package/lib/utils/maiaHostOpen.js +19 -0
  656. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  657. package/lib/utils/mapBackendLang.js +8 -0
  658. package/lib/utils/normalizeAgentConnectors.js +95 -0
  659. package/lib/utils/openTaskInCorPanel.js +22 -0
  660. package/lib/utils/orchestratorSubagents.js +11 -0
  661. package/lib/utils/renderContextMentions.js +420 -0
  662. package/lib/utils/retryCompletion.js +85 -0
  663. package/lib/utils/slashCommandMarker.js +30 -0
  664. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  665. package/lib/utils/sseStreamContent.js +17 -0
  666. package/lib/utils/streamActivityMessages.js +359 -0
  667. package/lib/utils/validateTrimmedFields.js +8 -0
  668. package/package.json +1 -1
  669. package/README.md +0 -2
@@ -0,0 +1,614 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { SECTIONS } from '../../constants/config';
5
+ import { ProjectSummaryConfigKeys } from '../../types/ProjectSummaryConfigKeys';
6
+ var globals = {
7
+ close: 'Close',
8
+ minimize: 'Réduire',
9
+ howWorks: 'How does it work?',
10
+ brandName: 'MAIA',
11
+ expand: 'Expand',
12
+ collapse: 'Collapse',
13
+ goBack: 'Go back to the start',
14
+ copy: 'Copy',
15
+ copied: 'Copied',
16
+ saved: 'Saved',
17
+ selectProject: 'Select project',
18
+ save: 'Save',
19
+ cancel: 'Cancel'
20
+ };
21
+ var error = {
22
+ title: "Une erreur s'est produite",
23
+ description: 'Nous rencontrons actuellement quelques problèmes. Veuillez réessayer dans quelques minutes.',
24
+ tryAgain: 'Réessayer'
25
+ };
26
+ var genericSection = {
27
+ error: error,
28
+ globals: globals
29
+ };
30
+ var projectSummarySection = {
31
+ resume: 'Resume',
32
+ hello: 'Hi, {{name}}!',
33
+ welcome: "I'm MAIA, your assistant at COR",
34
+ feedback: {
35
+ thumbsUp: 'It was helpful',
36
+ thumbsDown: "It wasn't helpful",
37
+ sources: 'Sources'
38
+ },
39
+ config: {
40
+ projectSummary: 'Summarize project',
41
+ selectProject: 'Select project',
42
+ configureResume: 'Advanced settings',
43
+ generatingResume: 'Generating summary',
44
+ generateResume: 'Generate',
45
+ hideConfig: 'Hide settings'
46
+ },
47
+ configureSettings: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProjectSummaryConfigKeys.GENERAL_STATUS, 'Dates and deadlines'), ProjectSummaryConfigKeys.INCOME_COSTS, 'Profitability'), ProjectSummaryConfigKeys.TIME_HOURS, 'Estimated hours and usage'), ProjectSummaryConfigKeys.TASKS_PROGRESS, 'Tasks and progress'), ProjectSummaryConfigKeys.REWORKS, 'Rework')
48
+ };
49
+ var homeMenu = {
50
+ projectSummary: {
51
+ title: 'Résumé du projet',
52
+ description: "Générez des rapports avec l'IA à partir de votre projet"
53
+ },
54
+ faq: {
55
+ startTitle: 'Vous pouvez commencer par...',
56
+ categories: {
57
+ reworks: 'Rework'
58
+ }
59
+ },
60
+ fua: {
61
+ title: 'Actions fréquentes',
62
+ newBadge: 'Nouveau',
63
+ error: 'Oups! Nous avons eu un problème pour charger les actions fréquentes. Veuillez réessayer dans quelques minutes.'
64
+ },
65
+ recentContexts: {
66
+ title: 'Choisissez un contexte récent pour une réponse plus précise :',
67
+ types: {
68
+ client: 'Client',
69
+ project: 'Projet',
70
+ task: 'Tâche'
71
+ }
72
+ },
73
+ contextHome: {
74
+ greeting: 'Bonjour, {{name}} 👋',
75
+ subtitle: 'Je suis MAIA, votre assistante pour les tâches, les projets et les clients.\nOn reprend quelque chose de récent ?',
76
+ subtitleCollaborator: 'Je suis MAIA, votre assistante pour les tâches. On reprend quelque chose de récent ?',
77
+ subtitleCollaboratorWithHours: 'Saisissez vos heures ou démarrez un chat sur une tâche.',
78
+ subtitleManagerWithHours: 'Par où voulez-vous commencer ?',
79
+ hoursSection: {
80
+ title: 'Saisir des heures'
81
+ },
82
+ recentTasksSection: {
83
+ title: 'Consulter une tâche',
84
+ subtitle: 'Choisissez une tâche récente pour l’utiliser comme contexte.'
85
+ },
86
+ recentContextsSectionManager: {
87
+ title: 'Ou reprenez quelque chose de récent',
88
+ subtitle: 'Choisissez une tâche, un projet ou un client comme contexte'
89
+ },
90
+ contextGreeting: {
91
+ project: 'Que voulez-vous analyser ? Heures, estimations, reprises ? À vous de choisir !',
92
+ task: "Je suis là pour vous aider avec cette tâche. Utilisez l'une des actions pour commencer.",
93
+ client: 'Que voulez-vous analyser ? Rentabilité, avancées, deadlines ? À vous de choisir !'
94
+ }
95
+ },
96
+ plannerHome: {
97
+ title: 'Commençons par saisir vos heures',
98
+ subtitle: 'Par où commence-t-on ?'
99
+ },
100
+ action: {
101
+ categories: {
102
+ tasks: 'Actions sur les tâches',
103
+ collaborators: 'Collaborateurs et responsables',
104
+ labels: 'Étiquettes et types',
105
+ checklists: 'Checklists',
106
+ deliverables: 'Livrables',
107
+ reworks: 'Reprises',
108
+ hours: 'Saisie des heures'
109
+ }
110
+ },
111
+ createdBy: 'Created by',
112
+ taskGreeting: "Je suis là pour vous aider avec cette tâche. Utilisez l'une des actions pour commencer.",
113
+ maiaker: {
114
+ title: 'Transformez les processus répétitifs en agents intelligents',
115
+ description: 'Créez des agents qui analysent et génèrent du contenu selon vos besoins.',
116
+ createManualAgent: 'Créer un agent manuellement',
117
+ badgeNew: 'Nouveau',
118
+ briefCard: {
119
+ title: 'Agent spécialiste en brief',
120
+ description: 'Créez et améliorez des briefs pour qu’ils soient prêts à être utilisés dans des tâches.',
121
+ prompt: 'Je veux créer un agent spécialiste en brief.'
122
+ },
123
+ comingSoonCard: {
124
+ title: 'Bientôt disponible',
125
+ description: 'Nous travaillons pour vous proposer davantage d’agents'
126
+ }
127
+ }
128
+ };
129
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
130
+ homeMenu: homeMenu,
131
+ contextMention: {
132
+ keyboardHint: 'Navigation entre les onglets : @, @@… dans l’ordre. Aussi Alt/Cmd + ←/→',
133
+ recentsTitle: 'Récents',
134
+ me: 'Moi',
135
+ tabs: {
136
+ client: 'Client',
137
+ project: 'Projet',
138
+ task: 'Tâche',
139
+ user: 'Utilisateur',
140
+ mcp: 'Connecteurs',
141
+ skill: 'Compétences'
142
+ },
143
+ loading: 'Recherche...',
144
+ error: 'Un problème est survenu. Réessayez.',
145
+ empty: {
146
+ recents: 'Commencez à écrire pour rechercher',
147
+ withQuery: 'Aucun résultat pour "{{query}}"'
148
+ },
149
+ counters: {
150
+ projects: 'projets',
151
+ tasks: 'tâches'
152
+ }
153
+ },
154
+ contextPin: {
155
+ addContext: 'Contexte global',
156
+ searchPlaceholder: 'Rechercher un contexte…',
157
+ remove: 'Retirer le contexte'
158
+ },
159
+ button: 'IA',
160
+ title: 'Bonjour, {{name}}!',
161
+ description: "Je suis MAIA, ton assistante, et je suis là pour t'aider avec tes questions.",
162
+ newChat: 'Nouveau chat',
163
+ generating: 'Génération de la réponse',
164
+ history: {
165
+ tooltip: 'Historique',
166
+ title: 'Historique vide',
167
+ description: 'Aucune conversation trouvée',
168
+ item: {
169
+ date: 'Dernière mise à jour {{date}}'
170
+ },
171
+ menu: {
172
+ rename: 'Renommer',
173
+ "delete": 'Supprimer'
174
+ },
175
+ loadingMore: 'Chargement des conversations'
176
+ },
177
+ onboarding: {
178
+ maia: 'MAIA',
179
+ agentCustom: 'Custom agents',
180
+ howCreateAgent: 'How to create an agent?',
181
+ tooltip: 'How does it work?'
182
+ },
183
+ qa: {
184
+ title: 'Questions Fréquemment Posées',
185
+ items: {
186
+ rentabilidad_proyecto: 'Quelle est la rentabilité de ce projet ?',
187
+ avance_proyecto: 'Quel est le progrès de ce projet ?',
188
+ tareas_proyecto: 'Quelles sont les tâches à venir à venir ?'
189
+ }
190
+ },
191
+ attachmentCard: {
192
+ download: 'Télécharger',
193
+ "delete": 'Supprimer'
194
+ },
195
+ chat: {
196
+ generating: 'Analyse du message',
197
+ generatingAttachment: "Analyse de l'attachement",
198
+ suggestionsTitle: 'Réponses suggérées',
199
+ createAgentActionsTitle: 'Étape suivante',
200
+ createAgentActionStartChat: 'Démarrer une conversation avec le nouvel agent',
201
+ createAgentActionKnowledge: 'Téléverser des fichiers dans la base de connaissances',
202
+ createAgentActionLoadError: "Impossible de charger l'agent. Veuillez réessayer.",
203
+ executingAction: "Exécution de l'action",
204
+ processing: 'Traitement en cours',
205
+ activity: {
206
+ generating: {
207
+ preparing: 'Préparation de votre réponse',
208
+ considering: 'Analyse de votre question',
209
+ almostReady: "Définition de l'approche"
210
+ },
211
+ thinking: {
212
+ analyzing: 'Analyse de votre question',
213
+ reviewing: 'Examen du contexte',
214
+ planning: 'Structuration de la réponse'
215
+ },
216
+ search: {
217
+ scanning: 'Recherche sur le web',
218
+ summarizing: 'Analyse des résultats'
219
+ },
220
+ deepSearch: {
221
+ exploring: 'Exploration des sources',
222
+ crossChecking: 'Vérification des informations'
223
+ },
224
+ attachment: {
225
+ reading: 'Lecture de la pièce jointe',
226
+ extracting: 'Extraction des éléments pertinents',
227
+ readingPlural: 'Lecture des pièces jointes',
228
+ extractingPlural: 'Extraction des éléments pertinents'
229
+ },
230
+ writing: {
231
+ composing: 'Rédaction de la réponse'
232
+ },
233
+ dynamicContextTooltip: 'Ce contexte a été généré dynamiquement et peut évoluer au fil de la conversation.',
234
+ creatingTask: 'Création de tâche',
235
+ creatingTasksBatch: 'Création de tâches',
236
+ creatingAgent: "Création d'agent",
237
+ editingAgent: "Modification de l'agent",
238
+ editingTask: 'Modification de tâche',
239
+ editingTasksBatch: 'Modification de tâches',
240
+ deletingTask: 'Suppression de tâche',
241
+ deletingTasksBatch: 'Suppression de tâches',
242
+ assigningUser: "Attribution d'utilisateur",
243
+ unassigningUser: "Retrait d'utilisateur",
244
+ assigningLabel: "Attribution d'étiquette",
245
+ updatingTaskType: 'Mise à jour du type de tâche',
246
+ updatingEstimatedHours: 'Mise à jour des heures estimées',
247
+ updatingDeliverable: 'Mise à jour du livrable',
248
+ loggingHours: "Saisie d'heures",
249
+ creatingChecklist: 'Création de checklist',
250
+ creatingLabel: "Création de l'étiquette",
251
+ editingProject: 'Modification du projet',
252
+ creatingChecklistItem: "Ajout d'un élément à la checklist",
253
+ queryingHours: 'Consultation des heures par date',
254
+ configuringAgentAccess: "Modification de la visibilité de l'agent",
255
+ sendingTaskMessage: "Envoi d'un message sur la tâche",
256
+ deletingChecklistItem: "Suppression d'un élément de la checklist",
257
+ removingTaskType: 'Suppression du type de tâche',
258
+ removingLabel: "Suppression de l'étiquette",
259
+ updatingDeliverableCount: 'Mise à jour du compteur de livrables',
260
+ creatingRework: "Création d'une reprise",
261
+ updatingRework: 'Mise à jour de la reprise',
262
+ generatingFile: 'Génération du fichier',
263
+ resumingAction: "Exécution de l'action approuvée"
264
+ },
265
+ loadingMore: 'Chargement des messages',
266
+ footer: {
267
+ placeholder: "Comment puis-je t'aider aujourd'hui ?",
268
+ corAccessLabel: 'Accès à COR',
269
+ corAccessTooltip: 'Accès aux données COR',
270
+ orchestratorPlaceholder: 'Demandez à Maia, @ pour mentionner ou / pour les actions rapides'
271
+ },
272
+ error: 'Une erreur est survenue lors de la génération de votre réponse, veuillez réessayer.',
273
+ retry: 'Réessayer',
274
+ errorAccessDenied: "You don't have access to interact with this agent. It is possible that your accessibility settings have changed. Please contact the person in your organization who manages agents for more information.",
275
+ errorPromptTooLong: 'Vous avez dépassé la limite de contexte {{used}} tokens. Veuillez réessayer ou continuer dans un autre chat',
276
+ changeProject: "J'ai détecté que vous souhaitez changer de Projet.\n\n**Sélectionnez le projet pour continuer :**",
277
+ searchWeb: 'Search the web',
278
+ deepSearch: 'In-depth research',
279
+ attachFile: 'Attach file',
280
+ plusMenuAttach: 'Joindre des fichiers',
281
+ dropFilesHere: 'Déposez les fichiers ici',
282
+ plusMenuDeepInvestigation: 'Rechercher en profondeur',
283
+ plusMenuQuickActions: 'Actions rapides',
284
+ openPlusMenuAria: 'Pièces jointes et options de recherche',
285
+ openMentionAria: 'Mentionner',
286
+ removeAttachmentAria: 'Retirer le fichier',
287
+ removeActiveToolAria: 'Retirer le mode recherche',
288
+ send: 'Send',
289
+ limitFiles: 'You have exceeded the attachment limit',
290
+ stop: 'Stop generating',
291
+ cancelled: 'The search has been cancelled.',
292
+ tooManyActiveSessions: 'Trop de conversations sont générées en même temps. Attendez qu’une se termine avant d’en démarrer une autre.'
293
+ },
294
+ deleteQuestionModal: {
295
+ title: 'Voulez-vous supprimer cette conversation?',
296
+ cancel: 'Annuler',
297
+ "delete": 'Supprimer'
298
+ },
299
+ deleteSkillModal: {
300
+ title: 'Voulez-vous supprimer cette skill?',
301
+ firstPart: 'Vous etes sur le point de supprimer',
302
+ secondPart: 'Cette action est irreversible.',
303
+ cancel: 'Annuler',
304
+ "delete": 'Supprimer'
305
+ },
306
+ editQuestionModal: {
307
+ newName: 'New name',
308
+ title: 'Rename conversation',
309
+ rename: 'Rename',
310
+ cancel: 'Cancel',
311
+ maxLength: 'You cannot enter more than 150 characters.'
312
+ },
313
+ modalFileExceeds: {
314
+ limitFilesTitle: 'Maximum attachments exceeded.',
315
+ limitSizeTitle: "You've exceeded the allowed file size limit",
316
+ limitFilesDescription: 'You can attach a maximum of 5 files per message. The following files could not be attached:',
317
+ limitSizeDescription: 'One or more files exceed the maximum allowed size by type. The following files could not be attached:',
318
+ accept: 'Accept',
319
+ limit: 'limit',
320
+ stop: 'Cancel search'
321
+ },
322
+ sourcesInformationModal: {
323
+ title: 'Sources:'
324
+ },
325
+ agents: {
326
+ title: 'Agents',
327
+ newAgent: 'Nouvel agent',
328
+ edit: 'Éditer',
329
+ maia: '(Spécialiste de projet)',
330
+ addFavorite: 'Add to favorites',
331
+ removeFavorite: 'Remove from favorites',
332
+ favoriteToggledAddedSuccess: 'Agent added to favorites',
333
+ favoriteToggledRemovedSuccess: 'Agent removed from favorites',
334
+ favoriteToggledError: 'Could not save your favorite. Please try again.'
335
+ },
336
+ conversations: {
337
+ title: 'Mes conversations',
338
+ agentsSectionTitle: 'Agents',
339
+ maiakerNav: "Créateur d'agents",
340
+ myAgentsNav: 'Mes agents',
341
+ mySkillsNav: 'Skills',
342
+ error: 'An error occurred while loading the conversation history',
343
+ empty: "You haven't started any conversations yet",
344
+ emptyLabel: 'Message with attachments',
345
+ unreadLabel: 'Non lu',
346
+ minimizedOpen: 'Ouvrir MAIA',
347
+ minimizedSeeAnswer: 'Voir la réponse',
348
+ collapse: 'Collapse',
349
+ expand: 'Expand',
350
+ newChat: 'New chat',
351
+ generating: 'Génération de la réponse',
352
+ sessionFinished: '{{title}} a terminé de répondre',
353
+ sessionFinishedApproval: '{{title}} requiert votre approbation',
354
+ sessionFinishedError: '{{title}} a rencontré une erreur',
355
+ openAgentCreator: 'Créer un agent',
356
+ openMarketplace: "Marketplace d'agents"
357
+ },
358
+ marketplace: {
359
+ back: 'Retour',
360
+ title: 'Idees pour creer des agents',
361
+ description: "Choisissez une suggestion bien construite et ouvrez l'editeur avec l'agent deja pre-rempli pour l'adapter a votre cas.",
362
+ myAgentsTitle: 'Mes agents',
363
+ myAgentsReadyTitle: 'Vos agents sont prets a vous aider avec des taches',
364
+ myAgentsDescription: 'Voici vos agents custom. Selectionnez-en un pour commencer a discuter avec ce profil.',
365
+ myAgentsEmptyStateTitle: "Vous n'avez pas encore d'agents crees",
366
+ myAgentsEmptyStateDescription: 'Cliquez sur le bouton ci-dessous pour commencer a creer des agents sur mesure.',
367
+ myAgentsEmptyStateDescriptionNoPerm: "Lorsqu'une personne habilitee les aura configures, vous pourrez y acceder depuis ici.",
368
+ myAgentsEmptyStateButton: 'Creer un agent',
369
+ myAgentsFallbackIntro: 'Agent personnalise pret a vous aider dans votre flux de travail.',
370
+ myAgentsFallbackDescription: 'Cliquez sur utiliser agent pour demarrer une conversation avec cet agent.',
371
+ myAgentsFallbackDate: 'Il y a quelques jours',
372
+ myAgentsToday: "Aujourd'hui",
373
+ myAgentsOneDayAgo: 'Il y a 1 jour',
374
+ myAgentsDaysAgo: 'Il y a {{days}} jours',
375
+ cardMenuAriaLabel: "Menu d'actions de l'agent",
376
+ use: 'Utiliser',
377
+ createAgent: 'Creer un agent manuellement',
378
+ searchAgentPlaceholder: 'Rechercher un agent...',
379
+ searchMinLength: 'min. 3 caractères',
380
+ searchNoResults: 'Aucun résultat trouvé.',
381
+ searchNoResultsSubtitle: 'Créez un agent IA capable de penser, d’agir et d’automatiser le travail pour vous',
382
+ useTemplate: 'Creer a partir de cette idee',
383
+ useMyAgent: 'Utiliser agent',
384
+ badges: {
385
+ branding: 'Branding',
386
+ linkedin: 'LinkedIn',
387
+ marketing: 'Marketing'
388
+ }
389
+ },
390
+ mySkills: {
391
+ title: 'Specialisez MAIA avec vos propres regles',
392
+ subtitle: 'Les skills sont globales : elles sont disponibles pour tous vos agents.',
393
+ tabMySkills: 'Mes skills',
394
+ tabSharedSkills: 'Skills partagees',
395
+ dropdownButton: 'Skills',
396
+ dropdownCreate: 'Creer une nouvelle skill',
397
+ dropdownEmpty: 'Aucune skill pour l instant',
398
+ dropdownError: 'Une erreur est survenue. Veuillez reessayer.',
399
+ mySkillsDescription: 'Competences creees par vous.',
400
+ sharedSkillsDescription: 'Competences partagees par d autres membres de votre equipe.',
401
+ searchPlaceholder: 'Rechercher des competences...',
402
+ createManually: 'Creer manuellement',
403
+ visibilityOnlyMe: 'Moi uniquement',
404
+ visibilityEveryone: 'Visible pour tous',
405
+ sharedEmptyStateTitle: 'Personne ne vous a encore partage de skills.',
406
+ sharedEmptyStateDescription: 'Lorsque votre entreprise partagera des skills, elles apparaitront ici.',
407
+ createSkill: 'Creer une skill',
408
+ preview: 'Apercu',
409
+ previewEmpty: 'Rien a previsualiser pour le moment.',
410
+ uploadMd: 'Importer .md',
411
+ uploadError: 'Seuls les fichiers .md sont autorises',
412
+ createWithMaia: 'Creer avec Maia',
413
+ writeInstructions: 'Ecrire les instructions',
414
+ uploadSkill: 'Importer une skill',
415
+ generatePlaceholder: 'Je veux une Skill pour creer mes projets',
416
+ generateWithMaia: 'Creer la Skill avec Maia',
417
+ generateNeedsName: 'Saisissez d abord un nom pour decrire la skill',
418
+ generateSuccess: 'Skill generee avec Maia',
419
+ generateError: 'La skill n a pas pu etre generee. Veuillez reessayer.',
420
+ cardMenuAriaLabel: "Menu d'actions de la skill",
421
+ edit: 'Modifier',
422
+ "delete": 'Supprimer',
423
+ cancel: 'Annuler',
424
+ save: 'Enregistrer',
425
+ close: 'Fermer',
426
+ createTitle: 'Creation de skill',
427
+ editTitle: 'Modifier la skill',
428
+ viewTitle: 'Skill partagee',
429
+ useSkill: 'Utiliser la skill',
430
+ infoTooltip: "Les skills sont des instructions que vous donnez a un agent pour qu'il resolve une tache toujours de la meme facon. Mentionnez-la avec # dans le chat et l'agent suivra ces etapes.",
431
+ sharedCreatedBy: 'Creee par {{name}}',
432
+ nameLabel: 'Nom',
433
+ namePlaceholder: 'Nom de la skill',
434
+ descriptionLabel: 'Description',
435
+ descriptionPlaceholder: 'Decrivez brievement a quoi sert la skill',
436
+ instructionsLabel: 'Instructions',
437
+ shareWithCompany: 'Activer pour toute l entreprise',
438
+ createdBy: 'Cree par',
439
+ lastUpdated: 'Derniere mise a jour',
440
+ saveAndUse: 'Enregistrer et utiliser la skill',
441
+ contentLabel: 'Skill',
442
+ contentPlaceholder: 'Ecrivez la skill...',
443
+ emptyStateTitle: "Vous n'avez pas encore de skills",
444
+ emptyStateDescription: 'Cliquez sur le bouton ci-dessous pour commencer a creer des skills sur mesure.',
445
+ emptyStateDescriptionNoPerm: 'Lorsquune personne habilitee les aura configurees, vous pourrez y acceder depuis ici.',
446
+ emptyStateButton: 'Creer une skill',
447
+ searchEmptyStateTitle: 'Aucune skill trouvee',
448
+ searchEmptyStateDescription: 'Essayez un autre terme ou verifiez votre recherche.',
449
+ createSuccess: 'Skill creee avec succes',
450
+ createError: "La skill n'a pas pu etre creee. Veuillez reessayer.",
451
+ updateSuccess: 'Skill mise a jour avec succes',
452
+ updateError: "La skill n'a pas pu etre mise a jour. Veuillez reessayer.",
453
+ deleteSuccess: 'Skill supprimee avec succes',
454
+ deleteError: "La skill n'a pas pu etre supprimee. Veuillez reessayer."
455
+ },
456
+ snackbar: {
457
+ deleteChat: {
458
+ success: 'Chat deleted successfully',
459
+ error: 'An unexpected error occurred. Please, try again.'
460
+ },
461
+ renamedChat: {
462
+ success: 'Conversation renamed successfully',
463
+ error: 'An unexpected error occurred. Please, try again.'
464
+ },
465
+ loadMoreAgents: {
466
+ error: 'An unexpected error occurred. Please, try again.'
467
+ }
468
+ },
469
+ approvalBox: {
470
+ untitledAgent: 'Agent sans titre',
471
+ actions: {
472
+ create_task: 'Création de tâche',
473
+ create_tasks_batch: 'Création de tâches',
474
+ create_agent: 'Création d’agent',
475
+ edit_agent: 'Modification de l’agent',
476
+ edit_project: 'Modification du projet',
477
+ edit_task: 'Modification de tâche',
478
+ edit_tasks_batch: 'Modification de tâches',
479
+ delete_task: 'Suppression de tâche',
480
+ delete_tasks_batch: 'Suppression de tâches',
481
+ task_assign: 'Attribution d’utilisateur',
482
+ task_unassign: 'Retrait d’utilisateur',
483
+ assign_task_label: 'Attribution d’étiquette',
484
+ create_labels: 'Création d’étiquette',
485
+ update_task_type: 'Mise à jour du type de tâche',
486
+ update_estimated_hours: 'Mise à jour des heures estimées',
487
+ update_deliverable: 'Mise à jour du livrable',
488
+ create_hour: 'Saisie d’heures',
489
+ create_checklist: 'Création de checklist',
490
+ create_checklist_item: 'Ajout d’un élément à la checklist',
491
+ clone_task: 'Dupliquer la tâche',
492
+ get_task_date_hours: 'Consultation des heures par date',
493
+ configure_agent_access: "Modifier la visibilité de l'agent",
494
+ send_task_message: 'Envoi d’un message sur la tâche',
495
+ delete_checklist_item: 'Suppression d’un élément de la checklist',
496
+ remove_task_type: 'Suppression du type de tâche',
497
+ remove_task_label: 'Suppression de l’étiquette',
498
+ count_deliverable: 'Mise à jour du compteur de livrables',
499
+ create_rework: 'Création d’une reprise',
500
+ update_rework: 'Mise à jour de la reprise',
501
+ delete_agent: 'Suppression de l’agent',
502
+ unknown: 'Action inconnue'
503
+ },
504
+ special: {
505
+ createRework: {
506
+ title: 'Créer une reprise',
507
+ description: 'Une demande de reprise sera créée sur la tâche avec les informations ci-dessous.'
508
+ },
509
+ updateDeliverableChildren: {
510
+ title: 'Mettre à jour l’avancement des livrables',
511
+ description: 'L’avancement des sous-livrables liés à cette tâche sera mis à jour.'
512
+ }
513
+ },
514
+ fields: {
515
+ name: 'Nom',
516
+ emoji: 'Emoji',
517
+ introduction: 'Introduction',
518
+ input_placeholder: 'Placeholder',
519
+ user_prompt: 'Prompt principal',
520
+ language: 'Langue',
521
+ provider: 'Provider',
522
+ model_name: 'Modèle',
523
+ api_key: 'API key'
524
+ },
525
+ title: 'Confirmation requise',
526
+ description: 'Votre approbation est nécessaire pour exécuter l’action suivante :',
527
+ approve: 'Approuver',
528
+ deny: 'Refuser',
529
+ manualApprovalWarning: 'Maia a détecté que la demande a été approuvée manuellement',
530
+ status: {
531
+ approved: 'Demande approuvée',
532
+ denied: 'Demande refusée'
533
+ }
534
+ },
535
+ chipLlm: {
536
+ tooltip: 'Modèle : {{model}}'
537
+ },
538
+ clientSelector: {
539
+ project: 'projet',
540
+ projects: 'projets'
541
+ }
542
+ })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
543
+ legendLegacyContextSession: 'Cette conversation appartient à un contexte précédent. Vous pouvez continuer avec {{name}} dans un nouveau chat.',
544
+ continueInNewChat: 'Continuer dans un nouveau chat',
545
+ layoutMenuTooltip: 'Disposition du chat',
546
+ layoutSidebar: 'Barre latérale',
547
+ layoutFullscreen: 'Plein écran',
548
+ layoutFloating: 'Fenêtre flottante',
549
+ back: 'Retour',
550
+ openAgentCreator: 'Créer un agent',
551
+ accessibilitySection: {
552
+ titleTab: 'Permissions',
553
+ titleSection: "Visibilité et permissions de l'agent",
554
+ subtitleSection: "Définissez qui peut utiliser cet agent et s'il peut accéder aux données COR.",
555
+ corPermissionsTitle: "Permissions d'accès aux données COR",
556
+ corPermissionsSubtitle: 'À quoi cet agent a-t-il accès ?',
557
+ taskAccessTitle: 'Accès aux tâches',
558
+ taskAccessDescription: "L'agent pourra lire, créer, modifier et supprimer des tâches selon les permissions de l'utilisateur.",
559
+ mcpPermissionsTitle: 'Connecteurs externes',
560
+ mcpPermissionsSubtitle: 'À quels outils externes cet agent a-t-il accès ?',
561
+ netsuiteAccessTitle: 'NetSuite',
562
+ netsuiteAccessDescription: "L'agent pourra lire et mettre à jour les enregistrements NetSuite. Nous vous demanderons d'autoriser l'accès lors de l'enregistrement.",
563
+ connectorAccessDescription: "L'agent pourra utiliser {{name}}. Nous vous demanderons d'autoriser l'accès lors de l'enregistrement.",
564
+ connectorAuthFailed: "Impossible d'ouvrir la connexion du connecteur. Réessayez ou vérifiez la configuration OAuth.",
565
+ connectorAuthIncomplete: "La connexion NetSuite n'est pas terminée. Enregistrez à nouveau, cliquez sur Autoriser et attendez la fermeture de la fenêtre.",
566
+ netsuiteAuthSetupRequired: "NetSuite n'enregistre pas l'application tout seul. Un admin doit créer une Integration (Public Client, scope AI Connector, Redirect URI MAIA). Ensuite le login s'affiche dans le popup.",
567
+ visibilityTitle: "Visibilité de l'agent",
568
+ whoCanAccess: 'Qui peut utiliser cet agent ?',
569
+ allCompanyTitle: "Toute l'entreprise",
570
+ allCompanyDescription: 'Tous les utilisateurs de votre organisation pourront voir et utiliser cet agent.',
571
+ clientTitle: 'Pour des clients spécifiques',
572
+ clientDescription: 'Associez cet agent à un ou plusieurs clients. Tous les utilisateurs pourront voir à quels clients il est lié.',
573
+ ownTitle: 'Moi uniquement',
574
+ ownDescription: 'Cet agent sera privé et ne sera pas disponible pour les autres utilisateurs.',
575
+ clientsSelected: 'Clients selected:',
576
+ searchError: 'An error occurred while loading the list of clients, please try again in a few minutes.',
577
+ searchEmpty: 'Oops! No clients were found that match your search.',
578
+ searchInitial: 'Write a word to start your search',
579
+ searchPlaceholder: 'Search client',
580
+ clientInactive: 'This client is inactive. We recommend removing it from the list.',
581
+ clientDeletedTooltip: 'This client was deleted. We recommend removing it from the list.',
582
+ clientDeleted: 'Client deleted'
583
+ }
584
+ })), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
585
+ projectSelector: {
586
+ title: 'Which project would you like help with?',
587
+ subtitle: 'Select a project so MAIA can respond in context.',
588
+ labelProject: 'SELECT PROJECT',
589
+ placeholder: 'Search',
590
+ changeProject: 'Change project',
591
+ recentProjects: 'Recent projects',
592
+ errorMessage: 'Search error! Please try again in a few moments.',
593
+ emptyRecentProjects: 'No recent projects. Enter the name in the search bar to get results.',
594
+ emptyState: 'Oops! there are no results for your search',
595
+ withoutClient: 'No client',
596
+ withoutTitle: 'No title'
597
+ }
598
+ })), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
599
+ clientSelector: {
600
+ title: 'Which client would you like help with?',
601
+ subtitle: 'Select a client so MAIA can respond in context.',
602
+ labelClient: 'SELECT CLIENT',
603
+ placeholder: 'Search',
604
+ changeClient: 'Change client',
605
+ recentClients: 'Recent clients',
606
+ searchingClients: 'Searching your clients...',
607
+ errorMessage: 'Search error! Please try again in a few moments.',
608
+ emptyRecentClients: 'No recent clients. Enter the name in the search bar to get results.',
609
+ emptyState: 'Oops! there are no results for your search',
610
+ project: 'projet',
611
+ projects: 'projets'
612
+ }
613
+ }));
614
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwiY29uZmlndXJlUmVzdW1lIiwiZ2VuZXJhdGluZ1Jlc3VtZSIsImdlbmVyYXRlUmVzdW1lIiwiaGlkZUNvbmZpZyIsImNvbmZpZ3VyZVNldHRpbmdzIiwiX2RlZmluZVByb3BlcnR5IiwiR0VORVJBTF9TVEFUVVMiLCJJTkNPTUVfQ09TVFMiLCJUSU1FX0hPVVJTIiwiVEFTS1NfUFJPR1JFU1MiLCJSRVdPUktTIiwiaG9tZU1lbnUiLCJmYXEiLCJzdGFydFRpdGxlIiwiY2F0ZWdvcmllcyIsInJld29ya3MiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJ0YXNrcyIsImNvbGxhYm9yYXRvcnMiLCJsYWJlbHMiLCJjaGVja2xpc3RzIiwiZGVsaXZlcmFibGVzIiwiaG91cnMiLCJjcmVhdGVkQnkiLCJ0YXNrR3JlZXRpbmciLCJtYWlha2VyIiwiY3JlYXRlTWFudWFsQWdlbnQiLCJiYWRnZU5ldyIsImJyaWVmQ2FyZCIsInByb21wdCIsImNvbWluZ1Nvb25DYXJkIiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImNvbnRleHRNZW50aW9uIiwia2V5Ym9hcmRIaW50IiwicmVjZW50c1RpdGxlIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsImVtcHR5IiwicmVjZW50cyIsIndpdGhRdWVyeSIsImNvdW50ZXJzIiwicHJvamVjdHMiLCJjb250ZXh0UGluIiwiYWRkQ29udGV4dCIsInNlYXJjaFBsYWNlaG9sZGVyIiwicmVtb3ZlIiwiYnV0dG9uIiwibmV3Q2hhdCIsImdlbmVyYXRpbmciLCJoaXN0b3J5IiwidG9vbHRpcCIsIml0ZW0iLCJkYXRlIiwibWVudSIsInJlbmFtZSIsImxvYWRpbmdNb3JlIiwib25ib2FyZGluZyIsIm1haWEiLCJhZ2VudEN1c3RvbSIsImhvd0NyZWF0ZUFnZW50IiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJjaGF0IiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJzdWdnZXN0aW9uc1RpdGxlIiwiY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdCIsImNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlIiwiY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3IiLCJleGVjdXRpbmdBY3Rpb24iLCJwcm9jZXNzaW5nIiwiYWN0aXZpdHkiLCJwcmVwYXJpbmciLCJjb25zaWRlcmluZyIsImFsbW9zdFJlYWR5IiwidGhpbmtpbmciLCJhbmFseXppbmciLCJyZXZpZXdpbmciLCJwbGFubmluZyIsInNlYXJjaCIsInNjYW5uaW5nIiwic3VtbWFyaXppbmciLCJkZWVwU2VhcmNoIiwiZXhwbG9yaW5nIiwiY3Jvc3NDaGVja2luZyIsImF0dGFjaG1lbnQiLCJyZWFkaW5nIiwiZXh0cmFjdGluZyIsInJlYWRpbmdQbHVyYWwiLCJleHRyYWN0aW5nUGx1cmFsIiwid3JpdGluZyIsImNvbXBvc2luZyIsImR5bmFtaWNDb250ZXh0VG9vbHRpcCIsImNyZWF0aW5nVGFzayIsImNyZWF0aW5nVGFza3NCYXRjaCIsImNyZWF0aW5nQWdlbnQiLCJlZGl0aW5nQWdlbnQiLCJlZGl0aW5nVGFzayIsImVkaXRpbmdUYXNrc0JhdGNoIiwiZGVsZXRpbmdUYXNrIiwiZGVsZXRpbmdUYXNrc0JhdGNoIiwiYXNzaWduaW5nVXNlciIsInVuYXNzaWduaW5nVXNlciIsImFzc2lnbmluZ0xhYmVsIiwidXBkYXRpbmdUYXNrVHlwZSIsInVwZGF0aW5nRXN0aW1hdGVkSG91cnMiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlIiwibG9nZ2luZ0hvdXJzIiwiY3JlYXRpbmdDaGVja2xpc3QiLCJjcmVhdGluZ0xhYmVsIiwiZWRpdGluZ1Byb2plY3QiLCJjcmVhdGluZ0NoZWNrbGlzdEl0ZW0iLCJxdWVyeWluZ0hvdXJzIiwiY29uZmlndXJpbmdBZ2VudEFjY2VzcyIsInNlbmRpbmdUYXNrTWVzc2FnZSIsImRlbGV0aW5nQ2hlY2tsaXN0SXRlbSIsInJlbW92aW5nVGFza1R5cGUiLCJyZW1vdmluZ0xhYmVsIiwidXBkYXRpbmdEZWxpdmVyYWJsZUNvdW50IiwiY3JlYXRpbmdSZXdvcmsiLCJ1cGRhdGluZ1Jld29yayIsImdlbmVyYXRpbmdGaWxlIiwicmVzdW1pbmdBY3Rpb24iLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsImNvckFjY2Vzc0xhYmVsIiwiY29yQWNjZXNzVG9vbHRpcCIsIm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyIiwicmV0cnkiLCJlcnJvckFjY2Vzc0RlbmllZCIsImVycm9yUHJvbXB0VG9vTG9uZyIsImNoYW5nZVByb2plY3QiLCJzZWFyY2hXZWIiLCJhdHRhY2hGaWxlIiwicGx1c01lbnVBdHRhY2giLCJkcm9wRmlsZXNIZXJlIiwicGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbiIsInBsdXNNZW51UXVpY2tBY3Rpb25zIiwib3BlblBsdXNNZW51QXJpYSIsIm9wZW5NZW50aW9uQXJpYSIsInJlbW92ZUF0dGFjaG1lbnRBcmlhIiwicmVtb3ZlQWN0aXZlVG9vbEFyaWEiLCJzZW5kIiwibGltaXRGaWxlcyIsInN0b3AiLCJjYW5jZWxsZWQiLCJ0b29NYW55QWN0aXZlU2Vzc2lvbnMiLCJkZWxldGVRdWVzdGlvbk1vZGFsIiwiZGVsZXRlU2tpbGxNb2RhbCIsImZpcnN0UGFydCIsInNlY29uZFBhcnQiLCJlZGl0UXVlc3Rpb25Nb2RhbCIsIm5ld05hbWUiLCJtYXhMZW5ndGgiLCJtb2RhbEZpbGVFeGNlZWRzIiwibGltaXRGaWxlc1RpdGxlIiwibGltaXRTaXplVGl0bGUiLCJsaW1pdEZpbGVzRGVzY3JpcHRpb24iLCJsaW1pdFNpemVEZXNjcmlwdGlvbiIsImFjY2VwdCIsImxpbWl0Iiwic291cmNlc0luZm9ybWF0aW9uTW9kYWwiLCJhZ2VudHMiLCJuZXdBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImNvbnZlcnNhdGlvbnMiLCJhZ2VudHNTZWN0aW9uVGl0bGUiLCJtYWlha2VyTmF2IiwibXlBZ2VudHNOYXYiLCJteVNraWxsc05hdiIsImVtcHR5TGFiZWwiLCJ1bnJlYWRMYWJlbCIsIm1pbmltaXplZE9wZW4iLCJtaW5pbWl6ZWRTZWVBbnN3ZXIiLCJzZXNzaW9uRmluaXNoZWQiLCJzZXNzaW9uRmluaXNoZWRBcHByb3ZhbCIsInNlc3Npb25GaW5pc2hlZEVycm9yIiwib3BlbkFnZW50Q3JlYXRvciIsIm9wZW5NYXJrZXRwbGFjZSIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsImNyZWF0ZUFnZW50Iiwic2VhcmNoQWdlbnRQbGFjZWhvbGRlciIsInNlYXJjaE1pbkxlbmd0aCIsInNlYXJjaE5vUmVzdWx0cyIsInNlYXJjaE5vUmVzdWx0c1N1YnRpdGxlIiwidXNlVGVtcGxhdGUiLCJ1c2VNeUFnZW50IiwiYmFkZ2VzIiwiYnJhbmRpbmciLCJsaW5rZWRpbiIsIm1hcmtldGluZyIsIm15U2tpbGxzIiwidGFiTXlTa2lsbHMiLCJ0YWJTaGFyZWRTa2lsbHMiLCJkcm9wZG93bkJ1dHRvbiIsImRyb3Bkb3duQ3JlYXRlIiwiZHJvcGRvd25FbXB0eSIsImRyb3Bkb3duRXJyb3IiLCJteVNraWxsc0Rlc2NyaXB0aW9uIiwic2hhcmVkU2tpbGxzRGVzY3JpcHRpb24iLCJjcmVhdGVNYW51YWxseSIsInZpc2liaWxpdHlPbmx5TWUiLCJ2aXNpYmlsaXR5RXZlcnlvbmUiLCJzaGFyZWRFbXB0eVN0YXRlVGl0bGUiLCJzaGFyZWRFbXB0eVN0YXRlRGVzY3JpcHRpb24iLCJjcmVhdGVTa2lsbCIsInByZXZpZXciLCJwcmV2aWV3RW1wdHkiLCJ1cGxvYWRNZCIsInVwbG9hZEVycm9yIiwiY3JlYXRlV2l0aE1haWEiLCJ3cml0ZUluc3RydWN0aW9ucyIsInVwbG9hZFNraWxsIiwiZ2VuZXJhdGVQbGFjZWhvbGRlciIsImdlbmVyYXRlV2l0aE1haWEiLCJnZW5lcmF0ZU5lZWRzTmFtZSIsImdlbmVyYXRlU3VjY2VzcyIsImdlbmVyYXRlRXJyb3IiLCJjcmVhdGVUaXRsZSIsImVkaXRUaXRsZSIsInZpZXdUaXRsZSIsInVzZVNraWxsIiwiaW5mb1Rvb2x0aXAiLCJzaGFyZWRDcmVhdGVkQnkiLCJuYW1lTGFiZWwiLCJuYW1lUGxhY2Vob2xkZXIiLCJkZXNjcmlwdGlvbkxhYmVsIiwiZGVzY3JpcHRpb25QbGFjZWhvbGRlciIsImluc3RydWN0aW9uc0xhYmVsIiwic2hhcmVXaXRoQ29tcGFueSIsImxhc3RVcGRhdGVkIiwic2F2ZUFuZFVzZSIsImNvbnRlbnRMYWJlbCIsImNvbnRlbnRQbGFjZWhvbGRlciIsImVtcHR5U3RhdGVUaXRsZSIsImVtcHR5U3RhdGVEZXNjcmlwdGlvbiIsImVtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybSIsImVtcHR5U3RhdGVCdXR0b24iLCJzZWFyY2hFbXB0eVN0YXRlVGl0bGUiLCJzZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb24iLCJjcmVhdGVTdWNjZXNzIiwiY3JlYXRlRXJyb3IiLCJ1cGRhdGVTdWNjZXNzIiwidXBkYXRlRXJyb3IiLCJkZWxldGVTdWNjZXNzIiwiZGVsZXRlRXJyb3IiLCJzbmFja2JhciIsImRlbGV0ZUNoYXQiLCJzdWNjZXNzIiwicmVuYW1lZENoYXQiLCJsb2FkTW9yZUFnZW50cyIsImFwcHJvdmFsQm94IiwidW50aXRsZWRBZ2VudCIsImFjdGlvbnMiLCJjcmVhdGVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Byb2plY3QiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsImNyZWF0ZV9sYWJlbHMiLCJ1cGRhdGVfdGFza190eXBlIiwidXBkYXRlX2VzdGltYXRlZF9ob3VycyIsInVwZGF0ZV9kZWxpdmVyYWJsZSIsImNyZWF0ZV9ob3VyIiwiY3JlYXRlX2NoZWNrbGlzdCIsImNyZWF0ZV9jaGVja2xpc3RfaXRlbSIsImNsb25lX3Rhc2siLCJnZXRfdGFza19kYXRlX2hvdXJzIiwiY29uZmlndXJlX2FnZW50X2FjY2VzcyIsInNlbmRfdGFza19tZXNzYWdlIiwiZGVsZXRlX2NoZWNrbGlzdF9pdGVtIiwicmVtb3ZlX3Rhc2tfdHlwZSIsInJlbW92ZV90YXNrX2xhYmVsIiwiY291bnRfZGVsaXZlcmFibGUiLCJjcmVhdGVfcmV3b3JrIiwidXBkYXRlX3Jld29yayIsImRlbGV0ZV9hZ2VudCIsInVua25vd24iLCJzcGVjaWFsIiwiY3JlYXRlUmV3b3JrIiwidXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbiIsImZpZWxkcyIsIm5hbWUiLCJlbW9qaSIsImludHJvZHVjdGlvbiIsImlucHV0X3BsYWNlaG9sZGVyIiwidXNlcl9wcm9tcHQiLCJsYW5ndWFnZSIsInByb3ZpZGVyIiwibW9kZWxfbmFtZSIsImFwaV9rZXkiLCJhcHByb3ZlIiwiZGVueSIsIm1hbnVhbEFwcHJvdmFsV2FybmluZyIsInN0YXR1cyIsImFwcHJvdmVkIiwiZGVuaWVkIiwiY2hpcExsbSIsImNsaWVudFNlbGVjdG9yIiwiYWJtQWdlbnQiLCJsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbiIsImNvbnRpbnVlSW5OZXdDaGF0IiwibGF5b3V0TWVudVRvb2x0aXAiLCJsYXlvdXRTaWRlYmFyIiwibGF5b3V0RnVsbHNjcmVlbiIsImxheW91dEZsb2F0aW5nIiwiYWNjZXNzaWJpbGl0eVNlY3Rpb24iLCJ0aXRsZVRhYiIsInRpdGxlU2VjdGlvbiIsInN1YnRpdGxlU2VjdGlvbiIsImNvclBlcm1pc3Npb25zVGl0bGUiLCJjb3JQZXJtaXNzaW9uc1N1YnRpdGxlIiwidGFza0FjY2Vzc1RpdGxlIiwidGFza0FjY2Vzc0Rlc2NyaXB0aW9uIiwibWNwUGVybWlzc2lvbnNUaXRsZSIsIm1jcFBlcm1pc3Npb25zU3VidGl0bGUiLCJuZXRzdWl0ZUFjY2Vzc1RpdGxlIiwibmV0c3VpdGVBY2Nlc3NEZXNjcmlwdGlvbiIsImNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uIiwiY29ubmVjdG9yQXV0aEZhaWxlZCIsImNvbm5lY3RvckF1dGhJbmNvbXBsZXRlIiwibmV0c3VpdGVBdXRoU2V0dXBSZXF1aXJlZCIsInZpc2liaWxpdHlUaXRsZSIsIndob0NhbkFjY2VzcyIsImFsbENvbXBhbnlUaXRsZSIsImFsbENvbXBhbnlEZXNjcmlwdGlvbiIsImNsaWVudFRpdGxlIiwiY2xpZW50RGVzY3JpcHRpb24iLCJvd25UaXRsZSIsIm93bkRlc2NyaXB0aW9uIiwiY2xpZW50c1NlbGVjdGVkIiwic2VhcmNoRXJyb3IiLCJzZWFyY2hFbXB0eSIsInNlYXJjaEluaXRpYWwiLCJjbGllbnRJbmFjdGl2ZSIsImNsaWVudERlbGV0ZWRUb29sdGlwIiwiY2xpZW50RGVsZXRlZCIsInByb2plY3RTZWxlY3RvciIsImxhYmVsUHJvamVjdCIsInJlY2VudFByb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2ZyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIG1pbmltaXplOiAnUsOpZHVpcmUnLFxuICBob3dXb3JrczogJ0hvdyBkb2VzIGl0IHdvcms/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZCcsXG4gIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICBnb0JhY2s6ICdHbyBiYWNrIHRvIHRoZSBzdGFydCcsXG4gIGNvcHk6ICdDb3B5JyxcbiAgY29waWVkOiAnQ29waWVkJyxcbiAgc2F2ZWQ6ICdTYXZlZCcsXG4gIHNlbGVjdFByb2plY3Q6ICdTZWxlY3QgcHJvamVjdCcsXG4gIHNhdmU6ICdTYXZlJyxcbiAgY2FuY2VsOiAnQ2FuY2VsJyxcbn1cblxuY29uc3QgZXJyb3IgPSB7XG4gIHRpdGxlOiBcIlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGVcIixcbiAgZGVzY3JpcHRpb246ICdOb3VzIHJlbmNvbnRyb25zIGFjdHVlbGxlbWVudCBxdWVscXVlcyBwcm9ibMOobWVzLiBWZXVpbGxleiByw6llc3NheWVyIGRhbnMgcXVlbHF1ZXMgbWludXRlcy4nLFxuICB0cnlBZ2FpbjogJ1LDqWVzc2F5ZXInLFxufVxuXG5jb25zdCBnZW5lcmljU2VjdGlvbiA9IHtcbiAgZXJyb3IsXG4gIGdsb2JhbHMsXG59XG5cbmNvbnN0IHByb2plY3RTdW1tYXJ5U2VjdGlvbiA9IHtcbiAgcmVzdW1lOiAnUmVzdW1lJyxcbiAgaGVsbG86ICdIaSwge3tuYW1lfX0hJyxcbiAgd2VsY29tZTogXCJJJ20gTUFJQSwgeW91ciBhc3Npc3RhbnQgYXQgQ09SXCIsXG5cbiAgZmVlZGJhY2s6IHtcbiAgICB0aHVtYnNVcDogJ0l0IHdhcyBoZWxwZnVsJyxcbiAgICB0aHVtYnNEb3duOiBcIkl0IHdhc24ndCBoZWxwZnVsXCIsXG4gICAgc291cmNlczogJ1NvdXJjZXMnLFxuICB9LFxuXG4gIGNvbmZpZzoge1xuICAgIHByb2plY3RTdW1tYXJ5OiAnU3VtbWFyaXplIHByb2plY3QnLFxuICAgIHNlbGVjdFByb2plY3Q6ICdTZWxlY3QgcHJvamVjdCcsXG4gICAgY29uZmlndXJlUmVzdW1lOiAnQWR2YW5jZWQgc2V0dGluZ3MnLFxuICAgIGdlbmVyYXRpbmdSZXN1bWU6ICdHZW5lcmF0aW5nIHN1bW1hcnknLFxuICAgIGdlbmVyYXRlUmVzdW1lOiAnR2VuZXJhdGUnLFxuICAgIGhpZGVDb25maWc6ICdIaWRlIHNldHRpbmdzJyxcbiAgfSxcblxuICBjb25maWd1cmVTZXR0aW5nczoge1xuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuR0VORVJBTF9TVEFUVVNdOiAnRGF0ZXMgYW5kIGRlYWRsaW5lcycsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5JTkNPTUVfQ09TVFNdOiAnUHJvZml0YWJpbGl0eScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5USU1FX0hPVVJTXTogJ0VzdGltYXRlZCBob3VycyBhbmQgdXNhZ2UnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuVEFTS1NfUFJPR1JFU1NdOiAnVGFza3MgYW5kIHByb2dyZXNzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlJFV09SS1NdOiAnUmV3b3JrJyxcbiAgfSxcbn1cblxuY29uc3QgaG9tZU1lbnUgPSB7XG4gIHByb2plY3RTdW1tYXJ5OiB7XG4gICAgdGl0bGU6ICdSw6lzdW3DqSBkdSBwcm9qZXQnLFxuICAgIGRlc2NyaXB0aW9uOiBcIkfDqW7DqXJleiBkZXMgcmFwcG9ydHMgYXZlYyBsJ0lBIMOgIHBhcnRpciBkZSB2b3RyZSBwcm9qZXRcIixcbiAgfSxcbiAgZmFxOiB7XG4gICAgc3RhcnRUaXRsZTogJ1ZvdXMgcG91dmV6IGNvbW1lbmNlciBwYXIuLi4nLFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHJld29ya3M6ICdSZXdvcmsnLFxuICAgIH0sXG4gIH0sXG4gIGZ1YToge1xuICAgIHRpdGxlOiAnQWN0aW9ucyBmcsOpcXVlbnRlcycsXG4gICAgbmV3QmFkZ2U6ICdOb3V2ZWF1JyxcbiAgICBlcnJvcjpcbiAgICAgICdPdXBzISBOb3VzIGF2b25zIGV1IHVuIHByb2Jsw6htZSBwb3VyIGNoYXJnZXIgbGVzIGFjdGlvbnMgZnLDqXF1ZW50ZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIH0sXG4gIHJlY2VudENvbnRleHRzOiB7XG4gICAgdGl0bGU6ICdDaG9pc2lzc2V6IHVuIGNvbnRleHRlIHLDqWNlbnQgcG91ciB1bmUgcsOpcG9uc2UgcGx1cyBwcsOpY2lzZSA6JyxcbiAgICB0eXBlczoge1xuICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgIHByb2plY3Q6ICdQcm9qZXQnLFxuICAgICAgdGFzazogJ1TDomNoZScsXG4gICAgfSxcbiAgfSxcbiAgY29udGV4dEhvbWU6IHtcbiAgICBncmVldGluZzogJ0JvbmpvdXIsIHt7bmFtZX19IPCfkYsnLFxuICAgIHN1YnRpdGxlOlxuICAgICAgJ0plIHN1aXMgTUFJQSwgdm90cmUgYXNzaXN0YW50ZSBwb3VyIGxlcyB0w6JjaGVzLCBsZXMgcHJvamV0cyBldCBsZXMgY2xpZW50cy5cXG5PbiByZXByZW5kIHF1ZWxxdWUgY2hvc2UgZGUgcsOpY2VudCA/JyxcbiAgICBzdWJ0aXRsZUNvbGxhYm9yYXRvcjogJ0plIHN1aXMgTUFJQSwgdm90cmUgYXNzaXN0YW50ZSBwb3VyIGxlcyB0w6JjaGVzLiBPbiByZXByZW5kIHF1ZWxxdWUgY2hvc2UgZGUgcsOpY2VudCA/JyxcbiAgICBzdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VyczogJ1NhaXNpc3NleiB2b3MgaGV1cmVzIG91IGTDqW1hcnJleiB1biBjaGF0IHN1ciB1bmUgdMOiY2hlLicsXG4gICAgc3VidGl0bGVNYW5hZ2VyV2l0aEhvdXJzOiAnUGFyIG/DuSB2b3VsZXotdm91cyBjb21tZW5jZXIgPycsXG4gICAgaG91cnNTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ1NhaXNpciBkZXMgaGV1cmVzJyxcbiAgICB9LFxuICAgIHJlY2VudFRhc2tzU2VjdGlvbjoge1xuICAgICAgdGl0bGU6ICdDb25zdWx0ZXIgdW5lIHTDomNoZScsXG4gICAgICBzdWJ0aXRsZTogJ0Nob2lzaXNzZXogdW5lIHTDomNoZSByw6ljZW50ZSBwb3VyIGzigJl1dGlsaXNlciBjb21tZSBjb250ZXh0ZS4nLFxuICAgIH0sXG4gICAgcmVjZW50Q29udGV4dHNTZWN0aW9uTWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdPdSByZXByZW5leiBxdWVscXVlIGNob3NlIGRlIHLDqWNlbnQnLFxuICAgICAgc3VidGl0bGU6ICdDaG9pc2lzc2V6IHVuZSB0w6JjaGUsIHVuIHByb2pldCBvdSB1biBjbGllbnQgY29tbWUgY29udGV4dGUnLFxuICAgIH0sXG4gICAgY29udGV4dEdyZWV0aW5nOiB7XG4gICAgICBwcm9qZWN0OiAnUXVlIHZvdWxlei12b3VzIGFuYWx5c2VyID8gSGV1cmVzLCBlc3RpbWF0aW9ucywgcmVwcmlzZXMgPyDDgCB2b3VzIGRlIGNob2lzaXIgIScsXG4gICAgICB0YXNrOiBcIkplIHN1aXMgbMOgIHBvdXIgdm91cyBhaWRlciBhdmVjIGNldHRlIHTDomNoZS4gVXRpbGlzZXogbCd1bmUgZGVzIGFjdGlvbnMgcG91ciBjb21tZW5jZXIuXCIsXG4gICAgICBjbGllbnQ6ICdRdWUgdm91bGV6LXZvdXMgYW5hbHlzZXIgPyBSZW50YWJpbGl0w6ksIGF2YW5jw6llcywgZGVhZGxpbmVzID8gw4Agdm91cyBkZSBjaG9pc2lyICEnLFxuICAgIH0sXG4gIH0sXG4gIHBsYW5uZXJIb21lOiB7XG4gICAgdGl0bGU6ICdDb21tZW7Dp29ucyBwYXIgc2Fpc2lyIHZvcyBoZXVyZXMnLFxuICAgIHN1YnRpdGxlOiAnUGFyIG/DuSBjb21tZW5jZS10LW9uID8nLFxuICB9LFxuICBhY3Rpb246IHtcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICB0YXNrczogJ0FjdGlvbnMgc3VyIGxlcyB0w6JjaGVzJyxcbiAgICAgIGNvbGxhYm9yYXRvcnM6ICdDb2xsYWJvcmF0ZXVycyBldCByZXNwb25zYWJsZXMnLFxuICAgICAgbGFiZWxzOiAnw4l0aXF1ZXR0ZXMgZXQgdHlwZXMnLFxuICAgICAgY2hlY2tsaXN0czogJ0NoZWNrbGlzdHMnLFxuICAgICAgZGVsaXZlcmFibGVzOiAnTGl2cmFibGVzJyxcbiAgICAgIHJld29ya3M6ICdSZXByaXNlcycsXG4gICAgICBob3VyczogJ1NhaXNpZSBkZXMgaGV1cmVzJyxcbiAgICB9LFxuICB9LFxuICBjcmVhdGVkQnk6ICdDcmVhdGVkIGJ5JyxcbiAgdGFza0dyZWV0aW5nOiBcIkplIHN1aXMgbMOgIHBvdXIgdm91cyBhaWRlciBhdmVjIGNldHRlIHTDomNoZS4gVXRpbGlzZXogbCd1bmUgZGVzIGFjdGlvbnMgcG91ciBjb21tZW5jZXIuXCIsXG4gIG1haWFrZXI6IHtcbiAgICB0aXRsZTogJ1RyYW5zZm9ybWV6IGxlcyBwcm9jZXNzdXMgcsOpcMOpdGl0aWZzIGVuIGFnZW50cyBpbnRlbGxpZ2VudHMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3LDqWV6IGRlcyBhZ2VudHMgcXVpIGFuYWx5c2VudCBldCBnw6luw6hyZW50IGR1IGNvbnRlbnUgc2Vsb24gdm9zIGJlc29pbnMuJyxcbiAgICBjcmVhdGVNYW51YWxBZ2VudDogJ0Nyw6llciB1biBhZ2VudCBtYW51ZWxsZW1lbnQnLFxuICAgIGJhZGdlTmV3OiAnTm91dmVhdScsXG4gICAgYnJpZWZDYXJkOiB7XG4gICAgICB0aXRsZTogJ0FnZW50IHNww6ljaWFsaXN0ZSBlbiBicmllZicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Nyw6lleiBldCBhbcOpbGlvcmV6IGRlcyBicmllZnMgcG91ciBxdeKAmWlscyBzb2llbnQgcHLDqnRzIMOgIMOqdHJlIHV0aWxpc8OpcyBkYW5zIGRlcyB0w6JjaGVzLicsXG4gICAgICBwcm9tcHQ6ICdKZSB2ZXV4IGNyw6llciB1biBhZ2VudCBzcMOpY2lhbGlzdGUgZW4gYnJpZWYuJyxcbiAgICB9LFxuICAgIGNvbWluZ1Nvb25DYXJkOiB7XG4gICAgICB0aXRsZTogJ0JpZW50w7R0IGRpc3BvbmlibGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdOb3VzIHRyYXZhaWxsb25zIHBvdXIgdm91cyBwcm9wb3NlciBkYXZhbnRhZ2UgZOKAmWFnZW50cycsXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGNvbnRleHRNZW50aW9uOiB7XG4gICAgICBrZXlib2FyZEhpbnQ6ICdOYXZpZ2F0aW9uIGVudHJlIGxlcyBvbmdsZXRzIDogQCwgQEDigKYgZGFucyBs4oCZb3JkcmUuIEF1c3NpIEFsdC9DbWQgKyDihpAv4oaSJyxcbiAgICAgIHJlY2VudHNUaXRsZTogJ1LDqWNlbnRzJyxcbiAgICAgIG1lOiAnTW9pJyxcbiAgICAgIHRhYnM6IHtcbiAgICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgICAgcHJvamVjdDogJ1Byb2pldCcsXG4gICAgICAgIHRhc2s6ICdUw6JjaGUnLFxuICAgICAgICB1c2VyOiAnVXRpbGlzYXRldXInLFxuICAgICAgICBtY3A6ICdDb25uZWN0ZXVycycsXG4gICAgICAgIHNraWxsOiAnQ29tcMOpdGVuY2VzJyxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiAnUmVjaGVyY2hlLi4uJyxcbiAgICAgIGVycm9yOiAnVW4gcHJvYmzDqG1lIGVzdCBzdXJ2ZW51LiBSw6llc3NheWV6LicsXG4gICAgICBlbXB0eToge1xuICAgICAgICByZWNlbnRzOiAnQ29tbWVuY2V6IMOgIMOpY3JpcmUgcG91ciByZWNoZXJjaGVyJyxcbiAgICAgICAgd2l0aFF1ZXJ5OiAnQXVjdW4gcsOpc3VsdGF0IHBvdXIgXCJ7e3F1ZXJ5fX1cIicsXG4gICAgICB9LFxuICAgICAgY291bnRlcnM6IHtcbiAgICAgICAgcHJvamVjdHM6ICdwcm9qZXRzJyxcbiAgICAgICAgdGFza3M6ICd0w6JjaGVzJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250ZXh0UGluOiB7XG4gICAgICBhZGRDb250ZXh0OiAnQ29udGV4dGUgZ2xvYmFsJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnUmVjaGVyY2hlciB1biBjb250ZXh0ZeKApicsXG4gICAgICByZW1vdmU6ICdSZXRpcmVyIGxlIGNvbnRleHRlJyxcbiAgICB9LFxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ0JvbmpvdXIsIHt7bmFtZX19IScsXG4gICAgZGVzY3JpcHRpb246IFwiSmUgc3VpcyBNQUlBLCB0b24gYXNzaXN0YW50ZSwgZXQgamUgc3VpcyBsw6AgcG91ciB0J2FpZGVyIGF2ZWMgdGVzIHF1ZXN0aW9ucy5cIixcbiAgICBuZXdDaGF0OiAnTm91dmVhdSBjaGF0JyxcbiAgICBnZW5lcmF0aW5nOiAnR8OpbsOpcmF0aW9uIGRlIGxhIHLDqXBvbnNlJyxcbiAgICBoaXN0b3J5OiB7XG4gICAgICB0b29sdGlwOiAnSGlzdG9yaXF1ZScsXG4gICAgICB0aXRsZTogJ0hpc3RvcmlxdWUgdmlkZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1Y3VuZSBjb252ZXJzYXRpb24gdHJvdXbDqWUnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnRGVybmnDqHJlIG1pc2Ugw6Agam91ciB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbW1lcicsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBjb252ZXJzYXRpb25zJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQ3VzdG9tIGFnZW50cycsXG4gICAgICBob3dDcmVhdGVBZ2VudDogJ0hvdyB0byBjcmVhdGUgYW4gYWdlbnQ/JyxcbiAgICAgIHRvb2x0aXA6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdRdWVzdGlvbnMgRnLDqXF1ZW1tZW50IFBvc8OpZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVlbGxlIGVzdCBsYSByZW50YWJpbGl0w6kgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWVsIGVzdCBsZSBwcm9ncsOocyBkZSBjZSBwcm9qZXQgPycsXG4gICAgICAgIHRhcmVhc19wcm95ZWN0bzogJ1F1ZWxsZXMgc29udCBsZXMgdMOiY2hlcyDDoCB2ZW5pciDDoCB2ZW5pciA/JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhdHRhY2htZW50Q2FyZDoge1xuICAgICAgZG93bmxvYWQ6ICdUw6lsw6ljaGFyZ2VyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgfSxcbiAgICBjaGF0OiB7XG4gICAgICBnZW5lcmF0aW5nOiAnQW5hbHlzZSBkdSBtZXNzYWdlJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiBcIkFuYWx5c2UgZGUgbCdhdHRhY2hlbWVudFwiLFxuICAgICAgc3VnZ2VzdGlvbnNUaXRsZTogJ1LDqXBvbnNlcyBzdWdnw6lyw6llcycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZTogJ8OJdGFwZSBzdWl2YW50ZScsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdDogJ0TDqW1hcnJlciB1bmUgY29udmVyc2F0aW9uIGF2ZWMgbGUgbm91dmVsIGFnZW50JyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlOiAnVMOpbMOpdmVyc2VyIGRlcyBmaWNoaWVycyBkYW5zIGxhIGJhc2UgZGUgY29ubmFpc3NhbmNlcycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvcjogXCJJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbCdhZ2VudC4gVmV1aWxsZXogcsOpZXNzYXllci5cIixcbiAgICAgIGV4ZWN1dGluZ0FjdGlvbjogXCJFeMOpY3V0aW9uIGRlIGwnYWN0aW9uXCIsXG4gICAgICBwcm9jZXNzaW5nOiAnVHJhaXRlbWVudCBlbiBjb3VycycsXG4gICAgICBhY3Rpdml0eToge1xuICAgICAgICBnZW5lcmF0aW5nOiB7XG4gICAgICAgICAgcHJlcGFyaW5nOiAnUHLDqXBhcmF0aW9uIGRlIHZvdHJlIHLDqXBvbnNlJyxcbiAgICAgICAgICBjb25zaWRlcmluZzogJ0FuYWx5c2UgZGUgdm90cmUgcXVlc3Rpb24nLFxuICAgICAgICAgIGFsbW9zdFJlYWR5OiBcIkTDqWZpbml0aW9uIGRlIGwnYXBwcm9jaGVcIixcbiAgICAgICAgfSxcbiAgICAgICAgdGhpbmtpbmc6IHtcbiAgICAgICAgICBhbmFseXppbmc6ICdBbmFseXNlIGRlIHZvdHJlIHF1ZXN0aW9uJyxcbiAgICAgICAgICByZXZpZXdpbmc6ICdFeGFtZW4gZHUgY29udGV4dGUnLFxuICAgICAgICAgIHBsYW5uaW5nOiAnU3RydWN0dXJhdGlvbiBkZSBsYSByw6lwb25zZScsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDoge1xuICAgICAgICAgIHNjYW5uaW5nOiAnUmVjaGVyY2hlIHN1ciBsZSB3ZWInLFxuICAgICAgICAgIHN1bW1hcml6aW5nOiAnQW5hbHlzZSBkZXMgcsOpc3VsdGF0cycsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZXBTZWFyY2g6IHtcbiAgICAgICAgICBleHBsb3Jpbmc6ICdFeHBsb3JhdGlvbiBkZXMgc291cmNlcycsXG4gICAgICAgICAgY3Jvc3NDaGVja2luZzogJ1bDqXJpZmljYXRpb24gZGVzIGluZm9ybWF0aW9ucycsXG4gICAgICAgIH0sXG4gICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICByZWFkaW5nOiAnTGVjdHVyZSBkZSBsYSBwacOoY2Ugam9pbnRlJyxcbiAgICAgICAgICBleHRyYWN0aW5nOiAnRXh0cmFjdGlvbiBkZXMgw6lsw6ltZW50cyBwZXJ0aW5lbnRzJyxcbiAgICAgICAgICByZWFkaW5nUGx1cmFsOiAnTGVjdHVyZSBkZXMgcGnDqGNlcyBqb2ludGVzJyxcbiAgICAgICAgICBleHRyYWN0aW5nUGx1cmFsOiAnRXh0cmFjdGlvbiBkZXMgw6lsw6ltZW50cyBwZXJ0aW5lbnRzJyxcbiAgICAgICAgfSxcbiAgICAgICAgd3JpdGluZzoge1xuICAgICAgICAgIGNvbXBvc2luZzogJ1LDqWRhY3Rpb24gZGUgbGEgcsOpcG9uc2UnLFxuICAgICAgICB9LFxuICAgICAgICBkeW5hbWljQ29udGV4dFRvb2x0aXA6ICdDZSBjb250ZXh0ZSBhIMOpdMOpIGfDqW7DqXLDqSBkeW5hbWlxdWVtZW50IGV0IHBldXQgw6l2b2x1ZXIgYXUgZmlsIGRlIGxhIGNvbnZlcnNhdGlvbi4nLFxuICAgICAgICBjcmVhdGluZ1Rhc2s6ICdDcsOpYXRpb24gZGUgdMOiY2hlJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrc0JhdGNoOiAnQ3LDqWF0aW9uIGRlIHTDomNoZXMnLFxuICAgICAgICBjcmVhdGluZ0FnZW50OiBcIkNyw6lhdGlvbiBkJ2FnZW50XCIsXG4gICAgICAgIGVkaXRpbmdBZ2VudDogXCJNb2RpZmljYXRpb24gZGUgbCdhZ2VudFwiLFxuICAgICAgICBlZGl0aW5nVGFzazogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGUnLFxuICAgICAgICBlZGl0aW5nVGFza3NCYXRjaDogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrOiAnU3VwcHJlc3Npb24gZGUgdMOiY2hlJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrc0JhdGNoOiAnU3VwcHJlc3Npb24gZGUgdMOiY2hlcycsXG4gICAgICAgIGFzc2lnbmluZ1VzZXI6IFwiQXR0cmlidXRpb24gZCd1dGlsaXNhdGV1clwiLFxuICAgICAgICB1bmFzc2lnbmluZ1VzZXI6IFwiUmV0cmFpdCBkJ3V0aWxpc2F0ZXVyXCIsXG4gICAgICAgIGFzc2lnbmluZ0xhYmVsOiBcIkF0dHJpYnV0aW9uIGQnw6l0aXF1ZXR0ZVwiLFxuICAgICAgICB1cGRhdGluZ1Rhc2tUeXBlOiAnTWlzZSDDoCBqb3VyIGR1IHR5cGUgZGUgdMOiY2hlJyxcbiAgICAgICAgdXBkYXRpbmdFc3RpbWF0ZWRIb3VyczogJ01pc2Ugw6Agam91ciBkZXMgaGV1cmVzIGVzdGltw6llcycsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGU6ICdNaXNlIMOgIGpvdXIgZHUgbGl2cmFibGUnLFxuICAgICAgICBsb2dnaW5nSG91cnM6IFwiU2Fpc2llIGQnaGV1cmVzXCIsXG4gICAgICAgIGNyZWF0aW5nQ2hlY2tsaXN0OiAnQ3LDqWF0aW9uIGRlIGNoZWNrbGlzdCcsXG4gICAgICAgIGNyZWF0aW5nTGFiZWw6IFwiQ3LDqWF0aW9uIGRlIGwnw6l0aXF1ZXR0ZVwiLFxuICAgICAgICBlZGl0aW5nUHJvamVjdDogJ01vZGlmaWNhdGlvbiBkdSBwcm9qZXQnLFxuICAgICAgICBjcmVhdGluZ0NoZWNrbGlzdEl0ZW06IFwiQWpvdXQgZCd1biDDqWzDqW1lbnQgw6AgbGEgY2hlY2tsaXN0XCIsXG4gICAgICAgIHF1ZXJ5aW5nSG91cnM6ICdDb25zdWx0YXRpb24gZGVzIGhldXJlcyBwYXIgZGF0ZScsXG4gICAgICAgIGNvbmZpZ3VyaW5nQWdlbnRBY2Nlc3M6IFwiTW9kaWZpY2F0aW9uIGRlIGxhIHZpc2liaWxpdMOpIGRlIGwnYWdlbnRcIixcbiAgICAgICAgc2VuZGluZ1Rhc2tNZXNzYWdlOiBcIkVudm9pIGQndW4gbWVzc2FnZSBzdXIgbGEgdMOiY2hlXCIsXG4gICAgICAgIGRlbGV0aW5nQ2hlY2tsaXN0SXRlbTogXCJTdXBwcmVzc2lvbiBkJ3VuIMOpbMOpbWVudCBkZSBsYSBjaGVja2xpc3RcIixcbiAgICAgICAgcmVtb3ZpbmdUYXNrVHlwZTogJ1N1cHByZXNzaW9uIGR1IHR5cGUgZGUgdMOiY2hlJyxcbiAgICAgICAgcmVtb3ZpbmdMYWJlbDogXCJTdXBwcmVzc2lvbiBkZSBsJ8OpdGlxdWV0dGVcIixcbiAgICAgICAgdXBkYXRpbmdEZWxpdmVyYWJsZUNvdW50OiAnTWlzZSDDoCBqb3VyIGR1IGNvbXB0ZXVyIGRlIGxpdnJhYmxlcycsXG4gICAgICAgIGNyZWF0aW5nUmV3b3JrOiBcIkNyw6lhdGlvbiBkJ3VuZSByZXByaXNlXCIsXG4gICAgICAgIHVwZGF0aW5nUmV3b3JrOiAnTWlzZSDDoCBqb3VyIGRlIGxhIHJlcHJpc2UnLFxuICAgICAgICBnZW5lcmF0aW5nRmlsZTogJ0fDqW7DqXJhdGlvbiBkdSBmaWNoaWVyJyxcbiAgICAgICAgcmVzdW1pbmdBY3Rpb246IFwiRXjDqWN1dGlvbiBkZSBsJ2FjdGlvbiBhcHByb3V2w6llXCIsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBtZXNzYWdlcycsXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IFwiQ29tbWVudCBwdWlzLWplIHQnYWlkZXIgYXVqb3VyZCdodWkgP1wiLFxuICAgICAgICBjb3JBY2Nlc3NMYWJlbDogJ0FjY8OocyDDoCBDT1InLFxuICAgICAgICBjb3JBY2Nlc3NUb29sdGlwOiAnQWNjw6hzIGF1eCBkb25uw6llcyBDT1InLFxuICAgICAgICBvcmNoZXN0cmF0b3JQbGFjZWhvbGRlcjogJ0RlbWFuZGV6IMOgIE1haWEsIEAgcG91ciBtZW50aW9ubmVyIG91IC8gcG91ciBsZXMgYWN0aW9ucyByYXBpZGVzJyxcbiAgICAgIH0sXG4gICAgICBlcnJvcjogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgZ8OpbsOpcmF0aW9uIGRlIHZvdHJlIHLDqXBvbnNlLCB2ZXVpbGxleiByw6llc3NheWVyLicsXG4gICAgICByZXRyeTogJ1LDqWVzc2F5ZXInLFxuICAgICAgZXJyb3JBY2Nlc3NEZW5pZWQ6XG4gICAgICAgIFwiWW91IGRvbid0IGhhdmUgYWNjZXNzIHRvIGludGVyYWN0IHdpdGggdGhpcyBhZ2VudC4gSXQgaXMgcG9zc2libGUgdGhhdCB5b3VyIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3MgaGF2ZSBjaGFuZ2VkLiBQbGVhc2UgY29udGFjdCB0aGUgcGVyc29uIGluIHlvdXIgb3JnYW5pemF0aW9uIHdobyBtYW5hZ2VzIGFnZW50cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIixcbiAgICAgIGVycm9yUHJvbXB0VG9vTG9uZzpcbiAgICAgICAgJ1ZvdXMgYXZleiBkw6lwYXNzw6kgbGEgbGltaXRlIGRlIGNvbnRleHRlIHt7dXNlZH19IHRva2Vucy4gVmV1aWxsZXogcsOpZXNzYXllciBvdSBjb250aW51ZXIgZGFucyB1biBhdXRyZSBjaGF0JyxcbiAgICAgIGNoYW5nZVByb2plY3Q6XG4gICAgICAgIFwiSidhaSBkw6l0ZWN0w6kgcXVlIHZvdXMgc291aGFpdGV6IGNoYW5nZXIgZGUgUHJvamV0LlxcblxcbioqU8OpbGVjdGlvbm5leiBsZSBwcm9qZXQgcG91ciBjb250aW51ZXIgOioqXCIsXG4gICAgICBzZWFyY2hXZWI6ICdTZWFyY2ggdGhlIHdlYicsXG4gICAgICBkZWVwU2VhcmNoOiAnSW4tZGVwdGggcmVzZWFyY2gnLFxuICAgICAgYXR0YWNoRmlsZTogJ0F0dGFjaCBmaWxlJyxcbiAgICAgIHBsdXNNZW51QXR0YWNoOiAnSm9pbmRyZSBkZXMgZmljaGllcnMnLFxuICAgICAgZHJvcEZpbGVzSGVyZTogJ0TDqXBvc2V6IGxlcyBmaWNoaWVycyBpY2knLFxuICAgICAgcGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbjogJ1JlY2hlcmNoZXIgZW4gcHJvZm9uZGV1cicsXG4gICAgICBwbHVzTWVudVF1aWNrQWN0aW9uczogJ0FjdGlvbnMgcmFwaWRlcycsXG4gICAgICBvcGVuUGx1c01lbnVBcmlhOiAnUGnDqGNlcyBqb2ludGVzIGV0IG9wdGlvbnMgZGUgcmVjaGVyY2hlJyxcbiAgICAgIG9wZW5NZW50aW9uQXJpYTogJ01lbnRpb25uZXInLFxuICAgICAgcmVtb3ZlQXR0YWNobWVudEFyaWE6ICdSZXRpcmVyIGxlIGZpY2hpZXInLFxuICAgICAgcmVtb3ZlQWN0aXZlVG9vbEFyaWE6ICdSZXRpcmVyIGxlIG1vZGUgcmVjaGVyY2hlJyxcbiAgICAgIHNlbmQ6ICdTZW5kJyxcbiAgICAgIGxpbWl0RmlsZXM6ICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgYXR0YWNobWVudCBsaW1pdCcsXG4gICAgICBzdG9wOiAnU3RvcCBnZW5lcmF0aW5nJyxcbiAgICAgIGNhbmNlbGxlZDogJ1RoZSBzZWFyY2ggaGFzIGJlZW4gY2FuY2VsbGVkLicsXG4gICAgICB0b29NYW55QWN0aXZlU2Vzc2lvbnM6XG4gICAgICAgICdUcm9wIGRlIGNvbnZlcnNhdGlvbnMgc29udCBnw6luw6lyw6llcyBlbiBtw6ptZSB0ZW1wcy4gQXR0ZW5kZXogcXXigJl1bmUgc2UgdGVybWluZSBhdmFudCBk4oCZZW4gZMOpbWFycmVyIHVuZSBhdXRyZS4nLFxuICAgIH0sXG4gICAgZGVsZXRlUXVlc3Rpb25Nb2RhbDoge1xuICAgICAgdGl0bGU6ICdWb3VsZXotdm91cyBzdXBwcmltZXIgY2V0dGUgY29udmVyc2F0aW9uPycsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgfSxcbiAgICBkZWxldGVTa2lsbE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1ZvdWxlei12b3VzIHN1cHByaW1lciBjZXR0ZSBza2lsbD8nLFxuICAgICAgZmlyc3RQYXJ0OiAnVm91cyBldGVzIHN1ciBsZSBwb2ludCBkZSBzdXBwcmltZXInLFxuICAgICAgc2Vjb25kUGFydDogJ0NldHRlIGFjdGlvbiBlc3QgaXJyZXZlcnNpYmxlLicsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgfSxcbiAgICBlZGl0UXVlc3Rpb25Nb2RhbDoge1xuICAgICAgbmV3TmFtZTogJ05ldyBuYW1lJyxcbiAgICAgIHRpdGxlOiAnUmVuYW1lIGNvbnZlcnNhdGlvbicsXG4gICAgICByZW5hbWU6ICdSZW5hbWUnLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIG1heExlbmd0aDogJ1lvdSBjYW5ub3QgZW50ZXIgbW9yZSB0aGFuIDE1MCBjaGFyYWN0ZXJzLicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNYXhpbXVtIGF0dGFjaG1lbnRzIGV4Y2VlZGVkLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogXCJZb3UndmUgZXhjZWVkZWQgdGhlIGFsbG93ZWQgZmlsZSBzaXplIGxpbWl0XCIsXG4gICAgICBsaW1pdEZpbGVzRGVzY3JpcHRpb246XG4gICAgICAgICdZb3UgY2FuIGF0dGFjaCBhIG1heGltdW0gb2YgNSBmaWxlcyBwZXIgbWVzc2FnZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnT25lIG9yIG1vcmUgZmlsZXMgZXhjZWVkIHRoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBieSB0eXBlLiBUaGUgZm9sbG93aW5nIGZpbGVzIGNvdWxkIG5vdCBiZSBhdHRhY2hlZDonLFxuICAgICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICAgIGxpbWl0OiAnbGltaXQnLFxuICAgICAgc3RvcDogJ0NhbmNlbCBzZWFyY2gnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnU291cmNlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50cycsXG4gICAgICBuZXdBZ2VudDogJ05vdXZlbCBhZ2VudCcsXG4gICAgICBlZGl0OiAnw4lkaXRlcicsXG4gICAgICBtYWlhOiAnKFNww6ljaWFsaXN0ZSBkZSBwcm9qZXQpJyxcbiAgICAgIGFkZEZhdm9yaXRlOiAnQWRkIHRvIGZhdm9yaXRlcycsXG4gICAgICByZW1vdmVGYXZvcml0ZTogJ1JlbW92ZSBmcm9tIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3M6ICdBZ2VudCBhZGRlZCB0byBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3M6ICdBZ2VudCByZW1vdmVkIGZyb20gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZEVycm9yOiAnQ291bGQgbm90IHNhdmUgeW91ciBmYXZvcml0ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIH0sXG4gICAgY29udmVyc2F0aW9uczoge1xuICAgICAgdGl0bGU6ICdNZXMgY29udmVyc2F0aW9ucycsXG4gICAgICBhZ2VudHNTZWN0aW9uVGl0bGU6ICdBZ2VudHMnLFxuICAgICAgbWFpYWtlck5hdjogXCJDcsOpYXRldXIgZCdhZ2VudHNcIixcbiAgICAgIG15QWdlbnRzTmF2OiAnTWVzIGFnZW50cycsXG4gICAgICBteVNraWxsc05hdjogJ1NraWxscycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiBcIllvdSBoYXZlbid0IHN0YXJ0ZWQgYW55IGNvbnZlcnNhdGlvbnMgeWV0XCIsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIHVucmVhZExhYmVsOiAnTm9uIGx1JyxcbiAgICAgIG1pbmltaXplZE9wZW46ICdPdXZyaXIgTUFJQScsXG4gICAgICBtaW5pbWl6ZWRTZWVBbnN3ZXI6ICdWb2lyIGxhIHLDqXBvbnNlJyxcbiAgICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgICAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgICAgIG5ld0NoYXQ6ICdOZXcgY2hhdCcsXG4gICAgICBnZW5lcmF0aW5nOiAnR8OpbsOpcmF0aW9uIGRlIGxhIHLDqXBvbnNlJyxcbiAgICAgIHNlc3Npb25GaW5pc2hlZDogJ3t7dGl0bGV9fSBhIHRlcm1pbsOpIGRlIHLDqXBvbmRyZScsXG4gICAgICBzZXNzaW9uRmluaXNoZWRBcHByb3ZhbDogJ3t7dGl0bGV9fSByZXF1aWVydCB2b3RyZSBhcHByb2JhdGlvbicsXG4gICAgICBzZXNzaW9uRmluaXNoZWRFcnJvcjogJ3t7dGl0bGV9fSBhIHJlbmNvbnRyw6kgdW5lIGVycmV1cicsXG4gICAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3LDqWVyIHVuIGFnZW50JyxcbiAgICAgIG9wZW5NYXJrZXRwbGFjZTogXCJNYXJrZXRwbGFjZSBkJ2FnZW50c1wiLFxuICAgIH0sXG4gICAgbWFya2V0cGxhY2U6IHtcbiAgICAgIGJhY2s6ICdSZXRvdXInLFxuICAgICAgdGl0bGU6ICdJZGVlcyBwb3VyIGNyZWVyIGRlcyBhZ2VudHMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiQ2hvaXNpc3NleiB1bmUgc3VnZ2VzdGlvbiBiaWVuIGNvbnN0cnVpdGUgZXQgb3V2cmV6IGwnZWRpdGV1ciBhdmVjIGwnYWdlbnQgZGVqYSBwcmUtcmVtcGxpIHBvdXIgbCdhZGFwdGVyIGEgdm90cmUgY2FzLlwiLFxuICAgICAgbXlBZ2VudHNUaXRsZTogJ01lcyBhZ2VudHMnLFxuICAgICAgbXlBZ2VudHNSZWFkeVRpdGxlOiAnVm9zIGFnZW50cyBzb250IHByZXRzIGEgdm91cyBhaWRlciBhdmVjIGRlcyB0YWNoZXMnLFxuICAgICAgbXlBZ2VudHNEZXNjcmlwdGlvbjogJ1ZvaWNpIHZvcyBhZ2VudHMgY3VzdG9tLiBTZWxlY3Rpb25uZXotZW4gdW4gcG91ciBjb21tZW5jZXIgYSBkaXNjdXRlciBhdmVjIGNlIHByb2ZpbC4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlVGl0bGU6IFwiVm91cyBuJ2F2ZXogcGFzIGVuY29yZSBkJ2FnZW50cyBjcmVlc1wiLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb246ICdDbGlxdWV6IHN1ciBsZSBib3V0b24gY2ktZGVzc291cyBwb3VyIGNvbW1lbmNlciBhIGNyZWVyIGRlcyBhZ2VudHMgc3VyIG1lc3VyZS4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb25Ob1Blcm06XG4gICAgICAgIFwiTG9yc3F1J3VuZSBwZXJzb25uZSBoYWJpbGl0ZWUgbGVzIGF1cmEgY29uZmlndXJlcywgdm91cyBwb3VycmV6IHkgYWNjZWRlciBkZXB1aXMgaWNpLlwiLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uOiAnQ3JlZXIgdW4gYWdlbnQnLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0ludHJvOiAnQWdlbnQgcGVyc29ubmFsaXNlIHByZXQgYSB2b3VzIGFpZGVyIGRhbnMgdm90cmUgZmx1eCBkZSB0cmF2YWlsLicsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrRGVzY3JpcHRpb246ICdDbGlxdWV6IHN1ciB1dGlsaXNlciBhZ2VudCBwb3VyIGRlbWFycmVyIHVuZSBjb252ZXJzYXRpb24gYXZlYyBjZXQgYWdlbnQuJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEYXRlOiAnSWwgeSBhIHF1ZWxxdWVzIGpvdXJzJyxcbiAgICAgIG15QWdlbnRzVG9kYXk6IFwiQXVqb3VyZCdodWlcIixcbiAgICAgIG15QWdlbnRzT25lRGF5QWdvOiAnSWwgeSBhIDEgam91cicsXG4gICAgICBteUFnZW50c0RheXNBZ286ICdJbCB5IGEge3tkYXlzfX0gam91cnMnLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6IFwiTWVudSBkJ2FjdGlvbnMgZGUgbCdhZ2VudFwiLFxuICAgICAgdXNlOiAnVXRpbGlzZXInLFxuICAgICAgY3JlYXRlQWdlbnQ6ICdDcmVlciB1biBhZ2VudCBtYW51ZWxsZW1lbnQnLFxuICAgICAgc2VhcmNoQWdlbnRQbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXIgdW4gYWdlbnQuLi4nLFxuICAgICAgc2VhcmNoTWluTGVuZ3RoOiAnbWluLiAzIGNhcmFjdMOocmVzJyxcbiAgICAgIHNlYXJjaE5vUmVzdWx0czogJ0F1Y3VuIHLDqXN1bHRhdCB0cm91dsOpLicsXG4gICAgICBzZWFyY2hOb1Jlc3VsdHNTdWJ0aXRsZTogJ0Nyw6lleiB1biBhZ2VudCBJQSBjYXBhYmxlIGRlIHBlbnNlciwgZOKAmWFnaXIgZXQgZOKAmWF1dG9tYXRpc2VyIGxlIHRyYXZhaWwgcG91ciB2b3VzJyxcbiAgICAgIHVzZVRlbXBsYXRlOiAnQ3JlZXIgYSBwYXJ0aXIgZGUgY2V0dGUgaWRlZScsXG4gICAgICB1c2VNeUFnZW50OiAnVXRpbGlzZXIgYWdlbnQnLFxuICAgICAgYmFkZ2VzOiB7XG4gICAgICAgIGJyYW5kaW5nOiAnQnJhbmRpbmcnLFxuICAgICAgICBsaW5rZWRpbjogJ0xpbmtlZEluJyxcbiAgICAgICAgbWFya2V0aW5nOiAnTWFya2V0aW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBteVNraWxsczoge1xuICAgICAgdGl0bGU6ICdTcGVjaWFsaXNleiBNQUlBIGF2ZWMgdm9zIHByb3ByZXMgcmVnbGVzJyxcbiAgICAgIHN1YnRpdGxlOiAnTGVzIHNraWxscyBzb250IGdsb2JhbGVzIDogZWxsZXMgc29udCBkaXNwb25pYmxlcyBwb3VyIHRvdXMgdm9zIGFnZW50cy4nLFxuICAgICAgdGFiTXlTa2lsbHM6ICdNZXMgc2tpbGxzJyxcbiAgICAgIHRhYlNoYXJlZFNraWxsczogJ1NraWxscyBwYXJ0YWdlZXMnLFxuICAgICAgZHJvcGRvd25CdXR0b246ICdTa2lsbHMnLFxuICAgICAgZHJvcGRvd25DcmVhdGU6ICdDcmVlciB1bmUgbm91dmVsbGUgc2tpbGwnLFxuICAgICAgZHJvcGRvd25FbXB0eTogJ0F1Y3VuZSBza2lsbCBwb3VyIGwgaW5zdGFudCcsXG4gICAgICBkcm9wZG93bkVycm9yOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuIFZldWlsbGV6IHJlZXNzYXllci4nLFxuICAgICAgbXlTa2lsbHNEZXNjcmlwdGlvbjogJ0NvbXBldGVuY2VzIGNyZWVlcyBwYXIgdm91cy4nLFxuICAgICAgc2hhcmVkU2tpbGxzRGVzY3JpcHRpb246ICdDb21wZXRlbmNlcyBwYXJ0YWdlZXMgcGFyIGQgYXV0cmVzIG1lbWJyZXMgZGUgdm90cmUgZXF1aXBlLicsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXIgZGVzIGNvbXBldGVuY2VzLi4uJyxcbiAgICAgIGNyZWF0ZU1hbnVhbGx5OiAnQ3JlZXIgbWFudWVsbGVtZW50JyxcbiAgICAgIHZpc2liaWxpdHlPbmx5TWU6ICdNb2kgdW5pcXVlbWVudCcsXG4gICAgICB2aXNpYmlsaXR5RXZlcnlvbmU6ICdWaXNpYmxlIHBvdXIgdG91cycsXG4gICAgICBzaGFyZWRFbXB0eVN0YXRlVGl0bGU6ICdQZXJzb25uZSBuZSB2b3VzIGEgZW5jb3JlIHBhcnRhZ2UgZGUgc2tpbGxzLicsXG4gICAgICBzaGFyZWRFbXB0eVN0YXRlRGVzY3JpcHRpb246ICdMb3JzcXVlIHZvdHJlIGVudHJlcHJpc2UgcGFydGFnZXJhIGRlcyBza2lsbHMsIGVsbGVzIGFwcGFyYWl0cm9udCBpY2kuJyxcbiAgICAgIGNyZWF0ZVNraWxsOiAnQ3JlZXIgdW5lIHNraWxsJyxcbiAgICAgIHByZXZpZXc6ICdBcGVyY3UnLFxuICAgICAgcHJldmlld0VtcHR5OiAnUmllbiBhIHByZXZpc3VhbGlzZXIgcG91ciBsZSBtb21lbnQuJyxcbiAgICAgIHVwbG9hZE1kOiAnSW1wb3J0ZXIgLm1kJyxcbiAgICAgIHVwbG9hZEVycm9yOiAnU2V1bHMgbGVzIGZpY2hpZXJzIC5tZCBzb250IGF1dG9yaXNlcycsXG4gICAgICBjcmVhdGVXaXRoTWFpYTogJ0NyZWVyIGF2ZWMgTWFpYScsXG4gICAgICB3cml0ZUluc3RydWN0aW9uczogJ0VjcmlyZSBsZXMgaW5zdHJ1Y3Rpb25zJyxcbiAgICAgIHVwbG9hZFNraWxsOiAnSW1wb3J0ZXIgdW5lIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlUGxhY2Vob2xkZXI6ICdKZSB2ZXV4IHVuZSBTa2lsbCBwb3VyIGNyZWVyIG1lcyBwcm9qZXRzJyxcbiAgICAgIGdlbmVyYXRlV2l0aE1haWE6ICdDcmVlciBsYSBTa2lsbCBhdmVjIE1haWEnLFxuICAgICAgZ2VuZXJhdGVOZWVkc05hbWU6ICdTYWlzaXNzZXogZCBhYm9yZCB1biBub20gcG91ciBkZWNyaXJlIGxhIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlU3VjY2VzczogJ1NraWxsIGdlbmVyZWUgYXZlYyBNYWlhJyxcbiAgICAgIGdlbmVyYXRlRXJyb3I6ICdMYSBza2lsbCBuIGEgcGFzIHB1IGV0cmUgZ2VuZXJlZS4gVmV1aWxsZXogcmVlc3NheWVyLicsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogXCJNZW51IGQnYWN0aW9ucyBkZSBsYSBza2lsbFwiLFxuICAgICAgZWRpdDogJ01vZGlmaWVyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIHNhdmU6ICdFbnJlZ2lzdHJlcicsXG4gICAgICBjbG9zZTogJ0Zlcm1lcicsXG4gICAgICBjcmVhdGVUaXRsZTogJ0NyZWF0aW9uIGRlIHNraWxsJyxcbiAgICAgIGVkaXRUaXRsZTogJ01vZGlmaWVyIGxhIHNraWxsJyxcbiAgICAgIHZpZXdUaXRsZTogJ1NraWxsIHBhcnRhZ2VlJyxcbiAgICAgIHVzZVNraWxsOiAnVXRpbGlzZXIgbGEgc2tpbGwnLFxuICAgICAgaW5mb1Rvb2x0aXA6XG4gICAgICAgIFwiTGVzIHNraWxscyBzb250IGRlcyBpbnN0cnVjdGlvbnMgcXVlIHZvdXMgZG9ubmV6IGEgdW4gYWdlbnQgcG91ciBxdSdpbCByZXNvbHZlIHVuZSB0YWNoZSB0b3Vqb3VycyBkZSBsYSBtZW1lIGZhY29uLiBNZW50aW9ubmV6LWxhIGF2ZWMgIyBkYW5zIGxlIGNoYXQgZXQgbCdhZ2VudCBzdWl2cmEgY2VzIGV0YXBlcy5cIixcbiAgICAgIHNoYXJlZENyZWF0ZWRCeTogJ0NyZWVlIHBhciB7e25hbWV9fScsXG4gICAgICBuYW1lTGFiZWw6ICdOb20nLFxuICAgICAgbmFtZVBsYWNlaG9sZGVyOiAnTm9tIGRlIGxhIHNraWxsJyxcbiAgICAgIGRlc2NyaXB0aW9uTGFiZWw6ICdEZXNjcmlwdGlvbicsXG4gICAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiAnRGVjcml2ZXogYnJpZXZlbWVudCBhIHF1b2kgc2VydCBsYSBza2lsbCcsXG4gICAgICBpbnN0cnVjdGlvbnNMYWJlbDogJ0luc3RydWN0aW9ucycsXG4gICAgICBzaGFyZVdpdGhDb21wYW55OiAnQWN0aXZlciBwb3VyIHRvdXRlIGwgZW50cmVwcmlzZScsXG4gICAgICBjcmVhdGVkQnk6ICdDcmVlIHBhcicsXG4gICAgICBsYXN0VXBkYXRlZDogJ0Rlcm5pZXJlIG1pc2UgYSBqb3VyJyxcbiAgICAgIHNhdmVBbmRVc2U6ICdFbnJlZ2lzdHJlciBldCB1dGlsaXNlciBsYSBza2lsbCcsXG4gICAgICBjb250ZW50TGFiZWw6ICdTa2lsbCcsXG4gICAgICBjb250ZW50UGxhY2Vob2xkZXI6ICdFY3JpdmV6IGxhIHNraWxsLi4uJyxcbiAgICAgIGVtcHR5U3RhdGVUaXRsZTogXCJWb3VzIG4nYXZleiBwYXMgZW5jb3JlIGRlIHNraWxsc1wiLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnQ2xpcXVleiBzdXIgbGUgYm91dG9uIGNpLWRlc3NvdXMgcG91ciBjb21tZW5jZXIgYSBjcmVlciBkZXMgc2tpbGxzIHN1ciBtZXN1cmUuJyxcbiAgICAgIGVtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgJ0xvcnNxdXVuZSBwZXJzb25uZSBoYWJpbGl0ZWUgbGVzIGF1cmEgY29uZmlndXJlZXMsIHZvdXMgcG91cnJleiB5IGFjY2VkZXIgZGVwdWlzIGljaS4nLFxuICAgICAgZW1wdHlTdGF0ZUJ1dHRvbjogJ0NyZWVyIHVuZSBza2lsbCcsXG4gICAgICBzZWFyY2hFbXB0eVN0YXRlVGl0bGU6ICdBdWN1bmUgc2tpbGwgdHJvdXZlZScsXG4gICAgICBzZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb246ICdFc3NheWV6IHVuIGF1dHJlIHRlcm1lIG91IHZlcmlmaWV6IHZvdHJlIHJlY2hlcmNoZS4nLFxuICAgICAgY3JlYXRlU3VjY2VzczogJ1NraWxsIGNyZWVlIGF2ZWMgc3VjY2VzJyxcbiAgICAgIGNyZWF0ZUVycm9yOiBcIkxhIHNraWxsIG4nYSBwYXMgcHUgZXRyZSBjcmVlZS4gVmV1aWxsZXogcmVlc3NheWVyLlwiLFxuICAgICAgdXBkYXRlU3VjY2VzczogJ1NraWxsIG1pc2UgYSBqb3VyIGF2ZWMgc3VjY2VzJyxcbiAgICAgIHVwZGF0ZUVycm9yOiBcIkxhIHNraWxsIG4nYSBwYXMgcHUgZXRyZSBtaXNlIGEgam91ci4gVmV1aWxsZXogcmVlc3NheWVyLlwiLFxuICAgICAgZGVsZXRlU3VjY2VzczogJ1NraWxsIHN1cHByaW1lZSBhdmVjIHN1Y2NlcycsXG4gICAgICBkZWxldGVFcnJvcjogXCJMYSBza2lsbCBuJ2EgcGFzIHB1IGV0cmUgc3VwcHJpbWVlLiBWZXVpbGxleiByZWVzc2F5ZXIuXCIsXG4gICAgfSxcbiAgICBzbmFja2Jhcjoge1xuICAgICAgZGVsZXRlQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ2hhdCBkZWxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgICByZW5hbWVkQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ29udmVyc2F0aW9uIHJlbmFtZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICAgIGxvYWRNb3JlQWdlbnRzOiB7XG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhcHByb3ZhbEJveDoge1xuICAgICAgdW50aXRsZWRBZ2VudDogJ0FnZW50IHNhbnMgdGl0cmUnLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICBjcmVhdGVfdGFzazogJ0Nyw6lhdGlvbiBkZSB0w6JjaGUnLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcsOpYXRpb24gZGUgdMOiY2hlcycsXG4gICAgICAgIGNyZWF0ZV9hZ2VudDogJ0Nyw6lhdGlvbiBk4oCZYWdlbnQnLFxuICAgICAgICBlZGl0X2FnZW50OiAnTW9kaWZpY2F0aW9uIGRlIGzigJlhZ2VudCcsXG4gICAgICAgIGVkaXRfcHJvamVjdDogJ01vZGlmaWNhdGlvbiBkdSBwcm9qZXQnLFxuICAgICAgICBlZGl0X3Rhc2s6ICdNb2RpZmljYXRpb24gZGUgdMOiY2hlJyxcbiAgICAgICAgZWRpdF90YXNrc19iYXRjaDogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgZGVsZXRlX3Rhc2s6ICdTdXBwcmVzc2lvbiBkZSB0w6JjaGUnLFxuICAgICAgICBkZWxldGVfdGFza3NfYmF0Y2g6ICdTdXBwcmVzc2lvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBdHRyaWJ1dGlvbiBk4oCZdXRpbGlzYXRldXInLFxuICAgICAgICB0YXNrX3VuYXNzaWduOiAnUmV0cmFpdCBk4oCZdXRpbGlzYXRldXInLFxuICAgICAgICBhc3NpZ25fdGFza19sYWJlbDogJ0F0dHJpYnV0aW9uIGTigJnDqXRpcXVldHRlJyxcbiAgICAgICAgY3JlYXRlX2xhYmVsczogJ0Nyw6lhdGlvbiBk4oCZw6l0aXF1ZXR0ZScsXG4gICAgICAgIHVwZGF0ZV90YXNrX3R5cGU6ICdNaXNlIMOgIGpvdXIgZHUgdHlwZSBkZSB0w6JjaGUnLFxuICAgICAgICB1cGRhdGVfZXN0aW1hdGVkX2hvdXJzOiAnTWlzZSDDoCBqb3VyIGRlcyBoZXVyZXMgZXN0aW3DqWVzJyxcbiAgICAgICAgdXBkYXRlX2RlbGl2ZXJhYmxlOiAnTWlzZSDDoCBqb3VyIGR1IGxpdnJhYmxlJyxcbiAgICAgICAgY3JlYXRlX2hvdXI6ICdTYWlzaWUgZOKAmWhldXJlcycsXG4gICAgICAgIGNyZWF0ZV9jaGVja2xpc3Q6ICdDcsOpYXRpb24gZGUgY2hlY2tsaXN0JyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdF9pdGVtOiAnQWpvdXQgZOKAmXVuIMOpbMOpbWVudCDDoCBsYSBjaGVja2xpc3QnLFxuICAgICAgICBjbG9uZV90YXNrOiAnRHVwbGlxdWVyIGxhIHTDomNoZScsXG4gICAgICAgIGdldF90YXNrX2RhdGVfaG91cnM6ICdDb25zdWx0YXRpb24gZGVzIGhldXJlcyBwYXIgZGF0ZScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6IFwiTW9kaWZpZXIgbGEgdmlzaWJpbGl0w6kgZGUgbCdhZ2VudFwiLFxuICAgICAgICBzZW5kX3Rhc2tfbWVzc2FnZTogJ0Vudm9pIGTigJl1biBtZXNzYWdlIHN1ciBsYSB0w6JjaGUnLFxuICAgICAgICBkZWxldGVfY2hlY2tsaXN0X2l0ZW06ICdTdXBwcmVzc2lvbiBk4oCZdW4gw6lsw6ltZW50IGRlIGxhIGNoZWNrbGlzdCcsXG4gICAgICAgIHJlbW92ZV90YXNrX3R5cGU6ICdTdXBwcmVzc2lvbiBkdSB0eXBlIGRlIHTDomNoZScsXG4gICAgICAgIHJlbW92ZV90YXNrX2xhYmVsOiAnU3VwcHJlc3Npb24gZGUgbOKAmcOpdGlxdWV0dGUnLFxuICAgICAgICBjb3VudF9kZWxpdmVyYWJsZTogJ01pc2Ugw6Agam91ciBkdSBjb21wdGV1ciBkZSBsaXZyYWJsZXMnLFxuICAgICAgICBjcmVhdGVfcmV3b3JrOiAnQ3LDqWF0aW9uIGTigJl1bmUgcmVwcmlzZScsXG4gICAgICAgIHVwZGF0ZV9yZXdvcms6ICdNaXNlIMOgIGpvdXIgZGUgbGEgcmVwcmlzZScsXG4gICAgICAgIGRlbGV0ZV9hZ2VudDogJ1N1cHByZXNzaW9uIGRlIGzigJlhZ2VudCcsXG4gICAgICAgIHVua25vd246ICdBY3Rpb24gaW5jb25udWUnLFxuICAgICAgfSxcbiAgICAgIHNwZWNpYWw6IHtcbiAgICAgICAgY3JlYXRlUmV3b3JrOiB7XG4gICAgICAgICAgdGl0bGU6ICdDcsOpZXIgdW5lIHJlcHJpc2UnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVW5lIGRlbWFuZGUgZGUgcmVwcmlzZSBzZXJhIGNyw6nDqWUgc3VyIGxhIHTDomNoZSBhdmVjIGxlcyBpbmZvcm1hdGlvbnMgY2ktZGVzc291cy4nLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuOiB7XG4gICAgICAgICAgdGl0bGU6ICdNZXR0cmUgw6Agam91ciBs4oCZYXZhbmNlbWVudCBkZXMgbGl2cmFibGVzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0zigJlhdmFuY2VtZW50IGRlcyBzb3VzLWxpdnJhYmxlcyBsacOpcyDDoCBjZXR0ZSB0w6JjaGUgc2VyYSBtaXMgw6Agam91ci4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBuYW1lOiAnTm9tJyxcbiAgICAgICAgZW1vamk6ICdFbW9qaScsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ0ludHJvZHVjdGlvbicsXG4gICAgICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICB1c2VyX3Byb21wdDogJ1Byb21wdCBwcmluY2lwYWwnLFxuICAgICAgICBsYW5ndWFnZTogJ0xhbmd1ZScsXG4gICAgICAgIHByb3ZpZGVyOiAnUHJvdmlkZXInLFxuICAgICAgICBtb2RlbF9uYW1lOiAnTW9kw6hsZScsXG4gICAgICAgIGFwaV9rZXk6ICdBUEkga2V5JyxcbiAgICAgIH0sXG4gICAgICB0aXRsZTogJ0NvbmZpcm1hdGlvbiByZXF1aXNlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVm90cmUgYXBwcm9iYXRpb24gZXN0IG7DqWNlc3NhaXJlIHBvdXIgZXjDqWN1dGVyIGzigJlhY3Rpb24gc3VpdmFudGUgOicsXG4gICAgICBhcHByb3ZlOiAnQXBwcm91dmVyJyxcbiAgICAgIGRlbnk6ICdSZWZ1c2VyJyxcbiAgICAgIG1hbnVhbEFwcHJvdmFsV2FybmluZzogJ01haWEgYSBkw6l0ZWN0w6kgcXVlIGxhIGRlbWFuZGUgYSDDqXTDqSBhcHByb3V2w6llIG1hbnVlbGxlbWVudCcsXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgYXBwcm92ZWQ6ICdEZW1hbmRlIGFwcHJvdXbDqWUnLFxuICAgICAgICBkZW5pZWQ6ICdEZW1hbmRlIHJlZnVzw6llJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjaGlwTGxtOiB7XG4gICAgICB0b29sdGlwOiAnTW9kw6hsZSA6IHt7bW9kZWx9fScsXG4gICAgfSxcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgcHJvamVjdDogJ3Byb2pldCcsXG4gICAgICBwcm9qZWN0czogJ3Byb2pldHMnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5hYm1BZ2VudF06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbjpcbiAgICAgICdDZXR0ZSBjb252ZXJzYXRpb24gYXBwYXJ0aWVudCDDoCB1biBjb250ZXh0ZSBwcsOpY8OpZGVudC4gVm91cyBwb3V2ZXogY29udGludWVyIGF2ZWMge3tuYW1lfX0gZGFucyB1biBub3V2ZWF1IGNoYXQuJyxcbiAgICBjb250aW51ZUluTmV3Q2hhdDogJ0NvbnRpbnVlciBkYW5zIHVuIG5vdXZlYXUgY2hhdCcsXG4gICAgbGF5b3V0TWVudVRvb2x0aXA6ICdEaXNwb3NpdGlvbiBkdSBjaGF0JyxcbiAgICBsYXlvdXRTaWRlYmFyOiAnQmFycmUgbGF0w6lyYWxlJyxcbiAgICBsYXlvdXRGdWxsc2NyZWVuOiAnUGxlaW4gw6ljcmFuJyxcbiAgICBsYXlvdXRGbG9hdGluZzogJ0ZlbsOqdHJlIGZsb3R0YW50ZScsXG4gICAgYmFjazogJ1JldG91cicsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0Nyw6llciB1biBhZ2VudCcsXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnUGVybWlzc2lvbnMnLFxuICAgICAgdGl0bGVTZWN0aW9uOiBcIlZpc2liaWxpdMOpIGV0IHBlcm1pc3Npb25zIGRlIGwnYWdlbnRcIixcbiAgICAgIHN1YnRpdGxlU2VjdGlvbjogXCJEw6lmaW5pc3NleiBxdWkgcGV1dCB1dGlsaXNlciBjZXQgYWdlbnQgZXQgcydpbCBwZXV0IGFjY8OpZGVyIGF1eCBkb25uw6llcyBDT1IuXCIsXG4gICAgICBjb3JQZXJtaXNzaW9uc1RpdGxlOiBcIlBlcm1pc3Npb25zIGQnYWNjw6hzIGF1eCBkb25uw6llcyBDT1JcIixcbiAgICAgIGNvclBlcm1pc3Npb25zU3VidGl0bGU6ICfDgCBxdW9pIGNldCBhZ2VudCBhLXQtaWwgYWNjw6hzID8nLFxuICAgICAgdGFza0FjY2Vzc1RpdGxlOiAnQWNjw6hzIGF1eCB0w6JjaGVzJyxcbiAgICAgIHRhc2tBY2Nlc3NEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJMJ2FnZW50IHBvdXJyYSBsaXJlLCBjcsOpZXIsIG1vZGlmaWVyIGV0IHN1cHByaW1lciBkZXMgdMOiY2hlcyBzZWxvbiBsZXMgcGVybWlzc2lvbnMgZGUgbCd1dGlsaXNhdGV1ci5cIixcbiAgICAgIG1jcFBlcm1pc3Npb25zVGl0bGU6ICdDb25uZWN0ZXVycyBleHRlcm5lcycsXG4gICAgICBtY3BQZXJtaXNzaW9uc1N1YnRpdGxlOiAnw4AgcXVlbHMgb3V0aWxzIGV4dGVybmVzIGNldCBhZ2VudCBhLXQtaWwgYWNjw6hzID8nLFxuICAgICAgbmV0c3VpdGVBY2Nlc3NUaXRsZTogJ05ldFN1aXRlJyxcbiAgICAgIG5ldHN1aXRlQWNjZXNzRGVzY3JpcHRpb246XG4gICAgICAgIFwiTCdhZ2VudCBwb3VycmEgbGlyZSBldCBtZXR0cmUgw6Agam91ciBsZXMgZW5yZWdpc3RyZW1lbnRzIE5ldFN1aXRlLiBOb3VzIHZvdXMgZGVtYW5kZXJvbnMgZCdhdXRvcmlzZXIgbCdhY2PDqHMgbG9ycyBkZSBsJ2VucmVnaXN0cmVtZW50LlwiLFxuICAgICAgY29ubmVjdG9yQWNjZXNzRGVzY3JpcHRpb246XG4gICAgICAgIFwiTCdhZ2VudCBwb3VycmEgdXRpbGlzZXIge3tuYW1lfX0uIE5vdXMgdm91cyBkZW1hbmRlcm9ucyBkJ2F1dG9yaXNlciBsJ2FjY8OocyBsb3JzIGRlIGwnZW5yZWdpc3RyZW1lbnQuXCIsXG4gICAgICBjb25uZWN0b3JBdXRoRmFpbGVkOiBcIkltcG9zc2libGUgZCdvdXZyaXIgbGEgY29ubmV4aW9uIGR1IGNvbm5lY3RldXIuIFLDqWVzc2F5ZXogb3UgdsOpcmlmaWV6IGxhIGNvbmZpZ3VyYXRpb24gT0F1dGguXCIsXG4gICAgICBjb25uZWN0b3JBdXRoSW5jb21wbGV0ZTogXCJMYSBjb25uZXhpb24gTmV0U3VpdGUgbidlc3QgcGFzIHRlcm1pbsOpZS4gRW5yZWdpc3RyZXogw6Agbm91dmVhdSwgY2xpcXVleiBzdXIgQXV0b3Jpc2VyIGV0IGF0dGVuZGV6IGxhIGZlcm1ldHVyZSBkZSBsYSBmZW7DqnRyZS5cIixcbiAgICAgIG5ldHN1aXRlQXV0aFNldHVwUmVxdWlyZWQ6XG4gICAgICAgIFwiTmV0U3VpdGUgbidlbnJlZ2lzdHJlIHBhcyBsJ2FwcGxpY2F0aW9uIHRvdXQgc2V1bC4gVW4gYWRtaW4gZG9pdCBjcsOpZXIgdW5lIEludGVncmF0aW9uIChQdWJsaWMgQ2xpZW50LCBzY29wZSBBSSBDb25uZWN0b3IsIFJlZGlyZWN0IFVSSSBNQUlBKS4gRW5zdWl0ZSBsZSBsb2dpbiBzJ2FmZmljaGUgZGFucyBsZSBwb3B1cC5cIixcbiAgICAgIHZpc2liaWxpdHlUaXRsZTogXCJWaXNpYmlsaXTDqSBkZSBsJ2FnZW50XCIsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdRdWkgcGV1dCB1dGlsaXNlciBjZXQgYWdlbnQgPycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6IFwiVG91dGUgbCdlbnRyZXByaXNlXCIsXG4gICAgICBhbGxDb21wYW55RGVzY3JpcHRpb246ICdUb3VzIGxlcyB1dGlsaXNhdGV1cnMgZGUgdm90cmUgb3JnYW5pc2F0aW9uIHBvdXJyb250IHZvaXIgZXQgdXRpbGlzZXIgY2V0IGFnZW50LicsXG4gICAgICBjbGllbnRUaXRsZTogJ1BvdXIgZGVzIGNsaWVudHMgc3DDqWNpZmlxdWVzJyxcbiAgICAgIGNsaWVudERlc2NyaXB0aW9uOlxuICAgICAgICAnQXNzb2NpZXogY2V0IGFnZW50IMOgIHVuIG91IHBsdXNpZXVycyBjbGllbnRzLiBUb3VzIGxlcyB1dGlsaXNhdGV1cnMgcG91cnJvbnQgdm9pciDDoCBxdWVscyBjbGllbnRzIGlsIGVzdCBsacOpLicsXG4gICAgICBvd25UaXRsZTogJ01vaSB1bmlxdWVtZW50JyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnQ2V0IGFnZW50IHNlcmEgcHJpdsOpIGV0IG5lIHNlcmEgcGFzIGRpc3BvbmlibGUgcG91ciBsZXMgYXV0cmVzIHV0aWxpc2F0ZXVycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBsaXN0IG9mIGNsaWVudHMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgc2VhcmNoRW1wdHk6ICdPb3BzISBObyBjbGllbnRzIHdlcmUgZm91bmQgdGhhdCBtYXRjaCB5b3VyIHNlYXJjaC4nLFxuICAgICAgc2VhcmNoSW5pdGlhbDogJ1dyaXRlIGEgd29yZCB0byBzdGFydCB5b3VyIHNlYXJjaCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTRUxFQ1QgUFJPSkVDVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnQgcHJvamVjdHMnLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnU2VhcmNoIGVycm9yISBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1vbWVudHMuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdObyByZWNlbnQgcHJvamVjdHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdObyBjbGllbnQnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnTm8gdGl0bGUnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5jbGllbnRTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgdGl0bGU6ICdXaGljaCBjbGllbnQgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIGNsaWVudCBzbyBNQUlBIGNhbiByZXNwb25kIGluIGNvbnRleHQuJyxcbiAgICAgIGxhYmVsQ2xpZW50OiAnU0VMRUNUIENMSUVOVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VDbGllbnQ6ICdDaGFuZ2UgY2xpZW50JyxcbiAgICAgIHJlY2VudENsaWVudHM6ICdSZWNlbnQgY2xpZW50cycsXG4gICAgICBzZWFyY2hpbmdDbGllbnRzOiAnU2VhcmNoaW5nIHlvdXIgY2xpZW50cy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdTZWFyY2ggZXJyb3IhIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbW9tZW50cy4nLFxuICAgICAgZW1wdHlSZWNlbnRDbGllbnRzOiAnTm8gcmVjZW50IGNsaWVudHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHByb2plY3Q6ICdwcm9qZXQnLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRzJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLE9BQU87RUFDZEMsUUFBUSxFQUFFLFNBQVM7RUFDbkJDLFFBQVEsRUFBRSxtQkFBbUI7RUFDN0JDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxNQUFNLEVB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