@envive-ai/react-hooks 0.1.4 → 0.1.6

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 (488) hide show
  1. package/dist/amplitudeContext-CHzas7Cf.d.cts +52 -0
  2. package/dist/amplitudeContext-D-7fmVh1.cjs +356 -0
  3. package/dist/amplitudeContext-hY3caPC6.js +322 -0
  4. package/dist/amplitudeContext-tJ4y-SzX.d.ts +52 -0
  5. package/dist/api-DjeZXxl_.js +207 -0
  6. package/dist/api-_JaUnIUj.cjs +292 -0
  7. package/dist/app-CjsQ2_n-.js +132 -0
  8. package/dist/app-CnKRZ9RW.cjs +178 -0
  9. package/dist/application/models/graphql/index.cjs +3 -12
  10. package/dist/application/models/graphql/index.d.cts +1 -1
  11. package/dist/application/models/graphql/index.d.ts +1 -1
  12. package/dist/application/models/graphql/index.js +1 -10
  13. package/dist/application/models/guards/api/index.cjs +1 -2
  14. package/dist/application/models/guards/api/index.d.cts +2 -2
  15. package/dist/application/models/guards/api/index.d.ts +2 -2
  16. package/dist/application/models/guards/api/index.js +1 -2
  17. package/dist/application/models/index.cjs +48 -54
  18. package/dist/application/models/index.d.cts +7 -9
  19. package/dist/application/models/index.d.ts +7 -9
  20. package/dist/application/models/index.js +7 -11
  21. package/dist/application/models/utilityTypes/index.cjs +1 -1
  22. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  23. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  24. package/dist/application/models/utilityTypes/index.js +1 -1
  25. package/dist/application/models/variantInfo/index.cjs +1 -1
  26. package/dist/application/models/variantInfo/index.d.cts +1 -1
  27. package/dist/application/models/variantInfo/index.d.ts +1 -1
  28. package/dist/application/models/variantInfo/index.js +1 -1
  29. package/dist/application/utils/index.cjs +40 -37
  30. package/dist/application/utils/index.d.cts +18 -14
  31. package/dist/application/utils/index.d.ts +17 -13
  32. package/dist/application/utils/index.js +13 -10
  33. package/dist/{atomStore-JwGb7pcy.cjs → atomStore-B4jIaDPd.cjs} +1 -1
  34. package/dist/{atomStore-B1cgmbP0.js → atomStore-D8pjE1vL.js} +1 -1
  35. package/dist/atoms/app/index.cjs +14 -16
  36. package/dist/atoms/app/index.d.cts +20 -19
  37. package/dist/atoms/app/index.d.ts +20 -19
  38. package/dist/atoms/app/index.js +10 -11
  39. package/dist/atoms/atomStore/index.cjs +2 -1
  40. package/dist/atoms/atomStore/index.d.cts +1 -1
  41. package/dist/atoms/atomStore/index.js +2 -1
  42. package/dist/atoms/chat/index.cjs +44 -40
  43. package/dist/atoms/chat/index.d.cts +35 -36
  44. package/dist/atoms/chat/index.d.ts +35 -36
  45. package/dist/atoms/chat/index.js +14 -10
  46. package/dist/atoms/globalSearch/index.cjs +1 -1
  47. package/dist/atoms/globalSearch/index.d.cts +5 -5
  48. package/dist/atoms/globalSearch/index.d.ts +5 -5
  49. package/dist/atoms/globalSearch/index.js +1 -1
  50. package/dist/atoms/org/index.cjs +26 -37
  51. package/dist/atoms/org/index.d.cts +37 -47
  52. package/dist/atoms/org/index.d.ts +37 -47
  53. package/dist/atoms/org/index.js +11 -11
  54. package/dist/atoms/search/index.cjs +47 -41
  55. package/dist/atoms/search/index.d.cts +7 -9
  56. package/dist/atoms/search/index.d.ts +7 -9
  57. package/dist/atoms/search/index.js +16 -10
  58. package/dist/bandolier-DYEz4-8C.js +1229 -0
  59. package/dist/bandolier-o_-xrbOV.cjs +1229 -0
  60. package/dist/carpe-CsG5jCcl.cjs +607 -0
  61. package/dist/carpe-DONk00bZ.js +605 -0
  62. package/dist/cdnUtils-32v8bDX9.cjs +16 -0
  63. package/dist/cdnUtils-E4tLBt2g.js +11 -0
  64. package/dist/{chat-BgONoYU7.cjs → chat-BubCW1as.cjs} +1 -1
  65. package/dist/chat-CO7cRkaq.cjs +506 -0
  66. package/dist/{chat-CLJ4NWcN.js → chat-CV6MXeID.js} +1 -1
  67. package/dist/chat-hcRc4RRd.js +285 -0
  68. package/dist/{components-CV1fhAkj.js → components-B4T3Uzth.js} +1 -1
  69. package/dist/{components-BKZbet67.cjs → components-Cw9WjA6g.cjs} +1 -1
  70. package/dist/config/locators/components/chat/index.cjs +1 -1
  71. package/dist/config/locators/components/chat/index.d.cts +1 -1
  72. package/dist/config/locators/components/chat/index.d.ts +1 -1
  73. package/dist/config/locators/components/chat/index.js +1 -1
  74. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  75. package/dist/config/locators/components/index.cjs +1 -1
  76. package/dist/config/locators/components/index.d.cts +1 -1
  77. package/dist/config/locators/components/index.d.ts +1 -1
  78. package/dist/config/locators/components/index.js +1 -1
  79. package/dist/config/locators/index.cjs +4 -4
  80. package/dist/config/locators/index.d.cts +2 -2
  81. package/dist/config/locators/index.d.ts +3 -3
  82. package/dist/config/locators/index.js +4 -4
  83. package/dist/contexts/index.cjs +45 -14
  84. package/dist/contexts/index.d.cts +10 -78
  85. package/dist/contexts/index.d.ts +10 -78
  86. package/dist/contexts/index.js +22 -11
  87. package/dist/contexts-B4ihTBsV.cjs +2980 -0
  88. package/dist/contexts-DGlr7M1o.js +2596 -0
  89. package/dist/coterie-CKB93qfz.cjs +239 -0
  90. package/dist/{coterie-yQ-_JXSw.cjs → coterie-DHcj2fRE.js} +64 -65
  91. package/dist/{custservice-types-C83itZmy.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
  92. package/dist/{custservice-types-DPQ-4TI6.js → custservice-types-mnIunabv.js} +1 -1
  93. package/dist/default-BnB4p0Se.cjs +234 -0
  94. package/dist/default-D6f5Dyt7.js +199 -0
  95. package/dist/default-ZKkE5zT4.cjs +4 -0
  96. package/dist/default-legGZJwI.js +4 -0
  97. package/dist/{divIds-DEL_-qU0.cjs → divIds-2dJlU3z8.cjs} +1 -15
  98. package/dist/{divIds-CWkntTsx.js → divIds-BUrN2vY-.js} +2 -4
  99. package/dist/dreamlandBaby-BiRYYFav.js +346 -0
  100. package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
  101. package/dist/{embedded-C5uJqmuD.js → embedded-BJLWIriJ.js} +1 -1
  102. package/dist/{embedded--2L0F4b5.cjs → embedded-Dl79TJLC.cjs} +1 -1
  103. package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
  104. package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
  105. package/dist/enviveConfig-BccuzS2a.cjs +240 -0
  106. package/dist/enviveConfig-CzhTz8Aa.js +152 -0
  107. package/dist/events/index.cjs +1 -1
  108. package/dist/events/index.d.cts +1 -1
  109. package/dist/events/index.js +1 -1
  110. package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
  111. package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
  112. package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
  113. package/dist/fiveCbd-Dz2NouOF.js +613 -0
  114. package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
  115. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
  116. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
  117. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
  118. package/dist/graphql-BNW60InJ.cjs +128 -0
  119. package/dist/graphql-CjB8wHzm.js +74 -0
  120. package/dist/graphqlConfig-CYt6tWII.js +30 -0
  121. package/dist/graphqlConfig-DicykC-o.cjs +61 -0
  122. package/dist/greenpan-B_EbPkSP.js +397 -0
  123. package/dist/greenpan-kPE4fJgd.cjs +397 -0
  124. package/dist/grooveLife-Ckuir319.js +342 -0
  125. package/dist/grooveLife-DKSEQp1F.cjs +342 -0
  126. package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
  127. package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
  128. package/dist/hooks/index.cjs +40 -16
  129. package/dist/hooks/index.d.cts +122 -95
  130. package/dist/hooks/index.d.ts +122 -95
  131. package/dist/hooks/index.js +22 -11
  132. package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
  133. package/dist/{index-jBATkcc_.d.cts → index-BDPWBU3h.d.cts} +1 -1
  134. package/dist/index-BMPtlgac.d.ts +191 -0
  135. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  136. package/dist/{index-C62lPpy4.d.cts → index-Byb45OPg.d.cts} +1 -1
  137. package/dist/{index-DPx8s5YH.d.ts → index-C6KdON7d.d.ts} +1 -1
  138. package/dist/index-C7pGDl1A.d.ts +1609 -0
  139. package/dist/{index-CYtsPztZ.d.cts → index-C9lgsCWp.d.cts} +32 -32
  140. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  141. package/dist/{index-C_C0tLeD.d.ts → index-Cc-wBCn6.d.ts} +32 -32
  142. package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
  143. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  144. package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
  145. package/dist/{index-CExtydIH.d.ts → index-DOii3C6b.d.ts} +1 -1
  146. package/dist/index-DTu2X-YS.d.cts +1609 -0
  147. package/dist/index-OEifcBsm.d.cts +191 -0
  148. package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
  149. package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
  150. package/dist/interceptors/index.cjs +2 -12
  151. package/dist/interceptors/index.d.cts +8 -13
  152. package/dist/interceptors/index.d.ts +8 -13
  153. package/dist/interceptors/index.js +2 -11
  154. package/dist/jackArcher-B39OEIj6.cjs +727 -0
  155. package/dist/{jackArcher-CXf_IAmC.js → jackArcher-BwkWGybC.js} +24 -25
  156. package/dist/jordanCraig-CxRH_jLi.js +1786 -0
  157. package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
  158. package/dist/kindredBravely-D78VwL20.cjs +490 -0
  159. package/dist/kindredBravely-DQDpAzdl.js +490 -0
  160. package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
  161. package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
  162. package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
  163. package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
  164. package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
  165. package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
  166. package/dist/longevityrx-DdV3v26F.cjs +320 -0
  167. package/dist/longevityrx-DfPDfvAt.js +320 -0
  168. package/dist/lookOptic-DgXFGBPP.cjs +282 -0
  169. package/dist/{lookOptic-BGhU4910.js → lookOptic-FgVW1afF.js} +19 -20
  170. package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
  171. package/dist/{mantraBrand-DrqG9uqO.js → mantraBrand-uV8HCDR8.js} +22 -23
  172. package/dist/medterra-BtDpr1Hw.cjs +583 -0
  173. package/dist/medterra-DgzE7-mj.js +583 -0
  174. package/dist/modells-CJjsxOIR.js +484 -0
  175. package/dist/modells-Ck5KbRFj.cjs +484 -0
  176. package/dist/models-BkXg5eIP.cjs +1534 -0
  177. package/dist/models-UZ6HszfZ.js +1281 -0
  178. package/dist/{nodeSelector-BiCDowlK.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
  179. package/dist/{nodeSelector-B3bPtEjX.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
  180. package/dist/org-C2RrBVQR.cjs +81 -0
  181. package/dist/org-xMytX--e.js +38 -0
  182. package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
  183. package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
  184. package/dist/pressedFloral-Bteoboms.js +661 -0
  185. package/dist/pressedFloral-CexgV-xy.cjs +661 -0
  186. package/dist/search-BMOAmrmY.js +459 -0
  187. package/dist/search-Df0Ifneg.cjs +672 -0
  188. package/dist/{search-filter-types-BNTLVXqQ.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
  189. package/dist/{search-filter-types-DkmH1TxJ.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
  190. package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
  191. package/dist/skinPerfection-BlvcEcUE.js +334 -0
  192. package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
  193. package/dist/snapSupplements-kcsPAOm9.js +285 -0
  194. package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
  195. package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
  196. package/dist/spanx-B4WFA_rI.js +661 -0
  197. package/dist/spanx-BWoE4F8b.cjs +663 -0
  198. package/dist/spanxStaging-BOrOjhXn.js +845 -0
  199. package/dist/spanxStaging-BfdfIug4.cjs +848 -0
  200. package/dist/{suggestionBarV2-types-CwOXzIKq.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
  201. package/dist/{suggestionBarV2-types-Dc4-zJlV.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
  202. package/dist/supergoop-22dd5_BS.js +323 -0
  203. package/dist/supergoop-B-a4cku2.cjs +323 -0
  204. package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
  205. package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
  206. package/dist/types/index.cjs +2 -2
  207. package/dist/types/index.d.cts +2 -2
  208. package/dist/types/index.d.ts +2 -2
  209. package/dist/types/index.js +2 -2
  210. package/dist/types--pr1GQQx.js +154 -0
  211. package/dist/types-BVSyY3Hk.cjs +196 -0
  212. package/dist/{uniqueVintage-Cui74mlJ.js → uniqueVintage-CJXiNNe7.js} +19 -20
  213. package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
  214. package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
  215. package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
  216. package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
  217. package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
  218. package/dist/utils-C9ZSCx12.js +888 -0
  219. package/dist/utils-D5HO61hG.cjs +1016 -0
  220. package/dist/variantInfo-DbVxA1yE.js +1 -0
  221. package/dist/variantInfo-orXoPBCU.cjs +0 -0
  222. package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
  223. package/dist/venaCbd-CanovPS_.js +365 -0
  224. package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
  225. package/dist/{westonJonBoucher-C95EuCl-.js → westonJonBoucher-BUu1_wP1.js} +19 -20
  226. package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
  227. package/dist/{wineEnthusiast-DeTFY8Gm.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
  228. package/dist/wolfMattress-D9Mjq-HP.js +372 -0
  229. package/dist/wolfMattress-JssghhC-.cjs +372 -0
  230. package/dist/wolfTactical-C6exYhL7.cjs +349 -0
  231. package/dist/wolfTactical-CnV3KQdI.js +349 -0
  232. package/package.json +101 -19
  233. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  234. package/src/application/models/colorsConfig.ts +18 -18
  235. package/src/application/models/frontendConfig.ts +3 -3
  236. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  237. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  238. package/src/application/models/index.ts +0 -2
  239. package/src/application/models/localStorageEventListener.ts +2 -2
  240. package/src/application/models/supportedOrgs.ts +1 -1
  241. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  242. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  243. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  244. package/src/application/utils/analyticsUtils.ts +53 -22
  245. package/src/application/utils/cdnUtils.ts +11 -0
  246. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  247. package/src/atoms/app/index.ts +7 -17
  248. package/src/atoms/app/variant.ts +13 -4
  249. package/src/atoms/chat/chatState.ts +28 -18
  250. package/src/atoms/chat/messageQueue.ts +36 -5
  251. package/src/atoms/chat/replies.ts +45 -37
  252. package/src/atoms/envive/enviveConfig.ts +10 -6
  253. package/src/atoms/org/graphqlConfig.ts +21 -4
  254. package/src/atoms/org/index.ts +7 -7
  255. package/src/atoms/org/newOrgConfigAtom.ts +8 -0
  256. package/src/atoms/org/orgPageConfig.ts +6 -5
  257. package/src/atoms/search/chatSearch.ts +11 -5
  258. package/src/atoms/search/searchAPI.ts +68 -48
  259. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  260. package/src/contexts/amplitudeContext.tsx +466 -0
  261. package/src/contexts/cdnContext.tsx +48 -0
  262. package/src/contexts/chatContext.tsx +15 -12
  263. package/src/contexts/enviveConfigContext.tsx +22 -17
  264. package/src/contexts/enviveCssContext.tsx +34 -5
  265. package/src/contexts/featureFlagContext.tsx +193 -0
  266. package/src/contexts/featureFlagServiceContext.tsx +87 -0
  267. package/src/contexts/graphqlContext.tsx +165 -0
  268. package/src/contexts/index.ts +13 -3
  269. package/src/contexts/localStorageContext.tsx +159 -0
  270. package/src/contexts/newOrgConfigContext.tsx +104 -0
  271. package/src/contexts/orgConfigContext.tsx +92 -92
  272. package/src/contexts/searchContext.tsx +187 -0
  273. package/src/contexts/sessionStorageContext.tsx +80 -0
  274. package/src/contexts/shopifyUrlContext.tsx +97 -0
  275. package/src/contexts/types.ts +12 -8
  276. package/src/contexts/userIdentityContext.tsx +197 -0
  277. package/src/events/registerAnalyticsListeners.ts +32 -38
  278. package/src/hooks/index.ts +10 -6
  279. package/src/hooks/useAmplitudeOperations.ts +35 -0
  280. package/src/hooks/useAppDetails.ts +49 -0
  281. package/src/hooks/useCdnOperations.ts +16 -0
  282. package/src/hooks/useChatToggle.ts +5 -4
  283. package/src/hooks/useChatToggleAnalytics.ts +15 -0
  284. package/src/hooks/useGraphQLConfig.ts +63 -0
  285. package/src/hooks/useIdentifyUser.ts +33 -0
  286. package/src/hooks/useImageResolver.ts +18 -10
  287. package/src/hooks/useLocalStorageOperations.ts +92 -0
  288. package/src/hooks/useNewOrgConfig.ts +7 -0
  289. package/src/hooks/useSearch.tsx +21 -18
  290. package/src/hooks/useSearchOperations.ts +97 -0
  291. package/src/hooks/useSessionStorageOperations.ts +28 -0
  292. package/src/hooks/useShopifyUrlOperations.ts +45 -0
  293. package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
  294. package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
  295. package/src/interceptors/index.ts +0 -1
  296. package/src/interceptors/useMessageInterceptor.ts +5 -8
  297. package/src/merchants/bandolier/bandolier.ts +10 -28
  298. package/src/merchants/carpe/carpe.ts +5 -8
  299. package/src/merchants/coterie/coterie.ts +3 -6
  300. package/src/merchants/default.ts +73 -70
  301. package/src/merchants/domInsertion.ts +30 -0
  302. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
  303. package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
  304. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
  305. package/src/merchants/greenpan/greenpan.ts +6 -12
  306. package/src/merchants/gridInsertion.ts +19 -0
  307. package/src/merchants/grooveLife/grooveLife.ts +13 -7
  308. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
  309. package/src/merchants/jackArcher/jackArcher.ts +26 -11
  310. package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
  311. package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
  312. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
  313. package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
  314. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
  315. package/src/merchants/longevityrx/longevityrx.ts +14 -8
  316. package/src/merchants/lookOptic/lookOptic.ts +6 -6
  317. package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
  318. package/src/merchants/medterra/medterra.ts +14 -11
  319. package/src/merchants/modells/modells.ts +6 -9
  320. package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
  321. package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
  322. package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
  323. package/src/merchants/spanx/spanx.ts +6 -6
  324. package/src/merchants/spanx/spanxStaging.ts +6 -12
  325. package/src/merchants/supergoop/supergoop.ts +11 -12
  326. package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
  327. package/src/merchants/venaCbd/venaCbd.ts +6 -9
  328. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
  329. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
  330. package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
  331. package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
  332. package/src/types/config-versions.ts +6 -0
  333. package/src/types.ts +0 -53
  334. package/dist/adapters/amplitude/index.cjs +0 -14
  335. package/dist/adapters/amplitude/index.d.cts +0 -6
  336. package/dist/adapters/amplitude/index.d.ts +0 -6
  337. package/dist/adapters/amplitude/index.js +0 -12
  338. package/dist/api-B2euFL-5.cjs +0 -269
  339. package/dist/api-XRr_lAG6.js +0 -190
  340. package/dist/application/config/index.cjs +0 -43
  341. package/dist/application/config/index.d.cts +0 -15
  342. package/dist/application/config/index.d.ts +0 -15
  343. package/dist/application/config/index.js +0 -41
  344. package/dist/application/service/customerService/index.cjs +0 -4
  345. package/dist/application/service/customerService/index.d.cts +0 -3
  346. package/dist/application/service/customerService/index.d.ts +0 -3
  347. package/dist/application/service/customerService/index.js +0 -4
  348. package/dist/application/service/index.cjs +0 -41
  349. package/dist/application/service/index.d.cts +0 -399
  350. package/dist/application/service/index.d.ts +0 -399
  351. package/dist/application/service/index.js +0 -12
  352. package/dist/bandolier-B76-OE75.cjs +0 -1230
  353. package/dist/bandolier-DRn_x1g1.js +0 -1230
  354. package/dist/carpe-kHi4RLB5.cjs +0 -608
  355. package/dist/carpe-qrSU99gq.js +0 -606
  356. package/dist/contexts-CQDwe3rK.cjs +0 -14333
  357. package/dist/contexts-e2sM-B9g.js +0 -12919
  358. package/dist/coterie-mMirPcHP.js +0 -240
  359. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  360. package/dist/customerService-BHQRnLhC.js +0 -23
  361. package/dist/default-8Jfv8ehQ.cjs +0 -199
  362. package/dist/default-C8PQf-38.js +0 -176
  363. package/dist/default-LukSiCz1.js +0 -4
  364. package/dist/default-rJSJ887P.cjs +0 -4
  365. package/dist/dreamlandBaby-DHltv12Z.cjs +0 -347
  366. package/dist/dreamlandBaby-cG0HM9bt.js +0 -347
  367. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  368. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  369. package/dist/fiveCbd-Cvnwh03g.cjs +0 -614
  370. package/dist/fiveCbd-DhYMlsf9.js +0 -614
  371. package/dist/forLoveAndLemons-C8DuUexW.js +0 -666
  372. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +0 -668
  373. package/dist/greenpan-B4Pu65kV.js +0 -398
  374. package/dist/greenpan-BL5p6j7f.cjs +0 -398
  375. package/dist/grooveLife-DjKWHoN3.cjs +0 -343
  376. package/dist/grooveLife-JK0TyaPz.js +0 -343
  377. package/dist/homegrownCannabis-DxqSDkmS.js +0 -411
  378. package/dist/homegrownCannabis-ZnfCqW-m.cjs +0 -411
  379. package/dist/index-BfuO9b0Q.d.ts +0 -749
  380. package/dist/index-CNsGWfS6.d.cts +0 -749
  381. package/dist/index-DFL1dIT_.d.ts +0 -7
  382. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  383. package/dist/index-VSFakgAI.d.cts +0 -95
  384. package/dist/index-zZjcds15.d.cts +0 -7
  385. package/dist/jackArcher-mGkojXek.cjs +0 -728
  386. package/dist/jordanCraig-BvCvPRoR.js +0 -1787
  387. package/dist/jordanCraig-Dv8pVCiS.cjs +0 -1787
  388. package/dist/kindredBravely-UQP7wiNu.cjs +0 -491
  389. package/dist/kindredBravely-X8F_LNph.js +0 -491
  390. package/dist/kutFromTheKloth-BhYKk3CN.cjs +0 -370
  391. package/dist/kutFromTheKloth-D1xsTSJr.js +0 -370
  392. package/dist/larryAndSerges-1411NuZa.cjs +0 -262
  393. package/dist/larryAndSerges-DVIRLItu.js +0 -262
  394. package/dist/leapsAndRebounds-BJ8mwr33.js +0 -361
  395. package/dist/leapsAndRebounds-UcP9EJVO.cjs +0 -361
  396. package/dist/logger-Dln20ans.cjs +0 -26
  397. package/dist/logger-pdEEY8T2.js +0 -20
  398. package/dist/longevityrx-BFSv9GF5.cjs +0 -321
  399. package/dist/longevityrx-Cp6wleWr.js +0 -321
  400. package/dist/lookOptic-KieSqskd.cjs +0 -283
  401. package/dist/mantraBrand-CHQw-0nw.cjs +0 -751
  402. package/dist/medterra-CLG6Co1C.cjs +0 -584
  403. package/dist/medterra-D8ZX9NZC.js +0 -584
  404. package/dist/modells-BzyPwN2m.cjs +0 -485
  405. package/dist/modells-CAfqOCW4.js +0 -485
  406. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  407. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  408. package/dist/pressedFloral-DULBuQwR.cjs +0 -662
  409. package/dist/pressedFloral-Dp-7Fk3S.js +0 -662
  410. package/dist/skinPerfection-BxuYCeJX.js +0 -335
  411. package/dist/skinPerfection-Cd3XZ6By.cjs +0 -335
  412. package/dist/snapSupplements-Bf6htPM0.js +0 -286
  413. package/dist/snapSupplements-ZFnXyMuZ.cjs +0 -286
  414. package/dist/spanx-CwDPQaGj.js +0 -662
  415. package/dist/spanx-Cyd4qDlK.cjs +0 -664
  416. package/dist/spanxStaging-D43nyAGy.js +0 -846
  417. package/dist/spanxStaging-ijbYnHzr.cjs +0 -849
  418. package/dist/supergoop-BnbFG7hm.cjs +0 -338
  419. package/dist/supergoop-CY043wIg.js +0 -336
  420. package/dist/types-BF_CJeck.js +0 -177
  421. package/dist/types-CD4LFta-.d.cts +0 -33
  422. package/dist/types-CNH4sfF-.cjs +0 -231
  423. package/dist/types-DBdI0j89.d.ts +0 -33
  424. package/dist/uniqueVintage-R2Jcu1y1.cjs +0 -1214
  425. package/dist/variant-CKVRF2-W.d.ts +0 -13
  426. package/dist/variant-raYuOP4L.d.cts +0 -13
  427. package/dist/venaCbd-o5_vOp4e.js +0 -366
  428. package/dist/venaCbd-r-IxEVc1.cjs +0 -366
  429. package/dist/westonJonBoucher-DjGEW3ZB.cjs +0 -423
  430. package/dist/wineEnthusiast-DvfcV5B3.cjs +0 -941
  431. package/dist/wolfMattress-6xPfOJt3.js +0 -373
  432. package/dist/wolfMattress-BjGnGKjP.cjs +0 -373
  433. package/dist/wolfTactical-Bi3WZu0m.cjs +0 -350
  434. package/dist/wolfTactical-C_F9-oPX.js +0 -350
  435. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  436. package/src/adapters/amplitude/index.ts +0 -2
  437. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  438. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  439. package/src/application/config/generalStaticConfig.ts +0 -40
  440. package/src/application/config/index.ts +0 -1
  441. package/src/application/models/domMutationContinuation.ts +0 -7
  442. package/src/application/models/domObservationStrategy.ts +0 -9
  443. package/src/application/service/cachingService.ts +0 -84
  444. package/src/application/service/cdnService.ts +0 -20
  445. package/src/application/service/customerService/index.ts +0 -8
  446. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  447. package/src/application/service/domMutationObserver.ts +0 -320
  448. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  449. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  450. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  451. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  452. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  453. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  454. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  455. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  456. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  457. package/src/application/service/featureFlagService.ts +0 -130
  458. package/src/application/service/index.ts +0 -31
  459. package/src/application/service/kustomerIntegrationService.ts +0 -111
  460. package/src/application/service/localStorageService.ts +0 -77
  461. package/src/application/service/pageVariantService.ts +0 -866
  462. package/src/application/service/searchService.ts +0 -147
  463. package/src/application/service/sessionStorageService.ts +0 -27
  464. package/src/application/service/shopifyUrlService.ts +0 -63
  465. package/src/application/service/userIdentityService.ts +0 -114
  466. package/src/application/service/windowChatToggleService.ts +0 -80
  467. package/src/application/service/windowDataLayerService.ts +0 -181
  468. package/src/application/service/windowFrontendConfigService.ts +0 -129
  469. package/src/atoms/org/merchantCss.ts +0 -158
  470. package/src/atoms/org/org.ts +0 -291
  471. package/src/atoms/org/orgUIConfig.ts +0 -142
  472. package/src/enabled-features.ts +0 -83
  473. package/src/hooks/useDynamicVariants.ts +0 -210
  474. package/src/hooks/useFileUpload.ts +0 -63
  475. package/src/hooks/useHideElements.ts +0 -82
  476. package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
  477. package/src/hooks/useReducedMotionWithOverride.ts +0 -15
  478. package/src/hooks/useSnapControl.ts +0 -155
  479. package/src/interceptors/useFormEscalation.ts +0 -57
  480. /package/dist/{variantInfo-CzhR5W6h.js → atomStore-CZnUUsrr.js} +0 -0
  481. /package/dist/{variantInfo-CNRTY0gH.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
  482. /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
  483. /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
  484. /package/dist/{locators-Dc5ZT0aF.js → utilityTypes-8sETsYPk.js} +0 -0
  485. /package/dist/{locators-lQMJj830.cjs → utilityTypes-COShxVir.cjs} +0 -0
  486. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  487. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  488. /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
@@ -0,0 +1,154 @@
1
+ //#region src/application/models/colorsConfig.ts
2
+ var ColorNames = /* @__PURE__ */ function(ColorNames$1) {
3
+ ColorNames$1["TextPrimary"] = "text-primary";
4
+ ColorNames$1["TextSecondary"] = "text-secondary";
5
+ ColorNames$1["TextAccent"] = "text-accent";
6
+ ColorNames$1["TextLink"] = "text-link";
7
+ ColorNames$1["TextLight"] = "text-light";
8
+ ColorNames$1["BackgroundPrimary"] = "background-primary";
9
+ ColorNames$1["BackgroundSecondary"] = "background-secondary";
10
+ ColorNames$1["BackgroundSecondaryDark"] = "background-secondary-dark";
11
+ ColorNames$1["BackgroundTertiary"] = "background-tertiary";
12
+ ColorNames$1["BackgroundDark"] = "background-dark";
13
+ ColorNames$1["BackgroundLight"] = "background-light";
14
+ ColorNames$1["BackgroundSaturated"] = "background-saturated";
15
+ ColorNames$1["BorderLight"] = "border-light";
16
+ ColorNames$1["BorderMedium"] = "border-medium";
17
+ ColorNames$1["BorderDark"] = "border-dark";
18
+ ColorNames$1["BorderOutline"] = "border-outline";
19
+ ColorNames$1["AccentPrimary"] = "accent-primary";
20
+ ColorNames$1["AccentSecondary"] = "accent-secondary";
21
+ return ColorNames$1;
22
+ }(ColorNames || {});
23
+ const colorVar = (color) => `var(--spiffy-colors-${color})`;
24
+
25
+ //#endregion
26
+ //#region src/application/models/orgsEnum.ts
27
+ const OrgShortName = {
28
+ Coterie: "coterie",
29
+ ForLoveAndLemons: "for-love-and-lemons",
30
+ Greenpan: "greenpan",
31
+ JordanCraig: "jordan-craig",
32
+ LarryAndSerges: "larry_and_serges",
33
+ LeapsAndRebounds: "leaps-and-rebounds",
34
+ MantraBrand: "mantra-brand",
35
+ Spanx: "spanx",
36
+ SpanxStaging: "staging-spanx",
37
+ Supergoop: "supergoop",
38
+ UniqueVintage: "unique-vintage",
39
+ JackArcher: "jack-archer",
40
+ SkinPerfection: "skin-perfection",
41
+ LookOptic: "look-optic",
42
+ FiveCbd: "five-cbd",
43
+ SnapSupplements: "snap-supplements",
44
+ Longevityrx: "longevityrx",
45
+ VenaCbd: "vena-cbd",
46
+ Medterra: "medterra",
47
+ Modells: "modells",
48
+ PressedFloral: "pressed-floral",
49
+ KindredBravely: "kindred-bravely",
50
+ WineEnthusiast: "wine-enthusiast",
51
+ HomegrownCannabis: "homegrown-cannabis",
52
+ DreamlandBaby: "dreamland-baby",
53
+ Bandolier: "bandolier",
54
+ WestonJonBoucher: "weston-jon-boucher",
55
+ KutFromTheKloth: "kut-from-the-kloth",
56
+ GrooveLife: "groove-life",
57
+ Carpe: "carpe",
58
+ WolfTactical: "wolf-tactical",
59
+ WolfMattress: "wolfmattress",
60
+ Default: "default"
61
+ };
62
+
63
+ //#endregion
64
+ //#region src/application/models/supportedOrgs.ts
65
+ const getOrgInfo = async (orgShortName) => {
66
+ switch (orgShortName) {
67
+ case OrgShortName.Bandolier: return import("./bandolier-DYEz4-8C.js").then((module) => module.bandolierOrgInfo);
68
+ case OrgShortName.Carpe: return import("./carpe-DONk00bZ.js").then((module) => module.carpeOrgInfo);
69
+ case OrgShortName.Coterie: return import("./coterie-DHcj2fRE.js").then((module) => module.coterieOrgInfo);
70
+ case OrgShortName.DreamlandBaby: return import("./dreamlandBaby-BiRYYFav.js").then((module) => module.dreamlandBabyOrgInfo);
71
+ case OrgShortName.ForLoveAndLemons: return import("./forLoveAndLemons-DqSdyD6S.js").then((module) => module.forLoveAndLemonsOrgInfo);
72
+ case OrgShortName.Greenpan: return import("./greenpan-B_EbPkSP.js").then((module) => module.greenpanOrgInfo);
73
+ case OrgShortName.GrooveLife: return import("./grooveLife-Ckuir319.js").then((module) => module.grooveLifeOrgInfo);
74
+ case OrgShortName.JackArcher: return import("./jackArcher-BwkWGybC.js").then((module) => module.jackArcherOrgInfo);
75
+ case OrgShortName.JordanCraig: return import("./jordanCraig-CxRH_jLi.js").then((module) => module.jordanCraigOrgInfo);
76
+ case OrgShortName.KutFromTheKloth: return import("./kutFromTheKloth-TcXQkIti.js").then((module) => module.kutFromTheKlothOrgInfo);
77
+ case OrgShortName.LarryAndSerges: return import("./larryAndSerges-Bh5XEXsZ.js").then((module) => module.larryAndSergesOrgInfo);
78
+ case OrgShortName.LeapsAndRebounds: return import("./leapsAndRebounds-mjCaH1k-.js").then((module) => module.leapsAndReboundsOrgInfo);
79
+ case OrgShortName.MantraBrand: return import("./mantraBrand-uV8HCDR8.js").then((module) => module.mantraBrandOrgInfo);
80
+ case OrgShortName.Spanx: return import("./spanx-B4WFA_rI.js").then((module) => module.spanxOrgInfo);
81
+ case OrgShortName.SpanxStaging: return import("./spanxStaging-BOrOjhXn.js").then((module) => module.spanxOrgInfo);
82
+ case OrgShortName.Supergoop: return import("./supergoop-22dd5_BS.js").then((module) => module.supergoopOrgInfo);
83
+ case OrgShortName.UniqueVintage: return import("./uniqueVintage-CJXiNNe7.js").then((module) => module.uniqueVintageOrgInfo);
84
+ case OrgShortName.WestonJonBoucher: return import("./westonJonBoucher-BUu1_wP1.js").then((module) => module.westonJonBoucherOrgInfo);
85
+ case OrgShortName.WolfMattress: return import("./wolfMattress-D9Mjq-HP.js").then((module) => module.wolfMattressOrgInfo);
86
+ case OrgShortName.WolfTactical: return import("./wolfTactical-CnV3KQdI.js").then((module) => module.wolfTacticalOrgInfo);
87
+ case OrgShortName.SkinPerfection: return import("./skinPerfection-BlvcEcUE.js").then((module) => module.skinPerfectionOrgInfo);
88
+ case OrgShortName.LookOptic: return import("./lookOptic-FgVW1afF.js").then((module) => module.lookOpticOrgInfo);
89
+ case OrgShortName.FiveCbd: return import("./fiveCbd-Dz2NouOF.js").then((module) => module.fiveCbdOrgInfo);
90
+ case OrgShortName.SnapSupplements: return import("./snapSupplements-kcsPAOm9.js").then((module) => module.snapSupplementsOrgInfo);
91
+ case OrgShortName.Longevityrx: return import("./longevityrx-DfPDfvAt.js").then((module) => module.longevityrxOrgInfo);
92
+ case OrgShortName.VenaCbd: return import("./venaCbd-CanovPS_.js").then((module) => module.venaCbdOrgInfo);
93
+ case OrgShortName.Medterra: return import("./medterra-DgzE7-mj.js").then((module) => module.medterraOrgInfo);
94
+ case OrgShortName.Modells: return import("./modells-CJjsxOIR.js").then((module) => module.modellsOrgInfo);
95
+ case OrgShortName.PressedFloral: return import("./pressedFloral-Bteoboms.js").then((module) => module.pressedFloralOrgInfo);
96
+ case OrgShortName.KindredBravely: return import("./kindredBravely-DQDpAzdl.js").then((module) => module.kindredBravelyOrgInfo);
97
+ case OrgShortName.WineEnthusiast: return import("./wineEnthusiast-Ck1x5iJq.js").then((module) => module.wineEnthusiastOrgInfo);
98
+ case OrgShortName.HomegrownCannabis: return import("./homegrownCannabis-BVPa2pqe.js").then((module) => module.homegrownCannabisOrgInfo);
99
+ default: return import("./default-legGZJwI.js").then((module) => module.defaultOrgInfo);
100
+ }
101
+ };
102
+
103
+ //#endregion
104
+ //#region src/contexts/types.ts
105
+ var CategoryExtractorType = /* @__PURE__ */ function(CategoryExtractorType$1) {
106
+ CategoryExtractorType$1["VisitCategoryMap"] = "VisitCategoryMap";
107
+ CategoryExtractorType$1["VisitCategoryDefault"] = "VisitCategoryDefault";
108
+ return CategoryExtractorType$1;
109
+ }(CategoryExtractorType || {});
110
+ var PageVariantTestType = /* @__PURE__ */ function(PageVariantTestType$1) {
111
+ PageVariantTestType$1["ShopifyPLP"] = "ShopifyPLP";
112
+ PageVariantTestType$1["ShopifyPDP"] = "ShopifyPDP";
113
+ PageVariantTestType$1["PageCategory"] = "PageCategory";
114
+ PageVariantTestType$1["CatalogCategory"] = "CatalogCategory";
115
+ PageVariantTestType$1["TopCatalogCategory"] = "TopCatalogCategory";
116
+ PageVariantTestType$1["HasReviews"] = "HasReviews";
117
+ PageVariantTestType$1["InCollection"] = "InCollection";
118
+ PageVariantTestType$1["HasMerchantTag"] = "HasMerchantTag";
119
+ PageVariantTestType$1["FeatureGate"] = "FeatureGate";
120
+ PageVariantTestType$1["PlpId"] = "PlpId";
121
+ PageVariantTestType$1["QueryParam"] = "QueryParam";
122
+ PageVariantTestType$1["ProductId"] = "ProductId";
123
+ PageVariantTestType$1["UserHasInteracted"] = "UserHasInteracted";
124
+ PageVariantTestType$1["UserHasNotInteracted"] = "UserHasNotInteracted";
125
+ PageVariantTestType$1["isLoading"] = "isLoading";
126
+ PageVariantTestType$1["isProductComparison"] = "isProductComparison";
127
+ PageVariantTestType$1["Fallback"] = "Fallback";
128
+ PageVariantTestType$1["UrlResolver"] = "UrlResolver";
129
+ PageVariantTestType$1["Null"] = "null";
130
+ return PageVariantTestType$1;
131
+ }(PageVariantTestType || {});
132
+ var WidgetType = /* @__PURE__ */ function(WidgetType$1) {
133
+ WidgetType$1["ChatPreview"] = "ChatPreview";
134
+ WidgetType$1["SocialProofV2"] = "SocialProofV2";
135
+ WidgetType$1["ChatPreviewV2"] = "ChatPreviewV2";
136
+ WidgetType$1["ChatPreviewIsLoading"] = "ChatPreviewIsLoading";
137
+ WidgetType$1["ChatPreviewPostInteraction"] = "ChatPreviewPostInteraction";
138
+ WidgetType$1["ChatPreviewProductComparison"] = "ChatPreviewProductComparison";
139
+ WidgetType$1["SuggestionBar"] = "SuggestionBar";
140
+ WidgetType$1["SuggestionBarV2"] = "SuggestionBarV2";
141
+ WidgetType$1["ImagePromptCard"] = "ImagePromptCard";
142
+ WidgetType$1["ImageBanner"] = "ImageBanner";
143
+ WidgetType$1["SingleImagePrompt"] = "SingleImagePrompt";
144
+ WidgetType$1["SearchPrompt"] = "SearchPrompt";
145
+ WidgetType$1["SearchZeroStateEntryPoint"] = "SearchZeroStateEntryPoint";
146
+ WidgetType$1["SearchResultsEntryPoint"] = "SearchResultsEntryPoint";
147
+ WidgetType$1["SearchOverlayHost"] = "SearchOverlayHost";
148
+ WidgetType$1["NoOp"] = "NoOp";
149
+ return WidgetType$1;
150
+ }(WidgetType || {});
151
+
152
+ //#endregion
153
+ export { CategoryExtractorType, ColorNames, OrgShortName, PageVariantTestType, WidgetType, colorVar, getOrgInfo };
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMtLXByMUdRUXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL29yZ3NFbnVtLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9zdXBwb3J0ZWRPcmdzLnRzIiwiLi4vc3JjL2NvbnRleHRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImVudW0gQ29sb3JOYW1lcyB7XG4gIFRleHRQcmltYXJ5ID0gXCJ0ZXh0LXByaW1hcnlcIixcbiAgVGV4dFNlY29uZGFyeSA9IFwidGV4dC1zZWNvbmRhcnlcIixcbiAgVGV4dEFjY2VudCA9IFwidGV4dC1hY2NlbnRcIixcbiAgVGV4dExpbmsgPSBcInRleHQtbGlua1wiLFxuICBUZXh0TGlnaHQgPSBcInRleHQtbGlnaHRcIixcbiAgQmFja2dyb3VuZFByaW1hcnkgPSBcImJhY2tncm91bmQtcHJpbWFyeVwiLFxuICBCYWNrZ3JvdW5kU2Vjb25kYXJ5ID0gXCJiYWNrZ3JvdW5kLXNlY29uZGFyeVwiLFxuICBCYWNrZ3JvdW5kU2Vjb25kYXJ5RGFyayA9IFwiYmFja2dyb3VuZC1zZWNvbmRhcnktZGFya1wiLFxuICBCYWNrZ3JvdW5kVGVydGlhcnkgPSBcImJhY2tncm91bmQtdGVydGlhcnlcIixcbiAgQmFja2dyb3VuZERhcmsgPSBcImJhY2tncm91bmQtZGFya1wiLFxuICBCYWNrZ3JvdW5kTGlnaHQgPSBcImJhY2tncm91bmQtbGlnaHRcIixcbiAgQmFja2dyb3VuZFNhdHVyYXRlZCA9IFwiYmFja2dyb3VuZC1zYXR1cmF0ZWRcIixcbiAgQm9yZGVyTGlnaHQgPSBcImJvcmRlci1saWdodFwiLFxuICBCb3JkZXJNZWRpdW0gPSBcImJvcmRlci1tZWRpdW1cIixcbiAgQm9yZGVyRGFyayA9IFwiYm9yZGVyLWRhcmtcIixcbiAgQm9yZGVyT3V0bGluZSA9IFwiYm9yZGVyLW91dGxpbmVcIixcbiAgQWNjZW50UHJpbWFyeSA9IFwiYWNjZW50LXByaW1hcnlcIixcbiAgQWNjZW50U2Vjb25kYXJ5ID0gXCJhY2NlbnQtc2Vjb25kYXJ5XCIsXG59XG5cbnR5cGUgQ29sb3JNYXBwaW5nID0ge1xuICBba2V5IGluIENvbG9yTmFtZXNdOiBzdHJpbmc7XG59O1xuXG5jb25zdCBjb2xvclZhciA9IChjb2xvcjogQ29sb3JOYW1lcyk6IHN0cmluZyA9PiBgdmFyKC0tc3BpZmZ5LWNvbG9ycy0ke2NvbG9yfSlgO1xuZXhwb3J0IHsgQ29sb3JOYW1lcywgY29sb3JWYXIgfTtcbmV4cG9ydCB0eXBlIHsgQ29sb3JNYXBwaW5nIH07XG4iLCJleHBvcnQgY29uc3QgT3JnU2hvcnROYW1lID0ge1xuICBDb3RlcmllOiAnY290ZXJpZScsXG4gIEZvckxvdmVBbmRMZW1vbnM6ICdmb3ItbG92ZS1hbmQtbGVtb25zJyxcbiAgR3JlZW5wYW46ICdncmVlbnBhbicsXG4gIEpvcmRhbkNyYWlnOiAnam9yZGFuLWNyYWlnJyxcbiAgTGFycnlBbmRTZXJnZXM6ICdsYXJyeV9hbmRfc2VyZ2VzJyxcbiAgTGVhcHNBbmRSZWJvdW5kczogJ2xlYXBzLWFuZC1yZWJvdW5kcycsXG4gIE1hbnRyYUJyYW5kOiAnbWFudHJhLWJyYW5kJyxcbiAgU3Bhbng6ICdzcGFueCcsXG4gIFNwYW54U3RhZ2luZzogJ3N0YWdpbmctc3BhbngnLFxuICBTdXBlcmdvb3A6ICdzdXBlcmdvb3AnLFxuICBVbmlxdWVWaW50YWdlOiAndW5pcXVlLXZpbnRhZ2UnLFxuICBKYWNrQXJjaGVyOiAnamFjay1hcmNoZXInLFxuICAvKiAtLSBCZWxvdyBpdGVtcyBhcmUgZ2VuZXJhdGVkIGJ5IHBsb3AgLS0gKi9cbiAgU2tpblBlcmZlY3Rpb246ICdza2luLXBlcmZlY3Rpb24nLFxuICBMb29rT3B0aWM6ICdsb29rLW9wdGljJyxcbiAgRml2ZUNiZDogJ2ZpdmUtY2JkJyxcbiAgU25hcFN1cHBsZW1lbnRzOiAnc25hcC1zdXBwbGVtZW50cycsXG4gIExvbmdldml0eXJ4OiAnbG9uZ2V2aXR5cngnLFxuICBWZW5hQ2JkOiAndmVuYS1jYmQnLFxuICBNZWR0ZXJyYTogJ21lZHRlcnJhJyxcbiAgTW9kZWxsczogJ21vZGVsbHMnLFxuICBQcmVzc2VkRmxvcmFsOiAncHJlc3NlZC1mbG9yYWwnLFxuICBLaW5kcmVkQnJhdmVseTogJ2tpbmRyZWQtYnJhdmVseScsXG4gIFdpbmVFbnRodXNpYXN0OiAnd2luZS1lbnRodXNpYXN0JyxcbiAgSG9tZWdyb3duQ2FubmFiaXM6ICdob21lZ3Jvd24tY2FubmFiaXMnLFxuICBEcmVhbWxhbmRCYWJ5OiAnZHJlYW1sYW5kLWJhYnknLFxuICBCYW5kb2xpZXI6ICdiYW5kb2xpZXInLFxuICBXZXN0b25Kb25Cb3VjaGVyOiAnd2VzdG9uLWpvbi1ib3VjaGVyJyxcbiAgS3V0RnJvbVRoZUtsb3RoOiAna3V0LWZyb20tdGhlLWtsb3RoJyxcbiAgR3Jvb3ZlTGlmZTogJ2dyb292ZS1saWZlJyxcbiAgQ2FycGU6ICdjYXJwZScsXG4gIFdvbGZUYWN0aWNhbDogJ3dvbGYtdGFjdGljYWwnLFxuICBXb2xmTWF0dHJlc3M6ICd3b2xmbWF0dHJlc3MnLFxuICBEZWZhdWx0OiAnZGVmYXVsdCcsXG59IGFzIGNvbnN0O1xuIiwiaW1wb3J0IHsgT3JnU2hvcnROYW1lIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvb3Jnc0VudW1cIjtcbmltcG9ydCB7IENvbG9yTWFwcGluZywgT3JnUGFnZUNvbmZpZywgT3JnVUlDb25maWcgfSBmcm9tIFwic3JjL2NvbnRleHRzL3R5cGVzXCI7XG5cbmV4cG9ydCB7IE9yZ1Nob3J0TmFtZSB9IGZyb20gXCIuL29yZ3NFbnVtXCI7XG5cbmV4cG9ydCB0eXBlIEJhc2ljT3JnSW5mb1R5cGUgPSB7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRvbWFpbjogc3RyaW5nO1xuICBkZWZhdWx0UHJvZHVjdElkOiBzdHJpbmc7XG4gIGFsd2F5c0VuYWJsZWRNZXJjaGFudHM6IGJvb2xlYW47XG4gIG9yZ1VJQ29uZmlnOiAoKSA9PiBPcmdVSUNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgb3JnUGFnZUNvbmZpZzogKCkgPT4gT3JnUGFnZUNvbmZpZztcbiAgb3JnQ29sb3JzOiAoKSA9PiBDb2xvck1hcHBpbmcgfCB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRPcmdJbmZvID0gYXN5bmMgKFxuICBvcmdTaG9ydE5hbWU/OiBzdHJpbmdcbik6IFByb21pc2U8QmFzaWNPcmdJbmZvVHlwZT4gPT4ge1xuICBzd2l0Y2ggKG9yZ1Nob3J0TmFtZSkge1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkJhbmRvbGllcjpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2JhbmRvbGllci9iYW5kb2xpZXJcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmJhbmRvbGllck9yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuQ2FycGU6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9jYXJwZS9jYXJwZVwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUuY2FycGVPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkNvdGVyaWU6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9jb3RlcmllL2NvdGVyaWVcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmNvdGVyaWVPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkRyZWFtbGFuZEJhYnk6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9kcmVhbWxhbmRCYWJ5L2RyZWFtbGFuZEJhYnlcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmRyZWFtbGFuZEJhYnlPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkZvckxvdmVBbmRMZW1vbnM6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9mb3JMb3ZlQW5kTGVtb25zL2ZvckxvdmVBbmRMZW1vbnNcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmZvckxvdmVBbmRMZW1vbnNPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkdyZWVucGFuOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZ3JlZW5wYW4vZ3JlZW5wYW5cIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmdyZWVucGFuT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Hcm9vdmVMaWZlOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZ3Jvb3ZlTGlmZS9ncm9vdmVMaWZlXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5ncm9vdmVMaWZlT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5KYWNrQXJjaGVyOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvamFja0FyY2hlci9qYWNrQXJjaGVyXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5qYWNrQXJjaGVyT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Kb3JkYW5DcmFpZzpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2pvcmRhbkNyYWlnL2pvcmRhbkNyYWlnXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5qb3JkYW5DcmFpZ09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuS3V0RnJvbVRoZUtsb3RoOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMva3V0RnJvbVRoZUtsb3RoL2t1dEZyb21UaGVLbG90aFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUua3V0RnJvbVRoZUtsb3RoT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5MYXJyeUFuZFNlcmdlczpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2xhcnJ5QW5kU2VyZ2VzL2xhcnJ5QW5kU2VyZ2VzXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5sYXJyeUFuZFNlcmdlc09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuTGVhcHNBbmRSZWJvdW5kczpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2xlYXBzQW5kUmVib3VuZHMvbGVhcHNBbmRSZWJvdW5kc1wiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUubGVhcHNBbmRSZWJvdW5kc09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuTWFudHJhQnJhbmQ6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9tYW50cmFCcmFuZC9tYW50cmFCcmFuZFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUubWFudHJhQnJhbmRPcmdJbmZvXG4gICAgICApO1xuXG4gICAgLy8gLS0tLSBTUEFOWCAtLS0tXG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuU3Bhbng6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9zcGFueC9zcGFueFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUuc3BhbnhPcmdJbmZvXG4gICAgICApO1xuICAgIC8vIFNwYW54IHN0YWdpbmcgKGhlYWRsZXNzIHNob3BpZnkpXG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuU3BhbnhTdGFnaW5nOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvc3Bhbngvc3BhbnhTdGFnaW5nXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5zcGFueE9yZ0luZm9cbiAgICAgICk7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5TdXBlcmdvb3A6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9zdXBlcmdvb3Avc3VwZXJnb29wXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5zdXBlcmdvb3BPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLlVuaXF1ZVZpbnRhZ2U6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy91bmlxdWVWaW50YWdlL3VuaXF1ZVZpbnRhZ2VcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLnVuaXF1ZVZpbnRhZ2VPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLldlc3RvbkpvbkJvdWNoZXI6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy93ZXN0b25Kb25Cb3VjaGVyL3dlc3RvbkpvbkJvdWNoZXJcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLndlc3RvbkpvbkJvdWNoZXJPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLldvbGZNYXR0cmVzczpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL3dvbGZNYXR0cmVzcy93b2xmTWF0dHJlc3NcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLndvbGZNYXR0cmVzc09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuV29sZlRhY3RpY2FsOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvd29sZlRhY3RpY2FsL3dvbGZUYWN0aWNhbFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUud29sZlRhY3RpY2FsT3JnSW5mb1xuICAgICAgKTtcbiAgICAvKiAtLSBCZWxvdyBpdGVtcyBhcmUgZ2VuZXJhdGVkIGJ5IHBsb3AgLS0gKi9cbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Ta2luUGVyZmVjdGlvbjpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL3NraW5QZXJmZWN0aW9uL3NraW5QZXJmZWN0aW9uXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5za2luUGVyZmVjdGlvbk9yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuTG9va09wdGljOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvbG9va09wdGljL2xvb2tPcHRpY1wiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUubG9va09wdGljT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5GaXZlQ2JkOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZml2ZUNiZC9maXZlQ2JkXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5maXZlQ2JkT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5TbmFwU3VwcGxlbWVudHM6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9zbmFwU3VwcGxlbWVudHMvc25hcFN1cHBsZW1lbnRzXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5zbmFwU3VwcGxlbWVudHNPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkxvbmdldml0eXJ4OlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvbG9uZ2V2aXR5cngvbG9uZ2V2aXR5cnhcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmxvbmdldml0eXJ4T3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5WZW5hQ2JkOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvdmVuYUNiZC92ZW5hQ2JkXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS52ZW5hQ2JkT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5NZWR0ZXJyYTpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL21lZHRlcnJhL21lZHRlcnJhXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5tZWR0ZXJyYU9yZ0luZm9cbiAgICAgICk7XG5cbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Nb2RlbGxzOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvbW9kZWxscy9tb2RlbGxzXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5tb2RlbGxzT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5QcmVzc2VkRmxvcmFsOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvcHJlc3NlZEZsb3JhbC9wcmVzc2VkRmxvcmFsXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5wcmVzc2VkRmxvcmFsT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5LaW5kcmVkQnJhdmVseTpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2tpbmRyZWRCcmF2ZWx5L2tpbmRyZWRCcmF2ZWx5XCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5raW5kcmVkQnJhdmVseU9yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuV2luZUVudGh1c2lhc3Q6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy93aW5lRW50aHVzaWFzdC93aW5lRW50aHVzaWFzdFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUud2luZUVudGh1c2lhc3RPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkhvbWVncm93bkNhbm5hYmlzOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvaG9tZWdyb3duQ2FubmFiaXMvaG9tZWdyb3duQ2FubmFiaXNcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmhvbWVncm93bkNhbm5hYmlzT3JnSW5mb1xuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZGVmYXVsdFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUuZGVmYXVsdE9yZ0luZm9cbiAgICAgICk7XG4gIH1cbn07XG4iLCJpbXBvcnQgeyBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbiB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uXCI7XG5pbXBvcnQge1xuICBDb2xvck1hcHBpbmcsXG4gIENvbG9yTmFtZXMsXG4gIGNvbG9yVmFyLFxufSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdcIjtcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlc1wiO1xuaW1wb3J0IHtcbiAgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlLFxuICBDdXN0b21lclNlcnZpY2VUeXBlLFxufSBmcm9tIFwic3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZVwiO1xuaW1wb3J0IHsgR3JpZEluc2VydGlvblR5cGUgfSBmcm9tIFwic3JjL21lcmNoYW50cy9ncmlkSW5zZXJ0aW9uXCI7XG5pbXBvcnQgeyBET01JbnNlcnRpb25UeXBlIH0gZnJvbSBcInNyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGFnZVZpc2l0Q2F0ZWdvcnksXG4gIFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5LFxufSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQgeyBDaGF0U3RhdGUgfSBmcm9tIFwic3JjL3R5cGVzL2N1c3RzZXJ2aWNlLXR5cGVzXCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIH0gZnJvbSBcInNyYy90eXBlcy9zdWdnZXN0aW9uQmFyVjItdHlwZXNcIjtcbmltcG9ydCB7IFRlc3RQcm9wcyB9IGZyb20gXCJzcmMvdHlwZXMvdGVzdC10eXBlc1wiO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0c1wiO1xuXG50eXBlIFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnMgPVxuICB8IFwiYWx3YXlzXCJcbiAgfCBcImFmdGVyLWludGVyYWN0aW9uLW9uLW1vYmlsZS1hbHdheXMtZGVza3RvcFwiXG4gIHwgXCJhZnRlci1pbnRlcmFjdGlvbi1hbnl3aGVyZVwiXG4gIHwgXCJuZXZlclwiO1xuXG50eXBlIEZsb2F0aW5nRW50cnlQb2ludENvbmZpZyA9IHtcbiAgcG9zaXRpb246IFwiYm90dG9tLWxlZnRcIiB8IFwibWlkZGxlLWxlZnRcIiB8IFwibWlkZGxlLXJpZ2h0XCIgfCBcImJvdHRvbS1yaWdodFwiO1xuICBleHBhbnNpb25UZXh0Pzoge1xuICAgIHBkcDogc3RyaW5nO1xuICAgIHBscDogc3RyaW5nO1xuICB9O1xuICBtaW5pbWl6ZWRDb2xvcjogc3RyaW5nO1xuICBleHBhbmRlZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcj86IHN0cmluZztcbiAgc2hvd09wdGlvbjogU2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucztcbiAgaWNvblNWR1NyYz86IHN0cmluZztcbiAgaWNvblNpemU/OiBudW1iZXI7XG4gIGljb25TdHJva2VDb2xvcj86IHN0cmluZztcbiAgaWNvbkZpbGxDb2xvcj86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBmb250U2l6ZT86IG51bWJlcjtcbn07XG5cbnR5cGUgV2VsY29tZVNlY3Rpb25WYXJpYW50ID0gXCJzdGFuZGFyZFwiIHwgXCJvdXRsaW5lZFwiO1xuXG50eXBlIFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50ID0gXCJzdGFuZGFyZFwiIHwgXCJhY2NlbnRcIiB8IFwiYnJhbmRcIiB8IFwibGlnaHRcIjtcblxudHlwZSBXZWxjb21lU2VjdGlvbkNvbmZpZyA9IHtcbiAgdmFyaWFudDogV2VsY29tZVNlY3Rpb25WYXJpYW50O1xuICBjb2xvclZhcmlhbnQ/OiBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudDtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICAvLyBpY29uPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4+O1xuICAvKiBTZXJpYWxpemFibGUgaWNvbiBuYW1lIHRoYXQgbWFwcyB0byBhIFJlYWN0IGNvbXBvbmVudC4gUHJlZmVycmVkIG92ZXIgaWNvbiBmb3IgZGF0YWJhc2Ugc3RvcmFnZS4gKi9cbiAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gIGltYWdlU3JjPzogc3RyaW5nO1xufTtcblxudHlwZSBDaGF0UHJldmlld0NvbmZpZyA9IHtcbiAgdmFyaWFudDogXCJmbGF0XCIgfCBcImZpbGxlZFwiIHwgXCJvdXRsaW5lZFwiO1xuICBsYXJnZVByb2R1Y3RDb21wYXJpc29uPzogYm9vbGVhbjtcbiAgZmlsbGVkQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGljb25GaWxsQ29sb3I6IHN0cmluZztcbiAgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICBidXR0b25UZXh0U2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvblRleHRIb3ZlckNvbG9yPzogc3RyaW5nO1xuICBidXR0b25CYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgYnV0dG9uQmFja2dyb3VuZEhvdmVyQ29sb3I6IHN0cmluZztcbiAgYnV0dG9uQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvbkJvcmRlckhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gIGNvcGllczogeyBwZHA6IHN0cmluZ1tdOyBwbHA6IHN0cmluZ1tdIH07XG4gIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM/OiB7IHBkcDogc3RyaW5nW107IHBscDogc3RyaW5nW10gfTtcbiAgc3RhdGljUExQSW1hZ2VzPzogc3RyaW5nW107XG4gIGZvb3RlckNvbmZpZz86IENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnO1xuICBoZWFkZXJDb25maWc/OiBDaGF0UHJldmlld0hlYWRlckNvbmZpZztcbiAgdG9wTWFyZ2luPzogbnVtYmVyO1xufTtcblxudHlwZSBDaGF0UHJldmlld0hlYWRlckNvbmZpZyA9IHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGltYWdlU3JjPzogc3RyaW5nO1xuICBpbWFnZUhlaWdodD86IG51bWJlcjtcbiAgc3BhcmtsZXNDb2xvcj86IHN0cmluZzsgLy8gdXNlZCBieTogc3BhbngsIHVuaXF1ZVZpbnRhZ2UsIGRyZWFtbGFuZEJhYnlcbiAgZm9udFNpemU/OiBzdHJpbmc7XG4gIGljb25XaWR0aD86IHN0cmluZztcbiAgaWNvbkhlaWdodD86IHN0cmluZztcbn07XG5cbmludGVyZmFjZSBDaGF0UHJldmlld0Zvb3RlckNvbmZpZyB7XG4gIGhhc0ZhZGU/OiBib29sZWFuOyAvLyB1c2VkIGJ5OiBzcGFueCwgdW5pcXVlVmludGFnZVxuICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudD86IFwiZGFya1wiIHwgXCJsaWdodFwiIHwgXCJvdXRsaW5lZFwiO1xuICBzdWdnZXN0aW9uc0JhY2tncm91bmQ/OiBzdHJpbmc7IC8vIHVzZWQgYnk6IGNhcmJhaG5cbiAgcmVwbHlCdXR0b25JY29uPzpcbiAgICB8IFwic2VuZFwiXG4gICAgfCBcIm1hZ25pZnlpbmdHbGFzc1wiXG4gICAgfCBcInRoaW5NYWduaWZ5aW5nR2xhc3NcIlxuICAgIHwgXCJzZWFyY2hJY29uXCI7XG4gIHJlcGx5QnV0dG9uVGV4dD86IHN0cmluZztcbiAgcmVwbHlJbnB1dEhhc1NoYWRvdz86IGJvb2xlYW47IC8vIHVzZWQgYnk6IHNwYW54XG4gIHJlcGx5SW5wdXRIYXNCb3JkZXI/OiBib29sZWFuOyAvLyB1c2VkIGJ5OiBzcGFueFxuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7IC8vIHVzZWQgYnkgc3BhbngsIHR1c2hiYWJ5LCB3aWxsIG5lZWQgY3VzdG9tIENTUyB3aGVuIHN3aXRjaGluZyBvdmVyXG59XG5cbnR5cGUgUHJvZHVjdFJldmlld1N0eWxlVmFyaWFudCA9IFwic3RhbmRhcmRcIiB8IFwiYm9yZGVyZWRcIjtcblxudHlwZSBQcm9kdWN0UmV2aWV3Q29sb3JWYXJpYW50ID0gXCJuZXV0cmFsXCIgfCBcImJyYW5kXCIgfCBcInByZW1pdW1cIjtcblxuaW50ZXJmYWNlIFByb2R1Y3RSZXZpZXdDb25maWcge1xuICBzdHlsZVZhcmlhbnQ6IFByb2R1Y3RSZXZpZXdTdHlsZVZhcmlhbnQ7XG4gIGNvbG9yVmFyaWFudDogUHJvZHVjdFJldmlld0NvbG9yVmFyaWFudDtcbiAgdmVyaWZpZWRCdXllclRpdGxlOiBzdHJpbmc7XG4gIGluY2VudGl2aXplZFJldmlld0ZsYWc/OiBib29sZWFuO1xufVxuXG50eXBlIFBhZ2VDYXJkVmFyaWFudCA9IFwiZmlsbGVkXCIgfCBcIm91dGxpbmVkXCIgfCBcIm1pbmltYWxcIjtcblxudHlwZSBQYWdlQ2FyZEhvdmVyVmFyaWFudCA9IFwibm9uZVwiIHwgXCJzaGFkb3dcIiB8IFwibGlmdFwiO1xuXG50eXBlIFBhZ2VDYXJkSWNvblZhcmlhbnQgPSBcInByaW1hcnlcIiB8IFwiYWNjZW50XCIgfCBcImJhY2tncm91bmRcIiB8IFwibm9uZVwiO1xuXG50eXBlIFBhZ2VDYXJkQ29uZmlnID0ge1xuICB2YXJpYW50OiBQYWdlQ2FyZFZhcmlhbnQ7XG4gIGhvdmVyVmFyaWFudDogUGFnZUNhcmRIb3ZlclZhcmlhbnQ7XG4gIGljb25WYXJpYW50OiBQYWdlQ2FyZEljb25WYXJpYW50O1xufTtcblxudHlwZSBQcm9kdWN0Q2FyZFZhcmlhbnQgPVxuICB8IFwiZmlsbGVkXCJcbiAgfCBcImJvcmRlcmVkXCJcbiAgfCBcIm1pbmltYWxcIlxuICB8IFwidHJhbnNwYXJlbnRCb3JkZXJlZFwiO1xuXG50eXBlIFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50ID0gXCJiYWNrZ3JvdW5kRGFya1wiIHwgXCJub25lXCI7XG5cbnR5cGUgUHJvZHVjdENhcmRMYXlvdXRWYXJpYW50ID0gXCJub3JtYWxcIiB8IFwidGFsbFwiIHwgXCJzcXVhcmVcIjtcblxuaW50ZXJmYWNlIFByb2R1Y3RDYXJkQ29uZmlnIHtcbiAgdmFyaWFudDogUHJvZHVjdENhcmRWYXJpYW50O1xuICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50O1xuICBsYXlvdXRWYXJpYW50OiBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQ7XG4gIHByaWNlUHJlZml4Pzogc3RyaW5nO1xufVxuXG50eXBlIENTU3dpdGNoQ29uZmlnID0ge1xuICB2YXJpYW50OiBcImF0dGFjaGVkXCIgfCBcImRldGFjaGVkXCI7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBib3JkZXJDb2xvcjogc3RyaW5nO1xuICBzZWxlY3RlZFRleHRDb2xvcjogc3RyaW5nO1xuICBzZWxlY3RlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgdW5zZWxlY3RlZFRleHRDb2xvcjogc3RyaW5nO1xuICB1bnNlbGVjdGVkQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBzdXBwb3J0VGl0bGU/OiBzdHJpbmc7XG4gIHNwaWZmeVRpdGxlPzogc3RyaW5nO1xuICBzcGlmZnlUaXRsZUhhc0xvZ28/OiBib29sZWFuO1xufTtcblxudHlwZSBDaGF0SGVhZGVyQ29uZmlnID0ge1xuICBjb2xsYXBzZWRDb2xvcjogc3RyaW5nO1xuICBleHBhbmRlZENvbG9yOiBzdHJpbmc7XG4gIGNoZXZyb25Db2xvcjogc3RyaW5nO1xuICBpbWFnZVNyYz86IHN0cmluZztcbiAgaWNvbj86IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PFJlYWN0LlNWR1Byb3BzPFNWR1NWR0VsZW1lbnQ+PjtcbiAgY2xvc2VJY29uPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4+O1xuICBib3JkZXJCb3R0b20/OiBzdHJpbmc7XG4gIGhlYWRlckJhckhlaWdodFBhcnRpYWxWaWV3OiBudW1iZXI7XG4gIGhlYWRlckJhckhlaWdodEZ1bGxWaWV3OiBudW1iZXI7XG4gIGN1c3RvbWVyU3VwcG9ydFN3aXRjaENvbmZpZz86IENTU3dpdGNoQ29uZmlnO1xufTtcblxudHlwZSBTaW1wbGVDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgaW50ZWdyYXRpb25Nb2RlOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGU7XG4gIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICB1c2VVbmlmaWVkQnV0dG9uPzogYm9vbGVhbjtcbiAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG59O1xuXG50eXBlIEZ1bGxDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgaW50ZWdyYXRpb25Nb2RlOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGU7XG4gIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICB1c2VVbmlmaWVkQnV0dG9uPzogYm9vbGVhbjtcbiAgY2hhdEVuYWJsZWREdXJpbmdCdXNpbmVzc0hvdXJzPzogYm9vbGVhbjtcbiAgc2hvd05hbWVJbnB1dD86IGJvb2xlYW47XG4gIGZvcm1BaU5hbWU/OiBzdHJpbmc7XG4gIHdlbGNvbWVUaXRsZTogc3RyaW5nO1xuICB3ZWxjb21lRGVzY3JpcHRpb246IHN0cmluZztcbiAgc2hvd1dlbGNvbWVPbkZvcm0/OiBib29sZWFuO1xuICBjb250YWN0U3ViamVjdE9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgZ2V0Q3VzdG9tV2FpdGluZ01lc3NhZ2U/OiAobmFtZT86IHN0cmluZykgPT4gc3RyaW5nO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzTWVzc2FnZT86IHN0cmluZztcbiAgd2l0aGluQnVzaW5lc3NIb3Vyc1dhaXRpbmdNZXNzYWdlPzogc3RyaW5nO1xuICBvdXRzaWRlQnVzaW5lc3NIb3Vyc01lc3NhZ2U/OiBzdHJpbmc7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzV2FpdGluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gIHdpdGhpbkJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZT86IHN0cmluZztcbiAgb3V0c2lkZUJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZT86IHN0cmluZztcbiAgc3VnZ2VzdGVkQUlRdWVzdGlvbnM/OiBzdHJpbmdbXTtcbiAgYnVzaW5lc3NIb3Vyc1BvbGxpbmc/OiBudW1iZXI7XG4gIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgKi9cbiAgYnVzaW5lc3NIb3Vyc1N0YXJ0VVRDPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBCRS5cbiAgICovXG4gIGJ1c2luZXNzSG91cnNFbmRVVEM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgKi9cbiAgYnVzaW5lc3NIb3Vyc1RpbWV6b25lPzogc3RyaW5nO1xuXG4gIHNob3dBSVN1Z2dlc3Rpb25zV2l0aGluQnVzaW5lc3NIb3Vycz86IGJvb2xlYW47XG4gIHdhaXRpbmdNZXNzYWdlUG9zaXRpb24/OiBcIkJFRk9SRV9NRVNTQUdFU1wiIHwgXCJBRlRFUl9NRVNTQUdFU1wiO1xuICBsZWdhbE1lc3NhZ2U/OiBzdHJpbmc7XG4gIHdpdGhpbkJ1c2luZXNzSG91cnNJbml0aWFsU3RhdGU/OiBDaGF0U3RhdGU7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzSW5pdGlhbFN0YXRlPzogQ2hhdFN0YXRlO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzQnV0dG9udGV4dD86IHN0cmluZztcbiAgb3V0c2lkZUJ1c2luZXNzSG91cnNCdXR0b250ZXh0Pzogc3RyaW5nO1xuICByZW9wZW5DaGF0TWVzc2FnZTogc3RyaW5nO1xufTtcblxudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9XG4gIHwgU2ltcGxlQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25cbiAgfCBGdWxsQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG5cbnR5cGUgQ29udmVyc2F0aW9uYWxTZWFjaCA9IHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHJlcGx5SW5wdXQ/OiBSZXBseUlucHV0Q29uZmlnO1xuICBzdWdnZXN0aW9ucz86IHN0cmluZ1tdO1xuICBlbnRyeXBvaW50QmdDb2xvcj86IHN0cmluZztcbiAgZW50cnlwb2ludFRleHRDb2xvcj86IHN0cmluZztcbiAgZW50cnlwb2ludEJ0bkNvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50QnRuVGV4dENvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50QnRuQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRDb250YWluZXI/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRUcmlnZ2VyPzogc3RyaW5nO1xuICBwcm9kdWN0R3JpZENvbnRhaW5lcj86IHN0cmluZztcbiAgZ2VuZXJhbFNlYXJjaEJ0bj86IHN0cmluZztcbiAgcGFnZUNvbnRlbnQ/OiBzdHJpbmc7XG4gIHNlYXJjaENvbnRlbnQ/OiBzdHJpbmc7XG4gIHNvcnRpbmdUaXRsZT86IHN0cmluZztcbiAgc2VsZWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gIHNvcnRpbmdGb250Pzogc3RyaW5nO1xuICBvcHRpb25zRm9udD86IHN0cmluZztcbiAgc29ydGluZ0J1dHRvblRleHQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIENoYXRNZXNzYWdlVmFyaWFudCA9IFwic3RhbmRhcmRcIiB8IFwicHJlbWl1bVwiIHwgXCJhY2NlbnRcIjtcblxuaW50ZXJmYWNlIENoYXRNZXNzYWdlQ29uZmlnIHtcbiAgYXNzaXN0YW50Q2hhdFRpdGxlOiBzdHJpbmc7XG4gIHZhcmlhbnQ6IENoYXRNZXNzYWdlVmFyaWFudDtcbiAgcHJvZHVjdExpbms6IHtcbiAgICB2YXJpYW50OiBQcm9kdWN0TGlua1ZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBQcm9kdWN0TGlua0hvdmVyVmFyaWFudDtcbiAgICBpY29uVmFyaWFudDogUHJvZHVjdExpbmtJY29uVmFyaWFudDtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFJlcGx5SW5wdXRDb25maWcge1xuICAvLyBUT0RPIGNvbnNpZGVyIG1ha2luZyB0aGlzIGEgbnVtYmVyXG4gIHNpemU/OiBcIm1kXCIgfCBcImxnXCI7XG4gIHNlbmRJY29uOiBcImFycm93VXBcIiB8IFwic2VuZFwiIHwgXCJzZWFyY2hcIjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQYXJ0aWFsVmlld0NvbmZpZyB7XG4gIC8vIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBwYXJ0aWFsIHZpZXcgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzY3JlZW4gaGVpZ2h0XG4gIG1heEhlaWdodDogbnVtYmVyO1xuICBib3JkZXJSYWRpdXM/OiBzdHJpbmc7XG59XG5cbnR5cGUgUHJvZHVjdExpbmtJY29uVmFyaWFudCA9XG4gIHwgXCJhY2NlbnRQcmltYXJ5XCJcbiAgfCBcImJhY2tncm91bmRQcmltYXJ5XCJcbiAgfCBcImJhY2tncm91bmRQcmltYXJ5RGFya1wiXG4gIHwgXCJib3JkZXJMaWdodFwiXG4gIHwgXCJiYWNrZ3JvdW5kU2F0dXJhdGVkXCI7XG5cbnR5cGUgUHJvZHVjdExpbmtWYXJpYW50ID0gXCJ0ZXh0TGlua1wiO1xuXG50eXBlIFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50ID0gXCJiYWNrZ3JvdW5kRGFya1wiO1xuXG50eXBlIFNlYXJjaENhcmRWYXJpYW50ID1cbiAgfCBcImJhY2tncm91bmRQcmltYXJ5XCJcbiAgfCBcImJhY2tncm91bmRTZWNvbmRhcnlcIlxuICB8IFwiYmFja2dyb3VuZFNlY29uZGFyeURhcmtcIlxuICB8IFwiYmFja2dyb3VuZExpZ2h0XCJcbiAgfCBcImJhY2tncm91bmRTYXR1cmF0ZWRcIjtcblxudHlwZSBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudCA9XG4gIHwgXCJvdXRsaW5lZFwiXG4gIHwgXCJvdXRsaW5lZExpZ2h0XCJcbiAgfCBcInByaW1hcnlcIlxuICB8IFwic2Vjb25kYXJ5XCJcbiAgfCBcInRlcnRpYXJ5XCJcbiAgfCBcImRhcmtcIlxuICB8IFwiZGFya0FjY2VudFwiXG4gIHwgXCJkYXJrUHJpbWFyeVwiXG4gIHwgXCJzZWNvbmRhcnlEYXJrXCJcbiAgfCBcInNlY29uZGFyeUFjY2VudFwiXG4gIHwgXCJ0cmFuc3BhcmVudFwiXG4gIHwgXCJ0cmFuc3BhcmVudERhcmtcIlxuICB8IFwibGlnaHREYXJrXCI7XG5cbmludGVyZmFjZSBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnIHtcbiAgdmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBob3ZlclZhcmlhbnQ/OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgYW5zd2VyVmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBib3JkZXJSYWRpdXM/OiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCI7XG59XG5cbnR5cGUgTnVtUm93cyA9IFwiZGVmYXVsdFwiIHwgXCJhbHdheXNPbmVSb3dcIiB8IFwiYWx3YXlzVHdvUm93c1wiIHwgXCJ0d29Sb3dzT25Nb2JpbGVcIjtcblxuaW50ZXJmYWNlIEFscGhhYmV0aWNGaWx0ZXJTb3J0aW5nIHtcbiAgdHlwZTogXCJhbHBoYWJldGljXCI7XG59XG5pbnRlcmZhY2UgUHJvZHVjdENvdW50RmlsdGVyU29ydGluZyB7XG4gIHR5cGU6IFwicHJvZHVjdENvdW50XCI7XG59XG5pbnRlcmZhY2UgQ3VzdG9tRmlsdGVyU29ydGluZyB7XG4gIHR5cGU6IFwiY3VzdG9tXCI7XG4gIG1hcDogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn1cblxudHlwZSBGaWx0ZXJTb3J0aW5nID1cbiAgfCBBbHBoYWJldGljRmlsdGVyU29ydGluZ1xuICB8IFByb2R1Y3RDb3VudEZpbHRlclNvcnRpbmdcbiAgfCBDdXN0b21GaWx0ZXJTb3J0aW5nO1xuXG5pbnRlcmZhY2UgQmFzZUZpbHRlckNvbmZpZyB7XG4gIGZpbHRlcklkOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgRHluYW1pY0ZpbHRlckNvbmZpZyBleHRlbmRzIEJhc2VGaWx0ZXJDb25maWcge1xuICB0eXBlOiBcImR5bmFtaWNcIjtcbiAgYXR0cmlidXRlOiBzdHJpbmc7XG4gIHNvcnRpbmc6IEZpbHRlclNvcnRpbmc7XG59XG5cbmludGVyZmFjZSBQcmljZUZpbHRlckNvbmZpZyBleHRlbmRzIEJhc2VGaWx0ZXJDb25maWcge1xuICB0eXBlOiBcInByaWNlXCI7XG4gIGJ1Y2tldFNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyQXR0cmlidXRlID0gRHluYW1pY0ZpbHRlckNvbmZpZyB8IFByaWNlRmlsdGVyQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBTZWFyY2haZXJvU3RhdGVWYXJpYW50ID1cbiAgfCBcImJhY2tncm91bmRUZXJ0aWFyeVwiXG4gIHwgXCJiYWNrZ3JvdW5kRGFya1wiXG4gIHwgXCJiYWNrZ3JvdW5kUHJpbWFyeVwiO1xuZXhwb3J0IHR5cGUgU2VhcmNoWmVyb1N0YXRlTGF5b3V0ID0gXCJpbnB1dFwiIHwgXCJpY29uXCI7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaElucHV0VmFyaWFudCA9IFwic3RhbmRhcmRcIjtcblxuZXhwb3J0IHR5cGUgU2VhcmNoSWNvblZhcmlhbnQgPSBcInRoaW5cIiB8IFwiYm9sZFwiO1xuXG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudCA9IFwiZGFya0J1dHRvblwiIHwgXCJsaWdodEJ1dHRvblwiO1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0R3JpZFZhcmlhbnQgPSBcInN0YW5kYXJkXCIgfCBcInNxdWFyZVwiO1xuXG50eXBlIFVzZXJRdWVyeUJ1dHRvbkljb24gPVxuICB8IFwibWFnbmlmeWluZ0dsYXNzXCJcbiAgfCBcInNlbmRcIlxuICB8IFwibWFnbmlmeWluZ0dsYXNzVGhpblwiXG4gIHwgXCJzZW5kQXJyb3dcIlxuICB8IFwic2VhcmNoSWNvblwiO1xuXG5pbnRlcmZhY2UgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnIHtcbiAgdmFyaWFudD86IFwiYm94XCIgfCBcInVuZGVybGluZUxpZ2h0XCIgfCBcInVuZGVybGluZURhcmtcIjtcbiAgcGxhY2Vob2xkZXJUZXh0Pzogc3RyaW5nO1xuICBpY29uOiBVc2VyUXVlcnlCdXR0b25JY29uO1xufVxuXG4vLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgdG9wLWxldmVsIHdpZGdldCBjb25maWdcbmludGVyZmFjZSBUZXJtc0FuZENvbmRpdGlvbnNDb25maWcge1xuICBjb3B5OiBzdHJpbmc7XG4gIGxpbms6IHN0cmluZztcbiAgbGlua1RleHQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE1lcmNoYW50VmFyaWFudFNldHRpbmdzIHtcbiAgZHluYW1pY1ZhcmlhbnRzOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjsgLy8gVGhpcyBmZWF0dXJlIHdpbGwgZW5hYmxlIGR5bmFtaWMgdmFyaWFudHMgZm9yIHRoZSBtZXJjaGFudC4gVXNlZnVsIGZvciBTUEEnc1xuICAgIHJlZnJlc2hJbnRlcnZhbD86IG51bWJlcjsgLy8gVGhlIGludGVydmFsIGluIG1pbGxpc2Vjb25kcyB0byBjaGVjayBmb3IgY2hhbmdlcyBpbiB0aGUgVVJMXG4gIH07XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ0NoYXRDb25maWcge1xuICBlbmFibGVXYXRlcm1hcms6IGJvb2xlYW47XG4gIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlPzogYm9vbGVhbjtcbiAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgdGVybXNBbmRDb25kaXRpb25zQ29uZmlnPzogVGVybXNBbmRDb25kaXRpb25zQ29uZmlnO1xuXG4gIC8vIEZvb3RlciBjb25maWdcbiAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZz86IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHJlcGx5SW5wdXRDb25maWc6IFJlcGx5SW5wdXRDb25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBlbmFibGVHbG9iYWxTZWFyY2g6IGJvb2xlYW47XG4gIHNlYXJjaEZpbHRlckNvbmZpZzogRmlsdGVyQXR0cmlidXRlW107XG4gIHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybD86IHN0cmluZztcbiAgYWRkaXRpdmVEeW5hbWljRmlsdGVycz86IGJvb2xlYW47XG59XG5cbnR5cGUgT3JnVUlDb25maWcgPSB7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgZmxvYXRpbmdFbnRyeXBvaW50Q29uZmlnPzogRmxvYXRpbmdFbnRyeVBvaW50Q29uZmlnO1xuICAvLyBEZXByZWNhdGVkIC0gcmVtb3ZlIHdpdGggQ2hhdFByZXZpZXcgcmV3cml0ZVxuICBjaGF0UHJldmlld0NvbmZpZz86IENoYXRQcmV2aWV3Q29uZmlnO1xuXG4gIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjtcbiAgLy8gRGVwcmVjYXRlZCAtIHJlbW92ZSB3aGVuIEdsb2JhbCBTZWFyY2ggaXMgZnVsbHkgbGF1bmNoZWRcbiAgY29udmVyc2F0aW9uYWxTZWFyY2g/OiBDb252ZXJzYXRpb25hbFNlYWNoO1xuXG4gIG1lcmNoYW50T3ZlcnJpZGVDc3M/OiBzdHJpbmc7XG5cbiAgLy8gRGVwcmVjYXRlZCBUT0RPOiBSZW1vdmUgdGhpcyBkZXByZWNhdGVkIHZhbHVlIHdoZW4gR3Jvb3ZlIENYIGhhcyBwcm9wZXIgdW5pZmllZCBidXR0b24gc3VwcG9ydFxuICAvLyBzZWxlY3RvcnMgZm9yIGVsZW1lbnRzIHRoYXQgc2hvdWxkIGJlIGhpZGRlbiB3aGVuIHRoZSBjaGF0IGlzIG9wZW5cbiAgLy8gZS5nLiBDUyB3aWRnZXRzIHdpdGggbWF4IHotaW5kZXggKFwiZGl2W2lkKj0nY3MtY29udGFpbmVyJ11cIilcbiAgaGlkZGVuRWxlbWVudFNlbGVjdG9ycz86IHN0cmluZ1tdO1xuXG4gIG1lcmNoYW50VmFyaWFudFNldHRpbmdzPzogTWVyY2hhbnRWYXJpYW50U2V0dGluZ3M7XG4gIC8vIFRPRE86IE1pZ3JhdGUgYWxsIGZsb2F0aW5nIGNoYXQgY29uZmlnIGludG8gdGhpcyB0b3AtbGV2ZWwga2V5XG4gIC8vXG4gIGZsb2F0aW5nQ2hhdENvbmZpZzogRmxvYXRpbmdDaGF0Q29uZmlnO1xuXG4gIC8vIENvbnRhaW4gYWxsIHNlYXJjaCBjb25maWcgaGVyZVxuICBzZWFyY2hDb25maWc6IFNlYXJjaENvbmZpZztcbiAgLy8gVE9ETzogTW92ZSB0aGVzZSBpbnRvIEZsb2F0aW5nQ2hhdENvbmZpZ1xuICAvLyBDaGF0IEhlYWRlciByZWxhdGVkIHZhbHVlc1xuICBjaGF0SGVhZGVyOiBDaGF0SGVhZGVyQ29uZmlnO1xuICBzdGlja3lBZ2VudFN3aXRjaFN1Z2dlc3Rpb24/OiBib29sZWFuO1xuICBwYXJ0aWFsVmlld0NvbmZpZzogUGFydGlhbFZpZXdDb25maWc7XG4gIHdlbGNvbWVTZWN0aW9uQ29uZmlnPzogV2VsY29tZVNlY3Rpb25Db25maWc7XG4gIC8vIERpZmZlcmVudCByZXNwb25zZSB2YWx1ZXNcbiAgcHJvZHVjdENhcmRDb25maWc/OiBQcm9kdWN0Q2FyZENvbmZpZztcbiAgcHJvZHVjdFJldmlld0NvbmZpZz86IFByb2R1Y3RSZXZpZXdDb25maWc7XG4gIHBhZ2VDYXJkQ29uZmlnPzogUGFnZUNhcmRDb25maWc7XG4gIGNoYXRNZXNzYWdlQ29uZmlnOiBDaGF0TWVzc2FnZUNvbmZpZztcbn07XG5cbnR5cGUgSW5zZXJ0aW9uUG9pbnQgPSB7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIC8vIHRoaXMgaXMgdGhlIGluZGV4IG9mIHRoZSB0YXJnZXQgZWxlbWVudCwgMCBpZiBtaXNzaW5nXG4gIHNlbGVjdGlvbkluZGV4PzogbnVtYmVyO1xuICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlO1xufTtcblxudHlwZSBVUkxUZXN0ID0gXCJzaG9waWZ5XCIgfCBcIm51bGxcIjtcblxudHlwZSBJZEV4dHJhY3RvciA9XG4gIHwgXCJzaG9waWZ5LXByb2R1Y3QtaWRcIlxuICB8IFwic2hvcGlmeS1jb2xsZWN0aW9uLWlkXCJcbiAgfCBcInNob3BpZnktcHJvZHVjdC12YXJpYW50LWlkXCJcbiAgfCBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCJcbiAgfCBcInVybC1yZXNvbHZlci1wbHAtaWRcIlxuICB8IFwibnVsbFwiO1xuXG4vLyBUaGlzIGNvbnRhaW5zIGEgbWFwIGJldHdlZW4gUGFnZVZpc2l0Q2F0ZWdvcnkgYW5kIGEgbGlzdCBvZiBVUkwncyB0aGF0IGFyZSBjbGFzc2lmaWVkIGFzIHRoZSB2YWx1ZVxuZW51bSBDYXRlZ29yeUV4dHJhY3RvclR5cGUge1xuICBWaXNpdENhdGVnb3J5TWFwID0gXCJWaXNpdENhdGVnb3J5TWFwXCIsXG4gIFZpc2l0Q2F0ZWdvcnlEZWZhdWx0ID0gXCJWaXNpdENhdGVnb3J5RGVmYXVsdFwiLFxufVxuXG5pbnRlcmZhY2UgQmFzZUNhdGVnb3J5RXh0cmFjdG9yPFQgZXh0ZW5kcyBDYXRlZ29yeUV4dHJhY3RvclR5cGU+IHtcbiAgdHlwZTogVDtcbn1cblxuLy8gVGhpcyBtYXAgYmV0d2VlbnMgYSBjYXRlZ29yeSBhbmQgYSBsaXN0IG9mIHVybCBwYXR0ZXJuc1xuaW50ZXJmYWNlIFZpc2l0Q2F0ZWdvcnlNYXBcbiAgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlNYXA+IHtcbiAgbWFwOiB7XG4gICAgW2tleSBpbiBQYWdlVmlzaXRDYXRlZ29yeV0/OiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiBhIGhhcmQtY29kZWQgZGVmYXVsdCBQYWdlVmlzaXRDYXRlZ29yeS4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBmYWxsYmFjayBwYWdlIHR5cGVzXG5pbnRlcmZhY2UgVmlzaXRDYXRlZ29yeURlZmF1bHRcbiAgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlEZWZhdWx0PiB7XG4gIHZhbHVlOiBQYWdlVmlzaXRDYXRlZ29yeTtcbn1cblxudHlwZSBDYXRlZ29yeUV4dHJhY3RvciA9IFZpc2l0Q2F0ZWdvcnlNYXAgfCBWaXNpdENhdGVnb3J5RGVmYXVsdDtcblxudHlwZSBXcmFwcGluZ0VsZW1lbnQgPSB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBlbGVtZW50OiBzdHJpbmc7XG4gIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGU7XG59O1xuXG5lbnVtIFBhZ2VWYXJpYW50VGVzdFR5cGUge1xuICBTaG9waWZ5UExQID0gXCJTaG9waWZ5UExQXCIsXG4gIFNob3BpZnlQRFAgPSBcIlNob3BpZnlQRFBcIixcbiAgUGFnZUNhdGVnb3J5ID0gXCJQYWdlQ2F0ZWdvcnlcIixcbiAgQ2F0YWxvZ0NhdGVnb3J5ID0gXCJDYXRhbG9nQ2F0ZWdvcnlcIixcbiAgVG9wQ2F0YWxvZ0NhdGVnb3J5ID0gXCJUb3BDYXRhbG9nQ2F0ZWdvcnlcIixcbiAgSGFzUmV2aWV3cyA9IFwiSGFzUmV2aWV3c1wiLFxuICBJbkNvbGxlY3Rpb24gPSBcIkluQ29sbGVjdGlvblwiLFxuICBIYXNNZXJjaGFudFRhZyA9IFwiSGFzTWVyY2hhbnRUYWdcIixcbiAgRmVhdHVyZUdhdGUgPSBcIkZlYXR1cmVHYXRlXCIsXG4gIFBscElkID0gXCJQbHBJZFwiLFxuICBRdWVyeVBhcmFtID0gXCJRdWVyeVBhcmFtXCIsXG4gIFByb2R1Y3RJZCA9IFwiUHJvZHVjdElkXCIsXG4gIFVzZXJIYXNJbnRlcmFjdGVkID0gXCJVc2VySGFzSW50ZXJhY3RlZFwiLFxuICBVc2VySGFzTm90SW50ZXJhY3RlZCA9IFwiVXNlckhhc05vdEludGVyYWN0ZWRcIixcbiAgaXNMb2FkaW5nID0gXCJpc0xvYWRpbmdcIixcbiAgaXNQcm9kdWN0Q29tcGFyaXNvbiA9IFwiaXNQcm9kdWN0Q29tcGFyaXNvblwiLFxuICBGYWxsYmFjayA9IFwiRmFsbGJhY2tcIixcbiAgVXJsUmVzb2x2ZXIgPSBcIlVybFJlc29sdmVyXCIsXG4gIE51bGwgPSBcIm51bGxcIixcbn1cblxuaW50ZXJmYWNlIEJhc2VQYWdlVmFyaWFudFRlc3Q8VCBleHRlbmRzIFBhZ2VWYXJpYW50VGVzdFR5cGU+IHtcbiAgdGVzdFR5cGU6IFQ7XG59XG5cbmludGVyZmFjZSBUb3BDYXRhbG9nQ2F0ZWdvcnlcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVG9wQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIHRvcENhdGVnb3J5OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIENhdGFsb2dDYXRlZ29yeVRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeTtcbn1cblxuaW50ZXJmYWNlIEhhc1Jldmlld3NUZXN0XG4gIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3M+IHtcbiAgcmV2aWV3TWluaW11bT86IG51bWJlcjtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZSBwcm9kdWN0IGlzIGluIGFueSBvZiB0aGUgbGlzdGVkIGNvbGxlY3Rpb25zXG5pbnRlcmZhY2UgSW5Db2xsZWN0aW9uVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24+IHtcbiAgY29sbGVjdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vLyBUaGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlIHByb2R1Y3QgaGFzIGFueSBvZiB0aGUgbGlzdGVkIG1lcmNoYW50IHRhZ3NcbmludGVyZmFjZSBIYXNNZXJjaGFudFRhZ1Rlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzTWVyY2hhbnRUYWc+IHtcbiAgbWVyY2hhbnRUYWdzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFNob3BpZnlQTFBVUkxUZXN0XG4gIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFA+IHt9XG5cbmludGVyZmFjZSBTaG9waWZ5UERQVVJMVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQPiB7fVxuXG5pbnRlcmZhY2UgUGFnZUNhdGVnb3J5VGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QYWdlQ2F0ZWdvcnk+IHtcbiAgZXh0cmFjdG9yOiBDYXRlZ29yeUV4dHJhY3Rvcjtcbn1cblxuaW50ZXJmYWNlIEZlYXR1cmVHYXRlVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZT4ge1xuICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzO1xufVxuXG5pbnRlcmZhY2UgUHJvZHVjdElkVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5Qcm9kdWN0SWQ+IHtcbiAgcHJvZHVjdElkRXh0cmFjdG9yOiBJZEV4dHJhY3RvcjtcbiAgcHJvZHVjdElkczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBQbHBJZFRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUGxwSWQ+IHtcbiAgcGxwSWRFeHRyYWN0b3I6IElkRXh0cmFjdG9yO1xuICBwbHBJZHM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUXVlcnlQYXJhbVRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUXVlcnlQYXJhbT4ge1xuICBxdWVyeVBhcmFtOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBVc2VySGFzSW50ZXJhY3RlZFRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXNlckhhc0ludGVyYWN0ZWQ+IHt9XG5cbmludGVyZmFjZSBVc2VySGFzTm90SW50ZXJhY3RlZFRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXNlckhhc05vdEludGVyYWN0ZWQ+IHt9XG5cbmludGVyZmFjZSBJc0xvYWRpbmdUZXN0XG4gIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzTG9hZGluZz4ge31cblxuaW50ZXJmYWNlIElzUHJvZHVjdENvbXBhcmlzb25cbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuaXNQcm9kdWN0Q29tcGFyaXNvbj4ge31cblxuaW50ZXJmYWNlIFBhZ2VGYWxsYmFja1Rlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuRmFsbGJhY2s+IHt9XG5cbmludGVyZmFjZSBVcmxSZXNvbHZlclRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXI+IHt9XG5cbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50VGVzdCA9XG4gIHwgUGFnZUNhdGVnb3J5VGVzdFxuICB8IFNob3BpZnlQTFBVUkxUZXN0XG4gIHwgU2hvcGlmeVBEUFVSTFRlc3RcbiAgfCBDYXRhbG9nQ2F0ZWdvcnlUZXN0XG4gIHwgVG9wQ2F0YWxvZ0NhdGVnb3J5XG4gIHwgSGFzUmV2aWV3c1Rlc3RcbiAgfCBJbkNvbGxlY3Rpb25UZXN0XG4gIHwgSGFzTWVyY2hhbnRUYWdUZXN0XG4gIHwgRmVhdHVyZUdhdGVUZXN0XG4gIHwgUHJvZHVjdElkVGVzdFxuICB8IFBscElkVGVzdFxuICB8IFF1ZXJ5UGFyYW1UZXN0XG4gIHwgVXNlckhhc0ludGVyYWN0ZWRUZXN0XG4gIHwgVXNlckhhc05vdEludGVyYWN0ZWRUZXN0XG4gIHwgSXNMb2FkaW5nVGVzdFxuICB8IElzUHJvZHVjdENvbXBhcmlzb25cbiAgfCBQYWdlRmFsbGJhY2tUZXN0XG4gIHwgVXJsUmVzb2x2ZXJUZXN0O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzb2NpYWwgcHJvb2YgZW1iZWRkZWQgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGhlYWRlclRpdGxlIC0gVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgd2lkZ2V0IGhlYWRlclxuICogQHBhcmFtIHN0YXRpY1N1Z2dlc3Rpb25zIC0gQSBsaXN0IG9mIHN0cmluZ3MgdG8gZGlzcGxheSBhcyBzdWdnZXN0aW9ucyBpbiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0IC0gVGhlIHZhcmlhbnQgb2YgdGhlIHN1Z2dlc3Rpb24gYnV0dG9uIHRvIGRpc3BsYXkgaW4gdGhlIHdpZGdldCBmb290ZXJcbiAqIEBwYXJhbSBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudCAtIFRoZSB2YXJpYW50IG9mIHRoZSBzdWdnZXN0aW9uIGJ1dHRvbiB0byBkaXNwbGF5IGluIHRoZSB3aWRnZXQgYm9keVxuICogQHBhcmFtIHN0YXRpY0ltYWdlSW5kZXggLSBJbmRleCBvZiB0aGUgaW1hZ2VVcmwgdG8gdXNlIGZyb20gdGhlIHByb2R1Y3QgcmVzcG9uc2VcbiAqL1xuaW50ZXJmYWNlIFNvY2lhbFByb29mQ29uZmlnIHtcbiAgY3VzdG9tZXJRdWVyeTogc3RyaW5nO1xuICBoZWFkZXJUaXRsZTogc3RyaW5nO1xuICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ/OiBcImdyaWRcIiB8IFwiaG9yaXpvbnRhbFwiO1xuICBoZWFkZXJGb250RmFtaWx5Pzogc3RyaW5nO1xuICBzdGF0aWNQTFBJbWFnZU5hbWVzPzogc3RyaW5nW107XG4gIHN0YXRpY0ltYWdlSW5kZXg/OiBudW1iZXI7XG4gIHN1Z2dlc3Rpb25CdXR0b25TdHJpbmdzOiBzdHJpbmdbXTtcbiAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnRBY2NlbnQ/OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgc3VnZ2VzdGlvbkJ1dHRvbkRhdGFBdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnPzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBsb2dvTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyB0aGUgbW91bnQgcG9pbnQgZm9yIGEgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGNsYXNzTmFtZSAtIE9wdGlvbmFsIGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIG1vdW50IHBvaW50LiBUYWlsd2luZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWRcbiAqIGFuZCBlbmNvdXJhZ2VkLiBVc2UgdGhpcyBwYXJhbWV0ZXIgdG8gc3R5bGUgdGhlIG1vdW50aW5nIGNvbnRhaW5lciBmb3IgdGhlIHdpZGdldC5cbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gIG1vdW50aW5nQ29uZmlnSWQ6IHN0cmluZztcbiAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgdGVzdElkOiBzdHJpbmc7XG4gIHBhcmVudEluc2VydGlvblBvaW50PzogSW5zZXJ0aW9uUG9pbnQ7XG4gIGluc2VydGlvblBvaW50OiBJbnNlcnRpb25Qb2ludDtcbiAgZ3JpZEluc2VydGlvblR5cGU/OiBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgd3JhcHBpbmdFbGVtZW50PzogV3JhcHBpbmdFbGVtZW50O1xuICBkaXZDaGVja1NlbGVjdG9yPzogc3RyaW5nO1xuICBzdXBwcmVzc2lvblNlbGVjdG9yPzogc3RyaW5nO1xuICBzdHlsZT86IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGF0YUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxudHlwZSBTdGF0aWNXaWRnZXRNb3VudGluZyA9IHtcbiAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xufTtcbnR5cGUgRHluYW1pY1dpZGdldE1vdW50aW5nID0ge1xuICBtb3VudGluZ0NvbmZpZ0lkOiBzdHJpbmc7XG4gIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBXaWRnZXREaXNwbGF5VGVzdHNbXTtcbn07XG5cbnR5cGUgV2lkZ2V0RGlzcGxheVRlc3RzID0ge1xuICB0ZXN0czogUGFnZVZhcmlhbnRUZXN0W107XG4gIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG59O1xuXG50eXBlIFdpZGdldE1vdW50aW5nID0gU3RhdGljV2lkZ2V0TW91bnRpbmcgfCBEeW5hbWljV2lkZ2V0TW91bnRpbmc7XG5cbmVudW0gV2lkZ2V0VHlwZSB7XG4gIENoYXRQcmV2aWV3ID0gXCJDaGF0UHJldmlld1wiLFxuICBTb2NpYWxQcm9vZlYyID0gXCJTb2NpYWxQcm9vZlYyXCIsXG4gIENoYXRQcmV2aWV3VjIgPSBcIkNoYXRQcmV2aWV3VjJcIixcbiAgQ2hhdFByZXZpZXdJc0xvYWRpbmcgPSBcIkNoYXRQcmV2aWV3SXNMb2FkaW5nXCIsXG4gIENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uID0gXCJDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvblwiLFxuICBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uID0gXCJDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uXCIsXG4gIFN1Z2dlc3Rpb25CYXIgPSBcIlN1Z2dlc3Rpb25CYXJcIixcbiAgU3VnZ2VzdGlvbkJhclYyID0gXCJTdWdnZXN0aW9uQmFyVjJcIixcbiAgSW1hZ2VQcm9tcHRDYXJkID0gXCJJbWFnZVByb21wdENhcmRcIixcbiAgSW1hZ2VCYW5uZXIgPSBcIkltYWdlQmFubmVyXCIsXG4gIFNpbmdsZUltYWdlUHJvbXB0ID0gXCJTaW5nbGVJbWFnZVByb21wdFwiLFxuICBTZWFyY2hQcm9tcHQgPSBcIlNlYXJjaFByb21wdFwiLFxuICBTZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50ID0gXCJTZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50XCIsXG4gIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50ID0gXCJTZWFyY2hSZXN1bHRzRW50cnlQb2ludFwiLFxuICBTZWFyY2hPdmVybGF5SG9zdCA9IFwiU2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgTm9PcCA9IFwiTm9PcFwiLFxufVxuXG50eXBlIFdpZGdldENvbmZpZyA9XG4gIHwgQ2hhdFByZXZpZXdXaWRnZXRDb25maWdcbiAgfCBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdWMldpZGdldENvbmZpZ1xuICB8IENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWdcbiAgfCBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnXG4gIHwgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnXG4gIHwgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWdcbiAgfCBJbWFnZUJhbm5lcldpZGdldENvbmZpZ1xuICB8IFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZ1xuICB8IFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWdcbiAgfCBOb09wV2lkZ2V0Q29uZmlnO1xuXG5pbnRlcmZhY2UgQmFzZVdpZGdldENvbmZpZzxUIGV4dGVuZHMgV2lkZ2V0VHlwZT4ge1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xuICB0eXBlOiBUO1xuICBjb250ZW50SWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJbWFnZUJhbm5lcldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5JbWFnZUJhbm5lcj4ge1xuICBpbWFnZVNyYzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nO1xuICBhc3Npc3RhbnRNZXNzYWdlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld1dpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlldz4ge1xuICB2YXJpYW50OiBcImZpbGxlZFwiIHwgXCJmbGF0XCIgfCBcIm91dGxpbmVkXCI7XG4gIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xuICBzb2NpYWxQcm9vZkNvbmZpZz86IFNvY2lhbFByb29mQ29uZmlnO1xuICBmb290ZXJDb25maWc/OiBDaGF0UHJldmlld0Zvb3RlckNvbmZpZztcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWcge1xuICB0aXRsZT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ1Nob3BwaW5nIEFzc2lzdGFudCdcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xufVxuXG50eXBlIFNpbmdsZUltYWdlQ29uZmlnID0ge1xuICBsYXlvdXQ6IFwic2luZ2xlXCI7XG4gIGltYWdlSW5kZXg6IG51bWJlcjtcbn07XG50eXBlIE11bHRpSW1hZ2VDb25maWcgPSB7XG4gIGxheW91dDogXCJncmlkXCIgfCBcImhvcml6b250YWxcIjtcbiAgaW1hZ2VOYW1lczogc3RyaW5nW107XG59O1xudHlwZSBTb2NpYWxQcm9vZkltYWdlQ29uZmlnID0gU2luZ2xlSW1hZ2VDb25maWcgfCBNdWx0aUltYWdlQ29uZmlnO1xuXG50eXBlIENoYXRQcmV2aWV3U3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZyA9IHtcbiAgYnV0dG9uU3RyaW5nczogc3RyaW5nW107XG4gIGFjY2VudEJ1dHRvblZhcmlhbnRzPzoge1xuICAgIGJ1dHRvbjogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICB9O1xuICBidXR0b25WYXJpYW50czoge1xuICAgIGJ1dHRvbjogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICB9O1xuICBudW1Sb3dzPzogTnVtUm93cztcbn07XG5cbnR5cGUgQ2hhdFByZXZpZXdBbmltYXRlZFRleHRDb25maWcgPSB7XG4gIGxlYWRpbmdUZXh0OiBzdHJpbmc7XG4gIGFuaW1hdGVkU3RyaW5nczogc3RyaW5nW107XG59O1xuXG50eXBlIENoYXRQcmV2aWV3VmFyaWFudCA9XG4gIHwgeyB2YXJpYW50OiBcImZsYXRcIiB9XG4gIHwgeyB2YXJpYW50OiBcImZpbGxlZFwiOyBiYWNrZ3JvdW5kRmlsbENvbG9yOiBzdHJpbmcgfVxuICB8IHsgdmFyaWFudDogXCJvdXRsaW5lZFwiIH07XG5cbi8vIEJhc2UgaW50ZXJmYWNlIGZvciBjb21tb24gY2hhdCBwcmV2aWV3IHByb3BlcnRpZXNcbmludGVyZmFjZSBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICBoZWFkZXJDb25maWc6IENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWc7XG4gIHN1Z2dlc3Rpb25CdXR0b25zQ29uZmlnOiBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBjaGF0UHJldmlld1ZhcmlhbnQ6IENoYXRQcmV2aWV3VmFyaWFudDtcbiAgYWRkU2VwYXJhdG9ycz86IGJvb2xlYW47XG59XG5cbi8vIFNwZWNpZmljIGNoYXQgcHJldmlldyB3aWRnZXQgY29uZmlndXJhdGlvbnNcbmludGVyZmFjZSBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbj4sXG4gICAgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgY2hhdFByZXZpZXdWYXJpYW50OiBDaGF0UHJldmlld1ZhcmlhbnQ7XG4gIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdJc0xvYWRpbmc+LFxuICAgIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7fVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uPixcbiAgICBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICB1c2VMYXJnZVByb2R1Y3RDb21wYXJpc29uPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdWMj4sXG4gICAgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgYW5pbWF0ZWRUZXh0Q29uZmlnOiBDaGF0UHJldmlld0FuaW1hdGVkVGV4dENvbmZpZztcbn1cblxuaW50ZXJmYWNlIFNvY2lhbFByb29mVjJXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU29jaWFsUHJvb2ZWMj4sXG4gICAgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgY3VzdG9tZXJRdWVyeT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ2Fza2VkIHdoaWNoIHByb2R1Y3RzIGFyZSB0aGUgYmVzdCdcbiAgaW1hZ2VDb25maWc6IFNvY2lhbFByb29mSW1hZ2VDb25maWc7XG59XG5cbmludGVyZmFjZSBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyPiB7XG4gIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb247XG4gIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzO1xuICB2YXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgYnV0dG9uVGV4dHM6IHtcbiAgICBkZWZhdWx0OiBzdHJpbmdbXTtcbiAgICBwcm9kdWN0U3BlY2lmaWM/OiB7IFtwcm9kdWN0SWQ6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIH07XG4gIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gIHR3b1Jvd3NPbk1vYmlsZT86IGJvb2xlYW47XG4gIGFuaW1hdGlvblNwZWVkPzogXCJzdGFuZGFyZFwiIHwgXCJzbG93XCIgfCBcIm5vbmVcIjtcbiAgYnV0dG9uQm9yZGVyUmFkaXVzPzogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiO1xufVxuXG5pbnRlcmZhY2UgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuSW1hZ2VQcm9tcHRDYXJkPiB7XG4gIHVybDogc3RyaW5nO1xuICBsaWdodFRleHQ/OiBib29sZWFuO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nW107XG4gIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHN0cmluZ1tdO1xuICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbiAgZmFsbGJhY2tCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TaW5nbGVJbWFnZVByb21wdD4ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBzdHJpbmdbXTtcbiAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiBVc2VyUXVlcnlCdXR0b25Db25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnXG4gIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQ+IHtcbiAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogU2VhcmNoWmVyb1N0YXRlVmFyaWFudDtcbiAgc2VhcmNoSW5wdXRWYXJpYW50OiBTZWFyY2hJbnB1dFZhcmlhbnQ7XG4gIHNlYXJjaEljb25WYXJpYW50PzogU2VhcmNoSWNvblZhcmlhbnQ7XG4gIHNlYXJjaEljb25TaXplPzogbnVtYmVyO1xuICBzdWdnZXN0aW9uQnV0dG9uQ29uZmlnOiBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnO1xuICBsYXlvdXQ6IFNlYXJjaFplcm9TdGF0ZUxheW91dDtcbiAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgYW5pbWF0aW9uU3BlZWQ/OiBcInN0YW5kYXJkXCIgfCBcInNsb3dcIiB8IFwibm9uZVwiO1xuICBjb21wYWN0TGFiZWw/OiBzdHJpbmc7XG4gIGluaXRpYWxTdWdnZXN0aW9ucz86IHN0cmluZ1tdO1xuICB1c2luZ1BvcnRhbD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBOb09wV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLk5vT3A+IHt9XG5pbnRlcmZhY2UgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoT3ZlcmxheUhvc3Q+IHt9XG5cbmludGVyZmFjZSBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hSZXN1bHRzRW50cnlQb2ludD4ge1xuICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFNlYXJjaElucHV0VmFyaWFudDtcbiAgc2VhcmNoRmlsdGVyU2lkZWJhclZhcmlhbnQ6IFNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50O1xuICBwcm9kdWN0R3JpZFZhcmlhbnQ6IFByb2R1Y3RHcmlkVmFyaWFudDtcbiAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbm9SZXN1bHRzRm91bmRUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldEhlYWRlclByb3BzIGV4dGVuZHMgVGVzdFByb3BzIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGxvZ28/OiBzdHJpbmc7XG4gIGxvZ29IZWlnaHQ/OiBudW1iZXI7XG4gIG9yZ1Nob3J0TmFtZTogc3RyaW5nO1xuICB2YXJpYW50PzogU2VhcmNoUHJvbXB0VmFyaWFudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUXVlcnlPcHRpb25zIHtcbiAgZm9vdGVyVmFyaWFudD86IFwic3RhbmRhcmRcIjtcbiAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICByZXBseUJ1dHRvbkljb24/OlxuICAgIHwgXCJtYWduaWZ5aW5nR2xhc3NcIlxuICAgIHwgXCJzZW5kXCJcbiAgICB8IFwidGhpbk1hZ25pZnlpbmdHbGFzc1wiXG4gICAgfCBcImFpLXNlYXJjaFwiO1xufVxuXG50eXBlIFNlYXJjaFByb21wdFZhcmlhbnQgPSBcInByaW1hcnlcIjtcbmludGVyZmFjZSBTZWFyY2hQcm9tcHRXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoUHJvbXB0PiB7XG4gIHZhcmlhbnQ6IFNlYXJjaFByb21wdFZhcmlhbnQ7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGhlYWRlckNvbmZpZzogV2lkZ2V0SGVhZGVyUHJvcHM7XG4gIHN1Z2dlc3Rpb25CdXR0b25zOiB7XG4gICAgdmFyaWFudDogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBidXR0b25UZXh0czogc3RyaW5nW107XG4gIH07XG4gIGZvb3RlckNvbmZpZz86IFVzZXJRdWVyeU9wdGlvbnM7XG59XG5cbnR5cGUgUGFnZVZhcmlhbnRCYXNlID0ge1xuICAvLyBVbmlxdWUgaWRlbnRpZmllciBmb3IgZWFjaCBlbnRyeSB3aXRoaW4gdGhlIHBhZ2VWYXJpYW50cy5cbiAgLy8gVXNlZnVsIHRvIGRpZmZlcmVudGlhdGUgd2hpY2ggdmFyaWFudCBpcyBsb2FkZWQgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGVzIG9mIGEgc2luZ2xlIHR5cGUuXG4gIHZhcmlhbnRJZDogc3RyaW5nO1xuICB3aWRnZXRNb3VudGluZzogV2lkZ2V0TW91bnRpbmdbXTtcbiAgdmFyaWFudFRlc3RzOiBQYWdlVmFyaWFudFRlc3RbXTtcbn07XG5cbnR5cGUgUExQUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiBcInBscFwiO1xuICBwbHBJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xuXG50eXBlIFBEUFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogXCJwZHBcIjtcbiAgcGFyZW50UHJvZHVjdElkRXh0cmFjdG9yPzogSWRFeHRyYWN0b3I7XG4gIHByb2R1Y3RJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xuXG50eXBlIFZpc2l0UGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiBcInBhZ2VfdmlzaXRcIjtcbn07XG5cbnR5cGUgT3RoZXJQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgdmFyaWFudFR5cGU6IFwib3RoZXJcIjtcbn07XG5cbnR5cGUgSG9tZVBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogXCJob21lcGFnZVwiO1xufTtcblxudHlwZSBTZWFyY2hQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgdmFyaWFudFR5cGU6IFwic2VhcmNoXCI7XG59O1xuXG5leHBvcnQgdHlwZSBQYWdlVmFyaWFudENvbmZpZyA9XG4gIHwgUExQUGFnZVZhcmlhbnRcbiAgfCBQRFBQYWdlVmFyaWFudFxuICB8IFZpc2l0UGFnZVZhcmlhbnRcbiAgfCBPdGhlclBhZ2VWYXJpYW50XG4gIHwgSG9tZVBhZ2VWYXJpYW50XG4gIHwgU2VhcmNoUGFnZVZhcmlhbnQ7XG5cbmV4cG9ydCB0eXBlIE9yZ1BhZ2VDb25maWcgPSB7XG4gIC8vIHBhZ2VWYXJpYW50cyBpcyBhIGxpc3Qgb2YgcGFnZSB2YXJpYW50cyB0aGF0IHdlIHN1cHBvcnQuXG4gIHBhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXTtcbiAgLy8gd2lkZ2V0Q29uZmlncyBpcyBhIG5hbWVkIHNldCBvZiB3aWRnZXQgY29uZmlnc1xuICB3aWRnZXRDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWc+O1xuICBtb3VudGluZ0NvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPjtcbn07XG5cbmV4cG9ydCB0eXBlIE9yZ0NvbmZpZyA9IE9yZ1VJQ29uZmlnO1xuXG5leHBvcnQge1xuICBDYXRlZ29yeUV4dHJhY3RvclR5cGUsXG4gIENvbG9yTmFtZXMsXG4gIGNvbG9yVmFyLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRUeXBlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVDb25maWcge1xuICBhbXBsaXR1ZGVBcGlLZXk/OiBzdHJpbmc7XG4gIGRhdGFSZXNpZGVuY3k/OiBzdHJpbmc7XG4gIGVudj86IHN0cmluZztcbiAgYmFzZVVybD86IHN0cmluZztcbiAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gIG9yZ0xldmVsQXBpS2V5Pzogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU/OiBzdHJpbmc7XG4gIGlkZW50aWZ5aW5nUHJlZml4Pzogc3RyaW5nO1xuICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHZhcmlhbnRVcmxPdmVycmlkZT86IHN0cmluZztcbiAgdmFyaWFudEluZm9PdmVycmlkZT86IGFueTtcbiAgc2hvdz86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBDYXRlZ29yeUV4dHJhY3RvcixcbiAgQ2hhdE1lc3NhZ2VWYXJpYW50LFxuICBDaGF0TWVzc2FnZUNvbmZpZyxcbiAgQ2hhdFByZXZpZXdDb25maWcsXG4gIENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZyxcbiAgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZyxcbiAgQ2hhdFByZXZpZXdTdWdnZXN0aW9uQnV0dG9uQ29uZmlnLFxuICBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnLFxuICBDaGF0UHJldmlld1YyV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld0Zvb3RlckNvbmZpZyxcbiAgQ2hhdFByZXZpZXdIZWFkZXJDb25maWcsXG4gIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1ZhcmlhbnQsXG4gIENvbG9yTWFwcGluZyxcbiAgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sXG4gIEZsb2F0aW5nRW50cnlQb2ludENvbmZpZyxcbiAgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uLFxuICBJZEV4dHJhY3RvcixcbiAgSW1hZ2VCYW5uZXJXaWRnZXRDb25maWcsXG4gIEltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICBJbnNlcnRpb25Qb2ludCxcbiAgTXVsdGlJbWFnZUNvbmZpZyxcbiAgT3JnVUlDb25maWcsXG4gIFBhZ2VDYXJkQ29uZmlnLFxuICBQYWdlQ2FyZFZhcmlhbnQsXG4gIFBhZ2VDYXJkSG92ZXJWYXJpYW50LFxuICBQYWdlQ2FyZEljb25WYXJpYW50LFxuICBQcm9kdWN0Q2FyZENvbmZpZyxcbiAgUHJvZHVjdENhcmRWYXJpYW50LFxuICBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQsXG4gIFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50LFxuICBQcm9kdWN0TGlua0hvdmVyVmFyaWFudCxcbiAgUHJvZHVjdExpbmtJY29uVmFyaWFudCxcbiAgUHJvZHVjdExpbmtWYXJpYW50LFxuICBQcm9kdWN0UmV2aWV3Q29uZmlnLFxuICBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50LFxuICBQcm9kdWN0UmV2aWV3Q29sb3JWYXJpYW50LFxuICBTZWFyY2hQcm9tcHRWYXJpYW50LFxuICBTZWFyY2hQcm9tcHRXaWRnZXRDb25maWcsXG4gIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zLFxuICBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZyxcbiAgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcsXG4gIFNvY2lhbFByb29mQ29uZmlnLFxuICBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gIFN1Z2dlc3Rpb25CdXR0b25Db25maWcsXG4gIFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50LFxuICBVUkxUZXN0LFxuICBVc2VyUXVlcnlCdXR0b25Db25maWcsXG4gIFVzZXJRdWVyeUJ1dHRvbkljb24sXG4gIFdlbGNvbWVTZWN0aW9uQ29uZmlnLFxuICBXZWxjb21lU2VjdGlvblZhcmlhbnQsXG4gIFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50LFxuICBXaWRnZXRDb25maWcsXG4gIFdyYXBwaW5nRWxlbWVudCxcbiAgU2VhcmNoQ2FyZFZhcmlhbnQsXG4gIFdpZGdldERpc3BsYXlUZXN0cyxcbiAgTm9PcFdpZGdldENvbmZpZyxcbiAgV2lkZ2V0TW91bnRpbmcsXG4gIFN0YXRpY1dpZGdldE1vdW50aW5nLFxuICBEeW5hbWljV2lkZ2V0TW91bnRpbmcsXG4gIFBEUFBhZ2VWYXJpYW50LFxuICBQTFBQYWdlVmFyaWFudCxcbiAgVmlzaXRQYWdlVmFyaWFudCxcbiAgT3RoZXJQYWdlVmFyaWFudCxcbiAgSG9tZVBhZ2VWYXJpYW50LFxuICBTZWFyY2hQYWdlVmFyaWFudCxcbiAgTnVtUm93cyxcbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFLLG9EQUFMO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQWxCRztBQXlCTCxNQUFNLFlBQVksVUFBOEIsdUJBQXVCLE1BQU07Ozs7QUN6QjdFLE1BQWEsZUFBZTtDQUMxQixTQUFTO0NBQ1Qsa0JBQWtCO0NBQ2xCLFVBQVU7Q0FDVixhQUFhO0NBQ2IsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNsQixhQUFhO0NBQ2IsT0FBTztDQUNQLGNBQWM7Q0FDZCxXQUFXO0NBQ1gsZUFBZTtDQUNmLFlBQVk7Q0FFWixnQkFBZ0I7Q0FDaEIsV0FBVztDQUNYLFNBQVM7Q0FDVCxpQkFBaUI7Q0FDakIsYUFBYTtDQUNiLFNBQVM7Q0FDVCxVQUFVO0NBQ1YsU0FBUztDQUNULGVBQWU7Q0FDZixnQkFBZ0I7Q0FDaEIsZ0JBQWdCO0NBQ2hCLG1CQUFtQjtDQUNuQixlQUFlO0NBQ2YsV0FBVztDQUNYLGtCQUFrQjtDQUNsQixpQkFBaUI7Q0FDakIsWUFBWTtDQUNaLE9BQU87Q0FDUCxjQUFjO0NBQ2QsY0FBYztDQUNkLFNBQVM7Q0FDVjs7OztBQ25CRCxNQUFhLGFBQWEsT0FDeEIsaUJBQzhCO0FBQzlCLFNBQVEsY0FBUjtFQUNFLEtBQUssYUFBYSxVQUNoQixRQUFPLE9BQU8sMkJBQXFDLE1BQ2hELFdBQVcsT0FBTyxpQkFDcEI7RUFDSCxLQUFLLGFBQWEsTUFDaEIsUUFBTyxPQUFPLHVCQUE2QixNQUN4QyxXQUFXLE9BQU8sYUFDcEI7RUFDSCxLQUFLLGFBQWEsUUFDaEIsUUFBTyxPQUFPLHlCQUFpQyxNQUM1QyxXQUFXLE9BQU8sZUFDcEI7RUFDSCxLQUFLLGFBQWEsY0FDaEIsUUFBTyxPQUFPLCtCQUE2QyxNQUN4RCxXQUFXLE9BQU8scUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLGlCQUNoQixRQUFPLE9BQU8sa0NBQW1ELE1BQzlELFdBQVcsT0FBTyx3QkFDcEI7RUFDSCxLQUFLLGFBQWEsU0FDaEIsUUFBTyxPQUFPLDBCQUFtQyxNQUM5QyxXQUFXLE9BQU8sZ0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLFdBQ2hCLFFBQU8sT0FBTyw0QkFBdUMsTUFDbEQsV0FBVyxPQUFPLGtCQUNwQjtFQUNILEtBQUssYUFBYSxXQUNoQixRQUFPLE9BQU8sNEJBQXVDLE1BQ2xELFdBQVcsT0FBTyxrQkFDcEI7RUFDSCxLQUFLLGFBQWEsWUFDaEIsUUFBTyxPQUFPLDZCQUF5QyxNQUNwRCxXQUFXLE9BQU8sbUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLGdCQUNoQixRQUFPLE9BQU8saUNBQWlELE1BQzVELFdBQVcsT0FBTyx1QkFDcEI7RUFDSCxLQUFLLGFBQWEsZUFDaEIsUUFBTyxPQUFPLGdDQUErQyxNQUMxRCxXQUFXLE9BQU8sc0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLGlCQUNoQixRQUFPLE9BQU8sa0NBQW1ELE1BQzlELFdBQVcsT0FBTyx3QkFDcEI7RUFDSCxLQUFLLGFBQWEsWUFDaEIsUUFBTyxPQUFPLDZCQUF5QyxNQUNwRCxXQUFXLE9BQU8sbUJBQ3BCO0VBR0gsS0FBSyxhQUFhLE1BQ2hCLFFBQU8sT0FBTyx1QkFBNkIsTUFDeEMsV0FBVyxPQUFPLGFBQ3BCO0VBRUgsS0FBSyxhQUFhLGFBQ2hCLFFBQU8sT0FBTyw4QkFBb0MsTUFDL0MsV0FBVyxPQUFPLGFBQ3BCO0VBR0gsS0FBSyxhQUFhLFVBQ2hCLFFBQU8sT0FBTywyQkFBcUMsTUFDaEQsV0FBVyxPQUFPLGlCQUNwQjtFQUNILEtBQUssYUFBYSxjQUNoQixRQUFPLE9BQU8sK0JBQTZDLE1BQ3hELFdBQVcsT0FBTyxxQkFDcEI7RUFDSCxLQUFLLGFBQWEsaUJBQ2hCLFFBQU8sT0FBTyxrQ0FBbUQsTUFDOUQsV0FBVyxPQUFPLHdCQUNwQjtFQUNILEtBQUssYUFBYSxhQUNoQixRQUFPLE9BQU8sOEJBQTJDLE1BQ3RELFdBQVcsT0FBTyxvQkFDcEI7RUFDSCxLQUFLLGFBQWEsYUFDaEIsUUFBTyxPQUFPLDhCQUEyQyxNQUN0RCxXQUFXLE9BQU8sb0JBQ3BCO0VBRUgsS0FBSyxhQUFhLGVBQ2hCLFFBQU8sT0FBTyxnQ0FBK0MsTUFDMUQsV0FBVyxPQUFPLHNCQUNwQjtFQUNILEtBQUssYUFBYSxVQUNoQixRQUFPLE9BQU8sMkJBQXFDLE1BQ2hELFdBQVcsT0FBTyxpQkFDcEI7RUFDSCxLQUFLLGFBQWEsUUFDaEIsUUFBTyxPQUFPLHlCQUFpQyxNQUM1QyxXQUFXLE9BQU8sZUFDcEI7RUFDSCxLQUFLLGFBQWEsZ0JBQ2hCLFFBQU8sT0FBTyxpQ0FBaUQsTUFDNUQsV0FBVyxPQUFPLHVCQUNwQjtFQUNILEtBQUssYUFBYSxZQUNoQixRQUFPLE9BQU8sNkJBQXlDLE1BQ3BELFdBQVcsT0FBTyxtQkFDcEI7RUFDSCxLQUFLLGFBQWEsUUFDaEIsUUFBTyxPQUFPLHlCQUFpQyxNQUM1QyxXQUFXLE9BQU8sZUFDcEI7RUFDSCxLQUFLLGFBQWEsU0FDaEIsUUFBTyxPQUFPLDBCQUFtQyxNQUM5QyxXQUFXLE9BQU8sZ0JBQ3BCO0VBRUgsS0FBSyxhQUFhLFFBQ2hCLFFBQU8sT0FBTyx5QkFBaUMsTUFDNUMsV0FBVyxPQUFPLGVBQ3BCO0VBQ0gsS0FBSyxhQUFhLGNBQ2hCLFFBQU8sT0FBTywrQkFBNkMsTUFDeEQsV0FBVyxPQUFPLHFCQUNwQjtFQUNILEtBQUssYUFBYSxlQUNoQixRQUFPLE9BQU8sZ0NBQStDLE1BQzFELFdBQVcsT0FBTyxzQkFDcEI7RUFDSCxLQUFLLGFBQWEsZUFDaEIsUUFBTyxPQUFPLGdDQUErQyxNQUMxRCxXQUFXLE9BQU8sc0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLGtCQUNoQixRQUFPLE9BQU8sbUNBQXFELE1BQ2hFLFdBQVcsT0FBTyx5QkFDcEI7RUFDSCxRQUNFLFFBQU8sT0FBTyx5QkFBeUIsTUFDcEMsV0FBVyxPQUFPLGVBQ3BCOzs7Ozs7QUNxVFAsSUFBSywwRUFBTDtBQUNFO0FBQ0E7O0VBRkc7QUErQkwsSUFBSyxzRUFBTDtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQW5CRztBQXdMTCxJQUFLLG9EQUFMO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0VBaEJHIn0=
@@ -0,0 +1,196 @@
1
+
2
+ //#region src/application/models/colorsConfig.ts
3
+ var ColorNames = /* @__PURE__ */ function(ColorNames$1) {
4
+ ColorNames$1["TextPrimary"] = "text-primary";
5
+ ColorNames$1["TextSecondary"] = "text-secondary";
6
+ ColorNames$1["TextAccent"] = "text-accent";
7
+ ColorNames$1["TextLink"] = "text-link";
8
+ ColorNames$1["TextLight"] = "text-light";
9
+ ColorNames$1["BackgroundPrimary"] = "background-primary";
10
+ ColorNames$1["BackgroundSecondary"] = "background-secondary";
11
+ ColorNames$1["BackgroundSecondaryDark"] = "background-secondary-dark";
12
+ ColorNames$1["BackgroundTertiary"] = "background-tertiary";
13
+ ColorNames$1["BackgroundDark"] = "background-dark";
14
+ ColorNames$1["BackgroundLight"] = "background-light";
15
+ ColorNames$1["BackgroundSaturated"] = "background-saturated";
16
+ ColorNames$1["BorderLight"] = "border-light";
17
+ ColorNames$1["BorderMedium"] = "border-medium";
18
+ ColorNames$1["BorderDark"] = "border-dark";
19
+ ColorNames$1["BorderOutline"] = "border-outline";
20
+ ColorNames$1["AccentPrimary"] = "accent-primary";
21
+ ColorNames$1["AccentSecondary"] = "accent-secondary";
22
+ return ColorNames$1;
23
+ }(ColorNames || {});
24
+ const colorVar = (color) => `var(--spiffy-colors-${color})`;
25
+
26
+ //#endregion
27
+ //#region src/application/models/orgsEnum.ts
28
+ const OrgShortName = {
29
+ Coterie: "coterie",
30
+ ForLoveAndLemons: "for-love-and-lemons",
31
+ Greenpan: "greenpan",
32
+ JordanCraig: "jordan-craig",
33
+ LarryAndSerges: "larry_and_serges",
34
+ LeapsAndRebounds: "leaps-and-rebounds",
35
+ MantraBrand: "mantra-brand",
36
+ Spanx: "spanx",
37
+ SpanxStaging: "staging-spanx",
38
+ Supergoop: "supergoop",
39
+ UniqueVintage: "unique-vintage",
40
+ JackArcher: "jack-archer",
41
+ SkinPerfection: "skin-perfection",
42
+ LookOptic: "look-optic",
43
+ FiveCbd: "five-cbd",
44
+ SnapSupplements: "snap-supplements",
45
+ Longevityrx: "longevityrx",
46
+ VenaCbd: "vena-cbd",
47
+ Medterra: "medterra",
48
+ Modells: "modells",
49
+ PressedFloral: "pressed-floral",
50
+ KindredBravely: "kindred-bravely",
51
+ WineEnthusiast: "wine-enthusiast",
52
+ HomegrownCannabis: "homegrown-cannabis",
53
+ DreamlandBaby: "dreamland-baby",
54
+ Bandolier: "bandolier",
55
+ WestonJonBoucher: "weston-jon-boucher",
56
+ KutFromTheKloth: "kut-from-the-kloth",
57
+ GrooveLife: "groove-life",
58
+ Carpe: "carpe",
59
+ WolfTactical: "wolf-tactical",
60
+ WolfMattress: "wolfmattress",
61
+ Default: "default"
62
+ };
63
+
64
+ //#endregion
65
+ //#region src/application/models/supportedOrgs.ts
66
+ const getOrgInfo = async (orgShortName) => {
67
+ switch (orgShortName) {
68
+ case OrgShortName.Bandolier: return Promise.resolve().then(() => require("./bandolier-o_-xrbOV.cjs")).then((module$1) => module$1.bandolierOrgInfo);
69
+ case OrgShortName.Carpe: return Promise.resolve().then(() => require("./carpe-CsG5jCcl.cjs")).then((module$1) => module$1.carpeOrgInfo);
70
+ case OrgShortName.Coterie: return Promise.resolve().then(() => require("./coterie-CKB93qfz.cjs")).then((module$1) => module$1.coterieOrgInfo);
71
+ case OrgShortName.DreamlandBaby: return Promise.resolve().then(() => require("./dreamlandBaby-zuvmfzfD.cjs")).then((module$1) => module$1.dreamlandBabyOrgInfo);
72
+ case OrgShortName.ForLoveAndLemons: return Promise.resolve().then(() => require("./forLoveAndLemons-Ud6mPrV3.cjs")).then((module$1) => module$1.forLoveAndLemonsOrgInfo);
73
+ case OrgShortName.Greenpan: return Promise.resolve().then(() => require("./greenpan-kPE4fJgd.cjs")).then((module$1) => module$1.greenpanOrgInfo);
74
+ case OrgShortName.GrooveLife: return Promise.resolve().then(() => require("./grooveLife-DKSEQp1F.cjs")).then((module$1) => module$1.grooveLifeOrgInfo);
75
+ case OrgShortName.JackArcher: return Promise.resolve().then(() => require("./jackArcher-B39OEIj6.cjs")).then((module$1) => module$1.jackArcherOrgInfo);
76
+ case OrgShortName.JordanCraig: return Promise.resolve().then(() => require("./jordanCraig-RwmWw-jM.cjs")).then((module$1) => module$1.jordanCraigOrgInfo);
77
+ case OrgShortName.KutFromTheKloth: return Promise.resolve().then(() => require("./kutFromTheKloth-dXRrNti0.cjs")).then((module$1) => module$1.kutFromTheKlothOrgInfo);
78
+ case OrgShortName.LarryAndSerges: return Promise.resolve().then(() => require("./larryAndSerges-COdBzOzu.cjs")).then((module$1) => module$1.larryAndSergesOrgInfo);
79
+ case OrgShortName.LeapsAndRebounds: return Promise.resolve().then(() => require("./leapsAndRebounds-BbXnqkl5.cjs")).then((module$1) => module$1.leapsAndReboundsOrgInfo);
80
+ case OrgShortName.MantraBrand: return Promise.resolve().then(() => require("./mantraBrand-C5gVm3rk.cjs")).then((module$1) => module$1.mantraBrandOrgInfo);
81
+ case OrgShortName.Spanx: return Promise.resolve().then(() => require("./spanx-BWoE4F8b.cjs")).then((module$1) => module$1.spanxOrgInfo);
82
+ case OrgShortName.SpanxStaging: return Promise.resolve().then(() => require("./spanxStaging-BfdfIug4.cjs")).then((module$1) => module$1.spanxOrgInfo);
83
+ case OrgShortName.Supergoop: return Promise.resolve().then(() => require("./supergoop-B-a4cku2.cjs")).then((module$1) => module$1.supergoopOrgInfo);
84
+ case OrgShortName.UniqueVintage: return Promise.resolve().then(() => require("./uniqueVintage-D0jzJWlo.cjs")).then((module$1) => module$1.uniqueVintageOrgInfo);
85
+ case OrgShortName.WestonJonBoucher: return Promise.resolve().then(() => require("./westonJonBoucher-BC0x1ktI.cjs")).then((module$1) => module$1.westonJonBoucherOrgInfo);
86
+ case OrgShortName.WolfMattress: return Promise.resolve().then(() => require("./wolfMattress-JssghhC-.cjs")).then((module$1) => module$1.wolfMattressOrgInfo);
87
+ case OrgShortName.WolfTactical: return Promise.resolve().then(() => require("./wolfTactical-C6exYhL7.cjs")).then((module$1) => module$1.wolfTacticalOrgInfo);
88
+ case OrgShortName.SkinPerfection: return Promise.resolve().then(() => require("./skinPerfection-BGzq9lq-.cjs")).then((module$1) => module$1.skinPerfectionOrgInfo);
89
+ case OrgShortName.LookOptic: return Promise.resolve().then(() => require("./lookOptic-DgXFGBPP.cjs")).then((module$1) => module$1.lookOpticOrgInfo);
90
+ case OrgShortName.FiveCbd: return Promise.resolve().then(() => require("./fiveCbd-DwTTwC2j.cjs")).then((module$1) => module$1.fiveCbdOrgInfo);
91
+ case OrgShortName.SnapSupplements: return Promise.resolve().then(() => require("./snapSupplements-CbbGzAgO.cjs")).then((module$1) => module$1.snapSupplementsOrgInfo);
92
+ case OrgShortName.Longevityrx: return Promise.resolve().then(() => require("./longevityrx-DdV3v26F.cjs")).then((module$1) => module$1.longevityrxOrgInfo);
93
+ case OrgShortName.VenaCbd: return Promise.resolve().then(() => require("./venaCbd-Bhhu_qUf.cjs")).then((module$1) => module$1.venaCbdOrgInfo);
94
+ case OrgShortName.Medterra: return Promise.resolve().then(() => require("./medterra-BtDpr1Hw.cjs")).then((module$1) => module$1.medterraOrgInfo);
95
+ case OrgShortName.Modells: return Promise.resolve().then(() => require("./modells-Ck5KbRFj.cjs")).then((module$1) => module$1.modellsOrgInfo);
96
+ case OrgShortName.PressedFloral: return Promise.resolve().then(() => require("./pressedFloral-CexgV-xy.cjs")).then((module$1) => module$1.pressedFloralOrgInfo);
97
+ case OrgShortName.KindredBravely: return Promise.resolve().then(() => require("./kindredBravely-D78VwL20.cjs")).then((module$1) => module$1.kindredBravelyOrgInfo);
98
+ case OrgShortName.WineEnthusiast: return Promise.resolve().then(() => require("./wineEnthusiast-BlCryfil.cjs")).then((module$1) => module$1.wineEnthusiastOrgInfo);
99
+ case OrgShortName.HomegrownCannabis: return Promise.resolve().then(() => require("./homegrownCannabis-BwIAkxuA.cjs")).then((module$1) => module$1.homegrownCannabisOrgInfo);
100
+ default: return Promise.resolve().then(() => require("./default-ZKkE5zT4.cjs")).then((module$1) => module$1.defaultOrgInfo);
101
+ }
102
+ };
103
+
104
+ //#endregion
105
+ //#region src/contexts/types.ts
106
+ var CategoryExtractorType = /* @__PURE__ */ function(CategoryExtractorType$1) {
107
+ CategoryExtractorType$1["VisitCategoryMap"] = "VisitCategoryMap";
108
+ CategoryExtractorType$1["VisitCategoryDefault"] = "VisitCategoryDefault";
109
+ return CategoryExtractorType$1;
110
+ }(CategoryExtractorType || {});
111
+ var PageVariantTestType = /* @__PURE__ */ function(PageVariantTestType$1) {
112
+ PageVariantTestType$1["ShopifyPLP"] = "ShopifyPLP";
113
+ PageVariantTestType$1["ShopifyPDP"] = "ShopifyPDP";
114
+ PageVariantTestType$1["PageCategory"] = "PageCategory";
115
+ PageVariantTestType$1["CatalogCategory"] = "CatalogCategory";
116
+ PageVariantTestType$1["TopCatalogCategory"] = "TopCatalogCategory";
117
+ PageVariantTestType$1["HasReviews"] = "HasReviews";
118
+ PageVariantTestType$1["InCollection"] = "InCollection";
119
+ PageVariantTestType$1["HasMerchantTag"] = "HasMerchantTag";
120
+ PageVariantTestType$1["FeatureGate"] = "FeatureGate";
121
+ PageVariantTestType$1["PlpId"] = "PlpId";
122
+ PageVariantTestType$1["QueryParam"] = "QueryParam";
123
+ PageVariantTestType$1["ProductId"] = "ProductId";
124
+ PageVariantTestType$1["UserHasInteracted"] = "UserHasInteracted";
125
+ PageVariantTestType$1["UserHasNotInteracted"] = "UserHasNotInteracted";
126
+ PageVariantTestType$1["isLoading"] = "isLoading";
127
+ PageVariantTestType$1["isProductComparison"] = "isProductComparison";
128
+ PageVariantTestType$1["Fallback"] = "Fallback";
129
+ PageVariantTestType$1["UrlResolver"] = "UrlResolver";
130
+ PageVariantTestType$1["Null"] = "null";
131
+ return PageVariantTestType$1;
132
+ }(PageVariantTestType || {});
133
+ var WidgetType = /* @__PURE__ */ function(WidgetType$1) {
134
+ WidgetType$1["ChatPreview"] = "ChatPreview";
135
+ WidgetType$1["SocialProofV2"] = "SocialProofV2";
136
+ WidgetType$1["ChatPreviewV2"] = "ChatPreviewV2";
137
+ WidgetType$1["ChatPreviewIsLoading"] = "ChatPreviewIsLoading";
138
+ WidgetType$1["ChatPreviewPostInteraction"] = "ChatPreviewPostInteraction";
139
+ WidgetType$1["ChatPreviewProductComparison"] = "ChatPreviewProductComparison";
140
+ WidgetType$1["SuggestionBar"] = "SuggestionBar";
141
+ WidgetType$1["SuggestionBarV2"] = "SuggestionBarV2";
142
+ WidgetType$1["ImagePromptCard"] = "ImagePromptCard";
143
+ WidgetType$1["ImageBanner"] = "ImageBanner";
144
+ WidgetType$1["SingleImagePrompt"] = "SingleImagePrompt";
145
+ WidgetType$1["SearchPrompt"] = "SearchPrompt";
146
+ WidgetType$1["SearchZeroStateEntryPoint"] = "SearchZeroStateEntryPoint";
147
+ WidgetType$1["SearchResultsEntryPoint"] = "SearchResultsEntryPoint";
148
+ WidgetType$1["SearchOverlayHost"] = "SearchOverlayHost";
149
+ WidgetType$1["NoOp"] = "NoOp";
150
+ return WidgetType$1;
151
+ }(WidgetType || {});
152
+
153
+ //#endregion
154
+ Object.defineProperty(exports, 'CategoryExtractorType', {
155
+ enumerable: true,
156
+ get: function () {
157
+ return CategoryExtractorType;
158
+ }
159
+ });
160
+ Object.defineProperty(exports, 'ColorNames', {
161
+ enumerable: true,
162
+ get: function () {
163
+ return ColorNames;
164
+ }
165
+ });
166
+ Object.defineProperty(exports, 'OrgShortName', {
167
+ enumerable: true,
168
+ get: function () {
169
+ return OrgShortName;
170
+ }
171
+ });
172
+ Object.defineProperty(exports, 'PageVariantTestType', {
173
+ enumerable: true,
174
+ get: function () {
175
+ return PageVariantTestType;
176
+ }
177
+ });
178
+ Object.defineProperty(exports, 'WidgetType', {
179
+ enumerable: true,
180
+ get: function () {
181
+ return WidgetType;
182
+ }
183
+ });
184
+ Object.defineProperty(exports, 'colorVar', {
185
+ enumerable: true,
186
+ get: function () {
187
+ return colorVar;
188
+ }
189
+ });
190
+ Object.defineProperty(exports, 'getOrgInfo', {
191
+ enumerable: true,
192
+ get: function () {
193
+ return getOrgInfo;
194
+ }
195
+ });
196
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMtQlZTeVkzSGsuY2pzIiwibmFtZXMiOlsibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL29yZ3NFbnVtLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9zdXBwb3J0ZWRPcmdzLnRzIiwiLi4vc3JjL2NvbnRleHRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImVudW0gQ29sb3JOYW1lcyB7XG4gIFRleHRQcmltYXJ5ID0gXCJ0ZXh0LXByaW1hcnlcIixcbiAgVGV4dFNlY29uZGFyeSA9IFwidGV4dC1zZWNvbmRhcnlcIixcbiAgVGV4dEFjY2VudCA9IFwidGV4dC1hY2NlbnRcIixcbiAgVGV4dExpbmsgPSBcInRleHQtbGlua1wiLFxuICBUZXh0TGlnaHQgPSBcInRleHQtbGlnaHRcIixcbiAgQmFja2dyb3VuZFByaW1hcnkgPSBcImJhY2tncm91bmQtcHJpbWFyeVwiLFxuICBCYWNrZ3JvdW5kU2Vjb25kYXJ5ID0gXCJiYWNrZ3JvdW5kLXNlY29uZGFyeVwiLFxuICBCYWNrZ3JvdW5kU2Vjb25kYXJ5RGFyayA9IFwiYmFja2dyb3VuZC1zZWNvbmRhcnktZGFya1wiLFxuICBCYWNrZ3JvdW5kVGVydGlhcnkgPSBcImJhY2tncm91bmQtdGVydGlhcnlcIixcbiAgQmFja2dyb3VuZERhcmsgPSBcImJhY2tncm91bmQtZGFya1wiLFxuICBCYWNrZ3JvdW5kTGlnaHQgPSBcImJhY2tncm91bmQtbGlnaHRcIixcbiAgQmFja2dyb3VuZFNhdHVyYXRlZCA9IFwiYmFja2dyb3VuZC1zYXR1cmF0ZWRcIixcbiAgQm9yZGVyTGlnaHQgPSBcImJvcmRlci1saWdodFwiLFxuICBCb3JkZXJNZWRpdW0gPSBcImJvcmRlci1tZWRpdW1cIixcbiAgQm9yZGVyRGFyayA9IFwiYm9yZGVyLWRhcmtcIixcbiAgQm9yZGVyT3V0bGluZSA9IFwiYm9yZGVyLW91dGxpbmVcIixcbiAgQWNjZW50UHJpbWFyeSA9IFwiYWNjZW50LXByaW1hcnlcIixcbiAgQWNjZW50U2Vjb25kYXJ5ID0gXCJhY2NlbnQtc2Vjb25kYXJ5XCIsXG59XG5cbnR5cGUgQ29sb3JNYXBwaW5nID0ge1xuICBba2V5IGluIENvbG9yTmFtZXNdOiBzdHJpbmc7XG59O1xuXG5jb25zdCBjb2xvclZhciA9IChjb2xvcjogQ29sb3JOYW1lcyk6IHN0cmluZyA9PiBgdmFyKC0tc3BpZmZ5LWNvbG9ycy0ke2NvbG9yfSlgO1xuZXhwb3J0IHsgQ29sb3JOYW1lcywgY29sb3JWYXIgfTtcbmV4cG9ydCB0eXBlIHsgQ29sb3JNYXBwaW5nIH07XG4iLCJleHBvcnQgY29uc3QgT3JnU2hvcnROYW1lID0ge1xuICBDb3RlcmllOiAnY290ZXJpZScsXG4gIEZvckxvdmVBbmRMZW1vbnM6ICdmb3ItbG92ZS1hbmQtbGVtb25zJyxcbiAgR3JlZW5wYW46ICdncmVlbnBhbicsXG4gIEpvcmRhbkNyYWlnOiAnam9yZGFuLWNyYWlnJyxcbiAgTGFycnlBbmRTZXJnZXM6ICdsYXJyeV9hbmRfc2VyZ2VzJyxcbiAgTGVhcHNBbmRSZWJvdW5kczogJ2xlYXBzLWFuZC1yZWJvdW5kcycsXG4gIE1hbnRyYUJyYW5kOiAnbWFudHJhLWJyYW5kJyxcbiAgU3Bhbng6ICdzcGFueCcsXG4gIFNwYW54U3RhZ2luZzogJ3N0YWdpbmctc3BhbngnLFxuICBTdXBlcmdvb3A6ICdzdXBlcmdvb3AnLFxuICBVbmlxdWVWaW50YWdlOiAndW5pcXVlLXZpbnRhZ2UnLFxuICBKYWNrQXJjaGVyOiAnamFjay1hcmNoZXInLFxuICAvKiAtLSBCZWxvdyBpdGVtcyBhcmUgZ2VuZXJhdGVkIGJ5IHBsb3AgLS0gKi9cbiAgU2tpblBlcmZlY3Rpb246ICdza2luLXBlcmZlY3Rpb24nLFxuICBMb29rT3B0aWM6ICdsb29rLW9wdGljJyxcbiAgRml2ZUNiZDogJ2ZpdmUtY2JkJyxcbiAgU25hcFN1cHBsZW1lbnRzOiAnc25hcC1zdXBwbGVtZW50cycsXG4gIExvbmdldml0eXJ4OiAnbG9uZ2V2aXR5cngnLFxuICBWZW5hQ2JkOiAndmVuYS1jYmQnLFxuICBNZWR0ZXJyYTogJ21lZHRlcnJhJyxcbiAgTW9kZWxsczogJ21vZGVsbHMnLFxuICBQcmVzc2VkRmxvcmFsOiAncHJlc3NlZC1mbG9yYWwnLFxuICBLaW5kcmVkQnJhdmVseTogJ2tpbmRyZWQtYnJhdmVseScsXG4gIFdpbmVFbnRodXNpYXN0OiAnd2luZS1lbnRodXNpYXN0JyxcbiAgSG9tZWdyb3duQ2FubmFiaXM6ICdob21lZ3Jvd24tY2FubmFiaXMnLFxuICBEcmVhbWxhbmRCYWJ5OiAnZHJlYW1sYW5kLWJhYnknLFxuICBCYW5kb2xpZXI6ICdiYW5kb2xpZXInLFxuICBXZXN0b25Kb25Cb3VjaGVyOiAnd2VzdG9uLWpvbi1ib3VjaGVyJyxcbiAgS3V0RnJvbVRoZUtsb3RoOiAna3V0LWZyb20tdGhlLWtsb3RoJyxcbiAgR3Jvb3ZlTGlmZTogJ2dyb292ZS1saWZlJyxcbiAgQ2FycGU6ICdjYXJwZScsXG4gIFdvbGZUYWN0aWNhbDogJ3dvbGYtdGFjdGljYWwnLFxuICBXb2xmTWF0dHJlc3M6ICd3b2xmbWF0dHJlc3MnLFxuICBEZWZhdWx0OiAnZGVmYXVsdCcsXG59IGFzIGNvbnN0O1xuIiwiaW1wb3J0IHsgT3JnU2hvcnROYW1lIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvb3Jnc0VudW1cIjtcbmltcG9ydCB7IENvbG9yTWFwcGluZywgT3JnUGFnZUNvbmZpZywgT3JnVUlDb25maWcgfSBmcm9tIFwic3JjL2NvbnRleHRzL3R5cGVzXCI7XG5cbmV4cG9ydCB7IE9yZ1Nob3J0TmFtZSB9IGZyb20gXCIuL29yZ3NFbnVtXCI7XG5cbmV4cG9ydCB0eXBlIEJhc2ljT3JnSW5mb1R5cGUgPSB7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRvbWFpbjogc3RyaW5nO1xuICBkZWZhdWx0UHJvZHVjdElkOiBzdHJpbmc7XG4gIGFsd2F5c0VuYWJsZWRNZXJjaGFudHM6IGJvb2xlYW47XG4gIG9yZ1VJQ29uZmlnOiAoKSA9PiBPcmdVSUNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgb3JnUGFnZUNvbmZpZzogKCkgPT4gT3JnUGFnZUNvbmZpZztcbiAgb3JnQ29sb3JzOiAoKSA9PiBDb2xvck1hcHBpbmcgfCB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRPcmdJbmZvID0gYXN5bmMgKFxuICBvcmdTaG9ydE5hbWU/OiBzdHJpbmdcbik6IFByb21pc2U8QmFzaWNPcmdJbmZvVHlwZT4gPT4ge1xuICBzd2l0Y2ggKG9yZ1Nob3J0TmFtZSkge1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkJhbmRvbGllcjpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2JhbmRvbGllci9iYW5kb2xpZXJcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmJhbmRvbGllck9yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuQ2FycGU6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9jYXJwZS9jYXJwZVwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUuY2FycGVPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkNvdGVyaWU6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9jb3RlcmllL2NvdGVyaWVcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmNvdGVyaWVPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkRyZWFtbGFuZEJhYnk6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9kcmVhbWxhbmRCYWJ5L2RyZWFtbGFuZEJhYnlcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmRyZWFtbGFuZEJhYnlPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkZvckxvdmVBbmRMZW1vbnM6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9mb3JMb3ZlQW5kTGVtb25zL2ZvckxvdmVBbmRMZW1vbnNcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmZvckxvdmVBbmRMZW1vbnNPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkdyZWVucGFuOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZ3JlZW5wYW4vZ3JlZW5wYW5cIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmdyZWVucGFuT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Hcm9vdmVMaWZlOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZ3Jvb3ZlTGlmZS9ncm9vdmVMaWZlXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5ncm9vdmVMaWZlT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5KYWNrQXJjaGVyOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvamFja0FyY2hlci9qYWNrQXJjaGVyXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5qYWNrQXJjaGVyT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Kb3JkYW5DcmFpZzpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2pvcmRhbkNyYWlnL2pvcmRhbkNyYWlnXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5qb3JkYW5DcmFpZ09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuS3V0RnJvbVRoZUtsb3RoOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMva3V0RnJvbVRoZUtsb3RoL2t1dEZyb21UaGVLbG90aFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUua3V0RnJvbVRoZUtsb3RoT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5MYXJyeUFuZFNlcmdlczpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2xhcnJ5QW5kU2VyZ2VzL2xhcnJ5QW5kU2VyZ2VzXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5sYXJyeUFuZFNlcmdlc09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuTGVhcHNBbmRSZWJvdW5kczpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2xlYXBzQW5kUmVib3VuZHMvbGVhcHNBbmRSZWJvdW5kc1wiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUubGVhcHNBbmRSZWJvdW5kc09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuTWFudHJhQnJhbmQ6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9tYW50cmFCcmFuZC9tYW50cmFCcmFuZFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUubWFudHJhQnJhbmRPcmdJbmZvXG4gICAgICApO1xuXG4gICAgLy8gLS0tLSBTUEFOWCAtLS0tXG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuU3Bhbng6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9zcGFueC9zcGFueFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUuc3BhbnhPcmdJbmZvXG4gICAgICApO1xuICAgIC8vIFNwYW54IHN0YWdpbmcgKGhlYWRsZXNzIHNob3BpZnkpXG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuU3BhbnhTdGFnaW5nOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvc3Bhbngvc3BhbnhTdGFnaW5nXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5zcGFueE9yZ0luZm9cbiAgICAgICk7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5TdXBlcmdvb3A6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9zdXBlcmdvb3Avc3VwZXJnb29wXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5zdXBlcmdvb3BPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLlVuaXF1ZVZpbnRhZ2U6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy91bmlxdWVWaW50YWdlL3VuaXF1ZVZpbnRhZ2VcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLnVuaXF1ZVZpbnRhZ2VPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLldlc3RvbkpvbkJvdWNoZXI6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy93ZXN0b25Kb25Cb3VjaGVyL3dlc3RvbkpvbkJvdWNoZXJcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLndlc3RvbkpvbkJvdWNoZXJPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLldvbGZNYXR0cmVzczpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL3dvbGZNYXR0cmVzcy93b2xmTWF0dHJlc3NcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLndvbGZNYXR0cmVzc09yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuV29sZlRhY3RpY2FsOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvd29sZlRhY3RpY2FsL3dvbGZUYWN0aWNhbFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUud29sZlRhY3RpY2FsT3JnSW5mb1xuICAgICAgKTtcbiAgICAvKiAtLSBCZWxvdyBpdGVtcyBhcmUgZ2VuZXJhdGVkIGJ5IHBsb3AgLS0gKi9cbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Ta2luUGVyZmVjdGlvbjpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL3NraW5QZXJmZWN0aW9uL3NraW5QZXJmZWN0aW9uXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5za2luUGVyZmVjdGlvbk9yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuTG9va09wdGljOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvbG9va09wdGljL2xvb2tPcHRpY1wiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUubG9va09wdGljT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5GaXZlQ2JkOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZml2ZUNiZC9maXZlQ2JkXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5maXZlQ2JkT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5TbmFwU3VwcGxlbWVudHM6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy9zbmFwU3VwcGxlbWVudHMvc25hcFN1cHBsZW1lbnRzXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5zbmFwU3VwcGxlbWVudHNPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkxvbmdldml0eXJ4OlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvbG9uZ2V2aXR5cngvbG9uZ2V2aXR5cnhcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmxvbmdldml0eXJ4T3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5WZW5hQ2JkOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvdmVuYUNiZC92ZW5hQ2JkXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS52ZW5hQ2JkT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5NZWR0ZXJyYTpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL21lZHRlcnJhL21lZHRlcnJhXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5tZWR0ZXJyYU9yZ0luZm9cbiAgICAgICk7XG5cbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5Nb2RlbGxzOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvbW9kZWxscy9tb2RlbGxzXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5tb2RlbGxzT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5QcmVzc2VkRmxvcmFsOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvcHJlc3NlZEZsb3JhbC9wcmVzc2VkRmxvcmFsXCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5wcmVzc2VkRmxvcmFsT3JnSW5mb1xuICAgICAgKTtcbiAgICBjYXNlIE9yZ1Nob3J0TmFtZS5LaW5kcmVkQnJhdmVseTpcbiAgICAgIHJldHVybiBpbXBvcnQoXCJzcmMvbWVyY2hhbnRzL2tpbmRyZWRCcmF2ZWx5L2tpbmRyZWRCcmF2ZWx5XCIpLnRoZW4oXG4gICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5raW5kcmVkQnJhdmVseU9yZ0luZm9cbiAgICAgICk7XG4gICAgY2FzZSBPcmdTaG9ydE5hbWUuV2luZUVudGh1c2lhc3Q6XG4gICAgICByZXR1cm4gaW1wb3J0KFwic3JjL21lcmNoYW50cy93aW5lRW50aHVzaWFzdC93aW5lRW50aHVzaWFzdFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUud2luZUVudGh1c2lhc3RPcmdJbmZvXG4gICAgICApO1xuICAgIGNhc2UgT3JnU2hvcnROYW1lLkhvbWVncm93bkNhbm5hYmlzOlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvaG9tZWdyb3duQ2FubmFiaXMvaG9tZWdyb3duQ2FubmFiaXNcIikudGhlbihcbiAgICAgICAgKG1vZHVsZSkgPT4gbW9kdWxlLmhvbWVncm93bkNhbm5hYmlzT3JnSW5mb1xuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGltcG9ydChcInNyYy9tZXJjaGFudHMvZGVmYXVsdFwiKS50aGVuKFxuICAgICAgICAobW9kdWxlKSA9PiBtb2R1bGUuZGVmYXVsdE9yZ0luZm9cbiAgICAgICk7XG4gIH1cbn07XG4iLCJpbXBvcnQgeyBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbiB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uXCI7XG5pbXBvcnQge1xuICBDb2xvck1hcHBpbmcsXG4gIENvbG9yTmFtZXMsXG4gIGNvbG9yVmFyLFxufSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdcIjtcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlc1wiO1xuaW1wb3J0IHtcbiAgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlLFxuICBDdXN0b21lclNlcnZpY2VUeXBlLFxufSBmcm9tIFwic3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZVwiO1xuaW1wb3J0IHsgR3JpZEluc2VydGlvblR5cGUgfSBmcm9tIFwic3JjL21lcmNoYW50cy9ncmlkSW5zZXJ0aW9uXCI7XG5pbXBvcnQgeyBET01JbnNlcnRpb25UeXBlIH0gZnJvbSBcInNyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGFnZVZpc2l0Q2F0ZWdvcnksXG4gIFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5LFxufSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQgeyBDaGF0U3RhdGUgfSBmcm9tIFwic3JjL3R5cGVzL2N1c3RzZXJ2aWNlLXR5cGVzXCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIH0gZnJvbSBcInNyYy90eXBlcy9zdWdnZXN0aW9uQmFyVjItdHlwZXNcIjtcbmltcG9ydCB7IFRlc3RQcm9wcyB9IGZyb20gXCJzcmMvdHlwZXMvdGVzdC10eXBlc1wiO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0c1wiO1xuXG50eXBlIFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnMgPVxuICB8IFwiYWx3YXlzXCJcbiAgfCBcImFmdGVyLWludGVyYWN0aW9uLW9uLW1vYmlsZS1hbHdheXMtZGVza3RvcFwiXG4gIHwgXCJhZnRlci1pbnRlcmFjdGlvbi1hbnl3aGVyZVwiXG4gIHwgXCJuZXZlclwiO1xuXG50eXBlIEZsb2F0aW5nRW50cnlQb2ludENvbmZpZyA9IHtcbiAgcG9zaXRpb246IFwiYm90dG9tLWxlZnRcIiB8IFwibWlkZGxlLWxlZnRcIiB8IFwibWlkZGxlLXJpZ2h0XCIgfCBcImJvdHRvbS1yaWdodFwiO1xuICBleHBhbnNpb25UZXh0Pzoge1xuICAgIHBkcDogc3RyaW5nO1xuICAgIHBscDogc3RyaW5nO1xuICB9O1xuICBtaW5pbWl6ZWRDb2xvcjogc3RyaW5nO1xuICBleHBhbmRlZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcj86IHN0cmluZztcbiAgc2hvd09wdGlvbjogU2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucztcbiAgaWNvblNWR1NyYz86IHN0cmluZztcbiAgaWNvblNpemU/OiBudW1iZXI7XG4gIGljb25TdHJva2VDb2xvcj86IHN0cmluZztcbiAgaWNvbkZpbGxDb2xvcj86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBmb250U2l6ZT86IG51bWJlcjtcbn07XG5cbnR5cGUgV2VsY29tZVNlY3Rpb25WYXJpYW50ID0gXCJzdGFuZGFyZFwiIHwgXCJvdXRsaW5lZFwiO1xuXG50eXBlIFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50ID0gXCJzdGFuZGFyZFwiIHwgXCJhY2NlbnRcIiB8IFwiYnJhbmRcIiB8IFwibGlnaHRcIjtcblxudHlwZSBXZWxjb21lU2VjdGlvbkNvbmZpZyA9IHtcbiAgdmFyaWFudDogV2VsY29tZVNlY3Rpb25WYXJpYW50O1xuICBjb2xvclZhcmlhbnQ/OiBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudDtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICAvLyBpY29uPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4+O1xuICAvKiBTZXJpYWxpemFibGUgaWNvbiBuYW1lIHRoYXQgbWFwcyB0byBhIFJlYWN0IGNvbXBvbmVudC4gUHJlZmVycmVkIG92ZXIgaWNvbiBmb3IgZGF0YWJhc2Ugc3RvcmFnZS4gKi9cbiAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gIGltYWdlU3JjPzogc3RyaW5nO1xufTtcblxudHlwZSBDaGF0UHJldmlld0NvbmZpZyA9IHtcbiAgdmFyaWFudDogXCJmbGF0XCIgfCBcImZpbGxlZFwiIHwgXCJvdXRsaW5lZFwiO1xuICBsYXJnZVByb2R1Y3RDb21wYXJpc29uPzogYm9vbGVhbjtcbiAgZmlsbGVkQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGljb25GaWxsQ29sb3I6IHN0cmluZztcbiAgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICBidXR0b25UZXh0U2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvblRleHRIb3ZlckNvbG9yPzogc3RyaW5nO1xuICBidXR0b25CYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgYnV0dG9uQmFja2dyb3VuZEhvdmVyQ29sb3I6IHN0cmluZztcbiAgYnV0dG9uQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvbkJvcmRlckhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gIGNvcGllczogeyBwZHA6IHN0cmluZ1tdOyBwbHA6IHN0cmluZ1tdIH07XG4gIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM/OiB7IHBkcDogc3RyaW5nW107IHBscDogc3RyaW5nW10gfTtcbiAgc3RhdGljUExQSW1hZ2VzPzogc3RyaW5nW107XG4gIGZvb3RlckNvbmZpZz86IENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnO1xuICBoZWFkZXJDb25maWc/OiBDaGF0UHJldmlld0hlYWRlckNvbmZpZztcbiAgdG9wTWFyZ2luPzogbnVtYmVyO1xufTtcblxudHlwZSBDaGF0UHJldmlld0hlYWRlckNvbmZpZyA9IHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGltYWdlU3JjPzogc3RyaW5nO1xuICBpbWFnZUhlaWdodD86IG51bWJlcjtcbiAgc3BhcmtsZXNDb2xvcj86IHN0cmluZzsgLy8gdXNlZCBieTogc3BhbngsIHVuaXF1ZVZpbnRhZ2UsIGRyZWFtbGFuZEJhYnlcbiAgZm9udFNpemU/OiBzdHJpbmc7XG4gIGljb25XaWR0aD86IHN0cmluZztcbiAgaWNvbkhlaWdodD86IHN0cmluZztcbn07XG5cbmludGVyZmFjZSBDaGF0UHJldmlld0Zvb3RlckNvbmZpZyB7XG4gIGhhc0ZhZGU/OiBib29sZWFuOyAvLyB1c2VkIGJ5OiBzcGFueCwgdW5pcXVlVmludGFnZVxuICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudD86IFwiZGFya1wiIHwgXCJsaWdodFwiIHwgXCJvdXRsaW5lZFwiO1xuICBzdWdnZXN0aW9uc0JhY2tncm91bmQ/OiBzdHJpbmc7IC8vIHVzZWQgYnk6IGNhcmJhaG5cbiAgcmVwbHlCdXR0b25JY29uPzpcbiAgICB8IFwic2VuZFwiXG4gICAgfCBcIm1hZ25pZnlpbmdHbGFzc1wiXG4gICAgfCBcInRoaW5NYWduaWZ5aW5nR2xhc3NcIlxuICAgIHwgXCJzZWFyY2hJY29uXCI7XG4gIHJlcGx5QnV0dG9uVGV4dD86IHN0cmluZztcbiAgcmVwbHlJbnB1dEhhc1NoYWRvdz86IGJvb2xlYW47IC8vIHVzZWQgYnk6IHNwYW54XG4gIHJlcGx5SW5wdXRIYXNCb3JkZXI/OiBib29sZWFuOyAvLyB1c2VkIGJ5OiBzcGFueFxuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7IC8vIHVzZWQgYnkgc3BhbngsIHR1c2hiYWJ5LCB3aWxsIG5lZWQgY3VzdG9tIENTUyB3aGVuIHN3aXRjaGluZyBvdmVyXG59XG5cbnR5cGUgUHJvZHVjdFJldmlld1N0eWxlVmFyaWFudCA9IFwic3RhbmRhcmRcIiB8IFwiYm9yZGVyZWRcIjtcblxudHlwZSBQcm9kdWN0UmV2aWV3Q29sb3JWYXJpYW50ID0gXCJuZXV0cmFsXCIgfCBcImJyYW5kXCIgfCBcInByZW1pdW1cIjtcblxuaW50ZXJmYWNlIFByb2R1Y3RSZXZpZXdDb25maWcge1xuICBzdHlsZVZhcmlhbnQ6IFByb2R1Y3RSZXZpZXdTdHlsZVZhcmlhbnQ7XG4gIGNvbG9yVmFyaWFudDogUHJvZHVjdFJldmlld0NvbG9yVmFyaWFudDtcbiAgdmVyaWZpZWRCdXllclRpdGxlOiBzdHJpbmc7XG4gIGluY2VudGl2aXplZFJldmlld0ZsYWc/OiBib29sZWFuO1xufVxuXG50eXBlIFBhZ2VDYXJkVmFyaWFudCA9IFwiZmlsbGVkXCIgfCBcIm91dGxpbmVkXCIgfCBcIm1pbmltYWxcIjtcblxudHlwZSBQYWdlQ2FyZEhvdmVyVmFyaWFudCA9IFwibm9uZVwiIHwgXCJzaGFkb3dcIiB8IFwibGlmdFwiO1xuXG50eXBlIFBhZ2VDYXJkSWNvblZhcmlhbnQgPSBcInByaW1hcnlcIiB8IFwiYWNjZW50XCIgfCBcImJhY2tncm91bmRcIiB8IFwibm9uZVwiO1xuXG50eXBlIFBhZ2VDYXJkQ29uZmlnID0ge1xuICB2YXJpYW50OiBQYWdlQ2FyZFZhcmlhbnQ7XG4gIGhvdmVyVmFyaWFudDogUGFnZUNhcmRIb3ZlclZhcmlhbnQ7XG4gIGljb25WYXJpYW50OiBQYWdlQ2FyZEljb25WYXJpYW50O1xufTtcblxudHlwZSBQcm9kdWN0Q2FyZFZhcmlhbnQgPVxuICB8IFwiZmlsbGVkXCJcbiAgfCBcImJvcmRlcmVkXCJcbiAgfCBcIm1pbmltYWxcIlxuICB8IFwidHJhbnNwYXJlbnRCb3JkZXJlZFwiO1xuXG50eXBlIFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50ID0gXCJiYWNrZ3JvdW5kRGFya1wiIHwgXCJub25lXCI7XG5cbnR5cGUgUHJvZHVjdENhcmRMYXlvdXRWYXJpYW50ID0gXCJub3JtYWxcIiB8IFwidGFsbFwiIHwgXCJzcXVhcmVcIjtcblxuaW50ZXJmYWNlIFByb2R1Y3RDYXJkQ29uZmlnIHtcbiAgdmFyaWFudDogUHJvZHVjdENhcmRWYXJpYW50O1xuICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50O1xuICBsYXlvdXRWYXJpYW50OiBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQ7XG4gIHByaWNlUHJlZml4Pzogc3RyaW5nO1xufVxuXG50eXBlIENTU3dpdGNoQ29uZmlnID0ge1xuICB2YXJpYW50OiBcImF0dGFjaGVkXCIgfCBcImRldGFjaGVkXCI7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBib3JkZXJDb2xvcjogc3RyaW5nO1xuICBzZWxlY3RlZFRleHRDb2xvcjogc3RyaW5nO1xuICBzZWxlY3RlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgdW5zZWxlY3RlZFRleHRDb2xvcjogc3RyaW5nO1xuICB1bnNlbGVjdGVkQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBzdXBwb3J0VGl0bGU/OiBzdHJpbmc7XG4gIHNwaWZmeVRpdGxlPzogc3RyaW5nO1xuICBzcGlmZnlUaXRsZUhhc0xvZ28/OiBib29sZWFuO1xufTtcblxudHlwZSBDaGF0SGVhZGVyQ29uZmlnID0ge1xuICBjb2xsYXBzZWRDb2xvcjogc3RyaW5nO1xuICBleHBhbmRlZENvbG9yOiBzdHJpbmc7XG4gIGNoZXZyb25Db2xvcjogc3RyaW5nO1xuICBpbWFnZVNyYz86IHN0cmluZztcbiAgaWNvbj86IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PFJlYWN0LlNWR1Byb3BzPFNWR1NWR0VsZW1lbnQ+PjtcbiAgY2xvc2VJY29uPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4+O1xuICBib3JkZXJCb3R0b20/OiBzdHJpbmc7XG4gIGhlYWRlckJhckhlaWdodFBhcnRpYWxWaWV3OiBudW1iZXI7XG4gIGhlYWRlckJhckhlaWdodEZ1bGxWaWV3OiBudW1iZXI7XG4gIGN1c3RvbWVyU3VwcG9ydFN3aXRjaENvbmZpZz86IENTU3dpdGNoQ29uZmlnO1xufTtcblxudHlwZSBTaW1wbGVDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgaW50ZWdyYXRpb25Nb2RlOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGU7XG4gIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICB1c2VVbmlmaWVkQnV0dG9uPzogYm9vbGVhbjtcbiAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG59O1xuXG50eXBlIEZ1bGxDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IHtcbiAgaW50ZWdyYXRpb25Nb2RlOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGU7XG4gIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICB1c2VVbmlmaWVkQnV0dG9uPzogYm9vbGVhbjtcbiAgY2hhdEVuYWJsZWREdXJpbmdCdXNpbmVzc0hvdXJzPzogYm9vbGVhbjtcbiAgc2hvd05hbWVJbnB1dD86IGJvb2xlYW47XG4gIGZvcm1BaU5hbWU/OiBzdHJpbmc7XG4gIHdlbGNvbWVUaXRsZTogc3RyaW5nO1xuICB3ZWxjb21lRGVzY3JpcHRpb246IHN0cmluZztcbiAgc2hvd1dlbGNvbWVPbkZvcm0/OiBib29sZWFuO1xuICBjb250YWN0U3ViamVjdE9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgZ2V0Q3VzdG9tV2FpdGluZ01lc3NhZ2U/OiAobmFtZT86IHN0cmluZykgPT4gc3RyaW5nO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzTWVzc2FnZT86IHN0cmluZztcbiAgd2l0aGluQnVzaW5lc3NIb3Vyc1dhaXRpbmdNZXNzYWdlPzogc3RyaW5nO1xuICBvdXRzaWRlQnVzaW5lc3NIb3Vyc01lc3NhZ2U/OiBzdHJpbmc7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzV2FpdGluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gIHdpdGhpbkJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZT86IHN0cmluZztcbiAgb3V0c2lkZUJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZT86IHN0cmluZztcbiAgc3VnZ2VzdGVkQUlRdWVzdGlvbnM/OiBzdHJpbmdbXTtcbiAgYnVzaW5lc3NIb3Vyc1BvbGxpbmc/OiBudW1iZXI7XG4gIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgKi9cbiAgYnVzaW5lc3NIb3Vyc1N0YXJ0VVRDPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBCRS5cbiAgICovXG4gIGJ1c2luZXNzSG91cnNFbmRVVEM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgKi9cbiAgYnVzaW5lc3NIb3Vyc1RpbWV6b25lPzogc3RyaW5nO1xuXG4gIHNob3dBSVN1Z2dlc3Rpb25zV2l0aGluQnVzaW5lc3NIb3Vycz86IGJvb2xlYW47XG4gIHdhaXRpbmdNZXNzYWdlUG9zaXRpb24/OiBcIkJFRk9SRV9NRVNTQUdFU1wiIHwgXCJBRlRFUl9NRVNTQUdFU1wiO1xuICBsZWdhbE1lc3NhZ2U/OiBzdHJpbmc7XG4gIHdpdGhpbkJ1c2luZXNzSG91cnNJbml0aWFsU3RhdGU/OiBDaGF0U3RhdGU7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzSW5pdGlhbFN0YXRlPzogQ2hhdFN0YXRlO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzQnV0dG9udGV4dD86IHN0cmluZztcbiAgb3V0c2lkZUJ1c2luZXNzSG91cnNCdXR0b250ZXh0Pzogc3RyaW5nO1xuICByZW9wZW5DaGF0TWVzc2FnZTogc3RyaW5nO1xufTtcblxudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9XG4gIHwgU2ltcGxlQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25cbiAgfCBGdWxsQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG5cbnR5cGUgQ29udmVyc2F0aW9uYWxTZWFjaCA9IHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHJlcGx5SW5wdXQ/OiBSZXBseUlucHV0Q29uZmlnO1xuICBzdWdnZXN0aW9ucz86IHN0cmluZ1tdO1xuICBlbnRyeXBvaW50QmdDb2xvcj86IHN0cmluZztcbiAgZW50cnlwb2ludFRleHRDb2xvcj86IHN0cmluZztcbiAgZW50cnlwb2ludEJ0bkNvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50QnRuVGV4dENvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50QnRuQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRDb250YWluZXI/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRUcmlnZ2VyPzogc3RyaW5nO1xuICBwcm9kdWN0R3JpZENvbnRhaW5lcj86IHN0cmluZztcbiAgZ2VuZXJhbFNlYXJjaEJ0bj86IHN0cmluZztcbiAgcGFnZUNvbnRlbnQ/OiBzdHJpbmc7XG4gIHNlYXJjaENvbnRlbnQ/OiBzdHJpbmc7XG4gIHNvcnRpbmdUaXRsZT86IHN0cmluZztcbiAgc2VsZWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gIHNvcnRpbmdGb250Pzogc3RyaW5nO1xuICBvcHRpb25zRm9udD86IHN0cmluZztcbiAgc29ydGluZ0J1dHRvblRleHQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIENoYXRNZXNzYWdlVmFyaWFudCA9IFwic3RhbmRhcmRcIiB8IFwicHJlbWl1bVwiIHwgXCJhY2NlbnRcIjtcblxuaW50ZXJmYWNlIENoYXRNZXNzYWdlQ29uZmlnIHtcbiAgYXNzaXN0YW50Q2hhdFRpdGxlOiBzdHJpbmc7XG4gIHZhcmlhbnQ6IENoYXRNZXNzYWdlVmFyaWFudDtcbiAgcHJvZHVjdExpbms6IHtcbiAgICB2YXJpYW50OiBQcm9kdWN0TGlua1ZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBQcm9kdWN0TGlua0hvdmVyVmFyaWFudDtcbiAgICBpY29uVmFyaWFudDogUHJvZHVjdExpbmtJY29uVmFyaWFudDtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFJlcGx5SW5wdXRDb25maWcge1xuICAvLyBUT0RPIGNvbnNpZGVyIG1ha2luZyB0aGlzIGEgbnVtYmVyXG4gIHNpemU/OiBcIm1kXCIgfCBcImxnXCI7XG4gIHNlbmRJY29uOiBcImFycm93VXBcIiB8IFwic2VuZFwiIHwgXCJzZWFyY2hcIjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQYXJ0aWFsVmlld0NvbmZpZyB7XG4gIC8vIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBwYXJ0aWFsIHZpZXcgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzY3JlZW4gaGVpZ2h0XG4gIG1heEhlaWdodDogbnVtYmVyO1xuICBib3JkZXJSYWRpdXM/OiBzdHJpbmc7XG59XG5cbnR5cGUgUHJvZHVjdExpbmtJY29uVmFyaWFudCA9XG4gIHwgXCJhY2NlbnRQcmltYXJ5XCJcbiAgfCBcImJhY2tncm91bmRQcmltYXJ5XCJcbiAgfCBcImJhY2tncm91bmRQcmltYXJ5RGFya1wiXG4gIHwgXCJib3JkZXJMaWdodFwiXG4gIHwgXCJiYWNrZ3JvdW5kU2F0dXJhdGVkXCI7XG5cbnR5cGUgUHJvZHVjdExpbmtWYXJpYW50ID0gXCJ0ZXh0TGlua1wiO1xuXG50eXBlIFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50ID0gXCJiYWNrZ3JvdW5kRGFya1wiO1xuXG50eXBlIFNlYXJjaENhcmRWYXJpYW50ID1cbiAgfCBcImJhY2tncm91bmRQcmltYXJ5XCJcbiAgfCBcImJhY2tncm91bmRTZWNvbmRhcnlcIlxuICB8IFwiYmFja2dyb3VuZFNlY29uZGFyeURhcmtcIlxuICB8IFwiYmFja2dyb3VuZExpZ2h0XCJcbiAgfCBcImJhY2tncm91bmRTYXR1cmF0ZWRcIjtcblxudHlwZSBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudCA9XG4gIHwgXCJvdXRsaW5lZFwiXG4gIHwgXCJvdXRsaW5lZExpZ2h0XCJcbiAgfCBcInByaW1hcnlcIlxuICB8IFwic2Vjb25kYXJ5XCJcbiAgfCBcInRlcnRpYXJ5XCJcbiAgfCBcImRhcmtcIlxuICB8IFwiZGFya0FjY2VudFwiXG4gIHwgXCJkYXJrUHJpbWFyeVwiXG4gIHwgXCJzZWNvbmRhcnlEYXJrXCJcbiAgfCBcInNlY29uZGFyeUFjY2VudFwiXG4gIHwgXCJ0cmFuc3BhcmVudFwiXG4gIHwgXCJ0cmFuc3BhcmVudERhcmtcIlxuICB8IFwibGlnaHREYXJrXCI7XG5cbmludGVyZmFjZSBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnIHtcbiAgdmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBob3ZlclZhcmlhbnQ/OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgYW5zd2VyVmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBib3JkZXJSYWRpdXM/OiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCI7XG59XG5cbnR5cGUgTnVtUm93cyA9IFwiZGVmYXVsdFwiIHwgXCJhbHdheXNPbmVSb3dcIiB8IFwiYWx3YXlzVHdvUm93c1wiIHwgXCJ0d29Sb3dzT25Nb2JpbGVcIjtcblxuaW50ZXJmYWNlIEFscGhhYmV0aWNGaWx0ZXJTb3J0aW5nIHtcbiAgdHlwZTogXCJhbHBoYWJldGljXCI7XG59XG5pbnRlcmZhY2UgUHJvZHVjdENvdW50RmlsdGVyU29ydGluZyB7XG4gIHR5cGU6IFwicHJvZHVjdENvdW50XCI7XG59XG5pbnRlcmZhY2UgQ3VzdG9tRmlsdGVyU29ydGluZyB7XG4gIHR5cGU6IFwiY3VzdG9tXCI7XG4gIG1hcDogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn1cblxudHlwZSBGaWx0ZXJTb3J0aW5nID1cbiAgfCBBbHBoYWJldGljRmlsdGVyU29ydGluZ1xuICB8IFByb2R1Y3RDb3VudEZpbHRlclNvcnRpbmdcbiAgfCBDdXN0b21GaWx0ZXJTb3J0aW5nO1xuXG5pbnRlcmZhY2UgQmFzZUZpbHRlckNvbmZpZyB7XG4gIGZpbHRlcklkOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgRHluYW1pY0ZpbHRlckNvbmZpZyBleHRlbmRzIEJhc2VGaWx0ZXJDb25maWcge1xuICB0eXBlOiBcImR5bmFtaWNcIjtcbiAgYXR0cmlidXRlOiBzdHJpbmc7XG4gIHNvcnRpbmc6IEZpbHRlclNvcnRpbmc7XG59XG5cbmludGVyZmFjZSBQcmljZUZpbHRlckNvbmZpZyBleHRlbmRzIEJhc2VGaWx0ZXJDb25maWcge1xuICB0eXBlOiBcInByaWNlXCI7XG4gIGJ1Y2tldFNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyQXR0cmlidXRlID0gRHluYW1pY0ZpbHRlckNvbmZpZyB8IFByaWNlRmlsdGVyQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBTZWFyY2haZXJvU3RhdGVWYXJpYW50ID1cbiAgfCBcImJhY2tncm91bmRUZXJ0aWFyeVwiXG4gIHwgXCJiYWNrZ3JvdW5kRGFya1wiXG4gIHwgXCJiYWNrZ3JvdW5kUHJpbWFyeVwiO1xuZXhwb3J0IHR5cGUgU2VhcmNoWmVyb1N0YXRlTGF5b3V0ID0gXCJpbnB1dFwiIHwgXCJpY29uXCI7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaElucHV0VmFyaWFudCA9IFwic3RhbmRhcmRcIjtcblxuZXhwb3J0IHR5cGUgU2VhcmNoSWNvblZhcmlhbnQgPSBcInRoaW5cIiB8IFwiYm9sZFwiO1xuXG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudCA9IFwiZGFya0J1dHRvblwiIHwgXCJsaWdodEJ1dHRvblwiO1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0R3JpZFZhcmlhbnQgPSBcInN0YW5kYXJkXCIgfCBcInNxdWFyZVwiO1xuXG50eXBlIFVzZXJRdWVyeUJ1dHRvbkljb24gPVxuICB8IFwibWFnbmlmeWluZ0dsYXNzXCJcbiAgfCBcInNlbmRcIlxuICB8IFwibWFnbmlmeWluZ0dsYXNzVGhpblwiXG4gIHwgXCJzZW5kQXJyb3dcIlxuICB8IFwic2VhcmNoSWNvblwiO1xuXG5pbnRlcmZhY2UgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnIHtcbiAgdmFyaWFudD86IFwiYm94XCIgfCBcInVuZGVybGluZUxpZ2h0XCIgfCBcInVuZGVybGluZURhcmtcIjtcbiAgcGxhY2Vob2xkZXJUZXh0Pzogc3RyaW5nO1xuICBpY29uOiBVc2VyUXVlcnlCdXR0b25JY29uO1xufVxuXG4vLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgdG9wLWxldmVsIHdpZGdldCBjb25maWdcbmludGVyZmFjZSBUZXJtc0FuZENvbmRpdGlvbnNDb25maWcge1xuICBjb3B5OiBzdHJpbmc7XG4gIGxpbms6IHN0cmluZztcbiAgbGlua1RleHQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE1lcmNoYW50VmFyaWFudFNldHRpbmdzIHtcbiAgZHluYW1pY1ZhcmlhbnRzOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjsgLy8gVGhpcyBmZWF0dXJlIHdpbGwgZW5hYmxlIGR5bmFtaWMgdmFyaWFudHMgZm9yIHRoZSBtZXJjaGFudC4gVXNlZnVsIGZvciBTUEEnc1xuICAgIHJlZnJlc2hJbnRlcnZhbD86IG51bWJlcjsgLy8gVGhlIGludGVydmFsIGluIG1pbGxpc2Vjb25kcyB0byBjaGVjayBmb3IgY2hhbmdlcyBpbiB0aGUgVVJMXG4gIH07XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ0NoYXRDb25maWcge1xuICBlbmFibGVXYXRlcm1hcms6IGJvb2xlYW47XG4gIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlPzogYm9vbGVhbjtcbiAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgdGVybXNBbmRDb25kaXRpb25zQ29uZmlnPzogVGVybXNBbmRDb25kaXRpb25zQ29uZmlnO1xuXG4gIC8vIEZvb3RlciBjb25maWdcbiAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZz86IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHJlcGx5SW5wdXRDb25maWc6IFJlcGx5SW5wdXRDb25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBlbmFibGVHbG9iYWxTZWFyY2g6IGJvb2xlYW47XG4gIHNlYXJjaEZpbHRlckNvbmZpZzogRmlsdGVyQXR0cmlidXRlW107XG4gIHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybD86IHN0cmluZztcbiAgYWRkaXRpdmVEeW5hbWljRmlsdGVycz86IGJvb2xlYW47XG59XG5cbnR5cGUgT3JnVUlDb25maWcgPSB7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgZmxvYXRpbmdFbnRyeXBvaW50Q29uZmlnPzogRmxvYXRpbmdFbnRyeVBvaW50Q29uZmlnO1xuICAvLyBEZXByZWNhdGVkIC0gcmVtb3ZlIHdpdGggQ2hhdFByZXZpZXcgcmV3cml0ZVxuICBjaGF0UHJldmlld0NvbmZpZz86IENoYXRQcmV2aWV3Q29uZmlnO1xuXG4gIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjtcbiAgLy8gRGVwcmVjYXRlZCAtIHJlbW92ZSB3aGVuIEdsb2JhbCBTZWFyY2ggaXMgZnVsbHkgbGF1bmNoZWRcbiAgY29udmVyc2F0aW9uYWxTZWFyY2g/OiBDb252ZXJzYXRpb25hbFNlYWNoO1xuXG4gIG1lcmNoYW50T3ZlcnJpZGVDc3M/OiBzdHJpbmc7XG5cbiAgLy8gRGVwcmVjYXRlZCBUT0RPOiBSZW1vdmUgdGhpcyBkZXByZWNhdGVkIHZhbHVlIHdoZW4gR3Jvb3ZlIENYIGhhcyBwcm9wZXIgdW5pZmllZCBidXR0b24gc3VwcG9ydFxuICAvLyBzZWxlY3RvcnMgZm9yIGVsZW1lbnRzIHRoYXQgc2hvdWxkIGJlIGhpZGRlbiB3aGVuIHRoZSBjaGF0IGlzIG9wZW5cbiAgLy8gZS5nLiBDUyB3aWRnZXRzIHdpdGggbWF4IHotaW5kZXggKFwiZGl2W2lkKj0nY3MtY29udGFpbmVyJ11cIilcbiAgaGlkZGVuRWxlbWVudFNlbGVjdG9ycz86IHN0cmluZ1tdO1xuXG4gIG1lcmNoYW50VmFyaWFudFNldHRpbmdzPzogTWVyY2hhbnRWYXJpYW50U2V0dGluZ3M7XG4gIC8vIFRPRE86IE1pZ3JhdGUgYWxsIGZsb2F0aW5nIGNoYXQgY29uZmlnIGludG8gdGhpcyB0b3AtbGV2ZWwga2V5XG4gIC8vXG4gIGZsb2F0aW5nQ2hhdENvbmZpZzogRmxvYXRpbmdDaGF0Q29uZmlnO1xuXG4gIC8vIENvbnRhaW4gYWxsIHNlYXJjaCBjb25maWcgaGVyZVxuICBzZWFyY2hDb25maWc6IFNlYXJjaENvbmZpZztcbiAgLy8gVE9ETzogTW92ZSB0aGVzZSBpbnRvIEZsb2F0aW5nQ2hhdENvbmZpZ1xuICAvLyBDaGF0IEhlYWRlciByZWxhdGVkIHZhbHVlc1xuICBjaGF0SGVhZGVyOiBDaGF0SGVhZGVyQ29uZmlnO1xuICBzdGlja3lBZ2VudFN3aXRjaFN1Z2dlc3Rpb24/OiBib29sZWFuO1xuICBwYXJ0aWFsVmlld0NvbmZpZzogUGFydGlhbFZpZXdDb25maWc7XG4gIHdlbGNvbWVTZWN0aW9uQ29uZmlnPzogV2VsY29tZVNlY3Rpb25Db25maWc7XG4gIC8vIERpZmZlcmVudCByZXNwb25zZSB2YWx1ZXNcbiAgcHJvZHVjdENhcmRDb25maWc/OiBQcm9kdWN0Q2FyZENvbmZpZztcbiAgcHJvZHVjdFJldmlld0NvbmZpZz86IFByb2R1Y3RSZXZpZXdDb25maWc7XG4gIHBhZ2VDYXJkQ29uZmlnPzogUGFnZUNhcmRDb25maWc7XG4gIGNoYXRNZXNzYWdlQ29uZmlnOiBDaGF0TWVzc2FnZUNvbmZpZztcbn07XG5cbnR5cGUgSW5zZXJ0aW9uUG9pbnQgPSB7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIC8vIHRoaXMgaXMgdGhlIGluZGV4IG9mIHRoZSB0YXJnZXQgZWxlbWVudCwgMCBpZiBtaXNzaW5nXG4gIHNlbGVjdGlvbkluZGV4PzogbnVtYmVyO1xuICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlO1xufTtcblxudHlwZSBVUkxUZXN0ID0gXCJzaG9waWZ5XCIgfCBcIm51bGxcIjtcblxudHlwZSBJZEV4dHJhY3RvciA9XG4gIHwgXCJzaG9waWZ5LXByb2R1Y3QtaWRcIlxuICB8IFwic2hvcGlmeS1jb2xsZWN0aW9uLWlkXCJcbiAgfCBcInNob3BpZnktcHJvZHVjdC12YXJpYW50LWlkXCJcbiAgfCBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCJcbiAgfCBcInVybC1yZXNvbHZlci1wbHAtaWRcIlxuICB8IFwibnVsbFwiO1xuXG4vLyBUaGlzIGNvbnRhaW5zIGEgbWFwIGJldHdlZW4gUGFnZVZpc2l0Q2F0ZWdvcnkgYW5kIGEgbGlzdCBvZiBVUkwncyB0aGF0IGFyZSBjbGFzc2lmaWVkIGFzIHRoZSB2YWx1ZVxuZW51bSBDYXRlZ29yeUV4dHJhY3RvclR5cGUge1xuICBWaXNpdENhdGVnb3J5TWFwID0gXCJWaXNpdENhdGVnb3J5TWFwXCIsXG4gIFZpc2l0Q2F0ZWdvcnlEZWZhdWx0ID0gXCJWaXNpdENhdGVnb3J5RGVmYXVsdFwiLFxufVxuXG5pbnRlcmZhY2UgQmFzZUNhdGVnb3J5RXh0cmFjdG9yPFQgZXh0ZW5kcyBDYXRlZ29yeUV4dHJhY3RvclR5cGU+IHtcbiAgdHlwZTogVDtcbn1cblxuLy8gVGhpcyBtYXAgYmV0d2VlbnMgYSBjYXRlZ29yeSBhbmQgYSBsaXN0IG9mIHVybCBwYXR0ZXJuc1xuaW50ZXJmYWNlIFZpc2l0Q2F0ZWdvcnlNYXBcbiAgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlNYXA+IHtcbiAgbWFwOiB7XG4gICAgW2tleSBpbiBQYWdlVmlzaXRDYXRlZ29yeV0/OiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiBhIGhhcmQtY29kZWQgZGVmYXVsdCBQYWdlVmlzaXRDYXRlZ29yeS4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBmYWxsYmFjayBwYWdlIHR5cGVzXG5pbnRlcmZhY2UgVmlzaXRDYXRlZ29yeURlZmF1bHRcbiAgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlEZWZhdWx0PiB7XG4gIHZhbHVlOiBQYWdlVmlzaXRDYXRlZ29yeTtcbn1cblxudHlwZSBDYXRlZ29yeUV4dHJhY3RvciA9IFZpc2l0Q2F0ZWdvcnlNYXAgfCBWaXNpdENhdGVnb3J5RGVmYXVsdDtcblxudHlwZSBXcmFwcGluZ0VsZW1lbnQgPSB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBlbGVtZW50OiBzdHJpbmc7XG4gIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGU7XG59O1xuXG5lbnVtIFBhZ2VWYXJpYW50VGVzdFR5cGUge1xuICBTaG9waWZ5UExQID0gXCJTaG9waWZ5UExQXCIsXG4gIFNob3BpZnlQRFAgPSBcIlNob3BpZnlQRFBcIixcbiAgUGFnZUNhdGVnb3J5ID0gXCJQYWdlQ2F0ZWdvcnlcIixcbiAgQ2F0YWxvZ0NhdGVnb3J5ID0gXCJDYXRhbG9nQ2F0ZWdvcnlcIixcbiAgVG9wQ2F0YWxvZ0NhdGVnb3J5ID0gXCJUb3BDYXRhbG9nQ2F0ZWdvcnlcIixcbiAgSGFzUmV2aWV3cyA9IFwiSGFzUmV2aWV3c1wiLFxuICBJbkNvbGxlY3Rpb24gPSBcIkluQ29sbGVjdGlvblwiLFxuICBIYXNNZXJjaGFudFRhZyA9IFwiSGFzTWVyY2hhbnRUYWdcIixcbiAgRmVhdHVyZUdhdGUgPSBcIkZlYXR1cmVHYXRlXCIsXG4gIFBscElkID0gXCJQbHBJZFwiLFxuICBRdWVyeVBhcmFtID0gXCJRdWVyeVBhcmFtXCIsXG4gIFByb2R1Y3RJZCA9IFwiUHJvZHVjdElkXCIsXG4gIFVzZXJIYXNJbnRlcmFjdGVkID0gXCJVc2VySGFzSW50ZXJhY3RlZFwiLFxuICBVc2VySGFzTm90SW50ZXJhY3RlZCA9IFwiVXNlckhhc05vdEludGVyYWN0ZWRcIixcbiAgaXNMb2FkaW5nID0gXCJpc0xvYWRpbmdcIixcbiAgaXNQcm9kdWN0Q29tcGFyaXNvbiA9IFwiaXNQcm9kdWN0Q29tcGFyaXNvblwiLFxuICBGYWxsYmFjayA9IFwiRmFsbGJhY2tcIixcbiAgVXJsUmVzb2x2ZXIgPSBcIlVybFJlc29sdmVyXCIsXG4gIE51bGwgPSBcIm51bGxcIixcbn1cblxuaW50ZXJmYWNlIEJhc2VQYWdlVmFyaWFudFRlc3Q8VCBleHRlbmRzIFBhZ2VWYXJpYW50VGVzdFR5cGU+IHtcbiAgdGVzdFR5cGU6IFQ7XG59XG5cbmludGVyZmFjZSBUb3BDYXRhbG9nQ2F0ZWdvcnlcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVG9wQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIHRvcENhdGVnb3J5OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIENhdGFsb2dDYXRlZ29yeVRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeTtcbn1cblxuaW50ZXJmYWNlIEhhc1Jldmlld3NUZXN0XG4gIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3M+IHtcbiAgcmV2aWV3TWluaW11bT86IG51bWJlcjtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZSBwcm9kdWN0IGlzIGluIGFueSBvZiB0aGUgbGlzdGVkIGNvbGxlY3Rpb25zXG5pbnRlcmZhY2UgSW5Db2xsZWN0aW9uVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24+IHtcbiAgY29sbGVjdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vLyBUaGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlIHByb2R1Y3QgaGFzIGFueSBvZiB0aGUgbGlzdGVkIG1lcmNoYW50IHRhZ3NcbmludGVyZmFjZSBIYXNNZXJjaGFudFRhZ1Rlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzTWVyY2hhbnRUYWc+IHtcbiAgbWVyY2hhbnRUYWdzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFNob3BpZnlQTFBVUkxUZXN0XG4gIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFA+IHt9XG5cbmludGVyZmFjZSBTaG9waWZ5UERQVVJMVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQPiB7fVxuXG5pbnRlcmZhY2UgUGFnZUNhdGVnb3J5VGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QYWdlQ2F0ZWdvcnk+IHtcbiAgZXh0cmFjdG9yOiBDYXRlZ29yeUV4dHJhY3Rvcjtcbn1cblxuaW50ZXJmYWNlIEZlYXR1cmVHYXRlVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZT4ge1xuICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzO1xufVxuXG5pbnRlcmZhY2UgUHJvZHVjdElkVGVzdFxuICBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5Qcm9kdWN0SWQ+IHtcbiAgcHJvZHVjdElkRXh0cmFjdG9yOiBJZEV4dHJhY3RvcjtcbiAgcHJvZHVjdElkczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBQbHBJZFRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUGxwSWQ+IHtcbiAgcGxwSWRFeHRyYWN0b3I6IElkRXh0cmFjdG9yO1xuICBwbHBJZHM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUXVlcnlQYXJhbVRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUXVlcnlQYXJhbT4ge1xuICBxdWVyeVBhcmFtOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBVc2VySGFzSW50ZXJhY3RlZFRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXNlckhhc0ludGVyYWN0ZWQ+IHt9XG5cbmludGVyZmFjZSBVc2VySGFzTm90SW50ZXJhY3RlZFRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXNlckhhc05vdEludGVyYWN0ZWQ+IHt9XG5cbmludGVyZmFjZSBJc0xvYWRpbmdUZXN0XG4gIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzTG9hZGluZz4ge31cblxuaW50ZXJmYWNlIElzUHJvZHVjdENvbXBhcmlzb25cbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuaXNQcm9kdWN0Q29tcGFyaXNvbj4ge31cblxuaW50ZXJmYWNlIFBhZ2VGYWxsYmFja1Rlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuRmFsbGJhY2s+IHt9XG5cbmludGVyZmFjZSBVcmxSZXNvbHZlclRlc3RcbiAgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXI+IHt9XG5cbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50VGVzdCA9XG4gIHwgUGFnZUNhdGVnb3J5VGVzdFxuICB8IFNob3BpZnlQTFBVUkxUZXN0XG4gIHwgU2hvcGlmeVBEUFVSTFRlc3RcbiAgfCBDYXRhbG9nQ2F0ZWdvcnlUZXN0XG4gIHwgVG9wQ2F0YWxvZ0NhdGVnb3J5XG4gIHwgSGFzUmV2aWV3c1Rlc3RcbiAgfCBJbkNvbGxlY3Rpb25UZXN0XG4gIHwgSGFzTWVyY2hhbnRUYWdUZXN0XG4gIHwgRmVhdHVyZUdhdGVUZXN0XG4gIHwgUHJvZHVjdElkVGVzdFxuICB8IFBscElkVGVzdFxuICB8IFF1ZXJ5UGFyYW1UZXN0XG4gIHwgVXNlckhhc0ludGVyYWN0ZWRUZXN0XG4gIHwgVXNlckhhc05vdEludGVyYWN0ZWRUZXN0XG4gIHwgSXNMb2FkaW5nVGVzdFxuICB8IElzUHJvZHVjdENvbXBhcmlzb25cbiAgfCBQYWdlRmFsbGJhY2tUZXN0XG4gIHwgVXJsUmVzb2x2ZXJUZXN0O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzb2NpYWwgcHJvb2YgZW1iZWRkZWQgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGhlYWRlclRpdGxlIC0gVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgd2lkZ2V0IGhlYWRlclxuICogQHBhcmFtIHN0YXRpY1N1Z2dlc3Rpb25zIC0gQSBsaXN0IG9mIHN0cmluZ3MgdG8gZGlzcGxheSBhcyBzdWdnZXN0aW9ucyBpbiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0IC0gVGhlIHZhcmlhbnQgb2YgdGhlIHN1Z2dlc3Rpb24gYnV0dG9uIHRvIGRpc3BsYXkgaW4gdGhlIHdpZGdldCBmb290ZXJcbiAqIEBwYXJhbSBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudCAtIFRoZSB2YXJpYW50IG9mIHRoZSBzdWdnZXN0aW9uIGJ1dHRvbiB0byBkaXNwbGF5IGluIHRoZSB3aWRnZXQgYm9keVxuICogQHBhcmFtIHN0YXRpY0ltYWdlSW5kZXggLSBJbmRleCBvZiB0aGUgaW1hZ2VVcmwgdG8gdXNlIGZyb20gdGhlIHByb2R1Y3QgcmVzcG9uc2VcbiAqL1xuaW50ZXJmYWNlIFNvY2lhbFByb29mQ29uZmlnIHtcbiAgY3VzdG9tZXJRdWVyeTogc3RyaW5nO1xuICBoZWFkZXJUaXRsZTogc3RyaW5nO1xuICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ/OiBcImdyaWRcIiB8IFwiaG9yaXpvbnRhbFwiO1xuICBoZWFkZXJGb250RmFtaWx5Pzogc3RyaW5nO1xuICBzdGF0aWNQTFBJbWFnZU5hbWVzPzogc3RyaW5nW107XG4gIHN0YXRpY0ltYWdlSW5kZXg/OiBudW1iZXI7XG4gIHN1Z2dlc3Rpb25CdXR0b25TdHJpbmdzOiBzdHJpbmdbXTtcbiAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnRBY2NlbnQ/OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgc3VnZ2VzdGlvbkJ1dHRvbkRhdGFBdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnPzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBsb2dvTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyB0aGUgbW91bnQgcG9pbnQgZm9yIGEgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGNsYXNzTmFtZSAtIE9wdGlvbmFsIGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIG1vdW50IHBvaW50LiBUYWlsd2luZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWRcbiAqIGFuZCBlbmNvdXJhZ2VkLiBVc2UgdGhpcyBwYXJhbWV0ZXIgdG8gc3R5bGUgdGhlIG1vdW50aW5nIGNvbnRhaW5lciBmb3IgdGhlIHdpZGdldC5cbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gIG1vdW50aW5nQ29uZmlnSWQ6IHN0cmluZztcbiAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgdGVzdElkOiBzdHJpbmc7XG4gIHBhcmVudEluc2VydGlvblBvaW50PzogSW5zZXJ0aW9uUG9pbnQ7XG4gIGluc2VydGlvblBvaW50OiBJbnNlcnRpb25Qb2ludDtcbiAgZ3JpZEluc2VydGlvblR5cGU/OiBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgd3JhcHBpbmdFbGVtZW50PzogV3JhcHBpbmdFbGVtZW50O1xuICBkaXZDaGVja1NlbGVjdG9yPzogc3RyaW5nO1xuICBzdXBwcmVzc2lvblNlbGVjdG9yPzogc3RyaW5nO1xuICBzdHlsZT86IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGF0YUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxudHlwZSBTdGF0aWNXaWRnZXRNb3VudGluZyA9IHtcbiAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xufTtcbnR5cGUgRHluYW1pY1dpZGdldE1vdW50aW5nID0ge1xuICBtb3VudGluZ0NvbmZpZ0lkOiBzdHJpbmc7XG4gIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBXaWRnZXREaXNwbGF5VGVzdHNbXTtcbn07XG5cbnR5cGUgV2lkZ2V0RGlzcGxheVRlc3RzID0ge1xuICB0ZXN0czogUGFnZVZhcmlhbnRUZXN0W107XG4gIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG59O1xuXG50eXBlIFdpZGdldE1vdW50aW5nID0gU3RhdGljV2lkZ2V0TW91bnRpbmcgfCBEeW5hbWljV2lkZ2V0TW91bnRpbmc7XG5cbmVudW0gV2lkZ2V0VHlwZSB7XG4gIENoYXRQcmV2aWV3ID0gXCJDaGF0UHJldmlld1wiLFxuICBTb2NpYWxQcm9vZlYyID0gXCJTb2NpYWxQcm9vZlYyXCIsXG4gIENoYXRQcmV2aWV3VjIgPSBcIkNoYXRQcmV2aWV3VjJcIixcbiAgQ2hhdFByZXZpZXdJc0xvYWRpbmcgPSBcIkNoYXRQcmV2aWV3SXNMb2FkaW5nXCIsXG4gIENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uID0gXCJDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvblwiLFxuICBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uID0gXCJDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uXCIsXG4gIFN1Z2dlc3Rpb25CYXIgPSBcIlN1Z2dlc3Rpb25CYXJcIixcbiAgU3VnZ2VzdGlvbkJhclYyID0gXCJTdWdnZXN0aW9uQmFyVjJcIixcbiAgSW1hZ2VQcm9tcHRDYXJkID0gXCJJbWFnZVByb21wdENhcmRcIixcbiAgSW1hZ2VCYW5uZXIgPSBcIkltYWdlQmFubmVyXCIsXG4gIFNpbmdsZUltYWdlUHJvbXB0ID0gXCJTaW5nbGVJbWFnZVByb21wdFwiLFxuICBTZWFyY2hQcm9tcHQgPSBcIlNlYXJjaFByb21wdFwiLFxuICBTZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50ID0gXCJTZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50XCIsXG4gIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50ID0gXCJTZWFyY2hSZXN1bHRzRW50cnlQb2ludFwiLFxuICBTZWFyY2hPdmVybGF5SG9zdCA9IFwiU2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgTm9PcCA9IFwiTm9PcFwiLFxufVxuXG50eXBlIFdpZGdldENvbmZpZyA9XG4gIHwgQ2hhdFByZXZpZXdXaWRnZXRDb25maWdcbiAgfCBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdWMldpZGdldENvbmZpZ1xuICB8IENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWdcbiAgfCBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnXG4gIHwgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnXG4gIHwgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWdcbiAgfCBJbWFnZUJhbm5lcldpZGdldENvbmZpZ1xuICB8IFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZ1xuICB8IFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWdcbiAgfCBOb09wV2lkZ2V0Q29uZmlnO1xuXG5pbnRlcmZhY2UgQmFzZVdpZGdldENvbmZpZzxUIGV4dGVuZHMgV2lkZ2V0VHlwZT4ge1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xuICB0eXBlOiBUO1xuICBjb250ZW50SWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJbWFnZUJhbm5lcldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5JbWFnZUJhbm5lcj4ge1xuICBpbWFnZVNyYzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nO1xuICBhc3Npc3RhbnRNZXNzYWdlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld1dpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlldz4ge1xuICB2YXJpYW50OiBcImZpbGxlZFwiIHwgXCJmbGF0XCIgfCBcIm91dGxpbmVkXCI7XG4gIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xuICBzb2NpYWxQcm9vZkNvbmZpZz86IFNvY2lhbFByb29mQ29uZmlnO1xuICBmb290ZXJDb25maWc/OiBDaGF0UHJldmlld0Zvb3RlckNvbmZpZztcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWcge1xuICB0aXRsZT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ1Nob3BwaW5nIEFzc2lzdGFudCdcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xufVxuXG50eXBlIFNpbmdsZUltYWdlQ29uZmlnID0ge1xuICBsYXlvdXQ6IFwic2luZ2xlXCI7XG4gIGltYWdlSW5kZXg6IG51bWJlcjtcbn07XG50eXBlIE11bHRpSW1hZ2VDb25maWcgPSB7XG4gIGxheW91dDogXCJncmlkXCIgfCBcImhvcml6b250YWxcIjtcbiAgaW1hZ2VOYW1lczogc3RyaW5nW107XG59O1xudHlwZSBTb2NpYWxQcm9vZkltYWdlQ29uZmlnID0gU2luZ2xlSW1hZ2VDb25maWcgfCBNdWx0aUltYWdlQ29uZmlnO1xuXG50eXBlIENoYXRQcmV2aWV3U3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZyA9IHtcbiAgYnV0dG9uU3RyaW5nczogc3RyaW5nW107XG4gIGFjY2VudEJ1dHRvblZhcmlhbnRzPzoge1xuICAgIGJ1dHRvbjogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICB9O1xuICBidXR0b25WYXJpYW50czoge1xuICAgIGJ1dHRvbjogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICB9O1xuICBudW1Sb3dzPzogTnVtUm93cztcbn07XG5cbnR5cGUgQ2hhdFByZXZpZXdBbmltYXRlZFRleHRDb25maWcgPSB7XG4gIGxlYWRpbmdUZXh0OiBzdHJpbmc7XG4gIGFuaW1hdGVkU3RyaW5nczogc3RyaW5nW107XG59O1xuXG50eXBlIENoYXRQcmV2aWV3VmFyaWFudCA9XG4gIHwgeyB2YXJpYW50OiBcImZsYXRcIiB9XG4gIHwgeyB2YXJpYW50OiBcImZpbGxlZFwiOyBiYWNrZ3JvdW5kRmlsbENvbG9yOiBzdHJpbmcgfVxuICB8IHsgdmFyaWFudDogXCJvdXRsaW5lZFwiIH07XG5cbi8vIEJhc2UgaW50ZXJmYWNlIGZvciBjb21tb24gY2hhdCBwcmV2aWV3IHByb3BlcnRpZXNcbmludGVyZmFjZSBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICBoZWFkZXJDb25maWc6IENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWc7XG4gIHN1Z2dlc3Rpb25CdXR0b25zQ29uZmlnOiBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBjaGF0UHJldmlld1ZhcmlhbnQ6IENoYXRQcmV2aWV3VmFyaWFudDtcbiAgYWRkU2VwYXJhdG9ycz86IGJvb2xlYW47XG59XG5cbi8vIFNwZWNpZmljIGNoYXQgcHJldmlldyB3aWRnZXQgY29uZmlndXJhdGlvbnNcbmludGVyZmFjZSBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbj4sXG4gICAgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgY2hhdFByZXZpZXdWYXJpYW50OiBDaGF0UHJldmlld1ZhcmlhbnQ7XG4gIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdJc0xvYWRpbmc+LFxuICAgIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7fVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uPixcbiAgICBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICB1c2VMYXJnZVByb2R1Y3RDb21wYXJpc29uPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdWMj4sXG4gICAgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgYW5pbWF0ZWRUZXh0Q29uZmlnOiBDaGF0UHJldmlld0FuaW1hdGVkVGV4dENvbmZpZztcbn1cblxuaW50ZXJmYWNlIFNvY2lhbFByb29mVjJXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU29jaWFsUHJvb2ZWMj4sXG4gICAgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgY3VzdG9tZXJRdWVyeT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ2Fza2VkIHdoaWNoIHByb2R1Y3RzIGFyZSB0aGUgYmVzdCdcbiAgaW1hZ2VDb25maWc6IFNvY2lhbFByb29mSW1hZ2VDb25maWc7XG59XG5cbmludGVyZmFjZSBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyPiB7XG4gIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb247XG4gIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzO1xuICB2YXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgYnV0dG9uVGV4dHM6IHtcbiAgICBkZWZhdWx0OiBzdHJpbmdbXTtcbiAgICBwcm9kdWN0U3BlY2lmaWM/OiB7IFtwcm9kdWN0SWQ6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIH07XG4gIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gIHR3b1Jvd3NPbk1vYmlsZT86IGJvb2xlYW47XG4gIGFuaW1hdGlvblNwZWVkPzogXCJzdGFuZGFyZFwiIHwgXCJzbG93XCIgfCBcIm5vbmVcIjtcbiAgYnV0dG9uQm9yZGVyUmFkaXVzPzogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiO1xufVxuXG5pbnRlcmZhY2UgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuSW1hZ2VQcm9tcHRDYXJkPiB7XG4gIHVybDogc3RyaW5nO1xuICBsaWdodFRleHQ/OiBib29sZWFuO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nW107XG4gIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHN0cmluZ1tdO1xuICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbiAgZmFsbGJhY2tCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TaW5nbGVJbWFnZVByb21wdD4ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBzdHJpbmdbXTtcbiAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiBVc2VyUXVlcnlCdXR0b25Db25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnXG4gIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQ+IHtcbiAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogU2VhcmNoWmVyb1N0YXRlVmFyaWFudDtcbiAgc2VhcmNoSW5wdXRWYXJpYW50OiBTZWFyY2hJbnB1dFZhcmlhbnQ7XG4gIHNlYXJjaEljb25WYXJpYW50PzogU2VhcmNoSWNvblZhcmlhbnQ7XG4gIHNlYXJjaEljb25TaXplPzogbnVtYmVyO1xuICBzdWdnZXN0aW9uQnV0dG9uQ29uZmlnOiBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnO1xuICBsYXlvdXQ6IFNlYXJjaFplcm9TdGF0ZUxheW91dDtcbiAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgYW5pbWF0aW9uU3BlZWQ/OiBcInN0YW5kYXJkXCIgfCBcInNsb3dcIiB8IFwibm9uZVwiO1xuICBjb21wYWN0TGFiZWw/OiBzdHJpbmc7XG4gIGluaXRpYWxTdWdnZXN0aW9ucz86IHN0cmluZ1tdO1xuICB1c2luZ1BvcnRhbD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBOb09wV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLk5vT3A+IHt9XG5pbnRlcmZhY2UgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoT3ZlcmxheUhvc3Q+IHt9XG5cbmludGVyZmFjZSBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hSZXN1bHRzRW50cnlQb2ludD4ge1xuICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFNlYXJjaElucHV0VmFyaWFudDtcbiAgc2VhcmNoRmlsdGVyU2lkZWJhclZhcmlhbnQ6IFNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50O1xuICBwcm9kdWN0R3JpZFZhcmlhbnQ6IFByb2R1Y3RHcmlkVmFyaWFudDtcbiAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbm9SZXN1bHRzRm91bmRUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldEhlYWRlclByb3BzIGV4dGVuZHMgVGVzdFByb3BzIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGxvZ28/OiBzdHJpbmc7XG4gIGxvZ29IZWlnaHQ/OiBudW1iZXI7XG4gIG9yZ1Nob3J0TmFtZTogc3RyaW5nO1xuICB2YXJpYW50PzogU2VhcmNoUHJvbXB0VmFyaWFudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUXVlcnlPcHRpb25zIHtcbiAgZm9vdGVyVmFyaWFudD86IFwic3RhbmRhcmRcIjtcbiAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICByZXBseUJ1dHRvbkljb24/OlxuICAgIHwgXCJtYWduaWZ5aW5nR2xhc3NcIlxuICAgIHwgXCJzZW5kXCJcbiAgICB8IFwidGhpbk1hZ25pZnlpbmdHbGFzc1wiXG4gICAgfCBcImFpLXNlYXJjaFwiO1xufVxuXG50eXBlIFNlYXJjaFByb21wdFZhcmlhbnQgPSBcInByaW1hcnlcIjtcbmludGVyZmFjZSBTZWFyY2hQcm9tcHRXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoUHJvbXB0PiB7XG4gIHZhcmlhbnQ6IFNlYXJjaFByb21wdFZhcmlhbnQ7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGhlYWRlckNvbmZpZzogV2lkZ2V0SGVhZGVyUHJvcHM7XG4gIHN1Z2dlc3Rpb25CdXR0b25zOiB7XG4gICAgdmFyaWFudDogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBidXR0b25UZXh0czogc3RyaW5nW107XG4gIH07XG4gIGZvb3RlckNvbmZpZz86IFVzZXJRdWVyeU9wdGlvbnM7XG59XG5cbnR5cGUgUGFnZVZhcmlhbnRCYXNlID0ge1xuICAvLyBVbmlxdWUgaWRlbnRpZmllciBmb3IgZWFjaCBlbnRyeSB3aXRoaW4gdGhlIHBhZ2VWYXJpYW50cy5cbiAgLy8gVXNlZnVsIHRvIGRpZmZlcmVudGlhdGUgd2hpY2ggdmFyaWFudCBpcyBsb2FkZWQgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGVzIG9mIGEgc2luZ2xlIHR5cGUuXG4gIHZhcmlhbnRJZDogc3RyaW5nO1xuICB3aWRnZXRNb3VudGluZzogV2lkZ2V0TW91bnRpbmdbXTtcbiAgdmFyaWFudFRlc3RzOiBQYWdlVmFyaWFudFRlc3RbXTtcbn07XG5cbnR5cGUgUExQUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiBcInBscFwiO1xuICBwbHBJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xuXG50eXBlIFBEUFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogXCJwZHBcIjtcbiAgcGFyZW50UHJvZHVjdElkRXh0cmFjdG9yPzogSWRFeHRyYWN0b3I7XG4gIHByb2R1Y3RJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xuXG50eXBlIFZpc2l0UGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiBcInBhZ2VfdmlzaXRcIjtcbn07XG5cbnR5cGUgT3RoZXJQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgdmFyaWFudFR5cGU6IFwib3RoZXJcIjtcbn07XG5cbnR5cGUgSG9tZVBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogXCJob21lcGFnZVwiO1xufTtcblxudHlwZSBTZWFyY2hQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgdmFyaWFudFR5cGU6IFwic2VhcmNoXCI7XG59O1xuXG5leHBvcnQgdHlwZSBQYWdlVmFyaWFudENvbmZpZyA9XG4gIHwgUExQUGFnZVZhcmlhbnRcbiAgfCBQRFBQYWdlVmFyaWFudFxuICB8IFZpc2l0UGFnZVZhcmlhbnRcbiAgfCBPdGhlclBhZ2VWYXJpYW50XG4gIHwgSG9tZVBhZ2VWYXJpYW50XG4gIHwgU2VhcmNoUGFnZVZhcmlhbnQ7XG5cbmV4cG9ydCB0eXBlIE9yZ1BhZ2VDb25maWcgPSB7XG4gIC8vIHBhZ2VWYXJpYW50cyBpcyBhIGxpc3Qgb2YgcGFnZSB2YXJpYW50cyB0aGF0IHdlIHN1cHBvcnQuXG4gIHBhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXTtcbiAgLy8gd2lkZ2V0Q29uZmlncyBpcyBhIG5hbWVkIHNldCBvZiB3aWRnZXQgY29uZmlnc1xuICB3aWRnZXRDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWc+O1xuICBtb3VudGluZ0NvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPjtcbn07XG5cbmV4cG9ydCB0eXBlIE9yZ0NvbmZpZyA9IE9yZ1VJQ29uZmlnO1xuXG5leHBvcnQge1xuICBDYXRlZ29yeUV4dHJhY3RvclR5cGUsXG4gIENvbG9yTmFtZXMsXG4gIGNvbG9yVmFyLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRUeXBlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVDb25maWcge1xuICBhbXBsaXR1ZGVBcGlLZXk/OiBzdHJpbmc7XG4gIGRhdGFSZXNpZGVuY3k/OiBzdHJpbmc7XG4gIGVudj86IHN0cmluZztcbiAgYmFzZVVybD86IHN0cmluZztcbiAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gIG9yZ0xldmVsQXBpS2V5Pzogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU/OiBzdHJpbmc7XG4gIGlkZW50aWZ5aW5nUHJlZml4Pzogc3RyaW5nO1xuICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHZhcmlhbnRVcmxPdmVycmlkZT86IHN0cmluZztcbiAgdmFyaWFudEluZm9PdmVycmlkZT86IGFueTtcbiAgc2hvdz86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBDYXRlZ29yeUV4dHJhY3RvcixcbiAgQ2hhdE1lc3NhZ2VWYXJpYW50LFxuICBDaGF0TWVzc2FnZUNvbmZpZyxcbiAgQ2hhdFByZXZpZXdDb25maWcsXG4gIENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZyxcbiAgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZyxcbiAgQ2hhdFByZXZpZXdTdWdnZXN0aW9uQnV0dG9uQ29uZmlnLFxuICBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnLFxuICBDaGF0UHJldmlld1YyV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld0Zvb3RlckNvbmZpZyxcbiAgQ2hhdFByZXZpZXdIZWFkZXJDb25maWcsXG4gIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1ZhcmlhbnQsXG4gIENvbG9yTWFwcGluZyxcbiAgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sXG4gIEZsb2F0aW5nRW50cnlQb2ludENvbmZpZyxcbiAgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uLFxuICBJZEV4dHJhY3RvcixcbiAgSW1hZ2VCYW5uZXJXaWRnZXRDb25maWcsXG4gIEltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICBJbnNlcnRpb25Qb2ludCxcbiAgTXVsdGlJbWFnZUNvbmZpZyxcbiAgT3JnVUlDb25maWcsXG4gIFBhZ2VDYXJkQ29uZmlnLFxuICBQYWdlQ2FyZFZhcmlhbnQsXG4gIFBhZ2VDYXJkSG92ZXJWYXJpYW50LFxuICBQYWdlQ2FyZEljb25WYXJpYW50LFxuICBQcm9kdWN0Q2FyZENvbmZpZyxcbiAgUHJvZHVjdENhcmRWYXJpYW50LFxuICBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQsXG4gIFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50LFxuICBQcm9kdWN0TGlua0hvdmVyVmFyaWFudCxcbiAgUHJvZHVjdExpbmtJY29uVmFyaWFudCxcbiAgUHJvZHVjdExpbmtWYXJpYW50LFxuICBQcm9kdWN0UmV2aWV3Q29uZmlnLFxuICBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50LFxuICBQcm9kdWN0UmV2aWV3Q29sb3JWYXJpYW50LFxuICBTZWFyY2hQcm9tcHRWYXJpYW50LFxuICBTZWFyY2hQcm9tcHRXaWRnZXRDb25maWcsXG4gIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zLFxuICBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZyxcbiAgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcsXG4gIFNvY2lhbFByb29mQ29uZmlnLFxuICBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gIFN1Z2dlc3Rpb25CdXR0b25Db25maWcsXG4gIFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50LFxuICBVUkxUZXN0LFxuICBVc2VyUXVlcnlCdXR0b25Db25maWcsXG4gIFVzZXJRdWVyeUJ1dHRvbkljb24sXG4gIFdlbGNvbWVTZWN0aW9uQ29uZmlnLFxuICBXZWxjb21lU2VjdGlvblZhcmlhbnQsXG4gIFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50LFxuICBXaWRnZXRDb25maWcsXG4gIFdyYXBwaW5nRWxlbWVudCxcbiAgU2VhcmNoQ2FyZFZhcmlhbnQsXG4gIFdpZGdldERpc3BsYXlUZXN0cyxcbiAgTm9PcFdpZGdldENvbmZpZyxcbiAgV2lkZ2V0TW91bnRpbmcsXG4gIFN0YXRpY1dpZGdldE1vdW50aW5nLFxuICBEeW5hbWljV2lkZ2V0TW91bnRpbmcsXG4gIFBEUFBhZ2VWYXJpYW50LFxuICBQTFBQYWdlVmFyaWFudCxcbiAgVmlzaXRQYWdlVmFyaWFudCxcbiAgT3RoZXJQYWdlVmFyaWFudCxcbiAgSG9tZVBhZ2VWYXJpYW50LFxuICBTZWFyY2hQYWdlVmFyaWFudCxcbiAgTnVtUm93cyxcbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSyxvREFBTDtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFsQkc7QUF5QkwsTUFBTSxZQUFZLFVBQThCLHVCQUF1QixNQUFNOzs7O0FDekI3RSxNQUFhLGVBQWU7Q0FDMUIsU0FBUztDQUNULGtCQUFrQjtDQUNsQixVQUFVO0NBQ1YsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIsYUFBYTtDQUNiLE9BQU87Q0FDUCxjQUFjO0NBQ2QsV0FBVztDQUNYLGVBQWU7Q0FDZixZQUFZO0NBRVosZ0JBQWdCO0NBQ2hCLFdBQVc7Q0FDWCxTQUFTO0NBQ1QsaUJBQWlCO0NBQ2pCLGFBQWE7Q0FDYixTQUFTO0NBQ1QsVUFBVTtDQUNWLFNBQVM7Q0FDVCxlQUFlO0NBQ2YsZ0JBQWdCO0NBQ2hCLGdCQUFnQjtDQUNoQixtQkFBbUI7Q0FDbkIsZUFBZTtDQUNmLFdBQVc7Q0FDWCxrQkFBa0I7Q0FDbEIsaUJBQWlCO0NBQ2pCLFlBQVk7Q0FDWixPQUFPO0NBQ1AsY0FBYztDQUNkLGNBQWM7Q0FDZCxTQUFTO0NBQ1Y7Ozs7QUNuQkQsTUFBYSxhQUFhLE9BQ3hCLGlCQUM4QjtBQUM5QixTQUFRLGNBQVI7RUFDRSxLQUFLLGFBQWEsVUFDaEIsNkNBQU8sNkJBQTRDLE1BQ2hELGFBQVdBLFNBQU8saUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLE1BQ2hCLDZDQUFPLHlCQUFvQyxNQUN4QyxhQUFXQSxTQUFPLGFBQ3BCO0VBQ0gsS0FBSyxhQUFhLFFBQ2hCLDZDQUFPLDJCQUF3QyxNQUM1QyxhQUFXQSxTQUFPLGVBQ3BCO0VBQ0gsS0FBSyxhQUFhLGNBQ2hCLDZDQUFPLGlDQUFvRCxNQUN4RCxhQUFXQSxTQUFPLHFCQUNwQjtFQUNILEtBQUssYUFBYSxpQkFDaEIsNkNBQU8sb0NBQTBELE1BQzlELGFBQVdBLFNBQU8sd0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLFNBQ2hCLDZDQUFPLDRCQUEwQyxNQUM5QyxhQUFXQSxTQUFPLGdCQUNwQjtFQUNILEtBQUssYUFBYSxXQUNoQiw2Q0FBTyw4QkFBOEMsTUFDbEQsYUFBV0EsU0FBTyxrQkFDcEI7RUFDSCxLQUFLLGFBQWEsV0FDaEIsNkNBQU8sOEJBQThDLE1BQ2xELGFBQVdBLFNBQU8sa0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLFlBQ2hCLDZDQUFPLCtCQUFnRCxNQUNwRCxhQUFXQSxTQUFPLG1CQUNwQjtFQUNILEtBQUssYUFBYSxnQkFDaEIsNkNBQU8sbUNBQXdELE1BQzVELGFBQVdBLFNBQU8sdUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLGVBQ2hCLDZDQUFPLGtDQUFzRCxNQUMxRCxhQUFXQSxTQUFPLHNCQUNwQjtFQUNILEtBQUssYUFBYSxpQkFDaEIsNkNBQU8sb0NBQTBELE1BQzlELGFBQVdBLFNBQU8sd0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLFlBQ2hCLDZDQUFPLCtCQUFnRCxNQUNwRCxhQUFXQSxTQUFPLG1CQUNwQjtFQUdILEtBQUssYUFBYSxNQUNoQiw2Q0FBTyx5QkFBb0MsTUFDeEMsYUFBV0EsU0FBTyxhQUNwQjtFQUVILEtBQUssYUFBYSxhQUNoQiw2Q0FBTyxnQ0FBMkMsTUFDL0MsYUFBV0EsU0FBTyxhQUNwQjtFQUdILEtBQUssYUFBYSxVQUNoQiw2Q0FBTyw2QkFBNEMsTUFDaEQsYUFBV0EsU0FBTyxpQkFDcEI7RUFDSCxLQUFLLGFBQWEsY0FDaEIsNkNBQU8saUNBQW9ELE1BQ3hELGFBQVdBLFNBQU8scUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLGlCQUNoQiw2Q0FBTyxvQ0FBMEQsTUFDOUQsYUFBV0EsU0FBTyx3QkFDcEI7RUFDSCxLQUFLLGFBQWEsYUFDaEIsNkNBQU8sZ0NBQWtELE1BQ3RELGFBQVdBLFNBQU8sb0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLGFBQ2hCLDZDQUFPLGdDQUFrRCxNQUN0RCxhQUFXQSxTQUFPLG9CQUNwQjtFQUVILEtBQUssYUFBYSxlQUNoQiw2Q0FBTyxrQ0FBc0QsTUFDMUQsYUFBV0EsU0FBTyxzQkFDcEI7RUFDSCxLQUFLLGFBQWEsVUFDaEIsNkNBQU8sNkJBQTRDLE1BQ2hELGFBQVdBLFNBQU8saUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLFFBQ2hCLDZDQUFPLDJCQUF3QyxNQUM1QyxhQUFXQSxTQUFPLGVBQ3BCO0VBQ0gsS0FBSyxhQUFhLGdCQUNoQiw2Q0FBTyxtQ0FBd0QsTUFDNUQsYUFBV0EsU0FBTyx1QkFDcEI7RUFDSCxLQUFLLGFBQWEsWUFDaEIsNkNBQU8sK0JBQWdELE1BQ3BELGFBQVdBLFNBQU8sbUJBQ3BCO0VBQ0gsS0FBSyxhQUFhLFFBQ2hCLDZDQUFPLDJCQUF3QyxNQUM1QyxhQUFXQSxTQUFPLGVBQ3BCO0VBQ0gsS0FBSyxhQUFhLFNBQ2hCLDZDQUFPLDRCQUEwQyxNQUM5QyxhQUFXQSxTQUFPLGdCQUNwQjtFQUVILEtBQUssYUFBYSxRQUNoQiw2Q0FBTywyQkFBd0MsTUFDNUMsYUFBV0EsU0FBTyxlQUNwQjtFQUNILEtBQUssYUFBYSxjQUNoQiw2Q0FBTyxpQ0FBb0QsTUFDeEQsYUFBV0EsU0FBTyxxQkFDcEI7RUFDSCxLQUFLLGFBQWEsZUFDaEIsNkNBQU8sa0NBQXNELE1BQzFELGFBQVdBLFNBQU8sc0JBQ3BCO0VBQ0gsS0FBSyxhQUFhLGVBQ2hCLDZDQUFPLGtDQUFzRCxNQUMxRCxhQUFXQSxTQUFPLHNCQUNwQjtFQUNILEtBQUssYUFBYSxrQkFDaEIsNkNBQU8scUNBQTRELE1BQ2hFLGFBQVdBLFNBQU8seUJBQ3BCO0VBQ0gsUUFDRSw2Q0FBTywyQkFBZ0MsTUFDcEMsYUFBV0EsU0FBTyxlQUNwQjs7Ozs7O0FDcVRQLElBQUssMEVBQUw7QUFDRTtBQUNBOztFQUZHO0FBK0JMLElBQUssc0VBQUw7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFuQkc7QUF3TEwsSUFBSyxvREFBTDtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQWhCRyJ9