@workflow/web-shared 5.0.0-beta.1 → 5.0.0-beta.11

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 (298) hide show
  1. package/README.md +1 -1
  2. package/dist/components/error-boundary.js +1 -1
  3. package/dist/components/event-list-view.d.ts +18 -1
  4. package/dist/components/event-list-view.d.ts.map +1 -1
  5. package/dist/components/event-list-view.js +219 -125
  6. package/dist/components/hook-actions.js +1 -1
  7. package/dist/components/index.d.ts +5 -1
  8. package/dist/components/index.d.ts.map +1 -1
  9. package/dist/components/index.js +6 -2
  10. package/dist/components/new-trace-viewer/components/copy-button.d.ts +9 -0
  11. package/dist/components/new-trace-viewer/components/copy-button.d.ts.map +1 -0
  12. package/dist/components/new-trace-viewer/components/copy-button.js +27 -0
  13. package/dist/components/new-trace-viewer/components/event-list.d.ts +10 -0
  14. package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -0
  15. package/dist/components/new-trace-viewer/components/event-list.js +44 -0
  16. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts +18 -0
  17. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.d.ts.map +1 -0
  18. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js +54 -0
  19. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts +20 -0
  20. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.d.ts.map +1 -0
  21. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js +81 -0
  22. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts +25 -0
  23. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts.map +1 -0
  24. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +101 -0
  25. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts +20 -0
  26. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.d.ts.map +1 -0
  27. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js +114 -0
  28. package/dist/components/new-trace-viewer/components/split-pane.d.ts +15 -0
  29. package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +1 -0
  30. package/dist/components/new-trace-viewer/components/split-pane.js +105 -0
  31. package/dist/components/new-trace-viewer/components/timeline.d.ts +34 -0
  32. package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -0
  33. package/dist/components/new-trace-viewer/components/timeline.js +221 -0
  34. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts +2 -0
  35. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -0
  36. package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.js +19 -0
  37. package/dist/components/new-trace-viewer/components/use-row-window.d.ts +20 -0
  38. package/dist/components/new-trace-viewer/components/use-row-window.d.ts.map +1 -0
  39. package/dist/components/new-trace-viewer/components/use-row-window.js +69 -0
  40. package/dist/components/new-trace-viewer/context.d.ts +15 -0
  41. package/dist/components/new-trace-viewer/context.d.ts.map +1 -0
  42. package/dist/components/new-trace-viewer/context.js +47 -0
  43. package/dist/components/new-trace-viewer/detail-panel.d.ts +10 -0
  44. package/dist/components/new-trace-viewer/detail-panel.d.ts.map +1 -0
  45. package/dist/components/new-trace-viewer/detail-panel.js +13 -0
  46. package/dist/components/new-trace-viewer/icons.d.ts +6 -0
  47. package/dist/components/new-trace-viewer/icons.d.ts.map +1 -0
  48. package/dist/components/new-trace-viewer/icons.js +15 -0
  49. package/dist/components/new-trace-viewer/search.d.ts +19 -0
  50. package/dist/components/new-trace-viewer/search.d.ts.map +1 -0
  51. package/dist/components/new-trace-viewer/search.js +134 -0
  52. package/dist/components/new-trace-viewer/trace-viewer.d.ts +11 -0
  53. package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -0
  54. package/dist/components/new-trace-viewer/trace-viewer.js +400 -0
  55. package/dist/components/new-trace-viewer/types.d.ts +1 -0
  56. package/dist/components/new-trace-viewer/types.d.ts.map +1 -0
  57. package/dist/components/new-trace-viewer/types.js +2 -0
  58. package/dist/components/new-trace-viewer/util/constants.d.ts +1 -0
  59. package/dist/components/new-trace-viewer/util/constants.d.ts.map +1 -0
  60. package/dist/components/new-trace-viewer/util/constants.js +2 -0
  61. package/dist/components/new-trace-viewer/utils.d.ts +46 -0
  62. package/dist/components/new-trace-viewer/utils.d.ts.map +1 -0
  63. package/dist/components/new-trace-viewer/utils.js +330 -0
  64. package/dist/components/run-trace-view.d.ts +2 -1
  65. package/dist/components/run-trace-view.d.ts.map +1 -1
  66. package/dist/components/run-trace-view.js +3 -3
  67. package/dist/components/sidebar/attribute-panel.d.ts +7 -1
  68. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  69. package/dist/components/sidebar/attribute-panel.js +131 -70
  70. package/dist/components/sidebar/conversation-view.js +1 -1
  71. package/dist/components/sidebar/copyable-data-block.d.ts +1 -0
  72. package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
  73. package/dist/components/sidebar/copyable-data-block.js +16 -15
  74. package/dist/components/sidebar/detail-card.d.ts +5 -6
  75. package/dist/components/sidebar/detail-card.d.ts.map +1 -1
  76. package/dist/components/sidebar/detail-card.js +32 -16
  77. package/dist/components/sidebar/entity-detail-panel.d.ts +3 -1
  78. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  79. package/dist/components/sidebar/entity-detail-panel.js +20 -37
  80. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  81. package/dist/components/sidebar/events-list.js +21 -15
  82. package/dist/components/sidebar/resolve-hook-modal.js +1 -1
  83. package/dist/components/sidebar/sidebar-data-context.d.ts +29 -0
  84. package/dist/components/sidebar/sidebar-data-context.d.ts.map +1 -0
  85. package/dist/components/sidebar/sidebar-data-context.js +19 -0
  86. package/dist/components/stream-viewer.d.ts +1 -1
  87. package/dist/components/stream-viewer.d.ts.map +1 -1
  88. package/dist/components/stream-viewer.js +3 -27
  89. package/dist/components/trace-viewer/components/map.js +1 -1
  90. package/dist/components/trace-viewer/components/markers.js +1 -1
  91. package/dist/components/trace-viewer/components/node.js +1 -1
  92. package/dist/components/trace-viewer/components/search-input.js +1 -1
  93. package/dist/components/trace-viewer/components/search.js +1 -1
  94. package/dist/components/trace-viewer/components/span-content.js +1 -1
  95. package/dist/components/trace-viewer/components/span-detail-panel.js +1 -1
  96. package/dist/components/trace-viewer/components/span-segments.js +1 -1
  97. package/dist/components/trace-viewer/components/span-strategies.js +1 -1
  98. package/dist/components/trace-viewer/components/ui.js +1 -1
  99. package/dist/components/trace-viewer/components/zoom-button.js +1 -1
  100. package/dist/components/trace-viewer/components/zoom-icons.js +1 -1
  101. package/dist/components/trace-viewer/context.js +1 -1
  102. package/dist/components/trace-viewer/index.js +1 -1
  103. package/dist/components/trace-viewer/trace-viewer.js +1 -1
  104. package/dist/components/trace-viewer/types.js +1 -1
  105. package/dist/components/trace-viewer/util/constants.js +1 -1
  106. package/dist/components/trace-viewer/util/scrollbar-width.js +1 -1
  107. package/dist/components/trace-viewer/util/timing.d.ts +1 -1
  108. package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
  109. package/dist/components/trace-viewer/util/timing.js +6 -9
  110. package/dist/components/trace-viewer/util/tree.js +1 -1
  111. package/dist/components/trace-viewer/util/use-immediate-style.js +1 -1
  112. package/dist/components/trace-viewer/util/use-streaming-spans.js +1 -1
  113. package/dist/components/trace-viewer/util/use-trackpad-zoom.js +1 -1
  114. package/dist/components/trace-viewer/worker.js +1 -1
  115. package/dist/components/trace-viewer-new.d.ts +14 -0
  116. package/dist/components/trace-viewer-new.d.ts.map +1 -0
  117. package/dist/components/trace-viewer-new.js +22 -0
  118. package/dist/components/ui/alert.js +1 -1
  119. package/dist/components/ui/button.d.ts +10 -0
  120. package/dist/components/ui/button.d.ts.map +1 -0
  121. package/dist/components/ui/button.js +46 -0
  122. package/dist/components/ui/card.js +1 -1
  123. package/dist/components/ui/data-inspector.d.ts +39 -1
  124. package/dist/components/ui/data-inspector.d.ts.map +1 -1
  125. package/dist/components/ui/data-inspector.js +207 -22
  126. package/dist/components/ui/decrypt-button.js +1 -1
  127. package/dist/components/ui/error-card.js +1 -1
  128. package/dist/components/ui/error-stack-block.d.ts.map +1 -1
  129. package/dist/components/ui/error-stack-block.js +27 -19
  130. package/dist/components/ui/icon-button.d.ts +19 -0
  131. package/dist/components/ui/icon-button.d.ts.map +1 -0
  132. package/dist/components/ui/icon-button.js +29 -0
  133. package/dist/components/ui/inspector-theme.d.ts +9 -10
  134. package/dist/components/ui/inspector-theme.d.ts.map +1 -1
  135. package/dist/components/ui/inspector-theme.js +39 -72
  136. package/dist/components/ui/kbd.d.ts +6 -0
  137. package/dist/components/ui/kbd.d.ts.map +1 -0
  138. package/dist/components/ui/kbd.js +6 -0
  139. package/dist/components/ui/load-more-button.js +1 -1
  140. package/dist/components/ui/menu-dropdown.js +1 -1
  141. package/dist/components/ui/skeleton.js +1 -1
  142. package/dist/components/ui/spinner.js +1 -1
  143. package/dist/components/ui/timestamp-tooltip.js +1 -1
  144. package/dist/components/ui/tooltip.d.ts +10 -0
  145. package/dist/components/ui/tooltip.d.ts.map +1 -0
  146. package/dist/components/ui/tooltip.js +12 -0
  147. package/dist/components/workflow-trace-view.d.ts +3 -1
  148. package/dist/components/workflow-trace-view.d.ts.map +1 -1
  149. package/dist/components/workflow-trace-view.js +10 -5
  150. package/dist/components/workflow-traces/event-colors.js +1 -1
  151. package/dist/components/workflow-traces/trace-colors.js +1 -1
  152. package/dist/components/workflow-traces/trace-span-construction.d.ts +2 -2
  153. package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
  154. package/dist/components/workflow-traces/trace-span-construction.js +19 -6
  155. package/dist/components/workflow-traces/trace-time-utils.js +1 -1
  156. package/dist/hooks/use-dark-mode.js +1 -1
  157. package/dist/hooks/use-intersection-observer.d.ts +17 -0
  158. package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
  159. package/dist/hooks/use-intersection-observer.js +29 -0
  160. package/dist/hooks/use-load-more-on-scroll.d.ts +21 -0
  161. package/dist/hooks/use-load-more-on-scroll.d.ts.map +1 -0
  162. package/dist/hooks/use-load-more-on-scroll.js +28 -0
  163. package/dist/hooks/use-reduced-motion.d.ts +10 -0
  164. package/dist/hooks/use-reduced-motion.d.ts.map +1 -0
  165. package/dist/hooks/use-reduced-motion.js +29 -0
  166. package/dist/index.d.ts +3 -1
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +3 -2
  169. package/dist/lib/event-analysis.js +1 -1
  170. package/dist/lib/event-materialization.js +1 -1
  171. package/dist/lib/exact-event-search-id.d.ts +25 -0
  172. package/dist/lib/exact-event-search-id.d.ts.map +1 -0
  173. package/dist/lib/exact-event-search-id.js +39 -0
  174. package/dist/lib/hydration.d.ts +14 -1
  175. package/dist/lib/hydration.d.ts.map +1 -1
  176. package/dist/lib/hydration.js +157 -4
  177. package/dist/lib/stream-display.d.ts +18 -0
  178. package/dist/lib/stream-display.d.ts.map +1 -0
  179. package/dist/lib/stream-display.js +30 -0
  180. package/dist/lib/toast.js +1 -1
  181. package/dist/lib/trace-builder.d.ts.map +1 -1
  182. package/dist/lib/trace-builder.js +3 -2
  183. package/dist/lib/utils.d.ts +9 -9
  184. package/dist/lib/utils.d.ts.map +1 -1
  185. package/dist/lib/utils.js +27 -32
  186. package/dist/styles.css +475 -1
  187. package/package.json +6 -4
  188. package/src/components/event-list-view.tsx +421 -262
  189. package/src/components/index.ts +13 -1
  190. package/src/components/new-trace-viewer/components/copy-button.tsx +68 -0
  191. package/src/components/new-trace-viewer/components/event-list.tsx +135 -0
  192. package/src/components/new-trace-viewer/components/middle-truncate/copy-selection.ts +114 -0
  193. package/src/components/new-trace-viewer/components/middle-truncate/middle-truncate.tsx +157 -0
  194. package/src/components/new-trace-viewer/components/middle-truncate/truncate.ts +132 -0
  195. package/src/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.ts +167 -0
  196. package/src/components/new-trace-viewer/components/split-pane.tsx +198 -0
  197. package/src/components/new-trace-viewer/components/timeline.tsx +560 -0
  198. package/src/components/new-trace-viewer/components/trace-viewer-skeleton.tsx +94 -0
  199. package/src/components/new-trace-viewer/components/use-row-window.ts +93 -0
  200. package/src/components/new-trace-viewer/context.tsx +90 -0
  201. package/src/components/new-trace-viewer/detail-panel.tsx +55 -0
  202. package/src/components/new-trace-viewer/icons.tsx +79 -0
  203. package/src/components/new-trace-viewer/search.ts +178 -0
  204. package/src/components/new-trace-viewer/trace-viewer.tsx +762 -0
  205. package/src/components/new-trace-viewer/types.ts +0 -0
  206. package/src/components/new-trace-viewer/util/constants.ts +0 -0
  207. package/src/components/new-trace-viewer/utils.ts +482 -0
  208. package/src/components/run-trace-view.tsx +3 -0
  209. package/src/components/sidebar/attribute-panel.tsx +240 -196
  210. package/src/components/sidebar/copyable-data-block.tsx +49 -27
  211. package/src/components/sidebar/detail-card.tsx +119 -59
  212. package/src/components/sidebar/entity-detail-panel.tsx +92 -148
  213. package/src/components/sidebar/events-list.tsx +51 -76
  214. package/src/components/sidebar/sidebar-data-context.tsx +62 -0
  215. package/src/components/stream-viewer.tsx +18 -40
  216. package/src/components/trace-viewer/util/timing.ts +5 -9
  217. package/src/components/trace-viewer-new.tsx +57 -0
  218. package/src/components/ui/button.tsx +68 -0
  219. package/src/components/ui/data-inspector.tsx +427 -31
  220. package/src/components/ui/error-stack-block.tsx +39 -30
  221. package/src/components/ui/icon-button.tsx +53 -0
  222. package/src/components/ui/inspector-theme.ts +39 -81
  223. package/src/components/ui/kbd.tsx +21 -0
  224. package/src/components/ui/tooltip.tsx +47 -0
  225. package/src/components/workflow-trace-view.tsx +12 -2
  226. package/src/components/workflow-traces/trace-span-construction.ts +24 -6
  227. package/src/hooks/use-intersection-observer.ts +57 -0
  228. package/src/hooks/use-load-more-on-scroll.ts +49 -0
  229. package/src/hooks/use-reduced-motion.ts +34 -0
  230. package/src/index.ts +9 -0
  231. package/src/lib/exact-event-search-id.ts +67 -0
  232. package/src/lib/hydration.ts +169 -1
  233. package/src/lib/stream-display.ts +48 -0
  234. package/src/lib/trace-builder.ts +2 -1
  235. package/src/lib/utils.ts +27 -32
  236. package/src/styles.css +475 -1
  237. package/dist/components/error-boundary.js.map +0 -1
  238. package/dist/components/event-list-view.js.map +0 -1
  239. package/dist/components/hook-actions.js.map +0 -1
  240. package/dist/components/index.js.map +0 -1
  241. package/dist/components/run-trace-view.js.map +0 -1
  242. package/dist/components/sidebar/attribute-panel.js.map +0 -1
  243. package/dist/components/sidebar/conversation-view.js.map +0 -1
  244. package/dist/components/sidebar/copyable-data-block.js.map +0 -1
  245. package/dist/components/sidebar/detail-card.js.map +0 -1
  246. package/dist/components/sidebar/entity-detail-panel.js.map +0 -1
  247. package/dist/components/sidebar/events-list.js.map +0 -1
  248. package/dist/components/sidebar/resolve-hook-modal.js.map +0 -1
  249. package/dist/components/stream-viewer.js.map +0 -1
  250. package/dist/components/trace-viewer/components/map.js.map +0 -1
  251. package/dist/components/trace-viewer/components/markers.js.map +0 -1
  252. package/dist/components/trace-viewer/components/node.js.map +0 -1
  253. package/dist/components/trace-viewer/components/search-input.js.map +0 -1
  254. package/dist/components/trace-viewer/components/search.js.map +0 -1
  255. package/dist/components/trace-viewer/components/span-content.js.map +0 -1
  256. package/dist/components/trace-viewer/components/span-detail-panel.js.map +0 -1
  257. package/dist/components/trace-viewer/components/span-segments.js.map +0 -1
  258. package/dist/components/trace-viewer/components/span-strategies.js.map +0 -1
  259. package/dist/components/trace-viewer/components/ui.js.map +0 -1
  260. package/dist/components/trace-viewer/components/zoom-button.js.map +0 -1
  261. package/dist/components/trace-viewer/components/zoom-icons.js.map +0 -1
  262. package/dist/components/trace-viewer/context.js.map +0 -1
  263. package/dist/components/trace-viewer/index.js.map +0 -1
  264. package/dist/components/trace-viewer/trace-viewer.js.map +0 -1
  265. package/dist/components/trace-viewer/types.js.map +0 -1
  266. package/dist/components/trace-viewer/util/constants.js.map +0 -1
  267. package/dist/components/trace-viewer/util/scrollbar-width.js.map +0 -1
  268. package/dist/components/trace-viewer/util/timing.js.map +0 -1
  269. package/dist/components/trace-viewer/util/tree.js.map +0 -1
  270. package/dist/components/trace-viewer/util/use-immediate-style.js.map +0 -1
  271. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +0 -1
  272. package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +0 -1
  273. package/dist/components/trace-viewer/worker.js.map +0 -1
  274. package/dist/components/ui/alert.js.map +0 -1
  275. package/dist/components/ui/card.js.map +0 -1
  276. package/dist/components/ui/data-inspector.js.map +0 -1
  277. package/dist/components/ui/decrypt-button.js.map +0 -1
  278. package/dist/components/ui/error-card.js.map +0 -1
  279. package/dist/components/ui/error-stack-block.js.map +0 -1
  280. package/dist/components/ui/inspector-theme.js.map +0 -1
  281. package/dist/components/ui/load-more-button.js.map +0 -1
  282. package/dist/components/ui/menu-dropdown.js.map +0 -1
  283. package/dist/components/ui/skeleton.js.map +0 -1
  284. package/dist/components/ui/spinner.js.map +0 -1
  285. package/dist/components/ui/timestamp-tooltip.js.map +0 -1
  286. package/dist/components/workflow-trace-view.js.map +0 -1
  287. package/dist/components/workflow-traces/event-colors.js.map +0 -1
  288. package/dist/components/workflow-traces/trace-colors.js.map +0 -1
  289. package/dist/components/workflow-traces/trace-span-construction.js.map +0 -1
  290. package/dist/components/workflow-traces/trace-time-utils.js.map +0 -1
  291. package/dist/hooks/use-dark-mode.js.map +0 -1
  292. package/dist/index.js.map +0 -1
  293. package/dist/lib/event-analysis.js.map +0 -1
  294. package/dist/lib/event-materialization.js.map +0 -1
  295. package/dist/lib/hydration.js.map +0 -1
  296. package/dist/lib/toast.js.map +0 -1
  297. package/dist/lib/trace-builder.js.map +0 -1
  298. package/dist/lib/utils.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { Event, Hook, Step, WorkflowRun } from '@workflow/world';
