@envive-ai/react-hooks 0.3.4 → 0.3.5

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 (277) hide show
  1. package/dist/application/commerce-api.cjs +1 -1
  2. package/dist/application/commerce-api.js +1 -1
  3. package/dist/application/models/chatElementDisplayLocationV3.cjs +7 -1
  4. package/dist/application/models/chatElementDisplayLocationV3.d.cts +7 -1
  5. package/dist/application/models/chatElementDisplayLocationV3.d.ts +7 -1
  6. package/dist/application/models/chatElementDisplayLocationV3.js +7 -1
  7. package/dist/application/models/featureGates.cjs +6 -2
  8. package/dist/application/models/featureGates.d.cts +6 -2
  9. package/dist/application/models/featureGates.d.ts +6 -2
  10. package/dist/application/models/featureGates.js +6 -2
  11. package/dist/application/models/guards/api/isApiFormResponse.cjs +1 -1
  12. package/dist/application/models/guards/api/isApiFormResponse.js +1 -1
  13. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +1 -1
  14. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +1 -1
  15. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +1 -1
  16. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +1 -1
  17. package/dist/application/models/guards/api/isApiPDPEventAttributes.cjs +2 -2
  18. package/dist/application/models/guards/api/isApiPDPEventAttributes.js +2 -2
  19. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +1 -1
  20. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +1 -1
  21. package/dist/application/models/guards/api/isApiResponse.cjs +1 -1
  22. package/dist/application/models/guards/api/isApiResponse.js +1 -1
  23. package/dist/application/utils/analyticsUtils.cjs +1 -1
  24. package/dist/application/utils/analyticsUtils.js +1 -1
  25. package/dist/atoms/app/index.cjs +3 -1
  26. package/dist/atoms/app/index.d.cts +3 -3
  27. package/dist/atoms/app/index.d.ts +9 -9
  28. package/dist/atoms/app/index.js +3 -3
  29. package/dist/atoms/app/variant.cjs +2 -1
  30. package/dist/atoms/app/variant.d.cts +14 -6
  31. package/dist/atoms/app/variant.d.ts +17 -9
  32. package/dist/atoms/app/variant.js +2 -2
  33. package/dist/atoms/chat/chatState.d.cts +1 -1
  34. package/dist/atoms/chat/chatState.d.ts +18 -18
  35. package/dist/atoms/chat/form.d.cts +2 -2
  36. package/dist/atoms/chat/form.d.ts +2 -2
  37. package/dist/atoms/chat/index.d.cts +1 -1
  38. package/dist/atoms/chat/index.d.ts +3 -3
  39. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  40. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  41. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  42. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  43. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  44. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  45. package/dist/atoms/chat/replies.d.cts +1 -1
  46. package/dist/atoms/chat/replies.d.ts +3 -3
  47. package/dist/atoms/chat/suggestions.d.cts +2 -2
  48. package/dist/atoms/chat/suggestions.d.ts +2 -2
  49. package/dist/atoms/envive/enviveConfig.cjs +1 -11
  50. package/dist/atoms/envive/enviveConfig.js +1 -11
  51. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  52. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  53. package/dist/atoms/org/customerService.d.cts +6 -6
  54. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  55. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  56. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  57. package/dist/atoms/search/chatSearch.d.ts +17 -17
  58. package/dist/atoms/search/productRetrievalAPI.cjs +1 -7
  59. package/dist/atoms/search/productRetrievalAPI.js +1 -7
  60. package/dist/atoms/search/productRetrievalAdapter.cjs +4 -4
  61. package/dist/atoms/search/productRetrievalAdapter.js +4 -4
  62. package/dist/atoms/search/searchAPI.d.ts +13 -13
  63. package/dist/atoms/search/types.d.cts +1 -1
  64. package/dist/atoms/search/types.d.ts +1 -1
  65. package/dist/atoms/search/utils.d.cts +1 -1
  66. package/dist/atoms/search/utils.d.ts +1 -1
  67. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  68. package/dist/contexts/enviveContext/enviveContext.cjs +14 -11
  69. package/dist/contexts/enviveContext/enviveContext.d.cts +2 -1
  70. package/dist/contexts/enviveContext/enviveContext.d.ts +2 -1
  71. package/dist/contexts/enviveContext/enviveContext.js +14 -11
  72. package/dist/contexts/enviveContext/types.d.ts +1 -1
  73. package/dist/contexts/featureFlagContext/featureFlagContext.cjs +1 -1
  74. package/dist/contexts/featureFlagContext/featureFlagContext.js +1 -1
  75. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +1 -1
  76. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +1 -1
  77. package/dist/contexts/graphqlContext/graphqlContext.cjs +87 -6
  78. package/dist/contexts/graphqlContext/graphqlContext.js +87 -6
  79. package/dist/contexts/graphqlContext/mockV3Config.cjs +56 -14
  80. package/dist/contexts/graphqlContext/mockV3Config.js +56 -14
  81. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +33 -20
  82. package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +2 -2
  83. package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +2 -2
  84. package/dist/contexts/hardcopyContext/hardcopyContext.js +33 -20
  85. package/dist/contexts/pageContext/index.cjs +1 -0
  86. package/dist/contexts/pageContext/index.d.cts +2 -2
  87. package/dist/contexts/pageContext/index.d.ts +2 -2
  88. package/dist/contexts/pageContext/index.js +2 -2
  89. package/dist/contexts/pageContext/mapping.cjs +91 -1
  90. package/dist/contexts/pageContext/mapping.d.cts +5 -2
  91. package/dist/contexts/pageContext/mapping.d.ts +5 -2
  92. package/dist/contexts/pageContext/mapping.js +90 -2
  93. package/dist/contexts/pageContext/pageContext.cjs +33 -5
  94. package/dist/contexts/pageContext/pageContext.d.cts +2 -1
  95. package/dist/contexts/pageContext/pageContext.d.ts +2 -1
  96. package/dist/contexts/pageContext/pageContext.js +34 -6
  97. package/dist/contexts/pageContext/types.d.cts +2 -2
  98. package/dist/contexts/pageContext/types.d.ts +2 -2
  99. package/dist/contexts/salesAgentContext/chatAPI.cjs +4 -1
  100. package/dist/contexts/salesAgentContext/chatAPI.d.cts +4 -1
  101. package/dist/contexts/salesAgentContext/chatAPI.d.ts +4 -1
  102. package/dist/contexts/salesAgentContext/chatAPI.js +4 -1
  103. package/dist/contexts/salesAgentContext/index.d.cts +2 -2
  104. package/dist/contexts/salesAgentContext/index.d.ts +2 -2
  105. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -2
  106. package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +2 -2
  107. package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +2 -2
  108. package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -2
  109. package/dist/contexts/salesAgentContext/salesAgentService.cjs +7 -4
  110. package/dist/contexts/salesAgentContext/salesAgentService.js +8 -5
  111. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  112. package/dist/contexts/types.d.cts +1 -1
  113. package/dist/contexts/types.d.ts +1 -1
  114. package/dist/contexts/typesV3.cjs +20 -17
  115. package/dist/contexts/typesV3.d.cts +39 -12
  116. package/dist/contexts/typesV3.d.ts +39 -12
  117. package/dist/contexts/typesV3.js +5 -2
  118. package/dist/hooks/ChatToggle/useChatToggle.cjs +1 -1
  119. package/dist/hooks/ChatToggle/useChatToggle.d.cts +5 -5
  120. package/dist/hooks/ChatToggle/useChatToggle.d.ts +5 -5
  121. package/dist/hooks/ChatToggle/useChatToggle.js +1 -1
  122. package/dist/hooks/ElementObserver/useElementObserver.cjs +10 -10
  123. package/dist/hooks/ElementObserver/useElementObserver.js +10 -10
  124. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  125. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  126. package/dist/hooks/Search/useSearch.cjs +1 -1
  127. package/dist/hooks/Search/useSearch.js +1 -1
  128. package/dist/hooks/utils.d.cts +1 -1
  129. package/dist/merchants/domInsertion.cjs +1 -1
  130. package/dist/merchants/domInsertion.d.cts +1 -1
  131. package/dist/merchants/domInsertion.d.ts +1 -1
  132. package/dist/merchants/domInsertion.js +1 -1
  133. package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.cjs +2 -0
  134. package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.js +4 -0
  135. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.cjs +16 -0
  136. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.js +17 -0
  137. package/dist/packages/components-v3/dist/ChatHeader/components/Handle.cjs +6 -0
  138. package/dist/packages/components-v3/dist/ChatHeader/components/Handle.js +8 -0
  139. package/dist/packages/components-v3/dist/ChatHeader/components/Layout.cjs +4 -0
  140. package/dist/packages/components-v3/dist/ChatHeader/components/Layout.js +6 -0
  141. package/dist/packages/components-v3/dist/ChatHeader/components/Logo.cjs +3 -0
  142. package/dist/packages/components-v3/dist/ChatHeader/components/Logo.js +5 -0
  143. package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.cjs +7 -0
  144. package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.js +9 -0
  145. package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.cjs +6 -0
  146. package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.js +8 -0
  147. package/dist/packages/components-v3/dist/ChatHeader/components/index.cjs +6 -0
  148. package/dist/packages/components-v3/dist/ChatHeader/components/index.js +8 -0
  149. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +22 -0
  150. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +23 -0
  151. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.cjs +58 -0
  152. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.js +59 -0
  153. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +8 -0
  154. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.js +9 -0
  155. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +1 -0
  156. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +3 -0
  157. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.cjs +12 -0
  158. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.js +13 -0
  159. package/dist/packages/components-v3/dist/ChatHeader/index.cjs +2 -0
  160. package/dist/packages/components-v3/dist/ChatHeader/index.js +4 -0
  161. package/dist/packages/components-v3/dist/ChatHeader/types/index.cjs +11 -0
  162. package/dist/packages/components-v3/dist/ChatHeader/types/index.js +10 -0
  163. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +2 -2
  164. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +2 -2
  165. package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +1 -1
  166. package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +1 -1
  167. package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +1 -1
  168. package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +1 -1
  169. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +1 -1
  170. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +1 -1
  171. package/dist/packages/components-v3/dist/Tokens/index.cjs +11 -0
  172. package/dist/packages/components-v3/dist/Tokens/index.js +13 -0
  173. package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.cjs +2 -0
  174. package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.js +4 -0
  175. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.cjs +14 -0
  176. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.js +15 -0
  177. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.cjs +3 -0
  178. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.js +5 -0
  179. package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.cjs +3 -0
  180. package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.js +5 -0
  181. package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.cjs +3 -0
  182. package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.js +5 -0
  183. package/dist/packages/components-v3/dist/WelcomeMessage/components/index.cjs +4 -0
  184. package/dist/packages/components-v3/dist/WelcomeMessage/components/index.js +6 -0
  185. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.cjs +1 -0
  186. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.js +3 -0
  187. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.cjs +1 -0
  188. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.js +3 -0
  189. package/dist/packages/components-v3/dist/WelcomeMessage/index.cjs +2 -0
  190. package/dist/packages/components-v3/dist/WelcomeMessage/index.js +4 -0
  191. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.cjs +14 -0
  192. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.js +14 -0
  193. package/dist/packages/components-v3/dist/src/models/colorsConfig.cjs +26 -0
  194. package/dist/packages/components-v3/dist/src/models/colorsConfig.js +25 -0
  195. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.cjs +16 -0
  196. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.js +17 -0
  197. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.cjs +25 -0
  198. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.js +23 -0
  199. package/dist/packages/components-v3/dist/tokens/colors/colors.cjs +51 -0
  200. package/dist/packages/components-v3/dist/tokens/colors/colors.js +51 -0
  201. package/dist/packages/components-v3/dist/tokens/radius/radius.cjs +64 -0
  202. package/dist/packages/components-v3/dist/tokens/radius/radius.js +65 -0
  203. package/dist/packages/components-v3/dist/tokens/theme/theme.cjs +13 -0
  204. package/dist/packages/components-v3/dist/tokens/theme/theme.js +12 -0
  205. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.cjs +25 -0
  206. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.js +25 -0
  207. package/dist/packages/components-v3/dist/tokens/typography/fontSize.cjs +37 -0
  208. package/dist/packages/components-v3/dist/tokens/typography/fontSize.js +38 -0
  209. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.cjs +17 -0
  210. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.js +18 -0
  211. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.cjs +15 -0
  212. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.js +16 -0
  213. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.cjs +31 -0
  214. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.js +32 -0
  215. package/dist/packages/components-v3/dist/tokens/typography/typography.cjs +5 -0
  216. package/dist/packages/components-v3/dist/tokens/typography/typography.js +7 -0
  217. package/dist/packages/components-v3/dist/tokens/utils.cjs +7 -0
  218. package/dist/packages/components-v3/dist/tokens/utils.js +6 -0
  219. package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +2 -2
  220. package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +2 -2
  221. package/dist/packages/icons/dist/IconCloseRounded.cjs +22 -0
  222. package/dist/packages/icons/dist/IconCloseRounded.js +22 -0
  223. package/dist/packages/icons/dist/IconCloseSharp.cjs +31 -0
  224. package/dist/packages/icons/dist/IconCloseSharp.js +31 -0
  225. package/dist/packages/icons/dist/IconCloseTransparent.cjs +24 -0
  226. package/dist/packages/icons/dist/IconCloseTransparent.js +24 -0
  227. package/dist/packages/icons/dist/Sparkles.cjs +8 -0
  228. package/dist/packages/icons/dist/Sparkles.js +9 -0
  229. package/dist/types/customerService.cjs +20 -0
  230. package/dist/types/customerService.js +19 -0
  231. package/package.json +1 -5
  232. package/src/application/models/chatElementDisplayLocationV3.ts +6 -0
  233. package/src/application/models/featureGates.ts +6 -1
  234. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +5 -1
  235. package/src/atoms/app/index.ts +7 -1
  236. package/src/atoms/app/variant.ts +3 -2
  237. package/src/atoms/envive/enviveConfig.ts +0 -11
  238. package/src/atoms/search/productRetrievalAPI.ts +0 -8
  239. package/src/atoms/search/productRetrievalAdapter.ts +6 -10
  240. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +0 -1
  241. package/src/contexts/enviveContext/enviveContext.tsx +5 -3
  242. package/src/contexts/graphqlContext/graphqlContext.tsx +128 -9
  243. package/src/contexts/graphqlContext/mockV3Config.ts +53 -12
  244. package/src/contexts/hardcopyContext/hardcopyContext.tsx +29 -13
  245. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +119 -69
  246. package/src/contexts/pageContext/mapping.ts +184 -2
  247. package/src/contexts/pageContext/pageContext.tsx +30 -5
  248. package/src/contexts/pageContext/types.ts +1 -2
  249. package/src/contexts/salesAgentContext/chatAPI.ts +9 -0
  250. package/src/contexts/salesAgentContext/salesAgentContext.tsx +10 -3
  251. package/src/contexts/salesAgentContext/salesAgentService.ts +13 -1
  252. package/src/contexts/typesV3.ts +52 -20
  253. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +14 -6
  254. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +1 -1
  255. package/src/hooks/ChatToggle/useChatToggle.ts +4 -4
  256. package/src/hooks/ElementObserver/useElementObserver.ts +9 -9
  257. package/src/merchants/domInsertion.ts +0 -16
  258. package/dist/hooks/ChatToggleAnalytics/index.cjs +0 -3
  259. package/dist/hooks/ChatToggleAnalytics/index.d.cts +0 -2
  260. package/dist/hooks/ChatToggleAnalytics/index.d.ts +0 -2
  261. package/dist/hooks/ChatToggleAnalytics/index.js +0 -3
  262. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.cjs +0 -19
  263. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.d.cts +0 -9
  264. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.d.ts +0 -9
  265. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.js +0 -18
  266. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.cjs +0 -25
  267. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.js +0 -23
  268. package/src/application/utils/cdnUtils.ts +0 -8
  269. package/src/config/divIds.ts +0 -31
  270. package/src/config/locators/components/chat/entrypoints.ts +0 -13
  271. package/src/config/locators/components/chat/preview.ts +0 -12
  272. package/src/config/locators/components/report-issue.ts +0 -21
  273. package/src/config/socialProofClasses.ts +0 -12
  274. package/src/events/registerAnalyticsListeners.ts +0 -44
  275. package/src/hooks/ChatToggleAnalytics/index.ts +0 -1
  276. package/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.ts +0 -15
  277. package/src/types/FilterAttribute.ts +0 -32
