@sbb-esta/lyne-elements 2.11.0 → 2.11.2

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 (379) hide show
  1. package/accordion/accordion.component.js +19 -22
  2. package/action-group/action-group.component.js +3 -5
  3. package/alert/alert/alert.component.js +1 -2
  4. package/alert/alert-group/alert-group.component.js +2 -3
  5. package/autocomplete/autocomplete-base-element.js +71 -82
  6. package/autocomplete/autocomplete.component.js +31 -36
  7. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +44 -52
  8. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +3 -4
  9. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +17 -20
  10. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +23 -26
  11. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +9 -9
  12. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +29 -33
  13. package/button/mini-button/mini-button.component.js +1 -1
  14. package/button/mini-button-group/mini-button-group.component.js +1 -2
  15. package/calendar/calendar.component.js +8 -13
  16. package/card/card/card.component.js +12 -12
  17. package/card/card-badge/card-badge.component.js +16 -16
  18. package/card/common/card-action-common.js +23 -25
  19. package/checkbox/checkbox/checkbox.component.js +17 -20
  20. package/checkbox/checkbox-group/checkbox-group.component.js +39 -52
  21. package/checkbox/checkbox-panel/checkbox-panel.component.js +22 -25
  22. package/checkbox/common/checkbox-common.js +13 -15
  23. package/chip/chip-group/chip-group.component.js +59 -70
  24. package/clock/clock.component.js +50 -60
  25. package/container/container/container.component.js +28 -29
  26. package/container/sticky-bar/sticky-bar.component.js +26 -27
  27. package/core/a11y/focus-trap-controller.js +11 -14
  28. package/core/a11y/focus.js +27 -29
  29. package/core/a11y/input-modality-detector.js +18 -19
  30. package/core/a11y/interactivity-checker.js +10 -10
  31. package/core/base-elements/button-base-element.js +13 -18
  32. package/core/base-elements/link-base-element.js +3 -6
  33. package/core/base-elements/open-close-base-element.js +1 -1
  34. package/core/controllers/connected-abort-controller.js +2 -4
  35. package/core/controllers/escapable-overlay-controller.js +10 -12
  36. package/core/controllers/id-reference-controller.js +13 -14
  37. package/core/controllers/inert-controller.js +8 -10
  38. package/core/controllers/slot-state-controller.js +16 -26
  39. package/core/datetime/date-adapter.d.ts.map +1 -1
  40. package/core/datetime/date-adapter.js +21 -21
  41. package/core/datetime/native-date-adapter.js +11 -11
  42. package/core/decorators/date-converter.js +10 -12
  43. package/core/decorators/date-only-type.js +5 -6
  44. package/core/decorators/force-type.js +4 -5
  45. package/core/dom/breakpoint.js +8 -8
  46. package/core/dom/input-element.js +4 -9
  47. package/core/eventing/event-emitter.js +4 -5
  48. package/core/mixins/form-associated-checkbox-mixin.js +32 -37
  49. package/core/mixins/form-associated-input-mixin.js +58 -64
  50. package/core/mixins/form-associated-mixin.js +42 -44
  51. package/core/mixins/form-associated-radio-button-mixin.js +3 -5
  52. package/core/mixins/hydration-mixin.js +12 -13
  53. package/core/mixins/named-slot-list-mixin.js +32 -37
  54. package/core/mixins/panel-mixin.js +26 -27
  55. package/core/mixins.js +1 -1
  56. package/core/overlay/position.js +23 -23
  57. package/core/styles/core/mediaqueries.scss +1 -1
  58. package/core/styles/core.scss +27 -28
  59. package/core/styles/mixins/table.scss +1 -24
  60. package/core/styles/mixins/typo.scss +0 -1
  61. package/core/testing/event-spy.js +2 -4
  62. package/core/testing/wait-for-image-ready.js +8 -9
  63. package/core/testing/wait-for-render.js +8 -9
  64. package/custom-elements.json +2 -2
  65. package/date-input/date-input.component.js +2 -4
  66. package/datepicker/common/datepicker-association-controllers.js +21 -24
  67. package/datepicker/common/datepicker-button.js +53 -57
  68. package/datepicker/datepicker/datepicker.component.js +82 -95
  69. package/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  70. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  71. package/datepicker/datepicker-toggle/datepicker-toggle.component.js +74 -81
  72. package/development/accordion/accordion.component.js +4 -7
  73. package/development/action-group/action-group.component.js +3 -5
  74. package/development/alert/alert/alert.component.js +2 -3
  75. package/development/alert/alert-group/alert-group.component.js +2 -3
  76. package/development/autocomplete/autocomplete-base-element.js +19 -30
  77. package/development/autocomplete/autocomplete.component.js +7 -12
  78. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +10 -18
  79. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +3 -4
  80. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  81. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +4 -7
  82. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +4 -7
  83. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -2
  84. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  85. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -9
  86. package/development/button/accent-button/accent-button.component.js +1 -1
  87. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  88. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  89. package/development/button/button/button.component.js +1 -1
  90. package/development/button/button-link/button-link.component.js +1 -1
  91. package/development/button/button-static/button-static.component.js +1 -1
  92. package/development/button/common/button-common.js +1 -1
  93. package/development/button/mini-button/mini-button.component.js +1 -1
  94. package/development/button/mini-button-group/mini-button-group.component.js +2 -3
  95. package/development/button/secondary-button/secondary-button.component.js +1 -1
  96. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  97. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  98. package/development/button/transparent-button/transparent-button.component.js +1 -1
  99. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  100. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  101. package/development/calendar/calendar.component.js +9 -14
  102. package/development/card/card/card.component.js +1 -1
  103. package/development/card/card-badge/card-badge.component.js +1 -1
  104. package/development/card/card-button/card-button.component.js +1 -1
  105. package/development/card/card-link/card-link.component.js +1 -1
  106. package/development/card/common/card-action-common.js +3 -5
  107. package/development/checkbox/checkbox/checkbox.component.js +2 -5
  108. package/development/checkbox/checkbox-group/checkbox-group.component.js +8 -21
  109. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +2 -5
  110. package/development/checkbox/common/checkbox-common.js +3 -5
  111. package/development/chip/chip/chip.component.js +1 -1
  112. package/development/chip/chip-group/chip-group.component.js +15 -26
  113. package/development/chip-label/chip-label.component.js +1 -1
  114. package/development/clock/clock.component.js +23 -33
  115. package/development/container/container/container.component.js +2 -3
  116. package/development/container/sticky-bar/sticky-bar.component.js +2 -3
  117. package/development/core/a11y/arrow-navigation.js +1 -1
  118. package/development/core/a11y/fake-event-detection.js +1 -1
  119. package/development/core/a11y/focus-trap-controller.js +6 -9
  120. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  121. package/development/core/a11y/focus.js +8 -10
  122. package/development/core/a11y/input-modality-detector.js +2 -3
  123. package/development/core/a11y/interactivity-checker.js +2 -2
  124. package/development/core/base-elements/action-base-element.js +2 -3
  125. package/development/core/base-elements/button-base-element.js +6 -11
  126. package/development/core/base-elements/link-base-element.js +4 -7
  127. package/development/core/base-elements/open-close-base-element.js +2 -2
  128. package/development/core/config/config.js +1 -1
  129. package/development/core/controllers/connected-abort-controller.js +3 -5
  130. package/development/core/controllers/escapable-overlay-controller.js +3 -5
  131. package/development/core/controllers/id-reference-controller.js +2 -3
  132. package/development/core/controllers/inert-controller.js +4 -6
  133. package/development/core/controllers/language-controller.js +1 -1
  134. package/development/core/controllers/media-matchers-controller.js +1 -1
  135. package/development/core/controllers/slot-state-controller.js +8 -18
  136. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  137. package/development/core/datetime/date-adapter.js +5 -5
  138. package/development/core/datetime/native-date-adapter.js +2 -2
  139. package/development/core/decorators/date-converter.js +3 -5
  140. package/development/core/decorators/date-only-type.js +2 -3
  141. package/development/core/decorators/force-type.js +3 -4
  142. package/development/core/decorators/get-override.js +1 -1
  143. package/development/core/decorators/handle-distinct-change.js +1 -1
  144. package/development/core/decorators/host-attributes.js +1 -1
  145. package/development/core/decorators/slot-state.js +1 -1
  146. package/development/core/dom/animation.js +1 -1
  147. package/development/core/dom/breakpoint.js +2 -2
  148. package/development/core/dom/find-referenced-element.js +1 -1
  149. package/development/core/dom/host-context.js +1 -1
  150. package/development/core/dom/input-element.js +3 -4
  151. package/development/core/dom/platform.js +1 -1
  152. package/development/core/dom/scroll.js +1 -1
  153. package/development/core/dom/set-or-remove-attribute.js +1 -1
  154. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  155. package/development/core/eventing/event-emitter.js +2 -3
  156. package/development/core/eventing/form-element-handlers.js +1 -1
  157. package/development/core/eventing/forward-event.js +1 -1
  158. package/development/core/eventing/throttle.js +1 -1
  159. package/development/core/i18n/i18n.js +1 -1
  160. package/development/core/mixins/animation-complete-mixin.js +1 -1
  161. package/development/core/mixins/disabled-mixin.js +1 -1
  162. package/development/core/mixins/form-associated-checkbox-mixin.js +6 -9
  163. package/development/core/mixins/form-associated-input-mixin.js +14 -20
  164. package/development/core/mixins/form-associated-mixin.js +5 -7
  165. package/development/core/mixins/form-associated-radio-button-mixin.js +7 -9
  166. package/development/core/mixins/hydration-mixin.js +3 -4
  167. package/development/core/mixins/named-slot-list-mixin.js +4 -7
  168. package/development/core/mixins/negative-mixin.js +1 -1
  169. package/development/core/mixins/panel-mixin.js +2 -3
  170. package/development/core/mixins/required-mixin.js +1 -1
  171. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  172. package/development/core/overlay/overlay-option-panel.js +1 -1
  173. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  174. package/development/core/overlay/overlay.js +1 -1
  175. package/development/core/overlay/position.js +5 -5
  176. package/development/core/testing/event-spy.js +3 -5
  177. package/development/core/testing/mocha-extensions.js +1 -1
  178. package/development/core/testing/wait-for-condition.js +1 -1
  179. package/development/core/testing/wait-for-image-ready.js +2 -3
  180. package/development/core/testing/wait-for-render.js +2 -3
  181. package/development/date-input/date-input.component.js +4 -6
  182. package/development/datepicker/common/datepicker-association-controllers.js +6 -9
  183. package/development/datepicker/common/datepicker-button.js +7 -11
  184. package/development/datepicker/datepicker/datepicker.component.js +22 -35
  185. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  186. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  187. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +13 -20
  188. package/development/dialog/dialog/dialog.component.js +16 -27
  189. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  190. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  191. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  192. package/development/divider/divider.component.js +1 -1
  193. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +9 -13
  194. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  195. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +4 -5
  196. package/development/file-selector/common/file-selector-common.js +2 -3
  197. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  198. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  199. package/development/flip-card/flip-card/flip-card.component.js +7 -13
  200. package/development/flip-card/flip-card-details/flip-card-details.component.js +2 -3
  201. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +2 -3
  202. package/development/footer/footer.component.js +1 -1
  203. package/development/form-error/form-error.component.js +3 -4
  204. package/development/form-field/form-field/form-field.component.js +19 -30
  205. package/development/form-field/form-field-clear/form-field-clear.component.js +4 -6
  206. package/development/header/common/header-action-common.js +1 -1
  207. package/development/header/header/header.component.js +5 -8
  208. package/development/header/header-button/header-button.component.js +1 -1
  209. package/development/header/header-link/header-link.component.js +1 -1
  210. package/development/icon/icon-base.js +1 -1
  211. package/development/icon/icon-name-mixin.js +1 -1
  212. package/development/icon/icon-request.js +2 -3
  213. package/development/icon/icon-validate.js +1 -1
  214. package/development/icon/icon.component.js +1 -1
  215. package/development/image/image.component.js +7 -9
  216. package/development/journey-header/journey-header.component.js +1 -1
  217. package/development/lead-container/lead-container.component.js +1 -1
  218. package/development/link/block-link/block-link.component.js +1 -1
  219. package/development/link/block-link-button/block-link-button.component.js +1 -1
  220. package/development/link/block-link-static/block-link-static.component.js +1 -1
  221. package/development/link/common/block-link-common.js +1 -1
  222. package/development/link/common/inline-link-common.js +1 -1
  223. package/development/link/link/link.component.js +1 -1
  224. package/development/link/link-button/link-button.component.js +1 -1
  225. package/development/link/link-static/link-static.component.js +1 -1
  226. package/development/link-common-CJEWffDZ.js +1 -1
  227. package/development/link-list/common/link-list-base.js +1 -1
  228. package/development/link-list/link-list/link-list.component.js +1 -1
  229. package/development/link-list/link-list-anchor/link-list-anchor.component.js +1 -1
  230. package/development/loading-indicator/loading-indicator.component.js +1 -1
  231. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  232. package/development/logo/logo.component.js +1 -1
  233. package/development/map-container/map-container.component.js +2 -3
  234. package/development/menu/common/menu-action-common.js +1 -1
  235. package/development/menu/menu/menu.component.js +17 -25
  236. package/development/menu/menu-button/menu-button.component.js +1 -1
  237. package/development/menu/menu-link/menu-link.component.js +1 -1
  238. package/development/message/message.component.js +1 -1
  239. package/development/navigation/common/navigation-action-common.js +3 -5
  240. package/development/navigation/navigation/navigation.component.js +19 -35
  241. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  242. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  243. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  244. package/development/navigation/navigation-marker/navigation-marker.component.js +4 -6
  245. package/development/navigation/navigation-section/navigation-section.component.js +22 -32
  246. package/development/notification/notification.component.js +22 -24
  247. package/development/option/optgroup/optgroup-base-element.js +4 -6
  248. package/development/option/optgroup/optgroup.component.js +6 -10
  249. package/development/option/option/option-base-element.js +3 -4
  250. package/development/option/option/option.component.js +7 -10
  251. package/development/overlay/overlay-base-element.js +4 -6
  252. package/development/overlay/overlay.component.js +7 -9
  253. package/development/paginator/common/paginator-common.js +1 -1
  254. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  255. package/development/paginator/paginator/paginator.component.js +2 -3
  256. package/development/popover/popover/popover.component.d.ts.map +1 -1
  257. package/development/popover/popover/popover.component.js +17 -19
  258. package/development/popover/popover-trigger/popover-trigger.component.js +1 -1
  259. package/development/radio-button/common/radio-button-common.js +6 -10
  260. package/development/radio-button/radio-button/radio-button.component.js +2 -5
  261. package/development/radio-button/radio-button-group/radio-button-group.component.js +8 -24
  262. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +3 -7
  263. package/development/screen-reader-only/screen-reader-only.component.js +1 -1
  264. package/development/select/select.component.js +26 -48
  265. package/development/selection-expansion-panel/selection-expansion-panel.component.js +7 -11
  266. package/development/sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  267. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  268. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +4 -7
  269. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  270. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  271. package/development/sidebar/sidebar/sidebar.component.js +8 -15
  272. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  273. package/development/sidebar/sidebar-container/sidebar-container.component.js +9 -13
  274. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  275. package/development/sidebar/sidebar-title/sidebar-title.component.js +2 -2
  276. package/development/signet/signet.component.js +1 -1
  277. package/development/skiplink-list/skiplink-list.component.js +1 -1
  278. package/development/slider/slider.component.js +3 -4
  279. package/development/status/status.component.js +3 -2
  280. package/development/stepper/step/step.component.js +5 -7
  281. package/development/stepper/step-label/step-label.component.js +3 -4
  282. package/development/stepper/stepper/stepper.component.js +16 -29
  283. package/development/table/table-wrapper/table-wrapper.component.js +2 -7
  284. package/development/tabs/tab/tab.component.js +1 -1
  285. package/development/tabs/tab-group/tab-group.component.js +23 -38
  286. package/development/tabs/tab-label/tab-label.component.js +1 -1
  287. package/development/tag/tag/tag.component.js +6 -12
  288. package/development/tag/tag-group/tag-group.component.js +5 -13
  289. package/development/teaser/teaser.component.js +1 -1
  290. package/development/teaser-hero/teaser-hero.component.js +1 -1
  291. package/development/teaser-product/common/teaser-product-common.js +1 -1
  292. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  293. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  294. package/development/time-input/time-input.component.js +8 -12
  295. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  296. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +2 -3
  297. package/development/title/title-base.js +1 -2
  298. package/development/title/title.component.js +1 -1
  299. package/development/toast/toast.component.js +4 -7
  300. package/development/toggle/toggle/toggle.component.js +8 -12
  301. package/development/toggle/toggle-option/toggle-option.component.js +9 -16
  302. package/development/toggle-check/toggle-check.component.js +1 -1
  303. package/development/train/train/train.component.js +1 -1
  304. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  305. package/development/train/train-formation/train-formation.component.js +5 -7
  306. package/development/train/train-wagon/train-wagon.component.js +1 -1
  307. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  308. package/dialog/dialog/dialog.component.js +59 -70
  309. package/expansion-panel/expansion-panel/expansion-panel.component.js +5 -9
  310. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +31 -32
  311. package/file-selector/common/file-selector-common.js +1 -2
  312. package/flip-card/flip-card/flip-card.component.js +48 -54
  313. package/flip-card/flip-card-details/flip-card-details.component.js +16 -17
  314. package/flip-card/flip-card-summary/flip-card-summary.component.js +18 -19
  315. package/form-error/form-error.component.js +13 -14
  316. package/form-field/form-field/form-field.component.js +128 -139
  317. package/form-field/form-field-clear/form-field-clear.component.js +20 -22
  318. package/header/header/header.component.js +25 -28
  319. package/icon/icon-request.js +10 -11
  320. package/icon-sidebar-button-common-CM-ueEhH.js +7 -0
  321. package/image/image.component.js +4 -6
  322. package/map-container/map-container.component.js +1 -2
  323. package/menu/menu/menu.component.js +48 -56
  324. package/navigation/common/navigation-action-common.js +19 -21
  325. package/navigation/navigation/navigation.component.js +74 -93
  326. package/navigation/navigation-marker/navigation-marker.component.js +26 -28
  327. package/navigation/navigation-section/navigation-section.component.js +79 -89
  328. package/notification/notification.component.js +18 -20
  329. package/option/optgroup/optgroup-base-element.js +40 -42
  330. package/option/optgroup/optgroup.component.js +16 -20
  331. package/option/option/option-base-element.js +3 -4
  332. package/option/option/option.component.js +28 -31
  333. package/overlay/overlay-base-element.js +25 -27
  334. package/overlay/overlay.component.js +38 -40
  335. package/package.json +1 -1
  336. package/paginator/paginator/paginator.component.js +3 -4
  337. package/popover/popover/popover.component.d.ts.map +1 -1
  338. package/popover/popover/popover.component.js +65 -72
  339. package/popover/popover-trigger/popover-trigger.component.js +1 -1
  340. package/radio-button/common/radio-button-common.js +11 -15
  341. package/radio-button/radio-button/radio-button.component.js +20 -23
  342. package/radio-button/radio-button-group/radio-button-group.component.js +27 -43
  343. package/radio-button/radio-button-panel/radio-button-panel.component.js +31 -35
  344. package/select/select.component.js +89 -111
  345. package/selection-expansion-panel/selection-expansion-panel.component.js +35 -39
  346. package/sidebar/common.js +1 -1
  347. package/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +10 -13
  348. package/sidebar/sidebar/sidebar.component.js +61 -68
  349. package/sidebar/sidebar-container/sidebar-container.component.js +29 -33
  350. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  351. package/sidebar.js +1 -1
  352. package/slider/slider.component.js +3 -4
  353. package/standard-theme.css +0 -25
  354. package/status/status.component.js +17 -17
  355. package/stepper/step/step.component.js +22 -24
  356. package/stepper/step-label/step-label.component.js +2 -3
  357. package/stepper/stepper/stepper.component.js +72 -86
  358. package/table/table-wrapper/table-wrapper.component.js +13 -14
  359. package/table.css +0 -25
  360. package/tabs/tab-group/tab-group.component.js +77 -92
  361. package/tabs/tab-label/tab-label.component.js +10 -10
  362. package/tag/tag/tag.component.js +55 -61
  363. package/tag/tag-group/tag-group.component.js +21 -29
  364. package/teaser/teaser.component.js +1 -1
  365. package/teaser-product/common.js +1 -1
  366. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  367. package/teaser-product-common-C8oSkIxy.js +5 -0
  368. package/teaser-product.js +1 -1
  369. package/time-input/time-input.component.js +62 -66
  370. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +9 -10
  371. package/title/title-base.js +1 -1
  372. package/toast/toast.component.js +4 -7
  373. package/toggle/toggle/toggle.component.js +38 -42
  374. package/toggle/toggle-option/toggle-option.component.js +47 -54
  375. package/train/train-formation/train-formation.component.js +41 -43
  376. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +0 -530
  377. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +0 -1123
  378. package/icon-sidebar-button-common-DG8bnrBu.js +0 -7
  379. package/teaser-product-common-CpMAlYEp.js +0 -5