3
+ import type { SpanSelectionInfo } from './entity-detail-panel';
4
+ export interface SidebarDataContextValue {
5
+ run: WorkflowRun;
6
+ events: Event[];
7
+ spanDetailData: WorkflowRun | Step | Hook | Event | null;
8
+ spanDetailError?: Error | null;
9
+ spanDetailLoading?: boolean;
10
+ onSpanSelect: (info: SpanSelectionInfo) => void;
11
+ onStreamClick?: (streamId: string) => void;
12
+ onRunClick?: (runId: string) => void;
13
+ onWakeUpSleep?: (runId: string, correlationId: string) => Promise<{
14
+ stoppedCount: number;
15
+ }>;
16
+ onLoadEventData?: (correlationId: string, eventId: string) => Promise<unknown | null>;
17
+ onResolveHook?: (hookToken: string, payload: unknown, hook?: Hook) => Promise<void>;
18
+ encryptionKey?: Uint8Array;
19
+ onDecrypt?: () => void;
20
+ isDecrypting?: boolean;
21
+ hasEncryptedData?: boolean;
22
+ }
23
+ export declare function SidebarDataProvider({ value, children, }: {
24
+ value: SidebarDataContextValue;
25
+ children: ReactNode;
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ export declare function useSidebarData(): SidebarDataContextValue;
28
+ export declare function useSidebarDataOptional(): SidebarDataContextValue | null;
29
+ //# sourceMappingURL=sidebar-data-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-data-context.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-data-context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,cAAc,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;IACzD,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,KAClB,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,IAAI,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAKD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAMA;AAED,wBAAgB,cAAc,IAAI,uBAAuB,CAMxD;AAED,wBAAgB,sBAAsB,IAAI,uBAAuB,GAAG,IAAI,CAEvE"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext } from 'react';
4
+ const SidebarDataContext = createContext(null);
5
+ SidebarDataContext.displayName = 'SidebarDataContext';
6
+ export function SidebarDataProvider({ value, children, }) {
7
+ return (_jsx(SidebarDataContext.Provider, { value: value, children: children }));
8
+ }
9
+ export function useSidebarData() {
10
+ const ctx = useContext(SidebarDataContext);
11
+ if (!ctx) {
12
+ throw new Error('useSidebarData must be used within a SidebarDataProvider');
13
+ }
14
+ return ctx;
15
+ }
16
+ export function useSidebarDataOptional() {
17
+ return useContext(SidebarDataContext);
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1kYXRhLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zaWRlYmFyL3NpZGViYXItZGF0YS1jb250ZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQWtCLE1BQU0sT0FBTyxDQUFDO0FBZ0NsRSxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBaUMsSUFBSSxDQUFDLENBQUM7QUFDL0Usa0JBQWtCLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXRELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxFQUNsQyxLQUFLLEVBQ0wsUUFBUSxHQUlUO0lBQ0MsT0FBTyxDQUNMLEtBQUMsa0JBQWtCLENBQUMsUUFBUSxJQUFDLEtBQUssRUFBRSxLQUFLLFlBQ3RDLFFBQVEsR0FDbUIsQ0FDL0IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB0eXBlIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRXZlbnQsIEhvb2ssIFN0ZXAsIFdvcmtmbG93UnVuIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB0eXBlIHsgU3BhblNlbGVjdGlvbkluZm8gfSBmcm9tICcuL2VudGl0eS1kZXRhaWwtcGFuZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZGViYXJEYXRhQ29udGV4dFZhbHVlIHtcbiAgcnVuOiBXb3JrZmxvd1J1bjtcbiAgZXZlbnRzOiBFdmVudFtdO1xuICBzcGFuRGV0YWlsRGF0YTogV29ya2Zsb3dSdW4gfCBTdGVwIHwgSG9vayB8IEV2ZW50IHwgbnVsbDtcbiAgc3BhbkRldGFpbEVycm9yPzogRXJyb3IgfCBudWxsO1xuICBzcGFuRGV0YWlsTG9hZGluZz86IGJvb2xlYW47XG4gIG9uU3BhblNlbGVjdDogKGluZm86IFNwYW5TZWxlY3Rpb25JbmZvKSA9PiB2b2lkO1xuICBvblN0cmVhbUNsaWNrPzogKHN0cmVhbUlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uUnVuQ2xpY2s/OiAocnVuSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25XYWtlVXBTbGVlcD86IChcbiAgICBydW5JZDogc3RyaW5nLFxuICAgIGNvcnJlbGF0aW9uSWQ6IHN0cmluZ1xuICApID0+IFByb21pc2U8eyBzdG9wcGVkQ291bnQ6IG51bWJlciB9PjtcbiAgb25Mb2FkRXZlbnREYXRhPzogKFxuICAgIGNvcnJlbGF0aW9uSWQ6IHN0cmluZyxcbiAgICBldmVudElkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPHVua25vd24gfCBudWxsPjtcbiAgb25SZXNvbHZlSG9vaz86IChcbiAgICBob29rVG9rZW46IHN0cmluZyxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIGhvb2s/OiBIb29rXG4gICkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZW5jcnlwdGlvbktleT86IFVpbnQ4QXJyYXk7XG4gIG9uRGVjcnlwdD86ICgpID0+IHZvaWQ7XG4gIGlzRGVjcnlwdGluZz86IGJvb2xlYW47XG4gIGhhc0VuY3J5cHRlZERhdGE/OiBib29sZWFuO1xufVxuXG5jb25zdCBTaWRlYmFyRGF0YUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNpZGViYXJEYXRhQ29udGV4dFZhbHVlIHwgbnVsbD4obnVsbCk7XG5TaWRlYmFyRGF0YUNvbnRleHQuZGlzcGxheU5hbWUgPSAnU2lkZWJhckRhdGFDb250ZXh0JztcblxuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXJEYXRhUHJvdmlkZXIoe1xuICB2YWx1ZSxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIHZhbHVlOiBTaWRlYmFyRGF0YUNvbnRleHRWYWx1ZTtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhckRhdGFDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TaWRlYmFyRGF0YUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTaWRlYmFyRGF0YSgpOiBTaWRlYmFyRGF0YUNvbnRleHRWYWx1ZSB7XG4gIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoU2lkZWJhckRhdGFDb250ZXh0KTtcbiAgaWYgKCFjdHgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNpZGViYXJEYXRhIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBTaWRlYmFyRGF0YVByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGN0eDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNpZGViYXJEYXRhT3B0aW9uYWwoKTogU2lkZWJhckRhdGFDb250ZXh0VmFsdWUgfCBudWxsIHtcbiAgcmV0dXJuIHVzZUNvbnRleHQoU2lkZWJhckRhdGFDb250ZXh0KTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  export interface StreamChunk {
2
2
  id: number;
3
- text: string;
3
+ value: unknown;
4
4
  }
5
5
  type Chunk = StreamChunk;
6
6
  interface StreamViewerProps {
@@ -1 +1 @@
1
- {"version":3,"file":"stream-viewer.d.ts","sourceRoot":"","sources":["../../src/components/stream-viewer.tsx"],"names":[],"mappings":"AAmCA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,KAAK,GAAG,WAAW,CAAC;AAEzB,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AA8DD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,GACZ,EAAE,iBAAiB,2CAmGnB"}
1
+ {"version":3,"file":"stream-viewer.d.ts","sourceRoot":"","sources":["../../src/components/stream-viewer.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,KAAK,GAAG,WAAW,CAAC;AAEzB,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAgED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,GACZ,EAAE,iBAAiB,2CAmGnB"}
@@ -5,37 +5,13 @@ import { Virtuoso } from 'react-virtuoso';
5
5
  import { DataInspector } from './ui/data-inspector';
6
6
  import { Skeleton } from './ui/skeleton';
7
7
  // ──────────────────────────────────────────────────────────────────────────
8
- // Helpers
9
- // ──────────────────────────────────────────────────────────────────────────
10
- function deserializeChunkText(text) {
11
- try {
12
- const parsed = JSON.parse(text);
13
- if (typeof parsed === 'string') {
14
- return parsed;
15
- }
16
- return JSON.stringify(parsed, null, 2);
17
- }
18
- catch {
19
- return text;
20
- }
21
- }
22
- function parseChunkData(text) {
23
- try {
24
- return JSON.parse(text);
25
- }
26
- catch {
27
- return text;
28
- }
29
- }
30
- // ──────────────────────────────────────────────────────────────────────────
31
8
  // Chunk row — memoized to prevent remounts during polling
32
9
  // ──────────────────────────────────────────────────────────────────────────
33
10
  const ChunkRow = React.memo(function ChunkRow({ chunk, index, }) {
34
- const parsed = parseChunkData(chunk.text);
35
- return (_jsxs("div", { className: "text-[11px] rounded-md border p-3", style: {
11
+ return (_jsx("div", { className: "text-[11px] rounded-md border p-3", style: {
36
12
  borderColor: 'var(--ds-gray-300)',
37
13
  backgroundColor: 'var(--ds-gray-100)',
38
- }, children: [_jsxs("span", { className: "select-none mr-2", style: { color: 'var(--ds-gray-500)' }, children: ["[", index, "]"] }), typeof parsed === 'string' ? (_jsx("span", { className: "whitespace-pre-wrap break-words", style: { color: 'var(--ds-gray-1000)' }, children: deserializeChunkText(parsed) })) : (_jsx(DataInspector, { data: parsed, expandLevel: 1 }))] }));
14
+ }, children: _jsxs("div", { className: "flex items-start gap-2", children: [_jsxs("span", { className: "select-none pt-px", style: { color: 'var(--ds-gray-500)' }, children: ["[", index, "]"] }), _jsx("div", { className: "min-w-0 flex-1", children: typeof chunk.value === 'string' ? (_jsx("span", { className: "whitespace-pre-wrap break-words", style: { color: 'var(--ds-gray-1000)' }, children: chunk.value })) : (_jsx(DataInspector, { data: chunk.value, expandLevel: 1 })) })] }) }));
39
15
  });
40
16
  // ──────────────────────────────────────────────────────────────────────────
41
17
  // Skeleton loading
@@ -78,4 +54,4 @@ export function StreamViewer({ streamId: _streamId, chunks, isLive, error, isLoa
78
54
  color: 'var(--ds-gray-600)',
79
55
  }, children: isLive ? 'Waiting for stream data...' : 'Stream is empty' })) : (_jsx(Virtuoso, { ref: virtuosoRef, totalCount: chunks.length, overscan: 10, endReached: () => onScrollEnd?.(), itemContent: (index) => (_jsx("div", { style: { paddingBottom: 8 }, children: _jsx(ChunkRow, { chunk: chunks[index], index: index }) })), style: { flex: 1, minHeight: 0 } })) })] }));
80
56
  }
81
- //# sourceMappingURL=stream-viewer.js.map
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLXZpZXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3N0cmVhbS12aWV3ZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixPQUFPLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXdCekMsNkVBQTZFO0FBQzdFLDBEQUEwRDtBQUMxRCw2RUFBNkU7QUFFN0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQyxFQUM1QyxLQUFLLEVBQ0wsS0FBSyxHQUlOO0lBQ0MsT0FBTyxDQUNMLGNBQ0UsU0FBUyxFQUFDLG1DQUFtQyxFQUM3QyxLQUFLLEVBQUU7WUFDTCxXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLGVBQWUsRUFBRSxvQkFBb0I7U0FDdEMsWUFFRCxlQUFLLFNBQVMsRUFBQyx3QkFBd0IsYUFDckMsZ0JBQ0UsU0FBUyxFQUFDLG1CQUFtQixFQUM3QixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsa0JBRXBDLEtBQUssU0FDRixFQUNQLGNBQUssU0FBUyxFQUFDLGdCQUFnQixZQUM1QixPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNqQyxlQUNFLFNBQVMsRUFBQyxpQ0FBaUMsRUFDM0MsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLFlBRXRDLEtBQUssQ0FBQyxLQUFLLEdBQ1AsQ0FDUixDQUFDLENBQUMsQ0FBQyxDQUNGLEtBQUMsYUFBYSxJQUFDLElBQUksRUFB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fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBWaXJ0dW9zbywgdHlwZSBWaXJ0dW9zb0hhbmRsZSB9IGZyb20gJ3JlYWN0LXZpcnR1b3NvJztcbmltcG9ydCB7IERhdGFJbnNwZWN0b3IgfSBmcm9tICcuL3VpL2RhdGEtaW5zcGVjdG9yJztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAnLi91aS9za2VsZXRvbic7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVHlwZXNcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVhbUNodW5rIHtcbiAgaWQ6IG51bWJlcjtcbiAgdmFsdWU6IHVua25vd247XG59XG5cbnR5cGUgQ2h1bmsgPSBTdHJlYW1DaHVuaztcblxuaW50ZXJmYWNlIFN0cmVhbVZpZXdlclByb3BzIHtcbiAgc3RyZWFtSWQ6IHN0cmluZztcbiAgY2h1bmtzOiBDaHVua1tdO1xuICBpc0xpdmU6IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRydWUgd2hpbGUgdGhlIGluaXRpYWwgc3RyZWFtIGNvbm5lY3Rpb24gaXMgYmVpbmcgZXN0YWJsaXNoZWQgKi9cbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgbmVhciB0aGUgYm90dG9tLCBmb3IgdHJpZ2dlcmluZyBwYWdpbmF0aW9uICovXG4gIG9uU2Nyb2xsRW5kPzogKCkgPT4gdm9pZDtcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBDaHVuayByb3cg4oCUIG1lbW9pemVkIHRvIHByZXZlbnQgcmVtb3VudHMgZHVyaW5nIHBvbGxpbmdcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5jb25zdCBDaHVua1JvdyA9IFJlYWN0Lm1lbW8oZnVuY3Rpb24gQ2h1bmtSb3coe1xuICBjaHVuayxcbiAgaW5kZXgsXG59OiB7XG4gIGNodW5rOiBDaHVuaztcbiAgaW5kZXg6IG51bWJlcjtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJ0ZXh0LVsxMXB4XSByb3VuZGVkLW1kIGJvcmRlciBwLTNcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgYm9yZGVyQ29sb3I6ICd2YXIoLS1kcy1ncmF5LTMwMCknLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1kcy1ncmF5LTEwMCknLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQgZ2FwLTJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzc05hbWU9XCJzZWxlY3Qtbm9uZSBwdC1weFwiXG4gICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTUwMCknIH19XG4gICAgICAgID5cbiAgICAgICAgICBbe2luZGV4fV1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi13LTAgZmxleC0xXCI+XG4gICAgICAgICAge3R5cGVvZiBjaHVuay52YWx1ZSA9PT0gJ3N0cmluZycgPyAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3aGl0ZXNwYWNlLXByZS13cmFwIGJyZWFrLXdvcmRzXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTEwMDApJyB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y2h1bmsudmFsdWV9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxEYXRhSW5zcGVjdG9yIGRhdGE9e2NodW5rLnZhbHVlfSBleHBhbmRMZXZlbD17MX0gLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2tlbGV0b24gbG9hZGluZ1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIFN0cmVhbVNrZWxldG9uKCkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMyBhbmltYXRlLWluIGZhZGUtaW5cIj5cbiAgICAgIDxTa2VsZXRvbiBzdHlsZT17eyB3aWR0aDogMTIwLCBoZWlnaHQ6IDE2LCBib3JkZXJSYWRpdXM6IDQgfX0gLz5cbiAgICAgIHtbMSwgMiwgMywgNF0ubWFwKChpKSA9PiAoXG4gICAgICAgIDxTa2VsZXRvbiBrZXk9e2l9IHN0eWxlPXt7IGhlaWdodDogNTYsIGJvcmRlclJhZGl1czogNiB9fSAvPlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gTWFpbiBjb21wb25lbnRcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIFN0cmVhbVZpZXdlciBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyByZWFsLXRpbWUgc3RyZWFtIGRhdGEuXG4gKiBFYWNoIGNodW5rIGlzIHJlbmRlcmVkIHdpdGggRGF0YUluc3BlY3RvciBmb3IgcHJvcGVyIGRpc3BsYXlcbiAqIG9mIGNvbXBsZXggdHlwZXMgKE1hcCwgU2V0LCBEYXRlLCBjdXN0b20gY2xhc3NlcywgZXRjLikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTdHJlYW1WaWV3ZXIoe1xuICBzdHJlYW1JZDogX3N0cmVhbUlkLFxuICBjaHVua3MsXG4gIGlzTGl2ZSxcbiAgZXJyb3IsXG4gIGlzTG9hZGluZyxcbiAgb25TY3JvbGxFbmQsXG59OiBTdHJlYW1WaWV3ZXJQcm9wcykge1xuICBjb25zdCB2aXJ0dW9zb1JlZiA9IHVzZVJlZjxWaXJ0dW9zb0hhbmRsZT4obnVsbCk7XG4gIGNvbnN0IHByZXZDaHVua0NvdW50UmVmID0gdXNlUmVmKDApO1xuXG4gIC8vIEF1dG8tc2Nyb2xsIHRvIGJvdHRvbSB3aGVuIG5ldyBjaHVua3MgYXJyaXZlIChsaXZlIHN0cmVhbWluZylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2h1bmtzLmxlbmd0aCA+IHByZXZDaHVua0NvdW50UmVmLmN1cnJlbnQgJiYgY2h1bmtzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZpcnR1b3NvUmVmLmN1cnJlbnQ/LnNjcm9sbFRvSW5kZXgoe1xuICAgICAgICBpbmRleDogY2h1bmtzLmxlbmd0aCAtIDEsXG4gICAgICAgIGFsaWduOiAnZW5kJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBwcmV2Q2h1bmtDb3VudFJlZi5jdXJyZW50ID0gY2h1bmtzLmxlbmd0aDtcbiAgfSwgW2NodW5rcy5sZW5ndGhdKTtcblxuICAvLyBTaG93IHNrZWxldG9uIHdoZW4gbG9hZGluZyBhbmQgbm8gY2h1bmtzIGhhdmUgYXJyaXZlZCB5ZXRcbiAgaWYgKGlzTG9hZGluZyAmJiBjaHVua3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGxcIj5cbiAgICAgICAgPFN0cmVhbVNrZWxldG9uIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaC1mdWxsXCI+XG4gICAgICB7LyogTGl2ZSBpbmRpY2F0b3IgKi99XG4gICAgICB7aXNMaXZlICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IG1iLTIgcHgtMVwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUtYmxvY2sgdy0yIGgtMiByb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tZHMtZ3JlZW4tNjAwKScgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHNcIiBzdHlsZT17eyBjb2xvcjogJ3ZhcigtLWRzLWdyZWVuLTcwMCknIH19PlxuICAgICAgICAgICAgTGl2ZVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogSGVhZGVyICovfVxuICAgICAge2NodW5rcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yIHB4LTFcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1bMTNweF0gZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTkwMCknIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgU3RyZWFtIENodW5rc1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC14cyB0YWJ1bGFyLW51bXNcIlxuICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTYwMCknIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgKHtjaHVua3MubGVuZ3RofSlcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIENvbnRlbnQgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBtaW4taC0wXCI+XG4gICAgICAgIHtlcnJvciA/IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LVsxMXB4XSByb3VuZGVkLW1kIGJvcmRlciBwLTNcIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICd2YXIoLS1kcy1yZWQtMzAwKScsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWRzLXJlZC0xMDApJyxcbiAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1kcy1yZWQtNzAwKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXY+RXJyb3IgcmVhZGluZyBzdHJlYW06PC9kaXY+XG4gICAgICAgICAgICA8ZGl2PntlcnJvcn08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IGNodW5rcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1bMTFweF0gcm91bmRlZC1tZCBib3JkZXIgcC0zXCJcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAndmFyKC0tZHMtZ3JheS0zMDApJyxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tZHMtZ3JheS0xMDApJyxcbiAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTYwMCknLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aXNMaXZlID8gJ1dhaXRpbmcgZm9yIHN0cmVhbSBkYXRhLi4uJyA6ICdTdHJlYW0gaXMgZW1wdHknfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxWaXJ0dW9zb1xuICAgICAgICAgICAgcmVmPXt2aXJ0dW9zb1JlZn1cbiAgICAgICAgICAgIHRvdGFsQ291bnQ9e2NodW5rcy5sZW5ndGh9XG4gICAgICAgICAgICBvdmVyc2Nhbj17MTB9XG4gICAgICAgICAgICBlbmRSZWFjaGVkPXsoKSA9PiBvblNjcm9sbEVuZD8uKCl9XG4gICAgICAgICAgICBpdGVtQ29udGVudD17KGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZ0JvdHRvbTogOCB9fT5cbiAgICAgICAgICAgICAgICA8Q2h1bmtSb3cgY2h1bms9e2NodW5rc1tpbmRleF19IGluZGV4PXtpbmRleH0gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgc3R5bGU9e3sgZmxleDogMSwgbWluSGVpZ2h0OiAwIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19
@@ -159,4 +159,4 @@ export const MiniMap = memo(function MiniMap({ timelineRef, rows, scale, }) {
159
159
  height: MAP_HEIGHT - 4,
160
160
  } })] }));
