@envive-ai/react-hooks 0.2.6-alpha-5 → 0.2.6-alpha-7

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 (504) hide show
  1. package/dist/{AmplitudeOperations-CNFlPr53.cjs → AmplitudeOperations-DbUiR0N_.cjs} +3 -3
  2. package/dist/{AmplitudeOperations-cmAprPCA.js → AmplitudeOperations-DjqOM3uE.js} +2 -2
  3. package/dist/{NewOrgConfig-Bicbf8I7.js → NewOrgConfig-C_1T1iOt.js} +2 -2
  4. package/dist/{NewOrgConfig-6dFyYjJG.cjs → NewOrgConfig-D2Kvqa1z.cjs} +2 -2
  5. package/dist/{TrackComponentVisibleEvent-BebTjNtS.js → TrackComponentVisibleEvent-BxOhr9Da.js} +4 -4
  6. package/dist/{TrackComponentVisibleEvent-COwxsJRE.cjs → TrackComponentVisibleEvent-CDbecFPM.cjs} +5 -5
  7. package/dist/amplitudeContext-BWmXliMI.cjs +243 -0
  8. package/dist/amplitudeContext-BjMlg5RV.js +227 -0
  9. package/dist/amplitudeTrackEventAtom-D66l5oFp.js +8 -0
  10. package/dist/amplitudeTrackEventAtom-f22P2U0u.cjs +15 -0
  11. package/dist/app-Bs2KxG_8.js +515 -0
  12. package/dist/app-DSnDDqcW.cjs +570 -0
  13. package/dist/application/models/graphql/index.d.ts +1 -1
  14. package/dist/application/models/guards/api/index.d.ts +2 -2
  15. package/dist/application/models/guards/utils.d.ts +1 -1
  16. package/dist/application/models/index.cjs +2 -2
  17. package/dist/application/models/index.d.ts +4 -4
  18. package/dist/application/models/index.js +2 -2
  19. package/dist/application/utils/index.cjs +5 -14
  20. package/dist/application/utils/index.d.cts +7 -8
  21. package/dist/application/utils/index.d.ts +8 -9
  22. package/dist/application/utils/index.js +5 -14
  23. package/dist/{atomStore-CZKe3itM.cjs → atomStore-BQVO5haU.cjs} +1 -1
  24. package/dist/{atomStore-BuopbV9k.js → atomStore-CfzCqWB9.js} +1 -1
  25. package/dist/atoms/app/index.cjs +17 -19
  26. package/dist/atoms/app/index.d.cts +7 -7
  27. package/dist/atoms/app/index.d.ts +7 -7
  28. package/dist/atoms/app/index.js +12 -14
  29. package/dist/atoms/atomStore/index.cjs +1 -1
  30. package/dist/atoms/atomStore/index.d.ts +1 -1
  31. package/dist/atoms/atomStore/index.js +1 -1
  32. package/dist/atoms/chat/index.cjs +15 -17
  33. package/dist/atoms/chat/index.d.cts +33 -34
  34. package/dist/atoms/chat/index.d.ts +34 -35
  35. package/dist/atoms/chat/index.js +15 -17
  36. package/dist/atoms/globalSearch/index.cjs +1 -1
  37. package/dist/atoms/globalSearch/index.d.cts +6 -6
  38. package/dist/atoms/globalSearch/index.d.ts +6 -6
  39. package/dist/atoms/globalSearch/index.js +1 -1
  40. package/dist/atoms/org/index.cjs +2 -2
  41. package/dist/atoms/org/index.d.cts +17 -17
  42. package/dist/atoms/org/index.d.ts +17 -17
  43. package/dist/atoms/org/index.js +2 -2
  44. package/dist/atoms/search/index.cjs +6 -6
  45. package/dist/atoms/search/index.d.cts +15 -15
  46. package/dist/atoms/search/index.d.ts +14 -14
  47. package/dist/atoms/search/index.js +6 -6
  48. package/dist/atoms/search/utils.cjs +1 -1
  49. package/dist/atoms/search/utils.d.cts +1 -1
  50. package/dist/atoms/search/utils.d.ts +1 -1
  51. package/dist/atoms/search/utils.js +1 -1
  52. package/dist/{cdnContext-CuZwc-PI.js → cdnContext-CJ2BNLAD.js} +2 -2
  53. package/dist/{cdnContext-ClAEcKhO.cjs → cdnContext-lkC-AE6A.cjs} +2 -2
  54. package/dist/chat-C5afTKUY.js +226 -0
  55. package/dist/{chat-BJL3nXR7.cjs → chat-CCjM6fS_.cjs} +6 -7
  56. package/dist/{chat-DCGriB7h.cjs → chat-CJ9D8n7g.cjs} +1 -1
  57. package/dist/{chat-ClvJ9xEj.js → chat-EJbfGWRr.js} +1 -1
  58. package/dist/chatState-BbI93m6r.js +33 -0
  59. package/dist/chatState-DlJpHAsW.cjs +119 -0
  60. package/dist/{common-DQPvV_S_.cjs → common-CuwWqIJ1.cjs} +1 -1
  61. package/dist/{common-c_4eX0qn.js → common-Df2bwzd2.js} +1 -1
  62. package/dist/{components-DKwVHIjq.cjs → components-BCfFLf9X.cjs} +1 -1
  63. package/dist/{components-CDpaMUjK.js → components-QGCWJ26c.js} +1 -1
  64. package/dist/config/index.cjs +4 -4
  65. package/dist/config/index.d.cts +4 -4
  66. package/dist/config/index.d.ts +4 -4
  67. package/dist/config/index.js +4 -4
  68. package/dist/config/locators/components/chat/index.cjs +1 -1
  69. package/dist/config/locators/components/chat/index.d.cts +1 -1
  70. package/dist/config/locators/components/chat/index.d.ts +1 -1
  71. package/dist/config/locators/components/chat/index.js +1 -1
  72. package/dist/config/locators/components/common/index.cjs +1 -1
  73. package/dist/config/locators/components/common/index.d.cts +1 -1
  74. package/dist/config/locators/components/common/index.d.ts +1 -1
  75. package/dist/config/locators/components/common/index.js +1 -1
  76. package/dist/config/locators/components/index.cjs +1 -1
  77. package/dist/config/locators/components/index.d.cts +1 -1
  78. package/dist/config/locators/components/index.d.ts +1 -1
  79. package/dist/config/locators/components/index.js +1 -1
  80. package/dist/config/locators/index.cjs +4 -4
  81. package/dist/config/locators/index.d.cts +4 -4
  82. package/dist/config/locators/index.d.ts +4 -4
  83. package/dist/config/locators/index.js +4 -4
  84. package/dist/contexts/amplitudeContext/index.cjs +18 -17
  85. package/dist/contexts/amplitudeContext/index.d.cts +11 -2
  86. package/dist/contexts/amplitudeContext/index.d.ts +11 -2
  87. package/dist/contexts/amplitudeContext/index.js +17 -15
  88. package/dist/contexts/cdnContext/index.cjs +3 -3
  89. package/dist/contexts/cdnContext/index.d.cts +1 -1
  90. package/dist/contexts/cdnContext/index.js +3 -3
  91. package/dist/contexts/enviveConfigContext/index.cjs +3 -3
  92. package/dist/contexts/enviveConfigContext/index.d.cts +1 -1
  93. package/dist/contexts/enviveConfigContext/index.js +3 -3
  94. package/dist/contexts/enviveCssContext/index.cjs +10 -10
  95. package/dist/contexts/enviveCssContext/index.js +10 -10
  96. package/dist/contexts/featureFlagContext/index.cjs +4 -4
  97. package/dist/contexts/featureFlagContext/index.js +4 -4
  98. package/dist/contexts/featureFlagServiceContext/index.cjs +3 -3
  99. package/dist/contexts/featureFlagServiceContext/index.d.cts +1 -1
  100. package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -1
  101. package/dist/contexts/featureFlagServiceContext/index.js +3 -3
  102. package/dist/contexts/graphqlContext/index.cjs +4 -4
  103. package/dist/contexts/graphqlContext/index.js +4 -4
  104. package/dist/contexts/localStorageContext/index.cjs +2 -2
  105. package/dist/contexts/localStorageContext/index.d.cts +1 -1
  106. package/dist/contexts/localStorageContext/index.js +2 -2
  107. package/dist/contexts/newOrgConfigContext/index.cjs +9 -9
  108. package/dist/contexts/newOrgConfigContext/index.js +9 -9
  109. package/dist/contexts/searchContext/index.cjs +18 -19
  110. package/dist/contexts/searchContext/index.js +18 -19
  111. package/dist/contexts/sessionStorageContext/index.cjs +1 -1
  112. package/dist/contexts/sessionStorageContext/index.js +1 -1
  113. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  114. package/dist/contexts/shopifyUrlContext/index.d.cts +1 -1
  115. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  116. package/dist/contexts/systemSettingsContext/index.cjs +3 -3
  117. package/dist/contexts/systemSettingsContext/index.d.cts +2 -2
  118. package/dist/contexts/systemSettingsContext/index.js +3 -3
  119. package/dist/contexts/userIdentityContext/index.cjs +14 -16
  120. package/dist/contexts/userIdentityContext/index.js +12 -14
  121. package/dist/{dist-CIM4YRqp.js → dist-C38adNK1.js} +1 -1
  122. package/dist/{dist-BZX_Mgfn.cjs → dist-VxRI6eQv.cjs} +1 -1
  123. package/dist/{domObserver-CwieVNgj.cjs → domObserver-C2oQO8vi.cjs} +1 -1
  124. package/dist/{domObserver-B19-69gW.js → domObserver-DNeeSh1F.js} +1 -1
  125. package/dist/{enviveConfig-CBnoutoK.js → enviveConfig-Ciq4ASoV.js} +2 -2
  126. package/dist/{enviveConfig-BwIaVAAm.cjs → enviveConfig-Dp80h9yu.cjs} +2 -2
  127. package/dist/{enviveConfigContext-B4nejwV9.js → enviveConfigContext-CCjJUmwp.js} +2 -2
  128. package/dist/{enviveConfigContext-DgewMgYS.cjs → enviveConfigContext-DoYP8KSw.cjs} +2 -2
  129. package/dist/events/index.cjs +1 -1
  130. package/dist/events/index.js +1 -1
  131. package/dist/{events-BHBRLPWS.js → events-CXiS1aTc.js} +1 -1
  132. package/dist/{events-C8LA-0Tp.cjs → events-DBin1Z7o.cjs} +1 -1
  133. package/dist/exceptions/index.cjs +1 -1
  134. package/dist/exceptions/index.d.ts +1 -1
  135. package/dist/exceptions/index.js +1 -1
  136. package/dist/{exceptions-BBXmiU8P.cjs → exceptions-BjDgLzGi.cjs} +1 -1
  137. package/dist/{exceptions--fSXOzkB.js → exceptions-CUGY31Ua.js} +1 -1
  138. package/dist/{featureFlagServiceContext-B7je7VZV.d.cts → featureFlagServiceContext-ClnlCJV5.d.cts} +1 -1
  139. package/dist/{featureFlagServiceContext-CZj3qPX7.js → featureFlagServiceContext-Cvp7NlpC.js} +2 -2
  140. package/dist/{featureFlagServiceContext-DiYIv0jI.d.ts → featureFlagServiceContext-CyPGEe2d.d.ts} +1 -1
  141. package/dist/{featureFlagServiceContext-BkamHViU.cjs → featureFlagServiceContext-DHtkQAtq.cjs} +2 -2
  142. package/dist/{globalSearch-C94-vEVh.cjs → globalSearch-Cpc8egsM.cjs} +1 -1
  143. package/dist/{globalSearch-Dlbnfasm.js → globalSearch-nmrfGLOn.js} +1 -1
  144. package/dist/{graphqlContext-Capum8x6.js → graphqlContext-0cg9fEUw.js} +3 -3
  145. package/dist/{graphqlContext-C3HXFiHx.cjs → graphqlContext-ChXlE8Ul.cjs} +3 -3
  146. package/dist/hooks/AmplitudeOperations/index.cjs +17 -15
  147. package/dist/hooks/AmplitudeOperations/index.d.cts +1 -1
  148. package/dist/hooks/AmplitudeOperations/index.js +17 -15
  149. package/dist/hooks/AppDetails/index.cjs +15 -17
  150. package/dist/hooks/AppDetails/index.js +15 -17
  151. package/dist/hooks/BlockBackButton/index.d.cts +1 -1
  152. package/dist/hooks/CdnOperations/index.cjs +3 -3
  153. package/dist/hooks/CdnOperations/index.d.cts +1 -1
  154. package/dist/hooks/CdnOperations/index.d.ts +1 -1
  155. package/dist/hooks/CdnOperations/index.js +3 -3
  156. package/dist/hooks/ChatToggle/index.cjs +21 -19
  157. package/dist/hooks/ChatToggle/index.d.cts +1 -1
  158. package/dist/hooks/ChatToggle/index.js +20 -18
  159. package/dist/hooks/ChatToggleAnalytics/index.cjs +19 -17
  160. package/dist/hooks/ChatToggleAnalytics/index.d.cts +1 -1
  161. package/dist/hooks/ChatToggleAnalytics/index.js +19 -17
  162. package/dist/hooks/Debounce/index.d.cts +1 -1
  163. package/dist/hooks/ElementObserver/index.cjs +1 -1
  164. package/dist/hooks/ElementObserver/index.d.cts +1 -1
  165. package/dist/hooks/ElementObserver/index.d.ts +1 -1
  166. package/dist/hooks/ElementObserver/index.js +1 -1
  167. package/dist/hooks/GraphQLConfig/index.cjs +5 -5
  168. package/dist/hooks/GraphQLConfig/index.d.cts +1 -1
  169. package/dist/hooks/GraphQLConfig/index.js +5 -5
  170. package/dist/hooks/IdentifyUser/index.cjs +14 -16
  171. package/dist/hooks/IdentifyUser/index.d.cts +1 -1
  172. package/dist/hooks/IdentifyUser/index.js +13 -15
  173. package/dist/hooks/ImageResolver/index.cjs +2 -2
  174. package/dist/hooks/ImageResolver/index.d.cts +1 -1
  175. package/dist/hooks/ImageResolver/index.js +2 -2
  176. package/dist/hooks/Intersection/index.cjs +1 -1
  177. package/dist/hooks/Intersection/index.js +1 -1
  178. package/dist/hooks/IsSmallScreen/index.d.cts +1 -1
  179. package/dist/hooks/LocalStorageOperations/index.cjs +2 -2
  180. package/dist/hooks/LocalStorageOperations/index.d.cts +1 -1
  181. package/dist/hooks/LocalStorageOperations/index.js +2 -2
  182. package/dist/hooks/MessageFilter/index.cjs +1 -1
  183. package/dist/hooks/MessageFilter/index.d.cts +1 -1
  184. package/dist/hooks/MessageFilter/index.js +1 -1
  185. package/dist/hooks/MessageScrollObserver/index.d.cts +1 -1
  186. package/dist/hooks/NewOrgConfig/index.cjs +10 -10
  187. package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
  188. package/dist/hooks/NewOrgConfig/index.d.ts +2 -2
  189. package/dist/hooks/NewOrgConfig/index.js +10 -10
  190. package/dist/hooks/Search/index.cjs +25 -23
  191. package/dist/hooks/Search/index.js +25 -23
  192. package/dist/hooks/SearchOperations/index.cjs +19 -20
  193. package/dist/hooks/SearchOperations/index.js +19 -20
  194. package/dist/hooks/SessionStorageOperations/index.cjs +1 -1
  195. package/dist/hooks/SessionStorageOperations/index.js +1 -1
  196. package/dist/hooks/ShopifyUrlOperations/index.cjs +2 -2
  197. package/dist/hooks/ShopifyUrlOperations/index.d.cts +2 -2
  198. package/dist/hooks/ShopifyUrlOperations/index.d.ts +2 -2
  199. package/dist/hooks/ShopifyUrlOperations/index.js +2 -2
  200. package/dist/hooks/SystemSettingsContext/index.cjs +3 -3
  201. package/dist/hooks/SystemSettingsContext/index.d.cts +4 -4
  202. package/dist/hooks/SystemSettingsContext/index.d.ts +4 -4
  203. package/dist/hooks/SystemSettingsContext/index.js +3 -3
  204. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +18 -16
  205. package/dist/hooks/TrackComponentVisibleEvent/index.js +18 -16
  206. package/dist/hooks/UpdateAnalyticsProps/index.cjs +20 -18
  207. package/dist/hooks/UpdateAnalyticsProps/index.js +17 -15
  208. package/dist/hooks/utils.cjs +1 -1
  209. package/dist/hooks/utils.d.cts +1 -1
  210. package/dist/hooks/utils.js +1 -1
  211. package/dist/{index-CAhGZxMI.d.ts → index-5li6ZMDu.d.ts} +1 -1
  212. package/dist/{index-ca7Qn8o0.d.cts → index-BbqT4BQv.d.cts} +1 -1
  213. package/dist/{index-w64il54a.d.cts → index-CAJq_8bO.d.cts} +1 -1
  214. package/dist/index-CMZcE7pk.d.cts +1 -1
  215. package/dist/{index-BQpWG3Jm.d.cts → index-ChiZg0yw.d.cts} +1 -1
  216. package/dist/{index-DNccxbJi.d.ts → index-CsmO1rDH.d.ts} +1 -1
  217. package/dist/{index-Dgu085Lu.d.ts → index-CuihhoIF.d.ts} +2 -2
  218. package/dist/{index-BR1G8yyg.d.ts → index-DtzPIcQp.d.ts} +1 -1
  219. package/dist/{index-ZQMda2Iu.d.ts → index-bEjLKG_Q.d.ts} +1 -1
  220. package/dist/{index-DiIHuPq2.d.ts → index-jFQefHda.d.ts} +1 -1
  221. package/dist/{index-BO-ZLYtR.d.ts → index-mv7KvWDq.d.ts} +1 -1
  222. package/dist/{index-ClVBVK15.d.cts → index-npqPeJ1g.d.cts} +1 -1
  223. package/dist/interceptors/index.cjs +1 -1
  224. package/dist/interceptors/index.d.cts +1 -1
  225. package/dist/interceptors/index.d.ts +1 -1
  226. package/dist/interceptors/index.js +1 -1
  227. package/dist/{localStorageContext-p_4U0RPI.js → localStorageContext-BFwvuEcf.js} +2 -2
  228. package/dist/{localStorageContext-CPrkpt8i.cjs → localStorageContext-CWc5xJ6U.cjs} +2 -2
  229. package/dist/{locators-BMQGmGLq.js → locators-C2fWd-74.js} +1 -1
  230. package/dist/{locators-DxYdak1F.cjs → locators-Cx3q6Z_h.cjs} +1 -1
  231. package/dist/{models-L2w8FYCa.js → models-Cw0QcbQv.js} +2 -2
  232. package/dist/{models-OyYkll03.cjs → models-Dl0_Ujgj.cjs} +2 -2
  233. package/dist/{newOrgConfigAtom-Dsk0fJNR.js → newOrgConfigAtom-BuQE_zPK.js} +1 -1
  234. package/dist/{newOrgConfigAtom-hs5A1pbZ.cjs → newOrgConfigAtom-rrYHmp1b.cjs} +1 -1
  235. package/dist/{newOrgConfigContext-BuqDUkPz.js → newOrgConfigContext-D-gU5ppl.js} +5 -5
  236. package/dist/{newOrgConfigContext-N4CQzvlH.cjs → newOrgConfigContext-d3RHl430.cjs} +5 -5
  237. package/dist/{nodeSelector-0gJ8Xayf.d.ts → nodeSelector-BAKg1h_y.d.ts} +1 -1
  238. package/dist/{nodeSelector-Cj-Xl1LP.d.cts → nodeSelector-BYEAyrsj.d.cts} +1 -1
  239. package/dist/org-15F128Ah.js +32 -0
  240. package/dist/org-CIFgIcO4.cjs +111 -0
  241. package/dist/{search-C_N_oRVZ.js → search--80x6CfL.js} +5 -5
  242. package/dist/{search-8bPfo07V.cjs → search-Ch6LKNh4.cjs} +5 -5
  243. package/dist/{searchContext-DdJbpDsU.cjs → searchContext-B0qEUoKb.cjs} +6 -6
  244. package/dist/{searchContext-BohH5i8s.js → searchContext-BkPoTq1o.js} +6 -6
  245. package/dist/{searchServiceAdapter-BSPZOg1r.js → searchServiceAdapter-B0h7psvh.js} +1 -1
  246. package/dist/{searchServiceAdapter-DrjFCiw8.cjs → searchServiceAdapter-BclWy4fE.cjs} +1 -1
  247. package/dist/{sessionStorageContext-CH37Dkb-.cjs → sessionStorageContext-BuWrJQwc.cjs} +1 -1
  248. package/dist/{sessionStorageContext-CqrutoVq.js → sessionStorageContext-DvFHbk81.js} +1 -1
  249. package/dist/{shopifyUrlContext-Ba6MQdNV.cjs → shopifyUrlContext-Bw1kAZ2P.cjs} +2 -2
  250. package/dist/{shopifyUrlContext-BI3fVtA5.js → shopifyUrlContext-DnJiUmMA.js} +2 -2
  251. package/dist/src/application/commerce-api.js +408 -0
  252. package/dist/src/application/logging/logger.js +16 -0
  253. package/dist/src/application/models/graphql/index.js +3 -0
  254. package/dist/src/application/models/graphql/queries/getMerchantColorsQuery.js +13 -0
  255. package/dist/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.js +13 -0
  256. package/dist/src/application/models/graphql/queries/getMerchantOrgIdQuery.js +10 -0
  257. package/dist/src/application/models/guards/api/index.js +12 -0
  258. package/dist/src/application/models/guards/api/isApiFormResponse.js +59 -0
  259. package/dist/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +22 -0
  260. package/dist/src/application/models/guards/api/isApiOrderResponseAttributes.js +91 -0
  261. package/dist/src/application/models/guards/api/isApiOrgConfigResults.js +188 -0
  262. package/dist/src/application/models/guards/api/isApiOrganizationConfig.js +115 -0
  263. package/dist/src/application/models/guards/api/isApiPDPEventAttributes.js +16 -0
  264. package/dist/src/application/models/guards/api/isApiPLPEventAttributes.js +26 -0
  265. package/dist/src/application/models/guards/api/isApiPageResponseAttributes.js +15 -0
  266. package/dist/src/application/models/guards/api/isApiProductResponseAttributes.js +65 -0
  267. package/dist/src/application/models/guards/api/isApiProductSearchAttributes.js +15 -0
  268. package/dist/src/application/models/guards/api/isApiProductSearchFilterAttributes.js +10 -0
  269. package/dist/src/application/models/guards/api/isApiQueryTypedEventAttributes.js +4 -0
  270. package/dist/src/application/models/guards/api/isApiResponse.js +33 -0
  271. package/dist/src/application/models/guards/api/isApiReviewResponseAttributes.js +22 -0
  272. package/dist/src/application/models/guards/api/isApiReviewRichInformation.js +23 -0
  273. package/dist/src/application/models/guards/api/isApiSearchEventAttributes.js +20 -0
  274. package/dist/src/application/models/guards/api/isApiSuggestion.js +24 -0
  275. package/dist/src/application/models/guards/api/isApiSuggestionClickedEventAttributes.js +4 -0
  276. package/dist/src/application/models/guards/api/isApiTextResponseAttributes.js +4 -0
  277. package/dist/src/application/models/guards/api/isApiUserEvent.js +18 -0
  278. package/dist/src/application/models/guards/graphQL/isGraphQLColorsConfig.js +41 -0
  279. package/dist/src/application/models/guards/isBaseEcommerceEvent.js +14 -0
  280. package/dist/src/application/models/guards/isGA4EcommerceEvent.js +14 -0
  281. package/dist/src/application/models/guards/isLegacyUAEcommerceEvent.js +14 -0
  282. package/dist/src/application/models/guards/isMobilePLPChatPlacementParameter.js +4 -0
  283. package/dist/src/application/models/guards/isSpanxTakeAQuizCtaParameter.js +1 -0
  284. package/dist/src/application/models/guards/isVariantInfo.js +28 -0
  285. package/dist/src/application/models/guards/utils.js +34 -0
  286. package/dist/src/application/models/index.js +34 -0
  287. package/dist/src/application/models/utils/snakeToCamelTransformer.js +71 -0
  288. package/dist/src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.js +65 -0
  289. package/dist/src/application/models/validators/validateGraphQLColorsConfig.js +9 -0
  290. package/dist/src/application/models/validators/validateGraphQLFrontendConfig.js +420 -0
  291. package/dist/src/application/models/validators/validateGraphQLOrgId.js +6 -0
  292. package/dist/src/application/models/validators/validateMobilePLPChatPlacementParameter.js +9 -0
  293. package/dist/src/application/models/validators/validateOrgConfigResults.js +44 -0
  294. package/dist/src/application/models/validators/validateOrganizationConfig.js +34 -0
  295. package/dist/src/application/models/validators/validateResponse.js +173 -0
  296. package/dist/src/application/models/validators/validateSuggestion.js +13 -0
  297. package/dist/src/application/models/validators/validateUserEvent.js +91 -0
  298. package/dist/src/application/utils/analyticsUtils.js +95 -0
  299. package/dist/src/application/utils/coreContextToApiContext.js +8 -0
  300. package/dist/src/application/utils/coreUserEventToApiUserEvent.js +90 -0
  301. package/dist/src/application/utils/divideArray.js +7 -0
  302. package/dist/src/application/utils/domObserver.js +85 -0
  303. package/dist/src/application/utils/elementObserver.js +186 -0
  304. package/dist/src/application/utils/imageFilter.js +11 -0
  305. package/dist/src/application/utils/index.js +21 -0
  306. package/dist/src/application/utils/merchantUtils.js +15 -0
  307. package/dist/src/application/utils/messageFromFormSubmittedEvent.js +19 -0
  308. package/dist/src/application/utils/messageFromQueryEvent.js +35 -0
  309. package/dist/src/application/utils/messageFromResponse.js +123 -0
  310. package/dist/src/application/utils/messageFromSuggestionEvent.js +27 -0
  311. package/dist/src/application/utils/mouseEventTypes.js +1 -0
  312. package/dist/src/application/utils/mutationHelper.js +33 -0
  313. package/dist/src/application/utils/nextMessageRequestToApiRequest.js +29 -0
  314. package/dist/src/application/utils/nodeSelector.js +101 -0
  315. package/dist/src/application/utils/overrides.js +144 -0
  316. package/dist/src/application/utils/stringUtils.js +47 -0
  317. package/dist/src/application/utils/supportedEventRequestToApiRequest.js +7 -0
  318. package/dist/src/application/utils/urlsParser.js +33 -0
  319. package/dist/src/application/utils/validation.js +5 -0
  320. package/dist/src/atoms/amplitude/amplitudeTrackEventAtom.js +4 -0
  321. package/dist/src/atoms/app/index.js +23 -0
  322. package/dist/src/atoms/app/variant.js +102 -0
  323. package/dist/src/atoms/atomStore/atomStore.js +28 -0
  324. package/dist/src/atoms/atomStore/index.js +1 -0
  325. package/dist/src/atoms/chat/chatState.js +32 -0
  326. package/dist/src/atoms/chat/form.js +16 -0
  327. package/dist/src/atoms/chat/index.js +23 -0
  328. package/dist/src/atoms/chat/lastMessage.js +10 -0
  329. package/dist/src/atoms/chat/messageQueue.js +68 -0
  330. package/dist/src/atoms/chat/performanceMetrics.js +70 -0
  331. package/dist/src/atoms/chat/renderedWidgetRefs.js +24 -0
  332. package/dist/src/atoms/chat/replies.js +42 -0
  333. package/dist/src/atoms/chat/suggestions.js +29 -0
  334. package/dist/src/atoms/envive/enviveConfig.js +67 -0
  335. package/dist/src/atoms/globalSearch/globalSearch.js +8 -0
  336. package/dist/src/atoms/globalSearch/index.js +1 -0
  337. package/dist/src/atoms/org/customerService.js +6 -0
  338. package/dist/src/atoms/org/graphqlConfig.js +8 -0
  339. package/dist/src/atoms/org/index.js +4 -0
  340. package/dist/src/atoms/org/newOrgConfigAtom.js +2 -0
  341. package/dist/src/atoms/org/orgAnalyticsConfig.js +8 -0
  342. package/dist/src/atoms/search/index.js +1 -0
  343. package/dist/src/atoms/search/productFilters.js +163 -0
  344. package/dist/src/atoms/search/productRetrievalAPI.js +50 -0
  345. package/dist/src/atoms/search/productRetrievalAdapter.js +14 -0
  346. package/dist/src/atoms/search/productSorter.js +13 -0
  347. package/dist/src/atoms/search/searchAPI.js +140 -0
  348. package/dist/src/atoms/search/searchServiceAdapter.js +14 -0
  349. package/dist/src/atoms/search/utils.js +15 -0
  350. package/dist/src/config/index.js +1 -0
  351. package/dist/src/config/locators/components/chat/entrypoints.js +10 -0
  352. package/dist/src/config/locators/components/chat/index.js +21 -0
  353. package/dist/src/config/locators/components/chat/preview.js +11 -0
  354. package/dist/src/config/locators/components/chat/variants/index.js +12 -0
  355. package/dist/src/config/locators/components/common/buttons.js +6 -0
  356. package/dist/src/config/locators/components/common/cards.js +17 -0
  357. package/dist/src/config/locators/components/common/index.js +4 -0
  358. package/dist/src/config/locators/components/common/links.js +1 -0
  359. package/dist/src/config/locators/components/common/tables.js +1 -0
  360. package/dist/src/config/locators/components/floating-button.js +2 -0
  361. package/dist/src/config/locators/components/index.js +3 -0
  362. package/dist/src/config/locators/components/report-issue.js +13 -0
  363. package/dist/src/config/locators/components/search/index.js +5 -0
  364. package/dist/src/config/locators/components/shadow-dom.js +1 -0
  365. package/dist/src/config/locators/embedded.js +20 -0
  366. package/dist/src/config/locators/index.js +4 -0
  367. package/dist/src/contexts/amplitudeContext/amplitudeContext.js +271 -0
  368. package/dist/src/contexts/amplitudeContext/index.js +1 -0
  369. package/dist/src/contexts/cdnContext/cdnContext.js +28 -0
  370. package/dist/src/contexts/cdnContext/index.js +1 -0
  371. package/dist/src/contexts/enviveConfigContext/enviveConfigContext.js +37 -0
  372. package/dist/src/contexts/enviveConfigContext/index.js +1 -0
  373. package/dist/src/contexts/enviveCssContext/enviveCssContext.js +31 -0
  374. package/dist/src/contexts/enviveCssContext/index.js +1 -0
  375. package/dist/src/contexts/featureFlagContext/featureFlagContext.js +109 -0
  376. package/dist/src/contexts/featureFlagContext/index.js +1 -0
  377. package/dist/src/contexts/featureFlagServiceContext/featureFlagServiceContext.js +47 -0
  378. package/dist/src/contexts/featureFlagServiceContext/index.js +1 -0
  379. package/dist/src/contexts/graphqlContext/graphqlContext.js +87 -0
  380. package/dist/src/contexts/graphqlContext/index.js +1 -0
  381. package/dist/src/contexts/localStorageContext/index.js +1 -0
  382. package/dist/src/contexts/localStorageContext/localStorageContext.js +95 -0
  383. package/dist/src/contexts/newOrgConfigContext/index.js +1 -0
  384. package/dist/src/contexts/newOrgConfigContext/newOrgConfigContext.js +33 -0
  385. package/dist/src/contexts/searchContext/index.js +1 -0
  386. package/dist/src/contexts/searchContext/searchContext.js +131 -0
  387. package/dist/src/contexts/sessionStorageContext/index.js +1 -0
  388. package/dist/src/contexts/sessionStorageContext/sessionStorageContext.js +43 -0
  389. package/dist/src/contexts/shopifyUrlContext/index.js +1 -0
  390. package/dist/src/contexts/shopifyUrlContext/shopifyUrlContext.js +62 -0
  391. package/dist/src/contexts/systemSettingsContext/index.js +1 -0
  392. package/dist/src/contexts/systemSettingsContext/systemSettingsContext.js +29 -0
  393. package/dist/src/contexts/userIdentityContext/index.js +1 -0
  394. package/dist/src/contexts/userIdentityContext/userIdentityContext.js +118 -0
  395. package/dist/src/events/index.js +51 -0
  396. package/dist/src/events/registerAnalyticsListeners.js +32 -0
  397. package/dist/src/exceptions/index.js +2 -0
  398. package/dist/src/exceptions/sessionExceptions.js +6 -0
  399. package/dist/src/exceptions/unsupportedProductExceptions.js +6 -0
  400. package/dist/src/hooks/AmplitudeOperations/index.js +1 -0
  401. package/dist/src/hooks/AmplitudeOperations/useAmplitudeOperations.js +24 -0
  402. package/dist/src/hooks/AppDetails/index.js +1 -0
  403. package/dist/src/hooks/AppDetails/useAppDetails.js +26 -0
  404. package/dist/src/hooks/BlockBackButton/index.js +1 -0
  405. package/dist/src/hooks/BlockBackButton/useBlockBackButton.js +23 -0
  406. package/dist/src/hooks/CdnOperations/index.js +1 -0
  407. package/dist/src/hooks/CdnOperations/useCdnOperations.js +13 -0
  408. package/dist/src/hooks/ChatToggle/index.js +1 -0
  409. package/dist/src/hooks/ChatToggle/useChatToggle.js +50 -0
  410. package/dist/src/hooks/ChatToggleAnalytics/index.js +1 -0
  411. package/dist/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.js +11 -0
  412. package/dist/src/hooks/CustomerSupportHandoff/index.js +1 -0
  413. package/dist/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +32 -0
  414. package/dist/src/hooks/Debounce/index.js +1 -0
  415. package/dist/src/hooks/Debounce/useDebounce.js +13 -0
  416. package/dist/src/hooks/ElementObserver/index.js +1 -0
  417. package/dist/src/hooks/ElementObserver/useElementObserver.js +208 -0
  418. package/dist/src/hooks/GrabAndScroll/index.js +1 -0
  419. package/dist/src/hooks/GrabAndScroll/useGrabAndScroll.js +105 -0
  420. package/dist/src/hooks/GraphQLConfig/index.js +1 -0
  421. package/dist/src/hooks/GraphQLConfig/useGraphQLConfig.js +54 -0
  422. package/dist/src/hooks/IdentifyUser/index.js +1 -0
  423. package/dist/src/hooks/IdentifyUser/useIdentifyUser.js +28 -0
  424. package/dist/src/hooks/ImageResolver/index.js +1 -0
  425. package/dist/src/hooks/ImageResolver/useImageResolver.js +45 -0
  426. package/dist/src/hooks/Intersection/index.js +1 -0
  427. package/dist/src/hooks/Intersection/useIntersection.js +20 -0
  428. package/dist/src/hooks/IsSmallScreen/index.js +1 -0
  429. package/dist/src/hooks/IsSmallScreen/useIsSmallScreen.js +16 -0
  430. package/dist/src/hooks/LocalStorageOperations/index.js +1 -0
  431. package/dist/src/hooks/LocalStorageOperations/useLocalStorageOperations.js +64 -0
  432. package/dist/src/hooks/MessageFilter/index.js +1 -0
  433. package/dist/src/hooks/MessageFilter/useMessageFilter.js +37 -0
  434. package/dist/src/hooks/MessageScrollObserver/index.js +1 -0
  435. package/dist/src/hooks/MessageScrollObserver/useMessageScrollObserver.js +35 -0
  436. package/dist/src/hooks/NewOrgConfig/index.js +1 -0
  437. package/dist/src/hooks/NewOrgConfig/useNewOrgConfig.js +5 -0
  438. package/dist/src/hooks/Search/index.js +1 -0
  439. package/dist/src/hooks/Search/useRecommendedProducts.js +35 -0
  440. package/dist/src/hooks/Search/useSearch.js +224 -0
  441. package/dist/src/hooks/Search/useSearchInput.js +192 -0
  442. package/dist/src/hooks/SearchOperations/index.js +1 -0
  443. package/dist/src/hooks/SearchOperations/useSearchOperations.js +78 -0
  444. package/dist/src/hooks/SessionStorageOperations/index.js +1 -0
  445. package/dist/src/hooks/SessionStorageOperations/useSessionStorageOperations.js +20 -0
  446. package/dist/src/hooks/ShopifyUrlOperations/index.js +1 -0
  447. package/dist/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.js +34 -0
  448. package/dist/src/hooks/SnapCalculator/index.js +1 -0
  449. package/dist/src/hooks/SnapCalculator/useSnapCalculator.js +22 -0
  450. package/dist/src/hooks/SystemSettingsContext/index.js +1 -0
  451. package/dist/src/hooks/SystemSettingsContext/useSystemSettingsContext.js +9 -0
  452. package/dist/src/hooks/TrackComponentVisibleEvent/index.js +1 -0
  453. package/dist/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +45 -0
  454. package/dist/src/hooks/UpdateAnalyticsProps/index.js +1 -0
  455. package/dist/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +43 -0
  456. package/dist/src/hooks/utils.js +116 -0
  457. package/dist/src/interceptors/index.js +1 -0
  458. package/dist/src/interceptors/useMessageInterceptor.js +24 -0
  459. package/dist/src/types/ApiResponse.js +1 -0
  460. package/dist/src/types/FilterAttribute.js +3 -0
  461. package/dist/src/types/Message.js +24 -0
  462. package/dist/src/types/Suggestion.js +3 -0
  463. package/dist/src/types/index.js +4 -0
  464. package/dist/src/util/colorVar.js +3 -0
  465. package/dist/src/util/configVersion.js +4 -0
  466. package/dist/src/util/domInsertion.js +16 -0
  467. package/dist/{systemSettingsContext-CYce8iqH.cjs → systemSettingsContext-068vQuP2.cjs} +2 -2
  468. package/dist/{systemSettingsContext-D9BZ9EwQ.js → systemSettingsContext-DPdDfVhj.js} +2 -2
  469. package/dist/types/index.d.ts +1 -1
  470. package/dist/{urlsParser-C-Vzs--G.cjs → urlsParser-bb8ciRFg.cjs} +1 -1
  471. package/dist/{urlsParser-G7Ocwg0M.js → urlsParser-v_1DKvyf.js} +1 -1
  472. package/dist/{useAppDetails-CSpw8teP.js → useAppDetails-BPXln8UE.js} +4 -4
  473. package/dist/{useAppDetails-DNG_-DI9.cjs → useAppDetails-eP2hBuid.cjs} +7 -7
  474. package/dist/{useGraphQLConfig-D1REGfFB.js → useGraphQLConfig-Btszi6cG.js} +2 -2
  475. package/dist/{useGraphQLConfig-CKtaLlQ-.cjs → useGraphQLConfig-v9veUbvJ.cjs} +2 -2
  476. package/dist/{useIntersection-BQMfiS4x.cjs → useIntersection-BcBCa890.cjs} +1 -1
  477. package/dist/{useIntersection-D-ol9eH8.js → useIntersection-BkMkuJcZ.js} +1 -1
  478. package/dist/{utils-sosM0bEk.d.ts → utils-BitIIghf.d.ts} +1 -1
  479. package/dist/{utils-hYTjy7hJ.cjs → utils-CJk5iwQI.cjs} +1 -1
  480. package/dist/utils-CWzuvlOR.js +607 -0
  481. package/dist/{utils-BBICrPjW.cjs → utils-CqVRbvfN.cjs} +1 -1
  482. package/dist/{utils-w4-xONRA.js → utils-DQhbbAnt.js} +1 -1
  483. package/dist/{utils-D_kATUj6.js → utils-D_nGHczN.js} +1 -1
  484. package/dist/utils-SjlIHajO.cjs +716 -0
  485. package/package.json +1 -1
  486. package/src/application/commerce-api.ts +2 -0
  487. package/src/application/utils/analyticsUtils.ts +31 -16
  488. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -1
  489. package/src/atoms/chat/chatState.ts +12 -7
  490. package/src/atoms/chat/replies.ts +42 -40
  491. package/src/contexts/amplitudeContext/amplitudeContext.tsx +116 -130
  492. package/dist/amplitudeContext-CMTvCsJC.d.ts +0 -52
  493. package/dist/amplitudeContext-ZkerrMUa.d.cts +0 -52
  494. package/dist/amplitudeTrackEventAtom-D9vs8dpE.cjs +0 -15
  495. package/dist/amplitudeTrackEventAtom-iEIu11Om.js +0 -8
  496. package/dist/chat-ChCtIEwh.js +0 -227
  497. package/dist/chatState-BYB77nbx.cjs +0 -120
  498. package/dist/chatState-CzH7APPP.js +0 -34
  499. package/dist/org-C2kLSSe9.cjs +0 -111
  500. package/dist/org-CIczyLRP.js +0 -32
  501. package/dist/utils-DGpMn2pp.js +0 -1364
  502. package/dist/utils-DqxtxrFe.cjs +0 -1546
  503. /package/dist/{featureFlagServiceContext-DgoR6euC.js → featureFlagServiceContext-CISyb90N.js} +0 -0
  504. /package/dist/{featureFlagServiceContext-b-rYgf0u.cjs → featureFlagServiceContext-Csgo-MUv.cjs} +0 -0
