@kepler.gl/components 3.3.0-alpha.2 → 3.3.0-alpha.4

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 (353) hide show
  1. package/dist/annotations/annotation-overlay.d.ts +1 -0
  2. package/dist/annotations/annotation-overlay.js +7 -5
  3. package/dist/annotations/annotation-panel.js +16 -17
  4. package/dist/annotations/annotation-text.js +2 -3
  5. package/dist/annotations/annotation-utils.d.ts +14 -0
  6. package/dist/annotations/annotation-utils.js +44 -3
  7. package/dist/annotations/lexical-editor/floating-link-editor.js +9 -10
  8. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +2 -3
  9. package/dist/annotations/lexical-editor/lexical-toolbar.js +6 -7
  10. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +15 -15
  11. package/dist/bottom-widget.js +3 -4
  12. package/dist/common/action-panel.js +2 -3
  13. package/dist/common/animation-control/animation-speed-slider.js +2 -3
  14. package/dist/common/animation-control/animation-window-control.js +2 -3
  15. package/dist/common/animation-control/floating-time-display.js +2 -3
  16. package/dist/common/animation-control/playback-controls.js +2 -3
  17. package/dist/common/animation-control/window-action-control.js +2 -3
  18. package/dist/common/checkbox.js +2 -3
  19. package/dist/common/color-legend.js +2 -3
  20. package/dist/common/column-stats-chart.js +2 -3
  21. package/dist/common/data-table/display-format.js +2 -3
  22. package/dist/common/data-table/grid.js +2 -3
  23. package/dist/common/data-table/header-cell.js +2 -3
  24. package/dist/common/data-table/index.js +2 -3
  25. package/dist/common/data-table/option-dropdown.js +2 -3
  26. package/dist/common/field-selector.js +2 -3
  27. package/dist/common/file-uploader/file-drop.js +2 -3
  28. package/dist/common/file-uploader/file-upload-progress.js +2 -3
  29. package/dist/common/file-uploader/file-upload.js +8 -9
  30. package/dist/common/file-uploader/upload-button.js +2 -3
  31. package/dist/common/histogram-plot.js +2 -3
  32. package/dist/common/icons/3d-models/airplane.js +2 -3
  33. package/dist/common/icons/3d-models/bicycle.js +2 -3
  34. package/dist/common/icons/3d-models/boeing.js +2 -3
  35. package/dist/common/icons/3d-models/car.js +2 -3
  36. package/dist/common/icons/3d-models/cargoship.js +2 -3
  37. package/dist/common/icons/3d-models/evtol.js +2 -3
  38. package/dist/common/icons/3d-models/glider.js +2 -3
  39. package/dist/common/icons/3d-models/helicopter.js +2 -3
  40. package/dist/common/icons/3d-models/scooter.js +2 -3
  41. package/dist/common/icons/3d-models/semitruck.js +2 -3
  42. package/dist/common/icons/3d-models/truck.js +2 -3
  43. package/dist/common/icons/add.js +2 -3
  44. package/dist/common/icons/annotation-text.js +2 -3
  45. package/dist/common/icons/arrow-down-alt.js +2 -3
  46. package/dist/common/icons/arrow-down-full.js +2 -3
  47. package/dist/common/icons/arrow-down-small.js +2 -3
  48. package/dist/common/icons/arrow-down-solid.js +2 -3
  49. package/dist/common/icons/arrow-down.js +2 -3
  50. package/dist/common/icons/arrow-left.js +2 -3
  51. package/dist/common/icons/arrow-right.js +2 -3
  52. package/dist/common/icons/arrow-up-alt.js +2 -3
  53. package/dist/common/icons/arrow-up-solid.js +2 -3
  54. package/dist/common/icons/arrow-up.js +2 -3
  55. package/dist/common/icons/base-map.js +2 -3
  56. package/dist/common/icons/base.js +2 -3
  57. package/dist/common/icons/bug.js +2 -3
  58. package/dist/common/icons/calendar.js +2 -3
  59. package/dist/common/icons/cancel.js +2 -3
  60. package/dist/common/icons/checkmark.js +2 -3
  61. package/dist/common/icons/clipboard.js +2 -3
  62. package/dist/common/icons/clock.js +2 -3
  63. package/dist/common/icons/close.js +2 -3
  64. package/dist/common/icons/cloud.js +2 -3
  65. package/dist/common/icons/code-alt.js +2 -3
  66. package/dist/common/icons/copy.js +2 -3
  67. package/dist/common/icons/crosshairs.js +2 -3
  68. package/dist/common/icons/cube-3d.js +2 -3
  69. package/dist/common/icons/cursor-click.js +2 -3
  70. package/dist/common/icons/cursor-point.js +2 -3
  71. package/dist/common/icons/data-table.js +2 -3
  72. package/dist/common/icons/db.js +2 -3
  73. package/dist/common/icons/delete.js +2 -3
  74. package/dist/common/icons/docs.js +2 -3
  75. package/dist/common/icons/docs2.js +2 -3
  76. package/dist/common/icons/drag-n-drop.js +2 -3
  77. package/dist/common/icons/draggable-dots.js +2 -3
  78. package/dist/common/icons/draw-polygon.js +2 -3
  79. package/dist/common/icons/edit.js +2 -3
  80. package/dist/common/icons/effects/brightness-contrast.js +2 -3
  81. package/dist/common/icons/effects/color-halftone.js +2 -3
  82. package/dist/common/icons/effects/distance-fog.js +2 -3
  83. package/dist/common/icons/effects/dot-screen.js +2 -3
  84. package/dist/common/icons/effects/edge-work.js +2 -3
  85. package/dist/common/icons/effects/hexagonal-pixelate.js +2 -3
  86. package/dist/common/icons/effects/hue-saturation.js +2 -3
  87. package/dist/common/icons/effects/ink.js +2 -3
  88. package/dist/common/icons/effects/light-and-shadow.js +2 -3
  89. package/dist/common/icons/effects/magic-wand.js +2 -3
  90. package/dist/common/icons/effects/magnify.js +2 -3
  91. package/dist/common/icons/effects/noise.js +2 -3
  92. package/dist/common/icons/effects/sepia.js +2 -3
  93. package/dist/common/icons/effects/surface-fog.js +2 -3
  94. package/dist/common/icons/effects/tilt-shift.js +2 -3
  95. package/dist/common/icons/effects/triangle-blur.js +2 -3
  96. package/dist/common/icons/effects/vibrance.js +2 -3
  97. package/dist/common/icons/effects/vignette.js +2 -3
  98. package/dist/common/icons/effects/zoom-blur.js +2 -3
  99. package/dist/common/icons/email.js +2 -3
  100. package/dist/common/icons/expand.js +2 -3
  101. package/dist/common/icons/eye-seen.js +2 -3
  102. package/dist/common/icons/eye-unseen.js +2 -3
  103. package/dist/common/icons/file.js +2 -3
  104. package/dist/common/icons/filter-funnel.js +2 -3
  105. package/dist/common/icons/folder.js +2 -3
  106. package/dist/common/icons/gear.js +2 -3
  107. package/dist/common/icons/globe.js +2 -3
  108. package/dist/common/icons/hash.js +2 -3
  109. package/dist/common/icons/help.js +2 -3
  110. package/dist/common/icons/horizontal-resize-handle.js +2 -3
  111. package/dist/common/icons/info.js +2 -3
  112. package/dist/common/icons/layers.js +2 -3
  113. package/dist/common/icons/left-arrow.js +2 -3
  114. package/dist/common/icons/legend.js +2 -3
  115. package/dist/common/icons/line-chart.js +2 -3
  116. package/dist/common/icons/location-marker.js +2 -3
  117. package/dist/common/icons/login.js +2 -3
  118. package/dist/common/icons/logout.js +2 -3
  119. package/dist/common/icons/map-icon.js +2 -3
  120. package/dist/common/icons/map-pin.js +2 -3
  121. package/dist/common/icons/messages.js +2 -3
  122. package/dist/common/icons/minus.js +2 -3
  123. package/dist/common/icons/moon.js +2 -3
  124. package/dist/common/icons/pause.js +2 -3
  125. package/dist/common/icons/pin.js +2 -3
  126. package/dist/common/icons/play.js +2 -3
  127. package/dist/common/icons/pointer-click.js +2 -3
  128. package/dist/common/icons/polygon.js +2 -3
  129. package/dist/common/icons/rectangle.js +2 -3
  130. package/dist/common/icons/reduce.js +2 -3
  131. package/dist/common/icons/reset.js +2 -3
  132. package/dist/common/icons/save.js +2 -3
  133. package/dist/common/icons/save2.js +2 -3
  134. package/dist/common/icons/search.js +2 -3
  135. package/dist/common/icons/settings.js +2 -3
  136. package/dist/common/icons/share.js +2 -3
  137. package/dist/common/icons/speed.js +2 -3
  138. package/dist/common/icons/split.js +2 -3
  139. package/dist/common/icons/square-select.js +2 -3
  140. package/dist/common/icons/sun.js +2 -3
  141. package/dist/common/icons/sunrise.js +2 -3
  142. package/dist/common/icons/sunset.js +2 -3
  143. package/dist/common/icons/timeline-marker.js +2 -3
  144. package/dist/common/icons/trash.js +2 -3
  145. package/dist/common/icons/vert-dots.js +2 -3
  146. package/dist/common/icons/vert-three-dots.js +2 -3
  147. package/dist/common/icons/warning-sign.js +2 -3
  148. package/dist/common/icons/warning.js +2 -3
  149. package/dist/common/icons/zoom-in.js +2 -3
  150. package/dist/common/icons/zoom-out.js +2 -3
  151. package/dist/common/index.js +2 -3
  152. package/dist/common/item-selector/chickleted-input.js +2 -3
  153. package/dist/common/item-selector/dropdown-list.js +2 -3
  154. package/dist/common/item-selector/item-selector.js +2 -3
  155. package/dist/common/item-selector/typeahead.js +2 -3
  156. package/dist/common/layout-splitter.js +2 -3
  157. package/dist/common/line-chart.js +2 -3
  158. package/dist/common/loading-spinner.js +2 -3
  159. package/dist/common/modal.js +6 -7
  160. package/dist/common/portaled.js +2 -3
  161. package/dist/common/radius-legend.js +2 -3
  162. package/dist/common/range-brush.js +2 -3
  163. package/dist/common/range-plot.js +2 -3
  164. package/dist/common/range-slider-timeline-panel.js +2 -3
  165. package/dist/common/range-slider-timeline.js +2 -3
  166. package/dist/common/range-slider.js +2 -3
  167. package/dist/common/slider/slider-bar-handle.js +2 -3
  168. package/dist/common/slider/slider-handle.js +2 -3
  169. package/dist/common/slider/slider.js +2 -3
  170. package/dist/common/styled-components.d.ts +84 -82
  171. package/dist/common/styled-components.js +48 -44
  172. package/dist/common/time-range-slider.js +2 -3
  173. package/dist/common/time-slider-marker.js +2 -3
  174. package/dist/common/timeline-slider.js +2 -3
  175. package/dist/common/tippy-tooltip.js +2 -3
  176. package/dist/connect/with-local-selector.js +2 -3
  177. package/dist/container.js +4 -5
  178. package/dist/context.js +2 -3
  179. package/dist/dnd-context.js +2 -3
  180. package/dist/editor/editor.js +3 -4
  181. package/dist/editor/feature-action-panel.js +2 -3
  182. package/dist/effects/compact-color-picker.js +2 -3
  183. package/dist/effects/effect-configurator.js +17 -18
  184. package/dist/effects/effect-list.js +2 -3
  185. package/dist/effects/effect-manager.js +2 -3
  186. package/dist/effects/effect-panel-header.js +2 -3
  187. package/dist/effects/effect-panel.js +2 -3
  188. package/dist/effects/effect-time-configurator.js +18 -7
  189. package/dist/effects/effect-time-selector.js +2 -3
  190. package/dist/effects/effect-time-slider.js +2 -3
  191. package/dist/effects/effect-type-dropdown-list.js +2 -3
  192. package/dist/effects/effect-type-list-item.js +2 -3
  193. package/dist/effects/effect-type-selector.js +2 -3
  194. package/dist/effects/surface-fog-section.js +7 -8
  195. package/dist/effects/timezone-selector.js +2 -3
  196. package/dist/filter-animation-controller.js +2 -3
  197. package/dist/filters/filter-panels/filter-panel-with-field-select.js +2 -3
  198. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +4 -5
  199. package/dist/filters/filter-panels/multi-select-filter-panel.js +2 -3
  200. package/dist/filters/filter-panels/new-filter-panel.js +2 -3
  201. package/dist/filters/filter-panels/polygon-filter-panel.js +2 -3
  202. package/dist/filters/filter-panels/range-filter-panel.js +2 -3
  203. package/dist/filters/filter-panels/single-select-filter-panel.js +2 -3
  204. package/dist/filters/filter-panels/time-range-filter-panel.js +2 -3
  205. package/dist/filters/polygon-filter.js +3 -4
  206. package/dist/filters/time-widget-settings.js +9 -10
  207. package/dist/filters/time-widget-top.js +2 -3
  208. package/dist/filters/time-widget.js +2 -3
  209. package/dist/geocoder/geocoder.js +6 -7
  210. package/dist/geocoder-panel.js +2 -3
  211. package/dist/hooks/use-cloud-list-provider.js +2 -3
  212. package/dist/hooks/use-fetch-raster-tile-metadata.js +2 -2
  213. package/dist/hooks/use-fetch-vector-tile-metadata.js +2 -2
  214. package/dist/index.d.ts +2 -2
  215. package/dist/index.js +23 -3
  216. package/dist/kepler-gl.d.ts +1 -0
  217. package/dist/kepler-gl.js +3 -3
  218. package/dist/layer-animation-controller.js +2 -3
  219. package/dist/loading-indicator.js +2 -3
  220. package/dist/map/annotations/annotation-control.js +2 -3
  221. package/dist/map/attribution.d.ts +52 -0
  222. package/dist/map/attribution.js +389 -0
  223. package/dist/map/effects/effect-control.js +2 -3
  224. package/dist/map/layer-hover-info.js +2 -3
  225. package/dist/map/lazy-tippy.js +2 -3
  226. package/dist/map/locale-panel.d.ts +1 -1
  227. package/dist/map/locale-panel.js +2 -3
  228. package/dist/map/map-control-panel.js +2 -3
  229. package/dist/map/map-control.d.ts +3 -0
  230. package/dist/map/map-control.js +1 -1
  231. package/dist/map/map-draw-panel.d.ts +1 -1
  232. package/dist/map/map-draw-panel.js +2 -3
  233. package/dist/map/map-legend-panel.d.ts +1 -1
  234. package/dist/map/map-legend-panel.js +9 -14
  235. package/dist/map/map-legend.js +2 -3
  236. package/dist/map/map-navigation-control.js +20 -4
  237. package/dist/map/map-popover.js +2 -3
  238. package/dist/map/split-map-button.d.ts +4 -2
  239. package/dist/map/split-map-button.js +63 -46
  240. package/dist/map/toggle-3d-button.d.ts +8 -2
  241. package/dist/map/toggle-3d-button.js +79 -17
  242. package/dist/map-container.d.ts +3 -14
  243. package/dist/map-container.js +211 -178
  244. package/dist/map-view-state-context.d.ts +2 -0
  245. package/dist/map-view-state-context.js +2 -3
  246. package/dist/maps-layout.js +2 -3
  247. package/dist/modal-container.js +2 -3
  248. package/dist/modals/add-map-style-modal.js +2 -3
  249. package/dist/modals/cloud-components/cloud-header.js +2 -3
  250. package/dist/modals/cloud-components/cloud-item.spec.js +8 -8
  251. package/dist/modals/cloud-components/cloud-maps.spec.js +7 -7
  252. package/dist/modals/cloud-tile.js +5 -6
  253. package/dist/modals/data-table-modal.js +2 -3
  254. package/dist/modals/error-display.js +2 -3
  255. package/dist/modals/export-data-modal.js +2 -3
  256. package/dist/modals/export-image-modal.js +2 -3
  257. package/dist/modals/export-map-modal/export-json-map.js +2 -3
  258. package/dist/modals/export-video-modal.js +52 -10
  259. package/dist/modals/export-video-modal.spec.js +83 -83
  260. package/dist/modals/globe-export-video-container.d.ts +117 -0
  261. package/dist/modals/globe-export-video-container.js +626 -0
  262. package/dist/modals/globe-export-video-preview.d.ts +41 -0
  263. package/dist/modals/globe-export-video-preview.js +152 -0
  264. package/dist/modals/hubble-utils.d.ts +13 -1
  265. package/dist/modals/hubble-utils.js +166 -38
  266. package/dist/modals/image-modal-container.js +2 -3
  267. package/dist/modals/load-data-modal.js +2 -3
  268. package/dist/modals/load-storage-map.js +2 -3
  269. package/dist/modals/load-storage-map.spec.js +10 -10
  270. package/dist/modals/modal-tabs.js +2 -3
  271. package/dist/modals/overwrite-map-modal.js +2 -3
  272. package/dist/modals/save-map-modal.js +2 -3
  273. package/dist/modals/save-map-modal.spec.js +16 -16
  274. package/dist/modals/share-map-modal.js +2 -3
  275. package/dist/modals/share-map-modal.spec.js +9 -9
  276. package/dist/modals/swipe-composite-utils.d.ts +1 -1
  277. package/dist/modals/swipe-composite-utils.js +11 -1
  278. package/dist/modals/swipe-export-settings.d.ts +1 -0
  279. package/dist/modals/swipe-export-settings.js +8 -6
  280. package/dist/modals/swipe-export-video-container.d.ts +6 -0
  281. package/dist/modals/swipe-export-video-container.js +27 -4
  282. package/dist/modals/swipe-export-video-preview.d.ts +2 -0
  283. package/dist/modals/swipe-export-video-preview.js +80 -18
  284. package/dist/modals/tilesets-modals/load-data-footer.js +2 -3
  285. package/dist/modals/tilesets-modals/load-tileset.js +2 -3
  286. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +18 -19
  287. package/dist/modals/tilesets-modals/tileset-raster-form.js +5 -6
  288. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +13 -14
  289. package/dist/modals/tilesets-modals/tileset-vector-form.js +7 -8
  290. package/dist/modals/tilesets-modals/tileset-wms-form.js +11 -12
  291. package/dist/notification-panel/notification-item.js +2 -3
  292. package/dist/plot-container.js +2 -3
  293. package/dist/side-panel/add-by-dataset-button.js +2 -3
  294. package/dist/side-panel/common/dataset-title.js +2 -3
  295. package/dist/side-panel/common/source-data-selector-content.js +2 -3
  296. package/dist/side-panel/common/source-selector.js +2 -3
  297. package/dist/side-panel/filter-manager.js +2 -3
  298. package/dist/side-panel/filter-panel/filter-panel-header.js +2 -3
  299. package/dist/side-panel/filter-panel/filter-panel.js +2 -3
  300. package/dist/side-panel/interaction-panel/interaction-panel.js +2 -3
  301. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +2 -3
  302. package/dist/side-panel/interaction-panel/tooltip-config.js +2 -3
  303. package/dist/side-panel/layer-manager.d.ts +2 -1
  304. package/dist/side-panel/layer-manager.js +6 -4
  305. package/dist/side-panel/layer-panel/channel-by-value-selector.js +2 -3
  306. package/dist/side-panel/layer-panel/color-breaks-panel.js +2 -3
  307. package/dist/side-panel/layer-panel/color-palette.js +2 -3
  308. package/dist/side-panel/layer-panel/color-range-selector.js +2 -3
  309. package/dist/side-panel/layer-panel/color-scale-selector.js +2 -3
  310. package/dist/side-panel/layer-panel/color-selector.js +2 -3
  311. package/dist/side-panel/layer-panel/column-selector.js +2 -3
  312. package/dist/side-panel/layer-panel/custom-palette.js +41 -42
  313. package/dist/side-panel/layer-panel/custom-picker.js +2 -3
  314. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
  315. package/dist/side-panel/layer-panel/dataset-layer-group.js +6 -5
  316. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
  317. package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
  318. package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -3
  319. package/dist/side-panel/layer-panel/layer-color-selector.js +2 -3
  320. package/dist/side-panel/layer-panel/layer-column-config.js +2 -3
  321. package/dist/side-panel/layer-panel/layer-column-mode-config.js +2 -3
  322. package/dist/side-panel/layer-panel/layer-config-group.js +2 -3
  323. package/dist/side-panel/layer-panel/layer-configurator.js +51 -52
  324. package/dist/side-panel/layer-panel/layer-group-header.js +2 -3
  325. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -1
  326. package/dist/side-panel/layer-panel/layer-list.js +8 -7
  327. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +1 -1
  328. package/dist/side-panel/layer-panel/layer-panel-header.js +3 -4
  329. package/dist/side-panel/layer-panel/layer-panel.d.ts +2 -1
  330. package/dist/side-panel/layer-panel/layer-panel.js +15 -6
  331. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -3
  332. package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -3
  333. package/dist/side-panel/layer-panel/layer-type-selector.js +2 -3
  334. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +2 -3
  335. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +2 -3
  336. package/dist/side-panel/layer-panel/single-color-palette.js +2 -3
  337. package/dist/side-panel/layer-panel/text-label-panel.js +2 -3
  338. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -3
  339. package/dist/side-panel/layer-panel/vis-config-slider.js +2 -3
  340. package/dist/side-panel/map-manager.d.ts +9 -3
  341. package/dist/side-panel/map-manager.js +13 -7
  342. package/dist/side-panel/map-style-panel/globe-config-panel.d.ts +15 -0
  343. package/dist/side-panel/map-style-panel/globe-config-panel.js +269 -0
  344. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +2 -3
  345. package/dist/side-panel/map-style-panel/map-layer-group-item.js +2 -3
  346. package/dist/side-panel/panel-header.js +9 -10
  347. package/dist/side-panel/panel-toggle.js +2 -3
  348. package/dist/side-panel/panel-view-list-toggle.js +2 -3
  349. package/dist/side-panel/side-bar.js +2 -3
  350. package/dist/side-panel.js +4 -3
  351. package/dist/types.d.ts +2 -1
  352. package/dist/types.js +1 -1
  353. package/package.json +23 -20
@@ -17,8 +17,7 @@ var _itemSelector = _interopRequireDefault(require("../common/item-selector/item
17
17
  var _styledComponents2 = require("../common/styled-components");
18
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8; // SPDX-License-Identifier: MIT
19
19
  // Copyright contributors to the kepler.gl project
20
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
21
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
23
  // --- Styled components matching the regular export video modal ---
@@ -175,6 +174,7 @@ var AnimationTab = function AnimationTab(_ref) {
175
174
  swipeEndPct = _ref.swipeEndPct,
176
175
  swipeEasing = _ref.swipeEasing,
177
176
  disabled = _ref.disabled,
177
+ hideSwipe = _ref.hideSwipe,
178
178
  onChangeDuration = _ref.onChangeDuration,
179
179
  onChangeCameraPreset = _ref.onChangeCameraPreset,
180
180
  onChangeStartPct = _ref.onChangeStartPct,
@@ -199,7 +199,7 @@ var AnimationTab = function AnimationTab(_ref) {
199
199
  searchable: false,
200
200
  onChange: onChangeCameraPreset,
201
201
  disabled: disabled
202
- })), /*#__PURE__*/_react["default"].createElement(SectionDivider, null, "Swipe"), /*#__PURE__*/_react["default"].createElement(InputGrid, null, /*#__PURE__*/_react["default"].createElement(StyledLabelCell, null, "Start (", Math.round(swipeStartPct), "%)"), /*#__PURE__*/_react["default"].createElement(LightSlider, {
202
+ })), !hideSwipe && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SectionDivider, null, "Swipe"), /*#__PURE__*/_react["default"].createElement(InputGrid, null, /*#__PURE__*/_react["default"].createElement(StyledLabelCell, null, "Start (", Math.round(swipeStartPct), "%)"), /*#__PURE__*/_react["default"].createElement(LightSlider, {
203
203
  showValues: false,
204
204
  isRanged: false,
205
205
  value1: swipeStartPct,
@@ -238,7 +238,7 @@ var AnimationTab = function AnimationTab(_ref) {
238
238
  displayOption: function displayOption(o) {
239
239
  return o.label;
240
240
  }
241
- })));
241
+ }))));
242
242
  };
243
243
 
244
244
  // --- Settings Tab (identical to regular export) ---
@@ -327,7 +327,8 @@ var SwipeExportSettings = function SwipeExportSettings(_ref3) {
327
327
  disabled = _ref3.disabled,
328
328
  onChangeStartPct = _ref3.onChangeStartPct,
329
329
  onChangeEndPct = _ref3.onChangeEndPct,
330
- onChangeEasing = _ref3.onChangeEasing;
330
+ onChangeEasing = _ref3.onChangeEasing,
331
+ hideSwipe = _ref3.hideSwipe;
331
332
  var _useState3 = (0, _react.useState)('animation'),
332
333
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
333
334
  activeTab = _useState4[0],
@@ -349,6 +350,7 @@ var SwipeExportSettings = function SwipeExportSettings(_ref3) {
349
350
  swipeEndPct: swipeEndPct,
350
351
  swipeEasing: swipeEasing,
351
352
  disabled: disabled,
353
+ hideSwipe: hideSwipe,
352
354
  onChangeDuration: onChangeDuration,
353
355
  onChangeCameraPreset: onChangeCameraPreset,
354
356
  onChangeStartPct: onChangeStartPct,
@@ -367,4 +369,4 @@ var SwipeExportSettings = function SwipeExportSettings(_ref3) {
367
369
  }));
368
370
  };
369
371
  var _default = exports["default"] = SwipeExportSettings;
