@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1778762648 → 5.0.0-next.3-dev.1778794237

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 (340) hide show
  1. package/development/accordion.component-xx7XabDY.js +1 -1
  2. package/development/accordion.js +1 -1
  3. package/development/action-group.component-wgXPpkQe.js +1 -1
  4. package/development/action-group.js +1 -1
  5. package/development/alert-group.component-w5PbU_4C.js +1 -1
  6. package/development/alert.component-Dzm5z0jh.js +1 -1
  7. package/development/alert.js +1 -1
  8. package/development/autocomplete/autocomplete.component.js +1 -1
  9. package/development/autocomplete-base-element-DQiZ6hhk.js +1 -1
  10. package/development/autocomplete.js +1 -1
  11. package/development/block-link-common-DNvRfeay.js +1 -1
  12. package/development/breadcrumb-group.component-BUBfl6LV.js +1 -1
  13. package/development/breadcrumb.component-D6Cd2FPo.js +1 -1
  14. package/development/breadcrumb.js +1 -1
  15. package/development/button/accent-button/accent-button.component.js +1 -1
  16. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  17. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  18. package/development/button/button/button.component.js +1 -1
  19. package/development/button/button-link/button-link.component.js +1 -1
  20. package/development/button/button-static/button-static.component.js +1 -1
  21. package/development/button/mini-button/mini-button.component.js +1 -1
  22. package/development/button/secondary-button/secondary-button.component.js +1 -1
  23. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  24. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  25. package/development/button/transparent-button/transparent-button.component.js +1 -1
  26. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  27. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  28. package/development/button-common-C-A7Dulr.js +1 -1
  29. package/development/button.js +1 -1
  30. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  31. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  32. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  33. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  34. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  35. package/development/calendar-day.component-BHvdRxll.js +1 -1
  36. package/development/calendar.component-CjlcDyS5.js +1 -1
  37. package/development/calendar.js +1 -1
  38. package/development/card/card-button/card-button.component.js +1 -1
  39. package/development/card/card-link/card-link.component.js +1 -1
  40. package/development/card-action-common-zS5iNz23.js +1 -1
  41. package/development/card-badge.component-CEfJdJBs.js +1 -1
  42. package/development/card.component-CL2gHoyP.js +1 -1
  43. package/development/card.js +1 -1
  44. package/development/carousel-item.component-B_0wdIAu.js +1 -1
  45. package/development/carousel-list.component-DpDh5tqB.js +1 -1
  46. package/development/carousel.component-ClWvnZ8s.js +1 -1
  47. package/development/carousel.js +1 -1
  48. package/development/checkbox-common-C3Ekixul.js +1 -1
  49. package/development/checkbox-group/checkbox-group.component.js +1 -1
  50. package/development/checkbox-group.js +1 -1
  51. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  52. package/development/checkbox-panel.js +1 -1
  53. package/development/checkbox.component-UbxCpZmi.js +1 -1
  54. package/development/checkbox.js +1 -1
  55. package/development/chip-group.component-Sgmi-kSy.js +1 -1
  56. package/development/chip-label.component-DHHNtvTt.js +1 -1
  57. package/development/chip-label.js +1 -1
  58. package/development/chip.component-Uuf3tGFz.js +1 -1
  59. package/development/chip.js +1 -1
  60. package/development/clock.component-DcM1WFTN.js +1 -1
  61. package/development/clock.js +1 -1
  62. package/development/compact-paginator.component-BgkpxaaD.js +1 -1
  63. package/development/container.component-D1Qgp4HW.js +1 -1
  64. package/development/container.js +1 -1
  65. package/development/core/a11y/arrow-navigation.js +1 -1
  66. package/development/core/a11y/fake-event-detection.js +1 -1
  67. package/development/core/a11y/focus-trap-controller.js +1 -1
  68. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  69. package/development/core/a11y/focus.js +1 -1
  70. package/development/core/a11y/input-modality-detector.js +1 -1
  71. package/development/core/a11y/interactivity-checker.js +1 -1
  72. package/development/core/a11y/live-announcer.js +1 -1
  73. package/development/core/base-elements/action-base-element.js +1 -1
  74. package/development/core/base-elements/button-base-element.js +1 -1
  75. package/development/core/base-elements/link-base-element.js +1 -1
  76. package/development/core/base-elements/open-close-base-element.js +1 -1
  77. package/development/core/config/config.js +1 -1
  78. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  79. package/development/core/controllers/id-reference-controller.js +1 -1
  80. package/development/core/controllers/inert-controller.js +1 -1
  81. package/development/core/controllers/language-controller.js +1 -1
  82. package/development/core/controllers/media-matchers-controller.js +1 -1
  83. package/development/core/controllers/overlay-position-controller.js +1 -1
  84. package/development/core/controllers/property-watcher-controller.js +1 -1
  85. package/development/core/datetime/date-adapter.js +1 -1
  86. package/development/core/datetime/native-date-adapter.js +1 -1
  87. package/development/core/datetime/temporal-date-adapter.js +1 -1
  88. package/development/core/decorators/force-type.js +1 -1
  89. package/development/core/decorators/get-override.js +1 -1
  90. package/development/core/decorators/handle-distinct-change.js +1 -1
  91. package/development/core/decorators/host-attributes.js +1 -1
  92. package/development/core/decorators/id-reference.js +1 -1
  93. package/development/core/decorators/omit-empty-converter.js +1 -1
  94. package/development/core/decorators/plain-date.js +1 -1
  95. package/development/core/dom/animation.js +1 -1
  96. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  97. package/development/core/dom/platform.js +1 -1
  98. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  99. package/development/core/dom/scroll.js +1 -1
  100. package/development/core/dom/set-or-remove-attribute.js +1 -1
  101. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  102. package/development/core/eventing/event-target.js +1 -1
  103. package/development/core/eventing/form-element-handlers.js +1 -1
  104. package/development/core/eventing/forward-event.js +1 -1
  105. package/development/core/eventing/is-event-prevented.js +1 -1
  106. package/development/core/eventing/throttle.js +1 -1
  107. package/development/core/i18n/i18n.js +1 -1
  108. package/development/core/mixins/animation-complete-mixin.js +1 -1
  109. package/development/core/mixins/disabled-mixin.js +1 -1
  110. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  111. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  112. package/development/core/mixins/form-associated-mixin.js +1 -1
  113. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  114. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  115. package/development/core/mixins/negative-mixin.js +1 -1
  116. package/development/core/mixins/readonly-mixin.js +1 -1
  117. package/development/core/mixins/required-mixin.js +1 -1
  118. package/development/core/mixins/selection-panel-mixin.js +1 -1
  119. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  120. package/development/core/overlay/overlay-option-panel.js +1 -1
  121. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  122. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  123. package/development/core/overlay/position.js +1 -1
  124. package/development/core/testing/event-spy.js +1 -1
  125. package/development/core/testing/mocha-extensions.js +1 -1
  126. package/development/core/testing/wait-for-condition.js +1 -1
  127. package/development/core/testing/wait-for-image-ready.js +1 -1
  128. package/development/core/testing/wait-for-render.js +1 -1
  129. package/development/date-input.component-HxRyCudr.js +1 -1
  130. package/development/date-input.js +1 -1
  131. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  132. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  133. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  134. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  135. package/development/datepicker-button-BAT1ebzJ.js +1 -1
  136. package/development/datepicker.js +1 -1
  137. package/development/dialog-actions.component-e0ZTTUin.js +1 -1
  138. package/development/dialog-close-button.component-Idc00dB9.js +1 -1
  139. package/development/dialog-content.component-CThU7Z8A.js +1 -1
  140. package/development/dialog-title.component-0uNsUR2C.js +1 -1
  141. package/development/dialog.component-AItB8ixG.js +1 -1
  142. package/development/dialog.js +1 -1
  143. package/development/divider.component-Ck_0vISe.js +1 -1
  144. package/development/divider.js +1 -1
  145. package/development/element-BAsBayf5.js +1 -1
  146. package/development/error.component-WCkiwM7_.js +1 -1
  147. package/development/expansion-panel-content.component-Bs0pYNJO.js +1 -1
  148. package/development/expansion-panel-header.component-gg5A_7Pz.js +1 -1
  149. package/development/expansion-panel.component-DptYMbwV.js +1 -1
  150. package/development/expansion-panel.js +1 -1
  151. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  152. package/development/file-selector-common-CGL95Rnw.js +1 -1
  153. package/development/file-selector-dropzone.component-B84OL4Xd.js +1 -1
  154. package/development/file-selector.js +1 -1
  155. package/development/flip-card-details.component-BYv_W66a.js +1 -1
  156. package/development/flip-card-summary.component-jLNjJUNl.js +1 -1
  157. package/development/flip-card.component-DujrPKzU.js +1 -1
  158. package/development/flip-card.js +1 -1
  159. package/development/footer.component-K2bWizjw.js +1 -1
  160. package/development/footer.js +1 -1
  161. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  162. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  163. package/development/form-field.component-CPWBCHer.js +1 -1
  164. package/development/form-field.js +1 -1
  165. package/development/header/header-button/header-button.component.js +1 -1
  166. package/development/header/header-link/header-link.component.js +1 -1
  167. package/development/header-action-common-Be0XQge2.js +1 -1
  168. package/development/header-environment.component-CIyxQwkQ.js +1 -1
  169. package/development/header.component-C4e7CNql.js +1 -1
  170. package/development/header.js +1 -1
  171. package/development/hint.component-BB9QLGGx.js +1 -1
  172. package/development/icon/icon-name-mixin.js +1 -1
  173. package/development/icon/icon-request.js +1 -1
  174. package/development/icon/icon-validate.js +1 -1
  175. package/development/icon/icon.component.js +1 -1
  176. package/development/icon-base-DrBHy9BT.js +1 -1
  177. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  178. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  179. package/development/icon-sidebar-container.component-CM94Spwy.js +1 -1
  180. package/development/icon-sidebar-content.component-BP9W5ZxR.js +1 -1
  181. package/development/icon-sidebar.component-B68P2aNh.js +1 -1
  182. package/development/icon-sidebar.js +1 -1
  183. package/development/icon.js +1 -1
  184. package/development/image.component-EfSMgHI_.js +1 -1
  185. package/development/image.js +1 -1
  186. package/development/inline-link-common-gmt6yz3v.js +1 -1
  187. package/development/journey-header.component-CA4juz9x.js +1 -1
  188. package/development/journey-header.js +1 -1
  189. package/development/lead-container.component-C_mFeq1B.js +1 -1
  190. package/development/lead-container.js +1 -1
  191. package/development/link/block-link/block-link.component.js +1 -1
  192. package/development/link/block-link-button/block-link-button.component.js +1 -1
  193. package/development/link/block-link-static/block-link-static.component.js +1 -1
  194. package/development/link/link/link.component.js +1 -1
  195. package/development/link/link-button/link-button.component.js +1 -1
  196. package/development/link/link-static/link-static.component.js +1 -1
  197. package/development/link-common-2RGn9Qz_.js +1 -1
  198. package/development/link-list-anchor.component-Csb-FOQL.js +1 -1
  199. package/development/link-list-anchor.js +1 -1
  200. package/development/link-list-base-CKT3c8yW.js +1 -1
  201. package/development/link-list.component-B90qHOUD.js +1 -1
  202. package/development/link-list.js +1 -1
  203. package/development/link.js +1 -1
  204. package/development/loading-indicator-circle.component-Cfjw5vyz.js +1 -1
  205. package/development/loading-indicator-circle.js +1 -1
  206. package/development/loading-indicator.component-By2VaLCf.js +1 -1
  207. package/development/loading-indicator.js +1 -1
  208. package/development/logo.component-DYKgAgq0.js +1 -1
  209. package/development/logo.js +1 -1
  210. package/development/map-container.component-D0UVTolK.js +1 -1
  211. package/development/map-container.js +1 -1
  212. package/development/menu/menu-button/menu-button.component.js +1 -1
  213. package/development/menu/menu-link/menu-link.component.js +1 -1
  214. package/development/menu-action-common-DRXQc85Y.js +1 -1
  215. package/development/menu.component-Cv9wRj4H.js +1 -1
  216. package/development/menu.js +1 -1
  217. package/development/message.component-CdO5GyE2.js +1 -1
  218. package/development/message.js +1 -1
  219. package/development/mini-button-group.component-VYKZf1rq.js +1 -1
  220. package/development/mini-button-link.component-kpRsi8I2.js +1 -1
  221. package/development/mini-calendar-day.component-BLkJ12Bw.js +1 -1
  222. package/development/mini-calendar-month.component-D8XjjLmN.js +1 -1
  223. package/development/mini-calendar.component-BOk8JovO.js +1 -1
  224. package/development/mini-calendar.js +1 -1
  225. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  226. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  227. package/development/navigation-action-common-fkYNyX19.js +1 -1
  228. package/development/navigation-list.component-Dvv-bZ2V.js +1 -1
  229. package/development/navigation-marker.component-DMqe-VlY.js +1 -1
  230. package/development/navigation-section.component-iaypc6yQ.js +1 -1
  231. package/development/navigation.component-CqNkBvEs.js +1 -1
  232. package/development/navigation.js +1 -1
  233. package/development/notification.component-BiJSo7Pl.js +1 -1
  234. package/development/notification.js +1 -1
  235. package/development/optgroup-base-element-CLfE6pmz.js +1 -1
  236. package/development/option/optgroup/optgroup.component.js +1 -1
  237. package/development/option/option/option-base-element.js +1 -1
  238. package/development/option-hint.component-DPfgcpVn.js +1 -1
  239. package/development/option.component-CV6cZnJe.js +1 -1
  240. package/development/option.js +1 -1
  241. package/development/overlay/overlay-base-element.js +1 -1
  242. package/development/overlay.component-rFmitc_r.js +1 -1
  243. package/development/overlay.js +1 -1
  244. package/development/paginator-common-BCeNUko_.js +1 -1
  245. package/development/paginator.component-BwLUSpDj.js +1 -1
  246. package/development/paginator.js +1 -1
  247. package/development/panel-mixin-DPybe45K.js +1 -1
  248. package/development/popover.component-BmTfHMFw.js +1 -1
  249. package/development/popover.js +1 -1
  250. package/development/radio-button-common-G0jLFo41.js +1 -1
  251. package/development/radio-button-group/radio-button-group.component.js +1 -1
  252. package/development/radio-button-group.js +1 -1
  253. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  254. package/development/radio-button-panel.js +1 -1
  255. package/development/radio-button.component-DnErH-1J.js +1 -1
  256. package/development/radio-button.js +1 -1
  257. package/development/select.component-CUjF11sq.js +1 -1
  258. package/development/select.js +1 -1
  259. package/development/selection-action-panel.component-BT0HmTja.js +1 -1
  260. package/development/selection-action-panel.js +1 -1
  261. package/development/selection-expansion-panel.component-BT78Qhbf.js +1 -1
  262. package/development/selection-expansion-panel.js +1 -1
  263. package/development/selection-group-base-element-DRT3Ctp2.js +1 -1
  264. package/development/sidebar/common/styles.js +1 -1
  265. package/development/sidebar-close-button.component-CXnf-P5H.js +1 -1
  266. package/development/sidebar-container.component-CxwDKxv9.js +1 -1
  267. package/development/sidebar-content.component-DbcREBUa.js +1 -1
  268. package/development/sidebar-title.component-BW04otyD.js +1 -1
  269. package/development/sidebar.component-mfXnE6WQ.js +1 -1
  270. package/development/sidebar.js +1 -1
  271. package/development/signet.component-k14RJ8FA.js +1 -1
  272. package/development/signet.js +1 -1
  273. package/development/skiplink-list.component-m7xm-pns.js +1 -1
  274. package/development/skiplink-list.js +1 -1
  275. package/development/slider.component-D_nLTlRF.js +1 -1
  276. package/development/slider.js +1 -1
  277. package/development/status.component-B9en2l26.js +1 -1
  278. package/development/status.js +1 -1
  279. package/development/step-label.component-Bo7Z0w7N.js +1 -1
  280. package/development/step.component-CcjtUFyR.js +1 -1
  281. package/development/stepper.component-80S-oXrH.js +1 -1
  282. package/development/stepper.js +1 -1
  283. package/development/sticky-bar.component-BJLtRvcd.js +1 -1
  284. package/development/styles-Cctez2BS.js +1 -1
  285. package/development/styles-WppEBrlW.js +1 -1
  286. package/development/tab-group.component-D4fvd6Uu.js +1 -1
  287. package/development/tab-label.component-CNX8bsJL.js +1 -1
  288. package/development/tab-nav-bar.component-B_mi8GGR.js +1 -1
  289. package/development/tab.component-BVhYPy5Y.js +1 -1
  290. package/development/table-wrapper.component-By59zmcU.js +1 -1
  291. package/development/table.js +1 -1
  292. package/development/tabs.js +1 -1
  293. package/development/tag-group.component-Db8prSBL.js +1 -1
  294. package/development/tag.component-DG1uxD28.js +1 -1
  295. package/development/tag.js +1 -1
  296. package/development/teaser-hero.component-BHMcPmdh.js +1 -1
  297. package/development/teaser-hero.js +1 -1
  298. package/development/teaser-panel.component-BRfbvmkb.js +1 -1
  299. package/development/teaser-panel.js +1 -1
  300. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  301. package/development/teaser-product-common-DOyLdTks.js +1 -1
  302. package/development/teaser-product.component-DMyuB-cH.js +1 -1
  303. package/development/teaser-product.js +1 -1
  304. package/development/teaser.component-CF_NUbwJ.js +1 -1
  305. package/development/teaser.js +1 -1
  306. package/development/time-input.component-XxzRoupm.js +1 -1
  307. package/development/time-input.js +1 -1
  308. package/development/timetable-form-details.component-BeuAZUQe.js +1 -1
  309. package/development/timetable-form-field.component-DC2z1Cwf.js +1 -1
  310. package/development/timetable-form-swap-button.component-CnbVc8Ok.js +1 -1
  311. package/development/timetable-form.component-C8DfPePn.js +1 -1
  312. package/development/timetable-form.js +1 -1
  313. package/development/timetable-occupancy-icon.component-UBmyZsTO.js +1 -1
  314. package/development/timetable-occupancy-icon.js +1 -1
  315. package/development/timetable-occupancy.component-DMm242Fr.js +1 -1
  316. package/development/timetable-occupancy.js +1 -1
  317. package/development/title-base-D_Rjyk_j.js +1 -1
  318. package/development/title.component-CMxYhTfw.js +1 -1
  319. package/development/title.js +1 -1
  320. package/development/toast.component-DonS3uQm.js +1 -1
  321. package/development/toast.js +1 -1
  322. package/development/toggle-check.component-BIV7jFIc.js +1 -1
  323. package/development/toggle-check.js +1 -1
  324. package/development/toggle-option.component-DRxwLSKU.js +1 -1
  325. package/development/toggle.component-B03k5qc1.js +1 -1
  326. package/development/toggle.js +1 -1
  327. package/development/tooltip.component-D8zik3p4.js +1 -1
  328. package/development/tooltip.js +1 -1
  329. package/development/train/train-formation-orientation-mixin.js +1 -1
  330. package/development/train/train-wagon/train-wagon.component.js +1 -1
  331. package/development/train/train-wagon-button/train-wagon-button.component.js +1 -1
  332. package/development/train/train-wagon-link/train-wagon-link.component.js +1 -1
  333. package/development/train-blocked-passage.component-Cxd7dBDC.js +1 -1
  334. package/development/train-formation.component-BEg6OPib.js +1 -1
  335. package/development/train-wagon-common-Dg-BjUtC.js +1 -1
  336. package/development/train.component-dECIGw2x.js +1 -1
  337. package/development/train.js +1 -1
  338. package/development/visual-checkbox.component-Dm8DNhH2.js +1 -1
  339. package/development/visual-checkbox.js +1 -1
  340. package/package.json +3 -3