@@ -5,4 +5,4 @@ const newOrgConfigAtom = atom(null);
5
5
 
6
6
  //#endregion
7
7
  export { newOrgConfigAtom };
8
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQXRvbS1Ec2swZkpOUi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvb3JnL25ld09yZ0NvbmZpZ0F0b20udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IG5ld09yZ0NvbmZpZ0F0b20gPSBhdG9tPEdyYXBoUWxDb25maWdWYWx1ZXMgfCBudWxsPihudWxsKTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSxtQkFBbUIsS0FBaUMsS0FBSyJ9
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQXRvbS1CdVFFX3pQSy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvb3JnL25ld09yZ0NvbmZpZ0F0b20udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IG5ld09yZ0NvbmZpZ0F0b20gPSBhdG9tPEdyYXBoUWxDb25maWdWYWx1ZXMgfCBudWxsPihudWxsKTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSxtQkFBbUIsS0FBaUMsS0FBSyJ9
@@ -12,4 +12,4 @@ Object.defineProperty(exports, 'newOrgConfigAtom', {
12
12
  return newOrgConfigAtom;
13
13
  }
14
14
  });
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQXRvbS1oczVBMXBiWi5janMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2F0b21zL29yZy9uZXdPcmdDb25maWdBdG9tLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBuZXdPcmdDb25maWdBdG9tID0gYXRvbTxHcmFwaFFsQ29uZmlnVmFsdWVzIHwgbnVsbD4obnVsbCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsTUFBYSxtQ0FBb0QsS0FBSyJ9
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQXRvbS1ycllIbXAxYi5janMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2F0b21zL29yZy9uZXdPcmdDb25maWdBdG9tLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBuZXdPcmdDb25maWdBdG9tID0gYXRvbTxHcmFwaFFsQ29uZmlnVmFsdWVzIHwgbnVsbD4obnVsbCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsTUFBYSxtQ0FBb0QsS0FBSyJ9
@@ -1,7 +1,7 @@
1
- import { orgShortNameAtom } from "./enviveConfig-CBnoutoK.js";
2
- import { newOrgConfigAtom } from "./newOrgConfigAtom-Dsk0fJNR.js";
3
- import { FeatureFlagServiceProvider } from "./featureFlagServiceContext-CZj3qPX7.js";
4
- import { useColorsAndFrontendConfig } from "./useGraphQLConfig-D1REGfFB.js";
1
+ import { orgShortNameAtom } from "./enviveConfig-Ciq4ASoV.js";
2
+ import { newOrgConfigAtom } from "./newOrgConfigAtom-BuQE_zPK.js";
3
+ import { FeatureFlagServiceProvider } from "./featureFlagServiceContext-Cvp7NlpC.js";
4
+ import { useColorsAndFrontendConfig } from "./useGraphQLConfig-Btszi6cG.js";
5
5
  import React, { createContext, useContext, useMemo } from "react";
6
6
  import { useAtomValue, useSetAtom } from "jotai";
7
7
  import { jsx } from "react/jsx-runtime";