@@ -1,7 +1,8 @@
1
+ import { PageVariantTestType } from "../types.js";
1
2
  import { ConfigVersionEnum } from "../typesV3.js";
2
- import logger_default from "../../application/logging/logger.js";
3
3
  import { configVersion } from "../../types/config-versions.js";
4
4
  import { getMerchantOrgIdQuery } from "../../application/models/graphql/queries/getMerchantOrgIdQuery.js";
5
+ import logger_default from "../../application/logging/logger.js";
5
6
  import { transformSnakeToCamel } from "../../application/models/utils/snakeToCamelTransformer.js";
6
7
  import { validateAndTransformMountingConfig, validateAndTransformPageVariants } from "../../application/models/validators/validateGraphQLFrontendConfig.js";
7
8
  import { validateGraphQLOrgId } from "../../application/models/validators/validateGraphQLOrgId.js";
@@ -20,10 +21,87 @@ const colorsAndFrontendConfigQuery = () => `
20
21
  getProductsConfigByVersion(version: $version) {
21
22
  frontend { values }
22
23
  colors { values }
24
+ v_three_config { values }
23
25
  }
24
26
  }
25
27
  }
26
28
  `;
29
+ const DEFAULT_PAGE_VARIANTS = [{
30
+ variantId: "plp",
31
+ variantType: "plp",
32
+ plpIdExtractor: "url-resolver-plp-id",
33
+ widgetMounting: [],
34
+ variantTests: [{ testType: PageVariantTestType.UrlResolver }]
35
+ }, {
36
+ variantId: "pdp",
37
+ variantType: "pdp",
38
+ productIdExtractor: "url-resolver-product-id",
39
+ widgetMounting: [],
40
+ variantTests: [{ testType: PageVariantTestType.UrlResolver }]
41
+ }];
42
+ const mapPositionToCamelCase = (position) => {
43
+ if (position === "bottom-left") return "bottomLeft";
44
+ if (position === "middle-left") return "middleLeft";
45
+ if (position === "middle-right") return "middleRight";
46
+ if (position === "bottom-right") return "bottomRight";
47
+ throw new Error(`Invalid position: ${position}`);
48
+ };
49
+ /**
50
+ * This function is used to do some additional cleanup of the v3 frontend config to ensure that the config is in the correct format.
51
+ */
52
+ const v3FrontendConfigCleanup = (v3RootConfig) => {
53
+ const { uiConfigs } = v3RootConfig;
54
+ if (!uiConfigs) return v3RootConfig;
55
+ const { floatingButton, lookAndFeel } = uiConfigs;
56
+ if (!floatingButton || !lookAndFeel) return v3RootConfig;
57
+ const { fontSize, lineHeight } = lookAndFeel.typography;
58
+ return {
59
+ ...v3RootConfig,
60
+ uiConfigs: {
61
+ ...uiConfigs,
62
+ floatingButton: {
63
+ ...floatingButton,
64
+ position: mapPositionToCamelCase(v3RootConfig.uiConfigs?.floatingButton?.position)
65
+ },
66
+ lookAndFeel: {
67
+ ...lookAndFeel,
68
+ chatHeaderLogoDarkSrc: lookAndFeel.chatHeaderLogoDarkSrc || lookAndFeel.chatHeaderLogoSrc,
69
+ chatHeaderLogoLightSrc: lookAndFeel.chatHeaderLogoLightSrc || lookAndFeel.chatHeaderLogoSrc,
70
+ typography: {
71
+ ...lookAndFeel.typography,
72
+ fontSize: {
73
+ b1: fontSize?.b1 || fontSize?.b_1,
74
+ b2: fontSize?.b2 || fontSize?.b_2,
75
+ b3: fontSize?.b3 || fontSize?.b_3,
76
+ b4: fontSize?.b4 || fontSize?.b_4,
77
+ b5: fontSize?.b5 || fontSize?.b_5,
78
+ h1: fontSize?.h1 || fontSize?.h_1,
79
+ h2: fontSize?.h2 || fontSize?.h_2,
80
+ h3: fontSize?.h3 || fontSize?.h_3,
81
+ l1: fontSize?.l1 || fontSize?.l_1,
82
+ l2: fontSize?.l2 || fontSize?.l_2,
83
+ t1: fontSize?.t1 || fontSize?.t_1,
84
+ t2: fontSize?.t2 || fontSize?.t_2,
85
+ t3: fontSize?.t3 || fontSize?.t_3
86
+ },
87
+ lineHeight: {
88
+ ...lookAndFeel.typography.lineHeight,
89
+ "114": lineHeight?.lh_114 || lineHeight?.[114],
90
+ "116": lineHeight?.lh_116 || lineHeight?.[116],
91
+ "118": lineHeight?.lh_118 || lineHeight?.[118],
92
+ "120": lineHeight?.lh_120 || lineHeight?.[120],
93
+ "124": lineHeight?.lh_124 || lineHeight?.[124],
94
+ "128": lineHeight?.lh_128 || lineHeight?.[128],
95
+ "130": lineHeight?.lh_130 || lineHeight?.[130],
96
+ "133": lineHeight?.lh_133 || lineHeight?.[133],
97
+ "140": lineHeight?.lh_140 || lineHeight?.[140],
98
+ "148": lineHeight?.lh_148 || lineHeight?.[148]
99
+ }
100
+ }
101
+ }
102
+ }
103
+ };
104
+ };
27
105
  const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDeprecatedConfig = false }) => {
28
106
  const apiKey = useAtomValue(orgLevelApiKeyAtom);
29
107
  const baseUrl = useAtomValue(baseUrlAtom);
@@ -57,8 +135,8 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
57
135
  try {
58
136
  const query = await colorsAndFrontendConfigQuery();
59
137
  if (!query) throw new Error("Colors and frontend config query is not defined");
60
- const v3RootConfig = (await executeQuery(query)).me.getProductsConfigByVersion?.frontend?.values?.ui_configs?.v_three_config;
61
- const v3FrontendConfig = transformSnakeToCamel(v3RootConfig);
138
+ const v3RootConfig = (await executeQuery(query)).me.getProductsConfigByVersion?.v_three_config?.values;
139
+ const v3FrontendConfig = v3FrontendConfigCleanup(transformSnakeToCamel(v3RootConfig));
62
140
  const v3MountingConfigs = (transformSnakeToCamel(v3RootConfig?.mounting_configs) ?? []).reduce((acc, { key, config }) => {
63
141
  acc[key] = validateAndTransformMountingConfig(config, key);
64
142
  return acc;
@@ -68,7 +146,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
68
146
  widgetConfigId,
69
147
  ...rest
70
148
  }]));
71
- const v3pageVariants = v3RootConfig?.page_variants.map(validateAndTransformPageVariants);
149
+ const v3pageVariants = Array.isArray(v3RootConfig?.page_variants) ? v3RootConfig?.page_variants.map(validateAndTransformPageVariants) : DEFAULT_PAGE_VARIANTS;
72
150
  const v3ColorsConfig = transformSnakeToCamel(v3RootConfig?.colors?.values);
73
151
  if (!v3RootConfig && mockV3ConfigToDeprecatedConfig) return {
74
152
  colorsConfig: !window.location.href.includes("globals=merchant") ? mockV3ColorsConfig : v3ColorsConfig,
@@ -76,7 +154,10 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
76
154
  };