161
161
  });
162
- //# sourceMappingURL=map.js.map
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvbWFwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLElBQUksRUFDSixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFDO0FBRWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxNQUFNLE1BQU0sR0FBRyxHQUFXLEVBQUU7SUFDMUIsSUFBSSxrQkFBa0IsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNyQyxPQUFPLFVBQVUsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUcsR0FBVyxFQUFFO0lBQzFCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxRQUFRLEdBQUcsR0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsUUFBUSxFQUFFLENBQUM7UUFFWCxPQUFPLEdBQUcsRUFBRTtZQUNWLEtB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RSxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQzlDLEtBQUssRUFBRSxRQUFRLEdBQUcsR0FBRyxHQUNyQixFQUNGLGNBQ0UsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQzFCLEdBQUcsRUFBRSxRQUFRLEVBQ2IsS0FBSyxFQUFFO29CQUNMLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUztvQkFDL0IsS0FBSyxFQUNILFVBQVUsR0FBRyxDQUFDO3dCQUNaLENBQUMsQ0FBQyxVQUFVO3dCQUNaLENBQUMsQ0FBQyxlQUFlLGdCQUFnQixHQUFHLENBQUMsS0FBSztvQkFDOUMsR0FBRyxFQUFFLENBQUM7b0JBQ04sTUFBTSxFQUFFLFVBQVUsR0FBRyxDQUFDO2lCQUN2QixHQUNELElBQ0UsQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIE11dGFibGVSZWZPYmplY3QsXG4gIG1lbW8sXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VUcmFjZVZpZXdlciB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi90cmFjZS12aWV3ZXIubW9kdWxlLmNzcyc7XG5pbXBvcnQgdHlwZSB7IFZpc2libGVTcGFuIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgTUFQX0hFSUdIVCwgVElNRUxJTkVfUEFERElORyB9IGZyb20gJy4uL3V0aWwvY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUltbWVkaWF0ZVN0eWxlIH0gZnJvbSAnLi4vdXRpbC91c2UtaW1tZWRpYXRlLXN0eWxlJztcblxuY29uc3QgZ2V0RHBpID0gKCk6IG51bWJlciA9PiB7XG4gIGlmICgnZGV2aWNlUGl4ZWxSYXRpbycgaW4gZ2xvYmFsVGhpcykge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLmRldmljZVBpeGVsUmF0aW8gfHwgMTtcbiAgfVxuICByZXR1cm4gMTtcbn07XG5cbmNvbnN0IHVzZURwaSA9ICgpOiBudW1iZXIgPT4ge1xuICBjb25zdCBbZHBpLCBzZXREcGldID0gdXNlU3RhdGUoMSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSAoKTogdm9pZCA9PiBzZXREcGkoZ2V0RHBpKCkpO1xuICAgIGNvbnN0IG1lZGlhID0gbWF0Y2hNZWRpYShgKHJlc29sdXRpb246ICR7ZHBpfWRwcHgpYCk7XG4gICAgbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpO1xuICAgIG9uQ2hhbmdlKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbWVkaWEucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpO1xuICAgIH07XG4gIH0sIFtkcGldKTtcbiAgcmV0dXJuIGRwaTtcbn07XG5cbmNvbnN0IHBhZGRpbmcgPSBUSU1FTElORV9QQURESU5HO1xuXG5leHBvcnQgY29uc3QgTWluaU1hcCA9IG1lbW8oZnVuY3Rpb24gTWluaU1hcCh7XG4gIHRpbWVsaW5lUmVmLFxuICByb3dzLFxuICBzY2FsZSxcbn06IHtcbiAgdGltZWxpbmVSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgcm93czogVmlzaWJsZVNwYW5bXVtdO1xuICBzY2FsZTogbnVtYmVyO1xufSkge1xuICBjb25zdCB7XG4gICAgc3RhdGU6IHsgcm9vdCwgYmFzZVNjYWxlLCB0aW1lbGluZVdpZHRoLCB3aWR0aDogZnVsbFdpZHRoLCBzY3JvbGxiYXJXaWR0aCB9LFxuICB9ID0gdXNlVHJhY2VWaWV3ZXIoKTtcbiAgY29uc3QgbWFwV2lkdGggPSBmdWxsV2lkdGggKyBUSU1FTElORV9QQURESU5HICogMjtcbiAgY29uc3QgZHBpID0gdXNlRHBpKCk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNhbnZhc1JlZiA9IHVzZVJlZjxIVE1MQ2FudmFzRWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgdGh1bWJSYXRpbyA9XG4gICAgKGZ1bGxXaWR0aCAvIChmdWxsV2lkdGggLSBzY3JvbGxiYXJXaWR0aCkpICpcbiAgICBNYXRoLm1pbihmdWxsV2lkdGggLyB0aW1lbGluZVdpZHRoLCBiYXNlU2NhbGUgLyBzY2FsZSk7XG4gIGNvbnN0IHRodW1iV2lkdGggPSBNYXRoLm1pbihcbiAgICBmdWxsV2lkdGgsXG4gICAgKHRpbWVsaW5lV2lkdGggLSBzY3JvbGxiYXJXaWR0aCkgKiB0aHVtYlJhdGlvXG4gICk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGlzSGVsZCA9IGZhbHNlO1xuICAgIGxldCBjbGllbnRYID0gMDtcbiAgICBsZXQgcmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGlzVmFsaWRFdmVudFRhcmdldCA9ICh0YXJnZXQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oY29udGFpbmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCBhcyBIVE1MRWxlbWVudCkpO1xuICAgIH07XG5cbiAgICBsZXQgbmV4dEZyYW1lID0gMDtcbiAgICBjb25zdCBvbkZyYW1lID0gKCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFpc0hlbGQgfHwgIXJlY3QpIHJldHVybjtcbiAgICAgIGNvbnN0ICR0aW1lbGluZSA9IHRpbWVsaW5lUmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoISR0aW1lbGluZSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB4ID0gY2xpZW50WCAtIHRodW1iV2lkdGggKiAwLjUgLSByZWN0LmxlZnQ7XG4gICAgICAkdGltZWxpbmUuc2Nyb2xsTGVmdCA9IHggLyB0aHVtYlJhdGlvO1xuICAgIH07XG5cbiAgICBjb25zdCBvblBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICh7IGNsaWVudFggfSA9IGV2ZW50KTtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKG5leHRGcmFtZSk7XG4gICAgICBuZXh0RnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25GcmFtZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uUG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFpc1ZhbGlkRXZlbnRUYXJnZXQoZXZlbnQudGFyZ2V0KSkgcmV0dXJuO1xuICAgICAgaXNIZWxkID0gdHJ1ZTtcbiAgICAgIHJlY3QgPSBjb250YWluZXJSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBvblBvaW50ZXJNb3ZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25Qb2ludGVyVXAgPSAoKTogdm9pZCA9PiB7XG4gICAgICBpc0hlbGQgPSBmYWxzZTtcbiAgICAgIHJlY3QgPSB1bmRlZmluZWQ7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uVG91Y2hTdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFpc1ZhbGlkRXZlbnRUYXJnZXQoZXZlbnQudGFyZ2V0KSkgcmV0dXJuO1xuICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uVG91Y2hNb3ZlID0gKGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBpZiAoIWlzSGVsZCkgcmV0dXJuO1xuICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgb25Qb2ludGVyRG93bik7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgb25Qb2ludGVyTW92ZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIG9uUG9pbnRlclVwKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIG9uUG9pbnRlclVwKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uVG91Y2hTdGFydCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Ub3VjaE1vdmUsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgb25Qb2ludGVyRG93bik7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBvblBvaW50ZXJNb3ZlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBvblBvaW50ZXJVcCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIG9uUG9pbnRlclVwKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgb25Ub3VjaFN0YXJ0KTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSk7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShuZXh0RnJhbWUpO1xuICAgIH07XG4gIH0sIFt0aW1lbGluZVJlZiwgdGh1bWJSYXRpbywgdGh1bWJXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2FudmFzID0gY2FudmFzUmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzPy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGlmICghY2FudmFzIHx8ICFjdHgpIHJldHVybjtcblxuICAgIGNvbnN0IHJlbmRlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGN0eC5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgY3R4LnNjYWxlKGRwaSwgZHBpKTtcblxuICAgICAgY29uc3QgZ2FwID0gMTtcbiAgICAgIGNvbnN0IGhlaWdodCA9IDM7XG4gICAgICBjb25zdCByYXRpbyA9IChtYXBXaWR0aCAtIHBhZGRpbmcgKiAyKSAvIHJvb3QuZHVyYXRpb247XG5cbiAgICAgIC8vIFRPRE86IGZpbGwgc3BhbnMgYmFzZWQgb24gZGVwdGhcbiAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2NjYyc7XG4gICAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc3BhbiBvZiByb3cpIHtcbiAgICAgICAgICBjb25zdCB5ID0gcGFkZGluZyAtIGdhcCArIChnYXAgKyBoZWlnaHQpICogc3Bhbi5yb3c7XG4gICAgICAgICAgaWYgKHkgPj0gTUFQX0hFSUdIVCAtIGhlaWdodCAtIHBhZGRpbmcpIGJyZWFrO1xuXG4gICAgICAgICAgY29uc3QgeCA9IHBhZGRpbmcgKyAoc3Bhbi5zdGFydFRpbWUgLSByb290LnN0YXJ0VGltZSkgKiByYXRpbztcbiAgICAgICAgICBjb25zdCB3aWR0aCA9IHNwYW4uZHVyYXRpb24gKiByYXRpbztcblxuICAgICAgICAgIGN0eC5yb3VuZFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCwgaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY3R4LmZpbGwoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgbmV4dEZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlbmRlcik7XG5cbiAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUobmV4dEZyYW1lKTtcbiAgfSwgW2RwaSwgcm9vdCwgbWFwV2lkdGgsIHJvd3NdKTtcblxuICBjb25zdCB0aHVtYlJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgc3R5bGU6IHRodW1iU3R5bGUsIHNldFN0eWxlOiBzZXRUaHVtYlN0eWxlIH0gPVxuICAgIHVzZUltbWVkaWF0ZVN0eWxlKHRodW1iUmVmKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCAkdGltZWxpbmUgPSB0aW1lbGluZVJlZi5jdXJyZW50O1xuICAgIGlmICghJHRpbWVsaW5lKSByZXR1cm47XG5cbiAgICBsZXQgbmV4dEZyYW1lID0gMDtcbiAgICBjb25zdCBvbkZyYW1lID0gKCk6IHZvaWQgPT4ge1xuICAgICAgc2V0VGh1bWJTdHlsZShcbiAgICAgICAgJ3RyYW5zZm9ybScsXG4gICAgICAgIGB0cmFuc2xhdGVYKCR7cGFkZGluZyArICR0aW1lbGluZS5zY3JvbGxMZWZ0ICogdGh1bWJSYXRpb31weClgXG4gICAgICApO1xuICAgIH07XG4gICAgb25GcmFtZSgpO1xuXG4gICAgY29uc3Qgb25TY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShuZXh0RnJhbWUpO1xuICAgICAgbmV4dEZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uRnJhbWUpO1xuICAgIH07XG4gICAgJHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShuZXh0RnJhbWUpO1xuICAgICAgJHRpbWVsaW5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKTtcbiAgICB9O1xuICB9LCBbdGltZWxpbmVSZWYsIHRodW1iUmF0aW8sIHNldFRodW1iU3R5bGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17c3R5bGVzLm1hcENvbnRhaW5lcn1cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgd2lkdGg6IHRodW1iV2lkdGggPiAwID8gbWFwV2lkdGggOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogTUFQX0hFSUdIVCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGNhbnZhc1xuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5tYXBDYW52YXN9XG4gICAgICAgIGhlaWdodD17TUFQX0hFSUdIVCAqIGRwaX1cbiAgICAgICAgcmVmPXtjYW52YXNSZWZ9XG4gICAgICAgIHN0eWxlPXt7IHdpZHRoOiBtYXBXaWR0aCwgaGVpZ2h0OiBNQVBfSEVJR0hUIH19XG4gICAgICAgIHdpZHRoPXttYXBXaWR0aCAqIGRwaX1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLm1hcFRodW1ifVxuICAgICAgICByZWY9e3RodW1iUmVmfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHRyYW5zZm9ybTogdGh1bWJTdHlsZS50cmFuc2Zvcm0sXG4gICAgICAgICAgd2lkdGg6XG4gICAgICAgICAgICB0aHVtYldpZHRoID4gMFxuICAgICAgICAgICAgICA/IHRodW1iV2lkdGhcbiAgICAgICAgICAgICAgOiBgY2FsYygxMDAlIC0gJHtUSU1FTElORV9QQURESU5HICogMn1weClgLFxuICAgICAgICAgIHRvcDogMixcbiAgICAgICAgICBoZWlnaHQ6IE1BUF9IRUlHSFQgLSA0LFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn0pO1xuIl19
@@ -413,4 +413,4 @@ export function CursorMarker({ memoCacheRef, timelineRef, root, spans, events, s
413
413
  });
414
414
  return (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.cursorMarkerStickyParent, children: _jsx("div", { className: styles.cursorMarkerLabelContainer, ref: labelRef, style: labelStyle, children: _jsx("div", { className: styles.cursorMarkerLabel, ref: labelTextRef }) }) }), _jsx("div", { className: styles.cursorMarkerStickyParent, children: _jsx("div", { className: styles.cursorMarkerContainer, ref: ref, style: style, children: _jsx("div", { className: styles.cursorMarker, children: _jsx("div", { className: styles.cursorSelection, ref: selectionRef, style: selectionStyle }) }) }) })] }));
415
415
  }