@@ -152,4 +152,4 @@ var SbbToggleCheckElement = (() => {
152
152
  //#endregion
153
153
  export { SbbToggleCheckElement as t };
154
154
 
155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWNoZWNrLmNvbXBvbmVudC1CSVY3akZJYy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlLWNoZWNrL3RvZ2dsZS1jaGVjay5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUtY2hlY2svdG9nZ2xlLWNoZWNrLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTZ4KVxuICApO1xuICAtLV9zYmItdG9nZ2xlLWNoZWNrLW92ZXJhbGwtaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1kaWFtZXRlcik7XG4gIC0tX3NiYi10b2dnbGUtY2hlY2std2lkdGg6IGNhbGMoMiAqIHZhcigtLXNiYi10b2dnbGUtY2hlY2staGVpZ2h0KSk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuOmhvc3QoW3NpemU9J3hzJ10pIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi10b2dnbGUtY2hlY2stZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG59XG5cbjpob3N0KFtzaXplPSdtJ10pIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLW0pO1xuICAtLV9zYmItdG9nZ2xlLWNoZWNrLW92ZXJhbGwtaGVpZ2h0OiBjYWxjKDFlbSAqIHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpKTtcbn1cblxuOmhvc3QoOnN0YXRlKGNoZWNrZWQpKSB7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNoZWNrZWQtY29sb3IpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEtbmVnYXRpdmUtaW52ZXJ0ZWQpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAvLyBBcyB0aGUgY2lyY2xlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgdHJhY2sgYmVsb3csXG4gIC8vIHdlIGhhdmUgdG8gc3VidHJhY3QgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXIgdG8gbm90IG92ZXJzaG9vdCBhdCB0aGUgcmlnaHQgc2lkZS5cbiAgLy8gMTAwJSBvZiBjaXJjbGUgKDI4cHgpIC0gMiAqICgxMDAlICgyOHB4KSAtIDAuNSAqIHdpZHRoICg0OHB4KSkgPT4gMjBweFxuICAtLV9zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS10cmFuc2xhdGU6IGNhbGMoXG4gICAgICAxMDAlIC0gMiAqICgxMDAlIC0gMC41ICogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2std2lkdGgpKVxuICAgICkgLTUwJTtcbiAgLS1fc2JiLXRvZ2dsZS1jaGVjay1pY29uLW9wYWNpdHk6IDE7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRvZ2dsZS1jaGVjay1pY29uLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci01KTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3Itc3Rvcm0pKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1kZWZhdWx0KTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IEdyYXlUZXh0O1xuICAgIC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSdiZWZvcmUnXSkge1xuICAtLV9zYmItdG9nZ2xlLWNoZWNrLWZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jb2xvcik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY3Vyc29yKTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtb2Zmc2V0KSk7XG5cbiAgLy8gQXZvaWRzIHVud2FudGVkIHNwYWNlIGRpc3BsYXllZCBpZiBubyBsYWJlbCB0ZXh0IGlzIHNldC5cbiAgQGluY2x1ZGUgc2JiLnplcm8td2lkdGgtc3BhY2U7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2stZmxleC1kaXJlY3Rpb24sIHJvdy1yZXZlcnNlKTtcbiAgZ2FwOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWdhcCk7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX2xhYmVsIHtcbiAgZmxleC1ncm93OiAxO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgICh2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1kaWFtZXRlcikgLSAodmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgKiAxZW0pKSAvIDJcbiAgKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkKSkpICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX3RyYWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2std2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtY2hlY2staGVpZ2h0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtaW5maW5pdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3IpO1xuXG4gIC8vIFJlc2VydmUgc3BhY2Ugb2Ygb3ZlcmxhcHBpbmcgY2lyY2xlXG4gIG1hcmdpbi1ibG9jazogY2FsYyhcbiAgICAodmFyKC0tX3NiYi10b2dnbGUtY2hlY2stb3ZlcmFsbC1oZWlnaHQpIC0gdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1oZWlnaHQpKSAvIDJcbiAgKTtcbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX2NpcmNsZSB7XG4gIEBpbmNsdWRlIHNiYi5hYnNvbHV0ZS1jZW50ZXIteTtcblxuICB3aWR0aDogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtZGlhbWV0ZXIpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWRpYW1ldGVyKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJvcmRlci13aWR0aCkgdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYm9yZGVyLXN0eWxlKVxuICAgIHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3IpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IHZhcigtLV9zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS10cmFuc2xhdGUsIDAgLTUwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zbGF0ZSBlYXNlIHZhcigtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1zaGFkb3cpO1xufVxuXG4uc2JiLXRvZ2dsZS1jaGVja19faWNvbiB7XG4gIEBpbmNsdWRlIHNiYi5hYnNvbHV0ZS1jZW50ZXIteC15O1xuXG4gIHdpZHRoOiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgb3BhY2l0eTogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2staWNvbi1vcGFjaXR5LCAwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSBlYXNlIHZhcigtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uKTtcbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQsIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiB9IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1jaGVjay5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0b2dnbGUgY2hlY2tib3guXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgdG9nZ2xlIGxhYmVsLlxuICogQHNsb3QgaWNvbiAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBpY29uLiBJZiBgaWNvbi1uYW1lYCBpcyBzZXQsIGEgc2JiLWljb24gd2lsbCBiZSB1c2VkLlxuICogQGV2ZW50IHtFdmVudH0gY2hhbmdlIC0gVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICogQGV2ZW50IHtJbnB1dEV2ZW50fSBpbnB1dCAtIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZUNoZWNrRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvZ2dsZS1jaGVjayc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKiogVmFsdWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHhzIChsZWFuIHRoZW1lIGRlZmF1bHQpLCBzIChzdGFuZGFyZCB0aGVtZSBkZWZhdWx0KSBvciBtLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3hzJyB8ICdzJyB8ICdtJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHRvZ2dsZS4gRGVmYXVsdHMgdG8gJ2FmdGVyJyAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsYWJlbC1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdhZnRlcic7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKG5hbWUgPT09ICdjaGVja2VkJykge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNoZWNrZWQgPSBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICAgIC8vIEFzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiBkb2VzIG5vdCByZWZsZWN0IGNoZWNrZWQgcHJvcGVydHksIHdlIGFkZCBhIGNoZWNrZWQgc3RhdGUuXG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdjaGVja2VkJywgdGhpcy5jaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIucmVuZGVySWNvbk5hbWUoKSB8fCAndGljay1zbWFsbCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1jaGVja1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10b2dnbGUtY2hlY2tfX2NvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1jaGVja19fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX190cmFja1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX19jaXJjbGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1jaGVjayc6IFNiYlRvZ2dsZUNoZWNrRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUN1QmEsK0JBQXFCO21CQUFxQixpQkFDckQsK0JBQStCLFdBQVcsQ0FDM0M7Ozs7Ozs7Ozs7Y0FGWSw4QkFBMEMsWUFFdEQ7Ozt3QkFLRSxVQUFVLENBQUE7dUJBTVYsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7Z0NBRzNCLFNBQVM7SUFBRSxXQUFXO0lBQWtCLFNBQVM7SUFBTSxDQUFDLENBQUE7R0FSekQsYUFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTtHQUtRLGFBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7R0FJakQsYUFBQSxNQUFBLE1BQUEsMkJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxtQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFhLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBYixnQkFBYTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDZCQUFBLGlDQUFBOzs7Ozs7Ozs7R0FkRyxLQUFBLGNBQXNCOzs7R0FDL0IsS0FBQSxTQUF5QixDQUFDLFVBQVUscUJBQU0sQ0FBQzs7RUFJbEUsMEJBQUEsa0JBQUEsTUFBQSxxQkFBa0MsS0FBSTs7RUFBdEMsSUFBZ0IsUUFBSztHQUFBLE9BQUEsS0FBQTs7RUFBckIsSUFBZ0IsTUFBSyxPQUFBO0dBQUEsS0FBQSwwQkFBQTs7RUFLUSwwQkFBQSxrQkFBQSxNQUFBLHlCQUFBLEVBQUEsa0JBQUEsTUFBQSxvQkFBZ0QsS0FBSTs7OztFQUFwRCxJQUFnQixPQUFJO0dBQUEsT0FBQSxLQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7R0FBQSxLQUFBLHlCQUFBOztFQUlqRCxtQ0FBQSxrQkFBQSxNQUFBLHdCQUFBLEVBQUEsa0JBQUEsTUFBQSw2QkFBb0QsUUFBTzs7RUFBM0QsSUFBZ0IsZ0JBQWE7R0FBQSxPQUFBLEtBQUE7O0VBQTdCLElBQWdCLGNBQWEsT0FBQTtHQUFBLEtBQUEsa0NBQUE7O0VBRWIsY0FDZCxNQUNBLFVBQ0EsU0FBNkI7R0FFN0IsTUFBTSxjQUFjLE1BQU0sVUFBVSxRQUFRO0dBQzVDLElBQUksU0FBUyxXQUFXO0lBQ3RCLEtBQUssVUFBVSxjQUFjLEdBQUcsS0FBSztJQUVyQyxLQUFLLFlBQVksV0FBVyxLQUFLLFFBQVE7OztFQUkxQixpQkFBYztHQUMvQixPQUFPLE1BQU0sZ0JBQWdCLElBQUk7O0VBR2hCLFNBQU07R0FDdkIsT0FBTyxJQUFJOzs7Ozs7OztzREFRdUMsS0FBSyxnQkFBZ0IsQ0FBQSJ9
155
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWNoZWNrLmNvbXBvbmVudC1CSVY3akZJYy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlLWNoZWNrL3RvZ2dsZS1jaGVjay5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUtY2hlY2svdG9nZ2xlLWNoZWNrLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTZ4KVxuICApO1xuICAtLV9zYmItdG9nZ2xlLWNoZWNrLW92ZXJhbGwtaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1kaWFtZXRlcik7XG4gIC0tX3NiYi10b2dnbGUtY2hlY2std2lkdGg6IGNhbGMoMiAqIHZhcigtLXNiYi10b2dnbGUtY2hlY2staGVpZ2h0KSk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuOmhvc3QoW3NpemU9J3hzJ10pIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi10b2dnbGUtY2hlY2stZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtcyk7XG59XG5cbjpob3N0KFtzaXplPSdtJ10pIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLW0pO1xuICAtLV9zYmItdG9nZ2xlLWNoZWNrLW92ZXJhbGwtaGVpZ2h0OiBjYWxjKDFlbSAqIHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpKTtcbn1cblxuOmhvc3QoOnN0YXRlKGNoZWNrZWQpKSB7XG4gIC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNoZWNrZWQtY29sb3IpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEtbmVnYXRpdmUtaW52ZXJ0ZWQpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAvLyBBcyB0aGUgY2lyY2xlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgdHJhY2sgYmVsb3csXG4gIC8vIHdlIGhhdmUgdG8gc3VidHJhY3QgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXIgdG8gbm90IG92ZXJzaG9vdCBhdCB0aGUgcmlnaHQgc2lkZS5cbiAgLy8gMTAwJSBvZiBjaXJjbGUgKDI4cHgpIC0gMiAqICgxMDAlICgyOHB4KSAtIDAuNSAqIHdpZHRoICg0OHB4KSkgPT4gMjBweFxuICAtLV9zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS10cmFuc2xhdGU6IGNhbGMoXG4gICAgICAxMDAlIC0gMiAqICgxMDAlIC0gMC41ICogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2std2lkdGgpKVxuICAgICkgLTUwJTtcbiAgLS1fc2JiLXRvZ2dsZS1jaGVjay1pY29uLW9wYWNpdHk6IDE7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRvZ2dsZS1jaGVjay1pY29uLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci01KTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3Itc3Rvcm0pKTtcbiAgLS1zYmItdG9nZ2xlLWNoZWNrLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1kZWZhdWx0KTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3I6IEdyYXlUZXh0O1xuICAgIC0tc2JiLXRvZ2dsZS1jaGVjay1iYWNrZ3JvdW5kLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSdiZWZvcmUnXSkge1xuICAtLV9zYmItdG9nZ2xlLWNoZWNrLWZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jb2xvcik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY3Vyc29yKTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtb2Zmc2V0KSk7XG5cbiAgLy8gQXZvaWRzIHVud2FudGVkIHNwYWNlIGRpc3BsYXllZCBpZiBubyBsYWJlbCB0ZXh0IGlzIHNldC5cbiAgQGluY2x1ZGUgc2JiLnplcm8td2lkdGgtc3BhY2U7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG59XG5cbi5zYmItdG9nZ2xlLWNoZWNrX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2stZmxleC1kaXJlY3Rpb24sIHJvdy1yZXZlcnNlKTtcbiAgZ2FwOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWdhcCk7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX2xhYmVsIHtcbiAgZmxleC1ncm93OiAxO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgICh2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS1kaWFtZXRlcikgLSAodmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgKiAxZW0pKSAvIDJcbiAgKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkKSkpICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX3RyYWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2std2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtY2hlY2staGVpZ2h0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtaW5maW5pdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJhY2tncm91bmQtY29sb3IpO1xuXG4gIC8vIFJlc2VydmUgc3BhY2Ugb2Ygb3ZlcmxhcHBpbmcgY2lyY2xlXG4gIG1hcmdpbi1ibG9jazogY2FsYyhcbiAgICAodmFyKC0tX3NiYi10b2dnbGUtY2hlY2stb3ZlcmFsbC1oZWlnaHQpIC0gdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1oZWlnaHQpKSAvIDJcbiAgKTtcbn1cblxuLnNiYi10b2dnbGUtY2hlY2tfX2NpcmNsZSB7XG4gIEBpbmNsdWRlIHNiYi5hYnNvbHV0ZS1jZW50ZXIteTtcblxuICB3aWR0aDogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtZGlhbWV0ZXIpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWRpYW1ldGVyKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWJvcmRlci13aWR0aCkgdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYm9yZGVyLXN0eWxlKVxuICAgIHZhcigtLXNiYi10b2dnbGUtY2hlY2stY2lyY2xlLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1jaXJjbGUtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItdG9nZ2xlLWNoZWNrLWljb24tY29sb3IpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IHZhcigtLV9zYmItdG9nZ2xlLWNoZWNrLWNpcmNsZS10cmFuc2xhdGUsIDAgLTUwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zbGF0ZSBlYXNlIHZhcigtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2JiLXRvZ2dsZS1jaGVjay1zaGFkb3cpO1xufVxuXG4uc2JiLXRvZ2dsZS1jaGVja19faWNvbiB7XG4gIEBpbmNsdWRlIHNiYi5hYnNvbHV0ZS1jZW50ZXIteC15O1xuXG4gIHdpZHRoOiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgb3BhY2l0eTogdmFyKC0tX3NiYi10b2dnbGUtY2hlY2staWNvbi1vcGFjaXR5LCAwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSBlYXNlIHZhcigtLXNiYi10b2dnbGUtY2hlY2stYW5pbWF0aW9uLWR1cmF0aW9uKTtcbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQsIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiB9IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1jaGVjay5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0b2dnbGUgY2hlY2tib3guXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgdG9nZ2xlIGxhYmVsLlxuICogQHNsb3QgaWNvbiAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBpY29uLiBJZiBgaWNvbi1uYW1lYCBpcyBzZXQsIGEgc2JiLWljb24gd2lsbCBiZSB1c2VkLlxuICogQGV2ZW50IHtFdmVudH0gY2hhbmdlIC0gVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICogQGV2ZW50IHtJbnB1dEV2ZW50fSBpbnB1dCAtIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZUNoZWNrRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYkljb25OYW1lTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvZ2dsZS1jaGVjayc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKiogVmFsdWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHhzIChsZWFuIHRoZW1lIGRlZmF1bHQpLCBzIChzdGFuZGFyZCB0aGVtZSBkZWZhdWx0KSBvciBtLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3hzJyB8ICdzJyB8ICdtJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHRvZ2dsZS4gRGVmYXVsdHMgdG8gJ2FmdGVyJyAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsYWJlbC1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdhZnRlcic7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKG5hbWUgPT09ICdjaGVja2VkJykge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNoZWNrZWQgPSBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICAgIC8vIEFzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiBkb2VzIG5vdCByZWZsZWN0IGNoZWNrZWQgcHJvcGVydHksIHdlIGFkZCBhIGNoZWNrZWQgc3RhdGUuXG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdjaGVja2VkJywgdGhpcy5jaGVja2VkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIucmVuZGVySWNvbk5hbWUoKSB8fCAndGljay1zbWFsbCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1jaGVja1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi10b2dnbGUtY2hlY2tfX2NvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1jaGVja19fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX190cmFja1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX19jaXJjbGVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLWNoZWNrX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1jaGVjayc6IFNiYlRvZ2dsZUNoZWNrRWxlbWVudDtcbiAgfVxufVxuIl0s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
@@ -6,4 +6,4 @@ SbbToggleCheckElement.define();
6
6
  //#endregion
7
7
  export { SbbToggleCheckElement };
8
8
 
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWNoZWNrLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUtY2hlY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJUb2dnbGVDaGVja0VsZW1lbnQgfSBmcm9tICcuL3RvZ2dsZS1jaGVjay5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi90b2dnbGUtY2hlY2sucHVyZS50cyc7XG5cblNiYlRvZ2dsZUNoZWNrRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLHNCQUFzQixRQUFRIn0=
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWNoZWNrLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUtY2hlY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJUb2dnbGVDaGVja0VsZW1lbnQgfSBmcm9tICcuL3RvZ2dsZS1jaGVjay5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi90b2dnbGUtY2hlY2sucHVyZS50cyc7XG5cblNiYlRvZ2dsZUNoZWNrRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLHNCQUFzQixPQUFNIn0=
@@ -161,4 +161,4 @@ var SbbToggleOptionElement = (() => {
161
161
  //#endregion
162
162
  export { SbbToggleOptionElement as t };
163
163
 
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5jb21wb25lbnQtRFJ4d0xTS1UuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS1vcHRpb24vdG9nZ2xlLW9wdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1nYXApO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmUpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tY29sb3IpO1xuICBjdXJzb3I6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWN1cnNvciwgdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtjaGVja2VkXSkge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG59XG5cbjpob3N0KFtkaXNhYmxlZF0pIHtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3I6IHVuc2V0O1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWNsb3VkKSk7XG59XG5cbi5zYmItdG9nZ2xlLW9wdGlvbl9fbGFiZWwge1xuICBAaW5jbHVkZSBzYmIuZWxsaXBzaXM7XG59XG5cbnNiYi1pY29uLFxuOjpzbG90dGVkKHNiYi1pY29uKSB7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24taWNvbi1taW4tc2l6ZSk7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemUpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSwgU2JiRGlzYWJsZWRNaXhpbiwgU2JiRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdG9nZ2xlIG9wdGlvbiB3aXRoaW4gYSBgc2JiLXRvZ2dsZWAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgbGFiZWwgb2YgdGhlIHRvZ2dsZSBvcHRpb24uXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYHNiYi1pY29uYC5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSAoVCA9IHN0cmluZykgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvZ2dsZS1vcHRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAncmFkaW8nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZS1vcHRpb24gaXMgY2hlY2tlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVmFsdWUgb2YgdG9nZ2xlLW9wdGlvbi4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlOiBTYmJUb2dnbGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gV2UgbmVlZCB0byBsaXN0ZW4gaW5wdXQgZXZlbnQgb24gaG9zdCBhcyB3aXRoIGtleWJvYXJkIG5hdmlnYXRpb25cbiAgICAvLyB0aGUgSW5wdXQgRXZlbnQgaXMgdHJpZ2dlcmVkIGZyb20gc2JiLXRvZ2dsZS5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW5wdXQnLCAoKSA9PiB0aGlzLl9oYW5kbGVJbnB1dCgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24/Lih0cnVlKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdlIGNhbiB1c2UgY2xvc2VzdCBoZXJlLCBhcyB3ZSBleHBlY3QgdGhlIHBhcmVudCBzYmItdG9nZ2xlIHRvIGJlIGluIGxpZ2h0IERPTS5cbiAgICB0aGlzLl90b2dnbGUgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLXRvZ2dsZScpID8/IG51bGw7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgICB0aGlzLl90b2dnbGU/LnVwZGF0ZVBpbGxQb3NpdGlvbj8uKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdG9nZ2xlID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3RvZ2dsZT8udXBkYXRlUGlsbFBvc2l0aW9uPy4odHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2NoZWNrZWQnKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNoZWNrZWQgPSBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuX3VuY2hlY2tPdGhlck9wdGlvbnMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgdGhpcy5faGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91bmNoZWNrT3RoZXJPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX3RvZ2dsZT8ub3B0aW9ucy5maWx0ZXIoKG8pID0+IG8gIT09IHRoaXMpLmZvckVhY2goKG8pID0+IChvLmNoZWNrZWQgPSBmYWxzZSkpO1xuICAgIHRoaXMuX3RvZ2dsZT8uc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgdGhpcy5fdW5jaGVja090aGVyT3B0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmVyaWZ5VGFiaW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJbmRleCA9IHRoaXMuY2hlY2tlZCAmJiAhdGhpcy5kaXNhYmxlZCA/IDAgOiAtMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi10b2dnbGUtb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1vcHRpb24nOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ3dCYSxnQ0FBc0I7bUJBQXFCLGlCQUN0RCxpQkFBaUIsV0FBVyxDQUM3Qjs7Ozs7OztjQUZZLCtCQUEyQyxZQUV2RDs7OzBCQU1FLFdBQVcsRUFDWCxTQUFTO0lBQUUsU0FBUztJQUFNLE1BQU07SUFBUyxDQUFDLENBQUE7d0JBSTFDLFVBQVUsQ0FBQTtHQUhYLGFBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7R0FJdkIsYUFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTs7Ozs7Ozs7O0dBWFcsS0FBQSxjQUFzQjs7O0dBQ3RCLEtBQUEsT0FBTzs7O0dBQ2hCLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLHNCQUFNLENBQUM7O0VBS2xFOztFQUFBLElBQWdCLFVBQU87R0FBQSxPQUFBLEtBQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtHQUFBLEtBQUEsNEJBQUE7O0VBSXZCOztFQUFBLElBQWdCLFFBQUs7R0FBQSxPQUFBLEtBQUE7O0VBQXJCLElBQWdCLE1BQUssT0FBQTtHQUFBLEtBQUEsMEJBQUE7O0VBSXJCLGNBQUE7R0FDRSxPQUFPO0dBVE8sS0FBQSw0QkFBQSxrQkFBQSxNQUFBLHVCQUFtQixNQUFLO0dBSXhCLEtBQUEsMkJBQUEsa0JBQUEsTUFBQSwyQkFBQSxFQUFBLGtCQUFBLE1BQUEscUJBQWtCLEtBQUk7R0FFOUIsS0FBQSxXQUFPLGtCQUFBLE1BQUEseUJBQUEsRUFBNEI7R0FNekMsS0FBSyxtQkFBbUIsZUFBZSxLQUFLLGNBQWMsQ0FBQztHQUMzRCxLQUFLLG1CQUFtQixlQUFjO0lBQ3BDLElBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLFNBQzFCLEtBQUssY0FBYyxJQUFJLFdBQVcsU0FBUztLQUFFLFNBQVM7S0FBTSxVQUFVO0tBQU0sQ0FBQyxDQUFDO0tBRWhGO0dBRUYsS0FBSyxjQUNILElBQUksaUJBQWlCLE1BQU07SUFDekIsYUFBYTtJQUNiLGdCQUFnQixLQUFLLFNBQVMscUJBQXFCLEtBQUE7SUFDcEQsQ0FBQyxDQUNIOztFQUdhLG9CQUFpQjtHQUMvQixNQUFNLG1CQUFtQjtHQUd6QixLQUFLLFVBQVUsS0FBSyxVQUFVLGFBQWEsSUFBSTtHQUMvQyxLQUFLLGlCQUFpQjtHQUN0QixLQUFLLFNBQVMscUJBQXFCLEtBQUs7O0VBRzFCLHVCQUFvQjtHQUNsQyxNQUFNLHNCQUFzQjtHQUM1QixLQUFLLFVBQVU7O0VBR0UsYUFBYSxtQkFBdUM7R0FDckUsTUFBTSxhQUFhLGtCQUFrQjtHQUVyQyxLQUFLLFNBQVMscUJBQXFCLEtBQUs7O0VBR3ZCLFdBQVcsbUJBQXVDO0dBQ25FLE1BQU0sV0FBVyxrQkFBa0I7R0FFbkMsSUFBSSxrQkFBa0IsSUFBSSxVQUFVLEVBQUU7SUFDcEMsS0FBSyxVQUFVLGNBQWMsR0FBRyxLQUFLO0lBQ3JDLEtBQUssaUJBQWlCO0lBQ3RCLElBQUksS0FBSyxTQUNQLEtBQUssc0JBQXNCOztHQUcvQixJQUFJLGtCQUFrQixJQUFJLFdBQVcsRUFDbkMsS0FBSyx1QkFBdUI7O0VBSXhCLHVCQUFvQjtHQUMxQixLQUFLLFNBQVMsUUFBUSxRQUFRLE1BQU0sTUFBTSxLQUFLLENBQUMsU0FBUyxNQUFPLEVBQUUsVUFBVSxNQUFPO0dBQ25GLEtBQUssU0FBUyxlQUFlOztFQUd2Qix3QkFBcUI7R0FDM0IsS0FBSyxVQUFVLGVBQWUsS0FBSyxXQUFXLFNBQVM7R0FDdkQsS0FBSyxpQkFBaUI7O0VBR2hCLGVBQVk7R0FDbEIsSUFBSSxLQUFLLFVBQ1A7R0FFRixLQUFLLFVBQVU7R0FDZixLQUFLLHNCQUFzQjs7RUFHckIsa0JBQWU7R0FDckIsS0FBSyxXQUFXLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxJQUFJOztFQUdwQyxTQUFNO0dBQ3ZCLE9BQU8sSUFBSTtRQUNQLEtBQUssZ0JBQWdCLENBQUEifQ==
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5jb21wb25lbnQtRFJ4d0xTS1UuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS1vcHRpb24vdG9nZ2xlLW9wdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1nYXApO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmUpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tY29sb3IpO1xuICBjdXJzb3I6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWN1cnNvciwgdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtjaGVja2VkXSkge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG59XG5cbjpob3N0KFtkaXNhYmxlZF0pIHtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3I6IHVuc2V0O1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWNsb3VkKSk7XG59XG5cbi5zYmItdG9nZ2xlLW9wdGlvbl9fbGFiZWwge1xuICBAaW5jbHVkZSBzYmIuZWxsaXBzaXM7XG59XG5cbnNiYi1pY29uLFxuOjpzbG90dGVkKHNiYi1pY29uKSB7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24taWNvbi1taW4tc2l6ZSk7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemUpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSwgU2JiRGlzYWJsZWRNaXhpbiwgU2JiRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdG9nZ2xlIG9wdGlvbiB3aXRoaW4gYSBgc2JiLXRvZ2dsZWAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgbGFiZWwgb2YgdGhlIHRvZ2dsZSBvcHRpb24uXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYHNiYi1pY29uYC5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSAoVCA9IHN0cmluZykgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvZ2dsZS1vcHRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAncmFkaW8nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZS1vcHRpb24gaXMgY2hlY2tlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVmFsdWUgb2YgdG9nZ2xlLW9wdGlvbi4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlOiBTYmJUb2dnbGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gV2UgbmVlZCB0byBsaXN0ZW4gaW5wdXQgZXZlbnQgb24gaG9zdCBhcyB3aXRoIGtleWJvYXJkIG5hdmlnYXRpb25cbiAgICAvLyB0aGUgSW5wdXQgRXZlbnQgaXMgdHJpZ2dlcmVkIGZyb20gc2JiLXRvZ2dsZS5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW5wdXQnLCAoKSA9PiB0aGlzLl9oYW5kbGVJbnB1dCgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24/Lih0cnVlKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdlIGNhbiB1c2UgY2xvc2VzdCBoZXJlLCBhcyB3ZSBleHBlY3QgdGhlIHBhcmVudCBzYmItdG9nZ2xlIHRvIGJlIGluIGxpZ2h0IERPTS5cbiAgICB0aGlzLl90b2dnbGUgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLXRvZ2dsZScpID8/IG51bGw7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgICB0aGlzLl90b2dnbGU/LnVwZGF0ZVBpbGxQb3NpdGlvbj8uKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdG9nZ2xlID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3RvZ2dsZT8udXBkYXRlUGlsbFBvc2l0aW9uPy4odHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2NoZWNrZWQnKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUNoZWNrZWQgPSBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuX3VuY2hlY2tPdGhlck9wdGlvbnMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgdGhpcy5faGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91bmNoZWNrT3RoZXJPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX3RvZ2dsZT8ub3B0aW9ucy5maWx0ZXIoKG8pID0+IG8gIT09IHRoaXMpLmZvckVhY2goKG8pID0+IChvLmNoZWNrZWQgPSBmYWxzZSkpO1xuICAgIHRoaXMuX3RvZ2dsZT8uc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgdGhpcy5fdW5jaGVja090aGVyT3B0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmVyaWZ5VGFiaW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJbmRleCA9IHRoaXMuY2hlY2tlZCAmJiAhdGhpcy5kaXNhYmxlZCA/IDAgOiAtMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi10b2dnbGUtb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1vcHRpb24nOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ3dCYSxnQ0FBc0I7bUJBQXFCLGlCQUN0RCxpQkFBaUIsVUFBVSxDQUFDOzs7Ozs7O2NBRGpCLCtCQUEyQyxZQUV2RDs7OzBCQU1FLFVBQVMsR0FDVCxTQUFTO0lBQUUsU0FBUztJQUFNLE1BQU07R0FBTyxDQUFFLENBQUM7d0JBSTFDLFNBQVEsQ0FBRTtHQUhYLGFBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBUCxVQUFPO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHVCQUFBLDBCQUFBO0dBSXZCLGFBQUEsTUFBQSxNQUFBLG1CQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFLLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBTCxRQUFLO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHFCQUFBLHdCQUFBOzs7Ozs7Ozs7R0FYVyxLQUFBLGNBQXNCO0VBQW9COztHQUMxQyxLQUFBLE9BQU87RUFBUTs7R0FDeEIsS0FBQSxTQUF5QixDQUFDLFVBQVUscUJBQUssQ0FBQztFQUFFO0VBS25FOztFQUFBLElBQWdCLFVBQU87R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUF2QixJQUFnQixRQUFPLE9BQUE7R0FBQSxLQUFBLDRCQUFBO0VBQUE7RUFJdkI7O0VBQUEsSUFBZ0IsUUFBSztHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXJCLElBQWdCLE1BQUssT0FBQTtHQUFBLEtBQUEsMEJBQUE7RUFBQTtFQUlyQixjQUFBO0dBQ0UsTUFBSztHQVRTLEtBQUEsNEJBQUEsa0JBQUEsTUFBQSx1QkFBbUIsS0FBSztHQUl4QixLQUFBLDJCQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FBQSxrQkFBQSxNQUFBLHFCQUFrQixJQUFJO0dBRTlCLEtBQUEsV0FBTyxrQkFBQSxNQUFBLHdCQUFBLEdBQTRCO0dBTXpDLEtBQUssbUJBQW1CLGVBQWUsS0FBSyxhQUFZLENBQUU7R0FDMUQsS0FBSyxtQkFBbUIsZUFBYztJQUNwQyxJQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxTQUMxQixLQUFLLGNBQWMsSUFBSSxXQUFXLFNBQVM7S0FBRSxTQUFTO0tBQU0sVUFBVTtJQUFJLENBQUUsQ0FBQztHQUVqRixDQUFDO0dBRUQsS0FBSyxjQUNILElBQUksaUJBQWlCLE1BQU07SUFDekIsYUFBYTtJQUNiLGdCQUFnQixLQUFLLFNBQVMscUJBQXFCLElBQUk7SUFDeEQsQ0FBQztFQUVOO0VBRWdCLG9CQUFpQjtHQUMvQixNQUFNLGtCQUFpQjtHQUd2QixLQUFLLFVBQVUsS0FBSyxVQUFVLFlBQVksS0FBSztHQUMvQyxLQUFLLGdCQUFlO0dBQ3BCLEtBQUssU0FBUyxxQkFBcUIsSUFBSTtFQUN6QztFQUVnQix1QkFBb0I7R0FDbEMsTUFBTSxxQkFBb0I7R0FDMUIsS0FBSyxVQUFVO0VBQ2pCO0VBRW1CLGFBQWEsbUJBQXVDO0dBQ3JFLE1BQU0sYUFBYSxpQkFBaUI7R0FFcEMsS0FBSyxTQUFTLHFCQUFxQixJQUFJO0VBQ3pDO0VBRW1CLFdBQVcsbUJBQXVDO0dBQ25FLE1BQU0sV0FBVyxpQkFBaUI7R0FFbEMsSUFBSSxrQkFBa0IsSUFBSSxTQUFTLEdBQUc7SUFDcEMsS0FBSyxVQUFVLGNBQWMsR0FBRyxLQUFLO0lBQ3JDLEtBQUssZ0JBQWU7SUFDcEIsSUFBSSxLQUFLLFNBQ1AsS0FBSyxxQkFBb0I7R0FFN0I7R0FDQSxJQUFJLGtCQUFrQixJQUFJLFVBQVUsR0FDbEMsS0FBSyxzQkFBcUI7RUFFOUI7RUFFUSx1QkFBb0I7R0FDMUIsS0FBSyxTQUFTLFFBQVEsUUFBUSxNQUFNLE1BQU0sSUFBSSxFQUFFLFNBQVMsTUFBTyxFQUFFLFVBQVUsS0FBTTtHQUNsRixLQUFLLFNBQVMsY0FBYTtFQUM3QjtFQUVRLHdCQUFxQjtHQUMzQixLQUFLLFVBQVUsZUFBZSxLQUFLLFdBQVcsU0FBUztHQUN2RCxLQUFLLGdCQUFlO0VBQ3RCO0VBRVEsZUFBWTtHQUNsQixJQUFJLEtBQUssVUFDUDtHQUVGLEtBQUssVUFBVTtHQUNmLEtBQUsscUJBQW9CO0VBQzNCO0VBRVEsa0JBQWU7R0FDckIsS0FBSyxXQUFXLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxJQUFJO0VBQ3ZEO0VBRW1CLFNBQU07R0FDdkIsT0FBTyxJQUFJO1FBQ1AsS0FBSyxlQUFjLEVBQUE7Ozs7O0VBS3pCIn0=
@@ -240,4 +240,4 @@ var SbbToggleElement = (() => {
240
240
  //#endregion
241
241
  export { SbbToggleElement as t };
242
242
 
243
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC1CMDNrNXFjMS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLXRvZ2dsZS1taW4td2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZSkgKiA0ICsgdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbClcbiAgKTtcbiAgLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1ucyk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdzdGFydCBlbmQnO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNiYi10b2dnbGUtd2lkdGgsIGZpdC1jb250ZW50KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1fc2JiLXRvZ2dsZS1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIC8vIFNldCB0aGUgbGluZS1oZWlnaHQgZm9yIGFkamFjZW50IGVsZW1lbnRzIGluIG9yZGVyIHRvIHByZXZlbnQgZnJvbSBpbmZsdWVuY2Ugb2YgYSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHQuXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBXaGl0ZSBwaWxsIG9mIHNlbGVjdGVkIHRvZ2dsZSBvcHRpb25cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBncmlkLWFyZWE6IHN0YXJ0IC8gc3RhcnQgLyBlbmQgLyBlbmQ7XG4gICAgbWFyZ2luLWlubGluZTogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCwgMCkgdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tcmlnaHQsIDApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci13aWR0aClcbiAgICAgIHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZSkgdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLWNvbG9yKTtcblxuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICBwcm9wZXJ0eTogbWFyZ2luLWlubGluZS1zdGFydCwgbWFyZ2luLWlubGluZS1lbmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFja2dyb3VuZFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZ3JpZC1hcmVhOiBzdGFydCAvIHN0YXJ0IC8gZW5kIC8gZW5kO1xuICAgIG9yZGVyOiAtMTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zYmItdG9nZ2xlLWJhY2tncm91bmQtY29sb3IpO1xuICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtYmFja2dyb3VuZC1pbnNldCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyICogdmFyKC0tc2JiLXRvZ2dsZS1iYWNrZ3JvdW5kLWluc2V0KSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvZ2dsZS1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG4gIH1cbn1cblxuOmhvc3QoW2V2ZW5dKSB7XG4gIC0tc2JiLXRvZ2dsZS13aWR0aDogMTAwJTtcbiAgLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcbn1cblxuOmhvc3QoOmRpc2FibGVkKSB7XG4gIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXNtb2tlKVxuICApO1xuICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZTogZGFzaGVkO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lLXMpO1xuICAtLXNiYi10b2dnbGUtaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWhlaWdodC1zKTtcbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmUtbSk7XG4gIC0tc2JiLXRvZ2dsZS1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0LW0pO1xufVxuXG46aG9zdCg6aXMoOm5vdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSwgOnN0YXRlKGRpc2FibGUtYW5pbWF0aW9uLW9uLXJlc2l6aW5nKSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246Zmlyc3Qtb2YtdHlwZSkge1xuICBncmlkLWFyZWE6IHN0YXJ0O1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246bGFzdC1vZi10eXBlKSB7XG4gIGdyaWQtYXJlYTogZW5kO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgaW50ZXJhY3Rpdml0eUNoZWNrZXIsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUb2dnbGVPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vdG9nZ2xlLW9wdGlvbi90b2dnbGUtb3B0aW9uLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIHR3byBgc2JiLXRvZ2dsZS1vcHRpb25gLCBhY3RpbmcgYXMgYSB0b2dnbGUgYnV0dG9uLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGA8c2JiLXRvZ2dsZS1vcHRpb24+YCBlbGVtZW50cyB0byB0aGUgdG9nZ2xlLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9nZ2xlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3JhZGlvZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNldCB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBmaXhlZDsgaWYgZmFsc2UsXG4gICAqIHRoZSB3aWR0aCBpcyBkeW5hbWljIGJhc2VkIG9uIHRoZSBsYWJlbCBvZiB0aGUgc2JiLXRvZ2dsZS1vcHRpb24uXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXZlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIChsZWFuIHRoZW1lIGRlZmF1bHQpIG9yIG0gKHN0YW5kYXJkIHRoZW1lIGRlZmF1bHQpLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgdG9nZ2xlLiBJdCBuZWVkcyB0byBiZSBtdXRhYmxlIHNpbmNlIGl0IGlzIHVwZGF0ZWQgd2hlbmV2ZXJcbiAgICogYSBuZXcgb3B0aW9uIGlzIHNlbGVjdGVkIChzZWUgdGhlIGBvblRvZ2dsZU9wdGlvblNlbGVjdCgpYCBtZXRob2QpLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fZmFsbGJhY2tWYWx1ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgID8gKHRoaXMuX2ZhbGxiYWNrVmFsdWUgPz8gbnVsbClcbiAgICAgIDogKHRoaXMub3B0aW9ucy5maW5kKChvKSA9PiBvLmNoZWNrZWQpPy52YWx1ZSA/PyB0aGlzLm9wdGlvbnNbMF0/LnZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgX2ZhbGxiYWNrVmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIGNoaWxkIGluc3RhbmNlcyBvZiBzYmItdG9nZ2xlLW9wdGlvbiBhcyBhbiBhcnJheS4gKi9cbiAgcHVibGljIGdldCBvcHRpb25zKCk6IFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+Pignc2JiLXRvZ2dsZS1vcHRpb24nKSA/PyBbXSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2lucHV0JywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXQoKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Zvcm1EaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl91cGRhdGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIC8vIEJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlLCBpbml0IHdpdGggdGhlIGZhbGxiYWNrIHZhbHVlLlxuICAgIC8vIFRoZSB3aWxsVXBkYXRlIGhvb2sgaXMgc2FmZXIgdGhhbiB0aGUgJ3ZhbHVlJyBzZXR0ZXIuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZCh0aGlzLl9mYWxsYmFja1ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLCBib3RoIHByb2dyYW1tYXRpY2FsbHkgb3IgYnkgdXNlciBpbnRlcmFjdGlvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdHVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgIHRoaXMudXBkYXRlUGlsbFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdG8gdGhlIGluaXQgdmFsdWUgaWYgcHJlc2VudC4gU2VsZWN0IHRoZSBmaXJzdCBvcHRpb24sIG90aGVyd2lzZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICh0aGlzLmhhc0F0dHJpYnV0ZSgndmFsdWUnKSA/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpIDogbnVsbCkgYXMgVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gKHN0YXRlIGFzIFQpID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgZGF0YSA9IGZvcm1EYXRhLmdldCh0aGlzLm5hbWUpO1xuICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogKGRhdGEgYXMgVCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB1cGRhdGVQaWxsUG9zaXRpb24ocmVzaXppbmcgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmxlbmd0aCA8IDIgfHxcbiAgICAgIG9wdGlvbnMuZXZlcnkoKG8pID0+ICFvLmNoZWNrZWQpIHx8XG4gICAgICBvcHRpb25zLmV2ZXJ5KChvKSA9PiAhby5jbGllbnRXaWR0aClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbi1vbi1yZXNpemluZycsIHJlc2l6aW5nKTtcblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gb3B0aW9uc1swXTtcbiAgICBjb25zdCBpc0ZpcnN0Q2hlY2tlZCA9IGZpcnN0T3B0aW9uLmNoZWNrZWQ7XG4gICAgY29uc3QgcGlsbExlZnQgPSBpc0ZpcnN0Q2hlY2tlZCA/ICcwcHgnIDogYCR7Zmlyc3RPcHRpb24uY2xpZW50V2lkdGh9cHhgO1xuICAgIGNvbnN0IHBpbGxSaWdodCA9IGlzRmlyc3RDaGVja2VkID8gYCR7dGhpcy5jbGllbnRXaWR0aCAtIGZpcnN0T3B0aW9uLmNsaWVudFdpZHRofXB4YCA6ICcwcHgnO1xuXG4gICAgaWYgKHBpbGxSaWdodCA9PT0gJzBweCcgJiYgcGlsbExlZnQgPT09ICcwcHgnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCcsIHBpbGxMZWZ0KTtcbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItdG9nZ2xlLW9wdGlvbi1yaWdodCcsIHBpbGxSaWdodCk7XG5cbiAgICAvLyBUcmlnZ2VycyBhIGxheW91dCByZWZsb3cgd2hpY2ggaXMgbmVlZGVkIHRvIGF2b2lkIGFuaW1hdGlvbiBnbGl0Y2hlcy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMub2Zmc2V0V2lkdGg7XG5cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBhIHRyYW5zaXRpb24gZ2xpdGNoLCB3ZSBoYXZlIHRvIGtub3cgd2hlbiB0aGUgZmlyc3QgdmFsdWVzIHdlcmUgc2V0LlxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZURpc2FibGVkKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZUNoYW5nZWQodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID1cbiAgICAgIG9wdGlvbnMuZmluZCgobykgPT4gdmFsdWUgPT09IG8udmFsdWUpID8/IG9wdGlvbnMuZmluZCgobykgPT4gby5jaGVja2VkKSA/PyBvcHRpb25zWzBdO1xuXG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYgJiYgIWlzU2VydmVyKSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihgc2JiLXRvZ2dsZTogTm8gYXZhaWxhYmxlIG9wdGlvbnMhICgke3RoaXMuaWQgfHwgJ05vIGlkJ30pYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlbGVjdGVkT3B0aW9uLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB0b2dnbGVPcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICB0b2dnbGVPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gdXNlciBpbnRlcmFjdGlvbiAoY2xpY2sgb3Iga2V5Ym9hcmQpXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c0NoYW5nZWQoKTtcbiAgICAvKipcbiAgICAgKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRUb2dnbGVPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgICh0KSA9PiAhdC5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUodCksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkVG9nZ2xlT3B0aW9ucyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBpc1J0bCA9IHRoaXMubWF0Y2hlcygnOmRpcihydGwpJyk7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQpID8/IG9wdGlvbnNbMF07XG4gICAgY29uc3QgYXZhaWxhYmxlT3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgIC5zbGljZShjdXJyZW50SW5kZXggKyAxKVxuICAgICAgLmNvbmNhdChvcHRpb25zLnNsaWNlKDAsIGN1cnJlbnRJbmRleCkpXG4gICAgICAuZmlsdGVyKChvKSA9PiAhby5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUobykpO1xuICAgIGlmICghaXNSdGwgPyBldnQua2V5ID09PSAnICcgfHwgZXZ0LmtleSA9PT0gJ0Fycm93UmlnaHQnIDogZXZ0LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIHRoaXMuX3NlbGVjdEFuZEZvY3VzT3B0aW9uKGF2YWlsYWJsZU9wdGlvbnNbMF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChpc1J0bCA/IGV2dC5rZXkgPT09ICcgJyB8fCBldnQua2V5ID09PSAnQXJyb3dSaWdodCcgOiBldnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgdGhpcy5fc2VsZWN0QW5kRm9jdXNPcHRpb24oYXZhaWxhYmxlT3B0aW9ucy5hdCgtMSkpO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0QW5kRm9jdXNPcHRpb24ob3B0aW9uOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi5jaGVja2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICBvcHRpb24uZm9jdXMoKTtcbiAgICBvcHRpb24uZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX3VwZGF0ZVRvZ2dsZX0+PC9zbG90PiBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9nZ2xlJzogU2JiVG9nZ2xlRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQzZCYSwwQkFBZ0I7bUJBQXFCLGlCQUNoRCx1QkFBdUIsV0FBVyxDQUNuQzs7Ozs7Ozs7O2NBRlkseUJBQXFDLFlBRWpEOzs7dUJBWUUsV0FBVyxFQUNYLFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtJQUFTLENBQUMs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
243
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC1CMDNrNXFjMS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLXRvZ2dsZS1taW4td2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZSkgKiA0ICsgdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbClcbiAgKTtcbiAgLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1ucyk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdzdGFydCBlbmQnO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNiYi10b2dnbGUtd2lkdGgsIGZpdC1jb250ZW50KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1fc2JiLXRvZ2dsZS1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIC8vIFNldCB0aGUgbGluZS1oZWlnaHQgZm9yIGFkamFjZW50IGVsZW1lbnRzIGluIG9yZGVyIHRvIHByZXZlbnQgZnJvbSBpbmZsdWVuY2Ugb2YgYSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHQuXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBXaGl0ZSBwaWxsIG9mIHNlbGVjdGVkIHRvZ2dsZSBvcHRpb25cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBncmlkLWFyZWE6IHN0YXJ0IC8gc3RhcnQgLyBlbmQgLyBlbmQ7XG4gICAgbWFyZ2luLWlubGluZTogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCwgMCkgdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tcmlnaHQsIDApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci13aWR0aClcbiAgICAgIHZhcigtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZSkgdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLWNvbG9yKTtcblxuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICBwcm9wZXJ0eTogbWFyZ2luLWlubGluZS1zdGFydCwgbWFyZ2luLWlubGluZS1lbmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFja2dyb3VuZFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZ3JpZC1hcmVhOiBzdGFydCAvIHN0YXJ0IC8gZW5kIC8gZW5kO1xuICAgIG9yZGVyOiAtMTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zYmItdG9nZ2xlLWJhY2tncm91bmQtY29sb3IpO1xuICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtYmFja2dyb3VuZC1pbnNldCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyICogdmFyKC0tc2JiLXRvZ2dsZS1iYWNrZ3JvdW5kLWluc2V0KSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvZ2dsZS1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG4gIH1cbn1cblxuOmhvc3QoW2V2ZW5dKSB7XG4gIC0tc2JiLXRvZ2dsZS13aWR0aDogMTAwJTtcbiAgLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcbn1cblxuOmhvc3QoOmRpc2FibGVkKSB7XG4gIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXNtb2tlKVxuICApO1xuICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZTogZGFzaGVkO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lLXMpO1xuICAtLXNiYi10b2dnbGUtaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWhlaWdodC1zKTtcbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmUtbSk7XG4gIC0tc2JiLXRvZ2dsZS1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0LW0pO1xufVxuXG46aG9zdCg6aXMoOm5vdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSwgOnN0YXRlKGRpc2FibGUtYW5pbWF0aW9uLW9uLXJlc2l6aW5nKSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246Zmlyc3Qtb2YtdHlwZSkge1xuICBncmlkLWFyZWE6IHN0YXJ0O1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246bGFzdC1vZi10eXBlKSB7XG4gIGdyaWQtYXJlYTogZW5kO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgaW50ZXJhY3Rpdml0eUNoZWNrZXIsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUb2dnbGVPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vdG9nZ2xlLW9wdGlvbi90b2dnbGUtb3B0aW9uLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIHR3byBgc2JiLXRvZ2dsZS1vcHRpb25gLCBhY3RpbmcgYXMgYSB0b2dnbGUgYnV0dG9uLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGA8c2JiLXRvZ2dsZS1vcHRpb24+YCBlbGVtZW50cyB0byB0aGUgdG9nZ2xlLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9nZ2xlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3JhZGlvZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNldCB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBmaXhlZDsgaWYgZmFsc2UsXG4gICAqIHRoZSB3aWR0aCBpcyBkeW5hbWljIGJhc2VkIG9uIHRoZSBsYWJlbCBvZiB0aGUgc2JiLXRvZ2dsZS1vcHRpb24uXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXZlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIChsZWFuIHRoZW1lIGRlZmF1bHQpIG9yIG0gKHN0YW5kYXJkIHRoZW1lIGRlZmF1bHQpLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgdG9nZ2xlLiBJdCBuZWVkcyB0byBiZSBtdXRhYmxlIHNpbmNlIGl0IGlzIHVwZGF0ZWQgd2hlbmV2ZXJcbiAgICogYSBuZXcgb3B0aW9uIGlzIHNlbGVjdGVkIChzZWUgdGhlIGBvblRvZ2dsZU9wdGlvblNlbGVjdCgpYCBtZXRob2QpLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fZmFsbGJhY2tWYWx1ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgID8gKHRoaXMuX2ZhbGxiYWNrVmFsdWUgPz8gbnVsbClcbiAgICAgIDogKHRoaXMub3B0aW9ucy5maW5kKChvKSA9PiBvLmNoZWNrZWQpPy52YWx1ZSA/PyB0aGlzLm9wdGlvbnNbMF0/LnZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgX2ZhbGxiYWNrVmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIGNoaWxkIGluc3RhbmNlcyBvZiBzYmItdG9nZ2xlLW9wdGlvbiBhcyBhbiBhcnJheS4gKi9cbiAgcHVibGljIGdldCBvcHRpb25zKCk6IFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+Pignc2JiLXRvZ2dsZS1vcHRpb24nKSA/PyBbXSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2lucHV0JywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXQoKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Zvcm1EaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl91cGRhdGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIC8vIEJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlLCBpbml0IHdpdGggdGhlIGZhbGxiYWNrIHZhbHVlLlxuICAgIC8vIFRoZSB3aWxsVXBkYXRlIGhvb2sgaXMgc2FmZXIgdGhhbiB0aGUgJ3ZhbHVlJyBzZXR0ZXIuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZCh0aGlzLl9mYWxsYmFja1ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLCBib3RoIHByb2dyYW1tYXRpY2FsbHkgb3IgYnkgdXNlciBpbnRlcmFjdGlvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdHVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgIHRoaXMudXBkYXRlUGlsbFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdG8gdGhlIGluaXQgdmFsdWUgaWYgcHJlc2VudC4gU2VsZWN0IHRoZSBmaXJzdCBvcHRpb24sIG90aGVyd2lzZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICh0aGlzLmhhc0F0dHJpYnV0ZSgndmFsdWUnKSA/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpIDogbnVsbCkgYXMgVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gKHN0YXRlIGFzIFQpID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgZGF0YSA9IGZvcm1EYXRhLmdldCh0aGlzLm5hbWUpO1xuICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogKGRhdGEgYXMgVCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB1cGRhdGVQaWxsUG9zaXRpb24ocmVzaXppbmcgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmxlbmd0aCA8IDIgfHxcbiAgICAgIG9wdGlvbnMuZXZlcnkoKG8pID0+ICFvLmNoZWNrZWQpIHx8XG4gICAgICBvcHRpb25zLmV2ZXJ5KChvKSA9PiAhby5jbGllbnRXaWR0aClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbi1vbi1yZXNpemluZycsIHJlc2l6aW5nKTtcblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gb3B0aW9uc1swXTtcbiAgICBjb25zdCBpc0ZpcnN0Q2hlY2tlZCA9IGZpcnN0T3B0aW9uLmNoZWNrZWQ7XG4gICAgY29uc3QgcGlsbExlZnQgPSBpc0ZpcnN0Q2hlY2tlZCA/ICcwcHgnIDogYCR7Zmlyc3RPcHRpb24uY2xpZW50V2lkdGh9cHhgO1xuICAgIGNvbnN0IHBpbGxSaWdodCA9IGlzRmlyc3RDaGVja2VkID8gYCR7dGhpcy5jbGllbnRXaWR0aCAtIGZpcnN0T3B0aW9uLmNsaWVudFdpZHRofXB4YCA6ICcwcHgnO1xuXG4gICAgaWYgKHBpbGxSaWdodCA9PT0gJzBweCcgJiYgcGlsbExlZnQgPT09ICcwcHgnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCcsIHBpbGxMZWZ0KTtcbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItdG9nZ2xlLW9wdGlvbi1yaWdodCcsIHBpbGxSaWdodCk7XG5cbiAgICAvLyBUcmlnZ2VycyBhIGxheW91dCByZWZsb3cgd2hpY2ggaXMgbmVlZGVkIHRvIGF2b2lkIGFuaW1hdGlvbiBnbGl0Y2hlcy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMub2Zmc2V0V2lkdGg7XG5cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBhIHRyYW5zaXRpb24gZ2xpdGNoLCB3ZSBoYXZlIHRvIGtub3cgd2hlbiB0aGUgZmlyc3QgdmFsdWVzIHdlcmUgc2V0LlxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZURpc2FibGVkKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZUNoYW5nZWQodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID1cbiAgICAgIG9wdGlvbnMuZmluZCgobykgPT4gdmFsdWUgPT09IG8udmFsdWUpID8/IG9wdGlvbnMuZmluZCgobykgPT4gby5jaGVja2VkKSA/PyBvcHRpb25zWzBdO1xuXG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYgJiYgIWlzU2VydmVyKSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihgc2JiLXRvZ2dsZTogTm8gYXZhaWxhYmxlIG9wdGlvbnMhICgke3RoaXMuaWQgfHwgJ05vIGlkJ30pYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlbGVjdGVkT3B0aW9uLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB0b2dnbGVPcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICB0b2dnbGVPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gdXNlciBpbnRlcmFjdGlvbiAoY2xpY2sgb3Iga2V5Ym9hcmQpXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c0NoYW5nZWQoKTtcbiAgICAvKipcbiAgICAgKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRUb2dnbGVPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgICh0KSA9PiAhdC5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUodCksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkVG9nZ2xlT3B0aW9ucyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBpc1J0bCA9IHRoaXMubWF0Y2hlcygnOmRpcihydGwpJyk7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQpID8/IG9wdGlvbnNbMF07XG4gICAgY29uc3QgYXZhaWxhYmxlT3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgIC5zbGljZShjdXJyZW50SW5kZXggKyAxKVxuICAgICAgLmNvbmNhdChvcHRpb25zLnNsaWNlKDAsIGN1cnJlbnRJbmRleCkpXG4gICAgICAuZmlsdGVyKChvKSA9PiAhby5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUobykpO1xuICAgIGlmICghaXNSdGwgPyBldnQua2V5ID09PSAnICcgfHwgZXZ0LmtleSA9PT0gJ0Fycm93UmlnaHQnIDogZXZ0LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIHRoaXMuX3NlbGVjdEFuZEZvY3VzT3B0aW9uKGF2YWlsYWJsZU9wdGlvbnNbMF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChpc1J0bCA/IGV2dC5rZXkgPT09ICcgJyB8fCBldnQua2V5ID09PSAnQXJyb3dSaWdodCcgOiBldnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgdGhpcy5fc2VsZWN0QW5kRm9jdXNPcHRpb24oYXZhaWxhYmxlT3B0aW9ucy5hdCgtMSkpO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0QW5kRm9jdXNPcHRpb24ob3B0aW9uOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi5jaGVja2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICBvcHRpb24uZm9jdXMoKTtcbiAgICBvcHRpb24uZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX3VwZGF0ZVRvZ2dsZX0+PC9zbG90PiBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9nZ2xlJzogU2JiVG9nZ2xlRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQzZCYSwwQkFBZ0I7bUJBQXFCLGlCQUNoRCx1QkFBdUIsVUFBVSxDQUFDOzs7Ozs7Ozs7Y0FEdkIseUJBQXFDLFlBRWpEOzs7dUJBWUUsVUFBUyxHQUNULFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtHQUFPLENBQUUs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
@@ -8,4 +8,4 @@ SbbToggleOptionElement.define();
8
8
  //#endregion
9
9
  export { SbbToggleElement, SbbToggleOptionElement };
10
10
 
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJUb2dnbGVFbGVtZW50LCBTYmJUb2dnbGVPcHRpb25FbGVtZW50IH0gZnJvbSAnLi90b2dnbGUucHVyZS50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdG9nZ2xlLnB1cmUudHMnO1xuXG5TYmJUb2dnbGVFbGVtZW50LmRlZmluZSgpO1xuU2JiVG9nZ2xlT3B0aW9uRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxpQkFBaUIsUUFBUTtBQUN6Qix1QkFBdUIsUUFBUSJ9
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2dnbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJUb2dnbGVFbGVtZW50LCBTYmJUb2dnbGVPcHRpb25FbGVtZW50IH0gZnJvbSAnLi90b2dnbGUucHVyZS50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdG9nZ2xlLnB1cmUudHMnO1xuXG5TYmJUb2dnbGVFbGVtZW50LmRlZmluZSgpO1xuU2JiVG9nZ2xlT3B0aW9uRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxpQkFBaUIsT0FBTTtBQUN2Qix1QkFBdUIsT0FBTSJ9
@@ -366,4 +366,4 @@ var SbbTooltipElement = (() => {
366
366
  //#endregion
367
367
  export { SbbTooltipElement as t };
368
368
 
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtRDh6aWszcDQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzQW5kcm9pZCxcbiAgaXNJT1MsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQsXG4gIHJlYWRDb25maWcsXG4gIHJlbW92ZUFyaWFFbGVtZW50cyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLFxuICBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9vbHRpcC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAgaWYgdGhpcyBlbGVtZW50IGlzIHVzZWQgYXMgYSB0cmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGltZSBiZXR3ZWVuIHRoZSB1c2VyIHB1dHRpbmcgdGhlIHBvaW50ZXIgb24gYSB0b29sdGlwXG4gKiB0cmlnZ2VyIGFuZCB0aGUgbG9uZyBwcmVzcyBldmVudCBiZWluZyBmaXJlZC5cbiAqL1xuY29uc3QgTE9OR1BSRVNTX0RFTEFZID0gNTAwO1xuXG5jb25zdCBpc01vYmlsZSA9IGlzQW5kcm9pZCB8fCBpc0lPUztcbmNvbnN0IHRvb2x0aXBUcmlnZ2VycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBTYmJUb29sdGlwRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDd0NBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksU0FBeUM7Ozs7Ozs7Ozs7OztJQWF4RCwyQkFBaUI7bUJBQVMsaUJBQWlCLHdCQUF3Qjs7Ozs7Ozs7Y0FBbkUsMEJBQTBCLFlBQXlDOzs7MEJBb0I3RSxhQUFhLEVBQ2IsVUFBVSxDQUFBO2dDQVNWLFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtJQUFRLENBQUMsQ0FBQTtpQ0FlbkQsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOzBDQWVwRCxTQUFTO0lBQUUsV0FBVztJQUEwQixNQUFNO0lBQVEsQ0FBQyxDQUFBO0dBdENoRSxhQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGFBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTyxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVAsVUFBTzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHVCQUFBLDJCQUFBO0dBU3ZCLGFBQUEsTUFBQSxNQUFBLDJCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZUFBQTtLQUFBLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBVyxZQUFTOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsTUFBQSwyQkFBQTtHQWVwQixhQUFBLE1BQUEsTUFBQSw0QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGdCQUFBO0tBQUEsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFXLGFBQVU7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxNQUFBLDJCQUFBO0dBZXJCLGFBQUEsTUFBQSxNQUFBLHFDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEseUJBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVcsc0JBQW1COztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7O0dBNURFLEtBQUEsY0FBc0I7OztHQUN0QixLQUFBLE9BQU87OztHQUNoQixLQUFBLFNBQXlCLENBQUMsVUFBVSxnQkFBTSxDQUFDOztFQUlsRTtHQUNFLElBQUksQ0FBQyxVQUdILDRCQUE0QixLQUFLLDBCQUEwQixDQUFDOztFQVdoRTs7Ozs7O0VBQUEsSUFBZ0IsVUFBTztHQUFBLE9BQUEsS0FBQTs7RUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0dBQUEsS0FBQSw0QkFBQTs7Ozs7Ozs7RUFTdkIsSUFBVyxVQUFVLE9BQW9CO0dBQ3ZDLEtBQUssYUFBYTs7RUFFcEIsSUFBVyxZQUFTO0dBQ2xCLE9BQU8sS0FBSyxjQUFjLFlBQVksQ0FBQyxTQUFTLGFBQWE7Ozs7Ozs7O0VBVy9ELElBQVcsV0FBVyxPQUFvQjtHQUN4QyxLQUFLLGNBQWM7O0VBRXJCLElBQVcsYUFBVTtHQUNuQixPQUFPLEtBQUssZUFBZSxZQUFZLENBQUMsU0FBUyxjQUFjOzs7Ozs7OztFQVdqRSxJQUFXLG9CQUFvQixPQUFhO0dBQzFDLEtBQUssdUJBQXVCLENBQUM7O0VBRS9CLElBQVcsc0JBQW1CO0dBQzVCLE9BQU8sS0FBSyx3QkFBd0IsWUFBWSxDQUFDLFNBQVMsdUJBQXVCOztFQWNuRixjQUFBO0dBQ0UsT0FBTztHQTFETyxLQUFBLDZCQXRCTCxrQkFBQSxNQUFBLDJCQUFpQixFQUFBLGtCQUFBLE1BQUEsdUJBc0JrQixLQUFJO0dBZTFDLEtBQUEsY0FBVSxrQkFBQSxNQUFBLDJCQUFBLEVBQWtCO0dBZTVCLEtBQUEsY0FBNkI7R0FpQjdCLEtBQUEsa0JBQXNDO0dBR3RDLEtBQUEsOEJBQThCLElBQUksOEJBQThCLEtBQUs7R0FDckUsS0FBQSxxQkFBcUIsSUFBSSw2QkFBNkIsS0FBSztHQVdqRSxLQUFLLGlCQUNILGVBQ0MsVUFBUztJQUNSLEtBQ0csS0FBSyxVQUFVLFlBQVksS0FBSyxVQUFVLGVBQzFDLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxLQUFLLGlCQUFpQixTQUFTLE1BQU0sY0FBc0IsR0FFckYsS0FBSyxlQUFlO01BR3hCLEVBQUUsU0FBUyxNQUFNLENBQ2xCO0dBR0QsS0FBSyxpQkFBaUIsK0JBQStCLEtBQUssT0FBTyxFQUFFLEVBQUUsU0FBUyxNQUFNLENBQUM7R0FFckYsS0FBSyxpQkFBaUIsaUJBQWlCLE1BQU0sS0FBSyx1QkFBdUIsRUFBRSxFQUFFLEVBQUUsU0FBUyxNQUFNLENBQUM7O0VBR3pGLE9BQU8sMkJBQXdCO0dBQ3JDLEtBQUssaUJBQWlCLFNBQVMsY0FBYyxNQUFNO0dBQ25ELEtBQUssZUFBZSxVQUFVLElBQUkscUJBQXFCO0dBQ3ZELFNBQVMsS0FBSyxZQUFZLEtBQUssZUFBZTtHQUs5QyxJQUFJLGtCQUFrQixjQUFhO0lBQ2pDLEtBQUssTUFBTSxZQUFZLFdBQ3JCLElBQUksU0FBUyxTQUFTLGNBQ3BCLEtBQUssc0JBQXNCLFNBQVMsT0FBc0I7U0FDckQsSUFBSSxTQUFTLFNBQVMsYUFDM0IsS0FBSyxNQUFNLFFBQVEsQ0FBQyxHQUFHLFNBQVMsWUFBWSxHQUFHLFNBQVMsYUFBYSxDQUFDLFFBQ25FLE1BQXdCLEVBQUUsYUFBYSxFQUFFLGFBQzNDLEVBQUU7S0FDRCxLQUFLLHNCQUFzQixLQUFLO0tBQ2hDLEtBQUssOEJBQThCLEtBQUs7O0tBSTlDLENBQUMsUUFBUSxTQUFTLGlCQUFpQjtJQUNuQyxpQkFBaUI7S0FDZjtLQUNBO0tBQ0E7S0FDQTtLQUNEO0lBQ0QsV0FBVztJQUNYLFNBQVM7SUFDVixDQUFDO0dBQ0YsS0FBSyw4QkFBOEIsU0FBUyxLQUFLOztFQUczQyxPQUFPLDhCQUE4QixNQUFpQjtHQUM1RCxLQUNHLGlCQUE4QixnQkFBZ0IsQ0FDOUMsU0FBUyxNQUFNLEtBQUssc0JBQXNCLEVBQUUsQ0FBQzs7RUFHMUMsT0FBTyxzQkFBc0IsZ0JBQTJCO0dBQzlELE1BQU0saUJBQWlCLGVBQWUsYUFBYSxjQUFjO0dBQ2pFLElBQUksVUFBVSxnQkFBZ0IsSUFBSSxlQUFlO0dBRWpELElBQUksa0JBQWtCLGVBQWUsYUFBYTtJQUNoRCxJQUFJLENBQUMsU0FBUztLQUVaLFVBQVUsU0FBUyxjQUFjLGNBQWM7S0FDL0MsZ0JBQWdCLElBQUksZ0JBQWdCLFFBQVE7S0FDNUMsS0FBSyxlQUFlLFlBQVksUUFBUTtLQUN4QyxRQUFRLFVBQVU7O0lBR3BCLFFBQVEsY0FBYztJQUN0QixRQUFRLFlBQVksZUFBZSxhQUFhLHlCQUF5QixHQUNyRSxDQUFDLGVBQWUsYUFBYSx5QkFBMEIsR0FDdkQ7SUFDSixRQUFRLGFBQWEsZUFBZSxhQUFhLDBCQUEwQixHQUN2RSxDQUFDLGVBQWUsYUFBYSwwQkFBMkIsR0FDeEQ7SUFHSixNQUFNLFlBQVksZUFBZSxhQUFhLHVCQUF1QixHQUNqRSxlQUNHLGFBQWEsdUJBQXdCLENBQ3JDLE1BQU0sSUFBSSxDQUNWLEtBQUssTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUN0QixlQUF5RDtJQUU5RCxJQUFJLGFBQWEsVUFBVSxTQUFTLEdBQUc7S0FDckMsUUFBUSxNQUFNLFlBQVksK0JBQStCLFVBQVUsR0FBRztLQUN0RSxRQUFRLE1BQU0sWUFDWix3Q0FDQSxVQUFVLE1BQU0sRUFBRSxDQUFDLEtBQUssS0FBSyxDQUM5QjtXQUNJO0tBQ0wsUUFBUSxNQUFNLGVBQWUsOEJBQThCO0tBQzNELFFBQVEsTUFBTSxlQUFlLHVDQUF1Qzs7VUFFakUsSUFBSSxTQUFTO0lBRWxCLGdCQUFnQixPQUFPLGVBQWU7SUFHdEMsUUFBUSxZQUFZOzs7RUFJUixvQkFBaUI7R0FDL0IsTUFBTSxtQkFBbUI7R0FDekIsS0FBSyxVQUFVO0dBQ2YsS0FBSyxRQUFRO0dBQ2Isc0NBQXNDLFFBQVEsS0FBSztHQUVuRCxJQUFJLEtBQUssY0FBYyxLQUFLLFNBQzFCLEtBQUssUUFBUSxLQUFLLFFBQVE7O0VBSWQsdUJBQW9CO0dBQ2xDLE1BQU0sc0JBQXNCO0dBQzVCLHNDQUFzQyxXQUFXLEtBQUs7R0FDdEQsS0FBSyxTQUFTOztFQUdBLGNBQ2QsTUFDQSxVQUNBLFNBQTZCO0dBRTdCLE1BQU0sY0FBYyxNQUFNLFVBQVUsUUFBUTtHQUM1QyxJQUFJLFVBQ0Y7R0FHRixLQUFLLENBQUMsUUFBUSxTQUFTLGNBQWMsS0FBSyxZQUN4QyxLQUFLLFFBQVEsS0FBSyxRQUFROztFQUlYLGFBQWEsbUJBQWlDO0dBQy9ELE1BQU0sYUFBYSxrQkFBa0I7R0FDckMsS0FBSyxRQUFRLEtBQUssUUFBUTs7RUFHckIsT0FBSTtHQUNULEtBQUssd0JBQXdCO0dBQzdCLElBQ0csS0FBSyxVQUFVLFlBQVksS0FBSyxVQUFVLGFBQzNDLEtBQUssWUFDTCxDQUFDLEtBQUssV0FDTixDQUFDLEtBQUsseUJBQXlCLEVBRS9CO0dBR0YsS0FBSyxlQUFlO0dBQ3BCLEtBQUssUUFBUTtHQUNiLEtBQUssbUJBQW1CLFFBQVEsS0FBSyxRQUFRO0dBSTdDLElBQUksS0FBSywwQkFBMEIsRUFDakMsS0FBSyxnQkFBZ0I7O0VBSWxCLFFBQUs7R0FDVixLQUFLLHdCQUF3QjtHQUM3QixJQUFJLEtBQUssVUFBVSxZQUFZLEtBQUssVUFBVSxXQUM1QztHQUdGLEtBQUssMEJBQTBCO0dBQy9CLEtBQUssUUFBUTtHQUliLElBQUksS0FBSywwQkFBMEIsRUFDakMsS0FBSyxnQkFBZ0I7O0VBSWpCLGVBQVk7R0FDbEIsS0FBSyx3QkFBd0I7R0FDN0IsS0FBSyxlQUFlLGlCQUFpQixLQUFLLE1BQU0sRUFBRSxLQUFLLFVBQVU7O0VBRzNELGlCQUFjO0dBQ3BCLEtBQUssUUFBUTtHQUNiLEtBQUssNEJBQTRCLFNBQVM7R0FDMUMsS0FBSyxtQkFBbUI7O0VBR2xCLGdCQUFhO0dBQ25CLEtBQUssd0JBQXdCO0dBQzdCLEtBQUssZ0JBQWdCLGlCQUFpQixLQUFLLE9BQU8sRUFBRSxLQUFLLFdBQVc7O0VBRzlELGlCQUFjO0dBQ3BCLEtBQUssUUFBUTtHQUNiLEtBQUssZUFBZTtHQUNwQixLQUFLLG1CQUFtQixZQUFZO0dBRXBDLEtBQUssNEJBQTRCLFlBQVk7R0FDN0MsS0FBSyxvQkFBb0I7R0FDekIsS0FBSyxzQkFBc0IsT0FBTzs7RUFHNUIsdUJBQXVCLE9BQXFCO0dBQ2xELElBQUksTUFBTSxrQkFBa0IsVUFBVSxLQUFLLFVBQVUsV0FDbkQsS0FBSyxnQkFBZ0I7UUFDaEIsSUFBSSxNQUFNLGtCQUFrQixXQUFXLEtBQUssVUFBVSxXQUMzRCxLQUFLLGdCQUFnQjs7RUFJakIsUUFBUSxTQUEyQjtHQUN6QyxJQUFJLEtBQUssaUJBRVAsS0FBSyxTQUFTO0dBR2hCLEtBQUssa0JBQWtCO0dBQ3ZCLElBQUksQ0FBQyxLQUFLLGlCQUNSO0dBRUYsS0FBSyxnQkFBZ0IsMEJBQTBCLG1CQUM3QyxLQUFLLGdCQUFnQix5QkFDckIsS0FDRDtHQUNELEtBQUssMEJBQTBCOztFQUd6QixVQUFPO0dBQ2IsS0FBSyx5QkFBeUIsT0FBTztHQUNyQyxLQUFLLHNCQUFzQixPQUFPO0dBR2xDLEtBQUssd0JBQXdCO0dBQzdCLGFBQWEsS0FBSyxzQkFBc0I7R0FDeEMsYUFBYSxLQUFLLHVCQUF1QjtHQUV6QyxJQUFJLENBQUMsS0FBSyxpQkFDUjtHQUVGLEtBQUssZ0JBQWdCLDBCQUEwQixtQkFDN0MsS0FBSyxnQkFBZ0IseUJBQ3JCLEtBQ0Q7R0FDRCxLQUFLLGtCQUFrQjs7RUFHakIsV0FBUTtHQUNkLEtBQUssU0FBUztHQUNkLEtBQUssUUFBUTs7RUFHUCwyQkFBd0I7R0FDOUIsTUFBTSxVQUFVLEtBQUs7R0FDckIsSUFBSSxDQUFDLFNBQ0g7R0FHRixLQUFLLHlCQUF5QixPQUFPO0dBQ3JDLEtBQUssMEJBQTBCLElBQUksaUJBQWlCO0dBQ3BELE1BQU0sVUFBbUM7SUFDdkMsUUFBUSxLQUFLLHdCQUF3QjtJQUNyQyxTQUFTO0lBQ1Y7R0FFRCxJQUFJLENBQUMsVUFBVTtJQUNiLFFBQVEsaUJBQWlCLG9CQUFvQixLQUFLLGNBQWMsRUFBRSxRQUFRO0lBQzFFLFFBQVEsaUJBQ04sZUFDQyxVQUFTO0tBQ1IsTUFBTSxZQUFZLE1BQU07S0FDeEIsSUFBSSxDQUFDLGFBQWEsY0FBYyxNQUM5QixLQUFLLGVBQWU7T0FHeEIsUUFDRDtJQUdELFFBQVEsaUJBQWlCLGNBQWMsS0FBSyxPQUFPLEVBQUUsUUFBUTtJQUM3RCxRQUFRLGlCQUFpQixlQUFlLEtBQUssY0FBYyxFQUFFLFFBQVE7O0dBSXZFLFFBQVEsaUJBQ04sb0JBQ0s7SUFDSCxhQUFhLEtBQUssc0JBQXNCO0lBQ3hDLGFBQWEsS0FBSyx1QkFBdUI7SUFDekMsS0FBSyx3QkFBd0IsaUJBQWlCLEtBQUssTUFBTSxFQUFFLGdCQUFnQjtNQUU3RSxRQUNEO0dBQ0QsUUFBUSxpQkFDTixrQkFDSztJQUNILGFBQWEsS0FBSyxzQkFBc0I7SUFDeEMsS0FBSyx5QkFBeUIsaUJBQWlCLEtBQUssT0FBTyxFQUFFLEtBQUssb0JBQW9CO01BRXhGLFFBQ0Q7R0FDRCxRQUFRLGlCQUNOLHFCQUNLO0lBQ0gsYUFBYSxLQUFLLHNCQUFzQjtNQUUxQyxRQUNEOztFQUdLLDJCQUF3QjtHQUM5QixPQUFPLHdCQUF3QixNQUFNLG1DQUFtQzs7RUFHbEUseUJBQXNCO0dBQzVCLGFBQWEsS0FBSyxhQUFhO0dBQy9CLGFBQWEsS0FBSyxjQUFjOztFQUdmLFNBQU07R0FDdkIsT0FBTyxJQUFJIn0=
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtRDh6aWszcDQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzQW5kcm9pZCxcbiAgaXNJT1MsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQsXG4gIHJlYWRDb25maWcsXG4gIHJlbW92ZUFyaWFFbGVtZW50cyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLFxuICBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9vbHRpcC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAgaWYgdGhpcyBlbGVtZW50IGlzIHVzZWQgYXMgYSB0cmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGltZSBiZXR3ZWVuIHRoZSB1c2VyIHB1dHRpbmcgdGhlIHBvaW50ZXIgb24gYSB0b29sdGlwXG4gKiB0cmlnZ2VyIGFuZCB0aGUgbG9uZyBwcmVzcyBldmVudCBiZWluZyBmaXJlZC5cbiAqL1xuY29uc3QgTE9OR1BSRVNTX0RFTEFZID0gNTAwO1xuXG5jb25zdCBpc01vYmlsZSA9IGlzQW5kcm9pZCB8fCBpc0lPUztcbmNvbnN0IHRvb2x0aXBUcmlnZ2VycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBTYmJUb29sdGlwRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDd0NBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksUUFBTzs7Ozs7Ozs7Ozs7O0lBYXRCLDJCQUFpQjttQkFBUyxpQkFBaUIsdUJBQXVCOzs7Ozs7OztjQUFsRSwwQkFBMEIsWUFBeUM7OzswQkFvQjdFLFlBQVcsR0FDWCxTQUFRLENBQUU7Z0NBU1YsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0dBQU0sQ0FBRSxDQUFDO2lDQWVuRCxTQUFTO0lBQUUsV0FBVztJQUFlLE1BQU07R0FBTSxDQUFFLENBQUM7MENBZXBELFNBQVM7SUFBRSxXQUFXO0lBQTBCLE1BQU07R0FBTSxDQUFFLENBQUM7R0F0Q2hFLGFBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxR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
@@ -6,4 +6,4 @@ SbbTooltipElement.define();
6
6
  //#endregion
7
7
  export { SbbTooltipElement };
8
8
 
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9vbHRpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlRvb2x0aXBFbGVtZW50IH0gZnJvbSAnLi90b29sdGlwLnB1cmUudHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAucHVyZS50cyc7XG5cblNiYlRvb2x0aXBFbGVtZW50LmRlZmluZSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBS0Esa0JBQWtCLFFBQVEifQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9vbHRpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlRvb2x0aXBFbGVtZW50IH0gZnJvbSAnLi90b29sdGlwLnB1cmUudHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAucHVyZS50cyc7XG5cblNiYlRvb2x0aXBFbGVtZW50LmRlZmluZSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBS0Esa0JBQWtCLE9BQU0ifQ==
@@ -59,4 +59,4 @@ var SbbTrainFormationOrientationMixin = (superClass) => {
59
59
  //#endregion
60
60
  export { SbbTrainFormationOrientationMixin };
61
61
 
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvcmUvbWl4aW5zL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB8IG51bGw7XG59XG5cbi8qKlxuICogTWl4aW4gdGhhdCByZWFkcyB0aGUgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eSBmcm9tIHRoZSBjbG9zZXN0IGBzYmItdHJhaW4tZm9ybWF0aW9uYFxuICogYW5kIHJlZmxlY3RzIGl0IGFzIGEgQ1NTIGN1c3RvbSBzdGF0ZSAoYG9yaWVudGF0aW9uLWhvcml6b250YWxgIC8gYG9yaWVudGF0aW9uLXZlcnRpY2FsYCkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPlxuICB7XG4gICAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlWydvcmllbnRhdGlvbiddID1cbiAgICAgIG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi10cmFpbi1mb3JtYXRpb24nKSwge1xuICAgICAgICAgIG9yaWVudGF0aW9uOiAodDogU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBvcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb259YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID0gdC5vcmllbnRhdGlvbjtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYG9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBaUJBLElBQWEscUNBQ1gsZUFDa0U7Q0EwQmxFLGNBekJrRDtvQkFDeEM7Ozs7ZUFESyw0Q0FDTCxZQUFVOzs7K0JBR2pCLE9BQU8sQ0FBQTtJQUFDLGFBQUEsTUFBQSxNQUFBLHlCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsaUJBQUE7TUFBQSxNQUFBLFFBQUEsSUFBbUI7TUFBVyxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQVgsY0FBVzs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLDJCQUFBLCtCQUFBOzs7Ozs7OztHQUE5QixnQ0FBQSxrQkFBQSxNQUFBLDJCQUNQLEtBQUk7R0FERyxJQUFtQixjQUFXO0lBQUEsT0FBQSxLQUFBOztHQUE5QixJQUFtQixZQUFXLE9BQUE7SUFBQSxLQUFBLGdDQUFBOztHQUd2QyxZQUFzQixHQUFHLE1BQVc7SUFDbEMsTUFBTSxHQUFHLEtBQUs7O0lBQ2QsS0FBSyxjQUNILElBQUksNkJBQTZCLFlBQVksS0FBSyxRQUFRLHNCQUFzQixFQUFFLEVBQ2hGLGNBQWMsTUFBK0I7S0FDM0MsSUFBSSxLQUFLLGFBQ1AsS0FBSyxVQUFVLE9BQU8sT0FBTyxlQUFlLEtBQUssY0FBYztLQUVqRSxLQUFLLGNBQWMsRUFBRTtLQUNyQixJQUFJLEtBQUssYUFDUCxLQUFLLFVBQVUsT0FBTyxJQUFJLGVBQWUsS0FBSyxjQUFjO09BR2pFLENBQUMsQ0FDSDs7O0tBSUUifQ==
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvcmUvbWl4aW5zL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB8IG51bGw7XG59XG5cbi8qKlxuICogTWl4aW4gdGhhdCByZWFkcyB0aGUgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eSBmcm9tIHRoZSBjbG9zZXN0IGBzYmItdHJhaW4tZm9ybWF0aW9uYFxuICogYW5kIHJlZmxlY3RzIGl0IGFzIGEgQ1NTIGN1c3RvbSBzdGF0ZSAoYG9yaWVudGF0aW9uLWhvcml6b250YWxgIC8gYG9yaWVudGF0aW9uLXZlcnRpY2FsYCkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPlxuICB7XG4gICAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlWydvcmllbnRhdGlvbiddID1cbiAgICAgIG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi10cmFpbi1mb3JtYXRpb24nKSwge1xuICAgICAgICAgIG9yaWVudGF0aW9uOiAodDogU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBvcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb259YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID0gdC5vcmllbnRhdGlvbjtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYG9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBaUJBLElBQWEscUNBQ1gsZUFDa0U7Q0EwQmxFLGNBekJrRDtvQkFDeEM7Ozs7ZUFESyw0Q0FDTCxZQUFVOzs7K0JBR2pCLE1BQUssQ0FBRTtJQUFDLGFBQUEsTUFBQSxNQUFBLHlCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsaUJBQUE7TUFBQSxNQUFBLFFBQUEsSUFBbUI7TUFBVyxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQVgsY0FBVztNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSwyQkFBQSw4QkFBQTs7Ozs7Ozs7R0FBOUIsZ0NBQUEsa0JBQUEsTUFBQSwyQkFDUCxJQUFJO0dBREcsSUFBbUIsY0FBVztJQUFBLE9BQUEsS0FBQTtHQUFBO0dBQTlCLElBQW1CLFlBQVcsT0FBQTtJQUFBLEtBQUEsZ0NBQUE7R0FBQTtHQUd2QyxZQUFzQixHQUFHLE1BQVc7SUFDbEMsTUFBTSxHQUFHLElBQUk7O0lBQ2IsS0FBSyxjQUNILElBQUksNkJBQTZCLFlBQVksS0FBSyxRQUFRLHFCQUFxQixHQUFHLEVBQ2hGLGNBQWMsTUFBK0I7S0FDM0MsSUFBSSxLQUFLLGFBQ1AsS0FBSyxVQUFVLE9BQU8sT0FBTyxlQUFlLEtBQUssYUFBYTtLQUVoRSxLQUFLLGNBQWMsRUFBRTtLQUNyQixJQUFJLEtBQUssYUFDUCxLQUFLLFVBQVUsT0FBTyxJQUFJLGVBQWUsS0FBSyxhQUFhO0lBRS9ELEVBQUEsQ0FDRCxDQUFDOzs7SUFLRDtBQUVUIn0=
@@ -17,4 +17,4 @@ var SbbTrainWagonElement = class extends SbbTrainWagonMixin(SbbElement) {
17
17
  //#endregion
18
18
  export { SbbTrainWagonElement };
19
19
 
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb25lIG9yIG1vcmUgYHNiYi1pY29uYCBmb3IgbWV0YS1pbmZvcm1hdGlvbiBvZiB0aGUgd2Fnb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbldhZ29uRWxlbWVudCBleHRlbmRzIFNiYlRyYWluV2Fnb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24nO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbic6IFNiYlRyYWluV2Fnb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsSUFBYSx1QkFBYixjQUEwQyxtQkFBbUIsV0FBVyxDQUFBOztFQUN0QyxLQUFBLGNBQXNCOztDQUV0QyxTQUFNO0VBQ3BCLE9BQU8sS0FBSyxnQkFBZ0IifQ==
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb25lIG9yIG1vcmUgYHNiYi1pY29uYCBmb3IgbWV0YS1pbmZvcm1hdGlvbiBvZiB0aGUgd2Fnb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbldhZ29uRWxlbWVudCBleHRlbmRzIFNiYlRyYWluV2Fnb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24nO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbic6IFNiYlRyYWluV2Fnb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsSUFBYSx1QkFBYixjQUEwQyxtQkFBbUIsVUFBVSxFQUFDOztFQUN0QyxLQUFBLGNBQXNCO0NBQWtCO0NBRXhELFNBQU07RUFDcEIsT0FBTyxLQUFLLGVBQWM7Q0FDNUIifQ==
@@ -15,4 +15,4 @@ var SbbTrainWagonButtonElement = class extends SbbTrainWagonMixin(SbbButtonBaseE
15
15
  //#endregion
16
16
  export { SbbTrainWagonButtonElement };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tYnV0dG9uL3RyYWluLXdhZ29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQgYW5kIGJlaGF2ZXMgbGlrZSBhIGJ1dHRvbi5cbiAqIEl0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRyYWluIGNvbXBhcnRtZW50IGFzIHdlbGwgYXMgdG8gdHJpZ2dlciBhbiBhY3Rpb24sIGUuZy4sIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSB0cmFpbiBjb21wYXJ0bWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25CdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJztcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nOiBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFhLDZCQUFiLGNBQWdELG1CQUFtQixxQkFBcUIsQ0FBQTs7RUFDdEQsS0FBQSxjQUFzQiJ9
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tYnV0dG9uL3RyYWluLXdhZ29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQgYW5kIGJlaGF2ZXMgbGlrZSBhIGJ1dHRvbi5cbiAqIEl0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRyYWluIGNvbXBhcnRtZW50IGFzIHdlbGwgYXMgdG8gdHJpZ2dlciBhbiBhY3Rpb24sIGUuZy4sIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSB0cmFpbiBjb21wYXJ0bWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25CdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJztcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nOiBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFhLDZCQUFiLGNBQWdELG1CQUFtQixvQkFBb0IsRUFBQzs7RUFDdEQsS0FBQSxjQUFzQjtDQUF5QiJ9
@@ -15,4 +15,4 @@ var SbbTrainWagonLinkElement = class extends SbbTrainWagonMixin(SbbLinkBaseEleme
15
15
  //#endregion
16
16
  export { SbbTrainWagonLinkElement };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tbGluay5jb21wb25lbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RyYWluL3RyYWluLXdhZ29uLWxpbmsvdHJhaW4td2Fnb24tbGluay5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGlua0Jhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbldhZ29uTWl4aW4gfSBmcm9tICcuLi90cmFpbi13YWdvbi1jb21tb24udHMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdHJhaW4gY29tcGFydG1lbnQgd2l0aGluIGEgYHNiYi10cmFpbmAgY29tcG9uZW50IGFuZCBiZWhhdmVzIGxpa2UgYSBsaW5rLlxuICogSXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgdHJhaW4gY29tcGFydG1lbnQgYXMgd2VsbCBhcyB0byB0cmlnZ2VyIGFuIGFjdGlvbiwgZS5nLiwgdG8gc2hvdyBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIHRyYWluIGNvbXBhcnRtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIG9uZSBvciBtb3JlIGBzYmItaWNvbmAgZm9yIG1ldGEtaW5mb3JtYXRpb24gb2YgdGhlIHdhZ29uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5XYWdvbkxpbmtFbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRyYWluLXdhZ29uLWxpbmsnO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLXdhZ29uLWxpbmsnOiBTYmJUcmFpbldhZ29uTGlua0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBU0EsSUFBYSwyQkFBYixjQUE4QyxtQkFBbUIsbUJBQW1CLENBQUE7O0VBQ2xELEtBQUEsY0FBc0IifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tbGluay5jb21wb25lbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RyYWluL3RyYWluLXdhZ29uLWxpbmsvdHJhaW4td2Fnb24tbGluay5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGlua0Jhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbldhZ29uTWl4aW4gfSBmcm9tICcuLi90cmFpbi13YWdvbi1jb21tb24udHMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdHJhaW4gY29tcGFydG1lbnQgd2l0aGluIGEgYHNiYi10cmFpbmAgY29tcG9uZW50IGFuZCBiZWhhdmVzIGxpa2UgYSBsaW5rLlxuICogSXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgdHJhaW4gY29tcGFydG1lbnQgYXMgd2VsbCBhcyB0byB0cmlnZ2VyIGFuIGFjdGlvbiwgZS5nLiwgdG8gc2hvdyBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIHRyYWluIGNvbXBhcnRtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIG9uZSBvciBtb3JlIGBzYmItaWNvbmAgZm9yIG1ldGEtaW5mb3JtYXRpb24gb2YgdGhlIHdhZ29uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5XYWdvbkxpbmtFbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRyYWluLXdhZ29uLWxpbmsnO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLXdhZ29uLWxpbmsnOiBTYmJUcmFpbldhZ29uTGlua0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBU0EsSUFBYSwyQkFBYixjQUE4QyxtQkFBbUIsa0JBQWtCLEVBQUM7O0VBQ2xELEtBQUEsY0FBc0I7Q0FBdUIifQ==
@@ -19,4 +19,4 @@ var SbbTrainBlockedPassageElement = class extends SbbTrainFormationOrientationMi
19
19
  //#endregion
20
20
  export { SbbTrainBlockedPassageElement as t };
21
21
 
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC1DeGQ3ZEJEQy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdpY29uJztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG59XG5cbjpob3N0OjpiZWZvcmUsXG46aG9zdDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZ3JpZC1hcmVhOiBpY29uO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gQ2lyY2xlXG46aG9zdDo6YmVmb3JlIHtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1ibG9ja2VkLXBhc3NhZ2UtZGltZW5zaW9uKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBCYXJcbjpob3N0OjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtaWNvbi1iYXItYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtYmFyLWNvbG9yKTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgdmlzdWFsbHkgZGlzcGxheXMgYSBibG9ja2VkIHBhc3NhZ2UgYmV0d2VlbiB0cmFpbiB3YWdvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZSc6IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUNVQSxJQUFhLGdDQUFiLGNBQW1ELGtDQUFrQyxXQUFXLENBQUE7O0VBQzlELEtBQUEsY0FBc0I7OztFQUMvQixLQUFBLFNBQXlCLENBQUMsVUFBVSw4QkFBTSxDQUFDIn0=
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC1DeGQ3ZEJEQy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdpY29uJztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG59XG5cbjpob3N0OjpiZWZvcmUsXG46aG9zdDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZ3JpZC1hcmVhOiBpY29uO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gQ2lyY2xlXG46aG9zdDo6YmVmb3JlIHtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1ibG9ja2VkLXBhc3NhZ2UtZGltZW5zaW9uKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBCYXJcbjpob3N0OjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtaWNvbi1iYXItYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtYmFyLWNvbG9yKTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgdmlzdWFsbHkgZGlzcGxheXMgYSBibG9ja2VkIHBhc3NhZ2UgYmV0d2VlbiB0cmFpbiB3YWdvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZSc6IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUNVQSxJQUFhLGdDQUFiLGNBQW1ELGtDQUFrQyxVQUFVLEVBQUM7O0VBQzlELEtBQUEsY0FBc0I7Q0FBNEI7O0VBQzNELEtBQUEsU0FBeUIsQ0FBQyxVQUFVLDZCQUFLLENBQUM7Q0FBRSJ9
@@ -187,4 +187,4 @@ var SbbTrainFormationElement = (() => {
187
187
  //#endregion
188
188
  export { SbbTrainFormationElement as t };
189
189
 
190
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC1CRWc2T1BpYi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tZm9ybWF0aW9uL3RyYWluLWZvcm1hdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZzogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc2VjdG9ycyBlbmQnIGF1dG9cbiAgICAnc3RhcnQgdHJhaW5zIGVuZCcgYXV0byAvIGF1dG8gMWZyIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG8gdmlzaWJsZTtcbiAgZ2FwOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCkgMDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG5cbiAgLy8gRW5hYmxlIGlubGluZSBwYWRkaW5nXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZ3JpZC1hcmVhOiBzdGFydDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBncmlkLWFyZWE6IGVuZDtcbiAgfVxufVxuXG4vLyBXaXRoIHNjcm9sbGFibGUgY29udGVudCwgdGhlIHRyYWluIGZvcm1hdGlvbiBjYW4gZ2V0IGZvY3VzLlxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtc2VjdG9ycykpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLWRpcmVjdGlvbi1sYWJlbCkpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkOiByb3c7XG5cbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc3RhcnQnIGF1dG9cbiAgICAnc2VjdG9ycyB0cmFpbnMnIDFmclxuICAgICdlbmQgZW5kJyBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZSBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tcGFkZGluZyk7XG4gIGdhcDogMCB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2Nyb2xsLXBhZGRpbmcpO1xuICB9XG59XG5cbi5zYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hcmVhOiBzZWN0b3JzO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvciB7XG4gIC0tX3dhZ29uLXN1bTogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZGltZW5zaW9uLWxvbmcpO1xuICAtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIC0tX3RvdGFsLWNvdW50OiBjYWxjKFxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tY291bnQpICsgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQpXG4gICk7XG4gIC0tX2dhcC1zdW06IGNhbGMoKHZhcigtLV90b3RhbC1jb3VudCkgLSAxKSAqIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKSk7XG4gIC0tX3NlY3Rvci13aWR0aDogY2FsYyh2YXIoLS1fd2Fnb24tc3VtKSArIHZhcigtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtKSArIHZhcigtLV9nYXAtc3VtKSk7XG4gIC0tX3NlY3Rvci1saW5lLWxlbmd0aDogY2FsYygwLjUgKiB2YXIoLS1fc2VjdG9yLXdpZHRoKSk7XG5cbiAgZmxleDogMCAwIHZhcigtLV9zZWN0b3Itd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGNsaXAgdmlzaWJsZTtcblxuICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlIGNsaXA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3Rvci1zdGlja3ktd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGluc2V0OiBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3ItcGFkZGluZyk7XG4gIG1hcmdpbjogMCB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgd3JpdGluZy1tb2RlOiBzaWRld2F5cy1scjtcbiAgICBpbnNldDogMCBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLXBhZGRpbmcpIDA7XG4gICAgbWFyZ2luOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pIDA7XG4gIH1cblxuICAvLyBMaW5lcyBiZXNpZGUgdGhlIHNlY3Rvci1sYWJlbFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAvLyBFeGFjdGx5IGNlbnRlciB0aGUgbGluZSBieSBzdWJ0cmFjdGluZyBoYWxmIG9mIHRoZSBib3JkZXIgd2lkdGhcbiAgICBpbnNldC1ibG9jazogY2FsYyg1MCUgLSB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLXdpZHRoKSAvIDIpO1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLWxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLWNvbG9yKTtcbiAgICB3aWR0aDogdmFyKC0tX3NlY3Rvci1saW5lLWxlbmd0aCk7XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IHZhcigtLV9zZWN0b3ItbGluZS1sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWlucyB7XG4gIGdyaWQtYXJlYTogdHJhaW5zO1xufVxuXG4uc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4vLyBVc2luZyAuLi4gbGkgc2VsZWN0b3IsIGJlY2F1c2UgdGhlIGxpIGdlbmVyYXRpb25cbi8vIGlzIGhhbmRsZWQgaW4gdGhlIGNvbXBvbmVudCBiYXNlIGNsYXNzLlxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7XG4gIGhvc3RTY3JvbGxiYXJTdHlsZXMsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TZWN0b3JTaG9ydCxcbiAgaTE4blRyYWlucyxcbiAgU2JiRWxlbWVudCxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluRWxlbWVudCB9IGZyb20gJy4uL3RyYWluL3RyYWluLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50IH0gZnJvbSAnLi4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRTZWN0b3Ige1xuICBsYWJlbDogc3RyaW5nO1xuICB3YWdvbkNvdW50OiBudW1iZXI7XG4gIGJsb2NrZWRQYXNzYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBvc2l0aW9uLCBhY3RpbmcgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbi1mb3JtYXRpb25gLlxuICogQGNzc3Byb3AgWy0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZz12YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCldIC0gRGVmaW5lcyB0aGUgaW5saW5lIG9yIGJsb2NrIHBhZGRpbmcgaW5zaWRlIHRoZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHNjcm9sbGluZyBhcmVhLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJUcmFpbkVsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi1mb3JtYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItdHJhaW4nXTtcblxuICAvKiogV2hldGhlciB0aGUgdmlldyBvZiB0aGUgd2Fnb25zIGlzIGZyb20gc2lkZSBvciB0b3AgcGVyc3BlY3RpdmUuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHZpZXc6ICdzaWRlJyB8ICd0b3AnID0gJ3NpZGUnO1xuXG4gIC8qKiBPcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID1cbiAgICAnaG9yaXpvbnRhbCc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfc2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdID0gW107XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0cmFpbnNsb3RjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoZSk7XG4gICAgICB0aGlzLl9yZWFkRGlyZWN0aW9uTGFiZWwoZSk7XG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3NlY3RvcmNoYW5nZScsIChlKSA9PiB0aGlzLl9yZWFkU2VjdG9ycyhlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2RpcmVjdGlvbmxhYmVsY2hhbmdlJywgKGUpID0+IHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbChlKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdoZW4gaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXIgc3R5bGVzIG9uIHRoZSBob3N0LCB0aGVyZSBpcyBubyBob3ZlciBlZmZlY3Qgb2YgdGhlIHNjcm9sbGJhciBwb3NzaWJsZS5cbiAgICAvLyBJbiBtb3N0IGNhc2VzLCB0aGUgY29tcG9uZW50IHdpbGwgYmUgdXNlZCBpbiBMaWdodCBET00uIFRvIGFsc28gc3VwcG9ydCB0aGUgaG92ZXIgZWZmZWN0LFxuICAgIC8vIHdlIGFkZGl0aW9uYWxseSBhZGQgdGhlIGBzYmItc2Nyb2xsYmFyYCBDU1MgY2xhc3MgdG8gdGhlIGhvc3QuXG4gICAgLy8gVGhpcyBpcyBhbiBleGNlcHRpb24gYXMgd2Ugbm9ybWFsbHkgZG9uJ3QgYWx0ZXIgdGhlIGNsYXNzTGlzdCBvZiB0aGUgaG9zdC5cbiAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NiYi1zY3JvbGxiYXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWREaXJlY3Rpb25MYWJlbChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdoYXMtZGlyZWN0aW9uLWxhYmVsJyxcbiAgICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi10cmFpbicpID8/IFtdKS5zb21lKFxuICAgICAgICAodHJhaW4pID0+ICEhdHJhaW4uZGlyZWN0aW9uTGFiZWwsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkU2VjdG9ycyhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5fc2VjdG9ycyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQ+KFxuICAgICAgICAnc2JiLXRyYWluLXdhZ29uLHNiYi10cmFpbi13YWdvbi1idXR0b24sc2JiLXRyYWluLXdhZ29uLWxpbmssc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScsXG4gICAgICApID8/IFtdLFxuICAgICkucmVkdWNlKFxuICAgICAgKFxuICAgICAgICBhZ2dyZWdhdGVkU2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdLFxuICAgICAgICBpdGVtOiBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IgPSBhZ2dyZWdhdGVkU2VjdG9yc1thZ2dyZWdhdGVkU2VjdG9ycy5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoaXRlbS5sb2NhbE5hbWUuc3RhcnRzV2l0aCgnc2JiLXRyYWluLXdhZ29uJykpIHtcbiAgICAgICAgICBjb25zdCBzZWN0b3JBdHRyaWJ1dGUgPVxuICAgICAgICAgICAgKGl0ZW0gYXMgU2JiVHJhaW5XYWdvbk1peGluVHlwZSkuc2VjdG9yID8/IGl0ZW0uZ2V0QXR0cmlidXRlKCdzZWN0b3InKTtcblxuICAgICAgICAgIGlmICghY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgJiYgc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9IHNlY3RvckF0dHJpYnV0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXNlY3RvckF0dHJpYnV0ZSB8fCBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9PT0gc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50Kys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3JzLnB1c2goe1xuICAgICAgICAgICAgICBsYWJlbDogc2VjdG9yQXR0cmlidXRlLFxuICAgICAgICAgICAgICB3YWdvbkNvdW50OiAxLFxuICAgICAgICAgICAgICBibG9ja2VkUGFzc2FnZUNvdW50OiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ubG9jYWxOYW1lID09PSAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScpIHtcbiAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5ibG9ja2VkUGFzc2FnZUNvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWdncmVnYXRlZFNlY3RvcnM7XG4gICAgICB9LFxuICAgICAgW3sgd2Fnb25Db3VudDogMCwgYmxvY2tlZFBhc3NhZ2VDb3VudDogMCB9IGFzIEFnZ3JlZ2F0ZWRTZWN0b3JdLFxuICAgICk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2hhcy1zZWN0b3JzJyxcbiAgICAgIHRoaXMuX3NlY3RvcnMuc29tZSgocykgPT4gISFzLmxhYmVsKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoKTtcbiAgICAgIHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLl9zZWN0b3JzLmxlbmd0aCAmJiB0aGlzLl9zZWN0b3JzWzBdLmxhYmVsICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAke3RoaXMuX3NlY3RvcnMubWFwKFxuICAgICAgICAgICAgICAoYWdncmVnYXRlZFNlY3RvcikgPT5cbiAgICAgICAgICAgICAgICBodG1sYDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvclwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCc6IGFnZ3JlZ2F0ZWRTZWN0b3Iud2Fnb25Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQnOlxuICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3IuYmxvY2tlZFBhc3NhZ2VDb3VudCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRyYWluLWZvcm1hdGlvbl9fc2VjdG9yLXN0aWNreS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICR7YCR7XG4gICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50ID09PSAxICYmIGFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaTE4blNlY3RvclNob3J0W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGkxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgICAgICAgfSAke2FnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgPyBhZ2dyZWdhdGVkU2VjdG9yLmxhYmVsIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX190cmFpbnNcIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgIGNsYXNzOiAnc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCcsXG4gICAgICAgICAgYXJpYUxhYmVsOiBpMThuVHJhaW5zW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdLFxuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi1mb3JtYXRpb24nOiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0lDdUNhLGtDQUF3QjttQkFBUyxzQkFHNUMsV0FBVzs7Ozs7Ozs7OztjQUhBLGlDQUFpQyxZQUdqQzs7O3VCQU1WLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBOzhCQUczQixTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTsyQkFHM0IsT0FBTyxDQUFBO0dBTnFCLGFBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7R0FHcEIsYUFBQSxNQUFBLE1BQUEseUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFXLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBWCxjQUFXOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsMkJBQUEsK0JBQUE7R0FHL0MsYUFBQSxNQUFBLE1BQUEsc0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxjQUFBO0tBQUEsTUFBQSxRQUFBLElBQWlCO0tBQVEsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFSLFdBQVE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx3QkFBQSw0QkFBQTs7Ozs7Ozs7O0dBWEYsS0FBQSxjQUFzQjs7O0dBQy9CLEtBQUEsU0FBeUIsQ0FBQyxxQkFBcUIsVUFBVSx3QkFBTSxDQUFDOztFQUkxRDs7RUFBQSxJQUFnQixPQUFJO0dBQUEsT0FBQSxLQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7R0FBQSxLQUFBLHlCQUFBOztFQUdwQjs7RUFBQSxJQUFnQixjQUFXO0dBQUEsT0FBQSxLQUFBOztFQUEzQixJQUFnQixZQUFXLE9BQUE7R0FBQSxLQUFBLGdDQUFBOztFQUcvQztFQUFBLElBQWlCLFdBQVE7R0FBQSxPQUFBLEtBQUE7O0VBQXpCLElBQWlCLFNBQVEsT0FBQTtHQUFBLEtBQUEsNkJBQUE7O0VBSWxDLGNBQUE7R0FDRSxPQUFPO0dBZG1CLEtBQUEsc0JBQXNCLENBQUMsWUFBWTtHQUdsQixLQUFBLHlCQUFBLGtCQUFBLE1BQUEsb0JBQXVCLE9BQU07R0FHN0IsS0FBQSxpQ0FBQSxrQkFBQSxNQUFBLHdCQUFBLEVBQUEsa0JBQUEsTUFBQSwyQkFDM0MsYUFBWTtHQUVZLEtBQUEsOEJBQUEsa0JBQUEsTUFBQSwrQkFBQSxFQUFBLGtCQUFBLE1BQUEsd0JBQStCLEVBQUUsQ0FBQTtHQUVuRCxLQUFBLGFBQVMsa0JBQUEsTUFBQSw0QkFBQSxFQUFHLElBQUksc0JBQXNCLEtBQUs7R0FJakQsS0FBSyxtQkFBbUIsb0JBQW9CLE1BQUs7SUFDL0MsS0FBSyxhQUFhLEVBQUU7SUFDcEIsS0FBSyxvQkFBb0IsRUFBRTtLQUMzQjtHQUNGLEtBQUssbUJBQW1CLGlCQUFpQixNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7R0FDcEUsS0FBSyxtQkFBbUIseUJBQXlCLE1BQU0sS0FBSyxvQkFBb0IsRUFBRSxDQUFDOztFQUdyRSxvQkFBaUI7R0FDL0IsTUFBTSxtQkFBbUI7R0FNekIsS0FBSyxVQUFVLElBQUksZ0JBQWdCOztFQUc3QixvQkFBb0IsT0FBYTtHQUV2QyxPQUFPLGlCQUFpQjtHQUV4QixLQUFLLFlBQ0gsdUJBQ0EsTUFBTSxLQUFLLEtBQUssbUJBQW1CLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUNwRCxVQUFVLENBQUMsQ0FBQyxNQUFNLGVBQ3BCLENBQ0Y7O0VBR0ssYUFBYSxPQUFhO0dBRWhDLE9BQU8saUJBQWlCO0dBRXhCLEtBQUssV0FBVyxNQUFNLEtBQ3BCLEtBQUssbUJBQ0gsd0ZBQ0QsSUFBSSxFQUFFLENBQ1IsQ0FBQyxRQUVFLG1CQUNBLFNBQ0U7SUFDRixNQUFNLDBCQUEwQixrQkFBa0Isa0JBQWtCLFNBQVM7SUFFN0UsSUFBSSxLQUFLLFVBQVUsV0FBVyxrQkFBa0IsRUFBRTtLQUNoRCxNQUFNLGtCQUNILEtBQWdDLFVBQVUsS0FBSyxhQUFhLFNBQVM7S0FFeEUsSUFBSSxDQUFDLHdCQUF3QixTQUFTLGlCQUNwQyx3QkFBd0IsUUFBUTtLQUdsQyxJQUFJLENBQUMsbUJBQW1CLHdCQUF3QixVQUFVLGlCQUN4RCx3QkFBd0I7VUFFeEIsa0JBQWtCLEtBQUs7TUFDckIsT0FBTztNQUNQLFlBQVk7TUFDWixxQkFBcUI7TUFDdEIsQ0FBQztXQUVDLElBQUksS0FBSyxjQUFjLDZCQUM1Qix3QkFBd0I7SUFHMUIsT0FBTztNQUVULENBQUM7SUFBRSxZQUFZO0lBQUcscUJBQXFCO0lBQXVCLENBQUMsQ0FDaEU7R0FFRCxLQUFLLFlBQ0gsZUFDQSxLQUFLLFNBQVMsTUFBTSxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FDckM7O0VBR2dCLFdBQVcsbUJBQXlEO0dBQ3JGLE1BQU0sV0FBVyxrQkFBa0I7R0FFbkMsSUFBSSxrQkFBa0IsSUFBSSxlQUFlLEVBQUU7SUFDekMsS0FBSyxjQUFjO0lBQ25CLEtBQUsscUJBQXFCOzs7RUFJWCxTQUFNO0dBQ3ZCLE9BQU8sSUFBSTtRQUNQLEtBQUssU0FBUyxVQUFVLEtBQUssU0FBUyxHQUFHLFVBQVUsS0FBQSxJQUNqRCxJQUFJO2NBQ0EsS0FBSyxTQUFTLEtBQ2IscUJBQ0MsSUFBSTs7MEJBRU0sU0FBUztJQUNmLHFDQUFxQyxpQkFBaUI7SUFDdEQscURBQ0UsaUJBQWlCO0lBQ3BCLENBQUMsQ0FBQTs7O3NCQUdFLEdBQ0EsaUJBQWlCLGVBQWUsS0FBSyxpQkFBaUIsUUFDbEQsZ0JBQWdCLEtBQUssVUFBVSxXQUMvQixXQUFXLEtBQUssVUFBVSxTQUNoQyxHQUFJLGlCQUFpQixRQUFRLGlCQUFpQixRQUFRLEtBQUE7O3lCQUc3RCxDQUFBO29CQUVILFFBQUE7OztVQUdBLEtBQUssV0FBVztJQUNoQixPQUFPO0lBQ1AsV0FBVyxXQUFXLEtBQUssVUFBVTtJQUN0QyxDQUFDLENBQUEifQ==
190
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC1CRWc2T1BpYi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tZm9ybWF0aW9uL3RyYWluLWZvcm1hdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZzogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc2VjdG9ycyBlbmQnIGF1dG9cbiAgICAnc3RhcnQgdHJhaW5zIGVuZCcgYXV0byAvIGF1dG8gMWZyIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG8gdmlzaWJsZTtcbiAgZ2FwOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCkgMDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG5cbiAgLy8gRW5hYmxlIGlubGluZSBwYWRkaW5nXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZ3JpZC1hcmVhOiBzdGFydDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBncmlkLWFyZWE6IGVuZDtcbiAgfVxufVxuXG4vLyBXaXRoIHNjcm9sbGFibGUgY29udGVudCwgdGhlIHRyYWluIGZvcm1hdGlvbiBjYW4gZ2V0IGZvY3VzLlxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtc2VjdG9ycykpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLWRpcmVjdGlvbi1sYWJlbCkpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkOiByb3c7XG5cbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc3RhcnQnIGF1dG9cbiAgICAnc2VjdG9ycyB0cmFpbnMnIDFmclxuICAgICdlbmQgZW5kJyBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZSBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tcGFkZGluZyk7XG4gIGdhcDogMCB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2Nyb2xsLXBhZGRpbmcpO1xuICB9XG59XG5cbi5zYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hcmVhOiBzZWN0b3JzO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvciB7XG4gIC0tX3dhZ29uLXN1bTogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZGltZW5zaW9uLWxvbmcpO1xuICAtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIC0tX3RvdGFsLWNvdW50OiBjYWxjKFxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tY291bnQpICsgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQpXG4gICk7XG4gIC0tX2dhcC1zdW06IGNhbGMoKHZhcigtLV90b3RhbC1jb3VudCkgLSAxKSAqIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKSk7XG4gIC0tX3NlY3Rvci13aWR0aDogY2FsYyh2YXIoLS1fd2Fnb24tc3VtKSArIHZhcigtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtKSArIHZhcigtLV9nYXAtc3VtKSk7XG4gIC0tX3NlY3Rvci1saW5lLWxlbmd0aDogY2FsYygwLjUgKiB2YXIoLS1fc2VjdG9yLXdpZHRoKSk7XG5cbiAgZmxleDogMCAwIHZhcigtLV9zZWN0b3Itd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGNsaXAgdmlzaWJsZTtcblxuICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlIGNsaXA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3Rvci1zdGlja3ktd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGluc2V0OiBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3ItcGFkZGluZyk7XG4gIG1hcmdpbjogMCB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgd3JpdGluZy1tb2RlOiBzaWRld2F5cy1scjtcbiAgICBpbnNldDogMCBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLXBhZGRpbmcpIDA7XG4gICAgbWFyZ2luOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pIDA7XG4gIH1cblxuICAvLyBMaW5lcyBiZXNpZGUgdGhlIHNlY3Rvci1sYWJlbFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAvLyBFeGFjdGx5IGNlbnRlciB0aGUgbGluZSBieSBzdWJ0cmFjdGluZyBoYWxmIG9mIHRoZSBib3JkZXIgd2lkdGhcbiAgICBpbnNldC1ibG9jazogY2FsYyg1MCUgLSB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLXdpZHRoKSAvIDIpO1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLWxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLWNvbG9yKTtcbiAgICB3aWR0aDogdmFyKC0tX3NlY3Rvci1saW5lLWxlbmd0aCk7XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IHZhcigtLV9zZWN0b3ItbGluZS1sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWlucyB7XG4gIGdyaWQtYXJlYTogdHJhaW5zO1xufVxuXG4uc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4vLyBVc2luZyAuLi4gbGkgc2VsZWN0b3IsIGJlY2F1c2UgdGhlIGxpIGdlbmVyYXRpb25cbi8vIGlzIGhhbmRsZWQgaW4gdGhlIGNvbXBvbmVudCBiYXNlIGNsYXNzLlxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7XG4gIGhvc3RTY3JvbGxiYXJTdHlsZXMsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TZWN0b3JTaG9ydCxcbiAgaTE4blRyYWlucyxcbiAgU2JiRWxlbWVudCxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluRWxlbWVudCB9IGZyb20gJy4uL3RyYWluL3RyYWluLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50IH0gZnJvbSAnLi4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRTZWN0b3Ige1xuICBsYWJlbDogc3RyaW5nO1xuICB3YWdvbkNvdW50OiBudW1iZXI7XG4gIGJsb2NrZWRQYXNzYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBvc2l0aW9uLCBhY3RpbmcgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbi1mb3JtYXRpb25gLlxuICogQGNzc3Byb3AgWy0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZz12YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCldIC0gRGVmaW5lcyB0aGUgaW5saW5lIG9yIGJsb2NrIHBhZGRpbmcgaW5zaWRlIHRoZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHNjcm9sbGluZyBhcmVhLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJUcmFpbkVsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi1mb3JtYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItdHJhaW4nXTtcblxuICAvKiogV2hldGhlciB0aGUgdmlldyBvZiB0aGUgd2Fnb25zIGlzIGZyb20gc2lkZSBvciB0b3AgcGVyc3BlY3RpdmUuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHZpZXc6ICdzaWRlJyB8ICd0b3AnID0gJ3NpZGUnO1xuXG4gIC8qKiBPcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID1cbiAgICAnaG9yaXpvbnRhbCc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfc2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdID0gW107XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0cmFpbnNsb3RjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoZSk7XG4gICAgICB0aGlzLl9yZWFkRGlyZWN0aW9uTGFiZWwoZSk7XG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3NlY3RvcmNoYW5nZScsIChlKSA9PiB0aGlzLl9yZWFkU2VjdG9ycyhlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2RpcmVjdGlvbmxhYmVsY2hhbmdlJywgKGUpID0+IHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbChlKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIC8vIFdoZW4gaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXIgc3R5bGVzIG9uIHRoZSBob3N0LCB0aGVyZSBpcyBubyBob3ZlciBlZmZlY3Qgb2YgdGhlIHNjcm9sbGJhciBwb3NzaWJsZS5cbiAgICAvLyBJbiBtb3N0IGNhc2VzLCB0aGUgY29tcG9uZW50IHdpbGwgYmUgdXNlZCBpbiBMaWdodCBET00uIFRvIGFsc28gc3VwcG9ydCB0aGUgaG92ZXIgZWZmZWN0LFxuICAgIC8vIHdlIGFkZGl0aW9uYWxseSBhZGQgdGhlIGBzYmItc2Nyb2xsYmFyYCBDU1MgY2xhc3MgdG8gdGhlIGhvc3QuXG4gICAgLy8gVGhpcyBpcyBhbiBleGNlcHRpb24gYXMgd2Ugbm9ybWFsbHkgZG9uJ3QgYWx0ZXIgdGhlIGNsYXNzTGlzdCBvZiB0aGUgaG9zdC5cbiAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NiYi1zY3JvbGxiYXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWREaXJlY3Rpb25MYWJlbChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdoYXMtZGlyZWN0aW9uLWxhYmVsJyxcbiAgICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi10cmFpbicpID8/IFtdKS5zb21lKFxuICAgICAgICAodHJhaW4pID0+ICEhdHJhaW4uZGlyZWN0aW9uTGFiZWwsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkU2VjdG9ycyhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gS2VlcCB0aGUgZXZlbnQgaW50ZXJuYWwuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5fc2VjdG9ycyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQ+KFxuICAgICAgICAnc2JiLXRyYWluLXdhZ29uLHNiYi10cmFpbi13YWdvbi1idXR0b24sc2JiLXRyYWluLXdhZ29uLWxpbmssc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScsXG4gICAgICApID8/IFtdLFxuICAgICkucmVkdWNlKFxuICAgICAgKFxuICAgICAgICBhZ2dyZWdhdGVkU2VjdG9yczogQWdncmVnYXRlZFNlY3RvcltdLFxuICAgICAgICBpdGVtOiBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIHwgU2JiVHJhaW5CbG9ja2VkUGFzc2FnZUVsZW1lbnQsXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IgPSBhZ2dyZWdhdGVkU2VjdG9yc1thZ2dyZWdhdGVkU2VjdG9ycy5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoaXRlbS5sb2NhbE5hbWUuc3RhcnRzV2l0aCgnc2JiLXRyYWluLXdhZ29uJykpIHtcbiAgICAgICAgICBjb25zdCBzZWN0b3JBdHRyaWJ1dGUgPVxuICAgICAgICAgICAgKGl0ZW0gYXMgU2JiVHJhaW5XYWdvbk1peGluVHlwZSkuc2VjdG9yID8/IGl0ZW0uZ2V0QXR0cmlidXRlKCdzZWN0b3InKTtcblxuICAgICAgICAgIGlmICghY3VycmVudEFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgJiYgc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9IHNlY3RvckF0dHJpYnV0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXNlY3RvckF0dHJpYnV0ZSB8fCBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCA9PT0gc2VjdG9yQXR0cmlidXRlKSB7XG4gICAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50Kys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3JzLnB1c2goe1xuICAgICAgICAgICAgICBsYWJlbDogc2VjdG9yQXR0cmlidXRlLFxuICAgICAgICAgICAgICB3YWdvbkNvdW50OiAxLFxuICAgICAgICAgICAgICBibG9ja2VkUGFzc2FnZUNvdW50OiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ubG9jYWxOYW1lID09PSAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZScpIHtcbiAgICAgICAgICBjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5ibG9ja2VkUGFzc2FnZUNvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWdncmVnYXRlZFNlY3RvcnM7XG4gICAgICB9LFxuICAgICAgW3sgd2Fnb25Db3VudDogMCwgYmxvY2tlZFBhc3NhZ2VDb3VudDogMCB9IGFzIEFnZ3JlZ2F0ZWRTZWN0b3JdLFxuICAgICk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2hhcy1zZWN0b3JzJyxcbiAgICAgIHRoaXMuX3NlY3RvcnMuc29tZSgocykgPT4gISFzLmxhYmVsKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgdGhpcy5fcmVhZFNlY3RvcnMoKTtcbiAgICAgIHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLl9zZWN0b3JzLmxlbmd0aCAmJiB0aGlzLl9zZWN0b3JzWzBdLmxhYmVsICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAke3RoaXMuX3NlY3RvcnMubWFwKFxuICAgICAgICAgICAgICAoYWdncmVnYXRlZFNlY3RvcikgPT5cbiAgICAgICAgICAgICAgICBodG1sYDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvclwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCc6IGFnZ3JlZ2F0ZWRTZWN0b3Iud2Fnb25Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgJy0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQnOlxuICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3IuYmxvY2tlZFBhc3NhZ2VDb3VudCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRyYWluLWZvcm1hdGlvbl9fc2VjdG9yLXN0aWNreS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICR7YCR7XG4gICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50ID09PSAxICYmIGFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaTE4blNlY3RvclNob3J0W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGkxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgICAgICAgfSAke2FnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgPyBhZ2dyZWdhdGVkU2VjdG9yLmxhYmVsIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX190cmFpbnNcIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgIGNsYXNzOiAnc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCcsXG4gICAgICAgICAgYXJpYUxhYmVsOiBpMThuVHJhaW5zW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdLFxuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi1mb3JtYXRpb24nOiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7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