370
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9zbGlkZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRNb2RhbFRhYiIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImJvcmRlckNvbG9yTFQiLCJTdHlsZWRUYWJJdGVtIiwic3VidGV4dENvbG9yTFQiLCJ0ZXh0Q29sb3JMVCIsIklucHV0R3JpZCIsIlN0eWxlZExhYmVsQ2VsbCIsIlN0eWxlZFZhbHVlQ2VsbCIsIlNsaWRlcldyYXBwZXIiLCJWaWRlb0xlbmd0aERpc3BsYXkiLCJzcGFuIiwiU2VjdGlvbkRpdmlkZXIiLCJTTElERVJfTElHSFRfT1ZFUlJJREVTIiwic2xpZGVyQmFyQ29sb3IiLCJzbGlkZXJCYXJCZ2QiLCJzbGlkZXJCYXJIb3ZlckNvbG9yIiwic2xpZGVySGFuZGxlQ29sb3IiLCJzbGlkZXJIYW5kbGVIb3ZlckNvbG9yIiwic2xpZGVySW5hY3RpdmVCb3JkZXJDb2xvciIsInNsaWRlckhhbmRsZVRleHRDb2xvciIsInNsaWRlckhhbmRsZVNoYWRvdyIsIkVBU0lOR19PUFRJT05TIiwiaWQiLCJsYWJlbCIsIkZPUk1BVF9PUFRJT05TIiwidmFsdWUiLCJERUZBVUxUX1BSRVZJRVdfUkVTT0xVVElPTlMiLCJSRVNPTFVUSU9OX09QVElPTlMiLCJhc3BlY3RSYXRpbyIsIkNBTUVSQV9QUkVTRVRTIiwicHJpbnREdXJhdGlvbiIsImR1cmF0aW9uTXMiLCJzZWNvbmRzIiwiTWF0aCIsImZsb29yIiwibWludXRlcyIsIm1zIiwiaGgiLCJjb25jYXQiLCJlc3RpbWF0ZUZpbGVTaXplIiwiZnJhbWVSYXRlIiwicmVzb2x1dGlvbiIsIm1lZGlhVHlwZSIsIk1CIiwiQ09NUFJFU1NJT05fUkFUSU8iLCJCSVRfREVQVEgiLCJjZWlsIiwiTGlnaHRTbGlkZXIiLCJ1c2VUaGVtZSIsImxpZ2h0VGhlbWUiLCJ1c2VNZW1vIiwiY3JlYXRlRWxlbWVudCIsIlRoZW1lUHJvdmlkZXIiLCJMaWdodEl0ZW1TZWxlY3RvciIsIl9leHRlbmRzMiIsImlucHV0VGhlbWUiLCJnZXRPcHRpb25WYWx1ZSIsImRpc3BsYXlPcHRpb24iLCJBbmltYXRpb25UYWIiLCJfcmVmIiwiY2FtZXJhUHJlc2V0Iiwic3dpcGVTdGFydFBjdCIsInN3aXBlRW5kUGN0Iiwic3dpcGVFYXNpbmciLCJkaXNhYmxlZCIsIm9uQ2hhbmdlRHVyYXRpb24iLCJvbkNoYW5nZUNhbWVyYVByZXNldCIsIm9uQ2hhbmdlU3RhcnRQY3QiLCJvbkNoYW5nZUVuZFBjdCIsIm9uQ2hhbmdlRWFzaW5nIiwiRnJhZ21lbnQiLCJzaG93VmFsdWVzIiwiZW5hYmxlQmFyRHJhZyIsImlzUmFuZ2VkIiwidmFsdWUwIiwidmFsdWUxIiwic3RlcCIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJvblNsaWRlcjFDaGFuZ2UiLCJ2Iiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJvbkNoYW5nZSIsInJvdW5kIiwiZmluZCIsInZhbCIsIlNldHRpbmdzVGFiIiwiX3JlZjIiLCJmaWxlTmFtZSIsIm9uQ2hhbmdlRmlsZU5hbWUiLCJvbkNoYW5nZU1lZGlhVHlwZSIsIm9uQ2hhbmdlUmVzb2x1dGlvbiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImFzcFJhdGlvIiwic2V0QXNwUmF0aW8iLCJyZXNvbHV0aW9uUGFydHMiLCJzcGxpdCIsIm1hcCIsIk51bWJlciIsImN1cnJlbnRSZXNvbHV0aW9uIiwiSW5wdXRMaWdodCIsInBsYWNlaG9sZGVyIiwidGFyZ2V0IiwicmF0aW8iLCJTd2lwZUV4cG9ydFNldHRpbmdzIiwiX3JlZjMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFjdGl2ZVRhYiIsInNldEFjdGl2ZVRhYiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWxzL3N3aXBlLWV4cG9ydC1zZXR0aW5ncy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q2hhbmdlRXZlbnQsIHVzZU1lbW8sIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7VGhlbWVQcm92aWRlciwgdXNlVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U3dpcGVFYXNpbmd9IGZyb20gJy4vc3dpcGUtY29tcG9zaXRlLXV0aWxzJztcblxuaW1wb3J0IFNsaWRlciBmcm9tICcuLi9jb21tb24vc2xpZGVyL3NsaWRlcic7XG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IHtJbnB1dExpZ2h0fSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG4vLyAtLS0gU3R5bGVkIGNvbXBvbmVudHMgbWF0Y2hpbmcgdGhlIHJlZ3VsYXIgZXhwb3J0IHZpZGVvIG1vZGFsIC0tLVxuXG5jb25zdCBTdHlsZWRNb2RhbFRhYiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJvcmRlckNvbG9yTFR9O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuYDtcblxuY29uc3QgU3R5bGVkVGFiSXRlbSA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yTFR9O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgJi5hY3RpdmUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckxUfTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckxUfTtcbiAgfVxuYDtcblxuY29uc3QgSW5wdXRHcmlkID0gc3R5bGVkLmRpdjx7JHJvd3M/OiBudW1iZXJ9PmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDBweCAxZnI7XG4gIGdyaWQtcm93LWdhcDogMTJweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFN0eWxlZExhYmVsQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yTFR9O1xuYDtcblxuY29uc3QgU3R5bGVkVmFsdWVDZWxsID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG5gO1xuXG5jb25zdCBTbGlkZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG5gO1xuXG5jb25zdCBWaWRlb0xlbmd0aERpc3BsYXkgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIG1pbi13aWR0aDogNDJweDtcbmA7XG5cbmNvbnN0IFNlY3Rpb25EaXZpZGVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luOiAxNHB4IDAgMTBweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJvcmRlckNvbG9yTFR9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckxUfTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbmA7XG5cbmNvbnN0IFNMSURFUl9MSUdIVF9PVkVSUklERVMgPSB7XG4gIHNsaWRlckJhckNvbG9yOiAnI0EwQTdCNCcsXG4gIHNsaWRlckJhckJnZDogJyNEM0Q4RTAnLFxuICBzbGlkZXJCYXJIb3ZlckNvbG9yOiAnIzkzOUJBOCcsXG4gIHNsaWRlckhhbmRsZUNvbG9yOiAnI0Y3RjdGNycsXG4gIHNsaWRlckhhbmRsZUhvdmVyQ29sb3I6ICcjRjdGN0Y3JyxcbiAgc2xpZGVySW5hY3RpdmVCb3JkZXJDb2xvcjogJyNGN0Y3RjcnLFxuICBzbGlkZXJIYW5kbGVUZXh0Q29sb3I6ICcjRjdGN0Y3JyxcbiAgc2xpZGVySGFuZGxlU2hhZG93OiAnMCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjIwKSdcbn07XG5cbi8vIC0tLSBPcHRpb25zIC0tLVxuXG5jb25zdCBFQVNJTkdfT1BUSU9OUyA9IFtcbiAge2lkOiAnZWFzZS1pbi1vdXQnLCBsYWJlbDogJ0Vhc2UgSW4tT3V0J30sXG4gIHtpZDogJ2xpbmVhcicsIGxhYmVsOiAnTGluZWFyJ31cbl07XG5cbmNvbnN0IEZPUk1BVF9PUFRJT05TID0gW1xuICB7dmFsdWU6ICdnaWYnLCBsYWJlbDogJ0dJRid9LFxuICB7dmFsdWU6ICd3ZWJtJywgbGFiZWw6ICdXZWJNIFZpZGVvJ30sXG4gIHt2YWx1ZTogJ3BuZycsIGxhYmVsOiAnUE5HIFNlcXVlbmNlJ30sXG4gIHt2YWx1ZTogJ2pwZWcnLCBsYWJlbDogJ0pQRUcgU2VxdWVuY2UnfVxuXTtcblxuY29uc3QgREVGQVVMVF9QUkVWSUVXX1JFU09MVVRJT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geycxNjo5JzogJzEyODB4NzIwJywgJzQ6Myc6ICcxMjgweDk2MCd9O1xuXG5jb25zdCBSRVNPTFVUSU9OX09QVElPTlMgPSBbXG4gIHt2YWx1ZTogJzk2MHg1NDAnLCBsYWJlbDogJ0dvb2QgKDU0MHApJywgYXNwZWN0UmF0aW86ICcxNjo5J30sXG4gIHt2YWx1ZTogJzEyODB4NzIwJywgbGFiZWw6ICdIaWdoICg3MjBwKScsIGFzcGVjdFJhdGlvOiAnMTY6OSd9LFxuICB7dmFsdWU6ICcxOTIweDEwODAnLCBsYWJlbDogJ0hpZ2hlc3QgKDEwODBwKScsIGFzcGVjdFJhdGlvOiAnMTY6OSd9LFxuICB7dmFsdWU6ICc2NDB4NDgwJywgbGFiZWw6ICdHb29kICg0ODBwKScsIGFzcGVjdFJhdGlvOiAnNDozJ30sXG4gIHt2YWx1ZTogJzEyODB4OTYwJywgbGFiZWw6ICdIaWdoICg5NjBwKScsIGFzcGVjdFJhdGlvOiAnNDozJ30sXG4gIHt2YWx1ZTogJzE5MjB4MTQ0MCcsIGxhYmVsOiAnSGlnaGVzdCAoMTQ0MHApJywgYXNwZWN0UmF0aW86ICc0OjMnfVxuXTtcblxuY29uc3QgQ0FNRVJBX1BSRVNFVFMgPSBbXG4gICdOb25lJyxcbiAgJ09yYml0ICg5MMK6KScsXG4gICdPcmJpdCAoMTgwwropJyxcbiAgJ09yYml0ICgzNjDCuiknLFxuICAnWm9vbSBPdXQnLFxuICAnWm9vbSBJbidcbl07XG5cbi8vIC0tLSBUeXBlcyAtLS1cblxuZXhwb3J0IHR5cGUgU3dpcGVFeHBvcnRTZXR0aW5nc1Byb3BzID0ge1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIG1lZGlhVHlwZTogc3RyaW5nO1xuICByZXNvbHV0aW9uOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGNhbWVyYVByZXNldDogc3RyaW5nO1xuICBmcmFtZVJhdGU6IG51bWJlcjtcbiAgb25DaGFuZ2VEdXJhdGlvbjogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlTWVkaWFUeXBlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgb25DaGFuZ2VSZXNvbHV0aW9uOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgb25DaGFuZ2VGaWxlTmFtZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgc3dpcGVTdGFydFBjdDogbnVtYmVyO1xuICBzd2lwZUVuZFBjdDogbnVtYmVyO1xuICBzd2lwZUVhc2luZzogU3dpcGVFYXNpbmc7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBvbkNoYW5nZVN0YXJ0UGN0OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DaGFuZ2VFbmRQY3Q6ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNoYW5nZUVhc2luZzogKHZhbHVlOiBTd2lwZUVhc2luZykgPT4gdm9pZDtcbn07XG5cbi8vIC0tLSBVdGlsaXRpZXMgLS0tXG5cbmZ1bmN0aW9uIHByaW50RHVyYXRpb24oZHVyYXRpb25NczogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZHVyYXRpb25NcyAvIDEwMDApICUgNjA7XG4gIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKGR1cmF0aW9uTXMgLyA2MDAwMCk7XG4gIGNvbnN0IG1zID0gTWF0aC5mbG9vcigoZHVyYXRpb25NcyAlIDEwMDApIC8gMTAwKTtcbiAgY29uc3QgaGggPSBtaW51dGVzID4gMCA/IGAke21pbnV0ZXN9OmAgOiAnJztcbiAgcmV0dXJuIGAke2hofSR7c2Vjb25kcyA8IDEwID8gJzAnIDogJyd9JHtzZWNvbmRzfS4ke21zfWA7XG59XG5cbmZ1bmN0aW9uIGVzdGltYXRlRmlsZVNpemUoXG4gIGZyYW1lUmF0ZTogbnVtYmVyLFxuICByZXNvbHV0aW9uOiBbbnVtYmVyLCBudW1iZXJdLFxuICBkdXJhdGlvbk1zOiBudW1iZXIsXG4gIG1lZGlhVHlwZTogc3RyaW5nXG4pOiBzdHJpbmcge1xuICBjb25zdCBNQiA9IDggKiAxMDI0ICogMTAyNDtcbiAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZHVyYXRpb25NcyAvIDEwMDApO1xuICBjb25zdCBDT01QUkVTU0lPTl9SQVRJTyA9IDAuODtcbiAgY29uc3QgQklUX0RFUFRIID0gNjtcblxuICBpZiAobWVkaWFUeXBlID09PSAnZ2lmJyB8fCBtZWRpYVR5cGUgPT09ICdwbmcnKSB7XG4gICAgcmV0dXJuIGAke01hdGguZmxvb3IoXG4gICAgICAoKHJlc29sdXRpb25bMF0gKiByZXNvbHV0aW9uWzFdICogQklUX0RFUFRIKSAvIE1CKSAqIChmcmFtZVJhdGUgKiBzZWNvbmRzKSAqIENPTVBSRVNTSU9OX1JBVElPXG4gICAgKX0gTUJgO1xuICB9XG4gIGlmIChtZWRpYVR5cGUgPT09ICd3ZWJtJykge1xuICAgIHJldHVybiBgJHtNYXRoLmNlaWwoKHJlc29sdXRpb25bMF0gLyAxMjgwKSAqIGZyYW1lUmF0ZSAqIHNlY29uZHMgKiAwLjEyNSl9IE1CYDtcbiAgfVxuICBpZiAobWVkaWFUeXBlID09PSAnanBlZycpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5mbG9vcihcbiAgICAgICgocmVzb2x1dGlvblswXSAqIHJlc29sdXRpb25bMV0gKiBCSVRfREVQVEgpIC8gTUIpICogKGZyYW1lUmF0ZSAqIHNlY29uZHMpICogMC40XG4gICAgKX0gTUJgO1xuICB9XG4gIHJldHVybiAn4oCUJztcbn1cblxuLy8gLS0tIFN1Yi1jb21wb25lbnRzIC0tLVxuXG5jb25zdCBMaWdodFNsaWRlcjogUmVhY3QuRkM8YW55PiA9IHByb3BzID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBsaWdodFRoZW1lID0gdXNlTWVtbygoKSA9PiAoey4uLnRoZW1lLCAuLi5TTElERVJfTElHSFRfT1ZFUlJJREVTfSksIFt0aGVtZV0pO1xuICByZXR1cm4gKFxuICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXtsaWdodFRoZW1lfT5cbiAgICAgIDxTbGlkZXIgey4uLnByb3BzfSAvPlxuICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgKTtcbn07XG5cbmNvbnN0IExpZ2h0SXRlbVNlbGVjdG9yOiBSZWFjdC5GQzxhbnk+ID0gcHJvcHMgPT4gKFxuICA8SXRlbVNlbGVjdG9yIHsuLi5wcm9wc30gaW5wdXRUaGVtZT1cImxpZ2h0XCIgLz5cbik7XG5cbmNvbnN0IGdldE9wdGlvblZhbHVlID0gKG86IGFueSkgPT4gby52YWx1ZTtcbmNvbnN0IGRpc3BsYXlPcHRpb24gPSAobzogYW55KSA9PiBvLmxhYmVsO1xuXG4vLyAtLS0gQW5pbWF0aW9uIFRhYiAtLS1cblxuY29uc3QgQW5pbWF0aW9uVGFiOiBSZWFjdC5GQzx7XG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgY2FtZXJhUHJlc2V0OiBzdHJpbmc7XG4gIHN3aXBlU3RhcnRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFbmRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFYXNpbmc6IFN3aXBlRWFzaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgb25DaGFuZ2VEdXJhdGlvbjogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgb25DaGFuZ2VTdGFydFBjdDogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRW5kUGN0OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DaGFuZ2VFYXNpbmc6ICh2YWx1ZTogU3dpcGVFYXNpbmcpID0+IHZvaWQ7XG59PiA9ICh7XG4gIGR1cmF0aW9uTXMsXG4gIGNhbWVyYVByZXNldCxcbiAgc3dpcGVTdGFydFBjdCxcbiAgc3dpcGVFbmRQY3QsXG4gIHN3aXBlRWFzaW5nLFxuICBkaXNhYmxlZCxcbiAgb25DaGFuZ2VEdXJhdGlvbixcbiAgb25DaGFuZ2VDYW1lcmFQcmVzZXQsXG4gIG9uQ2hhbmdlU3RhcnRQY3QsXG4gIG9uQ2hhbmdlRW5kUGN0LFxuICBvbkNoYW5nZUVhc2luZ1xufSkgPT4gKFxuICA8PlxuICAgIDxJbnB1dEdyaWQ+XG4gICAgICA8U3R5bGVkTGFiZWxDZWxsPkR1cmF0aW9uPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8U3R5bGVkVmFsdWVDZWxsPlxuICAgICAgICA8U2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8TGlnaHRTbGlkZXJcbiAgICAgICAgICAgIHNob3dWYWx1ZXM9e2ZhbHNlfVxuICAgICAgICAgICAgZW5hYmxlQmFyRHJhZz17IWRpc2FibGVkfVxuICAgICAgICAgICAgaXNSYW5nZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgdmFsdWUwPXsxMDB9XG4gICAgICAgICAgICB2YWx1ZTE9e2R1cmF0aW9uTXN9XG4gICAgICAgICAgICBzdGVwPXsxMDB9XG4gICAgICAgICAgICBtaW5WYWx1ZT17MTAwfVxuICAgICAgICAgICAgbWF4VmFsdWU9ezEwMDAwfVxuICAgICAgICAgICAgb25TbGlkZXIxQ2hhbmdlPXsodjogbnVtYmVyKSA9PiB7IGlmICghZGlzYWJsZWQpIG9uQ2hhbmdlRHVyYXRpb24odik7IH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8VmlkZW9MZW5ndGhEaXNwbGF5PntwcmludER1cmF0aW9uKGR1cmF0aW9uTXMpfTwvVmlkZW9MZW5ndGhEaXNwbGF5PlxuICAgICAgICA8L1NsaWRlcldyYXBwZXI+XG4gICAgICA8L1N0eWxlZFZhbHVlQ2VsbD5cblxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5DYW1lcmE8L1N0eWxlZExhYmVsQ2VsbD5cbiAgICAgIDxMaWdodEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXtjYW1lcmFQcmVzZXR9XG4gICAgICAgIG9wdGlvbnM9e0NBTUVSQV9QUkVTRVRTfVxuICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2VDYW1lcmFQcmVzZXR9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIC8+XG4gICAgPC9JbnB1dEdyaWQ+XG5cbiAgICA8U2VjdGlvbkRpdmlkZXI+U3dpcGU8L1NlY3Rpb25EaXZpZGVyPlxuICAgIDxJbnB1dEdyaWQ+XG4gICAgICA8U3R5bGVkTGFiZWxDZWxsPlN0YXJ0ICh7TWF0aC5yb3VuZChzd2lwZVN0YXJ0UGN0KX0lKTwvU3R5bGVkTGFiZWxDZWxsPlxuICAgICAgPExpZ2h0U2xpZGVyXG4gICAgICAgIHNob3dWYWx1ZXM9e2ZhbHNlfVxuICAgICAgICBpc1JhbmdlZD17ZmFsc2V9XG4gICAgICAgIHZhbHVlMT17c3dpcGVTdGFydFBjdH1cbiAgICAgICAgbWluVmFsdWU9ezB9XG4gICAgICAgIG1heFZhbHVlPXsxMDB9XG4gICAgICAgIHN0ZXA9ezF9XG4gICAgICAgIG9uU2xpZGVyMUNoYW5nZT17KHY6IG51bWJlcikgPT4geyBpZiAoIWRpc2FibGVkKSBvbkNoYW5nZVN0YXJ0UGN0KHYpOyB9fVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuXG4gICAgICA8U3R5bGVkTGFiZWxDZWxsPkVuZCAoe01hdGgucm91bmQoc3dpcGVFbmRQY3QpfSUpPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8TGlnaHRTbGlkZXJcbiAgICAgICAgc2hvd1ZhbHVlcz17ZmFsc2V9XG4gICAgICAgIGlzUmFuZ2VkPXtmYWxzZX1cbiAgICAgICAgdmFsdWUxPXtzd2lwZUVuZFBjdH1cbiAgICAgICAgbWluVmFsdWU9ezB9XG4gICAgICAgIG1heFZhbHVlPXsxMDB9XG4gICAgICAgIHN0ZXA9ezF9XG4gICAgICAgIG9uU2xpZGVyMUNoYW5nZT17KHY6IG51bWJlcikgPT4geyBpZiAoIWRpc2FibGVkKSBvbkNoYW5nZUVuZFBjdCh2KTsgfX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgLz5cblxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5FYXNpbmc8L1N0eWxlZExhYmVsQ2VsbD5cbiAgICAgIDxMaWdodEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXtFQVNJTkdfT1BUSU9OUy5maW5kKG8gPT4gby5pZCA9PT0gc3dpcGVFYXNpbmcpIHx8IEVBU0lOR19PUFRJT05TWzBdfVxuICAgICAgICBvcHRpb25zPXtFQVNJTkdfT1BUSU9OU31cbiAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgb25DaGFuZ2U9eyh2YWw6IGFueSkgPT4gb25DaGFuZ2VFYXNpbmcodmFsPy5pZCB8fCB2YWwpfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGdldE9wdGlvblZhbHVlPXsobzogYW55KSA9PiBvLmlkfVxuICAgICAgICBkaXNwbGF5T3B0aW9uPXsobzogYW55KSA9PiBvLmxhYmVsfVxuICAgICAgLz5cbiAgICA8L0lucHV0R3JpZD5cbiAgPC8+XG4pO1xuXG4vLyAtLS0gU2V0dGluZ3MgVGFiIChpZGVudGljYWwgdG8gcmVndWxhciBleHBvcnQpIC0tLVxuXG5jb25zdCBTZXR0aW5nc1RhYjogUmVhY3QuRkM8e1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBtZWRpYVR5cGU6IHN0cmluZztcbiAgcmVzb2x1dGlvbjogc3RyaW5nO1xuICBmcmFtZVJhdGU6IG51bWJlcjtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgb25DaGFuZ2VGaWxlTmFtZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlTWVkaWFUeXBlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgb25DaGFuZ2VSZXNvbHV0aW9uOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbn0+ID0gKHtcbiAgZmlsZU5hbWUsXG4gIG1lZGlhVHlwZSxcbiAgcmVzb2x1dGlvbixcbiAgZnJhbWVSYXRlLFxuICBkdXJhdGlvbk1zLFxuICBkaXNhYmxlZCxcbiAgb25DaGFuZ2VGaWxlTmFtZSxcbiAgb25DaGFuZ2VNZWRpYVR5cGUsXG4gIG9uQ2hhbmdlUmVzb2x1dGlvblxufSkgPT4ge1xuICBjb25zdCBbYXNwUmF0aW8sIHNldEFzcFJhdGlvXSA9IHVzZVN0YXRlPHN0cmluZz4oJzE2OjknKTtcblxuICBjb25zdCByZXNvbHV0aW9uUGFydHMgPSByZXNvbHV0aW9uLnNwbGl0KCd4JykubWFwKE51bWJlcik7XG4gIGNvbnN0IGN1cnJlbnRSZXNvbHV0aW9uOiBbbnVtYmVyLCBudW1iZXJdID0gW3Jlc29sdXRpb25QYXJ0c1swXSB8fCAxMjgwLCByZXNvbHV0aW9uUGFydHNbMV0gfHwgNzIwXTtcblxuICByZXR1cm4gKFxuICAgIDxJbnB1dEdyaWQ+XG4gICAgICA8U3R5bGVkTGFiZWxDZWxsPkZpbGUgTmFtZTwvU3R5bGVkTGFiZWxDZWxsPlxuICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgdmFsdWU9e2ZpbGVOYW1lfVxuICAgICAgICBwbGFjZWhvbGRlcj1cImtlcGxlci5nbFwiXG4gICAgICAgIG9uQ2hhbmdlPXsoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IG9uQ2hhbmdlRmlsZU5hbWUoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuXG4gICAgICA8U3R5bGVkTGFiZWxDZWxsPk1lZGlhIFR5cGU8L1N0eWxlZExhYmVsQ2VsbD5cbiAgICAgIDxMaWdodEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXtGT1JNQVRfT1BUSU9OUy5maW5kKG8gPT4gby52YWx1ZSA9PT0gbWVkaWFUeXBlKSB8fCBGT1JNQVRfT1BUSU9OU1swXX1cbiAgICAgICAgb3B0aW9ucz17Rk9STUFUX09QVElPTlN9XG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXsodmFsOiBhbnkpID0+IG9uQ2hhbmdlTWVkaWFUeXBlKHZhbD8udmFsdWUgfHwgdmFsKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBnZXRPcHRpb25WYWx1ZT17Z2V0T3B0aW9uVmFsdWV9XG4gICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAvPlxuXG4gICAgICA8U3R5bGVkTGFiZWxDZWxsPlJhdGlvPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8TGlnaHRJdGVtU2VsZWN0b3JcbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17YXNwUmF0aW99XG4gICAgICAgIG9wdGlvbnM9e1snNDozJywgJzE2OjknXX1cbiAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgb25DaGFuZ2U9eyhyYXRpbzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgc2V0QXNwUmF0aW8ocmF0aW8pO1xuICAgICAgICAgIG9uQ2hhbmdlUmVzb2x1dGlvbihERUZBVUxUX1BSRVZJRVdfUkVTT0xVVElPTlNbcmF0aW9dKTtcbiAgICAgICAgfX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgLz5cblxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5RdWFsaXR5PC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8TGlnaHRJdGVtU2VsZWN0b3JcbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17UkVTT0xVVElPTl9PUFRJT05TLmZpbmQobyA9PiBvLnZhbHVlID09PSByZXNvbHV0aW9uKSB8fCBSRVNPTFVUSU9OX09QVElPTlNbMV19XG4gICAgICAgIG9wdGlvbnM9e1JFU09MVVRJT05fT1BUSU9OUy5maWx0ZXIobyA9PiBvLmFzcGVjdFJhdGlvID09PSBhc3BSYXRpbyl9XG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXsodmFsOiBhbnkpID0+IG9uQ2hhbmdlUmVzb2x1dGlvbih2YWw/LnZhbHVlIHx8IHZhbCl9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e2dldE9wdGlvblZhbHVlfVxuICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgLz5cblxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5GaWxlIFNpemU8L1N0eWxlZExhYmVsQ2VsbD5cbiAgICAgIDxTdHlsZWRWYWx1ZUNlbGw+XG4gICAgICAgIEFwcHJveC4ge2VzdGltYXRlRmlsZVNpemUoZnJhbWVSYXRlLCBjdXJyZW50UmVzb2x1dGlvbiwgZHVyYXRpb25NcywgbWVkaWFUeXBlKX1cbiAgICAgIDwvU3R5bGVkVmFsdWVDZWxsPlxuICAgIDwvSW5wdXRHcmlkPlxuICApO1xufTtcblxuLy8gLS0tIE1haW4gQ29tcG9uZW50IC0tLVxuXG50eXBlIFRhYklkID0gJ2FuaW1hdGlvbicgfCAnc2V0dGluZ3MnO1xuXG5jb25zdCBTd2lwZUV4cG9ydFNldHRpbmdzOiBSZWFjdC5GQzxTd2lwZUV4cG9ydFNldHRpbmdzUHJvcHM+ID0gKHtcbiAgZHVyYXRpb25NcyxcbiAgbWVkaWFUeXBlLFxuICByZXNvbHV0aW9uLFxuICBmaWxlTmFtZSxcbiAgY2FtZXJhUHJlc2V0LFxuICBmcmFtZVJhdGUsXG4gIG9uQ2hhbmdlRHVyYXRpb24sXG4gIG9uQ2hhbmdlTWVkaWFUeXBlLFxuICBvbkNoYW5nZVJlc29sdXRpb24sXG4gIG9uQ2hhbmdlRmlsZU5hbWUsXG4gIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0LFxuICBzd2lwZVN0YXJ0UGN0LFxuICBzd2lwZUVuZFBjdCxcbiAgc3dpcGVFYXNpbmcsXG4gIGRpc2FibGVkLFxuICBvbkNoYW5nZVN0YXJ0UGN0LFxuICBvbkNoYW5nZUVuZFBjdCxcbiAgb25DaGFuZ2VFYXNpbmdcbn0pID0+IHtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlPFRhYklkPignYW5pbWF0aW9uJyk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPFN0eWxlZE1vZGFsVGFiPlxuICAgICAgICA8U3R5bGVkVGFiSXRlbVxuICAgICAgICAgIGNsYXNzTmFtZT17YWN0aXZlVGFiID09PSAnYW5pbWF0aW9uJyA/ICdhY3RpdmUnIDogJyd9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0QWN0aXZlVGFiKCdhbmltYXRpb24nKX1cbiAgICAgICAgPlxuICAgICAgICAgIEFuaW1hdGlvblxuICAgICAgICA8L1N0eWxlZFRhYkl0ZW0+XG4gICAgICAgIDxTdHlsZWRUYWJJdGVtXG4gICAgICAgICAgY2xhc3NOYW1lPXthY3RpdmVUYWIgPT09ICdzZXR0aW5ncycgPyAnYWN0aXZlJyA6ICcnfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZVRhYignc2V0dGluZ3MnKX1cbiAgICAgICAgPlxuICAgICAgICAgIFNldHRpbmdzXG4gICAgICAgIDwvU3R5bGVkVGFiSXRlbT5cbiAgICAgIDwvU3R5bGVkTW9kYWxUYWI+XG5cbiAgICAgIHthY3RpdmVUYWIgPT09ICdhbmltYXRpb24nICYmIChcbiAgICAgICAgPEFuaW1hdGlvblRhYlxuICAgICAgICAgIGR1cmF0aW9uTXM9e2R1cmF0aW9uTXN9XG4gICAgICAgICAgY2FtZXJhUHJlc2V0PXtjYW1lcmFQcmVzZXR9XG4gICAgICAgICAgc3dpcGVTdGFydFBjdD17c3dpcGVTdGFydFBjdH1cbiAgICAgICAgICBzd2lwZUVuZFBjdD17c3dpcGVFbmRQY3R9XG4gICAgICAgICAgc3dpcGVFYXNpbmc9e3N3aXBlRWFzaW5nfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBvbkNoYW5nZUR1cmF0aW9uPXtvbkNoYW5nZUR1cmF0aW9ufVxuICAgICAgICAgIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0PXtvbkNoYW5nZUNhbWVyYVByZXNldH1cbiAgICAgICAgICBvbkNoYW5nZVN0YXJ0UGN0PXtvbkNoYW5nZVN0YXJ0UGN0fVxuICAgICAgICAgIG9uQ2hhbmdlRW5kUGN0PXtvbkNoYW5nZUVuZFBjdH1cbiAgICAgICAgICBvbkNoYW5nZUVhc2luZz17b25DaGFuZ2VFYXNpbmd9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7YWN0aXZlVGFiID09PSAnc2V0dGluZ3MnICYmIChcbiAgICAgICAgPFNldHRpbmdzVGFiXG4gICAgICAgICAgZmlsZU5hbWU9e2ZpbGVOYW1lfVxuICAgICAgICAgIG1lZGlhVHlwZT17bWVkaWFUeXBlfVxuICAgICAgICAgIHJlc29sdXRpb249e3Jlc29sdXRpb259XG4gICAgICAgICAgZnJhbWVSYXRlPXtmcmFtZVJhdGV9XG4gICAgICAgICAgZHVyYXRpb25Ncz17ZHVyYXRpb25Nc31cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2VGaWxlTmFtZT17b25DaGFuZ2VGaWxlTmFtZX1cbiAgICAgICAgICBvbkNoYW5nZU1lZGlhVHlwZT17b25DaGFuZ2VNZWRpYVR5cGV9XG4gICAgICAgICAgb25DaGFuZ2VSZXNvbHV0aW9uPXtvbkNoYW5nZVJlc29sdXRpb259XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3dpcGVFeHBvcnRTZXR0aW5ncztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFFLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFBdUQsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVR2RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FB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LGFBQUEsQ0FBQ3hELGNBQWMscUJBQ2JuRCxNQUFBLFlBQUEyRyxhQUFBLENBQUNqRCxhQUFhO0lBQ1prSCxTQUFTLEVBQUVGLFNBQVMsS0FBSyxXQUFXLEdBQUcsUUFBUSxHQUFHLEVBQUc7SUFDckRHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUUYsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUFBO0VBQUMsR0FDMUMsV0FFYyxDQUFDLGVBQ2hCM0ssTUFBQSxZQUFBMkcsYUFBQSxDQUFDakQsYUFBYTtJQUNaa0gsU0FBUyxFQUFFRixTQUFTLEtBQUssVUFBVSxHQUFHLFFBQVEsR0FBRyxFQUFHO0lBQ3BERyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFGLFlBQVksQ0FBQyxVQUFVLENBQUM7SUFBQTtFQUFDLEdBQ3pDLFVBRWMsQ0FDRCxDQUFDLEVBRWhCRCxTQUFTLEtBQUssV0FBVyxpQkFDeEIxSyxNQUFBLFlBQUEyRyxhQUFBLENBQUNPLFlBQVk7SUFDWDNCLFVBQVUsRUFBRUEsVUFBVztJQUN2QjZCLFlBQVksRUFBRUEsWUFBYTtJQUMzQkMsYUFBYSxFQUFFQSxhQUFjO0lBQzdCQyxXQUFXLEVBQUVBLFdBQVk7SUFDekJDLFdBQVcsRUFBRUEsV0FBWTtJQUN6QkMsUUFBUSxFQUFFQSxRQUFTO0lBQ25CQyxnQkFBZ0IsRUFBRUEsZ0JBQWlCO0lBQ25DQyxvQkFBb0IsRUFBRUEsb0JBQXFCO0lBQzNDQyxnQkFBZ0IsRUFBRUEsZ0JBQWlCO0lBQ25DQyxjQUFjLEVBQUVBLGNBQWU7SUFDL0JDLGNBQWMsRUFBRUE7RUFBZSxDQUNoQyxDQUNGLEVBRUE2QyxTQUFTLEtBQUssVUFBVSxpQkFDdkIxSyxNQUFBLFlBQUEyRyxhQUFBLENBQUNzQyxXQUFXO0lBQ1ZFLFFBQVEsRUFBRUEsUUFBUztJQUNuQmpELFNBQVMsRUFBRUEsU0FBVTtJQUNyQkQsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCRCxTQUFTLEVBQUVBLFNBQVU7SUFDckJULFVBQVUsRUFBRUEsVUFBVztJQUN2QmlDLFFBQVEsRUFBRUEsUUFBUztJQUNuQjRCLGdCQUFnQixFQUFFQSxnQkFBaUI7SUFDbkNDLGlCQUFpQixFQUFFQSxpQkFBa0I7SUFDckNDLGtCQUFrQixFQUFFQTtFQUFtQixDQUN4QyxDQUVBLENBQUM7QUFFVixDQUFDO0FBQUMsSUFBQXdCLFFBQUEsR0FBQUMsT0FBQSxjQUVhVCxtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
372
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9zbGlkZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkTW9kYWxUYWIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJib3JkZXJDb2xvckxUIiwiU3R5bGVkVGFiSXRlbSIsInN1YnRleHRDb2xvckxUIiwidGV4dENvbG9yTFQiLCJJbnB1dEdyaWQiLCJTdHlsZWRMYWJlbENlbGwiLCJTdHlsZWRWYWx1ZUNlbGwiLCJTbGlkZXJXcmFwcGVyIiwiVmlkZW9MZW5ndGhEaXNwbGF5Iiwic3BhbiIsIlNlY3Rpb25EaXZpZGVyIiwiU0xJREVSX0xJR0hUX09WRVJSSURFUyIsInNsaWRlckJhckNvbG9yIiwic2xpZGVyQmFyQmdkIiwic2xpZGVyQmFySG92ZXJDb2xvciIsInNsaWRlckhhbmRsZUNvbG9yIiwic2xpZGVySGFuZGxlSG92ZXJDb2xvciIsInNsaWRlckluYWN0aXZlQm9yZGVyQ29sb3IiLCJzbGlkZXJIYW5kbGVUZXh0Q29sb3IiLCJzbGlkZXJIYW5kbGVTaGFkb3ciLCJFQVNJTkdfT1BUSU9OUyIsImlkIiwibGFiZWwiLCJGT1JNQVRfT1BUSU9OUyIsInZhbHVlIiwiREVGQVVMVF9QUkVWSUVXX1JFU09MVVRJT05TIiwiUkVTT0xVVElPTl9PUFRJT05TIiwiYXNwZWN0UmF0aW8iLCJDQU1FUkFfUFJFU0VUUyIsInByaW50RHVyYXRpb24iLCJkdXJhdGlvbk1zIiwic2Vjb25kcyIsIk1hdGgiLCJmbG9vciIsIm1pbnV0ZXMiLCJtcyIsImhoIiwiY29uY2F0IiwiZXN0aW1hdGVGaWxlU2l6ZSIsImZyYW1lUmF0ZSIsInJlc29sdXRpb24iLCJtZWRpYVR5cGUiLCJNQiIsIkNPTVBSRVNTSU9OX1JBVElPIiwiQklUX0RFUFRIIiwiY2VpbCIsIkxpZ2h0U2xpZGVyIiwidXNlVGhlbWUiLCJsaWdodFRoZW1lIiwidXNlTWVtbyIsImNyZWF0ZUVsZW1lbnQiLCJUaGVtZVByb3ZpZGVyIiwiTGlnaHRJdGVtU2VsZWN0b3IiLCJfZXh0ZW5kczIiLCJpbnB1dFRoZW1lIiwiZ2V0T3B0aW9uVmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwiQW5pbWF0aW9uVGFiIiwiX3JlZiIsImNhbWVyYVByZXNldCIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiZGlzYWJsZWQiLCJoaWRlU3dpcGUiLCJvbkNoYW5nZUR1cmF0aW9uIiwib25DaGFuZ2VDYW1lcmFQcmVzZXQiLCJvbkNoYW5nZVN0YXJ0UGN0Iiwib25DaGFuZ2VFbmRQY3QiLCJvbkNoYW5nZUVhc2luZyIsIkZyYWdtZW50Iiwic2hvd1ZhbHVlcyIsImVuYWJsZUJhckRyYWciLCJpc1JhbmdlZCIsInZhbHVlMCIsInZhbHVlMSIsInN0ZXAiLCJtaW5WYWx1ZSIsIm1heFZhbHVlIiwib25TbGlkZXIxQ2hhbmdlIiwidiIsInNlbGVjdGVkSXRlbXMiLCJvcHRpb25zIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwib25DaGFuZ2UiLCJyb3VuZCIsImZpbmQiLCJ2YWwiLCJTZXR0aW5nc1RhYiIsIl9yZWYyIiwiZmlsZU5hbWUiLCJvbkNoYW5nZUZpbGVOYW1lIiwib25DaGFuZ2VNZWRpYVR5cGUiLCJvbkNoYW5nZVJlc29sdXRpb24iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJhc3BSYXRpbyIsInNldEFzcFJhdGlvIiwicmVzb2x1dGlvblBhcnRzIiwic3BsaXQiLCJtYXAiLCJOdW1iZXIiLCJjdXJyZW50UmVzb2x1dGlvbiIsIklucHV0TGlnaHQiLCJwbGFjZWhvbGRlciIsInRhcmdldCIsInJhdGlvIiwiU3dpcGVFeHBvcnRTZXR0aW5ncyIsIl9yZWYzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFscy9zd2lwZS1leHBvcnQtc2V0dGluZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NoYW5nZUV2ZW50LCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge1RoZW1lUHJvdmlkZXIsIHVzZVRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1N3aXBlRWFzaW5nfSBmcm9tICcuL3N3aXBlLWNvbXBvc2l0ZS11dGlscyc7XG5cbmltcG9ydCBTbGlkZXIgZnJvbSAnLi4vY29tbW9uL3NsaWRlci9zbGlkZXInO1xuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICcuLi9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7SW5wdXRMaWdodH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuLy8gLS0tIFN0eWxlZCBjb21wb25lbnRzIG1hdGNoaW5nIHRoZSByZWd1bGFyIGV4cG9ydCB2aWRlbyBtb2RhbCAtLS1cblxuY29uc3QgU3R5bGVkTW9kYWxUYWIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ib3JkZXJDb2xvckxUfTtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFRhYkl0ZW0gPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvckxUfTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICYuYWN0aXZlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yTFR9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gIH1cbmA7XG5cbmNvbnN0IElucHV0R3JpZCA9IHN0eWxlZC5kaXY8eyRyb3dzPzogbnVtYmVyfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwcHggMWZyO1xuICBncmlkLXJvdy1nYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRMYWJlbENlbGwgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvckxUfTtcbmA7XG5cbmNvbnN0IFN0eWxlZFZhbHVlQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yTFR9O1xuYDtcblxuY29uc3QgU2xpZGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuY29uc3QgVmlkZW9MZW5ndGhEaXNwbGF5ID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yTFR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICBtaW4td2lkdGg6IDQycHg7XG5gO1xuXG5jb25zdCBTZWN0aW9uRGl2aWRlciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbjogMTRweCAwIDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ib3JkZXJDb2xvckxUfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTTElERVJfTElHSFRfT1ZFUlJJREVTID0ge1xuICBzbGlkZXJCYXJDb2xvcjogJyNBMEE3QjQnLFxuICBzbGlkZXJCYXJCZ2Q6ICcjRDNEOEUwJyxcbiAgc2xpZGVyQmFySG92ZXJDb2xvcjogJyM5MzlCQTgnLFxuICBzbGlkZXJIYW5kbGVDb2xvcjogJyNGN0Y3RjcnLFxuICBzbGlkZXJIYW5kbGVIb3ZlckNvbG9yOiAnI0Y3RjdGNycsXG4gIHNsaWRlckluYWN0aXZlQm9yZGVyQ29sb3I6ICcjRjdGN0Y3JyxcbiAgc2xpZGVySGFuZGxlVGV4dENvbG9yOiAnI0Y3RjdGNycsXG4gIHNsaWRlckhhbmRsZVNoYWRvdzogJzAgMnB4IDRweCAwIHJnYmEoMCwwLDAsMC4yMCknXG59O1xuXG4vLyAtLS0gT3B0aW9ucyAtLS1cblxuY29uc3QgRUFTSU5HX09QVElPTlMgPSBbXG4gIHtpZDogJ2Vhc2UtaW4tb3V0JywgbGFiZWw6ICdFYXNlIEluLU91dCd9LFxuICB7aWQ6ICdsaW5lYXInLCBsYWJlbDogJ0xpbmVhcid9XG5dO1xuXG5jb25zdCBGT1JNQVRfT1BUSU9OUyA9IFtcbiAge3ZhbHVlOiAnZ2lmJywgbGFiZWw6ICdHSUYnfSxcbiAge3ZhbHVlOiAnd2VibScsIGxhYmVsOiAnV2ViTSBWaWRlbyd9LFxuICB7dmFsdWU6ICdwbmcnLCBsYWJlbDogJ1BORyBTZXF1ZW5jZSd9LFxuICB7dmFsdWU6ICdqcGVnJywgbGFiZWw6ICdKUEVHIFNlcXVlbmNlJ31cbl07XG5cbmNvbnN0IERFRkFVTFRfUFJFVklFV19SRVNPTFVUSU9OUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsnMTY6OSc6ICcxMjgweDcyMCcsICc0OjMnOiAnMTI4MHg5NjAnfTtcblxuY29uc3QgUkVTT0xVVElPTl9PUFRJT05TID0gW1xuICB7dmFsdWU6ICc5NjB4NTQwJywgbGFiZWw6ICdHb29kICg1NDBwKScsIGFzcGVjdFJhdGlvOiAnMTY6OSd9LFxuICB7dmFsdWU6ICcxMjgweDcyMCcsIGxhYmVsOiAnSGlnaCAoNzIwcCknLCBhc3BlY3RSYXRpbzogJzE2OjknfSxcbiAge3ZhbHVlOiAnMTkyMHgxMDgwJywgbGFiZWw6ICdIaWdoZXN0ICgxMDgwcCknLCBhc3BlY3RSYXRpbzogJzE2OjknfSxcbiAge3ZhbHVlOiAnNjQweDQ4MCcsIGxhYmVsOiAnR29vZCAoNDgwcCknLCBhc3BlY3RSYXRpbzogJzQ6Myd9LFxuICB7dmFsdWU6ICcxMjgweDk2MCcsIGxhYmVsOiAnSGlnaCAoOTYwcCknLCBhc3BlY3RSYXRpbzogJzQ6Myd9LFxuICB7dmFsdWU6ICcxOTIweDE0NDAnLCBsYWJlbDogJ0hpZ2hlc3QgKDE0NDBwKScsIGFzcGVjdFJhdGlvOiAnNDozJ31cbl07XG5cbmNvbnN0IENBTUVSQV9QUkVTRVRTID0gW1xuICAnTm9uZScsXG4gICdPcmJpdCAoOTDCuiknLFxuICAnT3JiaXQgKDE4MMK6KScsXG4gICdPcmJpdCAoMzYwwropJyxcbiAgJ1pvb20gT3V0JyxcbiAgJ1pvb20gSW4nXG5dO1xuXG4vLyAtLS0gVHlwZXMgLS0tXG5cbmV4cG9ydCB0eXBlIFN3aXBlRXhwb3J0U2V0dGluZ3NQcm9wcyA9IHtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBtZWRpYVR5cGU6IHN0cmluZztcbiAgcmVzb2x1dGlvbjogc3RyaW5nO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBjYW1lcmFQcmVzZXQ6IHN0cmluZztcbiAgZnJhbWVSYXRlOiBudW1iZXI7XG4gIG9uQ2hhbmdlRHVyYXRpb246ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNoYW5nZU1lZGlhVHlwZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlUmVzb2x1dGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRmlsZU5hbWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNoYW5nZUNhbWVyYVByZXNldDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN3aXBlU3RhcnRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFbmRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFYXNpbmc6IFN3aXBlRWFzaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgb25DaGFuZ2VTdGFydFBjdDogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRW5kUGN0OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DaGFuZ2VFYXNpbmc6ICh2YWx1ZTogU3dpcGVFYXNpbmcpID0+IHZvaWQ7XG4gIC8vIFdoZW4gdHJ1ZSwgaGlkZSB0aGUgc3dpcGUtc3BlY2lmaWMgY29udHJvbHMgKHVzZWQgYnkgc2luZ2xlLW1hcCBnbG9iZSBleHBvcnQpLlxuICBoaWRlU3dpcGU/OiBib29sZWFuO1xufTtcblxuLy8gLS0tIFV0aWxpdGllcyAtLS1cblxuZnVuY3Rpb24gcHJpbnREdXJhdGlvbihkdXJhdGlvbk1zOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkdXJhdGlvbk1zIC8gMTAwMCkgJSA2MDtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoZHVyYXRpb25NcyAvIDYwMDAwKTtcbiAgY29uc3QgbXMgPSBNYXRoLmZsb29yKChkdXJhdGlvbk1zICUgMTAwMCkgLyAxMDApO1xuICBjb25zdCBoaCA9IG1pbnV0ZXMgPiAwID8gYCR7bWludXRlc306YCA6ICcnO1xuICByZXR1cm4gYCR7aGh9JHtzZWNvbmRzIDwgMTAgPyAnMCcgOiAnJ30ke3NlY29uZHN9LiR7bXN9YDtcbn1cblxuZnVuY3Rpb24gZXN0aW1hdGVGaWxlU2l6ZShcbiAgZnJhbWVSYXRlOiBudW1iZXIsXG4gIHJlc29sdXRpb246IFtudW1iZXIsIG51bWJlcl0sXG4gIGR1cmF0aW9uTXM6IG51bWJlcixcbiAgbWVkaWFUeXBlOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IE1CID0gOCAqIDEwMjQgKiAxMDI0O1xuICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkdXJhdGlvbk1zIC8gMTAwMCk7XG4gIGNvbnN0IENPTVBSRVNTSU9OX1JBVElPID0gMC44O1xuICBjb25zdCBCSVRfREVQVEggPSA2O1xuXG4gIGlmIChtZWRpYVR5cGUgPT09ICdnaWYnIHx8IG1lZGlhVHlwZSA9PT0gJ3BuZycpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5mbG9vcihcbiAgICAgICgocmVzb2x1dGlvblswXSAqIHJlc29sdXRpb25bMV0gKiBCSVRfREVQVEgpIC8gTUIpICogKGZyYW1lUmF0ZSAqIHNlY29uZHMpICogQ09NUFJFU1NJT05fUkFUSU9cbiAgICApfSBNQmA7XG4gIH1cbiAgaWYgKG1lZGlhVHlwZSA9PT0gJ3dlYm0nKSB7XG4gICAgcmV0dXJuIGAke01hdGguY2VpbCgocmVzb2x1dGlvblswXSAvIDEyODApICogZnJhbWVSYXRlICogc2Vjb25kcyAqIDAuMTI1KX0gTUJgO1xuICB9XG4gIGlmIChtZWRpYVR5cGUgPT09ICdqcGVnJykge1xuICAgIHJldHVybiBgJHtNYXRoLmZsb29yKFxuICAgICAgKChyZXNvbHV0aW9uWzBdICogcmVzb2x1dGlvblsxXSAqIEJJVF9ERVBUSCkgLyBNQikgKiAoZnJhbWVSYXRlICogc2Vjb25kcykgKiAwLjRcbiAgICApfSBNQmA7XG4gIH1cbiAgcmV0dXJuICfigJQnO1xufVxuXG4vLyAtLS0gU3ViLWNvbXBvbmVudHMgLS0tXG5cbmNvbnN0IExpZ2h0U2xpZGVyOiBSZWFjdC5GQzxhbnk+ID0gcHJvcHMgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IGxpZ2h0VGhlbWUgPSB1c2VNZW1vKCgpID0+ICh7Li4udGhlbWUsIC4uLlNMSURFUl9MSUdIVF9PVkVSUklERVN9KSwgW3RoZW1lXSk7XG4gIHJldHVybiAoXG4gICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e2xpZ2h0VGhlbWV9PlxuICAgICAgPFNsaWRlciB7Li4ucHJvcHN9IC8+XG4gICAgPC9UaGVtZVByb3ZpZGVyPlxuICApO1xufTtcblxuY29uc3QgTGlnaHRJdGVtU2VsZWN0b3I6IFJlYWN0LkZDPGFueT4gPSBwcm9wcyA9PiAoXG4gIDxJdGVtU2VsZWN0b3Igey4uLnByb3BzfSBpbnB1dFRoZW1lPVwibGlnaHRcIiAvPlxuKTtcblxuY29uc3QgZ2V0T3B0aW9uVmFsdWUgPSAobzogYW55KSA9PiBvLnZhbHVlO1xuY29uc3QgZGlzcGxheU9wdGlvbiA9IChvOiBhbnkpID0+IG8ubGFiZWw7XG5cbi8vIC0tLSBBbmltYXRpb24gVGFiIC0tLVxuXG5jb25zdCBBbmltYXRpb25UYWI6IFJlYWN0LkZDPHtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBjYW1lcmFQcmVzZXQ6IHN0cmluZztcbiAgc3dpcGVTdGFydFBjdDogbnVtYmVyO1xuICBzd2lwZUVuZFBjdDogbnVtYmVyO1xuICBzd2lwZUVhc2luZzogU3dpcGVFYXNpbmc7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBoaWRlU3dpcGU/OiBib29sZWFuO1xuICBvbkNoYW5nZUR1cmF0aW9uOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DaGFuZ2VDYW1lcmFQcmVzZXQ6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNoYW5nZVN0YXJ0UGN0OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcbiAgb25DaGFuZ2VFbmRQY3Q6ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNoYW5nZUVhc2luZzogKHZhbHVlOiBTd2lwZUVhc2luZykgPT4gdm9pZDtcbn0+ID0gKHtcbiAgZHVyYXRpb25NcyxcbiAgY2FtZXJhUHJlc2V0LFxuICBzd2lwZVN0YXJ0UGN0LFxuICBzd2lwZUVuZFBjdCxcbiAgc3dpcGVFYXNpbmcsXG4gIGRpc2FibGVkLFxuICBoaWRlU3dpcGUsXG4gIG9uQ2hhbmdlRHVyYXRpb24sXG4gIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0LFxuICBvbkNoYW5nZVN0YXJ0UGN0LFxuICBvbkNoYW5nZUVuZFBjdCxcbiAgb25DaGFuZ2VFYXNpbmdcbn0pID0+IChcbiAgPD5cbiAgICA8SW5wdXRHcmlkPlxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5EdXJhdGlvbjwvU3R5bGVkTGFiZWxDZWxsPlxuICAgICAgPFN0eWxlZFZhbHVlQ2VsbD5cbiAgICAgICAgPFNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgPExpZ2h0U2xpZGVyXG4gICAgICAgICAgICBzaG93VmFsdWVzPXtmYWxzZX1cbiAgICAgICAgICAgIGVuYWJsZUJhckRyYWc9eyFkaXNhYmxlZH1cbiAgICAgICAgICAgIGlzUmFuZ2VkPXtmYWxzZX1cbiAgICAgICAgICAgIHZhbHVlMD17MTAwfVxuICAgICAgICAgICAgdmFsdWUxPXtkdXJhdGlvbk1zfVxuICAgICAgICAgICAgc3RlcD17MTAwfVxuICAgICAgICAgICAgbWluVmFsdWU9ezEwMH1cbiAgICAgICAgICAgIG1heFZhbHVlPXsxMDAwMH1cbiAgICAgICAgICAgIG9uU2xpZGVyMUNoYW5nZT17KHY6IG51bWJlcikgPT4geyBpZiAoIWRpc2FibGVkKSBvbkNoYW5nZUR1cmF0aW9uKHYpOyB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFZpZGVvTGVuZ3RoRGlzcGxheT57cHJpbnREdXJhdGlvbihkdXJhdGlvbk1zKX08L1ZpZGVvTGVuZ3RoRGlzcGxheT5cbiAgICAgICAgPC9TbGlkZXJXcmFwcGVyPlxuICAgICAgPC9TdHlsZWRWYWx1ZUNlbGw+XG5cbiAgICAgIDxTdHlsZWRMYWJlbENlbGw+Q2FtZXJhPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8TGlnaHRJdGVtU2VsZWN0b3JcbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17Y2FtZXJhUHJlc2V0fVxuICAgICAgICBvcHRpb25zPXtDQU1FUkFfUFJFU0VUU31cbiAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlQ2FtZXJhUHJlc2V0fVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuICAgIDwvSW5wdXRHcmlkPlxuXG4gICAgeyFoaWRlU3dpcGUgJiYgKFxuICAgICAgPD5cbiAgICAgICAgPFNlY3Rpb25EaXZpZGVyPlN3aXBlPC9TZWN0aW9uRGl2aWRlcj5cbiAgICAgICAgPElucHV0R3JpZD5cbiAgICAgICAgICA8U3R5bGVkTGFiZWxDZWxsPlN0YXJ0ICh7TWF0aC5yb3VuZChzd2lwZVN0YXJ0UGN0KX0lKTwvU3R5bGVkTGFiZWxDZWxsPlxuICAgICAgICAgIDxMaWdodFNsaWRlclxuICAgICAgICAgICAgc2hvd1ZhbHVlcz17ZmFsc2V9XG4gICAgICAgICAgICBpc1JhbmdlZD17ZmFsc2V9XG4gICAgICAgICAgICB2YWx1ZTE9e3N3aXBlU3RhcnRQY3R9XG4gICAgICAgICAgICBtaW5WYWx1ZT17MH1cbiAgICAgICAgICAgIG1heFZhbHVlPXsxMDB9XG4gICAgICAgICAgICBzdGVwPXsxfVxuICAgICAgICAgICAgb25TbGlkZXIxQ2hhbmdlPXsodjogbnVtYmVyKSA9PiB7IGlmICghZGlzYWJsZWQpIG9uQ2hhbmdlU3RhcnRQY3Qodik7IH19XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIDxTdHlsZWRMYWJlbENlbGw+RW5kICh7TWF0aC5yb3VuZChzd2lwZUVuZFBjdCl9JSk8L1N0eWxlZExhYmVsQ2VsbD5cbiAgICAgICAgICA8TGlnaHRTbGlkZXJcbiAgICAgICAgICAgIHNob3dWYWx1ZXM9e2ZhbHNlfVxuICAgICAgICAgICAgaXNSYW5nZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgdmFsdWUxPXtzd2lwZUVuZFBjdH1cbiAgICAgICAgICAgIG1pblZhbHVlPXswfVxuICAgICAgICAgICAgbWF4VmFsdWU9ezEwMH1cbiAgICAgICAgICAgIHN0ZXA9ezF9XG4gICAgICAgICAgICBvblNsaWRlcjFDaGFuZ2U9eyh2OiBudW1iZXIpID0+IHsgaWYgKCFkaXNhYmxlZCkgb25DaGFuZ2VFbmRQY3Qodik7IH19XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIDxTdHlsZWRMYWJlbENlbGw+RWFzaW5nPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICAgICAgPExpZ2h0SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtFQVNJTkdfT1BUSU9OUy5maW5kKG8gPT4gby5pZCA9PT0gc3dpcGVFYXNpbmcpIHx8IEVBU0lOR19PUFRJT05TWzBdfVxuICAgICAgICAgICAgb3B0aW9ucz17RUFTSU5HX09QVElPTlN9XG4gICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsOiBhbnkpID0+IG9uQ2hhbmdlRWFzaW5nKHZhbD8uaWQgfHwgdmFsKX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPXsobzogYW55KSA9PiBvLmlkfVxuICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17KG86IGFueSkgPT4gby5sYWJlbH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0lucHV0R3JpZD5cbiAgICAgIDwvPlxuICAgICl9XG4gIDwvPlxuKTtcblxuLy8gLS0tIFNldHRpbmdzIFRhYiAoaWRlbnRpY2FsIHRvIHJlZ3VsYXIgZXhwb3J0KSAtLS1cblxuY29uc3QgU2V0dGluZ3NUYWI6IFJlYWN0LkZDPHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgbWVkaWFUeXBlOiBzdHJpbmc7XG4gIHJlc29sdXRpb246IHN0cmluZztcbiAgZnJhbWVSYXRlOiBudW1iZXI7XG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIG9uQ2hhbmdlRmlsZU5hbWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNoYW5nZU1lZGlhVHlwZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlUmVzb2x1dGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG59PiA9ICh7XG4gIGZpbGVOYW1lLFxuICBtZWRpYVR5cGUsXG4gIHJlc29sdXRpb24sXG4gIGZyYW1lUmF0ZSxcbiAgZHVyYXRpb25NcyxcbiAgZGlzYWJsZWQsXG4gIG9uQ2hhbmdlRmlsZU5hbWUsXG4gIG9uQ2hhbmdlTWVkaWFUeXBlLFxuICBvbkNoYW5nZVJlc29sdXRpb25cbn0pID0+IHtcbiAgY29uc3QgW2FzcFJhdGlvLCBzZXRBc3BSYXRpb10gPSB1c2VTdGF0ZTxzdHJpbmc+KCcxNjo5Jyk7XG5cbiAgY29uc3QgcmVzb2x1dGlvblBhcnRzID0gcmVzb2x1dGlvbi5zcGxpdCgneCcpLm1hcChOdW1iZXIpO1xuICBjb25zdCBjdXJyZW50UmVzb2x1dGlvbjogW251bWJlciwgbnVtYmVyXSA9IFtyZXNvbHV0aW9uUGFydHNbMF0gfHwgMTI4MCwgcmVzb2x1dGlvblBhcnRzWzFdIHx8IDcyMF07XG5cbiAgcmV0dXJuIChcbiAgICA8SW5wdXRHcmlkPlxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5GaWxlIE5hbWU8L1N0eWxlZExhYmVsQ2VsbD5cbiAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgIHZhbHVlPXtmaWxlTmFtZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9XCJrZXBsZXIuZ2xcIlxuICAgICAgICBvbkNoYW5nZT17KGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiBvbkNoYW5nZUZpbGVOYW1lKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgLz5cblxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5NZWRpYSBUeXBlPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8TGlnaHRJdGVtU2VsZWN0b3JcbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17Rk9STUFUX09QVElPTlMuZmluZChvID0+IG8udmFsdWUgPT09IG1lZGlhVHlwZSkgfHwgRk9STUFUX09QVElPTlNbMF19XG4gICAgICAgIG9wdGlvbnM9e0ZPUk1BVF9PUFRJT05TfVxuICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICBvbkNoYW5nZT17KHZhbDogYW55KSA9PiBvbkNoYW5nZU1lZGlhVHlwZSh2YWw/LnZhbHVlIHx8IHZhbCl9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e2dldE9wdGlvblZhbHVlfVxuICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgLz5cblxuICAgICAgPFN0eWxlZExhYmVsQ2VsbD5SYXRpbzwvU3R5bGVkTGFiZWxDZWxsPlxuICAgICAgPExpZ2h0SXRlbVNlbGVjdG9yXG4gICAgICAgIHNlbGVjdGVkSXRlbXM9e2FzcFJhdGlvfVxuICAgICAgICBvcHRpb25zPXtbJzQ6MycsICcxNjo5J119XG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXsocmF0aW86IHN0cmluZykgPT4ge1xuICAgICAgICAgIHNldEFzcFJhdGlvKHJhdGlvKTtcbiAgICAgICAgICBvbkNoYW5nZVJlc29sdXRpb24oREVGQVVMVF9QUkVWSUVXX1JFU09MVVRJT05TW3JhdGlvXSk7XG4gICAgICAgIH19XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIC8+XG5cbiAgICAgIDxTdHlsZWRMYWJlbENlbGw+UXVhbGl0eTwvU3R5bGVkTGFiZWxDZWxsPlxuICAgICAgPExpZ2h0SXRlbVNlbGVjdG9yXG4gICAgICAgIHNlbGVjdGVkSXRlbXM9e1JFU09MVVRJT05fT1BUSU9OUy5maW5kKG8gPT4gby52YWx1ZSA9PT0gcmVzb2x1dGlvbikgfHwgUkVTT0xVVElPTl9PUFRJT05TWzFdfVxuICAgICAgICBvcHRpb25zPXtSRVNPTFVUSU9OX09QVElPTlMuZmlsdGVyKG8gPT4gby5hc3BlY3RSYXRpbyA9PT0gYXNwUmF0aW8pfVxuICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICBvbkNoYW5nZT17KHZhbDogYW55KSA9PiBvbkNoYW5nZVJlc29sdXRpb24odmFsPy52YWx1ZSB8fCB2YWwpfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGdldE9wdGlvblZhbHVlPXtnZXRPcHRpb25WYWx1ZX1cbiAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgIC8+XG5cbiAgICAgIDxTdHlsZWRMYWJlbENlbGw+RmlsZSBTaXplPC9TdHlsZWRMYWJlbENlbGw+XG4gICAgICA8U3R5bGVkVmFsdWVDZWxsPlxuICAgICAgICBBcHByb3guIHtlc3RpbWF0ZUZpbGVTaXplKGZyYW1lUmF0ZSwgY3VycmVudFJlc29sdXRpb24sIGR1cmF0aW9uTXMsIG1lZGlhVHlwZSl9XG4gICAgICA8L1N0eWxlZFZhbHVlQ2VsbD5cbiAgICA8L0lucHV0R3JpZD5cbiAgKTtcbn07XG5cbi8vIC0tLSBNYWluIENvbXBvbmVudCAtLS1cblxudHlwZSBUYWJJZCA9ICdhbmltYXRpb24nIHwgJ3NldHRpbmdzJztcblxuY29uc3QgU3dpcGVFeHBvcnRTZXR0aW5nczogUmVhY3QuRkM8U3dpcGVFeHBvcnRTZXR0aW5nc1Byb3BzPiA9ICh7XG4gIGR1cmF0aW9uTXMsXG4gIG1lZGlhVHlwZSxcbiAgcmVzb2x1dGlvbixcbiAgZmlsZU5hbWUsXG4gIGNhbWVyYVByZXNldCxcbiAgZnJhbWVSYXRlLFxuICBvbkNoYW5nZUR1cmF0aW9uLFxuICBvbkNoYW5nZU1lZGlhVHlwZSxcbiAgb25DaGFuZ2VSZXNvbHV0aW9uLFxuICBvbkNoYW5nZUZpbGVOYW1lLFxuICBvbkNoYW5nZUNhbWVyYVByZXNldCxcbiAgc3dpcGVTdGFydFBjdCxcbiAgc3dpcGVFbmRQY3QsXG4gIHN3aXBlRWFzaW5nLFxuICBkaXNhYmxlZCxcbiAgb25DaGFuZ2VTdGFydFBjdCxcbiAgb25DaGFuZ2VFbmRQY3QsXG4gIG9uQ2hhbmdlRWFzaW5nLFxuICBoaWRlU3dpcGVcbn0pID0+IHtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlPFRhYklkPignYW5pbWF0aW9uJyk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPFN0eWxlZE1vZGFsVGFiPlxuICAgICAgICA8U3R5bGVkVGFiSXRlbVxuICAgICAgICAgIGNsYXNzTmFtZT17YWN0aXZlVGFiID09PSAnYW5pbWF0aW9uJyA/ICdhY3RpdmUnIDogJyd9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0QWN0aXZlVGFiKCdhbmltYXRpb24nKX1cbiAgICAgICAgPlxuICAgICAgICAgIEFuaW1hdGlvblxuICAgICAgICA8L1N0eWxlZFRhYkl0ZW0+XG4gICAgICAgIDxTdHlsZWRUYWJJdGVtXG4gICAgICAgICAgY2xhc3NOYW1lPXthY3RpdmVUYWIgPT09ICdzZXR0aW5ncycgPyAnYWN0aXZlJyA6ICcnfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZVRhYignc2V0dGluZ3MnKX1cbiAgICAgICAgPlxuICAgICAgICAgIFNldHRpbmdzXG4gICAgICAgIDwvU3R5bGVkVGFiSXRlbT5cbiAgICAgIDwvU3R5bGVkTW9kYWxUYWI+XG5cbiAgICAgIHthY3RpdmVUYWIgPT09ICdhbmltYXRpb24nICYmIChcbiAgICAgICAgPEFuaW1hdGlvblRhYlxuICAgICAgICAgIGR1cmF0aW9uTXM9e2R1cmF0aW9uTXN9XG4gICAgICAgICAgY2FtZXJhUHJlc2V0PXtjYW1lcmFQcmVzZXR9XG4gICAgICAgICAgc3dpcGVTdGFydFBjdD17c3dpcGVTdGFydFBjdH1cbiAgICAgICAgICBzd2lwZUVuZFBjdD17c3dpcGVFbmRQY3R9XG4gICAgICAgICAgc3dpcGVFYXNpbmc9e3N3aXBlRWFzaW5nfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBoaWRlU3dpcGU9e2hpZGVTd2lwZX1cbiAgICAgICAgICBvbkNoYW5nZUR1cmF0aW9uPXtvbkNoYW5nZUR1cmF0aW9ufVxuICAgICAgICAgIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0PXtvbkNoYW5nZUNhbWVyYVByZXNldH1cbiAgICAgICAgICBvbkNoYW5nZVN0YXJ0UGN0PXtvbkNoYW5nZVN0YXJ0UGN0fVxuICAgICAgICAgIG9uQ2hhbmdlRW5kUGN0PXtvbkNoYW5nZUVuZFBjdH1cbiAgICAgICAgICBvbkNoYW5nZUVhc2luZz17b25DaGFuZ2VFYXNpbmd9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7YWN0aXZlVGFiID09PSAnc2V0dGluZ3MnICYmIChcbiAgICAgICAgPFNldHRpbmdzVGFiXG4gICAgICAgICAgZmlsZU5hbWU9e2ZpbGVOYW1lfVxuICAgICAgICAgIG1lZGlhVHlwZT17bWVkaWFUeXBlfVxuICAgICAgICAgIHJlc29sdXRpb249e3Jlc29sdXRpb259XG4gICAgICAgICAgZnJhbWVSYXRlPXtmcmFtZVJhdGV9XG4gICAgICAgICAgZHVyYXRpb25Ncz17ZHVyYXRpb25Nc31cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25DaGFuZ2VGaWxlTmFtZT17b25DaGFuZ2VGaWxlTmFtZX1cbiAgICAgICAgICBvbkNoYW5nZU1lZGlhVHlwZT17b25DaGFuZ2VNZWRpYVR5cGV9XG4gICAgICAgICAgb25DaGFuZ2VSZXNvbHV0aW9uPXtvbkNoYW5nZVJlc29sdXRpb259XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3dpcGVFeHBvcnRTZXR0aW5ncztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFFLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFBdUQsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVR2RDtBQUNBO0FBQUEsU0FBQWQsd0JBQUFlLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFqQix1QkFBQSxZQUFBQSx3QkFBQWUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQU0sRUFBQSxJQUFBZCxDQUFBLGdCQUFBYyxFQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxFQUFBLE9BQUFQLENBQUEsSUFBQUQsQ0FBQSxHQUFBVyxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbkIsQ0FBQSxFQUFBYyxFQUFBLE9BQUFQLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFNLEVBQUEsRUFBQVAsQ0FBQSxJQUFBQyxDQUFBLENBQUFNLEVBQUEsSUFBQWQsQ0FBQSxDQUFBYyxFQUFBLFdBQUFOLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBO0FBQUEsU0FBQW1CLFFBQUFwQixDQUFBLEVBQUFHLENBQUEsUUFBQUYsQ0FBQSxHQUFBZ0IsTUFBQSxDQUFBSSxJQUFBLENBQUFyQixDQUFBLE9BQUFpQixNQUFBLENBQUFLLHFCQUFBLFFBQUFoQixDQUFBLEdBQUFXLE1BQUEsQ0FBQUsscUJBQUEsQ0FBQXRCLENBQUEsR0FBQUcsQ0FBQSxLQUFBRyxDQUFBLEdBQUFBLENBQUEsQ0FBQWlCLE1BQUEsV0FBQXBCLENBQUEsV0FBQWMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbkIsQ0FBQSxFQUFBRyxDQUFBLEVBQUFxQixVQUFBLE9BQUF2QixDQUFBLENBQUF3QixJQUFBLENBQUFDLEtBQUEsQ0FBQXpCLENBQUEsRUFBQUssQ0FBQSxZQUFBTCxDQUFBO0FBQUEsU0FBQTBCLGNBQUEzQixDQUFBLGFBQUFHLENBQUEsTUFBQUEsQ0FBQSxHQUFBeUIsU0FBQSxDQUFBQyxNQUFBLEVBQUExQixDQUFBLFVBQUFGLENBQUEsV0FBQTJCLFNBQUEsQ0FBQXpCLENBQUEsSUFBQXlCLFNBQUEsQ0FBQXpCLENBQUEsUUFBQUEsQ0FBQSxPQUFBaUIsT0FBQSxDQUFBSCxNQUFBLENBQUFoQixDQUFBLE9BQUE2QixPQUFBLFdBQUEzQixDQUFBLFFBQUE0QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRyxDQUFBLEVBQUFGLENBQUEsQ0FBQUUsQ0FBQSxTQUFBYyxNQUFBLENBQUFlLHlCQUFBLEdBQUFmLE1BQUEsQ0FBQWdCLGdCQUFBLENBQUFqQyxDQUFBLEVBQUFpQixNQUFBLENBQUFlLHlCQUFBLENBQUEvQixDQUFBLEtBQUFtQixPQUFBLENBQUFILE1BQUEsQ0FBQWhCLENBQUEsR0FBQTZCLE9BQUEsV0FBQTNCLENBQUEsSUFBQWMsTUFBQSxDQUFBQyxjQUFBLENBQUFsQixDQUFBLEVBQUFHLENBQUEsRUFBQWMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBRSxDQUFBLGlCQUFBSCxDQUFBO0FBVUE7O0FBRUEsSUFBTWtDLGNBQWMsR0FBR0MsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBNUMsZUFBQSxLQUFBQSxlQUFBLE9BQUE2Qyx1QkFBQSxtR0FFSixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGFBQWE7QUFBQSxFQUU5RDtBQUVELElBQU1DLGFBQWEsR0FBR04sNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBM0MsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQTRDLHVCQUFBLHNSQUlyQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNHLGNBQWM7QUFBQSxHQUlqQyxVQUFBSixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNJLFdBQVc7QUFBQSxHQUNkLFVBQUFMLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksV0FBVztBQUFBLEdBS2xELFVBQUFMLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksV0FBVztBQUFBLEVBRTVDO0FBRUQsSUFBTUMsU0FBUyxHQUFHVCw0QkFBTSxDQUFDQyxHQUFHLENBQUExQyxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBMkMsdUJBQUEsNEhBSzNCO0FBRUQsSUFBTVEsZUFBZSxHQUFHViw0QkFBTSxDQUFDQyxHQUFHLENBQUF6QyxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBMEMsdUJBQUEsZ0ZBR3ZCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0csY0FBYztBQUFBLEVBQzdDO0FBRUQsSUFBTUksZUFBZSxHQUFHWCw0QkFBTSxDQUFDQyxHQUFHLENBQUF4QyxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBeUMsdUJBQUEsMkRBRXZCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksV0FBVztBQUFBLEVBQzFDO0FBRUQsSUFBTUksYUFBYSxHQUFHWiw0QkFBTSxDQUFDQyxHQUFHLENBQUF2QyxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBd0MsdUJBQUEsZ0ZBSS9CO0FBRUQsSUFBTVcsa0JBQWtCLEdBQUdiLDRCQUFNLENBQUNjLElBQUksQ0FBQW5ELGdCQUFBLEtBQUFBLGdCQUFBLE9BQUF1Qyx1QkFBQSw0SEFFM0IsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSSxXQUFXO0FBQUEsRUFJMUM7QUFFRCxJQUFNTyxjQUFjLEdBQUdmLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXJDLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFzQyx1QkFBQSxxTEFHUCxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGFBQWE7QUFBQSxHQUdqRCxVQUFBRixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNJLFdBQVc7QUFBQSxFQUUxQztBQUVELElBQU1RLHNCQUFzQixHQUFHO0VBQzdCQyxjQUFjLEVBQUUsU0FBUztFQUN6QkMsWUFBWSxFQUFFLFNBQVM7RUFDdkJDLG1CQUFtQixFQUFFLFNBQVM7RUFDOUJDLGlCQUFpQixFQUFFLFNBQVM7RUFDNUJDLHNCQUFzQixFQUFFLFNBQVM7RUFDakNDLHlCQUF5QixFQUFFLFNBQVM7RUFDcENDLHFCQUFxQixFQUFFLFNBQVM7RUFDaENDLGtCQUFrQixFQUFFO0FBQ3RCLENBQUM7O0FBRUQ7O0FBRUEsSUFBTUMsY0FBYyxHQUFHLENBQ3JCO0VBQUNDLEVBQUUsRUFBRSxhQUFhO0VBQUVDLEtBQUssRUFBRTtBQUFhLENBQUMsRUFDekM7RUFBQ0QsRUFBRSxFQUFFLFFBQVE7RUFBRUMsS0FBSyxFQUFFO0FBQVEsQ0FBQyxDQUNoQztBQUVELElBQU1DLGNBQWMsR0FBRyxDQUNyQjtFQUFDQyxLQUFLLEVBQUUsS0FBSztFQUFFRixLQUFLLEVBQUU7QUFBSyxDQUFDLEVBQzVCO0VBQUNFLEtBQUssRUFBRSxNQUFNO0VBQUVGLEtBQUssRUFBRTtBQUFZLENBQUMsRUFDcEM7RUFBQ0UsS0FBSyxFQUFFLEtBQUs7RUFBRUYsS0FBSyxFQUFFO0FBQWMsQ0FBQyxFQUNyQztFQUFDRSxLQUFLLEVBQUUsTUFBTTtFQUFFRixLQUFLLEVBQUU7QUFBZSxDQUFDLENBQ3hDO0FBRUQsSUFBTUcsMkJBQW1ELEdBQUc7RUFBQyxNQUFNLEVBQUUsVUFBVTtFQUFFLEtBQUssRUFBRTtBQUFVLENBQUM7QUFFbkcsSUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7RUFBQ0YsS0FBSyxFQUFFLFNBQVM7RUFBRUYsS0FBSyxFQUFFLGFBQWE7RUFBRUssV0FBVyxFQUFFO0FBQU0sQ0FBQyxFQUM3RDtFQUFDSCxLQUFLLEVBQUUsVUFBVTtFQUFFRixLQUFLLEVBQUUsYUFBYTtFQUFFSyxXQUFXLEVBQUU7QUFBTSxDQUFDLEVBQzlEO0VBQUNILEtBQUssRUFBRSxXQUFXO0VBQUVGLEtBQUssRUFBRSxpQkFBaUI7RUFBRUssV0FBVyxFQUFFO0FBQU0sQ0FBQyxFQUNuRTtFQUFDSCxLQUFLLEVBQUUsU0FBUztFQUFFRixLQUFLLEVBQUUsYUFBYTtFQUFFSyxXQUFXLEVBQUU7QUFBSyxDQUFDLEVBQzVEO0VBQUNILEtBQUssRUFBRSxVQUFVO0VBQUVGLEtBQUssRUFBRSxhQUFhO0VBQUVLLFdBQVcsRUFBRTtBQUFLLENBQUMsRUFDN0Q7RUFBQ0gsS0FBSyxFQUFFLFdBQVc7RUFBRUYsS0FBSyxFQUFFLGlCQUFpQjtFQUFFSyxXQUFXLEVBQUU7QUFBSyxDQUFDLENBQ25FO0FBRUQsSUFBTUMsY0FBYyxHQUFHLENBQ3JCLE1BQU0sRUFDTixhQUFhLEVBQ2IsY0FBYyxFQUNkLGNBQWMsRUFDZCxVQUFVLEVBQ1YsU0FBUyxDQUNWOztBQUVEOztBQXlCQTs7QUFFQSxTQUFTQyxhQUFhQSxDQUFDQyxVQUFrQixFQUFVO0VBQ2pELElBQU1DLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO0VBQ2xELElBQU1JLE9BQU8sR0FBR0YsSUFBSSxDQUFDQyxLQUFLLENBQUNILFVBQVUsR0FBRyxLQUFLLENBQUM7RUFDOUMsSUFBTUssRUFBRSxHQUFHSCxJQUFJLENBQUNDLEtBQUssQ0FBRUgsVUFBVSxHQUFHLElBQUksR0FBSSxHQUFHLENBQUM7RUFDaEQsSUFBTU0sRUFBRSxHQUFHRixPQUFPLEdBQUcsQ0FBQyxNQUFBRyxNQUFBLENBQU1ILE9BQU8sU0FBTSxFQUFFO0VBQzNDLFVBQUFHLE1BQUEsQ0FBVUQsRUFBRSxFQUFBQyxNQUFBLENBQUdOLE9BQU8sR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBQU0sTUFBQSxDQUFHTixPQUFPLE9BQUFNLE1BQUEsQ0FBSUYsRUFBRTtBQUN4RDtBQUVBLFNBQVNHLGdCQUFnQkEsQ0FDdkJDLFNBQWlCLEVBQ2pCQyxVQUE0QixFQUM1QlYsVUFBa0IsRUFDbEJXLFNBQWlCLEVBQ1Q7RUFDUixJQUFNQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0VBQzFCLElBQU1YLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILFVBQVUsR0FBRyxJQUFJLENBQUM7RUFDN0MsSUFBTWEsaUJBQWlCLEdBQUcsR0FBRztFQUM3QixJQUFNQyxTQUFTLEdBQUcsQ0FBQztFQUVuQixJQUFJSCxTQUFTLEtBQUssS0FBSyxJQUFJQSxTQUFTLEtBQUssS0FBSyxFQUFFO0lBQzlDLFVBQUFKLE1BQUEsQ0FBVUwsSUFBSSxDQUFDQyxLQUFLLENBQ2hCTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUdBLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBR0ksU0FBUyxHQUFJRixFQUFFLElBQUtILFNBQVMsR0FBR1IsT0FBTyxDQUFDLEdBQUdZLGlCQUMvRSxDQUFDO0VBQ0g7RUFDQSxJQUFJRixTQUFTLEtBQUssTUFBTSxFQUFFO0lBQ3hCLFVBQUFKLE1BQUEsQ0FBVUwsSUFBSSxDQUFDYSxJQUFJLENBQUVMLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUlELFNBQVMsR0FBR1IsT0FBTyxHQUFHLEtBQUssQ0FBQztFQUMzRTtFQUNBLElBQUlVLFNBQVMsS0FBSyxNQUFNLEVBQUU7SUFDeEIsVUFBQUosTUFBQSxDQUFVTCxJQUFJLENBQUNDLEtBQUssQ0FDaEJPLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBR0EsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHSSxTQUFTLEdBQUlGLEVBQUUsSUFBS0gsU0FBUyxHQUFHUixPQUFPLENBQUMsR0FBRyxHQUMvRSxDQUFDO0VBQ0g7RUFDQSxPQUFPLEdBQUc7QUFDWjs7QUFFQTs7QUFFQSxJQUFNZSxXQUEwQixHQUFHLFNBQTdCQSxXQUEwQkEsQ0FBR2hELEtBQUssRUFBSTtFQUMxQyxJQUFNQyxLQUFLLEdBQUcsSUFBQWdELDBCQUFRLEVBQUMsQ0FBQztFQUN4QixJQUFNQyxVQUFVLEdBQUcsSUFBQUMsY0FBTyxFQUFDO0lBQUEsT0FBQTlELGFBQUEsQ0FBQUEsYUFBQSxLQUFXWSxLQUFLLEdBQUtZLHNCQUFzQjtFQUFBLENBQUUsRUFBRSxDQUFDWixLQUFLLENBQUMsQ0FBQztFQUNsRixvQkFDRXZELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ3ZHLGlCQUFBLENBQUF3RyxhQUFhO0lBQUNwRCxLQUFLLEVBQUVpRDtFQUFXLGdCQUMvQnhHLE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ3RHLE9BQUEsV0FBTSxFQUFLa0QsS0FBUSxDQUNQLENBQUM7QUFFcEIsQ0FBQztBQUVELElBQU1zRCxpQkFBZ0MsR0FBRyxTQUFuQ0EsaUJBQWdDQSxDQUFHdEQsS0FBSztFQUFBLG9CQUM1Q3RELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ3BHLGFBQUEsV0FBWSxNQUFBdUcsU0FBQSxpQkFBS3ZELEtBQUs7SUFBRXdELFVBQVUsRUFBQztFQUFPLEVBQUUsQ0FBQztBQUFBLENBQy9DO0FBRUQsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJekYsQ0FBTTtFQUFBLE9BQUtBLENBQUMsQ0FBQzBELEtBQUs7QUFBQTtBQUMxQyxJQUFNZ0MsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJMUYsQ0FBTTtFQUFBLE9BQUtBLENBQUMsQ0FBQ3dELEtBQUs7QUFBQTs7QUFFekM7O0FBRUEsSUFBTW1DLFlBYUosR0FBRyxTQWJDQSxZQWFKQSxDQUFBQyxJQUFBO0VBQUEsSUFDQTVCLFVBQVUsR0FBQTRCLElBQUEsQ0FBVjVCLFVBQVU7SUFDVjZCLFlBQVksR0FBQUQsSUFBQSxDQUFaQyxZQUFZO0lBQ1pDLGFBQWEsR0FBQUYsSUFBQSxDQUFiRSxhQUFhO0lBQ2JDLFdBQVcsR0FBQUgsSUFBQSxDQUFYRyxXQUFXO0lBQ1hDLFdBQVcsR0FBQUosSUFBQSxDQUFYSSxXQUFXO0lBQ1hDLFFBQVEsR0FBQUwsSUFBQSxDQUFSSyxRQUFRO0lBQ1JDLFNBQVMsR0FBQU4sSUFBQSxDQUFUTSxTQUFTO0lBQ1RDLGdCQUFnQixHQUFBUCxJQUFBLENBQWhCTyxnQkFBZ0I7SUFDaEJDLG9CQUFvQixHQUFBUixJQUFBLENBQXBCUSxvQkFBb0I7SUFDcEJDLGdCQUFnQixHQUFBVCxJQUFBLENBQWhCUyxnQkFBZ0I7SUFDaEJDLGNBQWMsR0FBQVYsSUFBQSxDQUFkVSxjQUFjO0lBQ2RDLGNBQWMsR0FBQVgsSUFBQSxDQUFkVyxjQUFjO0VBQUEsb0JBRWQ3SCxNQUFBLFlBQUEwRyxhQUFBLENBQUExRyxNQUFBLFlBQUE4SCxRQUFBLHFCQUNFOUgsTUFBQSxZQUFBMEcsYUFBQSxDQUFDOUMsU0FBUyxxQkFDUjVELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzdDLGVBQWUsUUFBQyxVQUF5QixDQUFDLGVBQzNDN0QsTUFBQSxZQUFBMEcsYUFBQSxDQUFDNUMsZUFBZSxxQkFDZDlELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzNDLGFBQWEscUJBQ1ovRCxNQUFBLFlBQUEwRyxhQUFBLENBQUNKLFdBQVc7SUFDVnlCLFVBQVUsRUFBRSxLQUFNO0lBQ2xCQyxhQUFhLEVBQUUsQ0FBQ1QsUUFBUztJQUN6QlUsUUFBUSxFQUFFLEtBQU07SUFDaEJDLE1BQU0sRUFBRSxHQUFJO0lBQ1pDLE1BQU0sRUFBRTdDLFVBQVc7SUFDbkI4QyxJQUFJLEVBQUUsR0FBSTtJQUNWQyxRQUFRLEVBQUUsR0FBSTtJQUNkQyxRQUFRLEVBQUUsS0FBTTtJQUNoQkMsZUFBZSxFQUFFLFNBQWpCQSxlQUFlQSxDQUFHQyxDQUFTLEVBQUs7TUFBRSxJQUFJLENBQUNqQixRQUFRLEVBQUVFLGdCQUFnQixDQUFDZSxDQUFDLENBQUM7SUFBRTtFQUFFLENBQ3pFLENBQUMsZUFDRnhJLE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzFDLGtCQUFrQixRQUFFcUIsYUFBYSxDQUFDQyxVQUFVLENBQXNCLENBQ3RELENBQ0EsQ0FBQyxlQUVsQnRGLE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzdDLGVBQWUsUUFBQyxRQUF1QixDQUFDLGVBQ3pDN0QsTUFBQSxZQUFBMEcsYUFBQSxDQUFDRSxpQkFBaUI7SUFDaEI2QixhQUFhLEVBQUV0QixZQUFhO0lBQzVCdUIsT0FBTyxFQUFFdEQsY0FBZTtJQUN4QnVELFdBQVcsRUFBRSxLQUFNO0lBQ25CQyxVQUFVLEVBQUUsS0FBTTtJQUNsQkMsUUFBUSxFQUFFbkIsb0JBQXFCO0lBQy9CSCxRQUFRLEVBQUVBO0VBQVMsQ0FDcEIsQ0FDUSxDQUFDLEVBRVgsQ0FBQ0MsU0FBUyxpQkFDVHhILE1BQUEsWUFBQTBHLGFBQUEsQ0FBQTFHLE1BQUEsWUFBQThILFFBQUEscUJBQ0U5SCxNQUFBLFlBQUEwRyxhQUFBLENBQUN4QyxjQUFjLFFBQUMsT0FBcUIsQ0FBQyxlQUN0Q2xFLE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzlDLFNBQVMscUJBQ1I1RCxNQUFBLFlBQUEwRyxhQUFBLENBQUM3QyxlQUFlLFFBQUMsU0FBTyxFQUFDMkIsSUFBSSxDQUFDc0QsS0FBSyxDQUFDMUIsYUFBYSxDQUFDLEVBQUMsSUFBbUIsQ0FBQyxlQUN2RXBILE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ0osV0FBVztJQUNWeUIsVUFBVSxFQUFFLEtBQU07SUFDbEJFLFFBQVEsRUFBRSxLQUFNO0lBQ2hCRSxNQUFNLEVBQUVmLGFBQWM7SUFDdEJpQixRQUFRLEVBQUUsQ0FBRTtJQUNaQyxRQUFRLEVBQUUsR0FBSTtJQUNkRixJQUFJLEVBQUUsQ0FBRTtJQUNSRyxlQUFlLEVBQUUsU0FBakJBLGVBQWVBLENBQUdDLENBQVMsRUFBSztNQUFFLElBQUksQ0FBQ2pCLFFBQVEsRUFBRUksZ0JBQWdCLENBQUNhLENBQUMsQ0FBQztJQUFFLENBQUU7SUFDeEVqQixRQUFRLEVBQUVBO0VBQVMsQ0FDcEIsQ0FBQyxlQUVGdkgsTUFBQSxZQUFBMEcsYUFBQSxDQUFDN0MsZUFBZSxRQUFDLE9BQUssRUFBQzJCLElBQUksQ0FBQ3NELEtBQUssQ0FBQ3pCLFdBQVcsQ0FBQyxFQUFDLElBQW1CLENBQUMsZUFDbkVySCxNQUFBLFlBQUEwRyxhQUFBLENBQUNKLFdBQVc7SUFDVnlCLFVBQVUsRUFBRSxLQUFNO0lBQ2xCRSxRQUFRLEVBQUUsS0FBTTtJQUNoQkUsTUFBTSxFQUFFZCxXQUFZO0lBQ3BCZ0IsUUFBUSxFQUFFLENBQUU7SUFDWkMsUUFBUSxFQUFFLEdBQUk7SUFDZEYsSUFBSSxFQUFFLENBQUU7SUFDUkcsZUFBZSxFQUFFLFNBQWpCQSxlQUFlQSxDQUFHQyxDQUFTLEVBQUs7TUFBRSxJQUFJLENBQUNqQixRQUFRLEVBQUVLLGNBQWMsQ0FBQ1ksQ0FBQyxDQUFDO0lBQUUsQ0FBRTtJQUN0RWpCLFFBQVEsRUFBRUE7RUFBUyxDQUNwQixDQUFDLGVBRUZ2SCxNQUFBLFlBQUEwRyxhQUFBLENBQUM3QyxlQUFlLFFBQUMsUUFBdUIsQ0FBQyxlQUN6QzdELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ0UsaUJBQWlCO0lBQ2hCNkIsYUFBYSxFQUFFN0QsY0FBYyxDQUFDbUUsSUFBSSxDQUFDLFVBQUF6SCxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDdUQsRUFBRSxLQUFLeUMsV0FBVztJQUFBLEVBQUMsSUFBSTFDLGNBQWMsQ0FBQyxDQUFDLENBQUU7SUFDbkY4RCxPQUFPLEVBQUU5RCxjQUFlO0lBQ3hCK0QsV0FBVyxFQUFFLEtBQU07SUFDbkJDLFVBQVUsRUFBRSxLQUFNO0lBQ2xCQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0csR0FBUTtNQUFBLE9BQUtuQixjQUFjLENBQUMsQ0FBQW1CLEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFbkUsRUFBRSxLQUFJbUUsR0FBRyxDQUFDO0lBQUEsQ0FBQztJQUN2RHpCLFFBQVEsRUFBRUEsUUFBUztJQUNuQlIsY0FBYyxFQUFFLFNBQWhCQSxjQUFjQSxDQUFHekYsQ0FBTTtNQUFBLE9BQUtBLENBQUMsQ0FBQ3VELEVBQUU7SUFBQSxDQUFDO0lBQ2pDbUMsYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUcxRixDQUFNO01BQUEsT0FBS0EsQ0FBQyxDQUFDd0QsS0FBSztJQUFBO0VBQUMsQ0FDcEMsQ0FDUSxDQUNYLENBRUosQ0FBQztBQUFBLENBQ0o7O0FBRUQ7O0FBRUEsSUFBTW1FLFdBVUosR0FBRyxTQVZDQSxXQVVKQSxDQUFBQyxLQUFBLEVBVUk7RUFBQSxJQVRKQyxRQUFRLEdBQUFELEtBQUEsQ0FBUkMsUUFBUTtJQUNSbEQsU0FBUyxHQUFBaUQsS0FBQSxDQUFUakQsU0FBUztJQUNURCxVQUFVLEdBQUFrRCxLQUFBLENBQVZsRCxVQUFVO0lBQ1ZELFNBQVMsR0FBQW1ELEtBQUEsQ0FBVG5ELFNBQVM7SUFDVFQsVUFBVSxHQUFBNEQsS0FBQSxDQUFWNUQsVUFBVTtJQUNWaUMsUUFBUSxHQUFBMkIsS0FBQSxDQUFSM0IsUUFBUTtJQUNSNkIsZ0JBQWdCLEdBQUFGLEtBQUEsQ0FBaEJFLGdCQUFnQjtJQUNoQkMsaUJBQWlCLEdBQUFILEtBQUEsQ0FBakJHLGlCQUFpQjtJQUNqQkMsa0JBQWtCLEdBQUFKLEtBQUEsQ0FBbEJJLGtCQUFrQjtFQUVsQixJQUFBQyxTQUFBLEdBQWdDLElBQUFDLGVBQVEsRUFBUyxNQUFNLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLGFBQUFILFNBQUE7SUFBakRJLFFBQVEsR0FBQUYsVUFBQTtJQUFFRyxXQUFXLEdBQUFILFVBQUE7RUFFNUIsSUFBTUksZUFBZSxHQUFHN0QsVUFBVSxDQUFDOEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxHQUFHLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxpQkFBbUMsR0FBRyxDQUFDSixlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFQSxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0VBRW5HLG9CQUNFN0osTUFBQSxZQUFBMEcsYUFBQSxDQUFDOUMsU0FBUyxxQkFDUjVELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzdDLGVBQWUsUUFBQyxXQUEwQixDQUFDLGVBQzVDN0QsTUFBQSxZQUFBMEcsYUFBQSxDQUFDbkcsa0JBQUEsQ0FBQTJKLFVBQVU7SUFDVGxGLEtBQUssRUFBRW1FLFFBQVM7SUFDaEJnQixXQUFXLEVBQUMsV0FBVztJQUN2QnRCLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHN0gsQ0FBZ0M7TUFBQSxPQUFLb0ksZ0JBQWdCLENBQUNwSSxDQUFDLENBQUNvSixNQUFNLENBQUNwRixLQUFLLENBQUM7SUFBQSxDQUFDO0lBQ2pGdUMsUUFBUSxFQUFFQTtFQUFTLENBQ3BCLENBQUMsZUFFRnZILE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzdDLGVBQWUsUUFBQyxZQUEyQixDQUFDLGVBQzdDN0QsTUFBQSxZQUFBMEcsYUFBQSxDQUFDRSxpQkFBaUI7SUFDaEI2QixhQUFhLEVBQUUxRCxjQUFjLENBQUNnRSxJQUFJLENBQUMsVUFBQXpILENBQUM7TUFBQSxPQUFJQSxDQUFDLENBQUMwRCxLQUFLLEtBQUtpQixTQUFTO0lBQUEsRUFBQyxJQUFJbEIsY0FBYyxDQUFDLENBQUMsQ0FBRTtJQUNwRjJELE9BQU8sRUFBRTNELGNBQWU7SUFDeEI0RCxXQUFXLEVBQUUsS0FBTTtJQUNuQkMsVUFBVSxFQUFFLEtBQU07SUFDbEJDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHRyxHQUFRO01BQUEsT0FBS0ssaUJBQWlCLENBQUMsQ0FBQUwsR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUVoRSxLQUFLLEtBQUlnRSxHQUFHLENBQUM7SUFBQSxDQUFDO0lBQzdEekIsUUFBUSxFQUFFQSxRQUFTO0lBQ25CUixjQUFjLEVBQUVBLGNBQWU7SUFDL0JDLGFBQWEsRUFBRUE7RUFBYyxDQUM5QixDQUFDLGVBRUZoSCxNQUFBLFlBQUEwRyxhQUFBLENBQUM3QyxlQUFlLFFBQUMsT0FBc0IsQ0FBQyxlQUN4QzdELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ0UsaUJBQWlCO0lBQ2hCNkIsYUFBYSxFQUFFa0IsUUFBUztJQUN4QmpCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUU7SUFDekJDLFdBQVcsRUFBRSxLQUFNO0lBQ25CQyxVQUFVLEVBQUUsS0FBTTtJQUNsQkMsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUd3QixLQUFhLEVBQUs7TUFDM0JULFdBQVcsQ0FBQ1MsS0FBSyxDQUFDO01BQ2xCZixrQkFBa0IsQ0FBQ3JFLDJCQUEyQixDQUFDb0YsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBRTtJQUNGOUMsUUFBUSxFQUFFQTtFQUFTLENBQ3BCLENBQUMsZUFFRnZILE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzdDLGVBQWUsUUFBQyxTQUF3QixDQUFDLGVBQzFDN0QsTUFBQSxZQUFBMEcsYUFBQSxDQUFDRSxpQkFBaUI7SUFDaEI2QixhQUFhLEVBQUV2RCxrQkFBa0IsQ0FBQzZELElBQUksQ0FBQyxVQUFBekgsQ0FBQztNQUFBLE9BQUlBLENBQUMsQ0FBQzBELEtBQUssS0FBS2dCLFVBQVU7SUFBQSxFQUFDLElBQUlkLGtCQUFrQixDQUFDLENBQUMsQ0FBRTtJQUM3RndELE9BQU8sRUFBRXhELGtCQUFrQixDQUFDM0MsTUFBTSxDQUFDLFVBQUFqQixDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDNkQsV0FBVyxLQUFLd0UsUUFBUTtJQUFBLEVBQUU7SUFDcEVoQixXQUFXLEVBQUUsS0FBTTtJQUNuQkMsVUFBVSxFQUFFLEtBQU07SUFDbEJDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHRyxHQUFRO01BQUEsT0FBS00sa0JBQWtCLENBQUMsQ0FBQU4sR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUVoRSxLQUFLLEtBQUlnRSxHQUFHLENBQUM7SUFBQSxDQUFDO0lBQzlEekIsUUFBUSxFQUFFQSxRQUFTO0lBQ25CUixjQUFjLEVBQUVBLGNBQWU7SUFDL0JDLGFBQWEsRUFBRUE7RUFBYyxDQUM5QixDQUFDLGVBRUZoSCxNQUFBLFlBQUEwRyxhQUFBLENBQUM3QyxlQUFlLFFBQUMsV0FBMEIsQ0FBQyxlQUM1QzdELE1BQUEsWUFBQTBHLGFBQUEsQ0FBQzVDLGVBQWUsUUFBQyxVQUNQLEVBQUNnQyxnQkFBZ0IsQ0FBQ0MsU0FBUyxFQUFFa0UsaUJBQWlCLEVBQUUzRSxVQUFVLEVBQUVXLFNBQVMsQ0FDOUQsQ0FDUixDQUFDO0FBRWhCLENBQUM7O0FBRUQ7O0FBSUEsSUFBTXFFLG1CQUF1RCxHQUFHLFNBQTFEQSxtQkFBdURBLENBQUFDLEtBQUEsRUFvQnZEO0VBQUEsSUFuQkpqRixVQUFVLEdBQUFpRixLQUFBLENBQVZqRixVQUFVO0lBQ1ZXLFNBQVMsR0FBQXNFLEtBQUEsQ0FBVHRFLFNBQVM7SUFDVEQsVUFBVSxHQUFBdUUsS0FBQSxDQUFWdkUsVUFBVTtJQUNWbUQsUUFBUSxHQUFBb0IsS0FBQSxDQUFScEIsUUFBUTtJQUNSaEMsWUFBWSxHQUFBb0QsS0FBQSxDQUFacEQsWUFBWTtJQUNacEIsU0FBUyxHQUFBd0UsS0FBQSxDQUFUeEUsU0FBUztJQUNUMEIsZ0JBQWdCLEdBQUE4QyxLQUFBLENBQWhCOUMsZ0JBQWdCO0lBQ2hCNEIsaUJBQWlCLEdBQUFrQixLQUFBLENBQWpCbEIsaUJBQWlCO0lBQ2pCQyxrQkFBa0IsR0FBQWlCLEtBQUEsQ0FBbEJqQixrQkFBa0I7SUFDbEJGLGdCQUFnQixHQUFBbUIsS0FBQSxDQUFoQm5CLGdCQUFnQjtJQUNoQjFCLG9CQUFvQixHQUFBNkMsS0FBQSxDQUFwQjdDLG9CQUFvQjtJQUNwQk4sYUFBYSxHQUFBbUQsS0FBQSxDQUFibkQsYUFBYTtJQUNiQyxXQUFXLEdBQUFrRCxLQUFBLENBQVhsRCxXQUFXO0lBQ1hDLFdBQVcsR0FBQWlELEtBQUEsQ0FBWGpELFdBQVc7SUFDWEMsUUFBUSxHQUFBZ0QsS0FBQSxDQUFSaEQsUUFBUTtJQUNSSSxnQkFBZ0IsR0FBQTRDLEtBQUEsQ0FBaEI1QyxnQkFBZ0I7SUFDaEJDLGNBQWMsR0FBQTJDLEtBQUEsQ0FBZDNDLGNBQWM7SUFDZEMsY0FBYyxHQUFBMEMsS0FBQSxDQUFkMUMsY0FBYztJQUNkTCxTQUFTLEdBQUErQyxLQUFBLENBQVQvQyxTQUFTO0VBRVQsSUFBQWdELFVBQUEsR0FBa0MsSUFBQWhCLGVBQVEsRUFBUSxXQUFXLENBQUM7SUFBQWlCLFVBQUEsT0FBQWYsZUFBQSxhQUFBYyxVQUFBO0lBQXZERSxTQUFTLEdBQUFELFVBQUE7SUFBRUUsWUFBWSxHQUFBRixVQUFBO0VBRTlCLG9CQUNFekssTUFBQSxZQUFBMEcsYUFBQSwyQkFDRTFHLE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ3hELGNBQWMscUJBQ2JsRCxNQUFBLFlBQUEwRyxhQUFBLENBQUNqRCxhQUFhO0lBQ1ptSCxTQUFTLEVBQUVGLFNBQVMsS0FBSyxXQUFXLEdBQUcsUUFBUSxHQUFHLEVBQUc7SUFDckRHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUUYsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUFBO0VBQUMsR0FDMUMsV0FFYyxDQUFDLGVBQ2hCM0ssTUFBQSxZQUFBMEcsYUFBQSxDQUFDakQsYUFBYTtJQUNabUgsU0FBUyxFQUFFRixTQUFTLEtBQUssVUFBVSxHQUFHLFFBQVEsR0FBRyxFQUFHO0lBQ3BERyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFGLFlBQVksQ0FBQyxVQUFVLENBQUM7SUFBQTtFQUFDLEdBQ3pDLFVBRWMsQ0FDRCxDQUFDLEVBRWhCRCxTQUFTLEtBQUssV0FBVyxpQkFDeEIxSyxNQUFBLFlBQUEwRyxhQUFBLENBQUNPLFlBQVk7SUFDWDNCLFVBQVUsRUFBRUEsVUFBVztJQUN2QjZCLFlBQVksRUFBRUEsWUFBYTtJQUMzQkMsYUFBYSxFQUFFQSxhQUFjO0lBQzdCQyxXQUFXLEVBQUVBLFdBQVk7SUFDekJDLFdBQVcsRUFBRUEsV0FBWTtJQUN6QkMsUUFBUSxFQUFFQSxRQUFTO0lBQ25CQyxTQUFTLEVBQUVBLFNBQVU7SUFDckJDLGdCQUFnQixFQUFFQSxnQkFBaUI7SUFDbkNDLG9CQUFvQixFQUFFQSxvQkFBcUI7SUFDM0NDLGdCQUFnQixFQUFFQSxnQkFBaUI7SUFDbkNDLGNBQWMsRUFBRUEsY0FBZTtJQUMvQkMsY0FBYyxFQUFFQTtFQUFlLENBQ2hDLENBQ0YsRUFFQTZDLFNBQVMsS0FBSyxVQUFVLGlCQUN2QjFLLE1BQUEsWUFBQTBHLGFBQUEsQ0FBQ3VDLFdBQVc7SUFDVkUsUUFBUSxFQUFFQSxRQUFTO0lBQ25CbEQsU0FBUyxFQUFFQSxTQUFVO0lBQ3JCRCxVQUFVLEVBQUVBLFVBQVc7SUFDdkJELFNBQVMsRUFBRUEsU0FBVTtJQUNyQlQsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCaUMsUUFBUSxFQUFFQSxRQUFTO0lBQ25CNkIsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQ0MsaUJBQWlCLEVBQUVBLGlCQUFrQjtJQUNyQ0Msa0JBQWtCLEVBQUVBO0VBQW1CLENBQ3hDLENBRUEsQ0FBQztBQUVWLENBQUM7QUFBQyxJQUFBd0IsUUFBQSxHQUFBQyxPQUFBLGNBRWFULG1CQUFtQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -98,6 +98,12 @@ export declare class SwipeExportVideoPanelContainer extends Component<SwipeExpor
98
98
  tripKeyframe?: undefined;
