@envive-ai/react-hooks 0.1.6 → 0.1.8

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 (686) hide show
  1. package/dist/NewOrgConfig-BU6uJT74.js +15 -0
  2. package/dist/NewOrgConfig-DmidHiyj.cjs +20 -0
  3. package/dist/SystemSettingsContext-BbobkM82.cjs +20 -0
  4. package/dist/SystemSettingsContext-gtrccL_q.js +13 -0
  5. package/dist/TrackComponentVisibleEvent-CqjMiZCS.cjs +59 -0
  6. package/dist/TrackComponentVisibleEvent-D9kpqKM4.js +52 -0
  7. package/dist/amplitudeContext-B73xamNe.d.cts +52 -0
  8. package/dist/amplitudeContext-BhhYPJSL.d.ts +52 -0
  9. package/dist/amplitudeContext-Dr1jHI13.cjs +309 -0
  10. package/dist/amplitudeContext-YRS1QOO3.js +287 -0
  11. package/dist/api-DYjHj_hR.cjs +239 -0
  12. package/dist/api-d5uWvb3-.js +166 -0
  13. package/dist/{app-CjsQ2_n-.js → app-B9r0MF9n.js} +7 -7
  14. package/dist/{app-CnKRZ9RW.cjs → app-Bgr-mAvr.cjs} +10 -10
  15. package/dist/application/models/graphql/index.cjs +2 -1
  16. package/dist/application/models/graphql/index.d.ts +1 -1
  17. package/dist/application/models/graphql/index.js +2 -1
  18. package/dist/application/models/guards/api/index.cjs +3 -1
  19. package/dist/application/models/guards/api/index.d.ts +2 -2
  20. package/dist/application/models/guards/api/index.js +3 -1
  21. package/dist/application/models/guards/utils.cjs +3 -0
  22. package/dist/application/models/guards/utils.d.cts +2 -0
  23. package/dist/application/models/guards/utils.d.ts +2 -0
  24. package/dist/application/models/guards/utils.js +3 -0
  25. package/dist/application/models/index.cjs +13 -10
  26. package/dist/application/models/index.d.cts +9 -4
  27. package/dist/application/models/index.d.ts +12 -7
  28. package/dist/application/models/index.js +11 -7
  29. package/dist/application/models/utilityTypes/index.cjs +1 -1
  30. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  31. package/dist/application/models/utilityTypes/index.js +1 -1
  32. package/dist/application/models/variantInfo/index.cjs +1 -1
  33. package/dist/application/models/variantInfo/index.d.cts +1 -1
  34. package/dist/application/models/variantInfo/index.d.ts +1 -1
  35. package/dist/application/models/variantInfo/index.js +1 -1
  36. package/dist/application/utils/index.cjs +47 -40
  37. package/dist/application/utils/index.d.cts +13 -8
  38. package/dist/application/utils/index.d.ts +15 -10
  39. package/dist/application/utils/index.js +20 -13
  40. package/dist/{atomStore-D8pjE1vL.js → atomStore-BuopbV9k.js} +1 -1
  41. package/dist/{atomStore-B4jIaDPd.cjs → atomStore-CZKe3itM.cjs} +1 -1
  42. package/dist/atoms/app/index.cjs +14 -9
  43. package/dist/atoms/app/index.d.cts +16 -11
  44. package/dist/atoms/app/index.d.ts +19 -14
  45. package/dist/atoms/app/index.js +14 -9
  46. package/dist/atoms/atomStore/index.cjs +2 -2
  47. package/dist/atoms/atomStore/index.d.cts +1 -1
  48. package/dist/atoms/atomStore/index.js +2 -2
  49. package/dist/atoms/chat/index.cjs +35 -28
  50. package/dist/atoms/chat/index.d.cts +36 -31
  51. package/dist/atoms/chat/index.d.ts +39 -34
  52. package/dist/atoms/chat/index.js +21 -14
  53. package/dist/atoms/globalSearch/index.cjs +1 -1
  54. package/dist/atoms/globalSearch/index.d.cts +5 -5
  55. package/dist/atoms/globalSearch/index.d.ts +6 -6
  56. package/dist/atoms/globalSearch/index.js +1 -1
  57. package/dist/atoms/org/index.cjs +6 -14
  58. package/dist/atoms/org/index.d.cts +28 -32
  59. package/dist/atoms/org/index.d.ts +31 -35
  60. package/dist/atoms/org/index.js +5 -11
  61. package/dist/atoms/search/index.cjs +46 -34
  62. package/dist/atoms/search/index.d.cts +10 -4
  63. package/dist/atoms/search/index.d.ts +13 -7
  64. package/dist/atoms/search/index.js +28 -16
  65. package/dist/atoms/search/types.cjs +5 -0
  66. package/dist/atoms/search/types.d.cts +2 -0
  67. package/dist/atoms/search/types.d.ts +2 -0
  68. package/dist/atoms/search/types.js +3 -0
  69. package/dist/atoms/search/utils.cjs +3 -0
  70. package/dist/atoms/search/utils.d.cts +5 -0
  71. package/dist/atoms/search/utils.d.ts +5 -0
  72. package/dist/atoms/search/utils.js +3 -0
  73. package/dist/cdnContext-CVgXkdV2.cjs +53 -0
  74. package/dist/cdnContext-DdE6VPIF.js +38 -0
  75. package/dist/chat-BNDYKsqF.js +258 -0
  76. package/dist/{chat-BubCW1as.cjs → chat-BkjIKhc5.cjs} +1 -1
  77. package/dist/chat-Br5FhtRs.cjs +394 -0
  78. package/dist/{chat-CV6MXeID.js → chat-CgLypC3w.js} +1 -1
  79. package/dist/chatElementDisplayLocation-BwiXrkN7.d.ts +25 -0
  80. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +25 -0
  81. package/dist/chatSearch-BiF2__V0.js +295 -0
  82. package/dist/chatSearch-BrzfJOto.cjs +418 -0
  83. package/dist/chatState-BDsqKE-B.cjs +120 -0
  84. package/dist/chatState-ie771Hwy.js +34 -0
  85. package/dist/commerce-api-Dz1jxPOJ.js +311 -0
  86. package/dist/commerce-api-KoiUki51.cjs +318 -0
  87. package/dist/{components-Cw9WjA6g.cjs → components-Cby-Cma3.cjs} +1 -1
  88. package/dist/{components-B4T3Uzth.js → components-D1mg1-Br.js} +1 -1
  89. package/dist/config/locators/components/chat/index.cjs +1 -1
  90. package/dist/config/locators/components/chat/index.d.cts +1 -1
  91. package/dist/config/locators/components/chat/index.d.ts +1 -1
  92. package/dist/config/locators/components/chat/index.js +1 -1
  93. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  94. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  95. package/dist/config/locators/components/index.cjs +1 -1
  96. package/dist/config/locators/components/index.d.cts +1 -1
  97. package/dist/config/locators/components/index.d.ts +1 -1
  98. package/dist/config/locators/components/index.js +1 -1
  99. package/dist/config/locators/components/search/index.d.cts +1 -1
  100. package/dist/config/locators/index.cjs +42 -22
  101. package/dist/config/locators/index.d.cts +2 -2
  102. package/dist/config/locators/index.d.ts +3 -3
  103. package/dist/config/locators/index.js +25 -5
  104. package/dist/contexts/amplitudeContext/index.cjs +22 -0
  105. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  106. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  107. package/dist/contexts/amplitudeContext/index.js +20 -0
  108. package/dist/contexts/cdnContext/index.cjs +7 -0
  109. package/dist/contexts/cdnContext/index.d.cts +15 -0
  110. package/dist/contexts/cdnContext/index.d.ts +15 -0
  111. package/dist/contexts/cdnContext/index.js +6 -0
  112. package/dist/contexts/chatContext/index.cjs +331 -0
  113. package/dist/contexts/chatContext/index.d.cts +15 -0
  114. package/dist/contexts/chatContext/index.d.ts +15 -0
  115. package/dist/contexts/chatContext/index.js +324 -0
  116. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  117. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  118. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  119. package/dist/contexts/enviveConfigContext/index.js +6 -0
  120. package/dist/contexts/enviveCssContext/index.cjs +66 -0
  121. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  122. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  123. package/dist/contexts/enviveCssContext/index.js +63 -0
  124. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  125. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  126. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  127. package/dist/contexts/featureFlagContext/index.js +103 -0
  128. package/dist/contexts/featureFlagServiceContext/index.cjs +6 -0
  129. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  130. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  131. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  132. package/dist/contexts/graphqlContext/index.cjs +16 -0
  133. package/dist/contexts/graphqlContext/index.d.cts +13 -0
  134. package/dist/contexts/graphqlContext/index.d.ts +13 -0
  135. package/dist/contexts/graphqlContext/index.js +15 -0
  136. package/dist/contexts/localStorageContext/index.cjs +6 -0
  137. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  138. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  139. package/dist/contexts/localStorageContext/index.js +4 -0
  140. package/dist/contexts/newOrgConfigContext/index.cjs +20 -0
  141. package/dist/contexts/newOrgConfigContext/index.d.cts +31 -0
  142. package/dist/contexts/newOrgConfigContext/index.d.ts +31 -0
  143. package/dist/contexts/newOrgConfigContext/index.js +19 -0
  144. package/dist/contexts/searchContext/index.cjs +24 -0
  145. package/dist/contexts/searchContext/index.d.cts +16 -0
  146. package/dist/contexts/searchContext/index.d.ts +16 -0
  147. package/dist/contexts/searchContext/index.js +23 -0
  148. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  149. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  150. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  151. package/dist/contexts/sessionStorageContext/index.js +4 -0
  152. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  153. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  154. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  155. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  156. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  157. package/dist/contexts/systemSettingsContext/index.d.cts +37 -0
  158. package/dist/contexts/systemSettingsContext/index.d.ts +37 -0
  159. package/dist/contexts/systemSettingsContext/index.js +6 -0
  160. package/dist/contexts/types.cjs +7 -0
  161. package/dist/contexts/types.d.cts +4 -0
  162. package/dist/contexts/types.d.ts +4 -0
  163. package/dist/contexts/types.js +3 -0
  164. package/dist/contexts/userIdentityContext/index.cjs +27 -0
  165. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  166. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  167. package/dist/contexts/userIdentityContext/index.js +26 -0
  168. package/dist/domObserver-B19-69gW.js +285 -0
  169. package/dist/domObserver-CwieVNgj.cjs +304 -0
  170. package/dist/enviveConfig-BQB14yuH.js +62 -0
  171. package/dist/enviveConfig-DAA9sozZ.cjs +130 -0
  172. package/dist/enviveConfigContext-BCpBKqsz.js +45 -0
  173. package/dist/enviveConfigContext-Btg5JUMG.cjs +60 -0
  174. package/dist/events/index.cjs +1 -1
  175. package/dist/events/index.d.ts +1 -1
  176. package/dist/events/index.js +1 -1
  177. package/dist/{events-BrLpaNxh.js → events-BHJJjPDN.js} +1 -1
  178. package/dist/{events-DwT6cEwI.cjs → events-B_fJZf9E.cjs} +1 -1
  179. package/dist/featureFlagServiceContext-Bcx5yh4S.cjs +56 -0
  180. package/dist/featureFlagServiceContext-Cpw8omUr.d.ts +23 -0
  181. package/dist/featureFlagServiceContext-Cvn6fcdB.d.cts +23 -0
  182. package/dist/featureFlagServiceContext-_tXX5iro.js +42 -0
  183. package/dist/featureGates-2Zea2D2S.js +27 -0
  184. package/dist/featureGates-BY2Zy7x_.cjs +33 -0
  185. package/dist/frontendConfig-DnMZfvcA.d.cts +857 -0
  186. package/dist/frontendConfig-Dqxbqo8G.d.ts +857 -0
  187. package/dist/{globalSearch-BFvEg53C.cjs → globalSearch-C94-vEVh.cjs} +1 -1
  188. package/dist/{globalSearch-B6THR7Jx.js → globalSearch-Dlbnfasm.js} +1 -1
  189. package/dist/graphql-DRLWdYEk.js +36 -0
  190. package/dist/graphql-xPDT7ZkK.cjs +53 -0
  191. package/dist/graphqlConfig-B4ddz1vH.cjs +39 -0
  192. package/dist/graphqlConfig-BnjOdeX7.js +14 -0
  193. package/dist/graphqlContext-B-9g2vOb.js +96 -0
  194. package/dist/graphqlContext-B7PEKDJs.cjs +111 -0
  195. package/dist/hooks/AmplitudeOperations/index.cjs +22 -0
  196. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  197. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  198. package/dist/hooks/AmplitudeOperations/index.js +22 -0
  199. package/dist/hooks/AppDetails/index.cjs +19 -0
  200. package/dist/hooks/AppDetails/index.d.cts +27 -0
  201. package/dist/hooks/AppDetails/index.d.ts +27 -0
  202. package/dist/hooks/AppDetails/index.js +19 -0
  203. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  204. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  205. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  206. package/dist/hooks/BlockBackButton/index.js +27 -0
  207. package/dist/hooks/CdnOperations/index.cjs +24 -0
  208. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  209. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  210. package/dist/hooks/CdnOperations/index.js +22 -0
  211. package/dist/hooks/ChatToggle/index.cjs +64 -0
  212. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  213. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  214. package/dist/hooks/ChatToggle/index.js +62 -0
  215. package/dist/hooks/ChatToggleAnalytics/index.cjs +38 -0
  216. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  217. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  218. package/dist/hooks/ChatToggleAnalytics/index.js +36 -0
  219. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  220. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  221. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  222. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  223. package/dist/hooks/Debounce/index.cjs +3 -0
  224. package/dist/hooks/Debounce/index.d.cts +5 -0
  225. package/dist/hooks/Debounce/index.d.ts +5 -0
  226. package/dist/hooks/Debounce/index.js +3 -0
  227. package/dist/hooks/ElementObserver/index.cjs +179 -0
  228. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  229. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  230. package/dist/hooks/ElementObserver/index.js +177 -0
  231. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  232. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  233. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  234. package/dist/hooks/GrabAndScroll/index.js +97 -0
  235. package/dist/hooks/GraphQLConfig/index.cjs +17 -0
  236. package/dist/hooks/GraphQLConfig/index.d.cts +15 -0
  237. package/dist/hooks/GraphQLConfig/index.d.ts +15 -0
  238. package/dist/hooks/GraphQLConfig/index.js +16 -0
  239. package/dist/hooks/IdentifyUser/index.cjs +60 -0
  240. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  241. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  242. package/dist/hooks/IdentifyUser/index.js +58 -0
  243. package/dist/hooks/ImageResolver/index.cjs +55 -0
  244. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  245. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  246. package/dist/hooks/ImageResolver/index.js +53 -0
  247. package/dist/hooks/Intersection/index.cjs +3 -0
  248. package/dist/hooks/Intersection/index.d.cts +7 -0
  249. package/dist/hooks/Intersection/index.d.ts +7 -0
  250. package/dist/hooks/Intersection/index.js +3 -0
  251. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  252. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  253. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  254. package/dist/hooks/IsSmallScreen/index.js +20 -0
  255. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  256. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  257. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  258. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  259. package/dist/hooks/MessageFilter/index.cjs +54 -0
  260. package/dist/hooks/MessageFilter/index.d.cts +30 -0
  261. package/dist/hooks/MessageFilter/index.d.ts +30 -0
  262. package/dist/hooks/MessageFilter/index.js +54 -0
  263. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  264. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  265. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  266. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  267. package/dist/hooks/NewOrgConfig/index.cjs +20 -0
  268. package/dist/hooks/NewOrgConfig/index.d.cts +23 -0
  269. package/dist/hooks/NewOrgConfig/index.d.ts +23 -0
  270. package/dist/hooks/NewOrgConfig/index.js +20 -0
  271. package/dist/hooks/Search/index.cjs +326 -0
  272. package/dist/hooks/Search/index.d.cts +61 -0
  273. package/dist/hooks/Search/index.d.ts +61 -0
  274. package/dist/hooks/Search/index.js +323 -0
  275. package/dist/hooks/SearchOperations/index.cjs +102 -0
  276. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  277. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  278. package/dist/hooks/SearchOperations/index.js +99 -0
  279. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  280. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  281. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  282. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  283. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  284. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  285. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  286. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  287. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  288. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  289. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  290. package/dist/hooks/SnapCalculator/index.js +27 -0
  291. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  292. package/dist/hooks/SystemSettingsContext/index.d.cts +23 -0
  293. package/dist/hooks/SystemSettingsContext/index.d.ts +23 -0
  294. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  295. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +22 -0
  296. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  297. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  298. package/dist/hooks/TrackComponentVisibleEvent/index.js +22 -0
  299. package/dist/hooks/UpdateAnalyticsProps/index.cjs +62 -0
  300. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  301. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  302. package/dist/hooks/UpdateAnalyticsProps/index.js +59 -0
  303. package/dist/hooks/utils.cjs +8 -0
  304. package/dist/hooks/utils.d.cts +13 -0
  305. package/dist/hooks/utils.d.ts +13 -0
  306. package/dist/hooks/utils.js +3 -0
  307. package/dist/index-B9HUPS_i.d.cts +186 -0
  308. package/dist/{index-CcIG01PJ.d.ts → index-BN-3ctk_.d.ts} +2 -2
  309. package/dist/index-BNiYL8h0.d.cts +28 -0
  310. package/dist/{index-BDPWBU3h.d.cts → index-BW6pHibZ.d.cts} +1 -1
  311. package/dist/index-BirtCYN3.d.ts +186 -0
  312. package/dist/index-Bmub8e38.d.cts +1 -1
  313. package/dist/{index-Cqg6ltII.d.ts → index-BoYC9XLW.d.ts} +1 -1
  314. package/dist/index-C9zXP5bg.d.ts +28 -0
  315. package/dist/index-CESxqFso.d.cts +1 -1
  316. package/dist/index-CK_J3QMY.d.ts +676 -0
  317. package/dist/index-C_MIfxF0.d.cts +676 -0
  318. package/dist/index-CiWEYzXl.d.cts +1 -1
  319. package/dist/{index-C6KdON7d.d.ts → index-Da0UzyI9.d.ts} +1 -1
  320. package/dist/{index-ylUiJvnr.d.ts → index-Dr_c2DDq.d.ts} +1 -1
  321. package/dist/{index-PGF8BvxQ.d.ts → index-DsiilEj-.d.ts} +1 -1
  322. package/dist/{index-Byb45OPg.d.cts → index-MOOZ2oxZ.d.cts} +1 -1
  323. package/dist/{index-DOii3C6b.d.ts → index-ghzD_356.d.ts} +1 -1
  324. package/dist/{index-B0NW9KTj.d.cts → index-hdbCEjYy.d.cts} +1 -1
  325. package/dist/interceptors/index.cjs +2 -1
  326. package/dist/interceptors/index.d.cts +10 -10
  327. package/dist/interceptors/index.d.ts +13 -13
  328. package/dist/interceptors/index.js +2 -1
  329. package/dist/interceptors/types.cjs +1 -0
  330. package/dist/interceptors/types.d.cts +13 -0
  331. package/dist/interceptors/types.d.ts +13 -0
  332. package/dist/interceptors/types.js +3 -0
  333. package/dist/localStorageContext-DiTziaPa.js +95 -0
  334. package/dist/localStorageContext-S38L0OSP.cjs +115 -0
  335. package/dist/logger-CkhQayOW.js +20 -0
  336. package/dist/logger-DQ0WfCcD.cjs +26 -0
  337. package/dist/{models-BkXg5eIP.cjs → models-C48U9q70.js} +220 -458
  338. package/dist/models-Ctn-pmug.cjs +1537 -0
  339. package/dist/newOrgConfigAtom-D6R-7HCk.cjs +15 -0
  340. package/dist/newOrgConfigAtom-bn1lnljf.js +8 -0
  341. package/dist/newOrgConfigContext-D3WoaBVU.cjs +68 -0
  342. package/dist/newOrgConfigContext-rWOYz0E8.js +53 -0
  343. package/dist/{nodeSelector-Dm4S-10n.d.cts → nodeSelector-B3bPtEjX.d.cts} +1 -1
  344. package/dist/{nodeSelector-BxrS2S_k.d.ts → nodeSelector-D5gjDWZ3.d.ts} +1 -1
  345. package/dist/org-CIhjzxWr.cjs +43 -0
  346. package/dist/org-CeWXnpwF.js +12 -0
  347. package/dist/{orgAnalyticsConfig-ClrFy2qH.js → orgAnalyticsConfig-BC4_sEmn.js} +1 -1
  348. package/dist/{orgAnalyticsConfig-BJ2A1RZ-.cjs → orgAnalyticsConfig-DsGbyFhO.cjs} +1 -1
  349. package/dist/search--NZPZkK3.cjs +205 -0
  350. package/dist/search-BLShhjvR.d.ts +20 -0
  351. package/dist/search-CxZl7iQF.js +126 -0
  352. package/dist/{search-filter-types-fZf91Pdw.d.ts → search-filter-types-DPgeG8FS.d.ts} +1 -1
  353. package/dist/{search-filter-types-DosbseF3.d.cts → search-filter-types-_mprCnBi.d.cts} +1 -1
  354. package/dist/search-y-ioX5Mz.d.cts +20 -0
  355. package/dist/searchContext-C4Glr8Nv.cjs +145 -0
  356. package/dist/searchContext-VnjhV7Lk.js +129 -0
  357. package/dist/searchServiceAdapter-DEv1tTn0.cjs +34 -0
  358. package/dist/searchServiceAdapter-WyCU55NV.js +16 -0
  359. package/dist/sessionStorageContext-BJ05_j7l.cjs +66 -0
  360. package/dist/sessionStorageContext-Dp_bhXQP.js +52 -0
  361. package/dist/shopifyUrlContext-CGqpJl1o.js +61 -0
  362. package/dist/shopifyUrlContext-Cob4L7Dt.cjs +75 -0
  363. package/dist/spiffyWidgets-BuS00VaQ.d.cts +20 -0
  364. package/dist/spiffyWidgets-GILaqHv6.d.ts +20 -0
  365. package/dist/systemSettingsContext-BDKWrrco.cjs +60 -0
  366. package/dist/systemSettingsContext-Dqng3YSZ.js +39 -0
  367. package/dist/{test-types-C9b_OdfO.d.ts → test-types-EzMFw_U3.d.ts} +1 -1
  368. package/dist/{test-types-CgVJtwUr.d.cts → test-types-ThQiO_cc.d.cts} +1 -1
  369. package/dist/types/index.cjs +33 -5
  370. package/dist/types/index.d.cts +2 -2
  371. package/dist/types/index.d.ts +2 -2
  372. package/dist/types/index.js +30 -3
  373. package/dist/types-BUeRbZUk.d.cts +10 -0
  374. package/dist/types-BwNrLPSZ.cjs +106 -0
  375. package/dist/types-CMuTSKrW.d.ts +10 -0
  376. package/dist/types-CS0Hrzja.js +30 -0
  377. package/dist/types-CxObxLKs.cjs +48 -0
  378. package/dist/types-D3uOF0Oy.js +76 -0
  379. package/dist/types-fsXBIQwO.d.ts +51 -0
  380. package/dist/types-zuWLkBJ3.d.cts +51 -0
  381. package/dist/types.d.cts +15 -0
  382. package/dist/types.d.ts +15 -0
  383. package/dist/unsupportedProductExceptions-CKiri_vO.cjs +32 -0
  384. package/dist/unsupportedProductExceptions-ClxlJ6cU.js +20 -0
  385. package/dist/urlsParser-D1nsJgQG.cjs +78 -0
  386. package/dist/urlsParser-DzEetiey.js +42 -0
  387. package/dist/useAmplitudeOperations-BSsyvkQ2.cjs +41 -0
  388. package/dist/useAmplitudeOperations-BottjwT9.js +34 -0
  389. package/dist/useAppDetails-BpiBxS_5.cjs +38 -0
  390. package/dist/useAppDetails-DDNIsM46.js +30 -0
  391. package/dist/useDebounce-BaIp-A1W.cjs +26 -0
  392. package/dist/useDebounce-CxPj9WmE.js +19 -0
  393. package/dist/useGraphQLConfig-DZ0ZannB.js +63 -0
  394. package/dist/useGraphQLConfig-Dw8dDh3T.cjs +76 -0
  395. package/dist/useIntersection-B4J9UhaG.js +21 -0
  396. package/dist/useIntersection-DKWc5MY6.cjs +28 -0
  397. package/dist/{useMessageInterceptor-B87e3yu3.cjs → useMessageInterceptor-CstX10ih.cjs} +3 -3
  398. package/dist/{useMessageInterceptor-Bb7YRaWk.js → useMessageInterceptor-D5oAekXn.js} +2 -2
  399. package/dist/userIdentityContext-D2oFVFzo.d.cts +20 -0
  400. package/dist/userIdentityContext-DPFkCSCu.cjs +125 -0
  401. package/dist/userIdentityContext-Z65zM-Ae.js +109 -0
  402. package/dist/userIdentityContext-wYRpgkaJ.d.ts +20 -0
  403. package/dist/utilityTypes-DynzxjK3.js +1 -0
  404. package/dist/utilityTypes-xb8SjKSV.cjs +0 -0
  405. package/dist/utils-2SWrJ12w.cjs +29 -0
  406. package/dist/utils-B1xLx9S8.d.ts +15 -0
  407. package/dist/utils-B3x_9JTY.d.cts +15 -0
  408. package/dist/utils-BZtSmwgh.d.cts +22 -0
  409. package/dist/utils-Bcz5kAgP.js +92 -0
  410. package/dist/utils-CEKzBcN2.js +27 -0
  411. package/dist/utils-CMqFfqZx.cjs +130 -0
  412. package/dist/utils-CVovRwlw.js +606 -0
  413. package/dist/utils-CqBxIpEV.js +23 -0
  414. package/dist/utils-CsMbZmRw.cjs +33 -0
  415. package/dist/utils-DzPSXtmD.cjs +715 -0
  416. package/dist/utils-bxOCg2i9.d.ts +22 -0
  417. package/dist/variantInfo-B7IwRpCg.cjs +0 -0
  418. package/dist/variantInfo-BtOYUGWa.js +1 -0
  419. package/package.json +191 -7
  420. package/src/application/models/index.ts +0 -1
  421. package/src/application/utils/analyticsUtils.ts +1 -1
  422. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -1
  423. package/src/atoms/app/index.ts +1 -1
  424. package/src/atoms/chat/chatState.ts +1 -1
  425. package/src/atoms/chat/replies.ts +1 -1
  426. package/src/atoms/org/graphqlConfig.ts +1 -39
  427. package/src/atoms/org/index.ts +0 -1
  428. package/src/atoms/org/newOrgConfigAtom.ts +2 -6
  429. package/src/contexts/{amplitudeContext.tsx → amplitudeContext/amplitudeContext.tsx} +1 -2
  430. package/src/contexts/amplitudeContext/index.ts +1 -0
  431. package/src/contexts/{cdnContext.tsx → cdnContext/cdnContext.tsx} +1 -1
  432. package/src/contexts/cdnContext/index.ts +1 -0
  433. package/src/contexts/{chatContext.tsx → chatContext/chatContext.tsx} +3 -3
  434. package/src/contexts/chatContext/index.ts +1 -0
  435. package/src/contexts/{enviveConfigContext.tsx → enviveConfigContext/enviveConfigContext.tsx} +1 -1
  436. package/src/contexts/enviveConfigContext/index.ts +1 -0
  437. package/src/contexts/{enviveCssContext.tsx → enviveCssContext/enviveCssContext.tsx} +1 -1
  438. package/src/contexts/enviveCssContext/index.ts +1 -0
  439. package/src/contexts/{featureFlagContext.tsx → featureFlagContext/featureFlagContext.tsx} +1 -1
  440. package/src/contexts/featureFlagContext/index.ts +1 -0
  441. package/src/contexts/featureFlagServiceContext/index.ts +1 -0
  442. package/src/contexts/graphqlContext/index.ts +1 -0
  443. package/src/contexts/localStorageContext/index.ts +1 -0
  444. package/src/contexts/{localStorageContext.tsx → localStorageContext/localStorageContext.tsx} +2 -2
  445. package/src/contexts/newOrgConfigContext/index.ts +1 -0
  446. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +70 -0
  447. package/src/contexts/searchContext/index.ts +1 -0
  448. package/src/contexts/{searchContext.tsx → searchContext/searchContext.tsx} +5 -5
  449. package/src/contexts/sessionStorageContext/index.ts +1 -0
  450. package/src/contexts/{sessionStorageContext.tsx → sessionStorageContext/sessionStorageContext.tsx} +1 -1
  451. package/src/contexts/shopifyUrlContext/index.ts +1 -0
  452. package/src/contexts/systemSettingsContext/index.ts +1 -0
  453. package/src/contexts/userIdentityContext/index.ts +1 -0
  454. package/src/events/registerAnalyticsListeners.ts +2 -2
  455. package/src/favicon.ico +0 -0
  456. package/src/hooks/AmplitudeOperations/index.ts +1 -0
  457. package/src/hooks/{useAmplitudeOperations.ts → AmplitudeOperations/useAmplitudeOperations.ts} +1 -1
  458. package/src/hooks/AppDetails/index.ts +1 -0
  459. package/src/hooks/{useAppDetails.ts → AppDetails/useAppDetails.ts} +1 -3
  460. package/src/hooks/BlockBackButton/index.ts +1 -0
  461. package/src/hooks/CdnOperations/index.ts +1 -0
  462. package/src/hooks/{useCdnOperations.ts → CdnOperations/useCdnOperations.ts} +1 -1
  463. package/src/hooks/ChatToggle/index.ts +1 -0
  464. package/src/hooks/{useChatToggle.ts → ChatToggle/useChatToggle.ts} +1 -1
  465. package/src/hooks/ChatToggleAnalytics/index.ts +1 -0
  466. package/src/hooks/{useChatToggleAnalytics.ts → ChatToggleAnalytics/useChatToggleAnalytics.ts} +1 -1
  467. package/src/hooks/CustomerSupportHandoff/index.ts +1 -0
  468. package/src/hooks/Debounce/index.ts +1 -0
  469. package/src/hooks/ElementObserver/index.ts +1 -0
  470. package/src/hooks/GrabAndScroll/index.ts +1 -0
  471. package/src/hooks/GraphQLConfig/index.ts +1 -0
  472. package/src/hooks/{useGraphQLConfig.ts → GraphQLConfig/useGraphQLConfig.ts} +1 -1
  473. package/src/hooks/IdentifyUser/index.ts +1 -0
  474. package/src/hooks/{useIdentifyUser.ts → IdentifyUser/useIdentifyUser.ts} +1 -1
  475. package/src/hooks/ImageResolver/index.ts +1 -0
  476. package/src/hooks/Intersection/index.ts +1 -0
  477. package/src/hooks/IsSmallScreen/index.ts +1 -0
  478. package/src/hooks/LocalStorageOperations/index.ts +1 -0
  479. package/src/hooks/{useLocalStorageOperations.ts → LocalStorageOperations/useLocalStorageOperations.ts} +2 -2
  480. package/src/hooks/MessageFilter/index.ts +1 -0
  481. package/src/hooks/MessageScrollObserver/index.ts +1 -0
  482. package/src/hooks/NewOrgConfig/index.ts +1 -0
  483. package/src/hooks/{useNewOrgConfig.ts → NewOrgConfig/useNewOrgConfig.ts} +1 -1
  484. package/src/hooks/Search/index.ts +1 -0
  485. package/src/hooks/{useSearch.tsx → Search/useSearch.tsx} +5 -4
  486. package/src/hooks/SearchOperations/index.ts +1 -0
  487. package/src/hooks/SessionStorageOperations/index.ts +1 -0
  488. package/src/hooks/{useSessionStorageOperations.ts → SessionStorageOperations/useSessionStorageOperations.ts} +1 -1
  489. package/src/hooks/ShopifyUrlOperations/index.ts +1 -0
  490. package/src/hooks/{useShopifyUrlOperations.ts → ShopifyUrlOperations/useShopifyUrlOperations.ts} +1 -1
  491. package/src/hooks/SnapCalculator/index.ts +1 -0
  492. package/src/hooks/SystemSettingsContext/index.ts +1 -0
  493. package/src/hooks/SystemSettingsContext/useSystemSettingsContext.ts +14 -0
  494. package/src/hooks/TrackComponentVisibleEvent/index.ts +1 -0
  495. package/src/hooks/{useTrackComponentVisibleEvent.ts → TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts} +2 -2
  496. package/src/hooks/UpdateAnalyticsProps/index.ts +1 -0
  497. package/src/hooks/{useUpdateAnalyticsProps.ts → UpdateAnalyticsProps/useUpdateAnalyticsProps.ts} +1 -1
  498. package/dist/amplitudeContext-CHzas7Cf.d.cts +0 -52
  499. package/dist/amplitudeContext-D-7fmVh1.cjs +0 -356
  500. package/dist/amplitudeContext-hY3caPC6.js +0 -322
  501. package/dist/amplitudeContext-tJ4y-SzX.d.ts +0 -52
  502. package/dist/api-DjeZXxl_.js +0 -207
  503. package/dist/api-_JaUnIUj.cjs +0 -292
  504. package/dist/bandolier-DYEz4-8C.js +0 -1229
  505. package/dist/bandolier-o_-xrbOV.cjs +0 -1229
  506. package/dist/carpe-CsG5jCcl.cjs +0 -607
  507. package/dist/carpe-DONk00bZ.js +0 -605
  508. package/dist/cdnUtils-32v8bDX9.cjs +0 -16
  509. package/dist/cdnUtils-E4tLBt2g.js +0 -11
  510. package/dist/chat-CO7cRkaq.cjs +0 -506
  511. package/dist/chat-hcRc4RRd.js +0 -285
  512. package/dist/contexts/index.cjs +0 -57
  513. package/dist/contexts/index.d.cts +0 -10
  514. package/dist/contexts/index.d.ts +0 -10
  515. package/dist/contexts/index.js +0 -23
  516. package/dist/contexts-B4ihTBsV.cjs +0 -2980
  517. package/dist/contexts-DGlr7M1o.js +0 -2596
  518. package/dist/coterie-CKB93qfz.cjs +0 -239
  519. package/dist/coterie-DHcj2fRE.js +0 -239
  520. package/dist/custservice-types-Dy0kc9TW.cjs +0 -35
  521. package/dist/custservice-types-mnIunabv.js +0 -23
  522. package/dist/default-BnB4p0Se.cjs +0 -234
  523. package/dist/default-D6f5Dyt7.js +0 -199
  524. package/dist/default-ZKkE5zT4.cjs +0 -4
  525. package/dist/default-legGZJwI.js +0 -4
  526. package/dist/divIds-2dJlU3z8.cjs +0 -117
  527. package/dist/divIds-BUrN2vY-.js +0 -21
  528. package/dist/dreamlandBaby-BiRYYFav.js +0 -346
  529. package/dist/dreamlandBaby-zuvmfzfD.cjs +0 -346
  530. package/dist/embedded-BJLWIriJ.js +0 -23
  531. package/dist/embedded-Dl79TJLC.cjs +0 -131
  532. package/dist/entrypoints-Bs3pn6EV.js +0 -7
  533. package/dist/entrypoints-Dqi5pzWH.cjs +0 -19
  534. package/dist/enviveConfig-BccuzS2a.cjs +0 -240
  535. package/dist/enviveConfig-CzhTz8Aa.js +0 -152
  536. package/dist/fiveCbd-DwTTwC2j.cjs +0 -613
  537. package/dist/fiveCbd-Dz2NouOF.js +0 -613
  538. package/dist/forLoveAndLemons-DqSdyD6S.js +0 -665
  539. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +0 -667
  540. package/dist/graphql-BNW60InJ.cjs +0 -128
  541. package/dist/graphql-CjB8wHzm.js +0 -74
  542. package/dist/graphqlConfig-CYt6tWII.js +0 -30
  543. package/dist/graphqlConfig-DicykC-o.cjs +0 -61
  544. package/dist/greenpan-B_EbPkSP.js +0 -397
  545. package/dist/greenpan-kPE4fJgd.cjs +0 -397
  546. package/dist/grooveLife-Ckuir319.js +0 -342
  547. package/dist/grooveLife-DKSEQp1F.cjs +0 -342
  548. package/dist/homegrownCannabis-BVPa2pqe.js +0 -410
  549. package/dist/homegrownCannabis-BwIAkxuA.cjs +0 -410
  550. package/dist/hooks/index.cjs +0 -63
  551. package/dist/hooks/index.d.cts +0 -314
  552. package/dist/hooks/index.d.ts +0 -314
  553. package/dist/hooks/index.js +0 -23
  554. package/dist/index-BMPtlgac.d.ts +0 -191
  555. package/dist/index-C7pGDl1A.d.ts +0 -1609
  556. package/dist/index-C9lgsCWp.d.cts +0 -203
  557. package/dist/index-Cc-wBCn6.d.ts +0 -203
  558. package/dist/index-DTu2X-YS.d.cts +0 -1609
  559. package/dist/index-OEifcBsm.d.cts +0 -191
  560. package/dist/jackArcher-B39OEIj6.cjs +0 -727
  561. package/dist/jackArcher-BwkWGybC.js +0 -727
  562. package/dist/jordanCraig-CxRH_jLi.js +0 -1786
  563. package/dist/jordanCraig-RwmWw-jM.cjs +0 -1786
  564. package/dist/kindredBravely-D78VwL20.cjs +0 -490
  565. package/dist/kindredBravely-DQDpAzdl.js +0 -490
  566. package/dist/kutFromTheKloth-TcXQkIti.js +0 -369
  567. package/dist/kutFromTheKloth-dXRrNti0.cjs +0 -369
  568. package/dist/larryAndSerges-Bh5XEXsZ.js +0 -262
  569. package/dist/larryAndSerges-COdBzOzu.cjs +0 -262
  570. package/dist/leapsAndRebounds-BbXnqkl5.cjs +0 -360
  571. package/dist/leapsAndRebounds-mjCaH1k-.js +0 -360
  572. package/dist/longevityrx-DdV3v26F.cjs +0 -320
  573. package/dist/longevityrx-DfPDfvAt.js +0 -320
  574. package/dist/lookOptic-DgXFGBPP.cjs +0 -282
  575. package/dist/lookOptic-FgVW1afF.js +0 -282
  576. package/dist/mantraBrand-C5gVm3rk.cjs +0 -750
  577. package/dist/mantraBrand-uV8HCDR8.js +0 -750
  578. package/dist/medterra-BtDpr1Hw.cjs +0 -583
  579. package/dist/medterra-DgzE7-mj.js +0 -583
  580. package/dist/modells-CJjsxOIR.js +0 -484
  581. package/dist/modells-Ck5KbRFj.cjs +0 -484
  582. package/dist/models-UZ6HszfZ.js +0 -1281
  583. package/dist/org-C2RrBVQR.cjs +0 -81
  584. package/dist/org-xMytX--e.js +0 -38
  585. package/dist/pressedFloral-Bteoboms.js +0 -661
  586. package/dist/pressedFloral-CexgV-xy.cjs +0 -661
  587. package/dist/search-BMOAmrmY.js +0 -459
  588. package/dist/search-Df0Ifneg.cjs +0 -672
  589. package/dist/skinPerfection-BGzq9lq-.cjs +0 -334
  590. package/dist/skinPerfection-BlvcEcUE.js +0 -334
  591. package/dist/snapSupplements-CbbGzAgO.cjs +0 -285
  592. package/dist/snapSupplements-kcsPAOm9.js +0 -285
  593. package/dist/socialProofClasses-Db8gzsfi.cjs +0 -40
  594. package/dist/socialProofClasses-kwDvwLOZ.js +0 -10
  595. package/dist/spanx-B4WFA_rI.js +0 -661
  596. package/dist/spanx-BWoE4F8b.cjs +0 -663
  597. package/dist/spanxStaging-BOrOjhXn.js +0 -845
  598. package/dist/spanxStaging-BfdfIug4.cjs +0 -848
  599. package/dist/suggestionBarV2-types-IMMOmCir.js +0 -10
  600. package/dist/suggestionBarV2-types-nnGNgFvR.cjs +0 -16
  601. package/dist/supergoop-22dd5_BS.js +0 -323
  602. package/dist/supergoop-B-a4cku2.cjs +0 -323
  603. package/dist/types--pr1GQQx.js +0 -154
  604. package/dist/types-BVSyY3Hk.cjs +0 -196
  605. package/dist/uniqueVintage-CJXiNNe7.js +0 -1211
  606. package/dist/uniqueVintage-D0jzJWlo.cjs +0 -1213
  607. package/dist/userIdentityContext-BPqvVIg0.d.cts +0 -20
  608. package/dist/userIdentityContext-wbCRmlzp.d.ts +0 -20
  609. package/dist/utils-C9ZSCx12.js +0 -888
  610. package/dist/utils-D5HO61hG.cjs +0 -1016
  611. package/dist/venaCbd-Bhhu_qUf.cjs +0 -365
  612. package/dist/venaCbd-CanovPS_.js +0 -365
  613. package/dist/westonJonBoucher-BC0x1ktI.cjs +0 -422
  614. package/dist/westonJonBoucher-BUu1_wP1.js +0 -422
  615. package/dist/wineEnthusiast-BlCryfil.cjs +0 -940
  616. package/dist/wineEnthusiast-Ck1x5iJq.js +0 -940
  617. package/dist/wolfMattress-D9Mjq-HP.js +0 -372
  618. package/dist/wolfMattress-JssghhC-.cjs +0 -372
  619. package/dist/wolfTactical-C6exYhL7.cjs +0 -349
  620. package/dist/wolfTactical-CnV3KQdI.js +0 -349
  621. package/src/application/models/supportedOrgs.ts +0 -161
  622. package/src/atoms/org/orgPageConfig.ts +0 -42
  623. package/src/contexts/index.ts +0 -16
  624. package/src/contexts/newOrgConfigContext.tsx +0 -104
  625. package/src/contexts/orgConfigContext.tsx +0 -106
  626. package/src/hooks/index.ts +0 -27
  627. package/src/hooks/useSystemSettingsContext.ts +0 -12
  628. package/src/merchants/bandolier/bandolier.ts +0 -1371
  629. package/src/merchants/carpe/carpe.ts +0 -653
  630. package/src/merchants/coterie/coterie.ts +0 -277
  631. package/src/merchants/default.ts +0 -196
  632. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +0 -381
  633. package/src/merchants/fiveCbd/fiveCbd.ts +0 -691
  634. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +0 -751
  635. package/src/merchants/greenpan/greenpan.ts +0 -434
  636. package/src/merchants/grooveLife/grooveLife.ts +0 -392
  637. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +0 -474
  638. package/src/merchants/init-merchant.sh +0 -53
  639. package/src/merchants/jackArcher/jackArcher.ts +0 -989
  640. package/src/merchants/jordanCraig/jordanCraig.ts +0 -1927
  641. package/src/merchants/kindredBravely/kindredBravely.ts +0 -538
  642. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +0 -421
  643. package/src/merchants/larryAndSerges/larryAndSerges.ts +0 -318
  644. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +0 -424
  645. package/src/merchants/longevityrx/longevityrx.ts +0 -374
  646. package/src/merchants/lookOptic/lookOptic.ts +0 -323
  647. package/src/merchants/mantraBrand/mantraBrand.ts +0 -844
  648. package/src/merchants/medterra/medterra.ts +0 -673
  649. package/src/merchants/modells/modells.ts +0 -543
  650. package/src/merchants/pressedFloral/pressedFloral.ts +0 -728
  651. package/src/merchants/skinPerfection/skinPerfection.ts +0 -385
  652. package/src/merchants/snapSupplements/snapSupplements.ts +0 -328
  653. package/src/merchants/spanx/spanx.ts +0 -810
  654. package/src/merchants/spanx/spanxStaging.ts +0 -936
  655. package/src/merchants/supergoop/supergoop.ts +0 -375
  656. package/src/merchants/uniqueVintage/uniqueVintage.ts +0 -1314
  657. package/src/merchants/venaCbd/venaCbd.ts +0 -407
  658. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +0 -473
  659. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +0 -990
  660. package/src/merchants/wolfMattress/wolfMattress.ts +0 -411
  661. package/src/merchants/wolfTactical/wolfTactical.ts +0 -383
  662. /package/dist/{atomStore-KSoFS3Jj.cjs → AmplitudeOperations-CNyxbBY6.cjs} +0 -0
  663. /package/dist/{atomStore-CZnUUsrr.js → AmplitudeOperations-Oa2efWtF.js} +0 -0
  664. /package/dist/{locators-fBXS_pxP.js → atomStore-BS6qtYZF.js} +0 -0
  665. /package/dist/{locators-0YYZu9n4.cjs → atomStore-BjRyLFEx.cjs} +0 -0
  666. /package/dist/{utilityTypes-8sETsYPk.js → types-DtTnp0o0.js} +0 -0
  667. /package/dist/{utilityTypes-COShxVir.cjs → types-a8gm_IaQ.cjs} +0 -0
  668. /package/dist/{variantInfo-orXoPBCU.cjs → types.cjs} +0 -0
  669. /package/dist/{variantInfo-DbVxA1yE.js → types.js} +0 -0
  670. /package/src/contexts/{featureFlagServiceContext.tsx → featureFlagServiceContext/featureFlagServiceContext.tsx} +0 -0
  671. /package/src/contexts/{graphqlContext.tsx → graphqlContext/graphqlContext.tsx} +0 -0
  672. /package/src/contexts/{shopifyUrlContext.tsx → shopifyUrlContext/shopifyUrlContext.tsx} +0 -0
  673. /package/src/contexts/{systemSettingsContext.tsx → systemSettingsContext/systemSettingsContext.tsx} +0 -0
  674. /package/src/contexts/{userIdentityContext.tsx → userIdentityContext/userIdentityContext.tsx} +0 -0
  675. /package/src/hooks/{useBlockBackButton.ts → BlockBackButton/useBlockBackButton.ts} +0 -0
  676. /package/src/hooks/{useCustomerSupportHandoff.ts → CustomerSupportHandoff/useCustomerSupportHandoff.ts} +0 -0
  677. /package/src/hooks/{useDebounce.ts → Debounce/useDebounce.ts} +0 -0
  678. /package/src/hooks/{useElementObserver.ts → ElementObserver/useElementObserver.ts} +0 -0
  679. /package/src/hooks/{useGrabAndScroll.ts → GrabAndScroll/useGrabAndScroll.ts} +0 -0
  680. /package/src/hooks/{useImageResolver.ts → ImageResolver/useImageResolver.ts} +0 -0
  681. /package/src/hooks/{useIntersection.ts → Intersection/useIntersection.ts} +0 -0
  682. /package/src/hooks/{useIsSmallScreen.ts → IsSmallScreen/useIsSmallScreen.ts} +0 -0
  683. /package/src/hooks/{useMessageFilter.ts → MessageFilter/useMessageFilter.ts} +0 -0
  684. /package/src/hooks/{useMessageScrollObserver.ts → MessageScrollObserver/useMessageScrollObserver.ts} +0 -0
  685. /package/src/hooks/{useSearchOperations.ts → SearchOperations/useSearchOperations.ts} +0 -0
  686. /package/src/hooks/{useSnapCalculator.ts → SnapCalculator/useSnapCalculator.ts} +0 -0
@@ -1,848 +0,0 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_models = require('./models-BkXg5eIP.cjs');
3
- const require_types = require('./types-BVSyY3Hk.cjs');
4
- require('./graphql-BNW60InJ.cjs');
5
- require('./api-_JaUnIUj.cjs');
6
- require('./utilityTypes-COShxVir.cjs');
7
- require('./variantInfo-orXoPBCU.cjs');
8
- require('./enviveConfig-BccuzS2a.cjs');
9
- require('./atomStore-B4jIaDPd.cjs');
10
- const require_custservice_types = require('./custservice-types-Dy0kc9TW.cjs');
11
- const require_suggestionBarV2_types = require('./suggestionBarV2-types-nnGNgFvR.cjs');
12
- require('./chat-BubCW1as.cjs');
13
- require('./components-Cw9WjA6g.cjs');
14
- const require_embedded = require('./embedded-Dl79TJLC.cjs');
15
- require('./locators-0YYZu9n4.cjs');
16
- const require_cdnUtils = require('./cdnUtils-32v8bDX9.cjs');
17
- const require_default = require('./default-BnB4p0Se.cjs');
18
- const require_divIds = require('./divIds-2dJlU3z8.cjs');
19
- const require_entrypoints = require('./entrypoints-Dqi5pzWH.cjs');
20
- let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
21
- __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
22
- let react_icons_gr = require("react-icons/gr");
23
- react_icons_gr = require_chunk.__toESM(react_icons_gr);
24
-
25
- //#region src/config/locators/components/chat/preview.ts
26
- const CHAT_PREVIEW_PLP_TESTID = "spiffy-chat-preview-plp";
27
- const CHAT_PREVIEW_PDP_TESTID = "spiffy-chat-preview-pdp";
28
-
29
- //#endregion
30
- //#region src/merchants/spanx/spanxStaging.ts
31
- const spanxPageConfig = () => ({
32
- pageVariants: [
33
- {
34
- variantId: "shapewearPLPWithImageBanner",
35
- variantType: "plp",
36
- plpIdExtractor: "shopify-collection-id",
37
- variantTests: [
38
- { testType: require_types.PageVariantTestType.ShopifyPLP },
39
- {
40
- testType: require_types.PageVariantTestType.CatalogCategory,
41
- category: __spiffy_ai_commerce_api_client.SupportedEventProductCategory.Shapewear
42
- },
43
- {
44
- testType: require_types.PageVariantTestType.FeatureGate,
45
- featureGate: require_models.FeatureGates.IsImageBannerEnabled
46
- }
47
- ],
48
- widgetMounting: [
49
- {
50
- mountingConfigId: "chatPreviewPLP",
51
- widgetConfigId: "shapewearChatPreviewPLP"
52
- },
53
- {
54
- mountingConfigId: "topImageBannerPLP",
55
- widgetConfigId: "ImageBannerShapewearPLP"
56
- },
57
- {
58
- mountingConfigId: "bottomImageBannerPLP",
59
- widgetConfigId: "ImageBannerShapewearPLP"
60
- }
61
- ]
62
- },
63
- {
64
- variantId: "plp",
65
- variantType: "plp",
66
- plpIdExtractor: "shopify-collection-id",
67
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }, {
68
- testType: require_types.PageVariantTestType.CatalogCategory,
69
- category: __spiffy_ai_commerce_api_client.SupportedEventProductCategory.Shapewear
70
- }],
71
- widgetMounting: [{
72
- mountingConfigId: "chatPreviewPLP",
73
- widgetConfigId: "shapewearChatPreviewPLP"
74
- }, {
75
- mountingConfigId: "bottomImageBannerPLP",
76
- widgetConfigId: "ImageBannerShapewearPLP"
77
- }]
78
- },
79
- {
80
- variantId: "nonShapewearPLPWithImageBanner",
81
- variantType: "plp",
82
- plpIdExtractor: "shopify-collection-id",
83
- variantTests: [
84
- { testType: require_types.PageVariantTestType.ShopifyPLP },
85
- {
86
- testType: require_types.PageVariantTestType.CatalogCategory,
87
- category: __spiffy_ai_commerce_api_client.SupportedEventProductCategory.NonShapewear
88
- },
89
- {
90
- testType: require_types.PageVariantTestType.FeatureGate,
91
- featureGate: require_models.FeatureGates.IsNonShapewearEnabled
92
- },
93
- {
94
- testType: require_types.PageVariantTestType.FeatureGate,
95
- featureGate: require_models.FeatureGates.IsImageBannerEnabled
96
- }
97
- ],
98
- widgetMounting: [
99
- {
100
- mountingConfigId: "chatPreviewPLP",
101
- widgetConfigId: "nonShapewearChatPreviewPLP"
102
- },
103
- {
104
- mountingConfigId: "topImageBannerPLP",
105
- widgetConfigId: "ImageBannerNonShapewearPLP"
106
- },
107
- {
108
- mountingConfigId: "bottomImageBannerPLP",
109
- widgetConfigId: "ImageBannerNonShapewearPLP"
110
- }
111
- ]
112
- },
113
- {
114
- variantId: "nonShapewearPLP",
115
- variantType: "plp",
116
- plpIdExtractor: "shopify-collection-id",
117
- variantTests: [
118
- { testType: require_types.PageVariantTestType.ShopifyPLP },
119
- {
120
- testType: require_types.PageVariantTestType.CatalogCategory,
121
- category: __spiffy_ai_commerce_api_client.SupportedEventProductCategory.NonShapewear
122
- },
123
- {
124
- testType: require_types.PageVariantTestType.FeatureGate,
125
- featureGate: require_models.FeatureGates.IsNonShapewearEnabled
126
- }
127
- ],
128
- widgetMounting: [{
129
- mountingConfigId: "chatPreviewPLP",
130
- widgetConfigId: "nonShapewearChatPreviewPLP"
131
- }, {
132
- mountingConfigId: "bottomImageBannerPLP",
133
- widgetConfigId: "ImageBannerNonShapewearPLP"
134
- }]
135
- },
136
- {
137
- variantId: "pdp",
138
- variantType: "pdp",
139
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
140
- testType: require_types.PageVariantTestType.CatalogCategory,
141
- category: __spiffy_ai_commerce_api_client.SupportedEventProductCategory.Shapewear
142
- }],
143
- productIdExtractor: "shopify-product-variant-id",
144
- widgetMounting: [
145
- {
146
- mountingConfigId: "chatPreviewPDP",
147
- widgetConfigId: "shapewearChatPreviewPDP"
148
- },
149
- {
150
- mountingConfigId: "topSuggestionBarPDP",
151
- widgetConfigId: "topSuggestionBarPDP"
152
- },
153
- {
154
- mountingConfigId: "bottomSuggestionBarPDP",
155
- widgetConfigId: "bottomSuggestionBarPDP"
156
- }
157
- ]
158
- },
159
- {
160
- variantId: "nonShapewearPDP",
161
- variantType: "pdp",
162
- variantTests: [
163
- { testType: require_types.PageVariantTestType.ShopifyPDP },
164
- {
165
- testType: require_types.PageVariantTestType.CatalogCategory,
166
- category: __spiffy_ai_commerce_api_client.SupportedEventProductCategory.NonShapewear
167
- },
168
- {
169
- testType: require_types.PageVariantTestType.FeatureGate,
170
- featureGate: require_models.FeatureGates.IsNonShapewearEnabled
171
- }
172
- ],
173
- productIdExtractor: "shopify-product-variant-id",
174
- widgetMounting: [
175
- {
176
- mountingConfigId: "chatPreviewPDP",
177
- widgetConfigId: "chatPreviewPDP"
178
- },
179
- {
180
- mountingConfigId: "topSuggestionBarPDP",
181
- widgetConfigId: "topSuggestionBarPDP"
182
- },
183
- {
184
- mountingConfigId: "bottomSuggestionBarPDP",
185
- widgetConfigId: "bottomSuggestionBarPDP"
186
- }
187
- ]
188
- },
189
- {
190
- variantId: "supportPages",
191
- variantType: "page_visit",
192
- variantTests: [{
193
- testType: require_types.PageVariantTestType.PageCategory,
194
- extractor: {
195
- type: require_types.CategoryExtractorType.VisitCategoryMap,
196
- map: { [__spiffy_ai_commerce_api_client.PageVisitCategory.Help]: [
197
- "/pages/help",
198
- "/apps/returns",
199
- "/pages/return-policy-instructions"
200
- ] }
201
- }
202
- }],
203
- widgetMounting: []
204
- }
205
- ],
206
- widgetConfigs: {
207
- ImageBannerShapewearPLP: {
208
- widgetConfigId: "ImageBannerShapewearPLP",
209
- type: require_types.WidgetType.ImageBanner,
210
- imageSrc: "plp_quiz_banner_image.png",
211
- title: "Need help? We're here.",
212
- subtitle: "Chat with Spanx AI Assistant",
213
- assistantMessage: "Can you help me choose the right shapewear?"
214
- },
215
- ImageBannerNonShapewearPLP: {
216
- widgetConfigId: "ImageBannerNonShapewearPLP",
217
- type: require_types.WidgetType.ImageBanner,
218
- imageSrc: "default_banner_image.webp",
219
- title: "Need help? We're here.",
220
- subtitle: "Chat with Spanx AI Assistant",
221
- assistantMessage: "Give me product recommendations"
222
- },
223
- nonShapewearChatPreviewPLP: {
224
- widgetConfigId: "nonShapewearChatPreviewPLP",
225
- variant: "outlined",
226
- type: require_types.WidgetType.ChatPreview,
227
- socialProofConfig: {
228
- logoName: "spanx-logo.svg",
229
- customerQuery: "asked which styles are the most comfortable for everyday wear...",
230
- headerTitle: "Assistant",
231
- suggestionButtonStrings: [
232
- "Which styles do reviewers suggest?",
233
- "Which styles have the most reviews?",
234
- "Which styles are best for my body shape?",
235
- "Which styles are most popular?",
236
- "How does Spanx source its products?"
237
- ],
238
- staticPLPImageNames: [
239
- "default_plp_embedded_1.webp",
240
- "default_plp_embedded_2.webp",
241
- "default_plp_embedded_3.webp",
242
- "default_plp_embedded_4.webp"
243
- ],
244
- suggestionButtonVariantDefault: "outlined",
245
- suggestionButtonVariantAccent: "outlined",
246
- staticPLPImagesLayout: "horizontal"
247
- }
248
- },
249
- shapewearChatPreviewPLP: {
250
- widgetConfigId: "shapewearChatPreviewPLP",
251
- variant: "outlined",
252
- type: require_types.WidgetType.ChatPreview,
253
- socialProofConfig: {
254
- logoName: "spanx-logo.svg",
255
- customerQuery: "are looking for shapewear for tummy control...",
256
- headerTitle: "Assistant",
257
- suggestionButtonStrings: [
258
- "What do reviewers think?",
259
- "Best shapewear for dresses",
260
- "Styles with the strongest compression",
261
- "Comfortable for all-day wear",
262
- "Shapewear that won't show through clothes"
263
- ],
264
- staticPLPImageNames: [
265
- "shapewear_plp_embedded_1.png",
266
- "shapewear_plp_embedded_2.png",
267
- "shapewear_plp_embedded_3.png",
268
- "shapewear_plp_embedded_4.png"
269
- ],
270
- suggestionButtonVariantDefault: "outlined",
271
- suggestionButtonVariantAccent: "outlined",
272
- staticPLPImagesLayout: "horizontal"
273
- }
274
- },
275
- shapewearChatPreviewPDP: {
276
- widgetConfigId: "shapewearChatPreviewPDP",
277
- variant: "outlined",
278
- type: require_types.WidgetType.ChatPreview,
279
- socialProofConfig: {
280
- logoName: "spanx-logo.svg",
281
- customerQuery: "asked if it shows under clothes...",
282
- headerTitle: "Assistant",
283
- suggestionButtonStrings: [
284
- "What do reviewers think?",
285
- "Is it easy to wash?",
286
- "Is it good for curvy figures?",
287
- "What did reviewers like the best?",
288
- "Is it comfortable?",
289
- "What size should I choose?",
290
- "Is it good for all body shapes?"
291
- ],
292
- suggestionButtonVariantDefault: "outlined",
293
- suggestionButtonVariantAccent: "outlined"
294
- }
295
- },
296
- chatPreviewPDP: {
297
- widgetConfigId: "chatPreviewPDP",
298
- variant: "outlined",
299
- type: require_types.WidgetType.ChatPreview,
300
- socialProofConfig: {
301
- logoName: "spanx-logo.svg",
302
- customerQuery: "asked if it's comfortable...",
303
- headerTitle: "Assistant",
304
- suggestionButtonStrings: [
305
- "What do reviewers think?",
306
- "Is it easy to wash?",
307
- "Is it good for curvy figures?",
308
- "What did reviewers like the best?",
309
- "Is it comfortable?",
310
- "What size should I choose?",
311
- "Is it good for all body shapes?"
312
- ],
313
- suggestionButtonVariantDefault: "outlined",
314
- suggestionButtonVariantAccent: "outlined"
315
- }
316
- },
317
- topSuggestionBarPDP: {
318
- widgetConfigId: "topSuggestionBarPDP",
319
- contentId: "spiffy-top-suggestion-bar-contents",
320
- type: require_types.WidgetType.SuggestionBarV2,
321
- metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
322
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
323
- variant: "outlined",
324
- hoverVariant: "secondaryDark",
325
- buttonTexts: { default: [
326
- "Summarize the reviews",
327
- "Do reviewers find these effective?",
328
- "Do these boost reviewers' confidence?",
329
- "What do reviews say about comfort?",
330
- "Do reviewers like these for under a dress?"
331
- ] },
332
- boldFirstButton: true,
333
- twoRowsOnMobile: false,
334
- animationSpeed: "none",
335
- buttonBorderRadius: "md"
336
- },
337
- bottomSuggestionBarPDP: {
338
- widgetConfigId: "bottomSuggestionBarPDP",
339
- metricDisplayLocation: require_models.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
340
- contentId: "spiffy-bottom-suggestion-bar-contents",
341
- type: require_types.WidgetType.SuggestionBarV2,
342
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
343
- variant: "outlinedLight",
344
- hoverVariant: "secondaryDark",
345
- buttonTexts: { default: [
346
- "Summarize the reviews",
347
- "Do reviewers find these effective?",
348
- "Do these boost reviewers' confidence?",
349
- "What do reviews say about comfort?",
350
- "Do reviewers like these for under a dress?"
351
- ] },
352
- boldFirstButton: true,
353
- twoRowsOnMobile: false,
354
- animationSpeed: "none",
355
- buttonBorderRadius: "md"
356
- }
357
- },
358
- mountingConfigs: {
359
- topImageBannerPLP: {
360
- mountingConfigId: "topImageBannerPLP",
361
- containerId: require_divIds.TOP_PLP_IMAGE_BANNER_ID,
362
- testId: require_entrypoints.TOP_IMAGE_BANNER_PLP_TESTID,
363
- insertionPoint: {
364
- selector: "nav[aria-label=\"breadcrumb\"]",
365
- insertionType: require_models.DOMInsertionType.ADJACENT_AFTER_END
366
- },
367
- style: { marginTop: "30px" }
368
- },
369
- bottomImageBannerPLP: {
370
- mountingConfigId: "bottomImageBannerPLP",
371
- containerId: require_divIds.BOTTOM_PLP_IMAGE_BANNER_ID,
372
- testId: require_entrypoints.BOTTOM_IMAGE_BANNER_PLP_TESTID,
373
- insertionPoint: {
374
- selector: "main > section.order-last",
375
- insertionType: require_models.DOMInsertionType.ADJACENT_AFTER_BEGIN
376
- },
377
- style: { marginBottom: "30px" }
378
- },
379
- chatPreviewPLP: {
380
- mountingConfigId: "chatPreviewPLP",
381
- containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
382
- testId: CHAT_PREVIEW_PLP_TESTID,
383
- gridInsertionType: require_models.GridInsertionType.ROW_2,
384
- insertionPoint: {
385
- selector: ".grid .grid-flow-row-dense",
386
- insertionType: require_models.DOMInsertionType.ADJACENT_AFTER_END
387
- },
388
- style: { marginInline: "8px" }
389
- },
390
- chatPreviewPDP: {
391
- mountingConfigId: "chatPreviewPDP",
392
- containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
393
- testId: CHAT_PREVIEW_PDP_TESTID,
394
- insertionPoint: {
395
- selector: ".content-start .divide-y",
396
- insertionType: require_models.DOMInsertionType.BEFORE
397
- },
398
- className: "grid"
399
- },
400
- topSuggestionBarPDP: {
401
- mountingConfigId: "topSuggestionBarPDP",
402
- containerId: require_divIds.TOP_SUGGESTION_BAR_PDP_ID,
403
- testId: require_embedded.TOP_SUGGESTION_BAR_PDP_TESTID,
404
- insertionPoint: {
405
- selector: "main section div.grid.gap-2.bg-white",
406
- insertionType: require_models.DOMInsertionType.BEFORE
407
- },
408
- className: "grid",
409
- style: { marginTop: "20px" }
410
- },
411
- bottomSuggestionBarPDP: {
412
- mountingConfigId: "bottomSuggestionBarPDP",
413
- containerId: require_divIds.BOTTOM_REVIEWS_BAR_ID,
414
- testId: require_embedded.BOTTOM_SUGGESTION_BAR_PDP_TESTID,
415
- insertionPoint: {
416
- selector: "#reviews > div.w-full.gap-8",
417
- insertionType: require_models.DOMInsertionType.APPEND_CHILD
418
- },
419
- style: {
420
- maxWidth: "92vw",
421
- marginInline: "auto",
422
- marginTop: "15px",
423
- marginBottom: "-25px"
424
- }
425
- }
426
- }
427
- });
428
- const spanxColors = {
429
- [require_types.ColorNames.TextPrimary]: "#02081C",
430
- [require_types.ColorNames.TextSecondary]: "#4F586F",
431
- [require_types.ColorNames.TextAccent]: "#5F0F23",
432
- [require_types.ColorNames.TextLink]: "#001846",
433
- [require_types.ColorNames.TextLight]: "#FFFFFF",
434
- [require_types.ColorNames.BackgroundPrimary]: "#02081C",
435
- [require_types.ColorNames.BackgroundSecondary]: "#FFFFFF",
436
- [require_types.ColorNames.BackgroundSecondaryDark]: "#F4F4F6",
437
- [require_types.ColorNames.BackgroundTertiary]: "#4F586F",
438
- [require_types.ColorNames.BackgroundDark]: "#02081C",
439
- [require_types.ColorNames.BackgroundLight]: "#FFFFFF",
440
- [require_types.ColorNames.BackgroundSaturated]: "#FFF1DF",
441
- [require_types.ColorNames.BorderLight]: "#CDCFD6",
442
- [require_types.ColorNames.BorderMedium]: "#B3B7C1",
443
- [require_types.ColorNames.BorderDark]: "#687083",
444
- [require_types.ColorNames.BorderOutline]: "#E6E7EA",
445
- [require_types.ColorNames.AccentPrimary]: "#FF002B",
446
- [require_types.ColorNames.AccentSecondary]: "#02081C"
447
- };
448
- const spanxOrgUIConfig = () => {
449
- const defaultSpanxOrgConfig = require_default.defaultOrgUIConfig(require_types.OrgShortName.SpanxStaging);
450
- return {
451
- ...defaultSpanxOrgConfig,
452
- partialViewConfig: {
453
- maxHeight: 89,
454
- borderRadius: "0px"
455
- },
456
- chatMessageConfig: {
457
- ...defaultSpanxOrgConfig.chatMessageConfig,
458
- assistantChatTitle: "Spanx AI Assistant",
459
- variant: "premium",
460
- productLink: {
461
- ...defaultSpanxOrgConfig.chatMessageConfig.productLink,
462
- iconVariant: "backgroundPrimary"
463
- }
464
- },
465
- floatingEntrypointConfig: {
466
- ...defaultSpanxOrgConfig.floatingEntrypointConfig,
467
- showOption: "always",
468
- position: "bottom-right"
469
- },
470
- welcomeSectionConfig: {
471
- ...defaultSpanxOrgConfig.welcomeSectionConfig,
472
- variant: "outlined",
473
- colorVariant: "accent",
474
- title: "Welcome to SPANX!",
475
- iconName: "sparkles",
476
- subtitle: "Ask our AI anything to get instant help with everything from product specifics and details, shipping, returns, and more. Need more help? Please click the SPANX Support button above."
477
- },
478
- chatPreviewConfig: {
479
- ...defaultSpanxOrgConfig.chatPreviewConfig,
480
- topMargin: 0,
481
- largeProductComparison: true,
482
- iconFillColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
483
- buttonTextSecondaryColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
484
- buttonTextHoverColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
485
- buttonBackgroundColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
486
- buttonBackgroundHoverColor: require_types.colorVar(require_types.ColorNames.AccentPrimary),
487
- headerConfig: {
488
- ...defaultSpanxOrgConfig.chatPreviewConfig.headerConfig,
489
- imageSrc: require_cdnUtils.getCdnAssetURL("spanx-logo.svg", require_types.OrgShortName.SpanxStaging),
490
- imageHeight: 16,
491
- title: "AI Assistant",
492
- sparklesColor: require_types.colorVar(require_types.ColorNames.AccentPrimary),
493
- iconWidth: "16px",
494
- iconHeight: "16px"
495
- },
496
- footerConfig: {
497
- ...defaultSpanxOrgConfig.chatPreviewConfig.footerConfig,
498
- hasFade: false,
499
- suggestionButtonVariant: "light",
500
- replyButtonIcon: "thinMagnifyingGlass",
501
- replyInputHasShadow: false,
502
- replyInputHasBorder: true,
503
- backgroundColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark)
504
- },
505
- copies: {
506
- pdp: [
507
- "what reviewers think about the comfort?",
508
- "what body areas this targets?",
509
- "if this will show through clothes?"
510
- ],
511
- plp: [
512
- "something to wear under a strapless dress to a wedding?",
513
- "the best shapewear for tummy control?",
514
- "the right shapewear with a pencil skirt for work?"
515
- ]
516
- },
517
- staticSuggestionCopies: {
518
- pdp: [
519
- "Is it easy to wash?",
520
- "Is it good for curvy figures?",
521
- "What did reviewers like the best?",
522
- "Is it comfortable?",
523
- "What size should I choose?",
524
- "Is it good for all body shapes?"
525
- ],
526
- plp: [
527
- "Which styles have the most reviews?",
528
- "Which styles are best for my body shape?",
529
- "Which styles are most popular?",
530
- "How does Spanx source its products?"
531
- ]
532
- },
533
- staticPLPImages: [
534
- "default_plp_embedded_1.webp",
535
- "default_plp_embedded_2.webp",
536
- "default_plp_embedded_3.webp",
537
- "default_plp_embedded_4.webp"
538
- ]
539
- },
540
- customerServiceIntegration: {
541
- ...defaultSpanxOrgConfig.customerServiceIntegration,
542
- integrationMode: require_default.CustomerServiceIntegrationMode.full,
543
- provider: require_default.CustomerServiceType.kustomer,
544
- welcomeTitle: "Chat with a Spanx Stylist",
545
- showNameInput: true,
546
- showWelcomeOnForm: true,
547
- showAISuggestionsWithinBusinessHours: false,
548
- chatEnabledDuringBusinessHours: true,
549
- waitingMessagePosition: "BEFORE_MESSAGES",
550
- formAiName: "Spanx AI Assistant...",
551
- legalMessage: "This session will be transcribed for quality purposes. Please see our terms of use within the US <a href=\"https://spanx.com/pages/interactive-services-consent-and-disclaimers\" target=\"_blank\">here</a> and CA <a href=\"https://spanx.ca/pages/interactive-services-consent-and-disclaimers\" target=\"_blank\">here</a>",
552
- welcomeDescription: "Our stylists look forward to assisting you Mon- Fri between 9:30AM to 7:30PM ET, and Sat-Sun 9:30AM to 6:00PM ET!",
553
- getCustomWaitingMessage: (name) => `Hold tight${name ? ` ${name}` : ""}, your stylist is almost here`,
554
- withinBusinessHoursMessage: "👋 Hi there! We're here to help with any questions or support you need—whether you're tracking an order, finding the perfect product, or anything in between. To keep things quick, some responses might come from AI, but if you'd rather chat with a real person, just let us know—we've got you! <br /><br />Click “send a message” below to get started 💬",
555
- withinBusinessHoursWaitingMessage: "A Spanx Stylist will be with you within 5 minutes. Thanks for your patience.<br /><br />In the meantime, can you give us a little information about yourself?",
556
- withinBusinessHoursFormMessage: "👋 Hi there! We're here to help with any questions or support you need—whether you're tracking an order, finding the perfect product, or anything in between. To keep things quick, some responses might come from AI, but if you'd rather chat with a real person, just let us know—we've got you! <br /><br />Fill out your information and click “send a message” below to get started 💬",
557
- outsideBusinessHoursMessage: "👋 Hi, we’re sorry but this is outside of our service hours.<br /><br />You can leave a message and a stylist will get back to your within 24 hours. If you need an answer right away, ask your Spanx AI shopping assistant for help.",
558
- outsideBusinessHoursFormMessage: "👋 Hi, we’re sorry but this is outside of our service hours.<br /><br />You can leave a message and a stylist will get back to your within 24 hours. If you need an answer right away, ask your Spanx AI shopping assistant for help.",
559
- outsideBusinessHoursWaitingMessage: "⚡⚡ You're all set! A stylist will get back to you within 24 hours with an answer to your question. In the meantime, feel free to use our SPANX AI Shopping Assistant.",
560
- suggestedAIQuestions: [
561
- "How can I return or exchange my order?",
562
- "Where is my order?",
563
- "My item is damaged what can I do?",
564
- "Where can I find my order number?"
565
- ],
566
- businessHoursStartUTC: "9:30AM",
567
- businessHoursEndUTC: "7:30PM",
568
- businessHoursTimezone: "-05:00",
569
- withinBusinessHoursInitialState: require_custservice_types.ChatState.INITIAL,
570
- outsideBusinessHoursInitialState: require_custservice_types.ChatState.INITIAL,
571
- withinBusinessHoursButtontext: "Send a message",
572
- outsideBusinessHoursButtontext: "Leave a message"
573
- },
574
- productReviewConfig: {
575
- ...defaultSpanxOrgConfig.productReviewConfig,
576
- styleVariant: "bordered",
577
- colorVariant: "neutral"
578
- },
579
- pageCardConfig: {
580
- ...defaultSpanxOrgConfig.pageCardConfig,
581
- variant: "outlined",
582
- hoverVariant: "shadow",
583
- iconVariant: "primary"
584
- },
585
- productCardConfig: {
586
- ...defaultSpanxOrgConfig.productCardConfig,
587
- variant: "transparentBordered"
588
- },
589
- chatHeader: {
590
- ...defaultSpanxOrgConfig.chatHeader,
591
- imageSrc: require_cdnUtils.getCdnAssetURL("spanx-logo.svg", require_types.OrgShortName.SpanxStaging),
592
- collapsedColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark),
593
- expandedColor: require_types.colorVar(require_types.ColorNames.BackgroundLight),
594
- chevronColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
595
- borderBottom: `1px solid ${require_types.colorVar(require_types.ColorNames.BorderLight)}`,
596
- closeIcon: react_icons_gr.GrClose,
597
- customerSupportSwitchConfig: {
598
- ...defaultSpanxOrgConfig.chatHeader.customerSupportSwitchConfig,
599
- variant: "detached",
600
- supportTitle: "Support",
601
- spiffyTitle: "AI Assistant",
602
- spiffyTitleHasLogo: true,
603
- borderColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
604
- selectedTextColor: require_types.colorVar(require_types.ColorNames.TextLight),
605
- backgroundColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
606
- selectedBackgroundColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
607
- unselectedBackgroundColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark),
608
- unselectedTextColor: require_types.colorVar(require_types.ColorNames.TextPrimary)
609
- }
610
- },
611
- floatingChatConfig: {
612
- ...defaultSpanxOrgConfig.floatingChatConfig,
613
- neverShowSingleProductCards: false,
614
- termsAndConditionsConfig: {
615
- copy: "This session will be transcribed for quality purposes. Please see our terms of use for",
616
- link: "https://spanx.com/pages/terms-of-use",
617
- linkText: "SPANX.com here."
618
- },
619
- replyInputConfig: {
620
- size: "lg",
621
- sendIcon: "arrowUp"
622
- },
623
- suggestionButtonConfig: {
624
- variant: "outlined",
625
- hoverVariant: "dark",
626
- answerVariant: "outlined"
627
- }
628
- },
629
- conversationalSearch: {
630
- enabled: true,
631
- suggestions: [
632
- "Shapewear that won’t show through clothes",
633
- "Styles with the strongest compression",
634
- "Comfortable styles for all day wear",
635
- "Best shapewear for tummy control"
636
- ],
637
- entrypointBtnColor: "linear-gradient(to right, #004EA2, #6941C6)",
638
- entrypointBtnTextColor: "#004EA2",
639
- entrypointBtnBorderColor: "#004EA2",
640
- entrypointContainer: "id|shopify-section-header",
641
- productGridContainer: "id|MainContentWrapper",
642
- entrypointTrigger: "id|search-input",
643
- generalSearchBtn: "query|button.header-search__button",
644
- pageContent: "id|MainContent",
645
- searchContent: "id|search-content",
646
- sortingFont: "ivypresto-headline, serif",
647
- optionsFont: "Inter"
648
- },
649
- merchantVariantSettings: { dynamicVariants: {
650
- enabled: true,
651
- refreshInterval: 500
652
- } },
653
- merchantOverrideCss: `
654
- .spiffy-product-review-card-container {
655
- background: var(--spiffy-colors-background-light) !important;
656
- }
657
- .spiffy-star-rating-container {
658
- background: var(--spiffy-colors-background-secondary-dark) !important;
659
- }
660
- .spiffy-star-rating-star {
661
- fill: var(--spiffy-colors-text-primary) !important;
662
- }
663
- .spiffy-product-review-header-reviewer {
664
- color: var(--spiffy-colors-text-primary) !important;
665
- }
666
- .spiffy-mini-verified-buyer-icon {
667
- fill: var(--spiffy-colors-text-primary) !important;
668
- }
669
-
670
- #spiffy-product-review-card-read-more-container {
671
- text-transform: uppercase;
672
- font-weight: 600;
673
- }
674
-
675
- #spiffy-ai-chat-preview-contents h1, h2, h3, h4, h5, h6 {
676
- --chakra-fonts-heading: 'inter', 'Poppins', sans-serif;
677
- }
678
-
679
- #spiffy-chat-preview-user-query-button {
680
- margin-top: 8px;
681
- }
682
- #spiffy-ai-floating-button {
683
- z-index: 2147483001 !important;
684
- }
685
-
686
- /* SuggestionBarV2 CSS */
687
- #spiffy-top-suggestion-bar-contents button{
688
- border-radius: 24px !important;
689
- }
690
-
691
- #spiffy-top-suggestion-bar-contents button span{
692
- font-size: 14px !important;
693
- font-weight: 500;
694
- }
695
-
696
- #spiffy-top-suggestion-bar-contents button svg{
697
- width: 14px;
698
- height: 14px;
699
- }
700
-
701
- #spiffy-bottom-suggestion-bar-contents button {
702
- border-color: var(--spiffy-colors-border-outline) !important;
703
- }
704
-
705
- #spiffy-bottom-suggestion-bar-contents button:hover {
706
- background-color: var(--spiffy-colors-border-light) !important;
707
- border-color:var(--spiffy-colors-border-light) !important;
708
- }
709
-
710
- #spiffy-bottom-suggestion-bar-contents button span{
711
- font-size: 14px !important;
712
- font-weight: 500;
713
- }
714
-
715
- #spiffy-bottom-suggestion-bar-contents button svg{
716
- width: 14px;
717
- height: 14px;
718
- }
719
-
720
- .spiffy-chat-header-container {
721
- padding-block: 8px;
722
- border-bottom: 1px solid ${require_types.colorVar(require_types.ColorNames.BorderLight)};
723
- background-color: white;
724
- }
725
-
726
- .spiffy-chat-header-close-button {
727
- background-color: var(--spiffy-colors-text-light);
728
- color: var(--spiffy-colors-background-primary);
729
- }
730
-
731
- .spiffy-suggestion-bar-button {
732
- border: 1px solid ${require_types.colorVar(require_types.ColorNames.BorderOutline)};
733
- border-radius: 24px;
734
- }
735
-
736
- .spiffy-suggestion-button-answer-class {
737
- border: 1px solid ${require_types.colorVar(require_types.ColorNames.TextPrimary)} !important;
738
- }
739
-
740
- .spiffy-suggestion-button-answer-class:hover {
741
- background-color: ${require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark)} !important;
742
- border-color: ${require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark)} !important;
743
- color: ${require_types.colorVar(require_types.ColorNames.TextLink)} !important;
744
- }
745
-
746
- .spiffy-suggestion-button-question-class {
747
- border: 1px solid ${require_types.colorVar(require_types.ColorNames.BorderLight)} !important;
748
- border-radius: 4px;
749
- }
750
-
751
- .spiffy-suggestion-button-question-class:hover {
752
- border-color: ${require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark)} !important;
753
- background-color: ${require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark)} !important;
754
- color: ${require_types.colorVar(require_types.ColorNames.TextPrimary)} !important;
755
- fill: ${require_types.colorVar(require_types.ColorNames.TextPrimary)} !important;
756
- stroke: ${require_types.colorVar(require_types.ColorNames.TextPrimary)} !important;
757
- }
758
-
759
- .spiffy-suggestion-button-text-class {
760
- font-size: 13px;
761
- }
762
-
763
- .spiffy-social-proof-content-image {
764
- border-radius: 0px;
765
- box-shadow: none;
766
- }
767
-
768
- .spiffy-user-query-button {
769
- font-size: 12px;
770
- }
771
-
772
- .spiffy-image-banner-subtitle {
773
- text-transform: uppercase;
774
- }
775
- .spiffy-customer-service-legal-message a {
776
- text-decoration-line: underline;
777
- }
778
- .spiffy-customer-service-legal-message a:hover {
779
- color: var(--spiffy-colors-text-link);
780
- }
781
- .spiffy-tag-pill-text {
782
- color: var(--spiffy-colors-text-light);
783
- }
784
- .spiffy-product-card-title {
785
- font-family: var(--chakra-fonts-heading);
786
- color: var(--spiffy-colors-text-primary);
787
- }
788
- .spiffy-product-card-text-color {
789
- color: var(--spiffy-colors-text-secondary);
790
- }
791
- .spiffy-product-card-rating-star-color {
792
- fill: var(--spiffy-colors-text-primary);
793
- }
794
- .spiffy-switch-to-agent-button-unselected-text-color {
795
- color: var(--spiffy-colors-text-primary);
796
- }
797
- .spiffy-switch-to-agent-button-selected-text-color {
798
- color: var(--spiffy-colors-text-light);
799
- }
800
- .spiffy-switch-to-agent-button-selected-background-color {
801
- background-color: var(--spiffy-colors-text-primary);
802
- }
803
- .spiffy-switch-to-agent-button-unselected-background-color {
804
- background-color: var(--spiffy-colors-background-secondary-dark);
805
- }
806
- .spiffy-switch-to-agent-button-border-color {
807
- border-color: var(--spiffy-colors-text-primary);
808
- }
809
- .spiffy-switch-to-agent-button-background-color {
810
- background-color: var(--spiffy-colors-text-primary);
811
- }
812
- .spiffy-switch-to-agent-button-hover-background-color:hover {
813
- background-color: var(--spiffy-colors-text-primary);
814
- }
815
- .spiffy-switch-to-agent-button-hover-text-color:hover {
816
- color: var(--spiffy-colors-text-light);
817
- }
818
- .spiffy-switch-to-agent-button-selected-fill-color {
819
- fill: var(--spiffy-colors-text-light);
820
- }
821
- .spiffy-switch-to-agent-button-unselected-fill-color {
822
- fill: var(--spiffy-colors-text-primary);
823
- }
824
- .spiffy-chat-preview-footer-background-color {
825
- background-color: var(--spiffy-colors-background-secondary-dark);
826
- }
827
- .spiffy-message-content-container {
828
- font-size: 15px !important;
829
- font-weight: 300 !important;
830
- line-height: 160%;
831
- }
832
- `
833
- };
834
- };
835
- const spanxOrgInfo = {
836
- shortName: "spanx-staging",
837
- name: "SPANX",
838
- domain: "01jxznkpym6bz8d72xmaps77w3-c47748467f607d4067fe.myshopify.dev",
839
- defaultProductId: "39773580984531",
840
- alwaysEnabledMerchants: true,
841
- orgUIConfig: spanxOrgUIConfig,
842
- orgColors: () => spanxColors,
843
- orgPageConfig: spanxPageConfig
844
- };
845
-
846
- //#endregion
847
- exports.spanxOrgInfo = spanxOrgInfo;
848
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhbnhTdGFnaW5nLUJmZGZJdWc0LmNqcyIsIm5hbWVzIjpbIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeSIsIkZlYXR1cmVHYXRlcyIsIkNhdGVnb3J5RXh0cmFjdG9yVHlwZSIsIlBhZ2VWaXNpdENhdGVnb3J5IiwiV2lkZ2V0VHlwZSIsIkNoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uIiwiU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcyIsIlRPUF9QTFBfSU1BR0VfQkFOTkVSX0lEIiwiVE9QX0lNQUdFX0JBTk5FUl9QTFBfVEVTVElEIiwiRE9NSW5zZXJ0aW9uVHlwZSIsIkJPVFRPTV9QTFBfSU1BR0VfQkFOTkVSX0lEIiwiQk9UVE9NX0lNQUdFX0JBTk5FUl9QTFBfVEVTVElEIiwiQ0hBVF9QUkVWSUVXX0NPTlRBSU5FUl9JRCIsIkdyaWRJbnNlcnRpb25UeXBlIiwiVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9JRCIsIlRPUF9TVUdHRVNUSU9OX0JBUl9QRFBfVEVTVElEIiwiQk9UVE9NX1JFVklFV1NfQkFSX0lEIiwiQk9UVE9NX1NVR0dFU1RJT05fQkFSX1BEUF9URVNUSUQiLCJzcGFueENvbG9yczogQ29sb3JNYXBwaW5nIiwiQ29sb3JOYW1lcyIsImRlZmF1bHRPcmdVSUNvbmZpZyIsIk9yZ1Nob3J0TmFtZSIsImNvbG9yVmFyIiwiZ2V0Q2RuQXNzZXRVUkwiLCJDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUiLCJDdXN0b21lclNlcnZpY2VUeXBlIiwiQ2hhdFN0YXRlIiwiR3JDbG9zZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcvbG9jYXRvcnMvY29tcG9uZW50cy9jaGF0L3ByZXZpZXcudHMiLCIuLi9zcmMvbWVyY2hhbnRzL3NwYW54L3NwYW54U3RhZ2luZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU1VHR0VTVElPTl9CVVRUT05fVEVTVElEID0gJ3NwaWZmeS1zdWdnZXN0aW9uLWJ1dHRvbic7XG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX0ZPT1RFUl9URVNUSUQgPSAnc3BpZmZ5LWNoYXQtcHJldmlldy1mb290ZXInO1xuZXhwb3J0IGNvbnN0IENIQVRfUFJFVklFV19URVNUSUQgPSAnc3BpZmZ5LWNoYXQtcHJldmlldyc7XG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX1NIQURPV19ET01fVEVTVElEID0gJ2NoYXQtcHJldmlldy1zaGFkb3ctZG9tLWNvbnRhaW5lcic7XG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX0JPRFlfVEVTVElEID0gJ3NwaWZmeS1jaGF0LXByZXZpZXctYm9keSc7XG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX0hFQURJTkdfVEVTVElEID0gJ3NwaWZmeS1jaGF0LXByZXZpZXctaGVhZGluZyc7XG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX0xPQURJTkdfVEVTVElEID0gJ3NwaWZmeS1jaGF0LXByZXZpZXctbG9hZGluZyc7XG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX1VTRVJfUVVFUllfQlVUVE9OX1RFU1RJRCA9ICdzcGlmZnktY2hhdC1wcmV2aWV3LXVzZXItcXVlcnktYnV0dG9uJztcbmV4cG9ydCBjb25zdCBDSEFUX1BSRVZJRVdfSEVBREVSX1RFU1RJRCA9ICdzcGlmZnktY2hhdC1wcmV2aWV3LWhlYWRlcic7XG5cbi8vIHVzZWQgaW4gc3BhbnggY29uZmlnXG5leHBvcnQgY29uc3QgQ0hBVF9QUkVWSUVXX1BMUF9URVNUSUQgPSAnc3BpZmZ5LWNoYXQtcHJldmlldy1wbHAnO1xuZXhwb3J0IGNvbnN0IENIQVRfUFJFVklFV19QRFBfVEVTVElEID0gJ3NwaWZmeS1jaGF0LXByZXZpZXctcGRwJztcbiIsImltcG9ydCB7XG4gIFBhZ2VWaXNpdENhdGVnb3J5LFxuICBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeSxcbn0gZnJvbSBcIkBzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudFwiO1xuaW1wb3J0IHtcbiAgQk9UVE9NX1NVR0dFU1RJT05fQkFSX1BEUF9URVNUSUQsXG4gIFRPUF9TVUdHRVNUSU9OX0JBUl9QRFBfVEVTVElELFxufSBmcm9tIFwic3JjL2NvbmZpZy9sb2NhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQk9UVE9NX0lNQUdFX0JBTk5FUl9QTFBfVEVTVElELFxuICBUT1BfSU1BR0VfQkFOTkVSX1BMUF9URVNUSUQsXG59IGZyb20gXCJzcmMvY29uZmlnL2xvY2F0b3JzL2NvbXBvbmVudHMvY2hhdC9lbnRyeXBvaW50c1wiO1xuaW1wb3J0IHtcbiAgQ0hBVF9QUkVWSUVXX1BEUF9URVNUSUQsXG4gIENIQVRfUFJFVklFV19QTFBfVEVTVElELFxufSBmcm9tIFwic3JjL2NvbmZpZy9sb2NhdG9ycy9jb21wb25lbnRzL2NoYXQvcHJldmlld1wiO1xuaW1wb3J0IHsgR3JDbG9zZSB9IGZyb20gXCJyZWFjdC1pY29ucy9nclwiO1xuaW1wb3J0IHsgT3JnU2hvcnROYW1lLCBCYXNpY09yZ0luZm9UeXBlIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHNcIjtcbmltcG9ydCB7IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb25cIjtcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlc1wiO1xuaW1wb3J0IHsgZ2V0Q2RuQXNzZXRVUkwgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL3V0aWxzL2NkblV0aWxzXCI7XG5pbXBvcnQge1xuICBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUsXG4gIEN1c3RvbWVyU2VydmljZVR5cGUsXG59IGZyb20gXCJzcmMvdHlwZXMvY3VzdG9tZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBHcmlkSW5zZXJ0aW9uVHlwZSB9IGZyb20gXCJzcmMvbWVyY2hhbnRzL2dyaWRJbnNlcnRpb25cIjtcbmltcG9ydCB7IERPTUluc2VydGlvblR5cGUgfSBmcm9tIFwic3JjL21lcmNoYW50cy9kb21JbnNlcnRpb25cIjtcbmltcG9ydCB7XG4gIEJPVFRPTV9QTFBfSU1BR0VfQkFOTkVSX0lELFxuICBCT1RUT01fUkVWSUVXU19CQVJfSUQsXG4gIENIQVRfUFJFVklFV19DT05UQUlORVJfSUQsXG4gIFRPUF9QTFBfSU1BR0VfQkFOTkVSX0lELFxuICBUT1BfU1VHR0VTVElPTl9CQVJfUERQX0lELFxufSBmcm9tIFwic3JjL2NvbmZpZy9kaXZJZHNcIjtcbmltcG9ydCB7IGRlZmF1bHRPcmdVSUNvbmZpZyB9IGZyb20gXCJzcmMvbWVyY2hhbnRzL2RlZmF1bHRcIjtcbmltcG9ydCB7IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MgfSBmcm9tIFwic3JjL3R5cGVzL3N1Z2dlc3Rpb25CYXJWMi10eXBlc1wiO1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlLFxuICBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgQ29sb3JNYXBwaW5nLFxuICBDb2xvck5hbWVzLFxuICBjb2xvclZhcixcbiAgSW1hZ2VCYW5uZXJXaWRnZXRDb25maWcsXG4gIE9yZ1BhZ2VDb25maWcsXG4gIE9yZ1VJQ29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gIFdpZGdldFR5cGUsXG59IGZyb20gXCJzcmMvY29udGV4dHMvdHlwZXNcIjtcbmltcG9ydCB7IENoYXRTdGF0ZSB9IGZyb20gXCJzcmMvdHlwZXMvY3VzdHNlcnZpY2UtdHlwZXNcIjtcblxuY29uc3Qgc3BhbnhQYWdlQ29uZmlnID0gKCk6IE9yZ1BhZ2VDb25maWcgPT4gKHtcbiAgcGFnZVZhcmlhbnRzOiBbXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInNoYXBld2VhclBMUFdpdGhJbWFnZUJhbm5lclwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGxwXCIsXG4gICAgICBwbHBJZEV4dHJhY3RvcjogXCJzaG9waWZ5LWNvbGxlY3Rpb24taWRcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBMUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkNhdGFsb2dDYXRlZ29yeSxcbiAgICAgICAgICBjYXRlZ29yeTogU3VwcG9ydGVkRXZlbnRQcm9kdWN0Q2F0ZWdvcnkuU2hhcGV3ZWFyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0ltYWdlQmFubmVyRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNoYXBld2VhckNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcEltYWdlQmFubmVyUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiSW1hZ2VCYW5uZXJTaGFwZXdlYXJQTFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tSW1hZ2VCYW5uZXJQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJJbWFnZUJhbm5lclNoYXBld2VhclBMUFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHBcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBscFwiLFxuICAgICAgcGxwSWRFeHRyYWN0b3I6IFwic2hvcGlmeS1jb2xsZWN0aW9uLWlkXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5DYXRhbG9nQ2F0ZWdvcnksXG4gICAgICAgICAgY2F0ZWdvcnk6IFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5LlNoYXBld2VhcixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNoYXBld2VhckNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbUltYWdlQmFubmVyUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiSW1hZ2VCYW5uZXJTaGFwZXdlYXJQTFBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwibm9uU2hhcGV3ZWFyUExQV2l0aEltYWdlQmFubmVyXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwbHBcIixcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UExQLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5LFxuICAgICAgICAgIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeS5Ob25TaGFwZXdlYXIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZSxcbiAgICAgICAgICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzLklzTm9uU2hhcGV3ZWFyRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNJbWFnZUJhbm5lckVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJub25TaGFwZXdlYXJDaGF0UHJldmlld1BMUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BJbWFnZUJhbm5lclBMUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcIkltYWdlQmFubmVyTm9uU2hhcGV3ZWFyUExQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbUltYWdlQmFubmVyUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiSW1hZ2VCYW5uZXJOb25TaGFwZXdlYXJQTFBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwibm9uU2hhcGV3ZWFyUExQXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwbHBcIixcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UExQLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5LFxuICAgICAgICAgIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeS5Ob25TaGFwZXdlYXIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZSxcbiAgICAgICAgICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzLklzTm9uU2hhcGV3ZWFyRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcIm5vblNoYXBld2VhckNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbUltYWdlQmFubmVyUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiSW1hZ2VCYW5uZXJOb25TaGFwZXdlYXJQTFBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkNhdGFsb2dDYXRlZ29yeSxcbiAgICAgICAgICBjYXRlZ29yeTogU3VwcG9ydGVkRXZlbnRQcm9kdWN0Q2F0ZWdvcnkuU2hhcGV3ZWFyLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzaGFwZXdlYXJDaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJub25TaGFwZXdlYXJQRFBcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5LFxuICAgICAgICAgIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeS5Ob25TaGFwZXdlYXIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZSxcbiAgICAgICAgICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzLklzTm9uU2hhcGV3ZWFyRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwic2hvcGlmeS1wcm9kdWN0LXZhcmlhbnQtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwic3VwcG9ydFBhZ2VzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwYWdlX3Zpc2l0XCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlBhZ2VDYXRlZ29yeSxcbiAgICAgICAgICBleHRyYWN0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6IENhdGVnb3J5RXh0cmFjdG9yVHlwZS5WaXNpdENhdGVnb3J5TWFwLFxuICAgICAgICAgICAgbWFwOiB7XG4gICAgICAgICAgICAgIFtQYWdlVmlzaXRDYXRlZ29yeS5IZWxwXTogW1xuICAgICAgICAgICAgICAgIFwiL3BhZ2VzL2hlbHBcIixcbiAgICAgICAgICAgICAgICBcIi9hcHBzL3JldHVybnNcIixcbiAgICAgICAgICAgICAgICBcIi9wYWdlcy9yZXR1cm4tcG9saWN5LWluc3RydWN0aW9uc1wiLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIC8vIHN1cHBvcnQgcGFnZXMgb25seSByZW5kZXIgdGhlIGZsb2F0aW5nIGJ1dHRvbiB3aGljaCBpcyBjdXJyZW50bHkgcmVuZGVyZWQgYnkgRmxvYXRpbmdDaGF0XG4gICAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgfSxcbiAgXSxcbiAgd2lkZ2V0Q29uZmlnczoge1xuICAgIEltYWdlQmFubmVyU2hhcGV3ZWFyUExQOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJJbWFnZUJhbm5lclNoYXBld2VhclBMUFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5JbWFnZUJhbm5lcixcbiAgICAgIGltYWdlU3JjOiBcInBscF9xdWl6X2Jhbm5lcl9pbWFnZS5wbmdcIixcbiAgICAgIHRpdGxlOiBcIk5lZWQgaGVscD8gV2UncmUgaGVyZS5cIixcbiAgICAgIHN1YnRpdGxlOiBcIkNoYXQgd2l0aCBTcGFueCBBSSBBc3Npc3RhbnRcIixcbiAgICAgIGFzc2lzdGFudE1lc3NhZ2U6IFwiQ2FuIHlvdSBoZWxwIG1lIGNob29zZSB0aGUgcmlnaHQgc2hhcGV3ZWFyP1wiLFxuICAgIH0gc2F0aXNmaWVzIEltYWdlQmFubmVyV2lkZ2V0Q29uZmlnLFxuICAgIEltYWdlQmFubmVyTm9uU2hhcGV3ZWFyUExQOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJJbWFnZUJhbm5lck5vblNoYXBld2VhclBMUFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5JbWFnZUJhbm5lcixcbiAgICAgIGltYWdlU3JjOiBcImRlZmF1bHRfYmFubmVyX2ltYWdlLndlYnBcIixcbiAgICAgIHRpdGxlOiBcIk5lZWQgaGVscD8gV2UncmUgaGVyZS5cIixcbiAgICAgIHN1YnRpdGxlOiBcIkNoYXQgd2l0aCBTcGFueCBBSSBBc3Npc3RhbnRcIixcbiAgICAgIGFzc2lzdGFudE1lc3NhZ2U6IFwiR2l2ZSBtZSBwcm9kdWN0IHJlY29tbWVuZGF0aW9uc1wiLFxuICAgIH0gc2F0aXNmaWVzIEltYWdlQmFubmVyV2lkZ2V0Q29uZmlnLFxuICAgIG5vblNoYXBld2VhckNoYXRQcmV2aWV3UExQOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJub25TaGFwZXdlYXJDaGF0UHJldmlld1BMUFwiLFxuICAgICAgdmFyaWFudDogXCJvdXRsaW5lZFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5DaGF0UHJldmlldyxcbiAgICAgIHNvY2lhbFByb29mQ29uZmlnOiB7XG4gICAgICAgIGxvZ29OYW1lOiBcInNwYW54LWxvZ28uc3ZnXCIsXG4gICAgICAgIGN1c3RvbWVyUXVlcnk6XG4gICAgICAgICAgXCJhc2tlZCB3aGljaCBzdHlsZXMgYXJlIHRoZSBtb3N0IGNvbWZvcnRhYmxlIGZvciBldmVyeWRheSB3ZWFyLi4uXCIsXG4gICAgICAgIGhlYWRlclRpdGxlOiBcIkFzc2lzdGFudFwiLFxuICAgICAgICBzdWdnZXN0aW9uQnV0dG9uU3RyaW5nczogW1xuICAgICAgICAgIFwiV2hpY2ggc3R5bGVzIGRvIHJldmlld2VycyBzdWdnZXN0P1wiLFxuICAgICAgICAgIFwiV2hpY2ggc3R5bGVzIGhhdmUgdGhlIG1vc3QgcmV2aWV3cz9cIixcbiAgICAgICAgICBcIldoaWNoIHN0eWxlcyBhcmUgYmVzdCBmb3IgbXkgYm9keSBzaGFwZT9cIixcbiAgICAgICAgICBcIldoaWNoIHN0eWxlcyBhcmUgbW9zdCBwb3B1bGFyP1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgU3Bhbnggc291cmNlIGl0cyBwcm9kdWN0cz9cIixcbiAgICAgICAgXSxcbiAgICAgICAgc3RhdGljUExQSW1hZ2VOYW1lczogW1xuICAgICAgICAgIFwiZGVmYXVsdF9wbHBfZW1iZWRkZWRfMS53ZWJwXCIsXG4gICAgICAgICAgXCJkZWZhdWx0X3BscF9lbWJlZGRlZF8yLndlYnBcIixcbiAgICAgICAgICBcImRlZmF1bHRfcGxwX2VtYmVkZGVkXzMud2VicFwiLFxuICAgICAgICAgIFwiZGVmYXVsdF9wbHBfZW1iZWRkZWRfNC53ZWJwXCIsXG4gICAgICAgIF0sXG4gICAgICAgIHN1Z2dlc3Rpb25CdXR0b25WYXJpYW50RGVmYXVsdDogXCJvdXRsaW5lZFwiLFxuICAgICAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudDogXCJvdXRsaW5lZFwiLFxuICAgICAgICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ6IFwiaG9yaXpvbnRhbFwiLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgICBzaGFwZXdlYXJDaGF0UHJldmlld1BMUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2hhcGV3ZWFyQ2hhdFByZXZpZXdQTFBcIixcbiAgICAgIHZhcmlhbnQ6IFwib3V0bGluZWRcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuQ2hhdFByZXZpZXcsXG4gICAgICBzb2NpYWxQcm9vZkNvbmZpZzoge1xuICAgICAgICBsb2dvTmFtZTogXCJzcGFueC1sb2dvLnN2Z1wiLFxuICAgICAgICBjdXN0b21lclF1ZXJ5OiBcImFyZSBsb29raW5nIGZvciBzaGFwZXdlYXIgZm9yIHR1bW15IGNvbnRyb2wuLi5cIixcbiAgICAgICAgaGVhZGVyVGl0bGU6IFwiQXNzaXN0YW50XCIsXG4gICAgICAgIHN1Z2dlc3Rpb25CdXR0b25TdHJpbmdzOiBbXG4gICAgICAgICAgXCJXaGF0IGRvIHJldmlld2VycyB0aGluaz9cIixcbiAgICAgICAgICBcIkJlc3Qgc2hhcGV3ZWFyIGZvciBkcmVzc2VzXCIsXG4gICAgICAgICAgXCJTdHlsZXMgd2l0aCB0aGUgc3Ryb25nZXN0IGNvbXByZXNzaW9uXCIsXG4gICAgICAgICAgXCJDb21mb3J0YWJsZSBmb3IgYWxsLWRheSB3ZWFyXCIsXG4gICAgICAgICAgXCJTaGFwZXdlYXIgdGhhdCB3b24ndCBzaG93IHRocm91Z2ggY2xvdGhlc1wiLFxuICAgICAgICBdLFxuICAgICAgICBzdGF0aWNQTFBJbWFnZU5hbWVzOiBbXG4gICAgICAgICAgXCJzaGFwZXdlYXJfcGxwX2VtYmVkZGVkXzEucG5nXCIsXG4gICAgICAgICAgXCJzaGFwZXdlYXJfcGxwX2VtYmVkZGVkXzIucG5nXCIsXG4gICAgICAgICAgXCJzaGFwZXdlYXJfcGxwX2VtYmVkZGVkXzMucG5nXCIsXG4gICAgICAgICAgXCJzaGFwZXdlYXJfcGxwX2VtYmVkZGVkXzQucG5nXCIsXG4gICAgICAgIF0sXG4gICAgICAgIHN1Z2dlc3Rpb25CdXR0b25WYXJpYW50RGVmYXVsdDogXCJvdXRsaW5lZFwiLFxuICAgICAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudDogXCJvdXRsaW5lZFwiLFxuICAgICAgICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ6IFwiaG9yaXpvbnRhbFwiLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgICBzaGFwZXdlYXJDaGF0UHJldmlld1BEUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2hhcGV3ZWFyQ2hhdFByZXZpZXdQRFBcIixcbiAgICAgIHZhcmlhbnQ6IFwib3V0bGluZWRcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuQ2hhdFByZXZpZXcsXG4gICAgICBzb2NpYWxQcm9vZkNvbmZpZzoge1xuICAgICAgICBsb2dvTmFtZTogXCJzcGFueC1sb2dvLnN2Z1wiLFxuICAgICAgICBjdXN0b21lclF1ZXJ5OiBcImFza2VkIGlmIGl0IHNob3dzIHVuZGVyIGNsb3RoZXMuLi5cIixcbiAgICAgICAgaGVhZGVyVGl0bGU6IFwiQXNzaXN0YW50XCIsXG4gICAgICAgIHN1Z2dlc3Rpb25CdXR0b25TdHJpbmdzOiBbXG4gICAgICAgICAgXCJXaGF0IGRvIHJldmlld2VycyB0aGluaz9cIixcbiAgICAgICAgICBcIklzIGl0IGVhc3kgdG8gd2FzaD9cIixcbiAgICAgICAgICBcIklzIGl0IGdvb2QgZm9yIGN1cnZ5IGZpZ3VyZXM/XCIsXG4gICAgICAgICAgXCJXaGF0IGRpZCByZXZpZXdlcnMgbGlrZSB0aGUgYmVzdD9cIixcbiAgICAgICAgICBcIklzIGl0IGNvbWZvcnRhYmxlP1wiLFxuICAgICAgICAgIFwiV2hhdCBzaXplIHNob3VsZCBJIGNob29zZT9cIixcbiAgICAgICAgICBcIklzIGl0IGdvb2QgZm9yIGFsbCBib2R5IHNoYXBlcz9cIixcbiAgICAgICAgXSxcbiAgICAgICAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0OiBcIm91dGxpbmVkXCIsXG4gICAgICAgIHN1Z2dlc3Rpb25CdXR0b25WYXJpYW50QWNjZW50OiBcIm91dGxpbmVkXCIsXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnLFxuICAgIGNoYXRQcmV2aWV3UERQOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgdmFyaWFudDogXCJvdXRsaW5lZFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5DaGF0UHJldmlldyxcbiAgICAgIHNvY2lhbFByb29mQ29uZmlnOiB7XG4gICAgICAgIGxvZ29OYW1lOiBcInNwYW54LWxvZ28uc3ZnXCIsXG4gICAgICAgIGN1c3RvbWVyUXVlcnk6IFwiYXNrZWQgaWYgaXQncyBjb21mb3J0YWJsZS4uLlwiLFxuICAgICAgICBoZWFkZXJUaXRsZTogXCJBc3Npc3RhbnRcIixcbiAgICAgICAgc3VnZ2VzdGlvbkJ1dHRvblN0cmluZ3M6IFtcbiAgICAgICAgICBcIldoYXQgZG8gcmV2aWV3ZXJzIHRoaW5rP1wiLFxuICAgICAgICAgIFwiSXMgaXQgZWFzeSB0byB3YXNoP1wiLFxuICAgICAgICAgIFwiSXMgaXQgZ29vZCBmb3IgY3VydnkgZmlndXJlcz9cIixcbiAgICAgICAgICBcIldoYXQgZGlkIHJldmlld2VycyBsaWtlIHRoZSBiZXN0P1wiLFxuICAgICAgICAgIFwiSXMgaXQgY29tZm9ydGFibGU/XCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgY2hvb3NlP1wiLFxuICAgICAgICAgIFwiSXMgaXQgZ29vZCBmb3IgYWxsIGJvZHkgc2hhcGVzP1wiLFxuICAgICAgICBdLFxuICAgICAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudERlZmF1bHQ6IFwib3V0bGluZWRcIixcbiAgICAgICAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnRBY2NlbnQ6IFwib3V0bGluZWRcIixcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdmFyaWFudDogXCJvdXRsaW5lZFwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3c1wiLFxuICAgICAgICAgIFwiRG8gcmV2aWV3ZXJzIGZpbmQgdGhlc2UgZWZmZWN0aXZlP1wiLFxuICAgICAgICAgIFwiRG8gdGhlc2UgYm9vc3QgcmV2aWV3ZXJzJyBjb25maWRlbmNlP1wiLFxuICAgICAgICAgIFwiV2hhdCBkbyByZXZpZXdzIHNheSBhYm91dCBjb21mb3J0P1wiLFxuICAgICAgICAgIFwiRG8gcmV2aWV3ZXJzIGxpa2UgdGhlc2UgZm9yIHVuZGVyIGEgZHJlc3M/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgdHdvUm93c09uTW9iaWxlOiBmYWxzZSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uQmFyUERQOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG5cbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX0JPVFRPTSxcbiAgICAgIHZhcmlhbnQ6IFwib3V0bGluZWRMaWdodFwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3c1wiLFxuICAgICAgICAgIFwiRG8gcmV2aWV3ZXJzIGZpbmQgdGhlc2UgZWZmZWN0aXZlP1wiLFxuICAgICAgICAgIFwiRG8gdGhlc2UgYm9vc3QgcmV2aWV3ZXJzJyBjb25maWRlbmNlP1wiLFxuICAgICAgICAgIFwiV2hhdCBkbyByZXZpZXdzIHNheSBhYm91dCBjb21mb3J0P1wiLFxuICAgICAgICAgIFwiRG8gcmV2aWV3ZXJzIGxpa2UgdGhlc2UgZm9yIHVuZGVyIGEgZHJlc3M/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgdHdvUm93c09uTW9iaWxlOiBmYWxzZSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgfSxcbiAgbW91bnRpbmdDb25maWdzOiB7XG4gICAgdG9wSW1hZ2VCYW5uZXJQTFA6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wSW1hZ2VCYW5uZXJQTFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBUT1BfUExQX0lNQUdFX0JBTk5FUl9JRCxcbiAgICAgIHRlc3RJZDogVE9QX0lNQUdFX0JBTk5FUl9QTFBfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6ICduYXZbYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJcIl0nLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFESkFDRU5UX0FGVEVSX0VORCxcbiAgICAgIH0sXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW5Ub3A6IFwiMzBweFwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGJvdHRvbUltYWdlQmFubmVyUExQOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbUltYWdlQmFubmVyUExQXCIsXG4gICAgICBjb250YWluZXJJZDogQk9UVE9NX1BMUF9JTUFHRV9CQU5ORVJfSUQsXG4gICAgICB0ZXN0SWQ6IEJPVFRPTV9JTUFHRV9CQU5ORVJfUExQX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIm1haW4gPiBzZWN0aW9uLm9yZGVyLWxhc3RcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BREpBQ0VOVF9BRlRFUl9CRUdJTixcbiAgICAgIH0sXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW5Cb3R0b206IFwiMzBweFwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXRQcmV2aWV3UExQOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICBjb250YWluZXJJZDogQ0hBVF9QUkVWSUVXX0NPTlRBSU5FUl9JRCxcbiAgICAgIHRlc3RJZDogQ0hBVF9QUkVWSUVXX1BMUF9URVNUSUQsXG4gICAgICBncmlkSW5zZXJ0aW9uVHlwZTogR3JpZEluc2VydGlvblR5cGUuUk9XXzIsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCIuZ3JpZCAuZ3JpZC1mbG93LXJvdy1kZW5zZVwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFESkFDRU5UX0FGVEVSX0VORCxcbiAgICAgIH0sXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW5JbmxpbmU6IFwiOHB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hhdFByZXZpZXdQRFA6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBDSEFUX1BSRVZJRVdfQ09OVEFJTkVSX0lELFxuICAgICAgdGVzdElkOiBDSEFUX1BSRVZJRVdfUERQX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIi5jb250ZW50LXN0YXJ0IC5kaXZpZGUteVwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkJFRk9SRSxcbiAgICAgIH0sXG4gICAgICBjbGFzc05hbWU6IFwiZ3JpZFwiLFxuICAgIH0sXG4gICAgdG9wU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBjb250YWluZXJJZDogVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9JRCxcbiAgICAgIHRlc3RJZDogVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9URVNUSUQsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCJtYWluIHNlY3Rpb24gZGl2LmdyaWQuZ2FwLTIuYmctd2hpdGVcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5CRUZPUkUsXG4gICAgICB9LFxuICAgICAgY2xhc3NOYW1lOiBcImdyaWRcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpblRvcDogXCIyMHB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYm90dG9tU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBjb250YWluZXJJZDogQk9UVE9NX1JFVklFV1NfQkFSX0lELFxuICAgICAgdGVzdElkOiBCT1RUT01fU1VHR0VTVElPTl9CQVJfUERQX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIiNyZXZpZXdzID4gZGl2LnctZnVsbC5nYXAtOFwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFQUEVORF9DSElMRCxcbiAgICAgIH0sXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXhXaWR0aDogXCI5MnZ3XCIsXG4gICAgICAgIG1hcmdpbklubGluZTogXCJhdXRvXCIsXG4gICAgICAgIG1hcmdpblRvcDogXCIxNXB4XCIsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogXCItMjVweFwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSk7XG5cbmNvbnN0IHNwYW54Q29sb3JzOiBDb2xvck1hcHBpbmcgPSB7XG4gIFtDb2xvck5hbWVzLlRleHRQcmltYXJ5XTogXCIjMDIwODFDXCIsXG4gIFtDb2xvck5hbWVzLlRleHRTZWNvbmRhcnldOiBcIiM0RjU4NkZcIixcbiAgW0NvbG9yTmFtZXMuVGV4dEFjY2VudF06IFwiIzVGMEYyM1wiLFxuICBbQ29sb3JOYW1lcy5UZXh0TGlua106IFwiIzAwMTg0NlwiLFxuICBbQ29sb3JOYW1lcy5UZXh0TGlnaHRdOiBcIiNGRkZGRkZcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnldOiBcIiMwMjA4MUNcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeV06IFwiI0ZGRkZGRlwiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5RGFya106IFwiI0Y0RjRGNlwiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kVGVydGlhcnldOiBcIiM0RjU4NkZcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZERhcmtdOiBcIiMwMjA4MUNcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZExpZ2h0XTogXCIjRkZGRkZGXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmRTYXR1cmF0ZWRdOiBcIiNGRkYxREZcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyTGlnaHRdOiBcIiNDRENGRDZcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyTWVkaXVtXTogXCIjQjNCN0MxXCIsXG4gIFtDb2xvck5hbWVzLkJvcmRlckRhcmtdOiBcIiM2ODcwODNcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyT3V0bGluZV06IFwiI0U2RTdFQVwiLFxuICBbQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5XTogXCIjRkYwMDJCXCIsXG4gIFtDb2xvck5hbWVzLkFjY2VudFNlY29uZGFyeV06IFwiIzAyMDgxQ1wiLFxufTtcblxuY29uc3Qgc3BhbnhPcmdVSUNvbmZpZyA9ICgpOiBPcmdVSUNvbmZpZyA9PiB7XG4gIGNvbnN0IGRlZmF1bHRTcGFueE9yZ0NvbmZpZyA9IGRlZmF1bHRPcmdVSUNvbmZpZyhPcmdTaG9ydE5hbWUuU3BhbnhTdGFnaW5nKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZhdWx0U3BhbnhPcmdDb25maWcsXG4gICAgcGFydGlhbFZpZXdDb25maWc6IHtcbiAgICAgIG1heEhlaWdodDogODksXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMHB4XCIsXG4gICAgfSxcbiAgICBjaGF0TWVzc2FnZUNvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLmNoYXRNZXNzYWdlQ29uZmlnISxcbiAgICAgIGFzc2lzdGFudENoYXRUaXRsZTogXCJTcGFueCBBSSBBc3Npc3RhbnRcIixcbiAgICAgIHZhcmlhbnQ6IFwicHJlbWl1bVwiLFxuICAgICAgcHJvZHVjdExpbms6IHtcbiAgICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLmNoYXRNZXNzYWdlQ29uZmlnLnByb2R1Y3RMaW5rLFxuICAgICAgICBpY29uVmFyaWFudDogXCJiYWNrZ3JvdW5kUHJpbWFyeVwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZsb2F0aW5nRW50cnlwb2ludENvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLmZsb2F0aW5nRW50cnlwb2ludENvbmZpZyEsXG4gICAgICBzaG93T3B0aW9uOiBcImFsd2F5c1wiLFxuICAgICAgcG9zaXRpb246IFwiYm90dG9tLXJpZ2h0XCIsXG4gICAgfSxcbiAgICB3ZWxjb21lU2VjdGlvbkNvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLndlbGNvbWVTZWN0aW9uQ29uZmlnISxcbiAgICAgIHZhcmlhbnQ6IFwib3V0bGluZWRcIixcbiAgICAgIGNvbG9yVmFyaWFudDogXCJhY2NlbnRcIixcbiAgICAgIHRpdGxlOiBcIldlbGNvbWUgdG8gU1BBTlghXCIsXG4gICAgICBpY29uTmFtZTogXCJzcGFya2xlc1wiLFxuICAgICAgc3VidGl0bGU6XG4gICAgICAgIFwiQXNrIG91ciBBSSBhbnl0aGluZyB0byBnZXQgaW5zdGFudCBoZWxwIHdpdGggZXZlcnl0aGluZyBmcm9tIHByb2R1Y3Qgc3BlY2lmaWNzIGFuZCBkZXRhaWxzLCBzaGlwcGluZywgcmV0dXJucywgYW5kIG1vcmUuIE5lZWQgbW9yZSBoZWxwPyBQbGVhc2UgY2xpY2sgdGhlIFNQQU5YIFN1cHBvcnQgYnV0dG9uIGFib3ZlLlwiLFxuICAgIH0sXG4gICAgY2hhdFByZXZpZXdDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRTcGFueE9yZ0NvbmZpZy5jaGF0UHJldmlld0NvbmZpZyEsXG4gICAgICB0b3BNYXJnaW46IDAsXG4gICAgICBsYXJnZVByb2R1Y3RDb21wYXJpc29uOiB0cnVlLFxuICAgICAgaWNvbkZpbGxDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0UHJpbWFyeSksXG4gICAgICBidXR0b25UZXh0U2Vjb25kYXJ5Q29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuVGV4dFByaW1hcnkpLFxuICAgICAgYnV0dG9uVGV4dEhvdmVyQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuVGV4dFByaW1hcnkpLFxuICAgICAgYnV0dG9uQmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmREYXJrKSxcbiAgICAgIGJ1dHRvbkJhY2tncm91bmRIb3ZlckNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkFjY2VudFByaW1hcnkpLFxuICAgICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICAgIC4uLmRlZmF1bHRTcGFueE9yZ0NvbmZpZy5jaGF0UHJldmlld0NvbmZpZyEuaGVhZGVyQ29uZmlnISxcbiAgICAgICAgaW1hZ2VTcmM6IGdldENkbkFzc2V0VVJMKFwic3BhbngtbG9nby5zdmdcIiwgT3JnU2hvcnROYW1lLlNwYW54U3RhZ2luZyksXG4gICAgICAgIGltYWdlSGVpZ2h0OiAxNixcbiAgICAgICAgdGl0bGU6IFwiQUkgQXNzaXN0YW50XCIsXG4gICAgICAgIHNwYXJrbGVzQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICAgIGljb25XaWR0aDogXCIxNnB4XCIsXG4gICAgICAgIGljb25IZWlnaHQ6IFwiMTZweFwiLFxuICAgICAgfSxcbiAgICAgIGZvb3RlckNvbmZpZzoge1xuICAgICAgICAuLi5kZWZhdWx0U3BhbnhPcmdDb25maWcuY2hhdFByZXZpZXdDb25maWchLmZvb3RlckNvbmZpZyEsXG4gICAgICAgIGhhc0ZhZGU6IGZhbHNlLFxuICAgICAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudDogXCJsaWdodFwiLFxuICAgICAgICByZXBseUJ1dHRvbkljb246IFwidGhpbk1hZ25pZnlpbmdHbGFzc1wiLFxuICAgICAgICByZXBseUlucHV0SGFzU2hhZG93OiBmYWxzZSxcbiAgICAgICAgcmVwbHlJbnB1dEhhc0JvcmRlcjogdHJ1ZSxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnlEYXJrKSxcbiAgICAgIH0sXG4gICAgICBjb3BpZXM6IHtcbiAgICAgICAgcGRwOiBbXG4gICAgICAgICAgXCJ3aGF0IHJldmlld2VycyB0aGluayBhYm91dCB0aGUgY29tZm9ydD9cIixcbiAgICAgICAgICBcIndoYXQgYm9keSBhcmVhcyB0aGlzIHRhcmdldHM/XCIsXG4gICAgICAgICAgXCJpZiB0aGlzIHdpbGwgc2hvdyB0aHJvdWdoIGNsb3RoZXM/XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBscDogW1xuICAgICAgICAgIFwic29tZXRoaW5nIHRvIHdlYXIgdW5kZXIgYSBzdHJhcGxlc3MgZHJlc3MgdG8gYSB3ZWRkaW5nP1wiLFxuICAgICAgICAgIFwidGhlIGJlc3Qgc2hhcGV3ZWFyIGZvciB0dW1teSBjb250cm9sP1wiLFxuICAgICAgICAgIFwidGhlIHJpZ2h0IHNoYXBld2VhciB3aXRoIGEgcGVuY2lsIHNraXJ0IGZvciB3b3JrP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHtcbiAgICAgICAgcGRwOiBbXG4gICAgICAgICAgXCJJcyBpdCBlYXN5IHRvIHdhc2g/XCIsXG4gICAgICAgICAgXCJJcyBpdCBnb29kIGZvciBjdXJ2eSBmaWd1cmVzP1wiLFxuICAgICAgICAgIFwiV2hhdCBkaWQgcmV2aWV3ZXJzIGxpa2UgdGhlIGJlc3Q/XCIsXG4gICAgICAgICAgXCJJcyBpdCBjb21mb3J0YWJsZT9cIixcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBjaG9vc2U/XCIsXG4gICAgICAgICAgXCJJcyBpdCBnb29kIGZvciBhbGwgYm9keSBzaGFwZXM/XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBscDogW1xuICAgICAgICAgIFwiV2hpY2ggc3R5bGVzIGhhdmUgdGhlIG1vc3QgcmV2aWV3cz9cIixcbiAgICAgICAgICBcIldoaWNoIHN0eWxlcyBhcmUgYmVzdCBmb3IgbXkgYm9keSBzaGFwZT9cIixcbiAgICAgICAgICBcIldoaWNoIHN0eWxlcyBhcmUgbW9zdCBwb3B1bGFyP1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgU3Bhbnggc291cmNlIGl0cyBwcm9kdWN0cz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBzdGF0aWNQTFBJbWFnZXM6IFtcbiAgICAgICAgXCJkZWZhdWx0X3BscF9lbWJlZGRlZF8xLndlYnBcIixcbiAgICAgICAgXCJkZWZhdWx0X3BscF9lbWJlZGRlZF8yLndlYnBcIixcbiAgICAgICAgXCJkZWZhdWx0X3BscF9lbWJlZGRlZF8zLndlYnBcIixcbiAgICAgICAgXCJkZWZhdWx0X3BscF9lbWJlZGRlZF80LndlYnBcIixcbiAgICAgIF0sXG4gICAgfSxcbiAgICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLmN1c3RvbWVyU2VydmljZUludGVncmF0aW9uLFxuICAgICAgaW50ZWdyYXRpb25Nb2RlOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUuZnVsbCxcbiAgICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlLmt1c3RvbWVyLFxuICAgICAgd2VsY29tZVRpdGxlOiBcIkNoYXQgd2l0aCBhIFNwYW54IFN0eWxpc3RcIixcbiAgICAgIHNob3dOYW1lSW5wdXQ6IHRydWUsXG4gICAgICBzaG93V2VsY29tZU9uRm9ybTogdHJ1ZSxcbiAgICAgIHNob3dBSVN1Z2dlc3Rpb25zV2l0aGluQnVzaW5lc3NIb3VyczogZmFsc2UsXG4gICAgICBjaGF0RW5hYmxlZER1cmluZ0J1c2luZXNzSG91cnM6IHRydWUsXG4gICAgICB3YWl0aW5nTWVzc2FnZVBvc2l0aW9uOiBcIkJFRk9SRV9NRVNTQUdFU1wiLFxuICAgICAgZm9ybUFpTmFtZTogXCJTcGFueCBBSSBBc3Npc3RhbnQuLi5cIixcbiAgICAgIGxlZ2FsTWVzc2FnZTpcbiAgICAgICAgJ1RoaXMgc2Vzc2lvbiB3aWxsIGJlIHRyYW5zY3JpYmVkIGZvciBxdWFsaXR5IHB1cnBvc2VzLiBQbGVhc2Ugc2VlIG91ciB0ZXJtcyBvZiB1c2Ugd2l0aGluIHRoZSBVUyA8YSBocmVmPVwiaHR0cHM6Ly9zcGFueC5jb20vcGFnZXMvaW50ZXJhY3RpdmUtc2VydmljZXMtY29uc2VudC1hbmQtZGlzY2xhaW1lcnNcIiB0YXJnZXQ9XCJfYmxhbmtcIj5oZXJlPC9hPiBhbmQgQ0EgPGEgaHJlZj1cImh0dHBzOi8vc3BhbnguY2EvcGFnZXMvaW50ZXJhY3RpdmUtc2VydmljZXMtY29uc2VudC1hbmQtZGlzY2xhaW1lcnNcIiB0YXJnZXQ9XCJfYmxhbmtcIj5oZXJlPC9hPicsXG4gICAgICB3ZWxjb21lRGVzY3JpcHRpb246XG4gICAgICAgIFwiT3VyIHN0eWxpc3RzIGxvb2sgZm9yd2FyZCB0byBhc3Npc3RpbmcgeW91IE1vbi0gRnJpIGJldHdlZW4gOTozMEFNIHRvIDc6MzBQTSBFVCwgYW5kIFNhdC1TdW4gOTozMEFNIHRvIDY6MDBQTSBFVCFcIixcbiAgICAgIGdldEN1c3RvbVdhaXRpbmdNZXNzYWdlOiAobmFtZT86IHN0cmluZykgPT5cbiAgICAgICAgYEhvbGQgdGlnaHQke25hbWUgPyBgICR7bmFtZX1gIDogXCJcIn0sIHlvdXIgc3R5bGlzdCBpcyBhbG1vc3QgaGVyZWAsXG4gICAgICB3aXRoaW5CdXNpbmVzc0hvdXJzTWVzc2FnZTpcbiAgICAgICAgXCLwn5GLIEhpIHRoZXJlISBXZSdyZSBoZXJlIHRvIGhlbHAgd2l0aCBhbnkgcXVlc3Rpb25zIG9yIHN1cHBvcnQgeW91IG5lZWTigJR3aGV0aGVyIHlvdSdyZSB0cmFja2luZyBhbiBvcmRlciwgZmluZGluZyB0aGUgcGVyZmVjdCBwcm9kdWN0LCBvciBhbnl0aGluZyBpbiBiZXR3ZWVuLiBUbyBrZWVwIHRoaW5ncyBxdWljaywgc29tZSByZXNwb25zZXMgbWlnaHQgY29tZSBmcm9tIEFJLCBidXQgaWYgeW91J2QgcmF0aGVyIGNoYXQgd2l0aCBhIHJlYWwgcGVyc29uLCBqdXN0IGxldCB1cyBrbm934oCUd2UndmUgZ290IHlvdSEgPGJyIC8+PGJyIC8+Q2xpY2sg4oCcc2VuZCBhIG1lc3NhZ2XigJ0gYmVsb3cgdG8gZ2V0IHN0YXJ0ZWQg8J+SrFwiLFxuICAgICAgd2l0aGluQnVzaW5lc3NIb3Vyc1dhaXRpbmdNZXNzYWdlOlxuICAgICAgICBcIkEgU3BhbnggU3R5bGlzdCB3aWxsIGJlIHdpdGggeW91IHdpdGhpbiA1IG1pbnV0ZXMuIFRoYW5rcyBmb3IgeW91ciBwYXRpZW5jZS48YnIgLz48YnIgLz5JbiB0aGUgbWVhbnRpbWUsIGNhbiB5b3UgZ2l2ZSB1cyBhIGxpdHRsZSBpbmZvcm1hdGlvbiBhYm91dCB5b3Vyc2VsZj9cIixcbiAgICAgIHdpdGhpbkJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZTpcbiAgICAgICAgXCLwn5GLIEhpIHRoZXJlISBXZSdyZSBoZXJlIHRvIGhlbHAgd2l0aCBhbnkgcXVlc3Rpb25zIG9yIHN1cHBvcnQgeW91IG5lZWTigJR3aGV0aGVyIHlvdSdyZSB0cmFja2luZyBhbiBvcmRlciwgZmluZGluZyB0aGUgcGVyZmVjdCBwcm9kdWN0LCBvciBhbnl0aGluZyBpbiBiZXR3ZWVuLiBUbyBrZWVwIHRoaW5ncyBxdWljaywgc29tZSByZXNwb25zZXMgbWlnaHQgY29tZSBmcm9tIEFJLCBidXQgaWYgeW91J2QgcmF0aGVyIGNoYXQgd2l0aCBhIHJlYWwgcGVyc29uLCBqdXN0IGxldCB1cyBrbm934oCUd2UndmUgZ290IHlvdSEgPGJyIC8+PGJyIC8+RmlsbCBvdXQgeW91ciBpbmZvcm1hdGlvbiBhbmQgY2xpY2sg4oCcc2VuZCBhIG1lc3NhZ2XigJ0gYmVsb3cgdG8gZ2V0IHN0YXJ0ZWQg8J+SrFwiLFxuICAgICAgb3V0c2lkZUJ1c2luZXNzSG91cnNNZXNzYWdlOlxuICAgICAgICBcIvCfkYsgSGksIHdl4oCZcmUgc29ycnkgYnV0IHRoaXMgaXMgb3V0c2lkZSBvZiBvdXIgc2VydmljZSBob3Vycy48YnIgLz48YnIgLz5Zb3UgY2FuIGxlYXZlIGEgbWVzc2FnZSBhbmQgYSBzdHlsaXN0IHdpbGwgZ2V0IGJhY2sgdG8geW91ciB3aXRoaW4gMjQgaG91cnMuIElmIHlvdSBuZWVkIGFuIGFuc3dlciByaWdodCBhd2F5LCBhc2sgeW91ciBTcGFueCBBSSBzaG9wcGluZyBhc3Npc3RhbnQgZm9yIGhlbHAuXCIsXG4gICAgICBvdXRzaWRlQnVzaW5lc3NIb3Vyc0Zvcm1NZXNzYWdlOlxuICAgICAgICBcIvCfkYsgSGksIHdl4oCZcmUgc29ycnkgYnV0IHRoaXMgaXMgb3V0c2lkZSBvZiBvdXIgc2VydmljZSBob3Vycy48YnIgLz48YnIgLz5Zb3UgY2FuIGxlYXZlIGEgbWVzc2FnZSBhbmQgYSBzdHlsaXN0IHdpbGwgZ2V0IGJhY2sgdG8geW91ciB3aXRoaW4gMjQgaG91cnMuIElmIHlvdSBuZWVkIGFuIGFuc3dlciByaWdodCBhd2F5LCBhc2sgeW91ciBTcGFueCBBSSBzaG9wcGluZyBhc3Npc3RhbnQgZm9yIGhlbHAuXCIsXG4gICAgICBvdXRzaWRlQnVzaW5lc3NIb3Vyc1dhaXRpbmdNZXNzYWdlOlxuICAgICAgICBcIuKaoeKaoSBZb3UncmUgYWxsIHNldCEgQSBzdHlsaXN0IHdpbGwgZ2V0IGJhY2sgdG8geW91IHdpdGhpbiAyNCBob3VycyB3aXRoIGFuIGFuc3dlciB0byB5b3VyIHF1ZXN0aW9uLiBJbiB0aGUgbWVhbnRpbWUsIGZlZWwgZnJlZSB0byB1c2Ugb3VyIFNQQU5YIEFJIFNob3BwaW5nIEFzc2lzdGFudC5cIixcbiAgICAgIHN1Z2dlc3RlZEFJUXVlc3Rpb25zOiBbXG4gICAgICAgIFwiSG93IGNhbiBJIHJldHVybiBvciBleGNoYW5nZSBteSBvcmRlcj9cIixcbiAgICAgICAgXCJXaGVyZSBpcyBteSBvcmRlcj9cIixcbiAgICAgICAgXCJNeSBpdGVtIGlzIGRhbWFnZWQgd2hhdCBjYW4gSSBkbz9cIixcbiAgICAgICAgXCJXaGVyZSBjYW4gSSBmaW5kIG15IG9yZGVyIG51bWJlcj9cIixcbiAgICAgIF0sXG4gICAgICBidXNpbmVzc0hvdXJzU3RhcnRVVEM6IFwiOTozMEFNXCIsXG4gICAgICBidXNpbmVzc0hvdXJzRW5kVVRDOiBcIjc6MzBQTVwiLFxuICAgICAgYnVzaW5lc3NIb3Vyc1RpbWV6b25lOiBcIi0wNTowMFwiLCAvLyBFVFxuICAgICAgd2l0aGluQnVzaW5lc3NIb3Vyc0luaXRpYWxTdGF0ZTogQ2hhdFN0YXRlLklOSVRJQUwsXG4gICAgICBvdXRzaWRlQnVzaW5lc3NIb3Vyc0luaXRpYWxTdGF0ZTogQ2hhdFN0YXRlLklOSVRJQUwsXG4gICAgICB3aXRoaW5CdXNpbmVzc0hvdXJzQnV0dG9udGV4dDogXCJTZW5kIGEgbWVzc2FnZVwiLFxuICAgICAgb3V0c2lkZUJ1c2luZXNzSG91cnNCdXR0b250ZXh0OiBcIkxlYXZlIGEgbWVzc2FnZVwiLFxuICAgIH0sXG4gICAgcHJvZHVjdFJldmlld0NvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLnByb2R1Y3RSZXZpZXdDb25maWchLFxuICAgICAgc3R5bGVWYXJpYW50OiBcImJvcmRlcmVkXCIsXG4gICAgICBjb2xvclZhcmlhbnQ6IFwibmV1dHJhbFwiLFxuICAgIH0sXG4gICAgcGFnZUNhcmRDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRTcGFueE9yZ0NvbmZpZy5wYWdlQ2FyZENvbmZpZyEsXG4gICAgICB2YXJpYW50OiBcIm91dGxpbmVkXCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2hhZG93XCIsXG4gICAgICBpY29uVmFyaWFudDogXCJwcmltYXJ5XCIsXG4gICAgfSxcbiAgICBwcm9kdWN0Q2FyZENvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLnByb2R1Y3RDYXJkQ29uZmlnISxcbiAgICAgIHZhcmlhbnQ6IFwidHJhbnNwYXJlbnRCb3JkZXJlZFwiLFxuICAgIH0sXG4gICAgY2hhdEhlYWRlcjoge1xuICAgICAgLi4uZGVmYXVsdFNwYW54T3JnQ29uZmlnLmNoYXRIZWFkZXIsXG4gICAgICBpbWFnZVNyYzogZ2V0Q2RuQXNzZXRVUkwoXCJzcGFueC1sb2dvLnN2Z1wiLCBPcmdTaG9ydE5hbWUuU3BhbnhTdGFnaW5nKSxcbiAgICAgIGNvbGxhcHNlZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnlEYXJrKSxcbiAgICAgIGV4cGFuZGVkQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZExpZ2h0KSxcbiAgICAgIGNoZXZyb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICBib3JkZXJCb3R0b206IGAxcHggc29saWQgJHtjb2xvclZhcihDb2xvck5hbWVzLkJvcmRlckxpZ2h0KX1gLFxuICAgICAgY2xvc2VJY29uOiBHckNsb3NlLFxuICAgICAgY3VzdG9tZXJTdXBwb3J0U3dpdGNoQ29uZmlnOiB7XG4gICAgICAgIC4uLmRlZmF1bHRTcGFueE9yZ0NvbmZpZy5jaGF0SGVhZGVyLmN1c3RvbWVyU3VwcG9ydFN3aXRjaENvbmZpZyEsXG4gICAgICAgIHZhcmlhbnQ6IFwiZGV0YWNoZWRcIixcbiAgICAgICAgc3VwcG9ydFRpdGxlOiBcIlN1cHBvcnRcIixcbiAgICAgICAgc3BpZmZ5VGl0bGU6IFwiQUkgQXNzaXN0YW50XCIsXG4gICAgICAgIHNwaWZmeVRpdGxlSGFzTG9nbzogdHJ1ZSxcbiAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuVGV4dFByaW1hcnkpLFxuICAgICAgICBzZWxlY3RlZFRleHRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0TGlnaHQpLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuVGV4dFByaW1hcnkpLFxuICAgICAgICBzZWxlY3RlZEJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0UHJpbWFyeSksXG4gICAgICAgIHVuc2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeURhcmspLFxuICAgICAgICB1bnNlbGVjdGVkVGV4dENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLlRleHRQcmltYXJ5KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBmbG9hdGluZ0NoYXRDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRTcGFueE9yZ0NvbmZpZy5mbG9hdGluZ0NoYXRDb25maWcsXG4gICAgICBuZXZlclNob3dTaW5nbGVQcm9kdWN0Q2FyZHM6IGZhbHNlLFxuICAgICAgdGVybXNBbmRDb25kaXRpb25zQ29uZmlnOiB7XG4gICAgICAgIGNvcHk6IFwiVGhpcyBzZXNzaW9uIHdpbGwgYmUgdHJhbnNjcmliZWQgZm9yIHF1YWxpdHkgcHVycG9zZXMuIFBsZWFzZSBzZWUgb3VyIHRlcm1zIG9mIHVzZSBmb3JcIixcbiAgICAgICAgbGluazogXCJodHRwczovL3NwYW54LmNvbS9wYWdlcy90ZXJtcy1vZi11c2VcIixcbiAgICAgICAgbGlua1RleHQ6IFwiU1BBTlguY29tIGhlcmUuXCIsXG4gICAgICB9LFxuICAgICAgcmVwbHlJbnB1dENvbmZpZzoge1xuICAgICAgICBzaXplOiBcImxnXCIsXG4gICAgICAgIHNlbmRJY29uOiBcImFycm93VXBcIixcbiAgICAgIH0sXG5cbiAgICAgIHN1Z2dlc3Rpb25CdXR0b25Db25maWc6IHtcbiAgICAgICAgdmFyaWFudDogXCJvdXRsaW5lZFwiLFxuICAgICAgICBob3ZlclZhcmlhbnQ6IFwiZGFya1wiLFxuICAgICAgICBhbnN3ZXJWYXJpYW50OiBcIm91dGxpbmVkXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29udmVyc2F0aW9uYWxTZWFyY2g6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBzdWdnZXN0aW9uczogW1xuICAgICAgICBcIlNoYXBld2VhciB0aGF0IHdvbuKAmXQgc2hvdyB0aHJvdWdoIGNsb3RoZXNcIixcbiAgICAgICAgXCJTdHlsZXMgd2l0aCB0aGUgc3Ryb25nZXN0IGNvbXByZXNzaW9uXCIsXG4gICAgICAgIFwiQ29tZm9ydGFibGUgc3R5bGVzIGZvciBhbGwgZGF5IHdlYXJcIixcbiAgICAgICAgXCJCZXN0IHNoYXBld2VhciBmb3IgdHVtbXkgY29udHJvbFwiLFxuICAgICAgXSxcbiAgICAgIGVudHJ5cG9pbnRCdG5Db2xvcjogXCJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDRFQTIsICM2OTQxQzYpXCIsXG4gICAgICBlbnRyeXBvaW50QnRuVGV4dENvbG9yOiBcIiMwMDRFQTJcIixcbiAgICAgIGVudHJ5cG9pbnRCdG5Cb3JkZXJDb2xvcjogXCIjMDA0RUEyXCIsXG4gICAgICAvLyBUT0RPOiBNaWdyYXRlIGl0IHRvIHRoZSBuZXcgbW91bnQgcG9pbnQgc3RydWN0dXJlLlxuICAgICAgZW50cnlwb2ludENvbnRhaW5lcjogXCJpZHxzaG9waWZ5LXNlY3Rpb24taGVhZGVyXCIsXG4gICAgICBwcm9kdWN0R3JpZENvbnRhaW5lcjogXCJpZHxNYWluQ29udGVudFdyYXBwZXJcIixcbiAgICAgIGVudHJ5cG9pbnRUcmlnZ2VyOiBcImlkfHNlYXJjaC1pbnB1dFwiLFxuICAgICAgZ2VuZXJhbFNlYXJjaEJ0bjogXCJxdWVyeXxidXR0b24uaGVhZGVyLXNlYXJjaF9fYnV0dG9uXCIsXG4gICAgICBwYWdlQ29udGVudDogXCJpZHxNYWluQ29udGVudFwiLFxuICAgICAgc2VhcmNoQ29udGVudDogXCJpZHxzZWFyY2gtY29udGVudFwiLFxuICAgICAgc29ydGluZ0ZvbnQ6IFwiaXZ5cHJlc3RvLWhlYWRsaW5lLCBzZXJpZlwiLFxuICAgICAgb3B0aW9uc0ZvbnQ6IFwiSW50ZXJcIixcbiAgICB9LFxuXG4gICAgbWVyY2hhbnRWYXJpYW50U2V0dGluZ3M6IHtcbiAgICAgIGR5bmFtaWNWYXJpYW50czoge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICByZWZyZXNoSW50ZXJ2YWw6IDUwMCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtZXJjaGFudE92ZXJyaWRlQ3NzOiBgXG4gICAgICAuc3BpZmZ5LXByb2R1Y3QtcmV2aWV3LWNhcmQtY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3BpZmZ5LWNvbG9ycy1iYWNrZ3JvdW5kLWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1zdGFyLXJhdGluZy1jb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtc2Vjb25kYXJ5LWRhcmspICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXN0YXItcmF0aW5nLXN0YXIge1xuICAgICAgICBmaWxsOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktcHJvZHVjdC1yZXZpZXctaGVhZGVyLXJldmlld2VyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1taW5pLXZlcmlmaWVkLWJ1eWVyLWljb24ge1xuICAgICAgICBmaWxsOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgI3NwaWZmeS1wcm9kdWN0LXJldmlldy1jYXJkLXJlYWQtbW9yZS1jb250YWluZXIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuXG4gICAgICAjc3BpZmZ5LWFpLWNoYXQtcHJldmlldy1jb250ZW50cyBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgICAgLS1jaGFrcmEtZm9udHMtaGVhZGluZzogJ2ludGVyJywgJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuXG4gICAgICAjc3BpZmZ5LWNoYXQtcHJldmlldy11c2VyLXF1ZXJ5LWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIH1cbiAgICAgICNzcGlmZnktYWktZmxvYXRpbmctYnV0dG9uIHtcbiAgICAgICAgei1pbmRleDogMjE0NzQ4MzAwMSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAvKiBTdWdnZXN0aW9uQmFyVjIgQ1NTICovXG4gICAgICAjc3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50cyBidXR0b257XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgI3NwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHMgYnV0dG9uIHNwYW57XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuXG4gICAgICAjc3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50cyBidXR0b24gc3Zne1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuXG4gICAgICAjc3BpZmZ5LWJvdHRvbS1zdWdnZXN0aW9uLWJhci1jb250ZW50cyBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYm9yZGVyLW91dGxpbmUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICNzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYm9yZGVyLWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6dmFyKC0tc3BpZmZ5LWNvbG9ycy1ib3JkZXItbGlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICNzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzIGJ1dHRvbiBzcGFue1xuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgI3NwaWZmeS1ib3R0b20tc3VnZ2VzdGlvbi1iYXItY29udGVudHMgYnV0dG9uIHN2Z3tcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIH1cblxuICAgICAgLnNwaWZmeS1jaGF0LWhlYWRlci1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiA4cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2NvbG9yVmFyKENvbG9yTmFtZXMuQm9yZGVyTGlnaHQpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktY2hhdC1oZWFkZXItY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWxpZ2h0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5KTtcbiAgICAgIH1cblxuICAgICAgLnNwaWZmeS1zdWdnZXN0aW9uLWJhci1idXR0b24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2NvbG9yVmFyKENvbG9yTmFtZXMuQm9yZGVyT3V0bGluZSl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgfVxuXG4gICAgICAuc3BpZmZ5LXN1Z2dlc3Rpb24tYnV0dG9uLWFuc3dlci1jbGFzcyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0UHJpbWFyeSl9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktc3VnZ2VzdGlvbi1idXR0b24tYW5zd2VyLWNsYXNzOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvclZhcihcbiAgICAgICAgICBDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnlEYXJrXG4gICAgICAgICl9ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjb2xvclZhcihcbiAgICAgICAgICBDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnlEYXJrXG4gICAgICAgICl9ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAke2NvbG9yVmFyKENvbG9yTmFtZXMuVGV4dExpbmspfSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuc3BpZmZ5LXN1Z2dlc3Rpb24tYnV0dG9uLXF1ZXN0aW9uLWNsYXNzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvclZhcihDb2xvck5hbWVzLkJvcmRlckxpZ2h0KX0gIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuXG4gICAgICAuc3BpZmZ5LXN1Z2dlc3Rpb24tYnV0dG9uLXF1ZXN0aW9uLWNsYXNzOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2NvbG9yVmFyKFxuICAgICAgICAgIENvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeURhcmtcbiAgICAgICAgKX0gIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvclZhcihcbiAgICAgICAgICBDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnlEYXJrXG4gICAgICAgICl9ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAke2NvbG9yVmFyKENvbG9yTmFtZXMuVGV4dFByaW1hcnkpfSAhaW1wb3J0YW50O1xuICAgICAgICBmaWxsOiAke2NvbG9yVmFyKENvbG9yTmFtZXMuVGV4dFByaW1hcnkpfSAhaW1wb3J0YW50O1xuICAgICAgICBzdHJva2U6ICR7Y29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0UHJpbWFyeSl9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktc3VnZ2VzdGlvbi1idXR0b24tdGV4dC1jbGFzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cblxuICAgICAgLnNwaWZmeS1zb2NpYWwtcHJvb2YtY29udGVudC1pbWFnZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNwaWZmeS11c2VyLXF1ZXJ5LWJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIH1cblxuICAgICAgLnNwaWZmeS1pbWFnZS1iYW5uZXItc3VidGl0bGUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jdXN0b21lci1zZXJ2aWNlLWxlZ2FsLW1lc3NhZ2UgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWN1c3RvbWVyLXNlcnZpY2UtbGVnYWwtbWVzc2FnZSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saW5rKTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktdGFnLXBpbGwtdGV4dCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtbGlnaHQpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1wcm9kdWN0LWNhcmQtdGl0bGUge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tY2hha3JhLWZvbnRzLWhlYWRpbmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1wcm9kdWN0LWNhcmQtdGV4dC1jb2xvciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktcHJvZHVjdC1jYXJkLXJhdGluZy1zdGFyLWNvbG9yIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1zd2l0Y2gtdG8tYWdlbnQtYnV0dG9uLXVuc2VsZWN0ZWQtdGV4dC1jb2xvciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtcHJpbWFyeSk7XG4gICAgICB9IFxuICAgICAgLnNwaWZmeS1zd2l0Y2gtdG8tYWdlbnQtYnV0dG9uLXNlbGVjdGVkLXRleHQtY29sb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWxpZ2h0KTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktc3dpdGNoLXRvLWFnZW50LWJ1dHRvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1zd2l0Y2gtdG8tYWdlbnQtYnV0dG9uLXVuc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1zZWNvbmRhcnktZGFyayk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXN3aXRjaC10by1hZ2VudC1idXR0b24tYm9yZGVyLWNvbG9yIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtcHJpbWFyeSk7XG4gICAgICB9IFxuICAgICAgLnNwaWZmeS1zd2l0Y2gtdG8tYWdlbnQtYnV0dG9uLWJhY2tncm91bmQtY29sb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtcHJpbWFyeSk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXN3aXRjaC10by1hZ2VudC1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvcjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktc3dpdGNoLXRvLWFnZW50LWJ1dHRvbi1ob3Zlci10ZXh0LWNvbG9yOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saWdodCk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXN3aXRjaC10by1hZ2VudC1idXR0b24tc2VsZWN0ZWQtZmlsbC1jb2xvciB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saWdodCk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXN3aXRjaC10by1hZ2VudC1idXR0b24tdW5zZWxlY3RlZC1maWxsLWNvbG9yIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXByZXZpZXctZm9vdGVyLWJhY2tncm91bmQtY29sb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtc2Vjb25kYXJ5LWRhcmspO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1tZXNzYWdlLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2MCU7XG4gICAgICB9XG4gICAgYCxcbiAgfTtcbn07XG5cbmNvbnN0IHNwYW54T3JnSW5mbyA9IHtcbiAgc2hvcnROYW1lOiBcInNwYW54LXN0YWdpbmdcIixcbiAgbmFtZTogXCJTUEFOWFwiLFxuICBkb21haW46IFwiMDFqeHpua3B5bTZiejhkNzJ4bWFwczc3dzMtYzQ3NzQ4NDY3ZjYwN2Q0MDY3ZmUubXlzaG9waWZ5LmRldlwiLFxuICBkZWZhdWx0UHJvZHVjdElkOiBcIjM5NzczNTgwOTg0NTMxXCIsXG4gIGFsd2F5c0VuYWJsZWRNZXJjaGFudHM6IHRydWUsXG4gIG9yZ1VJQ29uZmlnOiBzcGFueE9yZ1VJQ29uZmlnLFxuICBvcmdDb2xvcnM6ICgpID0+IHNwYW54Q29sb3JzLFxuICBvcmdQYWdlQ29uZmlnOiBzcGFueFBhZ2VDb25maWcsXG59IHNhdGlzZmllcyBCYXNpY09yZ0luZm9UeXBlO1xuXG5leHBvcnQgeyBzcGFueE9yZ0luZm8gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLE1BQWEsMEJBQTBCO0FBQ3ZDLE1BQWEsMEJBQTBCOzs7O0FDdUN2QyxNQUFNLHlCQUF3QztDQUM1QyxjQUFjO0VBQ1o7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGdCQUFnQjtHQUNoQixjQUFjO0lBQ1osRUFDRSxVQUFVQSxrQ0FBb0IsWUFDL0I7SUFDRDtLQUNFLFVBQVVBLGtDQUFvQjtLQUM5QixVQUFVQyw4REFBOEI7S0FDekM7SUFDRDtLQUNFLFVBQVVELGtDQUFvQjtLQUM5QixhQUFhRSw0QkFBYTtLQUMzQjtJQUNGO0dBQ0QsZ0JBQWdCO0lBQ2Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Y7R0FDRjtFQUNEO0dBQ0UsV0FBVztHQUNYLGFBQWE7R0FDYixnQkFBZ0I7R0FDaEIsY0FBYyxDQUNaLEVBQ0UsVUFBVUYsa0NBQW9CLFlBQy9CLEVBQ0Q7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsVUFBVUMsOERBQThCO0lBQ3pDLENBQ0Y7R0FDRCxnQkFBZ0IsQ0FDZDtJQUNFLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDakIsRUFDRDtJQUNFLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDakIsQ0FDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGdCQUFnQjtHQUNoQixjQUFjO0lBQ1osRUFDRSxVQUFVRCxrQ0FBb0IsWUFDL0I7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