@@ -50,4 +50,4 @@ const useNewOrgConfigContext = () => {
50
50
 
51
51
  //#endregion
52
52
  export { NewOrgConfigProvider, useNewOrgConfigContext };
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQ29udGV4dC1CdXFEVWtQei5qcyIsIm5hbWVzIjpbIk5ld09yZ0NvbmZpZ1Byb3ZpZGVyOiBSZWFjdC5GQzxOZXdPcmdDb25maWdQcm92aWRlclByb3BzPiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9uZXdPcmdDb25maWdDb250ZXh0L25ld09yZ0NvbmZpZ0NvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCBSZWFjdE5vZGUsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUsIHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VDb2xvcnNBbmRGcm9udGVuZENvbmZpZyB9IGZyb20gJ3NyYy9ob29rcy9HcmFwaFFMQ29uZmlnL3VzZUdyYXBoUUxDb25maWcnO1xuaW1wb3J0IHsgb3JnU2hvcnROYW1lQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCB7IG5ld09yZ0NvbmZpZ0F0b20gfSBmcm9tICdzcmMvYXRvbXMvb3JnL25ld09yZ0NvbmZpZ0F0b20nO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnQ29udGV4dFR5cGUsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuXG5jb25zdCBOZXdPcmdDb25maWdDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxOZXdPcmdDb25maWdDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuaW50ZXJmYWNlIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgTmV3T3JnQ29uZmlnUHJvdmlkZXI6IFJlYWN0LkZDPE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBvcmdTaG9ydE5hbWUgPSB1c2VBdG9tVmFsdWUob3JnU2hvcnROYW1lQXRvbSk7XG4gIGNvbnN0IHNldE5ld09yZ0NvbmZpZyA9IHVzZVNldEF0b20obmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgY29uc3QgeyBkYXRhOiBuZXdDb25maWcsIGxvYWRpbmcsIGVycm9yIH0gPSB1c2VDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3JnU2hvcnROYW1lIHx8IGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiB7IC4uLm5ld0NvbmZpZywgbG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwgfTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7IC4uLm5ld0NvbmZpZywgbG9hZGluZzogZmFsc2UsIGVycm9yIH07XG4gICAgfVxuICAgIHNldE5ld09yZ0NvbmZpZyhuZXdDb25maWcpO1xuICAgIHJldHVybiB7IC4uLm5ld0NvbmZpZywgbG9hZGluZzogZmFsc2UsIGVycm9yOiBudWxsIH07XG4gIH0sIFtvcmdTaG9ydE5hbWUsIGxvYWRpbmcsIGVycm9yXSk7XG5cbiAgLy8gVE9ETzogUHJvdmlkZSBhY3R1YWwgZmVhdHVyZUdhdGVzIHdoZW4gYXZhaWxhYmxlIGluIGNvbWJpbmVkQ29uZmlnXG4gIGNvbnN0IGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXSA9IFtdO1xuXG4gIHJldHVybiAoXG4gICAgPE5ld09yZ0NvbmZpZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUdhdGVzPXtmZWF0dXJlR2F0ZXN9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgIDwvTmV3T3JnQ29uZmlnQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VOZXdPcmdDb25maWdDb250ZXh0ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChOZXdPcmdDb25maWdDb250ZXh0KTtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlTmV3T3JnQ29uZmlnQ29udGV4dCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgTmV3T3JnQ29uZmlnUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVFBLE1BQU0sc0JBQXNCLGNBQW1ELE9BQVU7QUFNekYsTUFBYUEsd0JBQTZELEVBQUUsZUFBZTtDQUN6RixNQUFNLGVBQWUsYUFBYSxpQkFBaUI7Q0FDbkQsTUFBTSxrQkFBa0IsV0FBVyxpQkFBaUI7Q0FFcEQsTUFBTSxFQUFFLE1BQU0sV0FBVyxTQUFTLFVBQVUsNEJBQTRCO0NBRXhFLE1BQU0sZUFBZSxjQUFjO0FBQ2pDLE1BQUksQ0FBQyxnQkFBZ0IsUUFDbkIsUUFBTztHQUFFLEdBQUc7R0FBVyxTQUFTO0dBQU0sT0FBTztHQUFNO0FBR3JELE1BQUksTUFDRixRQUFPO0dBQUUsR0FBRztHQUFXLFNBQVM7R0FBTztHQUFPO0FBRWhELGtCQUFnQixVQUFVO0FBQzFCLFNBQU87R0FBRSxHQUFHO0dBQVcsU0FBUztHQUFPLE9BQU87R0FBTTtJQUNuRDtFQUFDO0VBQWM7RUFBUztFQUFNLENBQUM7QUFLbEMsUUFDRSxvQkFBQyxvQkFBb0I7RUFBUyxPQUFPO1lBQ25DLG9CQUFDO0dBQTJCLGNBSmEsRUFBRTtHQUt4QztJQUMwQjtHQUNBOztBQUluQyxNQUFhLCtCQUErQjtDQUMxQyxNQUFNLFVBQVUsV0FBVyxvQkFBb0I7QUFDL0MsS0FBSSxZQUFZLE9BQ2QsT0FBTSxJQUFJLE1BQU0sb0VBQW9FO0FBRXRGLFFBQU8ifQ==
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQ29udGV4dC1ELWdVNXBwbC5qcyIsIm5hbWVzIjpbIk5ld09yZ0NvbmZpZ1Byb3ZpZGVyOiBSZWFjdC5GQzxOZXdPcmdDb25maWdQcm92aWRlclByb3BzPiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9uZXdPcmdDb25maWdDb250ZXh0L25ld09yZ0NvbmZpZ0NvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCBSZWFjdE5vZGUsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUsIHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VDb2xvcnNBbmRGcm9udGVuZENvbmZpZyB9IGZyb20gJ3NyYy9ob29rcy9HcmFwaFFMQ29uZmlnL3VzZUdyYXBoUUxDb25maWcnO1xuaW1wb3J0IHsgb3JnU2hvcnROYW1lQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCB7IG5ld09yZ0NvbmZpZ0F0b20gfSBmcm9tICdzcmMvYXRvbXMvb3JnL25ld09yZ0NvbmZpZ0F0b20nO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnQ29udGV4dFR5cGUsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuXG5jb25zdCBOZXdPcmdDb25maWdDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxOZXdPcmdDb25maWdDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuaW50ZXJmYWNlIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgTmV3T3JnQ29uZmlnUHJvdmlkZXI6IFJlYWN0LkZDPE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBvcmdTaG9ydE5hbWUgPSB1c2VBdG9tVmFsdWUob3JnU2hvcnROYW1lQXRvbSk7XG4gIGNvbnN0IHNldE5ld09yZ0NvbmZpZyA9IHVzZVNldEF0b20obmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgY29uc3QgeyBkYXRhOiBuZXdDb25maWcsIGxvYWRpbmcsIGVycm9yIH0gPSB1c2VDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3JnU2hvcnROYW1lIHx8IGxvYWRpbmcpIHtcbiAgICAgIHJldHVybiB7IC4uLm5ld0NvbmZpZywgbG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwgfTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7IC4uLm5ld0NvbmZpZywgbG9hZGluZzogZmFsc2UsIGVycm9yIH07XG4gICAgfVxuICAgIHNldE5ld09yZ0NvbmZpZyhuZXdDb25maWcpO1xuICAgIHJldHVybiB7IC4uLm5ld0NvbmZpZywgbG9hZGluZzogZmFsc2UsIGVycm9yOiBudWxsIH07XG4gIH0sIFtvcmdTaG9ydE5hbWUsIGxvYWRpbmcsIGVycm9yXSk7XG5cbiAgLy8gVE9ETzogUHJvdmlkZSBhY3R1YWwgZmVhdHVyZUdhdGVzIHdoZW4gYXZhaWxhYmxlIGluIGNvbWJpbmVkQ29uZmlnXG4gIGNvbnN0IGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXSA9IFtdO1xuXG4gIHJldHVybiAoXG4gICAgPE5ld09yZ0NvbmZpZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUdhdGVzPXtmZWF0dXJlR2F0ZXN9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgIDwvTmV3T3JnQ29uZmlnQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VOZXdPcmdDb25maWdDb250ZXh0ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChOZXdPcmdDb25maWdDb250ZXh0KTtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlTmV3T3JnQ29uZmlnQ29udGV4dCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgTmV3T3JnQ29uZmlnUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVFBLE1BQU0sc0JBQXNCLGNBQW1ELE9BQVU7QUFNekYsTUFBYUEsd0JBQTZELEVBQUUsZUFBZTtDQUN6RixNQUFNLGVBQWUsYUFBYSxpQkFBaUI7Q0FDbkQsTUFBTSxrQkFBa0IsV0FBVyxpQkFBaUI7Q0FFcEQsTUFBTSxFQUFFLE1BQU0sV0FBVyxTQUFTLFVBQVUsNEJBQTRCO0NBRXhFLE1BQU0sZUFBZSxjQUFjO0FBQ2pDLE1BQUksQ0FBQyxnQkFBZ0IsUUFDbkIsUUFBTztHQUFFLEdBQUc7R0FBVyxTQUFTO0dBQU0sT0FBTztHQUFNO0FBR3JELE1BQUksTUFDRixRQUFPO0dBQUUsR0FBRztHQUFXLFNBQVM7R0FBTztHQUFPO0FBRWhELGtCQUFnQixVQUFVO0FBQzFCLFNBQU87R0FBRSxHQUFHO0dBQVcsU0FBUztHQUFPLE9BQU87R0FBTTtJQUNuRDtFQUFDO0VBQWM7RUFBUztFQUFNLENBQUM7QUFLbEMsUUFDRSxvQkFBQyxvQkFBb0I7RUFBUyxPQUFPO1lBQ25DLG9CQUFDO0dBQTJCLGNBSmEsRUFBRTtHQUt4QztJQUMwQjtHQUNBOztBQUluQyxNQUFhLCtCQUErQjtDQUMxQyxNQUFNLFVBQVUsV0FBVyxvQkFBb0I7QUFDL0MsS0FBSSxZQUFZLE9BQ2QsT0FBTSxJQUFJLE1BQU0sb0VBQW9FO0FBRXRGLFFBQU8ifQ==
@@ -1,8 +1,8 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_enviveConfig = require('./enviveConfig-BwIaVAAm.cjs');
3
- const require_newOrgConfigAtom = require('./newOrgConfigAtom-hs5A1pbZ.cjs');
4
- const require_featureFlagServiceContext = require('./featureFlagServiceContext-BkamHViU.cjs');
5
- const require_useGraphQLConfig = require('./useGraphQLConfig-CKtaLlQ-.cjs');
2
+ const require_enviveConfig = require('./enviveConfig-Dp80h9yu.cjs');
3
+ const require_newOrgConfigAtom = require('./newOrgConfigAtom-rrYHmp1b.cjs');
4
+ const require_featureFlagServiceContext = require('./featureFlagServiceContext-DHtkQAtq.cjs');
5
+ const require_useGraphQLConfig = require('./useGraphQLConfig-v9veUbvJ.cjs');
6
6
  let react = require("react");
7
7
  react = require_chunk.__toESM(react);
8
8
  let jotai = require("jotai");
@@ -65,4 +65,4 @@ Object.defineProperty(exports, 'useNewOrgConfigContext', {
65
65
  return useNewOrgConfigContext;
66
66
  }
67
67
  });
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQ29udGV4dC1ONENRenZsSC5janMiLCJuYW1lcyI6WyJOZXdPcmdDb25maWdQcm92aWRlcjogUmVhY3QuRkM8TmV3T3JnQ29uZmlnUHJvdmlkZXJQcm9wcz4iLCJvcmdTaG9ydE5hbWVBdG9tIiwibmV3T3JnQ29uZmlnQXRvbSIsInVzZUNvbG9yc0FuZEZyb250ZW5kQ29uZmlnIiwiRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvbmV3T3JnQ29uZmlnQ29udGV4dC9uZXdPcmdDb25maWdDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgUmVhY3ROb2RlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ29sb3JzQW5kRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvaG9va3MvR3JhcGhRTENvbmZpZy91c2VHcmFwaFFMQ29uZmlnJztcbmltcG9ydCB7IG9yZ1Nob3J0TmFtZUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBuZXdPcmdDb25maWdBdG9tIH0gZnJvbSAnc3JjL2F0b21zL29yZy9uZXdPcmdDb25maWdBdG9tJztcbmltcG9ydCB7IE5ld09yZ0NvbmZpZ0NvbnRleHRUeXBlLCBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcblxuY29uc3QgTmV3T3JnQ29uZmlnQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TmV3T3JnQ29uZmlnQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBOZXdPcmdDb25maWdQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IE5ld09yZ0NvbmZpZ1Byb3ZpZGVyOiBSZWFjdC5GQzxOZXdPcmdDb25maWdQcm92aWRlclByb3BzPiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3Qgb3JnU2hvcnROYW1lID0gdXNlQXRvbVZhbHVlKG9yZ1Nob3J0TmFtZUF0b20pO1xuICBjb25zdCBzZXROZXdPcmdDb25maWcgPSB1c2VTZXRBdG9tKG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGNvbnN0IHsgZGF0YTogbmV3Q29uZmlnLCBsb2FkaW5nLCBlcnJvciB9ID0gdXNlQ29sb3JzQW5kRnJvbnRlbmRDb25maWcoKTtcblxuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW9yZ1Nob3J0TmFtZSB8fCBsb2FkaW5nKSB7XG4gICAgICByZXR1cm4geyAuLi5uZXdDb25maWcsIGxvYWRpbmc6IHRydWUsIGVycm9yOiBudWxsIH07XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICByZXR1cm4geyAuLi5uZXdDb25maWcsIGxvYWRpbmc6IGZhbHNlLCBlcnJvciB9O1xuICAgIH1cbiAgICBzZXROZXdPcmdDb25maWcobmV3Q29uZmlnKTtcbiAgICByZXR1cm4geyAuLi5uZXdDb25maWcsIGxvYWRpbmc6IGZhbHNlLCBlcnJvcjogbnVsbCB9O1xuICB9LCBbb3JnU2hvcnROYW1lLCBsb2FkaW5nLCBlcnJvcl0pO1xuXG4gIC8vIFRPRE86IFByb3ZpZGUgYWN0dWFsIGZlYXR1cmVHYXRlcyB3aGVuIGF2YWlsYWJsZSBpbiBjb21iaW5lZENvbmZpZ1xuICBjb25zdCBmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10gPSBbXTtcblxuICByZXR1cm4gKFxuICAgIDxOZXdPcmdDb25maWdDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAgPEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIGZlYXR1cmVHYXRlcz17ZmVhdHVyZUdhdGVzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICA8L05ld09yZ0NvbmZpZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlTmV3T3JnQ29uZmlnQ29udGV4dCA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTmV3T3JnQ29uZmlnQ29udGV4dCk7XG4gIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZU5ld09yZ0NvbmZpZ0NvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsTUFBTSwrQ0FBeUUsT0FBVTtBQU16RixNQUFhQSx3QkFBNkQsRUFBRSxlQUFlO0NBQ3pGLE1BQU0sdUNBQTRCQyxzQ0FBaUI7Q0FDbkQsTUFBTSx3Q0FBNkJDLDBDQUFpQjtDQUVwRCxNQUFNLEVBQUUsTUFBTSxXQUFXLFNBQVMsVUFBVUMscURBQTRCO0NBRXhFLE1BQU0sd0NBQTZCO0FBQ2pDLE1BQUksQ0FBQyxnQkFBZ0IsUUFDbkIsUUFBTztHQUFFLEdBQUc7R0FBVyxTQUFTO0dBQU0sT0FBTztHQUFNO0FBR3JELE1BQUksTUFDRixRQUFPO0dBQUUsR0FBRztHQUFXLFNBQVM7R0FBTztHQUFPO0FBRWhELGtCQUFnQixVQUFVO0FBQzFCLFNBQU87R0FBRSxHQUFHO0dBQVcsU0FBUztHQUFPLE9BQU87R0FBTTtJQUNuRDtFQUFDO0VBQWM7RUFBUztFQUFNLENBQUM7QUFLbEMsUUFDRSwyQ0FBQyxvQkFBb0I7RUFBUyxPQUFPO1lBQ25DLDJDQUFDQztHQUEyQixjQUphLEVBQUU7R0FLeEM7SUFDMEI7R0FDQTs7QUFJbkMsTUFBYSwrQkFBK0I7Q0FDMUMsTUFBTSxnQ0FBcUIsb0JBQW9CO0FBQy9DLEtBQUksWUFBWSxPQUNkLE9BQU0sSUFBSSxNQUFNLG9FQUFvRTtBQUV0RixRQUFPIn0=
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3T3JnQ29uZmlnQ29udGV4dC1kM1JIbDQzMC5janMiLCJuYW1lcyI6WyJOZXdPcmdDb25maWdQcm92aWRlcjogUmVhY3QuRkM8TmV3T3JnQ29uZmlnUHJvdmlkZXJQcm9wcz4iLCJvcmdTaG9ydE5hbWVBdG9tIiwibmV3T3JnQ29uZmlnQXRvbSIsInVzZUNvbG9yc0FuZEZyb250ZW5kQ29uZmlnIiwiRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvbmV3T3JnQ29uZmlnQ29udGV4dC9uZXdPcmdDb25maWdDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgUmVhY3ROb2RlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ29sb3JzQW5kRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvaG9va3MvR3JhcGhRTENvbmZpZy91c2VHcmFwaFFMQ29uZmlnJztcbmltcG9ydCB7IG9yZ1Nob3J0TmFtZUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBuZXdPcmdDb25maWdBdG9tIH0gZnJvbSAnc3JjL2F0b21zL29yZy9uZXdPcmdDb25maWdBdG9tJztcbmltcG9ydCB7IE5ld09yZ0NvbmZpZ0NvbnRleHRUeXBlLCBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcblxuY29uc3QgTmV3T3JnQ29uZmlnQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TmV3T3JnQ29uZmlnQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBOZXdPcmdDb25maWdQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IE5ld09yZ0NvbmZpZ1Byb3ZpZGVyOiBSZWFjdC5GQzxOZXdPcmdDb25maWdQcm92aWRlclByb3BzPiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3Qgb3JnU2hvcnROYW1lID0gdXNlQXRvbVZhbHVlKG9yZ1Nob3J0TmFtZUF0b20pO1xuICBjb25zdCBzZXROZXdPcmdDb25maWcgPSB1c2VTZXRBdG9tKG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGNvbnN0IHsgZGF0YTogbmV3Q29uZmlnLCBsb2FkaW5nLCBlcnJvciB9ID0gdXNlQ29sb3JzQW5kRnJvbnRlbmRDb25maWcoKTtcblxuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW9yZ1Nob3J0TmFtZSB8fCBsb2FkaW5nKSB7XG4gICAgICByZXR1cm4geyAuLi5uZXdDb25maWcsIGxvYWRpbmc6IHRydWUsIGVycm9yOiBudWxsIH07XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICByZXR1cm4geyAuLi5uZXdDb25maWcsIGxvYWRpbmc6IGZhbHNlLCBlcnJvciB9O1xuICAgIH1cbiAgICBzZXROZXdPcmdDb25maWcobmV3Q29uZmlnKTtcbiAgICByZXR1cm4geyAuLi5uZXdDb25maWcsIGxvYWRpbmc6IGZhbHNlLCBlcnJvcjogbnVsbCB9O1xuICB9LCBbb3JnU2hvcnROYW1lLCBsb2FkaW5nLCBlcnJvcl0pO1xuXG4gIC8vIFRPRE86IFByb3ZpZGUgYWN0dWFsIGZlYXR1cmVHYXRlcyB3aGVuIGF2YWlsYWJsZSBpbiBjb21iaW5lZENvbmZpZ1xuICBjb25zdCBmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10gPSBbXTtcblxuICByZXR1cm4gKFxuICAgIDxOZXdPcmdDb25maWdDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAgPEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIGZlYXR1cmVHYXRlcz17ZmVhdHVyZUdhdGVzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICA8L05ld09yZ0NvbmZpZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlTmV3T3JnQ29uZmlnQ29udGV4dCA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTmV3T3JnQ29uZmlnQ29udGV4dCk7XG4gIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZU5ld09yZ0NvbmZpZ0NvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsTUFBTSwrQ0FBeUUsT0FBVTtBQU16RixNQUFhQSx3QkFBNkQsRUFBRSxlQUFlO0NBQ3pGLE1BQU0sdUNBQTRCQyxzQ0FBaUI7Q0FDbkQsTUFBTSx3Q0FBNkJDLDBDQUFpQjtDQUVwRCxNQUFNLEVBQUUsTUFBTSxXQUFXLFNBQVMsVUFBVUMscURBQTRCO0NBRXhFLE1BQU0sd0NBQTZCO0FBQ2pDLE1BQUksQ0FBQyxnQkFBZ0IsUUFDbkIsUUFBTztHQUFFLEdBQUc7R0FBVyxTQUFTO0dBQU0sT0FBTztHQUFNO0FBR3JELE1BQUksTUFDRixRQUFPO0dBQUUsR0FBRztHQUFXLFNBQVM7R0FBTztHQUFPO0FBRWhELGtCQUFnQixVQUFVO0FBQzFCLFNBQU87R0FBRSxHQUFHO0dBQVcsU0FBUztHQUFPLE9BQU87R0FBTTtJQUNuRDtFQUFDO0VBQWM7RUFBUztFQUFNLENBQUM7QUFLbEMsUUFDRSwyQ0FBQyxvQkFBb0I7RUFBUyxPQUFPO1lBQ25DLDJDQUFDQztHQUEyQixjQUphLEVBQUU7R0FLeEM7SUFDMEI7R0FDQTs7QUFJbkMsTUFBYSwrQkFBK0I7Q0FDMUMsTUFBTSxnQ0FBcUIsb0JBQW9CO0FBQy9DLEtBQUksWUFBWSxPQUNkLE9BQU0sSUFBSSxNQUFNLG9FQUFvRTtBQUV0RixRQUFPIn0=
@@ -25,4 +25,4 @@ declare class SelectorFactory {
25
25
  }
26
26
  //#endregion
27
27
  export { NodeSelector, SelectorFactory };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZVNlbGVjdG9yLTBnSjhYYXlmLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL25vZGVTZWxlY3Rvci5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIE5vZGVTZWxlY3RvciB7XG4gICAgcHJpdmF0ZSBwYXR0ZXJuO1xuICAgIHByaXZhdGUgcm9vdDtcbiAgICBjb25zdHJ1Y3RvcihwYXR0ZXJuOiBzdHJpbmcpO1xuICAgIGdldFBhdHRlcm4oKTogc3RyaW5nO1xuICAgIHNldFJvb3Qocm9vdDogRG9jdW1lbnQpOiB2b2lkO1xuICAgIGdldFJvb3QoKTogRG9jdW1lbnQ7XG4gICAgYWJzdHJhY3QgcGFyc2UoKTogTm9kZSB8IG51bGw7XG59XG5kZWNsYXJlIGNsYXNzIENoYWluU2VsZWN0b3IgZXh0ZW5kcyBOb2RlU2VsZWN0b3Ige1xuICAgIHBhcnNlKCk6IE5vZGUgfCBudWxsO1xufVxuZGVjbGFyZSBjbGFzcyBFbXB0eSBleHRlbmRzIE5vZGVTZWxlY3RvciB7XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBwYXJzZSgpOiBOb2RlIHwgbnVsbDtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNlbGVjdG9yRmFjdG9yeSB7XG4gICAgc3RhdGljIHBhcnNlKGNvbXBvc2VkU2VsZWN0b3I/OiBzdHJpbmcpOiBOb2RlU2VsZWN0b3I7XG4gICAgc3RhdGljIGNoZWNrKHNlbGVjdG9yPzogTm9kZVNlbGVjdG9yKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyBjaGFpbihwYXR0ZXJuPzogc3RyaW5nKTogRW1wdHkgfCBDaGFpblNlbGVjdG9yO1xuICAgIHN0YXRpYyBpZChwYXR0ZXJuPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyBxdWVyeShwYXR0ZXJuPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyB4cGF0aChwYXR0ZXJuPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xufVxuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVyxlQUFlO0NBQUM7T0FBVztPQUFLO09BQUE7Q0FBQTtBQUMzQyxJQUFJLGdCQUFlO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkIsSUFBSSxRQUFRO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDaEIsSUFBVyxrQkFBa0I7Q0FBQztPQUFFO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZVNlbGVjdG9yLUJBS2cxaF95LmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL25vZGVTZWxlY3Rvci5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIE5vZGVTZWxlY3RvciB7XG4gICAgcHJpdmF0ZSBwYXR0ZXJuO1xuICAgIHByaXZhdGUgcm9vdDtcbiAgICBjb25zdHJ1Y3RvcihwYXR0ZXJuOiBzdHJpbmcpO1xuICAgIGdldFBhdHRlcm4oKTogc3RyaW5nO1xuICAgIHNldFJvb3Qocm9vdDogRG9jdW1lbnQpOiB2b2lkO1xuICAgIGdldFJvb3QoKTogRG9jdW1lbnQ7XG4gICAgYWJzdHJhY3QgcGFyc2UoKTogTm9kZSB8IG51bGw7XG59XG5kZWNsYXJlIGNsYXNzIENoYWluU2VsZWN0b3IgZXh0ZW5kcyBOb2RlU2VsZWN0b3Ige1xuICAgIHBhcnNlKCk6IE5vZGUgfCBudWxsO1xufVxuZGVjbGFyZSBjbGFzcyBFbXB0eSBleHRlbmRzIE5vZGVTZWxlY3RvciB7XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBwYXJzZSgpOiBOb2RlIHwgbnVsbDtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNlbGVjdG9yRmFjdG9yeSB7XG4gICAgc3RhdGljIHBhcnNlKGNvbXBvc2VkU2VsZWN0b3I/OiBzdHJpbmcpOiBOb2RlU2VsZWN0b3I7XG4gICAgc3RhdGljIGNoZWNrKHNlbGVjdG9yPzogTm9kZVNlbGVjdG9yKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyBjaGFpbihwYXR0ZXJuPzogc3RyaW5nKTogRW1wdHkgfCBDaGFpblNlbGVjdG9yO1xuICAgIHN0YXRpYyBpZChwYXR0ZXJuPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyBxdWVyeShwYXR0ZXJuPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyB4cGF0aChwYXR0ZXJuPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xufVxuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVyxlQUFlO0NBQUM7T0FBVztPQUFLO09BQUE7Q0FBQTtBQUMzQyxJQUFJLGdCQUFlO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkIsSUFBSSxRQUFRO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDaEIsSUFBVyxrQkFBa0I7Q0FBQztPQUFFO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
@@ -25,4 +25,4 @@ declare class SelectorFactory {
25
25
  }
26
26
  //#endregion