99
99
  };
100
100
  setViewState: (viewState: MapViewState) => void;
101
+ /**
102
+ * CSS background color for globe swipe (the area the globe doesn't cover).
103
+ * Returns undefined outside globe mode so non-globe swipe keeps its previous
104
+ * transparent-clear compositing (the opaque base map already fills the frame).
105
+ */
106
+ getBackgroundColor(): string | undefined;
101
107
  setStateAndNotify(update: SwipeExportVideoSettings): void;
102
108
  setMediaType: (mediaType: string) => void;
103
109
  setCameraPreset: (cameraPreset: string) => void;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.SwipeExportVideoPanelContainer = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -23,10 +24,10 @@ var _constants = require("@kepler.gl/constants");
23
24
  var _hubbleUtils = require("./hubble-utils");
24
25
  var _swipeExportVideoPreview = require("./swipe-export-video-preview");
25
26
  var _swipeExportSettings = _interopRequireDefault(require("./swipe-export-settings"));
27
+ var _deckglLayers = require("@kepler.gl/deckgl-layers");
26
28
  var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
27
29
  // Copyright contributors to the kepler.gl project
28
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
29
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
30
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
30
31
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
32
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
33
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
@@ -496,6 +497,27 @@ var SwipeExportVideoPanelContainer = exports.SwipeExportVideoPanelContainer = /*
496
497
  }
497
498
  return {};
498
499
  }
500
+ }, {
501
+ key: "getBackgroundColor",
502
+ value:
503
+ /**
504
+ * CSS background color for globe swipe (the area the globe doesn't cover).
505
+ * Returns undefined outside globe mode so non-globe swipe keeps its previous
506
+ * transparent-clear compositing (the opaque base map already fills the frame).
507
+ */
508
+ function getBackgroundColor() {
509
+ var _this$props$mapData, _this$props$mapData2;
510
+ if (!((_this$props$mapData = this.props.mapData) !== null && _this$props$mapData !== void 0 && (_this$props$mapData = _this$props$mapData.mapState) !== null && _this$props$mapData !== void 0 && (_this$props$mapData = _this$props$mapData.globe) !== null && _this$props$mapData !== void 0 && _this$props$mapData.enabled)) {
511
+ return undefined;
512
+ }
513
+ var bg = (_this$props$mapData2 = this.props.mapData) === null || _this$props$mapData2 === void 0 || (_this$props$mapData2 = _this$props$mapData2.mapState) === null || _this$props$mapData2 === void 0 || (_this$props$mapData2 = _this$props$mapData2.globe) === null || _this$props$mapData2 === void 0 || (_this$props$mapData2 = _this$props$mapData2.config) === null || _this$props$mapData2 === void 0 ? void 0 : _this$props$mapData2.backgroundColor;
514
+ var _getGlobeClearColor = (0, _deckglLayers.getGlobeClearColor)(bg),
515
+ _getGlobeClearColor2 = (0, _slicedToArray2["default"])(_getGlobeClearColor, 3),
516
+ r = _getGlobeClearColor2[0],
517
+ g = _getGlobeClearColor2[1],
518
+ b = _getGlobeClearColor2[2];
519
+ return "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")");
520
+ }
499
521
  }, {
500
522
  key: "setStateAndNotify",
501
523
  value: function setStateAndNotify(update) {
@@ -572,7 +594,8 @@ var SwipeExportVideoPanelContainer = exports.SwipeExportVideoPanelContainer = /*
572
594
  swipeStartPct: swipeStartPct,
573
595
  swipeEndPct: swipeEndPct,
574
596
  swipeEasing: swipeEasing,
575
- currentTimeMs: currentTimeMs
597
+ currentTimeMs: currentTimeMs,
598
+ backgroundColor: this.getBackgroundColor()
576
599
  }), /*#__PURE__*/_react["default"].createElement(_swipeExportSettings["default"], {
577
600
  durationMs: durationMs,
578
601
  mediaType: mediaType,
@@ -627,4 +650,4 @@ var SwipeExportVideoPanelContainer = exports.SwipeExportVideoPanelContainer = /*
627
650
  }
628
651
  }]);
629
652
  }(_react.Component);
630
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcG9wbW90aW9uIiwiX2Rvd25sb2FkanMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3N0eWxlZENvbXBvbmVudHMiLCJfY29tbW9uIiwiX2NvcmUiLCJfY29uc3RhbnRzIiwiX2h1YmJsZVV0aWxzIiwiX3N3aXBlRXhwb3J0VmlkZW9QcmV2aWV3IiwiX3N3aXBlRXhwb3J0U2V0dGluZ3MiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkVOQ09ERVJTIiwiZ2lmIiwiR2lmRW5jb2RlciIsIndlYm0iLCJXZWJNRW5jb2RlciIsImpwZWciLCJKUEVHU2VxdWVuY2VFbmNvZGVyIiwicG5nIiwiUE5HU2VxdWVuY2VFbmNvZGVyIiwiUGFuZWxCb2R5Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsIiRleHBvcnRWaWRlb1dpZHRoIiwiVGltZWxpbmVDb250cm9scyIsInRpbWVsaW5lUGxheUJ1dHRvblN0eWxlIiwiY3Vyc29yIiwiaGVpZ2h0Iiwid2lkdGgiLCJmaWxsIiwiQnV0dG9uR3JvdXAiLCJTdGF0dXNUZXh0IiwidGhlbWUiLCJzdWJ0ZXh0Q29sb3JMVCIsIlBsYXlJY29uIiwiX3JlZiIsInN0eWxlIiwib25DbGljayIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ2aWV3Qm94IiwiZCIsIlN0b3BJY29uIiwiX3JlZjIiLCJTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXIiLCJleHBvcnRzIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsImNyZWF0ZVJlZiIsInZpZXdTdGF0ZSIsInNldFN0YXRlIiwibWVkaWFUeXBlIiwic2V0U3RhdGVBbmROb3RpZnkiLCJjYW1lcmFQcmVzZXQiLCJmaWxlTmFtZSIsInJlc29sdXRpb24iLCJkdXJhdGlvbk1zIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsImFkYXB0ZXIiLCJwcmV2aWV3aW5nIiwiY3VycmVudFRpbWVNcyIsIm1lbW8iLCJhbmltYXRpb25NYW5hZ2VyIiwic2V0S2V5ZnJhbWVzIiwiZ2V0RmlsdGVyS2V5ZnJhbWVzIiwiZ2V0VHJpcEtleWZyYW1lcyIsImNhbWVyYUtleWZyYW1lIiwiZ2V0Q2FtZXJhS2V5ZnJhbWVzIiwic3RhcnRUaW1lIiwicGVyZm9ybWFuY2UiLCJub3ciLCJhbmltYXRlIiwiZWxhcHNlZCIsIk1hdGgiLCJtaW4iLCJ0aW1lbGluZSIsInNldFRpbWUiLCJkcmF3IiwiYW5pbWF0aW9uRnJhbWVJZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImZpbGVuYW1lIiwiZ2V0RmlsZU5hbWUiLCJFbmNvZGVyIiwiZ2V0RW5jb2RlciIsImZvcm1hdENvbmZpZ3MiLCJnZXRGb3JtYXRDb25maWdzIiwidGltZWNvZGUiLCJnZXRUaW1lY29kZSIsIl90aGlzJGdldENhbnZhc1NpemUiLCJnZXRDYW52YXNTaXplIiwicmVuZGVyaW5nIiwic2F2aW5nIiwiZW5jb2RlciIsImZyYW1lcmF0ZSIsImFjdGl2ZUVuY29kZXIiLCJzdGFydCIsImZyYW1lTGVuZ3RoTXMiLCJmbG9vciIsInRpbWVNcyIsInJldHJ5Q291bnQiLCJNQVhfUkVUUklFUyIsImNhcHR1cmVOZXh0RnJhbWUiLCJ3YWl0QW5kQ2FwdHVyZSIsInByZXZpZXciLCJwcmV2aWV3UmVmIiwiY3VycmVudCIsImNvbXBvc2l0ZUNhbnZhcyIsImdldENvbXBvc2l0ZUNhbnZhcyIsImN0eCIsImdldENvbnRleHQiLCJoYXNDb250ZW50IiwicGl4ZWwiLCJnZXRJbWFnZURhdGEiLCJkYXRhIiwiX3VudXNlZCIsIl9jb21wb3NpdGVGcmFtZSIsIm9mZnNjcmVlbiIsImRvY3VtZW50Iiwib2ZmQ3R4IiwiZHJhd0ltYWdlIiwiYWRkIiwidGhlbiIsImVuZCIsInNhdmUiLCJibG9iIiwiZG93bmxvYWQiLCJleHRlbnNpb24iLCJtaW1lVHlwZSIsInNldFRpbWVvdXQiLCJfcmVmMyIsInVuZGVmaW5lZCIsIl9yZWYzJGFib3J0IiwiYWJvcnQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl90aGlzJHN0YXRlJG1lbW8iLCJpbml0aWFsU3RhdGUiLCJtYXBTdGF0ZSIsIm1hcERhdGEiLCJnbENvbnRleHQiLCJzY2FsZVRvVmlkZW9FeHBvcnQiLCJfZ2V0Q29udGFpbmVyIiwiRGVja0FkYXB0ZXIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJfdGhpcyRwcm9wcyIsIm9uVHJpcEZyYW1lVXBkYXRlIiwib25GaWx0ZXJGcmFtZVVwZGF0ZSIsImdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lcyIsImFuaW1hdGlvbiIsIktlcGxlckFuaW1hdGlvbiIsIm9uQ2FtZXJhRnJhbWVVcGRhdGUiLCJzZXRWaWV3U3RhdGUiLCJhdHRhY2hBbmltYXRpb24iLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9uU3RvcCIsImRlZmF1bHRGaWxlTmFtZSIsIl9nZXRSZXNvbHV0aW9uU2V0dGluZyIsImdldFJlc29sdXRpb25TZXR0aW5nIiwiX3RoaXMkZ2V0Q2FudmFzU2l6ZTIiLCJleHBvcnRWaWRlb1dpZHRoIiwiYXNwZWN0UmF0aW8iLCJfdGhpcyRnZXRDYW52YXNTaXplMyIsInF1YWxpdHkiLCJzYW1wbGVJbnRlcnZhbCIsIl90aGlzJHN0YXRlMiIsIl9yZWY0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJ6b29tIiwicGl0Y2giLCJiZWFyaW5nIiwiX3RoaXMkZ2V0Q2FudmFzU2l6ZTQiLCJ0aW1pbmdzIiwia2V5ZnJhbWVzIiwicGFyc2VTZXRDYW1lcmFUeXBlIiwiZWFzaW5ncyIsImVhc2VJbk91dCIsIl90aGlzMiIsIl90aGlzJHByb3BzMiIsImZpbHRlcnMiLCJ2aXNTdGF0ZSIsImFuaW1hdGFibGVGaWx0ZXJzIiwiZmlsdGVyS2V5ZnJhbWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZiIsInR5cGUiLCJ2aWV3IiwiRklMVEVSX1ZJRVdfVFlQRVMiLCJlbmxhcmdlZCIsIm1hcCIsImlkIiwiX3RoaXMkcHJvcHMkbWFwRGF0YSR2IiwibGF5ZXJzIiwiYW5pbWF0aW9uQ29uZmlnIiwiYW5pbWF0YWJsZUxheWVyIiwibCIsImNvbmZpZyIsImVuYWJsZWQiLCJpc1Zpc2libGUiLCJyZWFkeVRvQW5pbWF0aW9uIiwiZG9tYWluIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJjdXJyZW50VGltZSIsInRyaXBLZXlmcmFtZSIsInVwZGF0ZSIsIm9uU2V0dGluZ3NDaGFuZ2UiLCJfdGhpcyRzdGF0ZTMiLCJyZW5kZXIiLCJfdGhpczMiLCJfdGhpcyRwcm9wczMiLCJkZWNrUHJvcHMiLCJtYXBQcm9wcyIsImRpc2FibGVCYXNlTWFwIiwibWFwYm94TGF5ZXJCZWZvcmVJZCIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiX3RoaXMkc3RhdGU0IiwiY2FudmFzU2l6ZSIsImlzQWN0aXZlIiwiU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXciLCJyZWYiLCJmcmFtZVJhdGUiLCJvbkNoYW5nZUR1cmF0aW9uIiwic2V0RHVyYXRpb24iLCJvbkNoYW5nZU1lZGlhVHlwZSIsInNldE1lZGlhVHlwZSIsIm9uQ2hhbmdlUmVzb2x1dGlvbiIsInNldFJlc29sdXRpb24iLCJvbkNoYW5nZUZpbGVOYW1lIiwic2V0RmlsZU5hbWUiLCJvbkNoYW5nZUNhbWVyYVByZXNldCIsInNldENhbWVyYVByZXNldCIsImRpc2FibGVkIiwib25DaGFuZ2VTdGFydFBjdCIsIm9uQ2hhbmdlRW5kUGN0Iiwib25DaGFuZ2VFYXNpbmciLCJvblByZXZpZXdWaWRlbyIsInJvdW5kIiwiQnV0dG9uIiwibWFyZ2luVG9wIiwib25SZW5kZXJWaWRlbyIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvc3dpcGUtZXhwb3J0LXZpZGVvLWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7ZWFzZUluT3V0fSBmcm9tICdwb3Btb3Rpb24nO1xuaW1wb3J0IGRvd25sb2FkIGZyb20gJ2Rvd25sb2FkanMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7XG4gIERlY2tBZGFwdGVyLFxuICBLZXBsZXJBbmltYXRpb24sXG4gIFdlYk1FbmNvZGVyLFxuICBKUEVHU2VxdWVuY2VFbmNvZGVyLFxuICBQTkdTZXF1ZW5jZUVuY29kZXIsXG4gIEdpZkVuY29kZXIsXG4gIEZvcm1hdENvbmZpZ3MsXG4gIFRpbWVjb2RlXG59IGZyb20gJ0BodWJibGUuZ2wvY29yZSc7XG5pbXBvcnQgdHlwZSB7RGVja1Byb3BzLCBNYXBWaWV3U3RhdGV9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtGSUxURVJfVklFV19UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge3BhcnNlU2V0Q2FtZXJhVHlwZSwgc2NhbGVUb1ZpZGVvRXhwb3J0LCBnZXRSZXNvbHV0aW9uU2V0dGluZ30gZnJvbSAnLi9odWJibGUtdXRpbHMnO1xuaW1wb3J0IHtTd2lwZUV4cG9ydFZpZGVvUHJldmlld30gZnJvbSAnLi9zd2lwZS1leHBvcnQtdmlkZW8tcHJldmlldyc7XG5pbXBvcnQgU3dpcGVFeHBvcnRTZXR0aW5ncyBmcm9tICcuL3N3aXBlLWV4cG9ydC1zZXR0aW5ncyc7XG5pbXBvcnQge1N3aXBlRWFzaW5nfSBmcm9tICcuL3N3aXBlLWNvbXBvc2l0ZS11dGlscyc7XG5cbmNvbnN0IEVOQ09ERVJTID0ge1xuICBnaWY6IEdpZkVuY29kZXIsXG4gIHdlYm06IFdlYk1FbmNvZGVyLFxuICBqcGVnOiBKUEVHU2VxdWVuY2VFbmNvZGVyLFxuICBwbmc6IFBOR1NlcXVlbmNlRW5jb2RlclxufTtcblxuZXhwb3J0IHR5cGUgU3dpcGVFeHBvcnRWaWRlb1NldHRpbmdzID0ge1xuICBtZWRpYVR5cGU/OiBzdHJpbmc7XG4gIGNhbWVyYVByZXNldD86IHN0cmluZztcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG4gIHJlc29sdXRpb24/OiBzdHJpbmc7XG4gIGR1cmF0aW9uTXM/OiBudW1iZXI7XG4gIHN3aXBlU3RhcnRQY3Q/OiBudW1iZXI7XG4gIHN3aXBlRW5kUGN0PzogbnVtYmVyO1xuICBzd2lwZUVhc2luZz86IFN3aXBlRWFzaW5nO1xufTtcblxudHlwZSBTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXJQcm9wcyA9IHtcbiAgaW5pdGlhbFN0YXRlPzogUGFydGlhbDxTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXJTdGF0ZT47XG4gIGdsQ29udGV4dD86IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG4gIGV4cG9ydFZpZGVvV2lkdGg6IG51bWJlcjtcbiAgaGFuZGxlQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIG1hcERhdGE6IGFueTtcbiAgaGVhZGVyOiBib29sZWFuO1xuICBkZWNrUHJvcHM/OiBEZWNrUHJvcHM7XG4gIG1hcFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBkaXNhYmxlQmFzZU1hcDogYm9vbGVhbjtcbiAgbWFwYm94TGF5ZXJCZWZvcmVJZD86IHN0cmluZztcbiAgZGVmYXVsdEZpbGVOYW1lOiBzdHJpbmc7XG4gIGFuaW1hdGFibGVGaWx0ZXJzOiBhbnk7XG4gIG9uVHJpcEZyYW1lVXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25GaWx0ZXJGcmFtZVVwZGF0ZTogKGZpbHRlcklkeDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gIGdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lczogKGFyZ3M6IGFueSkgPT4gYW55O1xuICBvblNldHRpbmdzQ2hhbmdlOiAoc2V0dGluZ3M6IFN3aXBlRXhwb3J0VmlkZW9TZXR0aW5ncykgPT4gdm9pZDtcbiAgc3dpcGVTdGFydFBjdDogbnVtYmVyO1xuICBzd2lwZUVuZFBjdDogbnVtYmVyO1xuICBzd2lwZUVhc2luZzogU3dpcGVFYXNpbmc7XG59O1xuXG50eXBlIFN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lclN0YXRlID0ge1xuICBhZGFwdGVyPzogRGVja0FkYXB0ZXI7XG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgbWVkaWFUeXBlOiBzdHJpbmc7XG4gIGNhbWVyYVByZXNldDogc3RyaW5nO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICByZXNvbHV0aW9uOiBzdHJpbmc7XG4gIHZpZXdTdGF0ZT86IE1hcFZpZXdTdGF0ZTtcbiAgcmVuZGVyaW5nOiBib29sZWFuO1xuICBwcmV2aWV3aW5nOiBib29sZWFuO1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIGN1cnJlbnRUaW1lTXM6IG51bWJlcjtcbiAgbWVtbz86IHt2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZX07XG59O1xuXG5jb25zdCBQYW5lbEJvZHkgPSBzdHlsZWQuZGl2PHskZXhwb3J0VmlkZW9XaWR0aDogbnVtYmVyfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogJHtwcm9wcyA9PiBwcm9wcy4kZXhwb3J0VmlkZW9XaWR0aH1weCAyODBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICBncmlkLWNvbHVtbi1nYXA6IDI0cHg7XG5gO1xuXG5jb25zdCBUaW1lbGluZUNvbnRyb2xzID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG5gO1xuXG5jb25zdCB0aW1lbGluZVBsYXlCdXR0b25TdHlsZSA9IHtcbiAgY3Vyc29yOiAncG9pbnRlcicsXG4gIGhlaWdodDogJzMycHgnLFxuICB3aWR0aDogJzMycHgnLFxuICBmaWxsOiAnI0ZGRidcbn07XG5cbmNvbnN0IEJ1dHRvbkdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFN0YXR1c1RleHQgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvckxUIHx8ICcjNkE3NDg1J307XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogNHB4O1xuYDtcblxuY29uc3QgUGxheUljb246IFJlYWN0LkZDPHtzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7IG9uQ2xpY2s/OiAoKSA9PiB2b2lkfT4gPSAoe3N0eWxlLCBvbkNsaWNrfSkgPT4gKFxuICA8c3ZnXG4gICAgY2xhc3NOYW1lPVwiZGF0YS1leC1pY29ucy1wbGF5XCJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICBzdHlsZT17c3R5bGV9XG4gICAgb25DbGljaz17b25DbGlja31cbiAgPlxuICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiAvPlxuICAgIDxwYXRoIGQ9XCJNMTkuMzc2IDEyLjQxNkw4Ljc3NyAxOS40ODJBLjUuNSAwIDAgMSA4IDE5LjA2NlY0LjkzNGEuNS41IDAgMCAxIC43NzctLjQxNmwxMC41OTkgNy4wNjZhLjUuNSAwIDAgMSAwIC44MzJ6XCIgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBTdG9wSWNvbjogUmVhY3QuRkM8e3N0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllczsgb25DbGljaz86ICgpID0+IHZvaWR9PiA9ICh7c3R5bGUsIG9uQ2xpY2t9KSA9PiAoXG4gIDxzdmdcbiAgICBjbGFzc05hbWU9XCJkYXRhLWV4LWljb25zLXN0b3BcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgIHN0eWxlPXtzdHlsZX1cbiAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICA+XG4gICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwelwiIC8+XG4gICAgPHBhdGggZD1cIk02IDVoMTJhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTF6XCIgLz5cbiAgPC9zdmc+XG4pO1xuXG4vKipcbiAqIE9yY2hlc3RyYXRlcyBzd2lwZSB2aWRlbyBleHBvcnQgcmVjb3JkaW5nLlxuICogTWFuYWdlcyBhIERlY2tBZGFwdGVyIGJ1dCBvdmVycmlkZXMgdGhlIGNhcHR1cmUgcGlwZWxpbmUgdG9cbiAqIGNvbXBvc2l0ZSBsZWZ0L3JpZ2h0IGNhbnZhc2VzIHdpdGggYW4gYW5pbWF0ZWQgc3dpcGUgZGl2aWRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudDxcbiAgU3dpcGVFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyUHJvcHMsXG4gIFN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lclN0YXRlXG4+IHtcbiAgcHJldmlld1JlZiA9IGNyZWF0ZVJlZjxTd2lwZUV4cG9ydFZpZGVvUHJldmlldz4oKTtcbiAgYW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGFjdGl2ZUVuY29kZXI6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXJQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgIG1hcERhdGE6IHttYXBTdGF0ZX0sXG4gICAgICBnbENvbnRleHRcbiAgICB9ID0gcHJvcHM7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbWVkaWFUeXBlOiAnd2VibScsXG4gICAgICBjYW1lcmFQcmVzZXQ6ICdOb25lJyxcbiAgICAgIGZpbGVOYW1lOiAnJyxcbiAgICAgIHJlc29sdXRpb246ICcxMjgweDcyMCcsXG4gICAgICBkdXJhdGlvbk1zOiAxMDAwLFxuICAgICAgcmVuZGVyaW5nOiBmYWxzZSxcbiAgICAgIHByZXZpZXdpbmc6IGZhbHNlLFxuICAgICAgc2F2aW5nOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRUaW1lTXM6IDAsXG4gICAgICAuLi4oaW5pdGlhbFN0YXRlIHx8IHt9KVxuICAgIH07XG5cbiAgICBjb25zdCB2aWV3U3RhdGUgPSBzY2FsZVRvVmlkZW9FeHBvcnQobWFwU3RhdGUsIHRoaXMuX2dldENvbnRhaW5lcigpKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgIHZpZXdTdGF0ZSxcbiAgICAgIG1lbW86IHt2aWV3U3RhdGV9LFxuICAgICAgYWRhcHRlcjogbmV3IERlY2tBZGFwdGVyKHtnbENvbnRleHR9KVxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7b25UcmlwRnJhbWVVcGRhdGUsIG9uRmlsdGVyRnJhbWVVcGRhdGUsIGdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lc30gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IG5ldyBLZXBsZXJBbmltYXRpb24oe1xuICAgICAgLi4udGhpcy5nZXRGaWx0ZXJLZXlmcmFtZXMoKSxcbiAgICAgIC4uLnRoaXMuZ2V0VHJpcEtleWZyYW1lcygpLFxuICAgICAgY2FtZXJhS2V5ZnJhbWU6IHRoaXMuZ2V0Q2FtZXJhS2V5ZnJhbWVzKCksXG4gICAgICBvbkNhbWVyYUZyYW1lVXBkYXRlOiB0aGlzLnNldFZpZXdTdGF0ZSBhcyBhbnksXG4gICAgICBvblRyaXBGcmFtZVVwZGF0ZSxcbiAgICAgIG9uRmlsdGVyRnJhbWVVcGRhdGUsXG4gICAgICBnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXNcbiAgICB9KTtcbiAgICB0aGlzLnN0YXRlLmFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIuYXR0YWNoQW5pbWF0aW9uKGFuaW1hdGlvbik7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLm9uU3RvcCh7YWJvcnQ6IHRydWV9KTtcbiAgICBpZiAodGhpcy5hbmltYXRpb25GcmFtZUlkKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lSWQpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpbGVOYW1lKCkge1xuICAgIGNvbnN0IHtkZWZhdWx0RmlsZU5hbWV9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7ZmlsZU5hbWV9ID0gdGhpcy5zdGF0ZTtcbiAgICByZXR1cm4gZmlsZU5hbWUgfHwgZGVmYXVsdEZpbGVOYW1lO1xuICB9XG5cbiAgZ2V0Q2FudmFzU2l6ZSgpIHtcbiAgICBjb25zdCB7cmVzb2x1dGlvbn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IGdldFJlc29sdXRpb25TZXR0aW5nKHJlc29sdXRpb24pO1xuICAgIHJldHVybiB7d2lkdGgsIGhlaWdodH07XG4gIH1cblxuICBfZ2V0Q29udGFpbmVyKCkge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuZ2V0Q2FudmFzU2l6ZSgpO1xuICAgIGNvbnN0IHtleHBvcnRWaWRlb1dpZHRofSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgYXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodDtcbiAgICByZXR1cm4ge2hlaWdodDogZXhwb3J0VmlkZW9XaWR0aCAvIGFzcGVjdFJhdGlvLCB3aWR0aDogZXhwb3J0VmlkZW9XaWR0aH07XG4gIH1cblxuICBnZXRGb3JtYXRDb25maWdzKCk6IFBhcnRpYWw8Rm9ybWF0Q29uZmlncz4ge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuZ2V0Q2FudmFzU2l6ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICB3ZWJtOiB7cXVhbGl0eTogMC44fSxcbiAgICAgIGpwZWc6IHtxdWFsaXR5OiAwLjh9LFxuICAgICAgcG5nOiB7fSxcbiAgICAgIGdpZjoge3NhbXBsZUludGVydmFsOiAxMDAwLCB3aWR0aCwgaGVpZ2h0fVxuICAgIH07XG4gIH1cblxuICBnZXRUaW1lY29kZSgpOiBUaW1lY29kZSB7XG4gICAgY29uc3Qge2R1cmF0aW9uTXN9ID0gdGhpcy5zdGF0ZTtcbiAgICByZXR1cm4ge3N0YXJ0OiAwLCBlbmQ6IGR1cmF0aW9uTXMsIGZyYW1lcmF0ZTogMzB9O1xuICB9XG5cbiAgZ2V0RW5jb2RlcigpIHtcbiAgICBjb25zdCB7bWVkaWFUeXBlfSA9IHRoaXMuc3RhdGU7XG4gICAgcmV0dXJuIEVOQ09ERVJTW21lZGlhVHlwZV07XG4gIH1cblxuICBnZXRDYW1lcmFLZXlmcmFtZXMoKSB7XG4gICAgY29uc3Qge3ZpZXdTdGF0ZSwgY2FtZXJhUHJlc2V0LCBkdXJhdGlvbk1zfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb20sIHBpdGNoLCBiZWFyaW5nfSA9IHZpZXdTdGF0ZSE7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gdGhpcy5nZXRDYW52YXNTaXplKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpbWluZ3M6IFswLCBkdXJhdGlvbk1zXSxcbiAgICAgIGtleWZyYW1lczogW1xuICAgICAgICB7bG9uZ2l0dWRlLCBsYXRpdHVkZSwgem9vbSwgcGl0Y2gsIGJlYXJpbmd9LFxuICAgICAgICBwYXJzZVNldENhbWVyYVR5cGUoY2FtZXJhUHJlc2V0LCB2aWV3U3RhdGUhKVxuICAgICAgXSxcbiAgICAgIGVhc2luZ3M6IFtlYXNlSW5PdXRdLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9O1xuICB9XG5cbiAgZ2V0RmlsdGVyS2V5ZnJhbWVzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1hcERhdGE6IHt2aXNTdGF0ZToge2ZpbHRlcnN9fSxcbiAgICAgIGFuaW1hdGFibGVGaWx0ZXJzXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBmaWx0ZXJLZXlmcmFtZXMgPSAoXG4gICAgICBBcnJheS5pc0FycmF5KGFuaW1hdGFibGVGaWx0ZXJzKSAmJiBhbmltYXRhYmxlRmlsdGVycy5sZW5ndGhcbiAgICAgICAgPyBhbmltYXRhYmxlRmlsdGVyc1xuICAgICAgICA6IGZpbHRlcnMuZmlsdGVyKChmOiBhbnkpID0+IGYudHlwZSA9PT0gJ3RpbWVSYW5nZScgJiYgZi52aWV3ID09PSBGSUxURVJfVklFV19UWVBFUy5lbmxhcmdlZClcbiAgICApLm1hcCgoZjogYW55KSA9PiAoe1xuICAgICAgaWQ6IGYuaWQsXG4gICAgICB0aW1pbmdzOiBbMCwgdGhpcy5zdGF0ZS5kdXJhdGlvbk1zXVxuICAgIH0pKTtcblxuICAgIGlmIChmaWx0ZXJLZXlmcmFtZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge2ZpbHRlcnMsIGZpbHRlcktleWZyYW1lc307XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldFRyaXBLZXlmcmFtZXMoKSB7XG4gICAgY29uc3Qge1xuICAgICAgbWFwRGF0YToge3Zpc1N0YXRlOiB7bGF5ZXJzLCBhbmltYXRpb25Db25maWd9fVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgYW5pbWF0YWJsZUxheWVyID0gbGF5ZXJzLmZpbHRlcihcbiAgICAgIChsOiBhbnkpID0+IGwuY29uZmlnLmFuaW1hdGlvbiAmJiBsLmNvbmZpZy5hbmltYXRpb24uZW5hYmxlZCAmJiBsLmNvbmZpZy5pc1Zpc2libGVcbiAgICApO1xuICAgIGNvbnN0IHJlYWR5VG9BbmltYXRpb24gPVxuICAgICAgQXJyYXkuaXNBcnJheShhbmltYXRpb25Db25maWcuZG9tYWluKSAmJiBOdW1iZXIuaXNGaW5pdGUoYW5pbWF0aW9uQ29uZmlnLmN1cnJlbnRUaW1lKTtcbiAgICBpZiAoYW5pbWF0YWJsZUxheWVyLmxlbmd0aCAmJiByZWFkeVRvQW5pbWF0aW9uKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbmltYXRpb25Db25maWcsXG4gICAgICAgIHRyaXBLZXlmcmFtZToge3RpbWluZ3M6IFswLCB0aGlzLnN0YXRlLmR1cmF0aW9uTXNdfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgc2V0Vmlld1N0YXRlID0gKHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7dmlld1N0YXRlfSk7XG4gIH07XG5cbiAgc2V0U3RhdGVBbmROb3RpZnkodXBkYXRlOiBTd2lwZUV4cG9ydFZpZGVvU2V0dGluZ3MpIHtcbiAgICBjb25zdCB7b25TZXR0aW5nc0NoYW5nZX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHttZWRpYVR5cGUsIGNhbWVyYVByZXNldCwgZmlsZU5hbWUsIHJlc29sdXRpb24sIGR1cmF0aW9uTXN9ID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnNldFN0YXRlKHsuLi50aGlzLnN0YXRlLCAuLi51cGRhdGV9IGFzIGFueSk7XG4gICAgaWYgKG9uU2V0dGluZ3NDaGFuZ2UpIHtcbiAgICAgIG9uU2V0dGluZ3NDaGFuZ2Uoe21lZGlhVHlwZSwgY2FtZXJhUHJlc2V0LCBmaWxlTmFtZSwgcmVzb2x1dGlvbiwgZHVyYXRpb25NcywgLi4udXBkYXRlfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0TWVkaWFUeXBlID0gKG1lZGlhVHlwZTogc3RyaW5nKSA9PiB0aGlzLnNldFN0YXRlQW5kTm90aWZ5KHttZWRpYVR5cGV9KTtcbiAgc2V0Q2FtZXJhUHJlc2V0ID0gKGNhbWVyYVByZXNldDogc3RyaW5nKSA9PiB0aGlzLnNldFN0YXRlQW5kTm90aWZ5KHtjYW1lcmFQcmVzZXR9KTtcbiAgc2V0RmlsZU5hbWUgPSAoZmlsZU5hbWU6IHN0cmluZykgPT4gdGhpcy5zZXRTdGF0ZUFuZE5vdGlmeSh7ZmlsZU5hbWV9KTtcbiAgc2V0UmVzb2x1dGlvbiA9IChyZXNvbHV0aW9uOiBzdHJpbmcpID0+IHRoaXMuc2V0U3RhdGVBbmROb3RpZnkoe3Jlc29sdXRpb259KTtcbiAgc2V0RHVyYXRpb24gPSAoZHVyYXRpb25NczogbnVtYmVyKSA9PiB0aGlzLnNldFN0YXRlQW5kTm90aWZ5KHtkdXJhdGlvbk1zfSk7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGEgcHJldmlldyBwbGF5YmFjayDigJQgYW5pbWF0ZXMgdGhlIHN3aXBlIHdpdGhvdXQgZW5jb2RpbmcuXG4gICAqL1xuICBvblByZXZpZXdWaWRlbyA9ICgpID0+IHtcbiAgICBjb25zdCB7YWRhcHRlciwgZHVyYXRpb25Nc30gPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgcHJldmlld2luZzogdHJ1ZSxcbiAgICAgIGN1cnJlbnRUaW1lTXM6IDAsXG4gICAgICBtZW1vOiB7dmlld1N0YXRlOiB7Li4udGhpcy5zdGF0ZS52aWV3U3RhdGUhfX1cbiAgICB9KTtcblxuICAgIGFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIuc2V0S2V5ZnJhbWVzKCdrZXBsZXInLCB7XG4gICAgICAuLi50aGlzLmdldEZpbHRlcktleWZyYW1lcygpLFxuICAgICAgLi4udGhpcy5nZXRUcmlwS2V5ZnJhbWVzKCksXG4gICAgICBjYW1lcmFLZXlmcmFtZTogdGhpcy5nZXRDYW1lcmFLZXlmcmFtZXMoKVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc3QgYW5pbWF0ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lTXMgPSBNYXRoLm1pbihlbGFwc2VkLCBkdXJhdGlvbk1zKTtcblxuICAgICAgYWRhcHRlciEuYW5pbWF0aW9uTWFuYWdlci50aW1lbGluZS5zZXRUaW1lKGN1cnJlbnRUaW1lTXMpO1xuICAgICAgYWRhcHRlciEuYW5pbWF0aW9uTWFuYWdlci5kcmF3KCk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe2N1cnJlbnRUaW1lTXN9KTtcblxuICAgICAgaWYgKGN1cnJlbnRUaW1lTXMgPj0gZHVyYXRpb25Ncykge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBwcmV2aWV3aW5nOiBmYWxzZSxcbiAgICAgICAgICBjdXJyZW50VGltZU1zOiAwLFxuICAgICAgICAgIHZpZXdTdGF0ZTogey4uLnRoaXMuc3RhdGUubWVtbyEudmlld1N0YXRlfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xuICAgIH07XG4gICAgdGhpcy5hbmltYXRpb25GcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTdGFydCBhY3R1YWwgcmVjb3JkaW5nIOKAlCBjYXB0dXJlcyBjb21wb3NpdGVkIGZyYW1lcyBpbnRvIHRoZSBlbmNvZGVyLlxuICAgKiBVc2VzIGEgdGltZXItYmFzZWQgYXBwcm9hY2g6IHVwZGF0ZXMgY3VycmVudFRpbWVNcywgd2FpdHMgZm9yIHRoZSBwcmV2aWV3XG4gICAqIHRvIGNvbXBvc2l0ZSwgdGhlbiBjYXB0dXJlcyB0aGUgY29tcG9zaXRlIGNhbnZhcy5cbiAgICovXG4gIG9uUmVuZGVyVmlkZW8gPSAoKSA9PiB7XG4gICAgY29uc3Qge2FkYXB0ZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUoKTtcbiAgICBjb25zdCBFbmNvZGVyID0gdGhpcy5nZXRFbmNvZGVyKCk7XG4gICAgY29uc3QgZm9ybWF0Q29uZmlncyA9IHRoaXMuZ2V0Rm9ybWF0Q29uZmlncygpO1xuICAgIGNvbnN0IHRpbWVjb2RlID0gdGhpcy5nZXRUaW1lY29kZSgpO1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuZ2V0Q2FudmFzU2l6ZSgpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICByZW5kZXJpbmc6IHRydWUsXG4gICAgICBzYXZpbmc6IGZhbHNlLFxuICAgICAgY3VycmVudFRpbWVNczogMCxcbiAgICAgIG1lbW86IHt2aWV3U3RhdGU6IHsuLi50aGlzLnN0YXRlLnZpZXdTdGF0ZSF9fVxuICAgIH0pO1xuXG4gICAgYWRhcHRlciEuYW5pbWF0aW9uTWFuYWdlci5zZXRLZXlmcmFtZXMoJ2tlcGxlcicsIHtcbiAgICAgIC4uLnRoaXMuZ2V0RmlsdGVyS2V5ZnJhbWVzKCksXG4gICAgICAuLi50aGlzLmdldFRyaXBLZXlmcmFtZXMoKSxcbiAgICAgIGNhbWVyYUtleWZyYW1lOiB0aGlzLmdldENhbWVyYUtleWZyYW1lcygpXG4gICAgfSk7XG5cbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IEVuY29kZXIoey4uLmZvcm1hdENvbmZpZ3MsIGZyYW1lcmF0ZTogdGltZWNvZGUuZnJhbWVyYXRlfSk7XG4gICAgdGhpcy5hY3RpdmVFbmNvZGVyID0gZW5jb2RlcjtcbiAgICBlbmNvZGVyLnN0YXJ0KCk7XG5cbiAgICBjb25zdCBmcmFtZUxlbmd0aE1zID0gTWF0aC5mbG9vcigxMDAwIC8gdGltZWNvZGUuZnJhbWVyYXRlKTtcbiAgICBsZXQgdGltZU1zID0gdGltZWNvZGUuc3RhcnQ7XG4gICAgbGV0IHJldHJ5Q291bnQgPSAwO1xuICAgIGNvbnN0IE1BWF9SRVRSSUVTID0gMTA7XG5cbiAgICBjb25zdCBjYXB0dXJlTmV4dEZyYW1lID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnN0YXRlLnJlbmRlcmluZyB8fCB0aGlzLmFjdGl2ZUVuY29kZXIgIT09IGVuY29kZXIpIHJldHVybjtcblxuICAgICAgYWRhcHRlciEuYW5pbWF0aW9uTWFuYWdlci50aW1lbGluZS5zZXRUaW1lKHRpbWVNcyk7XG4gICAgICBhZGFwdGVyIS5hbmltYXRpb25NYW5hZ2VyLmRyYXcoKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2N1cnJlbnRUaW1lTXM6IHRpbWVNc30pO1xuXG4gICAgICAvLyBBbGxvdyAzIGZyYW1lcyBmb3Igc3RhdGUgdXBkYXRlIOKGkiBwcmV2aWV3IHJlLXJlbmRlciDihpIgY29tcG9zaXRlXG4gICAgICBjb25zdCB3YWl0QW5kQ2FwdHVyZSA9ICgpID0+IHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5hY3RpdmVFbmNvZGVyICE9PSBlbmNvZGVyKSByZXR1cm47XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUVuY29kZXIgIT09IGVuY29kZXIpIHJldHVybjtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUVuY29kZXIgIT09IGVuY29kZXIpIHJldHVybjtcbiAgICAgICAgICAgICAgY29uc3QgcHJldmlldyA9IHRoaXMucHJldmlld1JlZi5jdXJyZW50O1xuICAgICAgICAgICAgICBpZiAoIXByZXZpZXcpIHJldHVybjtcblxuICAgICAgICAgICAgICAvLyBVc2UgdGhlIGNvbXBvc2l0ZSBjYW52YXMgdGhhdCB0aGUgcHJldmlldyBhbHJlYWR5IHVwZGF0ZXNcbiAgICAgICAgICAgICAgY29uc3QgY29tcG9zaXRlQ2FudmFzID0gcHJldmlldy5nZXRDb21wb3NpdGVDYW52YXMoKTtcbiAgICAgICAgICAgICAgaWYgKCFjb21wb3NpdGVDYW52YXMpIHJldHVybjtcblxuICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY2FudmFzIGhhcyBhbnkgY29udGVudCAobm90IGJsYW5rKVxuICAgICAgICAgICAgICBjb25zdCBjdHggPSBjb21wb3NpdGVDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICAgICAgaWYgKCFjdHgpIHJldHVybjtcblxuICAgICAgICAgICAgICBsZXQgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGl4ZWwgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpLmRhdGE7XG4gICAgICAgICAgICAgICAgaGFzQ29udGVudCA9IHBpeGVsWzBdICE9PSAwIHx8IHBpeGVsWzFdICE9PSAwIHx8IHBpeGVsWzJdICE9PSAwIHx8IHBpeGVsWzNdICE9PSAwO1xuICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBDYW52YXMgbWF5IGJlIHRhaW50ZWQgYnkgY3Jvc3Mtb3JpZ2luIHJlc291cmNlczsgYXNzdW1lIGNvbnRlbnQgZXhpc3RzXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWhhc0NvbnRlbnQgJiYgcmV0cnlDb3VudCA8IE1BWF9SRVRSSUVTKSB7XG4gICAgICAgICAgICAgICAgcmV0cnlDb3VudCsrO1xuICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgY29tcG9zaXRlIG1hbnVhbGx5IGFuZCByZXRyeVxuICAgICAgICAgICAgICAgIHByZXZpZXcuX2NvbXBvc2l0ZUZyYW1lKCk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHdhaXRBbmRDYXB0dXJlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0cnlDb3VudCA9IDA7XG5cbiAgICAgICAgICAgICAgLy8gQ2FwdHVyZSB0aGUgY29tcG9zaXRlIGNhbnZhcyBhdCB0YXJnZXQgcmVzb2x1dGlvblxuICAgICAgICAgICAgICBjb25zdCBvZmZzY3JlZW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgICAgICAgb2Zmc2NyZWVuLndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICAgIG9mZnNjcmVlbi5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgICAgICAgIGNvbnN0IG9mZkN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICAgICAgICBpZiAob2ZmQ3R4KSB7XG4gICAgICAgICAgICAgICAgb2ZmQ3R4LmRyYXdJbWFnZShjb21wb3NpdGVDYW52YXMsIDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZW5jb2Rlci5hZGQob2Zmc2NyZWVuKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVFbmNvZGVyICE9PSBlbmNvZGVyKSByZXR1cm47XG4gICAgICAgICAgICAgICAgdGltZU1zICs9IGZyYW1lTGVuZ3RoTXM7XG4gICAgICAgICAgICAgICAgaWYgKHRpbWVNcyA+IHRpbWVjb2RlLmVuZCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2F2aW5nOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgICBlbmNvZGVyLnNhdmUoKS50aGVuKChibG9iOiBCbG9iIHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVFbmNvZGVyICE9PSBlbmNvZGVyKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9iKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoYmxvYiwgZmlsZW5hbWUgKyBlbmNvZGVyLmV4dGVuc2lvbiwgZW5jb2Rlci5taW1lVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgcmVuZGVyaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBzYXZpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUaW1lTXM6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgdmlld1N0YXRlOiB7Li4udGhpcy5zdGF0ZS5tZW1vIS52aWV3U3RhdGV9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNhcHR1cmVOZXh0RnJhbWUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgd2FpdEFuZENhcHR1cmUoKTtcbiAgICB9O1xuXG4gICAgLy8gV2FpdCBmb3IgbWFwcyB0byBiZSByZWFkeSBiZWZvcmUgc3RhcnRpbmcgY2FwdHVyZVxuICAgIHNldFRpbWVvdXQoKCkgPT4gY2FwdHVyZU5leHRGcmFtZSgpLCA1MDApO1xuICB9O1xuXG4gIG9uU3RvcCA9ICh7YWJvcnQgPSBmYWxzZX06IHthYm9ydD86IGJvb2xlYW59ID0ge30pID0+IHtcbiAgICBpZiAodGhpcy5hbmltYXRpb25GcmFtZUlkKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lSWQpO1xuICAgICAgdGhpcy5hbmltYXRpb25GcmFtZUlkID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVFbmNvZGVyID0gbnVsbDtcbiAgICBpZiAoIWFib3J0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgcmVuZGVyaW5nOiBmYWxzZSxcbiAgICAgICAgcHJldmlld2luZzogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRUaW1lTXM6IDAsXG4gICAgICAgIHZpZXdTdGF0ZTogdGhpcy5zdGF0ZS5tZW1vPy52aWV3U3RhdGUgfHwgdGhpcy5zdGF0ZS52aWV3U3RhdGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZXhwb3J0VmlkZW9XaWR0aCxcbiAgICAgIG1hcERhdGEsXG4gICAgICBkZWNrUHJvcHMsXG4gICAgICBtYXBQcm9wcyxcbiAgICAgIGRpc2FibGVCYXNlTWFwLFxuICAgICAgbWFwYm94TGF5ZXJCZWZvcmVJZCxcbiAgICAgIHN3aXBlU3RhcnRQY3QsXG4gICAgICBzd2lwZUVuZFBjdCxcbiAgICAgIHN3aXBlRWFzaW5nLFxuICAgICAgb25TZXR0aW5nc0NoYW5nZVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qge1xuICAgICAgYWRhcHRlcixcbiAgICAgIGR1cmF0aW9uTXMsXG4gICAgICBtZWRpYVR5cGUsXG4gICAgICBjYW1lcmFQcmVzZXQsXG4gICAgICBmaWxlTmFtZSxcbiAgICAgIHJlc29sdXRpb24sXG4gICAgICB2aWV3U3RhdGUsXG4gICAgICByZW5kZXJpbmcsXG4gICAgICBwcmV2aWV3aW5nLFxuICAgICAgc2F2aW5nLFxuICAgICAgY3VycmVudFRpbWVNc1xuICAgIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgdGltZWNvZGUgPSB0aGlzLmdldFRpbWVjb2RlKCk7XG4gICAgbGV0IGNhbnZhc1NpemUgPSB0aGlzLmdldENhbnZhc1NpemUoKTtcbiAgICBpZiAocHJldmlld2luZykge1xuICAgICAgY2FudmFzU2l6ZSA9IHRoaXMuX2dldENvbnRhaW5lcigpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQWN0aXZlID0gcmVuZGVyaW5nIHx8IHByZXZpZXdpbmc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJleHBvcnQtdmlkZW8tcGFuZWxcIj5cbiAgICAgICAgPFBhbmVsQm9keSAkZXhwb3J0VmlkZW9XaWR0aD17ZXhwb3J0VmlkZW9XaWR0aH0+XG4gICAgICAgICAgPFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3XG4gICAgICAgICAgICByZWY9e3RoaXMucHJldmlld1JlZn1cbiAgICAgICAgICAgIG1hcERhdGE9e21hcERhdGF9XG4gICAgICAgICAgICBhZGFwdGVyPXthZGFwdGVyIX1cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZT17dGhpcy5zZXRWaWV3U3RhdGV9XG4gICAgICAgICAgICBleHBvcnRWaWRlb1dpZHRoPXtleHBvcnRWaWRlb1dpZHRofVxuICAgICAgICAgICAgcmVzb2x1dGlvbj17W2NhbnZhc1NpemUud2lkdGgsIGNhbnZhc1NpemUuaGVpZ2h0XX1cbiAgICAgICAgICAgIHZpZXdTdGF0ZT17dmlld1N0YXRlIX1cbiAgICAgICAgICAgIHJlbmRlcmluZz17cmVuZGVyaW5nfVxuICAgICAgICAgICAgc2F2aW5nPXtzYXZpbmd9XG4gICAgICAgICAgICBkdXJhdGlvbk1zPXtkdXJhdGlvbk1zfVxuICAgICAgICAgICAgZGVja1Byb3BzPXtkZWNrUHJvcHN9XG4gICAgICAgICAgICBtYXBQcm9wcz17bWFwUHJvcHN9XG4gICAgICAgICAgICBkaXNhYmxlQmFzZU1hcD17ZGlzYWJsZUJhc2VNYXB9XG4gICAgICAgICAgICBtYXBib3hMYXllckJlZm9yZUlkPXttYXBib3hMYXllckJlZm9yZUlkfVxuICAgICAgICAgICAgc3dpcGVTdGFydFBjdD17c3dpcGVTdGFydFBjdH1cbiAgICAgICAgICAgIHN3aXBlRW5kUGN0PXtzd2lwZUVuZFBjdH1cbiAgICAgICAgICAgIHN3aXBlRWFzaW5nPXtzd2lwZUVhc2luZ31cbiAgICAgICAgICAgIGN1cnJlbnRUaW1lTXM9e2N1cnJlbnRUaW1lTXN9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8U3dpcGVFeHBvcnRTZXR0aW5nc1xuICAgICAgICAgICAgZHVyYXRpb25Ncz17ZHVyYXRpb25Nc31cbiAgICAgICAgICAgIG1lZGlhVHlwZT17bWVkaWFUeXBlfVxuICAgICAgICAgICAgcmVzb2x1dGlvbj17cmVzb2x1dGlvbn1cbiAgICAgICAgICAgIGZpbGVOYW1lPXtmaWxlTmFtZX1cbiAgICAgICAgICAgIGNhbWVyYVByZXNldD17Y2FtZXJhUHJlc2V0fVxuICAgICAgICAgICAgZnJhbWVSYXRlPXt0aW1lY29kZS5mcmFtZXJhdGV9XG4gICAgICAgICAgICBvbkNoYW5nZUR1cmF0aW9uPXt0aGlzLnNldER1cmF0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2VNZWRpYVR5cGU9e3RoaXMuc2V0TWVkaWFUeXBlfVxuICAgICAgICAgICAgb25DaGFuZ2VSZXNvbHV0aW9uPXt0aGlzLnNldFJlc29sdXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZUZpbGVOYW1lPXt0aGlzLnNldEZpbGVOYW1lfVxuICAgICAgICAgICAgb25DaGFuZ2VDYW1lcmFQcmVzZXQ9e3RoaXMuc2V0Q2FtZXJhUHJlc2V0fVxuICAgICAgICAgICAgc3dpcGVTdGFydFBjdD17c3dpcGVTdGFydFBjdH1cbiAgICAgICAgICAgIHN3aXBlRW5kUGN0PXtzd2lwZUVuZFBjdH1cbiAgICAgICAgICAgIHN3aXBlRWFzaW5nPXtzd2lwZUVhc2luZ31cbiAgICAgICAgICAgIGRpc2FibGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlU3RhcnRQY3Q9eyh2YWx1ZTogbnVtYmVyKSA9PlxuICAgICAgICAgICAgICBvblNldHRpbmdzQ2hhbmdlKHtzd2lwZVN0YXJ0UGN0OiB2YWx1ZX0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNoYW5nZUVuZFBjdD17KHZhbHVlOiBudW1iZXIpID0+XG4gICAgICAgICAgICAgIG9uU2V0dGluZ3NDaGFuZ2Uoe3N3aXBlRW5kUGN0OiB2YWx1ZX0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNoYW5nZUVhc2luZz17KHZhbHVlOiBTd2lwZUVhc2luZykgPT5cbiAgICAgICAgICAgICAgb25TZXR0aW5nc0NoYW5nZSh7c3dpcGVFYXNpbmc6IHZhbHVlfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxUaW1lbGluZUNvbnRyb2xzIGNsYXNzTmFtZT1cInRpbWVsaW5lLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgICAgIDxTdG9wSWNvbiBzdHlsZT17dGltZWxpbmVQbGF5QnV0dG9uU3R5bGV9IG9uQ2xpY2s9eygpID0+IHRoaXMub25TdG9wKHt9KX0gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxQbGF5SWNvbiBzdHlsZT17dGltZWxpbmVQbGF5QnV0dG9uU3R5bGV9IG9uQ2xpY2s9e3RoaXMub25QcmV2aWV3VmlkZW99IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVGltZWxpbmVDb250cm9scz5cbiAgICAgICAgICB7c2F2aW5nICYmIDxTdGF0dXNUZXh0PlNhdmluZy4uLjwvU3RhdHVzVGV4dD59XG4gICAgICAgICAge3JlbmRlcmluZyAmJiAhc2F2aW5nICYmIChcbiAgICAgICAgICAgIDxTdGF0dXNUZXh0PlJlbmRlcmluZy4uLiB7TWF0aC5yb3VuZCgoY3VycmVudFRpbWVNcyAvIGR1cmF0aW9uTXMpICogMTAwKX0lPC9TdGF0dXNUZXh0PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPEJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzdHlsZT17e21hcmdpblRvcDogJzE2cHgnLCB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICczMnB4J319XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImV4cG9ydC12aWRlby1idXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uUmVuZGVyVmlkZW99XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmVuZGVyXG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0J1dHRvbkdyb3VwPlxuICAgICAgICA8L1BhbmVsQm9keT5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQU4sT0FBQTtBQVdBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLFlBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLHdCQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxvQkFBQSxHQUFBUCxzQkFBQSxDQUFBSCxPQUFBO0FBQTBELElBQUFXLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JB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Q0QrRixjQUFjLEVBQUUsU0FBaEJBLGNBQWNBLENBQUcvRixLQUFhO1VBQUEsT0FDNUJpRSxnQkFBZ0IsQ0FBQztZQUFDVSxXQUFXLEVBQUUzRTtVQUFLLENBQUMsQ0FBQztRQUFBLENBQ3ZDO1FBQ0RnRyxjQUFjLEVBQUUsU0FBaEJBLGNBQWNBLENBQUdoRyxLQUFrQjtVQUFBLE9BQ2pDaUUsZ0JBQWdCLENBQUM7WUFBQ1csV0FBVyxFQUFFNUU7VUFBSyxDQUFDLENBQUM7UUFBQTtNQUN2QyxDQUNGLENBQUMsZUFDRnhNLE1BQUEsWUFBQTJGLGFBQUEsQ0FBQ2QsZ0JBQWdCO1FBQUNlLFNBQVMsRUFBQztNQUFtQixHQUM1QzJMLFFBQVEsZ0JBQ1B2UixNQUFBLFlBQUEyRixhQUFBLENBQUNJLFFBQVE7UUFBQ04sS0FBSyxFQUFFWCx1QkFBd0I7UUFBQ1ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRa0wsTUFBSSxDQUFDeEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQUMsZ0JBRTVFcE4sTUFBQSxZQUFBMkYsYUFBQSxDQUFDSixRQUFRO1FBQUNFLEtBQUssRUFBRVgsdUJBQXdCO1FBQUNZLE9BQU8sRUFBRSxJQUFJLENBQUMrTTtNQUFlLENBQUUsQ0FFM0QsQ0FBQyxFQUNsQnZKLE1BQU0saUJBQUlsSixNQUFBLFlBQUEyRixhQUFBLENBQUNQLFVBQVUsUUFBQyxXQUFxQixDQUFDLEVBQzVDNkQsU0FBUyxJQUFJLENBQUNDLE1BQU0saUJBQ25CbEosTUFBQSxZQUFBMkYsYUFBQSxDQUFDUCxVQUFVLFFBQUMsZUFBYSxFQUFDNEMsSUFBSSxDQUFDMEssS0FBSyxDQUFFdkwsYUFBYSxHQUFHTCxVQUFVLEdBQUksR0FBRyxDQUFDLEVBQUMsR0FBYSxDQUN2RixlQUNEOUcsTUFBQSxZQUFBMkYsYUFBQSxDQUFDUixXQUFXLHFCQUNWbkYsTUFBQSxZQUFBMkYsYUFBQSxDQUFDcEYsT0FBQSxDQUFBb1MsTUFBTTtRQUNMbE4sS0FBSyxFQUFFO1VBQUNtTixTQUFTLEVBQUUsTUFBTTtVQUFFM04sS0FBSyxFQUFFLE1BQU07VUFBRUQsTUFBTSxFQUFFO1FBQU0sQ0FBRTtRQUMxRFksU0FBUyxFQUFDLHFCQUFxQjtRQUMvQkYsT0FBTyxFQUFFLElBQUksQ0FBQ21OLGFBQWM7UUFDNUJSLFFBQVEsRUFBRWQ7TUFBUyxHQUNwQixRQUVPLENBQ0csQ0FDSixDQUNSLENBQUM7SUFFVjtFQUFDO0FBQUEsRUEzY2lEdUIsZ0JBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
653
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcG9wbW90aW9uIiwiX2Rvd25sb2FkanMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3N0eWxlZENvbXBvbmVudHMiLCJfY29tbW9uIiwiX2NvcmUiLCJfY29uc3RhbnRzIiwiX2h1YmJsZVV0aWxzIiwiX3N3aXBlRXhwb3J0VmlkZW9QcmV2aWV3IiwiX3N3aXBlRXhwb3J0U2V0dGluZ3MiLCJfZGVja2dsTGF5ZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiRU5DT0RFUlMiLCJnaWYiLCJHaWZFbmNvZGVyIiwid2VibSIsIldlYk1FbmNvZGVyIiwianBlZyIsIkpQRUdTZXF1ZW5jZUVuY29kZXIiLCJwbmciLCJQTkdTZXF1ZW5jZUVuY29kZXIiLCJQYW5lbEJvZHkiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwiJGV4cG9ydFZpZGVvV2lkdGgiLCJUaW1lbGluZUNvbnRyb2xzIiwidGltZWxpbmVQbGF5QnV0dG9uU3R5bGUiLCJjdXJzb3IiLCJoZWlnaHQiLCJ3aWR0aCIsImZpbGwiLCJCdXR0b25Hcm91cCIsIlN0YXR1c1RleHQiLCJ0aGVtZSIsInN1YnRleHRDb2xvckxUIiwiUGxheUljb24iLCJfcmVmIiwic3R5bGUiLCJvbkNsaWNrIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInZpZXdCb3giLCJkIiwiU3RvcEljb24iLCJfcmVmMiIsIlN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lciIsImV4cG9ydHMiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiY3JlYXRlUmVmIiwidmlld1N0YXRlIiwic2V0U3RhdGUiLCJtZWRpYVR5cGUiLCJzZXRTdGF0ZUFuZE5vdGlmeSIsImNhbWVyYVByZXNldCIsImZpbGVOYW1lIiwicmVzb2x1dGlvbiIsImR1cmF0aW9uTXMiLCJfdGhpcyRzdGF0ZSIsInN0YXRlIiwiYWRhcHRlciIsInByZXZpZXdpbmciLCJjdXJyZW50VGltZU1zIiwibWVtbyIsImFuaW1hdGlvbk1hbmFnZXIiLCJzZXRLZXlmcmFtZXMiLCJnZXRGaWx0ZXJLZXlmcmFtZXMiLCJnZXRUcmlwS2V5ZnJhbWVzIiwiY2FtZXJhS2V5ZnJhbWUiLCJnZXRDYW1lcmFLZXlmcmFtZXMiLCJzdGFydFRpbWUiLCJwZXJmb3JtYW5jZSIsIm5vdyIsImFuaW1hdGUiLCJlbGFwc2VkIiwiTWF0aCIsIm1pbiIsInRpbWVsaW5lIiwic2V0VGltZSIsImRyYXciLCJhbmltYXRpb25GcmFtZUlkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiZmlsZW5hbWUiLCJnZXRGaWxlTmFtZSIsIkVuY29kZXIiLCJnZXRFbmNvZGVyIiwiZm9ybWF0Q29uZmlncyIsImdldEZvcm1hdENvbmZpZ3MiLCJ0aW1lY29kZSIsImdldFRpbWVjb2RlIiwiX3RoaXMkZ2V0Q2FudmFzU2l6ZSIsImdldENhbnZhc1NpemUiLCJyZW5kZXJpbmciLCJzYXZpbmciLCJlbmNvZGVyIiwiZnJhbWVyYXRlIiwiYWN0aXZlRW5jb2RlciIsInN0YXJ0IiwiZnJhbWVMZW5ndGhNcyIsImZsb29yIiwidGltZU1zIiwicmV0cnlDb3VudCIsIk1BWF9SRVRSSUVTIiwiY2FwdHVyZU5leHRGcmFtZSIsIndhaXRBbmRDYXB0dXJlIiwicHJldmlldyIsInByZXZpZXdSZWYiLCJjdXJyZW50IiwiY29tcG9zaXRlQ2FudmFzIiwiZ2V0Q29tcG9zaXRlQ2FudmFzIiwiY3R4IiwiZ2V0Q29udGV4dCIsImhhc0NvbnRlbnQiLCJwaXhlbCIsImdldEltYWdlRGF0YSIsImRhdGEiLCJfdW51c2VkIiwiX2NvbXBvc2l0ZUZyYW1lIiwib2Zmc2NyZWVuIiwiZG9jdW1lbnQiLCJvZmZDdHgiLCJkcmF3SW1hZ2UiLCJhZGQiLCJ0aGVuIiwiZW5kIiwic2F2ZSIsImJsb2IiLCJkb3dubG9hZCIsImV4dGVuc2lvbiIsIm1pbWVUeXBlIiwic2V0VGltZW91dCIsIl9yZWYzIiwidW5kZWZpbmVkIiwiX3JlZjMkYWJvcnQiLCJhYm9ydCIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiX3RoaXMkc3RhdGUkbWVtbyIsImluaXRpYWxTdGF0ZSIsIm1hcFN0YXRlIiwibWFwRGF0YSIsImdsQ29udGV4dCIsInNjYWxlVG9WaWRlb0V4cG9ydCIsIl9nZXRDb250YWluZXIiLCJEZWNrQWRhcHRlciIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsIl90aGlzJHByb3BzIiwib25UcmlwRnJhbWVVcGRhdGUiLCJvbkZpbHRlckZyYW1lVXBkYXRlIiwiZ2V0VGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzIiwiYW5pbWF0aW9uIiwiS2VwbGVyQW5pbWF0aW9uIiwib25DYW1lcmFGcmFtZVVwZGF0ZSIsInNldFZpZXdTdGF0ZSIsImF0dGFjaEFuaW1hdGlvbiIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwib25TdG9wIiwiZGVmYXVsdEZpbGVOYW1lIiwiX2dldFJlc29sdXRpb25TZXR0aW5nIiwiZ2V0UmVzb2x1dGlvblNldHRpbmciLCJfdGhpcyRnZXRDYW52YXNTaXplMiIsImV4cG9ydFZpZGVvV2lkdGgiLCJhc3BlY3RSYXRpbyIsIl90aGlzJGdldENhbnZhc1NpemUzIiwicXVhbGl0eSIsInNhbXBsZUludGVydmFsIiwiX3RoaXMkc3RhdGUyIiwiX3JlZjQiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsInpvb20iLCJwaXRjaCIsImJlYXJpbmciLCJfdGhpcyRnZXRDYW52YXNTaXplNCIsInRpbWluZ3MiLCJrZXlmcmFtZXMiLCJwYXJzZVNldENhbWVyYVR5cGUiLCJlYXNpbmdzIiwiZWFzZUluT3V0IiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMyIiwiZmlsdGVycyIsInZpc1N0YXRlIiwiYW5pbWF0YWJsZUZpbHRlcnMiLCJmaWx0ZXJLZXlmcmFtZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ0eXBlIiwidmlldyIsIkZJTFRFUl9WSUVXX1RZUEVTIiwiZW5sYXJnZWQiLCJtYXAiLCJpZCIsIl90aGlzJHByb3BzJG1hcERhdGEkdiIsImxheWVycyIsImFuaW1hdGlvbkNvbmZpZyIsImFuaW1hdGFibGVMYXllciIsImwiLCJjb25maWciLCJlbmFibGVkIiwiaXNWaXNpYmxlIiwicmVhZHlUb0FuaW1hdGlvbiIsImRvbWFpbiIsIk51bWJlciIsImlzRmluaXRlIiwiY3VycmVudFRpbWUiLCJ0cmlwS2V5ZnJhbWUiLCJnZXRCYWNrZ3JvdW5kQ29sb3IiLCJfdGhpcyRwcm9wcyRtYXBEYXRhIiwiX3RoaXMkcHJvcHMkbWFwRGF0YTIiLCJnbG9iZSIsImJnIiwiYmFja2dyb3VuZENvbG9yIiwiX2dldEdsb2JlQ2xlYXJDb2xvciIsImdldEdsb2JlQ2xlYXJDb2xvciIsIl9nZXRHbG9iZUNsZWFyQ29sb3IyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZyIsImIiLCJjb25jYXQiLCJ1cGRhdGUiLCJvblNldHRpbmdzQ2hhbmdlIiwiX3RoaXMkc3RhdGUzIiwicmVuZGVyIiwiX3RoaXMzIiwiX3RoaXMkcHJvcHMzIiwiZGVja1Byb3BzIiwibWFwUHJvcHMiLCJkaXNhYmxlQmFzZU1hcCIsIm1hcGJveExheWVyQmVmb3JlSWQiLCJzd2lwZVN0YXJ0UGN0Iiwic3dpcGVFbmRQY3QiLCJzd2lwZUVhc2luZyIsIl90aGlzJHN0YXRlNCIsImNhbnZhc1NpemUiLCJpc0FjdGl2ZSIsIlN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3IiwicmVmIiwiZnJhbWVSYXRlIiwib25DaGFuZ2VEdXJhdGlvbiIsInNldER1cmF0aW9uIiwib25DaGFuZ2VNZWRpYVR5cGUiLCJzZXRNZWRpYVR5cGUiLCJvbkNoYW5nZVJlc29sdXRpb24iLCJzZXRSZXNvbHV0aW9uIiwib25DaGFuZ2VGaWxlTmFtZSIsInNldEZpbGVOYW1lIiwib25DaGFuZ2VDYW1lcmFQcmVzZXQiLCJzZXRDYW1lcmFQcmVzZXQiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlU3RhcnRQY3QiLCJvbkNoYW5nZUVuZFBjdCIsIm9uQ2hhbmdlRWFzaW5nIiwib25QcmV2aWV3VmlkZW8iLCJyb3VuZCIsIkJ1dHRvbiIsIm1hcmdpblRvcCIsIm9uUmVuZGVyVmlkZW8iLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWxzL3N3aXBlLWV4cG9ydC12aWRlby1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Vhc2VJbk91dH0gZnJvbSAncG9wbW90aW9uJztcbmltcG9ydCBkb3dubG9hZCBmcm9tICdkb3dubG9hZGpzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtCdXR0b259IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQge1xuICBEZWNrQWRhcHRlcixcbiAgS2VwbGVyQW5pbWF0aW9uLFxuICBXZWJNRW5jb2RlcixcbiAgSlBFR1NlcXVlbmNlRW5jb2RlcixcbiAgUE5HU2VxdWVuY2VFbmNvZGVyLFxuICBHaWZFbmNvZGVyLFxuICBGb3JtYXRDb25maWdzLFxuICBUaW1lY29kZVxufSBmcm9tICdAaHViYmxlLmdsL2NvcmUnO1xuaW1wb3J0IHR5cGUge0RlY2tQcm9wcywgTWFwVmlld1N0YXRlfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7RklMVEVSX1ZJRVdfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtwYXJzZVNldENhbWVyYVR5cGUsIHNjYWxlVG9WaWRlb0V4cG9ydCwgZ2V0UmVzb2x1dGlvblNldHRpbmd9IGZyb20gJy4vaHViYmxlLXV0aWxzJztcbmltcG9ydCB7U3dpcGVFeHBvcnRWaWRlb1ByZXZpZXd9IGZyb20gJy4vc3dpcGUtZXhwb3J0LXZpZGVvLXByZXZpZXcnO1xuaW1wb3J0IFN3aXBlRXhwb3J0U2V0dGluZ3MgZnJvbSAnLi9zd2lwZS1leHBvcnQtc2V0dGluZ3MnO1xuaW1wb3J0IHtTd2lwZUVhc2luZ30gZnJvbSAnLi9zd2lwZS1jb21wb3NpdGUtdXRpbHMnO1xuaW1wb3J0IHtnZXRHbG9iZUNsZWFyQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvZGVja2dsLWxheWVycyc7XG5cbmNvbnN0IEVOQ09ERVJTID0ge1xuICBnaWY6IEdpZkVuY29kZXIsXG4gIHdlYm06IFdlYk1FbmNvZGVyLFxuICBqcGVnOiBKUEVHU2VxdWVuY2VFbmNvZGVyLFxuICBwbmc6IFBOR1NlcXVlbmNlRW5jb2RlclxufTtcblxuZXhwb3J0IHR5cGUgU3dpcGVFeHBvcnRWaWRlb1NldHRpbmdzID0ge1xuICBtZWRpYVR5cGU/OiBzdHJpbmc7XG4gIGNhbWVyYVByZXNldD86IHN0cmluZztcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG4gIHJlc29sdXRpb24/OiBzdHJpbmc7XG4gIGR1cmF0aW9uTXM/OiBudW1iZXI7XG4gIHN3aXBlU3RhcnRQY3Q/OiBudW1iZXI7XG4gIHN3aXBlRW5kUGN0PzogbnVtYmVyO1xuICBzd2lwZUVhc2luZz86IFN3aXBlRWFzaW5nO1xufTtcblxudHlwZSBTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXJQcm9wcyA9IHtcbiAgaW5pdGlhbFN0YXRlPzogUGFydGlhbDxTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXJTdGF0ZT47XG4gIGdsQ29udGV4dD86IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG4gIGV4cG9ydFZpZGVvV2lkdGg6IG51bWJlcjtcbiAgaGFuZGxlQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIG1hcERhdGE6IGFueTtcbiAgaGVhZGVyOiBib29sZWFuO1xuICBkZWNrUHJvcHM/OiBEZWNrUHJvcHM7XG4gIG1hcFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBkaXNhYmxlQmFzZU1hcDogYm9vbGVhbjtcbiAgbWFwYm94TGF5ZXJCZWZvcmVJZD86IHN0cmluZztcbiAgZGVmYXVsdEZpbGVOYW1lOiBzdHJpbmc7XG4gIGFuaW1hdGFibGVGaWx0ZXJzOiBhbnk7XG4gIG9uVHJpcEZyYW1lVXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25GaWx0ZXJGcmFtZVVwZGF0ZTogKGZpbHRlcklkeDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gIGdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lczogKGFyZ3M6IGFueSkgPT4gYW55O1xuICBvblNldHRpbmdzQ2hhbmdlOiAoc2V0dGluZ3M6IFN3aXBlRXhwb3J0VmlkZW9TZXR0aW5ncykgPT4gdm9pZDtcbiAgc3dpcGVTdGFydFBjdDogbnVtYmVyO1xuICBzd2lwZUVuZFBjdDogbnVtYmVyO1xuICBzd2lwZUVhc2luZzogU3dpcGVFYXNpbmc7XG59O1xuXG50eXBlIFN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lclN0YXRlID0ge1xuICBhZGFwdGVyPzogRGVja0FkYXB0ZXI7XG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgbWVkaWFUeXBlOiBzdHJpbmc7XG4gIGNhbWVyYVByZXNldDogc3RyaW5nO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICByZXNvbHV0aW9uOiBzdHJpbmc7XG4gIHZpZXdTdGF0ZT86IE1hcFZpZXdTdGF0ZTtcbiAgcmVuZGVyaW5nOiBib29sZWFuO1xuICBwcmV2aWV3aW5nOiBib29sZWFuO1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIGN1cnJlbnRUaW1lTXM6IG51bWJlcjtcbiAgbWVtbz86IHt2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZX07XG59O1xuXG5jb25zdCBQYW5lbEJvZHkgPSBzdHlsZWQuZGl2PHskZXhwb3J0VmlkZW9XaWR0aDogbnVtYmVyfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogJHtwcm9wcyA9PiBwcm9wcy4kZXhwb3J0VmlkZW9XaWR0aH1weCAyODBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICBncmlkLWNvbHVtbi1nYXA6IDI0cHg7XG5gO1xuXG5jb25zdCBUaW1lbGluZUNvbnRyb2xzID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG5gO1xuXG5jb25zdCB0aW1lbGluZVBsYXlCdXR0b25TdHlsZSA9IHtcbiAgY3Vyc29yOiAncG9pbnRlcicsXG4gIGhlaWdodDogJzMycHgnLFxuICB3aWR0aDogJzMycHgnLFxuICBmaWxsOiAnI0ZGRidcbn07XG5cbmNvbnN0IEJ1dHRvbkdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFN0YXR1c1RleHQgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvckxUIHx8ICcjNkE3NDg1J307XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogNHB4O1xuYDtcblxuY29uc3QgUGxheUljb246IFJlYWN0LkZDPHtzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7IG9uQ2xpY2s/OiAoKSA9PiB2b2lkfT4gPSAoe3N0eWxlLCBvbkNsaWNrfSkgPT4gKFxuICA8c3ZnXG4gICAgY2xhc3NOYW1lPVwiZGF0YS1leC1pY29ucy1wbGF5XCJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICBzdHlsZT17c3R5bGV9XG4gICAgb25DbGljaz17b25DbGlja31cbiAgPlxuICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiAvPlxuICAgIDxwYXRoIGQ9XCJNMTkuMzc2IDEyLjQxNkw4Ljc3NyAxOS40ODJBLjUuNSAwIDAgMSA4IDE5LjA2NlY0LjkzNGEuNS41IDAgMCAxIC43NzctLjQxNmwxMC41OTkgNy4wNjZhLjUuNSAwIDAgMSAwIC44MzJ6XCIgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBTdG9wSWNvbjogUmVhY3QuRkM8e3N0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllczsgb25DbGljaz86ICgpID0+IHZvaWR9PiA9ICh7c3R5bGUsIG9uQ2xpY2t9KSA9PiAoXG4gIDxzdmdcbiAgICBjbGFzc05hbWU9XCJkYXRhLWV4LWljb25zLXN0b3BcIlxuICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgIHN0eWxlPXtzdHlsZX1cbiAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICA+XG4gICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwelwiIC8+XG4gICAgPHBhdGggZD1cIk02IDVoMTJhMSAxIDAgMCAxIDEgMXYxMmExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY2YTEgMSAwIDAgMSAxLTF6XCIgLz5cbiAgPC9zdmc+XG4pO1xuXG4vKipcbiAqIE9yY2hlc3RyYXRlcyBzd2lwZSB2aWRlbyBleHBvcnQgcmVjb3JkaW5nLlxuICogTWFuYWdlcyBhIERlY2tBZGFwdGVyIGJ1dCBvdmVycmlkZXMgdGhlIGNhcHR1cmUgcGlwZWxpbmUgdG9cbiAqIGNvbXBvc2l0ZSBsZWZ0L3JpZ2h0IGNhbnZhc2VzIHdpdGggYW4gYW5pbWF0ZWQgc3dpcGUgZGl2aWRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudDxcbiAgU3dpcGVFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyUHJvcHMsXG4gIFN3aXBlRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lclN0YXRlXG4+IHtcbiAgcHJldmlld1JlZiA9IGNyZWF0ZVJlZjxTd2lwZUV4cG9ydFZpZGVvUHJldmlldz4oKTtcbiAgYW5pbWF0aW9uRnJhbWVJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGFjdGl2ZUVuY29kZXI6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTd2lwZUV4cG9ydFZpZGVvUGFuZWxDb250YWluZXJQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgIG1hcERhdGE6IHttYXBTdGF0ZX0sXG4gICAgICBnbENvbnRleHRcbiAgICB9ID0gcHJvcHM7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbWVkaWFUeXBlOiAnd2VibScsXG4gICAgICBjYW1lcmFQcmVzZXQ6ICdOb25lJyxcbiAgICAgIGZpbGVOYW1lOiAnJyxcbiAgICAgIHJlc29sdXRpb246ICcxMjgweDcyMCcsXG4gICAgICBkdXJhdGlvbk1zOiAxMDAwLFxuICAgICAgcmVuZGVyaW5nOiBmYWxzZSxcbiAgICAgIHByZXZpZXdpbmc6IGZhbHNlLFxuICAgICAgc2F2aW5nOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRUaW1lTXM6IDAsXG4gICAgICAuLi4oaW5pdGlhbFN0YXRlIHx8IHt9KVxuICAgIH07XG5cbiAgICBjb25zdCB2aWV3U3RhdGUgPSBzY2FsZVRvVmlkZW9FeHBvcnQobWFwU3RhdGUsIHRoaXMuX2dldENvbnRhaW5lcigpKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgIHZpZXdTdGF0ZSxcbiAgICAgIG1lbW86IHt2aWV3U3RhdGV9LFxuICAgICAgYWRhcHRlcjogbmV3IERlY2tBZGFwdGVyKHtnbENvbnRleHR9KVxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7b25UcmlwRnJhbWVVcGRhdGUsIG9uRmlsdGVyRnJhbWVVcGRhdGUsIGdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lc30gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IG5ldyBLZXBsZXJBbmltYXRpb24oe1xuICAgICAgLi4udGhpcy5nZXRGaWx0ZXJLZXlmcmFtZXMoKSxcbiAgICAgIC4uLnRoaXMuZ2V0VHJpcEtleWZyYW1lcygpLFxuICAgICAgY2FtZXJhS2V5ZnJhbWU6IHRoaXMuZ2V0Q2FtZXJhS2V5ZnJhbWVzKCksXG4gICAgICBvbkNhbWVyYUZyYW1lVXBkYXRlOiB0aGlzLnNldFZpZXdTdGF0ZSBhcyBhbnksXG4gICAgICBvblRyaXBGcmFtZVVwZGF0ZSxcbiAgICAgIG9uRmlsdGVyRnJhbWVVcGRhdGUsXG4gICAgICBnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXNcbiAgICB9KTtcbiAgICB0aGlzLnN0YXRlLmFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIuYXR0YWNoQW5pbWF0aW9uKGFuaW1hdGlvbik7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLm9uU3RvcCh7YWJvcnQ6IHRydWV9KTtcbiAgICBpZiAodGhpcy5hbmltYXRpb25GcmFtZUlkKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lSWQpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpbGVOYW1lKCkge1xuICAgIGNvbnN0IHtkZWZhdWx0RmlsZU5hbWV9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7ZmlsZU5hbWV9ID0gdGhpcy5zdGF0ZTtcbiAgICByZXR1cm4gZmlsZU5hbWUgfHwgZGVmYXVsdEZpbGVOYW1lO1xuICB9XG5cbiAgZ2V0Q2FudmFzU2l6ZSgpIHtcbiAgICBjb25zdCB7cmVzb2x1dGlvbn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IGdldFJlc29sdXRpb25TZXR0aW5nKHJlc29sdXRpb24pO1xuICAgIHJldHVybiB7d2lkdGgsIGhlaWdodH07XG4gIH1cblxuICBfZ2V0Q29udGFpbmVyKCkge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuZ2V0Q2FudmFzU2l6ZSgpO1xuICAgIGNvbnN0IHtleHBvcnRWaWRlb1dpZHRofSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgYXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodDtcbiAgICByZXR1cm4ge2hlaWdodDogZXhwb3J0VmlkZW9XaWR0aCAvIGFzcGVjdFJhdGlvLCB3aWR0aDogZXhwb3J0VmlkZW9XaWR0aH07XG4gIH1cblxuICBnZXRGb3JtYXRDb25maWdzKCk6IFBhcnRpYWw8Rm9ybWF0Q29uZmlncz4ge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuZ2V0Q2FudmFzU2l6ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICB3ZWJtOiB7cXVhbGl0eTogMC44fSxcbiAgICAgIGpwZWc6IHtxdWFsaXR5OiAwLjh9LFxuICAgICAgcG5nOiB7fSxcbiAgICAgIGdpZjoge3NhbXBsZUludGVydmFsOiAxMDAwLCB3aWR0aCwgaGVpZ2h0fVxuICAgIH07XG4gIH1cblxuICBnZXRUaW1lY29kZSgpOiBUaW1lY29kZSB7XG4gICAgY29uc3Qge2R1cmF0aW9uTXN9ID0gdGhpcy5zdGF0ZTtcbiAgICByZXR1cm4ge3N0YXJ0OiAwLCBlbmQ6IGR1cmF0aW9uTXMsIGZyYW1lcmF0ZTogMzB9O1xuICB9XG5cbiAgZ2V0RW5jb2RlcigpIHtcbiAgICBjb25zdCB7bWVkaWFUeXBlfSA9IHRoaXMuc3RhdGU7XG4gICAgcmV0dXJuIEVOQ09ERVJTW21lZGlhVHlwZV07XG4gIH1cblxuICBnZXRDYW1lcmFLZXlmcmFtZXMoKSB7XG4gICAgY29uc3Qge3ZpZXdTdGF0ZSwgY2FtZXJhUHJlc2V0LCBkdXJhdGlvbk1zfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb20sIHBpdGNoLCBiZWFyaW5nfSA9IHZpZXdTdGF0ZSE7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gdGhpcy5nZXRDYW52YXNTaXplKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpbWluZ3M6IFswLCBkdXJhdGlvbk1zXSxcbiAgICAgIGtleWZyYW1lczogW1xuICAgICAgICB7bG9uZ2l0dWRlLCBsYXRpdHVkZSwgem9vbSwgcGl0Y2gsIGJlYXJpbmd9LFxuICAgICAgICBwYXJzZVNldENhbWVyYVR5cGUoY2FtZXJhUHJlc2V0LCB2aWV3U3RhdGUhKVxuICAgICAgXSxcbiAgICAgIGVhc2luZ3M6IFtlYXNlSW5PdXRdLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9O1xuICB9XG5cbiAgZ2V0RmlsdGVyS2V5ZnJhbWVzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1hcERhdGE6IHt2aXNTdGF0ZToge2ZpbHRlcnN9fSxcbiAgICAgIGFuaW1hdGFibGVGaWx0ZXJzXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBmaWx0ZXJLZXlmcmFtZXMgPSAoXG4gICAgICBBcnJheS5pc0FycmF5KGFuaW1hdGFibGVGaWx0ZXJzKSAmJiBhbmltYXRhYmxlRmlsdGVycy5sZW5ndGhcbiAgICAgICAgPyBhbmltYXRhYmxlRmlsdGVyc1xuICAgICAgICA6IGZpbHRlcnMuZmlsdGVyKChmOiBhbnkpID0+IGYudHlwZSA9PT0gJ3RpbWVSYW5nZScgJiYgZi52aWV3ID09PSBGSUxURVJfVklFV19UWVBFUy5lbmxhcmdlZClcbiAgICApLm1hcCgoZjogYW55KSA9PiAoe1xuICAgICAgaWQ6IGYuaWQsXG4gICAgICB0aW1pbmdzOiBbMCwgdGhpcy5zdGF0ZS5kdXJhdGlvbk1zXVxuICAgIH0pKTtcblxuICAgIGlmIChmaWx0ZXJLZXlmcmFtZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge2ZpbHRlcnMsIGZpbHRlcktleWZyYW1lc307XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldFRyaXBLZXlmcmFtZXMoKSB7XG4gICAgY29uc3Qge1xuICAgICAgbWFwRGF0YToge3Zpc1N0YXRlOiB7bGF5ZXJzLCBhbmltYXRpb25Db25maWd9fVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgYW5pbWF0YWJsZUxheWVyID0gbGF5ZXJzLmZpbHRlcihcbiAgICAgIChsOiBhbnkpID0+IGwuY29uZmlnLmFuaW1hdGlvbiAmJiBsLmNvbmZpZy5hbmltYXRpb24uZW5hYmxlZCAmJiBsLmNvbmZpZy5pc1Zpc2libGVcbiAgICApO1xuICAgIGNvbnN0IHJlYWR5VG9BbmltYXRpb24gPVxuICAgICAgQXJyYXkuaXNBcnJheShhbmltYXRpb25Db25maWcuZG9tYWluKSAmJiBOdW1iZXIuaXNGaW5pdGUoYW5pbWF0aW9uQ29uZmlnLmN1cnJlbnRUaW1lKTtcbiAgICBpZiAoYW5pbWF0YWJsZUxheWVyLmxlbmd0aCAmJiByZWFkeVRvQW5pbWF0aW9uKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbmltYXRpb25Db25maWcsXG4gICAgICAgIHRyaXBLZXlmcmFtZToge3RpbWluZ3M6IFswLCB0aGlzLnN0YXRlLmR1cmF0aW9uTXNdfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgc2V0Vmlld1N0YXRlID0gKHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7dmlld1N0YXRlfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENTUyBiYWNrZ3JvdW5kIGNvbG9yIGZvciBnbG9iZSBzd2lwZSAodGhlIGFyZWEgdGhlIGdsb2JlIGRvZXNuJ3QgY292ZXIpLlxuICAgKiBSZXR1cm5zIHVuZGVmaW5lZCBvdXRzaWRlIGdsb2JlIG1vZGUgc28gbm9uLWdsb2JlIHN3aXBlIGtlZXBzIGl0cyBwcmV2aW91c1xuICAgKiB0cmFuc3BhcmVudC1jbGVhciBjb21wb3NpdGluZyAodGhlIG9wYXF1ZSBiYXNlIG1hcCBhbHJlYWR5IGZpbGxzIHRoZSBmcmFtZSkuXG4gICAqL1xuICBnZXRCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMubWFwRGF0YT8ubWFwU3RhdGU/Lmdsb2JlPy5lbmFibGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBiZyA9IHRoaXMucHJvcHMubWFwRGF0YT8ubWFwU3RhdGU/Lmdsb2JlPy5jb25maWc/LmJhY2tncm91bmRDb2xvcjtcbiAgICBjb25zdCBbciwgZywgYl0gPSBnZXRHbG9iZUNsZWFyQ29sb3IoYmcpO1xuICAgIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbiAgfVxuXG4gIHNldFN0YXRlQW5kTm90aWZ5KHVwZGF0ZTogU3dpcGVFeHBvcnRWaWRlb1NldHRpbmdzKSB7XG4gICAgY29uc3Qge29uU2V0dGluZ3NDaGFuZ2V9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7bWVkaWFUeXBlLCBjYW1lcmFQcmVzZXQsIGZpbGVOYW1lLCByZXNvbHV0aW9uLCBkdXJhdGlvbk1zfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7Li4udGhpcy5zdGF0ZSwgLi4udXBkYXRlfSBhcyBhbnkpO1xuICAgIGlmIChvblNldHRpbmdzQ2hhbmdlKSB7XG4gICAgICBvblNldHRpbmdzQ2hhbmdlKHttZWRpYVR5cGUsIGNhbWVyYVByZXNldCwgZmlsZU5hbWUsIHJlc29sdXRpb24sIGR1cmF0aW9uTXMsIC4uLnVwZGF0ZX0pO1xuICAgIH1cbiAgfVxuXG4gIHNldE1lZGlhVHlwZSA9IChtZWRpYVR5cGU6IHN0cmluZykgPT4gdGhpcy5zZXRTdGF0ZUFuZE5vdGlmeSh7bWVkaWFUeXBlfSk7XG4gIHNldENhbWVyYVByZXNldCA9IChjYW1lcmFQcmVzZXQ6IHN0cmluZykgPT4gdGhpcy5zZXRTdGF0ZUFuZE5vdGlmeSh7Y2FtZXJhUHJlc2V0fSk7XG4gIHNldEZpbGVOYW1lID0gKGZpbGVOYW1lOiBzdHJpbmcpID0+IHRoaXMuc2V0U3RhdGVBbmROb3RpZnkoe2ZpbGVOYW1lfSk7XG4gIHNldFJlc29sdXRpb24gPSAocmVzb2x1dGlvbjogc3RyaW5nKSA9PiB0aGlzLnNldFN0YXRlQW5kTm90aWZ5KHtyZXNvbHV0aW9ufSk7XG4gIHNldER1cmF0aW9uID0gKGR1cmF0aW9uTXM6IG51bWJlcikgPT4gdGhpcy5zZXRTdGF0ZUFuZE5vdGlmeSh7ZHVyYXRpb25Nc30pO1xuXG4gIC8qKlxuICAgKiBTdGFydCBhIHByZXZpZXcgcGxheWJhY2sg4oCUIGFuaW1hdGVzIHRoZSBzd2lwZSB3aXRob3V0IGVuY29kaW5nLlxuICAgKi9cbiAgb25QcmV2aWV3VmlkZW8gPSAoKSA9PiB7XG4gICAgY29uc3Qge2FkYXB0ZXIsIGR1cmF0aW9uTXN9ID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHByZXZpZXdpbmc6IHRydWUsXG4gICAgICBjdXJyZW50VGltZU1zOiAwLFxuICAgICAgbWVtbzoge3ZpZXdTdGF0ZTogey4uLnRoaXMuc3RhdGUudmlld1N0YXRlIX19XG4gICAgfSk7XG5cbiAgICBhZGFwdGVyIS5hbmltYXRpb25NYW5hZ2VyLnNldEtleWZyYW1lcygna2VwbGVyJywge1xuICAgICAgLi4udGhpcy5nZXRGaWx0ZXJLZXlmcmFtZXMoKSxcbiAgICAgIC4uLnRoaXMuZ2V0VHJpcEtleWZyYW1lcygpLFxuICAgICAgY2FtZXJhS2V5ZnJhbWU6IHRoaXMuZ2V0Q2FtZXJhS2V5ZnJhbWVzKClcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIGNvbnN0IGFuaW1hdGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbGFwc2VkID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICBjb25zdCBjdXJyZW50VGltZU1zID0gTWF0aC5taW4oZWxhcHNlZCwgZHVyYXRpb25Ncyk7XG5cbiAgICAgIGFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIudGltZWxpbmUuc2V0VGltZShjdXJyZW50VGltZU1zKTtcbiAgICAgIGFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIuZHJhdygpO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtjdXJyZW50VGltZU1zfSk7XG5cbiAgICAgIGlmIChjdXJyZW50VGltZU1zID49IGR1cmF0aW9uTXMpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgcHJldmlld2luZzogZmFsc2UsXG4gICAgICAgICAgY3VycmVudFRpbWVNczogMCxcbiAgICAgICAgICB2aWV3U3RhdGU6IHsuLi50aGlzLnN0YXRlLm1lbW8hLnZpZXdTdGF0ZX1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcbiAgICB9O1xuICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcbiAgfTtcblxuICAvKipcbiAgICogU3RhcnQgYWN0dWFsIHJlY29yZGluZyDigJQgY2FwdHVyZXMgY29tcG9zaXRlZCBmcmFtZXMgaW50byB0aGUgZW5jb2Rlci5cbiAgICogVXNlcyBhIHRpbWVyLWJhc2VkIGFwcHJvYWNoOiB1cGRhdGVzIGN1cnJlbnRUaW1lTXMsIHdhaXRzIGZvciB0aGUgcHJldmlld1xuICAgKiB0byBjb21wb3NpdGUsIHRoZW4gY2FwdHVyZXMgdGhlIGNvbXBvc2l0ZSBjYW52YXMuXG4gICAqL1xuICBvblJlbmRlclZpZGVvID0gKCkgPT4ge1xuICAgIGNvbnN0IHthZGFwdGVyfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgZmlsZW5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKCk7XG4gICAgY29uc3QgRW5jb2RlciA9IHRoaXMuZ2V0RW5jb2RlcigpO1xuICAgIGNvbnN0IGZvcm1hdENvbmZpZ3MgPSB0aGlzLmdldEZvcm1hdENvbmZpZ3MoKTtcbiAgICBjb25zdCB0aW1lY29kZSA9IHRoaXMuZ2V0VGltZWNvZGUoKTtcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLmdldENhbnZhc1NpemUoKTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgcmVuZGVyaW5nOiB0cnVlLFxuICAgICAgc2F2aW5nOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRUaW1lTXM6IDAsXG4gICAgICBtZW1vOiB7dmlld1N0YXRlOiB7Li4udGhpcy5zdGF0ZS52aWV3U3RhdGUhfX1cbiAgICB9KTtcblxuICAgIGFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIuc2V0S2V5ZnJhbWVzKCdrZXBsZXInLCB7XG4gICAgICAuLi50aGlzLmdldEZpbHRlcktleWZyYW1lcygpLFxuICAgICAgLi4udGhpcy5nZXRUcmlwS2V5ZnJhbWVzKCksXG4gICAgICBjYW1lcmFLZXlmcmFtZTogdGhpcy5nZXRDYW1lcmFLZXlmcmFtZXMoKVxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBFbmNvZGVyKHsuLi5mb3JtYXRDb25maWdzLCBmcmFtZXJhdGU6IHRpbWVjb2RlLmZyYW1lcmF0ZX0pO1xuICAgIHRoaXMuYWN0aXZlRW5jb2RlciA9IGVuY29kZXI7XG4gICAgZW5jb2Rlci5zdGFydCgpO1xuXG4gICAgY29uc3QgZnJhbWVMZW5ndGhNcyA9IE1hdGguZmxvb3IoMTAwMCAvIHRpbWVjb2RlLmZyYW1lcmF0ZSk7XG4gICAgbGV0IHRpbWVNcyA9IHRpbWVjb2RlLnN0YXJ0O1xuICAgIGxldCByZXRyeUNvdW50ID0gMDtcbiAgICBjb25zdCBNQVhfUkVUUklFUyA9IDEwO1xuXG4gICAgY29uc3QgY2FwdHVyZU5leHRGcmFtZSA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5zdGF0ZS5yZW5kZXJpbmcgfHwgdGhpcy5hY3RpdmVFbmNvZGVyICE9PSBlbmNvZGVyKSByZXR1cm47XG5cbiAgICAgIGFkYXB0ZXIhLmFuaW1hdGlvbk1hbmFnZXIudGltZWxpbmUuc2V0VGltZSh0aW1lTXMpO1xuICAgICAgYWRhcHRlciEuYW5pbWF0aW9uTWFuYWdlci5kcmF3KCk7XG4gICAgICB0aGlzLnNldFN0YXRlKHtjdXJyZW50VGltZU1zOiB0aW1lTXN9KTtcblxuICAgICAgLy8gQWxsb3cgMyBmcmFtZXMgZm9yIHN0YXRlIHVwZGF0ZSDihpIgcHJldmlldyByZS1yZW5kZXIg4oaSIGNvbXBvc2l0ZVxuICAgICAgY29uc3Qgd2FpdEFuZENhcHR1cmUgPSAoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRW5jb2RlciAhPT0gZW5jb2RlcikgcmV0dXJuO1xuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVFbmNvZGVyICE9PSBlbmNvZGVyKSByZXR1cm47XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVFbmNvZGVyICE9PSBlbmNvZGVyKSByZXR1cm47XG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnByZXZpZXdSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgaWYgKCFwcmV2aWV3KSByZXR1cm47XG5cbiAgICAgICAgICAgICAgLy8gVXNlIHRoZSBjb21wb3NpdGUgY2FudmFzIHRoYXQgdGhlIHByZXZpZXcgYWxyZWFkeSB1cGRhdGVzXG4gICAgICAgICAgICAgIGNvbnN0IGNvbXBvc2l0ZUNhbnZhcyA9IHByZXZpZXcuZ2V0Q29tcG9zaXRlQ2FudmFzKCk7XG4gICAgICAgICAgICAgIGlmICghY29tcG9zaXRlQ2FudmFzKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNhbnZhcyBoYXMgYW55IGNvbnRlbnQgKG5vdCBibGFuaylcbiAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY29tcG9zaXRlQ2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgICAgIGlmICghY3R4KSByZXR1cm47XG5cbiAgICAgICAgICAgICAgbGV0IGhhc0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpeGVsID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKS5kYXRhO1xuICAgICAgICAgICAgICAgIGhhc0NvbnRlbnQgPSBwaXhlbFswXSAhPT0gMCB8fCBwaXhlbFsxXSAhPT0gMCB8fCBwaXhlbFsyXSAhPT0gMCB8fCBwaXhlbFszXSAhPT0gMDtcbiAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gQ2FudmFzIG1heSBiZSB0YWludGVkIGJ5IGNyb3NzLW9yaWdpbiByZXNvdXJjZXM7IGFzc3VtZSBjb250ZW50IGV4aXN0c1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKCFoYXNDb250ZW50ICYmIHJldHJ5Q291bnQgPCBNQVhfUkVUUklFUykge1xuICAgICAgICAgICAgICAgIHJldHJ5Q291bnQrKztcbiAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGNvbXBvc2l0ZSBtYW51YWxseSBhbmQgcmV0cnlcbiAgICAgICAgICAgICAgICBwcmV2aWV3Ll9jb21wb3NpdGVGcmFtZSgpO1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh3YWl0QW5kQ2FwdHVyZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHJ5Q291bnQgPSAwO1xuXG4gICAgICAgICAgICAgIC8vIENhcHR1cmUgdGhlIGNvbXBvc2l0ZSBjYW52YXMgYXQgdGFyZ2V0IHJlc29sdXRpb25cbiAgICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgICAgICAgIG9mZnNjcmVlbi53aWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICBvZmZzY3JlZW4uaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICAgICAgICBjb25zdCBvZmZDdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICAgICAgaWYgKG9mZkN0eCkge1xuICAgICAgICAgICAgICAgIG9mZkN0eC5kcmF3SW1hZ2UoY29tcG9zaXRlQ2FudmFzLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGVuY29kZXIuYWRkKG9mZnNjcmVlbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRW5jb2RlciAhPT0gZW5jb2RlcikgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRpbWVNcyArPSBmcmFtZUxlbmd0aE1zO1xuICAgICAgICAgICAgICAgIGlmICh0aW1lTXMgPiB0aW1lY29kZS5lbmQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3NhdmluZzogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgICAgZW5jb2Rlci5zYXZlKCkudGhlbigoYmxvYjogQmxvYiB8IG51bGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRW5jb2RlciAhPT0gZW5jb2RlcikgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmxvYikge1xuICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGJsb2IsIGZpbGVuYW1lICsgZW5jb2Rlci5leHRlbnNpb24sIGVuY29kZXIubWltZVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgc2F2aW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGltZU1zOiAwLFxuICAgICAgICAgICAgICAgICAgICAgIHZpZXdTdGF0ZTogey4uLnRoaXMuc3RhdGUubWVtbyEudmlld1N0YXRlfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjYXB0dXJlTmV4dEZyYW1lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHdhaXRBbmRDYXB0dXJlKCk7XG4gICAgfTtcblxuICAgIC8vIFdhaXQgZm9yIG1hcHMgdG8gYmUgcmVhZHkgYmVmb3JlIHN0YXJ0aW5nIGNhcHR1cmVcbiAgICBzZXRUaW1lb3V0KCgpID0+IGNhcHR1cmVOZXh0RnJhbWUoKSwgNTAwKTtcbiAgfTtcblxuICBvblN0b3AgPSAoe2Fib3J0ID0gZmFsc2V9OiB7YWJvcnQ/OiBib29sZWFufSA9IHt9KSA9PiB7XG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uRnJhbWVJZCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpb25GcmFtZUlkKTtcbiAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVJZCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlRW5jb2RlciA9IG51bGw7XG4gICAgaWYgKCFhYm9ydCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHJlbmRlcmluZzogZmFsc2UsXG4gICAgICAgIHByZXZpZXdpbmc6IGZhbHNlLFxuICAgICAgICBjdXJyZW50VGltZU1zOiAwLFxuICAgICAgICB2aWV3U3RhdGU6IHRoaXMuc3RhdGUubWVtbz8udmlld1N0YXRlIHx8IHRoaXMuc3RhdGUudmlld1N0YXRlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGV4cG9ydFZpZGVvV2lkdGgsXG4gICAgICBtYXBEYXRhLFxuICAgICAgZGVja1Byb3BzLFxuICAgICAgbWFwUHJvcHMsXG4gICAgICBkaXNhYmxlQmFzZU1hcCxcbiAgICAgIG1hcGJveExheWVyQmVmb3JlSWQsXG4gICAgICBzd2lwZVN0YXJ0UGN0LFxuICAgICAgc3dpcGVFbmRQY3QsXG4gICAgICBzd2lwZUVhc2luZyxcbiAgICAgIG9uU2V0dGluZ3NDaGFuZ2VcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHtcbiAgICAgIGFkYXB0ZXIsXG4gICAgICBkdXJhdGlvbk1zLFxuICAgICAgbWVkaWFUeXBlLFxuICAgICAgY2FtZXJhUHJlc2V0LFxuICAgICAgZmlsZU5hbWUsXG4gICAgICByZXNvbHV0aW9uLFxuICAgICAgdmlld1N0YXRlLFxuICAgICAgcmVuZGVyaW5nLFxuICAgICAgcHJldmlld2luZyxcbiAgICAgIHNhdmluZyxcbiAgICAgIGN1cnJlbnRUaW1lTXNcbiAgICB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IHRpbWVjb2RlID0gdGhpcy5nZXRUaW1lY29kZSgpO1xuICAgIGxldCBjYW52YXNTaXplID0gdGhpcy5nZXRDYW52YXNTaXplKCk7XG4gICAgaWYgKHByZXZpZXdpbmcpIHtcbiAgICAgIGNhbnZhc1NpemUgPSB0aGlzLl9nZXRDb250YWluZXIoKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0FjdGl2ZSA9IHJlbmRlcmluZyB8fCBwcmV2aWV3aW5nO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhwb3J0LXZpZGVvLXBhbmVsXCI+XG4gICAgICAgIDxQYW5lbEJvZHkgJGV4cG9ydFZpZGVvV2lkdGg9e2V4cG9ydFZpZGVvV2lkdGh9PlxuICAgICAgICAgIDxTd2lwZUV4cG9ydFZpZGVvUHJldmlld1xuICAgICAgICAgICAgcmVmPXt0aGlzLnByZXZpZXdSZWZ9XG4gICAgICAgICAgICBtYXBEYXRhPXttYXBEYXRhfVxuICAgICAgICAgICAgYWRhcHRlcj17YWRhcHRlciF9XG4gICAgICAgICAgICBzZXRWaWV3U3RhdGU9e3RoaXMuc2V0Vmlld1N0YXRlfVxuICAgICAgICAgICAgZXhwb3J0VmlkZW9XaWR0aD17ZXhwb3J0VmlkZW9XaWR0aH1cbiAgICAgICAgICAgIHJlc29sdXRpb249e1tjYW52YXNTaXplLndpZHRoLCBjYW52YXNTaXplLmhlaWdodF19XG4gICAgICAgICAgICB2aWV3U3RhdGU9e3ZpZXdTdGF0ZSF9XG4gICAgICAgICAgICByZW5kZXJpbmc9e3JlbmRlcmluZ31cbiAgICAgICAgICAgIHNhdmluZz17c2F2aW5nfVxuICAgICAgICAgICAgZHVyYXRpb25Ncz17ZHVyYXRpb25Nc31cbiAgICAgICAgICAgIGRlY2tQcm9wcz17ZGVja1Byb3BzfVxuICAgICAgICAgICAgbWFwUHJvcHM9e21hcFByb3BzfVxuICAgICAgICAgICAgZGlzYWJsZUJhc2VNYXA9e2Rpc2FibGVCYXNlTWFwfVxuICAgICAgICAgICAgbWFwYm94TGF5ZXJCZWZvcmVJZD17bWFwYm94TGF5ZXJCZWZvcmVJZH1cbiAgICAgICAgICAgIHN3aXBlU3RhcnRQY3Q9e3N3aXBlU3RhcnRQY3R9XG4gICAgICAgICAgICBzd2lwZUVuZFBjdD17c3dpcGVFbmRQY3R9XG4gICAgICAgICAgICBzd2lwZUVhc2luZz17c3dpcGVFYXNpbmd9XG4gICAgICAgICAgICBjdXJyZW50VGltZU1zPXtjdXJyZW50VGltZU1zfVxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXt0aGlzLmdldEJhY2tncm91bmRDb2xvcigpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN3aXBlRXhwb3J0U2V0dGluZ3NcbiAgICAgICAgICAgIGR1cmF0aW9uTXM9e2R1cmF0aW9uTXN9XG4gICAgICAgICAgICBtZWRpYVR5cGU9e21lZGlhVHlwZX1cbiAgICAgICAgICAgIHJlc29sdXRpb249e3Jlc29sdXRpb259XG4gICAgICAgICAgICBmaWxlTmFtZT17ZmlsZU5hbWV9XG4gICAgICAgICAgICBjYW1lcmFQcmVzZXQ9e2NhbWVyYVByZXNldH1cbiAgICAgICAgICAgIGZyYW1lUmF0ZT17dGltZWNvZGUuZnJhbWVyYXRlfVxuICAgICAgICAgICAgb25DaGFuZ2VEdXJhdGlvbj17dGhpcy5zZXREdXJhdGlvbn1cbiAgICAgICAgICAgIG9uQ2hhbmdlTWVkaWFUeXBlPXt0aGlzLnNldE1lZGlhVHlwZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlUmVzb2x1dGlvbj17dGhpcy5zZXRSZXNvbHV0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2VGaWxlTmFtZT17dGhpcy5zZXRGaWxlTmFtZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlQ2FtZXJhUHJlc2V0PXt0aGlzLnNldENhbWVyYVByZXNldH1cbiAgICAgICAgICAgIHN3aXBlU3RhcnRQY3Q9e3N3aXBlU3RhcnRQY3R9XG4gICAgICAgICAgICBzd2lwZUVuZFBjdD17c3dpcGVFbmRQY3R9XG4gICAgICAgICAgICBzd2lwZUVhc2luZz17c3dpcGVFYXNpbmd9XG4gICAgICAgICAgICBkaXNhYmxlZD17aXNBY3RpdmV9XG4gICAgICAgICAgICBvbkNoYW5nZVN0YXJ0UGN0PXsodmFsdWU6IG51bWJlcikgPT5cbiAgICAgICAgICAgICAgb25TZXR0aW5nc0NoYW5nZSh7c3dpcGVTdGFydFBjdDogdmFsdWV9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DaGFuZ2VFbmRQY3Q9eyh2YWx1ZTogbnVtYmVyKSA9PlxuICAgICAgICAgICAgICBvblNldHRpbmdzQ2hhbmdlKHtzd2lwZUVuZFBjdDogdmFsdWV9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DaGFuZ2VFYXNpbmc9eyh2YWx1ZTogU3dpcGVFYXNpbmcpID0+XG4gICAgICAgICAgICAgIG9uU2V0dGluZ3NDaGFuZ2Uoe3N3aXBlRWFzaW5nOiB2YWx1ZX0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8VGltZWxpbmVDb250cm9scyBjbGFzc05hbWU9XCJ0aW1lbGluZS1jb250cm9sc1wiPlxuICAgICAgICAgICAge2lzQWN0aXZlID8gKFxuICAgICAgICAgICAgICA8U3RvcEljb24gc3R5bGU9e3RpbWVsaW5lUGxheUJ1dHRvblN0eWxlfSBvbkNsaWNrPXsoKSA9PiB0aGlzLm9uU3RvcCh7fSl9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGxheUljb24gc3R5bGU9e3RpbWVsaW5lUGxheUJ1dHRvblN0eWxlfSBvbkNsaWNrPXt0aGlzLm9uUHJldmlld1ZpZGVvfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1RpbWVsaW5lQ29udHJvbHM+XG4gICAgICAgICAge3NhdmluZyAmJiA8U3RhdHVzVGV4dD5TYXZpbmcuLi48L1N0YXR1c1RleHQ+fVxuICAgICAgICAgIHtyZW5kZXJpbmcgJiYgIXNhdmluZyAmJiAoXG4gICAgICAgICAgICA8U3RhdHVzVGV4dD5SZW5kZXJpbmcuLi4ge01hdGgucm91bmQoKGN1cnJlbnRUaW1lTXMgLyBkdXJhdGlvbk1zKSAqIDEwMCl9JTwvU3RhdHVzVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxCdXR0b25Hcm91cD5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5Ub3A6ICcxNnB4Jywgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMzJweCd9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJleHBvcnQtdmlkZW8tYnV0dG9uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vblJlbmRlclZpZGVvfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17aXNBY3RpdmV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFJlbmRlclxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9CdXR0b25Hcm91cD5cbiAgICAgICAgPC9QYW5lbEJvZHk+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sS0FBQSxHQUFBTixPQUFBO0FBV0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsWUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsd0JBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLG9CQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBVyxhQUFBLEdBQUFYLE9BQUE7QUFBNEQsSUFBQVksZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFB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