416
- //# sourceMappingURL=markers.js.map
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyYWNlLXZpZXdlci9jb21wb25lbnRzL21hcmtlcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0QsT0FBTyxFQUEwQixjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEUsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUM7QUFRaEQsT0FBTyxFQUNMLGFBQWEsRUFDYixVQUFVLEVBQ1YsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RDs7O0dBR0c7QUFDSCxTQUFTLFVBQVUsQ0FBQyxHQUFXO0lBQzdCLElBQUksR0FBRyxJQUFJLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDO0lBQ3hCLE1BQU0sVUFBVSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFFN0IsSUFBSSxVQUFVLElBQUksR0FBRztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2xDLElBQUksVUFBVSxJQUFJ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QUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7UUFDckMsQ0FBQztRQUVELFFBQVEsQ0FBQztZQUNQLElBQUksRUFBRSxlQUFlO1lBQ3JCLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRTtZQUNqQixPQUFPO1lBQ1AsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUNMLDhCQUNFLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsWUFDN0MsY0FDRSxTQUFTLEVBQUUsTUFBTSxDQUFDLDBCQUEwQixFQUM1QyxHQUFHLEVBQUUsUUFBUSxFQUNiLEtBQUssRUFBRSxVQUFVLFlBRWpCLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFJLEdBQzNELEdBQ0YsRUFDTixjQUFLLFNBQVMsRUFBRSxNQUFNLENBQUMsd0JBQXdCLFlBQzdDLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLFlBQ2xFLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxZQUFZLFlBQ2pDLGNBQ0UsU0FBUyxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQ2pDLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLEtBQUssRUFBRSxjQUFjLEdBQ3JCLEdBQ0UsR0FDRixHQUNGLElBQ0wsQ0FDSixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgY2xzeCB9IGZyb20gJ2Nsc3gnO1xuaW1wb3J0IHR5cGUge1xuICBDU1NQcm9wZXJ0aWVzLFxuICBEaXNwYXRjaCxcbiAgTXV0YWJsZVJlZk9iamVjdCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0eXBlIFRyYWNlVmlld2VyQWN0aW9uLCB1c2VUcmFjZVZpZXdlciB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi90cmFjZS12aWV3ZXIubW9kdWxlLmNzcyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1lbW9DYWNoZSxcbiAgUm9vdE5vZGUsXG4gIFNjcm9sbFNuYXBzaG90LFxuICBWaXNpYmxlU3BhbixcbiAgVmlzaWJsZVNwYW5FdmVudCxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgTUFSS0VSX0hFSUdIVCxcbiAgUk9XX0hFSUdIVCxcbiAgUk9XX1BBRERJTkcsXG4gIFRJTUVMSU5FX1BBRERJTkcsXG59IGZyb20gJy4uL3V0aWwvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGZvcm1hdER1cmF0aW9uRm9yVGltZWxpbmUsXG4gIGZvcm1hdFRpbWVTZWxlY3Rpb24sXG4gIGZvcm1hdFdhbGxDbG9ja1RpbWUsXG59IGZyb20gJy4uL3V0aWwvdGltaW5nJztcbmltcG9ydCB7IHVzZUltbWVkaWF0ZVN0eWxlIH0gZnJvbSAnLi4vdXRpbC91c2UtaW1tZWRpYXRlLXN0eWxlJztcbmltcG9ydCB7IHVzZVRyYWNrcGFkWm9vbSB9IGZyb20gJy4uL3V0aWwvdXNlLXRyYWNrcGFkLXpvb20nO1xuXG4vKipcbiAqIFNuYXAgYSByYXcgZHVyYXRpb24gdG8gdGhlIG5lYXJlc3QgXCJuaWNlXCIgbnVtYmVyIGluIHRoZSAxLTItNSDDlyAxMF5uXG4gKiBzZXF1ZW5jZSAoZS5nLiDigKYsIDAuNSwgMSwgMiwgNSwgMTAsIDIwLCA1MCwgMTAwLCDigKYpLlxuICovXG5mdW5jdGlvbiBzbmFwVG9OaWNlKHJhdzogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKHJhdyA8PSAwKSByZXR1cm4gMTtcbiAgY29uc3QgbG9nMTAgPSBNYXRoLmZsb29yKE1hdGgubG9nMTAocmF3KSk7XG4gIGNvbnN0IHBvdyA9IDEwICoqIGxvZzEwO1xuICBjb25zdCBub3JtYWxpemVkID0gcmF3IC8gcG93O1xuXG4gIGlmIChub3JtYWxpemVkIDw9IDEuNSkgcmV0dXJuIHBvdztcbiAgaWYgKG5vcm1hbGl6ZWQgPD0gMy41KSByZXR1cm4gMiAqIHBvdztcbiAgaWYgKG5vcm1hbGl6ZWQgPD0gNy41KSByZXR1cm4gNSAqIHBvdztcbiAgcmV0dXJuIDEwICogcG93O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTWFya2Vycyh7XG4gIHNjYWxlLFxuICBpc0xpdmUgPSBmYWxzZSxcbn06IHtcbiAgc2NhbGU6IG51bWJlcjtcbiAgaXNMaXZlPzogYm9vbGVhbjtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCB7XG4gICAgc3RhdGU6IHsgcm9vdCB9LFxuICB9ID0gdXNlVHJhY2VWaWV3ZXIoKTtcbiAgLy8gRm9yY2UgYSByZS1yZW5kZXIgZXZlcnkgc2Vjb25kIHdoZW4gbGl2ZSB0byBwaWNrIHVwIG5ldyB0aWNrIG1hcmtzLlxuICAvLyBUaGUgbWFya2VycyBjb250YWluZXIgd2lkdGggaXMgZ3Jvd24gYXQgNjBmcHMgYnkgdXNlTGl2ZVRpY2s7XG4gIC8vIHRoaXMgaW50ZXJ2YWwgb25seSBlbnN1cmVzIHRoZSBtYXJrZXIgKmxhYmVscyogc3RheSBjdXJyZW50LlxuICBjb25zdCBbLCBmb3JjZU1hcmtlclVwZGF0ZV0gPSB1c2VTdGF0ZSgwKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGl2ZSkgcmV0dXJuO1xuICAgIGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4gZm9yY2VNYXJrZXJVcGRhdGUoKHYpID0+IHYgKyAxKSwgMTAwMCk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaWQpO1xuICB9LCBbaXNMaXZlXSk7XG5cbiAgY29uc3QgZnVsbER1cmF0aW9uID0gcm9vdC5kdXJhdGlvbjtcblxuICAvLyBDYWxjdWxhdGUgYSBtYXJrZXIgaW50ZXJ2YWwgdGhhdCBnaXZlcyByZWFzb25hYmxlIHNwYWNpbmcgYXQgYW55IHpvb20gbGV2ZWwuXG4gIC8vIFdlIHRhcmdldCB+NTBweCBwZXIgbm90Y2ggbWFyazsgbGFiZWxzIGFwcGVhciBvbiBldmVyeSBOdGggbm90Y2ggdmlhIGxhYmVsU3BhY2luZy5cbiAgLy8gV2hlbiBzY2FsZSBpcyA8PSAwIChlLmcuIHRoZSBpbml0aWFsIC0xIHNlbnRpbmVsKSwgZmFsbCBiYWNrIHRvIGEgc2FmZSBkZWZhdWx0XG4gIC8vIHRvIGF2b2lkIGdlbmVyYXRpbmcgYW4gYWJzdXJkIG51bWJlciBvZiBtYXJrZXJzLlxuICBjb25zdCBlZmZlY3RpdmVTY2FsZSA9XG4gICAgc2NhbGUgPiAwID8gc2NhbGUgOiBmdWxsRHVyYXRpb24gPiAwID8gMSAvIGZ1bGxEdXJhdGlvbiA6IDE7XG4gIGNvbnN0IHRhcmdldE5vdGNoUHggPSA1MDtcbiAgbGV0IG1hcmtlckR1cmF0aW9uID0gc25hcFRvTmljZSh0YXJnZXROb3RjaFB4IC8gZWZmZWN0aXZlU2NhbGUpO1xuICBtYXJrZXJEdXJhdGlvbiA9IE1hdGgubWF4KDEsIG1hcmtlckR1cmF0aW9uKTtcbiAgbGV0IG1hcmtlcldpZHRoID0gbWFya2VyRHVyYXRpb24gKiBlZmZlY3RpdmVTY2FsZTtcblxuICAvLyBDYXAgbWFya2VyIGNvdW50IHRvIGF2b2lkIGNyZWF0aW5nIHRvbyBtYW55IERPTSBlbGVtZW50cyBhdCBleHRyZW1lIHpvb21cbiAgLy8gb24gdmVyeSBsb25nIHRyYWNlcy4gIE9ubHkgdGhlIHZpc2libGUgcG9ydGlvbiBpcyBzaG93biBvbiBzY3JlZW4gYW55d2F5LlxuICBjb25zdCBNQVhfTUFSS0VSUyA9IDEwMDA7XG4gIGlmIChmdWxsRHVyYXRpb24gLyBtYXJrZXJEdXJhdGlvbiA+IE1BWF9NQVJLRVJTKSB7XG4gICAgbWFya2VyRHVyYXRpb24gPSBzbmFwVG9OaWNlKGZ1bGxEdXJhdGlvbiAvIE1BWF9NQVJLRVJTKTtcbiAgICBtYXJrZXJXaWR0aCA9IG1hcmtlckR1cmF0aW9uICogZWZmZWN0aXZlU2NhbGU7XG4gIH1cbiAgY29uc3QgbWFya2VyQ291bnQgPSBNYXRoLmNlaWwoZnVsbER1cmF0aW9uIC8gbWFya2VyRHVyYXRpb24pO1xuXG4gIC8vIEhvdyBvZnRlbiBsYWJlbHMgc2hvdWxkIGFwcGVhciBmb3IgbWFya2VycywgZS5nLiAzID09PSBvbmUgbGFiZWwgZm9yIGV2ZXJ5IHRoaXJkIG1hcmtlclxuICBjb25zdCBsYWJlbFNwYWNpbmcgPSBNYXRoLmNlaWwoMTAwIC8gbWFya2VyV2lkdGgpIHx8IDE7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1hcmtlcnNDb250YWluZXJ9PlxuICAgICAgPGRpdlxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5tYXJrZXJzfVxuICAgICAgICBzdHlsZT17XG4gICAgICAgICAge1xuICAgICAgICAgICAgd2lkdGg6IE1hdGguZmxvb3Iocm9vdC5kdXJhdGlvbiAqIHNjYWxlICsgMTUpLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogc2NhbGUgIT09IC0xID8gJ3Zpc2libGUnIDogJ2hpZGRlbicsXG4gICAgICAgICAgICAnLS1tYXJrZXItd2lkdGgnOiBgJHttYXJrZXJXaWR0aH1weGAsXG4gICAgICAgICAgfSBhcyBDU1NQcm9wZXJ0aWVzXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAge25ldyBBcnJheShtYXJrZXJDb3VudCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBoYXNMYWJlbCA9IGkgJSBsYWJlbFNwYWNpbmcgPT09IDA7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXMubWFya2VyLCAhaGFzTGFiZWwgJiYgc3R5bGVzLm5vdGNoKX1cbiAgICAgICAgICAgICAga2V5PXtTdHJpbmcoaSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoYXNMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5tYXJrZXJMYWJlbH0+XG4gICAgICAgICAgICAgICAgICB7Zm9ybWF0RHVyYXRpb25Gb3JUaW1lbGluZShtYXJrZXJEdXJhdGlvbiAqIGkpfVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMubWFya2VyQ2xvY2tUaW1lfT5cbiAgICAgICAgICAgICAgICAgICAge2Zvcm1hdFdhbGxDbG9ja1RpbWUocm9vdC5zdGFydFRpbWUgKyBtYXJrZXJEdXJhdGlvbiAqIGkpfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEV2ZW50TWFya2Vycyh7XG4gIGV2ZW50cyxcbiAgcm9vdCxcbiAgc2NhbGUsXG59OiB7XG4gIGV2ZW50czogVmlzaWJsZVNwYW5FdmVudFtdO1xuICByb290OiBSb290Tm9kZTtcbiAgc2NhbGU6IG51bWJlcjtcbn0pOiBSZWFjdE5vZGUge1xuICAvLyBGaWx0ZXIgb3V0IGV2ZW50cyB0aGF0IHNob3VsZCBub3Qgc2hvdyB2ZXJ0aWNhbCBsaW5lcyAod29ya2Zsb3ctc3BlY2lmaWMgZmVhdHVyZSlcbiAgY29uc3QgZXZlbnRzV2l0aFZlcnRpY2FsTGluZXMgPSB1c2VNZW1vKFxuICAgICgpID0+IGV2ZW50cy5maWx0ZXIoKHgpID0+IHguZXZlbnQuc2hvd1ZlcnRpY2FsTGluZSAhPT0gZmFsc2UpLFxuICAgIFtldmVudHNdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmV2ZW50TWFya2Vyc0NvbnRhaW5lcn0+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmV2ZW50TWFya2Vyc31cbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdpZHRoOiBNYXRoLmZsb29yKHJvb3QuZHVyYXRpb24gKiBzY2FsZSksXG4gICAgICAgICAgfSBhcyBDU1NQcm9wZXJ0aWVzXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAge2V2ZW50c1dpdGhWZXJ0aWNhbExpbmVzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goc3R5bGVzLmV2ZW50TWFya2VyKX1cbiAgICAgICAgICAgICAga2V5PXt4LmtleX1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBsZWZ0OiBNYXRoLmZsb29yKCh4LnRpbWVzdGFtcCAtIHJvb3Quc3RhcnRUaW1lKSAqIHNjYWxlKSxcbiAgICAgICAgICAgICAgICAuLi4oeC5ldmVudC5jb2xvciAmJiB7IGJvcmRlckxlZnRDb2xvcjogeC5ldmVudC5jb2xvciB9KSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgSE9WRVJfT1ZFUlNDQU4gPSAyO1xuXG5pbnRlcmZhY2UgVHJhY2twYWRab29tIHtcbiAgYW5jaG9yWDogbnVtYmVyO1xuICBhbmNob3JUOiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDdXJzb3JNYXJrZXIoe1xuICBtZW1vQ2FjaGVSZWYsXG4gIHRpbWVsaW5lUmVmLFxuICByb290LFxuICBzcGFucyxcbiAgZXZlbnRzLFxuICBzY2FsZSxcbiAgZGlzcGF0Y2gsXG4gIHNjcm9sbFNuYXBzaG90UmVmLFxufToge1xuICBtZW1vQ2FjaGVSZWY6IE11dGFibGVSZWZPYmplY3Q8TWVtb0NhY2hlPjtcbiAgdGltZWxpbmVSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgcm9vdDogUm9vdE5vZGU7XG4gIHNwYW5zOiBWaXNpYmxlU3BhbltdO1xuICBldmVudHM6IFZpc2libGVTcGFuRXZlbnRbXTtcbiAgc2NhbGU6IG51bWJlcjtcbiAgZGlzcGF0Y2g6IERpc3BhdGNoPFRyYWNlVmlld2VyQWN0aW9uPjtcbiAgc2Nyb2xsU25hcHNob3RSZWY6IE11dGFibGVSZWZPYmplY3Q8U2Nyb2xsU25hcHNob3QgfCB1bmRlZmluZWQ+O1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IGhhc0VudGVyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBzcGFuc1JlZiA9IHVzZVJlZihzcGFucyk7XG4gIHNwYW5zUmVmLmN1cnJlbnQgPSBzcGFucztcbiAgY29uc3QgZXZlbnRzUmVmID0gdXNlUmVmKGV2ZW50cyk7XG4gIGV2ZW50c1JlZi5jdXJyZW50ID0gZXZlbnRzO1xuICBjb25zdCBsYWJlbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgc3R5bGU6IGxhYmVsU3R5bGUsIHNldFN0eWxlOiBzZXRMYWJlbFN0eWxlIH0gPVxuICAgIHVzZUltbWVkaWF0ZVN0eWxlKGxhYmVsUmVmKTtcbiAgY29uc3QgbGFiZWxUZXh0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB7IHN0eWxlLCBzZXRTdHlsZSB9ID0gdXNlSW1tZWRpYXRlU3R5bGUocmVmKTtcbiAgY29uc3QgcmVjdFJlZiA9IHVzZVJlZjxET01SZWN0Pih1bmRlZmluZWQpO1xuXG4gIGNvbnN0IHNlbGVjdGlvblJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHsgc3R5bGU6IHNlbGVjdGlvblN0eWxlLCBzZXRTdHlsZTogc2V0U2VsZWN0aW9uU3R5bGUgfSA9XG4gICAgdXNlSW1tZWRpYXRlU3R5bGUoc2VsZWN0aW9uUmVmKTtcblxuICBjb25zdCB4UmVmID0gdXNlUmVmKDApO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0ICR0aW1lbGluZSA9IHRpbWVsaW5lUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCEkdGltZWxpbmUpIHJldHVybjtcblxuICAgIGxldCB4ID0geFJlZi5jdXJyZW50O1xuICAgIGxldCB4U3RhcnQgPSAwO1xuICAgIGxldCBpc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgbGV0IGlzRXh0ZXJuYWxEcmFnID0gZmFsc2U7XG4gICAgbGV0IGhhc01vdmVkID0gZmFsc2U7XG4gICAgbGV0IGlzUmlnaHRDbGljayA9IGZhbHNlO1xuICAgIGxldCBzY3JvbGxYID0gMDtcbiAgICBsZXQgc2Nyb2xsWSA9IDA7XG4gICAgY29uc3QgaG92ZXJTdGFydFQgPSBEYXRlLm5vdygpICsgNTAwO1xuICAgIGNvbnN0IHVwZGF0ZVJlY3QgPSAoKTogdm9pZCA9PiB7XG4gICAgICBpZiAocmVjdFJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgICByZWN0UmVmLmN1cnJlbnQgPSAkdGltZWxpbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFJvd0Zyb21ZID0gKHk6IG51bWJlcik6IG51bWJlciA9PiB7XG4gICAgICBpZiAoIXJlY3RSZWYuY3VycmVudCkgcmV0dXJuIDA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoeSAtIE1BUktFUl9IRUlHSFQgLSBUSU1FTElORV9QQURESU5HKSAvIChST1dfSEVJR0hUICsgUk9XX1BBRERJTkcpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBjb25zdCByZW1vdmVIb3ZlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGNhY2hlID0gbWVtb0NhY2hlUmVmLmN1cnJlbnQ7XG4gICAgICAvLyBSZW1vdmUgaG92ZXIgc3R5bGluZyBmcm9tIGFueSBlbGVtZW50cyB0aGF0IGhhdmUgaXRcbiAgICAgIGZvciAoY29uc3Qgc3BhbiBvZiBzcGFuc1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGlmICghc3Bhbi5pc0hvdmVyZWQpIGNvbnRpbnVlO1xuICAgICAgICBzcGFuLmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICBjYWNoZS5zZXQoc3Bhbi5zcGFuLnNwYW5JZCwge30pO1xuICAgICAgfVxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnZm9yY2VSZW5kZXInLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGxldCBuZXh0RnJhbWUgPSAwO1xuICAgIGNvbnN0IG9uRnJhbWUgPSAoKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIWhhc0VudGVyZWRSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgICAgaWYgKCFyZWN0UmVmLmN1cnJlbnQpIHVwZGF0ZVJlY3QoKTtcbiAgICAgIGNvbnN0IHJlY3QgPSByZWN0UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoIXJlY3QpIHJldHVybjtcblxuICAgICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxUb3AgfSA9ICR0aW1lbGluZTtcblxuICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KFxuICAgICAgICAwLFxuICAgICAgICBNYXRoLm1pbihcbiAgICAgICAgICB4ICsgc2Nyb2xsTGVmdCAtIHJlY3QubGVmdCAtIFRJTUVMSU5FX1BBRERJTkcsXG4gICAgICAgICAgcm9vdC5kdXJhdGlvbiAqIHNjYWxlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBjb25zdCBsZWZ0U3R5bGUgPSBgJHtsZWZ0IC0gc2Nyb2xsTGVmdCArIFRJTUVMSU5FX1BBRERJTkd9cHhgO1xuICAgICAgc2V0U3R5bGUoJ2xlZnQnLCBsZWZ0U3R5bGUpO1xuICAgICAgc2V0TGFiZWxTdHlsZSgnbGVmdCcsIGxlZnRTdHlsZSk7XG5cbiAgICAgIGNvbnN0IHQgPSByb290LnN0YXJ0VGltZSArIGxlZnQgLyBzY2FsZTtcbiAgICAgIGNvbnN0IGxhYmVsVCA9IHQgLSByb290LnN0YXJ0VGltZTtcbiAgICAgIGlmIChsYWJlbFQgPCAwIHx8IGxhYmVsVCA+IHJvb3QuZHVyYXRpb24pIHtcbiAgICAgICAgbGFiZWxUZXh0UmVmLmN1cnJlbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS10ZXh0Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYWJlbFRleHRSZWYuY3VycmVudD8uc2V0QXR0cmlidXRlKFxuICAgICAgICAgICdkYXRhLXRleHQnLFxuICAgICAgICAgIGZvcm1hdFRpbWVTZWxlY3Rpb24obGFiZWxUKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNEcmFnZ2luZykge1xuICAgICAgICBjb25zdCB4RGVsdGEgPSB4IC0geFN0YXJ0O1xuICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGguYWJzKHhEZWx0YSk7XG4gICAgICAgIGlmICghaGFzTW92ZWQpIHtcbiAgICAgICAgICBpZiAod2lkdGggPCA0KSByZXR1cm47XG4gICAgICAgICAgaGFzTW92ZWQgPSB0cnVlO1xuICAgICAgICAgIHNldFNlbGVjdGlvblN0eWxlKCdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICAgICAgICByZW1vdmVIb3ZlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHhEZWx0YSA+IDApIHtcbiAgICAgICAgICBzZXRTZWxlY3Rpb25TdHlsZSgnbGVmdCcsICcnKTtcbiAgICAgICAgICBzZXRTZWxlY3Rpb25TdHlsZSgncmlnaHQnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFNlbGVjdGlvblN0eWxlKCdsZWZ0JywgJzAnKTtcbiAgICAgICAgICBzZXRTZWxlY3Rpb25TdHlsZSgncmlnaHQnLCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0U2VsZWN0aW9uU3R5bGUoJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcblxuICAgICAgICBjb25zdCBsZWZ0U3RhcnQgPSBNYXRoLm1heChcbiAgICAgICAgICAwLFxuICAgICAgICAgIE1hdGgubWluKFxuICAgICAgICAgICAgeFN0YXJ0ICsgc2Nyb2xsTGVmdCAtIHJlY3QubGVmdCAtIFRJTUVMSU5FX1BBRERJTkcsXG4gICAgICAgICAgICByb290LmR1cmF0aW9uICogc2NhbGVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGxhYmVsVFN0YXJ0ID0gbGVmdFN0YXJ0IC8gc2NhbGU7XG4gICAgICAgIGxldCB0MTogbnVtYmVyO1xuICAgICAgICBsZXQgdDI6IG51bWJlcjtcbiAgICAgICAgaWYgKGxhYmVsVFN0YXJ0IDwgbGFiZWxUKSB7XG4gICAgICAgICAgdDEgPSBsYWJlbFRTdGFydDtcbiAgICAgICAgICB0MiA9IGxhYmVsVDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0MSA9IGxhYmVsVDtcbiAgICAgICAgICB0MiA9IGxhYmVsVFN0YXJ0O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGlvblJlZi5jdXJyZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ2RhdGEtcmFuZ2UnLFxuICAgICAgICAgIGAke2Zvcm1hdFRpbWVTZWxlY3Rpb24odDEpfSDigJQgJHtmb3JtYXRUaW1lU2VsZWN0aW9uKHQyKX1gXG4gICAgICAgICk7XG4gICAgICAgIHNlbGVjdGlvblJlZi5jdXJyZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ2RhdGEtZHVyYXRpb24nLFxuICAgICAgICAgIGAke2Zvcm1hdFRpbWVTZWxlY3Rpb24odDIgLSB0MSl9IHNlbGVjdGVkYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoRGF0ZS5ub3coKSA8IGhvdmVyU3RhcnRUKSB7XG4gICAgICAgIG5leHRGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShvbkZyYW1lKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2Nyb2xsTGVmdCAhPT0gc2Nyb2xsWCB8fCBzY3JvbGxUb3AgIT09IHNjcm9sbFkpIHtcbiAgICAgICAgc2Nyb2xsWCA9IHNjcm9sbExlZnQ7XG4gICAgICAgIHNjcm9sbFkgPSBzY3JvbGxUb3A7XG4gICAgICAgIG5leHRGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShvbkZyYW1lKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoeCAtIHJlY3QubGVmdCA8IDEyOCkge1xuICAgICAgICBsYWJlbFRleHRSZWYuY3VycmVudD8uc2V0QXR0cmlidXRlKCdkYXRhLWFsaWduJywgJ2xlZnQnKTtcbiAgICAgIH0gZWxzZSBpZiAoeCAtIHJlY3QubGVmdCA+IHJlY3Qud2lkdGggLSAxMjgpIHtcbiAgICAgICAgbGFiZWxUZXh0UmVmLmN1cnJlbnQ/LnNldEF0dHJpYnV0ZSgnZGF0YS1hbGlnbicsICdyaWdodCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFiZWxUZXh0UmVmLmN1cnJlbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hbGlnbicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWhhc01vdmVkICYmICFpc0V4dGVybmFsRHJhZykge1xuICAgICAgICBjb25zdCBjYWNoZSA9IG1lbW9DYWNoZVJlZi5jdXJyZW50O1xuXG4gICAgICAgIC8vIFNwYW4gSG92ZXJcbiAgICAgICAgY29uc3Qgcm93TWluID0gZ2V0Um93RnJvbVkoc2Nyb2xsVG9wKSAtIEhPVkVSX09WRVJTQ0FOO1xuICAgICAgICBjb25zdCByb3dNYXggPSBnZXRSb3dGcm9tWShzY3JvbGxUb3AgKyByZWN0LmhlaWdodCkgKyBIT1ZFUl9PVkVSU0NBTjtcbiAgICAgICAgZm9yIChjb25zdCBzcGFuIG9mIHNwYW5zUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBjb25zdCBpc0hvdmVyZWQgPVxuICAgICAgICAgICAgc3Bhbi5yb3cgPj0gcm93TWluICYmXG4gICAgICAgICAgICBzcGFuLnJvdyA8PSByb3dNYXggJiZcbiAgICAgICAgICAgIHQgPj0gc3Bhbi5zdGFydFRpbWUgJiZcbiAgICAgICAgICAgIHQgPD0gc3Bhbi5lbmRUaW1lO1xuICAgICAgICAgIGlmIChzcGFuLmlzSG92ZXJlZCA9PT0gaXNIb3ZlcmVkKSBjb250aW51ZTtcbiAgICAgICAgICBzcGFuLmlzSG92ZXJlZCA9IGlzSG92ZXJlZDtcbiAgICAgICAgICBjYWNoZS5zZXQoc3Bhbi5zcGFuLnNwYW5JZCwge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXZlbnQgSG92ZXIg4oCUIG9ubHkgc2hvdyB0aGUgbmVhcmVzdCBldmVudCB3aGVuIG11bHRpcGxlIG92ZXJsYXBcbiAgICAgICAgY29uc3QgZXZlbnRTcHJlYWRQeCA9IDEyO1xuICAgICAgICBjb25zdCBldmVudFNwcmVhZE1zID0gZXZlbnRTcHJlYWRQeCAvIHNjYWxlO1xuICAgICAgICBsZXQgY2xvc2VzdEV2ZW50OiAodHlwZW9mIGV2ZW50c1JlZi5jdXJyZW50KVtudW1iZXJdIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGxldCBjbG9zZXN0RGlzdCA9IEluZmluaXR5O1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50c1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguYWJzKGV2ZW50LnRpbWVzdGFtcCAtIHQpO1xuICAgICAgICAgIGlmIChkaXN0IDw9IGV2ZW50U3ByZWFkTXMgJiYgZGlzdCA8IGNsb3Nlc3REaXN0KSB7XG4gICAgICAgICAgICBjbG9zZXN0RGlzdCA9IGRpc3Q7XG4gICAgICAgICAgICBjbG9zZXN0RXZlbnQgPSBldmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHNSZWYuY3VycmVudCkge1xuICAgICAgICAgIGNvbnN0IGlzSG92ZXJlZCA9IGV2ZW50ID09PSBjbG9zZXN0RXZlbnQ7XG4gICAgICAgICAgaWYgKGV2ZW50LmlzSG92ZXJlZCA9PT0gaXNIb3ZlcmVkKSBjb250aW51ZTtcbiAgICAgICAgICBldmVudC5pc0hvdmVyZWQgPSBpc0hvdmVyZWQ7XG4gICAgICAgICAgY29uc3QgJGV2ZW50ID0gZXZlbnQucmVmPy5jdXJyZW50O1xuICAgICAgICAgIGlmICghJGV2ZW50KSBjb250aW51ZTtcbiAgICAgICAgICAkZXZlbnQuc2V0QXR0cmlidXRlKCdkYXRhLWhvdmVyZWQnLCBTdHJpbmcoaXNIb3ZlcmVkKSk7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogJ2ZvcmNlUmVuZGVyJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBuZXh0RnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25GcmFtZSk7XG5cbiAgICBjb25zdCBvblBvaW50ZXJFbnRlciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09ICdtb3VzZScpIHJldHVybjtcbiAgICAgIGhhc0VudGVyZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfTtcbiAgICBjb25zdCBvblBvaW50ZXJMZWF2ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICghaGFzRW50ZXJlZFJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgICBoYXNFbnRlcmVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIHJlbW92ZUhvdmVyKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uTW91c2VNb3ZlID0gKHsgY2xpZW50WCB9OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICB4ID0gY2xpZW50WDtcbiAgICAgIHhSZWYuY3VycmVudCA9IHg7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShuZXh0RnJhbWUpO1xuICAgICAgbmV4dEZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uRnJhbWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBvbkNvbnRleHRNZW51ID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG4gICAgY29uc3Qgb25Nb3VzZURvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5idXR0b24gPT09IDIpIHtcbiAgICAgICAgaXNSaWdodENsaWNrID0gdHJ1ZTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzUmlnaHRDbGljayA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRpbWVsaW5lUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgeFN0YXJ0ID0geDtcbiAgICAgICAgaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc0V4dGVybmFsRHJhZyA9IHRydWU7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW1vdmVIb3Zlcik7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBvbk1vdXNlVXAgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBpc0V4dGVybmFsRHJhZyA9IGZhbHNlO1xuXG4gICAgICBpZiAoIWlzRHJhZ2dpbmcpIHJldHVybjtcbiAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgICAgaWYgKCFoYXNNb3ZlZCkgcmV0dXJuO1xuICAgICAgaGFzTW92ZWQgPSBmYWxzZTtcbiAgICAgIHNldFNlbGVjdGlvblN0eWxlKCdkaXNwbGF5JywgJycpO1xuICAgICAgc2V0U2VsZWN0aW9uU3R5bGUoJ2xlZnQnLCAnJyk7XG4gICAgICBzZXRTZWxlY3Rpb25TdHlsZSgncmlnaHQnLCAnJyk7XG4gICAgICBzZXRTZWxlY3Rpb25TdHlsZSgnd2lkdGgnLCAnJyk7XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgaWYgKGlzUmlnaHRDbGljaykge1xuICAgICAgICBpc1JpZ2h0Q2xpY2sgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlY3RSZWYuY3VycmVudCkgdXBkYXRlUmVjdCgpO1xuICAgICAgY29uc3QgcmVjdCA9IHJlY3RSZWYuY3VycmVudDtcbiAgICAgIGlmICghcmVjdCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB7IHNjcm9sbExlZnQgfSA9ICR0aW1lbGluZTtcblxuICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heChcbiAgICAgICAgMCxcbiAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgKHhTdGFydCArIHNjcm9sbExlZnQgLSByZWN0LmxlZnQgLSBUSU1FTElORV9QQURESU5HKSAvIHNjYWxlLFxuICAgICAgICAgIHJvb3QuZHVyYXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVuZCA9IE1hdGgubWF4KFxuICAgICAgICAwLFxuICAgICAgICBNYXRoLm1pbihcbiAgICAgICAgICAoeCArIHNjcm9sbExlZnQgLSByZWN0LmxlZnQgLSBUSU1FTElORV9QQURESU5HKSAvIHNjYWxlLFxuICAgICAgICAgIHJvb3QuZHVyYXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnc2NhbGVUb1JhbmdlJyxcbiAgICAgICAgdDE6IHN0YXJ0ICsgcm9vdC5zdGFydFRpbWUsXG4gICAgICAgIHQyOiBlbmQgKyByb290LnN0YXJ0VGltZSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBvbktleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmICghaXNEcmFnZ2luZykgcmV0dXJuO1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VzY2FwZScpIHJldHVybjtcblxuICAgICAgaXNSaWdodENsaWNrID0gdHJ1ZTtcbiAgICAgIG9uTW91c2VVcChldmVudCk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uV2luZG93U2Nyb2xsID0gKCk6IHZvaWQgPT4ge1xuICAgICAgcmVjdFJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgdHJhY2twYWRab29tUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShuZXh0RnJhbWUpO1xuICAgICAgbmV4dEZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uRnJhbWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBvblNjcm9sbCA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKG5leHRGcmFtZSk7XG4gICAgICBuZXh0RnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25GcmFtZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIC8vIE5PVEU6IEkgdHJpZWQgdG8gdXNlIHRoZSBlbnRyeSBmcm9tIHRoaXMgdG8gaW1tZWRpYXRlbHkgc2V0IHRoZSByZWN0LFxuICAgICAgLy8gYnV0IGZvciBzb21lIHJlYXNvbiBpdCBoYXMgZGlmZmVyZW50IGRpbWVuc2lvbnMgdGhhbiB0aGUgb25lIGZyb21cbiAgICAgIC8vIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgcmVjdFJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIG9ic2VydmVyLm9ic2VydmUoJHRpbWVsaW5lKTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbk1vdXNlTW92ZSk7XG4gICAgJHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51Jywgb25Db250ZXh0TWVudSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uTW91c2VEb3duKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG9uTW91c2VVcCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBvbk1vdXNlVXApO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duLCB0cnVlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dTY3JvbGwpO1xuICAgICR0aW1lbGluZS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCk7XG4gICAgJHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJlbnRlcicsIG9uUG9pbnRlckVudGVyKTtcbiAgICAkdGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgb25Qb2ludGVyTGVhdmUpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbk1vdXNlTW92ZSk7XG4gICAgICAkdGltZWxpbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvbkNvbnRleHRNZW51KTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvbk1vdXNlRG93bik7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG9uTW91c2VVcCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIG9uTW91c2VVcCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uS2V5RG93biwgdHJ1ZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25XaW5kb3dTY3JvbGwpO1xuICAgICAgJHRpbWVsaW5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKTtcbiAgICAgICR0aW1lbGluZS5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCBvblBvaW50ZXJFbnRlcik7XG4gICAgICAkdGltZWxpbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgb25Qb2ludGVyTGVhdmUpO1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUobmV4dEZyYW1lKTtcbiAgICAgIHhSZWYuY3VycmVudCA9IHg7XG4gICAgICByZW1vdmVIb3ZlcigpO1xuICAgIH07XG4gIH0sIFtcbiAgICBkaXNwYXRjaCxcbiAgICByb290LFxuICAgIHNjYWxlLFxuICAgIHNldFN0eWxlLFxuICAgIHNldExhYmVsU3R5bGUsXG4gICAgc2V0U2VsZWN0aW9uU3R5bGUsXG4gICAgbWVtb0NhY2hlUmVmLFxuICAgIHRpbWVsaW5lUmVmLFxuICAgIHNjcm9sbFNuYXBzaG90UmVmLFxuICBdKTtcblxuICBjb25zdCB0cmFja3BhZFpvb21SZWYgPSB1c2VSZWY8VHJhY2twYWRab29tPih1bmRlZmluZWQpO1xuICB1c2VUcmFja3BhZFpvb20oKGRlbHRhKSA9PiB7XG4gICAgY29uc3QgJHRpbWVsaW5lID0gdGltZWxpbmVSZWYuY3VycmVudDtcbiAgICBpZiAoISR0aW1lbGluZSkgcmV0dXJuO1xuXG4gICAgcmVjdFJlZi5jdXJyZW50ID8/PSAkdGltZWxpbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcmVjdCA9IHJlY3RSZWYuY3VycmVudDtcbiAgICBjb25zdCBhbmNob3JYID0gTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgTWF0aC5taW4oXG4gICAgICAgIHhSZWYuY3VycmVudCAtIHJlY3QubGVmdCAtIFRJTUVMSU5FX1BBRERJTkcsXG4gICAgICAgIHJlY3Qud2lkdGggLSAyICogVElNRUxJTkVfUEFERElOR1xuICAgICAgKVxuICAgICk7XG5cbiAgICBsZXQgYW5jaG9yVCA9IDA7XG4gICAgbGV0IGV4aXN0aW5nID0gdHJhY2twYWRab29tUmVmLmN1cnJlbnQ7XG4gICAgaWYgKGV4aXN0aW5nPy5hbmNob3JYID09PSBhbmNob3JYKSB7XG4gICAgICBhbmNob3JUID0gZXhpc3RpbmcuYW5jaG9yVDtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5jaG9yVCA9ICgkdGltZWxpbmUuc2Nyb2xsTGVmdCArIGFuY2hvclgpIC8gc2NhbGU7XG4gICAgICBleGlzdGluZyA9IHtcbiAgICAgICAgYW5jaG9yVCxcbiAgICAgICAgYW5jaG9yWCxcbiAgICAgIH07XG4gICAgICB0cmFja3BhZFpvb21SZWYuY3VycmVudCA9IGV4aXN0aW5nO1xuICAgIH1cblxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICd0cmFja3BhZFNjYWxlJyxcbiAgICAgIGRlbHRhOiBkZWx0YSAvIDY0LFxuICAgICAgYW5jaG9yVCxcbiAgICAgIGFuY2hvclgsXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY3Vyc29yTWFya2VyU3RpY2t5UGFyZW50fT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmN1cnNvck1hcmtlckxhYmVsQ29udGFpbmVyfVxuICAgICAgICAgIHJlZj17bGFiZWxSZWZ9XG4gICAgICAgICAgc3R5bGU9e2xhYmVsU3R5bGV9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmN1cnNvck1hcmtlckxhYmVsfSByZWY9e2xhYmVsVGV4dFJlZn0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY3Vyc29yTWFya2VyU3RpY2t5UGFyZW50fT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jdXJzb3JNYXJrZXJDb250YWluZXJ9IHJlZj17cmVmfSBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY3Vyc29yTWFya2VyfT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuY3Vyc29yU2VsZWN0aW9ufVxuICAgICAgICAgICAgICByZWY9e3NlbGVjdGlvblJlZn1cbiAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdGlvblN0eWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn1cbiJdfQ==
@@ -282,4 +282,4 @@ export const SpanEventComponent = memo(function SpanEventComponent({ event, node
282
282
  top,
283
283
  }, children: [_jsx("div", { className: clsx(styles.hoverInfo, isLeftAligned ? styles.alignStart : styles.alignEnd), children: asBoundary ? (_jsxs(_Fragment, { children: [_jsx("span", { className: styles.eventName, children: displayLabel }), _jsx("span", { className: styles.eventTimestamp, children: timestamp }), phaseDuration ? (_jsxs(_Fragment, { children: [_jsx("span", { className: styles.eventName, children: phaseLabel }), _jsx("span", { className: styles.eventTimestamp, children: phaseDuration })] })) : null] })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: styles.eventName, children: name }), _jsx("span", { className: styles.eventTimestamp, children: timestamp })] })) }), asBoundary ? (_jsx("div", { className: styles.boundaryLine })) : (_jsx("div", { className: styles.eventDiamond }))] }));