@@ -599,24 +599,22 @@ let SbbFormFieldElement = (() => {
599
599
  }
600
600
  }
601
601
  disconnectedCallback() {
602
- var _a2, _b;
603
602
  super.disconnectedCallback();
604
- (_a2 = this._formFieldAttributeObserver) == null ? void 0 : _a2.disconnect();
603
+ this._formFieldAttributeObserver?.disconnect();
605
604
  this._inputAbortController.abort();
606
- if (((_b = this._input) == null ? void 0 : _b.localName) === "input") {
605
+ if (this._input?.localName === "input") {
607
606
  this._unpatchInputValue();
608
607
  }
609
608
  }
610
609
  _handleWrapperClick(event) {
611
- var _a2, _b;
612
610
  if (this._isElementFocusExcluded(event)) {
613
611
  return;
614
612
  }
615
- if (((_a2 = this._input) == null ? void 0 : _a2.localName) === "sbb-select" && event.target.localName !== "sbb-select") {
613
+ if (this._input?.localName === "sbb-select" && event.target.localName !== "sbb-select") {
616
614
  this._input.click();
617
615
  this._input.focus();
618
616
  } else if (event.target.localName !== "label") {
619
- (_b = this._input) == null ? void 0 : _b.focus();
617
+ this._input?.focus();
620
618
  }
621
619
  }
622
620
  _isElementFocusExcluded(event) {
@@ -634,7 +632,6 @@ let SbbFormFieldElement = (() => {
634
632
  * It is used internally to assign the attributes of `<input>` to `_id` and `_input` and to observe the native readonly and disabled attributes.
635
633
  */
636
634
  _onSlotInputChange() {
637
- var _a2, _b;
638
635
  const newInput = this.querySelector(`:where(${this._supportedInputElements.join(",")})`);
639
636
  this._assignSlots();
640
637
  if (this._input && this._input.localName === "input" && newInput !== this._input) {
@@ -652,8 +649,8 @@ let SbbFormFieldElement = (() => {
652
649
  if (this._input.localName === "textarea") {
653
650
  this._input.setAttribute("rows", this._input.getAttribute("rows") || "3");
654
651
  }
655
- (_a2 = this._formFieldAttributeObserver) == null ? void 0 : _a2.disconnect();
656
- (_b = this._formFieldAttributeObserver) == null ? void 0 : _b.observe(this._input, {
652
+ this._formFieldAttributeObserver?.disconnect();
653
+ this._formFieldAttributeObserver?.observe(this._input, {
657
654
  attributes: true,
658
655
  attributeFilter: ["readonly", "disabled", "class", "data-sbb-invalid", "data-expanded"]
659
656
  });
@@ -661,7 +658,6 @@ let SbbFormFieldElement = (() => {
661
658
  this._syncLabelInputReferences();
662
659
  }
663
660
  _syncLabelInputReferences() {
664
- var _a2;
665
661
  if (!this._input || !this._label) {
666
662
  return;
667
663
  }
@@ -674,19 +670,18 @@ let SbbFormFieldElement = (() => {
674
670
  if (!this._label.id) {
675
671
  this._label.id = `sbb-form-field-label-${nextId++}`;
676
672
  }
677
- const labelledby = ((_a2 = this._input.getAttribute("aria-labelledby")) == null ? void 0 : _a2.split(" ").filter((l) => !!l && l !== this._label.id)) ?? [];
673
+ const labelledby = this._input.getAttribute("aria-labelledby")?.split(" ").filter((l) => !!l && l !== this._label.id) ?? [];
678
674
  this._input.setAttribute("aria-labelledby", [...labelledby, this._label.id].join(" "));
679
675
  }
680
676
  }
681
677
  _registerInputListener() {
682
- var _a2;
683
678
  if (!this._input) {
684
679
  return;
685
680
  }
686
681
  this._inputAbortController.abort();
687
682
  this._inputAbortController = new AbortController();
688
683
  this._checkAndUpdateInputEmpty();
689
- (_a2 = this._getInputForm()) == null ? void 0 : _a2.addEventListener("reset", () => setTimeout(() => this.reset()), {
684
+ this._getInputForm()?.addEventListener("reset", () => setTimeout(() => this.reset()), {
690
685
  signal: this._inputAbortController.signal
691
686
  });
692
687
  this._input.addEventListener("input", () => this._checkAndUpdateInputEmpty(), {
@@ -717,22 +712,21 @@ let SbbFormFieldElement = (() => {
717
712
  selectInput.addController(controller);
718
713
  }
719
714
  }
720
- inputFocusElement == null ? void 0 : inputFocusElement.addEventListener("focusin", () => {
715
+ inputFocusElement?.addEventListener("focusin", () => {
721
716
  this.toggleAttribute("data-input-focused", true);
722
717
  this.setAttribute("data-focus-origin", sbbInputModalityDetector.mostRecentModality ?? "");
723
718
  }, {
724
719
  signal: this._inputAbortController.signal
725
720
  });
726
- inputFocusElement == null ? void 0 : inputFocusElement.addEventListener("focusout", () => ["data-focus-origin", "data-input-focused"].forEach((name) => this.removeAttribute(name)), {
721
+ inputFocusElement?.addEventListener("focusout", () => ["data-focus-origin", "data-input-focused"].forEach((name) => this.removeAttribute(name)), {
727
722
  signal: this._inputAbortController.signal
728
723
  });
729
724
  }
730
725
  _getInputForm() {
731
- var _a2;
732
726
  if (this._input instanceof HTMLInputElement || this._input instanceof HTMLSelectElement) {
733
727
  return this._input.form;
734
728
  }
735
- return (_a2 = this._input) == null ? void 0 : _a2.closest("form");
729
+ return this._input?.closest("form");
736
730
  }
737
731
  // We need to patch the value property of the HTMLInputElement in order
738
732
  // to be able to reset the floating label in the empty state.
@@ -765,20 +759,18 @@ let SbbFormFieldElement = (() => {
765
759
  }
766
760
  }
767
761
  _checkAndUpdateInputEmpty() {
768
- var _a2;
769
- this.toggleAttribute("data-input-empty", this._floatingLabelSupportedInputElements.includes((_a2 = this._input) == null ? void 0 : _a2.localName) && this._isInputEmpty());
762
+ this.toggleAttribute("data-input-empty", this._floatingLabelSupportedInputElements.includes(this._input?.localName) && this._isInputEmpty());
770
763
  }
771
764
  _isInputEmpty() {
772
- var _a2, _b, _c, _d, _e;
773
765
  const chipGroupElem = this.querySelector("sbb-chip-group");
774
766
  if (chipGroupElem) {
775
767
  return this._isInputValueEmpty() && chipGroupElem.value.length === 0;
776
768
  } else if (this._input instanceof HTMLInputElement) {
777
769
  return this._floatingLabelSupportedInputTypes.includes(this._input.type) && this._isInputValueEmpty();
778
770
  } else if (this._input instanceof HTMLSelectElement) {
779
- return ((_c = (_b = (_a2 = this._input.selectedOptions) == null ? void 0 : _a2.item(0)) == null ? void 0 : _b.label) == null ? void 0 : _c.trim()) === "";
780
- } else if (((_d = this._input) == null ? void 0 : _d.localName) === "sbb-select") {
781
- return ((_e = this._input.getDisplayValue()) == null ? void 0 : _e.trim()) === "";
771
+ return this._input.selectedOptions?.item(0)?.label?.trim() === "";
772
+ } else if (this._input?.localName === "sbb-select") {
773
+ return this._input.getDisplayValue()?.trim() === "";
782
774
  } else {
783
775
  return this._isInputValueEmpty();
784
776
  }
@@ -839,19 +831,16 @@ let SbbFormFieldElement = (() => {
839
831
  }
840
832
  /** Manually clears the input value. It only works for inputs, selects are not supported. */
841
833
  clear() {
842
- var _a2;
843
- if (((_a2 = this._input) == null ? void 0 : _a2.localName) !== "input") {
834
+ if (this._input?.localName !== "input") {
844
835
  return;
845
836
  }
846
837
  this._input.value = "";
847
838
  this._checkAndUpdateInputEmpty();
848
839
  }
849
840
  _syncNegative() {
850
- var _a2;
851
- (_a2 = this.querySelectorAll) == null ? void 0 : _a2.call(this, "sbb-form-error,sbb-mini-button,sbb-popover-trigger,sbb-form-field-clear,sbb-datepicker-next-day,sbb-datepicker-previous-day,sbb-datepicker-toggle,sbb-select,sbb-autocomplete,sbb-autocomplete-grid,sbb-chip-group").forEach((element) => element.toggleAttribute("negative", this.negative));
841
+ this.querySelectorAll?.("sbb-form-error,sbb-mini-button,sbb-popover-trigger,sbb-form-field-clear,sbb-datepicker-next-day,sbb-datepicker-previous-day,sbb-datepicker-toggle,sbb-select,sbb-autocomplete,sbb-autocomplete-grid,sbb-chip-group").forEach((element) => element.toggleAttribute("negative", this.negative));
852
842
  }
853
843
  render() {
854
- var _a2;
855
844
  return html`
856
845
  <div class="sbb-form-field__space-wrapper">
857
846
  ${/* Queried by id from the autocomplete/select to be used as the anchor element */
@@ -869,7 +858,7 @@ let SbbFormFieldElement = (() => {
869
858
  <div class="sbb-form-field__input">
870
859
  <slot @slotchange=${this._onSlotInputChange}></slot>
871
860
  </div>
872
- ${["select", "sbb-select"].includes((_a2 = this._input) == null ? void 0 : _a2.localName) ? html`<sbb-icon
861
+ ${["select", "sbb-select"].includes(this._input?.localName) ? html`<sbb-icon
873
862
  name="chevron-small-down-small"
874
863
  class="sbb-form-field__select-input-icon"
875
864
  ></sbb-icon>` : nothing}
@@ -934,4 +923,4 @@ let SbbFormFieldElement = (() => {
934
923
  export {
935
924
  SbbFormFieldElement
936
925
  };
937
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiSW5wdXRNb2RhbGl0eSB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0ZpcmVmb3gsIGlzTGVhbiwgc2V0T3JSZW1vdmVBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuT3B0aW9uYWwgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4sIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3QuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9mb3JtLWZpZWxkLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vaWNvbi5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xubGV0IG5leHRGb3JtRmllbGRFcnJvcklkID0gMDtcblxuY29uc3QgcGF0Y2hlZElucHV0cyA9IG5ldyBXZWFrTWFwPEhUTUxJbnB1dEVsZW1lbnQsIFByb3BlcnR5RGVzY3JpcHRvcj4oKTtcblxuLyoqXG4gKiBJdCB3cmFwcyBhbiBpbnB1dCBlbGVtZW50IGFkZGluZyBsYWJlbCwgZXJyb3JzLCBpY29uLCBldGMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpbnB1dC9zZWxlY3Qgb3IgYSBzdXBwb3J0ZWQgbm9uLW5hdGl2ZSBlbGVtZW50LlxuICogQHNsb3QgbGFiZWwgLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhIGxhYmVsLlxuICogQHNsb3QgcHJlZml4IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaWNvbiBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBzbG90IHN1ZmZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGlucHV0LlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBlcnJvci5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWZvcm0tZmllbGQnKVxuQHNsb3RTdGF0ZSgpXG5jbGFzcyBTYmJGb3JtRmllbGRFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdXBwb3J0ZWROYXRpdmVJbnB1dEVsZW1lbnRzID0gW1xuICAgICdpbnB1dCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3RleHRhcmVhJyxcbiAgICAnc2JiLWRhdGUtaW5wdXQnLFxuICBdO1xuICAvLyBMaXN0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHNlbGVjdG9ycyBpbiB1bm5hbWVkIHNsb3RcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkSW5wdXRFbGVtZW50cyA9IFtcbiAgICAuLi50aGlzLl9zdXBwb3J0ZWROYXRpdmVJbnB1dEVsZW1lbnRzLFxuICAgICdzYmItc2VsZWN0JyxcbiAgICAnc2JiLXNsaWRlcicsXG4gIF07XG4gIC8vIExpc3Qgb2YgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGZvY3VzIGlucHV0IG9uIGNsaWNrXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4Y2x1ZGVkRm9jdXNFbGVtZW50cyA9IFsnYnV0dG9uJywgJ3NiYi1wb3BvdmVyJywgJ3NiYi1vcHRpb24nLCAnc2JiLWNoaXAnXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRFbGVtZW50cyA9IFtcbiAgICAnaW5wdXQnLFxuICAgICdzZWxlY3QnLFxuICAgICdzYmItZGF0ZS1pbnB1dCcsXG4gICAgJ3NiYi1zZWxlY3QnLFxuICAgICd0ZXh0YXJlYScsXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0VHlwZXMgPSBbXG4gICAgJ2VtYWlsJyxcbiAgICAnbnVtYmVyJyxcbiAgICAncGFzc3dvcmQnLFxuICAgICdzZWFyY2gnLFxuICAgICd0ZWwnLFxuICAgICd0ZXh0JyxcbiAgICAndXJsJyxcbiAgXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXNlcnZlIHNwYWNlIGZvciBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBgbm9uZWAgZG9lcyBub3QgcmVzZXJ2ZSBhbnkgc3BhY2UuXG4gICAqIGByZXNlcnZlYCBkb2VzIHJlc2VydmUgb25lIHJvdyBmb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Vycm9yLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXJyb3JTcGFjZTogJ25vbmUnIHwgJ3Jlc2VydmUnID0gJ25vbmUnO1xuXG4gIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5wdXQgaXMgb3B0aW9uYWwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcHRpb25hbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdsJyB8ICdtJyB8ICdzJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGZvcm0gZmllbGQgd2l0aG91dCBhIGJvcmRlci4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGJvcmRlcmxlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudDpcbiAgICogLSBgZGVmYXVsdGA6IHRoZSBjb21wb25lbnQgaGFzIGRlZmluZWQgd2lkdGggYW5kIG1pbi13aWR0aDtcbiAgICogLSBgY29sbGFwc2VgOiB0aGUgY29tcG9uZW50IGFkYXB0cyBpdHNlbGYgdG8gaXRzIGlubmVyIGlucHV0IGNvbnRlbnQuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdpZHRoOiAnZGVmYXVsdCcgfCAnY29sbGFwc2UnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHZpc3VhbGx5IGhpZGUgdGhlIGxhYmVsLiBJZiBoaWRkZW4sIHNjcmVlbiByZWFkZXJzIHdpbGwgc3RpbGwgcmVhZCBpdC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hpZGRlbi1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGRlbkxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZCBmbG9hdC4gSWYgYWN0aXZhdGVkLCB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGlucHV0IGlzIGhpZGRlbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Zsb2F0aW5nLWxhYmVsJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZmxvYXRpbmdMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gZ2V0IHRoZSBgZXJyb3JgIHNsb3QuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Vycm9yRWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xuXG4gIC8qKiBPcmlnaW5hbCBhcmlhLWRlc2NyaWJlZGJ5IHZhbHVlIG9mIHRoZSBzbG90dGVkIGlucHV0IGVsZW1lbnQuICovXG4gIHByaXZhdGUgX29yaWdpbmFsSW5wdXRBcmlhRGVzY3JpYmVkYnk/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIHNsb3R0ZWQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGxhYmVsIGVsZW1lbnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9sYWJlbCE6IEhUTUxMYWJlbEVsZW1lbnQ7XG5cbiAgLyoqIFJldHVybnMgdGhlIGlucHV0IGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXQ7XG4gIH1cblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gYHJlYWRvbmx5YCBhbmQgYGRpc2FibGVkYCBhdHRyaWJ1dGVzIG9mIGA8aW5wdXQ+YC5cbiAgICovXG4gIHByaXZhdGUgX2Zvcm1GaWVsZEF0dHJpYnV0ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnMuc29tZSgobSkgPT4gbS50eXBlID09PSAnYXR0cmlidXRlcycpKSB7XG4gICAgICAgICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICA6IG51bGw7XG5cbiAgcHJpdmF0ZSBfaW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fcmVnaXN0ZXJJbnB1dExpc3RlbmVyKCk7XG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Zvcm1GaWVsZEF0dHJpYnV0ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBpZiAodGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5fdW5wYXRjaElucHV0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVXcmFwcGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzRWxlbWVudEZvY3VzRXhjbHVkZWQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ3NiYi1zZWxlY3QnICYmXG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItc2VsZWN0J1xuICAgICkge1xuICAgICAgdGhpcy5faW5wdXQuY2xpY2soKTtcbiAgICAgIHRoaXMuX2lucHV0LmZvY3VzKCk7XG4gICAgfSBlbHNlIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmxvY2FsTmFtZSAhPT0gJ2xhYmVsJykge1xuICAgICAgdGhpcy5faW5wdXQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNFbGVtZW50Rm9jdXNFeGNsdWRlZChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLnNvbWUoXG4gICAgICAgIChlbCkgPT5cbiAgICAgICAgICAoZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgIChlbC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgPT09ICcwJyB8fCBlbC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSkgfHxcbiAgICAgICAgICB0aGlzLl9leGNsdWRlZEZvY3VzRWxlbWVudHMuaW5jbHVkZXMoKGVsIGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2xvdExhYmVsQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGxhYmVscyA9IEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbCcpKTtcbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBsYWJlbHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRGV0ZWN0ZWQgbW9yZSB0aGFuIG9uZSBsYWJlbCBpbiBzYmItZm9ybS1maWVsZCMke3RoaXMuaWR9LiBPbmx5IG9uZSBsYWJlbCBpcyBzdXBwb3J0ZWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX2xhYmVsID0gbGFiZWxzWzBdO1xuICAgIHRoaXMuX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGlzIHVzZWQgaW50ZXJuYWxseSB0byBhc3NpZ24gdGhlIGF0dHJpYnV0ZXMgb2YgYDxpbnB1dD5gIHRvIGBfaWRgIGFuZCBgX2lucHV0YCBhbmQgdG8gb2JzZXJ2ZSB0aGUgbmF0aXZlIHJlYWRvbmx5IGFuZCBkaXNhYmxlZCBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90SW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gRmluZCB0aGUgc2xvdHRlZCAnc3VwcG9ydGVkSW5wdXRFbGVtZW50JywgZXZlbiBpZiBpdCdzIG5lc3RlZFxuICAgIGNvbnN0IG5ld0lucHV0ID0gdGhpcy5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgIGA6d2hlcmUoJHt0aGlzLl9zdXBwb3J0ZWRJbnB1dEVsZW1lbnRzLmpvaW4oJywnKX0pYCxcbiAgICApO1xuXG4gICAgdGhpcy5fYXNzaWduU2xvdHMoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dCAmJiB0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdpbnB1dCcgJiYgbmV3SW5wdXQgIT09IHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGlmICghbmV3SW5wdXQpIHtcbiAgICAgIHRoaXMuX2lucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0ID0gbmV3SW5wdXQ7XG4gICAgdGhpcy5fb3JpZ2luYWxJbnB1dEFyaWFEZXNjcmliZWRieSA9IHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgIHRoaXMuX2FwcGx5QXJpYURlc2NyaWJlZGJ5KCk7XG4gICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICB0aGlzLl9yZWdpc3RlcklucHV0TGlzdGVuZXIoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICd0ZXh0YXJlYScpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgncm93cycsIHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgncm93cycpIHx8ICczJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCcsICdjbGFzcycsICdkYXRhLXNiYi1pbnZhbGlkJywgJ2RhdGEtZXhwYW5kZWQnXSxcbiAgICB9KTtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1pbnB1dC10eXBlJywgdGhpcy5faW5wdXQubG9jYWxOYW1lKTtcbiAgICB0aGlzLl9zeW5jTGFiZWxJbnB1dFJlZmVyZW5jZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0IHx8ICF0aGlzLl9sYWJlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zdXBwb3J0ZWROYXRpdmVJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0LmxvY2FsTmFtZSkpIHtcbiAgICAgIC8vIEZvciBuYXRpdmUgaW5wdXQgZWxlbWVudHMgd2UgdXNlIHRoZSBgZm9yYCBhdHRyaWJ1dGUgb24gdGhlIGxhYmVsIHRvIHJlZmVyZW5jZSB0aGUgaW5wdXRcbiAgICAgIC8vIHZpYSBpZCByZWZlcmVuY2UuXG4gICAgICBpZiAoIXRoaXMuX2lucHV0LmlkKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmlkID0gYHNiYi1mb3JtLWZpZWxkLWlucHV0LSR7bmV4dElkKyt9YDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fbGFiZWwuaHRtbEZvciA9IHRoaXMuX2lucHV0LmlkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3Igbm9uLW5hdGl2ZSBpbnB1dCBlbGVtZW50cywgdGhhdCBkbyBub3Qgc3VwcG9ydCByZWZlcmVuY2VzIHZpYSB0aGUgbGFiZWwgZm9yIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIHVzZSBhcmlhLWxhYmVsbGVkYnkgb24gdGhlIGlucHV0IGVsZW1lbnQgdG8gcmVmZXJlbmNlIHRoZSBsYWJlbCBlbGVtZW50IHZpYSBpZC5cbiAgICAgIGlmICghdGhpcy5fbGFiZWwuaWQpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwuaWQgPSBgc2JiLWZvcm0tZmllbGQtbGFiZWwtJHtuZXh0SWQrK31gO1xuICAgICAgfVxuICAgICAgY29uc3QgbGFiZWxsZWRieSA9XG4gICAgICAgIHRoaXMuX2lucHV0XG4gICAgICAgICAgLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JylcbiAgICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgICAuZmlsdGVyKChsKSA9PiAhIWwgJiYgbCAhPT0gdGhpcy5fbGFiZWwhLmlkKSA/PyBbXTtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywgWy4uLmxhYmVsbGVkYnksIHRoaXMuX2xhYmVsLmlkXS5qb2luKCcgJykpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVySW5wdXRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG5cbiAgICAvLyBUaW1lb3V0IG5lZWRlZCB0byBoYXZlIHZhbHVlIHVwZGF0ZWRcbiAgICB0aGlzLl9nZXRJbnB1dEZvcm0oKT8uYWRkRXZlbnRMaXN0ZW5lcigncmVzZXQnLCAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgIC8vIHRvIGJlIHNob3duLiBUaGlzIGFsc28gcHJldmVudHMgYSBidWcgaW4gV2ViS2l0LCB3aGljaCB3b3VsZCBub3RcbiAgICAvLyBhbGxvdyBob3N0IGFzIHRoZSB2YWxpZGl0eSBhbmNob3I6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk4MzJcbiAgICAvLyBUaGlzIGlzIGR1cGxpY2F0ZWQgZnJvbSB0aGUgZm9ybSBhc3NvY2lhdGVkIG1peGluIGZvciB0aGUgbmF0aXZlXG4gICAgLy8gaW5wdXQgY29udHJvbHMgKGUuZy4gPGlucHV0PiBvciA8c2VsZWN0PikuXG4gICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgbGV0IGlucHV0Rm9jdXNFbGVtZW50ID0gdGhpcy5faW5wdXQ7XG5cbiAgICBpZiAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLl9wYXRjaElucHV0VmFsdWUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0LmxvY2FsTmFtZSA9PT0gJ3NiYi1zZWxlY3QnKSB7XG4gICAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdkaXNwbGF5VmFsdWVDaGFuZ2UnLCAoKSA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzZWxlY3RJbnB1dCA9IHRoaXMuX2lucHV0IGFzIFNiYlNlbGVjdEVsZW1lbnQ7XG4gICAgICBpbnB1dEZvY3VzRWxlbWVudCA9IHNlbGVjdElucHV0LmlucHV0RWxlbWVudDtcblxuICAgICAgLy8gSWYgaW5wdXRFbGVtZW50IGlzIG5vdCB5ZXQgcmVhZHksIHRyeSBhIHNlY29uZCB0aW1lIGFmdGVyIHVwZGF0aW5nLlxuICAgICAgaWYgKCFpbnB1dEZvY3VzRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0ge1xuICAgICAgICAgIGhvc3RVcGRhdGVkOiAoKSA9PiB7XG4gICAgICAgICAgICBzZWxlY3RJbnB1dC5yZW1vdmVDb250cm9sbGVyKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJJbnB1dExpc3RlbmVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBzZWxlY3RJbnB1dC5hZGRDb250cm9sbGVyKGNvbnRyb2xsZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0Rm9jdXNFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2ZvY3VzaW4nLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1pbnB1dC1mb2N1c2VkJywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICdkYXRhLWZvY3VzLW9yaWdpbicsXG4gICAgICAgICAgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgYXMgU2JiSW5wdXRNb2RhbGl0eSkgPz8gJycsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlucHV0Rm9jdXNFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2ZvY3Vzb3V0JyxcbiAgICAgICgpID0+XG4gICAgICAgIFsnZGF0YS1mb2N1cy1vcmlnaW4nLCAnZGF0YS1pbnB1dC1mb2N1c2VkJ10uZm9yRWFjaCgobmFtZSkgPT4gdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSkpLFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElucHV0Rm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IHRoaXMuX2lucHV0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnB1dC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW5wdXQ/LmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gcGF0Y2ggdGhlIHZhbHVlIHByb3BlcnR5IG9mIHRoZSBIVE1MSW5wdXRFbGVtZW50IGluIG9yZGVyXG4gIC8vIHRvIGJlIGFibGUgdG8gcmVzZXQgdGhlIGZsb2F0aW5nIGxhYmVsIGluIHRoZSBlbXB0eSBzdGF0ZS5cbiAgcHJpdmF0ZSBfcGF0Y2hJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuX2lucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3Qgb3JpZ2luYWxEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnB1dEVsZW1lbnQpLFxuICAgICAgJ3ZhbHVlJyxcbiAgICApO1xuXG4gICAgaWYgKCFvcmlnaW5hbERlc2NyaXB0b3IgfHwgIW9yaWdpbmFsRGVzY3JpcHRvci5zZXQgfHwgIW9yaWdpbmFsRGVzY3JpcHRvci5nZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXRjaGVkSW5wdXRzLnNldChpbnB1dEVsZW1lbnQsIG9yaWdpbmFsRGVzY3JpcHRvcik7XG5cbiAgICBjb25zdCB7IGdldDogZ2V0dGVyLCBzZXQ6IHNldHRlciB9ID0gb3JpZ2luYWxEZXNjcmlwdG9yO1xuICAgIGNvbnN0IGNoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSA9ICgpOiB2b2lkID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGlucHV0RWxlbWVudCwgJ3ZhbHVlJywge1xuICAgICAgLi4ub3JpZ2luYWxEZXNjcmlwdG9yLFxuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gZ2V0dGVyLmNhbGwodGhpcyk7XG4gICAgICB9LFxuICAgICAgc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgIHNldHRlci5jYWxsKHRoaXMsIG5ld1ZhbHVlKTtcbiAgICAgICAgY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5wYXRjaElucHV0VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5faW5wdXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBvcmlnaW5hbERlc2NyaXB0b3IgPSBwYXRjaGVkSW5wdXRzLmdldChpbnB1dEVsZW1lbnQpO1xuICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnB1dEVsZW1lbnQsICd2YWx1ZScsIG9yaWdpbmFsRGVzY3JpcHRvcik7XG4gICAgICBwYXRjaGVkSW5wdXRzLmRlbGV0ZShpbnB1dEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLWlucHV0LWVtcHR5JyxcbiAgICAgIHRoaXMuX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0RW1wdHkoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnB1dEVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoaXBHcm91cEVsZW0gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jaGlwLWdyb3VwJyk7XG4gICAgaWYgKGNoaXBHcm91cEVsZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpICYmIGNoaXBHcm91cEVsZW0udmFsdWUubGVuZ3RoID09PSAwO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLl9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRUeXBlcy5pbmNsdWRlcyh0aGlzLl9pbnB1dC50eXBlKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lucHV0LnNlbGVjdGVkT3B0aW9ucz8uaXRlbSgwKT8ubGFiZWw/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdCcpIHtcbiAgICAgIHJldHVybiAodGhpcy5faW5wdXQgYXMgU2JiU2VsZWN0RWxlbWVudCkuZ2V0RGlzcGxheVZhbHVlKCk/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRWYWx1ZUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gKHRoaXMuX2lucHV0IGFzIHsgdmFsdWU6IHN0cmluZyB9KS52YWx1ZTtcbiAgICByZXR1cm4gWycnLCB1bmRlZmluZWQsIG51bGxdLmluY2x1ZGVzKHZhbHVlKSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNsb3RzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnbGFiZWw6bm90KFtzbG90XSknKS5mb3JFYWNoKChlKSA9PiBlLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdsYWJlbCcpKTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1mb3JtLWVycm9yOm5vdChbc2xvdF0pJykuZm9yRWFjaCgoZSkgPT5cbiAgICAgIGUuc2V0QXR0cmlidXRlKCdzbG90JywgJ2Vycm9yJyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRJbnB1dFN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtcmVhZG9ubHknLCB0aGlzLl9pbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJywgdGhpcy5faW5wdXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLWludmFsaWQnLFxuICAgICAgdGhpcy5faW5wdXQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJykgfHxcbiAgICAgICAgdGhpcy5faW5wdXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYmItaW52YWxpZCcpIHx8XG4gICAgICAgICh0aGlzLl9pbnB1dC5jbGFzc0xpc3QuY29udGFpbnMoJ25nLXRvdWNoZWQnKSAmJlxuICAgICAgICAgIHRoaXMuX2lucHV0LmNsYXNzTGlzdC5jb250YWlucygnbmctaW52YWxpZCcpKSxcbiAgICApO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhhcy1wb3B1cC1vcGVuJywgdGhpcy5faW5wdXQhLmhhc0F0dHJpYnV0ZSgnZGF0YS1leHBhbmRlZCcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gc2V0IHRoZSBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSBmb3IgdGhlIHNsb3R0ZWQgaW5wdXQgcmVmZXJlbmNpbmcgYXZhaWxhYmxlIDxzYmItZm9ybS1lcnJvcj4gaW5zdGFuY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90RXJyb3JDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZXJyb3JFbGVtZW50cyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKCk7XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuX2Vycm9yRWxlbWVudHMpIHtcbiAgICAgIC8vIEFsdGhvdWdoIGEgZm9ybSBlcnJvciBhc3NpZ25zIGFuIGlkIGl0c2VsZiwgd2UgbmVlZCB0byBiZSBlYXJsaWVyIGJ5IGNyZWF0aW5nIG9uZSBoZXJlXG4gICAgICBpZiAoIWVsLmlkKSB7XG4gICAgICAgIGVsLmlkID0gYHNiYi1mb3JtLWZpZWxkLWVycm9yLSR7KytuZXh0Rm9ybUZpZWxkRXJyb3JJZH1gO1xuICAgICAgfVxuICAgICAgaWYgKCFlbC5yb2xlKSB7XG4gICAgICAgIC8vIEluc3RlYWQgb2YgZGVmaW5pbmcgYSBjb250YWluZXIgd2l0aCBhbiBhcmlhLWxpdmUgcmVnaW9uIGFzIGV4cGVjdGVkLCB3ZSBoYWQgdG8gY2hhbmdlXG4gICAgICAgIC8vIHNldHRpbmcgaXQgZm9yIGV2ZXJ5IHNsb3R0ZWQgZWxlbWVudCB0byBwcm9wZXJseSB3b3JrIGluIGFsbCBicm93c2VycyBhbmQgc2NyZWVuIHJlYWRlciBjb21iaW5hdGlvbnMuXG4gICAgICAgIGVsLnJvbGUgPSAnc3RhdHVzJztcbiAgICAgICAgaWYgKGlzRmlyZWZveCkge1xuICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgncm9sZScsICdzdGF0dXMnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9hcHBseUFyaWFEZXNjcmliZWRieSgpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhhcy1lcnJvcicsICEhdGhpcy5fZXJyb3JFbGVtZW50cy5sZW5ndGgpO1xuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlBcmlhRGVzY3JpYmVkYnkoKTogdm9pZCB7XG4gICAgY29uc3QgaWRzID0gW107XG5cbiAgICBpZiAodGhpcy5fb3JpZ2luYWxJbnB1dEFyaWFEZXNjcmliZWRieSkge1xuICAgICAgaWRzLnB1c2godGhpcy5fb3JpZ2luYWxJbnB1dEFyaWFEZXNjcmliZWRieSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2Vycm9yRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9lcnJvckVsZW1lbnRzLmZvckVhY2goKGUpID0+IGlkcy5wdXNoKGUuaWQpKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcmlhRGVzY3JpYmVkYnkgPSBpZHMuam9pbignICcpO1xuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcy5faW5wdXQsICdhcmlhLWRlc2NyaWJlZGJ5JywgYXJpYURlc2NyaWJlZGJ5KTtcbiAgICB9XG4gIH1cblxuICAvKiogTWFudWFsbHkgcmVzZXQgdGhlIGZvcm0gZmllbGQuIEN1cnJlbnRseSwgdGhpcyBvbmx5IHJlc2V0cyB0aGUgZmxvYXRpbmcgbGFiZWwuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgfVxuXG4gIC8qKiBNYW51YWxseSBjbGVhcnMgdGhlIGlucHV0IHZhbHVlLiBJdCBvbmx5IHdvcmtzIGZvciBpbnB1dHMsIHNlbGVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAhPT0gJ2lucHV0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAodGhpcy5faW5wdXQgYXMgeyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlID0gJyc7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oXG4gICAgICAnc2JiLWZvcm0tZXJyb3Isc2JiLW1pbmktYnV0dG9uLHNiYi1wb3BvdmVyLXRyaWdnZXIsc2JiLWZvcm0tZmllbGQtY2xlYXIsc2JiLWRhdGVwaWNrZXItbmV4dC1kYXksc2JiLWRhdGVwaWNrZXItcHJldmlvdXMtZGF5LHNiYi1kYXRlcGlja2VyLXRvZ2dsZSxzYmItc2VsZWN0LHNiYi1hdXRvY29tcGxldGUsc2JiLWF1dG9jb21wbGV0ZS1ncmlkLHNiYi1jaGlwLWdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCduZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19zcGFjZS13cmFwcGVyXCI+XG4gICAgICAgICR7LyogUXVlcmllZCBieSBpZCBmcm9tIHRoZSBhdXRvY29tcGxldGUvc2VsZWN0IHRvIGJlIHVzZWQgYXMgdGhlIGFuY2hvciBlbGVtZW50ICovICcnfVxuICAgICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuX2hhbmRsZVdyYXBwZXJDbGlja30gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fd3JhcHBlclwiIGlkPVwib3ZlcmxheS1hbmNob3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwicHJlZml4XCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jTmVnYXRpdmV9Pjwvc2xvdD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fbGFiZWwtc3BhY2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fbGFiZWwtZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwibGFiZWxcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX29uU2xvdExhYmVsQ2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9wdGlvbmFsXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiAke2kxOG5PcHRpb25hbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gPC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX29uU2xvdElucHV0Q2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICR7WydzZWxlY3QnLCAnc2JiLXNlbGVjdCddLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKVxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1kb3duLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3NlbGVjdC1pbnB1dC1pY29uXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3VmZml4XCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jTmVnYXRpdmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19lcnJvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90RXJyb3JDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZm9ybS1maWVsZCc6IFNiYkZvcm1GaWVsZEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxJQUFJLFNBQVM7QUFDYixJQUFJLHVCQUF1QjtBQUUzQixNQUFNLG9DQUFvQjtJQWNwQix1QkFBbUIsTUFBQTs7QUFGeEIsTUFBQSxtQkFBQSxDQUFBLGNBQWMsZ0JBQWdCLEdBQzlCLFdBQVc7Ozs7QUFDc0IsTUFBQSxjQUFBLGlCQUFpQixrQkFBa0IsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXRELEVBQUEsbUJBQVEsWUFBK0M7QUFBQTs7QUEwQy9FO0FBS0E7QUFNNkI7QUFLN0I7QUFLNkI7QUFLN0I7QUFLQTtBQUdTO0FBTUE7QUFHQTtBQWxGUSxXQUFBLGdDQUFnQztBQUFBLFFBQy9DO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFHZSxXQUFBLDBCQUEwQjtBQUFB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
926
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiSW5wdXRNb2RhbGl0eSB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0ZpcmVmb3gsIGlzTGVhbiwgc2V0T3JSZW1vdmVBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuT3B0aW9uYWwgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4sIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3QuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9mb3JtLWZpZWxkLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vaWNvbi5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xubGV0IG5leHRGb3JtRmllbGRFcnJvcklkID0gMDtcblxuY29uc3QgcGF0Y2hlZElucHV0cyA9IG5ldyBXZWFrTWFwPEhUTUxJbnB1dEVsZW1lbnQsIFByb3BlcnR5RGVzY3JpcHRvcj4oKTtcblxuLyoqXG4gKiBJdCB3cmFwcyBhbiBpbnB1dCBlbGVtZW50IGFkZGluZyBsYWJlbCwgZXJyb3JzLCBpY29uLCBldGMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpbnB1dC9zZWxlY3Qgb3IgYSBzdXBwb3J0ZWQgbm9uLW5hdGl2ZSBlbGVtZW50LlxuICogQHNsb3QgbGFiZWwgLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhIGxhYmVsLlxuICogQHNsb3QgcHJlZml4IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaWNvbiBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBpbnB1dC5cbiAqIEBzbG90IHN1ZmZpeCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGljb24gb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGlucHV0LlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBlcnJvci5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWZvcm0tZmllbGQnKVxuQHNsb3RTdGF0ZSgpXG5jbGFzcyBTYmJGb3JtRmllbGRFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdXBwb3J0ZWROYXRpdmVJbnB1dEVsZW1lbnRzID0gW1xuICAgICdpbnB1dCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3RleHRhcmVhJyxcbiAgICAnc2JiLWRhdGUtaW5wdXQnLFxuICBdO1xuICAvLyBMaXN0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHNlbGVjdG9ycyBpbiB1bm5hbWVkIHNsb3RcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkSW5wdXRFbGVtZW50cyA9IFtcbiAgICAuLi50aGlzLl9zdXBwb3J0ZWROYXRpdmVJbnB1dEVsZW1lbnRzLFxuICAgICdzYmItc2VsZWN0JyxcbiAgICAnc2JiLXNsaWRlcicsXG4gIF07XG4gIC8vIExpc3Qgb2YgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGZvY3VzIGlucHV0IG9uIGNsaWNrXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4Y2x1ZGVkRm9jdXNFbGVtZW50cyA9IFsnYnV0dG9uJywgJ3NiYi1wb3BvdmVyJywgJ3NiYi1vcHRpb24nLCAnc2JiLWNoaXAnXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRFbGVtZW50cyA9IFtcbiAgICAnaW5wdXQnLFxuICAgICdzZWxlY3QnLFxuICAgICdzYmItZGF0ZS1pbnB1dCcsXG4gICAgJ3NiYi1zZWxlY3QnLFxuICAgICd0ZXh0YXJlYScsXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0VHlwZXMgPSBbXG4gICAgJ2VtYWlsJyxcbiAgICAnbnVtYmVyJyxcbiAgICAncGFzc3dvcmQnLFxuICAgICdzZWFyY2gnLFxuICAgICd0ZWwnLFxuICAgICd0ZXh0JyxcbiAgICAndXJsJyxcbiAgXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXNlcnZlIHNwYWNlIGZvciBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBgbm9uZWAgZG9lcyBub3QgcmVzZXJ2ZSBhbnkgc3BhY2UuXG4gICAqIGByZXNlcnZlYCBkb2VzIHJlc2VydmUgb25lIHJvdyBmb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Vycm9yLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXJyb3JTcGFjZTogJ25vbmUnIHwgJ3Jlc2VydmUnID0gJ25vbmUnO1xuXG4gIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5wdXQgaXMgb3B0aW9uYWwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcHRpb25hbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdsJyB8ICdtJyB8ICdzJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGZvcm0gZmllbGQgd2l0aG91dCBhIGJvcmRlci4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGJvcmRlcmxlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudDpcbiAgICogLSBgZGVmYXVsdGA6IHRoZSBjb21wb25lbnQgaGFzIGRlZmluZWQgd2lkdGggYW5kIG1pbi13aWR0aDtcbiAgICogLSBgY29sbGFwc2VgOiB0aGUgY29tcG9uZW50IGFkYXB0cyBpdHNlbGYgdG8gaXRzIGlubmVyIGlucHV0IGNvbnRlbnQuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdpZHRoOiAnZGVmYXVsdCcgfCAnY29sbGFwc2UnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHZpc3VhbGx5IGhpZGUgdGhlIGxhYmVsLiBJZiBoaWRkZW4sIHNjcmVlbiByZWFkZXJzIHdpbGwgc3RpbGwgcmVhZCBpdC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hpZGRlbi1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGRlbkxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZCBmbG9hdC4gSWYgYWN0aXZhdGVkLCB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGlucHV0IGlzIGhpZGRlbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Zsb2F0aW5nLWxhYmVsJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZmxvYXRpbmdMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gZ2V0IHRoZSBgZXJyb3JgIHNsb3QuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Vycm9yRWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xuXG4gIC8qKiBPcmlnaW5hbCBhcmlhLWRlc2NyaWJlZGJ5IHZhbHVlIG9mIHRoZSBzbG90dGVkIGlucHV0IGVsZW1lbnQuICovXG4gIHByaXZhdGUgX29yaWdpbmFsSW5wdXRBcmlhRGVzY3JpYmVkYnk/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIHNsb3R0ZWQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGxhYmVsIGVsZW1lbnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9sYWJlbCE6IEhUTUxMYWJlbEVsZW1lbnQ7XG5cbiAgLyoqIFJldHVybnMgdGhlIGlucHV0IGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXQ7XG4gIH1cblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gYHJlYWRvbmx5YCBhbmQgYGRpc2FibGVkYCBhdHRyaWJ1dGVzIG9mIGA8aW5wdXQ+YC5cbiAgICovXG4gIHByaXZhdGUgX2Zvcm1GaWVsZEF0dHJpYnV0ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnMuc29tZSgobSkgPT4gbS50eXBlID09PSAnYXR0cmlidXRlcycpKSB7XG4gICAgICAgICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICA6IG51bGw7XG5cbiAgcHJpdmF0ZSBfaW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fcmVnaXN0ZXJJbnB1dExpc3RlbmVyKCk7XG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Zvcm1GaWVsZEF0dHJpYnV0ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBpZiAodGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5fdW5wYXRjaElucHV0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVXcmFwcGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzRWxlbWVudEZvY3VzRXhjbHVkZWQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5faW5wdXQ/LmxvY2FsTmFtZSA9PT0gJ3NiYi1zZWxlY3QnICYmXG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItc2VsZWN0J1xuICAgICkge1xuICAgICAgdGhpcy5faW5wdXQuY2xpY2soKTtcbiAgICAgIHRoaXMuX2lucHV0LmZvY3VzKCk7XG4gICAgfSBlbHNlIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmxvY2FsTmFtZSAhPT0gJ2xhYmVsJykge1xuICAgICAgdGhpcy5faW5wdXQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNFbGVtZW50Rm9jdXNFeGNsdWRlZChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLnNvbWUoXG4gICAgICAgIChlbCkgPT5cbiAgICAgICAgICAoZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgIChlbC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgPT09ICcwJyB8fCBlbC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSkgfHxcbiAgICAgICAgICB0aGlzLl9leGNsdWRlZEZvY3VzRWxlbWVudHMuaW5jbHVkZXMoKGVsIGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2xvdExhYmVsQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGxhYmVscyA9IEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbCcpKTtcbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBsYWJlbHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRGV0ZWN0ZWQgbW9yZSB0aGFuIG9uZSBsYWJlbCBpbiBzYmItZm9ybS1maWVsZCMke3RoaXMuaWR9LiBPbmx5IG9uZSBsYWJlbCBpcyBzdXBwb3J0ZWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX2xhYmVsID0gbGFiZWxzWzBdO1xuICAgIHRoaXMuX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGlzIHVzZWQgaW50ZXJuYWxseSB0byBhc3NpZ24gdGhlIGF0dHJpYnV0ZXMgb2YgYDxpbnB1dD5gIHRvIGBfaWRgIGFuZCBgX2lucHV0YCBhbmQgdG8gb2JzZXJ2ZSB0aGUgbmF0aXZlIHJlYWRvbmx5IGFuZCBkaXNhYmxlZCBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90SW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gRmluZCB0aGUgc2xvdHRlZCAnc3VwcG9ydGVkSW5wdXRFbGVtZW50JywgZXZlbiBpZiBpdCdzIG5lc3RlZFxuICAgIGNvbnN0IG5ld0lucHV0ID0gdGhpcy5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgIGA6d2hlcmUoJHt0aGlzLl9zdXBwb3J0ZWRJbnB1dEVsZW1lbnRzLmpvaW4oJywnKX0pYCxcbiAgICApO1xuXG4gICAgdGhpcy5fYXNzaWduU2xvdHMoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dCAmJiB0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdpbnB1dCcgJiYgbmV3SW5wdXQgIT09IHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGlmICghbmV3SW5wdXQpIHtcbiAgICAgIHRoaXMuX2lucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0ID0gbmV3SW5wdXQ7XG4gICAgdGhpcy5fb3JpZ2luYWxJbnB1dEFyaWFEZXNjcmliZWRieSA9IHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgIHRoaXMuX2FwcGx5QXJpYURlc2NyaWJlZGJ5KCk7XG4gICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICB0aGlzLl9yZWdpc3RlcklucHV0TGlzdGVuZXIoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICd0ZXh0YXJlYScpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgncm93cycsIHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgncm93cycpIHx8ICczJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCcsICdjbGFzcycsICdkYXRhLXNiYi1pbnZhbGlkJywgJ2RhdGEtZXhwYW5kZWQnXSxcbiAgICB9KTtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1pbnB1dC10eXBlJywgdGhpcy5faW5wdXQubG9jYWxOYW1lKTtcbiAgICB0aGlzLl9zeW5jTGFiZWxJbnB1dFJlZmVyZW5jZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0IHx8ICF0aGlzLl9sYWJlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zdXBwb3J0ZWROYXRpdmVJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0LmxvY2FsTmFtZSkpIHtcbiAgICAgIC8vIEZvciBuYXRpdmUgaW5wdXQgZWxlbWVudHMgd2UgdXNlIHRoZSBgZm9yYCBhdHRyaWJ1dGUgb24gdGhlIGxhYmVsIHRvIHJlZmVyZW5jZSB0aGUgaW5wdXRcbiAgICAgIC8vIHZpYSBpZCByZWZlcmVuY2UuXG4gICAgICBpZiAoIXRoaXMuX2lucHV0LmlkKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmlkID0gYHNiYi1mb3JtLWZpZWxkLWlucHV0LSR7bmV4dElkKyt9YDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fbGFiZWwuaHRtbEZvciA9IHRoaXMuX2lucHV0LmlkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3Igbm9uLW5hdGl2ZSBpbnB1dCBlbGVtZW50cywgdGhhdCBkbyBub3Qgc3VwcG9ydCByZWZlcmVuY2VzIHZpYSB0aGUgbGFiZWwgZm9yIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIHVzZSBhcmlhLWxhYmVsbGVkYnkgb24gdGhlIGlucHV0IGVsZW1lbnQgdG8gcmVmZXJlbmNlIHRoZSBsYWJlbCBlbGVtZW50IHZpYSBpZC5cbiAgICAgIGlmICghdGhpcy5fbGFiZWwuaWQpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwuaWQgPSBgc2JiLWZvcm0tZmllbGQtbGFiZWwtJHtuZXh0SWQrK31gO1xuICAgICAgfVxuICAgICAgY29uc3QgbGFiZWxsZWRieSA9XG4gICAgICAgIHRoaXMuX2lucHV0XG4gICAgICAgICAgLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JylcbiAgICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgICAuZmlsdGVyKChsKSA9PiAhIWwgJiYgbCAhPT0gdGhpcy5fbGFiZWwhLmlkKSA/PyBbXTtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywgWy4uLmxhYmVsbGVkYnksIHRoaXMuX2xhYmVsLmlkXS5qb2luKCcgJykpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVySW5wdXRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG5cbiAgICAvLyBUaW1lb3V0IG5lZWRlZCB0byBoYXZlIHZhbHVlIHVwZGF0ZWRcbiAgICB0aGlzLl9nZXRJbnB1dEZvcm0oKT8uYWRkRXZlbnRMaXN0ZW5lcigncmVzZXQnLCAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgIC8vIHRvIGJlIHNob3duLiBUaGlzIGFsc28gcHJldmVudHMgYSBidWcgaW4gV2ViS2l0LCB3aGljaCB3b3VsZCBub3RcbiAgICAvLyBhbGxvdyBob3N0IGFzIHRoZSB2YWxpZGl0eSBhbmNob3I6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk4MzJcbiAgICAvLyBUaGlzIGlzIGR1cGxpY2F0ZWQgZnJvbSB0aGUgZm9ybSBhc3NvY2lhdGVkIG1peGluIGZvciB0aGUgbmF0aXZlXG4gICAgLy8gaW5wdXQgY29udHJvbHMgKGUuZy4gPGlucHV0PiBvciA8c2VsZWN0PikuXG4gICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgbGV0IGlucHV0Rm9jdXNFbGVtZW50ID0gdGhpcy5faW5wdXQ7XG5cbiAgICBpZiAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLl9wYXRjaElucHV0VmFsdWUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0LmxvY2FsTmFtZSA9PT0gJ3NiYi1zZWxlY3QnKSB7XG4gICAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdkaXNwbGF5VmFsdWVDaGFuZ2UnLCAoKSA9PiB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzZWxlY3RJbnB1dCA9IHRoaXMuX2lucHV0IGFzIFNiYlNlbGVjdEVsZW1lbnQ7XG4gICAgICBpbnB1dEZvY3VzRWxlbWVudCA9IHNlbGVjdElucHV0LmlucHV0RWxlbWVudDtcblxuICAgICAgLy8gSWYgaW5wdXRFbGVtZW50IGlzIG5vdCB5ZXQgcmVhZHksIHRyeSBhIHNlY29uZCB0aW1lIGFmdGVyIHVwZGF0aW5nLlxuICAgICAgaWYgKCFpbnB1dEZvY3VzRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0ge1xuICAgICAgICAgIGhvc3RVcGRhdGVkOiAoKSA9PiB7XG4gICAgICAgICAgICBzZWxlY3RJbnB1dC5yZW1vdmVDb250cm9sbGVyKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJJbnB1dExpc3RlbmVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBzZWxlY3RJbnB1dC5hZGRDb250cm9sbGVyKGNvbnRyb2xsZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0Rm9jdXNFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2ZvY3VzaW4nLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1pbnB1dC1mb2N1c2VkJywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICdkYXRhLWZvY3VzLW9yaWdpbicsXG4gICAgICAgICAgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgYXMgU2JiSW5wdXRNb2RhbGl0eSkgPz8gJycsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlucHV0Rm9jdXNFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2ZvY3Vzb3V0JyxcbiAgICAgICgpID0+XG4gICAgICAgIFsnZGF0YS1mb2N1cy1vcmlnaW4nLCAnZGF0YS1pbnB1dC1mb2N1c2VkJ10uZm9yRWFjaCgobmFtZSkgPT4gdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSkpLFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElucHV0Rm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IHRoaXMuX2lucHV0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnB1dC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faW5wdXQ/LmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gcGF0Y2ggdGhlIHZhbHVlIHByb3BlcnR5IG9mIHRoZSBIVE1MSW5wdXRFbGVtZW50IGluIG9yZGVyXG4gIC8vIHRvIGJlIGFibGUgdG8gcmVzZXQgdGhlIGZsb2F0aW5nIGxhYmVsIGluIHRoZSBlbXB0eSBzdGF0ZS5cbiAgcHJpdmF0ZSBfcGF0Y2hJbnB1dFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuX2lucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3Qgb3JpZ2luYWxEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnB1dEVsZW1lbnQpLFxuICAgICAgJ3ZhbHVlJyxcbiAgICApO1xuXG4gICAgaWYgKCFvcmlnaW5hbERlc2NyaXB0b3IgfHwgIW9yaWdpbmFsRGVzY3JpcHRvci5zZXQgfHwgIW9yaWdpbmFsRGVzY3JpcHRvci5nZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXRjaGVkSW5wdXRzLnNldChpbnB1dEVsZW1lbnQsIG9yaWdpbmFsRGVzY3JpcHRvcik7XG5cbiAgICBjb25zdCB7IGdldDogZ2V0dGVyLCBzZXQ6IHNldHRlciB9ID0gb3JpZ2luYWxEZXNjcmlwdG9yO1xuICAgIGNvbnN0IGNoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSA9ICgpOiB2b2lkID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGlucHV0RWxlbWVudCwgJ3ZhbHVlJywge1xuICAgICAgLi4ub3JpZ2luYWxEZXNjcmlwdG9yLFxuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gZ2V0dGVyLmNhbGwodGhpcyk7XG4gICAgICB9LFxuICAgICAgc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgIHNldHRlci5jYWxsKHRoaXMsIG5ld1ZhbHVlKTtcbiAgICAgICAgY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5wYXRjaElucHV0VmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5faW5wdXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBvcmlnaW5hbERlc2NyaXB0b3IgPSBwYXRjaGVkSW5wdXRzLmdldChpbnB1dEVsZW1lbnQpO1xuICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnB1dEVsZW1lbnQsICd2YWx1ZScsIG9yaWdpbmFsRGVzY3JpcHRvcik7XG4gICAgICBwYXRjaGVkSW5wdXRzLmRlbGV0ZShpbnB1dEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLWlucHV0LWVtcHR5JyxcbiAgICAgIHRoaXMuX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0RW1wdHkoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnB1dEVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoaXBHcm91cEVsZW0gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jaGlwLWdyb3VwJyk7XG4gICAgaWYgKGNoaXBHcm91cEVsZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpICYmIGNoaXBHcm91cEVsZW0udmFsdWUubGVuZ3RoID09PSAwO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLl9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRUeXBlcy5pbmNsdWRlcyh0aGlzLl9pbnB1dC50eXBlKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lucHV0LnNlbGVjdGVkT3B0aW9ucz8uaXRlbSgwKT8ubGFiZWw/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdCcpIHtcbiAgICAgIHJldHVybiAodGhpcy5faW5wdXQgYXMgU2JiU2VsZWN0RWxlbWVudCkuZ2V0RGlzcGxheVZhbHVlKCk/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRWYWx1ZUVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gKHRoaXMuX2lucHV0IGFzIHsgdmFsdWU6IHN0cmluZyB9KS52YWx1ZTtcbiAgICByZXR1cm4gWycnLCB1bmRlZmluZWQsIG51bGxdLmluY2x1ZGVzKHZhbHVlKSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNsb3RzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnbGFiZWw6bm90KFtzbG90XSknKS5mb3JFYWNoKChlKSA9PiBlLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdsYWJlbCcpKTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1mb3JtLWVycm9yOm5vdChbc2xvdF0pJykuZm9yRWFjaCgoZSkgPT5cbiAgICAgIGUuc2V0QXR0cmlidXRlKCdzbG90JywgJ2Vycm9yJyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRJbnB1dFN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtcmVhZG9ubHknLCB0aGlzLl9pbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJywgdGhpcy5faW5wdXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLWludmFsaWQnLFxuICAgICAgdGhpcy5faW5wdXQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJykgfHxcbiAgICAgICAgdGhpcy5faW5wdXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYmItaW52YWxpZCcpIHx8XG4gICAgICAgICh0aGlzLl9pbnB1dC5jbGFzc0xpc3QuY29udGFpbnMoJ25nLXRvdWNoZWQnKSAmJlxuICAgICAgICAgIHRoaXMuX2lucHV0LmNsYXNzTGlzdC5jb250YWlucygnbmctaW52YWxpZCcpKSxcbiAgICApO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhhcy1wb3B1cC1vcGVuJywgdGhpcy5faW5wdXQhLmhhc0F0dHJpYnV0ZSgnZGF0YS1leHBhbmRlZCcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gc2V0IHRoZSBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSBmb3IgdGhlIHNsb3R0ZWQgaW5wdXQgcmVmZXJlbmNpbmcgYXZhaWxhYmxlIDxzYmItZm9ybS1lcnJvcj4gaW5zdGFuY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90RXJyb3JDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZXJyb3JFbGVtZW50cyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKCk7XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuX2Vycm9yRWxlbWVudHMpIHtcbiAgICAgIC8vIEFsdGhvdWdoIGEgZm9ybSBlcnJvciBhc3NpZ25zIGFuIGlkIGl0c2VsZiwgd2UgbmVlZCB0byBiZSBlYXJsaWVyIGJ5IGNyZWF0aW5nIG9uZSBoZXJlXG4gICAgICBpZiAoIWVsLmlkKSB7XG4gICAgICAgIGVsLmlkID0gYHNiYi1mb3JtLWZpZWxkLWVycm9yLSR7KytuZXh0Rm9ybUZpZWxkRXJyb3JJZH1gO1xuICAgICAgfVxuICAgICAgaWYgKCFlbC5yb2xlKSB7XG4gICAgICAgIC8vIEluc3RlYWQgb2YgZGVmaW5pbmcgYSBjb250YWluZXIgd2l0aCBhbiBhcmlhLWxpdmUgcmVnaW9uIGFzIGV4cGVjdGVkLCB3ZSBoYWQgdG8gY2hhbmdlXG4gICAgICAgIC8vIHNldHRpbmcgaXQgZm9yIGV2ZXJ5IHNsb3R0ZWQgZWxlbWVudCB0byBwcm9wZXJseSB3b3JrIGluIGFsbCBicm93c2VycyBhbmQgc2NyZWVuIHJlYWRlciBjb21iaW5hdGlvbnMuXG4gICAgICAgIGVsLnJvbGUgPSAnc3RhdHVzJztcbiAgICAgICAgaWYgKGlzRmlyZWZveCkge1xuICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgncm9sZScsICdzdGF0dXMnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9hcHBseUFyaWFEZXNjcmliZWRieSgpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhhcy1lcnJvcicsICEhdGhpcy5fZXJyb3JFbGVtZW50cy5sZW5ndGgpO1xuICAgIHRoaXMuX3N5bmNOZWdhdGl2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlBcmlhRGVzY3JpYmVkYnkoKTogdm9pZCB7XG4gICAgY29uc3QgaWRzID0gW107XG5cbiAgICBpZiAodGhpcy5fb3JpZ2luYWxJbnB1dEFyaWFEZXNjcmliZWRieSkge1xuICAgICAgaWRzLnB1c2godGhpcy5fb3JpZ2luYWxJbnB1dEFyaWFEZXNjcmliZWRieSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2Vycm9yRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9lcnJvckVsZW1lbnRzLmZvckVhY2goKGUpID0+IGlkcy5wdXNoKGUuaWQpKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcmlhRGVzY3JpYmVkYnkgPSBpZHMuam9pbignICcpO1xuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcy5faW5wdXQsICdhcmlhLWRlc2NyaWJlZGJ5JywgYXJpYURlc2NyaWJlZGJ5KTtcbiAgICB9XG4gIH1cblxuICAvKiogTWFudWFsbHkgcmVzZXQgdGhlIGZvcm0gZmllbGQuIEN1cnJlbnRseSwgdGhpcyBvbmx5IHJlc2V0cyB0aGUgZmxvYXRpbmcgbGFiZWwuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgfVxuXG4gIC8qKiBNYW51YWxseSBjbGVhcnMgdGhlIGlucHV0IHZhbHVlLiBJdCBvbmx5IHdvcmtzIGZvciBpbnB1dHMsIHNlbGVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAhPT0gJ2lucHV0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAodGhpcy5faW5wdXQgYXMgeyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlID0gJyc7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oXG4gICAgICAnc2JiLWZvcm0tZXJyb3Isc2JiLW1pbmktYnV0dG9uLHNiYi1wb3BvdmVyLXRyaWdnZXIsc2JiLWZvcm0tZmllbGQtY2xlYXIsc2JiLWRhdGVwaWNrZXItbmV4dC1kYXksc2JiLWRhdGVwaWNrZXItcHJldmlvdXMtZGF5LHNiYi1kYXRlcGlja2VyLXRvZ2dsZSxzYmItc2VsZWN0LHNiYi1hdXRvY29tcGxldGUsc2JiLWF1dG9jb21wbGV0ZS1ncmlkLHNiYi1jaGlwLWdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCduZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19zcGFjZS13cmFwcGVyXCI+XG4gICAgICAgICR7LyogUXVlcmllZCBieSBpZCBmcm9tIHRoZSBhdXRvY29tcGxldGUvc2VsZWN0IHRvIGJlIHVzZWQgYXMgdGhlIGFuY2hvciBlbGVtZW50ICovICcnfVxuICAgICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuX2hhbmRsZVdyYXBwZXJDbGlja30gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fd3JhcHBlclwiIGlkPVwib3ZlcmxheS1hbmNob3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwicHJlZml4XCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jTmVnYXRpdmV9Pjwvc2xvdD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fbGFiZWwtc3BhY2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZm9ybS1maWVsZF9fbGFiZWwtZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwibGFiZWxcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX29uU2xvdExhYmVsQ2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9wdGlvbmFsXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiAke2kxOG5PcHRpb25hbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gPC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19pbnB1dFwiPlxuICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX29uU2xvdElucHV0Q2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICR7WydzZWxlY3QnLCAnc2JiLXNlbGVjdCddLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKVxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1kb3duLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3NlbGVjdC1pbnB1dC1pY29uXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3VmZml4XCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jTmVnYXRpdmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19lcnJvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90RXJyb3JDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZm9ybS1maWVsZCc6IFNiYkZvcm1GaWVsZEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLElBQUksU0FBUztBQUNiLElBQUksdUJBQXVCO0FBRTNCLE1BQU0sb0NBQW9CLFFBQUE7SUFjcEIsdUJBQW1CLE1BQUE7O0FBRnhCLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLGdCQUFnQixHQUM5QixXQUFXOzs7O0FBQ3NCLE1BQUEsY0FBQSxpQkFBaUIsa0JBQWtCLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF0RCxFQUFBLG1CQUFRLFlBQStDO0FBQUE7O0FBMEMvRTtBQUtBO0FBTTZCO0FBSzdCO0FBSzZCO0FBSzdCO0FBS0E7QUFHUztBQU1BO0FBR0E7QUFsRlEsV0FBQSxnQ0FBZ0M7QUFBQSxRQUMvQztBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQUE7QUFHZSxXQUFBLDBCQUEw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
@@ -131,10 +131,9 @@ let SbbFormFieldClearElement = (() => {
131
131
  let _classSuper = SbbNegativeMixin(SbbButtonBaseElement);
132
132
  _a = class extends _classSuper {
133
133
  constructor() {
134
- var _a2;
135
134
  super();
136
135
  this._language = new SbbLanguageController(this);
137
- (_a2 = this.addEventListener) == null ? void 0 : _a2.call(this, "click", () => this._handleClick());
136
+ this.addEventListener?.("click", () => this._handleClick());
138
137
  }
139
138
  connectedCallback() {
140
139
  super.connectedCallback();
@@ -144,12 +143,11 @@ let SbbFormFieldClearElement = (() => {
144
143
  }
145
144
  }
146
145
  async _handleClick() {
147
- var _a2, _b;
148
- const input = (_a2 = this._formField) == null ? void 0 : _a2.inputElement;
146
+ const input = this._formField?.inputElement;
149
147
  if (!input || input.localName !== "input") {
150
148
  return;
151
149
  }
152
- (_b = this._formField) == null ? void 0 : _b.clear();
150
+ this._formField?.clear();
153
151
  input.focus();
154
152
  input.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
155
153
  input.dispatchEvent(new Event("change", { bubbles: true }));
@@ -172,4 +170,4 @@ let SbbFormFieldClearElement = (() => {
172
170
  export {
173
171
  SbbFormFieldClearElement
174
172
  };
175
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY2xlYXIvZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xlYXJJbnB1dCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQtY2xlYXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGBzYmItZm9ybS1maWVsZGAsIGl0IGRpc3BsYXlzIGEgYnV0dG9uIHdoaWNoIGNsZWFycyB0aGUgaW5wdXQgdmFsdWUuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1mb3JtLWZpZWxkLWNsZWFyJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHNsb3Q6ICdzdWZmaXgnLFxufSlcbmNsYXNzIFNiYkZvcm1GaWVsZENsZWFyRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHJpdmF0ZSBfZm9ybUZpZWxkPzogU2JiRm9ybUZpZWxkRWxlbWVudCB8IG51bGw7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9oYW5kbGVDbGljaygpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdDxTYmJGb3JtRmllbGRFbGVtZW50Pignc2JiLWZvcm0tZmllbGQsIFtkYXRhLWZvcm0tZmllbGRdJyk7XG5cbiAgICBpZiAodGhpcy5fZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5fZm9ybUZpZWxkLmhhc0F0dHJpYnV0ZSgnbmVnYXRpdmUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX2Zvcm1GaWVsZD8uaW5wdXRFbGVtZW50O1xuICAgIGlmICghaW5wdXQgfHwgaW5wdXQubG9jYWxOYW1lICE9PSAnaW5wdXQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1GaWVsZD8uY2xlYXIoKTtcbiAgICBpbnB1dC5mb2N1cygpO1xuICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgaTE4bkNsZWFySW5wdXRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNiYi1pY29uIG5hbWU9XCJjcm9zcy1zbWFsbFwiPjwvc2JiLWljb24+IGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1mb3JtLWZpZWxkLWNsZWFyJzogU2JiRm9ybUZpZWxkQ2xlYXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBdUJNLDRCQUF3QixNQUFBOztBQUo3QixNQUFBLG1CQUFBLENBQUEsY0FBYyxzQkFBc0IsR0FDcEMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUCxDQUFDOzs7O29CQUNxQyxpQkFBaUIsb0JBQW9CO0FBQTdDLEVBQUEsbUJBQVEsWUFBc0M7QUFBQSxJQU0zRSxjQUFBOzs7QUFGUSxXQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUloRCxPQUFBQSxNQUFBLEtBQUsscUJBQUwsZ0JBQUFBLElBQUEsV0FBd0IsU0FBUyxNQUFNLEtBQUs7SUFBYztBQUFBLElBRzVDLG9CQUFpQjtBQUMvQixZQUFNLGtCQUFpQjtBQUNsQixXQUFBLGFBQWEsS0FBSyxRQUE2QixtQ0FBbUM7QUFFdkYsVUFBSSxLQUFLLFlBQVk7QUFDbkIsYUFBSyxXQUFXLEtBQUssV0FBVyxhQUFhLFVBQVU7QUFBQSxNQUFBO0FBQUEsSUFDekQ7QUFBQSxJQUdNLE1BQU0sZUFBWTs7QUFDbEIsWUFBQSxTQUFRQSxNQUFBLEtBQUssZUFBTCxnQkFBQUEsSUFBaUI7QUFDL0IsVUFBSSxDQUFDLFNBQVMsTUFBTSxjQUFjLFNBQVM7QUFDekM7QUFBQSxNQUFBO0FBRUYsaUJBQUssZUFBTCxtQkFBaUI7QUFDakIsWUFBTSxNQUFLO0FBQ0wsWUFBQSxjQUFjLElBQUksV0FBVyxTQUFTLEVBQUUsU0FBUyxNQUFNLFVBQVUsS0FBTSxDQUFBLENBQUM7QUFDeEUsWUFBQSxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUFBLElBQUE7QUFBQSxJQUd6QyxXQUFXLG1CQUF1QztBQUNuRSxZQUFNLFdBQVcsaUJBQWlCO0FBRWxDLFdBQUssYUFBYSxjQUFjLGVBQWUsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBLElBQUE7QUFBQSxJQUdyRCxpQkFBYztBQUN4QixhQUFBO0FBQUEsSUFBQTtBQUFBOztBQXRDWCxpQkF3Q0MsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQXZDd0IsR0FBTSxTQUFtQixPQUQ1QyxrQkFBd0IsWUFBQSx1QkFBQSxHQUFDOzs7In0=
173
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY2xlYXIvZm9ybS1maWVsZC1jbGVhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuQ2xlYXJJbnB1dCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQtY2xlYXIuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGBzYmItZm9ybS1maWVsZGAsIGl0IGRpc3BsYXlzIGEgYnV0dG9uIHdoaWNoIGNsZWFycyB0aGUgaW5wdXQgdmFsdWUuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1mb3JtLWZpZWxkLWNsZWFyJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHNsb3Q6ICdzdWZmaXgnLFxufSlcbmNsYXNzIFNiYkZvcm1GaWVsZENsZWFyRWxlbWVudCBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgcHJpdmF0ZSBfZm9ybUZpZWxkPzogU2JiRm9ybUZpZWxkRWxlbWVudCB8IG51bGw7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9oYW5kbGVDbGljaygpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdDxTYmJGb3JtRmllbGRFbGVtZW50Pignc2JiLWZvcm0tZmllbGQsIFtkYXRhLWZvcm0tZmllbGRdJyk7XG5cbiAgICBpZiAodGhpcy5fZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5fZm9ybUZpZWxkLmhhc0F0dHJpYnV0ZSgnbmVnYXRpdmUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX2Zvcm1GaWVsZD8uaW5wdXRFbGVtZW50O1xuICAgIGlmICghaW5wdXQgfHwgaW5wdXQubG9jYWxOYW1lICE9PSAnaW5wdXQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1GaWVsZD8uY2xlYXIoKTtcbiAgICBpbnB1dC5mb2N1cygpO1xuICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgaTE4bkNsZWFySW5wdXRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNiYi1pY29uIG5hbWU9XCJjcm9zcy1zbWFsbFwiPjwvc2JiLWljb24+IGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1mb3JtLWZpZWxkLWNsZWFyJzogU2JiRm9ybUZpZWxkQ2xlYXJFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUF1Qk0sNEJBQXdCLE1BQUE7O0FBSjdCLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLHNCQUFzQixHQUNwQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQLENBQUM7Ozs7b0JBQ3FDLGlCQUFpQixvQkFBb0I7QUFBN0MsRUFBQSxtQkFBUSxZQUFzQztBQUFBLElBTTNFLGNBQUE7QUFDRSxZQUFBO0FBSE0sV0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFJaEQsV0FBSyxtQkFBbUIsU0FBUyxNQUFNLEtBQUssY0FBYztBQUFBLElBQUE7QUFBQSxJQUc1QyxvQkFBaUI7QUFDL0IsWUFBTSxrQkFBQTtBQUNOLFdBQUssYUFBYSxLQUFLLFFBQTZCLG1DQUFtQztBQUV2RixVQUFJLEtBQUssWUFBWTtBQUNuQixhQUFLLFdBQVcsS0FBSyxXQUFXLGFBQWEsVUFBVTtBQUFBLE1BQUE7QUFBQSxJQUN6RDtBQUFBLElBR00sTUFBTSxlQUFZO0FBQ3hCLFlBQU0sUUFBUSxLQUFLLFlBQVk7QUFDL0IsVUFBSSxDQUFDLFNBQVMsTUFBTSxjQUFjLFNBQVM7QUFDekM7QUFBQSxNQUFBO0FBRUYsV0FBSyxZQUFZLE1BQUE7QUFDakIsWUFBTSxNQUFBO0FBQ04sWUFBTSxjQUFjLElBQUksV0FBVyxTQUFTLEVBQUUsU0FBUyxNQUFNLFVBQVUsS0FBQSxDQUFNLENBQUM7QUFDOUUsWUFBTSxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUFBLElBQUE7QUFBQSxJQUd6QyxXQUFXLG1CQUF1QztBQUNuRSxZQUFNLFdBQVcsaUJBQWlCO0FBRWxDLFdBQUssYUFBYSxjQUFjLGVBQWUsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBLElBQUE7QUFBQSxJQUdyRCxpQkFBYztBQUMvQixhQUFPO0FBQUEsSUFBQTtBQUFBOztBQXRDWCxpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsT0FENUMsa0JBQUEsWUFBQSx1QkFBQSxHQUF5Qjs7OyJ9
@@ -431,4 +431,4 @@ const SbbHeaderActionCommonElementMixin = (superClass) => {
431
431
  export {
432
432
  SbbHeaderActionCommonElementMixin
433
433
  };
434
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbi1jb21tb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9oZWFkZXIvY29tbW9uL2hlYWRlci1hY3Rpb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluLCB0eXBlIFNiYkljb25OYW1lTWl4aW5UeXBlIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2hlYWRlci1hY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZVxuICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiSWNvbk5hbWVNaXhpblR5cGU+XG57XG4gIHB1YmxpYyBhY2Nlc3NvciBleHBhbmRGcm9tOiBTYmJIb3Jpem9udGFsRnJvbTtcbiAgcHVibGljIGFjY2Vzc29yIGljb25OYW1lOiBzdHJpbmc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBzbG90U3RhdGUoKVxuICBhYnN0cmFjdCBjbGFzcyBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKHN1cGVyQ2xhc3MpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gc2V0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgZnJvbSB3aGljaCB0aGUgdGV4dCBpcyBkaXNwbGF5ZWQuXG4gICAgICogRS5nLiBpZiBzZXQgdG8gJ2xhcmdlJywgdGhlIHRleHQgd2lsbCBiZSB2aXNpYmxlIGZvciBicmVha3BvaW50cyBsYXJnZSwgd2lkZSwgdWx0cmEsXG4gICAgICogYW5kIGhpZGRlbiBmb3IgYWxsIHRoZSBvdGhlcnMuIElnbm9yZWQgaWYgbm8gaWNvbiBpcyBzZXQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZXhwYW5kLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGV4cGFuZEZyb206IFNiYkhvcml6b250YWxGcm9tID0gJ21lZGl1bSc7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWhlYWRlci1hY3Rpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1oZWFkZXItYWN0aW9uX19pY29uXCI+ICR7c3VwZXIucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWhlYWRlci1hY3Rpb25fX3RleHRcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JhLE1BQUEsb0NBQW9DLENBRy9DLGVBQ2tFO01BRW5ELGdDQUE0QixNQUFBOztBQUQxQyxRQUFBLG1CQUFBLENBQUEsV0FBVzs7OztzQkFFRixpQkFBaUIsVUFBVTs7OztBQUFuQyxJQUFBLG1CQUFRLFlBQTRCO0FBQUE7O0FBV3BDLHlEQUFBLGtCQUFBLE1BQUEsMEJBQWdELFFBQVE7Ozs7Ozs7O01BQXhELElBQWdCLGFBQXlDO0FBQUEsZUFBQSxtQkFBQTtBQUFBLE1BQUE7QUFBQSxNQUF6RCxJQUFnQixXQUF5QyxPQUFBO0FBQUEsMkJBQUEsOEJBQUE7QUFBQSxNQUFBO0FBQUEsTUFFdEMsaUJBQWM7QUFDeEIsZUFBQTtBQUFBO0FBQUEsbURBRXNDLE1BQU0sZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUxyRTs7Z0NBREMsU0FBUyxFQUFFLFdBQVcsZUFBZSxTQUFTLEtBQUEsQ0FBTSxDQUFDO0FBQ3RDLG1CQUFBLElBQUEsTUFBQSx3QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFBLFlBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQUEsYUFBeUM7QUFBQSxXQUFBLFVBQUEsYUFBQSwwQkFBQSw2QkFBQTtBQVozRCxtQkF3QkMsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztVQXBCZSxHQUFNLFNBQW1CLE9BSjFCLGtCQUE0QixZQUFBLHVCQUFBLEdBQ3pDOzs7QUF3QkssU0FBQTtBQUVUOyJ9
434
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbi1jb21tb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9oZWFkZXIvY29tbW9uL2hlYWRlci1hY3Rpb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJIb3Jpem9udGFsRnJvbSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluLCB0eXBlIFNiYkljb25OYW1lTWl4aW5UeXBlIH0gZnJvbSAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2hlYWRlci1hY3Rpb24uc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZVxuICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiSWNvbk5hbWVNaXhpblR5cGU+XG57XG4gIHB1YmxpYyBhY2Nlc3NvciBleHBhbmRGcm9tOiBTYmJIb3Jpem9udGFsRnJvbTtcbiAgcHVibGljIGFjY2Vzc29yIGljb25OYW1lOiBzdHJpbmc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBzbG90U3RhdGUoKVxuICBhYnN0cmFjdCBjbGFzcyBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKHN1cGVyQ2xhc3MpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkhlYWRlckFjdGlvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gc2V0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgZnJvbSB3aGljaCB0aGUgdGV4dCBpcyBkaXNwbGF5ZWQuXG4gICAgICogRS5nLiBpZiBzZXQgdG8gJ2xhcmdlJywgdGhlIHRleHQgd2lsbCBiZSB2aXNpYmxlIGZvciBicmVha3BvaW50cyBsYXJnZSwgd2lkZSwgdWx0cmEsXG4gICAgICogYW5kIGhpZGRlbiBmb3IgYWxsIHRoZSBvdGhlcnMuIElnbm9yZWQgaWYgbm8gaWNvbiBpcyBzZXQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZXhwYW5kLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGV4cGFuZEZyb206IFNiYkhvcml6b250YWxGcm9tID0gJ21lZGl1bSc7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWhlYWRlci1hY3Rpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1oZWFkZXItYWN0aW9uX19pY29uXCI+ICR7c3VwZXIucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWhlYWRlci1hY3Rpb25fX3RleHRcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JPLE1BQU0sb0NBQW9DLENBRy9DLGVBQ2tFO01BRW5ELGdDQUE0QixNQUFBOztBQUQxQyxRQUFBLG1CQUFBLENBQUEsV0FBVzs7OztzQkFFRixpQkFBaUIsVUFBVTs7OztBQUFuQyxJQUFBLG1CQUFRLFlBQTRCO0FBQUE7O0FBV3BDLHlEQUFBLGtCQUFBLE1BQUEsMEJBQWdELFFBQVE7Ozs7Ozs7O01BQXhELElBQWdCLGFBQVU7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTFCLElBQWdCLFdBQVUsT0FBQTtBQUFBLDJCQUFBLDhCQUFBO0FBQUEsTUFBQTtBQUFBLE1BRVAsaUJBQWM7QUFDL0IsZUFBTztBQUFBO0FBQUEsbURBRXNDLE1BQU0sZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUxyRTs7Z0NBREMsU0FBUyxFQUFFLFdBQVcsZUFBZSxTQUFTLEtBQUEsQ0FBTSxDQUFDO0FBQ3RELG1CQUFBLElBQUEsTUFBQSx3QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixZQUFVLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxZQUFWLGFBQVU7QUFBQSxNQUFBLEtBQUEsVUFBQSxhQUFBLDBCQUFBLDZCQUFBO0FBWjVCLG1CQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7VUFJZ0IsR0FBQSxTQUF5QixPQUoxQixrQkFBQSxZQUFBLHVCQUFBLEdBQ2I7OztBQXdCRixTQUFPO0FBRVQ7In0=
@@ -260,10 +260,9 @@ let SbbHeaderElement = (() => {
260
260
  }
261
261
  /** Removes the scroll listener, if previously attached. */
262
262
  disconnectedCallback() {
263
- var _a2;
264
263
  super.disconnectedCallback();
265
264
  this._scrollElement = null;
266
- (_a2 = this._scrollEventsController) == null ? void 0 : _a2.abort();
265
+ this._scrollEventsController?.abort();
267
266
  }
268
267
  requestUpdate(name, oldValue, options) {
269
268
  super.requestUpdate(name, oldValue, options);
@@ -276,12 +275,11 @@ let SbbHeaderElement = (() => {
276
275
  this._updateScrollListener();
277
276
  }
278
277
  _updateScrollListener() {
279
- var _a2;
280
278
  const scrollElement = this.scrollOrigin instanceof HTMLElement ? this.scrollOrigin : this._scrollOriginIdReferenceController.find() ?? document;
281
279
  if (scrollElement === this._scrollElement) {
282
280
  return;
283
281
  }
284
- (_a2 = this._scrollEventsController) == null ? void 0 : _a2.abort();
282
+ this._scrollEventsController?.abort();
285
283
  this._scrollElement = scrollElement;
286
284
  if (!this._scrollElement) {
287
285
  return;
@@ -301,11 +299,10 @@ let SbbHeaderElement = (() => {
301
299
  }
302
300
  /** Returns the requested property of the scrollContext. */
303
301
  _getCurrentScrollProperty(property2) {
304
- var _a2;
305
302
  if (this._scrollElement instanceof Document) {
306
303
  return this._scrollElement.documentElement[property2] || this._scrollElement.body[property2];
307
304
  }
308
- return ((_a2 = this._scrollElement) == null ? void 0 : _a2[property2]) || 0;
305
+ return this._scrollElement?.[property2] || 0;
309
306
  }
310
307
  /**
311
308
  * Sets the correct value for `scrollTop`, then:
@@ -351,7 +348,7 @@ let SbbHeaderElement = (() => {
351
348
  for (const overlayTrigger of overlayTriggers) {
352
349
  const overlayId = overlayTrigger.getAttribute("aria-controls");
353
350
  const overlay = document.getElementById(overlayId);
354
- if (typeof (overlay == null ? void 0 : overlay.close) === "function") {
351
+ if (typeof overlay?.close === "function") {
355
352
  overlay.close();
356
353
  }
357
354
  }
@@ -396,4 +393,4 @@ let SbbHeaderElement = (() => {
396
393
  export {
397
394
  SbbHeaderElement
398
395
  };
399
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2hlYWRlci9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJGb2N1c1Zpc2libGVXaXRoaW5Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYklkUmVmZXJlbmNlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9oZWFkZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgSVNfTUVOVV9PUEVORURfUVVFUlkgPSBcIlthcmlhLWNvbnRyb2xzXVthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIjtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGhlYWRlciBzZWN0aW9uIGZvciB0aGUgcGFnZS5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhY3Rpb25zLCBjb250ZW50IGFuZCBsb2dvIHRvIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLXotaW5kZXg9MTBdIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSB6LWluZGV4IG9mIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLWhlaWdodD16ZXJvLXNtYWxsOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTE0eCk7bWVkaXVtLXVsdHJhOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTI0eCldIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IGhlaWdodCBvZiB0aGUgaGVhZGVyLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItaGVhZGVyJylcbmNsYXNzIFNiYkhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IHRoZSBoZWFkZXIgY29udGVudCB0byBzdHJldGNoIHRvIGZ1bGwgd2lkdGguXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250ZW50IGhhcyB0aGUgYXBwcm9wcmlhdGUgcGFnZSBzaXplLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gVE9ETzogUmVtb3ZlIHRoZSBkb2N1bWVudCBhcyBkZWZhdWx0IGFzc2lnbm1lbnQgYW5kIHJlZmFjdG9yIGxvZ2ljIHRvIHJldHVybiBkb2N1bWVudFxuICAvKiogVGhlIGVsZW1lbnQncyBpZCBvciB0aGUgZWxlbWVudCBvbiB3aGljaCB0aGUgc2Nyb2xsIGxpc3RlbmVyIGlzIGF0dGFjaGVkLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzY3JvbGwtb3JpZ2luJyB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2Nyb2xsT3JpZ2luOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IERvY3VtZW50ID0gIWlzU2VydmVyID8gZG9jdW1lbnQgOiBudWxsITtcblxuICAvKiogV2hldGhlciB0aGUgaGVhZGVyIHNob3VsZCBoaWRlIGFuZCBzaG93IG9uIHNjcm9sbC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hpZGUtb24tc2Nyb2xsJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaGlkZU9uU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIGhlYWRlciwgZWl0aGVyIG0gb3Igcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ20nIHwgJ3MnID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGVhZGVyT25Ub3AgPSB0cnVlO1xuXG4gIHByaXZhdGUgX3Njcm9sbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9zY3JvbGxFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9zY3JvbGxGdW5jdGlvbjogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9sYXN0U2Nyb2xsID0gMDtcbiAgcHJpdmF0ZSBfc2Nyb2xsT3JpZ2luSWRSZWZlcmVuY2VDb250cm9sbGVyID0gbmV3IFNiYklkUmVmZXJlbmNlQ29udHJvbGxlcih0aGlzLCAnc2Nyb2xsT3JpZ2luJyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJGb2N1c1Zpc2libGVXaXRoaW5Db250cm9sbGVyKHRoaXMpKTtcbiAgfVxuXG4gIC8qKiBJZiBgaGlkZU9uU2Nyb2xsYCBpcyBzZXQsIGNoZWNrcyB0aGUgZWxlbWVudCB0byBob29rIHRoZSBsaXN0ZW5lciBvbiwgYW5kIHBvc3NpYmx5IGFkZCBpdC4qL1xuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl91cGRhdGVTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRoZSBzY3JvbGwgbGlzdGVuZXIsIGlmIHByZXZpb3VzbHkgYXR0YWNoZWQuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICdzY3JvbGxPcmlnaW4nKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID1cbiAgICAgIHRoaXMuc2Nyb2xsT3JpZ2luIGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgPyB0aGlzLnNjcm9sbE9yaWdpblxuICAgICAgICA6ICh0aGlzLl9zY3JvbGxPcmlnaW5JZFJlZmVyZW5jZUNvbnRyb2xsZXIuZmluZCgpID8/IGRvY3VtZW50KTtcbiAgICBpZiAoc2Nyb2xsRWxlbWVudCA9PT0gdGhpcy5fc2Nyb2xsRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fc2Nyb2xsRWxlbWVudCA9IHNjcm9sbEVsZW1lbnQ7XG4gICAgaWYgKCF0aGlzLl9zY3JvbGxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fc2Nyb2xsRnVuY3Rpb24gPSB0aGlzLl9nZXRTY3JvbGxGdW5jdGlvbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5fc2Nyb2xsRnVuY3Rpb24sIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY3VycmVudFNjcm9sbCA9IHRoaXMuX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eSgnc2Nyb2xsVG9wJyk7XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGNvcnJlY3QgZnVuY3Rpb24gdG8gYXR0YWNoIG9uIHNjcm9sbC4gKi9cbiAgcHJpdmF0ZSBfZ2V0U2Nyb2xsRnVuY3Rpb24oKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaGlkZU9uU2Nyb2xsID8gdGhpcy5fc2Nyb2xsTGlzdGVuZXIoKSA6IHRoaXMuX3Njcm9sbFNoYWRvd0xpc3RlbmVyKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgcmVxdWVzdGVkIHByb3BlcnR5IG9mIHRoZSBzY3JvbGxDb250ZXh0LiAqL1xuICBwcml2YXRlIF9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkocHJvcGVydHk6ICdzY3JvbGxUb3AnIHwgJ3Njcm9sbEhlaWdodCcpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9zY3JvbGxFbGVtZW50IGluc3RhbmNlb2YgRG9jdW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LmRvY3VtZW50RWxlbWVudFtwcm9wZXJ0eV0gfHwgdGhpcy5fc2Nyb2xsRWxlbWVudC5ib2R5W3Byb3BlcnR5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ/Lltwcm9wZXJ0eV0gfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBgc2Nyb2xsVG9wYCwgdGhlbjpcbiAgICogLSBhcHBseSB0aGUgc2hhZG93IGlmIHRoZSBlbGVtZW50L2RvY3VtZW50IGhhcyBiZWVuIHNjcm9sbGVkIGRvd247XG4gICAqIC0gaGlkZXMgdGhlIGhlYWRlciwgcmVtb3ZlIHRoZSBzaGFkb3cgYW5kIHBvc3NpYmx5IGNsb3NlIGFueSBvcGVuIG1lbnUgb24gdGhlIGhlYWRlciBpZiBpdCBpcyBub3QgdmlzaWJsZSBhbnltb3JlO1xuICAgKiAtIHNob3dzIHRoZSBoZWFkZXIgYW5kIHJlLWFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgdXAuXG4gICAqL1xuICBwcml2YXRlIF9zY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKTtcblxuICAgIC8vIFdoZXRoZXIgdGhlIHNjcm9sbCB2aWV3IGlzIGJvdW5jaW5nIHBhc3QgdGhlIGVkZ2Ugb2YgY29udGVudCBhbmQgYmFjayBhZ2Fpbi5cbiAgICBpZiAodGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxIZWlnaHQnKSAtIHdpbmRvdy5pbm5lckhlaWdodCAtIGN1cnJlbnRTY3JvbGwgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNoYWRvdycsIGN1cnJlbnRTY3JvbGwgIT09IDApO1xuXG4gICAgLy8gQ2xvc2Ugb3BlbiBvdmVybGF5cyB3aGVuIHNjcm9sbGluZyBkb3duIGlmIHRoZSBoZWFkZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHNpZ2h0LlxuICAgIGlmIChcbiAgICAgIGN1cnJlbnRTY3JvbGwgPiB0aGlzLm9mZnNldEhlaWdodCAmJlxuICAgICAgY3VycmVudFNjcm9sbCA+IDAgJiZcbiAgICAgIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsXG4gICAgKSB7XG4gICAgICB0aGlzLl9jbG9zZU9wZW5PdmVybGF5cygpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiB0aGUgaGVhZGVyIGlzIHNjcm9sbGVkIG91dCBvZiBzaWdodCwgc2Nyb2xsIHBvc2l0aW9uID4gaGVhZGVyIGhlaWdodCAqIDIuXG4gICAgaWYgKGN1cnJlbnRTY3JvbGwgPiB0aGlzLm9mZnNldEhlaWdodCAqIDIpIHtcbiAgICAgIHRoaXMuX2hlYWRlck9uVG9wID0gZmFsc2U7XG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA+IDAgJiYgdGhpcy5fbGFzdFNjcm9sbCA8IGN1cnJlbnRTY3JvbGwpIHtcbiAgICAgICAgLy8gU2Nyb2xsaW5nIGRvd25cbiAgICAgICAgWydkYXRhLXNoYWRvdycsICdkYXRhLXZpc2libGUnXS5mb3JFYWNoKChuYW1lKSA9PiB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTY3JvbGxpbmcgdXBcbiAgICAgICAgWydkYXRhLWZpeGVkJywgJ2RhdGEtc2hhZG93JywgJ2RhdGEtYW5pbWF0ZWQnLCAnZGF0YS12aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShuYW1lLCB0cnVlKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2hlY2sgaWYgaGVhZGVyIGluIGl0cyBvcmlnaW5hbCBwb3NpdGlvbiwgc2Nyb2xsIHBvc2l0aW9uIDwgaGVhZGVyIGhlaWdodC5cbiAgICAgIC8vIFJlc2V0IGhlYWRlciBiZWhhdmlvdXIgd2hlbiBzY3JvbGwgaGl0cyB0b3Agb2YgdGhlIHBhZ2UsIG9uIHNjcm9sbCBwb3NpdGlvbiA9IDAuXG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9oZWFkZXJPblRvcCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5faGVhZGVyT25Ub3ApIHtcbiAgICAgICAgWydkYXRhLXNoYWRvdycsICdkYXRhLWFuaW1hdGVkJywgJ2RhdGEtZml4ZWQnLCAnZGF0YS12aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLyoqIEFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgZG93bi4gKi9cbiAgcHJpdmF0ZSBfc2Nyb2xsU2hhZG93TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2hhZG93JywgdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKSAhPT0gMCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU9wZW5PdmVybGF5cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtaGFzLXZpc2libGUtZm9jdXMtd2l0aGluJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcmxheVRyaWdnZXJzOiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbChJU19NRU5VX09QRU5FRF9RVUVSWSkgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4sXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IG92ZXJsYXlUcmlnZ2VyIG9mIG92ZXJsYXlUcmlnZ2Vycykge1xuICAgICAgY29uc3Qgb3ZlcmxheUlkOiBzdHJpbmcgPSBvdmVybGF5VHJpZ2dlci5nZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnKSE7XG4gICAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3ZlcmxheUlkKSBhcyBIVE1MRWxlbWVudCAmIHsgY2xvc2U6ICgpID0+IHZvaWQgfTtcbiAgICAgIGlmICh0eXBlb2Ygb3ZlcmxheT8uY2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb3ZlcmxheS5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGhlYWRlciBjbGFzcz1cInNiYi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1oZWFkZXJfX3dyYXBwZXJcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWhlYWRlcic6IFNiYkhlYWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSIsInByb3BlcnR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsTUFBTSx1QkFBdUI7SUFXdkIsb0JBQWdCLE1BQUE7OzBCQURyQixjQUFjLFlBQVksQ0FBQzs7OztvQkFDRyxrQkFBa0IsVUFBVTs7Ozs7Ozs7Ozs7Ozs7OztBQUFwQyxFQUFBLG1CQUFRLFlBQTZCO0FBQUEsSUFtQzFELGNBQUE7O0FBMUJBO0FBS0E7QUFLQTtB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
396
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2hlYWRlci9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJGb2N1c1Zpc2libGVXaXRoaW5Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYklkUmVmZXJlbmNlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9oZWFkZXIuc2Nzcz9saXQmaW5saW5lJztcblxuY29uc3QgSVNfTUVOVV9PUEVORURfUVVFUlkgPSBcIlthcmlhLWNvbnRyb2xzXVthcmlhLWV4cGFuZGVkPSd0cnVlJ11cIjtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGhlYWRlciBzZWN0aW9uIGZvciB0aGUgcGFnZS5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhY3Rpb25zLCBjb250ZW50IGFuZCBsb2dvIHRvIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLXotaW5kZXg9MTBdIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSB6LWluZGV4IG9mIHRoZSBoZWFkZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItaGVhZGVyLWhlaWdodD16ZXJvLXNtYWxsOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTE0eCk7bWVkaXVtLXVsdHJhOnZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTI0eCldIC0gQ2FuIGJlIHVzZWQgdG8gbW9kaWZ5IGhlaWdodCBvZiB0aGUgaGVhZGVyLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItaGVhZGVyJylcbmNsYXNzIFNiYkhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IHRoZSBoZWFkZXIgY29udGVudCB0byBzdHJldGNoIHRvIGZ1bGwgd2lkdGguXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250ZW50IGhhcyB0aGUgYXBwcm9wcmlhdGUgcGFnZSBzaXplLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gVE9ETzogUmVtb3ZlIHRoZSBkb2N1bWVudCBhcyBkZWZhdWx0IGFzc2lnbm1lbnQgYW5kIHJlZmFjdG9yIGxvZ2ljIHRvIHJldHVybiBkb2N1bWVudFxuICAvKiogVGhlIGVsZW1lbnQncyBpZCBvciB0aGUgZWxlbWVudCBvbiB3aGljaCB0aGUgc2Nyb2xsIGxpc3RlbmVyIGlzIGF0dGFjaGVkLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzY3JvbGwtb3JpZ2luJyB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2Nyb2xsT3JpZ2luOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IERvY3VtZW50ID0gIWlzU2VydmVyID8gZG9jdW1lbnQgOiBudWxsITtcblxuICAvKiogV2hldGhlciB0aGUgaGVhZGVyIHNob3VsZCBoaWRlIGFuZCBzaG93IG9uIHNjcm9sbC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hpZGUtb24tc2Nyb2xsJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaGlkZU9uU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIGhlYWRlciwgZWl0aGVyIG0gb3Igcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ20nIHwgJ3MnID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGVhZGVyT25Ub3AgPSB0cnVlO1xuXG4gIHByaXZhdGUgX3Njcm9sbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9zY3JvbGxFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9zY3JvbGxGdW5jdGlvbjogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9sYXN0U2Nyb2xsID0gMDtcbiAgcHJpdmF0ZSBfc2Nyb2xsT3JpZ2luSWRSZWZlcmVuY2VDb250cm9sbGVyID0gbmV3IFNiYklkUmVmZXJlbmNlQ29udHJvbGxlcih0aGlzLCAnc2Nyb2xsT3JpZ2luJyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJGb2N1c1Zpc2libGVXaXRoaW5Db250cm9sbGVyKHRoaXMpKTtcbiAgfVxuXG4gIC8qKiBJZiBgaGlkZU9uU2Nyb2xsYCBpcyBzZXQsIGNoZWNrcyB0aGUgZWxlbWVudCB0byBob29rIHRoZSBsaXN0ZW5lciBvbiwgYW5kIHBvc3NpYmx5IGFkZCBpdC4qL1xuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl91cGRhdGVTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRoZSBzY3JvbGwgbGlzdGVuZXIsIGlmIHByZXZpb3VzbHkgYXR0YWNoZWQuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICdzY3JvbGxPcmlnaW4nKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX3VwZGF0ZVNjcm9sbExpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID1cbiAgICAgIHRoaXMuc2Nyb2xsT3JpZ2luIGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgPyB0aGlzLnNjcm9sbE9yaWdpblxuICAgICAgICA6ICh0aGlzLl9zY3JvbGxPcmlnaW5JZFJlZmVyZW5jZUNvbnRyb2xsZXIuZmluZCgpID8/IGRvY3VtZW50KTtcbiAgICBpZiAoc2Nyb2xsRWxlbWVudCA9PT0gdGhpcy5fc2Nyb2xsRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fc2Nyb2xsRWxlbWVudCA9IHNjcm9sbEVsZW1lbnQ7XG4gICAgaWYgKCF0aGlzLl9zY3JvbGxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fc2Nyb2xsRnVuY3Rpb24gPSB0aGlzLl9nZXRTY3JvbGxGdW5jdGlvbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5fc2Nyb2xsRnVuY3Rpb24sIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX3Njcm9sbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY3VycmVudFNjcm9sbCA9IHRoaXMuX2dldEN1cnJlbnRTY3JvbGxQcm9wZXJ0eSgnc2Nyb2xsVG9wJyk7XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGNvcnJlY3QgZnVuY3Rpb24gdG8gYXR0YWNoIG9uIHNjcm9sbC4gKi9cbiAgcHJpdmF0ZSBfZ2V0U2Nyb2xsRnVuY3Rpb24oKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaGlkZU9uU2Nyb2xsID8gdGhpcy5fc2Nyb2xsTGlzdGVuZXIoKSA6IHRoaXMuX3Njcm9sbFNoYWRvd0xpc3RlbmVyKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgcmVxdWVzdGVkIHByb3BlcnR5IG9mIHRoZSBzY3JvbGxDb250ZXh0LiAqL1xuICBwcml2YXRlIF9nZXRDdXJyZW50U2Nyb2xsUHJvcGVydHkocHJvcGVydHk6ICdzY3JvbGxUb3AnIHwgJ3Njcm9sbEhlaWdodCcpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9zY3JvbGxFbGVtZW50IGluc3RhbmNlb2YgRG9jdW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LmRvY3VtZW50RWxlbWVudFtwcm9wZXJ0eV0gfHwgdGhpcy5fc2Nyb2xsRWxlbWVudC5ib2R5W3Byb3BlcnR5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ/Lltwcm9wZXJ0eV0gfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBgc2Nyb2xsVG9wYCwgdGhlbjpcbiAgICogLSBhcHBseSB0aGUgc2hhZG93IGlmIHRoZSBlbGVtZW50L2RvY3VtZW50IGhhcyBiZWVuIHNjcm9sbGVkIGRvd247XG4gICAqIC0gaGlkZXMgdGhlIGhlYWRlciwgcmVtb3ZlIHRoZSBzaGFkb3cgYW5kIHBvc3NpYmx5IGNsb3NlIGFueSBvcGVuIG1lbnUgb24gdGhlIGhlYWRlciBpZiBpdCBpcyBub3QgdmlzaWJsZSBhbnltb3JlO1xuICAgKiAtIHNob3dzIHRoZSBoZWFkZXIgYW5kIHJlLWFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgdXAuXG4gICAqL1xuICBwcml2YXRlIF9zY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKTtcblxuICAgIC8vIFdoZXRoZXIgdGhlIHNjcm9sbCB2aWV3IGlzIGJvdW5jaW5nIHBhc3QgdGhlIGVkZ2Ugb2YgY29udGVudCBhbmQgYmFjayBhZ2Fpbi5cbiAgICBpZiAodGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxIZWlnaHQnKSAtIHdpbmRvdy5pbm5lckhlaWdodCAtIGN1cnJlbnRTY3JvbGwgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNoYWRvdycsIGN1cnJlbnRTY3JvbGwgIT09IDApO1xuXG4gICAgLy8gQ2xvc2Ugb3BlbiBvdmVybGF5cyB3aGVuIHNjcm9sbGluZyBkb3duIGlmIHRoZSBoZWFkZXIgaXMgc2Nyb2xsZWQgb3V0IG9mIHNpZ2h0LlxuICAgIGlmIChcbiAgICAgIGN1cnJlbnRTY3JvbGwgPiB0aGlzLm9mZnNldEhlaWdodCAmJlxuICAgICAgY3VycmVudFNjcm9sbCA+IDAgJiZcbiAgICAgIHRoaXMuX2xhc3RTY3JvbGwgPCBjdXJyZW50U2Nyb2xsXG4gICAgKSB7XG4gICAgICB0aGlzLl9jbG9zZU9wZW5PdmVybGF5cygpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiB0aGUgaGVhZGVyIGlzIHNjcm9sbGVkIG91dCBvZiBzaWdodCwgc2Nyb2xsIHBvc2l0aW9uID4gaGVhZGVyIGhlaWdodCAqIDIuXG4gICAgaWYgKGN1cnJlbnRTY3JvbGwgPiB0aGlzLm9mZnNldEhlaWdodCAqIDIpIHtcbiAgICAgIHRoaXMuX2hlYWRlck9uVG9wID0gZmFsc2U7XG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA+IDAgJiYgdGhpcy5fbGFzdFNjcm9sbCA8IGN1cnJlbnRTY3JvbGwpIHtcbiAgICAgICAgLy8gU2Nyb2xsaW5nIGRvd25cbiAgICAgICAgWydkYXRhLXNoYWRvdycsICdkYXRhLXZpc2libGUnXS5mb3JFYWNoKChuYW1lKSA9PiB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTY3JvbGxpbmcgdXBcbiAgICAgICAgWydkYXRhLWZpeGVkJywgJ2RhdGEtc2hhZG93JywgJ2RhdGEtYW5pbWF0ZWQnLCAnZGF0YS12aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShuYW1lLCB0cnVlKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2hlY2sgaWYgaGVhZGVyIGluIGl0cyBvcmlnaW5hbCBwb3NpdGlvbiwgc2Nyb2xsIHBvc2l0aW9uIDwgaGVhZGVyIGhlaWdodC5cbiAgICAgIC8vIFJlc2V0IGhlYWRlciBiZWhhdmlvdXIgd2hlbiBzY3JvbGwgaGl0cyB0b3Agb2YgdGhlIHBhZ2UsIG9uIHNjcm9sbCBwb3NpdGlvbiA9IDAuXG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9oZWFkZXJPblRvcCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5faGVhZGVyT25Ub3ApIHtcbiAgICAgICAgWydkYXRhLXNoYWRvdycsICdkYXRhLWFuaW1hdGVkJywgJ2RhdGEtZml4ZWQnLCAnZGF0YS12aXNpYmxlJ10uZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gYGN1cnJlbnRTY3JvbGxgIGNhbiBiZSBuZWdhdGl2ZSwgZS5nLiBvbiBtb2JpbGU7IHRoaXMgaXMgbm90IGFsbG93ZWQuXG4gICAgdGhpcy5fbGFzdFNjcm9sbCA9IGN1cnJlbnRTY3JvbGwgPD0gMCA/IDAgOiBjdXJyZW50U2Nyb2xsO1xuICB9XG5cbiAgLyoqIEFwcGx5IHRoZSBzaGFkb3cgaWYgdGhlIGVsZW1lbnQvZG9jdW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQgZG93bi4gKi9cbiAgcHJpdmF0ZSBfc2Nyb2xsU2hhZG93TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2hhZG93JywgdGhpcy5fZ2V0Q3VycmVudFNjcm9sbFByb3BlcnR5KCdzY3JvbGxUb3AnKSAhPT0gMCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU9wZW5PdmVybGF5cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtaGFzLXZpc2libGUtZm9jdXMtd2l0aGluJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcmxheVRyaWdnZXJzOiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbChJU19NRU5VX09QRU5FRF9RVUVSWSkgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4sXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IG92ZXJsYXlUcmlnZ2VyIG9mIG92ZXJsYXlUcmlnZ2Vycykge1xuICAgICAgY29uc3Qgb3ZlcmxheUlkOiBzdHJpbmcgPSBvdmVybGF5VHJpZ2dlci5nZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnKSE7XG4gICAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3ZlcmxheUlkKSBhcyBIVE1MRWxlbWVudCAmIHsgY2xvc2U6ICgpID0+IHZvaWQgfTtcbiAgICAgIGlmICh0eXBlb2Ygb3ZlcmxheT8uY2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb3ZlcmxheS5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGhlYWRlciBjbGFzcz1cInNiYi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1oZWFkZXJfX3dyYXBwZXJcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWhlYWRlcic6IFNiYkhlYWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU0sdUJBQXVCO0lBV3ZCLG9CQUFnQixNQUFBOzswQkFEckIsY0FBYyxZQUFZLENBQUM7Ozs7b0JBQ0csa0JBQWtCLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBcEMsRUFBQSxtQkFBUSxZQUE2QjtBQUFBLElBbUMxRCxjQUFBO0FBQ0UsWUFBQTtBQTNCRjtBQUtBO0FBS0E7QUFNNkI7QUFFcEI7QUFsQk8seUJBQUEsNEJBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztBQUt6Qix5QkFBQSxpQ0FBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBZ0QsQ0FBQyxXQUFXLFdBQVcsSUFBSztBQUs1RSx5QkFBQSxpQ0FBQSxrQkFBQSxNQUFBLCtCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBd0IsS0FBSztBQU1BLHlCQUFBLHlCQUFBLGtCQUFBLE1BQUEsK0JBQUEsR0FBQSxrQkFBQSxNQUFBLG9CQUFrQixPQUFBLElBQVcsTUFBTSxHQUFHO0FBRXpELHlCQUFBLGlDQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLDRCQUFlLElBQUk7QUFFckMsV0FBQSxpQkFBYyxrQkFBQSxNQUFBLCtCQUFBO0FBR2QsV0FBQSxjQUFjO0FBQ2QsV0FBQSxxQ0FBcUMsSUFBSSx5QkFBeUIsTUFBTSxjQUFjO0FBSTVGLFdBQUssY0FBYyxJQUFJLGdDQUFnQyxJQUFJLENBQUM7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQTVCOUQsSUFBZ0IsV0FBUTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBeEIsSUFBZ0IsU0FBUSxPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBLElBS3hCLElBQWdCLGVBQVk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTVCLElBQWdCLGFBQVksT0FBQTtBQUFBLHlCQUFBLGdDQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLNUIsSUFBZ0IsZUFBWTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBNUIsSUFBZ0IsYUFBWSxPQUFBO0FBQUEseUJBQUEsZ0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU1DLElBQWdCLE9BQUk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBLElBRXhDLElBQWlCLGVBQVk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQTdCLElBQWlCLGFBQVksT0FBQTtBQUFBLHlCQUFBLGdDQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFjdEIsb0JBQWlCO0FBQy9CLFlBQU0sa0JBQUE7QUFDTixVQUFJLEtBQUssWUFBWTtBQUNuQixhQUFLLHNCQUFBO0FBQUEsTUFBcUI7QUFBQSxJQUM1QjtBQUFBO0FBQUEsSUFJYyx1QkFBb0I7QUFDbEMsWUFBTSxxQkFBQTtBQUNOLFdBQUssaUJBQWlCO0FBQ3RCLFdBQUsseUJBQXlCLE1BQUE7QUFBQTtJQUdoQixjQUNkLE1BQ0EsVUFDQSxTQUE2QjtBQUU3QixZQUFNLGNBQWMsTUFBTSxVQUFVLE9BQU87QUFFM0MsVUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLFNBQVMsbUJBQW1CLEtBQUssWUFBWTtBQUN0RSxhQUFLLHNCQUFBO0FBQUEsTUFBcUI7QUFBQSxJQUM1QjtBQUFBLElBR2lCLGFBQWEsbUJBQXVDO0FBQ3JFLFlBQU0sYUFBYSxpQkFBaUI7QUFDcEMsV0FBSyxzQkFBQTtBQUFBLElBQXFCO0FBQUEsSUFHcEIsd0JBQXFCO0FBQzNCLFlBQU0sZ0JBQ0osS0FBSyx3QkFBd0IsY0FDekIsS0FBSyxlQUNKLEtBQUssbUNBQW1DLEtBQUEsS0FBVTtBQUN6RCxVQUFJLGtCQUFrQixLQUFLLGdCQUFnQjtBQUN6QztBQUFBLE1BQUE7QUFHRixXQUFLLHlCQUF5QixNQUFBO0FBQzlCLFdBQUssaUJBQWlCO0FBQ3RCLFVBQUksQ0FBQyxLQUFLLGdCQUFnQjtBQUN4QjtBQUFBLE1BQUE7QUFFRixXQUFLLDBCQUEwQixJQUFJLGdCQUFBO0FBQ25DLFdBQUssa0JBQWtCLEtBQUssbUJBQW1CLEtBQUssSUFBSTtBQUN4RCxXQUFLLGVBQWUsaUJBQWlCLFVBQVUsS0FBSyxpQkFBaUI7QUFBQSxRQUNuRSxTQUFTO0FBQUEsUUFDVCxRQUFRLEtBQUssd0JBQXdCO0FBQUEsTUFBQSxDQUN0QztBQUVELFlBQU0sZ0JBQWdCLEtBQUssMEJBQTBCLFdBQVc7QUFFaEUsV0FBSyxjQUFjLGlCQUFpQixJQUFJLElBQUk7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUl0QyxxQkFBa0I7QUFDeEIsYUFBTyxLQUFLLGVBQWUsS0FBSyxnQkFBQSxJQUFvQixLQUFLLHNCQUFBO0FBQUE7O0lBSW5ELDBCQUEwQkEsV0FBc0M7QUFDdEUsVUFBSSxLQUFLLDBCQUEwQixVQUFVO0FBQzNDLGVBQU8sS0FBSyxlQUFlLGdCQUFnQkEsU0FBUSxLQUFLLEtBQUssZUFBZSxLQUFLQSxTQUFRO0FBQUEsTUFBQTtBQUUzRixhQUFPLEtBQUssaUJBQWlCQSxTQUFRLEtBQUs7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFTcEMsa0JBQWU7QUFDckIsWUFBTSxnQkFBZ0IsS0FBSywwQkFBMEIsV0FBVztBQUdoRSxVQUFJLEtBQUssMEJBQTBCLGNBQWMsSUFBSSxPQUFPLGNBQWMsaUJBQWlCLEdBQUc7QUFDNUY7QUFBQSxNQUFBO0FBR0YsV0FBSyxnQkFBZ0IsZUFBZSxrQkFBa0IsQ0FBQztBQUd2RCxVQUNFLGdCQUFnQixLQUFLLGdCQUNyQixnQkFBZ0IsS0FDaEIsS0FBSyxjQUFjLGVBQ25CO0FBQ0EsYUFBSyxtQkFBQTtBQUFBLE1BQWtCO0FBR3pCLFVBQUksZ0JBQWdCLEtBQUssZUFBZSxHQUFHO0FBQ3pDLGFBQUssZUFBZTtBQUNwQixZQUFJLGdCQUFnQixLQUFLLEtBQUssY0FBYyxlQUFlO0FBRXpELFdBQUMsZUFBZSxjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQVMsS0FBSyxnQkFBZ0IsSUFBSSxDQUFDO0FBQUEsUUFBQSxPQUN2RTtBQUVMLFdBQUMsY0FBYyxlQUFlLGlCQUFpQixjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQ3RFLEtBQUssZ0JBQWdCLE1BQU0sSUFBSSxDQUFDO0FBQUEsUUFBQTtBQUFBLE1BRXBDLE9BQ0s7QUFHTCxZQUFJLGtCQUFrQixHQUFHO0FBQ3ZCLGVBQUssZUFBZTtBQUFBLFFBQUE7QUFFdEIsWUFBSSxLQUFLLGNBQWM7QUFDckIsV0FBQyxlQUFlLGlCQUFpQixjQUFjLGNBQWMsRUFBRSxRQUFRLENBQUMsU0FDdEUsS0FBSyxnQkFBZ0IsSUFBSSxDQUFDO0FBQUEsUUFBQTtBQUFBLE1BRTlCO0FBR0YsV0FBSyxjQUFjLGlCQUFpQixJQUFJLElBQUk7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUl0Qyx3QkFBcUI7QUFDM0IsV0FBSyxnQkFBZ0IsZUFBZSxLQUFLLDBCQUEwQixXQUFXLE1BQU0sQ0FBQztBQUFBLElBQUE7QUFBQSxJQUcvRSxxQkFBa0I7QUFDeEIsVUFBSSxLQUFLLGFBQWEsK0JBQStCLEdBQUc7QUFDdEQ7QUFBQSxNQUFBO0FBRUYsWUFBTSxrQkFBaUMsTUFBTSxLQUMzQyxLQUFLLGlCQUFpQixvQkFBb0IsQ0FBNEI7QUFFeEUsaUJBQVcsa0JBQWtCLGlCQUFpQjtBQUM1QyxjQUFNLFlBQW9CLGVBQWUsYUFBYSxlQUFlO0FBQ3JFLGNBQU0sVUFBVSxTQUFTLGVBQWUsU0FBUztBQUNqRCxZQUFJLE9BQU8sU0FBUyxVQUFVLFlBQVk7QUFDeEMsa0JBQVEsTUFBQTtBQUFBLFFBQUs7QUFBQSxNQUNmO0FBQUEsSUFDRjtBQUFBLElBR2lCLFNBQU07QUFDdkIsYUFBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBQUE7QUFBQSxLQWhMVCw0Q0FLQSxnREFLQSxnREFNNkIsd0NBRXBCOztBQXBCUiwyQkFBQSxDQUFBLFVBQUEsR0FDQSxTQUFTLEVBQUUsU0FBUyxNQUFNLE1BQU0sUUFBQSxDQUFTLENBQUM7QUFLMUMsK0JBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxnQkFBQSxDQUFpQixDQUFDO0FBSXhDLCtCQUFBLENBQUEsYUFDQSxTQUFTLEVBQUUsV0FBVyxrQkFBa0IsU0FBUyxNQUFNLE1BQU0sUUFBQSxDQUFTLENBQUM7QUFPdkUsdUJBQUEsQ0FBQSxTQUFTLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUUzQiwrQkFBQSxDQUFBLE9BQU87QUFsQlIsaUJBQUEsSUFBQSxNQUFBLHNCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsVUFBUSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBUixXQUFRO0FBQUEsSUFBQSxLQUFBLFVBQUEsYUFBQSx3QkFBQSwyQkFBQTtBQUt4QixpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGNBQVksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVosZUFBWTtBQUFBLElBQUEsS0FBQSxVQUFBLGFBQUEsNEJBQUEsK0JBQUE7QUFLNUIsaUJBQUEsSUFBQSxNQUFBLDBCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsZ0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsa0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixjQUFZLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFaLGVBQVk7QUFBQSxJQUFBLEtBQUEsVUFBQSxhQUFBLDRCQUFBLCtCQUFBO0FBTUMsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJO0FBQUEsSUFBQSxLQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQUV4QyxpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWlCLGNBQVksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVosZUFBWTtBQUFBLElBQUEsS0FBQSxVQUFBLGFBQUEsNEJBQUEsK0JBQUE7QUEzQnhDLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixPQUQ1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQWlCOzs7In0=
@@ -22,4 +22,4 @@ let SbbHeaderButtonElement = (() => {
22
22
  export {
23
23
  SbbHeaderButtonElement
24
24
  };
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9oZWFkZXIvaGVhZGVyLWJ1dHRvbi9oZWFkZXItYnV0dG9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50TWl4aW4gfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgYnV0dG9uIGVsZW1lbnQgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgYHNiYi1oZWFkZXJgIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYnV0dG9uIGljb24uXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWhlYWRlci1idXR0b25gLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItaGVhZGVyLWJ1dHRvbicpXG5jbGFzcyBTYmJIZWFkZXJCdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7fVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWhlYWRlci1idXR0b24nOiBTYmJIZWFkZXJCdXR0b25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztJQWFNLDBCQUFzQixNQUFBOzswQkFEM0IsY0FBYyxtQkFBbUIsQ0FBQzs7OztvQkFDRSxrQ0FBa0Msb0JBQW9CO0FBQTlELEVBQUEsbUJBQVEsWUFBdUQ7QUFBQTs7QUFBNUYsaUJBQStGLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7QUFBekYsc0JBQXNCLFlBQUEsdUJBQUE7QUFBQSxFQUFBLE1BQUM7OzsifQ==
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9oZWFkZXIvaGVhZGVyLWJ1dHRvbi9oZWFkZXItYnV0dG9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJIZWFkZXJBY3Rpb25Db21tb25FbGVtZW50TWl4aW4gfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgYnV0dG9uIGVsZW1lbnQgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgYHNiYi1oZWFkZXJgIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYnV0dG9uIGljb24uXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWhlYWRlci1idXR0b25gLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItaGVhZGVyLWJ1dHRvbicpXG5jbGFzcyBTYmJIZWFkZXJCdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7fVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWhlYWRlci1idXR0b24nOiBTYmJIZWFkZXJCdXR0b25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztJQWFNLDBCQUFzQixNQUFBOzswQkFEM0IsY0FBYyxtQkFBbUIsQ0FBQzs7OztvQkFDRSxrQ0FBa0Msb0JBQW9CO0FBQTlELEVBQUEsbUJBQVEsWUFBdUQ7QUFBQTs7QUFBNUYsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztBQUFNLHNCQUFBLFlBQUEsdUJBQUE7QUFBQSxFQUFBLE1BQXVCOzs7In0=
@@ -22,4 +22,4 @@ let SbbHeaderLinkElement = (() => {
22
22
  export {
23
23
  SbbHeaderLinkElement
24
24
  };
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvaGVhZGVyL2hlYWRlci1saW5rL2hlYWRlci1saW5rLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMaW5rQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGxpbmsgZWxlbWVudCB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBgc2JiLWhlYWRlcmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBsaW5rIGljb24uXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWhlYWRlci1saW5rYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWhlYWRlci1saW5rJylcbmNsYXNzIFNiYkhlYWRlckxpbmtFbGVtZW50IGV4dGVuZHMgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkge31cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1oZWFkZXItbGluayc6IFNiYkhlYWRlckxpbmtFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztJQWFNLHdCQUFvQixNQUFBOzswQkFEekIsY0FBYyxpQkFBaUIsQ0FBQzs7OztvQkFDRSxrQ0FBa0Msa0JBQWtCO0FBQTVELEVBQUEsbUJBQVEsWUFBcUQ7QUFBQTs7QUFBeEYsaUJBQTJGLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7QUFBckYsc0JBQW9CLFlBQUEsdUJBQUE7QUFBQSxFQUFBLE1BQUM7OzsifQ==
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvaGVhZGVyL2hlYWRlci1saW5rL2hlYWRlci1saW5rLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMaW5rQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGxpbmsgZWxlbWVudCB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBgc2JiLWhlYWRlcmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBsaW5rIGljb24uXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWhlYWRlci1saW5rYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWhlYWRlci1saW5rJylcbmNsYXNzIFNiYkhlYWRlckxpbmtFbGVtZW50IGV4dGVuZHMgU2JiSGVhZGVyQWN0aW9uQ29tbW9uRWxlbWVudE1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkge31cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1oZWFkZXItbGluayc6IFNiYkhlYWRlckxpbmtFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztJQWFNLHdCQUFvQixNQUFBOzswQkFEekIsY0FBYyxpQkFBaUIsQ0FBQzs7OztvQkFDRSxrQ0FBa0Msa0JBQWtCO0FBQTVELEVBQUEsbUJBQVEsWUFBcUQ7QUFBQTs7QUFBeEYsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztBQUFNLHNCQUFBLFlBQUEsdUJBQUE7QUFBQSxFQUFBLE1BQXFCOzs7In0=