@projectcor/maia-components 2.28.0 → 2.30.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 (658) hide show
  1. package/lib/App.js +55 -0
  2. package/lib/components/atoms/ActionableButton.js +60 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  6. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  7. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  9. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  16. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  23. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  25. package/lib/components/atoms/Backdrop/index.js +2 -0
  26. package/lib/components/atoms/CardItem.js +7 -0
  27. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  28. package/lib/components/atoms/CardMenu/index.js +2 -0
  29. package/lib/components/atoms/CardMenu/styles.js +21 -0
  30. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  31. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  32. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  35. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  36. package/lib/components/atoms/Checkbox/index.js +2 -0
  37. package/lib/components/atoms/Checkbox/styles.js +39 -0
  38. package/lib/components/atoms/Chip/Chip.js +150 -0
  39. package/lib/components/atoms/Chip/index.js +2 -0
  40. package/lib/components/atoms/Chip/styles.js +43 -0
  41. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  43. package/lib/components/atoms/ChipLlm/index.js +2 -0
  44. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  47. package/lib/components/atoms/ChipStatus/index.js +2 -0
  48. package/lib/components/atoms/ClearButton.js +6 -0
  49. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  51. package/lib/components/atoms/ClientSelector/index.js +2 -0
  52. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  54. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  55. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +434 -0
  56. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  57. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  59. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  60. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +309 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
  62. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  63. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  65. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  66. package/lib/components/atoms/CopyToClipboard.js +70 -0
  67. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  68. package/lib/components/atoms/EditableLabel/index.js +2 -0
  69. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  70. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  72. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  73. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  75. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  76. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  79. package/lib/components/atoms/EntitySelector/index.js +2 -0
  80. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  82. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  85. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  87. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  88. package/lib/components/atoms/Expand/Expand.js +32 -0
  89. package/lib/components/atoms/Expand/index.js +2 -0
  90. package/lib/components/atoms/Fade/Fade.js +56 -0
  91. package/lib/components/atoms/Fade/index.js +2 -0
  92. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  94. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  95. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  99. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  103. package/lib/components/atoms/GoBackButton.js +24 -0
  104. package/lib/components/atoms/HelpButton.js +44 -0
  105. package/lib/components/atoms/IconButton.js +56 -0
  106. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  108. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  109. package/lib/components/atoms/Input/CustomInput.js +91 -0
  110. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  111. package/lib/components/atoms/Input/index.js +2 -0
  112. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  113. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  114. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  115. package/lib/components/atoms/Loader.js +41 -0
  116. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  118. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  119. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  121. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  122. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  124. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  125. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  126. package/lib/components/atoms/LoadingText/index.js +2 -0
  127. package/lib/components/atoms/LoadingText/styles.js +7 -0
  128. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  129. package/lib/components/atoms/MAIAButton/index.js +2 -0
  130. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  131. package/lib/components/atoms/MAIAError/index.js +2 -0
  132. package/lib/components/atoms/MAIAInput/MAIAInput.js +1058 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  134. package/lib/components/atoms/MAIAInput/index.js +2 -0
  135. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  136. package/lib/components/atoms/MAIAInput/styles.js +182 -0
  137. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  139. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  140. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  141. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  145. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  146. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  148. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  149. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  150. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  151. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  154. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  155. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  157. package/lib/components/atoms/ModalInfo/index.js +3 -0
  158. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  159. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  162. package/lib/components/atoms/ModalProject/index.js +2 -0
  163. package/lib/components/atoms/NextPageLoader.js +33 -0
  164. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  167. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  168. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  170. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  171. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  173. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  174. package/lib/components/atoms/PrimaryButton.js +31 -0
  175. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  177. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  178. package/lib/components/atoms/SecondaryButton.js +20 -0
  179. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  182. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  183. package/lib/components/atoms/Skeleton/index.js +2 -0
  184. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  185. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  186. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  187. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  188. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  189. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  190. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  191. package/lib/components/atoms/Switch/Switch.js +27 -0
  192. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  193. package/lib/components/atoms/Switch/index.js +2 -0
  194. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  195. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  196. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  197. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  198. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  199. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  200. package/lib/components/atoms/TextArea/index.js +2 -0
  201. package/lib/components/atoms/ThirdButton.js +19 -0
  202. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  203. package/lib/components/atoms/VideoModal/index.js +2 -0
  204. package/lib/components/atoms/WithAppCfg.js +26 -0
  205. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  206. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  207. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  208. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  209. package/lib/components/atoms/icons/AIIcon.js +23 -0
  210. package/lib/components/atoms/icons/AacFile.js +39 -0
  211. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  212. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  213. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  214. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  215. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  216. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  217. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  218. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  219. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  220. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  221. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  222. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  223. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  224. package/lib/components/atoms/icons/Brain.js +77 -0
  225. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  226. package/lib/components/atoms/icons/CorLogo.js +76 -0
  227. package/lib/components/atoms/icons/CsvFile.js +41 -0
  228. package/lib/components/atoms/icons/DocFile.js +41 -0
  229. package/lib/components/atoms/icons/DocxFile.js +41 -0
  230. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  231. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  232. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  233. package/lib/components/atoms/icons/EmptyState.js +84 -0
  234. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  235. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  236. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  237. package/lib/components/atoms/icons/ErrorState.js +51 -0
  238. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  239. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  240. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  241. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  242. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  243. package/lib/components/atoms/icons/ImageFile.js +46 -0
  244. package/lib/components/atoms/icons/M4aFile.js +39 -0
  245. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  246. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  247. package/lib/components/atoms/icons/MDFile.js +41 -0
  248. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  249. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  250. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  251. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  252. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  253. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  254. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  256. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  257. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  259. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  260. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  261. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  262. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  263. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  264. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  265. package/lib/components/atoms/icons/Mp3File.js +39 -0
  266. package/lib/components/atoms/icons/Mp4File.js +39 -0
  267. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  268. package/lib/components/atoms/icons/NewChat.js +29 -0
  269. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  270. package/lib/components/atoms/icons/OgaFile.js +39 -0
  271. package/lib/components/atoms/icons/OggFile.js +39 -0
  272. package/lib/components/atoms/icons/PdfFile.js +39 -0
  273. package/lib/components/atoms/icons/PptFile.js +47 -0
  274. package/lib/components/atoms/icons/PptxFile.js +49 -0
  275. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  276. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  277. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  278. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  279. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  280. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  281. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  282. package/lib/components/atoms/icons/TextFile.js +41 -0
  283. package/lib/components/atoms/icons/WavFile.js +39 -0
  284. package/lib/components/atoms/icons/WebmFile.js +50 -0
  285. package/lib/components/atoms/icons/XlsFile.js +42 -0
  286. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  287. package/lib/components/atoms/icons/index.js +50 -0
  288. package/lib/components/atoms/index.js +42 -0
  289. package/lib/components/index.js +11 -0
  290. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  291. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +149 -0
  292. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  293. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  294. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  295. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  296. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  297. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  298. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  299. package/lib/components/molecules/AbmSection/index.js +4 -0
  300. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  301. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  302. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +117 -0
  303. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  304. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  305. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  306. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  307. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  308. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  309. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  310. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  311. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  312. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  313. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  314. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  315. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  316. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  317. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  318. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  319. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  320. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  321. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  322. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1217 -0
  323. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  324. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  325. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  326. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  327. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  328. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  329. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  330. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +448 -0
  331. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  333. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  334. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  335. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  336. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  337. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  338. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  339. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  340. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  341. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  342. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  343. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  344. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  345. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  346. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  347. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  348. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  349. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  350. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  351. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  352. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  353. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  354. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  355. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  356. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  357. package/lib/components/molecules/ChatFooter/index.js +2 -0
  358. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  359. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +62 -0
  360. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  361. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  362. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  363. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  364. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  365. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  366. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  367. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  368. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  369. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  370. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  371. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  372. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  373. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  374. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  376. package/lib/components/molecules/Sidebar/Sidebar.js +715 -0
  377. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  378. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  379. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  380. package/lib/components/molecules/Sidebar/index.js +2 -0
  381. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1420 -0
  382. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  383. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  384. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
  385. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  386. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  387. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
  388. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  389. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  390. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  391. package/lib/components/organisms/ChatAI/index.js +2 -0
  392. package/lib/components/organisms/ChatAI/styles.js +7 -0
  393. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  394. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  395. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  396. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  397. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  398. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  399. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  400. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  401. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  402. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  403. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  404. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  405. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  406. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  407. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  408. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  409. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  410. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  411. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  412. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  413. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  414. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  415. package/lib/components/organisms/SnackBar/index.js +2 -0
  416. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  417. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  418. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  419. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  420. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  421. package/lib/constants/config.js +13 -0
  422. package/lib/constants/formatExtensions.js +55 -0
  423. package/lib/constants/gqlClient.js +4 -0
  424. package/lib/constants/maiaHourAgentAccess.js +15 -0
  425. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  426. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  427. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  428. package/lib/constants/permissions/config.js +72 -0
  429. package/lib/constants/permissions/index.js +3 -0
  430. package/lib/constants/permissions/types.js +2 -0
  431. package/lib/constants/permissions/utils.js +18 -0
  432. package/lib/constants/plannerSyncEvents.js +15 -0
  433. package/lib/constants/taskLinkIcon.js +15 -0
  434. package/lib/constants/taskUrls.js +11 -0
  435. package/lib/context/cor-user.js +31 -0
  436. package/lib/context/global-context.js +39 -0
  437. package/lib/dev/DevChatAI.js +101 -0
  438. package/lib/dev/DevContextMentionInput.js +67 -0
  439. package/lib/dev/ProjectSummary.js +9 -0
  440. package/lib/dev/Providers.js +27 -0
  441. package/lib/exports.js +2 -0
  442. package/lib/hooks/README.md +192 -0
  443. package/lib/hooks/index.js +30 -0
  444. package/lib/hooks/useAccessClient/index.js +2 -0
  445. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  446. package/lib/hooks/useAgentModel/index.js +2 -0
  447. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  448. package/lib/hooks/useAgentModel/useCreateAgent.js +128 -0
  449. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  450. package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -0
  451. package/lib/hooks/useAgentSuggestions.js +60 -0
  452. package/lib/hooks/useCaretPosition.js +65 -0
  453. package/lib/hooks/useChatManager/index.js +2 -0
  454. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  455. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  456. package/lib/hooks/useChatMessages/index.js +2 -0
  457. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  458. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  459. package/lib/hooks/useChats/index.js +2 -0
  460. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  461. package/lib/hooks/useChats/useChats.js +187 -0
  462. package/lib/hooks/useClientSearch.js +163 -0
  463. package/lib/hooks/useContextMentions.js +463 -0
  464. package/lib/hooks/useContextPinPopover.js +228 -0
  465. package/lib/hooks/useDebounce.js +18 -0
  466. package/lib/hooks/useEntitySearch.js +1239 -0
  467. package/lib/hooks/useEvent.js +93 -0
  468. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  469. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  470. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  471. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  472. package/lib/hooks/useKnowledge/index.js +4 -0
  473. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  474. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  475. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  476. package/lib/hooks/useMentionAllowedTypes.js +136 -0
  477. package/lib/hooks/useMentionPopover.js +366 -0
  478. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  479. package/lib/hooks/useModal/index.js +2 -0
  480. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  481. package/lib/hooks/useModal/useModal.js +47 -0
  482. package/lib/hooks/useOnboardingNavigation.js +20 -0
  483. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  484. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  485. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  486. package/lib/hooks/useProjectSearch.js +183 -0
  487. package/lib/hooks/useProjectSummary.js +101 -0
  488. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  489. package/lib/hooks/useProjects.js +46 -0
  490. package/lib/hooks/useRecentClientsSearch.js +150 -0
  491. package/lib/hooks/useRecentContexts.js +86 -0
  492. package/lib/hooks/useResize.js +29 -0
  493. package/lib/hooks/useSlashCommands.js +84 -0
  494. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  495. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  496. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  497. package/lib/hooks/useStreamResponse.js +112 -0
  498. package/lib/hooks/useStreamdownStyles.js +13 -0
  499. package/lib/hooks/useStreamingMessage/index.js +2 -0
  500. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  501. package/lib/hooks/useT.js +17 -0
  502. package/lib/hooks/useTabTaskDefault.js +33 -0
  503. package/lib/hooks/useTaskPanel.js +22 -0
  504. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  505. package/lib/hooks/useToggle.js +19 -0
  506. package/lib/hooks/useToggleFavorite/index.js +2 -0
  507. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  508. package/lib/index.css +76 -0
  509. package/lib/index.js +30 -0
  510. package/lib/lang/br/index.js +761 -0
  511. package/lib/lang/en/index.js +761 -0
  512. package/lib/lang/es/index.js +762 -0
  513. package/lib/lang/fr/index.js +582 -0
  514. package/lib/lang/index.js +24 -0
  515. package/lib/lang/utils.js +33 -0
  516. package/lib/mocks/mockChats.js +395 -0
  517. package/lib/mocks/mockOrchestrator.js +5 -0
  518. package/lib/mocks/mockProject.js +11 -0
  519. package/lib/mocks/mockProjectSummary.js +6 -0
  520. package/lib/mocks/mockedUser.js +169 -0
  521. package/lib/services/apolloClient.js +3 -0
  522. package/lib/services/appcues.js +19 -0
  523. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  524. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  525. package/lib/services/corpilot/client.js +27 -0
  526. package/lib/services/corpilot/index.js +5 -0
  527. package/lib/services/maia/Access/updateAccess.js +59 -0
  528. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  529. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  530. package/lib/services/maia/Actions/index.js +7 -0
  531. package/lib/services/maia/Agents/createAgent.js +39 -0
  532. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  533. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  534. package/lib/services/maia/Agents/getAgentById.js +162 -0
  535. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  536. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  537. package/lib/services/maia/Agents/getAgents.js +718 -0
  538. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  539. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  540. package/lib/services/maia/Agents/updateAgent.js +39 -0
  541. package/lib/services/maia/Chats/deleteChat.js +32 -0
  542. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  543. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  544. package/lib/services/maia/Chats/index.js +15 -0
  545. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  546. package/lib/services/maia/Chats/patchChat.js +43 -0
  547. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  548. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  549. package/lib/services/maia/Faqs/index.js +5 -0
  550. package/lib/services/maia/Knowledge/delete.js +41 -0
  551. package/lib/services/maia/Knowledge/download.js +48 -0
  552. package/lib/services/maia/Knowledge/index.js +3 -0
  553. package/lib/services/maia/Knowledge/save.js +43 -0
  554. package/lib/services/maia/Orchestrator/index.js +7 -0
  555. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  556. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  557. package/lib/services/maia/RecentClients/index.js +6 -0
  558. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  559. package/lib/services/maia/RecentContexts/index.js +6 -0
  560. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  561. package/lib/services/maia/RecentProjects/index.js +6 -0
  562. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  563. package/lib/services/maia/RecentTasks/index.js +6 -0
  564. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  565. package/lib/services/maia/RecentUsers/index.js +6 -0
  566. package/lib/services/maia/Skills/createSkill.js +39 -0
  567. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  568. package/lib/services/maia/Skills/generateSkill.js +41 -0
  569. package/lib/services/maia/Skills/getSkills.js +90 -0
  570. package/lib/services/maia/Skills/updateSkill.js +39 -0
  571. package/lib/services/maia/client.js +27 -0
  572. package/lib/services/maia/index.js +17 -0
  573. package/lib/services/query/ClientSearchQuery.js +5 -0
  574. package/lib/services/query/entitySearchQuery.js +18 -0
  575. package/lib/services/query/index.js +2 -0
  576. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  577. package/lib/services/query/taskUserTabQuery.js +8 -0
  578. package/lib/services/query/usersDirectoryQuery.js +19 -0
  579. package/lib/services/types.js +6 -0
  580. package/lib/services/utils/fetchCOR.js +117 -0
  581. package/lib/services/utils/getCookie.js +10 -0
  582. package/lib/services/utils/index.js +3 -0
  583. package/lib/services/utils/mapChatMessages.js +287 -0
  584. package/lib/services/utils/validateIsMaia.js +4 -0
  585. package/lib/store/chatsSidebarOptimistic.js +92 -0
  586. package/lib/store/chatsStore.types.js +2 -0
  587. package/lib/store/chatsStoreLifecycle.js +8 -0
  588. package/lib/store/faqsStore.types.js +2 -0
  589. package/lib/store/index.js +4 -0
  590. package/lib/store/maiaLastChatPersistence.js +35 -0
  591. package/lib/store/sessions/activeView.js +22 -0
  592. package/lib/store/sessions/index.js +9 -0
  593. package/lib/store/sessions/sessionHitlContext.js +15 -0
  594. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  595. package/lib/store/sessions/sessionNotifications.js +110 -0
  596. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  597. package/lib/store/sessions/sessionStreamManager.js +715 -0
  598. package/lib/store/sessions/sessionStreamingText.js +80 -0
  599. package/lib/store/sessions/sessions.types.js +35 -0
  600. package/lib/store/sessions/useSessionMeta.js +39 -0
  601. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  602. package/lib/store/sessions/useSessionsStore.js +197 -0
  603. package/lib/store/useChatsStore.js +387 -0
  604. package/lib/store/useFaqsStore.js +27 -0
  605. package/lib/streamdownStyles.js +9 -0
  606. package/lib/styles/StyledCleanContainer.js +7 -0
  607. package/lib/styles/cascade.js +14 -0
  608. package/lib/styles/config.js +47 -0
  609. package/lib/styles/shared/scrollable.js +3 -0
  610. package/lib/styles/transitions.js +21 -0
  611. package/lib/types/Action.js +2 -0
  612. package/lib/types/AgentSuggestion.js +2 -0
  613. package/lib/types/Chat.js +10 -0
  614. package/lib/types/Client.js +2 -0
  615. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  616. package/lib/types/Project.js +2 -0
  617. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  618. package/lib/types/Task.js +2 -0
  619. package/lib/types/agent.js +2 -0
  620. package/lib/types/agentModal.js +2 -0
  621. package/lib/types/contextMention.js +37 -0
  622. package/lib/types/global.d.js +2 -0
  623. package/lib/types/skill.js +2 -0
  624. package/lib/types/streamActivity.js +2 -0
  625. package/lib/types/userType.d.js +2 -0
  626. package/lib/utils/actionCategoryMap.js +37 -0
  627. package/lib/utils/actionIconMap.js +61 -0
  628. package/lib/utils/agentDisplayName.js +42 -0
  629. package/lib/utils/chatInputFiles.js +52 -0
  630. package/lib/utils/contextMentionIcons.js +134 -0
  631. package/lib/utils/contextMentionLabel.js +4 -0
  632. package/lib/utils/contextMentionTriggers.js +54 -0
  633. package/lib/utils/contextMentionTypeLabel.js +17 -0
  634. package/lib/utils/corConnectorMentionTypes.js +41 -0
  635. package/lib/utils/ensureStreamdownStyles.js +21 -0
  636. package/lib/utils/entityLinkRender.js +135 -0
  637. package/lib/utils/fileDownloadHelper.js +40 -0
  638. package/lib/utils/formatQuickActionMessage.js +16 -0
  639. package/lib/utils/formatUnreadCount.js +6 -0
  640. package/lib/utils/getUnitFileSize.js +13 -0
  641. package/lib/utils/hitlAnalytics.js +65 -0
  642. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  643. package/lib/utils/imagePreprocessor.js +108 -0
  644. package/lib/utils/index.js +3 -0
  645. package/lib/utils/maiaHostOpen.js +19 -0
  646. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  647. package/lib/utils/mapBackendLang.js +8 -0
  648. package/lib/utils/normalizeAgentConnectors.js +70 -0
  649. package/lib/utils/openTaskInCorPanel.js +22 -0
  650. package/lib/utils/orchestratorSubagents.js +11 -0
  651. package/lib/utils/renderContextMentions.js +399 -0
  652. package/lib/utils/retryCompletion.js +85 -0
  653. package/lib/utils/slashCommandMarker.js +30 -0
  654. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  655. package/lib/utils/sseStreamContent.js +17 -0
  656. package/lib/utils/streamActivityMessages.js +359 -0
  657. package/lib/utils/validateTrimmedFields.js +8 -0
  658. package/package.json +1 -1
