@envive-ai/react-hooks 0.3.18 → 0.3.19

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 (196) hide show
  1. package/dist/application/commerce-api.cjs +14 -13
  2. package/dist/application/commerce-api.js +14 -13
  3. package/dist/application/logging/logger.cjs +16 -10
  4. package/dist/application/logging/logger.js +16 -10
  5. package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
  6. package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
  7. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
  8. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
  9. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
  10. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
  11. package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
  12. package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
  13. package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
  14. package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
  15. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
  16. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
  17. package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
  18. package/dist/application/models/guards/api/isApiResponse.js +7 -6
  19. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
  20. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
  21. package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
  22. package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
  23. package/dist/application/utils/analyticsUtils.cjs +4 -3
  24. package/dist/application/utils/analyticsUtils.js +4 -3
  25. package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
  26. package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
  27. package/dist/atoms/app/index.d.cts +7 -7
  28. package/dist/atoms/app/index.d.ts +7 -7
  29. package/dist/atoms/app/variant.cjs +3 -2
  30. package/dist/atoms/app/variant.js +3 -2
  31. package/dist/atoms/chat/chatState.d.cts +17 -17
  32. package/dist/atoms/chat/chatState.d.ts +17 -17
  33. package/dist/atoms/chat/form.d.cts +2 -2
  34. package/dist/atoms/chat/form.d.ts +2 -2
  35. package/dist/atoms/chat/index.d.cts +2 -2
  36. package/dist/atoms/chat/index.d.ts +2 -2
  37. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  38. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  39. package/dist/atoms/chat/messageQueue.d.cts +6 -6
  40. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  41. package/dist/atoms/chat/performanceMetrics.cjs +3 -2
  42. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  43. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  44. package/dist/atoms/chat/performanceMetrics.js +3 -2
  45. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  46. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  47. package/dist/atoms/chat/replies.d.cts +2 -2
  48. package/dist/atoms/chat/replies.d.ts +3 -3
  49. package/dist/atoms/chat/suggestions.d.cts +2 -2
  50. package/dist/atoms/chat/suggestions.d.ts +2 -2
  51. package/dist/atoms/envive/enviveConfig.cjs +5 -4
  52. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  53. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  54. package/dist/atoms/envive/enviveConfig.js +5 -4
  55. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  56. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  57. package/dist/atoms/org/customerService.d.cts +6 -6
  58. package/dist/atoms/org/customerService.d.ts +6 -6
  59. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  60. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  61. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  62. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  63. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  64. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  65. package/dist/atoms/search/chatSearch.d.cts +17 -17
  66. package/dist/atoms/search/chatSearch.d.ts +17 -17
  67. package/dist/atoms/search/searchAPI.d.cts +13 -13
  68. package/dist/atoms/search/searchAPI.d.ts +13 -13
  69. package/dist/atoms/search/types.d.cts +1 -1
  70. package/dist/atoms/search/types.d.ts +1 -1
  71. package/dist/atoms/search/utils.d.ts +1 -1
  72. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  73. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  74. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -3
  75. package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -2
  76. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
  77. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
  78. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
  79. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
  80. package/dist/contexts/enviveConfigContext/index.cjs +2 -1
  81. package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
  82. package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
  83. package/dist/contexts/enviveConfigContext/index.js +2 -1
  84. package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
  85. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
  86. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
  87. package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
  88. package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
  89. package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
  90. package/dist/contexts/enviveContext/enviveContext.cjs +34 -39
  91. package/dist/contexts/enviveContext/enviveContext.js +35 -40
  92. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
  93. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
  94. package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
  95. package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
  96. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
  97. package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
  98. package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
  99. package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
  100. package/dist/contexts/pageContext/pageContext.cjs +3 -2
  101. package/dist/contexts/pageContext/pageContext.js +3 -2
  102. package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
  103. package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
  104. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
  105. package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
  106. package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
  107. package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
  108. package/dist/contexts/searchContext/searchContext.cjs +8 -6
  109. package/dist/contexts/searchContext/searchContext.js +7 -5
  110. package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
  111. package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
  112. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  113. package/dist/contexts/types.d.cts +1 -1
  114. package/dist/contexts/types.d.ts +1 -1
  115. package/dist/contexts/typesV3.d.cts +1 -1
  116. package/dist/contexts/typesV3.d.ts +1 -1
  117. package/dist/contexts/uiConfigContext/index.cjs +0 -1
  118. package/dist/contexts/uiConfigContext/index.d.cts +2 -2
  119. package/dist/contexts/uiConfigContext/index.d.ts +2 -2
  120. package/dist/contexts/uiConfigContext/index.js +2 -2
  121. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
  122. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
  123. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
  124. package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
  125. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
  126. package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
  127. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
  128. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
  129. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
  130. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
  131. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  132. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
  133. package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
  134. package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
  135. package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
  136. package/dist/hooks/WidgetInteraction/utils.js +2 -1
  137. package/dist/hooks/utils.d.cts +1 -1
  138. package/dist/hooks/utils.d.ts +1 -1
  139. package/dist/services/amplitudeService/amplitudeService.cjs +8 -7
  140. package/dist/services/amplitudeService/amplitudeService.js +8 -7
  141. package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
  142. package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
  143. package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
  144. package/dist/services/userIdentityService/userIdentityService.js +8 -7
  145. package/package.json +1 -1
  146. package/src/application/commerce-api.ts +14 -12
  147. package/src/application/logging/logger.ts +33 -8
  148. package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
  149. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
  150. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
  151. package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
  152. package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
  153. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
  154. package/src/application/models/guards/api/isApiResponse.ts +7 -5
  155. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
  156. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
  157. package/src/application/utils/analyticsUtils.ts +4 -4
  158. package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
  159. package/src/atoms/app/variant.ts +3 -1
  160. package/src/atoms/chat/performanceMetrics.ts +3 -1
  161. package/src/atoms/envive/enviveConfig.ts +5 -3
  162. package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -1
  163. package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
  164. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
  165. package/src/contexts/enviveConfigContext/index.ts +1 -0
  166. package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
  167. package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
  168. package/src/contexts/enviveContext/enviveContext.tsx +40 -45
  169. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
  170. package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
  171. package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
  172. package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
  173. package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
  174. package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
  175. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
  176. package/src/contexts/pageContext/pageContext.tsx +3 -1
  177. package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
  178. package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
  179. package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
  180. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
  181. package/src/contexts/searchContext/searchContext.tsx +6 -4
  182. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
  183. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
  184. package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
  185. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
  186. package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
  187. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
  188. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
  189. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
  190. package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
  191. package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
  192. package/src/hooks/WidgetInteraction/utils.ts +3 -1
  193. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -3
  194. package/src/services/amplitudeService/amplitudeService.ts +8 -6
  195. package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
  196. package/src/services/userIdentityService/userIdentityService.ts +8 -8
@@ -9,6 +9,7 @@ let jotai = require("jotai");
9
9
  let jotai_utils = require("jotai/utils");
10
10
 
11
11
  //#region src/atoms/app/variant.ts
12
+ const logger = new require_logger.default("variant");
12
13
  const internalStorageUrlResolverAtom = (0, jotai_utils.atomWithStorage)("spiffy-url-resolver", void 0, require_atomStore.sessionStorageUtil, { getOnInit: true });