27
27
  export { NodeSelector, SelectorFactory };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZVNlbGVjdG9yLUNqLVhsMUxQLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9ub2RlU2VsZWN0b3IuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBOb2RlU2VsZWN0b3Ige1xuICAgIHByaXZhdGUgcGF0dGVybjtcbiAgICBwcml2YXRlIHJvb3Q7XG4gICAgY29uc3RydWN0b3IocGF0dGVybjogc3RyaW5nKTtcbiAgICBnZXRQYXR0ZXJuKCk6IHN0cmluZztcbiAgICBzZXRSb290KHJvb3Q6IERvY3VtZW50KTogdm9pZDtcbiAgICBnZXRSb290KCk6IERvY3VtZW50O1xuICAgIGFic3RyYWN0IHBhcnNlKCk6IE5vZGUgfCBudWxsO1xufVxuZGVjbGFyZSBjbGFzcyBDaGFpblNlbGVjdG9yIGV4dGVuZHMgTm9kZVNlbGVjdG9yIHtcbiAgICBwYXJzZSgpOiBOb2RlIHwgbnVsbDtcbn1cbmRlY2xhcmUgY2xhc3MgRW1wdHkgZXh0ZW5kcyBOb2RlU2VsZWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKCk7XG4gICAgcGFyc2UoKTogTm9kZSB8IG51bGw7XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTZWxlY3RvckZhY3Rvcnkge1xuICAgIHN0YXRpYyBwYXJzZShjb21wb3NlZFNlbGVjdG9yPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyBjaGVjayhzZWxlY3Rvcj86IE5vZGVTZWxlY3Rvcik6IE5vZGVTZWxlY3RvcjtcbiAgICBzdGF0aWMgY2hhaW4ocGF0dGVybj86IHN0cmluZyk6IEVtcHR5IHwgQ2hhaW5TZWxlY3RvcjtcbiAgICBzdGF0aWMgaWQocGF0dGVybj86IHN0cmluZyk6IE5vZGVTZWxlY3RvcjtcbiAgICBzdGF0aWMgcXVlcnkocGF0dGVybj86IHN0cmluZyk6IE5vZGVTZWxlY3RvcjtcbiAgICBzdGF0aWMgeHBhdGgocGF0dGVybj86IHN0cmluZyk6IE5vZGVTZWxlY3Rvcjtcbn1cbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcsZUFBZTtDQUFDO09BQVU7T0FBTTtPQUFBO0NBQUE7QUFDM0MsSUFBSSxnQkFBZTtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ25CLElBQUksUUFBUTtDQUFDO09BQUc7T0FBQTtDQUFBO0FBQ2hCLElBQVcsa0JBQWtCO0NBQUM7T0FBRTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZVNlbGVjdG9yLUJZRUF5cnNqLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9ub2RlU2VsZWN0b3IuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBOb2RlU2VsZWN0b3Ige1xuICAgIHByaXZhdGUgcGF0dGVybjtcbiAgICBwcml2YXRlIHJvb3Q7XG4gICAgY29uc3RydWN0b3IocGF0dGVybjogc3RyaW5nKTtcbiAgICBnZXRQYXR0ZXJuKCk6IHN0cmluZztcbiAgICBzZXRSb290KHJvb3Q6IERvY3VtZW50KTogdm9pZDtcbiAgICBnZXRSb290KCk6IERvY3VtZW50O1xuICAgIGFic3RyYWN0IHBhcnNlKCk6IE5vZGUgfCBudWxsO1xufVxuZGVjbGFyZSBjbGFzcyBDaGFpblNlbGVjdG9yIGV4dGVuZHMgTm9kZVNlbGVjdG9yIHtcbiAgICBwYXJzZSgpOiBOb2RlIHwgbnVsbDtcbn1cbmRlY2xhcmUgY2xhc3MgRW1wdHkgZXh0ZW5kcyBOb2RlU2VsZWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKCk7XG4gICAgcGFyc2UoKTogTm9kZSB8IG51bGw7XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTZWxlY3RvckZhY3Rvcnkge1xuICAgIHN0YXRpYyBwYXJzZShjb21wb3NlZFNlbGVjdG9yPzogc3RyaW5nKTogTm9kZVNlbGVjdG9yO1xuICAgIHN0YXRpYyBjaGVjayhzZWxlY3Rvcj86IE5vZGVTZWxlY3Rvcik6IE5vZGVTZWxlY3RvcjtcbiAgICBzdGF0aWMgY2hhaW4ocGF0dGVybj86IHN0cmluZyk6IEVtcHR5IHwgQ2hhaW5TZWxlY3RvcjtcbiAgICBzdGF0aWMgaWQocGF0dGVybj86IHN0cmluZyk6IE5vZGVTZWxlY3RvcjtcbiAgICBzdGF0aWMgcXVlcnkocGF0dGVybj86IHN0cmluZyk6IE5vZGVTZWxlY3RvcjtcbiAgICBzdGF0aWMgeHBhdGgocGF0dGVybj86IHN0cmluZyk6IE5vZGVTZWxlY3Rvcjtcbn1cbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVcsZUFBZTtDQUFDO09BQVc7T0FBSztPQUFBO0NBQUE7QUFDM0MsSUFBSSxnQkFBZTtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ25CLElBQUksUUFBUTtDQUFDO09BQUc7T0FBQTtDQUFBO0FBQ2hCLElBQVcsa0JBQWtCO0NBQUM7T0FBRTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
@@ -0,0 +1,32 @@
1
+ import { atom } from "jotai";
2
+
3
+ //#region src/atoms/org/customerService.ts
4
+ const isBusinessHoursAtom = atom(true);
5
+ const isCustomerServiceOpenAtom = atom(false);
6
+ const customerServiceResponseAtom = atom();
7
+ const customerServiceChatStateAtom = atom();
8
+ const customerServiceAttachment = atom();
9
+
10
+ //#endregion
11
+ //#region src/atoms/org/graphqlConfig.ts
12
+ const internalGraphQLColorsConfigAtom = atom(void 0);
13
+ const internalGraphQLFrontendConfigAtom = atom(void 0);
14
+ const orgIdAtom = atom(void 0);
15
+ const featureFlagServiceAtom = atom(void 0);
16
+ const frontendConfigAtom = atom((get) => get(internalGraphQLFrontendConfigAtom), (_, set, value) => {
17
+ set(internalGraphQLFrontendConfigAtom, value);
18
+ });
19
+
20
+ //#endregion
21
+ //#region src/atoms/org/orgAnalyticsConfig.ts
22
+ const internalOrgAnalyticsConfigAtom = atom(void 0);
23
+ const orgAnalyticsConfigAtom = atom((get) => get(internalOrgAnalyticsConfigAtom), (_, set, value) => {
24
+ set(internalOrgAnalyticsConfigAtom, value);
25
+ });
26
+ const orgAnalyticsAmplitudeConfigAtom = atom((get) => get(orgAnalyticsConfigAtom)?.amplitude);
27
+ const orgAnalyticsCustomerServiceConfigAtom = atom((get) => get(orgAnalyticsConfigAtom)?.customerService);
28
+ const orgAnalyticsGoogleAnalyticsConfigAtom = atom((get) => get(orgAnalyticsConfigAtom)?.googleAnalytics);
29
+
30
+ //#endregion
31
+ export { customerServiceAttachment, customerServiceChatStateAtom, customerServiceResponseAtom, featureFlagServiceAtom, frontendConfigAtom, internalGraphQLColorsConfigAtom, isBusinessHoursAtom, isCustomerServiceOpenAtom, orgAnalyticsAmplitudeConfigAtom, orgAnalyticsConfigAtom, orgAnalyticsCustomerServiceConfigAtom, orgAnalyticsGoogleAnalyticsConfigAtom, orgIdAtom };
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLTE1RjEyOEFoLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9vcmcvY3VzdG9tZXJTZXJ2aWNlLnRzIiwiLi4vc3JjL2F0b21zL29yZy9ncmFwaHFsQ29uZmlnLnRzIiwiLi4vc3JjL2F0b21zL29yZy9vcmdBbmFseXRpY3NDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0YWNobWVudFJlcXVlc3QsIEN1c3RTZXJ2aWNlQ29udmVyc2F0aW9uTWVzc2FnZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgYXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IENoYXRTdGF0ZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXNCdXNpbmVzc0hvdXJzQXRvbSA9IGF0b208Ym9vbGVhbj4odHJ1ZSk7XG5leHBvcnQgY29uc3QgaXNDdXN0b21lclNlcnZpY2VPcGVuQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuZXhwb3J0IGNvbnN0IGN1c3RvbWVyU2VydmljZVJlc3BvbnNlQXRvbSA9IGF0b208Q3VzdFNlcnZpY2VDb252ZXJzYXRpb25NZXNzYWdlcz4oKTtcbmV4cG9ydCBjb25zdCBjdXN0b21lclNlcnZpY2VDaGF0U3RhdGVBdG9tID0gYXRvbTxDaGF0U3RhdGU+KCk7XG5leHBvcnQgY29uc3QgY3VzdG9tZXJTZXJ2aWNlQXR0YWNobWVudCA9IGF0b208QXR0YWNobWVudFJlcXVlc3QgfCB1bmRlZmluZWQ+KCk7XG4iLCJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nLCBGcm9udGVuZENvbmZpZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdDb250ZXh0VHlwZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnOyAvLyBJbXBvcnQgRmVhdHVyZUZsYWdDb250ZXh0VHlwZSBmcm9tIG5ldyBjb250ZXh0XG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbEdyYXBoUUxDb2xvcnNDb25maWdBdG9tID0gYXRvbTxDb2xvck1hcHBpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5jb25zdCBpbnRlcm5hbEdyYXBoUUxGcm9udGVuZENvbmZpZ0F0b20gPSBhdG9tPEZyb250ZW5kQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3Qgb3JnSWRBdG9tID0gYXRvbTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7IC8vIE5ldyBhdG9tIGZvciBvcmdJZFxuZXhwb3J0IGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZUF0b20gPSBhdG9tPEZlYXR1cmVGbGFnQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7IC8vIE5ldyBhdG9tIGZvciBGZWF0dXJlRmxhZ1NlcnZpY2VcblxuZXhwb3J0IGNvbnN0IGZyb250ZW5kQ29uZmlnQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbEdyYXBoUUxGcm9udGVuZENvbmZpZ0F0b20pLFxuICAoXywgc2V0LCB2YWx1ZTogRnJvbnRlbmRDb25maWcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBzZXQoaW50ZXJuYWxHcmFwaFFMRnJvbnRlbmRDb25maWdBdG9tLCB2YWx1ZSk7XG4gIH0sXG4pO1xuIiwiaW1wb3J0IHsgYXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7XG4gIE9yZ0FuYWx5dGljc0NvbmZpZyxcbiAgT3JnQW5hbHl0aWNzQW1wbGl0dWRlQ29uZmlnLFxuICBPcmdBbmFseXRpY3NDdXN0b21lclNlcnZpY2VDb25maWcsXG4gIE9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZyxcbn0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmNvbnN0IGludGVybmFsT3JnQW5hbHl0aWNzQ29uZmlnQXRvbSA9IGF0b208T3JnQW5hbHl0aWNzQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3Qgb3JnQW5hbHl0aWNzQ29uZmlnQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbE9yZ0FuYWx5dGljc0NvbmZpZ0F0b20pLFxuICAoXywgc2V0LCB2YWx1ZTogT3JnQW5hbHl0aWNzQ29uZmlnKSA9PiB7XG4gICAgc2V0KGludGVybmFsT3JnQW5hbHl0aWNzQ29uZmlnQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IG9yZ0FuYWx5dGljc0FtcGxpdHVkZUNvbmZpZ0F0b20gPSBhdG9tPE9yZ0FuYWx5dGljc0FtcGxpdHVkZUNvbmZpZyB8IHVuZGVmaW5lZD4oXG4gIChnZXQpID0+IGdldChvcmdBbmFseXRpY3NDb25maWdBdG9tKT8uYW1wbGl0dWRlLFxuKTtcblxuZXhwb3J0IGNvbnN0IG9yZ0FuYWx5dGljc0N1c3RvbWVyU2VydmljZUNvbmZpZ0F0b20gPSBhdG9tPFxuICBPcmdBbmFseXRpY3NDdXN0b21lclNlcnZpY2VDb25maWcgfCB1bmRlZmluZWRcbj4oKGdldCkgPT4gZ2V0KG9yZ0FuYWx5dGljc0NvbmZpZ0F0b20pPy5jdXN0b21lclNlcnZpY2UpO1xuXG5leHBvcnQgY29uc3Qgb3JnQW5hbHl0aWNzR29vZ2xlQW5hbHl0aWNzQ29uZmlnQXRvbSA9IGF0b208XG4gIE9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZyB8IHVuZGVmaW5lZFxuPigoZ2V0KSA9PiBnZXQob3JnQW5hbHl0aWNzQ29uZmlnQXRvbSk/Lmdvb2dsZUFuYWx5dGljcyk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUlBLE1BQWEsc0JBQXNCLEtBQWMsS0FBSztBQUN0RCxNQUFhLDRCQUE0QixLQUFjLE1BQU07QUFDN0QsTUFBYSw4QkFBOEIsTUFBdUM7QUFDbEYsTUFBYSwrQkFBK0IsTUFBaUI7QUFDN0QsTUFBYSw0QkFBNEIsTUFBcUM7Ozs7QUNKOUUsTUFBYSxrQ0FBa0MsS0FBK0IsT0FBVTtBQUN4RixNQUFNLG9DQUFvQyxLQUFpQyxPQUFVO0FBRXJGLE1BQWEsWUFBWSxLQUF5QixPQUFVO0FBQzVELE1BQWEseUJBQXlCLEtBQXlDLE9BQVU7QUFFekYsTUFBYSxxQkFBcUIsTUFDL0IsUUFBUSxJQUFJLGtDQUFrQyxHQUM5QyxHQUFHLEtBQUssVUFBc0M7QUFDN0MsS0FBSSxtQ0FBbUMsTUFBTTtFQUVoRDs7OztBQ1BELE1BQU0saUNBQWlDLEtBQXFDLE9BQVU7QUFFdEYsTUFBYSx5QkFBeUIsTUFDbkMsUUFBUSxJQUFJLCtCQUErQixHQUMzQyxHQUFHLEtBQUssVUFBOEI7QUFDckMsS0FBSSxnQ0FBZ0MsTUFBTTtFQUU3QztBQUVELE1BQWEsa0NBQWtDLE1BQzVDLFFBQVEsSUFBSSx1QkFBdUIsRUFBRSxVQUN2QztBQUVELE1BQWEsd0NBQXdDLE1BRWxELFFBQVEsSUFBSSx1QkFBdUIsRUFBRSxnQkFBZ0I7QUFFeEQsTUFBYSx3Q0FBd0MsTUFFbEQsUUFBUSxJQUFJLHVCQUF1QixFQUFFLGdCQUFnQiJ9
@@ -0,0 +1,111 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ let jotai = require("jotai");
3
+ jotai = require_chunk.__toESM(jotai);
4
+
5
+ //#region src/atoms/org/customerService.ts
6
+ const isBusinessHoursAtom = (0, jotai.atom)(true);
7
+ const isCustomerServiceOpenAtom = (0, jotai.atom)(false);
8
+ const customerServiceResponseAtom = (0, jotai.atom)();
9
+ const customerServiceChatStateAtom = (0, jotai.atom)();
10
+ const customerServiceAttachment = (0, jotai.atom)();
11
+
12
+ //#endregion
13
+ //#region src/atoms/org/graphqlConfig.ts
14
+ const internalGraphQLColorsConfigAtom = (0, jotai.atom)(void 0);
15
+ const internalGraphQLFrontendConfigAtom = (0, jotai.atom)(void 0);
16
+ const orgIdAtom = (0, jotai.atom)(void 0);
17
+ const featureFlagServiceAtom = (0, jotai.atom)(void 0);
18
+ const frontendConfigAtom = (0, jotai.atom)((get) => get(internalGraphQLFrontendConfigAtom), (_, set, value) => {
19
+ set(internalGraphQLFrontendConfigAtom, value);
20
+ });
21
+
22
+ //#endregion
23
+ //#region src/atoms/org/orgAnalyticsConfig.ts
24
+ const internalOrgAnalyticsConfigAtom = (0, jotai.atom)(void 0);
25
+ const orgAnalyticsConfigAtom = (0, jotai.atom)((get) => get(internalOrgAnalyticsConfigAtom), (_, set, value) => {
26
+ set(internalOrgAnalyticsConfigAtom, value);
27
+ });
28
+ const orgAnalyticsAmplitudeConfigAtom = (0, jotai.atom)((get) => get(orgAnalyticsConfigAtom)?.amplitude);
29
+ const orgAnalyticsCustomerServiceConfigAtom = (0, jotai.atom)((get) => get(orgAnalyticsConfigAtom)?.customerService);
30
+ const orgAnalyticsGoogleAnalyticsConfigAtom = (0, jotai.atom)((get) => get(orgAnalyticsConfigAtom)?.googleAnalytics);
31
+
32
+ //#endregion
33
+ Object.defineProperty(exports, 'customerServiceAttachment', {
34
+ enumerable: true,
35
+ get: function () {
36
+ return customerServiceAttachment;
37
+ }
38
+ });
39
+ Object.defineProperty(exports, 'customerServiceChatStateAtom', {
40
+ enumerable: true,
41
+ get: function () {
42
+ return customerServiceChatStateAtom;
43
+ }
44
+ });
45
+ Object.defineProperty(exports, 'customerServiceResponseAtom', {
46
+ enumerable: true,
47
+ get: function () {
48
+ return customerServiceResponseAtom;
49
+ }
50
+ });
51
+ Object.defineProperty(exports, 'featureFlagServiceAtom', {
52
+ enumerable: true,
53
+ get: function () {
54
+ return featureFlagServiceAtom;
55
+ }
56
+ });
57
+ Object.defineProperty(exports, 'frontendConfigAtom', {
58
+ enumerable: true,
59
+ get: function () {
60
+ return frontendConfigAtom;
61
+ }
62
+ });
63
+ Object.defineProperty(exports, 'internalGraphQLColorsConfigAtom', {
64
+ enumerable: true,
65
+ get: function () {
66
+ return internalGraphQLColorsConfigAtom;
67
+ }
68
+ });
69
+ Object.defineProperty(exports, 'isBusinessHoursAtom', {
70
+ enumerable: true,
71
+ get: function () {
72
+ return isBusinessHoursAtom;
73
+ }
74
+ });
75
+ Object.defineProperty(exports, 'isCustomerServiceOpenAtom', {
76
+ enumerable: true,
77
+ get: function () {
78
+ return isCustomerServiceOpenAtom;
79
+ }
80
+ });
81
+ Object.defineProperty(exports, 'orgAnalyticsAmplitudeConfigAtom', {
82
+ enumerable: true,
83
+ get: function () {
84
+ return orgAnalyticsAmplitudeConfigAtom;
85
+ }
86
+ });
87
+ Object.defineProperty(exports, 'orgAnalyticsConfigAtom', {
88
+ enumerable: true,
89
+ get: function () {
90
+ return orgAnalyticsConfigAtom;
91
+ }
92
+ });
93
+ Object.defineProperty(exports, 'orgAnalyticsCustomerServiceConfigAtom', {
94
+ enumerable: true,
95
+ get: function () {
96
+ return orgAnalyticsCustomerServiceConfigAtom;
97
+ }
98
+ });
99
+ Object.defineProperty(exports, 'orgAnalyticsGoogleAnalyticsConfigAtom', {
100
+ enumerable: true,
101
+ get: function () {
102
+ return orgAnalyticsGoogleAnalyticsConfigAtom;
103
+ }
104
+ });
105
+ Object.defineProperty(exports, 'orgIdAtom', {
106
+ enumerable: true,
107
+ get: function () {
108
+ return orgIdAtom;
109
+ }
110
+ });
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLUNJRmdJY080LmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvb3JnL2N1c3RvbWVyU2VydmljZS50cyIsIi4uL3NyYy9hdG9tcy9vcmcvZ3JhcGhxbENvbmZpZy50cyIsIi4uL3NyYy9hdG9tcy9vcmcvb3JnQW5hbHl0aWNzQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dGFjaG1lbnRSZXF1ZXN0LCBDdXN0U2VydmljZUNvbnZlcnNhdGlvbk1lc3NhZ2VzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBDaGF0U3RhdGUgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzQnVzaW5lc3NIb3Vyc0F0b20gPSBhdG9tPGJvb2xlYW4+KHRydWUpO1xuZXhwb3J0IGNvbnN0IGlzQ3VzdG9tZXJTZXJ2aWNlT3BlbkF0b20gPSBhdG9tPGJvb2xlYW4+KGZhbHNlKTtcbmV4cG9ydCBjb25zdCBjdXN0b21lclNlcnZpY2VSZXNwb25zZUF0b20gPSBhdG9tPEN1c3RTZXJ2aWNlQ29udmVyc2F0aW9uTWVzc2FnZXM+KCk7XG5leHBvcnQgY29uc3QgY3VzdG9tZXJTZXJ2aWNlQ2hhdFN0YXRlQXRvbSA9IGF0b208Q2hhdFN0YXRlPigpO1xuZXhwb3J0IGNvbnN0IGN1c3RvbWVyU2VydmljZUF0dGFjaG1lbnQgPSBhdG9tPEF0dGFjaG1lbnRSZXF1ZXN0IHwgdW5kZWZpbmVkPigpO1xuIiwiaW1wb3J0IHsgYXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IENvbG9yTWFwcGluZywgRnJvbnRlbmRDb25maWcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IEZlYXR1cmVGbGFnQ29udGV4dFR5cGUgfSBmcm9tICdzcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JzsgLy8gSW1wb3J0IEZlYXR1cmVGbGFnQ29udGV4dFR5cGUgZnJvbSBuZXcgY29udGV4dFxuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxHcmFwaFFMQ29sb3JzQ29uZmlnQXRvbSA9IGF0b208Q29sb3JNYXBwaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuY29uc3QgaW50ZXJuYWxHcmFwaFFMRnJvbnRlbmRDb25maWdBdG9tID0gYXRvbTxGcm9udGVuZENvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IG9yZ0lkQXRvbSA9IGF0b208c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpOyAvLyBOZXcgYXRvbSBmb3Igb3JnSWRcbmV4cG9ydCBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2VBdG9tID0gYXRvbTxGZWF0dXJlRmxhZ0NvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpOyAvLyBOZXcgYXRvbSBmb3IgRmVhdHVyZUZsYWdTZXJ2aWNlXG5cbmV4cG9ydCBjb25zdCBmcm9udGVuZENvbmZpZ0F0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiBnZXQoaW50ZXJuYWxHcmFwaFFMRnJvbnRlbmRDb25maWdBdG9tKSxcbiAgKF8sIHNldCwgdmFsdWU6IEZyb250ZW5kQ29uZmlnIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgc2V0KGludGVybmFsR3JhcGhRTEZyb250ZW5kQ29uZmlnQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcbiIsImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQge1xuICBPcmdBbmFseXRpY3NDb25maWcsXG4gIE9yZ0FuYWx5dGljc0FtcGxpdHVkZUNvbmZpZyxcbiAgT3JnQW5hbHl0aWNzQ3VzdG9tZXJTZXJ2aWNlQ29uZmlnLFxuICBPcmdBbmFseXRpY3NHb29nbGVBbmFseXRpY3NDb25maWcsXG59IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5jb25zdCBpbnRlcm5hbE9yZ0FuYWx5dGljc0NvbmZpZ0F0b20gPSBhdG9tPE9yZ0FuYWx5dGljc0NvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IG9yZ0FuYWx5dGljc0NvbmZpZ0F0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiBnZXQoaW50ZXJuYWxPcmdBbmFseXRpY3NDb25maWdBdG9tKSxcbiAgKF8sIHNldCwgdmFsdWU6IE9yZ0FuYWx5dGljc0NvbmZpZykgPT4ge1xuICAgIHNldChpbnRlcm5hbE9yZ0FuYWx5dGljc0NvbmZpZ0F0b20sIHZhbHVlKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBvcmdBbmFseXRpY3NBbXBsaXR1ZGVDb25maWdBdG9tID0gYXRvbTxPcmdBbmFseXRpY3NBbXBsaXR1ZGVDb25maWcgfCB1bmRlZmluZWQ+KFxuICAoZ2V0KSA9PiBnZXQob3JnQW5hbHl0aWNzQ29uZmlnQXRvbSk/LmFtcGxpdHVkZSxcbik7XG5cbmV4cG9ydCBjb25zdCBvcmdBbmFseXRpY3NDdXN0b21lclNlcnZpY2VDb25maWdBdG9tID0gYXRvbTxcbiAgT3JnQW5hbHl0aWNzQ3VzdG9tZXJTZXJ2aWNlQ29uZmlnIHwgdW5kZWZpbmVkXG4+KChnZXQpID0+IGdldChvcmdBbmFseXRpY3NDb25maWdBdG9tKT8uY3VzdG9tZXJTZXJ2aWNlKTtcblxuZXhwb3J0IGNvbnN0IG9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZ0F0b20gPSBhdG9tPFxuICBPcmdBbmFseXRpY3NHb29nbGVBbmFseXRpY3NDb25maWcgfCB1bmRlZmluZWRcbj4oKGdldCkgPT4gZ2V0KG9yZ0FuYWx5dGljc0NvbmZpZ0F0b20pPy5nb29nbGVBbmFseXRpY3MpO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUlBLE1BQWEsc0NBQW9DLEtBQUs7QUFDdEQsTUFBYSw0Q0FBMEMsTUFBTTtBQUM3RCxNQUFhLCtDQUFxRTtBQUNsRixNQUFhLGdEQUFnRDtBQUM3RCxNQUFhLDZDQUFpRTs7OztBQ0o5RSxNQUFhLGtEQUFpRSxPQUFVO0FBQ3hGLE1BQU0sb0RBQXFFLE9BQVU7QUFFckYsTUFBYSw0QkFBcUMsT0FBVTtBQUM1RCxNQUFhLHlDQUFrRSxPQUFVO0FBRXpGLE1BQWEsc0NBQ1YsUUFBUSxJQUFJLGtDQUFrQyxHQUM5QyxHQUFHLEtBQUssVUFBc0M7QUFDN0MsS0FBSSxtQ0FBbUMsTUFBTTtFQUVoRDs7OztBQ1BELE1BQU0saURBQXNFLE9BQVU7QUFFdEYsTUFBYSwwQ0FDVixRQUFRLElBQUksK0JBQStCLEdBQzNDLEdBQUcsS0FBSyxVQUE4QjtBQUNyQyxLQUFJLGdDQUFnQyxNQUFNO0VBRTdDO0FBRUQsTUFBYSxtREFDVixRQUFRLElBQUksdUJBQXVCLEVBQUUsVUFDdkM7QUFFRCxNQUFhLHlEQUVWLFFBQVEsSUFBSSx1QkFBdUIsRUFBRSxnQkFBZ0I7QUFFeEQsTUFBYSx5REFFVixRQUFRLElBQUksdUJBQXVCLEVBQUUsZ0JBQWdCIn0=
@@ -1,7 +1,7 @@
1
- import { ProductSorting } from "./dist-CIM4YRqp.js";
2
- import { newOrgConfigAtom } from "./newOrgConfigAtom-Dsk0fJNR.js";
3
- import { formatFilterDisplayName } from "./utils-w4-xONRA.js";
4
- import { getSearchServiceFunction } from "./searchServiceAdapter-BSPZOg1r.js";
1
+ import { ProductSorting } from "./dist-C38adNK1.js";
2
+ import { newOrgConfigAtom } from "./newOrgConfigAtom-BuQE_zPK.js";
3
+ import { formatFilterDisplayName } from "./utils-DQhbbAnt.js";
4
+ import { getSearchServiceFunction } from "./searchServiceAdapter-B0h7psvh.js";
5
5
  import { atom } from "jotai";