284
284
  });
285
- //# sourceMappingURL=node.js.map
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RyYWNlLXZpZXdlci9jb21wb25lbnRzL25vZGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDMUQsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUM7QUFVaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFHTCxlQUFlLEVBQ2YsYUFBYSxHQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFjLEVBQVUsRUFBRTtJQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFjLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLFNBQVMsb0JBQW9CLENBQzNCLFlBQTBCLEVBQzFCLElBQWlCO0lBRWpCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNO1FBQUUsT0FB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c291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgdHlwZSB7IENTU1Byb3BlcnRpZXMsIE11dGFibGVSZWZPYmplY3QsIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vdHJhY2Utdmlld2VyLm1vZHVsZS5jc3MnO1xuaW1wb3J0IHR5cGUge1xuICBNZW1vQ2FjaGUsXG4gIE1lbW9DYWNoZUtleSxcbiAgUm9vdE5vZGUsXG4gIFNjcm9sbFNuYXBzaG90LFxuICBTcGFuTm9kZSxcbiAgVmlzaWJsZVNwYW4sXG4gIFZpc2libGVTcGFuRXZlbnQsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE1BUktFUl9IRUlHSFQsIFJPV19IRUlHSFQsIFJPV19QQURESU5HIH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb24sIGdldEhpZ2hSZXNJbk1zIH0gZnJvbSAnLi4vdXRpbC90aW1pbmcnO1xuaW1wb3J0IHsgU3BhbkNvbnRlbnQgfSBmcm9tICcuL3NwYW4tY29udGVudCc7XG5pbXBvcnQgeyBjb21wdXRlU2VnbWVudHMgfSBmcm9tICcuL3NwYW4tc2VnbWVudHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBSZXNvdXJjZVR5cGUsXG4gIHR5cGUgU3BhbkxheW91dCxcbiAgZ2V0UmVzb3VyY2VUeXBlLFxuICBnZXRTcGFuTGF5b3V0LFxufSBmcm9tICcuL3NwYW4tc3RyYXRlZ2llcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRTcGFuQ29sb3JDbGFzc05hbWUgPSAobm9kZTogU3Bhbk5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAobm9kZS5pc1ZlcmNlbCkgcmV0dXJuIFN0cmluZyhzdHlsZXMuY29sb3JWZXJjZWwpO1xuICByZXR1cm4gU3RyaW5nKHN0eWxlc1tgY29sb3Ike25vZGUucmVzb3VyY2VJbmRleCAlIDV9YCBhcyAnY29sb3IwJ10pO1xufTtcblxuZnVuY3Rpb24gZ2V0VGVybWluYWxUaW1lc3RhbXAoXG4gIHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlLFxuICBub2RlOiBWaXNpYmxlU3BhblxuKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZXZlbnRzID0gbm9kZS5ldmVudHM7XG4gIGlmICghZXZlbnRzPy5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgc3dpdGNoIChyZXNvdXJjZVR5cGUpIHtcbiAgICBjYXNlICdob29rJzpcbiAgICAgIGZvciAobGV0IGkgPSBldmVudHMubGVuZ3RoOyBpLS07ICkge1xuICAgICAgICBpZiAoZXZlbnRzW2ldLmV2ZW50Lm5hbWUgPT09ICdob29rX2Rpc3Bvc2VkJykge1xuICAgICAgICAgIHJldHVybiBldmVudHNbaV0udGltZXN0YW1wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNhc2UgJ3NsZWVwJzpcbiAgICAgIGZvciAobGV0IGkgPSBldmVudHMubGVuZ3RoOyBpLS07ICkge1xuICAgICAgICBpZiAoZXZlbnRzW2ldLmV2ZW50Lm5hbWUgPT09ICd3YWl0X2NvbXBsZXRlZCcpIHtcbiAgICAgICAgICByZXR1cm4gZXZlbnRzW2ldLnRpbWVzdGFtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjYXNlICdydW4nOlxuICAgICAgZm9yIChsZXQgaSA9IGV2ZW50cy5sZW5ndGg7IGktLTsgKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBldmVudHNbaV0uZXZlbnQubmFtZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG5hbWUgPT09ICdydW5fY29tcGxldGVkJyB8fFxuICAgICAgICAgIG5hbWUgPT09ICdydW5fZmFpbGVkJyB8fFxuICAgICAgICAgIG5hbWUgPT09ICdydW5fY2FuY2VsbGVkJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZXZlbnRzW2ldLnRpbWVzdGFtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjYXNlICdzdGVwJzpcbiAgICAgIGZvciAobGV0IGkgPSBldmVudHMubGVuZ3RoOyBpLS07ICkge1xuICAgICAgICBjb25zdCBuYW1lID0gZXZlbnRzW2ldLmV2ZW50Lm5hbWU7XG4gICAgICAgIGlmIChuYW1lID09PSAnc3RlcF9jb21wbGV0ZWQnIHx8IG5hbWUgPT09ICdzdGVwX2ZhaWxlZCcpIHtcbiAgICAgICAgICByZXR1cm4gZXZlbnRzW2ldLnRpbWVzdGFtcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmFtZSA9PT0gJ3N0ZXBfc3RhcnRlZCcgfHwgbmFtZSA9PT0gJ3N0ZXBfcmV0cnlpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgU3Bhbk5vZGVzID0gbWVtbyhmdW5jdGlvbiBTcGFuTm9kZXMoe1xuICByb290LFxuICBzY2FsZSxcbiAgc3BhbnMsXG4gIGlzTGl2ZSA9IGZhbHNlLFxuICBzY3JvbGxTbmFwc2hvdFJlZixcbiAgY2FjaGUsXG4gIGN1c3RvbVNwYW5DbGFzc05hbWVGdW5jLFxuICBjdXN0b21TcGFuRXZlbnRDbGFzc05hbWVGdW5jLFxufToge1xuICByb290OiBSb290Tm9kZTtcbiAgc2NhbGU6IG51bWJlcjtcbiAgc3BhbnM6IFZpc2libGVTcGFuW107XG4gIGlzTGl2ZT86IGJvb2xlYW47XG4gIHNjcm9sbFNuYXBzaG90UmVmOiBNdXRhYmxlUmVmT2JqZWN0PFNjcm9sbFNuYXBzaG90IHwgdW5kZWZpbmVkPjtcbiAgLyoqIE5vdCB1c2VkIGluIHRoZSBib2R5IOKAlCBleGlzdHMgc29sZWx5IHRvIGJ1c3QgUmVhY3QubWVtbyB3aGVuIHRoZSBnbG9iYWwgbWVtbyBjYWNoZSBjaGFuZ2VzLiAqL1xuICBjYWNoZUtleT86IE1lbW9DYWNoZUtleTtcbiAgY2FjaGU6IE1lbW9DYWNoZTtcbiAgY3VzdG9tU3BhbkNsYXNzTmFtZUZ1bmM/OiAoc3BhbjogU3Bhbk5vZGUpID0+IHN0cmluZztcbiAgY3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lRnVuYz86IChldmVudDogVmlzaWJsZVNwYW5FdmVudCkgPT4gc3RyaW5nO1xufSkge1xuICByZXR1cm4gc3BhbnMubWFwKCh4KSA9PiAoXG4gICAgPFNwYW5Db21wb25lbnRcbiAgICAgIGNhY2hlS2V5PXtjYWNoZS5nZXQoeC5zcGFuLnNwYW5JZCl9XG4gICAgICBjdXN0b21TcGFuRXZlbnRDbGFzc05hbWVGdW5jPXtjdXN0b21TcGFuRXZlbnRDbGFzc05hbWVGdW5jfVxuICAgICAgY3VzdG9tU3BhbkNsYXNzTmFtZUZ1bmM9e2N1c3RvbVNwYW5DbGFzc05hbWVGdW5jfVxuICAgICAga2V5PXt4LnNwYW4uc3BhbklkfVxuICAgICAgbm9kZT17eH1cbiAgICAgIHJvb3Q9e3Jvb3R9XG4gICAgICBzY2FsZT17c2NhbGV9XG4gICAgICB0cmFjZUlzTGl2ZT17aXNMaXZlfVxuICAgICAgc2Nyb2xsU25hcHNob3RSZWY9e3Njcm9sbFNuYXBzaG90UmVmfVxuICAgIC8+XG4gICkpO1xufSk7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQ29tcHV0ZSBpbmxpbmUgc3R5bGVzIGZyb20gYSBTcGFuTGF5b3V0XG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZnVuY3Rpb24gZ2V0U3BhblN0eWxlKFxuICBsYXlvdXQ6IFNwYW5MYXlvdXQsXG4gIG5vZGU6IFZpc2libGVTcGFuLFxuICByb290OiBSb290Tm9kZSxcbiAgc2NhbGU6IG51bWJlclxuKTogQ1NTUHJvcGVydGllcyB7XG4gIC8vIFVzZSBpc0V4cGFuZGVkIChob3ZlcmVkIG9yIHNlbGVjdGVkKSBmb3Igd2lkdGggZXhwYW5zaW9uIHNvIHRoYXRcbiAgLy8gc2VsZWN0ZWQgc21hbGwgc3BhbnMgc3RheSBleHBhbmRlZCBhbmQgc2hvdyB0aGVpciBuYW1lLlxuICBjb25zdCBleHBhbmRlZCA9IGxheW91dC5pc0V4cGFuZGVkO1xuICByZXR1cm4ge1xuICAgIC8vIFVzZSBhY3R1YWxXaWR0aCBmb3IgQ1NTIHZhcmlhYmxlIHNvIGhvdmVyIGV4cGFuc2lvbiBpcyBhY2N1cmF0ZVxuICAgICctLXNwYW4td2lkdGgnOiBgJHtNYXRoLm1heChsYXlvdXQuYWN0dWFsV2lkdGgsIDEpfXB4YCxcbiAgICBtaW5XaWR0aDogZXhwYW5kZWQgPyBsYXlvdXQud2lkdGggOiB1bmRlZmluZWQsXG4gICAgd2lkdGg6IGV4cGFuZGVkID8gdW5kZWZpbmVkIDogbGF5b3V0LndpZHRoLFxuICAgIGhlaWdodDogbGF5b3V0LmhlaWdodCxcbiAgICBtYXhXaWR0aDpcbiAgICAgIGV4cGFuZGVkICYmICFsYXlvdXQuaXNOZWFyUmlnaHRTaWRlXG4gICAgICAgID8gKHJvb3QuZW5kVGltZSAtIG5vZGUuc3RhcnRUaW1lKSAqIHNjYWxlXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIGNvbnRhaW5JbnRyaW5zaWNXaWR0aDogZXhwYW5kZWQgPyB1bmRlZmluZWQgOiBsYXlvdXQud2lkdGgsXG4gICAgY29udGFpbkludHJpbnNpY0hlaWdodDogbGF5b3V0LmhlaWdodCxcbiAgICBsZWZ0OiBsYXlvdXQuaXNOZWFyUmlnaHRTaWRlID8gdW5kZWZpbmVkIDogbGF5b3V0LmxlZnQsXG4gICAgcmlnaHQ6IGxheW91dC5pc05lYXJSaWdodFNpZGVcbiAgICAgID8gKHJvb3QuZW5kVGltZSAtIG5vZGUuZW5kVGltZSkgKiBzY2FsZVxuICAgICAgOiB1bmRlZmluZWQsXG4gICAgdG9wOiBsYXlvdXQudG9wLFxuICB9IGFzIENTU1Byb3BlcnRpZXM7XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU3BhbkNvbXBvbmVudFxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBjb25zdCBTcGFuQ29tcG9uZW50ID0gbWVtbyhmdW5jdGlvbiBTcGFuQ29tcG9uZW50KHtcbiAgbm9kZSxcbiAgcm9vdCxcbiAgc2NhbGUsXG4gIHRyYWNlSXNMaXZlID0gZmFsc2UsXG4gIHNjcm9sbFNuYXBzaG90UmVmLFxuICBjdXN0b21TcGFuQ2xhc3NOYW1lRnVuYyxcbiAgY3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lRnVuYyxcbn06IHtcbiAgbm9kZTogVmlzaWJsZVNwYW47XG4gIHJvb3Q6IFJvb3ROb2RlO1xuICBzY2FsZTogbnVtYmVyO1xuICB0cmFjZUlzTGl2ZT86IGJvb2xlYW47XG4gIHNjcm9sbFNuYXBzaG90UmVmOiBNdXRhYmxlUmVmT2JqZWN0PFNjcm9sbFNuYXBzaG90IHwgdW5kZWZpbmVkPjtcbiAgLyoqIE5vdCB1c2VkIGluIHRoZSBib2R5IOKAlCBleGlzdHMgc29sZWx5IHRvIGJ1c3QgUmVhY3QubWVtbyBmb3IgdGhpcyBzcGFuLiAqL1xuICBjYWNoZUtleT86IE1lbW9DYWNoZUtleTtcbiAgY3VzdG9tU3BhbkNsYXNzTmFtZUZ1bmM/OiAoc3BhbjogU3Bhbk5vZGUpID0+IHN0cmluZztcbiAgY3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lRnVuYz86IChldmVudDogVmlzaWJsZVNwYW5FdmVudCkgPT4gc3RyaW5nO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBub2RlLnJlZiA9IHJlZjtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbm9kZS5yZWYgPSB1bmRlZmluZWQ7XG4gICAgfTtcbiAgfSwgW25vZGVdKTtcblxuICBjb25zdCB7IHNwYW4gfSA9IG5vZGU7XG4gIGNvbnN0IHJlc291cmNlVHlwZSA9IGdldFJlc291cmNlVHlwZShub2RlKTtcbiAgY29uc3QgW2xpdmVOb3csIHNldExpdmVOb3ddID0gdXNlU3RhdGUoMCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjbGFzcyBuYW1lIGZyb20gY2FsbGJhY2sgaWYgcHJvdmlkZWRcbiAgY29uc3QgY3VzdG9tQ2xhc3NOYW1lID0gY3VzdG9tU3BhbkNsYXNzTmFtZUZ1bmNcbiAgICA/IGN1c3RvbVNwYW5DbGFzc05hbWVGdW5jKG5vZGUpXG4gICAgOiAnJztcblxuICAvLyBXb3JrZmxvdyBzcGFuIHR5cGVzIHVzZSBjb2xvcmVkIHNlZ21lbnRzICsgYm91bmRhcnkgbGluZSBtYXJrZXJzXG4gIC8vIEdlbmVyaWMgT1RFTCBzcGFucyB1c2UgZGlhbW9uZCBldmVudCBtYXJrZXJzXG4gIGNvbnN0IGlzV29ya2Zsb3dTcGFuID0gcmVzb3VyY2VUeXBlICE9PSAnZGVmYXVsdCc7XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgc3BhbiBpcyBzdGlsbCBhY3RpdmUgKGxpdmUpLiBXZSByZXF1aXJlIHRoZSBwYXJlbnQgcnVuXG4gIC8vIHRvIGJlIGV4cGxpY2l0bHkgbGl2ZSB0byBhdm9pZCBjb21wbGV0ZWQvY2FuY2VsbGVkIHRyYWNlcyBjb250aW51aW5nIHRvXG4gIC8vIGdyb3cgZHVlIHRvIHRpbWluZyBoZXVyaXN0aWNzLlxuICBjb25zdCBkYXRhID0gc3Bhbi5hdHRyaWJ1dGVzPy5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICBjb25zdCB0ZXJtaW5hbFRpbWVzdGFtcCA9IGdldFRlcm1pbmFsVGltZXN0YW1wKHJlc291cmNlVHlwZSwgbm9kZSk7XG4gIGNvbnN0IGhhc1Rlcm1pbmFsRXZlbnQgPSB0ZXJtaW5hbFRpbWVzdGFtcCAhPSBudWxsO1xuICBjb25zdCBpc0NvbXBsZXRlZEJ5RGF0YSA9XG4gICAgcmVzb3VyY2VUeXBlID09PSAnaG9vaydcbiAgICAgID8gQm9vbGVhbihkYXRhPy5kaXNwb3NlZEF0KVxuICAgICAgOiBCb29sZWFuKGRhdGE/LmNvbXBsZXRlZEF0KTtcbiAgY29uc3QgaXNDb21wbGV0ZWQgPSBpc0NvbXBsZXRlZEJ5RGF0YSB8fCBoYXNUZXJtaW5hbEV2ZW50O1xuICBjb25zdCBpc0xpdmUgPSB0cmFjZUlzTGl2ZSAmJiBpc1dvcmtmbG93U3BhbiAmJiAhaXNDb21wbGV0ZWQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGl2ZSkgcmV0dXJuO1xuICAgIHNldExpdmVOb3coRGF0ZS5ub3coKSk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBzZXRMaXZlTm93KERhdGUubm93KCkpO1xuICAgIH0sIDI1MCk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICB9LCBbaXNMaXZlXSk7XG5cbiAgY29uc3QgY2Fub25pY2FsU3RhcnRUaW1lID0gZ2V0SGlnaFJlc0luTXMoc3Bhbi5zdGFydFRpbWUpO1xuICBjb25zdCBjYW5vbmljYWxFbmRUaW1lID0gZ2V0SGlnaFJlc0luTXMoc3Bhbi5lbmRUaW1lKTtcbiAgY29uc3QgY2Fub25pY2FsRHVyYXRpb24gPSBnZXRIaWdoUmVzSW5NcyhzcGFuLmR1cmF0aW9uKTtcbiAgY29uc3QgY2Fub25pY2FsQWN0aXZlU3RhcnRUaW1lID0gc3Bhbi5hY3RpdmVTdGFydFRpbWVcbiAgICA/IGdldEhpZ2hSZXNJbk1zKHNwYW4uYWN0aXZlU3RhcnRUaW1lKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGR1cmF0aW9uTXMgPVxuICAgIHRlcm1pbmFsVGltZXN0YW1wICE9IG51bGxcbiAgICAgID8gTWF0aC5tYXgoMCwgdGVybWluYWxUaW1lc3RhbXAgLSBjYW5vbmljYWxTdGFydFRpbWUpXG4gICAgICA6IGlzTGl2ZVxuICAgICAgICA/IE1hdGgubWF4KDAsIChsaXZlTm93IHx8IERhdGUubm93KCkpIC0gY2Fub25pY2FsU3RhcnRUaW1lKVxuICAgICAgICA6IGNhbm9uaWNhbER1cmF0aW9uO1xuICBjb25zdCBkdXJhdGlvbiA9IG5vZGUuaXNJbnN0cnVtZW50YXRpb25IaW50XG4gICAgPyAnR2V0IFN0YXJ0ZWQnXG4gICAgOiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbk1zKTtcbiAgY29uc3QgYmFzZU5vZGUgPSB7XG4gICAgLi4ubm9kZSxcbiAgICBzdGFydFRpbWU6IGNhbm9uaWNhbFN0YXJ0VGltZSxcbiAgICBlbmRUaW1lOiBjYW5vbmljYWxFbmRUaW1lLFxuICAgIGR1cmF0aW9uOiBjYW5vbmljYWxEdXJhdGlvbixcbiAgICBhY3RpdmVTdGFydFRpbWU6IGNhbm9uaWNhbEFjdGl2ZVN0YXJ0VGltZSxcbiAgfSBhcyBWaXNpYmxlU3BhbjtcbiAgY29uc3Qgc2VnbWVudE5vZGUgPSBpc0xpdmVcbiAgICA/ICh7XG4gICAgICAgIC4uLmJhc2VOb2RlLFxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb25NcyxcbiAgICAgICAgZW5kVGltZTogY2Fub25pY2FsU3RhcnRUaW1lICsgZHVyYXRpb25NcyxcbiAgICAgIH0gYXMgVmlzaWJsZVNwYW4pXG4gICAgOiBiYXNlTm9kZTtcbiAgY29uc3QgaGFzU2VnbWVudHMgPVxuICAgIGlzV29ya2Zsb3dTcGFuICYmXG4gICAgY29tcHV0ZVNlZ21lbnRzKHJlc291cmNlVHlwZSwgc2VnbWVudE5vZGUpLnNlZ21lbnRzLmxlbmd0aCA+IDA7XG4gIGNvbnN0IGxheW91dCA9IGdldFNwYW5MYXlvdXQoXG4gICAgcmVzb3VyY2VUeXBlLFxuICAgIHNlZ21lbnROb2RlLFxuICAgIHJvb3QsXG4gICAgc2NhbGUsXG4gICAgc2Nyb2xsU25hcHNob3RSZWZcbiAgKTtcblxuICAvLyBGb3IgbGl2ZSBzcGFucyB0aGUgZGF0YS1sZXZlbCBgbm9kZS5kdXJhdGlvbmAgY2FuIGJlIHN0YWxlIChmcm9tIHRoZSBsYXN0XG4gIC8vIGZldGNoKSB3aGlsZSB0aGUgdmlzdWFsIHdpZHRoIGlzIGdyb3dpbmcgdmlhIHJBRi4gUmVjb21wdXRlIGZyb20gcmVhbFxuICAvLyBlbGFwc2VkIHRpbWUgc28gdGhhdDpcbiAgLy8gIC0gaGVpZ2h0L2lzU21hbGwgY2xhc3NpZmljYXRpb24gc3RheXMgY29ycmVjdCAobm90IHNocnVua2VuIHRvIDQwJSlcbiAgLy8gIC0gUmVhY3QtcmVuZGVyZWQgd2lkdGggbWF0Y2hlcyB0aGUgckFGLWRyaXZlbiB3aWR0aCwgcHJldmVudGluZyBhIGJyaWVmXG4gIC8vICAgIHNocmlua+KGkmV4cGFuZCBmbGFzaCBvbiByZS1yZW5kZXIgdGhhdCBicmVha3MgY3Vyc29yIGhpdC10ZXN0aW5nXG4gIGlmIChpc0xpdmUpIHtcbiAgICBjb25zdCBlbGFwc2VkID0gZHVyYXRpb25NcztcbiAgICBjb25zdCBsaXZlQWN0dWFsV2lkdGggPSBlbGFwc2VkICogc2NhbGU7XG4gICAgY29uc3QgbGl2ZVdpZHRoID0gTWF0aC5tYXgobGl2ZUFjdHVhbFdpZHRoLCA0KTtcbiAgICBsYXlvdXQuYWN0dWFsV2lkdGggPSBsaXZlQWN0dWFsV2lkdGg7XG4gICAgbGF5b3V0LndpZHRoID0gbGl2ZVdpZHRoO1xuICAgIGxheW91dC5pc1NtYWxsID0gbGl2ZUFjdHVhbFdpZHRoIDwgNjQ7XG4gICAgbGF5b3V0LmlzSHVnZSA9IGxpdmVBY3R1YWxXaWR0aCA+PSA1MDA7XG4gICAgaWYgKCFsYXlvdXQuaXNTbWFsbCkge1xuICAgICAgbGF5b3V0LmhlaWdodCA9IFJPV19IRUlHSFQ7XG4gICAgICBsYXlvdXQudG9wID0gTUFSS0VSX0hFSUdIVCArIChST1dfSEVJR0hUICsgUk9XX1BBRERJTkcpICogc2VnbWVudE5vZGUucm93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNtb290aGx5IGdyb3cgYWN0aXZlIHNwYW4gd2lkdGggYXQgNjBmcHMgdXNpbmcgd2FsbCBjbG9jayB0aW1lXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpdmUgfHwgIXJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBsZXQgcmFmSWQgPSAwO1xuICAgIGNvbnN0IHRpY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCAkZWwgPSByZWYuY3VycmVudDtcbiAgICAgIGlmICghJGVsKSByZXR1cm47XG4gICAgICBjb25zdCBlbGFwc2VkID0gRGF0ZS5ub3coKSAtIGNhbm9uaWNhbFN0YXJ0VGltZTtcbiAgICAgIGNvbnN0IHcgPSBNYXRoLm1heChlbGFwc2VkICogc2NhbGUsIDIpO1xuICAgICAgJGVsLnN0eWxlLndpZHRoID0gYCR7d31weGA7XG4gICAgICAkZWwuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3Bhbi13aWR0aCcsIGAke3d9cHhgKTtcbiAgICAgIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2spO1xuICAgIH07XG4gICAgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljayk7XG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKTtcbiAgfSwgW2lzTGl2ZSwgY2Fub25pY2FsU3RhcnRUaW1lLCBzY2FsZV0pO1xuXG4gIGNvbnN0IHJlbmRlck5vZGUgPSBzZWdtZW50Tm9kZTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGFyaWEtbGFiZWw9e2Ake3NwYW4ubmFtZX0gLSAke2R1cmF0aW9ufWB9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICBzdHlsZXMuc3Bhbk5vZGUsXG4gICAgICAgICAgbGF5b3V0LmlzSHVnZSAmJiBzdHlsZXMuaHVnZSxcbiAgICAgICAgICBsYXlvdXQuaXNTbWFsbCAmJiBzdHlsZXMuc21hbGwsXG4gICAgICAgICAgbGF5b3V0LmlzRXhwYW5kZWQgJiYgc3R5bGVzLnhIb3ZlcixcbiAgICAgICAgICBub2RlLmlzSGlnaGxpZ2h0ZWRcbiAgICAgICAgICAgID8gc3R5bGVzLmNvbG9ySGlnaGxpZ2h0XG4gICAgICAgICAgICA6IGdldFNwYW5Db2xvckNsYXNzTmFtZShub2RlKSxcbiAgICAgICAgICBub2RlLmlzSGlnaGxpZ2h0ZWQgPT09IGZhbHNlICYmIHN0eWxlcy51bmxpdCxcbiAgICAgICAgICBjdXN0b21DbGFzc05hbWUsXG4gICAgICAgICAgaGFzU2VnbWVudHMgJiYgc3R5bGVzLmhhc1NlZ21lbnRzXG4gICAgICAgICl9XG4gICAgICAgIGRhdGEtc3Bhbi1pZD17c3Bhbi5zcGFuSWR9XG4gICAgICAgIGRhdGEtc3RhcnQtdGltZT17c2VnbWVudE5vZGUuc3RhcnRUaW1lIC0gcm9vdC5zdGFydFRpbWV9XG4gICAgICAgIGRhdGEtcmlnaHQtc2lkZT17bGF5b3V0LmlzTmVhclJpZ2h0U2lkZX1cbiAgICAgICAgZGF0YS1zZWxlY3RlZD17bm9kZS5pc1NlbGVjdGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBzdHlsZT17Z2V0U3BhblN0eWxlKGxheW91dCwgc2VnbWVudE5vZGUsIHJvb3QsIHNjYWxlKX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxTcGFuQ29udGVudFxuICAgICAgICAgIGR1cmF0aW9uTXM9e2R1cmF0aW9uTXN9XG4gICAgICAgICAgcmVzb3VyY2VUeXBlPXtyZXNvdXJjZVR5cGV9XG4gICAgICAgICAgbm9kZT17cmVuZGVyTm9kZX1cbiAgICAgICAgICBsYXlvdXQ9e2xheW91dH1cbiAgICAgICAgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAge3NlZ21lbnROb2RlLmV2ZW50cyAmJiAhbGF5b3V0LmlzU21hbGxcbiAgICAgICAgPyBzZWdtZW50Tm9kZS5ldmVudHMubWFwKCh4KSA9PiAoXG4gICAgICAgICAgICA8U3BhbkV2ZW50Q29tcG9uZW50XG4gICAgICAgICAgICAgIGN1c3RvbVNwYW5FdmVudENsYXNzTmFtZUZ1bmM9e2N1c3RvbVNwYW5FdmVudENsYXNzTmFtZUZ1bmN9XG4gICAgICAgICAgICAgIGV2ZW50PXt4fVxuICAgICAgICAgICAgICBrZXk9e3gua2V5fVxuICAgICAgICAgICAgICBub2RlPXtzZWdtZW50Tm9kZX1cbiAgICAgICAgICAgICAgcm9vdD17cm9vdH1cbiAgICAgICAgICAgICAgc2NhbGU9e3NjYWxlfVxuICAgICAgICAgICAgICBhc0JvdW5kYXJ5PXtpc1dvcmtmbG93U3Bhbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSlcbiAgICAgICAgOiBudWxsfVxuICAgIDwvPlxuICApO1xufSk7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU3BhbkV2ZW50Q29tcG9uZW50XG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqIEh1bWFuLXJlYWRhYmxlIGxhYmVscyBmb3Igd29ya2Zsb3cgZXZlbnQgdHlwZXMgKi9cbmNvbnN0IEJPVU5EQVJZX0xBQkVMUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc3RlcF9zdGFydGVkOiAnU3RhcnRlZCcsXG4gIHN0ZXBfcmV0cnlpbmc6ICdSZXRyeWluZycsXG4gIHN0ZXBfZmFpbGVkOiAnRmFpbGVkJyxcbiAgaG9va19jcmVhdGVkOiAnQ3JlYXRlZCcsXG4gIGhvb2tfcmVjZWl2ZWQ6ICdSZWNlaXZlZCcsXG4gIGhvb2tfZGlzcG9zZWQ6ICdSZXNvbHZlZCcsXG4gIHdhaXRfY3JlYXRlZDogJ1NsZWVwIHN0YXJ0ZWQnLFxuICB3YWl0X2NvbXBsZXRlZDogJ1NsZWVwIGNvbXBsZXRlZCcsXG4gIHJ1bl9zdGFydGVkOiAnU3RhcnRlZCcsXG4gIHJ1bl9jb21wbGV0ZWQ6ICdDb21wbGV0ZWQnLFxuICBydW5fZmFpbGVkOiAnUnVuIGZhaWxlZCcsXG4gIHN0ZXBfY29tcGxldGVkOiAnQ29tcGxldGVkJyxcbn07XG5cbmV4cG9ydCBjb25zdCBTcGFuRXZlbnRDb21wb25lbnQgPSBtZW1vKGZ1bmN0aW9uIFNwYW5FdmVudENvbXBvbmVudCh7XG4gIGV2ZW50LFxuICBub2RlLFxuICByb290LFxuICBzY2FsZSxcbiAgY3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lRnVuYyxcbiAgYXNCb3VuZGFyeSA9IGZhbHNlLFxufToge1xuICBldmVudDogVmlzaWJsZVNwYW5FdmVudDtcbiAgbm9kZTogVmlzaWJsZVNwYW47XG4gIHJvb3Q6IFJvb3ROb2RlO1xuICBzY2FsZTogbnVtYmVyO1xuICBjdXN0b21TcGFuRXZlbnRDbGFzc05hbWVGdW5jPzogKGV2ZW50OiBWaXNpYmxlU3BhbkV2ZW50KSA9PiBzdHJpbmc7XG4gIGFzQm91bmRhcnk/OiBib29sZWFuO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBldmVudC5yZWYgPSByZWY7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGV2ZW50LnJlZiA9IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9LCBbZXZlbnRdKTtcblxuICBjb25zdCB7XG4gICAgZXZlbnQ6IHsgbmFtZSB9LFxuICB9ID0gZXZlbnQ7XG4gIGNvbnN0IHRpbWVzdGFtcCA9IGZvcm1hdER1cmF0aW9uKGV2ZW50LnRpbWVzdGFtcCAtIHJvb3Quc3RhcnRUaW1lKTtcbiAgY29uc3QgZGlzcGxheUxhYmVsID0gYXNCb3VuZGFyeSA/IChCT1VOREFSWV9MQUJFTFNbbmFtZV0gPz8gbmFtZSkgOiBuYW1lO1xuXG4gIC8vIEZvciBib3VuZGFyeSBldmVudHMsIGNvbXB1dGUgdGhlIGR1cmF0aW9uIG9mIHRoZSBwaGFzZS5cbiAgLy8gXCJGb3J3YXJkXCIgZXZlbnRzIChzdGFydGVkLCByZXRyeWluZykgbWVhc3VyZSB1bnRpbCB0aGUgbmV4dCBldmVudC5cbiAgLy8gXCJUZXJtaW5hbFwiIGV2ZW50cyAoY29tcGxldGVkKSBtZWFzdXJlIGZyb20gdGhlIHByZXZpb3VzIHN0YXJ0ZWQgZXZlbnQuXG4gIGNvbnN0IGlzRm9yd2FyZEV2ZW50ID1cbiAgICBhc0JvdW5kYXJ5ICYmXG4gICAgKG5hbWUgPT09ICdzdGVwX3N0YXJ0ZWQnIHx8XG4gICAgICBuYW1lID09PSAncnVuX3N0YXJ0ZWQnIHx8XG4gICAgICBuYW1lID09PSAnc3RlcF9yZXRyeWluZycpO1xuICBjb25zdCBpc1Rlcm1pbmFsRXZlbnQgPVxuICAgIGFzQm91bmRhcnkgJiYgKG5hbWUgPT09ICdzdGVwX2NvbXBsZXRlZCcgfHwgbmFtZSA9PT0gJ3J1bl9jb21wbGV0ZWQnKTtcblxuICBsZXQgcGhhc2VEdXJhdGlvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBwaGFzZUxhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaWYgKChpc0ZvcndhcmRFdmVudCB8fCBpc1Rlcm1pbmFsRXZlbnQpICYmIG5vZGUuZXZlbnRzKSB7XG4gICAgY29uc3Qgc29ydGVkTm9kZUV2ZW50cyA9IFsuLi5ub2RlLmV2ZW50c10uc29ydChcbiAgICAgIChhLCBiKSA9PiBhLnRpbWVzdGFtcCAtIGIudGltZXN0YW1wXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50SWR4ID0gc29ydGVkTm9kZUV2ZW50cy5maW5kSW5kZXgoKGUpID0+IGUua2V5ID09PSBldmVudC5rZXkpO1xuXG4gICAgaWYgKGlzVGVybWluYWxFdmVudCkge1xuICAgICAgLy8gTG9vayBiYWNrd2FyZCB0byBmaW5kIHRoZSBsYXN0IHN0ZXBfc3RhcnRlZFxuICAgICAgbGV0IHByZXZTdGFydFRpbWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgICAgZm9yIChsZXQgaSA9IGN1cnJlbnRJZHggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAoc29ydGVkTm9kZUV2ZW50c1tpXS5ldmVudC5uYW1lID09PSAnc3RlcF9zdGFydGVkJykge1xuICAgICAgICAgIHByZXZTdGFydFRpbWUgPSBzb3J0ZWROb2RlRXZlbnRzW2ldLnRpbWVzdGFtcDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByZXZTdGFydFRpbWUgIT09IG51bGwpIHtcbiAgICAgICAgcGhhc2VEdXJhdGlvbiA9IGZvcm1hdER1cmF0aW9uKGV2ZW50LnRpbWVzdGFtcCAtIHByZXZTdGFydFRpbWUpO1xuICAgICAgICBwaGFzZUxhYmVsID0gJ0V4ZWN1dGVkJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTG9vayBmb3J3YXJkIHRvIHRoZSBuZXh0IGV2ZW50XG4gICAgICBjb25zdCBuZXh0RXZlbnQgPSBzb3J0ZWROb2RlRXZlbnRzW2N1cnJlbnRJZHggKyAxXTtcbiAgICAgIGNvbnN0IGVuZFRpbWUgPSBuZXh0RXZlbnQgPyBuZXh0RXZlbnQudGltZXN0YW1wIDogbm9kZS5lbmRUaW1lO1xuICAgICAgcGhhc2VEdXJhdGlvbiA9IGZvcm1hdER1cmF0aW9uKGVuZFRpbWUgLSBldmVudC50aW1lc3RhbXApO1xuICAgICAgcGhhc2VMYWJlbCA9IG5hbWUgPT09ICdzdGVwX3JldHJ5aW5nJyA/ICdXYWl0ZWQnIDogJ0V4ZWN1dGVkJztcbiAgICB9XG4gIH1cblxuICBjb25zdCBsZWZ0ID0gKGV2ZW50LnRpbWVzdGFtcCAtIHJvb3Quc3RhcnRUaW1lKSAqIHNjYWxlO1xuICBjb25zdCB0b3AgPSBNQVJLRVJfSEVJR0hUICsgKFJPV19IRUlHSFQgKyBST1dfUEFERElORykgKiBub2RlLnJvdztcbiAgY29uc3QgaXNMZWZ0QWxpZ25lZCA9XG4gICAgbm9kZS5kdXJhdGlvbiA8PSAwIHx8XG4gICAgKGV2ZW50LnRpbWVzdGFtcCAtIG5vZGUuc3RhcnRUaW1lKSAvIG5vZGUuZHVyYXRpb24gPCAwLjU7XG5cbiAgLy8gR2V0IGN1c3RvbSBjbGFzcyBuYW1lIGZyb20gY2FsbGJhY2sgaWYgcHJvdmlkZWRcbiAgY29uc3QgY3VzdG9tQ2xhc3NOYW1lID0gY3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lRnVuY1xuICAgID8gY3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lRnVuYyhldmVudClcbiAgICA6ICcnO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgdGl0bGU9e1xuICAgICAgICBwaGFzZUR1cmF0aW9uXG4gICAgICAgICAgPyBgJHtkaXNwbGF5TGFiZWx9ICR7dGltZXN0YW1wfVxcbiR7cGhhc2VMYWJlbH0gJHtwaGFzZUR1cmF0aW9ufWBcbiAgICAgICAgICA6IGAke2Rpc3BsYXlMYWJlbH0gJHt0aW1lc3RhbXB9YFxuICAgICAgfVxuICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICBzdHlsZXMuc3Bhbk5vZGVFdmVudCxcbiAgICAgICAgY3VzdG9tQ2xhc3NOYW1lLFxuICAgICAgICBhc0JvdW5kYXJ5ICYmIHN0eWxlcy5ib3VuZGFyeU1hcmtlcixcbiAgICAgICAgbm9kZS5pc0hpZ2hsaWdodGVkXG4gICAgICAgICAgPyBzdHlsZXMuY29sb3JIaWdobGlnaHRcbiAgICAgICAgICA6IGdldFNwYW5Db2xvckNsYXNzTmFtZShub2RlKSxcbiAgICAgICAgbm9kZS5pc0hpZ2hsaWdodGVkID09PSBmYWxzZSAmJiBzdHlsZXMudW5saXRcbiAgICAgICl9XG4gICAgICBkYXRhLWhvdmVyZWQ9e2V2ZW50LmlzSG92ZXJlZH1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgc3R5bGU9e1xuICAgICAgICB7XG4gICAgICAgICAgbGVmdCxcbiAgICAgICAgICB0b3AsXG4gICAgICAgIH0gYXMgQ1NTUHJvcGVydGllc1xuICAgICAgfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgIHN0eWxlcy5ob3ZlckluZm8sXG4gICAgICAgICAgaXNMZWZ0QWxpZ25lZCA/IHN0eWxlcy5hbGlnblN0YXJ0IDogc3R5bGVzLmFsaWduRW5kXG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHthc0JvdW5kYXJ5ID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5ldmVudE5hbWV9PntkaXNwbGF5TGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZXZlbnRUaW1lc3RhbXB9Pnt0aW1lc3RhbXB9PC9zcGFuPlxuICAgICAgICAgICAge3BoYXNlRHVyYXRpb24gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZXZlbnROYW1lfT57cGhhc2VMYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZXZlbnRUaW1lc3RhbXB9PntwaGFzZUR1cmF0aW9ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZXZlbnROYW1lfT57bmFtZX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5ldmVudFRpbWVzdGFtcH0+e3RpbWVzdGFtcH08L3NwYW4+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHthc0JvdW5kYXJ5ID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmJvdW5kYXJ5TGluZX0gLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuZXZlbnREaWFtb25kfSAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn0pO1xuIl19
@@ -6,4 +6,4 @@ export function SearchInput({ height, width, value, placeholder, onChange, }) {
6
6
  function MagnifyingGlassIcon() {
7
7
  return (_jsxs("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "7", cy: "7", r: "4.5", stroke: "currentColor", strokeWidth: "1.5" }), _jsx("path", { d: "M11.5 11.5L14 14", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }));
8
8
  }
9
- //# sourceMappingURL=search-input.js.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvc2VhcmNoLWlucHV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUM7QUFFaEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxFQUMxQixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxXQUFXLEVBQ1gsUUFBUSxHQU9UO0lBQ0MsT0FBTyxDQUNMLGlCQUFPLFNBQVMsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLGFBQ3ZDLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsWUFDdEMsS0FBQyxtQkFBbUIsS0FBRyxHQUNuQixFQUNOLGdCQUNFLElBQUksRUFBQyxRQUFRLEVBQ2IsS0FBSyxFQUFFLEtBQUssRUFDWixXQUFXLEVBQUUsV0FBVyxFQUN4QixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQ3hCLElBQ0ksQ0FDVCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsbUJBQW1CO0lBQzFCLE9BQU8sQ0FDTCxlQUNFLEtBQUssRUFBRSxFQUFFLEVBQ1QsTUFBTSxFQUFFLEVBQUUsRUFDVixPQUFPLEVBQUMsV0FBVyxFQUNuQixJQUFJLEVBQUMsTUFBTSxpQkFDQyxNQUFNLEVBQ2xCLFNBQVMsRUFBQyxPQUFPLGFBRWpCLGlCQUFRLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsV0FBVyxFQUFDLEtBQUssR0FBRyxFQUN4RSxlQUNFLENBQUMsRUFBQyxrQkFBa0IsRUFDcEIsTUFBTSxFQUFDLGNBQWMsRUFDckIsV0FBVyxFQUFDLEtBQUssRUFDakIsYUFBYSxFQUFDLE9BQU8sR0FDckIsSUFDRSxDQUNQLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDaGFuZ2VFdmVudEhhbmRsZXIsIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vdHJhY2Utdmlld2VyLm1vZHVsZS5jc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gU2VhcmNoSW5wdXQoe1xuICBoZWlnaHQsXG4gIHdpZHRoLFxuICB2YWx1ZSxcbiAgcGxhY2Vob2xkZXIsXG4gIG9uQ2hhbmdlLFxufToge1xuICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBvbkNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xufSk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPGxhYmVsIGNsYXNzTmFtZT17c3R5bGVzLnNlYXJjaElucHV0TGFiZWx9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5zZWFyY2hJbnB1dFByZWZpeH0+XG4gICAgICAgIDxNYWduaWZ5aW5nR2xhc3NJY29uIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgc3R5bGU9e3sgaGVpZ2h0LCB3aWR0aCB9fVxuICAgICAgLz5cbiAgICA8L2xhYmVsPlxuICApO1xufVxuXG5mdW5jdGlvbiBNYWduaWZ5aW5nR2xhc3NJY29uKCk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgd2lkdGg9ezE2fVxuICAgICAgaGVpZ2h0PXsxNn1cbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICA+XG4gICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI0LjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD1cIjEuNVwiIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTExLjUgMTEuNUwxNCAxNFwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIHN0cm9rZVdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59XG4iXX0=
@@ -22,4 +22,4 @@ function SearchInputWrapper() {
22
22
  }, [dispatch, value]);
23
23
  return (_jsx("div", { className: styles.searchInput, children: _jsx(SearchInput, { height: SEARCH_HEIGHT, onChange: (e) => setValue(e.target.value), placeholder: "Search spans\u2026", value: value, width: "100%" }) }));
24
24
  }
25
- //# sourceMappingURL=search.js.map
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvc2VhcmNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsT0FBTyxFQUFrQixTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLENBQ0wsY0FBSyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsWUFDOUIsS0FBQyxrQkFBa0IsS0FBRyxHQUNsQixDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxrQkFBa0I7SUFDekIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXZDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQ3hCLEdBQUcsRUFBRSxDQUNILFFBQVEsQ0FBQztZQUNQLElBQUksRUFBRSxXQUFXO1lBQ2pCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxFQUNKLEdBQUcsQ0FDSixDQUFDO1FBRUYsT0FBTyxHQUFHLEVBQUU7WUFDVixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFdEIsT0FBTyxDQUNMLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxXQUFXLFlBQ2hDLEtBQUMsV0FBVyxJQUNWLE1BQU0sRUFBRSxhQUFhLEVBQ3JCLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQ3pDLFdBQVcsRUFBQyxvQkFBZSxFQUMzQixLQUFLLEVBQUUsS0FBSyxFQUNaLEtBQUssRUFBQyxNQUFNLEdBQ1osR0FDRSxDQUNQLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgeyB0eXBlIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVRyYWNlVmlld2VyIH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL3RyYWNlLXZpZXdlci5tb2R1bGUuY3NzJztcbmltcG9ydCB7IFNFQVJDSF9IRUlHSFQgfSBmcm9tICcuLi91dGlsL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dCB9IGZyb20gJy4vc2VhcmNoLWlucHV0JztcblxuZXhwb3J0IGZ1bmN0aW9uIFNlYXJjaEJhcigpOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxuYXYgY2xhc3NOYW1lPXtzdHlsZXMuc2VhcmNoQmFyfT5cbiAgICAgIDxTZWFyY2hJbnB1dFdyYXBwZXIgLz5cbiAgICA8L25hdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU2VhcmNoSW5wdXRXcmFwcGVyKCk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgZGlzcGF0Y2ggfSA9IHVzZVRyYWNlVmlld2VyKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PlxuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogJ3NldEZpbHRlcicsXG4gICAgICAgICAgZmlsdGVyOiB2YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICAxMDBcbiAgICApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9O1xuICB9LCBbZGlzcGF0Y2gsIHZhbHVlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnNlYXJjaElucHV0fT5cbiAgICAgIDxTZWFyY2hJbnB1dFxuICAgICAgICBoZWlnaHQ9e1NFQVJDSF9IRUlHSFR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0VmFsdWUoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBzcGFuc+KAplwiXG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0=
@@ -134,4 +134,4 @@ export function SpanContent({ resourceType, ...props }) {
134
134
  return _jsx(DefaultContent, { ...props });
135
135
  }
136
136
  }