77
155
  return {
78
156
  colorsConfig: v3ColorsConfig,
79
- frontendConfig: v3FrontendConfig,
157
+ frontendConfig: {
158
+ ...v3FrontendConfig,
159
+ widgetConfigs: v3WidgetConfigs
160
+ },
80
161
  orgPageConfig: {
81
162
  pageVariants: v3pageVariants,
82
163
  widgetConfigs: v3WidgetConfigs,
@@ -155,4 +236,4 @@ const useGraphQLClient = () => {
155
236
 
156
237
  //#endregion
157
238
  export { GraphQLProvider, useGraphQLClient };
158
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0L2dyYXBocWxDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGJhc2VVcmxBdG9tLCBvcmdMZXZlbEFwaUtleUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnknO1xuaW1wb3J0IHsgdmFsaWRhdGVHcmFwaFFMT3JnSWQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMT3JnSWQnO1xuaW1wb3J0IHtcbiAgR2V0TWVyY2hhbnRDb2xvcnNRdWVyeURhdGEsXG4gIEdldE1lcmNoYW50RnJvbnRlbmRDb25maWdRdWVyeURhdGEsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbCc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWcnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbiB9IGZyb20gJ3NyYy90eXBlcy9jb25maWctdmVyc2lvbnMnO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICcuL21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmltcG9ydCB7IE9yZ1BhZ2VDb25maWcsIFBhZ2VWYXJpYW50Q29uZmlnLCBXaWRnZXRNb3VudGluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuaW50ZXJmYWNlIEJhc2VNZUNvbmZpZ1F1ZXJ5UmVzcG9uc2Uge1xuICBtZToge1xuICAgIG9yZz86IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBnZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj86IHtcbiAgICAgIGZyb250ZW5kPzoge1xuICAgICAgICB2YWx1ZXM6IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxHZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnlEYXRhPjtcbiAgICAgIH07XG4gICAgICBjb2xvcnM/OiB7IHZhbHVlczogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEdldE1lcmNoYW50Q29sb3JzUXVlcnlEYXRhPiB9O1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmc+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZz47XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcblxuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgY29sb3JzQ29uZmlnPzogQ29sb3JzQ29uZmlnUmVzcG9uc2UgfCBDb2xvcnNDb25maWdWM1Jlc3BvbnNlO1xuICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGdldE9yZ0lkOiAoKSA9PiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBnZXRWM0NvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG5jb25zdCBjb2xvcnNBbmRGcm9udGVuZENvbmZpZ1F1ZXJ5ID0gKCkgPT4gYFxuICBxdWVyeSAoJHZlcnNpb246IFN0cmluZyA9IFwiJHtjb25maWdWZXJzaW9uKCl9XCIpIHtcbiAgICBtZSB7XG4gICAgICBnZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbih2ZXJzaW9uOiAkdmVyc2lvbikge1xuICAgICAgICBmcm9udGVuZCB7IHZhbHVlcyB9XG4gICAgICAgIGNvbG9ycyB7IHZhbHVlcyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IEdyYXBoUUxQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICByZXF1ZXN0VjNDb25maWcgPSBmYWxzZSxcbiAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnID0gZmFsc2UsXG59OiBHcmFwaFFMUHJvdmlkZXJQcm9wcykgPT4ge1xuICBjb25zdCBhcGlLZXkgPSB1c2VBdG9tVmFsdWUob3JnTGV2ZWxBcGlLZXlBdG9tKTtcbiAgY29uc3QgYmFzZVVybCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG4gIGNvbnN0IGlzUmVhZHkgPSB1c2VNZW1vKCgpID0+IEJvb2xlYW4oYXBpS2V5ICYmIGJhc2VVcmwpLCBbYXBpS2V5LCBiYXNlVXJsXSk7XG5cbiAgY29uc3QgZXhlY3V0ZVF1ZXJ5ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHF1ZXJ5OiBzdHJpbmcsIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdHcmFwaFFMIGNsaWVudCBub3QgcmVhZHkgLSBtaXNzaW5nIGFwaUtleSBvciBiYXNlVXJsJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vdjEvZ3JhcGhxbGAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBxdWVyeSwgdmFyaWFibGVzIH0pLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcbiAgICB9LFxuICAgIFthcGlLZXksIGJhc2VVcmwsIGlzUmVhZHldLFxuICApO1xuXG4gIGNvbnN0IGdldE9yZ0lkID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KGdldE1lcmNoYW50T3JnSWRRdWVyeSk7XG4gICAgcmV0dXJuIHZhbGlkYXRlR3JhcGhRTE9yZ0lkKHJlc3BvbnNlLm1lLm9yZz8uaWQpO1xuICB9LCBbZXhlY3V0ZVF1ZXJ5XSk7XG5cbiAgY29uc3QgZ2V0VjNDb25maWcgPSB1c2VDYWxsYmFjayhhc3luYyAoKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgY29sb3JzQW5kRnJvbnRlbmRDb25maWdRdWVyeSgpO1xuICAgICAgaWYgKCFxdWVyeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnIHF1ZXJ5IGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGV4ZWN1dGVRdWVyeShxdWVyeSk7XG5cbiAgICAgIC8vIFdlIG1heSB1cGRhdGUgdGhpcyByb290IGNvbmZpZyBsb2NhdGlvbiBpbiB0aGUgZnV0dXJlXG4gICAgICBjb25zdCB2M1Jvb3RDb25maWcgPVxuICAgICAgICByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcz8udWlfY29uZmlncz8udl90aHJlZV9jb25maWc7XG5cbiAgICAgIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2U7XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ubW91bnRpbmdfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyhjb25maWcsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdjN3aWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gICAgICBjb25zdCB2M1dpZGdldENvbmZpZ3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIHYzd2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgICAgICB7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH0gYXMgV2lkZ2V0Q29uZmlnVjMsXG4gICAgICAgIF0pLFxuICAgICAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG4gICAgICBjb25zdCB2M3BhZ2VWYXJpYW50cyA9IHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cy5tYXAoXG4gICAgICAgIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxuICAgICAgKSBhcyBQYWdlVmFyaWFudENvbmZpZ1tdO1xuXG4gICAgICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHYzIHJvb3QgY29uZmlnIGlzIG5vdCBmb3VuZCBhbmQgd2UgYXJlIGNvbmZpZ3VyZWQgdG8gcmV0dXJuIHRoZSBkZXByZWNhdGVkIGNvbmZpZywgd2Ugd2lsbCByZXR1cm4gdGhlIG1vY2tlZCBjb25maWdcbiAgICAgIGlmICghdjNSb290Q29uZmlnICYmIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZykge1xuICAgICAgICBjb25zdCBpc1NlbWFudGljQ29sb3JzID0gIXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdnbG9iYWxzPW1lcmNoYW50Jyk7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IG1vY2tWM0NvbG9yc0NvbmZpZztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICAgID8gKGNvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKVxuICAgICAgICAgICAgOiAodjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IGZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogdjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgICAvLyBUT0RPOiBBZGQgd2lkZ2V0cyBhbmQgb3RoZXIgY29uZmlnIGhlcmVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoJ0Vycm9yIGZldGNoaW5nIGdyYXBocWwgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH0sIFtleGVjdXRlUXVlcnksIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ10pO1xuXG4gIGNvbnN0IGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGNvbG9yc0FuZEZyb250ZW5kQ29uZmlnUXVlcnkoKTtcbiAgICAgIGlmICghcXVlcnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZyBxdWVyeSBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkocXVlcnkpO1xuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8udmVyc2lvbiAhPT0gQ29uZmlnVmVyc2lvbkVudW0uVjMgJiZcbiAgICAgICAgIW1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb2xvcnNDb25maWcpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEZyb250ZW5kQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGZyb250ZW5kQ29uZmlnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IHRyYW5zZm9ybWVkQ29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IFJFTU9WRSBNT0NLRUQgQ09ORklHIE9OQ0UgV0UgSEFWRSBUSEUgTkVXIENPTkZJRyBJTVBMRU1FTlRFRCBPTiBCQUNLRU5EXG4gICAgICBjb25zdCBtZXJjaGFudENvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkTWVyY2hhbnRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChtZXJjaGFudENvbG9yc0NvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGlzU2VtYW50aWNDb2xvcnMgPSAhd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2dsb2JhbHM9bWVyY2hhbnQnKTtcblxuICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiBpc1NlbWFudGljQ29sb3JzXG4gICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgOiAodHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIExvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeV0pO1xuXG4gIGNvbnN0IGdldENvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICBjb25zb2xlLmxvZygnR3JhcGhRTFByb3ZpZGVyOiBnZXRDb25maWc6IHJlcXVlc3RWM0NvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgaWYgKHJlcXVlc3RWM0NvbmZpZykge1xuICAgICAgcmV0dXJuIGdldFYzQ29uZmlnKCk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuICB9LCBbZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCByZXF1ZXN0VjNDb25maWddKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGV4ZWN1dGVRdWVyeSxcbiAgICAgIGdldE9yZ0lkLFxuICAgICAgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsXG4gICAgICBnZXRWM0NvbmZpZyxcbiAgICAgIGdldENvbmZpZyxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2V4ZWN1dGVRdWVyeSwgZ2V0T3JnSWQsIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgZ2V0Q29uZmlnLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPEdyYXBoUUxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvR3JhcGhRTENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyYXBoUUxDbGllbnQgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdyYXBoUUxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHcmFwaFFMQ2xpZW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHcmFwaFFMUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQTBEQSxNQUFNLGlCQUFpQixjQUEwQyxLQUFLO0FBRXRFLE1BQU0scUNBQXFDOytCQUNaLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBZ0IvQyxNQUFhLG1CQUFtQixFQUM5QixVQUNBLGtCQUFrQixPQUNsQixpQ0FBaUMsWUFDUDtDQUMxQixNQUFNLFNBQVMsYUFBYSxtQkFBbUI7Q0FDL0MsTUFBTSxVQUFVLGFBQWEsWUFBWTtDQUN6QyxNQUFNLFVBQVUsY0FBYyxRQUFRLFVBQVUsUUFBUSxFQUFFLENBQUMsUUFBUSxRQUFRLENBQUM7Q0FFNUUsTUFBTSxlQUFlLFlBQ25CLE9BQU8sT0FBZSxjQUF3QztBQUM1RCxNQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSx1REFBdUQ7RUFHekUsTUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHLFFBQVEsY0FBYztHQUNwRCxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVB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
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6WyJERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBiYXNlVXJsQXRvbSwgb3JnTGV2ZWxBcGlLZXlBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2Vudml2ZS9lbnZpdmVDb25maWcnO1xuaW1wb3J0IHsgZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5JztcbmltcG9ydCB7IHZhbGlkYXRlR3JhcGhRTE9yZ0lkIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlR3JhcGhRTE9yZ0lkJztcbmltcG9ydCB7XG4gIEdldE1lcmNoYW50Q29sb3JzUXVlcnlEYXRhLFxuICBHZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnlEYXRhLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IGNvbmZpZ1ZlcnNpb24gfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBtb2NrVjNDb2xvcnNDb25maWcsIG1vY2tWM0Zyb250ZW5kQ29uZmlnIH0gZnJvbSAnLi9tb2NrVjNDb25maWcnO1xuaW1wb3J0IHsgQ29uZmlnVmVyc2lvbkVudW0sIFBvc2l0aW9uLCBXaWRnZXRDb25maWdWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuaW1wb3J0IHtcbiAgT3JnUGFnZUNvbmZpZyxcbiAgUGFnZVZhcmlhbnRDb25maWcsXG4gIFBhZ2VWYXJpYW50VGVzdFR5cGUsXG4gIFdpZGdldE1vdW50aW5nQ29uZmlnLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBCYXNlTWVDb25maWdRdWVyeVJlc3BvbnNlIHtcbiAgbWU6IHtcbiAgICBvcmc/OiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gICAgZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/OiB7XG4gICAgICBmcm9udGVuZD86IHtcbiAgICAgICAgdmFsdWVzOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8R2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5RGF0YT47XG4gICAgICB9O1xuICAgICAgY29sb3JzPzogeyB2YWx1ZXM6IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxHZXRNZXJjaGFudENvbG9yc1F1ZXJ5RGF0YT4gfTtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWc+O1xuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz47XG5leHBvcnQgdHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG5cbmV4cG9ydCB0eXBlIEdyYXBoUWxDb25maWdWYWx1ZXMgPSB7XG4gIGNvbG9yc0NvbmZpZz86IENvbG9yc0NvbmZpZ1Jlc3BvbnNlIHwgQ29sb3JzQ29uZmlnVjNSZXNwb25zZTtcbiAgZnJvbnRlbmRDb25maWc/OiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWcgfCBGcm9udGVuZENvbmZpZ1YzPjtcbiAgb3JnUGFnZUNvbmZpZz86IE9yZ1BhZ2VDb25maWc7XG59O1xuXG5pbnRlcmZhY2UgR3JhcGhRTENvbnRleHRWYWx1ZSB7XG4gIGV4ZWN1dGVRdWVyeTogPFQ+KHF1ZXJ5OiBzdHJpbmcsIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBQcm9taXNlPFQ+O1xuICBnZXRPcmdJZDogKCkgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0VjNDb25maWc6ICgpID0+IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz47XG4gIGdldENvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgaXNSZWFkeTogYm9vbGVhbjtcbn1cblxuY29uc3QgR3JhcGhRTENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEdyYXBoUUxDb250ZXh0VmFsdWUgfCBudWxsPihudWxsKTtcblxuY29uc3QgY29sb3JzQW5kRnJvbnRlbmRDb25maWdRdWVyeSA9ICgpID0+IGBcbiAgcXVlcnkgKCR2ZXJzaW9uOiBTdHJpbmcgPSBcIiR7Y29uZmlnVmVyc2lvbigpfVwiKSB7XG4gICAgbWUge1xuICAgICAgZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24odmVyc2lvbjogJHZlcnNpb24pIHtcbiAgICAgICAgZnJvbnRlbmQgeyB2YWx1ZXMgfVxuICAgICAgICBjb2xvcnMgeyB2YWx1ZXMgfVxuICAgICAgICB2X3RocmVlX2NvbmZpZyB7IHZhbHVlcyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBQb3NpdGlvbiA9PiB7XG4gIGlmIChwb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0Jykge1xuICAgIHJldHVybiAnYm90dG9tTGVmdCc7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuICdtaWRkbGVMZWZ0JztcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdtaWRkbGUtcmlnaHQnKSB7XG4gICAgcmV0dXJuICdtaWRkbGVSaWdodCc7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLXJpZ2h0Jykge1xuICAgIHJldHVybiAnYm90dG9tUmlnaHQnO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBjb2xvcnNBbmRGcm9udGVuZENvbmZpZ1F1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuXG4gICAgICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgICAgIHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWcpIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ubW91bnRpbmdfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyhjb25maWcsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdjN3aWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gICAgICBjb25zdCB2M1dpZGdldENvbmZpZ3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIHYzd2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgICAgICB7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH0gYXMgV2lkZ2V0Q29uZmlnVjMsXG4gICAgICAgIF0pLFxuICAgICAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG4gICAgICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgICAgICA/IHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cy5tYXAodmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHMpXG4gICAgICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gICAgICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHYzIHJvb3QgY29uZmlnIGlzIG5vdCBmb3VuZCBhbmQgd2UgYXJlIGNvbmZpZ3VyZWQgdG8gcmV0dXJuIHRoZSBkZXByZWNhdGVkIGNvbmZpZywgd2Ugd2lsbCByZXR1cm4gdGhlIG1vY2tlZCBjb25maWdcbiAgICAgIGlmICghdjNSb290Q29uZmlnICYmIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZykge1xuICAgICAgICBjb25zdCBpc1NlbWFudGljQ29sb3JzID0gIXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdnbG9iYWxzPW1lcmNoYW50Jyk7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IG1vY2tWM0NvbG9yc0NvbmZpZztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICAgID8gKGNvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKVxuICAgICAgICAgICAgOiAodjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IGZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgICAgIC4uLih2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgLy8gTmVlZCB0byByZXBsYWNlIHRoZSBhdXRvbWF0aWMgd2lkZ2V0IGNvbmZpZ3Mgd2l0aCB0aGUgb2JqZWN0IGJhc2VkIG9uZXNcbiAgICAgICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgICAvLyBUT0RPOiBBZGQgd2lkZ2V0cyBhbmQgb3RoZXIgY29uZmlnIGhlcmVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoJ0Vycm9yIGZldGNoaW5nIGdyYXBocWwgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH0sIFtleGVjdXRlUXVlcnksIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ10pO1xuXG4gIGNvbnN0IGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGNvbG9yc0FuZEZyb250ZW5kQ29uZmlnUXVlcnkoKTtcbiAgICAgIGlmICghcXVlcnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZyBxdWVyeSBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkocXVlcnkpO1xuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8udmVyc2lvbiAhPT0gQ29uZmlnVmVyc2lvbkVudW0uVjMgJiZcbiAgICAgICAgIW1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb2xvcnNDb25maWcpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEZyb250ZW5kQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGZyb250ZW5kQ29uZmlnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IHRyYW5zZm9ybWVkQ29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IFJFTU9WRSBNT0NLRUQgQ09ORklHIE9OQ0UgV0UgSEFWRSBUSEUgTkVXIENPTkZJRyBJTVBMRU1FTlRFRCBPTiBCQUNLRU5EXG4gICAgICBjb25zdCBtZXJjaGFudENvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkTWVyY2hhbnRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChtZXJjaGFudENvbG9yc0NvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGlzU2VtYW50aWNDb2xvcnMgPSAhd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2dsb2JhbHM9bWVyY2hhbnQnKTtcblxuICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiBpc1NlbWFudGljQ29sb3JzXG4gICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgOiAodHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIExvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeV0pO1xuXG4gIGNvbnN0IGdldENvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICBjb25zb2xlLmxvZygnR3JhcGhRTFByb3ZpZGVyOiBnZXRDb25maWc6IHJlcXVlc3RWM0NvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgaWYgKHJlcXVlc3RWM0NvbmZpZykge1xuICAgICAgcmV0dXJuIGdldFYzQ29uZmlnKCk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuICB9LCBbZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCByZXF1ZXN0VjNDb25maWddKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGV4ZWN1dGVRdWVyeSxcbiAgICAgIGdldE9yZ0lkLFxuICAgICAgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsXG4gICAgICBnZXRWM0NvbmZpZyxcbiAgICAgIGdldENvbmZpZyxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2V4ZWN1dGVRdWVyeSwgZ2V0T3JnSWQsIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgZ2V0Q29uZmlnLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPEdyYXBoUUxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvR3JhcGhRTENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyYXBoUUxDbGllbnQgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdyYXBoUUxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHcmFwaFFMQ2xpZW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHcmFwaFFMUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUErREEs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
@@ -1,6 +1,7 @@
1
- const require_contexts_typesV3 = require('../typesV3.cjs');
2
1
  const require_colorsConfigV3 = require('../../application/models/colorsConfigV3.cjs');
2
+ const require_contexts_typesV3 = require('../typesV3.cjs');
3
3
  const require_types = require('../../packages/components-v3/dist/ImageGallery/types/types.cjs');
4
+ const require_theme = require('../../packages/components-v3/dist/tokens/theme/theme.cjs');
4
5
  require('../../packages/components-v3/dist/ImageGallery/index.cjs');
5
6
  const require_index$1 = require('../../packages/components-v3/dist/PromptButton/types/index.cjs');
6
7
  require('../../packages/components-v3/dist/PromptButton/index.cjs');
@@ -8,6 +9,12 @@ const require_types$1 = require('../../packages/components-v3/dist/PromptCarouse
8
9
  require('../../packages/components-v3/dist/PromptCarousel/index.cjs');
9
10
  const require_types$2 = require('../../packages/components-v3/dist/WidgetWrapper/types/types.cjs');
10
11
  require('../../packages/components-v3/dist/WidgetWrapper/index.cjs');
12
+ require('../../packages/components-v3/dist/Tokens/index.cjs');
13
+ const require_index$6 = require('../../packages/components-v3/dist/ChatHeader/types/index.cjs');
14
+ require('../../packages/components-v3/dist/ChatHeader/index.cjs');
15
+ const require_types$3 = require('../../packages/components-v3/dist/WelcomeMessage/types/types.cjs');
16
+ require('../../packages/components-v3/dist/WelcomeMessage/index.cjs');
17
+ const require_customerService = require('../../types/customerService.cjs');
11
18
 
12
19
  //#region src/contexts/graphqlContext/mockV3Config.ts
13
20
  const mockImages = [
@@ -50,13 +57,14 @@ const mockV3FrontendConfig = {
50
57
  version: require_contexts_typesV3.ConfigVersionEnum.V3,
51
58
  shortName: "Envive AI",
52
59
  lookAndFeel: {
53
- theme: "standard",
60
+ theme: require_theme.Theme.STANDARD,
54
61
  agentName: "Envive AI",
55
- chatHeaderLogoSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_Lt.svg",
62
+ chatHeaderLogoDarkSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_DK.svg",
63
+ chatHeaderLogoLightSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_Lt.svg",
56
64
  widgetLogoSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_DK.svg",
57
65
  hideWidgetLogo: false,
58
66
  elementRadius: 8,
59
- imageAspectRatio: "3/4",
67
+ imageAspectRatio: "1/1",
60
68
  buttonColors: {
61
69
  lightButtonBackgroundColor: require_colorsConfigV3.colorVar(require_colorsConfigV3.ColorNames.BackgroundSecondary),
62
70
  lightButtonIconColor: require_colorsConfigV3.colorVar(require_colorsConfigV3.ColorNames.AccentPrimary),
@@ -106,22 +114,30 @@ const mockV3FrontendConfig = {
106
114
  }
107
115
  },
108
116
  floatingButton: {
109
- position: "bottom-right",
110
- backgroundColor: require_colorsConfigV3.colorVar(require_colorsConfigV3.ColorNames.BackgroundPrimary),
111
- mode: "light",
117
+ position: "bottomRight",
118
+ backgroundColor: require_colorsConfigV3.ColorNames.BackgroundPrimary,
119
+ mode: "dark",
112
120
  showOption: "always",
113
121
  style: "attached",
114
122
  iconSVGSrc: ""
115
123
  },
116
124
  floatingChat: {
117
- headerBackgroundColor: require_colorsConfigV3.colorVar(require_colorsConfigV3.ColorNames.BackgroundPrimary),
118
- headerMode: "dark",
119
- welcomeMessageIconColor: require_colorsConfigV3.colorVar(require_colorsConfigV3.ColorNames.AccentPrimary),
120
- showVerifiedBuyer: false,
121
- userCanEditQueries: true,
125
+ headerBackgroundColor: void 0,
126
+ headerMode: require_index$6.ChatHeaderVariant.DARK,
127
+ welcomeMessageIconColor: require_types$3.SparkleIconColor.ACCENT_PRIMARY,
128
+ showVerifiedBuyer: true,
129
+ userQueryInputEnabled: true,
122
130
  showEnviveLogo: true,
123
131
  ignoreFirstModelResponse: false,
124
- neverShowSingleProductCards: false
132
+ neverShowSingleProductCards: false,
133
+ welcomeMessageTitle: "Welcome to Envive AI",
134
+ welcomeMessageText: "Your personal shopper trained on the collective knowledge of thousands of real experts!",
135
+ chatFooterTextFieldPlaceholderText: "Ask me anything..."
136
+ },
137
+ customerServiceIntegration: {
138
+ provider: require_customerService.CustomerServiceType.unsupported,
139
+ enabled: false,
140
+ suppressMerchantButton: false
125
141
  }
126
142
  },
127
143
  pageVariants: [],
@@ -198,6 +214,32 @@ const mockV3FrontendConfig = {
198
214
  primaryButtonVariant: require_index$1.PromptButtonVariant.DARK,
199
215
  secondaryButtonVariant: require_index$1.PromptButtonVariant.LIGHT,
200
216
  images: mockImages
217
+ },
218
+ "typing-animation-test-light-widget": {
219
+ widgetConfigId: "typing-animation-test-light-widget",
220
+ contentId: "typing-animation-test-light-widget",
221
+ type: require_contexts_typesV3.WidgetTypeV3.TypingAnimationV3,
222
+ widgetVariant: require_types$2.WidgetWrapperVariant.CARD_WITH_BORDER,
223
+ promptButtonType: require_index$1.PromptButtonVariant.LIGHT,
224
+ promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
225
+ showTextField: true
226
+ },
227
+ "typing-animation-test-dark-widget": {
228
+ widgetConfigId: "typing-animation-test-dark-widget",
229
+ contentId: "typing-animation-test-dark-widget",
230
+ type: require_contexts_typesV3.WidgetTypeV3.TypingAnimationV3,
231
+ widgetVariant: require_types$2.WidgetWrapperVariant.CARD_WITH_BORDER,
232
+ promptButtonType: require_index$1.PromptButtonVariant.DARK,
233
+ promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
234
+ showTextField: true
235
+ },
236
+ "prompt-button-carousel-with-image-test-widget": {
237
+ widgetConfigId: "prompt-button-carousel-with-image-test-widget",
238
+ contentId: "prompt-button-carousel-with-image-test-widget",
239
+ type: require_contexts_typesV3.WidgetTypeV3.PromptButtonCarouselWithImageV3,
240
+ promptButtonType: require_index$1.PromptButtonVariant.LIGHT,
241
+ image: mockImages[0],
242
+ hideTextField: false
201
243
  }
202
244
  }
203
245
  };
@@ -205,4 +247,4 @@ const mockV3FrontendConfig = {
205
247
  //#endregion
206
248
  exports.mockV3ColorsConfig = mockV3ColorsConfig;
207
249
  exports.mockV3FrontendConfig = mockV3FrontendConfig;
208
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmNqcyIsIm5hbWVzIjpbIm1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiIsIm1vY2tWM0Zyb250ZW5kQ29uZmlnOiBGcm9udGVuZENvbmZpZ1YzIiwiQ29uZmlnVmVyc2lvbkVudW0iLCJjb2xvclZhciIsIkNvbG9yTmFtZXMiLCJXaWRnZXRUeXBlVjMiLCJQcm9tcHRCdXR0b25WYXJpYW50IiwiUHJvbXB0Q2Fyb3VzZWxSb3dzIiwiQW5pbWF0aW9uU3BlZWQiLCJJbWFnZUdhbGxlcnlMYXlvdXQiLCJTb2NpYWxQcm9vZldpZGdldEtpbmQiLCJXaWRnZXRXcmFwcGVyVmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9tb2NrVjNDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnJvbnRlbmRDb25maWdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWdWMyc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmdWMywgQ29sb3JOYW1lcywgY29sb3JWYXIgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgSW1hZ2VHYWxsZXJ5TGF5b3V0IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0ltYWdlR2FsbGVyeSc7XG5pbXBvcnQgeyBQcm9tcHRCdXR0b25WYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdEJ1dHRvbic7XG5pbXBvcnQgeyBQcm9tcHRDYXJvdXNlbFJvd3MsIEFuaW1hdGlvblNwZWVkIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdENhcm91c2VsJztcbmltcG9ydCB7IFdpZGdldFdyYXBwZXJWYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1dpZGdldFdyYXBwZXInO1xuaW1wb3J0IHsgQ29uZmlnVmVyc2lvbkVudW0sIFNvY2lhbFByb29mV2lkZ2V0S2luZCwgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5cbmNvbnN0IG1vY2tJbWFnZXMgPSBbXG4gIHtcbiAgICBzcmM6ICdodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzYwMCcsXG4gICAgYWx0OiAnSW1hZ2UgMScsXG4gIH0sXG4gIHtcbiAgICBzcmM6ICdodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzYwMCcsXG4gICAgYWx0OiAnSW1hZ2UgMicsXG4gIH0sXG4gIHtcbiAgICBzcmM6ICdodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzYwMCcsXG4gICAgYWx0OiAnSW1hZ2UgMycsXG4gIH0sXG4gIHtcbiAgICBzcmM6ICdodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzYwMCcsXG4gICAgYWx0OiAnSW1hZ2UgNCcsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgbW9ja1YzQ29sb3JzQ29uZmlnOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+ID0ge1xuICB0ZXh0UHJpbWFyeTogJyMwMjE0MTQnLFxuICB0ZXh0U2Vjb25kYXJ5OiAnIzY2NjY2NicsXG4gIHRleHRBY2NlbnQ6ICcjNDc4RDg3JyxcbiAgdGV4dExpbms6ICcjMDQyRTJDJyxcbiAgdGV4dExpZ2h0OiAnI0ZGRkZGRicsXG4gIGJhY2tncm91bmRQcmltYXJ5OiAnIzFGNUY1MScsXG4gIGJhY2tncm91bmRTZWNvbmRhcnk6ICcjRjlGNkVBJyxcbiAgYmFja2dyb3VuZFRlcnRpYXJ5OiAnI0VFRUNERCcsXG4gIGJhY2tncm91bmREYXJrOiAnIzAyMTQxNCcsXG4gIGJhY2tncm91bmRMaWdodDogJyNGRkZGRkYnLFxuICBib3JkZXJMaWdodDogJyNFNkU3RTcnLFxuICBib3JkZXJNZWRpdW06ICcjQjNCOEI4JyxcbiAgYm9yZGVyRGFyazogJyMwMjE0MTQnLFxuICBhY2NlbnRQcmltYXJ5OiAnIzFGNUY1MScsXG4gIGFjY2VudFNlY29uZGFyeTogJyNBRTg2NTknLFxufTtcblxuZXhwb3J0IGNvbnN0IG1vY2tWM0Zyb250ZW5kQ29uZmlnOiBGcm9udGVuZENvbmZpZ1YzID0ge1xuICB1aUNvbmZpZ3M6IHtcbiAgICB2ZXJzaW9uOiBDb25maWdWZXJzaW9uRW51bS5WMyxcbiAgICBzaG9ydE5hbWU6ICdFbnZpdmUgQUknLFxuICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICB0aGVtZTogJ3N0YW5kYXJkJyxcbiAgICAgIGFnZW50TmFtZTogJ0Vudml2ZSBBSScsXG4gICAgICBjaGF0SGVhZGVyTG9nb1NyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0x0LnN2ZycsXG4gICAgICB3aWRnZXRMb2dvU3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fREsuc3ZnJyxcbiAgICAgIGhpZGVXaWRnZXRMb2dvOiBmYWxzZSxcbiAgICAgIGVsZW1lbnRSYWRpdXM6IDgsXG4gICAgICBpbWFnZUFzcGVjdFJhdGlvOiAnMy80JyxcbiAgICAgIGJ1dHRvbkNvbG9yczoge1xuICAgICAgICBsaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5KSxcbiAgICAgICAgbGlnaHRCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICAgIGRhcmtCdXR0b25CYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZERhcmspLFxuICAgICAgICBkYXJrQnV0dG9uSWNvbkNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkFjY2VudFByaW1hcnkpLFxuICAgICAgfSxcbiAgICAgIHR5cG9ncmFwaHk6IHtcbiAgICAgICAgdGl0bGVGb250RmFtaWx5OiAnUG9wcGlucycsXG4gICAgICAgIGhlYWRlckZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgYm9keUZvbnRGYW1pbHk6ICdJbnRlciBWYXJpYWJsZScsXG4gICAgICAgIGZvbnRTaXplOiB7XG4gICAgICAgICAgdDE6ICczMnB4JyxcbiAgICAgICAgICB0MjogJzI4cHgnLFxuICAgICAgICAgIHQzOiAnMjRweCcsXG4gICAgICAgICAgaDE6ICcyMHB4JyxcbiAgICAgICAgICBoMjogJzE2cHgnLFxuICAgICAgICAgIGgzOiAnMTRweCcsXG4gICAgICAgICAgYjE6ICcyMHB4JyxcbiAgICAgICAgICBiMjogJzE2cHgnLFxuICAgICAgICAgIGIzOiAnMTRweCcsXG4gICAgICAgICAgYjQ6ICcxMnB4JyxcbiAgICAgICAgICBiNTogJzEwcHgnLFxuICAgICAgICAgIGwxOiAnMTRweCcsXG4gICAgICAgICAgbDI6ICcxMnB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9udFdlaWdodDoge1xuICAgICAgICAgIHJnOiAnNDAwJyxcbiAgICAgICAgICBtZDogJzUwMCcsXG4gICAgICAgICAgc2I6ICc2MDAnLFxuICAgICAgICB9LFxuICAgICAgICBsZXR0ZXJTcGFjaW5nOiB7XG4gICAgICAgICAgJzAnOiAnMGVtJyxcbiAgICAgICAgICAnd2lkZS0xJzogJzFweCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAnMTI0JzogMS4yNCxcbiAgICAgICAgICAnMTIwJzogMS4yLFxuICAgICAgICAgICcxMTgnOiAxLjE4LFxuICAgICAgICAgICcxMTYnOiAxLjE2LFxuICAgICAgICAgICcxMTQnOiAxLjE0LFxuICAgICAgICAgICcxNDgnOiAxLjQ4LFxuICAgICAgICAgICcxNDAnOiAxLjQsXG4gICAgICAgICAgJzEyOCc6IDEuMjgsXG4gICAgICAgICAgJzEzMCc6IDEuMyxcbiAgICAgICAgICAnMTMzJzogMS4zMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBmbG9hdGluZ0J1dHRvbjoge1xuICAgICAgcG9zaXRpb246ICdib3R0b20tcmlnaHQnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRQcmltYXJ5KSxcbiAgICAgIG1vZGU6ICdsaWdodCcsXG4gICAgICBzaG93T3B0aW9uOiAnYWx3YXlzJyxcbiAgICAgIHN0eWxlOiAnYXR0YWNoZWQnLFxuICAgICAgaWNvblNWR1NyYzogJycsXG4gICAgfSxcbiAgICBmbG9hdGluZ0NoYXQ6IHtcbiAgICAgIGhlYWRlckJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSksXG4gICAgICBoZWFkZXJNb2RlOiAnZGFyaycsXG4gICAgICB3ZWxjb21lTWVzc2FnZUljb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgIHNob3dWZXJpZmllZEJ1eWVyOiBmYWxzZSxcbiAgICAgIHVzZXJDYW5FZGl0UXVlcmllczogdHJ1ZSxcbiAgICAgIHNob3dFbnZpdmVMb2dvOiB0cnVlLFxuICAgICAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlOiBmYWxzZSxcbiAgICAgIG5ldmVyU2hvd1NpbmdsZVByb2R1Y3RDYXJkczogZmFsc2UsXG4gICAgfSxcbiAgfSxcbiAgcGFnZVZhcmlhbnRzOiBbXSxcbiAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgd2lkZ2V0Q29uZmlnczoge1xuICAgICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LkZPVVJfR1JJRCxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5JTkxJTkVfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZSc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZScsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5TSU5HTEUsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9OT19CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCcsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5GT1VSX0hPUklaT05UQUwsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBU0EsTUFBTSxhQUFhO0NBQ2pCO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNGO0FBRUQsTUFBYUEscUJBQStEO0NBQzFFLGFBQWE7Q0FDYixlQUFlO0NBQ2YsWUFBWTtDQUNaLFVBQVU7Q0FDVixXQUFXO0NBQ1gsbUJBQW1CO0NBQ25CLHFCQUFxQjtDQUNyQixvQkFBb0I7Q0FDcEIsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtDQUNqQixhQUFhO0NBQ2IsY0FB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
250
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmNqcyIsIm5hbWVzIjpbIm1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiIsIm1vY2tWM0Zyb250ZW5kQ29uZmlnOiBGcm9udGVuZENvbmZpZ1YzIiwiQ29uZmlnVmVyc2lvbkVudW0iLCJUaGVtZSIsImNvbG9yVmFyIiwiQ29sb3JOYW1lcyIsIkNoYXRIZWFkZXJWYXJpYW50IiwiU3BhcmtsZUljb25Db2xvciIsIkN1c3RvbWVyU2VydmljZVR5cGUiLCJXaWRnZXRUeXBlVjMiLCJQcm9tcHRCdXR0b25WYXJpYW50IiwiUHJvbXB0Q2Fyb3VzZWxSb3dzIiwiQW5pbWF0aW9uU3BlZWQiLCJJbWFnZUdhbGxlcnlMYXlvdXQiLCJTb2NpYWxQcm9vZldpZGdldEtpbmQiLCJXaWRnZXRXcmFwcGVyVmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9tb2NrVjNDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnJvbnRlbmRDb25maWdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWdWMyc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmdWMywgQ29sb3JOYW1lcywgY29sb3JWYXIgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgSW1hZ2VHYWxsZXJ5TGF5b3V0IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0ltYWdlR2FsbGVyeSc7XG5pbXBvcnQgeyBQcm9tcHRCdXR0b25WYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdEJ1dHRvbic7XG5pbXBvcnQgeyBBbmltYXRpb25TcGVlZCwgUHJvbXB0Q2Fyb3VzZWxSb3dzIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdENhcm91c2VsJztcbmltcG9ydCB7IFdpZGdldFdyYXBwZXJWYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1dpZGdldFdyYXBwZXInO1xuaW1wb3J0IHsgVGhlbWUgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvVG9rZW5zJztcbmltcG9ydCB7IENoYXRIZWFkZXJWYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0NoYXRIZWFkZXInO1xuaW1wb3J0IHsgU3BhcmtsZUljb25Db2xvciB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XZWxjb21lTWVzc2FnZSc7XG5cbmltcG9ydCB7IEN1c3RvbWVyU2VydmljZVR5cGUgfSBmcm9tICdzcmMvdHlwZXMvY3VzdG9tZXJTZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ1ZlcnNpb25FbnVtLCBTb2NpYWxQcm9vZldpZGdldEtpbmQsIFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuXG5jb25zdCBtb2NrSW1hZ2VzID0gW1xuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDEnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDInLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDMnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDQnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiA9IHtcbiAgdGV4dFByaW1hcnk6ICcjMDIxNDE0JyxcbiAgdGV4dFNlY29uZGFyeTogJyM2NjY2NjYnLFxuICB0ZXh0QWNjZW50OiAnIzQ3OEQ4NycsXG4gIHRleHRMaW5rOiAnIzA0MkUyQycsXG4gIHRleHRMaWdodDogJyNGRkZGRkYnLFxuICBiYWNrZ3JvdW5kUHJpbWFyeTogJyMxRjVGNTEnLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiAnI0Y5RjZFQScsXG4gIGJhY2tncm91bmRUZXJ0aWFyeTogJyNFRUVDREQnLFxuICBiYWNrZ3JvdW5kRGFyazogJyMwMjE0MTQnLFxuICBiYWNrZ3JvdW5kTGlnaHQ6ICcjRkZGRkZGJyxcbiAgYm9yZGVyTGlnaHQ6ICcjRTZFN0U3JyxcbiAgYm9yZGVyTWVkaXVtOiAnI0IzQjhCOCcsXG4gIGJvcmRlckRhcms6ICcjMDIxNDE0JyxcbiAgYWNjZW50UHJpbWFyeTogJyMxRjVGNTEnLFxuICBhY2NlbnRTZWNvbmRhcnk6ICcjQUU4NjU5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNGcm9udGVuZENvbmZpZzogRnJvbnRlbmRDb25maWdWMyA9IHtcbiAgdWlDb25maWdzOiB7XG4gICAgdmVyc2lvbjogQ29uZmlnVmVyc2lvbkVudW0uVjMsXG4gICAgc2hvcnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICBsb29rQW5kRmVlbDoge1xuICAgICAgdGhlbWU6IFRoZW1lLlNUQU5EQVJELFxuICAgICAgYWdlbnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0RLLnN2ZycsXG4gICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fTHQuc3ZnJyxcbiAgICAgIHdpZGdldExvZ29TcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19ESy5zdmcnLFxuICAgICAgaGlkZVdpZGdldExvZ286IGZhbHNlLFxuICAgICAgZWxlbWVudFJhZGl1czogOCxcbiAgICAgIGltYWdlQXNwZWN0UmF0aW86ICcxLzEnLFxuICAgICAgYnV0dG9uQ29sb3JzOiB7XG4gICAgICAgIGxpZ2h0QnV0dG9uQmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnkpLFxuICAgICAgICBsaWdodEJ1dHRvbkljb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgICAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICAgIGRhcmtCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICB9LFxuICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICB0aXRsZUZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgaGVhZGVyRm9udEZhbWlseTogJ1BvcHBpbnMnLFxuICAgICAgICBib2R5Rm9udEZhbWlseTogJ0ludGVyIFZhcmlhYmxlJyxcbiAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICB0MTogJzMycHgnLFxuICAgICAgICAgIHQyOiAnMjhweCcsXG4gICAgICAgICAgdDM6ICcyNHB4JyxcbiAgICAgICAgICBoMTogJzIwcHgnLFxuICAgICAgICAgIGgyOiAnMTZweCcsXG4gICAgICAgICAgaDM6ICcxNHB4JyxcbiAgICAgICAgICBiMTogJzIwcHgnLFxuICAgICAgICAgIGIyOiAnMTZweCcsXG4gICAgICAgICAgYjM6ICcxNHB4JyxcbiAgICAgICAgICBiNDogJzEycHgnLFxuICAgICAgICAgIGI1OiAnMTBweCcsXG4gICAgICAgICAgbDE6ICcxNHB4JyxcbiAgICAgICAgICBsMjogJzEycHgnLFxuICAgICAgICB9LFxuICAgICAgICBmb250V2VpZ2h0OiB7XG4gICAgICAgICAgcmc6ICc0MDAnLFxuICAgICAgICAgIG1kOiAnNTAwJyxcbiAgICAgICAgICBzYjogJzYwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAnMCc6ICcwZW0nLFxuICAgICAgICAgICd3aWRlLTEnOiAnMXB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICcxMjQnOiAxLjI0LFxuICAgICAgICAgICcxMjAnOiAxLjIsXG4gICAgICAgICAgJzExOCc6IDEuMTgsXG4gICAgICAgICAgJzExNic6IDEuMTYsXG4gICAgICAgICAgJzExNCc6IDEuMTQsXG4gICAgICAgICAgJzE0OCc6IDEuNDgsXG4gICAgICAgICAgJzE0MCc6IDEuNCxcbiAgICAgICAgICAnMTI4JzogMS4yOCxcbiAgICAgICAgICAnMTMwJzogMS4zLFxuICAgICAgICAgICcxMzMnOiAxLjMzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICBwb3NpdGlvbjogJ2JvdHRvbVJpZ2h0JyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSxcbiAgICAgIG1vZGU6ICdkYXJrJyxcbiAgICAgIHNob3dPcHRpb246ICdhbHdheXMnLFxuICAgICAgc3R5bGU6ICdhdHRhY2hlZCcsXG4gICAgICBpY29uU1ZHU3JjOiAnJyxcbiAgICB9LFxuICAgIGZsb2F0aW5nQ2hhdDoge1xuICAgICAgaGVhZGVyQmFja2dyb3VuZENvbG9yOiB1bmRlZmluZWQsXG4gICAgICBoZWFkZXJNb2RlOiBDaGF0SGVhZGVyVmFyaWFudC5EQVJLLFxuICAgICAgd2VsY29tZU1lc3NhZ2VJY29uQ29sb3I6IFNwYXJrbGVJY29uQ29sb3IuQUNDRU5UX1BSSU1BUlksXG4gICAgICBzaG93VmVyaWZpZWRCdXllcjogdHJ1ZSxcbiAgICAgIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogdHJ1ZSxcbiAgICAgIHNob3dFbnZpdmVMb2dvOiB0cnVlLFxuICAgICAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlOiBmYWxzZSxcbiAgICAgIG5ldmVyU2hvd1NpbmdsZVByb2R1Y3RDYXJkczogZmFsc2UsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRpdGxlOiAnV2VsY29tZSB0byBFbnZpdmUgQUknLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUZXh0OlxuICAgICAgICAnWW91ciBwZXJzb25hbCBzaG9wcGVyIHRyYWluZWQgb24gdGhlIGNvbGxlY3RpdmUga25vd2xlZGdlIG9mIHRob3VzYW5kcyBvZiByZWFsIGV4cGVydHMhJyxcbiAgICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gICAgY3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb246IHtcbiAgICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlLnVuc3VwcG9ydGVkLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBzdXBwcmVzc01lcmNoYW50QnV0dG9uOiBmYWxzZSxcbiAgICB9LFxuICB9LFxuICBwYWdlVmFyaWFudHM6IFtdLFxuICBtb3VudGluZ0NvbmZpZ3M6IHt9LFxuICB3aWRnZXRDb25maWdzOiB7XG4gICAgJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuRk9VUl9HUklELFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LklOTElORV9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LlNJTkdMRSxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX05PX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LkZPVVJfSE9SSVpPTlRBTCxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3R5cGluZy1hbmltYXRpb24tdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjMsXG4gICAgICB3aWRnZXRWYXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBzaG93VGV4dEZpZWxkOiB0cnVlLFxuICAgIH0sXG4gICAgJ3R5cGluZy1hbmltYXRpb24tdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjMsXG4gICAgICB3aWRnZXRWYXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIHNob3dUZXh0RmllbGQ6IHRydWUsXG4gICAgfSxcbiAgICAncHJvbXB0LWJ1dHRvbi1jYXJvdXNlbC13aXRoLWltYWdlLXRlc3Qtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtYnV0dG9uLWNhcm91c2VsLXdpdGgtaW1hZ2UtdGVzdC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWJ1dHRvbi1jYXJvdXNlbC13aXRoLWltYWdlLXRlc3Qtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzLFxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlOiBtb2NrSW1hZ2VzWzBdLFxuICAgICAgaGlkZVRleHRGaWVsZDogZmFsc2UsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxNQUFNLGFBQWE7Q0FDakI7RUFDRSxLQUFLO0VBQ0wsS0FBSztFQUNOO0NBQ0Q7RUFDRSxL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
@@ -1,6 +1,7 @@
1
- import { ConfigVersionEnum, SocialProofWidgetKind, WidgetTypeV3 } from "../typesV3.js";
2
1
  import { ColorNames, colorVar } from "../../application/models/colorsConfigV3.js";
2
+ import { ConfigVersionEnum, SocialProofWidgetKind, WidgetTypeV3 } from "../typesV3.js";
3
3
  import { ImageGalleryLayout } from "../../packages/components-v3/dist/ImageGallery/types/types.js";
4
+ import { Theme } from "../../packages/components-v3/dist/tokens/theme/theme.js";
4
5
  import "../../packages/components-v3/dist/ImageGallery/index.js";
5
6
  import { PromptButtonVariant } from "../../packages/components-v3/dist/PromptButton/types/index.js";
6
7
  import "../../packages/components-v3/dist/PromptButton/index.js";
@@ -8,6 +9,12 @@ import { AnimationSpeed, PromptCarouselRows } from "../../packages/components-v3
8
9
  import "../../packages/components-v3/dist/PromptCarousel/index.js";
9
10
  import { WidgetWrapperVariant } from "../../packages/components-v3/dist/WidgetWrapper/types/types.js";
10
11
  import "../../packages/components-v3/dist/WidgetWrapper/index.js";
12
+ import "../../packages/components-v3/dist/Tokens/index.js";
13
+ import { ChatHeaderVariant } from "../../packages/components-v3/dist/ChatHeader/types/index.js";
14
+ import "../../packages/components-v3/dist/ChatHeader/index.js";
15
+ import { SparkleIconColor } from "../../packages/components-v3/dist/WelcomeMessage/types/types.js";
16
+ import "../../packages/components-v3/dist/WelcomeMessage/index.js";
17
+ import { CustomerServiceType } from "../../types/customerService.js";
11
18
 
12
19
  //#region src/contexts/graphqlContext/mockV3Config.ts
13
20
  const mockImages = [
@@ -50,13 +57,14 @@ const mockV3FrontendConfig = {
50
57
  version: ConfigVersionEnum.V3,
51
58
  shortName: "Envive AI",
52
59
  lookAndFeel: {
53
- theme: "standard",
60
+ theme: Theme.STANDARD,
54
61
  agentName: "Envive AI",
55
- chatHeaderLogoSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_Lt.svg",
62
+ chatHeaderLogoDarkSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_DK.svg",
63
+ chatHeaderLogoLightSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_Lt.svg",
56
64
  widgetLogoSrc: "https://cdn.spiffy.ai/other/assets/envive-ai/Envive_Logo_DK.svg",
57
65
  hideWidgetLogo: false,
58
66
  elementRadius: 8,
59
- imageAspectRatio: "3/4",
67
+ imageAspectRatio: "1/1",
60
68
  buttonColors: {
61
69
  lightButtonBackgroundColor: colorVar(ColorNames.BackgroundSecondary),
62
70
  lightButtonIconColor: colorVar(ColorNames.AccentPrimary),
@@ -106,22 +114,30 @@ const mockV3FrontendConfig = {
106
114
  }
107
115
  },
108
116
  floatingButton: {
109
- position: "bottom-right",
110
- backgroundColor: colorVar(ColorNames.BackgroundPrimary),
111
- mode: "light",
117
+ position: "bottomRight",
118
+ backgroundColor: ColorNames.BackgroundPrimary,
119
+ mode: "dark",
112
120
  showOption: "always",
113
121
  style: "attached",
114
122
  iconSVGSrc: ""
115
123
  },
116
124
  floatingChat: {
117
- headerBackgroundColor: colorVar(ColorNames.BackgroundPrimary),
118
- headerMode: "dark",
119
- welcomeMessageIconColor: colorVar(ColorNames.AccentPrimary),
120
- showVerifiedBuyer: false,
121
- userCanEditQueries: true,
125
+ headerBackgroundColor: void 0,
126
+ headerMode: ChatHeaderVariant.DARK,
127
+ welcomeMessageIconColor: SparkleIconColor.ACCENT_PRIMARY,
128
+ showVerifiedBuyer: true,
129
+ userQueryInputEnabled: true,
122
130
  showEnviveLogo: true,
123
131
  ignoreFirstModelResponse: false,
124
- neverShowSingleProductCards: false
132
+ neverShowSingleProductCards: false,
133
+ welcomeMessageTitle: "Welcome to Envive AI",
134
+ welcomeMessageText: "Your personal shopper trained on the collective knowledge of thousands of real experts!",
135
+ chatFooterTextFieldPlaceholderText: "Ask me anything..."
136
+ },
137
+ customerServiceIntegration: {
138
+ provider: CustomerServiceType.unsupported,
139
+ enabled: false,
140
+ suppressMerchantButton: false
125
141
  }
126
142
  },
127
143
  pageVariants: [],
@@ -198,10 +214,36 @@ const mockV3FrontendConfig = {
198
214
  primaryButtonVariant: PromptButtonVariant.DARK,
199
215
  secondaryButtonVariant: PromptButtonVariant.LIGHT,
200
216
  images: mockImages
217
+ },
218
+ "typing-animation-test-light-widget": {
219
+ widgetConfigId: "typing-animation-test-light-widget",
220
+ contentId: "typing-animation-test-light-widget",
221
+ type: WidgetTypeV3.TypingAnimationV3,
222
+ widgetVariant: WidgetWrapperVariant.CARD_WITH_BORDER,
223
+ promptButtonType: PromptButtonVariant.LIGHT,
224
+ promptCarouselRows: PromptCarouselRows.ALWAYS_ONE,
225
+ showTextField: true
226
+ },
227
+ "typing-animation-test-dark-widget": {
228
+ widgetConfigId: "typing-animation-test-dark-widget",
229
+ contentId: "typing-animation-test-dark-widget",
230
+ type: WidgetTypeV3.TypingAnimationV3,
231
+ widgetVariant: WidgetWrapperVariant.CARD_WITH_BORDER,
232
+ promptButtonType: PromptButtonVariant.DARK,
233
+ promptCarouselRows: PromptCarouselRows.ALWAYS_ONE,
234
+ showTextField: true
235
+ },
236
+ "prompt-button-carousel-with-image-test-widget": {
237
+ widgetConfigId: "prompt-button-carousel-with-image-test-widget",
238
+ contentId: "prompt-button-carousel-with-image-test-widget",
239
+ type: WidgetTypeV3.PromptButtonCarouselWithImageV3,
240
+ promptButtonType: PromptButtonVariant.LIGHT,
241
+ image: mockImages[0],
242
+ hideTextField: false
201
243
  }
202
244
  }
203
245
  };
204
246
 
205
247
  //#endregion
206
248
  export { mockV3ColorsConfig, mockV3FrontendConfig };
207
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmpzIiwibmFtZXMiOlsibW9ja1YzQ29sb3JzQ29uZmlnOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+IiwibW9ja1YzRnJvbnRlbmRDb25maWc6IEZyb250ZW5kQ29uZmlnVjMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUxheW91dCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9JbWFnZUdhbGxlcnknO1xuaW1wb3J0IHsgUHJvbXB0QnV0dG9uVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRCdXR0b24nO1xuaW1wb3J0IHsgUHJvbXB0Q2Fyb3VzZWxSb3dzLCBBbmltYXRpb25TcGVlZCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRDYXJvdXNlbCc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IENvbmZpZ1ZlcnNpb25FbnVtLCBTb2NpYWxQcm9vZldpZGdldEtpbmQsIFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuXG5jb25zdCBtb2NrSW1hZ2VzID0gW1xuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDEnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDInLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDMnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDQnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiA9IHtcbiAgdGV4dFByaW1hcnk6ICcjMDIxNDE0JyxcbiAgdGV4dFNlY29uZGFyeTogJyM2NjY2NjYnLFxuICB0ZXh0QWNjZW50OiAnIzQ3OEQ4NycsXG4gIHRleHRMaW5rOiAnIzA0MkUyQycsXG4gIHRleHRMaWdodDogJyNGRkZGRkYnLFxuICBiYWNrZ3JvdW5kUHJpbWFyeTogJyMxRjVGNTEnLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiAnI0Y5RjZFQScsXG4gIGJhY2tncm91bmRUZXJ0aWFyeTogJyNFRUVDREQnLFxuICBiYWNrZ3JvdW5kRGFyazogJyMwMjE0MTQnLFxuICBiYWNrZ3JvdW5kTGlnaHQ6ICcjRkZGRkZGJyxcbiAgYm9yZGVyTGlnaHQ6ICcjRTZFN0U3JyxcbiAgYm9yZGVyTWVkaXVtOiAnI0IzQjhCOCcsXG4gIGJvcmRlckRhcms6ICcjMDIxNDE0JyxcbiAgYWNjZW50UHJpbWFyeTogJyMxRjVGNTEnLFxuICBhY2NlbnRTZWNvbmRhcnk6ICcjQUU4NjU5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNGcm9udGVuZENvbmZpZzogRnJvbnRlbmRDb25maWdWMyA9IHtcbiAgdWlDb25maWdzOiB7XG4gICAgdmVyc2lvbjogQ29uZmlnVmVyc2lvbkVudW0uVjMsXG4gICAgc2hvcnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICBsb29rQW5kRmVlbDoge1xuICAgICAgdGhlbWU6ICdzdGFuZGFyZCcsXG4gICAgICBhZ2VudE5hbWU6ICdFbnZpdmUgQUknLFxuICAgICAgY2hhdEhlYWRlckxvZ29TcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19MdC5zdmcnLFxuICAgICAgd2lkZ2V0TG9nb1NyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0RLLnN2ZycsXG4gICAgICBoaWRlV2lkZ2V0TG9nbzogZmFsc2UsXG4gICAgICBlbGVtZW50UmFkaXVzOiA4LFxuICAgICAgaW1hZ2VBc3BlY3RSYXRpbzogJzMvNCcsXG4gICAgICBidXR0b25Db2xvcnM6IHtcbiAgICAgICAgbGlnaHRCdXR0b25CYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeSksXG4gICAgICAgIGxpZ2h0QnV0dG9uSWNvbkNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkFjY2VudFByaW1hcnkpLFxuICAgICAgICBkYXJrQnV0dG9uQmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmREYXJrKSxcbiAgICAgICAgZGFya0J1dHRvbkljb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgIH0sXG4gICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgIHRpdGxlRm9udEZhbWlseTogJ1BvcHBpbnMnLFxuICAgICAgICBoZWFkZXJGb250RmFtaWx5OiAnUG9wcGlucycsXG4gICAgICAgIGJvZHlGb250RmFtaWx5OiAnSW50ZXIgVmFyaWFibGUnLFxuICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgIHQxOiAnMzJweCcsXG4gICAgICAgICAgdDI6ICcyOHB4JyxcbiAgICAgICAgICB0MzogJzI0cHgnLFxuICAgICAgICAgIGgxOiAnMjBweCcsXG4gICAgICAgICAgaDI6ICcxNnB4JyxcbiAgICAgICAgICBoMzogJzE0cHgnLFxuICAgICAgICAgIGIxOiAnMjBweCcsXG4gICAgICAgICAgYjI6ICcxNnB4JyxcbiAgICAgICAgICBiMzogJzE0cHgnLFxuICAgICAgICAgIGI0OiAnMTJweCcsXG4gICAgICAgICAgYjU6ICcxMHB4JyxcbiAgICAgICAgICBsMTogJzE0cHgnLFxuICAgICAgICAgIGwyOiAnMTJweCcsXG4gICAgICAgIH0sXG4gICAgICAgIGZvbnRXZWlnaHQ6IHtcbiAgICAgICAgICByZzogJzQwMCcsXG4gICAgICAgICAgbWQ6ICc1MDAnLFxuICAgICAgICAgIHNiOiAnNjAwJyxcbiAgICAgICAgfSxcbiAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICcwJzogJzBlbScsXG4gICAgICAgICAgJ3dpZGUtMSc6ICcxcHgnLFxuICAgICAgICB9LFxuICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgJzEyNCc6IDEuMjQsXG4gICAgICAgICAgJzEyMCc6IDEuMixcbiAgICAgICAgICAnMTE4JzogMS4xOCxcbiAgICAgICAgICAnMTE2JzogMS4xNixcbiAgICAgICAgICAnMTE0JzogMS4xNCxcbiAgICAgICAgICAnMTQ4JzogMS40OCxcbiAgICAgICAgICAnMTQwJzogMS40LFxuICAgICAgICAgICcxMjgnOiAxLjI4LFxuICAgICAgICAgICcxMzAnOiAxLjMsXG4gICAgICAgICAgJzEzMyc6IDEuMzMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgIHBvc2l0aW9uOiAnYm90dG9tLXJpZ2h0JyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSksXG4gICAgICBtb2RlOiAnbGlnaHQnLFxuICAgICAgc2hvd09wdGlvbjogJ2Fsd2F5cycsXG4gICAgICBzdHlsZTogJ2F0dGFjaGVkJyxcbiAgICAgIGljb25TVkdTcmM6ICcnLFxuICAgIH0sXG4gICAgZmxvYXRpbmdDaGF0OiB7XG4gICAgICBoZWFkZXJCYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnkpLFxuICAgICAgaGVhZGVyTW9kZTogJ2RhcmsnLFxuICAgICAgd2VsY29tZU1lc3NhZ2VJY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICBzaG93VmVyaWZpZWRCdXllcjogZmFsc2UsXG4gICAgICB1c2VyQ2FuRWRpdFF1ZXJpZXM6IHRydWUsXG4gICAgICBzaG93RW52aXZlTG9nbzogdHJ1ZSxcbiAgICAgIGlnbm9yZUZpcnN0TW9kZWxSZXNwb25zZTogZmFsc2UsXG4gICAgICBuZXZlclNob3dTaW5nbGVQcm9kdWN0Q2FyZHM6IGZhbHNlLFxuICAgIH0sXG4gIH0sXG4gIHBhZ2VWYXJpYW50czogW10sXG4gIG1vdW50aW5nQ29uZmlnczoge30sXG4gIHdpZGdldENvbmZpZ3M6IHtcbiAgICAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCcsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5GT1VSX0dSSUQsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuSU5MSU5FX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZScsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuU0lOR0xFLFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfTk9fQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuRk9VUl9IT1JJWk9OVEFMLFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVNBLE1BQU0sYUFBYTtDQUNqQjtFQUNFLEtBQUs7RUFDTCxLQUFLO0VBQ047Q0FDRDtFQUNFLEtBQUs7RUFDTCxLQUFLO0VBQ047Q0FDRDtFQUNFLEtBQUs7RUFDTCxLQUFLO0VBQ047Q0FDRDtFQUNFLEtBQUs7RUFDTCxLQUFLO0VBQ047Q0FDRjtBQUVELE1BQWFBLHFCQUErRDtDQUMxRSxhQUFhO0NBQ2IsZUFBZTtDQUNmLFlBQVk7Q0FDWixVQUFVO0NBQ1YsV0FBVztDQUNYLG1CQUFtQjtDQUNuQixxQkFBcUI7Q0FDckIsb0JBQW9CO0NBQ3BCLGdCQUFnQjtDQUNoQixpQkFBaUI7Q0FDakIsYUFBYTtDQUNiLGNBQWM7Q0FDZCxZQUFZO0NBQ1osZUFBZTtDQUNmLGlCQUFpQjtDQUNsQjtBQUVELE1BQWFDLHVCQUF5QztDQUNwRCxXQUFXO0VBQ1QsU0FBUyxrQkFBa0I7RUFDM0IsV0FBVztFQUNYLGFBQWE7R0FDWCxPQUFPO0dBQ1AsV0FBVztHQUNYLG1CQUFtQjtHQUNuQixlQUFlO0dBQ2YsZ0JBQWdCO0dBQ2hCLGVBQWU7R0FDZixrQkFBa0I7R0FD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
249
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmpzIiwibmFtZXMiOlsibW9ja1YzQ29sb3JzQ29uZmlnOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+IiwibW9ja1YzRnJvbnRlbmRDb25maWc6IEZyb250ZW5kQ29uZmlnVjMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUxheW91dCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9JbWFnZUdhbGxlcnknO1xuaW1wb3J0IHsgUHJvbXB0QnV0dG9uVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRCdXR0b24nO1xuaW1wb3J0IHsgQW5pbWF0aW9uU3BlZWQsIFByb21wdENhcm91c2VsUm93cyB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRDYXJvdXNlbCc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Rva2Vucyc7XG5pbXBvcnQgeyBDaGF0SGVhZGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9DaGF0SGVhZGVyJztcbmltcG9ydCB7IFNwYXJrbGVJY29uQ29sb3IgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2VsY29tZU1lc3NhZ2UnO1xuXG5pbXBvcnQgeyBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgU29jaWFsUHJvb2ZXaWRnZXRLaW5kLCBXaWRnZXRUeXBlVjMgfSBmcm9tICcuLi90eXBlc1YzJztcblxuY29uc3QgbW9ja0ltYWdlcyA9IFtcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSAxJyxcbiAgfSxcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSAyJyxcbiAgfSxcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSAzJyxcbiAgfSxcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSA0JyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNDb2xvcnNDb25maWc6IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz4gPSB7XG4gIHRleHRQcmltYXJ5OiAnIzAyMTQxNCcsXG4gIHRleHRTZWNvbmRhcnk6ICcjNjY2NjY2JyxcbiAgdGV4dEFjY2VudDogJyM0NzhEODcnLFxuICB0ZXh0TGluazogJyMwNDJFMkMnLFxuICB0ZXh0TGlnaHQ6ICcjRkZGRkZGJyxcbiAgYmFja2dyb3VuZFByaW1hcnk6ICcjMUY1RjUxJyxcbiAgYmFja2dyb3VuZFNlY29uZGFyeTogJyNGOUY2RUEnLFxuICBiYWNrZ3JvdW5kVGVydGlhcnk6ICcjRUVFQ0REJyxcbiAgYmFja2dyb3VuZERhcms6ICcjMDIxNDE0JyxcbiAgYmFja2dyb3VuZExpZ2h0OiAnI0ZGRkZGRicsXG4gIGJvcmRlckxpZ2h0OiAnI0U2RTdFNycsXG4gIGJvcmRlck1lZGl1bTogJyNCM0I4QjgnLFxuICBib3JkZXJEYXJrOiAnIzAyMTQxNCcsXG4gIGFjY2VudFByaW1hcnk6ICcjMUY1RjUxJyxcbiAgYWNjZW50U2Vjb25kYXJ5OiAnI0FFODY1OScsXG59O1xuXG5leHBvcnQgY29uc3QgbW9ja1YzRnJvbnRlbmRDb25maWc6IEZyb250ZW5kQ29uZmlnVjMgPSB7XG4gIHVpQ29uZmlnczoge1xuICAgIHZlcnNpb246IENvbmZpZ1ZlcnNpb25FbnVtLlYzLFxuICAgIHNob3J0TmFtZTogJ0Vudml2ZSBBSScsXG4gICAgbG9va0FuZEZlZWw6IHtcbiAgICAgIHRoZW1lOiBUaGVtZS5TVEFOREFSRCxcbiAgICAgIGFnZW50TmFtZTogJ0Vudml2ZSBBSScsXG4gICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19ESy5zdmcnLFxuICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0x0LnN2ZycsXG4gICAgICB3aWRnZXRMb2dvU3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fREsuc3ZnJyxcbiAgICAgIGhpZGVXaWRnZXRMb2dvOiBmYWxzZSxcbiAgICAgIGVsZW1lbnRSYWRpdXM6IDgsXG4gICAgICBpbWFnZUFzcGVjdFJhdGlvOiAnMS8xJyxcbiAgICAgIGJ1dHRvbkNvbG9yczoge1xuICAgICAgICBsaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5KSxcbiAgICAgICAgbGlnaHRCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICAgIGRhcmtCdXR0b25CYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZERhcmspLFxuICAgICAgICBkYXJrQnV0dG9uSWNvbkNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkFjY2VudFByaW1hcnkpLFxuICAgICAgfSxcbiAgICAgIHR5cG9ncmFwaHk6IHtcbiAgICAgICAgdGl0bGVGb250RmFtaWx5OiAnUG9wcGlucycsXG4gICAgICAgIGhlYWRlckZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgYm9keUZvbnRGYW1pbHk6ICdJbnRlciBWYXJpYWJsZScsXG4gICAgICAgIGZvbnRTaXplOiB7XG4gICAgICAgICAgdDE6ICczMnB4JyxcbiAgICAgICAgICB0MjogJzI4cHgnLFxuICAgICAgICAgIHQzOiAnMjRweCcsXG4gICAgICAgICAgaDE6ICcyMHB4JyxcbiAgICAgICAgICBoMjogJzE2cHgnLFxuICAgICAgICAgIGgzOiAnMTRweCcsXG4gICAgICAgICAgYjE6ICcyMHB4JyxcbiAgICAgICAgICBiMjogJzE2cHgnLFxuICAgICAgICAgIGIzOiAnMTRweCcsXG4gICAgICAgICAgYjQ6ICcxMnB4JyxcbiAgICAgICAgICBiNTogJzEwcHgnLFxuICAgICAgICAgIGwxOiAnMTRweCcsXG4gICAgICAgICAgbDI6ICcxMnB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9udFdlaWdodDoge1xuICAgICAgICAgIHJnOiAnNDAwJyxcbiAgICAgICAgICBtZDogJzUwMCcsXG4gICAgICAgICAgc2I6ICc2MDAnLFxuICAgICAgICB9LFxuICAgICAgICBsZXR0ZXJTcGFjaW5nOiB7XG4gICAgICAgICAgJzAnOiAnMGVtJyxcbiAgICAgICAgICAnd2lkZS0xJzogJzFweCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAnMTI0JzogMS4yNCxcbiAgICAgICAgICAnMTIwJzogMS4yLFxuICAgICAgICAgICcxMTgnOiAxLjE4LFxuICAgICAgICAgICcxMTYnOiAxLjE2LFxuICAgICAgICAgICcxMTQnOiAxLjE0LFxuICAgICAgICAgICcxNDgnOiAxLjQ4LFxuICAgICAgICAgICcxNDAnOiAxLjQsXG4gICAgICAgICAgJzEyOCc6IDEuMjgsXG4gICAgICAgICAgJzEzMCc6IDEuMyxcbiAgICAgICAgICAnMTMzJzogMS4zMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBmbG9hdGluZ0J1dHRvbjoge1xuICAgICAgcG9zaXRpb246ICdib3R0b21SaWdodCcsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IENvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnksXG4gICAgICBtb2RlOiAnZGFyaycsXG4gICAgICBzaG93T3B0aW9uOiAnYWx3YXlzJyxcbiAgICAgIHN0eWxlOiAnYXR0YWNoZWQnLFxuICAgICAgaWNvblNWR1NyYzogJycsXG4gICAgfSxcbiAgICBmbG9hdGluZ0NoYXQ6IHtcbiAgICAgIGhlYWRlckJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICAgICAgaGVhZGVyTW9kZTogQ2hhdEhlYWRlclZhcmlhbnQuREFSSyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlSWNvbkNvbG9yOiBTcGFya2xlSWNvbkNvbG9yLkFDQ0VOVF9QUklNQVJZLFxuICAgICAgc2hvd1ZlcmlmaWVkQnV5ZXI6IHRydWUsXG4gICAgICB1c2VyUXVlcnlJbnB1dEVuYWJsZWQ6IHRydWUsXG4gICAgICBzaG93RW52aXZlTG9nbzogdHJ1ZSxcbiAgICAgIGlnbm9yZUZpcnN0TW9kZWxSZXNwb25zZTogZmFsc2UsXG4gICAgICBuZXZlclNob3dTaW5nbGVQcm9kdWN0Q2FyZHM6IGZhbHNlLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICAgIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uOiB7XG4gICAgICBwcm92aWRlcjogQ3VzdG9tZXJTZXJ2aWNlVHlwZS51bnN1cHBvcnRlZCxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NNZXJjaGFudEJ1dHRvbjogZmFsc2UsXG4gICAgfSxcbiAgfSxcbiAgcGFnZVZhcmlhbnRzOiBbXSxcbiAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgd2lkZ2V0Q29uZmlnczoge1xuICAgICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LkZPVVJfR1JJRCxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5JTkxJTkVfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZSc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZScsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5TSU5HTEUsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9OT19CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCcsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5GT1VSX0hPUklaT05UQUwsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICAgICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzLFxuICAgICAgd2lkZ2V0VmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgc2hvd1RleHRGaWVsZDogdHJ1ZSxcbiAgICB9LFxuICAgICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzLFxuICAgICAgd2lkZ2V0VmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBzaG93VGV4dEZpZWxkOiB0cnVlLFxuICAgIH0sXG4gICAgJ3Byb21wdC1idXR0b24tY2Fyb3VzZWwtd2l0aC1pbWFnZS10ZXN0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWJ1dHRvbi1jYXJvdXNlbC13aXRoLWltYWdlLXRlc3Qtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3Byb21wdC1idXR0b24tY2Fyb3VzZWwtd2l0aC1pbWFnZS10ZXN0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VWMyxcbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZTogbW9ja0ltYWdlc1swXSxcbiAgICAgIGhpZGVUZXh0RmllbGQ6IGZhbHNlLFxuICAgIH0sXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsTUFBTSxhQUFhO0NBQ2pCO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNGO0FBRUQsTUFBYUEscUJBQStEO0NBQzFFLGFBQWE7Q0FDYixlQUFlO0NBQ2YsWUFBWTtDQUNaLFVBQVU7Q0FDVixXQUFXO0NBQ1gsbUJBQW1CO0NBQ25CLHFCQUFxQjtDQUNyQixvQkFBb0I7Q0FDcEIsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtDQUNqQixhQUFhO0NBQ2IsY0FBYztDQUNkLFlBQVk7Q0FDWixlQUFlO0NBQ2YsaUJBQWlCO0NBQ2xCO0FBRUQsTUFBYUMsdUJBQXlDO0NBQ3BELFdBQVc7RUFDVCxTQUFTLGtCQUFrQjtFQUMzQixXQUFXO0VBQ1gsYUFBYTtHQUNYLE9BQU8sTUFBTTtHQUNiLFdBQVc7R0FDWCx1QkFBdUI7R0FDdkIsd0JBQXdCO0dBQ3hCLGVBQWU7R0FDZixnQkFBZ0I7R0FDaEIsZUFBZTtHQUNmLGtCQUFrQjtHQUNsQixjQUFjO0lBQ1osNEJBQTRCLFNBQVMsV0FBVyxvQkFBb0I7SUFDcEUsc0JBQXNCLFNBQVMsV0FBVyxjQUFjO0lBQ3hELDJCQUEyQixTQUFTLFdBQVcsZUFBZTtJQUM5RCxxQkFBcUIsU0FBUyxXQUFXLGNBQWM7SUFDeEQ7R0FDRCxZQUFZO0lBQ1YsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsVUFBVTtLQUNSLElBQUk7S0FDSixJQUFJO0tBQ0osSUFBSTtLQUNKLElBQUk7S0FDSixJQUFJO0tBQ0osSUFBSTtLQUNKLElBQUk7S0FDSixJQUFJO0tBQ0osSUFBSTtLQUNKLElBQUk7S0FDSixJQUFJO0tBQ0osSUFBSTtLQUNKLElBQUk7S0FDTDtJQUNELFlBQVk7S0FDVixJQUFJO0tBQ0osSUFBSTtLQUNKLElBQUk7S0FDTDtJQUNELGVBQWU7S0FDYixLQUFLO0tBQ0wsVUFBVTtLQUNYO0lBQ0QsWUFBWTtLQUNWLE9BQU87S0FDUCxPQUFPO0tBQ1AsT0FBTztLQUNQLE9BQU87S0FDUCxPQUFPO0tBQ1AsT0FBTztLQUNQLE9BQU87S0FDUCxPQUFPO0tBQ1AsT0FBTztLQUNQLE9BQU87S0FDUjtJQUNGO0dBQ0Y7RUFDRCxnQkFBZ0I7R0FDZCxVQUFVO0dBQ1YsaUJBQWlCLFdBQVc7R0FDNUIsTUFBTTtHQUNOLFlBQVk7R0FDWixPQUFPO0dBQ1AsWUFBWTtHQUNiO0VBQ0QsY0FBYztHQUNaLHVCQUF1QjtHQUN2QixZQUFZLGtCQUFrQjtHQUM5Qix5QkFBeUIsaUJBQWlCO0dBQzFDLG1CQUFtQjtHQUNuQix1QkFBdUI7R0FDdkIsZ0JBQWdCO0dBQ2hCLDBCQUEwQjtHQUMxQiw2QkFBNkI7R0FDN0IscUJBQXFCO0dBQ3JCLG9CQUNFO0dBQ0Ysb0NBQW9DO0dBQ3JDO0VBQ0QsNEJBQTRCO0dBQzFCLFVBQVUsb0JBQW9CO0dBQzlCLFNBQVM7R0FDVCx3QkFBd0I7R0FDekI7RUFDRjtDQUNELGNBQWMsRUFBRTtDQUNoQixpQkFBaUIsRUFBRTtDQUNuQixlQUFlO0VBQ2IscUNBQXFDO0dBQ25DLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsTUFBTSxhQUFhO0dBRW5CLGtCQUFrQixvQkFBb0I7R0FDdEMsaUJBQWlCO0dBQ2pCLG9CQUFvQixtQkFBbUI7R0FDdkMsZ0JBQWdCLGVBQWU7R0FDaEM7RUFDRCxvQ0FBb0M7R0FDbEMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FFbkIsa0JBQWtCLG9CQUFvQjtHQUN0QyxpQkFBaUI7R0FDakIsb0JBQW9CLG1CQUFtQjtHQUN2QyxnQkFBZ0IsZUFBZTtHQUNoQztFQUNELDRDQUE0QztHQUMxQyxnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLE1BQU0sYUFBYTtHQUVuQixrQkFBa0Isb0JBQW9CO0dBQ3RDLGlCQUFpQjtHQUNqQixvQkFBb0IsbUJBQW1CO0dBQ3ZDLGdCQUFnQixlQUFlO0dBQ2hDO0VBQ0QsMkNBQTJDO0dBQ3pDLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsTUFBTSxhQUFhO0dBRW5CLGtCQUFrQixvQkFBb0I7R0FDdEMsaUJBQWlCO0dBQ2pCLG9CQUFvQixtQkFBbUI7R0FDdkMsZ0JBQWdCLGVBQWU7R0FDaEM7RUFDRCxzQ0FBc0M7R0FDcEMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FFbkIsb0JBQW9CLG1CQUFtQjtHQUN2QyxNQUFNLHNCQUFzQjtHQUM1QixTQUFTLHFCQUFxQjtHQUM5QixvQkFBb0IsbUJBQW1CO0dBQ3ZDLHNCQUFzQixvQkFBb0I7R0FDMUMsd0JBQXdCLG9CQUFvQjtHQUM1QyxRQUFRO0dBQ1Q7RUFDRCxtQ0FBbUM7R0FDakMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FFbkIsb0JBQW9CLG1CQUFtQjtHQUN2QyxNQUFNLHNCQUFzQjtHQUM1QixTQUFTLHFCQUFxQjtHQUM5QixvQkFBb0IsbUJBQW1CO0dBQ3ZDLHNCQUFzQixvQkFBb0I7R0FDMUMsd0JBQXdCLG9CQUFvQjtHQUM1QyxRQUFRO0dBQ1Q7RUFDRCw0Q0FBNEM7R0FDMUMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FFbkIsb0JBQW9CLG1CQUFtQjtHQUN2QyxNQUFNLHNCQUFzQjtHQUM1QixTQUFTLHFCQUFxQjtHQUM5QixvQkFBb0IsbUJBQW1CO0dBQ3ZDLHNCQUFzQixvQkFBb0I7R0FDMUMsd0JBQXdCLG9CQUFvQjtHQUM1QyxRQUFRO0dBQ1Q7RUFDRCxzQ0FBc0M7R0FDcEMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FDbkIsZUFBZSxxQkFBcUI7R0FDcEMsa0JBQWtCLG9CQUFvQjtHQUN0QyxvQkFBb0IsbUJBQW1CO0dBQ3ZDLGVBQWU7R0FDaEI7RUFDRCxxQ0FBcUM7R0FDbkMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FDbkIsZUFBZSxxQkFBcUI7R0FDcEMsa0JBQWtCLG9CQUFvQjtHQUN0QyxvQkFBb0IsbUJBQW1CO0dBQ3ZDLGVBQWU7R0FDaEI7RUFDRCxpREFBaUQ7R0FDL0MsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCxNQUFNLGFBQWE7R0FDbkIsa0JBQWtCLG9CQUFvQjtHQUN0QyxPQUFPLFdBQVc7R0FDbEIsZUFBZTtHQUNoQjtFQUNGO0NBQ0YifQ==