6
6
 
7
7
  //#region src/atoms/search/productFilters.ts
@@ -230,4 +230,4 @@ const performSearchAtom = atom(null, async (get, set, params, allowRedirect = fa
230
230
 
231
231
  //#endregion
232
232
  export { addSearchFilterAtom, clearSearchFiltersAtom, createFilterOption, filteredSearchProductsAtom, internalSearchSystemStateAtom, performSearchAtom, removeSearchFilterAtom, searchAtom, searchFiltersAtom, searchParamsAtom, searchProductSortingAtom, searchSelectedFiltersAtom, searchSystemAtom };
233
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLUNfTl9vUlZaLmpzIiwibmFtZXMiOlsiZXJyb3I6IHVua25vd24iXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RGaWx0ZXJzLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9wcm9kdWN0U29ydGVyLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdFNlYXJjaEZpbHRlciwgQ2hhdFNlYXJjaEZpbHRlckl0ZW0gfSBmcm9tIFwiQGVudml2ZS1haS90eXBlc1wiO1xuaW1wb3J0IHsgRmlsdGVyQXR0cmlidXRlLCBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSBcInNyYy90eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0ZWRGaWx0ZXJPcHRpb24gfSBmcm9tIFwic3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUElcIjtcbmltcG9ydCB7IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuY29uc3QgZ2V0UHJpY2VCdWNrZXQgPSAocHJpY2U6IG51bWJlciwgYnVja2V0U2l6ZTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGJ1Y2tldCA9IE1hdGguZmxvb3IocHJpY2UgLyBidWNrZXRTaXplKTtcbiAgcmV0dXJuIGJ1Y2tldCAqIGJ1Y2tldFNpemU7XG59O1xuXG5jb25zdCBpc1N0cmluZ0FycmF5ID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nW10gPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpO1xufTtcblxudHlwZSBGaWx0ZXJTb3J0RnVuY3Rpb24gPSAoXG4gIGE6IENoYXRTZWFyY2hGaWx0ZXJJdGVtLFxuICBiOiBDaGF0U2VhcmNoRmlsdGVySXRlbVxuKSA9PiBudW1iZXI7XG5cbmNvbnN0IHNvcnRGaWx0ZXIgPSAoZmlsdGVyQ29uZmlnOiBGaWx0ZXJBdHRyaWJ1dGUpOiBGaWx0ZXJTb3J0RnVuY3Rpb24gPT4ge1xuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgIHJldHVybiAoYSwgYikgPT4gTnVtYmVyKGEuZmlsdGVySXRlbUlkKSAtIE51bWJlcihiLmZpbHRlckl0ZW1JZCk7XG4gIH1cbiAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcImFscGhhYmV0aWNcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PiBhLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSk7XG4gICAgfVxuICAgIC8vIFNvcnQgYnkgdGhlIG51bWJlciBvZiBwcm9kdWN0cywgaWYgdGhleSBtYXRjaCwgc29ydCBieSBhbHBoYWJldGljYWxcbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJwcm9kdWN0Q291bnRcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PlxuICAgICAgICBhLnByb2R1Y3RDb3VudCA9PT0gYi5wcm9kdWN0Q291bnRcbiAgICAgICAgICA/IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKVxuICAgICAgICAgIDogYi5wcm9kdWN0Q291bnQgLSBhLnByb2R1Y3RDb3VudDtcbiAgICB9XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICAgIGNvbnN0IHNvcnRlZEtleXMgPSBmaWx0ZXJDb25maWcuc29ydGluZy5tYXA7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gJiYgc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIC8vIElmIGJvdGggYXJlIGluIHRoZSBzb3J0ZWRLZXlzLCBzb3J0IGJ5IHRoZSBpbmRleFxuICAgICAgICAgIHJldHVybiBzb3J0ZWRLZXlzW2EuZGlzcGxheU5hbWVdIC0gc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdhJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgb25seSAnYicgaXMgaW4gdGhlIHNvcnRlZEtleXMsIHB1dCBpdCBiZWZvcmUgdGhlIG90aGVyXG4gICAgICAgIGlmIChzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgbmVpdGhlciBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgcHJvZHVjdENvdW50XG4gICAgICAgIHJldHVybiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWFsaWQgc2VhcmNoIGZpbHRlciBjb25maWd1cmF0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWx0ZXJzIHtcbiAgc3RhdGljIGdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBwcm9kdWN0czogUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlc1tcImF0dHJpYnV0ZXNcIl1bXSxcbiAgICBmaWx0ZXJDb25maWdzOiBGaWx0ZXJBdHRyaWJ1dGVbXSxcbiAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnM6IFNlbGVjdGVkRmlsdGVyT3B0aW9uW11cbiAgKTogQ2hhdFNlYXJjaEZpbHRlcltdIHtcbiAgICBpZiAoIXByb2R1Y3RzIHx8IHByb2R1Y3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJDb25maWdzLm1hcCgoZmlsdGVyQ29uZmlnKSA9PlxuICAgICAgcHJvZHVjdHMucmVkdWNlKFxuICAgICAgICAoYWNjLCBwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgLy8gUHJpY2UgaGFzIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBmaWx0ZXJzXG4gICAgICAgICAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgIHByb2R1Y3Quc2FsZVByaWNlID8/IHByb2R1Y3Qub3JpZ2luYWxQcmljZSA/PyAwLFxuICAgICAgICAgICAgICBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW3ByaWNlQnVja2V0XSA/PyB7XG4gICAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogcHJpY2VCdWNrZXQsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJCR7cHJpY2VCdWNrZXR9LSQke1xuICAgICAgICAgICAgICAgIHByaWNlQnVja2V0ICsgZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhY2MubWFwW3ByaWNlQnVja2V0XSA9IHtcbiAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiBjdXJyZW50LnByb2R1Y3RDb3VudCArIDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBc3N1bWUgdGhhdCB0aGUgXCJhdHRyaWJ1dGVcIiBpcyBhbiBhcnJheSBvZiB2YWx1ZXNcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPVxuICAgICAgICAgICAgKHByb2R1Y3QuZmlsdGVycyAmJiBwcm9kdWN0LmZpbHRlcnM/LltmaWx0ZXJDb25maWcuYXR0cmlidXRlXSkgPz9cbiAgICAgICAgICAgIFtdO1xuICAgICAgICAgIGlmIChpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYWNjLm1hcFtub3JtYWxpemVkVmFsXSA/PyB7XG4gICAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBub3JtYWxpemVkVmFsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmb3JtYXRGaWx0ZXJEaXNwbGF5TmFtZSh2YWwpLCAvLyBLZWVwIG9yaWdpbmFsIGNhc2UgZm9yIGRpc3BsYXlcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGFjYy5tYXBbbm9ybWFsaXplZFZhbF0gPSB7XG4gICAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgICAgbWFwOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBDaGF0U2VhcmNoRmlsdGVySXRlbT4sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgdHJhbnNmb3JtZWRGaWx0ZXJzOiBDaGF0U2VhcmNoRmlsdGVyW10gPSBmaWx0ZXJzLm1hcChcbiAgICAgICh7IGZpbHRlckNvbmZpZywgbWFwIH0pID0+ICh7XG4gICAgICAgIGZpbHRlcklkOiBmaWx0ZXJDb25maWcuZmlsdGVySWQsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXJDb25maWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGl0ZW1zOiBPYmplY3QudmFsdWVzKG1hcClcbiAgICAgICAgICAubWFwKChmaWx0ZXIpID0+ICh7XG4gICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlci5maWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogZmlsdGVyLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgcHJvZHVjdENvdW50OiBmaWx0ZXIucHJvZHVjdENvdW50LFxuICAgICAgICAgICAgaXNTZWxlY3RlZDpcbiAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbi5pZCA9PT1cbiAgICAgICAgICAgICAgICAgIGAke2ZpbHRlckNvbmZpZy5maWx0ZXJJZH06JHtmaWx0ZXIuZmlsdGVySXRlbUlkfWBcbiAgICAgICAgICAgICAgKSA/PyBmYWxzZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgICAuc29ydChzb3J0RmlsdGVyKGZpbHRlckNvbmZpZykpLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFsuLi50cmFuc2Zvcm1lZEZpbHRlcnNdO1xuICB9XG5cbiAgc3RhdGljIGZpbHRlclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXSxcbiAgICBhZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzID0gZmFsc2UgLy8gU2V0IHRoaXMgdG8gdHJ1ZSB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBiZWhhdmlvciB3aGVyZSBzdGFja2luZyBmaWx0ZXJzIGhhcyBPUiBsb2dpYy5cbiAgKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZmlsdGVyQ29uZmlnc1xuICAgICAgLm1hcCgoZmlsdGVyQ29uZmlnKSA9PiAoe1xuICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgIGhhc1NlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJDb25maWcuZmlsdGVySWRcbiAgICAgICAgKSxcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcigoeyBoYXNTZWxlY3RlZE9wdGlvbnMgfSkgPT4gaGFzU2VsZWN0ZWRPcHRpb25zKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLmxlbmd0aCA9PT0gMFxuICAgICAgPyBwcm9kdWN0c1xuICAgICAgOiBwcm9kdWN0cy5maWx0ZXIoKHByb2R1Y3QpID0+XG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzLnJlZHVjZSgoYWNjLCBzZWxlY3RlZEZpbHRlcikgPT4ge1xuICAgICAgICAgICAgLy8gRmluZGluZyBvbmUgZmFsc2UgcmVtb3ZlcyB0aGUgcHJvZHVjdFxuICAgICAgICAgICAgaWYgKCFhY2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFByaWNlIGlzIHNwZWNpYWxcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlc1ByaWNlRmlsdGVyID0gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgcHJpY2U6JHtwcmljZUJ1Y2tldH1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghbWF0Y2hlc1ByaWNlRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJkeW5hbWljXCIpIHtcbiAgICAgICAgICAgICAgLy8gZHluYW1pYyBpcyBtaXNsZWFkaW5nIGhlcmUuIEl0cyBub3QganVzdCBkeW5hbWljIGZpbHRlcnMsIGJ1dCBzdGF0aWMgZmlsdGVycyBiZWNhdXNlIHRoZSBjb25maWcgY291bnRzIHN0YXRpYyBmaWx0ZXJzIGFzIHR5cGU6IGR5bmFtaWMuXG4gICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVySWQsIGF0dHJpYnV0ZSB9ID0gc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnO1xuICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPSBwcm9kdWN0LmZpbHRlcnM/LlthdHRyaWJ1dGVdO1xuXG4gICAgICAgICAgICAgIGlmICghaXNTdHJpbmdBcnJheShhdHRyaWJ1dGVWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaXNEeW5hbWljRmlsdGVyID1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYXR0cmlidXRlID09PSBcImR5bmFtaWNcIjsgLy8gVHJ1ZSBkeW5hbWljIGZpbHRlcnMgKHRoZSBvbmVzIHRoYXQgYXBwZWFyIGJlbmVhdGggdGhlIHNlYXJjaCBpbnB1dClcbiAgICAgICAgICAgICAgY29uc3QgaXNTdWJ0cmFjdGl2ZUxvZ2ljID1cbiAgICAgICAgICAgICAgICBpc0R5bmFtaWNGaWx0ZXIgJiYgIWFkZGl0aXZlRHluYW1pY0ZpbHRlcnM7XG5cbiAgICAgICAgICAgICAgaWYgKGlzU3VidHJhY3RpdmVMb2dpYykge1xuICAgICAgICAgICAgICAgIC8vIEFORCBsb2dpYyBmb3Igc3VidHJhY3RpdmUgZHluYW1pYyBmaWx0ZXJzIGFuZCBiZXR3ZWVuIHN0YXRpYyBmaWx0ZXIgY2F0ZWdvcmllc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uc0ZvclRoaXNGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJJZClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlckl0ZW1JZC50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0FsbFNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlci5ldmVyeShcbiAgICAgICAgICAgICAgICAgIChzZWxlY3RlZFZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgICAodmFsKSA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghaGFzQWxsU2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT1IgbG9naWMgZm9yIHN0YXRpYyBmaWx0ZXJzIGluIHRoZSBzaWRlYmFyIHdpdGhpbiBhIGNhdGVnb3J5LlxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBhdHRyaWJ1dGVWYWx1ZXMuc29tZSgodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gYCR7ZmlsdGVySWR9OiR7dmFsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LCB0cnVlKVxuICAgICAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNvcnRlciB7XG4gIHN0YXRpYyBzb3J0KHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ11bXSwgc29ydGluZzogUHJvZHVjdFNvcnRpbmcpIHtcbiAgICBzd2l0Y2ggKHNvcnRpbmcpIHtcbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQzpcbiAgICAgICAgcmV0dXJuIFsuLi5wcm9kdWN0c10uc29ydChcbiAgICAgICAgICAocDEsIHAyKSA9PlxuICAgICAgICAgICAgKHAyLnNhbGVQcmljZSA/PyBwMi5vcmlnaW5hbFByaWNlID8/IDApIC0gKHAxLnNhbGVQcmljZSA/PyBwMS5vcmlnaW5hbFByaWNlID8/IDApLFxuICAgICAgICApO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcHJvZHVjdHM7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgUHJvZHVjdFNvcnRpbmcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RGaWx0ZXJzIH0gZnJvbSAnLi9wcm9kdWN0RmlsdGVycyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGVyIH0gZnJvbSAnLi9wcm9kdWN0U29ydGVyJztcbmltcG9ydCB7IG5ld09yZ0NvbmZpZ0F0b20gfSBmcm9tICcuLi9vcmcnO1xuaW1wb3J0IHsgZ2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSAnLi9zZWFyY2hTZXJ2aWNlQWRhcHRlcic7XG5pbXBvcnQgeyBTZWFyY2hQYXJhbXMsIFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RlZEZpbHRlck9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZzsgLy8gXCJmaWx0ZXJJZDpmaWx0ZXJJdGVtSWRcIiAtIG1haW50YWlucyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBjb21wYXJpc29uc1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBmaWx0ZXJJZDogc3RyaW5nOyAvLyBGaWx0ZXIgY2F0ZWdvcnlcbiAgZmlsdGVySXRlbUlkOiBzdHJpbmc7IC8vIEZpbHRlciB2YWx1ZVxufTtcblxuaW50ZXJmYWNlIFNlYXJjaFN0YXRlIHtcbiAgZGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gIGxhc3RRdWVyeTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IHNlYXJjaEF0b20gPSBhdG9tPFNlYXJjaFN0YXRlPih7XG4gIGRhdGE6IG51bGwsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBlcnJvcjogbnVsbCxcbiAgbGFzdFF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20gPSBhdG9tPFByb2R1Y3RTb3J0aW5nPihQcm9kdWN0U29ydGluZy5GRUFUVVJFRCk7XG5leHBvcnQgY29uc3Qgc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSA9IGF0b208U2VsZWN0ZWRGaWx0ZXJPcHRpb25bXT4oW10pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmlsdGVyT3B0aW9uID0gKFxuICBmaWx0ZXJJZDogc3RyaW5nLFxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZyxcbiAgZGlzcGxheU5hbWU6IHN0cmluZyxcbik6IFNlbGVjdGVkRmlsdGVyT3B0aW9uID0+ICh7XG4gIGlkOiBgJHtmaWx0ZXJJZH06JHtmaWx0ZXJJdGVtSWR9YCxcbiAgZGlzcGxheU5hbWUsXG4gIGZpbHRlcklkLFxuICBmaWx0ZXJJdGVtSWQsXG59KTtcblxuY29uc3QgaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tID0gYXRvbTx7XG4gIGlkOiBzdHJpbmcgfCBudWxsO1xuICBxdWVyeTogc3RyaW5nIHwgbnVsbDtcbn0+KHtcbiAgaWQ6IG51bGwsXG4gIHF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQYXJhbXNBdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSksXG4gIChfLCBzZXQsIHZhbHVlOiB7IGlkOiBzdHJpbmcgfCBudWxsOyBxdWVyeTogc3RyaW5nIHwgbnVsbCB9KSA9PiB7XG4gICAgc2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoU3lzdGVtQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSksXG4gIChnZXQsIHNldCwgdmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIGlmIChwYXJhbXMuZ2V0KCdlcycpID09PSAndHJ1ZScpIHtcbiAgICAgICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KCdlc2knKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXMuZ2V0KCdlc3EnKTtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQsIHF1ZXJ5IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQ6IG51bGwsIHF1ZXJ5OiBudWxsIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIHRydWUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgIC8vIEFsc28gdHJpZ2dlciB0aGUgaGFzaCBjaGFuZ2UgaGFuZGxlciB0byBzZXQgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgIHN0YXRlQ2hhbmdlSGFuZGxlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIGZhbHNlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN0YXRlQ2hhbmdlSGFuZGxlcik7XG4gICAgfVxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlcmVkU2VhcmNoUHJvZHVjdHNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc29ydGluZyA9IGdldChzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20pO1xuICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGNvbnN0IG5ld09yZ0NvbmZpZyA9IGdldChuZXdPcmdDb25maWdBdG9tKTtcblxuICBpZiAoIXNlYXJjaERhdGE/LnByb2R1Y3RzIHx8ICFuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZykgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGZpbHRlcmVkUHJvZHVjdHMgPSBQcm9kdWN0RmlsdGVycy5maWx0ZXJQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuYWRkaXRpdmVEeW5hbWljRmlsdGVycyxcbiAgKTtcblxuICByZXR1cm4gUHJvZHVjdFNvcnRlci5zb3J0KGZpbHRlcmVkUHJvZHVjdHMsIHNvcnRpbmcpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBzZWFyY2hEYXRhID0gZ2V0KHNlYXJjaEF0b20pLmRhdGE7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIFByb2R1Y3RGaWx0ZXJzLmdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlYXJjaEZpbHRlckF0b20gPSBhdG9tKG51bGwsIChnZXQsIHNldCwgZmlsdGVyOiBTZWxlY3RlZEZpbHRlck9wdGlvbikgPT4ge1xuICBjb25zdCBjdXJyZW50ID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBpZiAoIWN1cnJlbnQuc29tZSgoZikgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSkge1xuICAgIHNldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLCBbLi4uY3VycmVudCwgZmlsdGVyXSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIHNldChcbiAgICBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLFxuICAgIGN1cnJlbnQuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmaWx0ZXJJZCksXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyU2VhcmNoRmlsdGVyc0F0b20gPSBhdG9tKG51bGwsIChfLCBzZXQpID0+IHtcbiAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFtdKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgcGVyZm9ybVNlYXJjaEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogU2VhcmNoUGFyYW1zLCBhbGxvd1JlZGlyZWN0ID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBnZXQoc2VhcmNoQXRvbSk7XG4gICAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuICAgIGNvbnN0IHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCA9XG4gICAgICBuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZz8ucmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsO1xuXG4gICAgaWYgKGFsbG93UmVkaXJlY3QgJiYgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKSB7XG4gICAgICBjb25zdCByZWRpcmVjdFVybCA9IG5ldyBVUkwocmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzJywgJ3RydWUnKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0VXJsLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZSBVUkwgYW5kIG1hbnVhbGx5IHRyaWdnZXIgc3RhdGUgY2hhbmdlIChzaW5jZSBwdXNoU3RhdGUgZG9lc24ndCB0cmlnZ2VyIHBvcHN0YXRlKVxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCB1cmwpO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KCdwb3BzdGF0ZScsIHsgc3RhdGU6IHt9IH0pKTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHBhZ2UgdmFyaWFudCBzeXN0ZW0gZGV0ZWN0cyB0aGUgVVJMIGNoYW5nZSBhbmQgbW91bnRzIHNlYXJjaCByZXN1bHRzXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIGlmIChjdXJyZW50U3RhdGUubG9hZGluZykge1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IGNvbmN1cnJlbnQgc2VhcmNoZXNcbiAgICB9XG5cbiAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2hTZXJ2aWNlRnVuY3Rpb24gPSBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbihwYXJhbXMpO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLE1BQU0sa0JBQWtCLE9BQWUsZUFBdUI7QUFFNUQsUUFEZSxL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
233
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLS04MHg2Q2ZMLmpzIiwibmFtZXMiOlsiZXJyb3I6IHVua25vd24iXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RGaWx0ZXJzLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9wcm9kdWN0U29ydGVyLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdFNlYXJjaEZpbHRlciwgQ2hhdFNlYXJjaEZpbHRlckl0ZW0gfSBmcm9tIFwiQGVudml2ZS1haS90eXBlc1wiO1xuaW1wb3J0IHsgRmlsdGVyQXR0cmlidXRlLCBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSBcInNyYy90eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0ZWRGaWx0ZXJPcHRpb24gfSBmcm9tIFwic3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUElcIjtcbmltcG9ydCB7IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuY29uc3QgZ2V0UHJpY2VCdWNrZXQgPSAocHJpY2U6IG51bWJlciwgYnVja2V0U2l6ZTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGJ1Y2tldCA9IE1hdGguZmxvb3IocHJpY2UgLyBidWNrZXRTaXplKTtcbiAgcmV0dXJuIGJ1Y2tldCAqIGJ1Y2tldFNpemU7XG59O1xuXG5jb25zdCBpc1N0cmluZ0FycmF5ID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nW10gPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpO1xufTtcblxudHlwZSBGaWx0ZXJTb3J0RnVuY3Rpb24gPSAoXG4gIGE6IENoYXRTZWFyY2hGaWx0ZXJJdGVtLFxuICBiOiBDaGF0U2VhcmNoRmlsdGVySXRlbVxuKSA9PiBudW1iZXI7XG5cbmNvbnN0IHNvcnRGaWx0ZXIgPSAoZmlsdGVyQ29uZmlnOiBGaWx0ZXJBdHRyaWJ1dGUpOiBGaWx0ZXJTb3J0RnVuY3Rpb24gPT4ge1xuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgIHJldHVybiAoYSwgYikgPT4gTnVtYmVyKGEuZmlsdGVySXRlbUlkKSAtIE51bWJlcihiLmZpbHRlckl0ZW1JZCk7XG4gIH1cbiAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcImFscGhhYmV0aWNcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PiBhLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSk7XG4gICAgfVxuICAgIC8vIFNvcnQgYnkgdGhlIG51bWJlciBvZiBwcm9kdWN0cywgaWYgdGhleSBtYXRjaCwgc29ydCBieSBhbHBoYWJldGljYWxcbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJwcm9kdWN0Q291bnRcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PlxuICAgICAgICBhLnByb2R1Y3RDb3VudCA9PT0gYi5wcm9kdWN0Q291bnRcbiAgICAgICAgICA/IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKVxuICAgICAgICAgIDogYi5wcm9kdWN0Q291bnQgLSBhLnByb2R1Y3RDb3VudDtcbiAgICB9XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICAgIGNvbnN0IHNvcnRlZEtleXMgPSBmaWx0ZXJDb25maWcuc29ydGluZy5tYXA7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gJiYgc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIC8vIElmIGJvdGggYXJlIGluIHRoZSBzb3J0ZWRLZXlzLCBzb3J0IGJ5IHRoZSBpbmRleFxuICAgICAgICAgIHJldHVybiBzb3J0ZWRLZXlzW2EuZGlzcGxheU5hbWVdIC0gc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdhJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgb25seSAnYicgaXMgaW4gdGhlIHNvcnRlZEtleXMsIHB1dCBpdCBiZWZvcmUgdGhlIG90aGVyXG4gICAgICAgIGlmIChzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgbmVpdGhlciBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgcHJvZHVjdENvdW50XG4gICAgICAgIHJldHVybiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWFsaWQgc2VhcmNoIGZpbHRlciBjb25maWd1cmF0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWx0ZXJzIHtcbiAgc3RhdGljIGdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBwcm9kdWN0czogUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlc1tcImF0dHJpYnV0ZXNcIl1bXSxcbiAgICBmaWx0ZXJDb25maWdzOiBGaWx0ZXJBdHRyaWJ1dGVbXSxcbiAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnM6IFNlbGVjdGVkRmlsdGVyT3B0aW9uW11cbiAgKTogQ2hhdFNlYXJjaEZpbHRlcltdIHtcbiAgICBpZiAoIXByb2R1Y3RzIHx8IHByb2R1Y3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJDb25maWdzLm1hcCgoZmlsdGVyQ29uZmlnKSA9PlxuICAgICAgcHJvZHVjdHMucmVkdWNlKFxuICAgICAgICAoYWNjLCBwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgLy8gUHJpY2UgaGFzIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBmaWx0ZXJzXG4gICAgICAgICAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgIHByb2R1Y3Quc2FsZVByaWNlID8/IHByb2R1Y3Qub3JpZ2luYWxQcmljZSA/PyAwLFxuICAgICAgICAgICAgICBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW3ByaWNlQnVja2V0XSA/PyB7XG4gICAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogcHJpY2VCdWNrZXQsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJCR7cHJpY2VCdWNrZXR9LSQke1xuICAgICAgICAgICAgICAgIHByaWNlQnVja2V0ICsgZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhY2MubWFwW3ByaWNlQnVja2V0XSA9IHtcbiAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiBjdXJyZW50LnByb2R1Y3RDb3VudCArIDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBc3N1bWUgdGhhdCB0aGUgXCJhdHRyaWJ1dGVcIiBpcyBhbiBhcnJheSBvZiB2YWx1ZXNcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPVxuICAgICAgICAgICAgKHByb2R1Y3QuZmlsdGVycyAmJiBwcm9kdWN0LmZpbHRlcnM/LltmaWx0ZXJDb25maWcuYXR0cmlidXRlXSkgPz9cbiAgICAgICAgICAgIFtdO1xuICAgICAgICAgIGlmIChpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYWNjLm1hcFtub3JtYWxpemVkVmFsXSA/PyB7XG4gICAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBub3JtYWxpemVkVmFsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmb3JtYXRGaWx0ZXJEaXNwbGF5TmFtZSh2YWwpLCAvLyBLZWVwIG9yaWdpbmFsIGNhc2UgZm9yIGRpc3BsYXlcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGFjYy5tYXBbbm9ybWFsaXplZFZhbF0gPSB7XG4gICAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgICAgbWFwOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBDaGF0U2VhcmNoRmlsdGVySXRlbT4sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgdHJhbnNmb3JtZWRGaWx0ZXJzOiBDaGF0U2VhcmNoRmlsdGVyW10gPSBmaWx0ZXJzLm1hcChcbiAgICAgICh7IGZpbHRlckNvbmZpZywgbWFwIH0pID0+ICh7XG4gICAgICAgIGZpbHRlcklkOiBmaWx0ZXJDb25maWcuZmlsdGVySWQsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXJDb25maWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGl0ZW1zOiBPYmplY3QudmFsdWVzKG1hcClcbiAgICAgICAgICAubWFwKChmaWx0ZXIpID0+ICh7XG4gICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlci5maWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogZmlsdGVyLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgcHJvZHVjdENvdW50OiBmaWx0ZXIucHJvZHVjdENvdW50LFxuICAgICAgICAgICAgaXNTZWxlY3RlZDpcbiAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbi5pZCA9PT1cbiAgICAgICAgICAgICAgICAgIGAke2ZpbHRlckNvbmZpZy5maWx0ZXJJZH06JHtmaWx0ZXIuZmlsdGVySXRlbUlkfWBcbiAgICAgICAgICAgICAgKSA/PyBmYWxzZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgICAuc29ydChzb3J0RmlsdGVyKGZpbHRlckNvbmZpZykpLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFsuLi50cmFuc2Zvcm1lZEZpbHRlcnNdO1xuICB9XG5cbiAgc3RhdGljIGZpbHRlclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXSxcbiAgICBhZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzID0gZmFsc2UgLy8gU2V0IHRoaXMgdG8gdHJ1ZSB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBiZWhhdmlvciB3aGVyZSBzdGFja2luZyBmaWx0ZXJzIGhhcyBPUiBsb2dpYy5cbiAgKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZmlsdGVyQ29uZmlnc1xuICAgICAgLm1hcCgoZmlsdGVyQ29uZmlnKSA9PiAoe1xuICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgIGhhc1NlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJDb25maWcuZmlsdGVySWRcbiAgICAgICAgKSxcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcigoeyBoYXNTZWxlY3RlZE9wdGlvbnMgfSkgPT4gaGFzU2VsZWN0ZWRPcHRpb25zKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLmxlbmd0aCA9PT0gMFxuICAgICAgPyBwcm9kdWN0c1xuICAgICAgOiBwcm9kdWN0cy5maWx0ZXIoKHByb2R1Y3QpID0+XG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzLnJlZHVjZSgoYWNjLCBzZWxlY3RlZEZpbHRlcikgPT4ge1xuICAgICAgICAgICAgLy8gRmluZGluZyBvbmUgZmFsc2UgcmVtb3ZlcyB0aGUgcHJvZHVjdFxuICAgICAgICAgICAgaWYgKCFhY2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFByaWNlIGlzIHNwZWNpYWxcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlc1ByaWNlRmlsdGVyID0gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgcHJpY2U6JHtwcmljZUJ1Y2tldH1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghbWF0Y2hlc1ByaWNlRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJkeW5hbWljXCIpIHtcbiAgICAgICAgICAgICAgLy8gZHluYW1pYyBpcyBtaXNsZWFkaW5nIGhlcmUuIEl0cyBub3QganVzdCBkeW5hbWljIGZpbHRlcnMsIGJ1dCBzdGF0aWMgZmlsdGVycyBiZWNhdXNlIHRoZSBjb25maWcgY291bnRzIHN0YXRpYyBmaWx0ZXJzIGFzIHR5cGU6IGR5bmFtaWMuXG4gICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVySWQsIGF0dHJpYnV0ZSB9ID0gc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnO1xuICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPSBwcm9kdWN0LmZpbHRlcnM/LlthdHRyaWJ1dGVdO1xuXG4gICAgICAgICAgICAgIGlmICghaXNTdHJpbmdBcnJheShhdHRyaWJ1dGVWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaXNEeW5hbWljRmlsdGVyID1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYXR0cmlidXRlID09PSBcImR5bmFtaWNcIjsgLy8gVHJ1ZSBkeW5hbWljIGZpbHRlcnMgKHRoZSBvbmVzIHRoYXQgYXBwZWFyIGJlbmVhdGggdGhlIHNlYXJjaCBpbnB1dClcbiAgICAgICAgICAgICAgY29uc3QgaXNTdWJ0cmFjdGl2ZUxvZ2ljID1cbiAgICAgICAgICAgICAgICBpc0R5bmFtaWNGaWx0ZXIgJiYgIWFkZGl0aXZlRHluYW1pY0ZpbHRlcnM7XG5cbiAgICAgICAgICAgICAgaWYgKGlzU3VidHJhY3RpdmVMb2dpYykge1xuICAgICAgICAgICAgICAgIC8vIEFORCBsb2dpYyBmb3Igc3VidHJhY3RpdmUgZHluYW1pYyBmaWx0ZXJzIGFuZCBiZXR3ZWVuIHN0YXRpYyBmaWx0ZXIgY2F0ZWdvcmllc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uc0ZvclRoaXNGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJJZClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlckl0ZW1JZC50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0FsbFNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlci5ldmVyeShcbiAgICAgICAgICAgICAgICAgIChzZWxlY3RlZFZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgICAodmFsKSA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghaGFzQWxsU2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT1IgbG9naWMgZm9yIHN0YXRpYyBmaWx0ZXJzIGluIHRoZSBzaWRlYmFyIHdpdGhpbiBhIGNhdGVnb3J5LlxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBhdHRyaWJ1dGVWYWx1ZXMuc29tZSgodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gYCR7ZmlsdGVySWR9OiR7dmFsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LCB0cnVlKVxuICAgICAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNvcnRlciB7XG4gIHN0YXRpYyBzb3J0KHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ11bXSwgc29ydGluZzogUHJvZHVjdFNvcnRpbmcpIHtcbiAgICBzd2l0Y2ggKHNvcnRpbmcpIHtcbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQzpcbiAgICAgICAgcmV0dXJuIFsuLi5wcm9kdWN0c10uc29ydChcbiAgICAgICAgICAocDEsIHAyKSA9PlxuICAgICAgICAgICAgKHAyLnNhbGVQcmljZSA/PyBwMi5vcmlnaW5hbFByaWNlID8/IDApIC0gKHAxLnNhbGVQcmljZSA/PyBwMS5vcmlnaW5hbFByaWNlID8/IDApLFxuICAgICAgICApO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcHJvZHVjdHM7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgUHJvZHVjdFNvcnRpbmcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RGaWx0ZXJzIH0gZnJvbSAnLi9wcm9kdWN0RmlsdGVycyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGVyIH0gZnJvbSAnLi9wcm9kdWN0U29ydGVyJztcbmltcG9ydCB7IG5ld09yZ0NvbmZpZ0F0b20gfSBmcm9tICcuLi9vcmcnO1xuaW1wb3J0IHsgZ2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSAnLi9zZWFyY2hTZXJ2aWNlQWRhcHRlcic7XG5pbXBvcnQgeyBTZWFyY2hQYXJhbXMsIFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RlZEZpbHRlck9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZzsgLy8gXCJmaWx0ZXJJZDpmaWx0ZXJJdGVtSWRcIiAtIG1haW50YWlucyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBjb21wYXJpc29uc1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBmaWx0ZXJJZDogc3RyaW5nOyAvLyBGaWx0ZXIgY2F0ZWdvcnlcbiAgZmlsdGVySXRlbUlkOiBzdHJpbmc7IC8vIEZpbHRlciB2YWx1ZVxufTtcblxuaW50ZXJmYWNlIFNlYXJjaFN0YXRlIHtcbiAgZGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gIGxhc3RRdWVyeTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IHNlYXJjaEF0b20gPSBhdG9tPFNlYXJjaFN0YXRlPih7XG4gIGRhdGE6IG51bGwsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBlcnJvcjogbnVsbCxcbiAgbGFzdFF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20gPSBhdG9tPFByb2R1Y3RTb3J0aW5nPihQcm9kdWN0U29ydGluZy5GRUFUVVJFRCk7XG5leHBvcnQgY29uc3Qgc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSA9IGF0b208U2VsZWN0ZWRGaWx0ZXJPcHRpb25bXT4oW10pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmlsdGVyT3B0aW9uID0gKFxuICBmaWx0ZXJJZDogc3RyaW5nLFxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZyxcbiAgZGlzcGxheU5hbWU6IHN0cmluZyxcbik6IFNlbGVjdGVkRmlsdGVyT3B0aW9uID0+ICh7XG4gIGlkOiBgJHtmaWx0ZXJJZH06JHtmaWx0ZXJJdGVtSWR9YCxcbiAgZGlzcGxheU5hbWUsXG4gIGZpbHRlcklkLFxuICBmaWx0ZXJJdGVtSWQsXG59KTtcblxuY29uc3QgaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tID0gYXRvbTx7XG4gIGlkOiBzdHJpbmcgfCBudWxsO1xuICBxdWVyeTogc3RyaW5nIHwgbnVsbDtcbn0+KHtcbiAgaWQ6IG51bGwsXG4gIHF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQYXJhbXNBdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSksXG4gIChfLCBzZXQsIHZhbHVlOiB7IGlkOiBzdHJpbmcgfCBudWxsOyBxdWVyeTogc3RyaW5nIHwgbnVsbCB9KSA9PiB7XG4gICAgc2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoU3lzdGVtQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSksXG4gIChnZXQsIHNldCwgdmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIGlmIChwYXJhbXMuZ2V0KCdlcycpID09PSAndHJ1ZScpIHtcbiAgICAgICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KCdlc2knKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXMuZ2V0KCdlc3EnKTtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQsIHF1ZXJ5IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQ6IG51bGwsIHF1ZXJ5OiBudWxsIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIHRydWUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgIC8vIEFsc28gdHJpZ2dlciB0aGUgaGFzaCBjaGFuZ2UgaGFuZGxlciB0byBzZXQgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgIHN0YXRlQ2hhbmdlSGFuZGxlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIGZhbHNlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN0YXRlQ2hhbmdlSGFuZGxlcik7XG4gICAgfVxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlcmVkU2VhcmNoUHJvZHVjdHNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc29ydGluZyA9IGdldChzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20pO1xuICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGNvbnN0IG5ld09yZ0NvbmZpZyA9IGdldChuZXdPcmdDb25maWdBdG9tKTtcblxuICBpZiAoIXNlYXJjaERhdGE/LnByb2R1Y3RzIHx8ICFuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZykgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGZpbHRlcmVkUHJvZHVjdHMgPSBQcm9kdWN0RmlsdGVycy5maWx0ZXJQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuYWRkaXRpdmVEeW5hbWljRmlsdGVycyxcbiAgKTtcblxuICByZXR1cm4gUHJvZHVjdFNvcnRlci5zb3J0KGZpbHRlcmVkUHJvZHVjdHMsIHNvcnRpbmcpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBzZWFyY2hEYXRhID0gZ2V0KHNlYXJjaEF0b20pLmRhdGE7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIFByb2R1Y3RGaWx0ZXJzLmdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlYXJjaEZpbHRlckF0b20gPSBhdG9tKG51bGwsIChnZXQsIHNldCwgZmlsdGVyOiBTZWxlY3RlZEZpbHRlck9wdGlvbikgPT4ge1xuICBjb25zdCBjdXJyZW50ID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBpZiAoIWN1cnJlbnQuc29tZSgoZikgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSkge1xuICAgIHNldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLCBbLi4uY3VycmVudCwgZmlsdGVyXSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIHNldChcbiAgICBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLFxuICAgIGN1cnJlbnQuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmaWx0ZXJJZCksXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyU2VhcmNoRmlsdGVyc0F0b20gPSBhdG9tKG51bGwsIChfLCBzZXQpID0+IHtcbiAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFtdKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgcGVyZm9ybVNlYXJjaEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogU2VhcmNoUGFyYW1zLCBhbGxvd1JlZGlyZWN0ID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBnZXQoc2VhcmNoQXRvbSk7XG4gICAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuICAgIGNvbnN0IHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCA9XG4gICAgICBuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZz8ucmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsO1xuXG4gICAgaWYgKGFsbG93UmVkaXJlY3QgJiYgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKSB7XG4gICAgICBjb25zdCByZWRpcmVjdFVybCA9IG5ldyBVUkwocmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzJywgJ3RydWUnKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0VXJsLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZSBVUkwgYW5kIG1hbnVhbGx5IHRyaWdnZXIgc3RhdGUgY2hhbmdlIChzaW5jZSBwdXNoU3RhdGUgZG9lc24ndCB0cmlnZ2VyIHBvcHN0YXRlKVxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCB1cmwpO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KCdwb3BzdGF0ZScsIHsgc3RhdGU6IHt9IH0pKTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHBhZ2UgdmFyaWFudCBzeXN0ZW0gZGV0ZWN0cyB0aGUgVVJMIGNoYW5nZSBhbmQgbW91bnRzIHNlYXJjaCByZXN1bHRzXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIGlmIChjdXJyZW50U3RhdGUubG9hZGluZykge1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IGNvbmN1cnJlbnQgc2VhcmNoZXNcbiAgICB9XG5cbiAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2hTZXJ2aWNlRnVuY3Rpb24gPSBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbihwYXJhbXMpO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLE1BQU0sa0JBQWtCLE9BQWUsZUFBdUI7QUFFNUQsUUFEZSxLQUFLLE1BQU0sUUFBUSxXQUFXLEdBQzdCOztBQUdsQixNQUFNLGlCQUFpQixVQUFzQztBQUMzRCxLQUFJLENBQUMsTUFBTSxRQUFRLE1BQU0sQ0FDdkIsUUFBTztBQUVULFFBQU8sTUFBTSxPQUFPLFNBQVMsT0FBTyxTQUFTLFNBQVM7O0FBUXhELE1BQU0sY0FBYyxpQkFBc0Q7QUFDeEUsS0FBSSxhQUFhLFNBQVMsUUFDeEIsU0FBUSxHQUFHLE1BQU0sT0FBTyxFQUFFLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYTtBQUVsRSxLQUFJLGFBQWEsU0FBUyxXQUFXO0FBQ25DLE1BQUksYUFBYSxRQUFRLFNBQVMsYUFDaEMsU0FBUSxHQUFHLE1BQU0sRUFBRSxZQUFZLGNBQWMsRUFBRSxZQUFZO0FBRzdELE1BQUksYUFBYSxRQUFRLFNBQVMsZUFDaEMsU0FBUSxHQUFHLE1BQ1QsRUFBRSxpQkFBaUIsRUFBRSxlQUNqQixFQUFFLFlBQVksY0FBYyxFQUFFLFlBQVksR0FDMUMsRUFBRSxlQUFlLEVBQUU7QUFFM0IsTUFBSSxhQUFhLFFBQVEsU0FBUyxVQUFVO0dBQzFDLE1BQU0sYUFBYSxhQUFhLFFBQVE7QUFDeEMsV0FBUSxHQUFHLE1BQU07QUFDZixRQUFJLFdBQVcsRUFBRSxnQkFBZ0IsV0FBVyxFQUFFLGFBRTVDLFFBQU8sV0FBVyxFQUFFLGVBQWUsV0FBVyxFQUFFO0FBR2xELFFBQUksV0FBVyxFQUFFLGFBQ2YsUUFBTztBQUdULFFBQUksV0FBVyxFQUFFLGFBQ2YsUUFBTztBQUdULFdBQU8sRUFBRSxlQUFlLEVBQUU7Ozs7QUFJaEMsT0FBTSxJQUFJLE1BQU0sdUNBQXVDOztBQUd6RCxJQUFhLGlCQUFiLE1BQTRCO0NBQzFCLE9BQU8sc0JBQ0wsVUFDQSxlQUNBLHVCQUNvQjtBQUNwQixNQUFJLENBQUMsWUFBWSxTQUFTLFdBQVcsRUFDbkMsUUFBTyxFQUFFO0FBMEVYLFNBQU8sQ0FBQyxHQXZFUSxjQUFjLEtBQUssaUJBQ2pDLFNBQVMsUUFDTixLQUFLLFlBQVk7QUFFaEIsT0FBSSxhQUFhLFNBQVMsU0FBUztJQUNqQyxNQUFNLGNBQWMsZUFDbEIsUUFBUSxhQUFhLFFBQVEsaUJBQWlCLEdBQzlDLGFBQWEsV0FDZDtJQUNELE1BQU0sVUFBVSxJQUFJLElBQUksZ0JBQWdCO0tBQ3RDLGNBQWM7S0FDZCxhQUFhLElBQUksWUFBWSxJQUMzQixjQUFjLGFBQWE7S0FFN0IsY0FBYztLQUNmO0FBQ0QsUUFBSSxJQUFJLGVBQWU7S0FDckIsR0FBRztLQUNILGNBQWMsUUFBUSxlQUFlO0tBQ3RDO0FBQ0QsV0FBTzs7R0FJVCxNQUFNLG1CQUNILFFBQVEsV0FBVyxRQUFRLFVBQVUsYUFBYSxlQUNuRCxFQUFFO0FBQ0osT0FBSSxjQUFjLGdCQUFnQixDQUNoQyxpQkFBZ0IsU0FBUyxRQUFRO0lBQy9CLE1BQU0sZ0JBQWdCLElBQUksYUFBYTtJQUN2QyxNQUFNLFVBQVUsSUFBSSxJQUFJLGtCQUFrQjtLQUN4QyxjQUFjO0tBQ2QsYUFBYSx3QkFBd0IsSUFBSTtLQUN6QyxjQUFjO0tBQ2Y7QUFDRCxRQUFJLElBQUksaUJBQWlCO0tBQ3ZCLEdBQUc7S0FDSCxjQUFjLFFBQVEsZUFBZTtLQUN0QztLQUNEO0FBR0osVUFBTztLQUVUO0dBQ0U7R0FDQSxLQUFLLEVBQUU7R0FDUixDQUNGLENBQ0YsQ0FFc0QsS0FDcEQsRUFBRSxjQUFjLFdBQVc7R0FDMUIsVUFBVSxhQUFhO0dBQ3ZCLGFBQWEsYUFBYTtHQUMxQixPQUFPLE9BQU8sT0FBTyxJQUFJLENBQ3RCLEtBQUssWUFBWTtJQUNoQixjQUFjLE9BQU87SUFDckIsYUFBYSxPQUFPO0lBQ3BCLGNBQWMsT0FBTztJQUNyQixZQUNFLHNCQUFzQixNQUNuQixXQUNDLE9BQU8sT0FDUCxHQUFHLGFBQWEsU0FBUyxHQUFHLE9BQU8sZUFDdEMsSUFBSTtJQUNSLEVBQUUsQ0FDRixLQUFLLFdBQVcsYUFBYSxDQUFDO0dBQ2xDLEVBQ0YsQ0FFNkI7O0NBR2hDLE9BQU8sZUFDTCxVQUNBLGVBQ0EsdUJBQ0EseUJBQXlCLE9BQ3pCO0VBQ0EsTUFBTSxrQkFBa0IsY0FDckIsS0FBSyxrQkFBa0I7R0FDdEI7R0FDQSxvQkFBb0Isc0JBQXNCLE1BQ3ZDLFdBQVcsT0FBTyxhQUFhLGFBQWEsU0FDOUM7R0FDRixFQUFFLENBQ0YsUUFBUSxFQUFFLHlCQUF5QixtQkFBbUI7QUFDekQsU0FBTyxzQkFBc0IsV0FBVyxJQUNwQyxXQUNBLFNBQVMsUUFBUSxZQUNmLGdCQUFnQixRQUFRLEtBQUssbUJBQW1CO0FBRTlDLE9BQUksQ0FBQyxJQUNILFFBQU87QUFHVCxPQUFJLGVBQWUsYUFBYSxTQUFTLFNBQVM7SUFDaEQsTUFBTSxjQUFjLGVBQ2xCLFFBQVEsYUFBYSxRQUFRLGlCQUFpQixHQUM5QyxlQUFlLGFBQWEsV0FDN0I7QUFJRCxRQUFJLENBSHVCLHNCQUFzQixNQUM5QyxXQUFXLE9BQU8sT0FBTyxTQUFTLGNBQ3BDLENBRUMsUUFBTzs7QUFJWCxPQUFJLGVBQWUsYUFBYSxTQUFTLFdBQVc7SUFFbEQsTUFBTSxFQUFFLFVBQVUsY0FBYyxlQUFlO0lBQy9DLE1BQU0sa0JBQWtCLFFBQVEsVUFBVTtBQUUxQyxRQUFJLENBQUMsY0FBYyxnQkFBZ0IsQ0FDakMsUUFBTztBQVFULFFBSkUsZUFBZSxhQUFhLGNBQWMsYUFFdkIsQ0FBQyx3QkFlcEI7U0FBSSxDQVhpQyxzQkFDbEMsUUFBUSxXQUFXLE9BQU8sYUFBYSxTQUFTLENBQ2hELEtBQUssV0FBVyxPQUFPLGFBQWEsYUFBYSxDQUFDLENBRUssT0FDdkQsa0JBQ0MsZ0JBQWdCLE1BQ2IsUUFBUSxJQUFJLGFBQWEsS0FBSyxjQUNoQyxDQUNKLENBR0MsUUFBTztlQVNMLENBTFksZ0JBQWdCLE1BQU0sUUFDcEMsc0JBQXNCLE1BQ25CLFdBQVcsT0FBTyxPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksYUFBYSxHQUMzRCxDQUNGLENBRUMsUUFBTzs7QUFJYixVQUFPO0tBQ04sS0FBSyxDQUNUOzs7Ozs7QUM3TlQsSUFBYSxnQkFBYixNQUEyQjtDQUN6QixPQUFPLEtBQUssVUFBcUQsU0FBeUI7QUFDeEYsVUFBUSxTQUFSO0dBQ0UsS0FBSyxlQUFlLFVBQ2xCLFFBQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUNsQixJQUFJLFFBQ0YsR0FBRyxhQUFhLEdBQUcsaUJBQWlCLE1BQU0sR0FBRyxhQUFhLEdBQUcsaUJBQWlCLEdBQ2xGO0dBRUgsS0FBSyxlQUFlLFdBQ2xCLFFBQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUNsQixJQUFJLFFBQ0YsR0FBRyxhQUFhLEdBQUcsaUJBQWlCLE1BQU0sR0FBRyxhQUFhLEdBQUcsaUJBQWlCLEdBQ2xGO0dBRUgsUUFDRSxRQUFPOzs7Ozs7O0FDR2YsTUFBYSxhQUFhLEtBQWtCO0NBQzFDLE1BQU07Q0FDTixTQUFTO0NBQ1QsT0FBTztDQUNQLFdBQVc7Q0FDWixDQUFDO0FBRUYsTUFBYSwyQkFBMkIsS0FBcUIsZUFBZSxTQUFTO0FBQ3JGLE1BQWEsNEJBQTRCLEtBQTZCLEVBQUUsQ0FBQztBQUV6RSxNQUFhLHNCQUNYLFVBQ0EsY0FDQSxpQkFDMEI7Q0FDMUIsSUFBSSxHQUFHLFNBQVMsR0FBRztDQUNuQjtDQUNBO0NBQ0E7Q0FDRDtBQUVELE1BQU0sMkJBQTJCLEtBRzlCO0NBQ0QsSUFBSTtDQUNKLE9BQU87Q0FDUixDQUFDO0FBRUYsTUFBYSxtQkFBbUIsTUFDN0IsUUFBUSxJQUFJLHlCQUF5QixHQUNyQyxHQUFHLEtBQUssVUFBdUQ7QUFDOUQsS0FBSSwwQkFBMEIsTUFBTTtFQUV2QztBQUNELE1BQWEsZ0NBQWdDLEtBQWMsTUFBTTtBQUVqRSxNQUFhLG1CQUFtQixNQUM3QixRQUFRLElBQUksOEJBQThCLEdBQzFDLEtBQUssS0FBSyxVQUFtQjtBQUM1QixLQUFJLFVBQVUsSUFBSSw4QkFBOEIsQ0FDOUM7Q0FFRixNQUFNLDJCQUEyQjtFQUMvQixNQUFNLFNBQVMsSUFBSSxnQkFBZ0IsT0FBTyxTQUFTLE9BQU87QUFDMUQsTUFBSSxPQUFPLElBQUksS0FBSyxLQUFLLFFBQVE7R0FDL0IsTUFBTSxLQUFLLE9BQU8sSUFBSSxNQUFNO0dBQzVCLE1BQU0sUUFBUSxPQUFPLElBQUksTUFBTTtBQUMvQixPQUFJLGtCQUFrQjtJQUFFO0lBQUk7SUFBTyxDQUFDO1FBRXBDLEtBQUksa0JBQWtCO0dBQUUsSUFBSTtHQUFNLE9BQU87R0FBTSxDQUFDOztBQUdwRCxLQUFJLE9BQU87QUFDVCxNQUFJLCtCQUErQixLQUFLO0FBQ3hDLFNBQU8saUJBQWlCLFlBQVksbUJBQW1CO0FBRXZELHNCQUFvQjtRQUNmO0FBQ0wsTUFBSSwrQkFBK0IsTUFBTTtBQUN6QyxTQUFPLG9CQUFvQixZQUFZLG1CQUFtQjs7RUFHL0Q7QUFFRCxNQUFhLDZCQUE2QixNQUFNLFFBQVE7Q0FDdEQsTUFBTSxhQUFhLElBQUksV0FBVyxDQUFDO0NBQ25DLE1BQU0sVUFBVSxJQUFJLHlCQUF5QjtDQUM3QyxNQUFNLGtCQUFrQixJQUFJLDBCQUEwQjtDQUN0RCxNQUFNLGVBQWUsSUFBSSxpQkFBaUI7QUFFMUMsS0FBSSxDQUFDLFlBQVksWUFBWSxDQUFDLGNBQWMsZ0JBQWdCLFdBQVcsYUFBYyxRQUFPLEVBQUU7Q0FFOUYsTUFBTSxtQkFBbUIsZUFBZSxlQUN0QyxXQUFXLFVBQ1gsYUFBYSxlQUFlLFVBQVUsYUFBYSxvQkFDbkQsaUJBQ0EsYUFBYSxlQUFlLFVBQVUsYUFBYSx1QkFDcEQ7QUFFRCxRQUFPLGNBQWMsS0FBSyxrQkFBa0IsUUFBUTtFQUNwRDtBQUVGLE1BQWEsb0JBQW9CLE1BQU0sUUFBUTtDQUM3QyxNQUFNLGFBQWEsSUFBSSxXQUFXLENBQUM7Q0FDbkMsTUFBTSxrQkFBa0IsSUFBSSwwQkFBMEI7Q0FDdEQsTUFBTSxlQUFlLElBQUksaUJBQWlCO0FBRTFDLEtBQUksQ0FBQyxZQUFZLFlBQVksQ0FBQyxjQUFjLGdCQUFnQixXQUFXLGFBQWMsUUFBTyxFQUFFO0FBRTlGLFFBQU8sZUFBZSxzQkFDcEIsV0FBVyxVQUNYLGFBQWEsZUFBZSxVQUFVLGFBQWEsb0JBQ25ELGdCQUNEO0VBQ0Q7QUFFRixNQUFhLHNCQUFzQixLQUFLLE9BQU8sS0FBSyxLQUFLLFdBQWlDO0NBQ3hGLE1BQU0sVUFBVSxJQUFJLDBCQUEwQjtBQUM5QyxLQUFJLENBQUMsUUFBUSxNQUFNLE1BQU0sRUFBRSxPQUFPLE9BQU8sR0FBRyxDQUMxQyxLQUFJLDJCQUEyQixDQUFDLEdBQUcsU0FBUyxPQUFPLENBQUM7RUFFdEQ7QUFFRixNQUFhLHlCQUF5QixLQUFLLE9BQU8sS0FBSyxLQUFLLGFBQXFCO0NBQy9FLE1BQU0sVUFBVSxJQUFJLDBCQUEwQjtBQUM5QyxLQUNFLDJCQUNBLFFBQVEsUUFBUSxNQUFNLEVBQUUsT0FBTyxTQUFTLENBQ3pDO0VBQ0Q7QUFFRixNQUFhLHlCQUF5QixLQUFLLE9BQU8sR0FBRyxRQUFRO0FBQzNELEtBQUksMkJBQTJCLEVBQUUsQ0FBQztFQUNsQztBQUVGLE1BQWEsb0JBQW9CLEtBQy9CLE1BQ0EsT0FBTyxLQUFLLEtBQUssUUFBc0IsZ0JBQWdCLFVBQVU7Q0FDL0QsTUFBTSxlQUFlLElBQUksV0FBVztDQUVwQyxNQUFNLDJCQURlLElBQUksaUJBQWlCLEVBRTFCLGdCQUFnQixXQUFXLGNBQWM7QUFFekQsS0FBSSxpQkFBaUIsMEJBQTBCO0VBQzdDLE1BQU0sY0FBYyxJQUFJLElBQUkseUJBQXlCO0FBQ3JELGNBQVksYUFBYSxJQUFJLE1BQU0sT0FBTztBQUMxQyxjQUFZLGFBQWEsSUFBSSxPQUFPLE9BQU8sTUFBTTtBQUNqRCxTQUFPLFNBQVMsT0FBTyxZQUFZLFVBQVU7UUFDeEM7RUFFTCxNQUFNLE1BQU0sSUFBSSxJQUFJLE9BQU8sU0FBUyxLQUFLO0FBQ3pDLE1BQUksYUFBYSxJQUFJLE1BQU0sT0FBTztBQUNsQyxNQUFJLGFBQWEsSUFBSSxPQUFPLE9BQU8sTUFBTTtBQUN6QyxTQUFPLFFBQVEsVUFBVSxFQUFFLEVBQUUsSUFBSSxJQUFJO0FBSXJDLFNBQU8sY0FBYyxJQUFJLGNBQWMsWUFBWSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQzs7QUFLcEUsUUFBTyxjQUFjLElBQUksY0FBYyxZQUFZLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLEtBQUksYUFBYSxRQUNmO0FBR0YsS0FBSSxZQUFZO0VBQ2QsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0VBQ1AsV0FBVyxPQUFPO0VBQ25CLENBQUM7QUFDRixLQUFJO0VBRUYsTUFBTSxTQUFTLE1BRGUsMEJBQTBCLENBQ2IsT0FBTztBQUNsRCxNQUFJLFlBQVk7R0FDZCxNQUFNO0dBQ04sU0FBUztHQUNULE9BQU87R0FDUCxXQUFXLE9BQU87R0FDbkIsQ0FBQztVQUNLQSxPQUFnQjtFQUN2QixNQUFNLGVBQWUsaUJBQWlCLFFBQVEsTUFBTSxVQUFVO0FBQzlELE1BQUksWUFBWTtHQUNkLE1BQU07R0FDTixTQUFTO0dBQ1QsT0FBTztHQUNQLFdBQVcsT0FBTztHQUNuQixDQUFDOztFQUdQIn0=
@@ -1,8 +1,8 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_dist = require('./dist-BZX_Mgfn.cjs');
3
- const require_newOrgConfigAtom = require('./newOrgConfigAtom-hs5A1pbZ.cjs');
4
- const require_utils = require('./utils-BBICrPjW.cjs');
5
- const require_searchServiceAdapter = require('./searchServiceAdapter-DrjFCiw8.cjs');
2
+ const require_dist = require('./dist-VxRI6eQv.cjs');
3
+ const require_newOrgConfigAtom = require('./newOrgConfigAtom-rrYHmp1b.cjs');
4
+ const require_utils = require('./utils-CqVRbvfN.cjs');
5
+ const require_searchServiceAdapter = require('./searchServiceAdapter-BclWy4fE.cjs');
6
6
  let jotai = require("jotai");
7
7
  jotai = require_chunk.__toESM(jotai);
8
8
 
@@ -309,4 +309,4 @@ Object.defineProperty(exports, 'searchSystemAtom', {
309
309
  return searchSystemAtom;
310
310
  }
311
311
  });
312
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLThiUGZvMDdWLmNqcyIsIm5hbWVzIjpbImZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIiwiUHJvZHVjdFNvcnRpbmciLCJQcm9kdWN0U29ydGluZyIsIm5ld09yZ0NvbmZpZ0F0b20iLCJnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24iLCJlcnJvcjogdW5rbm93biJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdEZpbHRlcnMudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RTb3J0ZXIudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0U2VhcmNoRmlsdGVyLCBDaGF0U2VhcmNoRmlsdGVySXRlbSB9IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyBGaWx0ZXJBdHRyaWJ1dGUsIFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tIFwic3JjL3R5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbHRlck9wdGlvbiB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSVwiO1xuaW1wb3J0IHsgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5jb25zdCBnZXRQcmljZUJ1Y2tldCA9IChwcmljZTogbnVtYmVyLCBidWNrZXRTaXplOiBudW1iZXIpID0+IHtcbiAgY29uc3QgYnVja2V0ID0gTWF0aC5mbG9vcihwcmljZSAvIGJ1Y2tldFNpemUpO1xuICByZXR1cm4gYnVja2V0ICogYnVja2V0U2l6ZTtcbn07XG5cbmNvbnN0IGlzU3RyaW5nQXJyYXkgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmdbXSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIik7XG59O1xuXG50eXBlIEZpbHRlclNvcnRGdW5jdGlvbiA9IChcbiAgYTogQ2hhdFNlYXJjaEZpbHRlckl0ZW0sXG4gIGI6IENoYXRTZWFyY2hGaWx0ZXJJdGVtXG4pID0+IG51bWJlcjtcblxuY29uc3Qgc29ydEZpbHRlciA9IChmaWx0ZXJDb25maWc6IEZpbHRlckF0dHJpYnV0ZSk6IEZpbHRlclNvcnRGdW5jdGlvbiA9PiB7XG4gIGlmIChmaWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgcmV0dXJuIChhLCBiKSA9PiBOdW1iZXIoYS5maWx0ZXJJdGVtSWQpIC0gTnVtYmVyKGIuZmlsdGVySXRlbUlkKTtcbiAgfVxuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwiZHluYW1pY1wiKSB7XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiYWxwaGFiZXRpY1wiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTtcbiAgICB9XG4gICAgLy8gU29ydCBieSB0aGUgbnVtYmVyIG9mIHByb2R1Y3RzLCBpZiB0aGV5IG1hdGNoLCBzb3J0IGJ5IGFscGhhYmV0aWNhbFxuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcInByb2R1Y3RDb3VudFwiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+XG4gICAgICAgIGEucHJvZHVjdENvdW50ID09PSBiLnByb2R1Y3RDb3VudFxuICAgICAgICAgID8gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpXG4gICAgICAgICAgOiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgIH1cbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJjdXN0b21cIikge1xuICAgICAgY29uc3Qgc29ydGVkS2V5cyA9IGZpbHRlckNvbmZpZy5zb3J0aW5nLm1hcDtcbiAgICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSAmJiBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgLy8gSWYgYm90aCBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgdGhlIGluZGV4XG4gICAgICAgICAgcmV0dXJuIHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gLSBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG9ubHkgJ2EnIGlzIGluIHRoZSBzb3J0ZWRLZXlzLCBwdXQgaXQgYmVmb3JlIHRoZSBvdGhlclxuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdiJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYi5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBuZWl0aGVyIGFyZSBpbiB0aGUgc29ydGVkS2V5cywgc29ydCBieSBwcm9kdWN0Q291bnRcbiAgICAgICAgcmV0dXJuIGIucHJvZHVjdENvdW50IC0gYS5wcm9kdWN0Q291bnQ7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhYWxpZCBzZWFyY2ggZmlsdGVyIGNvbmZpZ3VyYXRpb25cIik7XG59O1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEZpbHRlcnMge1xuICBzdGF0aWMgZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXVxuICApOiBDaGF0U2VhcmNoRmlsdGVyW10ge1xuICAgIGlmICghcHJvZHVjdHMgfHwgcHJvZHVjdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVycyA9IGZpbHRlckNvbmZpZ3MubWFwKChmaWx0ZXJDb25maWcpID0+XG4gICAgICBwcm9kdWN0cy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAvLyBQcmljZSBoYXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgdGhlIGZpbHRlcnNcbiAgICAgICAgICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgIGZpbHRlckNvbmZpZy5idWNrZXRTaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGFjYy5tYXBbcHJpY2VCdWNrZXRdID8/IHtcbiAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBwcmljZUJ1Y2tldCxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAkJHtwcmljZUJ1Y2tldH0tJCR7XG4gICAgICAgICAgICAgICAgcHJpY2VCdWNrZXQgKyBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFjYy5tYXBbcHJpY2VCdWNrZXRdID0ge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFzc3VtZSB0aGF0IHRoZSBcImF0dHJpYnV0ZVwiIGlzIGFuIGFycmF5IG9mIHZhbHVlc1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9XG4gICAgICAgICAgICAocHJvZHVjdC5maWx0ZXJzICYmIHByb2R1Y3QuZmlsdGVycz8uW2ZpbHRlckNvbmZpZy5hdHRyaWJ1dGVdKSA/P1xuICAgICAgICAgICAgW107XG4gICAgICAgICAgaWYgKGlzU3RyaW5nQXJyYXkoYXR0cmlidXRlVmFsdWVzKSkge1xuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW25vcm1hbGl6ZWRWYWxdID8/IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IG5vcm1hbGl6ZWRWYWwsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lKHZhbCksIC8vIEtlZXAgb3JpZ2luYWwgY2FzZSBmb3IgZGlzcGxheVxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgYWNjLm1hcFtub3JtYWxpemVkVmFsXSA9IHtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogY3VycmVudC5wcm9kdWN0Q291bnQgKyAxLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgICBtYXA6IHt9IGFzIFJlY29yZDxzdHJpbmcsIENoYXRTZWFyY2hGaWx0ZXJJdGVtPixcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlcnM6IENoYXRTZWFyY2hGaWx0ZXJbXSA9IGZpbHRlcnMubWFwKFxuICAgICAgKHsgZmlsdGVyQ29uZmlnLCBtYXAgfSkgPT4gKHtcbiAgICAgICAgZmlsdGVySWQ6IGZpbHRlckNvbmZpZy5maWx0ZXJJZCxcbiAgICAgICAgZGlzcGxheU5hbWU6IGZpbHRlckNvbmZpZy5kaXNwbGF5TmFtZSxcbiAgICAgICAgaXRlbXM6IE9iamVjdC52YWx1ZXMobWFwKVxuICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4gKHtcbiAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogZmlsdGVyLmZpbHRlckl0ZW1JZCxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXIuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGZpbHRlci5wcm9kdWN0Q291bnQsXG4gICAgICAgICAgICBpc1NlbGVjdGVkOlxuICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgb3B0aW9uLmlkID09PVxuICAgICAgICAgICAgICAgICAgYCR7ZmlsdGVyQ29uZmlnLmZpbHRlcklkfToke2ZpbHRlci5maWx0ZXJJdGVtSWR9YFxuICAgICAgICAgICAgICApID8/IGZhbHNlLFxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5zb3J0KHNvcnRGaWx0ZXIoZmlsdGVyQ29uZmlnKSksXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gWy4uLnRyYW5zZm9ybWVkRmlsdGVyc107XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyUHJvZHVjdHMoXG4gICAgcHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbXCJhdHRyaWJ1dGVzXCJdW10sXG4gICAgZmlsdGVyQ29uZmlnczogRmlsdGVyQXR0cmlidXRlW10sXG4gICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zOiBTZWxlY3RlZEZpbHRlck9wdGlvbltdLFxuICAgIGFkZGl0aXZlRHluYW1pY0ZpbHRlcnMgPSBmYWxzZSAvLyBTZXQgdGhpcyB0byB0cnVlIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJlaGF2aW9yIHdoZXJlIHN0YWNraW5nIGZpbHRlcnMgaGFzIE9SIGxvZ2ljLlxuICApIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBmaWx0ZXJDb25maWdzXG4gICAgICAubWFwKChmaWx0ZXJDb25maWcpID0+ICh7XG4gICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgaGFzU2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlckNvbmZpZy5maWx0ZXJJZFxuICAgICAgICApLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKCh7IGhhc1NlbGVjdGVkT3B0aW9ucyB9KSA9PiBoYXNTZWxlY3RlZE9wdGlvbnMpO1xuICAgIHJldHVybiBzZWxlY3RlZEZpbHRlck9wdGlvbnMubGVuZ3RoID09PSAwXG4gICAgICA/IHByb2R1Y3RzXG4gICAgICA6IHByb2R1Y3RzLmZpbHRlcigocHJvZHVjdCkgPT5cbiAgICAgICAgICBzZWxlY3RlZEZpbHRlcnMucmVkdWNlKChhY2MsIHNlbGVjdGVkRmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAvLyBGaW5kaW5nIG9uZSBmYWxzZSByZW1vdmVzIHRoZSBwcm9kdWN0XG4gICAgICAgICAgICBpZiAoIWFjYykge1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUHJpY2UgaXMgc3BlY2lhbFxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgICBwcm9kdWN0LnNhbGVQcmljZSA/PyBwcm9kdWN0Lm9yaWdpbmFsUHJpY2UgPz8gMCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzUHJpY2VGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGBwcmljZToke3ByaWNlQnVja2V0fWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzUHJpY2VGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgICAgICAgICAgICAvLyBkeW5hbWljIGlzIG1pc2xlYWRpbmcgaGVyZS4gSXRzIG5vdCBqdXN0IGR5bmFtaWMgZmlsdGVycywgYnV0IHN0YXRpYyBmaWx0ZXJzIGJlY2F1c2UgdGhlIGNvbmZpZyBjb3VudHMgc3RhdGljIGZpbHRlcnMgYXMgdHlwZTogZHluYW1pYy5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJJZCwgYXR0cmlidXRlIH0gPSBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWc7XG4gICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9IHByb2R1Y3QuZmlsdGVycz8uW2F0dHJpYnV0ZV07XG5cbiAgICAgICAgICAgICAgaWYgKCFpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpc0R5bmFtaWNGaWx0ZXIgPVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy5hdHRyaWJ1dGUgPT09IFwiZHluYW1pY1wiOyAvLyBUcnVlIGR5bmFtaWMgZmlsdGVycyAodGhlIG9uZXMgdGhhdCBhcHBlYXIgYmVuZWF0aCB0aGUgc2VhcmNoIGlucHV0KVxuICAgICAgICAgICAgICBjb25zdCBpc1N1YnRyYWN0aXZlTG9naWMgPVxuICAgICAgICAgICAgICAgIGlzRHluYW1pY0ZpbHRlciAmJiAhYWRkaXRpdmVEeW5hbWljRmlsdGVycztcblxuICAgICAgICAgICAgICBpZiAoaXNTdWJ0cmFjdGl2ZUxvZ2ljKSB7XG4gICAgICAgICAgICAgICAgLy8gQU5EIGxvZ2ljIGZvciBzdWJ0cmFjdGl2ZSBkeW5hbWljIGZpbHRlcnMgYW5kIGJldHdlZW4gc3RhdGljIGZpbHRlciBjYXRlZ29yaWVzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlciA9IHNlbGVjdGVkRmlsdGVyT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlcklkKVxuICAgICAgICAgICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySXRlbUlkLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzQWxsU2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZE9wdGlvbnNGb3JUaGlzRmlsdGVyLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkVmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICh2YWwpID0+IHZhbC50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBbGxTZWxlY3RlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPUiBsb2dpYyBmb3Igc3RhdGljIGZpbHRlcnMgaW4gdGhlIHNpZGViYXIgd2l0aGluIGEgY2F0ZWdvcnkuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGF0dHJpYnV0ZVZhbHVlcy5zb21lKCh2YWwpID0+XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgJHtmaWx0ZXJJZH06JHt2YWwudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0sIHRydWUpXG4gICAgICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0aW5nIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9kdWN0U29ydGVyIHtcbiAgc3RhdGljIHNvcnQocHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXVtdLCBzb3J0aW5nOiBQcm9kdWN0U29ydGluZykge1xuICAgIHN3aXRjaCAoc29ydGluZykge1xuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9BU0M6XG4gICAgICAgIHJldHVybiBbLi4ucHJvZHVjdHNdLnNvcnQoXG4gICAgICAgICAgKHAxLCBwMikgPT5cbiAgICAgICAgICAgIChwMS5zYWxlUHJpY2UgPz8gcDEub3JpZ2luYWxQcmljZSA/PyAwKSAtIChwMi5zYWxlUHJpY2UgPz8gcDIub3JpZ2luYWxQcmljZSA/PyAwKSxcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9ERVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwcm9kdWN0cztcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgUHJvZHVjdEZpbHRlcnMgfSBmcm9tICcuL3Byb2R1Y3RGaWx0ZXJzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0ZXIgfSBmcm9tICcuL3Byb2R1Y3RTb3J0ZXInO1xuaW1wb3J0IHsgbmV3T3JnQ29uZmlnQXRvbSB9IGZyb20gJy4uL29yZyc7XG5pbXBvcnQgeyBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24gfSBmcm9tICcuL3NlYXJjaFNlcnZpY2VBZGFwdGVyJztcbmltcG9ydCB7IFNlYXJjaFBhcmFtcywgU2VhcmNoUmVzdWx0IH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkRmlsdGVyT3B0aW9uID0ge1xuICBpZDogc3RyaW5nOyAvLyBcImZpbHRlcklkOmZpbHRlckl0ZW1JZFwiIC0gbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGNvbXBhcmlzb25zXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGZpbHRlcklkOiBzdHJpbmc7IC8vIEZpbHRlciBjYXRlZ29yeVxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZzsgLy8gRmlsdGVyIHZhbHVlXG59O1xuXG5pbnRlcmZhY2UgU2VhcmNoU3RhdGUge1xuICBkYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdFF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoQXRvbSA9IGF0b208U2VhcmNoU3RhdGU+KHtcbiAgZGF0YTogbnVsbCxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGVycm9yOiBudWxsLFxuICBsYXN0UXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSA9IGF0b208UHJvZHVjdFNvcnRpbmc+KFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbmV4cG9ydCBjb25zdCBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tID0gYXRvbTxTZWxlY3RlZEZpbHRlck9wdGlvbltdPihbXSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWx0ZXJPcHRpb24gPSAoXG4gIGZpbHRlcklkOiBzdHJpbmcsXG4gIGZpbHRlckl0ZW1JZDogc3RyaW5nLFxuICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuKTogU2VsZWN0ZWRGaWx0ZXJPcHRpb24gPT4gKHtcbiAgaWQ6IGAke2ZpbHRlcklkfToke2ZpbHRlckl0ZW1JZH1gLFxuICBkaXNwbGF5TmFtZSxcbiAgZmlsdGVySWQsXG4gIGZpbHRlckl0ZW1JZCxcbn0pO1xuXG5jb25zdCBpbnRlcm5hbFNlYXJjaFBhcmFtc0F0b20gPSBhdG9tPHtcbiAgaWQ6IHN0cmluZyB8IG51bGw7XG4gIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufT4oe1xuICBpZDogbnVsbCxcbiAgcXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFBhcmFtc0F0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiBnZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tKSxcbiAgKF8sIHNldCwgdmFsdWU6IHsgaWQ6IHN0cmluZyB8IG51bGw7IHF1ZXJ5OiBzdHJpbmcgfCBudWxsIH0pID0+IHtcbiAgICBzZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tLCB2YWx1ZSk7XG4gIH0sXG4pO1xuZXhwb3J0IGNvbnN0IGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tID0gYXRvbTxib29sZWFuPihmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hTeXN0ZW1BdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgaWYgKHBhcmFtcy5nZXQoJ2VzJykgPT09ICd0cnVlJykge1xuICAgICAgICBjb25zdCBpZCA9IHBhcmFtcy5nZXQoJ2VzaScpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy5nZXQoJ2VzcScpO1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZCwgcXVlcnkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZDogbnVsbCwgcXVlcnk6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgdHJ1ZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzdGF0ZUNoYW5nZUhhbmRsZXIpO1xuICAgICAgLy8gQWxzbyB0cmlnZ2VyIHRoZSBoYXNoIGNoYW5nZSBoYW5kbGVyIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgc3RhdGVDaGFuZ2VIYW5kbGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgZmFsc2UpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICB9XG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3Qgc2VhcmNoRGF0YSA9IGdldChzZWFyY2hBdG9tKS5kYXRhO1xuICBjb25zdCBzb3J0aW5nID0gZ2V0KHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSk7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgY29uc3QgZmlsdGVyZWRQcm9kdWN0cyA9IFByb2R1Y3RGaWx0ZXJzLmZpbHRlclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgICBuZXdPcmdDb25maWcuZnJvbnRlbmRDb25maWcudWlDb25maWdzLnNlYXJjaENvbmZpZy5hZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzLFxuICApO1xuXG4gIHJldHVybiBQcm9kdWN0U29ydGVyLnNvcnQoZmlsdGVyZWRQcm9kdWN0cywgc29ydGluZyk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaEZpbHRlcnNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgaWYgKCFzZWFyY2hEYXRhPy5wcm9kdWN0cyB8fCAhbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWcpIHJldHVybiBbXTtcblxuICByZXR1cm4gUHJvZHVjdEZpbHRlcnMuZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgYWRkU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGlmICghY3VycmVudC5zb21lKChmKSA9PiBmLmlkID09PSBmaWx0ZXIuaWQpKSB7XG4gICAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFsuLi5jdXJyZW50LCBmaWx0ZXJdKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWFyY2hGaWx0ZXJBdG9tID0gYXRvbShudWxsLCAoZ2V0LCBzZXQsIGZpbHRlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY3VycmVudCA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgc2V0KFxuICAgIHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sXG4gICAgY3VycmVudC5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbHRlcklkKSxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20obnVsbCwgKF8sIHNldCkgPT4ge1xuICBzZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSwgW10pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtU2VhcmNoQXRvbSA9IGF0b20oXG4gIG51bGwsXG4gIGFzeW5jIChnZXQsIHNldCwgcGFyYW1zOiBTZWFyY2hQYXJhbXMsIGFsbG93UmVkaXJlY3QgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGdldChzZWFyY2hBdG9tKTtcbiAgICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG4gICAgY29uc3QgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsID1cbiAgICAgIG5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnPy5yZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw7XG5cbiAgICBpZiAoYWxsb3dSZWRpcmVjdCAmJiByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpIHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gbmV3IFVSTChyZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmwudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlIFVSTCBhbmQgbWFudWFsbHkgdHJpZ2dlciBzdGF0ZSBjaGFuZ2UgKHNpbmNlIHB1c2hTdGF0ZSBkb2Vzbid0IHRyaWdnZXIgcG9wc3RhdGUpXG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdlcycsICd0cnVlJyk7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHVybCk7XG5cbiAgICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSBwYWdlIHZhcmlhbnQgc3lzdGVtIGRldGVjdHMgdGhlIFVSTCBjaGFuZ2UgYW5kIG1vdW50cyBzZWFyY2ggcmVzdWx0c1xuICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIH1cblxuICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudCgncG9wc3RhdGUnLCB7IHN0YXRlOiB7fSB9KSk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47IC8vIFByZXZlbnQgY29uY3VycmVudCBzZWFyY2hlc1xuICAgIH1cblxuICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgfSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbiA9IGdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VhcmNoU2VydmljZUZ1bmN0aW9uKHBhcmFtcyk7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgbGFzdFF1ZXJ5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
312
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLUNoNkxLTmg0LmNqcyIsIm5hbWVzIjpbImZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIiwiUHJvZHVjdFNvcnRpbmciLCJQcm9kdWN0U29ydGluZyIsIm5ld09yZ0NvbmZpZ0F0b20iLCJnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24iLCJlcnJvcjogdW5rbm93biJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdEZpbHRlcnMudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RTb3J0ZXIudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0U2VhcmNoRmlsdGVyLCBDaGF0U2VhcmNoRmlsdGVySXRlbSB9IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyBGaWx0ZXJBdHRyaWJ1dGUsIFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tIFwic3JjL3R5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbHRlck9wdGlvbiB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSVwiO1xuaW1wb3J0IHsgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5jb25zdCBnZXRQcmljZUJ1Y2tldCA9IChwcmljZTogbnVtYmVyLCBidWNrZXRTaXplOiBudW1iZXIpID0+IHtcbiAgY29uc3QgYnVja2V0ID0gTWF0aC5mbG9vcihwcmljZSAvIGJ1Y2tldFNpemUpO1xuICByZXR1cm4gYnVja2V0ICogYnVja2V0U2l6ZTtcbn07XG5cbmNvbnN0IGlzU3RyaW5nQXJyYXkgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmdbXSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIik7XG59O1xuXG50eXBlIEZpbHRlclNvcnRGdW5jdGlvbiA9IChcbiAgYTogQ2hhdFNlYXJjaEZpbHRlckl0ZW0sXG4gIGI6IENoYXRTZWFyY2hGaWx0ZXJJdGVtXG4pID0+IG51bWJlcjtcblxuY29uc3Qgc29ydEZpbHRlciA9IChmaWx0ZXJDb25maWc6IEZpbHRlckF0dHJpYnV0ZSk6IEZpbHRlclNvcnRGdW5jdGlvbiA9PiB7XG4gIGlmIChmaWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgcmV0dXJuIChhLCBiKSA9PiBOdW1iZXIoYS5maWx0ZXJJdGVtSWQpIC0gTnVtYmVyKGIuZmlsdGVySXRlbUlkKTtcbiAgfVxuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwiZHluYW1pY1wiKSB7XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiYWxwaGFiZXRpY1wiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTtcbiAgICB9XG4gICAgLy8gU29ydCBieSB0aGUgbnVtYmVyIG9mIHByb2R1Y3RzLCBpZiB0aGV5IG1hdGNoLCBzb3J0IGJ5IGFscGhhYmV0aWNhbFxuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcInByb2R1Y3RDb3VudFwiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+XG4gICAgICAgIGEucHJvZHVjdENvdW50ID09PSBiLnByb2R1Y3RDb3VudFxuICAgICAgICAgID8gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpXG4gICAgICAgICAgOiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgIH1cbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJjdXN0b21cIikge1xuICAgICAgY29uc3Qgc29ydGVkS2V5cyA9IGZpbHRlckNvbmZpZy5zb3J0aW5nLm1hcDtcbiAgICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSAmJiBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgLy8gSWYgYm90aCBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgdGhlIGluZGV4XG4gICAgICAgICAgcmV0dXJuIHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gLSBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG9ubHkgJ2EnIGlzIGluIHRoZSBzb3J0ZWRLZXlzLCBwdXQgaXQgYmVmb3JlIHRoZSBvdGhlclxuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdiJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYi5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBuZWl0aGVyIGFyZSBpbiB0aGUgc29ydGVkS2V5cywgc29ydCBieSBwcm9kdWN0Q291bnRcbiAgICAgICAgcmV0dXJuIGIucHJvZHVjdENvdW50IC0gYS5wcm9kdWN0Q291bnQ7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhYWxpZCBzZWFyY2ggZmlsdGVyIGNvbmZpZ3VyYXRpb25cIik7XG59O1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEZpbHRlcnMge1xuICBzdGF0aWMgZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXVxuICApOiBDaGF0U2VhcmNoRmlsdGVyW10ge1xuICAgIGlmICghcHJvZHVjdHMgfHwgcHJvZHVjdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVycyA9IGZpbHRlckNvbmZpZ3MubWFwKChmaWx0ZXJDb25maWcpID0+XG4gICAgICBwcm9kdWN0cy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAvLyBQcmljZSBoYXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgdGhlIGZpbHRlcnNcbiAgICAgICAgICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgIGZpbHRlckNvbmZpZy5idWNrZXRTaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGFjYy5tYXBbcHJpY2VCdWNrZXRdID8/IHtcbiAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBwcmljZUJ1Y2tldCxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAkJHtwcmljZUJ1Y2tldH0tJCR7XG4gICAgICAgICAgICAgICAgcHJpY2VCdWNrZXQgKyBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFjYy5tYXBbcHJpY2VCdWNrZXRdID0ge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFzc3VtZSB0aGF0IHRoZSBcImF0dHJpYnV0ZVwiIGlzIGFuIGFycmF5IG9mIHZhbHVlc1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9XG4gICAgICAgICAgICAocHJvZHVjdC5maWx0ZXJzICYmIHByb2R1Y3QuZmlsdGVycz8uW2ZpbHRlckNvbmZpZy5hdHRyaWJ1dGVdKSA/P1xuICAgICAgICAgICAgW107XG4gICAgICAgICAgaWYgKGlzU3RyaW5nQXJyYXkoYXR0cmlidXRlVmFsdWVzKSkge1xuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW25vcm1hbGl6ZWRWYWxdID8/IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IG5vcm1hbGl6ZWRWYWwsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lKHZhbCksIC8vIEtlZXAgb3JpZ2luYWwgY2FzZSBmb3IgZGlzcGxheVxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgYWNjLm1hcFtub3JtYWxpemVkVmFsXSA9IHtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogY3VycmVudC5wcm9kdWN0Q291bnQgKyAxLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgICBtYXA6IHt9IGFzIFJlY29yZDxzdHJpbmcsIENoYXRTZWFyY2hGaWx0ZXJJdGVtPixcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlcnM6IENoYXRTZWFyY2hGaWx0ZXJbXSA9IGZpbHRlcnMubWFwKFxuICAgICAgKHsgZmlsdGVyQ29uZmlnLCBtYXAgfSkgPT4gKHtcbiAgICAgICAgZmlsdGVySWQ6IGZpbHRlckNvbmZpZy5maWx0ZXJJZCxcbiAgICAgICAgZGlzcGxheU5hbWU6IGZpbHRlckNvbmZpZy5kaXNwbGF5TmFtZSxcbiAgICAgICAgaXRlbXM6IE9iamVjdC52YWx1ZXMobWFwKVxuICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4gKHtcbiAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogZmlsdGVyLmZpbHRlckl0ZW1JZCxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXIuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGZpbHRlci5wcm9kdWN0Q291bnQsXG4gICAgICAgICAgICBpc1NlbGVjdGVkOlxuICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgb3B0aW9uLmlkID09PVxuICAgICAgICAgICAgICAgICAgYCR7ZmlsdGVyQ29uZmlnLmZpbHRlcklkfToke2ZpbHRlci5maWx0ZXJJdGVtSWR9YFxuICAgICAgICAgICAgICApID8/IGZhbHNlLFxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5zb3J0KHNvcnRGaWx0ZXIoZmlsdGVyQ29uZmlnKSksXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gWy4uLnRyYW5zZm9ybWVkRmlsdGVyc107XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyUHJvZHVjdHMoXG4gICAgcHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbXCJhdHRyaWJ1dGVzXCJdW10sXG4gICAgZmlsdGVyQ29uZmlnczogRmlsdGVyQXR0cmlidXRlW10sXG4gICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zOiBTZWxlY3RlZEZpbHRlck9wdGlvbltdLFxuICAgIGFkZGl0aXZlRHluYW1pY0ZpbHRlcnMgPSBmYWxzZSAvLyBTZXQgdGhpcyB0byB0cnVlIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJlaGF2aW9yIHdoZXJlIHN0YWNraW5nIGZpbHRlcnMgaGFzIE9SIGxvZ2ljLlxuICApIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBmaWx0ZXJDb25maWdzXG4gICAgICAubWFwKChmaWx0ZXJDb25maWcpID0+ICh7XG4gICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgaGFzU2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlckNvbmZpZy5maWx0ZXJJZFxuICAgICAgICApLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKCh7IGhhc1NlbGVjdGVkT3B0aW9ucyB9KSA9PiBoYXNTZWxlY3RlZE9wdGlvbnMpO1xuICAgIHJldHVybiBzZWxlY3RlZEZpbHRlck9wdGlvbnMubGVuZ3RoID09PSAwXG4gICAgICA/IHByb2R1Y3RzXG4gICAgICA6IHByb2R1Y3RzLmZpbHRlcigocHJvZHVjdCkgPT5cbiAgICAgICAgICBzZWxlY3RlZEZpbHRlcnMucmVkdWNlKChhY2MsIHNlbGVjdGVkRmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAvLyBGaW5kaW5nIG9uZSBmYWxzZSByZW1vdmVzIHRoZSBwcm9kdWN0XG4gICAgICAgICAgICBpZiAoIWFjYykge1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUHJpY2UgaXMgc3BlY2lhbFxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgICBwcm9kdWN0LnNhbGVQcmljZSA/PyBwcm9kdWN0Lm9yaWdpbmFsUHJpY2UgPz8gMCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzUHJpY2VGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGBwcmljZToke3ByaWNlQnVja2V0fWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzUHJpY2VGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgICAgICAgICAgICAvLyBkeW5hbWljIGlzIG1pc2xlYWRpbmcgaGVyZS4gSXRzIG5vdCBqdXN0IGR5bmFtaWMgZmlsdGVycywgYnV0IHN0YXRpYyBmaWx0ZXJzIGJlY2F1c2UgdGhlIGNvbmZpZyBjb3VudHMgc3RhdGljIGZpbHRlcnMgYXMgdHlwZTogZHluYW1pYy5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJJZCwgYXR0cmlidXRlIH0gPSBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWc7XG4gICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9IHByb2R1Y3QuZmlsdGVycz8uW2F0dHJpYnV0ZV07XG5cbiAgICAgICAgICAgICAgaWYgKCFpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpc0R5bmFtaWNGaWx0ZXIgPVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy5hdHRyaWJ1dGUgPT09IFwiZHluYW1pY1wiOyAvLyBUcnVlIGR5bmFtaWMgZmlsdGVycyAodGhlIG9uZXMgdGhhdCBhcHBlYXIgYmVuZWF0aCB0aGUgc2VhcmNoIGlucHV0KVxuICAgICAgICAgICAgICBjb25zdCBpc1N1YnRyYWN0aXZlTG9naWMgPVxuICAgICAgICAgICAgICAgIGlzRHluYW1pY0ZpbHRlciAmJiAhYWRkaXRpdmVEeW5hbWljRmlsdGVycztcblxuICAgICAgICAgICAgICBpZiAoaXNTdWJ0cmFjdGl2ZUxvZ2ljKSB7XG4gICAgICAgICAgICAgICAgLy8gQU5EIGxvZ2ljIGZvciBzdWJ0cmFjdGl2ZSBkeW5hbWljIGZpbHRlcnMgYW5kIGJldHdlZW4gc3RhdGljIGZpbHRlciBjYXRlZ29yaWVzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlciA9IHNlbGVjdGVkRmlsdGVyT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlcklkKVxuICAgICAgICAgICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySXRlbUlkLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzQWxsU2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZE9wdGlvbnNGb3JUaGlzRmlsdGVyLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkVmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICh2YWwpID0+IHZhbC50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBbGxTZWxlY3RlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPUiBsb2dpYyBmb3Igc3RhdGljIGZpbHRlcnMgaW4gdGhlIHNpZGViYXIgd2l0aGluIGEgY2F0ZWdvcnkuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGF0dHJpYnV0ZVZhbHVlcy5zb21lKCh2YWwpID0+XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgJHtmaWx0ZXJJZH06JHt2YWwudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0sIHRydWUpXG4gICAgICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0aW5nIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9kdWN0U29ydGVyIHtcbiAgc3RhdGljIHNvcnQocHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXVtdLCBzb3J0aW5nOiBQcm9kdWN0U29ydGluZykge1xuICAgIHN3aXRjaCAoc29ydGluZykge1xuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9BU0M6XG4gICAgICAgIHJldHVybiBbLi4ucHJvZHVjdHNdLnNvcnQoXG4gICAgICAgICAgKHAxLCBwMikgPT5cbiAgICAgICAgICAgIChwMS5zYWxlUHJpY2UgPz8gcDEub3JpZ2luYWxQcmljZSA/PyAwKSAtIChwMi5zYWxlUHJpY2UgPz8gcDIub3JpZ2luYWxQcmljZSA/PyAwKSxcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9ERVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwcm9kdWN0cztcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgUHJvZHVjdEZpbHRlcnMgfSBmcm9tICcuL3Byb2R1Y3RGaWx0ZXJzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0ZXIgfSBmcm9tICcuL3Byb2R1Y3RTb3J0ZXInO1xuaW1wb3J0IHsgbmV3T3JnQ29uZmlnQXRvbSB9IGZyb20gJy4uL29yZyc7XG5pbXBvcnQgeyBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24gfSBmcm9tICcuL3NlYXJjaFNlcnZpY2VBZGFwdGVyJztcbmltcG9ydCB7IFNlYXJjaFBhcmFtcywgU2VhcmNoUmVzdWx0IH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkRmlsdGVyT3B0aW9uID0ge1xuICBpZDogc3RyaW5nOyAvLyBcImZpbHRlcklkOmZpbHRlckl0ZW1JZFwiIC0gbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGNvbXBhcmlzb25zXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGZpbHRlcklkOiBzdHJpbmc7IC8vIEZpbHRlciBjYXRlZ29yeVxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZzsgLy8gRmlsdGVyIHZhbHVlXG59O1xuXG5pbnRlcmZhY2UgU2VhcmNoU3RhdGUge1xuICBkYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdFF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoQXRvbSA9IGF0b208U2VhcmNoU3RhdGU+KHtcbiAgZGF0YTogbnVsbCxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGVycm9yOiBudWxsLFxuICBsYXN0UXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSA9IGF0b208UHJvZHVjdFNvcnRpbmc+KFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbmV4cG9ydCBjb25zdCBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tID0gYXRvbTxTZWxlY3RlZEZpbHRlck9wdGlvbltdPihbXSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWx0ZXJPcHRpb24gPSAoXG4gIGZpbHRlcklkOiBzdHJpbmcsXG4gIGZpbHRlckl0ZW1JZDogc3RyaW5nLFxuICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuKTogU2VsZWN0ZWRGaWx0ZXJPcHRpb24gPT4gKHtcbiAgaWQ6IGAke2ZpbHRlcklkfToke2ZpbHRlckl0ZW1JZH1gLFxuICBkaXNwbGF5TmFtZSxcbiAgZmlsdGVySWQsXG4gIGZpbHRlckl0ZW1JZCxcbn0pO1xuXG5jb25zdCBpbnRlcm5hbFNlYXJjaFBhcmFtc0F0b20gPSBhdG9tPHtcbiAgaWQ6IHN0cmluZyB8IG51bGw7XG4gIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufT4oe1xuICBpZDogbnVsbCxcbiAgcXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFBhcmFtc0F0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiBnZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tKSxcbiAgKF8sIHNldCwgdmFsdWU6IHsgaWQ6IHN0cmluZyB8IG51bGw7IHF1ZXJ5OiBzdHJpbmcgfCBudWxsIH0pID0+IHtcbiAgICBzZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tLCB2YWx1ZSk7XG4gIH0sXG4pO1xuZXhwb3J0IGNvbnN0IGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tID0gYXRvbTxib29sZWFuPihmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hTeXN0ZW1BdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgaWYgKHBhcmFtcy5nZXQoJ2VzJykgPT09ICd0cnVlJykge1xuICAgICAgICBjb25zdCBpZCA9IHBhcmFtcy5nZXQoJ2VzaScpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy5nZXQoJ2VzcScpO1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZCwgcXVlcnkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZDogbnVsbCwgcXVlcnk6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgdHJ1ZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzdGF0ZUNoYW5nZUhhbmRsZXIpO1xuICAgICAgLy8gQWxzbyB0cmlnZ2VyIHRoZSBoYXNoIGNoYW5nZSBoYW5kbGVyIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgc3RhdGVDaGFuZ2VIYW5kbGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgZmFsc2UpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICB9XG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3Qgc2VhcmNoRGF0YSA9IGdldChzZWFyY2hBdG9tKS5kYXRhO1xuICBjb25zdCBzb3J0aW5nID0gZ2V0KHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSk7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgY29uc3QgZmlsdGVyZWRQcm9kdWN0cyA9IFByb2R1Y3RGaWx0ZXJzLmZpbHRlclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgICBuZXdPcmdDb25maWcuZnJvbnRlbmRDb25maWcudWlDb25maWdzLnNlYXJjaENvbmZpZy5hZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzLFxuICApO1xuXG4gIHJldHVybiBQcm9kdWN0U29ydGVyLnNvcnQoZmlsdGVyZWRQcm9kdWN0cywgc29ydGluZyk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaEZpbHRlcnNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgaWYgKCFzZWFyY2hEYXRhPy5wcm9kdWN0cyB8fCAhbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWcpIHJldHVybiBbXTtcblxuICByZXR1cm4gUHJvZHVjdEZpbHRlcnMuZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgYWRkU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGlmICghY3VycmVudC5zb21lKChmKSA9PiBmLmlkID09PSBmaWx0ZXIuaWQpKSB7XG4gICAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFsuLi5jdXJyZW50LCBmaWx0ZXJdKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWFyY2hGaWx0ZXJBdG9tID0gYXRvbShudWxsLCAoZ2V0LCBzZXQsIGZpbHRlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY3VycmVudCA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgc2V0KFxuICAgIHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sXG4gICAgY3VycmVudC5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbHRlcklkKSxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20obnVsbCwgKF8sIHNldCkgPT4ge1xuICBzZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSwgW10pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtU2VhcmNoQXRvbSA9IGF0b20oXG4gIG51bGwsXG4gIGFzeW5jIChnZXQsIHNldCwgcGFyYW1zOiBTZWFyY2hQYXJhbXMsIGFsbG93UmVkaXJlY3QgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGdldChzZWFyY2hBdG9tKTtcbiAgICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG4gICAgY29uc3QgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsID1cbiAgICAgIG5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnPy5yZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw7XG5cbiAgICBpZiAoYWxsb3dSZWRpcmVjdCAmJiByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpIHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gbmV3IFVSTChyZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmwudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlIFVSTCBhbmQgbWFudWFsbHkgdHJpZ2dlciBzdGF0ZSBjaGFuZ2UgKHNpbmNlIHB1c2hTdGF0ZSBkb2Vzbid0IHRyaWdnZXIgcG9wc3RhdGUpXG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdlcycsICd0cnVlJyk7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHVybCk7XG5cbiAgICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSBwYWdlIHZhcmlhbnQgc3lzdGVtIGRldGVjdHMgdGhlIFVSTCBjaGFuZ2UgYW5kIG1vdW50cyBzZWFyY2ggcmVzdWx0c1xuICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIH1cblxuICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudCgncG9wc3RhdGUnLCB7IHN0YXRlOiB7fSB9KSk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47IC8vIFByZXZlbnQgY29uY3VycmVudCBzZWFyY2hlc1xuICAgIH1cblxuICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgfSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbiA9IGdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VhcmNoU2VydmljZUZ1bmN0aW9uKHBhcmFtcyk7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgbGFzdFF1ZXJ5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