137
- //# sourceMappingURL=span-content.js.map
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJhY2Utdmlld2VyL2NvbXBvbmVudHMvc3Bhbi1jb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBR2IsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFHTCxpQkFBaUIsRUFDakIsZUFBZSxHQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBR3pCLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFDakIsNkVBQTZFO0FBRTdFLFNBQVMsV0FBVyxDQUFDLElBQWM7SUFDakMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsNERBQTREO0FBQzVELDZFQUE2RTtBQUU3RSxNQUFNLGNBQWMsR0FBa0M7SUFDcEQsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLEVBQUU7SUFDWCxNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsWUFBWTtJQUN0QixTQUFTLEVBQUUsVUFBVTtJQUNyQixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUNwQixRQUFRLEVBQUUsVUFBVTtDQUNyQixDQUFDO0FBRUYsU0FBUyxZQUFZLENBQUMsRUFDcEIsUUFBUSxFQUNSLFlBQVksR0FJYjtJQUNDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFdkMsT0FBTyxDQUNMLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxZQUFZLFlBQ2hDLFFBQVEsQ0FBQyxH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RUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUF1QjtJQUNqRCxPQUFPLEtBQUMsZUFBZSxJQUFDLFlBQVksRUFBQyxNQUFNLEtBQUssS0FBSyxHQUFJLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBdUI7SUFDbEQsT0FBTyxLQUFDLGVBQWUsSUFBQyxZQUFZLEVBQUMsT0FBTyxLQUFLLEtBQUssR0FBSSxDQUFDO0FBQzdELENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsYUFBYTtBQUNiLDZFQUE2RTtBQUU3RTs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsRUFDMUIsWUFBWSxFQUNaLEdBQUcsS0FBSyxFQUMwQztJQUNsRCxRQUFRLFlBQVksRUFBRSxDQUFDO1FBQ3JCLEtBQUssS0FBSztZQUNSLE9BQU8sS0FBQyxVQUFVLE9BQUssS0FBSyxHQUFJLENBQUM7UUFDbkMsS0FBSyxNQUFNO1lBQ1QsT0FBTyxLQUFDLFdBQVcsT0FBSyxLQUFLLEdBQUksQ0FBQztRQUNwQyxLQUFLLE1BQU07WUFDVCxPQUFPLEtBQUMsV0FBVyxPQUFLLEtBQUssR0FBSSxDQUFDO1FBQ3BDLEtBQUssT0FBTztZQUNWLE9BQU8sS0FBQyxZQUFZLE9BQUssS0FBSyxHQUFJLENBQUM7UUFDckM7WUFDRSxPQUFPLEtBQUMsY0FBYyxPQUFLLEtBQUssR0FBSSxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgdHlwZSB7IENTU1Byb3BlcnRpZXMsIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vdHJhY2Utdmlld2VyLm1vZHVsZS5jc3MnO1xuaW1wb3J0IHR5cGUgeyBTcGFuTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGZvcm1hdER1cmF0aW9uIH0gZnJvbSAnLi4vdXRpbC90aW1pbmcnO1xuaW1wb3J0IHtcbiAgdHlwZSBTZWdtZW50LFxuICB0eXBlIFNlZ21lbnRTdGF0dXMsXG4gIFNFR01FTlRfQ0xBU1NfTUFQLFxuICBjb21wdXRlU2VnbWVudHMsXG59IGZyb20gJy4vc3Bhbi1zZWdtZW50cyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlVHlwZSwgU3BhbkxheW91dCB9IGZyb20gJy4vc3Bhbi1zdHJhdGVnaWVzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTaGFyZWQgaGVscGVyc1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIGdldER1cmF0aW9uKG5vZGU6IFNwYW5Ob2RlKTogc3RyaW5nIHtcbiAgaWYgKG5vZGUuaXNJbnN0cnVtZW50YXRpb25IaW50KSB7XG4gICAgcmV0dXJuICdHZXQgU3RhcnRlZCc7XG4gIH1cbiAgcmV0dXJuIGZvcm1hdER1cmF0aW9uKG5vZGUuZHVyYXRpb24pO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNlZ21lbnQgcmVuZGVyaW5nIChzaGFyZWQgYWNyb3NzIGFsbCB3b3JrZmxvdyBzcGFuIHR5cGVzKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmNvbnN0IFNFR01FTlRfTEFCRUxTOiBSZWNvcmQ8U2VnbWVudFN0YXR1cywgc3RyaW5nPiA9IHtcbiAgcXVldWVkOiAnUXVldWVkJyxcbiAgcnVubmluZzogJycsXG4gIGZhaWxlZDogJ0ZhaWxlZCcsXG4gIHJldHJ5aW5nOiAnUmV0cnkgd2FpdCcsXG4gIHN1Y2NlZWRlZDogJ0V4ZWN1dGVkJyxcbiAgd2FpdGluZzogJ1dhaXRpbmcnLFxuICBzbGVlcGluZzogJ1NsZWVwaW5nJyxcbiAgcmVjZWl2ZWQ6ICdSZWNlaXZlZCcsXG59O1xuXG5mdW5jdGlvbiBTZWdtZW50TGF5ZXIoe1xuICBzZWdtZW50cyxcbiAgc3BhbkR1cmF0aW9uLFxufToge1xuICBzZWdtZW50czogU2VnbWVudFtdO1xuICBzcGFuRHVyYXRpb246IG51bWJlcjtcbn0pOiBSZWFjdE5vZGUge1xuICBpZiAoc2VnbWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuc2VnbWVudExheWVyfT5cbiAgICAgIHtzZWdtZW50cy5tYXAoKHNlZywgaSkgPT4ge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPVxuICAgICAgICAgIHN0eWxlc1tTRUdNRU5UX0NMQVNTX01BUFtzZWcuc3RhdHVzXSBhcyBrZXlvZiB0eXBlb2Ygc3R5bGVzXTtcbiAgICAgICAgY29uc3Qgc2VnRHVyYXRpb24gPVxuICAgICAgICAgIChzZWcuZW5kRnJhY3Rpb24gLSBzZWcuc3RhcnRGcmFjdGlvbikgKiBzcGFuRHVyYXRpb247XG4gICAgICAgIGNvbnN0IGxhYmVsID0gU0VHTUVOVF9MQUJFTFNbc2VnLnN0YXR1c107XG4gICAgICAgIGNvbnN0IHN0eWxlOiBDU1NQcm9wZXJ0aWVzID0ge1xuICAgICAgICAgIGxlZnQ6IGAke3NlZy5zdGFydEZyYWN0aW9uICogMTAwfSVgLFxuICAgICAgICAgIHdpZHRoOiBgJHsoc2VnLmVuZEZyYWN0aW9uIC0gc2VnLnN0YXJ0RnJhY3Rpb24pICogMTAwfSVgLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAga2V5PXtgc2VnLSR7c2VnLnN0YXR1c30tJHtTdHJpbmcoaSl9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzLnNlZ21lbnR9ICR7U3RyaW5nKGNsYXNzTmFtZSl9YH1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgICAgICA/IGAke2xhYmVsfSAke2Zvcm1hdER1cmF0aW9uKHNlZ0R1cmF0aW9uKX1gXG4gICAgICAgICAgICAgICAgOiBmb3JtYXREdXJhdGlvbihzZWdEdXJhdGlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8qKiBCdWlsZCBpbmxpbmUgc2VnbWVudCB0YWdzIHRvIHJlbmRlciBuZXh0IHRvIHRoZSBzcGFuIG5hbWUuICovXG5mdW5jdGlvbiBnZXRTZWdtZW50VGFncyhcbiAgc2VnbWVudHM6IFNlZ21lbnRbXSxcbiAgc3BhbkR1cmF0aW9uOiBudW1iZXJcbik6IHsgbGFiZWw6IHN0cmluZzsgZHVyYXRpb246IHN0cmluZyB9W10ge1xuICBjb25zdCB0YWdzOiB7IGxhYmVsOiBzdHJpbmc7IGR1cmF0aW9uOiBzdHJpbmcgfVtdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBzZWcgPSBzZWdtZW50c1tpXTtcbiAgICBjb25zdCBsYWJlbCA9IFNFR01FTlRfTEFCRUxTW3NlZy5zdGF0dXNdO1xuICAgIGlmICghbGFiZWwpIGNvbnRpbnVlOyAvLyBza2lwIFwicnVubmluZ1wiIHdoaWNoIGhhcyBubyBsYWJlbFxuICAgIGxldCBzZWdEdXJhdGlvbiA9IChzZWcuZW5kRnJhY3Rpb24gLSBzZWcuc3RhcnRGcmFjdGlvbikgKiBzcGFuRHVyYXRpb247XG5cbiAgICAvLyBGb3IgdGVybWluYWwgc2VnbWVudHMgKHN1Y2NlZWRlZC9mYWlsZWQpIHdpdGggfjAgZHVyYXRpb24sXG4gICAgLy8gdXNlIHRoZSBwcmVjZWRpbmcgcnVubmluZyBzZWdtZW50J3MgZHVyYXRpb24gaW5zdGVhZC5cbiAgICBpZiAoXG4gICAgICBzZWdEdXJhdGlvbiA8IDEgJiZcbiAgICAgIChzZWcuc3RhdHVzID09PSAnc3VjY2VlZGVkJyB8fCBzZWcuc3RhdHVzID09PSAnZmFpbGVkJykgJiZcbiAgICAgIGkgPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBwcmV2ID0gc2VnbWVudHNbaSAtIDFdO1xuICAgICAgaWYgKHByZXYuc3RhdHVzID09PSAncnVubmluZycpIHtcbiAgICAgICAgc2VnRHVyYXRpb24gPSAocHJldi5lbmRGcmFjdGlvbiAtIHByZXYuc3RhcnRGcmFjdGlvbikgKiBzcGFuRHVyYXRpb247XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2tpcCB0YWdzIHRoYXQgc3RpbGwgaGF2ZSBubyBtZWFuaW5nZnVsIGR1cmF0aW9uXG4gICAgaWYgKHNlZ0R1cmF0aW9uIDwgMSkgY29udGludWU7XG5cbiAgICB0YWdzLnB1c2goeyBsYWJlbCwgZHVyYXRpb246IGZvcm1hdER1cmF0aW9uKHNlZ0R1cmF0aW9uKSB9KTtcbiAgfVxuICByZXR1cm4gdGFncztcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUZXh0IGNvbnRlbnQgKHNoYXJlZCBsYWJlbCArIGR1cmF0aW9uIHJlbmRlcmluZylcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiBUZXh0Q29udGVudCh7XG4gIG5vZGUsXG4gIGxheW91dCxcbiAgZHVyYXRpb25NcyxcbiAgc2VnbWVudFRhZ3MsXG59OiBTcGFuQ29udGVudFByb3BzICYge1xuICBzZWdtZW50VGFncz86IHsgbGFiZWw6IHN0cmluZzsgZHVyYXRpb246IHN0cmluZyB9W107XG59KTogUmVhY3ROb2RlIHtcbiAgY29uc3QgZHVyYXRpb24gPSBub2RlLmlzSW5zdHJ1bWVudGF0aW9uSGludFxuICAgID8gZ2V0RHVyYXRpb24obm9kZSlcbiAgICA6IGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uTXMgPz8gbm9kZS5kdXJhdGlvbik7XG5cbiAgaWYgKGxheW91dC5pc1NtYWxsICYmICFsYXlvdXQuaXNIb3ZlcmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzaG93VGFncyA9XG4gICAgc2VnbWVudFRhZ3MgJiZcbiAgICBzZWdtZW50VGFncy5sZW5ndGggPiAwICYmXG4gICAgKGxheW91dC5pc0hvdmVyZWQgfHwgbGF5b3V0LndpZHRoID4gMjAwKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5zcGFuTmFtZX0+XG4gICAgICAgIHtub2RlLmxhYmVsIHx8IG5vZGUuc3Bhbi5uYW1lfVxuICAgICAgICB7c2hvd1RhZ3NcbiAgICAgICAgICA/IHNlZ21lbnRUYWdzLm1hcCgodGFnLCBpKSA9PiAoXG4gICAgICAgICAgICAgIDxzcGFuIGtleT17aX0gY2xhc3NOYW1lPXtzdHlsZXMuc2VnbWVudFRhZ30+XG4gICAgICAgICAgICAgICAgeycgwrcgJ31cbiAgICAgICAgICAgICAgICB7dGFnLmxhYmVsfSB7dGFnLmR1cmF0aW9ufVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIHtsYXlvdXQuaXNIdWdlID8gPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuc3BhblNwYWNlcn0gLz4gOiBudWxsfVxuICAgICAge2xheW91dC5pc0hvdmVyZWQgfHwgbGF5b3V0LndpZHRoID4gMTI4ID8gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5zcGFuRHVyYXRpb259PntkdXJhdGlvbn08L3NwYW4+XG4gICAgICApIDogbnVsbH1cbiAgICA8Lz5cbiAgKTtcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBDb250ZW50IHByb3BzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTcGFuQ29udGVudFByb3BzIHtcbiAgbm9kZTogU3Bhbk5vZGU7XG4gIGxheW91dDogU3BhbkxheW91dDtcbiAgZHVyYXRpb25Ncz86IG51bWJlcjtcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBEZWZhdWx0IGNvbnRlbnQgKGdlbmVyaWMgT1RFTCBzcGFucyDigJQgbm8gc2VnbWVudHMpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZnVuY3Rpb24gRGVmYXVsdENvbnRlbnQoeyBub2RlLCBsYXlvdXQgfTogU3BhbkNvbnRlbnRQcm9wcyk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiA8VGV4dENvbnRlbnQgbm9kZT17bm9kZX0gbGF5b3V0PXtsYXlvdXR9IC8+O1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFdvcmtmbG93IGNvbnRlbnQgKHNlZ21lbnRzICsgdGV4dCBmb3Igd29ya2Zsb3cgc3BhbiB0eXBlcylcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiBXb3JrZmxvd0NvbnRlbnQoe1xuICByZXNvdXJjZVR5cGUsXG4gIG5vZGUsXG4gIGxheW91dCxcbiAgZHVyYXRpb25Ncyxcbn06IFNwYW5Db250ZW50UHJvcHMgJiB7IHJlc291cmNlVHlwZTogUmVzb3VyY2VUeXBlIH0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBzcGFuRHVyYXRpb24gPSBkdXJhdGlvbk1zID8/IG5vZGUuZHVyYXRpb247XG4gIGNvbnN0IHsgc2VnbWVudHMgfSA9IGNvbXB1dGVTZWdtZW50cyhyZXNvdXJjZVR5cGUsIG5vZGUpO1xuICBjb25zdCBzZWdtZW50VGFncyA9IGdldFNlZ21lbnRUYWdzKHNlZ21lbnRzLCBzcGFuRHVyYXRpb24pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTZWdtZW50TGF5ZXIgc2VnbWVudHM9e3NlZ21lbnRzfSBzcGFuRHVyYXRpb249e3NwYW5EdXJhdGlvbn0gLz5cbiAgICAgIDxUZXh0Q29udGVudFxuICAgICAgICBkdXJhdGlvbk1zPXtzcGFuRHVyYXRpb259XG4gICAgICAgIG5vZGU9e25vZGV9XG4gICAgICAgIGxheW91dD17bGF5b3V0fVxuICAgICAgICBzZWdtZW50VGFncz17c2VnbWVudFRhZ3N9XG4gICAgICAvPlxuICAgIDwvPlxuICApO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFBlci10eXBlIGNvbnRlbnQgY29tcG9uZW50c1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBmdW5jdGlvbiBSdW5Db250ZW50KHByb3BzOiBTcGFuQ29udGVudFByb3BzKTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIDxXb3JrZmxvd0NvbnRlbnQgcmVzb3VyY2VUeXBlPVwicnVuXCIgey4uLnByb3BzfSAvPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFN0ZXBDb250ZW50KHByb3BzOiBTcGFuQ29udGVudFByb3BzKTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIDxXb3JrZmxvd0NvbnRlbnQgcmVzb3VyY2VUeXBlPVwic3RlcFwiIHsuLi5wcm9wc30gLz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIb29rQ29udGVudChwcm9wczogU3BhbkNvbnRlbnRQcm9wcyk6IFJlYWN0Tm9kZSB7XG4gIHJldHVybiA8V29ya2Zsb3dDb250ZW50IHJlc291cmNlVHlwZT1cImhvb2tcIiB7Li4ucHJvcHN9IC8+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xlZXBDb250ZW50KHByb3BzOiBTcGFuQ29udGVudFByb3BzKTogUmVhY3ROb2RlIHtcbiAgcmV0dXJuIDxXb3JrZmxvd0NvbnRlbnQgcmVzb3VyY2VUeXBlPVwic2xlZXBcIiB7Li4ucHJvcHN9IC8+O1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIERpc3BhdGNoZXJcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIFJldHVybnMgdGhlIGlubmVyIGNvbnRlbnQgZm9yIGEgc3BhbiBiYXNlZCBvbiBpdHMgcmVzb3VyY2UgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNwYW5Db250ZW50KHtcbiAgcmVzb3VyY2VUeXBlLFxuICAuLi5wcm9wc1xufTogU3BhbkNvbnRlbnRQcm9wcyAmIHsgcmVzb3VyY2VUeXBlOiBSZXNvdXJjZVR5cGUgfSk6IFJlYWN0Tm9kZSB7XG4gIHN3aXRjaCAocmVzb3VyY2VUeXBlKSB7XG4gICAgY2FzZSAncnVuJzpcbiAgICAgIHJldHVybiA8UnVuQ29udGVudCB7Li4ucHJvcHN9IC8+O1xuICAgIGNhc2UgJ3N0ZXAnOlxuICAgICAgcmV0dXJuIDxTdGVwQ29udGVudCB7Li4ucHJvcHN9IC8+O1xuICAgIGNhc2UgJ2hvb2snOlxuICAgICAgcmV0dXJuIDxIb29rQ29udGVudCB7Li4ucHJvcHN9IC8+O1xuICAgIGNhc2UgJ3NsZWVwJzpcbiAgICAgIHJldHVybiA8U2xlZXBDb250ZW50IHsuLi5wcm9wc30gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8RGVmYXVsdENvbnRlbnQgey4uLnByb3BzfSAvPjtcbiAgfVxufVxuIl19