13
14
  const urlResolverAtom = (0, jotai.atom)((get) => {
14
15
  const maybeUrlResolver = get(internalStorageUrlResolverAtom);
@@ -127,7 +128,7 @@ const analyticsContextAtom = (0, jotai.atom)((get) => {
127
128
  page_id: variantInfo.plpId
128
129
  };
129
130
  if (variantInfo.variant === require_variantInfo.VariantTypeEnum.PageVisit) return getPageVisitContext(variantInfo.pageVisitCategory);
130
- require_logger.default.logWarn("[envive-ai] Invalid variantInfo", void 0, { variantInfo });
131
+ logger.logWarn("Invalid variantInfo", void 0, { variantInfo });
131
132
  return {
132
133
  page_type: "other",
133
134
  page_id: window.location.href
@@ -144,4 +145,4 @@ exports.pageVariantInfoAtom = pageVariantInfoAtom;
144
145
  exports.supportedEventAtom = supportedEventAtom;
145
146
  exports.urlResolverAtom = urlResolverAtom;
146
147
  exports.variantInfoAtom = variantInfoAtom;
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC5janMiLCJuYW1lcyI6WyJzZXNzaW9uU3RvcmFnZVV0aWwiLCJWYXJpYW50VHlwZUVudW0iLCJQYWdlVmlzaXRDYXRlZ29yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9hcHAvdmFyaWFudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBVc2VyRXZlbnQgYXMgQXBpVXNlckV2ZW50LFxuICBQYWdlVmlzaXRDYXRlZ29yeSxcbiAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBhdG9tV2l0aFN0b3JhZ2UgfSBmcm9tICdqb3RhaS91dGlscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBQRFBWYXJpYW50SW5mbyxcbiAgUExQVmFyaWFudEluZm8sXG4gIFBhZ2VWaXNpdFZhcmlhbnRJbmZvLFxuICBVc2VyRXZlbnQsXG4gIFZhcmlhbnRJbmZvLFxuICBWYXJpYW50VHlwZUVudW0sXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgc2Vzc2lvblN0b3JhZ2VVdGlsIH0gZnJvbSAnc3JjL2F0b21zL2F0b21TdG9yZSc7XG5pbXBvcnQgdHlwZSB7IFBhZ2VWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9jb250ZXh0cy9wYWdlQ29udGV4dC90eXBlcyc7XG5pbXBvcnQgeyBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0ZWRFdmVudCBleHRlbmRzIFBpY2s8XG4gIFN1cHBvcnRlZEV2ZW50UmVzcG9uc2UsXG4gICdzdXBwb3J0ZWQnIHwgJ3JlYWR5JyB8ICdjYXRlZ29yeScgfCAnY29sbGVjdGlvbnMnIHwgJ3RvcF9jYXRlZ29yeSdcbj4ge1xuICBudW1iZXJPZlJldmlld3M6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgbWVyY2hhbnRfdGFncz86IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUERQQXR0cmlidXRlcyB7XG4gIHByb2R1Y3RfaWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQTFBBdHRyaWJ1dGVzIHtcbiAgYXR0cmlidXRlcz86IHtcbiAgICBpZD86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcmxSZXNvbHZpbmdQRFBDb25maWcge1xuICBwZHBfYXR0cmlidXRlczogUERQQXR0cmlidXRlcztcbiAgbnVtYmVyX29mX3Jldmlld3M/OiBudW1iZXI7XG4gIGNvbGxlY3Rpb25zPzogc3RyaW5nW107XG4gIG1lcmNoYW50X3RhZ3M/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcmxSZXNvbHZpbmdQTFBDb25maWcge1xuICBwbHBfYXR0cmlidXRlczogUExQQXR0cmlidXRlcztcbiAgdG9wX2NhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVXJsUmVzb2x2aW5nR2VuZXJpY0NvbmZpZyB7XG4gIGRldGFpbHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50Q2hlY2tDb25maWcgPSB7XG4gIGNoZWNrX3R5cGU6IHN0cmluZztcbiAgZmVhdHVyZV9nYXRlPzogc3RyaW5nO1xuICBleHRyYWN0b3I/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG1hcD86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcbiAgcHJvZHVjdF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHByb2R1Y3RfaWRzPzogc3RyaW5nW107XG4gIHBscF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHBscF9pZHM/OiBzdHJpbmdbXTtcbiAgY29sbGVjdGlvbnM/OiBzdHJpbmdbXTtcbiAgcXVlcnlfcGFyYW0/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICB0b3BfY2F0ZWdvcnk/OiBzdHJpbmdbXTtcbiAgcmV2aWV3X21pbmltdW0/OiBudW1iZXI7XG4gIG1lcmNoYW50X3RhZ3M/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRXaWRnZXRNb3VudGluZ0NvbmZpZyA9IHtcbiAgbW91bnRpbmdfY29uZmlnX2lkOiBzdHJpbmc7XG4gIHdpZGdldF9jb25maWdfaWQ/OiBzdHJpbmc7XG4gIG1vdW50aW5nX3BvaW50X3dpZGdldHM/OiBBcnJheTx7XG4gICAgY2hlY2tzOiBQYWdlVmFyaWFudENoZWNrQ29uZmlnW107XG4gICAgd2lkZ2V0X2NvbmZpZ19pZDogc3RyaW5nO1xuICB9Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRQYWdlVmFyaWFudENvbmZpZyA9IHtcbiAgdmFyaWFudF9pZDogc3RyaW5nO1xuICB2YXJpYW50X3R5cGU6IHN0cmluZztcbiAgdmFyaWFudF9jaGVja3M6IFBhZ2VWYXJpYW50Q2hlY2tDb25maWdbXTtcbiAgd2lkZ2V0X21vdW50aW5nOiBCYWNrZW5kV2lkZ2V0TW91bnRpbmdDb25maWdbXTtcbiAgcGxwX2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcHJvZHVjdF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHBhcmVudF9wcm9kdWN0X2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJsUmVzb2x2ZXJSZXNwb25zZSB7XG4gIHZhcmlhbnRfdHlwZTogc3RyaW5nO1xuICBzcGVjaWZpY19kZXRhaWxzOiBVcmxSZXNvbHZpbmdQRFBDb25maWcgfCBVcmxSZXNvbHZpbmdQTFBDb25maWcgfCBVcmxSZXNvbHZpbmdHZW5lcmljQ29uZmlnO1xuICByZWFkeTogYm9vbGVhbjtcbiAgdXNlcl9ldmVudD86IEFwaVVzZXJFdmVudDtcbiAgcGFnZV92YXJpYW50PzogQmFja2VuZFBhZ2VWYXJpYW50Q29uZmlnO1xufVxuXG4vLyBVc2UgYSBtYXAgZm9yIHBlci1VUkwgY2FjaGVcbmV4cG9ydCB0eXBlIFVybFJlc29sdmVyQ2FjaGUgPSBSZWNvcmQ8c3RyaW5nLCBVcmxSZXNvbHZlclJlc3BvbnNlIHwgdW5kZWZpbmVkPjtcblxuY29uc3QgaW50ZXJuYWxTdG9yYWdlVXJsUmVzb2x2ZXJBdG9tID0gYXRvbVdpdGhTdG9yYWdlPHN0cmluZyB8IHVuZGVmaW5lZD4oXG4gICdzcGlmZnktdXJsLXJlc29sdmVyJyxcbiAgdW5kZWZpbmVkLFxuICBzZXNzaW9uU3RvcmFnZVV0aWwsXG4gIHtcbiAgICBnZXRPbkluaXQ6IHRydWUsXG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgdXJsUmVzb2x2ZXJBdG9tID0gYXRvbShcbiAgKGdldCk6IFVybFJlc29sdmVyQ2FjaGUgPT4ge1xuICAgIGNvbnN0IG1heWJlVXJsUmVzb2x2ZXIgPSBnZXQoaW50ZXJuYWxTdG9yYWdlVXJsUmVzb2x2ZXJBdG9tKTtcbiAgICBpZiAobWF5YmVVcmxSZXNvbHZlciA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiBKU09OLnBhcnNlKG1heWJlVXJsUmVzb2x2ZXIpO1xuICB9LFxuICAoZ2V0LCBzZXQsIHZhbHVlOiB7IHVybDogc3RyaW5nOyByZXNwb25zZTogVXJsUmVzb2x2ZXJSZXNwb25zZSB8IHVuZGVmaW5lZCB9KSA9PiB7XG4gICAgLy8gR2V0IGN1cnJlbnQgY2FjaGUgZnJvbSBzdG9yYWdlXG4gICAgY29uc3QgY3VycmVudENhY2hlID0gZ2V0KHVybFJlc29sdmVyQXRvbSk7XG4gICAgY29uc3QgbmV3Q2FjaGUgPSB7IC4uLmN1cnJlbnRDYWNoZSwgW3ZhbHVlLnVybF06IHZhbHVlLnJlc3BvbnNlIH07XG5cbiAgICBzZXQoaW50ZXJuYWxTdG9yYWdlVXJsUmVzb2x2ZXJBdG9tLCBKU09OLnN0cmluZ2lmeShuZXdDYWNoZSkpO1xuICB9LFxuKTtcblxuY29uc3QgaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tID0gYXRvbVdpdGhTdG9yYWdlPHN0cmluZyB8IHVuZGVmaW5lZD4oXG4gICdzcGlmZnktc3VwcG9ydGVkLWV2ZW50JyxcbiAgdW5kZWZpbmVkLFxuICBzZXNzaW9uU3RvcmFnZVV0aWwsXG4gIHtcbiAgICBnZXRPbkluaXQ6IHRydWUsXG4gIH0sXG4pO1xuY29uc3QgaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tPFN1cHBvcnRlZEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3Qgc3VwcG9ydGVkRXZlbnRBdG9tID0gYXRvbShcbiAgKGdldCk6IFN1cHBvcnRlZEV2ZW50IHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBtYXliZVN1cHBvcnRlZEV2ZW50ID0gZ2V0KGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSk7XG4gICAgaWYgKG1heWJlU3VwcG9ydGVkRXZlbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBUT0RPIHRoaXMgaXMgYW4gdW52YWxpZGF0ZWQgcGFyc2UuIEl0IG1heSBiZSBiZXR0ZXIgdG8gaW1wbGVtZW50IGEgY3VzdG9tIHN0b3JhZ2UgdXRpbFxuICAgIC8vIGFuZCBwZXJmb3JtIHRoZSBvYmplY3QgdmFsaWRhdGlvbiBvbiBcImdldFwiIHRoZXJlLlxuICAgIHJldHVybiBKU09OLnBhcnNlKG1heWJlU3VwcG9ydGVkRXZlbnQpO1xuICB9LFxuICAoXywgc2V0LCB2YWx1ZTogU3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgc2V0KGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSwgdW5kZWZpbmVkKTtcbiAgICAgIHNldChpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSwgdW5kZWZpbmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXQoaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20sIHZhbHVlKTtcbiAgICBzZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICB9LFxuKTtcblxuY29uc3QgaW50ZXJuYWxWYXJpYW50SWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFByb2R1Y3RJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUGFyZW50UHJvZHVjdElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQcm9kdWN0VXJsQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQbHBJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsVXJsQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQYWdlVmlzaXRDYXRlZ29yeUF0b20gPSBhdG9tPFBhZ2VWaXNpdENhdGVnb3J5PigpO1xuY29uc3QgaW50ZXJuYWxWYXJpYW50QXRvbSA9IGF0b208J3BkcCcgfCAncGxwJyB8ICdzZWFyY2gnIHwgJ3BhZ2VfdmlzaXQnIHwgJ2Z1bGxfcGFnZSc+KCdwZHAnKTtcbmNvbnN0IGludGVybmFsRmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20gPSBhdG9tPFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnM+KCk7XG5cbmV4cG9ydCBjb25zdCB2YXJpYW50SWRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsVmFyaWFudElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RJZEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxQcm9kdWN0SWRBdG9tKSk7XG5leHBvcnQgY29uc3QgcGFyZW50UHJvZHVjdElkQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFBhcmVudFByb2R1Y3RJZEF0b20pKTtcbmV4cG9ydCBjb25zdCBwcm9kdWN0VXJsQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFByb2R1Y3RVcmxBdG9tKSk7XG5leHBvcnQgY29uc3QgcGxwSWRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUGxwSWRBdG9tKSk7XG5leHBvcnQgY29uc3QgdXJsQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFVybEF0b20pKTtcbmV4cG9ydCBjb25zdCBwYWdlVmlzaXRDYXRlZ29yeUF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxQYWdlVmlzaXRDYXRlZ29yeUF0b20pKTtcbmV4cG9ydCBjb25zdCB2YXJpYW50QXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFZhcmlhbnRBdG9tKSk7XG5leHBvcnQgY29uc3QgZmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxGbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSkpO1xuZXhwb3J0IGNvbnN0IGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSA9IGF0b20oZmFsc2UpO1xuXG5leHBvcnQgY29uc3QgdmFyaWFudEluZm9BdG9tID0gYXRvbShcbiAgKGdldCk6IFZhcmlhbnRJbmZvID0+IHtcbiAgICBjb25zdCB2YXJpYW50ID0gZ2V0KHZhcmlhbnRBdG9tKTtcbiAgICAvLyBUT0RPOiBNYXliZSBJIG5lZWQgdG8gcmV0dXJuIHRoZSBmYm8gaGVyZSB0b28uXG4gICAgaWYgKHZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QZHApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhcmlhbnRJZDogZ2V0KHZhcmlhbnRJZEF0b20pLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBwcm9kdWN0SWQ6IGdldChwcm9kdWN0SWRBdG9tKSxcbiAgICAgICAgcGFyZW50UHJvZHVjdElkOiBnZXQocGFyZW50UHJvZHVjdElkQXRvbSksXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgICBmbG9hdGluZ0J1dHRvbk92ZXJyaWRlOiBnZXQoZmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20pLFxuICAgICAgfSBhcyBQRFBWYXJpYW50SW5mbztcbiAgICB9XG4gICAgaWYgKHZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QbHApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhcmlhbnRJZDogZ2V0KHZhcmlhbnRJZEF0b20pLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBwbHBJZDogZ2V0KHBscElkQXRvbSksXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgICBmbG9hdGluZ0J1dHRvbk92ZXJyaWRlOiBnZXQoZmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20pLFxuICAgICAgfSBhcyBQTFBWYXJpYW50SW5mbztcbiAgICB9XG4gICAgaWYgKHZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QYWdlVmlzaXQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhcmlhbnRJZDogZ2V0KHZhcmlhbnRJZEF0b20pLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICB1cmw6IGdldCh1cmxBdG9tKSxcbiAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnk6IGdldChwYWdlVmlzaXRDYXRlZ29yeUF0b20pLFxuICAgICAgICBmbG9hdGluZ0J1dHRvbk92ZXJyaWRlOiBnZXQoZmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20pLFxuICAgICAgfSBhcyBQYWdlVmlzaXRWYXJpYW50SW5mbztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhcmlhbnRJbmZvIGRldGFpbHMnKTtcbiAgfSxcbiAgKF8sIHNldCwgbmV3VmFyaWFudDogVmFyaWFudEluZm8pID0+IHtcbiAgICBzZXQoaW50ZXJuYWxWYXJpYW50QXRvbSwgbmV3VmFyaWFudC52YXJpYW50KTtcbiAgICBzZXQoaW50ZXJuYWxWYXJpYW50SWRBdG9tLCBuZXdWYXJpYW50LnZhcmlhbnRJZCk7XG4gICAgc2V0KGludGVybmFsRmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20sIG5ld1ZhcmlhbnQuZmxvYXRpbmdCdXR0b25PdmVycmlkZSk7XG4gICAgaWYgKG5ld1ZhcmlhbnQudmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBkcCkge1xuICAgICAgc2V0KGludGVybmFsUHJvZHVjdElkQXRvbSwgbmV3VmFyaWFudC5wcm9kdWN0SWQpO1xuICAgICAgc2V0KGludGVybmFsUGFyZW50UHJvZHVjdElkQXRvbSwgbmV3VmFyaWFudC5wYXJlbnRQcm9kdWN0SWQpO1xuICAgICAgc2V0KGludGVybmFsVXJsQXRvbSwgbmV3VmFyaWFudC51cmwpO1xuICAgIH1cbiAgICBpZiAobmV3VmFyaWFudC52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGxwKSB7XG4gICAgICBzZXQoaW50ZXJuYWxQbHBJZEF0b20sIG5ld1ZhcmlhbnQucGxwSWQpO1xuICAgICAgc2V0KGludGVybmFsVXJsQXRvbSwgbmV3VmFyaWFudC51cmwpO1xuICAgIH1cbiAgICBpZiAobmV3VmFyaWFudC52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0KSB7XG4gICAgICBzZXQoaW50ZXJuYWxVcmxBdG9tLCBuZXdWYXJpYW50LnVybCk7XG4gICAgICBzZXQoaW50ZXJuYWxQYWdlVmlzaXRDYXRlZ29yeUF0b20sIG5ld1ZhcmlhbnQucGFnZVZpc2l0Q2F0ZWdvcnkpO1xuICAgIH1cbiAgfSxcbik7XG5cbmNvbnN0IGdldFBhZ2VWaXNpdENvbnRleHQgPSAocGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmIChwYWdlVmlzaXRDYXRlZ29yeSA9PT0gUGFnZVZpc2l0Q2F0ZWdvcnkuU2VhcmNoKSB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoUGFyYW1zLmdldCgnZXNxJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ3NlYXJjaCcsXG4gICAgICBwYWdlX2lkOiBzZWFyY2hUZXJtLFxuICAgIH07XG4gIH1cbiAgaWYgKHBhZ2VWaXNpdENhdGVnb3J5ID09PSBQYWdlVmlzaXRDYXRlZ29yeS5Ib21lcGFnZSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlX3R5cGU6ICdob21lcGFnZScsXG4gICAgICBwYWdlX2lkOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9O1xuICB9XG4gIGlmIChwYWdlVmlzaXRDYXRlZ29yeSA9PT0gUGFnZVZpc2l0Q2F0ZWdvcnkuRnVsbFBhZ2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAnZnVsbF9wYWdlJyxcbiAgICAgIHBhZ2VfaWQ6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwYWdlX3R5cGU6ICdvdGhlcicsXG4gICAgcGFnZV9pZDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQ29udGV4dEF0b20gPSBhdG9tKGdldCA9PiB7XG4gIGNvbnN0IHZhcmlhbnRJbmZvID0gZ2V0KHZhcmlhbnRJbmZvQXRvbSk7XG4gIGlmICh2YXJpYW50SW5mby52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGRwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ3BkcCcsXG4gICAgICBwYWdlX2lkOiB2YXJpYW50SW5mby5wcm9kdWN0SWQsXG4gICAgfTtcbiAgfVxuICBpZiAodmFyaWFudEluZm8udmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBscCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlX3R5cGU6ICdwbHAnLFxuICAgICAgcGFnZV9pZDogdmFyaWFudEluZm8ucGxwSWQsXG4gICAgfTtcbiAgfVxuICBpZiAodmFyaWFudEluZm8udmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBhZ2VWaXNpdCkge1xuICAgIHJldHVybiBnZXRQYWdlVmlzaXRDb250ZXh0KHZhcmlhbnRJbmZvLnBhZ2VWaXNpdENhdGVnb3J5KTtcbiAgfVxuICBMb2dnZXIubG9nV2FybignW2Vudml2ZS1haV0gSW52YWxpZCB2YXJpYW50SW5mbycsIHVuZGVmaW5lZCwgeyB2YXJpYW50SW5mbyB9KTtcbiAgcmV0dXJuIHtcbiAgICBwYWdlX3R5cGU6ICdvdGhlcicsXG4gICAgcGFnZV9pZDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gIH07XG59KTtcblxuLy8gQXRvbXMgZm9yIHBhZ2UgY29udGV4dCAtIGNhbiBiZSBzZXQgZGlyZWN0bHkgYnkgUGFnZVByb3ZpZGVyIG9yIGZvciBzdG9yeWJvb2svdGVzdGluZ1xuZXhwb3J0IGNvbnN0IHBhZ2VVc2VyRXZlbnRBdG9tID0gYXRvbTxVc2VyRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5leHBvcnQgY29uc3QgcGFnZVZhcmlhbnRJbmZvQXRvbSA9IGF0b208UGFnZVZhcmlhbnRJbmZvIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQXdHQSxNQUFNLGtFQUNKLHVCQUNBLFFBQ0FBLHNDQUNBLEVBQ0UsV0FBVyxNQUNaLENBQ0Y7QUFFRCxNQUFhLG1DQUNWLFFBQTBCO0NBQ3pCLE1BQU0sbUJBQW1CLElBQUksK0JBQStCO0FBQzVELEtBQUksb0JBQW9CLEtBQ3RCLFFBQU8sRUFBRTtBQUVYLFFBQU8sS0FBSyxNQUFNLGlCQUFpQjtJQUVwQyxLQUFLLEtBQUssVUFBc0U7Q0FHL0UsTUFBTSxXQUFXO0VBQUUsR0FERSxJQUFJLGdCQUFnQjtHQUNKLE1BQU0sTUFBTSxNQUFNO0VBQVU7QUFFakUsS0FBSSxnQ0FBZ0MsS0FBSyxVQUFVLFNBQVMsQ0FBQztFQUVoRTtBQUVELE1BQU0scUVBQ0osMEJBQ0EsUUFDQUEsc0NBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjtBQUNE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
148
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJzZXNzaW9uU3RvcmFnZVV0aWwiLCJWYXJpYW50VHlwZUVudW0iLCJQYWdlVmlzaXRDYXRlZ29yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9hcHAvdmFyaWFudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBVc2VyRXZlbnQgYXMgQXBpVXNlckV2ZW50LFxuICBQYWdlVmlzaXRDYXRlZ29yeSxcbiAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBhdG9tV2l0aFN0b3JhZ2UgfSBmcm9tICdqb3RhaS91dGlscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBQRFBWYXJpYW50SW5mbyxcbiAgUExQVmFyaWFudEluZm8sXG4gIFBhZ2VWaXNpdFZhcmlhbnRJbmZvLFxuICBVc2VyRXZlbnQsXG4gIFZhcmlhbnRJbmZvLFxuICBWYXJpYW50VHlwZUVudW0sXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgc2Vzc2lvblN0b3JhZ2VVdGlsIH0gZnJvbSAnc3JjL2F0b21zL2F0b21TdG9yZSc7XG5pbXBvcnQgdHlwZSB7IFBhZ2VWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9jb250ZXh0cy9wYWdlQ29udGV4dC90eXBlcyc7XG5pbXBvcnQgeyBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcigndmFyaWFudCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRlZEV2ZW50IGV4dGVuZHMgUGljazxcbiAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbiAgJ3N1cHBvcnRlZCcgfCAncmVhZHknIHwgJ2NhdGVnb3J5JyB8ICdjb2xsZWN0aW9ucycgfCAndG9wX2NhdGVnb3J5J1xuPiB7XG4gIG51bWJlck9mUmV2aWV3czogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBtZXJjaGFudF90YWdzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBQRFBBdHRyaWJ1dGVzIHtcbiAgcHJvZHVjdF9pZD86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBMUEF0dHJpYnV0ZXMge1xuICBhdHRyaWJ1dGVzPzoge1xuICAgIGlkPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVybFJlc29sdmluZ1BEUENvbmZpZyB7XG4gIHBkcF9hdHRyaWJ1dGVzOiBQRFBBdHRyaWJ1dGVzO1xuICBudW1iZXJfb2ZfcmV2aWV3cz86IG51bWJlcjtcbiAgY29sbGVjdGlvbnM/OiBzdHJpbmdbXTtcbiAgbWVyY2hhbnRfdGFncz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVybFJlc29sdmluZ1BMUENvbmZpZyB7XG4gIHBscF9hdHRyaWJ1dGVzOiBQTFBBdHRyaWJ1dGVzO1xuICB0b3BfY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBVcmxSZXNvbHZpbmdHZW5lcmljQ29uZmlnIHtcbiAgZGV0YWlscz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRDaGVja0NvbmZpZyA9IHtcbiAgY2hlY2tfdHlwZTogc3RyaW5nO1xuICBmZWF0dXJlX2dhdGU/OiBzdHJpbmc7XG4gIGV4dHJhY3Rvcj86IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICB9O1xuICBwcm9kdWN0X2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcHJvZHVjdF9pZHM/OiBzdHJpbmdbXTtcbiAgcGxwX2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcGxwX2lkcz86IHN0cmluZ1tdO1xuICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdO1xuICBxdWVyeV9wYXJhbT86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIHRvcF9jYXRlZ29yeT86IHN0cmluZ1tdO1xuICByZXZpZXdfbWluaW11bT86IG51bWJlcjtcbiAgbWVyY2hhbnRfdGFncz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2VuZFdpZGdldE1vdW50aW5nQ29uZmlnID0ge1xuICBtb3VudGluZ19jb25maWdfaWQ6IHN0cmluZztcbiAgd2lkZ2V0X2NvbmZpZ19pZD86IHN0cmluZztcbiAgbW91bnRpbmdfcG9pbnRfd2lkZ2V0cz86IEFycmF5PHtcbiAgICBjaGVja3M6IFBhZ2VWYXJpYW50Q2hlY2tDb25maWdbXTtcbiAgICB3aWRnZXRfY29uZmlnX2lkOiBzdHJpbmc7XG4gIH0+O1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2VuZFBhZ2VWYXJpYW50Q29uZmlnID0ge1xuICB2YXJpYW50X2lkOiBzdHJpbmc7XG4gIHZhcmlhbnRfdHlwZTogc3RyaW5nO1xuICB2YXJpYW50X2NoZWNrczogUGFnZVZhcmlhbnRDaGVja0NvbmZpZ1tdO1xuICB3aWRnZXRfbW91bnRpbmc6IEJhY2tlbmRXaWRnZXRNb3VudGluZ0NvbmZpZ1tdO1xuICBwbHBfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwcm9kdWN0X2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcGFyZW50X3Byb2R1Y3RfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBVcmxSZXNvbHZlclJlc3BvbnNlIHtcbiAgdmFyaWFudF90eXBlOiBzdHJpbmc7XG4gIHNwZWNpZmljX2RldGFpbHM6IFVybFJlc29sdmluZ1BEUENvbmZpZyB8IFVybFJlc29sdmluZ1BMUENvbmZpZyB8IFVybFJlc29sdmluZ0dlbmVyaWNDb25maWc7XG4gIHJlYWR5OiBib29sZWFuO1xuICB1c2VyX2V2ZW50PzogQXBpVXNlckV2ZW50O1xuICBwYWdlX3ZhcmlhbnQ/OiBCYWNrZW5kUGFnZVZhcmlhbnRDb25maWc7XG59XG5cbi8vIFVzZSBhIG1hcCBmb3IgcGVyLVVSTCBjYWNoZVxuZXhwb3J0IHR5cGUgVXJsUmVzb2x2ZXJDYWNoZSA9IFJlY29yZDxzdHJpbmcsIFVybFJlc29sdmVyUmVzcG9uc2UgfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgJ3NwaWZmeS11cmwtcmVzb2x2ZXInLFxuICB1bmRlZmluZWQsXG4gIHNlc3Npb25TdG9yYWdlVXRpbCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCB1cmxSZXNvbHZlckF0b20gPSBhdG9tKFxuICAoZ2V0KTogVXJsUmVzb2x2ZXJDYWNoZSA9PiB7XG4gICAgY29uc3QgbWF5YmVVcmxSZXNvbHZlciA9IGdldChpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20pO1xuICAgIGlmIChtYXliZVVybFJlc29sdmVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04ucGFyc2UobWF5YmVVcmxSZXNvbHZlcik7XG4gIH0sXG4gIChnZXQsIHNldCwgdmFsdWU6IHsgdXJsOiBzdHJpbmc7IHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlIHwgdW5kZWZpbmVkIH0pID0+IHtcbiAgICAvLyBHZXQgY3VycmVudCBjYWNoZSBmcm9tIHN0b3JhZ2VcbiAgICBjb25zdCBjdXJyZW50Q2FjaGUgPSBnZXQodXJsUmVzb2x2ZXJBdG9tKTtcbiAgICBjb25zdCBuZXdDYWNoZSA9IHsgLi4uY3VycmVudENhY2hlLCBbdmFsdWUudXJsXTogdmFsdWUucmVzcG9uc2UgfTtcblxuICAgIHNldChpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20sIEpTT04uc3RyaW5naWZ5KG5ld0NhY2hlKSk7XG4gIH0sXG4pO1xuXG5jb25zdCBpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgJ3NwaWZmeS1zdXBwb3J0ZWQtZXZlbnQnLFxuICB1bmRlZmluZWQsXG4gIHNlc3Npb25TdG9yYWdlVXRpbCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfSxcbik7XG5jb25zdCBpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b208U3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBzdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tKFxuICAoZ2V0KTogU3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IG1heWJlU3VwcG9ydGVkRXZlbnQgPSBnZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tKTtcbiAgICBpZiAobWF5YmVTdXBwb3J0ZWRFdmVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFRPRE8gdGhpcyBpcyBhbiB1bnZhbGlkYXRlZCBwYXJzZS4gSXQgbWF5IGJlIGJldHRlciB0byBpbXBsZW1lbnQgYSBjdXN0b20gc3RvcmFnZSB1dGlsXG4gICAgLy8gYW5kIHBlcmZvcm0gdGhlIG9iamVjdCB2YWxpZGF0aW9uIG9uIFwiZ2V0XCIgdGhlcmUuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UobWF5YmVTdXBwb3J0ZWRFdmVudCk7XG4gIH0sXG4gIChfLCBzZXQsIHZhbHVlOiBTdXBwb3J0ZWRFdmVudCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBzZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tLCB1bmRlZmluZWQpO1xuICAgICAgc2V0KGludGVybmFsU3VwcG9ydGVkRXZlbnRBdG9tLCB1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldChpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSwgdmFsdWUpO1xuICAgIHNldChpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20sIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gIH0sXG4pO1xuXG5jb25zdCBpbnRlcm5hbFZhcmlhbnRJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUHJvZHVjdElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFByb2R1Y3RVcmxBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBscElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxVcmxBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSA9IGF0b208UGFnZVZpc2l0Q2F0ZWdvcnk+KCk7XG5jb25zdCBpbnRlcm5hbFZhcmlhbnRBdG9tID0gYXRvbTwncGRwJyB8ICdwbHAnIHwgJ3NlYXJjaCcgfCAncGFnZV92aXNpdCcgfCAnZnVsbF9wYWdlJz4oJ3BkcCcpO1xuY29uc3QgaW50ZXJuYWxGbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSA9IGF0b208U2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucz4oKTtcblxuZXhwb3J0IGNvbnN0IHZhcmlhbnRJZEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxWYXJpYW50SWRBdG9tKSk7XG5leHBvcnQgY29uc3QgcHJvZHVjdElkQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFByb2R1Y3RJZEF0b20pKTtcbmV4cG9ydCBjb25zdCBwYXJlbnRQcm9kdWN0SWRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUGFyZW50UHJvZHVjdElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RVcmxBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUHJvZHVjdFVybEF0b20pKTtcbmV4cG9ydCBjb25zdCBwbHBJZEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxQbHBJZEF0b20pKTtcbmV4cG9ydCBjb25zdCB1cmxBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsVXJsQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBhZ2VWaXNpdENhdGVnb3J5QXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSkpO1xuZXhwb3J0IGNvbnN0IHZhcmlhbnRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsVmFyaWFudEF0b20pKTtcbmV4cG9ydCBjb25zdCBmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbEZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tKSk7XG5leHBvcnQgY29uc3QgaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tID0gYXRvbShmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCB2YXJpYW50SW5mb0F0b20gPSBhdG9tKFxuICAoZ2V0KTogVmFyaWFudEluZm8gPT4ge1xuICAgIGNvbnN0IHZhcmlhbnQgPSBnZXQodmFyaWFudEF0b20pO1xuICAgIC8vIFRPRE86IE1heWJlIEkgbmVlZCB0byByZXR1cm4gdGhlIGZibyBoZXJlIHRvby5cbiAgICBpZiAodmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBkcCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHByb2R1Y3RJZDogZ2V0KHByb2R1Y3RJZEF0b20pLFxuICAgICAgICBwYXJlbnRQcm9kdWN0SWQ6IGdldChwYXJlbnRQcm9kdWN0SWRBdG9tKSxcbiAgICAgICAgdXJsOiBnZXQodXJsQXRvbSksXG4gICAgICAgIGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGU6IGdldChmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSksXG4gICAgICB9IGFzIFBEUFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICBpZiAodmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBscCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHBscElkOiBnZXQocGxwSWRBdG9tKSxcbiAgICAgICAgdXJsOiBnZXQodXJsQXRvbSksXG4gICAgICAgIGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGU6IGdldChmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSksXG4gICAgICB9IGFzIFBMUFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICBpZiAodmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBhZ2VWaXNpdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeTogZ2V0KHBhZ2VWaXNpdENhdGVnb3J5QXRvbSksXG4gICAgICAgIGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGU6IGdldChmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSksXG4gICAgICB9IGFzIFBhZ2VWaXNpdFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFyaWFudEluZm8gZGV0YWlscycpO1xuICB9LFxuICAoXywgc2V0LCBuZXdWYXJpYW50OiBWYXJpYW50SW5mbykgPT4ge1xuICAgIHNldChpbnRlcm5hbFZhcmlhbnRBdG9tLCBuZXdWYXJpYW50LnZhcmlhbnQpO1xuICAgIHNldChpbnRlcm5hbFZhcmlhbnRJZEF0b20sIG5ld1ZhcmlhbnQudmFyaWFudElkKTtcbiAgICBzZXQoaW50ZXJuYWxGbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSwgbmV3VmFyaWFudC5mbG9hdGluZ0J1dHRvbk92ZXJyaWRlKTtcbiAgICBpZiAobmV3VmFyaWFudC52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGRwKSB7XG4gICAgICBzZXQoaW50ZXJuYWxQcm9kdWN0SWRBdG9tLCBuZXdWYXJpYW50LnByb2R1Y3RJZCk7XG4gICAgICBzZXQoaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tLCBuZXdWYXJpYW50LnBhcmVudFByb2R1Y3RJZCk7XG4gICAgICBzZXQoaW50ZXJuYWxVcmxBdG9tLCBuZXdWYXJpYW50LnVybCk7XG4gICAgfVxuICAgIGlmIChuZXdWYXJpYW50LnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QbHApIHtcbiAgICAgIHNldChpbnRlcm5hbFBscElkQXRvbSwgbmV3VmFyaWFudC5wbHBJZCk7XG4gICAgICBzZXQoaW50ZXJuYWxVcmxBdG9tLCBuZXdWYXJpYW50LnVybCk7XG4gICAgfVxuICAgIGlmIChuZXdWYXJpYW50LnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QYWdlVmlzaXQpIHtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICAgIHNldChpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSwgbmV3VmFyaWFudC5wYWdlVmlzaXRDYXRlZ29yeSk7XG4gICAgfVxuICB9LFxuKTtcblxuY29uc3QgZ2V0UGFnZVZpc2l0Q29udGV4dCA9IChwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHBhZ2VWaXNpdENhdGVnb3J5ID09PSBQYWdlVmlzaXRDYXRlZ29yeS5TZWFyY2gpIHtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBzZWFyY2hQYXJhbXMuZ2V0KCdlc3EnKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAnc2VhcmNoJyxcbiAgICAgIHBhZ2VfaWQ6IHNlYXJjaFRlcm0sXG4gICAgfTtcbiAgfVxuICBpZiAocGFnZVZpc2l0Q2F0ZWdvcnkgPT09IFBhZ2VWaXNpdENhdGVnb3J5LkhvbWVwYWdlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ2hvbWVwYWdlJyxcbiAgICAgIHBhZ2VfaWQ6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG4gIH1cbiAgaWYgKHBhZ2VWaXNpdENhdGVnb3J5ID09PSBQYWdlVmlzaXRDYXRlZ29yeS5GdWxsUGFnZSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlX3R5cGU6ICdmdWxsX3BhZ2UnLFxuICAgICAgcGFnZV9pZDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHBhZ2VfdHlwZTogJ290aGVyJyxcbiAgICBwYWdlX2lkOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NDb250ZXh0QXRvbSA9IGF0b20oZ2V0ID0+IHtcbiAgY29uc3QgdmFyaWFudEluZm8gPSBnZXQodmFyaWFudEluZm9BdG9tKTtcbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QZHApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAncGRwJyxcbiAgICAgIHBhZ2VfaWQ6IHZhcmlhbnRJbmZvLnByb2R1Y3RJZCxcbiAgICB9O1xuICB9XG4gIGlmICh2YXJpYW50SW5mby52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGxwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ3BscCcsXG4gICAgICBwYWdlX2lkOiB2YXJpYW50SW5mby5wbHBJZCxcbiAgICB9O1xuICB9XG4gIGlmICh2YXJpYW50SW5mby52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0KSB7XG4gICAgcmV0dXJuIGdldFBhZ2VWaXNpdENvbnRleHQodmFyaWFudEluZm8ucGFnZVZpc2l0Q2F0ZWdvcnkpO1xuICB9XG4gIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIHZhcmlhbnRJbmZvJywgdW5kZWZpbmVkLCB7IHZhcmlhbnRJbmZvIH0pO1xuICByZXR1cm4ge1xuICAgIHBhZ2VfdHlwZTogJ290aGVyJyxcbiAgICBwYWdlX2lkOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgfTtcbn0pO1xuXG4vLyBBdG9tcyBmb3IgcGFnZSBjb250ZXh0IC0gY2FuIGJlIHNldCBkaXJlY3RseSBieSBQYWdlUHJvdmlkZXIgb3IgZm9yIHN0b3J5Ym9vay90ZXN0aW5nXG5leHBvcnQgY29uc3QgcGFnZVVzZXJFdmVudEF0b20gPSBhdG9tPFVzZXJFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCBwYWdlVmFyaWFudEluZm9BdG9tID0gYXRvbTxQYWdlVmFyaWFudEluZm8gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxVQUFVO0FBc0ZwQyxNQUFNLGtFQUNKLHVCQUNBLFFBQ0FDLHNDQUNBLEVBQ0UsV0FBVyxNQUNaLENBQ0Y7QUFFRCxNQUFhLG1DQUNWLFFBQTBCO0NBQ3pCLE1BQU0sbUJBQW1CLElBQUksK0JBQStCO0FBQzVELEtBQUksb0JBQW9CLEtBQ3RCLFFBQU8sRUFBRTtBQUVYLFFBQU8sS0FBSyxNQUFNLGlCQUFpQjtJQUVwQyxLQUFLLEtBQUssVUFBc0U7Q0FHL0UsTUFBTSxXQUFXO0VBQUUsR0FERSxJQUFJLGdCQUFnQjtHQUNKLE1BQU0sTUFBTSxNQUFNO0VBQVU7QUFFakUsS0FBSSxnQ0FBZ0MsS0FBSyxVQUFVLFNBQVMsQ0FBQztFQUVoRTtBQUVELE1BQU0scUVBQ0osMEJBQ0EsUUFDQUEsc0NBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjtBQUNELE1BQU0sNkNBQThELE9BQVU7QUFFOUUsTUFBYSxzQ0FDVixRQUFvQztDQUNuQyxNQUFNLHNCQUFzQixJQUFJLGtDQUFrQztBQUNsRSxLQUFJLHVCQUF1QixLQUN6QjtBQUtGLFFBQU8sS0FBSyxNQUFNLG9CQUFvQjtJQUV2QyxHQUFHLEtBQUssVUFBc0M7QUFDN0MsS0FBSSxTQUFTLE1BQU07QUFDakIsTUFBSSxtQ0FBbUMsT0FBVTtBQUNqRCxNQUFJLDRCQUE0QixPQUFVO0FBQzFDOztBQUdGLEtBQUksNEJBQTRCLE1BQU07QUFDdEMsS0FBSSxtQ0FBbUMsS0FBSyxVQUFVLE1BQU0sQ0FBQztFQUVoRTtBQUVELE1BQU0seUNBQXNDO0FBQzVDLE1BQU0seUNBQXNDO0FBQzVDLE1BQU0sK0NBQTRDO0FBQ2xELE1BQU0sMENBQXVDO0FBQzdDLE1BQU0scUNBQWtDO0FBQ3hDLE1BQU0sbUNBQWdDO0FBQ3RDLE1BQU0saURBQXlEO0FBQy9ELE1BQU0sc0NBQWtGLE1BQU07QUFDOUYsTUFBTSxzREFBc0U7QUFFNUUsTUFBYSxpQ0FBcUIsUUFBTyxJQUFJLHNCQUFzQixDQUFDO0FBQ3BFLE1BQWEsaUNBQXFCLFFBQU8sSUFBSSxzQkFBc0IsQ0FBQztBQUNwRSxNQUFhLHVDQUEyQixRQUFPLElBQUksNEJBQTRCLENBQUM7QUFDaEYsTUFBYSxrQ0FBc0IsUUFBTyxJQUFJLHVCQUF1QixDQUFDO0FBQ3RFLE1BQWEsNkJBQWlCLFFBQU8sSUFBSSxrQkFBa0IsQ0FBQztBQUM1RCxNQUFhLDJCQUFlLFFBQU8sSUFBSSxnQkFBZ0IsQ0FBQztBQUN4RCxNQUFhLHlDQUE2QixRQUFPLElBQUksOEJBQThCLENBQUM7QUFDcEYsTUFBYSwrQkFBbUIsUUFBTyxJQUFJLG9CQUFvQixDQUFDO0FBQ2hFLE1BQWEsOENBQWtDLFFBQU8sSUFBSSxtQ0FBbUMsQ0FBQztBQUM5RixNQUFhLDJDQUFnQyxNQUFNO0FBRW5ELE1BQWEsbUNBQ1YsUUFBcUI7Q0FDcEIsTUFBTSxVQUFVLElBQUksWUFBWTtBQUVoQyxLQUFJLFlBQVlDLG9DQUFnQixJQUM5QixRQUFPO0VBQ0wsV0FBVyxJQUFJLGNBQWM7RUFDN0I7RUFDQSxXQUFXLElBQUksY0FBYztFQUM3QixpQkFBaUIsSUFBSSxvQkFBb0I7RUFDekMsS0FBSyxJQUFJLFFBQVE7RUFDakIsd0JBQXdCLElBQUksMkJBQTJCO0VBQ3hEO0FBRUgsS0FBSSxZQUFZQSxvQ0FBZ0IsSUFDOUIsUUFBTztFQUNMLFdBQVcsSUFBSSxjQUFjO0VBQzdCO0VBQ0EsT0FBTyxJQUFJLFVBQVU7RUFDckIsS0FBSyxJQUFJLFFBQVE7RUFDakIsd0JBQXdCLElBQUksMkJBQTJCO0VBQ3hEO0FBRUgsS0FBSSxZQUFZQSxvQ0FBZ0IsVUFDOUIsUUFBTztFQUNMLFdBQVcsSUFBSSxjQUFjO0VBQzdCO0VBQ0EsS0FBSyxJQUFJLFFBQVE7RUFDakIsbUJBQW1CLElBQUksc0JBQXNCO0VBQzdDLHdCQUF3QixJQUFJLDJCQUEyQjtFQUN4RDtBQUVILE9BQU0sSUFBSSxNQUFNLDhCQUE4QjtJQUUvQyxHQUFHLEtBQUssZUFBNEI7QUFDbkMsS0FBSSxxQkFBcUIsV0FBVyxRQUFRO0FBQzVDLEtBQUksdUJBQXVCLFdBQVcsVUFBVTtBQUNoRCxLQUFJLG9DQUFvQyxXQUFXLHVCQUF1QjtBQUMxRSxLQUFJLFdBQVcsWUFBWUEsb0NBQWdCLEtBQUs7QUFDOUMsTUFBSSx1QkFBdUIsV0FBVyxVQUFVO0FBQ2hELE1BQUksNkJBQTZCLFdBQVcsZ0JBQWdCO0FBQzVELE1BQUksaUJBQWlCLFdBQVcsSUFBSTs7QUFFdEMsS0FBSSxXQUFXLFlBQVlBLG9DQUFnQixLQUFLO0FBQzlDLE1BQUksbUJBQW1CLFdBQVcsTUFBTTtBQUN4QyxNQUFJLGlCQUFpQixXQUFXLElBQUk7O0FBRXRDLEtBQUksV0FBVyxZQUFZQSxvQ0FBZ0IsV0FBVztBQUNwRCxNQUFJLGlCQUFpQixXQUFXLElBQUk7QUFDcEMsTUFBSSwrQkFBK0IsV0FBVyxrQkFBa0I7O0VBR3JFO0FBRUQsTUFBTSx1QkFBdUIsc0JBQXFEO0FBQ2hGLEtBQUksc0JBQXNCQyxrREFBa0IsT0FHMUMsUUFBTztFQUNMLFdBQVc7RUFDWCxTQUptQixJQUFJLGdCQUFnQixPQUFPLFNBQVMsT0FBTyxDQUNoQyxJQUFJLE1BQU07RUFJekM7QUFFSCxLQUFJLHNCQUFzQkEsa0RBQWtCLFNBQzFDLFFBQU87RUFDTCxXQUFXO0VBQ1gsU0FBUyxPQUFPLFNBQVM7RUFDMUI7QUFFSCxLQUFJLHNCQUFzQkEsa0RBQWtCLFNBQzFDLFFBQU87RUFDTCxXQUFXO0VBQ1gsU0FBUyxPQUFPLFNBQVM7RUFDMUI7QUFFSCxRQUFPO0VBQ0wsV0FBVztFQUNYLFNBQVMsT0FBTyxTQUFTO0VBQzFCOztBQUdILE1BQWEsd0NBQTRCLFFBQU87Q0FDOUMsTUFBTSxjQUFjLElBQUksZ0JBQWdCO0FBQ3hDLEtBQUksWUFBWSxZQUFZRCxvQ0FBZ0IsSUFDMUMsUUFBTztFQUNMLFdBQVc7RUFDWCxTQUFTLFlBQVk7RUFDdEI7QUFFSCxLQUFJLFlBQVksWUFBWUEsb0NBQWdCLElBQzFDLFFBQU87RUFDTCxXQUFXO0VBQ1gsU0FBUyxZQUFZO0VBQ3RCO0FBRUgsS0FBSSxZQUFZLFlBQVlBLG9DQUFnQixVQUMxQyxRQUFPLG9CQUFvQixZQUFZLGtCQUFrQjtBQUUzRCxRQUFPLFFBQVEsdUJBQXVCLFFBQVcsRUFBRSxhQUFhLENBQUM7QUFDakUsUUFBTztFQUNMLFdBQVc7RUFDWCxTQUFTLE9BQU8sU0FBUztFQUMxQjtFQUNEO0FBR0YsTUFBYSxvQ0FBZ0QsT0FBVTtBQUN2RSxNQUFhLHNDQUF3RCxPQUFVIn0=
@@ -8,6 +8,7 @@ import { atom } from "jotai";
8
8
  import { atomWithStorage } from "jotai/utils";
9
9
 
10
10
  //#region src/atoms/app/variant.ts
11
+ const logger = new logger_default("variant");
11
12
  const internalStorageUrlResolverAtom = atomWithStorage("spiffy-url-resolver", void 0, sessionStorageUtil, { getOnInit: true });
12
13
  const urlResolverAtom = atom((get) => {
13
14
  const maybeUrlResolver = get(internalStorageUrlResolverAtom);
@@ -126,7 +127,7 @@ const analyticsContextAtom = atom((get) => {
126
127
  page_id: variantInfo.plpId
127
128
  };
128
129
  if (variantInfo.variant === VariantTypeEnum.PageVisit) return getPageVisitContext(variantInfo.pageVisitCategory);
129
- logger_default.logWarn("[envive-ai] Invalid variantInfo", void 0, { variantInfo });
130
+ logger.logWarn("Invalid variantInfo", void 0, { variantInfo });
130
131
  return {
131
132
  page_type: "other",
132
133
  page_id: window.location.href
@@ -137,4 +138,4 @@ const pageVariantInfoAtom = atom(void 0);
137
138
 
138
139
  //#endregion
139
140
  export { analyticsContextAtom, hasParsedVariantInfoAtom, pageUserEventAtom, pageVariantInfoAtom, supportedEventAtom, urlResolverAtom, variantInfoAtom };
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXRvbXMvYXBwL3ZhcmlhbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVXNlckV2ZW50IGFzIEFwaVVzZXJFdmVudCxcbiAgUGFnZVZpc2l0Q2F0ZWdvcnksXG4gIFN1cHBvcnRlZEV2ZW50UmVzcG9uc2UsXG59IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXRvbVdpdGhTdG9yYWdlIH0gZnJvbSAnam90YWkvdXRpbHMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgUERQVmFyaWFudEluZm8sXG4gIFBMUFZhcmlhbnRJbmZvLFxuICBQYWdlVmlzaXRWYXJpYW50SW5mbyxcbiAgVXNlckV2ZW50LFxuICBWYXJpYW50SW5mbyxcbiAgVmFyaWFudFR5cGVFbnVtLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IHNlc3Npb25TdG9yYWdlVXRpbCB9IGZyb20gJ3NyYy9hdG9tcy9hdG9tU3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBQYWdlVmFyaWFudEluZm8gfSBmcm9tICdzcmMvY29udGV4dHMvcGFnZUNvbnRleHQvdHlwZXMnO1xuaW1wb3J0IHsgU2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydGVkRXZlbnQgZXh0ZW5kcyBQaWNrPFxuICBTdXBwb3J0ZWRFdmVudFJlc3BvbnNlLFxuICAnc3VwcG9ydGVkJyB8ICdyZWFkeScgfCAnY2F0ZWdvcnknIHwgJ2NvbGxlY3Rpb25zJyB8ICd0b3BfY2F0ZWdvcnknXG4+IHtcbiAgbnVtYmVyT2ZSZXZpZXdzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIG1lcmNoYW50X3RhZ3M/OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFBEUEF0dHJpYnV0ZXMge1xuICBwcm9kdWN0X2lkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUExQQXR0cmlidXRlcyB7XG4gIGF0dHJpYnV0ZXM/OiB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJsUmVzb2x2aW5nUERQQ29uZmlnIHtcbiAgcGRwX2F0dHJpYnV0ZXM6IFBEUEF0dHJpYnV0ZXM7XG4gIG51bWJlcl9vZl9yZXZpZXdzPzogbnVtYmVyO1xuICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdO1xuICBtZXJjaGFudF90YWdzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJsUmVzb2x2aW5nUExQQ29uZmlnIHtcbiAgcGxwX2F0dHJpYnV0ZXM6IFBMUEF0dHJpYnV0ZXM7XG4gIHRvcF9jYXRlZ29yeT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFVybFJlc29sdmluZ0dlbmVyaWNDb25maWcge1xuICBkZXRhaWxzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQYWdlVmFyaWFudENoZWNrQ29uZmlnID0ge1xuICBjaGVja190eXBlOiBzdHJpbmc7XG4gIGZlYXR1cmVfZ2F0ZT86IHN0cmluZztcbiAgZXh0cmFjdG9yPzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBtYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gIH07XG4gIHByb2R1Y3RfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwcm9kdWN0X2lkcz86IHN0cmluZ1tdO1xuICBwbHBfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwbHBfaWRzPzogc3RyaW5nW107XG4gIGNvbGxlY3Rpb25zPzogc3RyaW5nW107XG4gIHF1ZXJ5X3BhcmFtPzogc3RyaW5nO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgdG9wX2NhdGVnb3J5Pzogc3RyaW5nW107XG4gIHJldmlld19taW5pbXVtPzogbnVtYmVyO1xuICBtZXJjaGFudF90YWdzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrZW5kV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gIG1vdW50aW5nX2NvbmZpZ19pZDogc3RyaW5nO1xuICB3aWRnZXRfY29uZmlnX2lkPzogc3RyaW5nO1xuICBtb3VudGluZ19wb2ludF93aWRnZXRzPzogQXJyYXk8e1xuICAgIGNoZWNrczogUGFnZVZhcmlhbnRDaGVja0NvbmZpZ1tdO1xuICAgIHdpZGdldF9jb25maWdfaWQ6IHN0cmluZztcbiAgfT47XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrZW5kUGFnZVZhcmlhbnRDb25maWcgPSB7XG4gIHZhcmlhbnRfaWQ6IHN0cmluZztcbiAgdmFyaWFudF90eXBlOiBzdHJpbmc7XG4gIHZhcmlhbnRfY2hlY2tzOiBQYWdlVmFyaWFudENoZWNrQ29uZmlnW107XG4gIHdpZGdldF9tb3VudGluZzogQmFja2VuZFdpZGdldE1vdW50aW5nQ29uZmlnW107XG4gIHBscF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHByb2R1Y3RfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwYXJlbnRfcHJvZHVjdF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFVybFJlc29sdmVyUmVzcG9uc2Uge1xuICB2YXJpYW50X3R5cGU6IHN0cmluZztcbiAgc3BlY2lmaWNfZGV0YWlsczogVXJsUmVzb2x2aW5nUERQQ29uZmlnIHwgVXJsUmVzb2x2aW5nUExQQ29uZmlnIHwgVXJsUmVzb2x2aW5nR2VuZXJpY0NvbmZpZztcbiAgcmVhZHk6IGJvb2xlYW47XG4gIHVzZXJfZXZlbnQ/OiBBcGlVc2VyRXZlbnQ7XG4gIHBhZ2VfdmFyaWFudD86IEJhY2tlbmRQYWdlVmFyaWFudENvbmZpZztcbn1cblxuLy8gVXNlIGEgbWFwIGZvciBwZXItVVJMIGNhY2hlXG5leHBvcnQgdHlwZSBVcmxSZXNvbHZlckNhY2hlID0gUmVjb3JkPHN0cmluZywgVXJsUmVzb2x2ZXJSZXNwb25zZSB8IHVuZGVmaW5lZD47XG5cbmNvbnN0IGludGVybmFsU3RvcmFnZVVybFJlc29sdmVyQXRvbSA9IGF0b21XaXRoU3RvcmFnZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAnc3BpZmZ5LXVybC1yZXNvbHZlcicsXG4gIHVuZGVmaW5lZCxcbiAgc2Vzc2lvblN0b3JhZ2VVdGlsLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IHVybFJlc29sdmVyQXRvbSA9IGF0b20oXG4gIChnZXQpOiBVcmxSZXNvbHZlckNhY2hlID0+IHtcbiAgICBjb25zdCBtYXliZVVybFJlc29sdmVyID0gZ2V0KGludGVybmFsU3RvcmFnZVVybFJlc29sdmVyQXRvbSk7XG4gICAgaWYgKG1heWJlVXJsUmVzb2x2ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5wYXJzZShtYXliZVVybFJlc29sdmVyKTtcbiAgfSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogeyB1cmw6IHN0cmluZzsgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2UgfCB1bmRlZmluZWQgfSkgPT4ge1xuICAgIC8vIEdldCBjdXJyZW50IGNhY2hlIGZyb20gc3RvcmFnZVxuICAgIGNvbnN0IGN1cnJlbnRDYWNoZSA9IGdldCh1cmxSZXNvbHZlckF0b20pO1xuICAgIGNvbnN0IG5ld0NhY2hlID0geyAuLi5jdXJyZW50Q2FjaGUsIFt2YWx1ZS51cmxdOiB2YWx1ZS5yZXNwb25zZSB9O1xuXG4gICAgc2V0KGludGVybmFsU3RvcmFnZVVybFJlc29sdmVyQXRvbSwgSlNPTi5zdHJpbmdpZnkobmV3Q2FjaGUpKTtcbiAgfSxcbik7XG5cbmNvbnN0IGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b21XaXRoU3RvcmFnZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAnc3BpZmZ5LXN1cHBvcnRlZC1ldmVudCcsXG4gIHVuZGVmaW5lZCxcbiAgc2Vzc2lvblN0b3JhZ2VVdGlsLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9LFxuKTtcbmNvbnN0IGludGVybmFsU3VwcG9ydGVkRXZlbnRBdG9tID0gYXRvbTxTdXBwb3J0ZWRFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b20oXG4gIChnZXQpOiBTdXBwb3J0ZWRFdmVudCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgbWF5YmVTdXBwb3J0ZWRFdmVudCA9IGdldChpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20pO1xuICAgIGlmIChtYXliZVN1cHBvcnRlZEV2ZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETyB0aGlzIGlzIGFuIHVudmFsaWRhdGVkIHBhcnNlLiBJdCBtYXkgYmUgYmV0dGVyIHRvIGltcGxlbWVudCBhIGN1c3RvbSBzdG9yYWdlIHV0aWxcbiAgICAvLyBhbmQgcGVyZm9ybSB0aGUgb2JqZWN0IHZhbGlkYXRpb24gb24gXCJnZXRcIiB0aGVyZS5cbiAgICByZXR1cm4gSlNPTi5wYXJzZShtYXliZVN1cHBvcnRlZEV2ZW50KTtcbiAgfSxcbiAgKF8sIHNldCwgdmFsdWU6IFN1cHBvcnRlZEV2ZW50IHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHNldChpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20sIHVuZGVmaW5lZCk7XG4gICAgICBzZXQoaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20sIHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0KGludGVybmFsU3VwcG9ydGVkRXZlbnRBdG9tLCB2YWx1ZSk7XG4gICAgc2V0KGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgfSxcbik7XG5cbmNvbnN0IGludGVybmFsVmFyaWFudElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQcm9kdWN0SWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBhcmVudFByb2R1Y3RJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUHJvZHVjdFVybEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUGxwSWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFVybEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUGFnZVZpc2l0Q2F0ZWdvcnlBdG9tID0gYXRvbTxQYWdlVmlzaXRDYXRlZ29yeT4oKTtcbmNvbnN0IGludGVybmFsVmFyaWFudEF0b20gPSBhdG9tPCdwZHAnIHwgJ3BscCcgfCAnc2VhcmNoJyB8ICdwYWdlX3Zpc2l0JyB8ICdmdWxsX3BhZ2UnPigncGRwJyk7XG5jb25zdCBpbnRlcm5hbEZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tID0gYXRvbTxTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zPigpO1xuXG5leHBvcnQgY29uc3QgdmFyaWFudElkQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFZhcmlhbnRJZEF0b20pKTtcbmV4cG9ydCBjb25zdCBwcm9kdWN0SWRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUHJvZHVjdElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBhcmVudFByb2R1Y3RJZEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tKSk7XG5leHBvcnQgY29uc3QgcHJvZHVjdFVybEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxQcm9kdWN0VXJsQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBscElkQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFBscElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHVybEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxVcmxBdG9tKSk7XG5leHBvcnQgY29uc3QgcGFnZVZpc2l0Q2F0ZWdvcnlBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUGFnZVZpc2l0Q2F0ZWdvcnlBdG9tKSk7XG5leHBvcnQgY29uc3QgdmFyaWFudEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxWYXJpYW50QXRvbSkpO1xuZXhwb3J0IGNvbnN0IGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsRmxvYXRpbmdCdXR0b25PdmVycmlkZUF0b20pKTtcbmV4cG9ydCBjb25zdCBoYXNQYXJzZWRWYXJpYW50SW5mb0F0b20gPSBhdG9tKGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHZhcmlhbnRJbmZvQXRvbSA9IGF0b20oXG4gIChnZXQpOiBWYXJpYW50SW5mbyA9PiB7XG4gICAgY29uc3QgdmFyaWFudCA9IGdldCh2YXJpYW50QXRvbSk7XG4gICAgLy8gVE9ETzogTWF5YmUgSSBuZWVkIHRvIHJldHVybiB0aGUgZmJvIGhlcmUgdG9vLlxuICAgIGlmICh2YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGRwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YXJpYW50SWQ6IGdldCh2YXJpYW50SWRBdG9tKSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgcHJvZHVjdElkOiBnZXQocHJvZHVjdElkQXRvbSksXG4gICAgICAgIHBhcmVudFByb2R1Y3RJZDogZ2V0KHBhcmVudFByb2R1Y3RJZEF0b20pLFxuICAgICAgICB1cmw6IGdldCh1cmxBdG9tKSxcbiAgICAgICAgZmxvYXRpbmdCdXR0b25PdmVycmlkZTogZ2V0KGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tKSxcbiAgICAgIH0gYXMgUERQVmFyaWFudEluZm87XG4gICAgfVxuICAgIGlmICh2YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGxwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YXJpYW50SWQ6IGdldCh2YXJpYW50SWRBdG9tKSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgcGxwSWQ6IGdldChwbHBJZEF0b20pLFxuICAgICAgICB1cmw6IGdldCh1cmxBdG9tKSxcbiAgICAgICAgZmxvYXRpbmdCdXR0b25PdmVycmlkZTogZ2V0KGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tKSxcbiAgICAgIH0gYXMgUExQVmFyaWFudEluZm87XG4gICAgfVxuICAgIGlmICh2YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YXJpYW50SWQ6IGdldCh2YXJpYW50SWRBdG9tKSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgdXJsOiBnZXQodXJsQXRvbSksXG4gICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5OiBnZXQocGFnZVZpc2l0Q2F0ZWdvcnlBdG9tKSxcbiAgICAgICAgZmxvYXRpbmdCdXR0b25PdmVycmlkZTogZ2V0KGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tKSxcbiAgICAgIH0gYXMgUGFnZVZpc2l0VmFyaWFudEluZm87XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YXJpYW50SW5mbyBkZXRhaWxzJyk7XG4gIH0sXG4gIChfLCBzZXQsIG5ld1ZhcmlhbnQ6IFZhcmlhbnRJbmZvKSA9PiB7XG4gICAgc2V0KGludGVybmFsVmFyaWFudEF0b20sIG5ld1ZhcmlhbnQudmFyaWFudCk7XG4gICAgc2V0KGludGVybmFsVmFyaWFudElkQXRvbSwgbmV3VmFyaWFudC52YXJpYW50SWQpO1xuICAgIHNldChpbnRlcm5hbEZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tLCBuZXdWYXJpYW50LmZsb2F0aW5nQnV0dG9uT3ZlcnJpZGUpO1xuICAgIGlmIChuZXdWYXJpYW50LnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QZHApIHtcbiAgICAgIHNldChpbnRlcm5hbFByb2R1Y3RJZEF0b20sIG5ld1ZhcmlhbnQucHJvZHVjdElkKTtcbiAgICAgIHNldChpbnRlcm5hbFBhcmVudFByb2R1Y3RJZEF0b20sIG5ld1ZhcmlhbnQucGFyZW50UHJvZHVjdElkKTtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICB9XG4gICAgaWYgKG5ld1ZhcmlhbnQudmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBscCkge1xuICAgICAgc2V0KGludGVybmFsUGxwSWRBdG9tLCBuZXdWYXJpYW50LnBscElkKTtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICB9XG4gICAgaWYgKG5ld1ZhcmlhbnQudmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBhZ2VWaXNpdCkge1xuICAgICAgc2V0KGludGVybmFsVXJsQXRvbSwgbmV3VmFyaWFudC51cmwpO1xuICAgICAgc2V0KGludGVybmFsUGFnZVZpc2l0Q2F0ZWdvcnlBdG9tLCBuZXdWYXJpYW50LnBhZ2VWaXNpdENhdGVnb3J5KTtcbiAgICB9XG4gIH0sXG4pO1xuXG5jb25zdCBnZXRQYWdlVmlzaXRDb250ZXh0ID0gKHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAocGFnZVZpc2l0Q2F0ZWdvcnkgPT09IFBhZ2VWaXNpdENhdGVnb3J5LlNlYXJjaCkge1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IHNlYXJjaFBhcmFtcy5nZXQoJ2VzcScpO1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlX3R5cGU6ICdzZWFyY2gnLFxuICAgICAgcGFnZV9pZDogc2VhcmNoVGVybSxcbiAgICB9O1xuICB9XG4gIGlmIChwYWdlVmlzaXRDYXRlZ29yeSA9PT0gUGFnZVZpc2l0Q2F0ZWdvcnkuSG9tZXBhZ2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAnaG9tZXBhZ2UnLFxuICAgICAgcGFnZV9pZDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcbiAgfVxuICBpZiAocGFnZVZpc2l0Q2F0ZWdvcnkgPT09IFBhZ2VWaXNpdENhdGVnb3J5LkZ1bGxQYWdlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ2Z1bGxfcGFnZScsXG4gICAgICBwYWdlX2lkOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgcGFnZV90eXBlOiAnb3RoZXInLFxuICAgIHBhZ2VfaWQ6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0NvbnRleHRBdG9tID0gYXRvbShnZXQgPT4ge1xuICBjb25zdCB2YXJpYW50SW5mbyA9IGdldCh2YXJpYW50SW5mb0F0b20pO1xuICBpZiAodmFyaWFudEluZm8udmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBkcCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlX3R5cGU6ICdwZHAnLFxuICAgICAgcGFnZV9pZDogdmFyaWFudEluZm8ucHJvZHVjdElkLFxuICAgIH07XG4gIH1cbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QbHApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAncGxwJyxcbiAgICAgIHBhZ2VfaWQ6IHZhcmlhbnRJbmZvLnBscElkLFxuICAgIH07XG4gIH1cbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QYWdlVmlzaXQpIHtcbiAgICByZXR1cm4gZ2V0UGFnZVZpc2l0Q29udGV4dCh2YXJpYW50SW5mby5wYWdlVmlzaXRDYXRlZ29yeSk7XG4gIH1cbiAgTG9nZ2VyLmxvZ1dhcm4oJ1tlbnZpdmUtYWldIEludmFsaWQgdmFyaWFudEluZm8nLCB1bmRlZmluZWQsIHsgdmFyaWFudEluZm8gfSk7XG4gIHJldHVybiB7XG4gICAgcGFnZV90eXBlOiAnb3RoZXInLFxuICAgIHBhZ2VfaWQ6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICB9O1xufSk7XG5cbi8vIEF0b21zIGZvciBwYWdlIGNvbnRleHQgLSBjYW4gYmUgc2V0IGRpcmVjdGx5IGJ5IFBhZ2VQcm92aWRlciBvciBmb3Igc3Rvcnlib29rL3Rlc3RpbmdcbmV4cG9ydCBjb25zdCBwYWdlVXNlckV2ZW50QXRvbSA9IGF0b208VXNlckV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IHBhZ2VWYXJpYW50SW5mb0F0b20gPSBhdG9tPFBhZ2VWYXJpYW50SW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQXdHQSxNQUFNLGlDQUFpQyxnQkFDckMsdUJBQ0EsUUFDQSxvQkFDQSxFQUNFLFdBQVcsTUFDWixDQUNGO0FBRUQsTUFBYSxrQkFBa0IsTUFDNUIsUUFBMEI7Q0FDekIsTUFBTSxtQkFBbUIsSUFBSSwrQkFBK0I7QUFDNUQsS0FBSSxvQkFBb0IsS0FDdEIsUUFBTyxFQUFFO0FBRVgsUUFBTyxLQUFLLE1BQU0saUJBQWlCO0lBRXBDLEtBQUssS0FBSyxVQUFzRTtDQUcvRSxNQUFNLFdBQVc7RUFBRSxHQURFLElBQUksZ0JBQWdCO0dBQ0osTUFBTSxNQUFNLE1BQU07RUFBVTtBQUVqRSxLQUFJLGdDQUFnQyxLQUFLLFVBQVUsU0FBUyxDQUFDO0VBRWhFO0FBRUQsTUFBTSxvQ0FBb0MsZ0JBQ3hDLDBCQUNBLFFBQ0Esb0JBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjtBQUNELE1BQU0sNkJBQTZCLEtBQWlDLE9BQVU7QUFFOUUsTUFBYSxxQkFB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
141
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC5qcyIsIm5hbWVzIjpbIkxvZ2dlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9hcHAvdmFyaWFudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBVc2VyRXZlbnQgYXMgQXBpVXNlckV2ZW50LFxuICBQYWdlVmlzaXRDYXRlZ29yeSxcbiAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBhdG9tV2l0aFN0b3JhZ2UgfSBmcm9tICdqb3RhaS91dGlscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBQRFBWYXJpYW50SW5mbyxcbiAgUExQVmFyaWFudEluZm8sXG4gIFBhZ2VWaXNpdFZhcmlhbnRJbmZvLFxuICBVc2VyRXZlbnQsXG4gIFZhcmlhbnRJbmZvLFxuICBWYXJpYW50VHlwZUVudW0sXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgc2Vzc2lvblN0b3JhZ2VVdGlsIH0gZnJvbSAnc3JjL2F0b21zL2F0b21TdG9yZSc7XG5pbXBvcnQgdHlwZSB7IFBhZ2VWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9jb250ZXh0cy9wYWdlQ29udGV4dC90eXBlcyc7XG5pbXBvcnQgeyBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcigndmFyaWFudCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRlZEV2ZW50IGV4dGVuZHMgUGljazxcbiAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbiAgJ3N1cHBvcnRlZCcgfCAncmVhZHknIHwgJ2NhdGVnb3J5JyB8ICdjb2xsZWN0aW9ucycgfCAndG9wX2NhdGVnb3J5J1xuPiB7XG4gIG51bWJlck9mUmV2aWV3czogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBtZXJjaGFudF90YWdzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBQRFBBdHRyaWJ1dGVzIHtcbiAgcHJvZHVjdF9pZD86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBMUEF0dHJpYnV0ZXMge1xuICBhdHRyaWJ1dGVzPzoge1xuICAgIGlkPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVybFJlc29sdmluZ1BEUENvbmZpZyB7XG4gIHBkcF9hdHRyaWJ1dGVzOiBQRFBBdHRyaWJ1dGVzO1xuICBudW1iZXJfb2ZfcmV2aWV3cz86IG51bWJlcjtcbiAgY29sbGVjdGlvbnM/OiBzdHJpbmdbXTtcbiAgbWVyY2hhbnRfdGFncz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVybFJlc29sdmluZ1BMUENvbmZpZyB7XG4gIHBscF9hdHRyaWJ1dGVzOiBQTFBBdHRyaWJ1dGVzO1xuICB0b3BfY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBVcmxSZXNvbHZpbmdHZW5lcmljQ29uZmlnIHtcbiAgZGV0YWlscz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRDaGVja0NvbmZpZyA9IHtcbiAgY2hlY2tfdHlwZTogc3RyaW5nO1xuICBmZWF0dXJlX2dhdGU/OiBzdHJpbmc7XG4gIGV4dHJhY3Rvcj86IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICB9O1xuICBwcm9kdWN0X2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcHJvZHVjdF9pZHM/OiBzdHJpbmdbXTtcbiAgcGxwX2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcGxwX2lkcz86IHN0cmluZ1tdO1xuICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdO1xuICBxdWVyeV9wYXJhbT86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIHRvcF9jYXRlZ29yeT86IHN0cmluZ1tdO1xuICByZXZpZXdfbWluaW11bT86IG51bWJlcjtcbiAgbWVyY2hhbnRfdGFncz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2VuZFdpZGdldE1vdW50aW5nQ29uZmlnID0ge1xuICBtb3VudGluZ19jb25maWdfaWQ6IHN0cmluZztcbiAgd2lkZ2V0X2NvbmZpZ19pZD86IHN0cmluZztcbiAgbW91bnRpbmdfcG9pbnRfd2lkZ2V0cz86IEFycmF5PHtcbiAgICBjaGVja3M6IFBhZ2VWYXJpYW50Q2hlY2tDb25maWdbXTtcbiAgICB3aWRnZXRfY29uZmlnX2lkOiBzdHJpbmc7XG4gIH0+O1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2VuZFBhZ2VWYXJpYW50Q29uZmlnID0ge1xuICB2YXJpYW50X2lkOiBzdHJpbmc7XG4gIHZhcmlhbnRfdHlwZTogc3RyaW5nO1xuICB2YXJpYW50X2NoZWNrczogUGFnZVZhcmlhbnRDaGVja0NvbmZpZ1tdO1xuICB3aWRnZXRfbW91bnRpbmc6IEJhY2tlbmRXaWRnZXRNb3VudGluZ0NvbmZpZ1tdO1xuICBwbHBfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwcm9kdWN0X2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcGFyZW50X3Byb2R1Y3RfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBVcmxSZXNvbHZlclJlc3BvbnNlIHtcbiAgdmFyaWFudF90eXBlOiBzdHJpbmc7XG4gIHNwZWNpZmljX2RldGFpbHM6IFVybFJlc29sdmluZ1BEUENvbmZpZyB8IFVybFJlc29sdmluZ1BMUENvbmZpZyB8IFVybFJlc29sdmluZ0dlbmVyaWNDb25maWc7XG4gIHJlYWR5OiBib29sZWFuO1xuICB1c2VyX2V2ZW50PzogQXBpVXNlckV2ZW50O1xuICBwYWdlX3ZhcmlhbnQ/OiBCYWNrZW5kUGFnZVZhcmlhbnRDb25maWc7XG59XG5cbi8vIFVzZSBhIG1hcCBmb3IgcGVyLVVSTCBjYWNoZVxuZXhwb3J0IHR5cGUgVXJsUmVzb2x2ZXJDYWNoZSA9IFJlY29yZDxzdHJpbmcsIFVybFJlc29sdmVyUmVzcG9uc2UgfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgJ3NwaWZmeS11cmwtcmVzb2x2ZXInLFxuICB1bmRlZmluZWQsXG4gIHNlc3Npb25TdG9yYWdlVXRpbCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCB1cmxSZXNvbHZlckF0b20gPSBhdG9tKFxuICAoZ2V0KTogVXJsUmVzb2x2ZXJDYWNoZSA9PiB7XG4gICAgY29uc3QgbWF5YmVVcmxSZXNvbHZlciA9IGdldChpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20pO1xuICAgIGlmIChtYXliZVVybFJlc29sdmVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04ucGFyc2UobWF5YmVVcmxSZXNvbHZlcik7XG4gIH0sXG4gIChnZXQsIHNldCwgdmFsdWU6IHsgdXJsOiBzdHJpbmc7IHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlIHwgdW5kZWZpbmVkIH0pID0+IHtcbiAgICAvLyBHZXQgY3VycmVudCBjYWNoZSBmcm9tIHN0b3JhZ2VcbiAgICBjb25zdCBjdXJyZW50Q2FjaGUgPSBnZXQodXJsUmVzb2x2ZXJBdG9tKTtcbiAgICBjb25zdCBuZXdDYWNoZSA9IHsgLi4uY3VycmVudENhY2hlLCBbdmFsdWUudXJsXTogdmFsdWUucmVzcG9uc2UgfTtcblxuICAgIHNldChpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20sIEpTT04uc3RyaW5naWZ5KG5ld0NhY2hlKSk7XG4gIH0sXG4pO1xuXG5jb25zdCBpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgJ3NwaWZmeS1zdXBwb3J0ZWQtZXZlbnQnLFxuICB1bmRlZmluZWQsXG4gIHNlc3Npb25TdG9yYWdlVXRpbCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfSxcbik7XG5jb25zdCBpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b208U3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBzdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tKFxuICAoZ2V0KTogU3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IG1heWJlU3VwcG9ydGVkRXZlbnQgPSBnZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tKTtcbiAgICBpZiAobWF5YmVTdXBwb3J0ZWRFdmVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFRPRE8gdGhpcyBpcyBhbiB1bnZhbGlkYXRlZCBwYXJzZS4gSXQgbWF5IGJlIGJldHRlciB0byBpbXBsZW1lbnQgYSBjdXN0b20gc3RvcmFnZSB1dGlsXG4gICAgLy8gYW5kIHBlcmZvcm0gdGhlIG9iamVjdCB2YWxpZGF0aW9uIG9uIFwiZ2V0XCIgdGhlcmUuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UobWF5YmVTdXBwb3J0ZWRFdmVudCk7XG4gIH0sXG4gIChfLCBzZXQsIHZhbHVlOiBTdXBwb3J0ZWRFdmVudCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBzZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tLCB1bmRlZmluZWQpO1xuICAgICAgc2V0KGludGVybmFsU3VwcG9ydGVkRXZlbnRBdG9tLCB1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldChpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSwgdmFsdWUpO1xuICAgIHNldChpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20sIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gIH0sXG4pO1xuXG5jb25zdCBpbnRlcm5hbFZhcmlhbnRJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUHJvZHVjdElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFByb2R1Y3RVcmxBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBscElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxVcmxBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSA9IGF0b208UGFnZVZpc2l0Q2F0ZWdvcnk+KCk7XG5jb25zdCBpbnRlcm5hbFZhcmlhbnRBdG9tID0gYXRvbTwncGRwJyB8ICdwbHAnIHwgJ3NlYXJjaCcgfCAncGFnZV92aXNpdCcgfCAnZnVsbF9wYWdlJz4oJ3BkcCcpO1xuY29uc3QgaW50ZXJuYWxGbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSA9IGF0b208U2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucz4oKTtcblxuZXhwb3J0IGNvbnN0IHZhcmlhbnRJZEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxWYXJpYW50SWRBdG9tKSk7XG5leHBvcnQgY29uc3QgcHJvZHVjdElkQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFByb2R1Y3RJZEF0b20pKTtcbmV4cG9ydCBjb25zdCBwYXJlbnRQcm9kdWN0SWRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUGFyZW50UHJvZHVjdElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RVcmxBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUHJvZHVjdFVybEF0b20pKTtcbmV4cG9ydCBjb25zdCBwbHBJZEF0b20gPSBhdG9tKGdldCA9PiBnZXQoaW50ZXJuYWxQbHBJZEF0b20pKTtcbmV4cG9ydCBjb25zdCB1cmxBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsVXJsQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBhZ2VWaXNpdENhdGVnb3J5QXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSkpO1xuZXhwb3J0IGNvbnN0IHZhcmlhbnRBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsVmFyaWFudEF0b20pKTtcbmV4cG9ydCBjb25zdCBmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbEZsb2F0aW5nQnV0dG9uT3ZlcnJpZGVBdG9tKSk7XG5leHBvcnQgY29uc3QgaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tID0gYXRvbShmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCB2YXJpYW50SW5mb0F0b20gPSBhdG9tKFxuICAoZ2V0KTogVmFyaWFudEluZm8gPT4ge1xuICAgIGNvbnN0IHZhcmlhbnQgPSBnZXQodmFyaWFudEF0b20pO1xuICAgIC8vIFRPRE86IE1heWJlIEkgbmVlZCB0byByZXR1cm4gdGhlIGZibyBoZXJlIHRvby5cbiAgICBpZiAodmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBkcCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHByb2R1Y3RJZDogZ2V0KHByb2R1Y3RJZEF0b20pLFxuICAgICAgICBwYXJlbnRQcm9kdWN0SWQ6IGdldChwYXJlbnRQcm9kdWN0SWRBdG9tKSxcbiAgICAgICAgdXJsOiBnZXQodXJsQXRvbSksXG4gICAgICAgIGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGU6IGdldChmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSksXG4gICAgICB9IGFzIFBEUFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICBpZiAodmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBscCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHBscElkOiBnZXQocGxwSWRBdG9tKSxcbiAgICAgICAgdXJsOiBnZXQodXJsQXRvbSksXG4gICAgICAgIGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGU6IGdldChmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSksXG4gICAgICB9IGFzIFBMUFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICBpZiAodmFyaWFudCA9PT0gVmFyaWFudFR5cGVFbnVtLlBhZ2VWaXNpdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeTogZ2V0KHBhZ2VWaXNpdENhdGVnb3J5QXRvbSksXG4gICAgICAgIGZsb2F0aW5nQnV0dG9uT3ZlcnJpZGU6IGdldChmbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSksXG4gICAgICB9IGFzIFBhZ2VWaXNpdFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFyaWFudEluZm8gZGV0YWlscycpO1xuICB9LFxuICAoXywgc2V0LCBuZXdWYXJpYW50OiBWYXJpYW50SW5mbykgPT4ge1xuICAgIHNldChpbnRlcm5hbFZhcmlhbnRBdG9tLCBuZXdWYXJpYW50LnZhcmlhbnQpO1xuICAgIHNldChpbnRlcm5hbFZhcmlhbnRJZEF0b20sIG5ld1ZhcmlhbnQudmFyaWFudElkKTtcbiAgICBzZXQoaW50ZXJuYWxGbG9hdGluZ0J1dHRvbk92ZXJyaWRlQXRvbSwgbmV3VmFyaWFudC5mbG9hdGluZ0J1dHRvbk92ZXJyaWRlKTtcbiAgICBpZiAobmV3VmFyaWFudC52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGRwKSB7XG4gICAgICBzZXQoaW50ZXJuYWxQcm9kdWN0SWRBdG9tLCBuZXdWYXJpYW50LnByb2R1Y3RJZCk7XG4gICAgICBzZXQoaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tLCBuZXdWYXJpYW50LnBhcmVudFByb2R1Y3RJZCk7XG4gICAgICBzZXQoaW50ZXJuYWxVcmxBdG9tLCBuZXdWYXJpYW50LnVybCk7XG4gICAgfVxuICAgIGlmIChuZXdWYXJpYW50LnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QbHApIHtcbiAgICAgIHNldChpbnRlcm5hbFBscElkQXRvbSwgbmV3VmFyaWFudC5wbHBJZCk7XG4gICAgICBzZXQoaW50ZXJuYWxVcmxBdG9tLCBuZXdWYXJpYW50LnVybCk7XG4gICAgfVxuICAgIGlmIChuZXdWYXJpYW50LnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QYWdlVmlzaXQpIHtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICAgIHNldChpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSwgbmV3VmFyaWFudC5wYWdlVmlzaXRDYXRlZ29yeSk7XG4gICAgfVxuICB9LFxuKTtcblxuY29uc3QgZ2V0UGFnZVZpc2l0Q29udGV4dCA9IChwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHBhZ2VWaXNpdENhdGVnb3J5ID09PSBQYWdlVmlzaXRDYXRlZ29yeS5TZWFyY2gpIHtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBzZWFyY2hQYXJhbXMuZ2V0KCdlc3EnKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAnc2VhcmNoJyxcbiAgICAgIHBhZ2VfaWQ6IHNlYXJjaFRlcm0sXG4gICAgfTtcbiAgfVxuICBpZiAocGFnZVZpc2l0Q2F0ZWdvcnkgPT09IFBhZ2VWaXNpdENhdGVnb3J5LkhvbWVwYWdlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ2hvbWVwYWdlJyxcbiAgICAgIHBhZ2VfaWQ6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG4gIH1cbiAgaWYgKHBhZ2VWaXNpdENhdGVnb3J5ID09PSBQYWdlVmlzaXRDYXRlZ29yeS5GdWxsUGFnZSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlX3R5cGU6ICdmdWxsX3BhZ2UnLFxuICAgICAgcGFnZV9pZDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHBhZ2VfdHlwZTogJ290aGVyJyxcbiAgICBwYWdlX2lkOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NDb250ZXh0QXRvbSA9IGF0b20oZ2V0ID0+IHtcbiAgY29uc3QgdmFyaWFudEluZm8gPSBnZXQodmFyaWFudEluZm9BdG9tKTtcbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFZhcmlhbnRUeXBlRW51bS5QZHApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZV90eXBlOiAncGRwJyxcbiAgICAgIHBhZ2VfaWQ6IHZhcmlhbnRJbmZvLnByb2R1Y3RJZCxcbiAgICB9O1xuICB9XG4gIGlmICh2YXJpYW50SW5mby52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGxwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VfdHlwZTogJ3BscCcsXG4gICAgICBwYWdlX2lkOiB2YXJpYW50SW5mby5wbHBJZCxcbiAgICB9O1xuICB9XG4gIGlmICh2YXJpYW50SW5mby52YXJpYW50ID09PSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0KSB7XG4gICAgcmV0dXJuIGdldFBhZ2VWaXNpdENvbnRleHQodmFyaWFudEluZm8ucGFnZVZpc2l0Q2F0ZWdvcnkpO1xuICB9XG4gIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIHZhcmlhbnRJbmZvJywgdW5kZWZpbmVkLCB7IHZhcmlhbnRJbmZvIH0pO1xuICByZXR1cm4ge1xuICAgIHBhZ2VfdHlwZTogJ290aGVyJyxcbiAgICBwYWdlX2lkOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgfTtcbn0pO1xuXG4vLyBBdG9tcyBmb3IgcGFnZSBjb250ZXh0IC0gY2FuIGJlIHNldCBkaXJlY3RseSBieSBQYWdlUHJvdmlkZXIgb3IgZm9yIHN0b3J5Ym9vay90ZXN0aW5nXG5leHBvcnQgY29uc3QgcGFnZVVzZXJFdmVudEF0b20gPSBhdG9tPFVzZXJFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbmV4cG9ydCBjb25zdCBwYWdlVmFyaWFudEluZm9BdG9tID0gYXRvbTxQYWdlVmFyaWFudEluZm8gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFvQkEsTUFBTSxTQUFTLElBQUlBLGVBQU8sVUFBVTtBQXNGcEMsTUFBTSxpQ0FBaUMsZ0JBQ3JDLHVCQUNBLFFBQ0Esb0JBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjtBQUVELE1BQWEsa0JBQWtCLE1BQzVCLFFBQTBCO0NBQ3pCLE1BQU0sbUJBQW1CLElBQUksK0JBQStCO0FBQzVELEtBQUksb0JBQW9CLEtBQ3RCLFFBQU8sRUFBRTtBQUVYLFFBQU8sS0FBSyxNQUFNLGlCQUFpQjtJQUVwQyxLQUFLLEtBQUssVUFBc0U7Q0FHL0UsTUFBTSxXQUFXO0VBQUUsR0FERSxJQUFJLGdCQUFnQjtHQUNKLE1BQU0sTUFBTSxNQUFNO0VBQVU7QUFFakUsS0FBSSxnQ0FBZ0MsS0FBSyxVQUFVLFNBQVMsQ0FBQztFQUVoRTtBQUVELE1BQU0sb0NBQW9DLGdCQUN4QywwQkFDQSxRQUNB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
@@ -4,56 +4,56 @@ import { Message } from "../../application/models/message.cjs";
4
4
  import { FormSubmittedAttributes, UserEvent } from "../../application/models/api/userEvent.cjs";
5
5
  import { Suggestion } from "../../application/models/api/suggestion.cjs";
6
6
  import { SpiffyMetricsEventName } from "../../services/amplitudeService/eventNames.cjs";
7
- import * as jotai12 from "jotai";
7
+ import * as jotai15 from "jotai";
8
8
  import { UserEventCategory } from "@spiffy-ai/commerce-api-client/dist/models/UserEventCategory";
9
9
 
10
10
  //#region src/atoms/chat/chatState.d.ts
11
- declare const userHasRepliedAtom: jotai12.PrimitiveAtom<boolean> & {
11
+ declare const userHasRepliedAtom: jotai15.PrimitiveAtom<boolean> & {
12
12
  init: boolean;
13
13
  };
14
- declare const replyEventCategoryAtom: jotai12.PrimitiveAtom<UserEventCategory> & {
14
+ declare const replyEventCategoryAtom: jotai15.PrimitiveAtom<UserEventCategory> & {
15
15
  init: UserEventCategory;
16
16
  };
17
- declare const userQueryAtom: jotai12.PrimitiveAtom<string | undefined> & {
17
+ declare const userQueryAtom: jotai15.PrimitiveAtom<string | undefined> & {
18
18
  init: string | undefined;
19
19
  };
20
- declare const suggestionAtom: jotai12.PrimitiveAtom<Suggestion | undefined> & {
20
+ declare const suggestionAtom: jotai15.PrimitiveAtom<Suggestion | undefined> & {
21
21
  init: Suggestion | undefined;
22
22
  };
23
- declare const askQuestionBtnClickedAtom: jotai12.PrimitiveAtom<boolean> & {
23
+ declare const askQuestionBtnClickedAtom: jotai15.PrimitiveAtom<boolean> & {
24
24
  init: boolean;
25
25
  };
26
- declare const messagesAtom: jotai12.PrimitiveAtom<Message[][]> & {
26
+ declare const messagesAtom: jotai15.PrimitiveAtom<Message[][]> & {
27
27
  init: Message[][];
28
28
  };
29
- declare const userEventsAtom: jotai12.PrimitiveAtom<UserEvent[]> & {
29
+ declare const userEventsAtom: jotai15.PrimitiveAtom<UserEvent[]> & {
30
30
  init: UserEvent[];
31
31
  };
32
- declare const suggestionsAtom: jotai12.PrimitiveAtom<Suggestion[]> & {
32
+ declare const suggestionsAtom: jotai15.PrimitiveAtom<Suggestion[]> & {
33
33
  init: Suggestion[];
34
34
  };
35
- declare const suggestionsLoadingAtom: jotai12.PrimitiveAtom<boolean> & {
35
+ declare const suggestionsLoadingAtom: jotai15.PrimitiveAtom<boolean> & {
36
36
  init: boolean;
37
37
  };
38
- declare const responseStreamingAtom: jotai12.PrimitiveAtom<boolean> & {
38
+ declare const responseStreamingAtom: jotai15.PrimitiveAtom<boolean> & {
39
39
  init: boolean;
40
40
  };
41
- declare const pendingResponseAtom: jotai12.PrimitiveAtom<boolean> & {
41
+ declare const pendingResponseAtom: jotai15.PrimitiveAtom<boolean> & {
42
42
  init: boolean;
43
43
  };
44
- declare const initializedAtom: jotai12.PrimitiveAtom<boolean> & {
44
+ declare const initializedAtom: jotai15.PrimitiveAtom<boolean> & {
45
45
  init: boolean;
46
46
  };
47
- declare const chatIsOpenAtom: jotai12.PrimitiveAtom<boolean> & {
47
+ declare const chatIsOpenAtom: jotai15.PrimitiveAtom<boolean> & {
48
48
  init: boolean;
49
49
  };
50
- declare const requestFailureAtom: jotai12.PrimitiveAtom<boolean> & {
50
+ declare const requestFailureAtom: jotai15.PrimitiveAtom<boolean> & {
51
51
  init: boolean;
52
52
  };
53
- declare const formSubmitAtom: jotai12.PrimitiveAtom<FormSubmittedAttributes | undefined> & {
53
+ declare const formSubmitAtom: jotai15.PrimitiveAtom<FormSubmittedAttributes | undefined> & {
54
54
  init: FormSubmittedAttributes | undefined;
55
55
  };
56
- declare const chatOnToggleAtom: jotai12.WritableAtom<null, [triggerLocation?: ChatElementDisplayLocation | ChatElementDisplayLocationV3 | undefined, track?: ((eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) | undefined], void> & {
56
+ declare const chatOnToggleAtom: jotai15.WritableAtom<null, [triggerLocation?: ChatElementDisplayLocation | ChatElementDisplayLocationV3 | undefined, track?: ((eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) | undefined], void> & {
57
57
  init: null;
58
58
  };
59
59
  //#endregion
@@ -4,56 +4,56 @@ import { Message } from "../../application/models/message.js";
4
4
  import { FormSubmittedAttributes, UserEvent } from "../../application/models/api/userEvent.js";
5
5
  import { Suggestion } from "../../application/models/api/suggestion.js";
6
6
  import { SpiffyMetricsEventName } from "../../services/amplitudeService/eventNames.js";
7
- import * as jotai15 from "jotai";
7
+ import * as jotai17 from "jotai";
8
8
  import { UserEventCategory } from "@spiffy-ai/commerce-api-client/dist/models/UserEventCategory";
9
9
 
10
10
  //#region src/atoms/chat/chatState.d.ts
11
- declare const userHasRepliedAtom: jotai15.PrimitiveAtom<boolean> & {
11
+ declare const userHasRepliedAtom: jotai17.PrimitiveAtom<boolean> & {
12
12
  init: boolean;
13
13
  };
14
- declare const replyEventCategoryAtom: jotai15.PrimitiveAtom<UserEventCategory> & {
14
+ declare const replyEventCategoryAtom: jotai17.PrimitiveAtom<UserEventCategory> & {
15
15
  init: UserEventCategory;
16
16
  };
17
- declare const userQueryAtom: jotai15.PrimitiveAtom<string | undefined> & {
17
+ declare const userQueryAtom: jotai17.PrimitiveAtom<string | undefined> & {
18
18
  init: string | undefined;
19
19
  };
20
- declare const suggestionAtom: jotai15.PrimitiveAtom<Suggestion | undefined> & {
20
+ declare const suggestionAtom: jotai17.PrimitiveAtom<Suggestion | undefined> & {
21
21
  init: Suggestion | undefined;
22
22
  };
23
- declare const askQuestionBtnClickedAtom: jotai15.PrimitiveAtom<boolean> & {
23
+ declare const askQuestionBtnClickedAtom: jotai17.PrimitiveAtom<boolean> & {
24
24
  init: boolean;
25
25
  };
26
- declare const messagesAtom: jotai15.PrimitiveAtom<Message[][]> & {
26
+ declare const messagesAtom: jotai17.PrimitiveAtom<Message[][]> & {
27
27
  init: Message[][];
28
28
  };
29
- declare const userEventsAtom: jotai15.PrimitiveAtom<UserEvent[]> & {
29
+ declare const userEventsAtom: jotai17.PrimitiveAtom<UserEvent[]> & {
30
30
  init: UserEvent[];
31
31
  };
32
- declare const suggestionsAtom: jotai15.PrimitiveAtom<Suggestion[]> & {
32
+ declare const suggestionsAtom: jotai17.PrimitiveAtom<Suggestion[]> & {
33
33
  init: Suggestion[];
34
34
  };
35
- declare const suggestionsLoadingAtom: jotai15.PrimitiveAtom<boolean> & {
35
+ declare const suggestionsLoadingAtom: jotai17.PrimitiveAtom<boolean> & {
36
36
  init: boolean;
37
37
  };
38
- declare const responseStreamingAtom: jotai15.PrimitiveAtom<boolean> & {
38
+ declare const responseStreamingAtom: jotai17.PrimitiveAtom<boolean> & {
39
39
  init: boolean;
40
40
  };
41
- declare const pendingResponseAtom: jotai15.PrimitiveAtom<boolean> & {
41
+ declare const pendingResponseAtom: jotai17.PrimitiveAtom<boolean> & {
42
42
  init: boolean;
43
43
  };
44
- declare const initializedAtom: jotai15.PrimitiveAtom<boolean> & {
44
+ declare const initializedAtom: jotai17.PrimitiveAtom<boolean> & {
45
45
  init: boolean;
46
46
  };
47
- declare const chatIsOpenAtom: jotai15.PrimitiveAtom<boolean> & {
47
+ declare const chatIsOpenAtom: jotai17.PrimitiveAtom<boolean> & {
48
48
  init: boolean;
49
49
  };
50
- declare const requestFailureAtom: jotai15.PrimitiveAtom<boolean> & {
50
+ declare const requestFailureAtom: jotai17.PrimitiveAtom<boolean> & {
51
51
  init: boolean;
52
52
  };
53
- declare const formSubmitAtom: jotai15.PrimitiveAtom<FormSubmittedAttributes | undefined> & {
53
+ declare const formSubmitAtom: jotai17.PrimitiveAtom<FormSubmittedAttributes | undefined> & {
54
54
  init: FormSubmittedAttributes | undefined;
55
55
  };
56
- declare const chatOnToggleAtom: jotai15.WritableAtom<null, [triggerLocation?: ChatElementDisplayLocation | ChatElementDisplayLocationV3 | undefined, track?: ((eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) | undefined], void> & {
56
+ declare const chatOnToggleAtom: jotai17.WritableAtom<null, [triggerLocation?: ChatElementDisplayLocation | ChatElementDisplayLocationV3 | undefined, track?: ((eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) | undefined], void> & {
57
57
  init: null;
58
58
  };
59
59
  //#endregion
@@ -1,8 +1,8 @@
1
1
  import { FormSubmittedAttributes } from "../../application/models/api/userEvent.cjs";
2
- import * as jotai40 from "jotai";
2
+ import * as jotai43 from "jotai";
3
3
 
4
4
  //#region src/atoms/chat/form.d.ts
5
- declare const handleFormSubmittedAtom: jotai40.WritableAtom<null, [form: FormSubmittedAttributes], void> & {
5
+ declare const handleFormSubmittedAtom: jotai43.WritableAtom<null, [form: FormSubmittedAttributes], void> & {
6
6
  init: null;
7
7
  };
8
8
  //#endregion
@@ -1,8 +1,8 @@
1
1
  import { FormSubmittedAttributes } from "../../application/models/api/userEvent.js";
2
- import * as jotai33 from "jotai";
2
+ import * as jotai42 from "jotai";
3
3
 
4
4
  //#region src/atoms/chat/form.d.ts
5
- declare const handleFormSubmittedAtom: jotai33.WritableAtom<null, [form: FormSubmittedAttributes], void> & {
5
+ declare const handleFormSubmittedAtom: jotai42.WritableAtom<null, [form: FormSubmittedAttributes], void> & {
6
6
  init: null;
7
7
  };
8
8
  //#endregion
@@ -9,10 +9,10 @@ import { lastAssistantMessageAtom } from "./lastMessage.cjs";
9
9
  import { clearUserEventAtom, processUserEventAtom, queueUserEventAtom, userEventQueueAtom, userQueueEventCountAtom } from "./messageQueue.cjs";
10
10
  import { addWidget, widgetArrayAtom } from "./renderedWidgetRefs.cjs";
11
11
  import * as _spiffy_ai_commerce_api_client0 from "@spiffy-ai/commerce-api-client";
12
- import * as jotai11 from "jotai";
12
+ import * as jotai31 from "jotai";
13
13
 
14
14
  //#region src/atoms/chat/index.d.ts
15
- declare const chatAtom: jotai11.Atom<{
15
+ declare const chatAtom: jotai31.Atom<{
16
16
  userHasReplied: boolean;
17
17
  replyEventCategory: _spiffy_ai_commerce_api_client0.UserEventCategory;
18
18
  userQuery: string | undefined;
@@ -9,10 +9,10 @@ import { lastAssistantMessageAtom } from "./lastMessage.js";
9
9
  import { clearUserEventAtom, processUserEventAtom, queueUserEventAtom, userEventQueueAtom, userQueueEventCountAtom } from "./messageQueue.js";
10
10
  import { addWidget, widgetArrayAtom } from "./renderedWidgetRefs.js";
11
11
  import * as _spiffy_ai_commerce_api_client0 from "@spiffy-ai/commerce-api-client";
12
- import * as jotai31 from "jotai";
12
+ import * as jotai16 from "jotai";
13
13
 
14
14
  //#region src/atoms/chat/index.d.ts
15
- declare const chatAtom: jotai31.Atom<{
15
+ declare const chatAtom: jotai16.Atom<{
16
16
  userHasReplied: boolean;
17
17
  replyEventCategory: _spiffy_ai_commerce_api_client0.UserEventCategory;
18
18
  userQuery: string | undefined;
@@ -1,8 +1,8 @@
1
1
  import { Message } from "../../application/models/message.cjs";
2
- import * as jotai41 from "jotai";
2
+ import * as jotai44 from "jotai";
3
3
 
4
4
  //#region src/atoms/chat/lastMessage.d.ts
5
- declare const lastAssistantMessageAtom: jotai41.Atom<Message[] | null>;
5
+ declare const lastAssistantMessageAtom: jotai44.Atom<Message[] | null>;
6
6
  //#endregion
7
7
  export { lastAssistantMessageAtom };
8
8
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdE1lc3NhZ2UuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F0b21zL2NoYXQvbGFzdE1lc3NhZ2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSBjb25zdCBsYXN0QXNzaXN0YW50TWVzc2FnZUF0b206IGltcG9ydChcImpvdGFpXCIpLkF0b208aW1wb3J0KFwiLi4vLi4vYXBwbGljYXRpb24vbW9kZWxzXCIpLk1lc3NhZ2VbXSB8IG51bGw+O1xuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -1,8 +1,8 @@
1
1
  import { Message } from "../../application/models/message.js";
2
- import * as jotai35 from "jotai";
2
+ import * as jotai44 from "jotai";
3
3
 
4
4
  //#region src/atoms/chat/lastMessage.d.ts
5
- declare const lastAssistantMessageAtom: jotai35.Atom<Message[] | null>;
5
+ declare const lastAssistantMessageAtom: jotai44.Atom<Message[] | null>;
6
6
  //#endregion
7
7
  export { lastAssistantMessageAtom };
8
8
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdE1lc3NhZ2UuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXRvbXMvY2hhdC9sYXN0TWVzc2FnZS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNvbnN0IGxhc3RBc3Npc3RhbnRNZXNzYWdlQXRvbTogaW1wb3J0KFwiam90YWlcIikuQXRvbTxpbXBvcnQoXCIuLi8uLi9hcHBsaWNhdGlvbi9tb2RlbHNcIikuTWVzc2FnZVtdIHwgbnVsbD47XG4iXSwibWFwcGluZ3MiOiIifQ==
@@ -1,31 +1,31 @@
1
1
  import { UserEvent } from "../../application/models/api/userEvent.cjs";
2
- import * as jotai43 from "jotai";
2
+ import * as jotai45 from "jotai";
3
3
 
4
4
  //#region src/atoms/chat/messageQueue.d.ts
5
- declare const userEventQueueAtom: jotai43.Atom<UserEvent[]>;
5
+ declare const userEventQueueAtom: jotai45.Atom<UserEvent[]>;
6
6
  /**
7
7
  * This atom is used to queue a new message for processing on `next_responses`
8
8
  * It receives a single `userEvent` that is added to the processing queue.
9
9
  * If the event has the same eventId as an existing message in the queue the NEW
10
10
  * event is ignored
11
11
  */
12
- declare const queueUserEventAtom: jotai43.WritableAtom<null, [userEvent: UserEvent], void> & {
12
+ declare const queueUserEventAtom: jotai45.WritableAtom<null, [userEvent: UserEvent], void> & {
13
13
  init: null;
14
14
  };
15
15
  /**
16
16
  * This atom exposes a function to reset the entire queue. All messages in the queue will be purged
17
17
  */
18
- declare const clearUserEventAtom: jotai43.WritableAtom<null, [], void> & {
18
+ declare const clearUserEventAtom: jotai45.WritableAtom<null, [], void> & {
19
19
  init: null;
20
20
  };
21
21
  /**
22
22
  * This atom is used to mark events as processed and remove them from the queue
23
23
  * It accepts a list of eventId values and will remove all events with those eventIds from the queue.
24
24
  */
25
- declare const processUserEventAtom: jotai43.WritableAtom<null, [eventIds: string[]], void> & {
25
+ declare const processUserEventAtom: jotai45.WritableAtom<null, [eventIds: string[]], void> & {
26
26
  init: null;
27
27
  };
28
- declare const userQueueEventCountAtom: jotai43.Atom<number>;
28
+ declare const userQueueEventCountAtom: jotai45.Atom<number>;
29
29
  //#endregion
30
30
  export { clearUserEventAtom, processUserEventAtom, queueUserEventAtom, userEventQueueAtom, userQueueEventCountAtom };
31
31
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZVF1ZXVlLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlckV2ZW50UXVldWVBdG9tOiBpbXBvcnQoXCJqb3RhaVwiKS5BdG9tPFVzZXJFdmVudFtdPjtcbi8qKlxuICogVGhpcyBhdG9tIGlzIHVzZWQgdG8gcXVldWUgYSBuZXcgbWVzc2FnZSBmb3IgcHJvY2Vzc2luZyBvbiBgbmV4dF9yZXNwb25zZXNgXG4gKiBJdCByZWNlaXZlcyBhIHNpbmdsZSBgdXNlckV2ZW50YCB0aGF0IGlzIGFkZGVkIHRvIHRoZSBwcm9jZXNzaW5nIHF1ZXVlLlxuICogSWYgdGhlIGV2ZW50IGhhcyB0aGUgc2FtZSBldmVudElkIGFzIGFuIGV4aXN0aW5nIG1lc3NhZ2UgaW4gdGhlIHF1ZXVlIHRoZSBORVdcbiAqIGV2ZW50IGlzIGlnbm9yZWRcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgcXVldWVVc2VyRXZlbnRBdG9tOiBpbXBvcnQoXCJqb3RhaVwiKS5Xcml0YWJsZUF0b208bnVsbCwgW3VzZXJFdmVudDogVXNlckV2ZW50XSwgdm9pZD4gJiB7XG4gICAgaW5pdDogbnVsbDtcbn07XG4vKipcbiAqIFRoaXMgYXRvbSBleHBvc2VzIGEgZnVuY3Rpb24gdG8gcmVzZXQgdGhlIGVudGlyZSBxdWV1ZS4gQWxsIG1lc3NhZ2VzIGluIHRoZSBxdWV1ZSB3aWxsIGJlIHB1cmdlZFxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCBjbGVhclVzZXJFdmVudEF0b206IGltcG9ydChcImpvdGFpXCIpLldyaXRhYmxlQXRvbTxudWxsLCBbXSwgdm9pZD4gJiB7XG4gICAgaW5pdDogbnVsbDtcbn07XG4vKipcbiAqIFRoaXMgYXRvbSBpcyB1c2VkIHRvIG1hcmsgZXZlbnRzIGFzIHByb2Nlc3NlZCBhbmQgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgcXVldWVcbiAqIEl0IGFjY2VwdHMgYSBsaXN0IG9mIGV2ZW50SWQgdmFsdWVzIGFuZCB3aWxsIHJlbW92ZSBhbGwgZXZlbnRzIHdpdGggdGhvc2UgZXZlbnRJZHMgZnJvbSB0aGUgcXVldWUuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHByb2Nlc3NVc2VyRXZlbnRBdG9tOiBpbXBvcnQoXCJqb3RhaVwiKS5Xcml0YWJsZUF0b208bnVsbCwgW2V2ZW50SWRzOiBzdHJpbmdbXV0sIHZvaWQ+ICYge1xuICAgIGluaXQ6IG51bGw7XG59O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlclF1ZXVlRXZlbnRDb3VudEF0b206IGltcG9ydChcImpvdGFpXCIpLkF0b208bnVtYmVyPjtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQUUscUJBQUE7Q0FBQTtPQUFBO09BQUEsUUFBQTtDQUFBO0FBQ0YsSUFBVyxxQkFBcUI7Q0FBQztPQUFXO09BQWlCLFFBQVE7Q0FBUTtBQUM3RSxJQUFXLHFCQUFxQixDQUFDLFdBQVcsUUFBUSxhQUFhO0FBQ2pFLElBQVcsdUJBQXVCLENBQUMsV0FBVyxRQUFRLGFBQWE7QUFDbkUsSUFBVywwQkFBTyxDQUFBLFdBQUEsUUFBQSxLQUFBIn0=
@@ -1,31 +1,31 @@
1
1
  import { UserEvent } from "../../application/models/api/userEvent.js";
2
- import * as jotai36 from "jotai";
2
+ import * as jotai45 from "jotai";
3
3
 
4
4
  //#region src/atoms/chat/messageQueue.d.ts
5
- declare const userEventQueueAtom: jotai36.Atom<UserEvent[]>;
5
+ declare const userEventQueueAtom: jotai45.Atom<UserEvent[]>;
6
6
  /**
7
7
  * This atom is used to queue a new message for processing on `next_responses`
8
8
  * It receives a single `userEvent` that is added to the processing queue.
9
9
  * If the event has the same eventId as an existing message in the queue the NEW
10
10
  * event is ignored
11
11
  */
12
- declare const queueUserEventAtom: jotai36.WritableAtom<null, [userEvent: UserEvent], void> & {
12
+ declare const queueUserEventAtom: jotai45.WritableAtom<null, [userEvent: UserEvent], void> & {
13
13
  init: null;
14
14
  };
15
15
  /**
16
16
  * This atom exposes a function to reset the entire queue. All messages in the queue will be purged
17
17
  */
18
- declare const clearUserEventAtom: jotai36.WritableAtom<null, [], void> & {
18
+ declare const clearUserEventAtom: jotai45.WritableAtom<null, [], void> & {
19
19
  init: null;
20
20
  };
21
21
  /**
22
22
  * This atom is used to mark events as processed and remove them from the queue
23
23
  * It accepts a list of eventId values and will remove all events with those eventIds from the queue.
24
24
  */
25
- declare const processUserEventAtom: jotai36.WritableAtom<null, [eventIds: string[]], void> & {
25
+ declare const processUserEventAtom: jotai45.WritableAtom<null, [eventIds: string[]], void> & {
26
26
  init: null;
27
27
  };
28
- declare const userQueueEventCountAtom: jotai36.Atom<number>;
28
+ declare const userQueueEventCountAtom: jotai45.Atom<number>;
29
29
  //#endregion
30
30
  export { clearUserEventAtom, processUserEventAtom, queueUserEventAtom, userEventQueueAtom, userQueueEventCountAtom };
31
31
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZVF1ZXVlLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F0b21zL2NoYXQvbWVzc2FnZVF1ZXVlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VyRXZlbnRRdWV1ZUF0b206IGltcG9ydChcImpvdGFpXCIpLkF0b208VXNlckV2ZW50W10+O1xuLyoqXG4gKiBUaGlzIGF0b20gaXMgdXNlZCB0byBxdWV1ZSBhIG5ldyBtZXNzYWdlIGZvciBwcm9jZXNzaW5nIG9uIGBuZXh0X3Jlc3BvbnNlc2BcbiAqIEl0IHJlY2VpdmVzIGEgc2luZ2xlIGB1c2VyRXZlbnRgIHRoYXQgaXMgYWRkZWQgdG8gdGhlIHByb2Nlc3NpbmcgcXVldWUuXG4gKiBJZiB0aGUgZXZlbnQgaGFzIHRoZSBzYW1lIGV2ZW50SWQgYXMgYW4gZXhpc3RpbmcgbWVzc2FnZSBpbiB0aGUgcXVldWUgdGhlIE5FV1xuICogZXZlbnQgaXMgaWdub3JlZFxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCBxdWV1ZVVzZXJFdmVudEF0b206IGltcG9ydChcImpvdGFpXCIpLldyaXRhYmxlQXRvbTxudWxsLCBbdXNlckV2ZW50OiBVc2VyRXZlbnRdLCB2b2lkPiAmIHtcbiAgICBpbml0OiBudWxsO1xufTtcbi8qKlxuICogVGhpcyBhdG9tIGV4cG9zZXMgYSBmdW5jdGlvbiB0byByZXNldCB0aGUgZW50aXJlIHF1ZXVlLiBBbGwgbWVzc2FnZXMgaW4gdGhlIHF1ZXVlIHdpbGwgYmUgcHVyZ2VkXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNsZWFyVXNlckV2ZW50QXRvbTogaW1wb3J0KFwiam90YWlcIikuV3JpdGFibGVBdG9tPG51bGwsIFtdLCB2b2lkPiAmIHtcbiAgICBpbml0OiBudWxsO1xufTtcbi8qKlxuICogVGhpcyBhdG9tIGlzIHVzZWQgdG8gbWFyayBldmVudHMgYXMgcHJvY2Vzc2VkIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZSBxdWV1ZVxuICogSXQgYWNjZXB0cyBhIGxpc3Qgb2YgZXZlbnRJZCB2YWx1ZXMgYW5kIHdpbGwgcmVtb3ZlIGFsbCBldmVudHMgd2l0aCB0aG9zZSBldmVudElkcyBmcm9tIHRoZSBxdWV1ZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgcHJvY2Vzc1VzZXJFdmVudEF0b206IGltcG9ydChcImpvdGFpXCIpLldyaXRhYmxlQXRvbTxudWxsLCBbZXZlbnRJZHM6IHN0cmluZ1tdXSwgdm9pZD4gJiB7XG4gICAgaW5pdDogbnVsbDtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VyUXVldWVFdmVudENvdW50QXRvbTogaW1wb3J0KFwiam90YWlcIikuQXRvbTxudW1iZXI+O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBRSxxQkFBQTtDQUFBO09BQUE7T0FBQSxRQUFBO0NBQUE7QUFDRixJQUFXLHFCQUFxQjtDQUFDO09BQVc7T0FBaUIsUUFBUTtDQUFRO0FBQzdFLElBQVcscUJBQXFCLENBQUMsV0FBVyxRQUFRLGFBQWE7QUFDakUsSUFBVyx1QkFBdUIsQ0FBQyxXQUFXLFFBQVEsYUFBYTtBQUNuRSxJQUFXLDBCQUFPLENBQUEsV0FBQSxRQUFBLEtBQUEifQ==
@@ -5,6 +5,7 @@ let jotai = require("jotai");
5
5
  let jotai_utils = require("jotai/utils");
6
6
 
7
7
  //#region src/atoms/chat/performanceMetrics.ts
8
+ const logger = new require_logger.default("performanceMetrics");
8
9
  const APP_INITIAL_START_TIME_KEY = "spiffy-app-initial-start-time";
9
10
  const PAGE_LOAD_OFFSET_TIME_KEY = "spiffy-page-load-offset-time";
10
11
  /**
@@ -51,7 +52,7 @@ const logPerfMetricAtom = (0, jotai.atom)(null, (get, set, value) => {
51
52
  const initialTimeStorageValue = get(appInitialStartTimeMsAtom);
52
53
  const initialTimeMs = initialTimeStorageValue ? parseInt(initialTimeStorageValue, 10) : void 0;
53
54
  if (initialTimeMs == null) {
54
- require_logger.default.logWarn(`[spiffy-ai] No initial app start time found. Skipping...`, void 0);
55
+ logger.logWarn(`No initial app start time found. Skipping...`, void 0);
55
56
  return;
56
57
  }
57
58
  const currentPerfMetrics = get(internalPerfMetricsAtom);
@@ -71,4 +72,4 @@ exports.logPerfMetricAtom = logPerfMetricAtom;
71
72
  exports.pageLoadOffsetTimeAtom = pageLoadOffsetTimeAtom;
72
73
  exports.performanceMetricsAtom = performanceMetricsAtom;
73
74
  exports.resetPerformanceMetricsAtom = resetPerformanceMetricsAtom;
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2VNZXRyaWNzLmNqcyIsIm5hbWVzIjpbInNlc3Npb25TdG9yYWdlVXRpbCIsImdldEF0b21TdG9yZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9jaGF0L3BlcmZvcm1hbmNlTWV0cmljcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXRvbVdpdGhTdG9yYWdlIH0gZnJvbSAnam90YWkvdXRpbHMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgZ2V0QXRvbVN0b3JlLCBzZXNzaW9uU3RvcmFnZVV0aWwgfSBmcm9tICdzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZSc7XG5cbmV4cG9ydCBjb25zdCBBUFBfSU5JVElBTF9TVEFSVF9USU1FX0tFWSA9ICdzcGlmZnktYXBwLWluaXRpYWwtc3RhcnQtdGltZSc7XG5leHBvcnQgY29uc3QgUEFHRV9MT0FEX09GRlNFVF9USU1FX0tFWSA9ICdzcGlmZnktcGFnZS1sb2FkLW9mZnNldC10aW1lJztcbi8qKlxuICogVGhlIGRpZmZlcmVudCBwZXJmb3JtYW5jZSBtZXRyaWNzIHRoYXQgY2FuIGJlIGxvZ2dlZC4gQWxsIHRpbWVzIGFyZSByZWxhdGl2ZSB0byB0aGVcbiAqIGluaXRpYWwgc3RhcnQgdGltZSBvZiB0aGUgYXBwIGFuZCBhcmUgc3RvcmVkIGluIG1pbGxpc2Vjb25kcy5cbiAqL1xuZXhwb3J0IGVudW0gUGVyZk1ldHJpY3NFdmVudHMge1xuICBQYWdlTG9hZE9mZnNldCA9ICdwYWdlX2xvYWRfb2Zmc2V0X21zJyxcbiAgTWFpbkJ1bmRsZUxvYWRlZCA9ICdtYWluX2J1bmRsZV9sb2FkZWRfbXMnLFxuICBPcmdDb25maWdMb2FkU3RhcnRlZCA9ICdvcmdfY29uZmlnX2xvYWRfc3RhcnRlZF9tcycsXG4gIE9yZ0NvbmZpZ0xvYWRFbmRlZCA9ICdvcmdfY29uZmlnX2xvYWRfZW5kZWRfbXMnLFxuICBGaXJzdFJlc3BvbnNlU3RhcnRlZCA9ICdmaXJzdF9yZXNwb25zZV9zdGFydGVkX21zJyxcbiAgRmlyc3RSZXNwb25zZUNvbXBsZXRlZCA9ICdmaXJzdF9yZXNwb25zZV9jb21wbGV0ZWRfbXMnLFxuICBGaXJzdFN1Z2dlc3Rpb25zU3RhcnRlZCA9ICdmaXJzdF9zdWdnZXN0aW9uc19zdGFydGVkX21zJyxcbiAgRmlyc3RTdWdnZXN0aW9uc0NvbXBsZXRlZCA9ICdmaXJzdF9zdWdnZXN0aW9uc19jb21wbGV0ZWRfbXMnLFxuICBFbWJlZGRlZFdpZGdldFJlbmRlcmVkID0gJ2VtYmVkZGVkX3dpZGdldF9yZW5kZXJlZF9tcycsXG4gIEZsb2F0aW5nQnV0dG9uUmVuZGVyZWQgPSAnZmxvYXRpbmdfYnV0dG9uX3JlbmRlcmVkX21zJyxcbiAgVG9wU3VnZ2VzdGlvbnNCYXJSZW5kZXJlZCA9ICd0b3Bfc3VnZ2VzdGlvbnNfYmFyX3JlbmRlcmVkX21zJyxcbiAgQm90dG9tU3VnZ2VzdGlvbnNCYXJSZW5kZXJlZCA9ICdib3R0b21fc3VnZ2VzdGlvbnNfYmFyX3JlbmRlcmVkX21zJyxcbiAgU2VhcmNoUHJvbXB0UmVuZGVyZWQgPSAnc2VhcmNoX3Byb21wdF9yZW5kZXJlZF9tcycsXG59XG5cbmNvbnN0IGludGVybmFsUGVyZk1ldHJpY3NBdG9tID0gYXRvbTxNYXA8UGVyZk1ldHJpY3NFdmVudHMsIG51bWJlcj4+KG5ldyBNYXAoKSk7XG5leHBvcnQgY29uc3QgYXBwSW5pdGlhbFN0YXJ0VGltZU1zQXRvbSA9IGF0b21XaXRoU3RvcmFnZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICBBUFBfSU5JVElBTF9TVEFSVF9USU1FX0tFWSxcbiAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShBUFBfSU5JVElBTF9TVEFSVF9USU1FX0tFWSkgPz8gdW5kZWZpbmVkLFxuICBzZXNzaW9uU3RvcmFnZVV0aWwsXG4gIHtcbiAgICBnZXRPbkluaXQ6IHRydWUsXG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgcGFnZUxvYWRPZmZzZXRUaW1lQXRvbSA9IGF0b21XaXRoU3RvcmFnZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICBQQUdFX0xPQURfT0ZGU0VUX1RJTUVfS0VZLFxuICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFBBR0VfTE9BRF9PRkZTRVRfVElNRV9LRVkpID8/IHVuZGVmaW5lZCxcbiAgc2Vzc2lvblN0b3JhZ2VVdGlsLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9LFxuKTtcblxuLyoqXG4gKiBSZXNldHMgdGhlIHBlcmZvcm1hbmNlIG1ldHJpY3MgYXRvbSB0byBhbiBlbXB0eSBtYXAuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciB0aGUgcGVyZm9ybWFuY2VcbiAqIG1ldHJpY3MgaGF2ZSBiZWVuIHJlcG9ydGVkIHRvIGFtcGxpdHVkZS4gT24gU1BBLCBpdCBlbnN1cmVzIHRoYXQgd2UgY2FuIHN0aWxsIGNhcHR1cmUgbWV0cmljcyBhc1xuICogdGhlIHVzZXIgbmF2aWdhdGVzIGFyb3VuZCB0aGUgYXBwIChhbHRob3VnaCB0aGVyZSBpcyBtb3JlIHdvcmsgdG8gYmUgZG9uZSB0byBmdWxseSBlbmFibGUgdGhpcykuXG4gKiBPbiBub24tU1BBLCBpdCBlbnN1cmVzIHRoYXQgcHJldmlvdXNseSBjYXB0dXJlZCBtZXRyaWNzIGFyZSBub3QgcmVwb3J0ZWQgYWdhaW4uXG4gKi9cbmV4cG9ydCBjb25zdCByZXNldFBlcmZvcm1hbmNlTWV0cmljc0F0b20gPSAoKSA9PiB7XG4gIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICBhdG9tU3RvcmUuc2V0KGludGVybmFsUGVyZk1ldHJpY3NBdG9tLCBuZXcgTWFwKCkpO1xufTtcbmV4cG9ydCBjb25zdCBwZXJmb3JtYW5jZU1ldHJpY3NBdG9tID0gYXRvbShnZXQgPT4gZ2V0KGludGVybmFsUGVyZk1ldHJpY3NBdG9tKSk7XG5leHBvcnQgY29uc3QgaGFzUmVwb3J0ZWRQZXJmb3JtYW5jZU1ldHJpY3NBdG9tID0gYXRvbTxib29sZWFuPihmYWxzZSk7XG5cbi8qKlxuICogTG9ncyBhIHBlcmZvcm1hbmNlIG1ldHJpYyBieSBjYXB0dXJpbmcgdGhlIGRlbHRhIGJldHdlZW4gdGhlIGluaXRpYWwgYXBwIHN0YXJ0IHRpbWVcbiAqIGFuZCB0aGUgY3VycmVudCB0aW1lLiBJZiB0aGUgbWV0cmljIGhhcyBhbHJlYWR5IGJlZW4gbG9nZ2VkLCBpdCB3aWxsIG5vdCBiZSBsb2dnZWQgYWdhaW4uXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBwZXJmb3JtYW5jZSBtZXRyaWMgbmFtZSB0byBsb2cuXG4gKi9cbmV4cG9ydCBjb25zdCBsb2dQZXJmTWV0cmljQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCB2YWx1ZTogUGVyZk1ldHJpY3NFdmVudHMpID0+IHtcbiAgY29uc3QgaW5pdGlhbFRpbWVTdG9yYWdlVmFsdWUgPSBnZXQoYXBwSW5pdGlhbFN0YXJ0VGltZU1zQXRvbSk7XG4gIGNvbnN0IGluaXRpYWxUaW1lTXMgPSBpbml0aWFsVGltZVN0b3JhZ2VWYWx1ZSA/IHBhcnNlSW50KGluaXRpYWxUaW1lU3RvcmFnZVZhbHVlLCAxMCkgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGluaXRpYWxUaW1lTXMgPT0gbnVsbCkge1xuICAgIExvZ2dlci5sb2dXYXJuKGBbc3BpZmZ5LWFpXSBObyBpbml0aWFsIGFwcCBzdGFydCB0aW1lIGZvdW5kLiBTa2lwcGluZy4uLmAsIHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFBlcmZNZXRyaWNzID0gZ2V0KGludGVybmFsUGVyZk1ldHJpY3NBdG9tKTtcbiAgaWYgKGN1cnJlbnRQZXJmTWV0cmljcy5oYXModmFsdWUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFRpbWVNcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGRlbHRhTXMgPSBjdXJyZW50VGltZU1zIC0gaW5pdGlhbFRpbWVNcztcbiAgY3VycmVudFBlcmZNZXRyaWNzLnNldCh2YWx1ZSwgZGVsdGFNcyk7XG4gIHNldChpbnRlcm5hbFBlcmZNZXRyaWNzQXRvbSwgY3VycmVudFBlcmZNZXRyaWNzKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0EsTUFBYSw2QkFBNkI7QUFDMUMsTUFBYSw0QkFBNEI7Ozs7O0FBS3pDLElBQVksa0VBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0YsTUFBTSwwREFBK0QsSUFBSSxLQUFLLENBQUM7QUFDL0UsTUFBYSw2REFDWCw0QkFDQSxlQUFlLFFBQVEsMkJBQTJCLElBQUksUUFDdERBLHNDQUNBLEVBQ0UsV0FBVyxNQUNaLENBQ0Y7QUFFRCxNQUFhLDBEQUNYLDJCQUNBLGVBQWUsUUFBUSwwQkFBMEIsSUFBSSxRQUNyREEsc0NBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjs7Ozs7OztBQVFELE1BQWEsb0NBQW9DO0FBRS9DLENBRGtCQyxnQ0FBYyxDQUN0QixJQUFJLHlDQUF5QixJQUFJLEtBQUssQ0FBQzs7QUFFbkQsTUFBYSwwQ0FBOEIsUUFBTyxJQUFJLHdCQUF3QixDQUFDO0FBQy9FLE1BQWEsb0RBQWtELE1BQU07Ozs7Ozs7QUFRckUsTUFBYSxvQ0FBeUIsT0FBTyxLQUFLLEtBQUssVUFBNkI7Q0FDbEYsTUFBTSwwQkFBMEIsSUFBSSwwQkFBMEI7Q0FDOUQsTUFBTSxnQkFBZ0IsMEJBQTBCLFNBQVMseUJBQXlCLEdBQUcsR0FBRztBQUV4RixLQUFJLGlCQUFpQixNQUFNO0FBQ3pCLHlCQUFPLFFBQVEsNERBQTRELE9BQVU7QUFDckY7O0NBR0YsTUFBTSxxQkFBcUIsSUFBSSx3QkFBd0I7QUFDdkQsS0FBSSxtQkFBbUIsSUFBSSxNQUFNLENBQy9CO0NBSUYsTUFBTSxVQURnQixLQUFLLEtBQUssR0FDQTtBQUNoQyxvQkFBbUIsSUFBSSxPQUFPLFFBQVE7QUFDdEMsS0FBSSx5QkFBeUIsbUJBQW1CO0VBQ2hEIn0=
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2VNZXRyaWNzLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsInNlc3Npb25TdG9yYWdlVXRpbCIsImdldEF0b21TdG9yZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdG9tcy9jaGF0L3BlcmZvcm1hbmNlTWV0cmljcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgYXRvbVdpdGhTdG9yYWdlIH0gZnJvbSAnam90YWkvdXRpbHMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgZ2V0QXRvbVN0b3JlLCBzZXNzaW9uU3RvcmFnZVV0aWwgfSBmcm9tICdzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ3BlcmZvcm1hbmNlTWV0cmljcycpO1xuXG5leHBvcnQgY29uc3QgQVBQX0lOSVRJQUxfU1RBUlRfVElNRV9LRVkgPSAnc3BpZmZ5LWFwcC1pbml0aWFsLXN0YXJ0LXRpbWUnO1xuZXhwb3J0IGNvbnN0IFBBR0VfTE9BRF9PRkZTRVRfVElNRV9LRVkgPSAnc3BpZmZ5LXBhZ2UtbG9hZC1vZmZzZXQtdGltZSc7XG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgcGVyZm9ybWFuY2UgbWV0cmljcyB0aGF0IGNhbiBiZSBsb2dnZWQuIEFsbCB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhlXG4gKiBpbml0aWFsIHN0YXJ0IHRpbWUgb2YgdGhlIGFwcCBhbmQgYXJlIHN0b3JlZCBpbiBtaWxsaXNlY29uZHMuXG4gKi9cbmV4cG9ydCBlbnVtIFBlcmZNZXRyaWNzRXZlbnRzIHtcbiAgUGFnZUxvYWRPZmZzZXQgPSAncGFnZV9sb2FkX29mZnNldF9tcycsXG4gIE1haW5CdW5kbGVMb2FkZWQgPSAnbWFpbl9idW5kbGVfbG9hZGVkX21zJyxcbiAgT3JnQ29uZmlnTG9hZFN0YXJ0ZWQgPSAnb3JnX2NvbmZpZ19sb2FkX3N0YXJ0ZWRfbXMnLFxuICBPcmdDb25maWdMb2FkRW5kZWQgPSAnb3JnX2NvbmZpZ19sb2FkX2VuZGVkX21zJyxcbiAgRmlyc3RSZXNwb25zZVN0YXJ0ZWQgPSAnZmlyc3RfcmVzcG9uc2Vfc3RhcnRlZF9tcycsXG4gIEZpcnN0UmVzcG9uc2VDb21wbGV0ZWQgPSAnZmlyc3RfcmVzcG9uc2VfY29tcGxldGVkX21zJyxcbiAgRmlyc3RTdWdnZXN0aW9uc1N0YXJ0ZWQgPSAnZmlyc3Rfc3VnZ2VzdGlvbnNfc3RhcnRlZF9tcycsXG4gIEZpcnN0U3VnZ2VzdGlvbnNDb21wbGV0ZWQgPSAnZmlyc3Rfc3VnZ2VzdGlvbnNfY29tcGxldGVkX21zJyxcbiAgRW1iZWRkZWRXaWRnZXRSZW5kZXJlZCA9ICdlbWJlZGRlZF93aWRnZXRfcmVuZGVyZWRfbXMnLFxuICBGbG9hdGluZ0J1dHRvblJlbmRlcmVkID0gJ2Zsb2F0aW5nX2J1dHRvbl9yZW5kZXJlZF9tcycsXG4gIFRvcFN1Z2dlc3Rpb25zQmFyUmVuZGVyZWQgPSAndG9wX3N1Z2dlc3Rpb25zX2Jhcl9yZW5kZXJlZF9tcycsXG4gIEJvdHRvbVN1Z2dlc3Rpb25zQmFyUmVuZGVyZWQgPSAnYm90dG9tX3N1Z2dlc3Rpb25zX2Jhcl9yZW5kZXJlZF9tcycsXG4gIFNlYXJjaFByb21wdFJlbmRlcmVkID0gJ3NlYXJjaF9wcm9tcHRfcmVuZGVyZWRfbXMnLFxufVxuXG5jb25zdCBpbnRlcm5hbFBlcmZNZXRyaWNzQXRvbSA9IGF0b208TWFwPFBlcmZNZXRyaWNzRXZlbnRzLCBudW1iZXI+PihuZXcgTWFwKCkpO1xuZXhwb3J0IGNvbnN0IGFwcEluaXRpYWxTdGFydFRpbWVNc0F0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgQVBQX0lOSVRJQUxfU1RBUlRfVElNRV9LRVksXG4gIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oQVBQX0lOSVRJQUxfU1RBUlRfVElNRV9LRVkpID8/IHVuZGVmaW5lZCxcbiAgc2Vzc2lvblN0b3JhZ2VVdGlsLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IHBhZ2VMb2FkT2Zmc2V0VGltZUF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgUEFHRV9MT0FEX09GRlNFVF9USU1FX0tFWSxcbiAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShQQUdFX0xPQURfT0ZGU0VUX1RJTUVfS0VZKSA/PyB1bmRlZmluZWQsXG4gIHNlc3Npb25TdG9yYWdlVXRpbCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfSxcbik7XG5cbi8qKlxuICogUmVzZXRzIHRoZSBwZXJmb3JtYW5jZSBtZXRyaWNzIGF0b20gdG8gYW4gZW1wdHkgbWFwLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIHBlcmZvcm1hbmNlXG4gKiBtZXRyaWNzIGhhdmUgYmVlbiByZXBvcnRlZCB0byBhbXBsaXR1ZGUuIE9uIFNQQSwgaXQgZW5zdXJlcyB0aGF0IHdlIGNhbiBzdGlsbCBjYXB0dXJlIG1ldHJpY3MgYXNcbiAqIHRoZSB1c2VyIG5hdmlnYXRlcyBhcm91bmQgdGhlIGFwcCAoYWx0aG91Z2ggdGhlcmUgaXMgbW9yZSB3b3JrIHRvIGJlIGRvbmUgdG8gZnVsbHkgZW5hYmxlIHRoaXMpLlxuICogT24gbm9uLVNQQSwgaXQgZW5zdXJlcyB0aGF0IHByZXZpb3VzbHkgY2FwdHVyZWQgbWV0cmljcyBhcmUgbm90IHJlcG9ydGVkIGFnYWluLlxuICovXG5leHBvcnQgY29uc3QgcmVzZXRQZXJmb3JtYW5jZU1ldHJpY3NBdG9tID0gKCkgPT4ge1xuICBjb25zdCBhdG9tU3RvcmUgPSBnZXRBdG9tU3RvcmUoKTtcbiAgYXRvbVN0b3JlLnNldChpbnRlcm5hbFBlcmZNZXRyaWNzQXRvbSwgbmV3IE1hcCgpKTtcbn07XG5leHBvcnQgY29uc3QgcGVyZm9ybWFuY2VNZXRyaWNzQXRvbSA9IGF0b20oZ2V0ID0+IGdldChpbnRlcm5hbFBlcmZNZXRyaWNzQXRvbSkpO1xuZXhwb3J0IGNvbnN0IGhhc1JlcG9ydGVkUGVyZm9ybWFuY2VNZXRyaWNzQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuXG4vKipcbiAqIExvZ3MgYSBwZXJmb3JtYW5jZSBtZXRyaWMgYnkgY2FwdHVyaW5nIHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBpbml0aWFsIGFwcCBzdGFydCB0aW1lXG4gKiBhbmQgdGhlIGN1cnJlbnQgdGltZS4gSWYgdGhlIG1ldHJpYyBoYXMgYWxyZWFkeSBiZWVuIGxvZ2dlZCwgaXQgd2lsbCBub3QgYmUgbG9nZ2VkIGFnYWluLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgcGVyZm9ybWFuY2UgbWV0cmljIG5hbWUgdG8gbG9nLlxuICovXG5leHBvcnQgY29uc3QgbG9nUGVyZk1ldHJpY0F0b20gPSBhdG9tKG51bGwsIChnZXQsIHNldCwgdmFsdWU6IFBlcmZNZXRyaWNzRXZlbnRzKSA9PiB7XG4gIGNvbnN0IGluaXRpYWxUaW1lU3RvcmFnZVZhbHVlID0gZ2V0KGFwcEluaXRpYWxTdGFydFRpbWVNc0F0b20pO1xuICBjb25zdCBpbml0aWFsVGltZU1zID0gaW5pdGlhbFRpbWVTdG9yYWdlVmFsdWUgPyBwYXJzZUludChpbml0aWFsVGltZVN0b3JhZ2VWYWx1ZSwgMTApIDogdW5kZWZpbmVkO1xuXG4gIGlmIChpbml0aWFsVGltZU1zID09IG51bGwpIHtcbiAgICBsb2dnZXIubG9nV2FybihgTm8gaW5pdGlhbCBhcHAgc3RhcnQgdGltZSBmb3VuZC4gU2tpcHBpbmcuLi5gLCB1bmRlZmluZWQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRQZXJmTWV0cmljcyA9IGdldChpbnRlcm5hbFBlcmZNZXRyaWNzQXRvbSk7XG4gIGlmIChjdXJyZW50UGVyZk1ldHJpY3MuaGFzKHZhbHVlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRUaW1lTXMgPSBEYXRlLm5vdygpO1xuICBjb25zdCBkZWx0YU1zID0gY3VycmVudFRpbWVNcyAtIGluaXRpYWxUaW1lTXM7XG4gIGN1cnJlbnRQZXJmTWV0cmljcy5zZXQodmFsdWUsIGRlbHRhTXMpO1xuICBzZXQoaW50ZXJuYWxQZXJmTWV0cmljc0F0b20sIGN1cnJlbnRQZXJmTWV0cmljcyk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxxQkFBcUI7QUFFL0MsTUFBYSw2QkFBNkI7QUFDMUMsTUFBYSw0QkFBNEI7Ozs7O0FBS3pDLElBQVksa0VBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0YsTUFBTSwwREFBK0QsSUFBSSxLQUFLLENBQUM7QUFDL0UsTUFBYSw2REFDWCw0QkFDQSxlQUFlLFFBQVEsMkJBQTJCLElBQUksUUFDdERDLHNDQUNBLEVBQ0UsV0FBVyxNQUNaLENBQ0Y7QUFFRCxNQUFhLDBEQUNYLDJCQUNBLGVBQWUsUUFBUSwwQkFBMEIsSUFBSSxRQUNyREEsc0NBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjs7Ozs7OztBQVFELE1BQWEsb0NBQW9DO0FBRS9DLENBRGtCQyxnQ0FBYyxDQUN0QixJQUFJLHlDQUF5QixJQUFJLEtBQUssQ0FBQzs7QUFFbkQsTUFBYSwwQ0FBOEIsUUFBTyxJQUFJLHdCQUF3QixDQUFDO0FBQy9FLE1BQWEsb0RBQWtELE1BQU07Ozs7Ozs7QUFRckUsTUFBYSxvQ0FBeUIsT0FBTyxLQUFLLEtBQUssVUFBNkI7Q0FDbEYsTUFBTSwwQkFBMEIsSUFBSSwwQkFBMEI7Q0FDOUQsTUFBTSxnQkFBZ0IsMEJBQTBCLFNBQVMseUJBQXlCLEdBQUcsR0FBRztBQUV4RixLQUFJLGlCQUFpQixNQUFNO0FBQ3pCLFNBQU8sUUFBUSxnREFBZ0QsT0FBVTtBQUN6RTs7Q0FHRixNQUFNLHFCQUFxQixJQUFJLHdCQUF3QjtBQUN2RCxLQUFJLG1CQUFtQixJQUFJLE1BQU0sQ0FDL0I7Q0FJRixNQUFNLFVBRGdCLEtBQUssS0FBSyxHQUNBO0FBQ2hDLG9CQUFtQixJQUFJLE9BQU8sUUFBUTtBQUN0QyxLQUFJLHlCQUF5QixtQkFBbUI7RUFDaEQifQ==
@@ -1,4 +1,4 @@
1
- import * as jotai34 from "jotai";
1
+ import * as jotai37 from "jotai";
2
2
  import * as jotai_utils1 from "jotai/utils";
3
3
 
4
4
  //#region src/atoms/chat/performanceMetrics.d.ts
@@ -23,8 +23,8 @@ declare enum PerfMetricsEvents {
23
23
  BottomSuggestionsBarRendered = "bottom_suggestions_bar_rendered_ms",
24
24
  SearchPromptRendered = "search_prompt_rendered_ms",
25
25
  }
26
- declare const appInitialStartTimeMsAtom: jotai34.WritableAtom<string | undefined, [string | typeof jotai_utils1.RESET | ((prev: string | undefined) => string | typeof jotai_utils1.RESET | undefined) | undefined], void>;
27
- declare const pageLoadOffsetTimeAtom: jotai34.WritableAtom<string | undefined, [string | typeof jotai_utils1.RESET | ((prev: string | undefined) => string | typeof jotai_utils1.RESET | undefined) | undefined], void>;
26
+ declare const appInitialStartTimeMsAtom: jotai37.WritableAtom<string | undefined, [string | typeof jotai_utils1.RESET | ((prev: string | undefined) => string | typeof jotai_utils1.RESET | undefined) | undefined], void>;
27
+ declare const pageLoadOffsetTimeAtom: jotai37.WritableAtom<string | undefined, [string | typeof jotai_utils1.RESET | ((prev: string | undefined) => string | typeof jotai_utils1.RESET | undefined) | undefined], void>;
28
28
  /**
29
29
  * Resets the performance metrics atom to an empty map. This should be called after the performance
30
30
  * metrics have been reported to amplitude. On SPA, it ensures that we can still capture metrics as
@@ -32,8 +32,8 @@ declare const pageLoadOffsetTimeAtom: jotai34.WritableAtom<string | undefined, [
32
32
  * On non-SPA, it ensures that previously captured metrics are not reported again.
33
33
  */
34
34
  declare const resetPerformanceMetricsAtom: () => void;
35
- declare const performanceMetricsAtom: jotai34.Atom<Map<PerfMetricsEvents, number>>;
36
- declare const hasReportedPerformanceMetricsAtom: jotai34.PrimitiveAtom<boolean> & {
35
+ declare const performanceMetricsAtom: jotai37.Atom<Map<PerfMetricsEvents, number>>;
36
+ declare const hasReportedPerformanceMetricsAtom: jotai37.PrimitiveAtom<boolean> & {
37
37
  init: boolean;
38
38
  };
39
39
  /**
@@ -42,7 +42,7 @@ declare const hasReportedPerformanceMetricsAtom: jotai34.PrimitiveAtom<boolean>
42
42
  *
43
43
  * @param value The performance metric name to log.
44
44
  */
45
- declare const logPerfMetricAtom: jotai34.WritableAtom<null, [value: PerfMetricsEvents], void> & {
45
+ declare const logPerfMetricAtom: jotai37.WritableAtom<null, [value: PerfMetricsEvents], void> & {
46
46
  init: null;
47
47
  };
48
48
  //#endregion