@@ -0,0 +1,762 @@
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: 'Cerrar',
8
+ minimize: 'Minimizar',
9
+ howWorks: 'Cómo funciona?',
10
+ brandName: 'MAIA',
11
+ expand: 'Expandir',
12
+ collapse: 'Colapsar',
13
+ goBack: 'Volver al inicio',
14
+ copy: 'Copiar',
15
+ copied: 'Copiado',
16
+ saved: 'Guardado',
17
+ selectProject: 'Seleccionar proyecto',
18
+ save: 'Guardar',
19
+ cancel: 'Cancelar'
20
+ };
21
+ var error = {
22
+ title: 'Ha ocurrido un problema',
23
+ description: 'En estos momentos estamos experimentando algunos inconvenientes, por favor, intente en unos minutos.',
24
+ tryAgain: 'Volver a intentar'
25
+ };
26
+ var genericSection = {
27
+ error: error,
28
+ globals: globals
29
+ };
30
+ var projectSummarySection = {
31
+ resume: 'Resumir',
32
+ hello: '¡Hola, {{name}}!',
33
+ welcome: 'Soy MAIA, tu asistente en COR',
34
+ feedback: {
35
+ thumbsUp: 'Me sirvió',
36
+ thumbsDown: 'No me sirvió',
37
+ sources: 'Fuentes'
38
+ },
39
+ config: {
40
+ projectSummary: 'Resumir proyecto',
41
+ projectSummaryTitle: 'Resumen de proyectos',
42
+ goBack: 'Volver atrás',
43
+ selectedProject: 'Proyecto seleccionado',
44
+ selectProject: 'Seleccionar proyecto',
45
+ configureResume: 'Configuración avanzada',
46
+ generatingResume: 'Generando resumen',
47
+ generateResume: 'Generar',
48
+ hideConfig: 'Ocultar configuración'
49
+ },
50
+ configureSettings: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProjectSummaryConfigKeys.GENERAL_STATUS, 'Fechas y deadlines'), ProjectSummaryConfigKeys.INCOME_COSTS, 'Rentabilidad'), ProjectSummaryConfigKeys.TIME_HOURS, 'Estimación de horas y consumo'), ProjectSummaryConfigKeys.TASKS_PROGRESS, 'Tareas y avances'), ProjectSummaryConfigKeys.REWORKS, 'Retrabajos')
51
+ };
52
+ var homeMenu = {
53
+ projectSummary: {
54
+ title: 'Resumen del proyecto',
55
+ description: 'Elabora informes con AI basado en tu proyecto'
56
+ },
57
+ faq: {
58
+ title: 'Preguntas frecuentes',
59
+ startTitle: 'Puedes comenzar por...',
60
+ empty: 'No hay preguntas frecuentes',
61
+ error: '¡Ups! Tuvimos un problema al cargar las preguntas frecuentes. Por favor, intenta de nuevo en unos minutos.',
62
+ categories: {
63
+ projects: 'Proyecto',
64
+ tasks: 'Tareas',
65
+ hours: 'Horas',
66
+ reworks: 'Retrabajos',
67
+ undefined: 'Sin categoría'
68
+ }
69
+ },
70
+ fua: {
71
+ title: 'Acciones frecuentes',
72
+ newBadge: 'Nuevo',
73
+ error: '¡Ups! Tuvimos un problema al cargar las acciones frecuentes. Por favor, intenta de nuevo en unos minutos.'
74
+ },
75
+ recentContexts: {
76
+ title: 'Elige un contexto reciente para mayor precisión en la respuesta:',
77
+ types: {
78
+ client: 'Cliente',
79
+ project: 'Proyecto',
80
+ task: 'Tarea'
81
+ }
82
+ },
83
+ contextHome: {
84
+ greeting: 'Hola, {{name}} 👋',
85
+ subtitle: 'Soy MAIA, tu asistente en tareas, proyectos y clientes.\n¿Seguimos con algo reciente?',
86
+ subtitleCollaborator: 'Soy MAIA, tu asistente en tareas. ¿Seguimos con algo reciente?',
87
+ subtitleCollaboratorWithHours: 'Completá tus horas o empezá un chat sobre una tarea.',
88
+ subtitleManagerWithHours: '¿Por dónde quieres empezar?',
89
+ hoursSection: {
90
+ title: 'Carga horas'
91
+ },
92
+ recentTasksSection: {
93
+ title: 'Consulta sobre una tarea',
94
+ subtitle: 'Elegí una tarea reciente para usarla como contexto.'
95
+ },
96
+ recentContextsSectionManager: {
97
+ title: 'O retoma algo reciente',
98
+ subtitle: 'Elegí una tarea, proyecto o cliente para usarlo como contexto'
99
+ },
100
+ contextGreeting: {
101
+ project: '¿Qué quieres que analicemos? ¿Horas, estimaciones, retrabajos?, ¡tu eliges!',
102
+ task: 'Estoy aquí para ayudarte con esta tarea. Usa una de las funciones para comenzar.',
103
+ client: '¿Qué quieres que analicemos? ¿Rentabilidad, avances, deadlines? ¡Tú eliges!'
104
+ }
105
+ },
106
+ plannerHome: {
107
+ title: 'Empecemos con tu carga de horas',
108
+ subtitle: '¿Por dónde comenzamos?'
109
+ },
110
+ action: {
111
+ categories: {
112
+ tasks: 'Acciones sobre tareas',
113
+ collaborators: 'Colaboradores y responsables',
114
+ labels: 'Etiquetas y tipos',
115
+ checklists: 'Checklists',
116
+ deliverables: 'Entregables',
117
+ reworks: 'Retrabajos',
118
+ hours: 'Carga de horas'
119
+ }
120
+ },
121
+ createdBy: 'por',
122
+ createdByTooltip: 'Usuario creador del agente',
123
+ createdByTooltipDeleted: 'Usuario eliminado. Su nombre se mantiene para referencia.',
124
+ taskGreeting: 'Estoy aquí para ayudarte con esta tarea. Usa una de las funciones para comenzar.',
125
+ hello: {
126
+ title: '¡Listo! Ya estoy usando el proyecto',
127
+ title_1: 'Anticipa desvíos. Analicemos este proyecto.',
128
+ title_2: '¿Qué quieres que analicemos? ¿Horas, estimaciones, retrabajos?, ¡tu eliges!',
129
+ title_3: 'Revisemos el avance de este proyecto.',
130
+ subtitle: 'Para empezar, te puedo ayudar con estas opciones. O si no, ¡escríbeme directamente tu consulta!',
131
+ titlePm: '¡Hola, {{name}}! Soy {{agent}}, tu asistente.',
132
+ subtitlePm: 'Para darte respuestas precisas, primero necesito saber sobre qué proyecto vamos a conversar. ¿Cuál eliges?'
133
+ },
134
+ maiaker: {
135
+ title: 'Convierte procesos repetitivos en agentes inteligentes',
136
+ description: 'Crea agentes que analicen, generen contenido según tus necesidades.',
137
+ createManualAgent: 'Crear agente manualmente',
138
+ badgeNew: 'Nuevo',
139
+ briefCard: {
140
+ title: 'Agente especialista en brief',
141
+ description: 'Crea y mejora briefs para que estén listos para usar en tareas.',
142
+ prompt: 'Quiero crear un agente especialista en brief.'
143
+ },
144
+ comingSoonCard: {
145
+ title: 'Más próximamente',
146
+ description: 'Estamos trabajando para brindarte más agentes'
147
+ }
148
+ }
149
+ };
150
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
151
+ homeMenu: homeMenu,
152
+ contextMention: {
153
+ keyboardHint: 'Navegación entre pestañas: @, @@… en orden. También Alt/Cmd + ←/→',
154
+ recentsTitle: 'Recientes',
155
+ userNoPosition: 'Sin posición',
156
+ me: 'Yo',
157
+ tabs: {
158
+ client: 'Cliente',
159
+ project: 'Proyecto',
160
+ task: 'Tarea',
161
+ user: 'Usuario',
162
+ mcp: 'Conectores',
163
+ skill: 'Habilidades'
164
+ },
165
+ loading: 'Buscando...',
166
+ error: 'Tuvimos un problema al buscar. Intentá de nuevo.',
167
+ skillQueryTooShort: 'Escribe al menos 3 caracteres para buscar',
168
+ empty: {
169
+ recents: 'Empezá a escribir para buscar',
170
+ withQuery: 'No hay resultados para "{{query}}"',
171
+ skillNoItems: 'No hay habilidades aún',
172
+ skillWithQuery: 'No hay habilidades que coincidan con "{{query}}"'
173
+ },
174
+ counters: {
175
+ projects: 'proyectos',
176
+ tasks: 'tareas'
177
+ }
178
+ },
179
+ contextPin: {
180
+ addContext: 'Contexto global',
181
+ searchPlaceholder: 'Buscar contexto…',
182
+ remove: 'Quitar contexto'
183
+ },
184
+ button: 'IA',
185
+ title: '¡Hola, {{name}}!',
186
+ description: 'Soy MAIA tu asistente y estoy aquí para ayudarte con tus consultas.',
187
+ newChat: 'Nuevo chat',
188
+ openAgentCreator: 'Crear agente',
189
+ openMarketplace: 'Marketplace de agentes',
190
+ history: {
191
+ tooltip: 'Historial',
192
+ title: 'Historial vacío',
193
+ description: 'No se han encontrado conversaciones',
194
+ item: {
195
+ date: 'Última actualización {{date}}'
196
+ },
197
+ menu: {
198
+ rename: 'Renombrar',
199
+ "delete": 'Eliminar'
200
+ },
201
+ loadingMore: 'Cargando más conversaciones'
202
+ },
203
+ onboarding: {
204
+ maia: 'MAIA',
205
+ agentCustom: 'Agentes custom',
206
+ howCreateAgent: '¿Cómo crear un agente?',
207
+ tooltip: '¿Cómo funciona?',
208
+ howItWorks: '¿Cómo funciona?'
209
+ },
210
+ qa: {
211
+ title: 'Preguntas frecuentes',
212
+ items: {
213
+ rentabilidad_proyecto: '¿Cuál es la rentabilidad de este proyecto?',
214
+ avance_proyecto: '¿Cuáles son los avances de este proyecto?',
215
+ tareas_proyecto: '¿Cuáles son las tareas próximas a vencer?'
216
+ }
217
+ },
218
+ chat: {
219
+ generating: 'Pensando',
220
+ generatingAttachment: 'Analizando adjunto',
221
+ generatingDeepSearch: 'Iniciando la investigación',
222
+ generatingWebSearch: 'Buscando en la web',
223
+ suggestionsTitle: 'Respuestas sugeridas',
224
+ createAgentActionsTitle: 'Siguiente paso',
225
+ createAgentActionStartChat: 'Iniciar conversación con el nuevo agente',
226
+ createAgentActionKnowledge: 'Subir archivos a la base de conocimiento',
227
+ createAgentActionLoadError: 'No se pudo cargar el agente. Intenta de nuevo.',
228
+ writing: 'Escribiendo la respuesta',
229
+ executingAction: 'Ejecutando acción',
230
+ processing: 'Procesando',
231
+ activity: {
232
+ generating: {
233
+ preparing: 'Preparando la respuesta',
234
+ considering: 'Revisando tu consulta',
235
+ almostReady: 'Definiendo el enfoque'
236
+ },
237
+ thinking: {
238
+ analyzing: 'Analizando tu consulta',
239
+ reviewing: 'Revisando el contexto',
240
+ planning: 'Armando la respuesta'
241
+ },
242
+ search: {
243
+ scanning: 'Buscando en la web',
244
+ summarizing: 'Revisando resultados'
245
+ },
246
+ deepSearch: {
247
+ exploring: 'Explorando fuentes',
248
+ crossChecking: 'Verificando la información'
249
+ },
250
+ attachment: {
251
+ reading: 'Leyendo el adjunto',
252
+ extracting: 'Extrayendo lo relevante',
253
+ readingPlural: 'Leyendo los adjuntos',
254
+ extractingPlural: 'Extrayendo lo relevante'
255
+ },
256
+ writing: {
257
+ composing: 'Escribiendo la respuesta'
258
+ },
259
+ dynamicContextTooltip: 'Este contexto fue generado dinámicamente y puede cambiar a lo largo de la conversación.',
260
+ creatingTask: 'Creando tarea',
261
+ creatingTasksBatch: 'Creando tareas',
262
+ creatingAgent: 'Creando agente',
263
+ editingAgent: 'Editando agente',
264
+ editingTask: 'Editando tarea',
265
+ editingTasksBatch: 'Editando tareas',
266
+ deletingTask: 'Eliminando tarea',
267
+ deletingTasksBatch: 'Eliminando tareas',
268
+ assigningUser: 'Asignando usuario',
269
+ unassigningUser: 'Desasignando usuario',
270
+ assigningLabel: 'Asignando etiqueta',
271
+ updatingTaskType: 'Actualizando tipo de tarea',
272
+ updatingEstimatedHours: 'Actualizando horas estimadas',
273
+ updatingDeliverable: 'Actualizando entregable',
274
+ loggingHours: 'Cargando horas',
275
+ creatingChecklist: 'Creando checklist',
276
+ creatingLabel: 'Creando etiqueta',
277
+ editingProject: 'Editando proyecto',
278
+ creatingChecklistItem: 'Agregando ítem al checklist',
279
+ queryingHours: 'Consultando horas',
280
+ configuringAgentAccess: 'Cambiando visibilidad del agente',
281
+ sendingTaskMessage: 'Enviando mensaje en la tarea',
282
+ deletingChecklistItem: 'Eliminando ítem del checklist',
283
+ removingTaskType: 'Eliminando tipo de tarea',
284
+ removingLabel: 'Quitando etiqueta',
285
+ updatingDeliverableCount: 'Actualizando contador de entregables',
286
+ creatingRework: 'Creando retrabajo',
287
+ updatingRework: 'Actualizando retrabajo',
288
+ generatingFile: 'Generando archivo',
289
+ resumingAction: 'Ejecutando acción aprobada'
290
+ },
291
+ loadingMore: 'Cargando más mensajes',
292
+ footer: {
293
+ placeholder: 'Escribe tu consulta acá…',
294
+ orchestratorPlaceholder: 'Pregúntale a Maia, @ mencionar o / acciones rápidas',
295
+ agentLabel: 'El Agente',
296
+ disclaimer: '{{agentName}} puede cometer errores. Comprueba la información importante.',
297
+ disclaimerAgent: 'Los modelos de IA pueden cometer errores. Verifica la información importante.',
298
+ corAccessLabel: 'Acceso a COR',
299
+ corAccessTooltip: 'Acceso a datos de COR'
300
+ },
301
+ error: 'Ha ocurrido un error al generar tu respuesta, por favor, intenta nuevamente.',
302
+ retry: 'Reintentar',
303
+ errorAccessDenied: 'No tienes acceso para interactuar con este agente. Es posible que su configuración de accesibilidad haya cambiado. Por favor, contacta a la persona de tu organización que administra los agentes para obtener más información.',
304
+ errorPromptTooLong: 'Te has excedido del limite de contexto {{used}} tokens. Por favor reintenta nuevamente o continúa en otro chat',
305
+ changeProject: 'Detecto que quieres cambiar de Proyecto.\n\n**Selecciona el proyecto para continuar:**',
306
+ searchWeb: 'Buscar en la web',
307
+ deepSearch: 'Búsqueda avanzada en internet (acceso a más fuentes)',
308
+ attachFile: 'Adjuntar archivo',
309
+ plusMenuAttach: 'Adjuntar archivos',
310
+ dropFilesHere: 'Soltá los archivos aquí',
311
+ plusMenuDeepInvestigation: 'Investigar a fondo',
312
+ plusMenuQuickActions: 'Acciones rápidas',
313
+ openPlusMenuAria: 'Adjuntos y opciones de búsqueda',
314
+ openMentionAria: 'Mencionar',
315
+ removeAttachmentAria: 'Quitar archivo',
316
+ removeActiveToolAria: 'Quitar modo de búsqueda',
317
+ send: 'Enviar',
318
+ limitFiles: 'Solo puedes adjuntar hasta 5 archivos por mensaje.',
319
+ stop: 'Detener respuesta',
320
+ cancelled: 'Se ha cancelado la búsqueda.',
321
+ tooManyActiveSessions: 'Hay demasiadas conversaciones generando a la vez. Esperá a que termine una antes de iniciar otra.',
322
+ attachmentPreviewModal: {
323
+ loading: 'Cargando...',
324
+ unsupportedFileMessage: 'Este tipo de archivo no puede ser previsualizado. Por favor, intenta de nuevo en unos minutos.',
325
+ typeLabel: 'Tipo:',
326
+ unknown: 'Desconocido',
327
+ sizeLabel: 'Tamaño:',
328
+ excel: {
329
+ sheetSelectorLabel: 'Hoja:',
330
+ loadError: 'No se pudo cargar el contenido del archivo Excel.',
331
+ fileReadError: 'Error al leer el archivo.',
332
+ sheetLoadError: 'Error al cargar la hoja seleccionada.'
333
+ },
334
+ word: {
335
+ loadError: 'No se pudo cargar el contenido del documento Word.',
336
+ legacyDocUnsupported: 'La previsualización de archivos .doc no está disponible. Usa formato .docx.'
337
+ },
338
+ ppt: {
339
+ loadError: 'No se pudo cargar el contenido de la presentación.',
340
+ legacyPptUnsupported: 'La previsualización de archivos .ppt no está disponible. Usa formato .pptx.',
341
+ slideLabel: 'Diapositiva {{number}}',
342
+ emptySlide: 'Esta diapositiva no tiene texto ni imágenes para previsualizar.'
343
+ }
344
+ }
345
+ },
346
+ deleteQuestionModal: {
347
+ title: '¿Deseas eliminar esta conversación?',
348
+ firstPart: 'Estás por eliminar',
349
+ secondPart: 'Esta acción es irreversible.',
350
+ cancel: 'Cancelar',
351
+ "delete": 'Eliminar'
352
+ },
353
+ deleteSkillModal: {
354
+ title: '¿Deseas eliminar esta skill?',
355
+ firstPart: 'Estás por eliminar',
356
+ secondPart: 'Esta acción es irreversible.',
357
+ cancel: 'Cancelar',
358
+ "delete": 'Eliminar'
359
+ },
360
+ editQuestionModal: {
361
+ newName: 'Nuevo nombre',
362
+ title: 'Renombrar conversación',
363
+ rename: 'Renombrar',
364
+ cancel: 'Cancelar',
365
+ maxLength: 'Completaste los 140 caracteres del límite.'
366
+ },
367
+ modalFileExceeds: {
368
+ limitFilesTitle: 'Has superado el límite de adjuntos.',
369
+ limitSizeTitle: 'Has superado el límite de peso permitido.',
370
+ limitFilesDescription: 'Solo puedes adjuntar hasta 5 archivos por mensaje. Los siguientes archivos no se pudieron adjuntar:',
371
+ limitSizeDescription: 'Uno o más superan el tamaño máximo permitido por tipo. Los siguientes archivos no se pudieron adjuntar:',
372
+ accept: 'Aceptar',
373
+ limit: 'límite'
374
+ },
375
+ sourcesInformationModal: {
376
+ title: 'Fuentes:'
377
+ },
378
+ agents: {
379
+ title: 'Agentes',
380
+ newAgent: 'Nuevo agente',
381
+ createAgent: 'Crear Agente',
382
+ edit: 'Editar',
383
+ maia: '(Especialista de proyecto)',
384
+ addFavorite: 'Agregar a favoritos',
385
+ removeFavorite: 'Quitar de favoritos',
386
+ favoriteToggledAddedSuccess: 'Agente agregado a favoritos',
387
+ favoriteToggledRemovedSuccess: 'Agente removido de favoritos',
388
+ favoriteToggledError: 'No se pudo guardar tu favorito. Intenta nuevamente.',
389
+ favoriteToggledRemovedError: 'No se pudo quitar el favorito. Intenta nuevamente.',
390
+ maiaIntroduction: 'Bienvenido a MAIA tu asistente, para mejorar tu día a día.'
391
+ },
392
+ conversations: {
393
+ title: 'Mis conversaciones',
394
+ agentsSectionTitle: 'Agentes',
395
+ maiakerNav: 'Creador de agentes',
396
+ myAgentsNav: 'Mis agentes',
397
+ mySkillsNav: 'Mis skills',
398
+ error: 'Ocurrió un error al cargar el historial de conversaciones',
399
+ empty: 'Aquí se mostrarán todas tus conversaciones con los agentes',
400
+ emptyLabel: 'Mensaje con archivos',
401
+ unreadLabel: 'Sin leer',
402
+ minimizedOpen: 'Abrir MAIA',
403
+ minimizedSeeAnswer: 'Ver respuesta',
404
+ collapse: 'Colapsar',
405
+ expand: 'Expandir',
406
+ newChat: 'Nuevo chat',
407
+ generating: 'Generando respuesta',
408
+ sessionFinished: '{{title}} terminó de responder',
409
+ sessionFinishedApproval: '{{title}} requiere tu aprobación',
410
+ sessionFinishedError: '{{title}} tuvo un error al responder',
411
+ openAgentCreator: 'Crear agente',
412
+ openMarketplace: 'Marketplace de agentes'
413
+ },
414
+ marketplace: {
415
+ back: 'Volver',
416
+ title: 'Ideas para crear agentes',
417
+ description: 'Elegí una sugerencia bien armada y abrí el editor con el agente ya precargado para adaptarlo a tu caso.',
418
+ myAgentsTitle: 'Mis agentes',
419
+ myAgentsReadyTitle: 'Tus agentes estan listos para ayudarte en tareas',
420
+ myAgentsDescription: 'Estos son tus agentes custom. Selecciona uno para empezar a conversar con ese perfil.',
421
+ myAgentsEmptyStateTitle: 'Aún no tienes agentes creados',
422
+ myAgentsEmptyStateDescription: 'Haz clic en el botón de abajo para empezar a crear agentes a tu medida.',
423
+ myAgentsEmptyStateDescriptionNoPerm: 'Cuando la persona con permisos para crearlos los configure, vas a poder acceder desde acá.',
424
+ myAgentsEmptyStateButton: 'Crear agente',
425
+ myAgentsFallbackIntro: 'Agente personalizado listo para ayudarte en tu flujo de trabajo.',
426
+ myAgentsFallbackDescription: 'Haz click en usar agente para iniciar una conversación con este agente.',
427
+ myAgentsFallbackDate: 'Hace pocos dias',
428
+ myAgentsToday: 'Hoy',
429
+ myAgentsOneDayAgo: 'Hace 1 dia',
430
+ myAgentsDaysAgo: 'Hace {{days}} dias',
431
+ cardMenuAriaLabel: 'Menu de acciones del agente',
432
+ use: 'Usar',
433
+ createAgent: 'Crear agente manualmente',
434
+ searchAgentPlaceholder: 'Buscar agente...',
435
+ searchMinLength: 'mín. 3 caracteres',
436
+ searchNoResults: 'No se encontraron resultados.',
437
+ searchNoResultsSubtitle: 'Crea un agente de IA que pueda pensar, actuar y automatizar el trabajo para ti',
438
+ useTemplate: 'Crear desde esta idea',
439
+ useMyAgent: 'Usar agente',
440
+ badges: {
441
+ branding: 'Branding',
442
+ linkedin: 'LinkedIn',
443
+ marketing: 'Marketing'
444
+ }
445
+ },
446
+ mySkills: {
447
+ title: 'Tus skills listas para potenciar a tus agentes',
448
+ subtitle: 'Las skills son globales: están disponibles para todos tus agentes.',
449
+ createSkill: 'Crear skill',
450
+ preview: 'Vista previa',
451
+ previewEmpty: 'Nada para previsualizar todavía.',
452
+ uploadMd: 'Subir .md',
453
+ uploadError: 'Solo se permiten archivos .md',
454
+ createWithMaia: 'Crear con Maia',
455
+ writeInstructions: 'Escribir instrucciones',
456
+ uploadSkill: 'Subir una skill',
457
+ generatePlaceholder: 'Quiero una Skill para crear mis proyectos',
458
+ generateWithMaia: 'Crear la Skill con Maia',
459
+ generateNeedsName: 'Escribí un nombre primero para describir la skill',
460
+ generateSuccess: 'Skill generada con Maia',
461
+ generateError: 'No se pudo generar la skill. Intenta nuevamente.',
462
+ cardMenuAriaLabel: 'Menú de acciones de la skill',
463
+ edit: 'Editar',
464
+ "delete": 'Eliminar',
465
+ cancel: 'Cancelar',
466
+ save: 'Guardar',
467
+ close: 'Cerrar',
468
+ createTitle: 'Nueva skill',
469
+ editTitle: 'Editar skill',
470
+ nameLabel: 'Nombre',
471
+ namePlaceholder: 'Nombre de la skill',
472
+ contentLabel: 'Skill',
473
+ contentPlaceholder: 'Escribe la skill...',
474
+ emptyStateTitle: 'Aún no tienes skills creadas',
475
+ emptyStateDescription: 'Haz clic en el botón de abajo para empezar a crear tus skills.',
476
+ emptyStateDescriptionNoPerm: 'Cuando la persona con permisos para crearlas las configure, vas a poder acceder desde acá.',
477
+ emptyStateButton: 'Crear skill',
478
+ createSuccess: 'Skill creada con éxito',
479
+ createError: 'No se pudo crear la skill. Intenta nuevamente.',
480
+ updateSuccess: 'Skill actualizada con éxito',
481
+ updateError: 'No se pudo actualizar la skill. Intenta nuevamente.',
482
+ deleteSuccess: 'Skill eliminada con éxito',
483
+ deleteError: 'No se pudo eliminar la skill. Intenta nuevamente.'
484
+ },
485
+ snackbar: {
486
+ deleteChat: {
487
+ success: 'Tu conversación fue eliminada con éxito.',
488
+ error: 'Ocurrió un error inesperado. Por favor vuelve a intentarlo.'
489
+ },
490
+ renamedChat: {
491
+ success: 'Conversación renombrada con éxito',
492
+ error: 'Ocurrió un error inesperado. Por favor vuelve a intentarlo.'
493
+ },
494
+ loadMoreAgents: {
495
+ error: 'Ocurrió un error inesperado. Por favor vuelve a intentarlo.'
496
+ }
497
+ },
498
+ approvalBox: {
499
+ untitledAgent: 'Agente sin nombre',
500
+ actions: {
501
+ create_task: 'Creación de tarea',
502
+ create_tasks_batch: 'Creación de tareas',
503
+ create_agent: 'Creación de agente',
504
+ edit_agent: 'Edición de agente',
505
+ edit_project: 'Edición de proyecto',
506
+ edit_task: 'Edición de tarea',
507
+ edit_tasks_batch: 'Edición de tareas',
508
+ delete_task: 'Eliminación de tarea',
509
+ delete_tasks_batch: 'Eliminación de tareas',
510
+ task_assign: 'Asignación de usuario',
511
+ task_unassign: 'Desasignación de usuario',
512
+ assign_task_label: 'Asignación de etiqueta',
513
+ create_labels: 'Creación de etiqueta',
514
+ update_task_type: 'Actualización de tipo de tarea',
515
+ update_estimated_hours: 'Actualización de horas estimadas',
516
+ update_deliverable: 'Actualización de entregable',
517
+ create_hour: 'Carga de horas',
518
+ create_checklist: 'Creación de checklist',
519
+ create_checklist_item: 'Creación de ítem del checklist',
520
+ clone_task: 'Clonar tarea',
521
+ get_task_date_hours: 'Consulta de horas por fecha',
522
+ configure_agent_access: 'Cambiar visibilidad del agente',
523
+ send_task_message: 'Envío de mensaje en la tarea',
524
+ delete_checklist_item: 'Eliminación de ítem del checklist',
525
+ remove_task_type: 'Eliminación de tipo de tarea',
526
+ remove_task_label: 'Eliminación de etiqueta',
527
+ count_deliverable: 'Actualización del contador de entregables',
528
+ create_rework: 'Creación de retrabajo',
529
+ update_rework: 'Actualización de retrabajo',
530
+ delete_agent: 'Eliminación de agente',
531
+ unknown: 'Acción desconocida'
532
+ },
533
+ special: {
534
+ createRework: {
535
+ title: 'Crear retrabajo',
536
+ description: 'Se creará un retrabajo en la tarea con la información indicada.'
537
+ },
538
+ updateDeliverableChildren: {
539
+ title: 'Actualizar avance de entregables',
540
+ description: 'Se actualizará el avance de los subentregables vinculados a esta tarea.'
541
+ }
542
+ },
543
+ fields: {
544
+ name: 'Nombre',
545
+ emoji: 'Emoji',
546
+ introduction: 'Introducción',
547
+ input_placeholder: 'Placeholder',
548
+ user_prompt: 'Prompt principal',
549
+ language: 'Idioma',
550
+ provider: 'Provider',
551
+ model_name: 'Modelo',
552
+ api_key: 'API key'
553
+ },
554
+ title: 'Confirmación requerida',
555
+ description: 'Se requiere tu aprobación para ejecutar la siguiente acción:',
556
+ approve: 'Aprobar',
557
+ deny: 'Denegar',
558
+ manualApprovalWarning: 'Maia ha detectado que la solicitud ha sido aprobada manualmente',
559
+ status: {
560
+ approved: 'Solicitud Aprobada',
561
+ denied: 'Solicitud Denegada'
562
+ }
563
+ },
564
+ chipLlm: {
565
+ tooltip: 'Modelo: {{model}}'
566
+ },
567
+ clientSelector: {
568
+ project: 'proyecto',
569
+ projects: 'proyectos'
570
+ }
571
+ })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
572
+ legendDeletedAgent: 'Este agente ha sido eliminado el día',
573
+ legendProjectDeleted: 'El proyecto {{name}} ha sido eliminado. No es posible continuar con la conversación',
574
+ legendNoAccess: 'Ya no tienes acceso para interactuar con el agente {{name}}',
575
+ legendNoPermissions: 'Ya no tienes permisos para visualizar ni interactuar con el agente {{name}}',
576
+ legendLegacyContextSession: 'Esta conversación pertenece a un contexto anterior. Podés continuar con {{name}} en un chat nuevo.',
577
+ continueInNewChat: 'Continuar en un chat nuevo',
578
+ legendModelDeprecated: 'El modelo seleccionado para este agente ya no está disponible. Cambia a otro modelo para seguir utilizándolo.',
579
+ legendProviderStatus: 'El modelo que usa este agente está teniendo problemas temporales. Puedes esperar a que se restablezca o cambiar a otro modelo.',
580
+ changeModel: 'Cambiar modelo',
581
+ agents: 'Agentes',
582
+ layoutMenuTooltip: 'Disposición del chat',
583
+ layoutSidebar: 'Chat lateral',
584
+ layoutFullscreen: 'Chat completo',
585
+ layoutFloating: 'Chat flotante',
586
+ back: 'Volver',
587
+ addAgent: 'Agregar nuevo agente',
588
+ newAgent: 'Nuevo agente',
589
+ editAgent: 'Editar agente',
590
+ createAgent: 'Crear Agente',
591
+ cancel: 'Cancelar',
592
+ accept: 'Aceptar',
593
+ deleteAgent: 'Eliminar agente',
594
+ "continue": 'Continuar',
595
+ edit: 'Editar',
596
+ "delete": 'Eliminar',
597
+ feedback: 'Enviar Feedback',
598
+ sendFeedback: 'Enviar feedback',
599
+ saveChanges: 'Guardar cambios',
600
+ createAgentLabelButton: 'Crear agente',
601
+ openAgentCreator: 'Crear agente',
602
+ openMarketplace: 'Marketplace de agentes',
603
+ confirmAgentUpdatedWithFilesError: 'El agente se editó exitosamente, pero hay archivos que no pudieron procesarse.',
604
+ confirmAgentCreated: 'El agente se ha creado con éxito',
605
+ confirmAgentDeleted: 'El agente se ha eliminado con éxito',
606
+ confirmAgentWithFilesError: 'El agente se creó exitosamente, pero hay archivos que no pudieron procesarse.',
607
+ confirmAgentUpdated: 'El agente se ha actualizado con éxito',
608
+ confirmCloseCreateAgent: '¿Estás seguro de que quieres cerrar? Se perderán los cambios realizados.',
609
+ confirmCloseEditAgent: '¿Estás seguro de que quieres cerrar? Se perderán los cambios realizados.',
610
+ confirmReloadBrowser: '¿Estás seguro de que quieres recargar la página? Se perderán los cambios realizados.',
611
+ errorAccessDenied: 'No tienes permisos para acceder a este agente. Contacta con soporte.',
612
+ errorAgentCreated: 'Ocurrió un error inesperado. Por favor vuelve a intentarlo.',
613
+ attachmentCard: {
614
+ download: 'Descargar',
615
+ "delete": 'Eliminar'
616
+ },
617
+ generalSection: {
618
+ title: 'General',
619
+ generalSettings: 'Configuración general',
620
+ requiredFieldsLabel: '*obligatorios',
621
+ infoLabel: 'Agrega toda la información para personalizar el comportamiento de tu agente',
622
+ optionalLabel: 'Opcional',
623
+ basicSettings: 'Configuración básica',
624
+ selectEmoji: 'Seleccionar emoji',
625
+ name: '¿Cuál es el nombre de tu agente?',
626
+ namePlaceholder: 'Asígnale un nombre a tu agente',
627
+ behaviorSettings: 'Configuración de comportamiento',
628
+ initialPrompt: '¿Cuáles son las instrucciones?',
629
+ initialPromptPlaceholder: 'Ejemplo: Eres un social media copywriter que redacta y adapta mensajes para diferentes redes, asegurando consistencia en el tono, la personalidad y los valores de la marca."',
630
+ modelAiLabel: 'Modelo de AI',
631
+ noModelsAvailable: 'No hay modelos disponibles',
632
+ inputPlaceholderTitle: '¿Qué verá el usuario en el campo de chat antes de escribir?',
633
+ inputPlaceholder: 'Pregúntame lo que necesites…',
634
+ introduction: '¿Cómo se va a presentar tu agente?',
635
+ introductionPlaceholder: 'Ejemplo: ¡Hola! 👋. Te voy a ayudar a crear, adaptar y revisar copys para distintas plataformas asegurando que mantengan la voz, el tono y la personalidad de tu marca. Puedes pedirme que te proponga ideas para una campaña, adapte un texto para otro canal o revise la coherencia del mensaje',
636
+ error: {
637
+ maxCaracterName: 'Completaste los 150 caracteres del límite.',
638
+ maxCaracterInitialPrompt: 'Completaste los 5000 caracteres del límite.',
639
+ maxInputPlaceholder: 'Completaste los 100 caracteres del límite.',
640
+ maxCaracterIntroduction: 'Completaste los 400 caracteres del límite.'
641
+ },
642
+ howToWritePrompt: 'Cómo redactar un prompt',
643
+ whatIsModelAiTitle: '¿Qué modelo de IA vas a usar?',
644
+ whatIsModelAi: '¿Qué es un modelo de AI?',
645
+ addFavorite: 'Agregar a favoritos',
646
+ removeFavorite: 'Quitar de favoritos',
647
+ createdBy: 'Por',
648
+ createdByTooltip: 'Usuario creador del agente',
649
+ createdByTooltipDeleted: 'Usuario eliminado. Su nombre se mantiene para referencia.'
650
+ },
651
+ knowledgeSection: {
652
+ title: 'Conocimiento',
653
+ knowledgeTab: 'Base de conocimientos',
654
+ infoLabel: 'Carga los archivos que tu agente usará como fuente para sus respuestas.',
655
+ selectFileTitle: 'SELECCIONAR ARCHIVOS',
656
+ attachFiles: 'Adjuntar archivos',
657
+ dropZoneText: {
658
+ 1: 'Clic aquí para cargar',
659
+ 2: 'o arrastra los archivos'
660
+ },
661
+ infoFileTypes: '.md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx (máx. total de 5MB)',
662
+ error: {
663
+ title: 'Algunos archivos no se pudieron cargar',
664
+ maxFilesTitle: 'Has superado el límite de tamaño total',
665
+ maxFilesDescription: 'Solo puedes adjuntar archivos hasta un total de 5 MB. Los siguientes archivos no se pudieron adjuntar:',
666
+ maxSizeTitle: 'Superaste el límite de peso permitido',
667
+ maxSizeDescription: {
668
+ 1: 'Se alcanzó el límite máximo de 5 MB.',
669
+ 2: 'Estos archivos no se cargaron porque supera el espacio disponible:'
670
+ },
671
+ invalidExtensionDescription: {
672
+ 1: 'Solo se aceptan archivos con las siguientes extensiones: .md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx',
673
+ 2: 'Estos archivos no se cargaron porque su extensión no está permitida:'
674
+ }
675
+ },
676
+ moreInfo: 'Mira cómo funciona acá'
677
+ },
678
+ accessibilitySection: {
679
+ titleTab: 'Permisos',
680
+ titleSection: 'Visibilidad y permisos del agente',
681
+ subtitleSection: 'Definí quién puede usar este agente y si puede acceder a datos de COR.',
682
+ corPermissionsTitle: 'Permisos de acceso a datos de COR',
683
+ corPermissionsSubtitle: '¿A qué tiene acceso este agente?',
684
+ taskAccessTitle: 'Acceso a tareas',
685
+ taskAccessDescription: 'El agente podrá leer, crear, modificar y eliminar tareas según los permisos del usuario.',
686
+ visibilityTitle: 'Visibilidad del agente',
687
+ whoCanAccess: '¿Quién puede usar este agente?',
688
+ allCompanyTitle: 'Toda la compañía',
689
+ allCompanyDescription: 'Todos los usuarios de tu organización podrán ver y usar este agente.',
690
+ clientTitle: 'Para clientes específicos',
691
+ clientDescription: 'Asocia este agente a uno o más clientes. Todos los usuarios podrán ver con qué clientes está vinculado.',
692
+ ownTitle: 'Solo yo',
693
+ ownDescription: 'Este agente será privado y no estará disponible para otros usuarios.',
694
+ clientsSelected: 'Clientes seleccionados:',
695
+ searchError: '¡Ups! Tuvimos un problema al cargar los clientes. ¿Puedes intentarlo de nuevo en un momento?',
696
+ searchEmpty: '¡Ups! No encontramos clientes con ese nombre. Prueba realizando otra búsqueda',
697
+ searchInitial: 'Comienza a escribir el nombre de un cliente para asociarlo',
698
+ searchPlaceholder: 'Buscar cliente',
699
+ clientInactive: 'Este cliente está inactivo. Te recomendamos quitarlo de la lista.',
700
+ clientDeletedTooltip: 'Este cliente fue eliminado. Te recomendamos quitarlo de la lista.',
701
+ clientDeleted: 'Cliente eliminado',
702
+ clientsError: 'Revisa los clientes asociados'
703
+ },
704
+ processingKnowledge: {
705
+ descriptionCreate: 'Estamos creando el Agente y su base de conocimiento. Esto puede llevar unos momentos. Por favor no cierre esta ventana hasta que el proceso se haya finalizado.',
706
+ descriptionUpdate: 'Estamos actualizando el Agente y su base de conocimiento. Esto puede llevar unos momentos. Por favor no cierre esta ventana hasta que el proceso se haya finalizado.',
707
+ fileRow: 'Archivo',
708
+ statusRow: 'Estado',
709
+ pending: 'Pendiente',
710
+ processing: 'Procesando',
711
+ failed: 'Fallo',
712
+ done: 'Completado',
713
+ loadingFiles: 'Cargando archivos...',
714
+ error: {}
715
+ },
716
+ deleteAgentModal: {
717
+ title: '¿Deseas eliminar este agente?',
718
+ firstPart: 'Estás por eliminar ',
719
+ secondPart: 'Esta acción no se puede deshacer.',
720
+ cancel: 'Cancelar',
721
+ "delete": 'Eliminar'
722
+ }
723
+ })), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
724
+ projectSelector: {
725
+ title: '¿En qué proyecto te puedo asistir?',
726
+ hello: {
727
+ title: 'Hola {{name}} 👋',
728
+ subtitle: '¿Con qué proyecto puedo ayudarte?'
729
+ },
730
+ subtitle: 'Selecciona el proyecto para que MAIA te responda en base a un contexto.',
731
+ labelProject: 'Selecciona un proyecto',
732
+ placeholder: 'Buscar un proyecto por nombre',
733
+ changeProject: 'Cambiar de proyecto',
734
+ recentProjects: 'Recientes',
735
+ searchingProjects: 'Buscando tus proyectos...',
736
+ errorMessage: '¡Ups! Tuvimos un problema al cargar los proyectos. Por favor, intenta de nuevo en unos minutos.',
737
+ emptyRecentProjects: 'No tienes proyectos recientes. Escribe el nombre de un proyecto en el buscador para encontrarlo.',
738
+ emptyState: '¡Ups! No encontramos proyectos con ese nombre. Probá realizando otra búsqueda.',
739
+ withoutClient: 'Sin cliente',
740
+ withoutTitle: 'Sin título'
741
+ }
742
+ })), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
743
+ clientSelector: {
744
+ title: '¿En qué cliente te puedo asistir?',
745
+ hello: {
746
+ title: 'Hola {{name}} 👋',
747
+ subtitle: '¿Con qué cliente puedo ayudarte?'
748
+ },
749
+ subtitle: 'Selecciona el cliente para que MAIA te responda en base a un contexto.',
750
+ labelClient: 'Selecciona un cliente',
751
+ placeholder: 'Buscar cliente por su nombre',
752
+ changeClient: 'Cambiar de cliente',
753
+ recentClients: 'Recientes',
754
+ searchingClients: 'Buscando tus clientes...',
755
+ errorMessage: 'Tuvimos un problema al cargar los clientes. Por favor, intenta de nuevo en unos minutos.',
756
+ emptyRecentClients: 'No tienes clientes recientes. Escribe el nombre de un cliente en el buscador para encontrarlo.',
757
+ emptyState: 'Ups! No encontramos clientes con ese nombre. Probá realizando otra búsqueda.',
758
+ project: 'proyecto',
759
+ projects: 'proyectos'
760
+ }
761
+ }));
762
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwicHJvamVjdFN1bW1hcnlUaXRsZSIsInNlbGVjdGVkUHJvamVjdCIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiZmFxIiwic3RhcnRUaXRsZSIsImVtcHR5IiwiY2F0ZWdvcmllcyIsInByb2plY3RzIiwidGFza3MiLCJob3VycyIsInJld29ya3MiLCJ1bmRlZmluZWQiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJjb2xsYWJvcmF0b3JzIiwibGFiZWxzIiwiY2hlY2tsaXN0cyIsImRlbGl2ZXJhYmxlcyIsImNyZWF0ZWRCeSIsImNyZWF0ZWRCeVRvb2x0aXAiLCJjcmVhdGVkQnlUb29sdGlwRGVsZXRlZCIsInRhc2tHcmVldGluZyIsInRpdGxlXzEiLCJ0aXRsZV8yIiwidGl0bGVfMyIsInRpdGxlUG0iLCJzdWJ0aXRsZVBtIiwibWFpYWtlciIsImNyZWF0ZU1hbnVhbEFnZW50IiwiYmFkZ2VOZXciLCJicmllZkNhcmQiLCJwcm9tcHQiLCJjb21pbmdTb29uQ2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QUkiLCJjb250ZXh0TWVudGlvbiIsImtleWJvYXJkSGludCIsInJlY2VudHNUaXRsZSIsInVzZXJOb1Bvc2l0aW9uIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsInNraWxsUXVlcnlUb29TaG9ydCIsInJlY2VudHMiLCJ3aXRoUXVlcnkiLCJza2lsbE5vSXRlbXMiLCJza2lsbFdpdGhRdWVyeSIsImNvdW50ZXJzIiwiY29udGV4dFBpbiIsImFkZENvbnRleHQiLCJzZWFyY2hQbGFjZWhvbGRlciIsInJlbW92ZSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJvcGVuQWdlbnRDcmVhdG9yIiwib3Blbk1hcmtldHBsYWNlIiwiaGlzdG9yeSIsInRvb2x0aXAiLCJpdGVtIiwiZGF0ZSIsIm1lbnUiLCJyZW5hbWUiLCJsb2FkaW5nTW9yZSIsIm9uYm9hcmRpbmciLCJtYWlhIiwiYWdlbnRDdXN0b20iLCJob3dDcmVhdGVBZ2VudCIsImhvd0l0V29ya3MiLCJxYSIsIml0ZW1zIiwicmVudGFiaWxpZGFkX3Byb3llY3RvIiwiYXZhbmNlX3Byb3llY3RvIiwidGFyZWFzX3Byb3llY3RvIiwiY2hhdCIsImdlbmVyYXRpbmciLCJnZW5lcmF0aW5nQXR0YWNobWVudCIsImdlbmVyYXRpbmdEZWVwU2VhcmNoIiwiZ2VuZXJhdGluZ1dlYlNlYXJjaCIsInN1Z2dlc3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZSIsImNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0IiwiY3JlYXRlQWdlbnRBY3Rpb25Lbm93bGVkZ2UiLCJjcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvciIsIndyaXRpbmciLCJleGVjdXRpbmdBY3Rpb24iLCJwcm9jZXNzaW5nIiwiYWN0aXZpdHkiLCJwcmVwYXJpbmciLCJjb25zaWRlcmluZyIsImFsbW9zdFJlYWR5IiwidGhpbmtpbmciLCJhbmFseXppbmciLCJyZXZpZXdpbmciLCJwbGFubmluZyIsInNlYXJjaCIsInNjYW5uaW5nIiwic3VtbWFyaXppbmciLCJkZWVwU2VhcmNoIiwiZXhwbG9yaW5nIiwiY3Jvc3NDaGVja2luZyIsImF0dGFjaG1lbnQiLCJyZWFkaW5nIiwiZXh0cmFjdGluZyIsInJlYWRpbmdQbHVyYWwiLCJleHRyYWN0aW5nUGx1cmFsIiwiY29tcG9zaW5nIiwiZHluYW1pY0NvbnRleHRUb29sdGlwIiwiY3JlYXRpbmdUYXNrIiwiY3JlYXRpbmdUYXNrc0JhdGNoIiwiY3JlYXRpbmdBZ2VudCIsImVkaXRpbmdBZ2VudCIsImVkaXRpbmdUYXNrIiwiZWRpdGluZ1Rhc2tzQmF0Y2giLCJkZWxldGluZ1Rhc2siLCJkZWxldGluZ1Rhc2tzQmF0Y2giLCJhc3NpZ25pbmdVc2VyIiwidW5hc3NpZ25pbmdVc2VyIiwiYXNzaWduaW5nTGFiZWwiLCJ1cGRhdGluZ1Rhc2tUeXBlIiwidXBkYXRpbmdFc3RpbWF0ZWRIb3VycyIsInVwZGF0aW5nRGVsaXZlcmFibGUiLCJsb2dnaW5nSG91cnMiLCJjcmVhdGluZ0NoZWNrbGlzdCIsImNyZWF0aW5nTGFiZWwiLCJlZGl0aW5nUHJvamVjdCIsImNyZWF0aW5nQ2hlY2tsaXN0SXRlbSIsInF1ZXJ5aW5nSG91cnMiLCJjb25maWd1cmluZ0FnZW50QWNjZXNzIiwic2VuZGluZ1Rhc2tNZXNzYWdlIiwiZGVsZXRpbmdDaGVja2xpc3RJdGVtIiwicmVtb3ZpbmdUYXNrVHlwZSIsInJlbW92aW5nTGFiZWwiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlQ291bnQiLCJjcmVhdGluZ1Jld29yayIsInVwZGF0aW5nUmV3b3JrIiwiZ2VuZXJhdGluZ0ZpbGUiLCJyZXN1bWluZ0FjdGlvbiIsImZvb3RlciIsInBsYWNlaG9sZGVyIiwib3JjaGVzdHJhdG9yUGxhY2Vob2xkZXIiLCJhZ2VudExhYmVsIiwiZGlzY2xhaW1lciIsImRpc2NsYWltZXJBZ2VudCIsImNvckFjY2Vzc0xhYmVsIiwiY29yQWNjZXNzVG9vbHRpcCIsInJldHJ5IiwiZXJyb3JBY2Nlc3NEZW5pZWQiLCJlcnJvclByb21wdFRvb0xvbmciLCJjaGFuZ2VQcm9qZWN0Iiwic2VhcmNoV2ViIiwiYXR0YWNoRmlsZSIsInBsdXNNZW51QXR0YWNoIiwiZHJvcEZpbGVzSGVyZSIsInBsdXNNZW51RGVlcEludmVzdGlnYXRpb24iLCJwbHVzTWVudVF1aWNrQWN0aW9ucyIsIm9wZW5QbHVzTWVudUFyaWEiLCJvcGVuTWVudGlvbkFyaWEiLCJyZW1vdmVBdHRhY2htZW50QXJpYSIsInJlbW92ZUFjdGl2ZVRvb2xBcmlhIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwidG9vTWFueUFjdGl2ZVNlc3Npb25zIiwiYXR0YWNobWVudFByZXZpZXdNb2RhbCIsInVuc3VwcG9ydGVkRmlsZU1lc3NhZ2UiLCJ0eXBlTGFiZWwiLCJ1bmtub3duIiwic2l6ZUxhYmVsIiwiZXhjZWwiLCJzaGVldFNlbGVjdG9yTGFiZWwiLCJsb2FkRXJyb3IiLCJmaWxlUmVhZEVycm9yIiwic2hlZXRMb2FkRXJyb3IiLCJ3b3JkIiwibGVnYWN5RG9jVW5zdXBwb3J0ZWQiLCJwcHQiLCJsZWdhY3lQcHRVbnN1cHBvcnRlZCIsInNsaWRlTGFiZWwiLCJlbXB0eVNsaWRlIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImZpcnN0UGFydCIsInNlY29uZFBhcnQiLCJkZWxldGVTa2lsbE1vZGFsIiwiZWRpdFF1ZXN0aW9uTW9kYWwiLCJuZXdOYW1lIiwibWF4TGVuZ3RoIiwibW9kYWxGaWxlRXhjZWVkcyIsImxpbWl0RmlsZXNUaXRsZSIsImxpbWl0U2l6ZVRpdGxlIiwibGltaXRGaWxlc0Rlc2NyaXB0aW9uIiwibGltaXRTaXplRGVzY3JpcHRpb24iLCJhY2NlcHQiLCJsaW1pdCIsInNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIiwiYWdlbnRzIiwibmV3QWdlbnQiLCJjcmVhdGVBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvciIsIm1haWFJbnRyb2R1Y3Rpb24iLCJjb252ZXJzYXRpb25zIiwiYWdlbnRzU2VjdGlvblRpdGxlIiwibWFpYWtlck5hdiIsIm15QWdlbnRzTmF2IiwibXlTa2lsbHNOYXYiLCJlbXB0eUxhYmVsIiwidW5yZWFkTGFiZWwiLCJtaW5pbWl6ZWRPcGVuIiwibWluaW1pemVkU2VlQW5zd2VyIiwic2Vzc2lvbkZpbmlzaGVkIiwic2Vzc2lvbkZpbmlzaGVkQXBwcm92YWwiLCJzZXNzaW9uRmluaXNoZWRFcnJvciIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsInNlYXJjaEFnZW50UGxhY2Vob2xkZXIiLCJzZWFyY2hNaW5MZW5ndGgiLCJzZWFyY2hOb1Jlc3VsdHMiLCJzZWFyY2hOb1Jlc3VsdHNTdWJ0aXRsZSIsInVzZVRlbXBsYXRlIiwidXNlTXlBZ2VudCIsImJhZGdlcyIsImJyYW5kaW5nIiwibGlua2VkaW4iLCJtYXJrZXRpbmciLCJteVNraWxscyIsImNyZWF0ZVNraWxsIiwicHJldmlldyIsInByZXZpZXdFbXB0eSIsInVwbG9hZE1kIiwidXBsb2FkRXJyb3IiLCJjcmVhdGVXaXRoTWFpYSIsIndyaXRlSW5zdHJ1Y3Rpb25zIiwidXBsb2FkU2tpbGwiLCJnZW5lcmF0ZVBsYWNlaG9sZGVyIiwiZ2VuZXJhdGVXaXRoTWFpYSIsImdlbmVyYXRlTmVlZHNOYW1lIiwiZ2VuZXJhdGVTdWNjZXNzIiwiZ2VuZXJhdGVFcnJvciIsImNyZWF0ZVRpdGxlIiwiZWRpdFRpdGxlIiwibmFtZUxhYmVsIiwibmFtZVBsYWNlaG9sZGVyIiwiY29udGVudExhYmVsIiwiY29udGVudFBsYWNlaG9sZGVyIiwiZW1wdHlTdGF0ZVRpdGxlIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwiZW1wdHlTdGF0ZUJ1dHRvbiIsImNyZWF0ZVN1Y2Nlc3MiLCJjcmVhdGVFcnJvciIsInVwZGF0ZVN1Y2Nlc3MiLCJ1cGRhdGVFcnJvciIsImRlbGV0ZVN1Y2Nlc3MiLCJkZWxldGVFcnJvciIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImxvYWRNb3JlQWdlbnRzIiwiYXBwcm92YWxCb3giLCJ1bnRpdGxlZEFnZW50IiwiYWN0aW9ucyIsImNyZWF0ZV90YXNrIiwiY3JlYXRlX3Rhc2tzX2JhdGNoIiwiY3JlYXRlX2FnZW50IiwiZWRpdF9hZ2VudCIsImVkaXRfcHJvamVjdCIsImVkaXRfdGFzayIsImVkaXRfdGFza3NfYmF0Y2giLCJkZWxldGVfdGFzayIsImRlbGV0ZV90YXNrc19iYXRjaCIsInRhc2tfYXNzaWduIiwidGFza191bmFzc2lnbiIsImFzc2lnbl90YXNrX2xhYmVsIiwiY3JlYXRlX2xhYmVscyIsInVwZGF0ZV90YXNrX3R5cGUiLCJ1cGRhdGVfZXN0aW1hdGVkX2hvdXJzIiwidXBkYXRlX2RlbGl2ZXJhYmxlIiwiY3JlYXRlX2hvdXIiLCJjcmVhdGVfY2hlY2tsaXN0IiwiY3JlYXRlX2NoZWNrbGlzdF9pdGVtIiwiY2xvbmVfdGFzayIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiZGVsZXRlX2FnZW50Iiwic3BlY2lhbCIsImNyZWF0ZVJld29yayIsInVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4iLCJmaWVsZHMiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwibGFuZ3VhZ2UiLCJwcm92aWRlciIsIm1vZGVsX25hbWUiLCJhcGlfa2V5IiwiYXBwcm92ZSIsImRlbnkiLCJtYW51YWxBcHByb3ZhbFdhcm5pbmciLCJzdGF0dXMiLCJhcHByb3ZlZCIsImRlbmllZCIsImNoaXBMbG0iLCJjbGllbnRTZWxlY3RvciIsImFibUFnZW50IiwibGVnZW5kRGVsZXRlZEFnZW50IiwibGVnZW5kUHJvamVjdERlbGV0ZWQiLCJsZWdlbmROb0FjY2VzcyIsImxlZ2VuZE5vUGVybWlzc2lvbnMiLCJsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbiIsImNvbnRpbnVlSW5OZXdDaGF0IiwibGVnZW5kTW9kZWxEZXByZWNhdGVkIiwibGVnZW5kUHJvdmlkZXJTdGF0dXMiLCJjaGFuZ2VNb2RlbCIsImxheW91dE1lbnVUb29sdGlwIiwibGF5b3V0U2lkZWJhciIsImxheW91dEZ1bGxzY3JlZW4iLCJsYXlvdXRGbG9hdGluZyIsImFkZEFnZW50IiwiZWRpdEFnZW50IiwiZGVsZXRlQWdlbnQiLCJzZW5kRmVlZGJhY2siLCJzYXZlQ2hhbmdlcyIsImNyZWF0ZUFnZW50TGFiZWxCdXR0b24iLCJjb25maXJtQWdlbnRVcGRhdGVkV2l0aEZpbGVzRXJyb3IiLCJjb25maXJtQWdlbnRDcmVhdGVkIiwiY29uZmlybUFnZW50RGVsZXRlZCIsImNvbmZpcm1BZ2VudFdpdGhGaWxlc0Vycm9yIiwiY29uZmlybUFnZW50VXBkYXRlZCIsImNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50IiwiY29uZmlybUNsb3NlRWRpdEFnZW50IiwiY29uZmlybVJlbG9hZEJyb3dzZXIiLCJlcnJvckFnZW50Q3JlYXRlZCIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJnZW5lcmFsU2VjdGlvbiIsImdlbmVyYWxTZXR0aW5ncyIsInJlcXVpcmVkRmllbGRzTGFiZWwiLCJpbmZvTGFiZWwiLCJvcHRpb25hbExhYmVsIiwiYmFzaWNTZXR0aW5ncyIsInNlbGVjdEVtb2ppIiwiYmVoYXZpb3JTZXR0aW5ncyIsImluaXRpYWxQcm9tcHQiLCJpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXIiLCJtb2RlbEFpTGFiZWwiLCJub01vZGVsc0F2YWlsYWJsZSIsImlucHV0UGxhY2Vob2xkZXJUaXRsZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlciIsIm1heENhcmFjdGVyTmFtZSIsIm1heENhcmFjdGVySW5pdGlhbFByb21wdCIsIm1heElucHV0UGxhY2Vob2xkZXIiLCJtYXhDYXJhY3RlckludHJvZHVjdGlvbiIsImhvd1RvV3JpdGVQcm9tcHQiLCJ3aGF0SXNNb2RlbEFpVGl0bGUiLCJ3aGF0SXNNb2RlbEFpIiwia25vd2xlZGdlU2VjdGlvbiIsImtub3dsZWRnZVRhYiIsInNlbGVjdEZpbGVUaXRsZSIsImF0dGFjaEZpbGVzIiwiZHJvcFpvbmVUZXh0IiwiaW5mb0ZpbGVUeXBlcyIsIm1heEZpbGVzVGl0bGUiLCJtYXhGaWxlc0Rlc2NyaXB0aW9uIiwibWF4U2l6ZVRpdGxlIiwibWF4U2l6ZURlc2NyaXB0aW9uIiwiaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uIiwibW9yZUluZm8iLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwiY29yUGVybWlzc2lvbnNUaXRsZSIsImNvclBlcm1pc3Npb25zU3VidGl0bGUiLCJ0YXNrQWNjZXNzVGl0bGUiLCJ0YXNrQWNjZXNzRGVzY3JpcHRpb24iLCJ2aXNpYmlsaXR5VGl0bGUiLCJ3aG9DYW5BY2Nlc3MiLCJhbGxDb21wYW55VGl0bGUiLCJhbGxDb21wYW55RGVzY3JpcHRpb24iLCJjbGllbnRUaXRsZSIsImNsaWVudERlc2NyaXB0aW9uIiwib3duVGl0bGUiLCJvd25EZXNjcmlwdGlvbiIsImNsaWVudHNTZWxlY3RlZCIsInNlYXJjaEVycm9yIiwic2VhcmNoRW1wdHkiLCJzZWFyY2hJbml0aWFsIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJjbGllbnRzRXJyb3IiLCJwcm9jZXNzaW5nS25vd2xlZGdlIiwiZGVzY3JpcHRpb25DcmVhdGUiLCJkZXNjcmlwdGlvblVwZGF0ZSIsImZpbGVSb3ciLCJzdGF0dXNSb3ciLCJwZW5kaW5nIiwiZmFpbGVkIiwiZG9uZSIsImxvYWRpbmdGaWxlcyIsImRlbGV0ZUFnZW50TW9kYWwiLCJwcm9qZWN0U2VsZWN0b3IiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsInNlYXJjaGluZ1Byb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2VzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDZXJyYXInLFxuICBtaW5pbWl6ZTogJ01pbmltaXphcicsXG4gIGhvd1dvcmtzOiAnQ8OzbW8gZnVuY2lvbmE/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZGlyJyxcbiAgY29sbGFwc2U6ICdDb2xhcHNhcicsXG4gIGdvQmFjazogJ1ZvbHZlciBhbCBpbmljaW8nLFxuICBjb3B5OiAnQ29waWFyJyxcbiAgY29waWVkOiAnQ29waWFkbycsXG4gIHNhdmVkOiAnR3VhcmRhZG8nLFxuICBzZWxlY3RQcm9qZWN0OiAnU2VsZWNjaW9uYXIgcHJveWVjdG8nLFxuICBzYXZlOiAnR3VhcmRhcicsXG4gIGNhbmNlbDogJ0NhbmNlbGFyJyxcbn1cblxuY29uc3QgZXJyb3IgPSB7XG4gIHRpdGxlOiAnSGEgb2N1cnJpZG8gdW4gcHJvYmxlbWEnLFxuICBkZXNjcmlwdGlvbjogJ0VuIGVzdG9zIG1vbWVudG9zIGVzdGFtb3MgZXhwZXJpbWVudGFuZG8gYWxndW5vcyBpbmNvbnZlbmllbnRlcywgcG9yIGZhdm9yLCBpbnRlbnRlIGVuIHVub3MgbWludXRvcy4nLFxuICB0cnlBZ2FpbjogJ1ZvbHZlciBhIGludGVudGFyJyxcbn1cblxuY29uc3QgZ2VuZXJpY1NlY3Rpb24gPSB7XG4gIGVycm9yLFxuICBnbG9iYWxzLFxufVxuXG5jb25zdCBwcm9qZWN0U3VtbWFyeVNlY3Rpb24gPSB7XG4gIHJlc3VtZTogJ1Jlc3VtaXInLFxuICBoZWxsbzogJ8KhSG9sYSwge3tuYW1lfX0hJyxcbiAgd2VsY29tZTogJ1NveSBNQUlBLCB0dSBhc2lzdGVudGUgZW4gQ09SJyxcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnTWUgc2lydmnDsycsXG4gICAgdGh1bWJzRG93bjogJ05vIG1lIHNpcnZpw7MnLFxuICAgIHNvdXJjZXM6ICdGdWVudGVzJyxcbiAgfSxcblxuICBjb25maWc6IHtcbiAgICBwcm9qZWN0U3VtbWFyeTogJ1Jlc3VtaXIgcHJveWVjdG8nLFxuICAgIHByb2plY3RTdW1tYXJ5VGl0bGU6ICdSZXN1bWVuIGRlIHByb3llY3RvcycsXG4gICAgZ29CYWNrOiAnVm9sdmVyIGF0csOhcycsXG4gICAgc2VsZWN0ZWRQcm9qZWN0OiAnUHJveWVjdG8gc2VsZWNjaW9uYWRvJyxcbiAgICBzZWxlY3RQcm9qZWN0OiAnU2VsZWNjaW9uYXIgcHJveWVjdG8nLFxuICAgIGNvbmZpZ3VyZVJlc3VtZTogJ0NvbmZpZ3VyYWNpw7NuIGF2YW56YWRhJyxcbiAgICBnZW5lcmF0aW5nUmVzdW1lOiAnR2VuZXJhbmRvIHJlc3VtZW4nLFxuICAgIGdlbmVyYXRlUmVzdW1lOiAnR2VuZXJhcicsXG4gICAgaGlkZUNvbmZpZzogJ09jdWx0YXIgY29uZmlndXJhY2nDs24nLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdGZWNoYXMgeSBkZWFkbGluZXMnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuSU5DT01FX0NPU1RTXTogJ1JlbnRhYmlsaWRhZCcsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5USU1FX0hPVVJTXTogJ0VzdGltYWNpw7NuIGRlIGhvcmFzIHkgY29uc3VtbycsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXJlYXMgeSBhdmFuY2VzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlJFV09SS1NdOiAnUmV0cmFiYWpvcycsXG4gIH0sXG59XG5cbmNvbnN0IGhvbWVNZW51ID0ge1xuICBwcm9qZWN0U3VtbWFyeToge1xuICAgIHRpdGxlOiAnUmVzdW1lbiBkZWwgcHJveWVjdG8nLFxuICAgIGRlc2NyaXB0aW9uOiAnRWxhYm9yYSBpbmZvcm1lcyBjb24gQUkgYmFzYWRvIGVuIHR1IHByb3llY3RvJyxcbiAgfSxcbiAgZmFxOiB7XG4gICAgdGl0bGU6ICdQcmVndW50YXMgZnJlY3VlbnRlcycsXG4gICAgc3RhcnRUaXRsZTogJ1B1ZWRlcyBjb21lbnphciBwb3IuLi4nLFxuICAgIGVtcHR5OiAnTm8gaGF5IHByZWd1bnRhcyBmcmVjdWVudGVzJyxcbiAgICBlcnJvcjogJ8KhVXBzISBUdXZpbW9zIHVuIHByb2JsZW1hIGFsIGNhcmdhciBsYXMgcHJlZ3VudGFzIGZyZWN1ZW50ZXMuIFBvciBmYXZvciwgaW50ZW50YSBkZSBudWV2byBlbiB1bm9zIG1pbnV0b3MuJyxcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICBwcm9qZWN0czogJ1Byb3llY3RvJyxcbiAgICAgIHRhc2tzOiAnVGFyZWFzJyxcbiAgICAgIGhvdXJzOiAnSG9yYXMnLFxuICAgICAgcmV3b3JrczogJ1JldHJhYmFqb3MnLFxuICAgICAgdW5kZWZpbmVkOiAnU2luIGNhdGVnb3LDrWEnLFxuICAgIH0sXG4gIH0sXG4gIGZ1YToge1xuICAgIHRpdGxlOiAnQWNjaW9uZXMgZnJlY3VlbnRlcycsXG4gICAgbmV3QmFkZ2U6ICdOdWV2bycsXG4gICAgZXJyb3I6ICfCoVVwcyEgVHV2aW1vcyB1biBwcm9ibGVtYSBhbCBjYXJnYXIgbGFzIGFjY2lvbmVzIGZyZWN1ZW50ZXMuIFBvciBmYXZvciwgaW50ZW50YSBkZSBudWV2byBlbiB1bm9zIG1pbnV0b3MuJyxcbiAgfSxcbiAgcmVjZW50Q29udGV4dHM6IHtcbiAgICB0aXRsZTogJ0VsaWdlIHVuIGNvbnRleHRvIHJlY2llbnRlIHBhcmEgbWF5b3IgcHJlY2lzacOzbiBlbiBsYSByZXNwdWVzdGE6JyxcbiAgICB0eXBlczoge1xuICAgICAgY2xpZW50OiAnQ2xpZW50ZScsXG4gICAgICBwcm9qZWN0OiAnUHJveWVjdG8nLFxuICAgICAgdGFzazogJ1RhcmVhJyxcbiAgICB9LFxuICB9LFxuICBjb250ZXh0SG9tZToge1xuICAgIGdyZWV0aW5nOiAnSG9sYSwge3tuYW1lfX0g8J+RiycsXG4gICAgc3VidGl0bGU6ICdTb3kgTUFJQSwgdHUgYXNpc3RlbnRlIGVuIHRhcmVhcywgcHJveWVjdG9zIHkgY2xpZW50ZXMuXFxuwr9TZWd1aW1vcyBjb24gYWxnbyByZWNpZW50ZT8nLFxuICAgIHN1YnRpdGxlQ29sbGFib3JhdG9yOiAnU295IE1BSUEsIHR1IGFzaXN0ZW50ZSBlbiB0YXJlYXMuIMK/U2VndWltb3MgY29uIGFsZ28gcmVjaWVudGU/JyxcbiAgICBzdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VyczogJ0NvbXBsZXTDoSB0dXMgaG9yYXMgbyBlbXBlesOhIHVuIGNoYXQgc29icmUgdW5hIHRhcmVhLicsXG4gICAgc3VidGl0bGVNYW5hZ2VyV2l0aEhvdXJzOiAnwr9Qb3IgZMOzbmRlIHF1aWVyZXMgZW1wZXphcj8nLFxuICAgIGhvdXJzU2VjdGlvbjoge1xuICAgICAgdGl0bGU6ICdDYXJnYSBob3JhcycsXG4gICAgfSxcbiAgICByZWNlbnRUYXNrc1NlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnQ29uc3VsdGEgc29icmUgdW5hIHRhcmVhJyxcbiAgICAgIHN1YnRpdGxlOiAnRWxlZ8OtIHVuYSB0YXJlYSByZWNpZW50ZSBwYXJhIHVzYXJsYSBjb21vIGNvbnRleHRvLicsXG4gICAgfSxcbiAgICByZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyOiB7XG4gICAgICB0aXRsZTogJ08gcmV0b21hIGFsZ28gcmVjaWVudGUnLFxuICAgICAgc3VidGl0bGU6ICdFbGVnw60gdW5hIHRhcmVhLCBwcm95ZWN0byBvIGNsaWVudGUgcGFyYSB1c2FybG8gY29tbyBjb250ZXh0bycsXG4gICAgfSxcbiAgICBjb250ZXh0R3JlZXRpbmc6IHtcbiAgICAgIHByb2plY3Q6ICfCv1F1w6kgcXVpZXJlcyBxdWUgYW5hbGljZW1vcz8gwr9Ib3JhcywgZXN0aW1hY2lvbmVzLCByZXRyYWJham9zPywgwqF0dSBlbGlnZXMhJyxcbiAgICAgIHRhc2s6ICdFc3RveSBhcXXDrSBwYXJhIGF5dWRhcnRlIGNvbiBlc3RhIHRhcmVhLiBVc2EgdW5hIGRlIGxhcyBmdW5jaW9uZXMgcGFyYSBjb21lbnphci4nLFxuICAgICAgY2xpZW50OiAnwr9RdcOpIHF1aWVyZXMgcXVlIGFuYWxpY2Vtb3M/IMK/UmVudGFiaWxpZGFkLCBhdmFuY2VzLCBkZWFkbGluZXM/IMKhVMO6IGVsaWdlcyEnLFxuICAgIH0sXG4gIH0sXG4gIHBsYW5uZXJIb21lOiB7XG4gICAgdGl0bGU6ICdFbXBlY2Vtb3MgY29uIHR1IGNhcmdhIGRlIGhvcmFzJyxcbiAgICBzdWJ0aXRsZTogJ8K/UG9yIGTDs25kZSBjb21lbnphbW9zPycsXG4gIH0sXG4gIGFjdGlvbjoge1xuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHRhc2tzOiAnQWNjaW9uZXMgc29icmUgdGFyZWFzJyxcbiAgICAgIGNvbGxhYm9yYXRvcnM6ICdDb2xhYm9yYWRvcmVzIHkgcmVzcG9uc2FibGVzJyxcbiAgICAgIGxhYmVsczogJ0V0aXF1ZXRhcyB5IHRpcG9zJyxcbiAgICAgIGNoZWNrbGlzdHM6ICdDaGVja2xpc3RzJyxcbiAgICAgIGRlbGl2ZXJhYmxlczogJ0VudHJlZ2FibGVzJyxcbiAgICAgIHJld29ya3M6ICdSZXRyYWJham9zJyxcbiAgICAgIGhvdXJzOiAnQ2FyZ2EgZGUgaG9yYXMnLFxuICAgIH0sXG4gIH0sXG4gIGNyZWF0ZWRCeTogJ3BvcicsXG4gIGNyZWF0ZWRCeVRvb2x0aXA6ICdVc3VhcmlvIGNyZWFkb3IgZGVsIGFnZW50ZScsXG4gIGNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkOiAnVXN1YXJpbyBlbGltaW5hZG8uIFN1IG5vbWJyZSBzZSBtYW50aWVuZSBwYXJhIHJlZmVyZW5jaWEuJyxcbiAgdGFza0dyZWV0aW5nOiAnRXN0b3kgYXF1w60gcGFyYSBheXVkYXJ0ZSBjb24gZXN0YSB0YXJlYS4gVXNhIHVuYSBkZSBsYXMgZnVuY2lvbmVzIHBhcmEgY29tZW56YXIuJyxcbiAgaGVsbG86IHtcbiAgICB0aXRsZTogJ8KhTGlzdG8hIFlhIGVzdG95IHVzYW5kbyBlbCBwcm95ZWN0bycsXG4gICAgdGl0bGVfMTogJ0FudGljaXBhIGRlc3bDrW9zLiBBbmFsaWNlbW9zIGVzdGUgcHJveWVjdG8uJyxcbiAgICB0aXRsZV8yOiAnwr9RdcOpIHF1aWVyZXMgcXVlIGFuYWxpY2Vtb3M/IMK/SG9yYXMsIGVzdGltYWNpb25lcywgcmV0cmFiYWpvcz8sIMKhdHUgZWxpZ2VzIScsXG4gICAgdGl0bGVfMzogJ1JldmlzZW1vcyBlbCBhdmFuY2UgZGUgZXN0ZSBwcm95ZWN0by4nLFxuICAgIHN1YnRpdGxlOiAnUGFyYSBlbXBlemFyLCB0ZSBwdWVkbyBheXVkYXIgY29uIGVzdGFzIG9wY2lvbmVzLiBPIHNpIG5vLCDCoWVzY3LDrWJlbWUgZGlyZWN0YW1lbnRlIHR1IGNvbnN1bHRhIScsXG4gICAgdGl0bGVQbTogJ8KhSG9sYSwge3tuYW1lfX0hIFNveSB7e2FnZW50fX0sIHR1IGFzaXN0ZW50ZS4nLFxuICAgIHN1YnRpdGxlUG06XG4gICAgICAnUGFyYSBkYXJ0ZSByZXNwdWVzdGFzIHByZWNpc2FzLCBwcmltZXJvIG5lY2VzaXRvIHNhYmVyIHNvYnJlIHF1w6kgcHJveWVjdG8gdmFtb3MgYSBjb252ZXJzYXIuIMK/Q3XDoWwgZWxpZ2VzPycsXG4gIH0sXG4gIG1haWFrZXI6IHtcbiAgICB0aXRsZTogJ0NvbnZpZXJ0ZSBwcm9jZXNvcyByZXBldGl0aXZvcyBlbiBhZ2VudGVzIGludGVsaWdlbnRlcycsXG4gICAgZGVzY3JpcHRpb246ICdDcmVhIGFnZW50ZXMgcXVlIGFuYWxpY2VuLCBnZW5lcmVuIGNvbnRlbmlkbyBzZWfDum4gdHVzIG5lY2VzaWRhZGVzLicsXG4gICAgY3JlYXRlTWFudWFsQWdlbnQ6ICdDcmVhciBhZ2VudGUgbWFudWFsbWVudGUnLFxuICAgIGJhZGdlTmV3OiAnTnVldm8nLFxuICAgIGJyaWVmQ2FyZDoge1xuICAgICAgdGl0bGU6ICdBZ2VudGUgZXNwZWNpYWxpc3RhIGVuIGJyaWVmJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3JlYSB5IG1lam9yYSBicmllZnMgcGFyYSBxdWUgZXN0w6luIGxpc3RvcyBwYXJhIHVzYXIgZW4gdGFyZWFzLicsXG4gICAgICBwcm9tcHQ6ICdRdWllcm8gY3JlYXIgdW4gYWdlbnRlIGVzcGVjaWFsaXN0YSBlbiBicmllZi4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnTcOhcyBwcsOzeGltYW1lbnRlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXN0YW1vcyB0cmFiYWphbmRvIHBhcmEgYnJpbmRhcnRlIG3DoXMgYWdlbnRlcycsXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGNvbnRleHRNZW50aW9uOiB7XG4gICAgICBrZXlib2FyZEhpbnQ6ICdOYXZlZ2FjacOzbiBlbnRyZSBwZXN0YcOxYXM6IEAsIEBA4oCmIGVuIG9yZGVuLiBUYW1iacOpbiBBbHQvQ21kICsg4oaQL+KGkicsXG4gICAgICByZWNlbnRzVGl0bGU6ICdSZWNpZW50ZXMnLFxuICAgICAgdXNlck5vUG9zaXRpb246ICdTaW4gcG9zaWNpw7NuJyxcbiAgICAgIG1lOiAnWW8nLFxuICAgICAgdGFiczoge1xuICAgICAgICBjbGllbnQ6ICdDbGllbnRlJyxcbiAgICAgICAgcHJvamVjdDogJ1Byb3llY3RvJyxcbiAgICAgICAgdGFzazogJ1RhcmVhJyxcbiAgICAgICAgdXNlcjogJ1VzdWFyaW8nLFxuICAgICAgICBtY3A6ICdDb25lY3RvcmVzJyxcbiAgICAgICAgc2tpbGw6ICdIYWJpbGlkYWRlcycsXG4gICAgICB9LFxuICAgICAgbG9hZGluZzogJ0J1c2NhbmRvLi4uJyxcbiAgICAgIGVycm9yOiAnVHV2aW1vcyB1biBwcm9ibGVtYSBhbCBidXNjYXIuIEludGVudMOhIGRlIG51ZXZvLicsXG4gICAgICBza2lsbFF1ZXJ5VG9vU2hvcnQ6ICdFc2NyaWJlIGFsIG1lbm9zIDMgY2FyYWN0ZXJlcyBwYXJhIGJ1c2NhcicsXG4gICAgICBlbXB0eToge1xuICAgICAgICByZWNlbnRzOiAnRW1wZXrDoSBhIGVzY3JpYmlyIHBhcmEgYnVzY2FyJyxcbiAgICAgICAgd2l0aFF1ZXJ5OiAnTm8gaGF5IHJlc3VsdGFkb3MgcGFyYSBcInt7cXVlcnl9fVwiJyxcbiAgICAgICAgc2tpbGxOb0l0ZW1zOiAnTm8gaGF5IGhhYmlsaWRhZGVzIGHDum4nLFxuICAgICAgICBza2lsbFdpdGhRdWVyeTogJ05vIGhheSBoYWJpbGlkYWRlcyBxdWUgY29pbmNpZGFuIGNvbiBcInt7cXVlcnl9fVwiJyxcbiAgICAgIH0sXG4gICAgICBjb3VudGVyczoge1xuICAgICAgICBwcm9qZWN0czogJ3Byb3llY3RvcycsXG4gICAgICAgIHRhc2tzOiAndGFyZWFzJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250ZXh0UGluOiB7XG4gICAgICBhZGRDb250ZXh0OiAnQ29udGV4dG8gZ2xvYmFsJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnQnVzY2FyIGNvbnRleHRv4oCmJyxcbiAgICAgIHJlbW92ZTogJ1F1aXRhciBjb250ZXh0bycsXG4gICAgfSxcbiAgICBidXR0b246ICdJQScsXG4gICAgdGl0bGU6ICfCoUhvbGEsIHt7bmFtZX19IScsXG4gICAgZGVzY3JpcHRpb246ICdTb3kgTUFJQSB0dSBhc2lzdGVudGUgeSBlc3RveSBhcXXDrSBwYXJhIGF5dWRhcnRlIGNvbiB0dXMgY29uc3VsdGFzLicsXG4gICAgbmV3Q2hhdDogJ051ZXZvIGNoYXQnLFxuICAgIG9wZW5BZ2VudENyZWF0b3I6ICdDcmVhciBhZ2VudGUnLFxuICAgIG9wZW5NYXJrZXRwbGFjZTogJ01hcmtldHBsYWNlIGRlIGFnZW50ZXMnLFxuICAgIGhpc3Rvcnk6IHtcbiAgICAgIHRvb2x0aXA6ICdIaXN0b3JpYWwnLFxuICAgICAgdGl0bGU6ICdIaXN0b3JpYWwgdmFjw61vJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTm8gc2UgaGFuIGVuY29udHJhZG8gY29udmVyc2FjaW9uZXMnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnw5psdGltYSBhY3R1YWxpemFjacOzbiB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbWJyYXInLFxuICAgICAgICBkZWxldGU6ICdFbGltaW5hcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDYXJnYW5kbyBtw6FzIGNvbnZlcnNhY2lvbmVzJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQWdlbnRlcyBjdXN0b20nLFxuICAgICAgaG93Q3JlYXRlQWdlbnQ6ICfCv0PDs21vIGNyZWFyIHVuIGFnZW50ZT8nLFxuICAgICAgdG9vbHRpcDogJ8K/Q8OzbW8gZnVuY2lvbmE/JyxcbiAgICAgIGhvd0l0V29ya3M6ICfCv0PDs21vIGZ1bmNpb25hPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdQcmVndW50YXMgZnJlY3VlbnRlcycsXG4gICAgICBpdGVtczoge1xuICAgICAgICByZW50YWJpbGlkYWRfcHJveWVjdG86ICfCv0N1w6FsIGVzIGxhIHJlbnRhYmlsaWRhZCBkZSBlc3RlIHByb3llY3RvPycsXG4gICAgICAgIGF2YW5jZV9wcm95ZWN0bzogJ8K/Q3XDoWxlcyBzb24gbG9zIGF2YW5jZXMgZGUgZXN0ZSBwcm95ZWN0bz8nLFxuICAgICAgICB0YXJlYXNfcHJveWVjdG86ICfCv0N1w6FsZXMgc29uIGxhcyB0YXJlYXMgcHLDs3hpbWFzIGEgdmVuY2VyPycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hhdDoge1xuICAgICAgZ2VuZXJhdGluZzogJ1BlbnNhbmRvJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiAnQW5hbGl6YW5kbyBhZGp1bnRvJyxcbiAgICAgIGdlbmVyYXRpbmdEZWVwU2VhcmNoOiAnSW5pY2lhbmRvIGxhIGludmVzdGlnYWNpw7NuJyxcbiAgICAgIGdlbmVyYXRpbmdXZWJTZWFyY2g6ICdCdXNjYW5kbyBlbiBsYSB3ZWInLFxuICAgICAgc3VnZ2VzdGlvbnNUaXRsZTogJ1Jlc3B1ZXN0YXMgc3VnZXJpZGFzJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uc1RpdGxlOiAnU2lndWllbnRlIHBhc28nLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25TdGFydENoYXQ6ICdJbmljaWFyIGNvbnZlcnNhY2nDs24gY29uIGVsIG51ZXZvIGFnZW50ZScsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbktub3dsZWRnZTogJ1N1YmlyIGFyY2hpdm9zIGEgbGEgYmFzZSBkZSBjb25vY2ltaWVudG8nLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3I6ICdObyBzZSBwdWRvIGNhcmdhciBlbCBhZ2VudGUuIEludGVudGEgZGUgbnVldm8uJyxcbiAgICAgIHdyaXRpbmc6ICdFc2NyaWJpZW5kbyBsYSByZXNwdWVzdGEnLFxuICAgICAgZXhlY3V0aW5nQWN0aW9uOiAnRWplY3V0YW5kbyBhY2Npw7NuJyxcbiAgICAgIHByb2Nlc3Npbmc6ICdQcm9jZXNhbmRvJyxcbiAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgIGdlbmVyYXRpbmc6IHtcbiAgICAgICAgICBwcmVwYXJpbmc6ICdQcmVwYXJhbmRvIGxhIHJlc3B1ZXN0YScsXG4gICAgICAgICAgY29uc2lkZXJpbmc6ICdSZXZpc2FuZG8gdHUgY29uc3VsdGEnLFxuICAgICAgICAgIGFsbW9zdFJlYWR5OiAnRGVmaW5pZW5kbyBlbCBlbmZvcXVlJyxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpbmtpbmc6IHtcbiAgICAgICAgICBhbmFseXppbmc6ICdBbmFsaXphbmRvIHR1IGNvbnN1bHRhJyxcbiAgICAgICAgICByZXZpZXdpbmc6ICdSZXZpc2FuZG8gZWwgY29udGV4dG8nLFxuICAgICAgICAgIHBsYW5uaW5nOiAnQXJtYW5kbyBsYSByZXNwdWVzdGEnLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2g6IHtcbiAgICAgICAgICBzY2FubmluZzogJ0J1c2NhbmRvIGVuIGxhIHdlYicsXG4gICAgICAgICAgc3VtbWFyaXppbmc6ICdSZXZpc2FuZG8gcmVzdWx0YWRvcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZXBTZWFyY2g6IHtcbiAgICAgICAgICBleHBsb3Jpbmc6ICdFeHBsb3JhbmRvIGZ1ZW50ZXMnLFxuICAgICAgICAgIGNyb3NzQ2hlY2tpbmc6ICdWZXJpZmljYW5kbyBsYSBpbmZvcm1hY2nDs24nLFxuICAgICAgICB9LFxuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgcmVhZGluZzogJ0xleWVuZG8gZWwgYWRqdW50bycsXG4gICAgICAgICAgZXh0cmFjdGluZzogJ0V4dHJheWVuZG8gbG8gcmVsZXZhbnRlJyxcbiAgICAgICAgICByZWFkaW5nUGx1cmFsOiAnTGV5ZW5kbyBsb3MgYWRqdW50b3MnLFxuICAgICAgICAgIGV4dHJhY3RpbmdQbHVyYWw6ICdFeHRyYXllbmRvIGxvIHJlbGV2YW50ZScsXG4gICAgICAgIH0sXG4gICAgICAgIHdyaXRpbmc6IHtcbiAgICAgICAgICBjb21wb3Npbmc6ICdFc2NyaWJpZW5kbyBsYSByZXNwdWVzdGEnLFxuICAgICAgICB9LFxuICAgICAgICBkeW5hbWljQ29udGV4dFRvb2x0aXA6XG4gICAgICAgICAgJ0VzdGUgY29udGV4dG8gZnVlIGdlbmVyYWRvIGRpbsOhbWljYW1lbnRlIHkgcHVlZGUgY2FtYmlhciBhIGxvIGxhcmdvIGRlIGxhIGNvbnZlcnNhY2nDs24uJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrOiAnQ3JlYW5kbyB0YXJlYScsXG4gICAgICAgIGNyZWF0aW5nVGFza3NCYXRjaDogJ0NyZWFuZG8gdGFyZWFzJyxcbiAgICAgICAgY3JlYXRpbmdBZ2VudDogJ0NyZWFuZG8gYWdlbnRlJyxcbiAgICAgICAgZWRpdGluZ0FnZW50OiAnRWRpdGFuZG8gYWdlbnRlJyxcbiAgICAgICAgZWRpdGluZ1Rhc2s6ICdFZGl0YW5kbyB0YXJlYScsXG4gICAgICAgIGVkaXRpbmdUYXNrc0JhdGNoOiAnRWRpdGFuZG8gdGFyZWFzJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrOiAnRWxpbWluYW5kbyB0YXJlYScsXG4gICAgICAgIGRlbGV0aW5nVGFza3NCYXRjaDogJ0VsaW1pbmFuZG8gdGFyZWFzJyxcbiAgICAgICAgYXNzaWduaW5nVXNlcjogJ0FzaWduYW5kbyB1c3VhcmlvJyxcbiAgICAgICAgdW5hc3NpZ25pbmdVc2VyOiAnRGVzYXNpZ25hbmRvIHVzdWFyaW8nLFxuICAgICAgICBhc3NpZ25pbmdMYWJlbDogJ0FzaWduYW5kbyBldGlxdWV0YScsXG4gICAgICAgIHVwZGF0aW5nVGFza1R5cGU6ICdBY3R1YWxpemFuZG8gdGlwbyBkZSB0YXJlYScsXG4gICAgICAgIHVwZGF0aW5nRXN0aW1hdGVkSG91cnM6ICdBY3R1YWxpemFuZG8gaG9yYXMgZXN0aW1hZGFzJyxcbiAgICAgICAgdXBkYXRpbmdEZWxpdmVyYWJsZTogJ0FjdHVhbGl6YW5kbyBlbnRyZWdhYmxlJyxcbiAgICAgICAgbG9nZ2luZ0hvdXJzOiAnQ2FyZ2FuZG8gaG9yYXMnLFxuICAgICAgICBjcmVhdGluZ0NoZWNrbGlzdDogJ0NyZWFuZG8gY2hlY2tsaXN0JyxcbiAgICAgICAgY3JlYXRpbmdMYWJlbDogJ0NyZWFuZG8gZXRpcXVldGEnLFxuICAgICAgICBlZGl0aW5nUHJvamVjdDogJ0VkaXRhbmRvIHByb3llY3RvJyxcbiAgICAgICAgY3JlYXRpbmdDaGVja2xpc3RJdGVtOiAnQWdyZWdhbmRvIMOtdGVtIGFsIGNoZWNrbGlzdCcsXG4gICAgICAgIHF1ZXJ5aW5nSG91cnM6ICdDb25zdWx0YW5kbyBob3JhcycsXG4gICAgICAgIGNvbmZpZ3VyaW5nQWdlbnRBY2Nlc3M6ICdDYW1iaWFuZG8gdmlzaWJpbGlkYWQgZGVsIGFnZW50ZScsXG4gICAgICAgIHNlbmRpbmdUYXNrTWVzc2FnZTogJ0VudmlhbmRvIG1lbnNhamUgZW4gbGEgdGFyZWEnLFxuICAgICAgICBkZWxldGluZ0NoZWNrbGlzdEl0ZW06ICdFbGltaW5hbmRvIMOtdGVtIGRlbCBjaGVja2xpc3QnLFxuICAgICAgICByZW1vdmluZ1Rhc2tUeXBlOiAnRWxpbWluYW5kbyB0aXBvIGRlIHRhcmVhJyxcbiAgICAgICAgcmVtb3ZpbmdMYWJlbDogJ1F1aXRhbmRvIGV0aXF1ZXRhJyxcbiAgICAgICAgdXBkYXRpbmdEZWxpdmVyYWJsZUNvdW50OiAnQWN0dWFsaXphbmRvIGNvbnRhZG9yIGRlIGVudHJlZ2FibGVzJyxcbiAgICAgICAgY3JlYXRpbmdSZXdvcms6ICdDcmVhbmRvIHJldHJhYmFqbycsXG4gICAgICAgIHVwZGF0aW5nUmV3b3JrOiAnQWN0dWFsaXphbmRvIHJldHJhYmFqbycsXG4gICAgICAgIGdlbmVyYXRpbmdGaWxlOiAnR2VuZXJhbmRvIGFyY2hpdm8nLFxuICAgICAgICByZXN1bWluZ0FjdGlvbjogJ0VqZWN1dGFuZG8gYWNjacOzbiBhcHJvYmFkYScsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDYXJnYW5kbyBtw6FzIG1lbnNhamVzJyxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJ0VzY3JpYmUgdHUgY29uc3VsdGEgYWPDoeKApicsXG4gICAgICAgIG9yY2hlc3RyYXRvclBsYWNlaG9sZGVyOiAnUHJlZ8O6bnRhbGUgYSBNYWlhLCBAIG1lbmNpb25hciBvIC8gYWNjaW9uZXMgcsOhcGlkYXMnLFxuICAgICAgICBhZ2VudExhYmVsOiAnRWwgQWdlbnRlJyxcbiAgICAgICAgZGlzY2xhaW1lcjogJ3t7YWdlbnROYW1lfX0gcHVlZGUgY29tZXRlciBlcnJvcmVzLiBDb21wcnVlYmEgbGEgaW5mb3JtYWNpw7NuIGltcG9ydGFudGUuJyxcbiAgICAgICAgZGlzY2xhaW1lckFnZW50OiAnTG9zIG1vZGVsb3MgZGUgSUEgcHVlZGVuIGNvbWV0ZXIgZXJyb3Jlcy4gVmVyaWZpY2EgbGEgaW5mb3JtYWNpw7NuIGltcG9ydGFudGUuJyxcbiAgICAgICAgY29yQWNjZXNzTGFiZWw6ICdBY2Nlc28gYSBDT1InLFxuICAgICAgICBjb3JBY2Nlc3NUb29sdGlwOiAnQWNjZXNvIGEgZGF0b3MgZGUgQ09SJyxcbiAgICAgIH0sXG4gICAgICBlcnJvcjogJ0hhIG9jdXJyaWRvIHVuIGVycm9yIGFsIGdlbmVyYXIgdHUgcmVzcHVlc3RhLCBwb3IgZmF2b3IsIGludGVudGEgbnVldmFtZW50ZS4nLFxuICAgICAgcmV0cnk6ICdSZWludGVudGFyJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICAnTm8gdGllbmVzIGFjY2VzbyBwYXJhIGludGVyYWN0dWFyIGNvbiBlc3RlIGFnZW50ZS4gRXMgcG9zaWJsZSBxdWUgc3UgY29uZmlndXJhY2nDs24gZGUgYWNjZXNpYmlsaWRhZCBoYXlhIGNhbWJpYWRvLiBQb3IgZmF2b3IsIGNvbnRhY3RhIGEgbGEgcGVyc29uYSBkZSB0dSBvcmdhbml6YWNpw7NuIHF1ZSBhZG1pbmlzdHJhIGxvcyBhZ2VudGVzIHBhcmEgb2J0ZW5lciBtw6FzIGluZm9ybWFjacOzbi4nLFxuICAgICAgZXJyb3JQcm9tcHRUb29Mb25nOlxuICAgICAgICAnVGUgaGFzIGV4Y2VkaWRvIGRlbCBsaW1pdGUgZGUgY29udGV4dG8ge3t1c2VkfX0gdG9rZW5zLiBQb3IgZmF2b3IgcmVpbnRlbnRhIG51ZXZhbWVudGUgbyBjb250aW7DumEgZW4gb3RybyBjaGF0JyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdEZXRlY3RvIHF1ZSBxdWllcmVzIGNhbWJpYXIgZGUgUHJveWVjdG8uXFxuXFxuKipTZWxlY2Npb25hIGVsIHByb3llY3RvIHBhcmEgY29udGludWFyOioqJyxcbiAgICAgIHNlYXJjaFdlYjogJ0J1c2NhciBlbiBsYSB3ZWInLFxuICAgICAgZGVlcFNlYXJjaDogJ0LDunNxdWVkYSBhdmFuemFkYSBlbiBpbnRlcm5ldCAoYWNjZXNvIGEgbcOhcyBmdWVudGVzKScsXG4gICAgICBhdHRhY2hGaWxlOiAnQWRqdW50YXIgYXJjaGl2bycsXG4gICAgICBwbHVzTWVudUF0dGFjaDogJ0FkanVudGFyIGFyY2hpdm9zJyxcbiAgICAgIGRyb3BGaWxlc0hlcmU6ICdTb2x0w6EgbG9zIGFyY2hpdm9zIGFxdcOtJyxcbiAgICAgIHBsdXNNZW51RGVlcEludmVzdGlnYXRpb246ICdJbnZlc3RpZ2FyIGEgZm9uZG8nLFxuICAgICAgcGx1c01lbnVRdWlja0FjdGlvbnM6ICdBY2Npb25lcyByw6FwaWRhcycsXG4gICAgICBvcGVuUGx1c01lbnVBcmlhOiAnQWRqdW50b3MgeSBvcGNpb25lcyBkZSBiw7pzcXVlZGEnLFxuICAgICAgb3Blbk1lbnRpb25BcmlhOiAnTWVuY2lvbmFyJyxcbiAgICAgIHJlbW92ZUF0dGFjaG1lbnRBcmlhOiAnUXVpdGFyIGFyY2hpdm8nLFxuICAgICAgcmVtb3ZlQWN0aXZlVG9vbEFyaWE6ICdRdWl0YXIgbW9kbyBkZSBiw7pzcXVlZGEnLFxuICAgICAgc2VuZDogJ0VudmlhcicsXG4gICAgICBsaW1pdEZpbGVzOiAnU29sbyBwdWVkZXMgYWRqdW50YXIgaGFzdGEgNSBhcmNoaXZvcyBwb3IgbWVuc2FqZS4nLFxuICAgICAgc3RvcDogJ0RldGVuZXIgcmVzcHVlc3RhJyxcbiAgICAgIGNhbmNlbGxlZDogJ1NlIGhhIGNhbmNlbGFkbyBsYSBiw7pzcXVlZGEuJyxcbiAgICAgIHRvb01hbnlBY3RpdmVTZXNzaW9uczpcbiAgICAgICAgJ0hheSBkZW1hc2lhZGFzIGNvbnZlcnNhY2lvbmVzIGdlbmVyYW5kbyBhIGxhIHZlei4gRXNwZXLDoSBhIHF1ZSB0ZXJtaW5lIHVuYSBhbnRlcyBkZSBpbmljaWFyIG90cmEuJyxcbiAgICAgIGF0dGFjaG1lbnRQcmV2aWV3TW9kYWw6IHtcbiAgICAgICAgbG9hZGluZzogJ0NhcmdhbmRvLi4uJyxcbiAgICAgICAgdW5zdXBwb3J0ZWRGaWxlTWVzc2FnZTpcbiAgICAgICAgICAnRXN0ZSB0aXBvIGRlIGFyY2hpdm8gbm8gcHVlZGUgc2VyIHByZXZpc3VhbGl6YWRvLiBQb3IgZmF2b3IsIGludGVudGEgZGUgbnVldm8gZW4gdW5vcyBtaW51dG9zLicsXG4gICAgICAgIHR5cGVMYWJlbDogJ1RpcG86JyxcbiAgICAgICAgdW5rbm93bjogJ0Rlc2Nvbm9jaWRvJyxcbiAgICAgICAgc2l6ZUxhYmVsOiAnVGFtYcOxbzonLFxuICAgICAgICBleGNlbDoge1xuICAgICAgICAgIHNoZWV0U2VsZWN0b3JMYWJlbDogJ0hvamE6JyxcbiAgICAgICAgICBsb2FkRXJyb3I6ICdObyBzZSBwdWRvIGNhcmdhciBlbCBjb250ZW5pZG8gZGVsIGFyY2hpdm8gRXhjZWwuJyxcbiAgICAgICAgICBmaWxlUmVhZEVycm9yOiAnRXJyb3IgYWwgbGVlciBlbCBhcmNoaXZvLicsXG4gICAgICAgICAgc2hlZXRMb2FkRXJyb3I6ICdFcnJvciBhbCBjYXJnYXIgbGEgaG9qYSBzZWxlY2Npb25hZGEuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd29yZDoge1xuICAgICAgICAgIGxvYWRFcnJvcjogJ05vIHNlIHB1ZG8gY2FyZ2FyIGVsIGNvbnRlbmlkbyBkZWwgZG9jdW1lbnRvIFdvcmQuJyxcbiAgICAgICAgICBsZWdhY3lEb2NVbnN1cHBvcnRlZDogJ0xhIHByZXZpc3VhbGl6YWNpw7NuIGRlIGFyY2hpdm9zIC5kb2Mgbm8gZXN0w6EgZGlzcG9uaWJsZS4gVXNhIGZvcm1hdG8gLmRvY3guJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHB0OiB7XG4gICAgICAgICAgbG9hZEVycm9yOiAnTm8gc2UgcHVkbyBjYXJnYXIgZWwgY29udGVuaWRvIGRlIGxhIHByZXNlbnRhY2nDs24uJyxcbiAgICAgICAgICBsZWdhY3lQcHRVbnN1cHBvcnRlZDogJ0xhIHByZXZpc3VhbGl6YWNpw7NuIGRlIGFyY2hpdm9zIC5wcHQgbm8gZXN0w6EgZGlzcG9uaWJsZS4gVXNhIGZvcm1hdG8gLnBwdHguJyxcbiAgICAgICAgICBzbGlkZUxhYmVsOiAnRGlhcG9zaXRpdmEge3tudW1iZXJ9fScsXG4gICAgICAgICAgZW1wdHlTbGlkZTogJ0VzdGEgZGlhcG9zaXRpdmEgbm8gdGllbmUgdGV4dG8gbmkgaW3DoWdlbmVzIHBhcmEgcHJldmlzdWFsaXphci4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnwr9EZXNlYXMgZWxpbWluYXIgZXN0YSBjb252ZXJzYWNpw7NuPycsXG4gICAgICBmaXJzdFBhcnQ6ICdFc3TDoXMgcG9yIGVsaW1pbmFyJyxcbiAgICAgIHNlY29uZFBhcnQ6ICdFc3RhIGFjY2nDs24gZXMgaXJyZXZlcnNpYmxlLicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgICBkZWxldGU6ICdFbGltaW5hcicsXG4gICAgfSxcbiAgICBkZWxldGVTa2lsbE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ8K/RGVzZWFzIGVsaW1pbmFyIGVzdGEgc2tpbGw/JyxcbiAgICAgIGZpcnN0UGFydDogJ0VzdMOhcyBwb3IgZWxpbWluYXInLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYWNjacOzbiBlcyBpcnJldmVyc2libGUuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIGRlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICB9LFxuICAgIGVkaXRRdWVzdGlvbk1vZGFsOiB7XG4gICAgICBuZXdOYW1lOiAnTnVldm8gbm9tYnJlJyxcbiAgICAgIHRpdGxlOiAnUmVub21icmFyIGNvbnZlcnNhY2nDs24nLFxuICAgICAgcmVuYW1lOiAnUmVub21icmFyJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIG1heExlbmd0aDogJ0NvbXBsZXRhc3RlIGxvcyAxNDAgY2FyYWN0ZXJlcyBkZWwgbMOtbWl0ZS4nLFxuICAgIH0sXG4gICAgbW9kYWxGaWxlRXhjZWVkczoge1xuICAgICAgbGltaXRGaWxlc1RpdGxlOiAnSGFzIHN1cGVyYWRvIGVsIGzDrW1pdGUgZGUgYWRqdW50b3MuJyxcbiAgICAgIGxpbWl0U2l6ZVRpdGxlOiAnSGFzIHN1cGVyYWRvIGVsIGzDrW1pdGUgZGUgcGVzbyBwZXJtaXRpZG8uJyxcbiAgICAgIGxpbWl0RmlsZXNEZXNjcmlwdGlvbjpcbiAgICAgICAgJ1NvbG8gcHVlZGVzIGFkanVudGFyIGhhc3RhIDUgYXJjaGl2b3MgcG9yIG1lbnNhamUuIExvcyBzaWd1aWVudGVzIGFyY2hpdm9zIG5vIHNlIHB1ZGllcm9uIGFkanVudGFyOicsXG4gICAgICBsaW1pdFNpemVEZXNjcmlwdGlvbjpcbiAgICAgICAgJ1VubyBvIG3DoXMgc3VwZXJhbiBlbCB0YW1hw7FvIG3DoXhpbW8gcGVybWl0aWRvIHBvciB0aXBvLiBMb3Mgc2lndWllbnRlcyBhcmNoaXZvcyBubyBzZSBwdWRpZXJvbiBhZGp1bnRhcjonLFxuICAgICAgYWNjZXB0OiAnQWNlcHRhcicsXG4gICAgICBsaW1pdDogJ2zDrW1pdGUnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRnVlbnRlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50ZXMnLFxuICAgICAgbmV3QWdlbnQ6ICdOdWV2byBhZ2VudGUnLFxuICAgICAgY3JlYXRlQWdlbnQ6ICdDcmVhciBBZ2VudGUnLFxuICAgICAgZWRpdDogJ0VkaXRhcicsXG4gICAgICBtYWlhOiAnKEVzcGVjaWFsaXN0YSBkZSBwcm95ZWN0byknLFxuICAgICAgYWRkRmF2b3JpdGU6ICdBZ3JlZ2FyIGEgZmF2b3JpdG9zJyxcbiAgICAgIHJlbW92ZUZhdm9yaXRlOiAnUXVpdGFyIGRlIGZhdm9yaXRvcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3M6ICdBZ2VudGUgYWdyZWdhZG8gYSBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3M6ICdBZ2VudGUgcmVtb3ZpZG8gZGUgZmF2b3JpdG9zJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZEVycm9yOiAnTm8gc2UgcHVkbyBndWFyZGFyIHR1IGZhdm9yaXRvLiBJbnRlbnRhIG51ZXZhbWVudGUuJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvcjogJ05vIHNlIHB1ZG8gcXVpdGFyIGVsIGZhdm9yaXRvLiBJbnRlbnRhIG51ZXZhbWVudGUuJyxcbiAgICAgIG1haWFJbnRyb2R1Y3Rpb246ICdCaWVudmVuaWRvIGEgTUFJQSB0dSBhc2lzdGVudGUsIHBhcmEgbWVqb3JhciB0dSBkw61hIGEgZMOtYS4nLFxuICAgIH0sXG4gICAgY29udmVyc2F0aW9uczoge1xuICAgICAgdGl0bGU6ICdNaXMgY29udmVyc2FjaW9uZXMnLFxuICAgICAgYWdlbnRzU2VjdGlvblRpdGxlOiAnQWdlbnRlcycsXG4gICAgICBtYWlha2VyTmF2OiAnQ3JlYWRvciBkZSBhZ2VudGVzJyxcbiAgICAgIG15QWdlbnRzTmF2OiAnTWlzIGFnZW50ZXMnLFxuICAgICAgbXlTa2lsbHNOYXY6ICdNaXMgc2tpbGxzJyxcbiAgICAgIGVycm9yOiAnT2N1cnJpw7MgdW4gZXJyb3IgYWwgY2FyZ2FyIGVsIGhpc3RvcmlhbCBkZSBjb252ZXJzYWNpb25lcycsXG4gICAgICBlbXB0eTogJ0FxdcOtIHNlIG1vc3RyYXLDoW4gdG9kYXMgdHVzIGNvbnZlcnNhY2lvbmVzIGNvbiBsb3MgYWdlbnRlcycsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVuc2FqZSBjb24gYXJjaGl2b3MnLFxuICAgICAgdW5yZWFkTGFiZWw6ICdTaW4gbGVlcicsXG4gICAgICBtaW5pbWl6ZWRPcGVuOiAnQWJyaXIgTUFJQScsXG4gICAgICBtaW5pbWl6ZWRTZWVBbnN3ZXI6ICdWZXIgcmVzcHVlc3RhJyxcbiAgICAgIGNvbGxhcHNlOiAnQ29sYXBzYXInLFxuICAgICAgZXhwYW5kOiAnRXhwYW5kaXInLFxuICAgICAgbmV3Q2hhdDogJ051ZXZvIGNoYXQnLFxuICAgICAgZ2VuZXJhdGluZzogJ0dlbmVyYW5kbyByZXNwdWVzdGEnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkOiAne3t0aXRsZX19IHRlcm1pbsOzIGRlIHJlc3BvbmRlcicsXG4gICAgICBzZXNzaW9uRmluaXNoZWRBcHByb3ZhbDogJ3t7dGl0bGV9fSByZXF1aWVyZSB0dSBhcHJvYmFjacOzbicsXG4gICAgICBzZXNzaW9uRmluaXNoZWRFcnJvcjogJ3t7dGl0bGV9fSB0dXZvIHVuIGVycm9yIGFsIHJlc3BvbmRlcicsXG4gICAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JlYXIgYWdlbnRlJyxcbiAgICAgIG9wZW5NYXJrZXRwbGFjZTogJ01hcmtldHBsYWNlIGRlIGFnZW50ZXMnLFxuICAgIH0sXG4gICAgbWFya2V0cGxhY2U6IHtcbiAgICAgIGJhY2s6ICdWb2x2ZXInLFxuICAgICAgdGl0bGU6ICdJZGVhcyBwYXJhIGNyZWFyIGFnZW50ZXMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdFbGVnw60gdW5hIHN1Z2VyZW5jaWEgYmllbiBhcm1hZGEgeSBhYnLDrSBlbCBlZGl0b3IgY29uIGVsIGFnZW50ZSB5YSBwcmVjYXJnYWRvIHBhcmEgYWRhcHRhcmxvIGEgdHUgY2Fzby4nLFxuICAgICAgbXlBZ2VudHNUaXRsZTogJ01pcyBhZ2VudGVzJyxcbiAgICAgIG15QWdlbnRzUmVhZHlUaXRsZTogJ1R1cyBhZ2VudGVzIGVzdGFuIGxpc3RvcyBwYXJhIGF5dWRhcnRlIGVuIHRhcmVhcycsXG4gICAgICBteUFnZW50c0Rlc2NyaXB0aW9uOiAnRXN0b3Mgc29uIHR1cyBhZ2VudGVzIGN1c3RvbS4gU2VsZWNjaW9uYSB1bm8gcGFyYSBlbXBlemFyIGEgY29udmVyc2FyIGNvbiBlc2UgcGVyZmlsLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVUaXRsZTogJ0HDum4gbm8gdGllbmVzIGFnZW50ZXMgY3JlYWRvcycsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbjogJ0hheiBjbGljIGVuIGVsIGJvdMOzbiBkZSBhYmFqbyBwYXJhIGVtcGV6YXIgYSBjcmVhciBhZ2VudGVzIGEgdHUgbWVkaWRhLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgJ0N1YW5kbyBsYSBwZXJzb25hIGNvbiBwZXJtaXNvcyBwYXJhIGNyZWFybG9zIGxvcyBjb25maWd1cmUsIHZhcyBhIHBvZGVyIGFjY2VkZXIgZGVzZGUgYWPDoS4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uOiAnQ3JlYXIgYWdlbnRlJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tJbnRybzogJ0FnZW50ZSBwZXJzb25hbGl6YWRvIGxpc3RvIHBhcmEgYXl1ZGFydGUgZW4gdHUgZmx1am8gZGUgdHJhYmFqby4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uOiAnSGF6IGNsaWNrIGVuIHVzYXIgYWdlbnRlIHBhcmEgaW5pY2lhciB1bmEgY29udmVyc2FjacOzbiBjb24gZXN0ZSBhZ2VudGUuJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEYXRlOiAnSGFjZSBwb2NvcyBkaWFzJyxcbiAgICAgIG15QWdlbnRzVG9kYXk6ICdIb3knLFxuICAgICAgbXlBZ2VudHNPbmVEYXlBZ286ICdIYWNlIDEgZGlhJyxcbiAgICAgIG15QWdlbnRzRGF5c0FnbzogJ0hhY2Uge3tkYXlzfX0gZGlhcycsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogJ01lbnUgZGUgYWNjaW9uZXMgZGVsIGFnZW50ZScsXG4gICAgICB1c2U6ICdVc2FyJyxcbiAgICAgIGNyZWF0ZUFnZW50OiAnQ3JlYXIgYWdlbnRlIG1hbnVhbG1lbnRlJyxcbiAgICAgIHNlYXJjaEFnZW50UGxhY2Vob2xkZXI6ICdCdXNjYXIgYWdlbnRlLi4uJyxcbiAgICAgIHNlYXJjaE1pbkxlbmd0aDogJ23DrW4uIDMgY2FyYWN0ZXJlcycsXG4gICAgICBzZWFyY2hOb1Jlc3VsdHM6ICdObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zLicsXG4gICAgICBzZWFyY2hOb1Jlc3VsdHNTdWJ0aXRsZTogJ0NyZWEgdW4gYWdlbnRlIGRlIElBIHF1ZSBwdWVkYSBwZW5zYXIsIGFjdHVhciB5IGF1dG9tYXRpemFyIGVsIHRyYWJham8gcGFyYSB0aScsXG4gICAgICB1c2VUZW1wbGF0ZTogJ0NyZWFyIGRlc2RlIGVzdGEgaWRlYScsXG4gICAgICB1c2VNeUFnZW50OiAnVXNhciBhZ2VudGUnLFxuICAgICAgYmFkZ2VzOiB7XG4gICAgICAgIGJyYW5kaW5nOiAnQnJhbmRpbmcnLFxuICAgICAgICBsaW5rZWRpbjogJ0xpbmtlZEluJyxcbiAgICAgICAgbWFya2V0aW5nOiAnTWFya2V0aW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBteVNraWxsczoge1xuICAgICAgdGl0bGU6ICdUdXMgc2tpbGxzIGxpc3RhcyBwYXJhIHBvdGVuY2lhciBhIHR1cyBhZ2VudGVzJyxcbiAgICAgIHN1YnRpdGxlOiAnTGFzIHNraWxscyBzb24gZ2xvYmFsZXM6IGVzdMOhbiBkaXNwb25pYmxlcyBwYXJhIHRvZG9zIHR1cyBhZ2VudGVzLicsXG4gICAgICBjcmVhdGVTa2lsbDogJ0NyZWFyIHNraWxsJyxcbiAgICAgIHByZXZpZXc6ICdWaXN0YSBwcmV2aWEnLFxuICAgICAgcHJldmlld0VtcHR5OiAnTmFkYSBwYXJhIHByZXZpc3VhbGl6YXIgdG9kYXbDrWEuJyxcbiAgICAgIHVwbG9hZE1kOiAnU3ViaXIgLm1kJyxcbiAgICAgIHVwbG9hZEVycm9yOiAnU29sbyBzZSBwZXJtaXRlbiBhcmNoaXZvcyAubWQnLFxuICAgICAgY3JlYXRlV2l0aE1haWE6ICdDcmVhciBjb24gTWFpYScsXG4gICAgICB3cml0ZUluc3RydWN0aW9uczogJ0VzY3JpYmlyIGluc3RydWNjaW9uZXMnLFxuICAgICAgdXBsb2FkU2tpbGw6ICdTdWJpciB1bmEgc2tpbGwnLFxuICAgICAgZ2VuZXJhdGVQbGFjZWhvbGRlcjogJ1F1aWVybyB1bmEgU2tpbGwgcGFyYSBjcmVhciBtaXMgcHJveWVjdG9zJyxcbiAgICAgIGdlbmVyYXRlV2l0aE1haWE6ICdDcmVhciBsYSBTa2lsbCBjb24gTWFpYScsXG4gICAgICBnZW5lcmF0ZU5lZWRzTmFtZTogJ0VzY3JpYsOtIHVuIG5vbWJyZSBwcmltZXJvIHBhcmEgZGVzY3JpYmlyIGxhIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlU3VjY2VzczogJ1NraWxsIGdlbmVyYWRhIGNvbiBNYWlhJyxcbiAgICAgIGdlbmVyYXRlRXJyb3I6ICdObyBzZSBwdWRvIGdlbmVyYXIgbGEgc2tpbGwuIEludGVudGEgbnVldmFtZW50ZS4nLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6ICdNZW7DuiBkZSBhY2Npb25lcyBkZSBsYSBza2lsbCcsXG4gICAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICAgIGRlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIHNhdmU6ICdHdWFyZGFyJyxcbiAgICAgIGNsb3NlOiAnQ2VycmFyJyxcbiAgICAgIGNyZWF0ZVRpdGxlOiAnTnVldmEgc2tpbGwnLFxuICAgICAgZWRpdFRpdGxlOiAnRWRpdGFyIHNraWxsJyxcbiAgICAgIG5hbWVMYWJlbDogJ05vbWJyZScsXG4gICAgICBuYW1lUGxhY2Vob2xkZXI6ICdOb21icmUgZGUgbGEgc2tpbGwnLFxuICAgICAgY29udGVudExhYmVsOiAnU2tpbGwnLFxuICAgICAgY29udGVudFBsYWNlaG9sZGVyOiAnRXNjcmliZSBsYSBza2lsbC4uLicsXG4gICAgICBlbXB0eVN0YXRlVGl0bGU6ICdBw7puIG5vIHRpZW5lcyBza2lsbHMgY3JlYWRhcycsXG4gICAgICBlbXB0eVN0YXRlRGVzY3JpcHRpb246ICdIYXogY2xpYyBlbiBlbCBib3TDs24gZGUgYWJham8gcGFyYSBlbXBlemFyIGEgY3JlYXIgdHVzIHNraWxscy4nLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtOlxuICAgICAgICAnQ3VhbmRvIGxhIHBlcnNvbmEgY29uIHBlcm1pc29zIHBhcmEgY3JlYXJsYXMgbGFzIGNvbmZpZ3VyZSwgdmFzIGEgcG9kZXIgYWNjZWRlciBkZXNkZSBhY8OhLicsXG4gICAgICBlbXB0eVN0YXRlQnV0dG9uOiAnQ3JlYXIgc2tpbGwnLFxuICAgICAgY3JlYXRlU3VjY2VzczogJ1NraWxsIGNyZWFkYSBjb24gw6l4aXRvJyxcbiAgICAgIGNyZWF0ZUVycm9yOiAnTm8gc2UgcHVkbyBjcmVhciBsYSBza2lsbC4gSW50ZW50YSBudWV2YW1lbnRlLicsXG4gICAgICB1cGRhdGVTdWNjZXNzOiAnU2tpbGwgYWN0dWFsaXphZGEgY29uIMOpeGl0bycsXG4gICAgICB1cGRhdGVFcnJvcjogJ05vIHNlIHB1ZG8gYWN0dWFsaXphciBsYSBza2lsbC4gSW50ZW50YSBudWV2YW1lbnRlLicsXG4gICAgICBkZWxldGVTdWNjZXNzOiAnU2tpbGwgZWxpbWluYWRhIGNvbiDDqXhpdG8nLFxuICAgICAgZGVsZXRlRXJyb3I6ICdObyBzZSBwdWRvIGVsaW1pbmFyIGxhIHNraWxsLiBJbnRlbnRhIG51ZXZhbWVudGUuJyxcbiAgICB9LFxuICAgIHNuYWNrYmFyOiB7XG4gICAgICBkZWxldGVDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdUdSBjb252ZXJzYWNpw7NuIGZ1ZSBlbGltaW5hZGEgY29uIMOpeGl0by4nLFxuICAgICAgICBlcnJvcjogJ09jdXJyacOzIHVuIGVycm9yIGluZXNwZXJhZG8uIFBvciBmYXZvciB2dWVsdmUgYSBpbnRlbnRhcmxvLicsXG4gICAgICB9LFxuICAgICAgcmVuYW1lZENoYXQ6IHtcbiAgICAgICAgc3VjY2VzczogJ0NvbnZlcnNhY2nDs24gcmVub21icmFkYSBjb24gw6l4aXRvJyxcbiAgICAgICAgZXJyb3I6ICdPY3VycmnDsyB1biBlcnJvciBpbmVzcGVyYWRvLiBQb3IgZmF2b3IgdnVlbHZlIGEgaW50ZW50YXJsby4nLFxuICAgICAgfSxcbiAgICAgIGxvYWRNb3JlQWdlbnRzOiB7XG4gICAgICAgIGVycm9yOiAnT2N1cnJpw7MgdW4gZXJyb3IgaW5lc3BlcmFkby4gUG9yIGZhdm9yIHZ1ZWx2ZSBhIGludGVudGFybG8uJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhcHByb3ZhbEJveDoge1xuICAgICAgdW50aXRsZWRBZ2VudDogJ0FnZW50ZSBzaW4gbm9tYnJlJyxcbiAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgY3JlYXRlX3Rhc2s6ICdDcmVhY2nDs24gZGUgdGFyZWEnLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcmVhY2nDs24gZGUgdGFyZWFzJyxcbiAgICAgICAgY3JlYXRlX2FnZW50OiAnQ3JlYWNpw7NuIGRlIGFnZW50ZScsXG4gICAgICAgIGVkaXRfYWdlbnQ6ICdFZGljacOzbiBkZSBhZ2VudGUnLFxuICAgICAgICBlZGl0X3Byb2plY3Q6ICdFZGljacOzbiBkZSBwcm95ZWN0bycsXG4gICAgICAgIGVkaXRfdGFzazogJ0VkaWNpw7NuIGRlIHRhcmVhJyxcbiAgICAgICAgZWRpdF90YXNrc19iYXRjaDogJ0VkaWNpw7NuIGRlIHRhcmVhcycsXG4gICAgICAgIGRlbGV0ZV90YXNrOiAnRWxpbWluYWNpw7NuIGRlIHRhcmVhJyxcbiAgICAgICAgZGVsZXRlX3Rhc2tzX2JhdGNoOiAnRWxpbWluYWNpw7NuIGRlIHRhcmVhcycsXG4gICAgICAgIHRhc2tfYXNzaWduOiAnQXNpZ25hY2nDs24gZGUgdXN1YXJpbycsXG4gICAgICAgIHRhc2tfdW5hc3NpZ246ICdEZXNhc2lnbmFjacOzbiBkZSB1c3VhcmlvJyxcbiAgICAgICAgYXNzaWduX3Rhc2tfbGFiZWw6ICdBc2lnbmFjacOzbiBkZSBldGlxdWV0YScsXG4gICAgICAgIGNyZWF0ZV9sYWJlbHM6ICdDcmVhY2nDs24gZGUgZXRpcXVldGEnLFxuICAgICAgICB1cGRhdGVfdGFza190eXBlOiAnQWN0dWFsaXphY2nDs24gZGUgdGlwbyBkZSB0YXJlYScsXG4gICAgICAgIHVwZGF0ZV9lc3RpbWF0ZWRfaG91cnM6ICdBY3R1YWxpemFjacOzbiBkZSBob3JhcyBlc3RpbWFkYXMnLFxuICAgICAgICB1cGRhdGVfZGVsaXZlcmFibGU6ICdBY3R1YWxpemFjacOzbiBkZSBlbnRyZWdhYmxlJyxcbiAgICAgICAgY3JlYXRlX2hvdXI6ICdDYXJnYSBkZSBob3JhcycsXG4gICAgICAgIGNyZWF0ZV9jaGVja2xpc3Q6ICdDcmVhY2nDs24gZGUgY2hlY2tsaXN0JyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdF9pdGVtOiAnQ3JlYWNpw7NuIGRlIMOtdGVtIGRlbCBjaGVja2xpc3QnLFxuICAgICAgICBjbG9uZV90YXNrOiAnQ2xvbmFyIHRhcmVhJyxcbiAgICAgICAgZ2V0X3Rhc2tfZGF0ZV9ob3VyczogJ0NvbnN1bHRhIGRlIGhvcmFzIHBvciBmZWNoYScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6ICdDYW1iaWFyIHZpc2liaWxpZGFkIGRlbCBhZ2VudGUnLFxuICAgICAgICBzZW5kX3Rhc2tfbWVzc2FnZTogJ0VudsOtbyBkZSBtZW5zYWplIGVuIGxhIHRhcmVhJyxcbiAgICAgICAgZGVsZXRlX2NoZWNrbGlzdF9pdGVtOiAnRWxpbWluYWNpw7NuIGRlIMOtdGVtIGRlbCBjaGVja2xpc3QnLFxuICAgICAgICByZW1vdmVfdGFza190eXBlOiAnRWxpbWluYWNpw7NuIGRlIHRpcG8gZGUgdGFyZWEnLFxuICAgICAgICByZW1vdmVfdGFza19sYWJlbDogJ0VsaW1pbmFjacOzbiBkZSBldGlxdWV0YScsXG4gICAgICAgIGNvdW50X2RlbGl2ZXJhYmxlOiAnQWN0dWFsaXphY2nDs24gZGVsIGNvbnRhZG9yIGRlIGVudHJlZ2FibGVzJyxcbiAgICAgICAgY3JlYXRlX3Jld29yazogJ0NyZWFjacOzbiBkZSByZXRyYWJham8nLFxuICAgICAgICB1cGRhdGVfcmV3b3JrOiAnQWN0dWFsaXphY2nDs24gZGUgcmV0cmFiYWpvJyxcbiAgICAgICAgZGVsZXRlX2FnZW50OiAnRWxpbWluYWNpw7NuIGRlIGFnZW50ZScsXG4gICAgICAgIHVua25vd246ICdBY2Npw7NuIGRlc2Nvbm9jaWRhJyxcbiAgICAgIH0sXG4gICAgICBzcGVjaWFsOiB7XG4gICAgICAgIGNyZWF0ZVJld29yazoge1xuICAgICAgICAgIHRpdGxlOiAnQ3JlYXIgcmV0cmFiYWpvJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NlIGNyZWFyw6EgdW4gcmV0cmFiYWpvIGVuIGxhIHRhcmVhIGNvbiBsYSBpbmZvcm1hY2nDs24gaW5kaWNhZGEuJyxcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbjoge1xuICAgICAgICAgIHRpdGxlOiAnQWN0dWFsaXphciBhdmFuY2UgZGUgZW50cmVnYWJsZXMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2UgYWN0dWFsaXphcsOhIGVsIGF2YW5jZSBkZSBsb3Mgc3ViZW50cmVnYWJsZXMgdmluY3VsYWRvcyBhIGVzdGEgdGFyZWEuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgbmFtZTogJ05vbWJyZScsXG4gICAgICAgIGVtb2ppOiAnRW1vamknLFxuICAgICAgICBpbnRyb2R1Y3Rpb246ICdJbnRyb2R1Y2Npw7NuJyxcbiAgICAgICAgaW5wdXRfcGxhY2Vob2xkZXI6ICdQbGFjZWhvbGRlcicsXG4gICAgICAgIHVzZXJfcHJvbXB0OiAnUHJvbXB0IHByaW5jaXBhbCcsXG4gICAgICAgIGxhbmd1YWdlOiAnSWRpb21hJyxcbiAgICAgICAgcHJvdmlkZXI6ICdQcm92aWRlcicsXG4gICAgICAgIG1vZGVsX25hbWU6ICdNb2RlbG8nLFxuICAgICAgICBhcGlfa2V5OiAnQVBJIGtleScsXG4gICAgICB9LFxuICAgICAgdGl0bGU6ICdDb25maXJtYWNpw7NuIHJlcXVlcmlkYScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NlIHJlcXVpZXJlIHR1IGFwcm9iYWNpw7NuIHBhcmEgZWplY3V0YXIgbGEgc2lndWllbnRlIGFjY2nDs246JyxcbiAgICAgIGFwcHJvdmU6ICdBcHJvYmFyJyxcbiAgICAgIGRlbnk6ICdEZW5lZ2FyJyxcbiAgICAgIG1hbnVhbEFwcHJvdmFsV2FybmluZzogJ01haWEgaGEgZGV0ZWN0YWRvIHF1ZSBsYSBzb2xpY2l0dWQgaGEgc2lkbyBhcHJvYmFkYSBtYW51YWxtZW50ZScsXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgYXBwcm92ZWQ6ICdTb2xpY2l0dWQgQXByb2JhZGEnLFxuICAgICAgICBkZW5pZWQ6ICdTb2xpY2l0dWQgRGVuZWdhZGEnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoaXBMbG06IHtcbiAgICAgIHRvb2x0aXA6ICdNb2RlbG86IHt7bW9kZWx9fScsXG4gICAgfSxcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgcHJvamVjdDogJ3Byb3llY3RvJyxcbiAgICAgIHByb2plY3RzOiAncHJveWVjdG9zJyxcbiAgICB9LFxuICB9LFxuICBbU0VDVElPTlMuYWJtQWdlbnRdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgbGVnZW5kRGVsZXRlZEFnZW50OiAnRXN0ZSBhZ2VudGUgaGEgc2lkbyBlbGltaW5hZG8gZWwgZMOtYScsXG4gICAgbGVnZW5kUHJvamVjdERlbGV0ZWQ6ICdFbCBwcm95ZWN0byB7e25hbWV9fSBoYSBzaWRvIGVsaW1pbmFkby4gTm8gZXMgcG9zaWJsZSBjb250aW51YXIgY29uIGxhIGNvbnZlcnNhY2nDs24nLFxuICAgIGxlZ2VuZE5vQWNjZXNzOiAnWWEgbm8gdGllbmVzIGFjY2VzbyBwYXJhIGludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZE5vUGVybWlzc2lvbnM6ICdZYSBubyB0aWVuZXMgcGVybWlzb3MgcGFyYSB2aXN1YWxpemFyIG5pIGludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZExlZ2FjeUNvbnRleHRTZXNzaW9uOlxuICAgICAgJ0VzdGEgY29udmVyc2FjacOzbiBwZXJ0ZW5lY2UgYSB1biBjb250ZXh0byBhbnRlcmlvci4gUG9kw6lzIGNvbnRpbnVhciBjb24ge3tuYW1lfX0gZW4gdW4gY2hhdCBudWV2by4nLFxuICAgIGNvbnRpbnVlSW5OZXdDaGF0OiAnQ29udGludWFyIGVuIHVuIGNoYXQgbnVldm8nLFxuICAgIGxlZ2VuZE1vZGVsRGVwcmVjYXRlZDpcbiAgICAgICdFbCBtb2RlbG8gc2VsZWNjaW9uYWRvIHBhcmEgZXN0ZSBhZ2VudGUgeWEgbm8gZXN0w6EgZGlzcG9uaWJsZS4gQ2FtYmlhIGEgb3RybyBtb2RlbG8gcGFyYSBzZWd1aXIgdXRpbGl6w6FuZG9sby4nLFxuICAgIGxlZ2VuZFByb3ZpZGVyU3RhdHVzOlxuICAgICAgJ0VsIG1vZGVsbyBxdWUgdXNhIGVzdGUgYWdlbnRlIGVzdMOhIHRlbmllbmRvIHByb2JsZW1hcyB0ZW1wb3JhbGVzLiBQdWVkZXMgZXNwZXJhciBhIHF1ZSBzZSByZXN0YWJsZXpjYSBvIGNhbWJpYXIgYSBvdHJvIG1vZGVsby4nLFxuICAgIGNoYW5nZU1vZGVsOiAnQ2FtYmlhciBtb2RlbG8nLFxuICAgIGFnZW50czogJ0FnZW50ZXMnLFxuICAgIGxheW91dE1lbnVUb29sdGlwOiAnRGlzcG9zaWNpw7NuIGRlbCBjaGF0JyxcbiAgICBsYXlvdXRTaWRlYmFyOiAnQ2hhdCBsYXRlcmFsJyxcbiAgICBsYXlvdXRGdWxsc2NyZWVuOiAnQ2hhdCBjb21wbGV0bycsXG4gICAgbGF5b3V0RmxvYXRpbmc6ICdDaGF0IGZsb3RhbnRlJyxcbiAgICBiYWNrOiAnVm9sdmVyJyxcbiAgICBhZGRBZ2VudDogJ0FncmVnYXIgbnVldm8gYWdlbnRlJyxcbiAgICBuZXdBZ2VudDogJ051ZXZvIGFnZW50ZScsXG4gICAgZWRpdEFnZW50OiAnRWRpdGFyIGFnZW50ZScsXG4gICAgY3JlYXRlQWdlbnQ6ICdDcmVhciBBZ2VudGUnLFxuICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICBhY2NlcHQ6ICdBY2VwdGFyJyxcbiAgICBkZWxldGVBZ2VudDogJ0VsaW1pbmFyIGFnZW50ZScsXG4gICAgY29udGludWU6ICdDb250aW51YXInLFxuICAgIGVkaXQ6ICdFZGl0YXInLFxuICAgIGRlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICBmZWVkYmFjazogJ0VudmlhciBGZWVkYmFjaycsXG4gICAgc2VuZEZlZWRiYWNrOiAnRW52aWFyIGZlZWRiYWNrJyxcbiAgICBzYXZlQ2hhbmdlczogJ0d1YXJkYXIgY2FtYmlvcycsXG4gICAgY3JlYXRlQWdlbnRMYWJlbEJ1dHRvbjogJ0NyZWFyIGFnZW50ZScsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyZWFyIGFnZW50ZScsXG4gICAgb3Blbk1hcmtldHBsYWNlOiAnTWFya2V0cGxhY2UgZGUgYWdlbnRlcycsXG4gICAgY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yOiAnRWwgYWdlbnRlIHNlIGVkaXTDsyBleGl0b3NhbWVudGUsIHBlcm8gaGF5IGFyY2hpdm9zIHF1ZSBubyBwdWRpZXJvbiBwcm9jZXNhcnNlLicsXG4gICAgY29uZmlybUFnZW50Q3JlYXRlZDogJ0VsIGFnZW50ZSBzZSBoYSBjcmVhZG8gY29uIMOpeGl0bycsXG4gICAgY29uZmlybUFnZW50RGVsZXRlZDogJ0VsIGFnZW50ZSBzZSBoYSBlbGltaW5hZG8gY29uIMOpeGl0bycsXG4gICAgY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3I6ICdFbCBhZ2VudGUgc2UgY3Jlw7MgZXhpdG9zYW1lbnRlLCBwZXJvIGhheSBhcmNoaXZvcyBxdWUgbm8gcHVkaWVyb24gcHJvY2VzYXJzZS4nLFxuICAgIGNvbmZpcm1BZ2VudFVwZGF0ZWQ6ICdFbCBhZ2VudGUgc2UgaGEgYWN0dWFsaXphZG8gY29uIMOpeGl0bycsXG4gICAgY29uZmlybUNsb3NlQ3JlYXRlQWdlbnQ6ICfCv0VzdMOhcyBzZWd1cm8gZGUgcXVlIHF1aWVyZXMgY2VycmFyPyBTZSBwZXJkZXLDoW4gbG9zIGNhbWJpb3MgcmVhbGl6YWRvcy4nLFxuICAgIGNvbmZpcm1DbG9zZUVkaXRBZ2VudDogJ8K/RXN0w6FzIHNlZ3VybyBkZSBxdWUgcXVpZXJlcyBjZXJyYXI/IFNlIHBlcmRlcsOhbiBsb3MgY2FtYmlvcyByZWFsaXphZG9zLicsXG4gICAgY29uZmlybVJlbG9hZEJyb3dzZXI6ICfCv0VzdMOhcyBzZWd1cm8gZGUgcXVlIHF1aWVyZXMgcmVjYXJnYXIgbGEgcMOhZ2luYT8gU2UgcGVyZGVyw6FuIGxvcyBjYW1iaW9zIHJlYWxpemFkb3MuJyxcbiAgICBlcnJvckFjY2Vzc0RlbmllZDogJ05vIHRpZW5lcyBwZXJtaXNvcyBwYXJhIGFjY2VkZXIgYSBlc3RlIGFnZW50ZS4gQ29udGFjdGEgY29uIHNvcG9ydGUuJyxcbiAgICBlcnJvckFnZW50Q3JlYXRlZDogJ09jdXJyacOzIHVuIGVycm9yIGluZXNwZXJhZG8uIFBvciBmYXZvciB2dWVsdmUgYSBpbnRlbnRhcmxvLicsXG4gICAgYXR0YWNobWVudENhcmQ6IHtcbiAgICAgIGRvd25sb2FkOiAnRGVzY2FyZ2FyJyxcbiAgICAgIGRlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICB9LFxuICAgIGdlbmVyYWxTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ0dlbmVyYWwnLFxuICAgICAgZ2VuZXJhbFNldHRpbmdzOiAnQ29uZmlndXJhY2nDs24gZ2VuZXJhbCcsXG4gICAgICByZXF1aXJlZEZpZWxkc0xhYmVsOiAnKm9ibGlnYXRvcmlvcycsXG4gICAgICBpbmZvTGFiZWw6ICdBZ3JlZ2EgdG9kYSBsYSBpbmZvcm1hY2nDs24gcGFyYSBwZXJzb25hbGl6YXIgZWwgY29tcG9ydGFtaWVudG8gZGUgdHUgYWdlbnRlJyxcbiAgICAgIG9wdGlvbmFsTGFiZWw6ICdPcGNpb25hbCcsXG4gICAgICBiYXNpY1NldHRpbmdzOiAnQ29uZmlndXJhY2nDs24gYsOhc2ljYScsXG4gICAgICBzZWxlY3RFbW9qaTogJ1NlbGVjY2lvbmFyIGVtb2ppJyxcbiAgICAgIG5hbWU6ICfCv0N1w6FsIGVzIGVsIG5vbWJyZSBkZSB0dSBhZ2VudGU/JyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ0Fzw61nbmFsZSB1biBub21icmUgYSB0dSBhZ2VudGUnLFxuICAgICAgYmVoYXZpb3JTZXR0aW5nczogJ0NvbmZpZ3VyYWNpw7NuIGRlIGNvbXBvcnRhbWllbnRvJyxcbiAgICAgIGluaXRpYWxQcm9tcHQ6ICfCv0N1w6FsZXMgc29uIGxhcyBpbnN0cnVjY2lvbmVzPycsXG4gICAgICBpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXI6XG4gICAgICAgICdFamVtcGxvOiBFcmVzIHVuIHNvY2lhbCBtZWRpYSBjb3B5d3JpdGVyIHF1ZSByZWRhY3RhIHkgYWRhcHRhIG1lbnNhamVzIHBhcmEgZGlmZXJlbnRlcyByZWRlcywgYXNlZ3VyYW5kbyBjb25zaXN0ZW5jaWEgZW4gZWwgdG9ubywgbGEgcGVyc29uYWxpZGFkIHkgbG9zIHZhbG9yZXMgZGUgbGEgbWFyY2EuXCInLFxuICAgICAgbW9kZWxBaUxhYmVsOiAnTW9kZWxvIGRlIEFJJyxcbiAgICAgIG5vTW9kZWxzQXZhaWxhYmxlOiAnTm8gaGF5IG1vZGVsb3MgZGlzcG9uaWJsZXMnLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlclRpdGxlOiAnwr9RdcOpIHZlcsOhIGVsIHVzdWFyaW8gZW4gZWwgY2FtcG8gZGUgY2hhdCBhbnRlcyBkZSBlc2NyaWJpcj8nLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlcjogJ1ByZWfDum50YW1lIGxvIHF1ZSBuZWNlc2l0ZXPigKYnLFxuICAgICAgaW50cm9kdWN0aW9uOiAnwr9Dw7NtbyBzZSB2YSBhIHByZXNlbnRhciB0dSBhZ2VudGU/JyxcbiAgICAgIGludHJvZHVjdGlvblBsYWNlaG9sZGVyOlxuICAgICAgICAnRWplbXBsbzogwqFIb2xhISDwn5GLLiBUZSB2b3kgYSBheXVkYXIgYSBjcmVhciwgYWRhcHRhciB5IHJldmlzYXIgY29weXMgcGFyYSBkaXN0aW50YXMgcGxhdGFmb3JtYXMgYXNlZ3VyYW5kbyBxdWUgbWFudGVuZ2FuIGxhIHZveiwgZWwgdG9ubyB5IGxhIHBlcnNvbmFsaWRhZCBkZSB0dSBtYXJjYS4gUHVlZGVzIHBlZGlybWUgcXVlIHRlIHByb3BvbmdhIGlkZWFzIHBhcmEgdW5hIGNhbXBhw7FhLCBhZGFwdGUgdW4gdGV4dG8gcGFyYSBvdHJvIGNhbmFsIG8gcmV2aXNlIGxhIGNvaGVyZW5jaWEgZGVsIG1lbnNhamUnLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4Q2FyYWN0ZXJOYW1lOiAnQ29tcGxldGFzdGUgbG9zIDE1MCBjYXJhY3RlcmVzIGRlbCBsw61taXRlLicsXG4gICAgICAgIG1heENhcmFjdGVySW5pdGlhbFByb21wdDogJ0NvbXBsZXRhc3RlIGxvcyA1MDAwIGNhcmFjdGVyZXMgZGVsIGzDrW1pdGUuJyxcbiAgICAgICAgbWF4SW5wdXRQbGFjZWhvbGRlcjogJ0NvbXBsZXRhc3RlIGxvcyAxMDAgY2FyYWN0ZXJlcyBkZWwgbMOtbWl0ZS4nLFxuICAgICAgICBtYXhDYXJhY3RlckludHJvZHVjdGlvbjogJ0NvbXBsZXRhc3RlIGxvcyA0MDAgY2FyYWN0ZXJlcyBkZWwgbMOtbWl0ZS4nLFxuICAgICAgfSxcbiAgICAgIGhvd1RvV3JpdGVQcm9tcHQ6ICdDw7NtbyByZWRhY3RhciB1biBwcm9tcHQnLFxuICAgICAgd2hhdElzTW9kZWxBaVRpdGxlOiAnwr9RdcOpIG1vZGVsbyBkZSBJQSB2YXMgYSB1c2FyPycsXG4gICAgICB3aGF0SXNNb2RlbEFpOiAnwr9RdcOpIGVzIHVuIG1vZGVsbyBkZSBBST8nLFxuICAgICAgYWRkRmF2b3JpdGU6ICdBZ3JlZ2FyIGEgZmF2b3JpdG9zJyxcbiAgICAgIHJlbW92ZUZhdm9yaXRlOiAnUXVpdGFyIGRlIGZhdm9yaXRvcycsXG4gICAgICBjcmVhdGVkQnk6ICdQb3InLFxuICAgICAgY3JlYXRlZEJ5VG9vbHRpcDogJ1VzdWFyaW8gY3JlYWRvciBkZWwgYWdlbnRlJyxcbiAgICAgIGNyZWF0ZWRCeVRvb2x0aXBEZWxldGVkOiAnVXN1YXJpbyBlbGltaW5hZG8uIFN1IG5vbWJyZSBzZSBtYW50aWVuZSBwYXJhIHJlZmVyZW5jaWEuJyxcbiAgICB9LFxuICAgIGtub3dsZWRnZVNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnQ29ub2NpbWllbnRvJyxcbiAgICAgIGtub3dsZWRnZVRhYjogJ0Jhc2UgZGUgY29ub2NpbWllbnRvcycsXG4gICAgICBpbmZvTGFiZWw6ICdDYXJnYSBsb3MgYXJjaGl2b3MgcXVlIHR1IGFnZW50ZSB1c2Fyw6EgY29tbyBmdWVudGUgcGFyYSBzdXMgcmVzcHVlc3Rhcy4nLFxuICAgICAgc2VsZWN0RmlsZVRpdGxlOiAnU0VMRUNDSU9OQVIgQVJDSElWT1MnLFxuICAgICAgYXR0YWNoRmlsZXM6ICdBZGp1bnRhciBhcmNoaXZvcycsXG4gICAgICBkcm9wWm9uZVRleHQ6IHtcbiAgICAgICAgMTogJ0NsaWMgYXF1w60gcGFyYSBjYXJnYXInLFxuICAgICAgICAyOiAnbyBhcnJhc3RyYSBsb3MgYXJjaGl2b3MnLFxuICAgICAgfSxcbiAgICAgIGluZm9GaWxlVHlwZXM6XG4gICAgICAgICcubWQsIC5wZGYsIC5kb2MsIC5kb2N4LCAucHB0LCAucHB0eCwgLnR4dCwgLmNzdiwgLnBuZywgLmpwZywgLmpwZWcsIC54bHMsIC54bHN4ICAobcOheC4gdG90YWwgZGUgNU1CKScsXG4gICAgICBlcnJvcjoge1xuICAgICAgICB0aXRsZTogJ0FsZ3Vub3MgYXJjaGl2b3Mgbm8gc2UgcHVkaWVyb24gY2FyZ2FyJyxcbiAgICAgICAgbWF4RmlsZXNUaXRsZTogJ0hhcyBzdXBlcmFkbyBlbCBsw61taXRlIGRlIHRhbWHDsW8gdG90YWwnLFxuICAgICAgICBtYXhGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAgICdTb2xvIHB1ZWRlcyBhZGp1bnRhciBhcmNoaXZvcyBoYXN0YSB1biB0b3RhbCBkZSA1IE1CLiBMb3Mgc2lndWllbnRlcyBhcmNoaXZvcyBubyBzZSBwdWRpZXJvbiBhZGp1bnRhcjonLFxuICAgICAgICBtYXhTaXplVGl0bGU6ICdTdXBlcmFzdGUgZWwgbMOtbWl0ZSBkZSBwZXNvIHBlcm1pdGlkbycsXG4gICAgICAgIG1heFNpemVEZXNjcmlwdGlvbjoge1xuICAgICAgICAgIDE6ICdTZSBhbGNhbnrDsyBlbCBsw61taXRlIG3DoXhpbW8gZGUgNSBNQi4nLFxuICAgICAgICAgIDI6ICdFc3RvcyBhcmNoaXZvcyBubyBzZSBjYXJnYXJvbiBwb3JxdWUgc3VwZXJhIGVsIGVzcGFjaW8gZGlzcG9uaWJsZTonLFxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkRXh0ZW5zaW9uRGVzY3JpcHRpb246IHtcbiAgICAgICAgICAxOiAnU29sbyBzZSBhY2VwdGFuIGFyY2hpdm9zIGNvbiBsYXMgc2lndWllbnRlcyBleHRlbnNpb25lczogLm1kLCAucGRmLCAuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCcsXG4gICAgICAgICAgMjogJ0VzdG9zIGFyY2hpdm9zIG5vIHNlIGNhcmdhcm9uIHBvcnF1ZSBzdSBleHRlbnNpw7NuIG5vIGVzdMOhIHBlcm1pdGlkYTonLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG1vcmVJbmZvOiAnTWlyYSBjw7NtbyBmdW5jaW9uYSBhY8OhJyxcbiAgICB9LFxuICAgIGFjY2Vzc2liaWxpdHlTZWN0aW9uOiB7XG4gICAgICB0aXRsZVRhYjogJ1Blcm1pc29zJyxcbiAgICAgIHRpdGxlU2VjdGlvbjogJ1Zpc2liaWxpZGFkIHkgcGVybWlzb3MgZGVsIGFnZW50ZScsXG4gICAgICBzdWJ0aXRsZVNlY3Rpb246ICdEZWZpbsOtIHF1acOpbiBwdWVkZSB1c2FyIGVzdGUgYWdlbnRlIHkgc2kgcHVlZGUgYWNjZWRlciBhIGRhdG9zIGRlIENPUi4nLFxuICAgICAgY29yUGVybWlzc2lvbnNUaXRsZTogJ1Blcm1pc29zIGRlIGFjY2VzbyBhIGRhdG9zIGRlIENPUicsXG4gICAgICBjb3JQZXJtaXNzaW9uc1N1YnRpdGxlOiAnwr9BIHF1w6kgdGllbmUgYWNjZXNvIGVzdGUgYWdlbnRlPycsXG4gICAgICB0YXNrQWNjZXNzVGl0bGU6ICdBY2Nlc28gYSB0YXJlYXMnLFxuICAgICAgdGFza0FjY2Vzc0Rlc2NyaXB0aW9uOiAnRWwgYWdlbnRlIHBvZHLDoSBsZWVyLCBjcmVhciwgbW9kaWZpY2FyIHkgZWxpbWluYXIgdGFyZWFzIHNlZ8O6biBsb3MgcGVybWlzb3MgZGVsIHVzdWFyaW8uJyxcbiAgICAgIHZpc2liaWxpdHlUaXRsZTogJ1Zpc2liaWxpZGFkIGRlbCBhZ2VudGUnLFxuICAgICAgd2hvQ2FuQWNjZXNzOiAnwr9RdWnDqW4gcHVlZGUgdXNhciBlc3RlIGFnZW50ZT8nLFxuICAgICAgYWxsQ29tcGFueVRpdGxlOiAnVG9kYSBsYSBjb21wYcOxw61hJyxcbiAgICAgIGFsbENvbXBhbnlEZXNjcmlwdGlvbjogJ1RvZG9zIGxvcyB1c3VhcmlvcyBkZSB0dSBvcmdhbml6YWNpw7NuIHBvZHLDoW4gdmVyIHkgdXNhciBlc3RlIGFnZW50ZS4nLFxuICAgICAgY2xpZW50VGl0bGU6ICdQYXJhIGNsaWVudGVzIGVzcGVjw61maWNvcycsXG4gICAgICBjbGllbnREZXNjcmlwdGlvbjpcbiAgICAgICAgJ0Fzb2NpYSBlc3RlIGFnZW50ZSBhIHVubyBvIG3DoXMgY2xpZW50ZXMuIFRvZG9zIGxvcyB1c3VhcmlvcyBwb2Ryw6FuIHZlciBjb24gcXXDqSBjbGllbnRlcyBlc3TDoSB2aW5jdWxhZG8uJyxcbiAgICAgIG93blRpdGxlOiAnU29sbyB5bycsXG4gICAgICBvd25EZXNjcmlwdGlvbjogJ0VzdGUgYWdlbnRlIHNlcsOhIHByaXZhZG8geSBubyBlc3RhcsOhIGRpc3BvbmlibGUgcGFyYSBvdHJvcyB1c3Vhcmlvcy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50ZXMgc2VsZWNjaW9uYWRvczonLFxuICAgICAgc2VhcmNoRXJyb3I6ICfCoVVwcyEgVHV2aW1vcyB1biBwcm9ibGVtYSBhbCBjYXJnYXIgbG9zIGNsaWVudGVzLiDCv1B1ZWRlcyBpbnRlbnRhcmxvIGRlIG51ZXZvIGVuIHVuIG1vbWVudG8/JyxcbiAgICAgIHNlYXJjaEVtcHR5OiAnwqFVcHMhIE5vIGVuY29udHJhbW9zIGNsaWVudGVzIGNvbiBlc2Ugbm9tYnJlLiBQcnVlYmEgcmVhbGl6YW5kbyBvdHJhIGLDunNxdWVkYScsXG4gICAgICBzZWFyY2hJbml0aWFsOiAnQ29taWVuemEgYSBlc2NyaWJpciBlbCBub21icmUgZGUgdW4gY2xpZW50ZSBwYXJhIGFzb2NpYXJsbycsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0J1c2NhciBjbGllbnRlJyxcbiAgICAgIGNsaWVudEluYWN0aXZlOiAnRXN0ZSBjbGllbnRlIGVzdMOhIGluYWN0aXZvLiBUZSByZWNvbWVuZGFtb3MgcXVpdGFybG8gZGUgbGEgbGlzdGEuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnRXN0ZSBjbGllbnRlIGZ1ZSBlbGltaW5hZG8uIFRlIHJlY29tZW5kYW1vcyBxdWl0YXJsbyBkZSBsYSBsaXN0YS4nLFxuICAgICAgY2xpZW50RGVsZXRlZDogJ0NsaWVudGUgZWxpbWluYWRvJyxcbiAgICAgIGNsaWVudHNFcnJvcjogJ1JldmlzYSBsb3MgY2xpZW50ZXMgYXNvY2lhZG9zJyxcbiAgICB9LFxuICAgIHByb2Nlc3NpbmdLbm93bGVkZ2U6IHtcbiAgICAgIGRlc2NyaXB0aW9uQ3JlYXRlOlxuICAgICAgICAnRXN0YW1vcyBjcmVhbmRvIGVsIEFnZW50ZSB5IHN1IGJhc2UgZGUgY29ub2NpbWllbnRvLiBFc3RvIHB1ZWRlIGxsZXZhciB1bm9zIG1vbWVudG9zLiBQb3IgZmF2b3Igbm8gY2llcnJlIGVzdGEgdmVudGFuYSBoYXN0YSBxdWUgZWwgcHJvY2VzbyBzZSBoYXlhIGZpbmFsaXphZG8uJyxcbiAgICAgIGRlc2NyaXB0aW9uVXBkYXRlOlxuICAgICAgICAnRXN0YW1vcyBhY3R1YWxpemFuZG8gZWwgQWdlbnRlIHkgc3UgYmFzZSBkZSBjb25vY2ltaWVudG8uIEVzdG8gcHVlZGUgbGxldmFyIHVub3MgbW9tZW50b3MuIFBvciBmYXZvciBubyBjaWVycmUgZXN0YSB2ZW50YW5hIGhhc3RhIHF1ZSBlbCBwcm9jZXNvIHNlIGhheWEgZmluYWxpemFkby4nLFxuICAgICAgZmlsZVJvdzogJ0FyY2hpdm8nLFxuICAgICAgc3RhdHVzUm93OiAnRXN0YWRvJyxcbiAgICAgIHBlbmRpbmc6ICdQZW5kaWVudGUnLFxuICAgICAgcHJvY2Vzc2luZzogJ1Byb2Nlc2FuZG8nLFxuICAgICAgZmFpbGVkOiAnRmFsbG8nLFxuICAgICAgZG9uZTogJ0NvbXBsZXRhZG8nLFxuICAgICAgbG9hZGluZ0ZpbGVzOiAnQ2FyZ2FuZG8gYXJjaGl2b3MuLi4nLFxuICAgICAgZXJyb3I6IHt9LFxuICAgIH0sXG4gICAgZGVsZXRlQWdlbnRNb2RhbDoge1xuICAgICAgdGl0bGU6ICfCv0Rlc2VhcyBlbGltaW5hciBlc3RlIGFnZW50ZT8nLFxuICAgICAgZmlyc3RQYXJ0OiAnRXN0w6FzIHBvciBlbGltaW5hciAnLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYWNjacOzbiBubyBzZSBwdWVkZSBkZXNoYWNlci4nLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsYXInLFxuICAgICAgZGVsZXRlOiAnRWxpbWluYXInLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ8K/RW4gcXXDqSBwcm95ZWN0byB0ZSBwdWVkbyBhc2lzdGlyPycsXG4gICAgICBoZWxsbzoge1xuICAgICAgICB0aXRsZTogJ0hvbGEge3tuYW1lfX0g8J+RiycsXG4gICAgICAgIHN1YnRpdGxlOiAnwr9Db24gcXXDqSBwcm95ZWN0byBwdWVkbyBheXVkYXJ0ZT8nLFxuICAgICAgfSxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWNjaW9uYSBlbCBwcm95ZWN0byBwYXJhIHF1ZSBNQUlBIHRlIHJlc3BvbmRhIGVuIGJhc2UgYSB1biBjb250ZXh0by4nLFxuICAgICAgbGFiZWxQcm9qZWN0OiAnU2VsZWNjaW9uYSB1biBwcm95ZWN0bycsXG4gICAgICBwbGFjZWhvbGRlcjogJ0J1c2NhciB1biBwcm95ZWN0byBwb3Igbm9tYnJlJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdDYW1iaWFyIGRlIHByb3llY3RvJyxcbiAgICAgIHJlY2VudFByb2plY3RzOiAnUmVjaWVudGVzJyxcbiAgICAgIHNlYXJjaGluZ1Byb2plY3RzOiAnQnVzY2FuZG8gdHVzIHByb3llY3Rvcy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICfCoVVwcyEgVHV2aW1vcyB1biBwcm9ibGVtYSBhbCBjYXJnYXIgbG9zIHByb3llY3Rvcy4gUG9yIGZhdm9yLCBpbnRlbnRhIGRlIG51ZXZvIGVuIHVub3MgbWludXRvcy4nLFxuICAgICAgZW1wdHlSZWNlbnRQcm9qZWN0czpcbiAgICAgICAgJ05vIHRpZW5lcyBwcm95ZWN0b3MgcmVjaWVudGVzLiBFc2NyaWJlIGVsIG5vbWJyZSBkZSB1biBwcm95ZWN0byBlbiBlbCBidXNjYWRvciBwYXJhIGVuY29udHJhcmxvLicsXG4gICAgICBlbXB0eVN0YXRlOiAnwqFVcHMhIE5vIGVuY29udHJhbW9zIHByb3llY3RvcyBjb24gZXNlIG5vbWJyZS4gUHJvYsOhIHJlYWxpemFuZG8gb3RyYSBiw7pzcXVlZGEuJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdTaW4gY2xpZW50ZScsXG4gICAgICB3aXRob3V0VGl0bGU6ICdTaW4gdMOtdHVsbycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmNsaWVudFNlbGVjdG9yXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGNsaWVudFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ8K/RW4gcXXDqSBjbGllbnRlIHRlIHB1ZWRvIGFzaXN0aXI/JyxcbiAgICAgIGhlbGxvOiB7XG4gICAgICAgIHRpdGxlOiAnSG9sYSB7e25hbWV9fSDwn5GLJyxcbiAgICAgICAgc3VidGl0bGU6ICfCv0NvbiBxdcOpIGNsaWVudGUgcHVlZG8gYXl1ZGFydGU/JyxcbiAgICAgIH0sXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjY2lvbmEgZWwgY2xpZW50ZSBwYXJhIHF1ZSBNQUlBIHRlIHJlc3BvbmRhIGVuIGJhc2UgYSB1biBjb250ZXh0by4nLFxuICAgICAgbGFiZWxDbGllbnQ6ICdTZWxlY2Npb25hIHVuIGNsaWVudGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdCdXNjYXIgY2xpZW50ZSBwb3Igc3Ugbm9tYnJlJyxcbiAgICAgIGNoYW5nZUNsaWVudDogJ0NhbWJpYXIgZGUgY2xpZW50ZScsXG4gICAgICByZWNlbnRDbGllbnRzOiAnUmVjaWVudGVzJyxcbiAgICAgIHNlYXJjaGluZ0NsaWVudHM6ICdCdXNjYW5kbyB0dXMgY2xpZW50ZXMuLi4nLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnVHV2aW1vcyB1biBwcm9ibGVtYSBhbCBjYXJnYXIgbG9zIGNsaWVudGVzLiBQb3IgZmF2b3IsIGludGVudGEgZGUgbnVldm8gZW4gdW5vcyBtaW51dG9zLicsXG4gICAgICBlbXB0eVJlY2VudENsaWVudHM6XG4gICAgICAgICdObyB0aWVuZXMgY2xpZW50ZXMgcmVjaWVudGVzLiBFc2NyaWJlIGVsIG5vbWJyZSBkZSB1biBjbGllbnRlIGVuIGVsIGJ1c2NhZG9yIHBhcmEgZW5jb250cmFybG8uJyxcbiAgICAgIGVtcHR5U3RhdGU6ICdVcHMhIE5vIGVuY29udHJhbW9zIGNsaWVudGVzIGNvbiBlc2Ugbm9tYnJlLiBQcm9iw6EgcmVhbGl6YW5kbyBvdHJhIGLDunNxdWVkYS4nLFxuICAgICAgcHJvamVjdDogJ3Byb3llY3RvJyxcbiAgICAgIHByb2plY3RzOiAncHJveWVjdG9zJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLFFBQVE7RUFDZkMsUUFBUSxFQUFFLFdBQVc7RUFDckJDLFFBQVEsRUFBRSxnQkFBZ0I7RUFDMUJDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxNQUFNLEVBQUUsVUFBVTtFQUNsQkMsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLE1BQU0sRUFBRSxrQkFBa0I7RUFDMUJDLElBQUksRUFBRSxRQUFRO0VBQ2RDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxLQUFLLEVBQUUsVUFBVTtFQUNqQkMsYUFBYSxFQUFFLHNCQUFzQjtFQUNyQ0MsSUFBSSxFQUFFLFNBQVM7RUFDZkMsTUFBTSxFQUFFO0FBQ1YsQ0FBQztBQUVELElBQU1DLEtBQUssR0FBRztFQUNaQyxLQUFLLEVBQUUseUJBQXlCO0VBQ2hDQyxXQUFXLEVBQUUsc0dBQXNHO0VBQ25IQyxRQUFRLEVBQUU7QUFDWixDQUFDO0FBRUQsSUFBTUMsY0FBYyxHQUFHO0VBQ3JCSixLQUFLLEVBQUxBLEtBQUs7RUFDTGQsT0FBTyxFQUFQQTtBQUNGLENBQUM7QUFFRCxJQUFNbUIscUJBQXFCLEdBQUc7RUFDNUJDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxLQUFLLEVBQUUsa0JBQWtCO0VBQ3pCQyxPQUFPLEVBQUUsK0JBQStCO0VBRXhD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