@sbb-esta/lyne-elements 1.12.0 → 1.13.0

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 (210) hide show
  1. package/autocomplete-grid/autocomplete-grid-button.js +1 -1
  2. package/button/common.js +1 -1
  3. package/button/mini-button.js +5 -5
  4. package/core/mixins/form-associated-checkbox-mixin.d.ts +1 -0
  5. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  6. package/core/mixins/form-associated-mixin.d.ts +6 -6
  7. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  8. package/core/mixins/required-mixin.d.ts +1 -1
  9. package/core/mixins/required-mixin.d.ts.map +1 -1
  10. package/core/mixins.js +2 -6
  11. package/core/styles/core/functions.scss +1 -1
  12. package/core/styles/mixins/buttons.scss +1 -1
  13. package/core/styles/mixins/helpers.scss +1 -1
  14. package/core/styles/mixins/lists.scss +2 -3
  15. package/core/styles/mixins/scrollbar.scss +2 -2
  16. package/core/styles/mixins/table.scss +4 -6
  17. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +4 -0
  18. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +5 -1
  19. package/core/styles/normalize.scss +62 -131
  20. package/core.css +5 -6
  21. package/custom-elements.json +533 -268
  22. package/datepicker/datepicker-next-day.js +1 -1
  23. package/datepicker/datepicker-previous-day.js +1 -1
  24. package/development/accordion.js +2 -9
  25. package/development/action-group.js +2 -9
  26. package/development/alert/alert-group.js +2 -9
  27. package/development/alert/alert.js +2 -9
  28. package/development/autocomplete-grid/autocomplete-grid-button.js +3 -10
  29. package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -9
  30. package/development/autocomplete-grid/autocomplete-grid-option.js +2 -9
  31. package/development/autocomplete-grid/autocomplete-grid-row.js +2 -9
  32. package/development/autocomplete.js +2 -12
  33. package/development/breadcrumb/breadcrumb-group.js +2 -9
  34. package/development/breadcrumb/breadcrumb.js +2 -9
  35. package/development/button/common.js +3 -12
  36. package/development/button/mini-button-group.js +2 -9
  37. package/development/button/mini-button.js +3 -10
  38. package/development/calendar.js +2 -9
  39. package/development/card/card-badge.js +2 -9
  40. package/development/card/card.js +2 -9
  41. package/development/card/common.js +2 -9
  42. package/development/checkbox/checkbox-group.js +2 -9
  43. package/development/checkbox/checkbox.js +2 -9
  44. package/development/checkbox/common.js +1 -8
  45. package/development/chip.js +2 -9
  46. package/development/clock.js +2 -9
  47. package/development/container/container.js +1 -8
  48. package/development/container/sticky-bar.js +2 -9
  49. package/development/core/mixins/form-associated-checkbox-mixin.d.ts +1 -0
  50. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  51. package/development/core/mixins/form-associated-mixin.d.ts +6 -6
  52. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  53. package/development/core/mixins/required-mixin.d.ts +1 -1
  54. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  55. package/development/core/mixins.js +4 -14
  56. package/development/datepicker/datepicker-next-day.js +3 -10
  57. package/development/datepicker/datepicker-previous-day.js +3 -10
  58. package/development/datepicker/datepicker-toggle.js +2 -9
  59. package/development/datepicker/datepicker.js +2 -9
  60. package/development/dialog/dialog-actions.js +2 -9
  61. package/development/dialog/dialog-content.js +2 -11
  62. package/development/dialog/dialog-title.js +2 -9
  63. package/development/dialog/dialog.js +2 -9
  64. package/development/divider.js +2 -9
  65. package/development/expansion-panel/expansion-panel-content.js +2 -9
  66. package/development/expansion-panel/expansion-panel-header.js +2 -9
  67. package/development/expansion-panel/expansion-panel.js +2 -9
  68. package/development/file-selector/file-selector.d.ts +18 -8
  69. package/development/file-selector/file-selector.d.ts.map +1 -1
  70. package/development/file-selector.js +73 -44
  71. package/development/flip-card/flip-card-details.js +2 -9
  72. package/development/flip-card/flip-card-summary.js +2 -9
  73. package/development/flip-card/flip-card.js +2 -9
  74. package/development/footer.js +2 -9
  75. package/development/form-error.js +2 -9
  76. package/development/form-field/form-field-clear.js +3 -10
  77. package/development/form-field/form-field.js +1 -12
  78. package/development/header/common.js +53 -13
  79. package/development/header/header.js +2 -9
  80. package/development/icon.js +2 -9
  81. package/development/image/image.d.ts +1 -0
  82. package/development/image/image.d.ts.map +1 -1
  83. package/development/image.js +13 -13
  84. package/development/journey-header.js +2 -9
  85. package/development/lead-container.js +2 -9
  86. package/development/link/common.js +4 -25
  87. package/development/link-list/common.js +2 -9
  88. package/development/link-list/link-list-anchor.js +2 -9
  89. package/development/link-list/link-list.js +2 -9
  90. package/development/loading-indicator.js +3 -15
  91. package/development/logo.js +2 -9
  92. package/development/map-container.js +2 -11
  93. package/development/menu/common.js +2 -9
  94. package/development/menu/menu.js +2 -11
  95. package/development/message.js +2 -9
  96. package/development/navigation/common.js +2 -9
  97. package/development/navigation/navigation-list.js +2 -9
  98. package/development/navigation/navigation-marker.js +2 -9
  99. package/development/navigation/navigation-section.js +2 -11
  100. package/development/navigation/navigation.js +2 -11
  101. package/development/notification.js +2 -10
  102. package/development/option/optgroup.js +2 -9
  103. package/development/option/option.js +2 -9
  104. package/development/overlay.js +2 -11
  105. package/development/paginator/paginator.d.ts +1 -1
  106. package/development/paginator/paginator.d.ts.map +1 -1
  107. package/development/paginator.js +37 -22
  108. package/development/popover/popover-trigger.js +3 -10
  109. package/development/popover/popover.js +2 -9
  110. package/development/radio-button/common.js +2 -9
  111. package/development/radio-button/radio-button-group.js +4 -11
  112. package/development/radio-button/radio-button.js +2 -9
  113. package/development/screen-reader-only.js +2 -9
  114. package/development/select/select.d.ts +12 -5
  115. package/development/select/select.d.ts.map +1 -1
  116. package/development/select.js +51 -33
  117. package/development/selection-expansion-panel.js +2 -9
  118. package/development/signet.js +2 -9
  119. package/development/skiplink-list.js +2 -9
  120. package/development/slider/slider.d.ts +2 -1
  121. package/development/slider/slider.d.ts.map +1 -1
  122. package/development/slider.js +4 -8
  123. package/development/status.js +2 -9
  124. package/development/stepper/step-label.js +2 -9
  125. package/development/stepper/step.js +2 -9
  126. package/development/stepper/stepper.js +2 -9
  127. package/development/table/table-wrapper.js +2 -11
  128. package/development/tabs/tab-group.js +2 -9
  129. package/development/tabs/tab-label.js +2 -9
  130. package/development/tabs/tab.js +1 -8
  131. package/development/tag/tag-group.js +2 -9
  132. package/development/tag/tag.js +2 -9
  133. package/development/teaser-hero.js +2 -9
  134. package/development/teaser-product/common.js +2 -9
  135. package/development/teaser-product/teaser-product.js +2 -9
  136. package/development/teaser.js +12 -11
  137. package/development/time-input.js +2 -9
  138. package/development/timetable-occupancy-icon.js +2 -9
  139. package/development/timetable-occupancy.js +2 -9
  140. package/development/title.js +3 -17
  141. package/development/toast.js +2 -9
  142. package/development/toggle/toggle-option.js +2 -9
  143. package/development/toggle/toggle.js +2 -9
  144. package/development/toggle-check.js +1 -8
  145. package/development/train/train-blocked-passage.js +2 -9
  146. package/development/train/train-formation.js +2 -11
  147. package/development/train/train-wagon.js +2 -9
  148. package/development/train/train.js +2 -9
  149. package/development/visual-checkbox.js +2 -9
  150. package/file-selector/file-selector.d.ts +18 -8
  151. package/file-selector/file-selector.d.ts.map +1 -1
  152. package/file-selector.js +91 -67
  153. package/form-field/form-field-clear.js +1 -1
  154. package/header/common.js +11 -11
  155. package/image/image.d.ts +1 -0
  156. package/image/image.d.ts.map +1 -1
  157. package/image.js +7 -7
  158. package/lists.css +1 -8
  159. package/loading-indicator.js +5 -5
  160. package/normalize.css +21 -113
  161. package/package.json +3 -3
  162. package/paginator/paginator.d.ts +1 -1
  163. package/paginator/paginator.d.ts.map +1 -1
  164. package/paginator.js +57 -55
  165. package/popover/popover-trigger.js +1 -1
  166. package/radio-button/radio-button-group.js +2 -1
  167. package/select/select.d.ts +12 -5
  168. package/select/select.d.ts.map +1 -1
  169. package/select.js +111 -83
  170. package/slider/slider.d.ts +2 -1
  171. package/slider/slider.d.ts.map +1 -1
  172. package/slider.js +3 -0
  173. package/standard-theme.css +25 -131
  174. package/teaser.js +16 -16
  175. package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +0 -2
  176. package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +0 -1
  177. package/button/mini-button-group/index.d.ts +0 -2
  178. package/button/mini-button-group/index.d.ts.map +0 -1
  179. package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +0 -2
  180. package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +0 -1
  181. package/development/button/mini-button-group/index.d.ts +0 -2
  182. package/development/button/mini-button-group/index.d.ts.map +0 -1
  183. package/development/flip-card/flip-card/index.d.ts +0 -2
  184. package/development/flip-card/flip-card/index.d.ts.map +0 -1
  185. package/development/flip-card/flip-card-details/index.d.ts +0 -2
  186. package/development/flip-card/flip-card-details/index.d.ts.map +0 -1
  187. package/development/flip-card/flip-card-summary/index.d.ts +0 -2
  188. package/development/flip-card/flip-card-summary/index.d.ts.map +0 -1
  189. package/development/link-list/link-list-anchor/index.d.ts +0 -2
  190. package/development/link-list/link-list-anchor/index.d.ts.map +0 -1
  191. package/development/paginator/index.d.ts +0 -2
  192. package/development/paginator/index.d.ts.map +0 -1
  193. package/development/radio-button/radio-button-panel/index.d.ts +0 -2
  194. package/development/radio-button/radio-button-panel/index.d.ts.map +0 -1
  195. package/development/tabs/tab/index.d.ts +0 -2
  196. package/development/tabs/tab/index.d.ts.map +0 -1
  197. package/flip-card/flip-card/index.d.ts +0 -2
  198. package/flip-card/flip-card/index.d.ts.map +0 -1
  199. package/flip-card/flip-card-details/index.d.ts +0 -2
  200. package/flip-card/flip-card-details/index.d.ts.map +0 -1
  201. package/flip-card/flip-card-summary/index.d.ts +0 -2
  202. package/flip-card/flip-card-summary/index.d.ts.map +0 -1
  203. package/link-list/link-list-anchor/index.d.ts +0 -2
  204. package/link-list/link-list-anchor/index.d.ts.map +0 -1
  205. package/paginator/index.d.ts +0 -2
  206. package/paginator/index.d.ts.map +0 -1
  207. package/radio-button/radio-button-panel/index.d.ts +0 -2
  208. package/radio-button/radio-button-panel/index.d.ts.map +0 -1
  209. package/tabs/tab/index.d.ts +0 -2
  210. package/tabs/tab/index.d.ts.map +0 -1
@@ -4,14 +4,7 @@ import { html, unsafeStatic } from "lit/static-html.js";
4
4
  import { SbbConnectedAbortController } from "../core/controllers.js";
5
5
  import { EventEmitter } from "../core/eventing.js";
6
6
  import { SbbHydrationMixin } from "../core/mixins.js";
7
- const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
8
- /*
9
- * SBB table mixin
10
- * Notes:
11
- * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
12
- * Therefore, we have to build the grid avoiding double borders.
13
- */
14
- *,
7
+ const style = css`*,
15
8
  ::before,
16
9
  ::after {
17
10
  box-sizing: border-box;
@@ -385,4 +378,4 @@ SbbExpansionPanelElement = __decorateClass([
385
378
  export {
386
379
  SbbExpansionPanelElement
387
380
  };
388
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uLy4uL3RpdGxlLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxDb250ZW50RWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1jb250ZW50LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBleHBhbmRhYmxlIHN1bW1hcnktZGV0YWlscyB3aWRnZXQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGFuZCBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRgIGVsZW1lbnQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIGNsb3NlZC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1leHBhbnNpb24tcGFuZWwnKVxuZXhwb3J0IGNsYXNzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBIZWFkaW5nIGxldmVsOyBpZiB1bnNldCwgYSBgZGl2YCB3aWxsIGJlIHJlbmRlcmVkLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1sZXZlbCcgfSkgcHVibGljIHRpdGxlTGV2ZWw/OiBTYmJUaXRsZUxldmVsIHwgbnVsbDtcblxuICAvKiogVGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHBhbmVsLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwYW5lbCBpcyBleHBhbmRlZC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IGV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZXhwYW5kZWQgPSB2YWx1ZTtcbiAgICB0aGlzLl9vbkV4cGFuZGVkQ2hhbmdlKCk7XG4gIH1cbiAgcHVibGljIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7XG4gIH1cbiAgcHJpdmF0ZSBfZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgcGFuZWwgaXMgZGlzYWJsZWQsIHNvIGl0cyBleHBhbmRlZCBzdGF0ZSBjYW4ndCBiZSBjaGFuZ2VkLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuX3VwZGF0ZURpc2FibGVkT25IZWFkZXIodGhpcy5fZGlzYWJsZWQpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHBhbmVsIGhhcyBubyBib3JkZXIuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGJvcmRlcmxlc3MgPSBmYWxzZTtcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbCBvciBzLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBzaXplOiAncycgfCAnbCcgPSAnbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgc3RhdGUpO1xuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJpdmF0ZSBfd2lsbE9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIG9wZW5lZC4gKi9cbiAgcHJpdmF0ZSBfZGlkT3BlbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC5ldmVudHMuZGlkT3BlbixcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJpdmF0ZSBfd2lsbENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaXMgY2xvc2VkLiAqL1xuICBwcml2YXRlIF9kaWRDbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgcHJpdmF0ZSBfcHJvZ3Jlc3NpdmVJZCA9IGAtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9oZWFkZXJSZWY/OiBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQ7XG4gIHByaXZhdGUgX2NvbnRlbnRSZWY/OiBTYmJFeHBhbnNpb25QYW5lbENvbnRlbnRFbGVtZW50O1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigndG9nZ2xlRXhwYW5kZWQnLCAoKSA9PiB0aGlzLl90b2dnbGVFeHBhbmRlZCgpLCB7IHNpZ25hbCB9KTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24nLCAhIXRoaXMuY2xvc2VzdD8uKCdzYmItYWNjb3JkaW9uJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX2hlYWRlclJlZj8uc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCBTdHJpbmcodGhpcy5zaXplKSk7XG4gICAgICB0aGlzLl9jb250ZW50UmVmPy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2l6ZScsIFN0cmluZyh0aGlzLnNpemUpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3RvZ2dsZUV4cGFuZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgfVxuXG4gIHByaXZhdGUgX29uRXhwYW5kZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5faGVhZGVyUmVmPy5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBTdHJpbmcodGhpcy5leHBhbmRlZCkpO1xuICAgIHRoaXMuX2NvbnRlbnRSZWY/LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCBTdHJpbmcoIXRoaXMuZXhwYW5kZWQpKTtcblxuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICB0aGlzLl9vcGVuKCF0aGlzLl9pbml0aWFsaXplZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5lZCcpIHtcbiAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3Blbihza2lwQW5pbWF0aW9uID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl93aWxsT3Blbi5lbWl0KCk7XG5cbiAgICBpZiAoc2tpcEFuaW1hdGlvbikge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuX3dpbGxDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVEaXNhYmxlZE9uSGVhZGVyKG5ld0Rpc2FibGVkVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faGVhZGVyUmVmKSB7XG4gICAgICB0aGlzLl9oZWFkZXJSZWYuZGlzYWJsZWQgPSBuZXdEaXNhYmxlZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4gPz8gW10pO1xuICAgIGNvbnN0IGhlYWRlciA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAoZSk6IGUgaXMgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50ID0+IGUubG9jYWxOYW1lID09PSAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInLFxuICAgICk7XG4gICAgY29uc3QgY29udGVudCA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAoZSk6IGUgaXMgU2JiRXhwYW5zaW9uUGFuZWxDb250ZW50RWxlbWVudCA9PiBlLmxvY2FsTmFtZSA9PT0gJ3NiYi1leHBhbnNpb24tcGFuZWwtY29udGVudCcsXG4gICAgKTtcbiAgICBpZiAodGhpcy5faGVhZGVyUmVmID09PSBoZWFkZXIgJiYgdGhpcy5fY29udGVudFJlZiA9PT0gY29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaGVhZGVyICYmIHRoaXMuX2hlYWRlclJlZiAhPT0gaGVhZGVyKSB7XG4gICAgICBoZWFkZXIuaWQgfHw9IGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlciR7dGhpcy5fcHJvZ3Jlc3NpdmVJZH1gO1xuICAgICAgaGVhZGVyLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIFN0cmluZyh0aGlzLmV4cGFuZGVkKSk7XG4gICAgICBoZWFkZXIudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgICAgaGVhZGVyLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgU3RyaW5nKHRoaXMuc2l6ZSkpO1xuICAgIH1cbiAgICBpZiAoY29udGVudCAmJiB0aGlzLl9jb250ZW50UmVmICE9PSBjb250ZW50KSB7XG4gICAgICBjb250ZW50LmlkIHx8PSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50JHt0aGlzLl9wcm9ncmVzc2l2ZUlkfWA7XG4gICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCBTdHJpbmcoIXRoaXMuZXhwYW5kZWQpKTtcbiAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCBTdHJpbmcodGhpcy5zaXplKSk7XG4gICAgfVxuXG4gICAgdGhpcy5faGVhZGVyUmVmID0gaGVhZGVyO1xuICAgIHRoaXMuX2NvbnRlbnRSZWYgPSBjb250ZW50O1xuICAgIGlmICh0aGlzLl9oZWFkZXJSZWYgJiYgdGhpcy5fY29udGVudFJlZikge1xuICAgICAgdGhpcy5faGVhZGVyUmVmLnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIHRoaXMuX2NvbnRlbnRSZWYuaWQpO1xuICAgICAgdGhpcy5fY29udGVudFJlZi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScsIHRoaXMuX2hlYWRlclJlZi5pZCk7XG4gICAgICB0aGlzLl9jb250ZW50UmVmLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICAgJ2RhdGEtaWNvbi1zcGFjZScsXG4gICAgICAgIHRoaXMuX2hlYWRlclJlZi5oYXNBdHRyaWJ1dGUoJ2RhdGEtaWNvbicpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fZGlkQ2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IFRBR05BTUUgPSB0aGlzLnRpdGxlTGV2ZWwgPyBgaCR7dGhpcy50aXRsZUxldmVsfWAgOiAnZGl2JztcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWxcIj5cbiAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR05BTUUpfSBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWxfX2hlYWRlclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJoZWFkZXJcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LXdyYXBwZXJcIiBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsJzogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
381
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uLy4uL3RpdGxlLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxDb250ZW50RWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1jb250ZW50LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBleHBhbmRhYmxlIHN1bW1hcnktZGV0YWlscyB3aWRnZXQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGFuZCBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRgIGVsZW1lbnQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIGNsb3NlZC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1leHBhbnNpb24tcGFuZWwnKVxuZXhwb3J0IGNsYXNzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBIZWFkaW5nIGxldmVsOyBpZiB1bnNldCwgYSBgZGl2YCB3aWxsIGJlIHJlbmRlcmVkLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1sZXZlbCcgfSkgcHVibGljIHRpdGxlTGV2ZWw/OiBTYmJUaXRsZUxldmVsIHwgbnVsbDtcblxuICAvKiogVGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHBhbmVsLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwYW5lbCBpcyBleHBhbmRlZC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IGV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZXhwYW5kZWQgPSB2YWx1ZTtcbiAgICB0aGlzLl9vbkV4cGFuZGVkQ2hhbmdlKCk7XG4gIH1cbiAgcHVibGljIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7XG4gIH1cbiAgcHJpdmF0ZSBfZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgcGFuZWwgaXMgZGlzYWJsZWQsIHNvIGl0cyBleHBhbmRlZCBzdGF0ZSBjYW4ndCBiZSBjaGFuZ2VkLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuX3VwZGF0ZURpc2FibGVkT25IZWFkZXIodGhpcy5fZGlzYWJsZWQpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHBhbmVsIGhhcyBubyBib3JkZXIuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGJvcmRlcmxlc3MgPSBmYWxzZTtcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbCBvciBzLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBzaXplOiAncycgfCAnbCcgPSAnbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgc3RhdGUpO1xuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJpdmF0ZSBfd2lsbE9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIG9wZW5lZC4gKi9cbiAgcHJpdmF0ZSBfZGlkT3BlbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC5ldmVudHMuZGlkT3BlbixcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJpdmF0ZSBfd2lsbENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaXMgY2xvc2VkLiAqL1xuICBwcml2YXRlIF9kaWRDbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICk7XG5cbiAgcHJpdmF0ZSBfcHJvZ3Jlc3NpdmVJZCA9IGAtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9oZWFkZXJSZWY/OiBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQ7XG4gIHByaXZhdGUgX2NvbnRlbnRSZWY/OiBTYmJFeHBhbnNpb25QYW5lbENvbnRlbnRFbGVtZW50O1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigndG9nZ2xlRXhwYW5kZWQnLCAoKSA9PiB0aGlzLl90b2dnbGVFeHBhbmRlZCgpLCB7IHNpZ25hbCB9KTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24nLCAhIXRoaXMuY2xvc2VzdD8uKCdzYmItYWNjb3JkaW9uJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX2hlYWRlclJlZj8uc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCBTdHJpbmcodGhpcy5zaXplKSk7XG4gICAgICB0aGlzLl9jb250ZW50UmVmPy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2l6ZScsIFN0cmluZyh0aGlzLnNpemUpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3RvZ2dsZUV4cGFuZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgfVxuXG4gIHByaXZhdGUgX29uRXhwYW5kZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5faGVhZGVyUmVmPy5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBTdHJpbmcodGhpcy5leHBhbmRlZCkpO1xuICAgIHRoaXMuX2NvbnRlbnRSZWY/LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCBTdHJpbmcoIXRoaXMuZXhwYW5kZWQpKTtcblxuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICB0aGlzLl9vcGVuKCF0aGlzLl9pbml0aWFsaXplZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5lZCcpIHtcbiAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3Blbihza2lwQW5pbWF0aW9uID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl93aWxsT3Blbi5lbWl0KCk7XG5cbiAgICBpZiAoc2tpcEFuaW1hdGlvbikge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuX3dpbGxDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVEaXNhYmxlZE9uSGVhZGVyKG5ld0Rpc2FibGVkVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faGVhZGVyUmVmKSB7XG4gICAgICB0aGlzLl9oZWFkZXJSZWYuZGlzYWJsZWQgPSBuZXdEaXNhYmxlZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4gPz8gW10pO1xuICAgIGNvbnN0IGhlYWRlciA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAoZSk6IGUgaXMgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50ID0+IGUubG9jYWxOYW1lID09PSAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInLFxuICAgICk7XG4gICAgY29uc3QgY29udGVudCA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAoZSk6IGUgaXMgU2JiRXhwYW5zaW9uUGFuZWxDb250ZW50RWxlbWVudCA9PiBlLmxvY2FsTmFtZSA9PT0gJ3NiYi1leHBhbnNpb24tcGFuZWwtY29udGVudCcsXG4gICAgKTtcbiAgICBpZiAodGhpcy5faGVhZGVyUmVmID09PSBoZWFkZXIgJiYgdGhpcy5fY29udGVudFJlZiA9PT0gY29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaGVhZGVyICYmIHRoaXMuX2hlYWRlclJlZiAhPT0gaGVhZGVyKSB7XG4gICAgICBoZWFkZXIuaWQgfHw9IGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlciR7dGhpcy5fcHJvZ3Jlc3NpdmVJZH1gO1xuICAgICAgaGVhZGVyLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIFN0cmluZyh0aGlzLmV4cGFuZGVkKSk7XG4gICAgICBoZWFkZXIudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgICAgaGVhZGVyLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgU3RyaW5nKHRoaXMuc2l6ZSkpO1xuICAgIH1cbiAgICBpZiAoY29udGVudCAmJiB0aGlzLl9jb250ZW50UmVmICE9PSBjb250ZW50KSB7XG4gICAgICBjb250ZW50LmlkIHx8PSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1jb250ZW50JHt0aGlzLl9wcm9ncmVzc2l2ZUlkfWA7XG4gICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCBTdHJpbmcoIXRoaXMuZXhwYW5kZWQpKTtcbiAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdkYXRhLXNpemUnLCBTdHJpbmcodGhpcy5zaXplKSk7XG4gICAgfVxuXG4gICAgdGhpcy5faGVhZGVyUmVmID0gaGVhZGVyO1xuICAgIHRoaXMuX2NvbnRlbnRSZWYgPSBjb250ZW50O1xuICAgIGlmICh0aGlzLl9oZWFkZXJSZWYgJiYgdGhpcy5fY29udGVudFJlZikge1xuICAgICAgdGhpcy5faGVhZGVyUmVmLnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIHRoaXMuX2NvbnRlbnRSZWYuaWQpO1xuICAgICAgdGhpcy5fY29udGVudFJlZi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScsIHRoaXMuX2hlYWRlclJlZi5pZCk7XG4gICAgICB0aGlzLl9jb250ZW50UmVmLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICAgJ2RhdGEtaWNvbi1zcGFjZScsXG4gICAgICAgIHRoaXMuX2hlYWRlclJlZi5oYXNBdHRyaWJ1dGUoJ2RhdGEtaWNvbicpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fZGlkQ2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IFRBR05BTUUgPSB0aGlzLnRpdGxlTGV2ZWwgPyBgaCR7dGhpcy50aXRsZUxldmVsfWAgOiAnZGl2JztcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWxcIj5cbiAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR05BTUUpfSBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWxfX2hlYWRlclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJoZWFkZXJcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdOQU1FKX0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LXdyYXBwZXJcIiBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsJzogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBSSxTQUFTO0FBWU4sSUFBTSwyQkFBTixjQUF1QyxrQkFBa0IsVUFBVSxFQUFFO0FBQUEsRUFBckUsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBYU8sU0FBTyxRQUEwQjtBQVc3QyxTQUFRLFlBQXFCO0FBVzdCLFNBQVEsWUFBcUI7QUFHZSxTQUFPLGFBQWE7QUFHbkMsU0FBTyxPQUFrQjtBQWF0RCxTQUFRLFlBQWdDLElBQUk7QUFBQSxNQUMxQztBQUFBLE1BQ0EseUJBQXlCLE9BQU87QUFBQSxJQUFBO0FBSWxDLFNBQVEsV0FBK0IsSUFBSTtBQUFBLE1BQ3pDO0FBQUEsTUFDQSx5QkFBeUIsT0FBTztBQUFBLElBQUE7QUFJbEMsU0FBUSxhQUFpQyxJQUFJO0FBQUEsTUFDM0M7QUFBQSxNQUNBLHlCQUF5QixPQUFPO0FBQUEsSUFBQTtBQUlsQyxTQUFRLFlBQWdDLElBQUk7QUFBQSxNQUMxQztBQUFBLE1BQ0EseUJBQXlCLE9BQU87QUFBQSxJQUFBO0FBRzFCLFNBQUEsaUJBQWlCLElBQUksRUFBRSxNQUFNO0FBRzdCLFNBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBQ3JELFNBQVEsZUFBd0I7QUFBQSxFQUFBO0FBQUEsRUFoRWhDLElBQVcsU0FBUyxPQUFnQjtBQUNsQyxTQUFLLFlBQVk7QUFDakIsU0FBSyxrQkFBa0I7QUFBQSxFQUN6QjtBQUFBLEVBQ0EsSUFBVyxXQUFvQjtBQUM3QixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFLQSxJQUFXLFNBQVMsT0FBZ0I7QUFDbEMsU0FBSyxZQUFZO0FBQ1osU0FBQSx3QkFBd0IsS0FBSyxTQUFTO0FBQUEsRUFDN0M7QUFBQSxFQUNBLElBQVcsV0FBb0I7QUFDN0IsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBWUEsSUFBWSxPQUFPLE9BQTZCO0FBQ3pDLFNBQUEsYUFBYSxjQUFjLEtBQUs7QUFBQSxFQUN2QztBQUFBLEVBQ0EsSUFBWSxTQUErQjtBQUNsQyxXQUFBLEtBQUssYUFBYSxZQUFZO0FBQUEsRUFDdkM7QUFBQSxFQWdDZ0Isb0JBQTBCOztBQUN4QyxVQUFNLGtCQUFrQjtBQUNsQixVQUFBLFNBQVMsS0FBSyxPQUFPO0FBQ3RCLFNBQUEsaUJBQWlCLGtCQUFrQixNQUFNLEtBQUssbUJBQW1CLEVBQUUsUUFBUTtBQUNoRixTQUFLLGdCQUFnQixrQkFBa0IsQ0FBQyxHQUFDLFVBQUssWUFBTCw4QkFBZSxpQkFBZ0I7QUFBQSxFQUMxRTtBQUFBLEVBRW1CLFdBQVcsbUJBQStDOztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksTUFBTSxHQUFHO0FBQ2pDLGlCQUFLLGVBQUwsbUJBQWlCLGFBQWEsYUFBYSxPQUFPLEtBQUssSUFBSTtBQUMzRCxpQkFBSyxnQkFBTCxtQkFBa0IsYUFBYSxhQUFhLE9BQU8sS0FBSyxJQUFJO0FBQUEsSUFDOUQ7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsdUJBQTZCO0FBQzNDLFVBQU0scUJBQXFCO0FBQzNCLFNBQUssZ0JBQWdCLGdCQUFnQjtBQUFBLEVBQ3ZDO0FBQUEsRUFFbUIsYUFBYSxtQkFBK0M7QUFDN0UsVUFBTSxhQUFhLGlCQUFpQjtBQUVwQyxTQUFLLGVBQWU7QUFBQSxFQUN0QjtBQUFBLEVBRVEsa0JBQXdCO0FBQ3pCLFNBQUEsV0FBVyxDQUFDLEtBQUs7QUFBQSxFQUN4QjtBQUFBLEVBRVEsb0JBQTBCOztBQUNoQyxlQUFLLGVBQUwsbUJBQWlCLGFBQWEsaUJBQWlCLE9BQU8sS0FBSyxRQUFRO0FBQ25FLGVBQUssZ0JBQUwsbUJBQWtCLGFBQWEsZUFBZSxPQUFPLENBQUMsS0FBSyxRQUFRO0FBRW5FLFFBQUksS0FBSyxVQUFVO0FBQ1osV0FBQSxNQUFNLENBQUMsS0FBSyxZQUFZO0FBQUEsSUFBQSxXQUNwQixLQUFLLFdBQVcsVUFBVTtBQUNuQyxXQUFLLE9BQU87QUFBQSxJQUNkO0FBQUEsRUFDRjtBQUFBLEVBRVEsTUFBTSxnQkFBZ0IsT0FBYTtBQUN6QyxTQUFLLFNBQVM7QUFDZCxTQUFLLFVBQVU7QUFFZixRQUFJLGVBQWU7QUFDakIsV0FBSyxTQUFTO0FBQ2QsV0FBSyxTQUFTO0lBQ2hCO0FBQUEsRUFDRjtBQUFBLEVBRVEsU0FBZTtBQUNyQixTQUFLLFNBQVM7QUFDZCxTQUFLLFdBQVc7RUFDbEI7QUFBQSxFQUVRLHdCQUF3QixrQkFBaUM7QUFDL0QsUUFBSSxLQUFLLFlBQVk7QUFDbkIsV0FBSyxXQUFXLFdBQVc7QUFBQSxJQUM3QjtBQUFBLEVBQ0Y7QUFBQSxFQUVRLG9CQUEwQjtBQUNoQyxVQUFNLFdBQVcsTUFBTSxLQUFLLEtBQUssWUFBWSxDQUFBLENBQUU7QUFDL0MsVUFBTSxTQUFTLFNBQVM7QUFBQSxNQUN0QixDQUFDLE1BQTJDLEVBQUUsY0FBYztBQUFBLElBQUE7QUFFOUQsVUFBTSxVQUFVLFNBQVM7QUFBQSxNQUN2QixDQUFDLE1BQTRDLEVBQUUsY0FBYztBQUFBLElBQUE7QUFFL0QsUUFBSSxLQUFLLGVBQWUsVUFBVSxLQUFLLGdCQUFnQixTQUFTO0FBQzlEO0FBQUEsSUFDRjtBQUNJLFFBQUEsVUFBVSxLQUFLLGVBQWUsUUFBUTtBQUNqQyxhQUFBLE9BQUEsT0FBQSxLQUFPLDZCQUE2QixLQUFLLGNBQWM7QUFDOUQsYUFBTyxhQUFhLGlCQUFpQixPQUFPLEtBQUssUUFBUSxDQUFDO0FBQ25ELGFBQUEsZ0JBQWdCLFlBQVksS0FBSyxRQUFRO0FBQ2hELGFBQU8sYUFBYSxhQUFhLE9BQU8sS0FBSyxJQUFJLENBQUM7QUFBQSxJQUNwRDtBQUNJLFFBQUEsV0FBVyxLQUFLLGdCQUFnQixTQUFTO0FBQ25DLGNBQUEsT0FBQSxRQUFBLEtBQU8sOEJBQThCLEtBQUssY0FBYztBQUNoRSxjQUFRLGFBQWEsZUFBZSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7QUFDMUQsY0FBUSxhQUFhLGFBQWEsT0FBTyxLQUFLLElBQUksQ0FBQztBQUFBLElBQ3JEO0FBRUEsU0FBSyxhQUFhO0FBQ2xCLFNBQUssY0FBYztBQUNmLFFBQUEsS0FBSyxjQUFjLEtBQUssYUFBYTtBQUN2QyxXQUFLLFdBQVcsYUFBYSxpQkFBaUIsS0FBSyxZQUFZLEVBQUU7QUFDakUsV0FBSyxZQUFZLGFBQWEsbUJBQW1CLEtBQUssV0FBVyxFQUFFO0FBQ25FLFdBQUssWUFBWTtBQUFBLFFBQ2Y7QUFBQSxRQUNBLEtBQUssV0FBVyxhQUFhLFdBQVc7QUFBQSxNQUFBO0FBQUEsSUFFNUM7QUFBQSxFQUNGO0FBQUEsRUFFUSxnQkFBZ0IsT0FBNkI7QUFDbkQsUUFBSSxNQUFNLGtCQUFrQixrQkFBa0IsS0FBSyxXQUFXLFdBQVc7QUFDdkUsV0FBSyxTQUFTO0FBQ2QsV0FBSyxTQUFTO0lBQUssV0FDVixNQUFNLGtCQUFrQixXQUFXLEtBQUssV0FBVyxXQUFXO0FBQ3ZFLFdBQUssU0FBUztBQUNkLFdBQUssVUFBVTtJQUNqQjtBQUFBLEVBQ0Y7QUFBQSxFQUVtQixTQUF5QjtBQUMxQyxVQUFNLFVBQVUsS0FBSyxhQUFhLElBQUksS0FBSyxVQUFVLEtBQUs7QUFHbkQsV0FBQTtBQUFBO0FBQUEsV0FFQSxhQUFhLE9BQU8sQ0FBQztBQUFBLDRDQUNZLEtBQUssaUJBQWlCO0FBQUEsWUFDdEQsYUFBYSxPQUFPLENBQUM7QUFBQSwwRUFDeUMsS0FBSyxlQUFlO0FBQUE7QUFBQSwrQ0FFL0MsS0FBSyxpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTW5FO0FBQ0Y7QUFqTmEseUJBQ1ksU0FBeUI7QUFEckMseUJBRVksU0FBUztBQUFBLEVBQzlCLFVBQVU7QUFBQSxFQUNWLFNBQVM7QUFBQSxFQUNULFdBQVc7QUFBQSxFQUNYLFVBQVU7QUFDWjtBQUcrQyxnQkFBQTtBQUFBLEVBQTlDLFNBQVMsRUFBRSxXQUFXLGVBQWU7QUFBQSxHQVYzQix5QkFVb0MsV0FBQSxjQUFBLENBQUE7QUFHNUIsZ0JBQUE7QUFBQSxFQUFsQixTQUFTO0FBQUEsR0FiQyx5QkFhUSxXQUFBLFNBQUEsQ0FBQTtBQUlSLGdCQUFBO0FBQUEsRUFEVixTQUFTLEVBQUUsU0FBUyxNQUFNLE1BQU0sU0FBUztBQUFBLEdBaEIvQix5QkFpQkEsV0FBQSxZQUFBLENBQUE7QUFXQSxnQkFBQTtBQUFBLEVBRFYsU0FBUyxFQUFFLFNBQVMsTUFBTSxNQUFNLFNBQVM7QUFBQSxHQTNCL0IseUJBNEJBLFdBQUEsWUFBQSxDQUFBO0FBVXdDLGdCQUFBO0FBQUEsRUFBbEQsU0FBUyxFQUFFLFNBQVMsTUFBTSxNQUFNLFNBQVM7QUFBQSxHQXRDL0IseUJBc0N3QyxXQUFBLGNBQUEsQ0FBQTtBQUdmLGdCQUFBO0FBQUEsRUFBbkMsU0FBUyxFQUFFLFNBQVMsTUFBTTtBQUFBLEdBekNoQix5QkF5Q3lCLFdBQUEsUUFBQSxDQUFBO0FBekN6QiwyQkFBTixnQkFBQTtBQUFBLEVBRE4sY0FBYyxxQkFBcUI7QUFBQSxHQUN2Qix3QkFBQTsifQ==
@@ -1,11 +1,14 @@
1
- import { CSSResultGroup, TemplateResult, LitElement } from 'lit';
1
+ import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
+ import { FormRestoreReason, FormRestoreState } from '../core/mixins.js';
2
3
  export type DOMEvent = globalThis.Event;
3
- declare const SbbFileSelectorElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbDisabledMixinType> & typeof LitElement;
4
+ declare const SbbFileSelectorElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbDisabledMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbFormAssociatedMixinType<string>> & typeof LitElement;
4
5
  /**
5
6
  * It allows to select one or more file from storage devices and display them.
6
7
  *
7
8
  * @slot error - Use this to provide a `sbb-form-error` to show an error message.
8
9
  * @event {CustomEvent<File[]>} fileChanged - An event which is emitted each time the file list changes.
10
+ * @event change - An event which is emitted each time the user modifies the value. Unlike the input event, the change event is not necessarily fired for each alteration to an element's value
11
+ * @event input - An event which is emitted each time the value changes as a direct result of a user action.
9
12
  */
10
13
  export declare class SbbFileSelectorElement extends SbbFileSelectorElement_base {
11
14
  static styles: CSSResultGroup;
@@ -26,14 +29,17 @@ export declare class SbbFileSelectorElement extends SbbFileSelectorElement_base
26
29
  titleContent?: string;
27
30
  /** This will be forwarded as aria-label to the native input element. */
28
31
  accessibilityLabel: string | undefined;
29
- /** The list of selected files. */
30
- private _files?;
31
- /** An event which is emitted each time the file list changes. */
32
- private _fileChangedEvent;
32
+ /** The path of the first selected file. Empty string ('') if no file is selected */
33
+ set value(value: string | null);
34
+ get value(): string | null;
33
35
  /**
34
- * Gets the currently selected files.
36
+ * The list of selected files.
35
37
  */
38
+ set files(value: File[]);
36
39
  get files(): File[];
40
+ private _files;
41
+ /** An event which is emitted each time the file list changes. */
42
+ private _fileChangedEvent;
37
43
  private _counter;
38
44
  private _loadButton;
39
45
  private _dragTarget?;
@@ -42,9 +48,12 @@ export declare class SbbFileSelectorElement extends SbbFileSelectorElement_base
42
48
  private _liveRegion;
43
49
  private _language;
44
50
  /**
45
- * @deprecated use 'files' property instead
51
+ * @deprecated use the 'files' property instead
46
52
  */
47
53
  getFiles(): File[];
54
+ formResetCallback(): void;
55
+ formStateRestoreCallback(state: FormRestoreState | null, _reason?: FormRestoreReason): void;
56
+ protected updateFormValue(): void;
48
57
  private _blockEvent;
49
58
  private _checkFileEquality;
50
59
  private _onDragEnter;
@@ -58,6 +67,7 @@ export declare class SbbFileSelectorElement extends SbbFileSelectorElement_base
58
67
  private _removeFile;
59
68
  /** Calculates the correct unit for the file's size. */
60
69
  private _formatFileSize;
70
+ private _updateA11yLiveRegion;
61
71
  private _renderDefaultMode;
62
72
  private _renderDropzoneArea;
63
73
  private _renderFileList;
@@ -1 +1 @@
1
- {"version":3,"file":"file-selector.d.ts","sourceRoot":"","sources":["../../../../src/elements/file-selector/file-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAoB1C,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;;AAExC;;;;;GAKG;AACH,qBAEa,sBAAuB,SAAQ,2BAA4B;IACtE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,wDAAwD;IACrC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAa;IAE/D,mCAAmC;IACC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAO;IAE1D,kDAAkD;IACd,QAAQ,EAAE,OAAO,CAAS;IAE9D,+EAA+E;IAExE,YAAY,EAAE,SAAS,GAAG,YAAY,CAAa;IAE1D,qEAAqE;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEnC,iDAAiD;IACA,YAAY,CAAC,EAAE,MAAM,CAAC;IAEvE,wEAAwE;IACjB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,kCAAkC;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;IAEjC,iEAAiE;IACjE,OAAO,CAAC,iBAAiB,CAGvB;IAEF;;OAEG;IACH,IAAW,KAAK,IAAI,IAAI,EAAE,CAEzB;IAID,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACI,QAAQ,IAAI,IAAI,EAAE;IAIzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,WAAW;IAYnB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;cA4BJ,MAAM,IAAI,cAAc;CA2C5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
1
+ {"version":3,"file":"file-selector.d.ts","sourceRoot":"","sources":["../../../../src/elements/file-selector/file-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAgBpF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;;AAExC;;;;;;;GAOG;AACH,qBAEa,sBAAuB,SAAQ,2BAAoD;IAC9F,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,wDAAwD;IACrC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAa;IAE/D,mCAAmC;IACC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAO;IAE1D,kDAAkD;IACd,QAAQ,EAAE,OAAO,CAAS;IAE9D,+EAA+E;IAExE,YAAY,EAAE,SAAS,GAAG,YAAY,CAAa;IAE1D,qEAAqE;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEnC,iDAAiD;IACA,YAAY,CAAC,EAAE,MAAM,CAAC;IAEvE,wEAAwE;IACjB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,oFAAoF;IACpF,IACoB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAM7C;IACD,IAAoB,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzC;IAED;;OAEG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAS7B;IACD,IAAW,KAAK,IAAI,IAAI,EAAE,CAEzB;IACD,OAAO,CAAC,MAAM,CAAc;IAE5B,iEAAiE;IACjE,OAAO,CAAC,iBAAiB,CAGvB;IAIF,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,SAAS,CAAmC;IAEpD;;OAEG;IACI,QAAQ,IAAI,IAAI,EAAE;IAIT,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI;cAOY,eAAe,IAAI,IAAI;IAM1C,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,WAAW;IAUnB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;cA4BJ,MAAM,IAAI,cAAc;CA2C5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
@@ -1,24 +1,17 @@
1
1
  import { css, LitElement, nothing } from "lit";
2
- import { property, state, customElement } from "lit/decorators.js";
2
+ import { property, customElement } from "lit/decorators.js";
3
3
  import { ref } from "lit/directives/ref.js";
4
4
  import { html, unsafeStatic } from "lit/static-html.js";
5
5
  import { sbbInputModalityDetector } from "./core/a11y.js";
6
6
  import { SbbLanguageController } from "./core/controllers.js";
7
7
  import { slotState } from "./core/decorators.js";
8
- import { EventEmitter } from "./core/eventing.js";
8
+ import { EventEmitter, forwardEventToHost } from "./core/eventing.js";
9
9
  import { i18nFileSelectorCurrentlySelected, i18nFileSelectorButtonLabel, i18nFileSelectorSubtitleLabel, i18nFileSelectorDeleteFile } from "./core/i18n.js";
10
- import { SbbDisabledMixin } from "./core/mixins.js";
10
+ import { SbbDisabledMixin, SbbFormAssociatedMixin } from "./core/mixins.js";
11
11
  import "./button/secondary-button.js";
12
12
  import "./button/secondary-button-static.js";
13
13
  import "./icon.js";
14
- const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
15
- /*
16
- * SBB table mixin
17
- * Notes:
18
- * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
19
- * Therefore, we have to build the grid avoiding double borders.
20
- */
21
- *,
14
+ const style = css`*,
22
15
  ::before,
23
16
  ::after {
24
17
  box-sizing: border-box;
@@ -39,7 +32,7 @@ const style = css`/** This mixin can be used to avoid spacing problems by insert
39
32
  }
40
33
 
41
34
  @media (forced-colors: active) {
42
- :host([disabled]) {
35
+ :host(:disabled) {
43
36
  --sbb-file-selector-color: GrayText;
44
37
  --sbb-file-selector-subtitle-color: GrayText;
45
38
  --sbb-file-selector-border-color: GrayText;
@@ -176,13 +169,14 @@ var __decorateClass = (decorators, target, key, kind) => {
176
169
  if (kind && result) __defProp(target, key, result);
177
170
  return result;
178
171
  };
179
- let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
172
+ let SbbFileSelectorElement = class extends SbbDisabledMixin(SbbFormAssociatedMixin(LitElement)) {
180
173
  constructor() {
181
174
  super(...arguments);
182
175
  this.variant = "default";
183
176
  this.size = "m";
184
177
  this.multiple = false;
185
178
  this.multipleMode = "default";
179
+ this._files = [];
186
180
  this._fileChangedEvent = new EventEmitter(
187
181
  this,
188
182
  SbbFileSelectorElement.events.fileChangedEvent
@@ -191,17 +185,45 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
191
185
  this._suffixes = ["B", "kB", "MB", "GB", "TB"];
192
186
  this._language = new SbbLanguageController(this);
193
187
  }
194
- /**
195
- * Gets the currently selected files.
196
- */
188
+ set value(value) {
189
+ this._hiddenInput.value = value ?? "";
190
+ if (!value) {
191
+ this.files = [];
192
+ }
193
+ }
194
+ get value() {
195
+ var _a;
196
+ return (_a = this._hiddenInput) == null ? void 0 : _a.value;
197
+ }
198
+ set files(value) {
199
+ this._files = value ?? [];
200
+ const dt = new DataTransfer();
201
+ this.files.forEach((e) => dt.items.add(e));
202
+ this._hiddenInput.files = dt.files;
203
+ this.updateFormValue();
204
+ }
197
205
  get files() {
198
- return this._files || [];
206
+ return this._files;
199
207
  }
200
208
  /**
201
- * @deprecated use 'files' property instead
209
+ * @deprecated use the 'files' property instead
202
210
  */
203
211
  getFiles() {
204
- return this._files || [];
212
+ return this.files;
213
+ }
214
+ formResetCallback() {
215
+ this.files = [];
216
+ }
217
+ formStateRestoreCallback(state, _reason) {
218
+ if (!state) {
219
+ return;
220
+ }
221
+ this.files = state.map(([_, value]) => value);
222
+ }
223
+ updateFormValue() {
224
+ const formValue = new FormData();
225
+ this.files.forEach((file) => formValue.append(this.name, file));
226
+ this.internals.setFormValue(formValue);
205
227
  }
206
228
  _blockEvent(event) {
207
229
  event.stopPropagation();
@@ -212,21 +234,21 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
212
234
  }
213
235
  _onDragEnter(event) {
214
236
  this._counter++;
215
- if (!this.disabled) {
237
+ if (!this.disabled && !this.formDisabled) {
216
238
  this._setDragState(event.target, true);
217
239
  this._blockEvent(event);
218
240
  }
219
241
  }
220
242
  _onDragLeave(event) {
221
243
  this._counter--;
222
- if (!this.disabled && event.target === this._dragTarget && this._counter === 0) {
244
+ if (!this.disabled && !this.formDisabled && event.target === this._dragTarget && this._counter === 0) {
223
245
  this._setDragState();
224
246
  this._blockEvent(event);
225
247
  }
226
248
  }
227
249
  _onFileDrop(event) {
228
250
  this._counter = 0;
229
- if (!this.disabled) {
251
+ if (!this.disabled && !this.formDisabled) {
230
252
  this._setDragState();
231
253
  this._blockEvent(event);
232
254
  this._createFileList(event.dataTransfer.files);
@@ -252,37 +274,41 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
252
274
  if (fileInput.files) {
253
275
  this._createFileList(fileInput.files);
254
276
  }
277
+ forwardEventToHost(event, this);
255
278
  }
256
279
  _createFileList(files) {
257
- if (!this.multiple || this.multipleMode !== "persistent" || !this._files || this._files.length === 0) {
258
- this._files = Array.from(files);
280
+ if (!this.multiple || this.multipleMode !== "persistent" || this.files.length === 0) {
281
+ this.files = Array.from(files);
259
282
  } else {
260
- this._files = Array.from(files).filter(
261
- (newFile) => this._files.findIndex((oldFile) => this._checkFileEquality(newFile, oldFile)) === -1
262
- ).concat(this._files);
283
+ this.files = Array.from(files).filter(
284
+ // Remove duplicates
285
+ (newFile) => this.files.findIndex((oldFile) => this._checkFileEquality(newFile, oldFile)) === -1
286
+ ).concat(this.files);
263
287
  }
264
- this._liveRegion.innerText = i18nFileSelectorCurrentlySelected(this._files.map((e) => e.name))[this._language.current];
265
- this._fileChangedEvent.emit(this._files);
288
+ this._updateA11yLiveRegion();
289
+ this._fileChangedEvent.emit(this.files);
266
290
  }
267
291
  _removeFile(file) {
268
- this._files = this._files.filter((f) => !this._checkFileEquality(file, f));
269
- const dt = new DataTransfer();
270
- this._files.forEach((e) => dt.items.add(e));
271
- this._hiddenInput.files = dt.files;
272
- this._liveRegion.innerText = i18nFileSelectorCurrentlySelected(this._files.map((e) => e.name))[this._language.current];
273
- this._fileChangedEvent.emit(this._files);
292
+ this.files = this.files.filter((f) => !this._checkFileEquality(file, f));
293
+ this._updateA11yLiveRegion();
294
+ this.dispatchEvent(new Event("input", { composed: true, bubbles: true }));
295
+ this.dispatchEvent(new Event("change", { bubbles: true }));
296
+ this._fileChangedEvent.emit(this.files);
274
297
  }
275
298
  /** Calculates the correct unit for the file's size. */
276
299
  _formatFileSize(size) {
277
300
  const i = Math.floor(Math.log(size) / Math.log(1024));
278
301
  return `${(size / Math.pow(1024, i)).toFixed(0)} ${this._suffixes[i]}`;
279
302
  }
303
+ _updateA11yLiveRegion() {
304
+ this._liveRegion.innerText = i18nFileSelectorCurrentlySelected(this.files.map((e) => e.name))[this._language.current];
305
+ }
280
306
  _renderDefaultMode() {
281
307
  return html`
282
308
  <sbb-secondary-button-static
283
309
  size=${this.size}
284
310
  icon-name="folder-open-small"
285
- ?disabled=${this.disabled}
311
+ ?disabled=${this.disabled || this.formDisabled}
286
312
  ${ref((el) => {
287
313
  this._loadButton = el;
288
314
  })}
@@ -306,7 +332,7 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
306
332
  <span class="sbb-file-selector__dropzone-area--button">
307
333
  <sbb-secondary-button-static
308
334
  size=${this.size}
309
- ?disabled=${this.disabled}
335
+ ?disabled=${this.disabled || this.formDisabled}
310
336
  ${ref((el) => {
311
337
  this._loadButton = el;
312
338
  })}
@@ -318,10 +344,10 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
318
344
  `;
319
345
  }
320
346
  _renderFileList() {
321
- const TAG_NAME = this._files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
347
+ const TAG_NAME = this.files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
322
348
  return html`
323
349
  <${unsafeStatic(TAG_NAME.WRAPPER)} class="sbb-file-selector__file-list">
324
- ${this._files.map(
350
+ ${this.files.map(
325
351
  (file) => html`
326
352
  <${unsafeStatic(TAG_NAME.ELEMENT)} class="sbb-file-selector__file">
327
353
  <span class="sbb-file-selector__file-details">
@@ -355,7 +381,7 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
355
381
  <input
356
382
  class="sbb-file-selector__visually-hidden"
357
383
  type="file"
358
- ?disabled=${this.disabled}
384
+ ?disabled=${this.disabled || this.formDisabled}
359
385
  ?multiple=${this.multiple}
360
386
  accept=${this.accept || nothing}
361
387
  aria-label=${ariaLabel || nothing}
@@ -373,7 +399,7 @@ let SbbFileSelectorElement = class extends SbbDisabledMixin(LitElement) {
373
399
  class="sbb-file-selector__visually-hidden"
374
400
  ${ref((p) => this._liveRegion = p)}
375
401
  ></p>
376
- ${this._files && this._files.length > 0 ? this._renderFileList() : nothing}
402
+ ${this.files.length > 0 ? this._renderFileList() : nothing}
377
403
  <div class="sbb-file-selector__error">
378
404
  <slot name="error"></slot>
379
405
  </div>
@@ -407,8 +433,11 @@ __decorateClass([
407
433
  property({ attribute: "accessibility-label" })
408
434
  ], SbbFileSelectorElement.prototype, "accessibilityLabel", 2);
409
435
  __decorateClass([
410
- state()
411
- ], SbbFileSelectorElement.prototype, "_files", 2);
436
+ property({ attribute: false })
437
+ ], SbbFileSelectorElement.prototype, "value", 1);
438
+ __decorateClass([
439
+ property({ attribute: false })
440
+ ], SbbFileSelectorElement.prototype, "files", 1);
412
441
  SbbFileSelectorElement = __decorateClass([
413
442
  customElement("sbb-file-selector"),
414
443
  slotState()
@@ -416,4 +445,4 @@ SbbFileSelectorElement = __decorateClass([
416
445
  export {
417
446
  SbbFileSelectorElement
418
447
  };
419
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5pbXBvcnQgeyBodG1sLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQgfSBmcm9tICcuLi9idXR0b24uanMnO1xuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsLFxuICBpMThuRmlsZVNlbGVjdG9yQ3VycmVudGx5U2VsZWN0ZWQsXG4gIGkxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlLFxuICBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbCxcbn0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2ZpbGUtc2VsZWN0b3Iuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLXN0YXRpYy5qcyc7XG5pbXBvcnQgJy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBET01FdmVudCA9IGdsb2JhbFRoaXMuRXZlbnQ7XG5cbi8qKlxuICogSXQgYWxsb3dzIHRvIHNlbGVjdCBvbmUgb3IgbW9yZSBmaWxlIGZyb20gc3RvcmFnZSBkZXZpY2VzIGFuZCBkaXNwbGF5IHRoZW0uXG4gKlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PEZpbGVbXT59IGZpbGVDaGFuZ2VkIC0gQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIGZpbGUgbGlzdCBjaGFuZ2VzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWZpbGUtc2VsZWN0b3InKVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiRmlsZVNlbGVjdG9yRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZmlsZUNoYW5nZWRFdmVudDogJ2ZpbGVDaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBhIGRyb3B6b25lIGFyZWEgb3Igbm90LiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2Ryb3B6b25lJyA9ICdkZWZhdWx0JztcblxuICAvKiogU2l6ZSB2YXJpYW50LCBlaXRoZXIgcyBvciBtLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBzaXplOiAncycgfCAnbScgPSAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBmaWxlIGNhbiBiZSBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgbmV3bHkgYWRkZWQgZmlsZXMgc2hvdWxkIG92ZXJyaWRlIHRoZSBwcmV2aW91c2x5IGFkZGVkIG9uZXMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ211bHRpcGxlLW1vZGUnIH0pXG4gIHB1YmxpYyBtdWx0aXBsZU1vZGU6ICdkZWZhdWx0JyB8ICdwZXJzaXN0ZW50JyA9ICdkZWZhdWx0JztcblxuICAvKiogQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBhbGxvd2VkIHVuaXF1ZSBmaWxlIHR5cGUgc3BlY2lmaWVycy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2VwdD86IHN0cmluZztcblxuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBpbiBgZHJvcHpvbmVgIHZhcmlhbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWNvbnRlbnQnIH0pIHB1YmxpYyB0aXRsZUNvbnRlbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgX2ZpbGVzPzogRmlsZVtdO1xuXG4gIC8qKiBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgZmlsZSBsaXN0IGNoYW5nZXMuICovXG4gIHByaXZhdGUgX2ZpbGVDaGFuZ2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkZpbGVTZWxlY3RvckVsZW1lbnQuZXZlbnRzLmZpbGVDaGFuZ2VkRXZlbnQsXG4gICk7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZXMgfHwgW107XG4gIH1cblxuICAvLyBTYWZhcmkgaGFzIGEgcGVjdWxpYXIgYmVoYXZpb3Igd2hlbiBkcmFnZ2luZyBmaWxlcyBvbiB0aGUgaW5uZXIgYnV0dG9uIGluICdkcm9wem9uZScgdmFyaWFudDtcbiAgLy8gdGhpcyB3aWxsIHJlcXVpcmUgYSBjb3VudGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIGRyYWdFbnRlci9kcmFnTGVhdmUuXG4gIHByaXZhdGUgX2NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfbG9hZEJ1dHRvbiE6IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByaXZhdGUgX2RyYWdUYXJnZXQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaGlkZGVuSW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50O1xuICBwcml2YXRlIF9zdWZmaXhlczogc3RyaW5nW10gPSBbJ0InLCAna0InLCAnTUInLCAnR0InLCAnVEInXTtcbiAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICdmaWxlcycgcHJvcGVydHkgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIGdldEZpbGVzKCk6IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVzIHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfYmxvY2tFdmVudChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUxOiBGaWxlLCBmaWxlMjogRmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmaWxlMS5uYW1lID09PSBmaWxlMi5uYW1lICYmXG4gICAgICBmaWxlMS5zaXplID09PSBmaWxlMi5zaXplICYmXG4gICAgICBmaWxlMS5sYXN0TW9kaWZpZWQgPT09IGZpbGUyLmxhc3RNb2RpZmllZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlcisrO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCwgdHJ1ZSk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlci0tO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiBldmVudC50YXJnZXQgPT09IHRoaXMuX2RyYWdUYXJnZXQgJiYgdGhpcy5fY291bnRlciA9PT0gMCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkZpbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudGVyID0gMDtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZSgpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgICB0aGlzLl9jcmVhdGVGaWxlTGlzdChldmVudC5kYXRhVHJhbnNmZXIhLmZpbGVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICB0aGlzLl9sb2FkQnV0dG9uLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25CbHVyKCk6IHZvaWQge1xuICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICB0aGlzLl9sb2FkQnV0dG9uLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RHJhZ1N0YXRlKFxuICAgIGRyYWdUYXJnZXQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIGlzRHJhZ0VudGVyOiBib29sZWFuID0gZmFsc2UsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdUYXJnZXQgPSBkcmFnVGFyZ2V0O1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgICB0aGlzLl9sb2FkQnV0dG9uLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCBpc0RyYWdFbnRlcik7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkRmlsZXMoZXZlbnQ6IERPTUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsZUlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKGZpbGVJbnB1dC5maWxlcykge1xuICAgICAgdGhpcy5fY3JlYXRlRmlsZUxpc3QoZmlsZUlucHV0LmZpbGVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVGaWxlTGlzdChmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5tdWx0aXBsZSB8fFxuICAgICAgdGhpcy5tdWx0aXBsZU1vZGUgIT09ICdwZXJzaXN0ZW50JyB8fFxuICAgICAgIXRoaXMuX2ZpbGVzIHx8XG4gICAgICB0aGlzLl9maWxlcy5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX2ZpbGVzID0gQXJyYXkuZnJvbShmaWxlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZpbGVzID0gQXJyYXkuZnJvbShmaWxlcylcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAobmV3RmlsZTogRmlsZSk6IGJvb2xlYW4gPT5cbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzIS5maW5kSW5kZXgoKG9sZEZpbGU6IEZpbGUpID0+IHRoaXMuX2NoZWNrRmlsZUVxdWFsaXR5KG5ld0ZpbGUsIG9sZEZpbGUpKSA9PT1cbiAgICAgICAgICAgIC0xLFxuICAgICAgICApXG4gICAgICAgIC5jb25jYXQodGhpcy5fZmlsZXMpO1xuICAgIH1cbiAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLl9maWxlcy5tYXAoKGUpID0+IGUubmFtZSkpW1xuICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudFxuICAgIF07XG4gICAgdGhpcy5fZmlsZUNoYW5nZWRFdmVudC5lbWl0KHRoaXMuX2ZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbGVzID0gdGhpcy5fZmlsZXMhLmZpbHRlcigoZjogRmlsZSkgPT4gIXRoaXMuX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUsIGYpKTtcbiAgICAvLyBUaGUgaXRlbSBtdXN0IGJlIHJlbW92ZWQgZnJvbSB0aGUgaGlkZGVuIGZpbGUgaW5wdXQgdG9vOyB0aGUgRmlsZUxpc3QgQVBJIGlzIGZsYXdlZCwgc28gdGhlIERhdGFUcmFuc2ZlciBvYmplY3QgaXMgdXNlZC5cbiAgICBjb25zdCBkdDogRGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuICAgIHRoaXMuX2ZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcbiAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLl9maWxlcy5tYXAoKGUpID0+IGUubmFtZSkpW1xuICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudFxuICAgIF07XG4gICAgdGhpcy5fZmlsZUNoYW5nZWRFdmVudC5lbWl0KHRoaXMuX2ZpbGVzKTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBjb3JyZWN0IHVuaXQgZm9yIHRoZSBmaWxlJ3Mgc2l6ZS4gKi9cbiAgcHJpdmF0ZSBfZm9ybWF0RmlsZVNpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgIHJldHVybiBgJHsoc2l6ZSAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDApfSAke3RoaXMuX3N1ZmZpeGVzW2ldfWA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEZWZhdWx0TW9kZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljXG4gICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgIGljb24tbmFtZT1cImZvbGRlci1vcGVuLXNtYWxsXCJcbiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuX2xvYWRCdXR0b24gPSBlbCBhcyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50O1xuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICA8L3NiYi1zZWNvbmRhcnktYnV0dG9uLXN0YXRpYz5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyRHJvcHpvbmVBcmVhKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWFcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0taWNvblwiPlxuICAgICAgICAgIDxzYmItaWNvblxuICAgICAgICAgICAgbmFtZT0ke3RoaXMuc2l6ZSA9PT0gJ20nID8gJ2ZvbGRlci1vcGVuLW1lZGl1bScgOiAnZm9sZGVyLW9wZW4tc21hbGwnfVxuICAgICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLXRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLXN1YnRpdGxlXCI+XG4gICAgICAgICAgJHtpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1idXR0b25cIj5cbiAgICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljXG4gICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9hZEJ1dHRvbiA9IGVsIGFzIFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICA8L3NiYi1zZWNvbmRhcnktYnV0dG9uLXN0YXRpYz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJGaWxlTGlzdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHX05BTUU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPVxuICAgICAgdGhpcy5fZmlsZXMhLmxlbmd0aCA+IDFcbiAgICAgICAgPyB7IFdSQVBQRVI6ICd1bCcsIEVMRU1FTlQ6ICdsaScgfVxuICAgICAgICA6IHsgV1JBUFBFUjogJ2RpdicsIEVMRU1FTlQ6ICdzcGFuJyB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9IGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbGlzdFwiPlxuICAgICAgICAke3RoaXMuX2ZpbGVzIS5tYXAoXG4gICAgICAgICAgKGZpbGU6IEZpbGUpID0+IGh0bWxgXG4gICAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfSBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1uYW1lXCI+JHtmaWxlLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19maWxlLXNpemVcIj4ke3RoaXMuX2Zvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSl9PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICAgIGljb24tbmFtZT1cInRyYXNoLXNtYWxsXCJcbiAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fcmVtb3ZlRmlsZShmaWxlKX1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2Ake2kxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAtICR7ZmlsZS5uYW1lfWB9XG4gICAgICAgICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfT5gLFxuICAgICAgICApfVxuICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5XUkFQUEVSKX0+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGFyaWFMYWJlbCA9IHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsXG4gICAgICA/IGAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsfWBcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19pbnB1dC1jb250YWluZXJcIlxuICAgICAgICAgIEBkcmFnZW50ZXI9JHt0aGlzLl9vbkRyYWdFbnRlcn1cbiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLl9ibG9ja0V2ZW50fVxuICAgICAgICAgIEBkcmFnbGVhdmU9JHt0aGlzLl9vbkRyYWdMZWF2ZX1cbiAgICAgICAgICBAZHJvcD0ke3RoaXMuX29uRmlsZURyb3B9XG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAke3RoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnID8gdGhpcy5fcmVuZGVyRGVmYXVsdE1vZGUoKSA6IHRoaXMuX3JlbmRlckRyb3B6b25lQXJlYSgpfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgP211bHRpcGxlPSR7dGhpcy5tdWx0aXBsZX1cbiAgICAgICAgICAgICAgYWNjZXB0PSR7dGhpcy5hY2NlcHQgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2FyaWFMYWJlbCB8fCBub3RoaW5nfVxuICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5fcmVhZEZpbGVzfVxuICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLl9vbkZvY3VzfVxuICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuX29uQmx1cn1cbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpZGRlbklucHV0ID0gZWwgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgJHtyZWYoKHA/OiBFbGVtZW50KSA9PiAodGhpcy5fbGl2ZVJlZ2lvbiA9IHAgYXMgSFRNTFBhcmFncmFwaEVsZW1lbnQpKX1cbiAgICAgICAgPjwvcD5cbiAgICAgICAgJHt0aGlzLl9maWxlcyAmJiB0aGlzLl9maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZXJyb3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZpbGUtc2VsZWN0b3InOiBTYmJGaWxlU2VsZWN0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1DTyxJQUFNLHlCQUFOLGNBQXFDLGlCQUFpQixVQUFVLEVBQUU7QUFBQSxFQUFsRSxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFPTyxTQUFPLFVBQWtDO0FBR3hCLFNBQU8sT0FBa0I7QUFHekIsU0FBTyxXQUFvQjtBQUl4RCxTQUFPLGVBQXlDO0FBZWhELFNBQVEsb0JBQTBDLElBQUk7QUFBQSxNQUNwRDtBQUFBLE1BQ0EsdUJBQXVCLE9BQU87QUFBQSxJQUFBO0FBWWhDLFNBQVEsV0FBbUI7QUFLM0IsU0FBUSxZQUFzQixDQUFDLEtBQUssTUFBTSxNQUFNLE1BQU0sSUFBSTtBQUdsRCxTQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWRsRCxJQUFXLFFBQWdCO0FBQ2xCLFdBQUEsS0FBSyxVQUFVO0VBQ3hCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFpQk8sV0FBbUI7QUFDakIsV0FBQSxLQUFLLFVBQVU7RUFDeEI7QUFBQSxFQUVRLFlBQVksT0FBd0I7QUFDMUMsVUFBTSxnQkFBZ0I7QUFDdEIsVUFBTSxlQUFlO0FBQUEsRUFDdkI7QUFBQSxFQUVRLG1CQUFtQixPQUFhLE9BQXNCO0FBRTFELFdBQUEsTUFBTSxTQUFTLE1BQU0sUUFDckIsTUFBTSxTQUFTLE1BQU0sUUFDckIsTUFBTSxpQkFBaUIsTUFBTTtBQUFBLEVBRWpDO0FBQUEsRUFFUSxhQUFhLE9BQXdCO0FBQ3RDLFNBQUE7QUFDRCxRQUFBLENBQUMsS0FBSyxVQUFVO0FBQ2IsV0FBQSxjQUFjLE1BQU0sUUFBdUIsSUFBSTtBQUNwRCxXQUFLLFlBQVksS0FBSztBQUFBLElBQ3hCO0FBQUEsRUFDRjtBQUFBLEVBRVEsYUFBYSxPQUF3QjtBQUN0QyxTQUFBO0FBQ0QsUUFBQSxDQUFDLEtBQUssWUFBWSxNQUFNLFdBQVcsS0FBSyxlQUFlLEtBQUssYUFBYSxHQUFHO0FBQzlFLFdBQUssY0FBYztBQUNuQixXQUFLLFlBQVksS0FBSztBQUFBLElBQ3hCO0FBQUEsRUFDRjtBQUFBLEVBRVEsWUFBWSxPQUF3QjtBQUMxQyxTQUFLLFdBQVc7QUFDWixRQUFBLENBQUMsS0FBSyxVQUFVO0FBQ2xCLFdBQUssY0FBYztBQUNuQixXQUFLLFlBQVksS0FBSztBQUNqQixXQUFBLGdCQUFnQixNQUFNLGFBQWMsS0FBSztBQUFBLElBQ2hEO0FBQUEsRUFDRjtBQUFBLEVBRVEsV0FBaUI7QUFDbkIsUUFBQSx5QkFBeUIsdUJBQXVCLFlBQVk7QUFDekQsV0FBQSxZQUFZLGdCQUFnQixzQkFBc0IsSUFBSTtBQUFBLElBQzdEO0FBQUEsRUFDRjtBQUFBLEVBRVEsVUFBZ0I7QUFDbEIsUUFBQSx5QkFBeUIsdUJBQXVCLFlBQVk7QUFDekQsV0FBQSxZQUFZLGdCQUFnQixvQkFBb0I7QUFBQSxJQUN2RDtBQUFBLEVBQ0Y7QUFBQSxFQUVRLGNBQ04sYUFBc0MsUUFDdEMsY0FBdUIsT0FDakI7QUFDTixTQUFLLGNBQWM7QUFDZCxTQUFBLGdCQUFnQixlQUFlLFdBQVc7QUFDMUMsU0FBQSxZQUFZLGdCQUFnQixlQUFlLFdBQVc7QUFBQSxFQUM3RDtBQUFBLEVBRVEsV0FBVyxPQUF1QjtBQUN4QyxVQUFNLFlBQVksTUFBTTtBQUN4QixRQUFJLFVBQVUsT0FBTztBQUNkLFdBQUEsZ0JBQWdCLFVBQVUsS0FBSztBQUFBLElBQ3RDO0FBQUEsRUFDRjtBQUFBLEVBRVEsZ0JBQWdCLE9BQXVCO0FBQzdDLFFBQ0UsQ0FBQyxLQUFLLFlBQ04sS0FBSyxpQkFBaUIsZ0JBQ3RCLENBQUMsS0FBSyxVQUNOLEtBQUssT0FBTyxXQUFXLEdBQ3ZCO0FBQ0ssV0FBQSxTQUFTLE1BQU0sS0FBSyxLQUFLO0FBQUEsSUFBQSxPQUN6QjtBQUNMLFdBQUssU0FBUyxNQUFNLEtBQUssS0FBSyxFQUMzQjtBQUFBLFFBQ0MsQ0FBQyxZQUNDLEtBQUssT0FBUSxVQUFVLENBQUMsWUFBa0IsS0FBSyxtQkFBbUIsU0FBUyxPQUFPLENBQUMsTUFDbkY7QUFBQSxNQUFBLEVBRUgsT0FBTyxLQUFLLE1BQU07QUFBQSxJQUN2QjtBQUNBLFNBQUssWUFBWSxZQUFZLGtDQUFrQyxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDM0YsS0FBSyxVQUFVLE9BQ2pCO0FBQ0ssU0FBQSxrQkFBa0IsS0FBSyxLQUFLLE1BQU07QUFBQSxFQUN6QztBQUFBLEVBRVEsWUFBWSxNQUFrQjtBQUMvQixTQUFBLFNBQVMsS0FBSyxPQUFRLE9BQU8sQ0FBQyxNQUFZLENBQUMsS0FBSyxtQkFBbUIsTUFBTSxDQUFDLENBQUM7QUFFMUUsVUFBQSxLQUFtQixJQUFJO0FBQ3hCLFNBQUEsT0FBTyxRQUFRLENBQUMsTUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7QUFDM0MsU0FBQSxhQUFhLFFBQVEsR0FBRztBQUM3QixTQUFLLFlBQVksWUFBWSxrQ0FBa0MsS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQzNGLEtBQUssVUFBVSxPQUNqQjtBQUNLLFNBQUEsa0JBQWtCLEtBQUssS0FBSyxNQUFNO0FBQUEsRUFDekM7QUFBQTtBQUFBLEVBR1EsZ0JBQWdCLE1BQXNCO0FBQ3RDLFVBQUEsSUFBWSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzVELFdBQU8sSUFBSSxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFBQSxFQUN0RTtBQUFBLEVBRVEscUJBQXFDO0FBQ3BDLFdBQUE7QUFBQTtBQUFBLGVBRUksS0FBSyxJQUFJO0FBQUE7QUFBQSxvQkFFSixLQUFLLFFBQVE7QUFBQSxVQUN2QixJQUFJLENBQUMsT0FBdUI7QUFDNUIsV0FBSyxjQUFjO0FBQUEsSUFBQSxDQUNwQixDQUFDO0FBQUE7QUFBQSxVQUVBLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBLEVBRzNEO0FBQUEsRUFFUSxzQkFBc0M7QUFDckMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUlRLEtBQUssU0FBUyxNQUFNLHVCQUF1QixtQkFBbUI7QUFBQTtBQUFBO0FBQUEsZ0VBR2pCLEtBQUssWUFBWTtBQUFBO0FBQUEsWUFFckUsOEJBQThCLEtBQUssVUFBVSxPQUFPLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFJOUMsS0FBSyxJQUFJO0FBQUEsd0JBQ0osS0FBSyxRQUFRO0FBQUEsY0FDdkIsSUFBSSxDQUFDLE9BQXVCO0FBQzVCLFdBQUssY0FBYztBQUFBLElBQUEsQ0FDcEIsQ0FBQztBQUFBO0FBQUEsY0FFQSw0QkFBNEIsS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLL0Q7QUFBQSxFQUVRLGtCQUFrQztBQUN4QyxVQUFNLFdBQ0osS0FBSyxPQUFRLFNBQVMsSUFDbEIsRUFBRSxTQUFTLE1BQU0sU0FBUyxLQUMxQixJQUFBLEVBQUUsU0FBUyxPQUFPLFNBQVM7QUFHMUIsV0FBQTtBQUFBLFNBQ0YsYUFBYSxTQUFTLE9BQU8sQ0FBQztBQUFBLFVBQzdCLEtBQUssT0FBUTtBQUFBLE1BQ2IsQ0FBQyxTQUFlO0FBQUEsYUFDYixhQUFhLFNBQVMsT0FBTyxDQUFDO0FBQUE7QUFBQSwyREFFZ0IsS0FBSyxJQUFJO0FBQUEsMkRBQ1QsS0FBSyxnQkFBZ0IsS0FBSyxJQUFJLENBQUM7QUFBQTtBQUFBO0FBQUEscUJBR3JFLEtBQUssSUFBSTtBQUFBO0FBQUEsdUJBRVAsTUFBTSxLQUFLLFlBQVksSUFBSSxDQUFDO0FBQUEsMkJBQ3hCLEdBQUcsMkJBQTJCLEtBQUssVUFBVSxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtBQUFBO0FBQUEsY0FFbkYsYUFBYSxTQUFTLE9BQU8sQ0FBQztBQUFBLElBQUEsQ0FDbkM7QUFBQSxVQUNDLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLEVBRXRDO0FBQUEsRUFFbUIsU0FBeUI7QUFDMUMsVUFBTSxZQUFZLEtBQUsscUJBQ25CLEdBQUcsNEJBQTRCLEtBQUssVUFBVSxPQUFPLENBQUMsTUFBTSxLQUFLLGtCQUFrQixLQUNuRjtBQUNHLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFJWSxLQUFLLFlBQVk7QUFBQSxzQkFDbEIsS0FBSyxXQUFXO0FBQUEsdUJBQ2YsS0FBSyxZQUFZO0FBQUEsa0JBQ3RCLEtBQUssV0FBVztBQUFBO0FBQUE7QUFBQSxjQUdwQixLQUFLLFlBQVksWUFBWSxLQUFLLHVCQUF1QixLQUFLLHFCQUFxQjtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQUl2RSxLQUFLLFFBQVE7QUFBQSwwQkFDYixLQUFLLFFBQVE7QUFBQSx1QkFDaEIsS0FBSyxVQUFVLE9BQU87QUFBQSwyQkFDbEIsYUFBYSxPQUFPO0FBQUEsd0JBQ3ZCLEtBQUssVUFBVTtBQUFBLHVCQUNoQixLQUFLLFFBQVE7QUFBQSxzQkFDZCxLQUFLLE9BQU87QUFBQSxnQkFDbEIsSUFBSSxDQUFDLE9BQXVCO0FBQzVCLFdBQUssZUFBZTtBQUFBLElBQUEsQ0FDckIsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBT0osSUFBSSxDQUFDLE1BQWlCLEtBQUssY0FBYyxDQUEwQixDQUFDO0FBQUE7QUFBQSxVQUV0RSxLQUFLLFVBQVUsS0FBSyxPQUFPLFNBQVMsSUFBSSxLQUFLLGdCQUFnQixJQUFJLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNaEY7QUFDRjtBQTNSYSx1QkFDWSxTQUF5QjtBQURyQyx1QkFFWSxTQUFTO0FBQUEsRUFDOUIsa0JBQWtCO0FBQ3BCO0FBR21CLGdCQUFBO0FBQUEsRUFBbEIsU0FBUztBQUFBLEdBUEMsdUJBT1EsV0FBQSxXQUFBLENBQUE7QUFHaUIsZ0JBQUE7QUFBQSxFQUFuQyxTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsR0FWaEIsdUJBVXlCLFdBQUEsUUFBQSxDQUFBO0FBR0EsZ0JBQUE7QUFBQSxFQUFuQyxTQUFTLEVBQUUsTUFBTSxTQUFTO0FBQUEsR0FiaEIsdUJBYXlCLFdBQUEsWUFBQSxDQUFBO0FBSTdCLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsV0FBVyxpQkFBaUI7QUFBQSxHQWhCN0IsdUJBaUJKLFdBQUEsZ0JBQUEsQ0FBQTtBQUdZLGdCQUFBO0FBQUEsRUFBbEIsU0FBUztBQUFBLEdBcEJDLHVCQW9CUSxXQUFBLFVBQUEsQ0FBQTtBQUc4QixnQkFBQTtBQUFBLEVBQWhELFNBQVMsRUFBRSxXQUFXLGlCQUFpQjtBQUFBLEdBdkI3Qix1QkF1QnNDLFdBQUEsZ0JBQUEsQ0FBQTtBQUdNLGdCQUFBO0FBQUEsRUFBdEQsU0FBUyxFQUFFLFdBQVcsdUJBQXVCO0FBQUEsR0ExQm5DLHVCQTBCNEMsV0FBQSxzQkFBQSxDQUFBO0FBR3RDLGdCQUFBO0FBQUEsRUFBaEIsTUFBTTtBQUFBLEdBN0JJLHVCQTZCTSxXQUFBLFVBQUEsQ0FBQTtBQTdCTix5QkFBTixnQkFBQTtBQUFBLEVBRk4sY0FBYyxtQkFBbUI7QUFBQSxFQUNqQyxVQUFVO0FBQUEsR0FDRSxzQkFBQTsifQ==
448
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBzbG90U3RhdGUgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBmb3J3YXJkRXZlbnRUb0hvc3QgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7XG4gIGkxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbCxcbiAgaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkLFxuICBpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZSxcbiAgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWwsXG59IGZyb20gJy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmlsZS1zZWxlY3Rvci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24tc3RhdGljLmpzJztcbmltcG9ydCAnLi4vaWNvbi5qcyc7XG5cbmV4cG9ydCB0eXBlIERPTUV2ZW50ID0gZ2xvYmFsVGhpcy5FdmVudDtcblxuLyoqXG4gKiBJdCBhbGxvd3MgdG8gc2VsZWN0IG9uZSBvciBtb3JlIGZpbGUgZnJvbSBzdG9yYWdlIGRldmljZXMgYW5kIGRpc3BsYXkgdGhlbS5cbiAqXG4gKiBAc2xvdCBlcnJvciAtIFVzZSB0aGlzIHRvIHByb3ZpZGUgYSBgc2JiLWZvcm0tZXJyb3JgIHRvIHNob3cgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8RmlsZVtdPn0gZmlsZUNoYW5nZWQgLSBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgZmlsZSBsaXN0IGNoYW5nZXMuXG4gKiBAZXZlbnQgY2hhbmdlIC0gQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIHVzZXIgbW9kaWZpZXMgdGhlIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZVxuICogQGV2ZW50IGlucHV0IC0gQW4gZXZlbnQgd2hpY2ggaXMgZW1pdHRlZCBlYWNoIHRpbWUgdGhlIHZhbHVlIGNoYW5nZXMgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmlsZS1zZWxlY3RvcicpXG5Ac2xvdFN0YXRlKClcbmV4cG9ydCBjbGFzcyBTYmJGaWxlU2VsZWN0b3JFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKExpdEVsZW1lbnQpKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBmaWxlQ2hhbmdlZEV2ZW50OiAnZmlsZUNoYW5nZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaGFzIGEgZHJvcHpvbmUgYXJlYSBvciBub3QuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyB2YXJpYW50OiAnZGVmYXVsdCcgfCAnZHJvcHpvbmUnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIHNpemU6ICdzJyB8ICdtJyA9ICdtJztcblxuICAvKiogV2hldGhlciBtb3JlIHRoYW4gb25lIGZpbGUgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBuZXdseSBhZGRlZCBmaWxlcyBzaG91bGQgb3ZlcnJpZGUgdGhlIHByZXZpb3VzbHkgYWRkZWQgb25lcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbXVsdGlwbGUtbW9kZScgfSlcbiAgcHVibGljIG11bHRpcGxlTW9kZTogJ2RlZmF1bHQnIHwgJ3BlcnNpc3RlbnQnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFsbG93ZWQgdW5pcXVlIGZpbGUgdHlwZSBzcGVjaWZpZXJzLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXB0Pzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdGl0bGUgZGlzcGxheWVkIGluIGBkcm9wem9uZWAgdmFyaWFudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcgfSkgcHVibGljIHRpdGxlQ29udGVudD86IHN0cmluZztcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBUaGUgcGF0aCBvZiB0aGUgZmlyc3Qgc2VsZWN0ZWQgZmlsZS4gRW1wdHkgc3RyaW5nICgnJykgaWYgbm8gZmlsZSBpcyBzZWxlY3RlZCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWRkZW5JbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5JbnB1dD8udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IEZpbGVbXSkge1xuICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAvLyB1cGRhdGUgdGhlIGlubmVyIGlucHV0XG4gICAgY29uc3QgZHQ6IERhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IEZpbGUpID0+IGR0Lml0ZW1zLmFkZChlKSk7XG4gICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cbiAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZVtdID0gW107XG5cbiAgLyoqIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZWRFdmVudDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRmlsZVNlbGVjdG9yRWxlbWVudC5ldmVudHMuZmlsZUNoYW5nZWRFdmVudCxcbiAgKTtcblxuICAvLyBTYWZhcmkgaGFzIGEgcGVjdWxpYXIgYmVoYXZpb3Igd2hlbiBkcmFnZ2luZyBmaWxlcyBvbiB0aGUgaW5uZXIgYnV0dG9uIGluICdkcm9wem9uZScgdmFyaWFudDtcbiAgLy8gdGhpcyB3aWxsIHJlcXVpcmUgYSBjb3VudGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIGRyYWdFbnRlci9kcmFnTGVhdmUuXG4gIHByaXZhdGUgX2NvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfbG9hZEJ1dHRvbiE6IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByaXZhdGUgX2RyYWdUYXJnZXQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaGlkZGVuSW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50O1xuICBwcml2YXRlIF9zdWZmaXhlczogc3RyaW5nW10gPSBbJ0InLCAna0InLCAnTUInLCAnR0InLCAnVEInXTtcbiAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSAnZmlsZXMnIHByb3BlcnR5IGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyBnZXRGaWxlcygpOiBGaWxlW10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb24/OiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzID0gKHN0YXRlIGFzIFtzdHJpbmcsIEZvcm1EYXRhRW50cnlWYWx1ZV1bXSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSBhcyBGaWxlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlKSA9PiBmb3JtVmFsdWUuYXBwZW5kKHRoaXMubmFtZSwgZmlsZSkpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShmb3JtVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYmxvY2tFdmVudChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUxOiBGaWxlLCBmaWxlMjogRmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmaWxlMS5uYW1lID09PSBmaWxlMi5uYW1lICYmXG4gICAgICBmaWxlMS5zaXplID09PSBmaWxlMi5zaXplICYmXG4gICAgICBmaWxlMS5sYXN0TW9kaWZpZWQgPT09IGZpbGUyLmxhc3RNb2RpZmllZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlcisrO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5mb3JtRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHRydWUpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50ZXItLTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuZm9ybURpc2FibGVkICYmXG4gICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuX2RyYWdUYXJnZXQgJiZcbiAgICAgIHRoaXMuX2NvdW50ZXIgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZSgpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25GaWxlRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlciA9IDA7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICAgIHRoaXMuX2NyZWF0ZUZpbGVMaXN0KGV2ZW50LmRhdGFUcmFuc2ZlciEuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuX2xvYWRCdXR0b24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXREcmFnU3RhdGUoXG4gICAgZHJhZ1RhcmdldDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgaXNEcmFnRW50ZXI6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ1RhcmdldCA9IGRyYWdUYXJnZXQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICAgIHRoaXMuX2xvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRGaWxlcyhldmVudDogRE9NRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlSW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoZmlsZUlucHV0LmZpbGVzKSB7XG4gICAgICB0aGlzLl9jcmVhdGVGaWxlTGlzdChmaWxlSW5wdXQuZmlsZXMpO1xuICAgIH1cbiAgICBmb3J3YXJkRXZlbnRUb0hvc3QoZXZlbnQsIHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlRmlsZUxpc3QoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMubXVsdGlwbGVNb2RlICE9PSAncGVyc2lzdGVudCcgfHwgdGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZXNcbiAgICAgICAgICAobmV3RmlsZTogRmlsZSk6IGJvb2xlYW4gPT5cbiAgICAgICAgICAgIHRoaXMuZmlsZXMhLmZpbmRJbmRleCgob2xkRmlsZTogRmlsZSkgPT4gdGhpcy5fY2hlY2tGaWxlRXF1YWxpdHkobmV3RmlsZSwgb2xkRmlsZSkpID09PVxuICAgICAgICAgICAgLTEsXG4gICAgICAgIClcbiAgICAgICAgLmNvbmNhdCh0aGlzLmZpbGVzKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcbiAgICB0aGlzLl9maWxlQ2hhbmdlZEV2ZW50LmVtaXQodGhpcy5maWxlcyk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IEZpbGUpID0+ICF0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShmaWxlLCBmKSk7XG4gICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcblxuICAgIC8vIERpc3BhdGNoIG5hdGl2ZSBldmVudHMgYXMgaWYgdGhlIHJlc2V0IGlzIGRvbmUgdmlhIHRoZSBmaWxlIHNlbGVjdGlvbiB3aW5kb3cuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGNvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuX2ZpbGVDaGFuZ2VkRXZlbnQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBjb3JyZWN0IHVuaXQgZm9yIHRoZSBmaWxlJ3Mgc2l6ZS4gKi9cbiAgcHJpdmF0ZSBfZm9ybWF0RmlsZVNpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgIHJldHVybiBgJHsoc2l6ZSAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDApfSAke3RoaXMuX3N1ZmZpeGVzW2ldfWA7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLmZpbGVzLm1hcCgoZSkgPT4gZS5uYW1lKSlbXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckRlZmF1bHRNb2RlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgaWNvbi1uYW1lPVwiZm9sZGVyLW9wZW4tc21hbGxcIlxuICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fbG9hZEJ1dHRvbiA9IGVsIGFzIFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gICAgICAgIH0pfVxuICAgICAgPlxuICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJEcm9wem9uZUFyZWEoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1pY29uXCI+XG4gICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICBuYW1lPSR7dGhpcy5zaXplID09PSAnbScgPyAnZm9sZGVyLW9wZW4tbWVkaXVtJyA6ICdmb2xkZXItb3Blbi1zbWFsbCd9XG4gICAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tdGl0bGVcIj4ke3RoaXMudGl0bGVDb250ZW50fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tc3VidGl0bGVcIj5cbiAgICAgICAgICAke2kxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLWJ1dHRvblwiPlxuICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckZpbGVMaXN0KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUQUdfTkFNRTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9XG4gICAgICB0aGlzLmZpbGVzLmxlbmd0aCA+IDFcbiAgICAgICAgPyB7IFdSQVBQRVI6ICd1bCcsIEVMRU1FTlQ6ICdsaScgfVxuICAgICAgICA6IHsgV1JBUFBFUjogJ2RpdicsIEVMRU1FTlQ6ICdzcGFuJyB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9IGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbGlzdFwiPlxuICAgICAgICAke3RoaXMuZmlsZXMubWFwKFxuICAgICAgICAgIChmaWxlOiBGaWxlKSA9PiBodG1sYFxuICAgICAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbmFtZVwiPiR7ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1zaXplXCI+JHt0aGlzLl9mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgICBpY29uLW5hbWU9XCJ0cmFzaC1zbWFsbFwiXG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3JlbW92ZUZpbGUoZmlsZSl9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgJHtpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gLSAke2ZpbGUubmFtZX1gfVxuICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0+YCxcbiAgICAgICAgKX1cbiAgICAgIDwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9PlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBhcmlhTGFiZWwgPSB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbFxuICAgICAgPyBgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IC0gJHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbH1gXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9faW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgICBAZHJhZ2VudGVyPSR7dGhpcy5fb25EcmFnRW50ZXJ9XG4gICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fYmxvY2tFdmVudH1cbiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fb25EcmFnTGVhdmV9XG4gICAgICAgICAgQGRyb3A9JHt0aGlzLl9vbkZpbGVEcm9wfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgJHt0aGlzLnZhcmlhbnQgPT09ICdkZWZhdWx0JyA/IHRoaXMuX3JlbmRlckRlZmF1bHRNb2RlKCkgOiB0aGlzLl9yZW5kZXJEcm9wem9uZUFyZWEoKX1cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9XG4gICAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0IHx8IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHthcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuX3JlYWRGaWxlc31cbiAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5fb25Gb2N1c31cbiAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLl9vbkJsdXJ9XG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5JbnB1dCA9IGVsIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICR7cmVmKChwPzogRWxlbWVudCkgPT4gKHRoaXMuX2xpdmVSZWdpb24gPSBwIGFzIEhUTUxQYXJhZ3JhcGhFbGVtZW50KSl9XG4gICAgICAgID48L3A+XG4gICAgICAgICR7dGhpcy5maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZXJyb3JcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZpbGUtc2VsZWN0b3InOiBTYmJGaWxlU2VsZWN0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -3,14 +3,7 @@ import { css, LitElement, html } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
4
  import { IS_FOCUSABLE_QUERY } from "../core/a11y.js";
5
5
  import { hostAttributes } from "../core/decorators.js";
6
- const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
7
- /*
8
- * SBB table mixin
9
- * Notes:
10
- * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
11
- * Therefore, we have to build the grid avoiding double borders.
12
- */
13
- *,
6
+ const style = css`*,
14
7
  ::before,
15
8
  ::after {
16
9
  box-sizing: border-box;
@@ -96,4 +89,4 @@ SbbFlipCardDetailsElement = __decorateClass([
96
89
  export {
97
90
  SbbFlipCardDetailsElement
98
91
  };
99
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC1jYXJkLWRldGFpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mbGlwLWNhcmQvZmxpcC1jYXJkLWRldGFpbHMvZmxpcC1jYXJkLWRldGFpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgSVNfRk9DVVNBQkxFX1FVRVJZIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmxpcC1jYXJkLWRldGFpbHMuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi1mbGlwLWNhcmRgLCBpdCBkaXNwbGF5cyBpdHMgY29udGVudCB3aGVuIHRoZSBjYXJkIGlzIGZsaXBwZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGFueSBraW5kIG9mIGNvbnRlbnQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmxpcC1jYXJkLWRldGFpbHMnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ2RldGFpbHMnLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGNhcmRGb2N1c2FibGVBdHRyaWJ1dGVOYW1lID0gJ2RhdGEtY2FyZC1mb2N1c2FibGUnO1xuXG4gICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LihJU19GT0NVU0FCTEVfUVVFUlkpID8/IFtdKVxuICAgICAgLmZpbHRlcigoZWwpID0+ICFlbC5oYXNBdHRyaWJ1dGUoY2FyZEZvY3VzYWJsZUF0dHJpYnV0ZU5hbWUpKVxuICAgICAgLmZvckVhY2goKGVsOiBFbGVtZW50KSA9PiBlbC5zZXRBdHRyaWJ1dGUoY2FyZEZvY3VzYWJsZUF0dHJpYnV0ZU5hbWUsICcnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmxpcC1jYXJkLWRldGFpbHMtLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mbGlwLWNhcmQtZGV0YWlsc1wiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmxpcC1jYXJkLWRldGFpbHMnOiBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQmEsSUFBQSw0QkFBTixjQUF3QyxXQUFXO0FBQUEsRUFHakQsY0FBYztBQUNiO0FBRU4sUUFBSSxtQkFBbUIsTUFBTTtBQUFBLE1BQzNCLFFBQVE7QUFBQSxRQUNOLFdBQVc7QUFBQSxRQUNYLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVLE1BQU0sS0FBSyx3QkFBd0I7QUFBQSxJQUFBLENBQzlDO0FBQUEsRUFDSDtBQUFBLEVBRVEsMEJBQWdDOztBQUN0QyxVQUFNLDZCQUE2QjtBQUU3QixVQUFBLE9BQUssVUFBSyxxQkFBTCw4QkFBd0Isd0JBQXVCLENBQUEsQ0FBRSxFQUN6RCxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBYSwwQkFBMEIsQ0FBQyxFQUMzRCxRQUFRLENBQUMsT0FBZ0IsR0FBRyxhQUFhLDRCQUE0QixFQUFFLENBQUM7QUFBQSxFQUM3RTtBQUFBLEVBRW1CLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9UO0FBQ0Y7QUFoQ2EsMEJBQ1ksU0FBeUI7QUFEckMsNEJBQU4sZ0JBQUE7QUFBQSxFQUpOLGNBQWMsdUJBQXVCO0FBQUEsRUFDckMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUDtBQUFBLEdBQ1kseUJBQUE7In0=
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC1jYXJkLWRldGFpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mbGlwLWNhcmQvZmxpcC1jYXJkLWRldGFpbHMvZmxpcC1jYXJkLWRldGFpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgSVNfRk9DVVNBQkxFX1FVRVJZIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmxpcC1jYXJkLWRldGFpbHMuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi1mbGlwLWNhcmRgLCBpdCBkaXNwbGF5cyBpdHMgY29udGVudCB3aGVuIHRoZSBjYXJkIGlzIGZsaXBwZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGFueSBraW5kIG9mIGNvbnRlbnQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmxpcC1jYXJkLWRldGFpbHMnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ2RldGFpbHMnLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0ZvclNsb3R0ZWRBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGNhcmRGb2N1c2FibGVBdHRyaWJ1dGVOYW1lID0gJ2RhdGEtY2FyZC1mb2N1c2FibGUnO1xuXG4gICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LihJU19GT0NVU0FCTEVfUVVFUlkpID8/IFtdKVxuICAgICAgLmZpbHRlcigoZWwpID0+ICFlbC5oYXNBdHRyaWJ1dGUoY2FyZEZvY3VzYWJsZUF0dHJpYnV0ZU5hbWUpKVxuICAgICAgLmZvckVhY2goKGVsOiBFbGVtZW50KSA9PiBlbC5zZXRBdHRyaWJ1dGUoY2FyZEZvY3VzYWJsZUF0dHJpYnV0ZU5hbWUsICcnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmxpcC1jYXJkLWRldGFpbHMtLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mbGlwLWNhcmQtZGV0YWlsc1wiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmxpcC1jYXJkLWRldGFpbHMnOiBTYmJGbGlwQ2FyZERldGFpbHNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CYSxJQUFBLDRCQUFOLGNBQXdDLFdBQVc7QUFBQSxFQUdqRCxjQUFjO0FBQ2I7QUFFTixRQUFJLG1CQUFtQixNQUFNO0FBQUEsTUFDM0IsUUFBUTtBQUFBLFFBQ04sV0FBVztBQUFBLFFBQ1gsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVUsTUFBTSxLQUFLLHdCQUF3QjtBQUFBLElBQUEsQ0FDOUM7QUFBQSxFQUNIO0FBQUEsRUFFUSwwQkFBZ0M7O0FBQ3RDLFVBQU0sNkJBQTZCO0FBRTdCLFVBQUEsT0FBSyxVQUFLLHFCQUFMLDhCQUF3Qix3QkFBdUIsQ0FBQSxDQUFFLEVBQ3pELE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxhQUFhLDBCQUEwQixDQUFDLEVBQzNELFFBQVEsQ0FBQyxPQUFnQixHQUFHLGFBQWEsNEJBQTRCLEVBQUUsQ0FBQztBQUFBLEVBQzdFO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1Q7QUFDRjtBQWhDYSwwQkFDWSxTQUF5QjtBQURyQyw0QkFBTixnQkFBQTtBQUFBLEVBSk4sY0FBYyx1QkFBdUI7QUFBQSxFQUNyQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQO0FBQUEsR0FDWSx5QkFBQTsifQ==
@@ -1,14 +1,7 @@
1
1
  import { css, LitElement, html } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
3
  import { hostAttributes } from "../core/decorators.js";
4
- const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
5
- /*
6
- * SBB table mixin
7
- * Notes:
8
- * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
9
- * Therefore, we have to build the grid avoiding double borders.
10
- */
11
- *,
4
+ const style = css`*,
12
5
  ::before,
13
6
  ::after {
14
7
  box-sizing: border-box;
@@ -142,4 +135,4 @@ SbbFlipCardSummaryElement = __decorateClass([
142
135
  export {
143
136
  SbbFlipCardSummaryElement
144
137
  };
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC1jYXJkLXN1bW1hcnkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mbGlwLWNhcmQvZmxpcC1jYXJkLXN1bW1hcnkvZmxpcC1jYXJkLXN1bW1hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmxpcC1jYXJkLXN1bW1hcnkuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiRmxpcENhcmRJbWFnZUFsaWdubWVudCA9ICdhZnRlcicgfCAnYmVsb3cnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWZsaXAtY2FyZGAsIGl0IGRpc3BsYXlzIGl0cyBjb250ZW50IHdoZW4gdGhlIGNhcmQgaXMgbm90IGZsaXBwZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgdGl0bGUgZm9yIHRoZSBgc2JiLWZsaXAtY2FyZC1zdW1tYXJ5YC5cbiAqIEBzbG90IGltYWdlIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGltYWdlIGZvciB0aGUgYHNiYi1mbGlwLWNhcmQtc3VtbWFyeWAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmxpcC1jYXJkLXN1bW1hcnknKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ3N1bW1hcnknLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJGbGlwQ2FyZFN1bW1hcnlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gd2hlcmUgdG8gcmVuZGVyIHRoZSBpbWFnZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaW1hZ2UtYWxpZ25tZW50JywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgaW1hZ2VBbGlnbm1lbnQ6IFNiYkZsaXBDYXJkSW1hZ2VBbGlnbm1lbnQgPSAnYWZ0ZXInO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKF9jaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKF9jaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoX2NoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaW1hZ2VBbGlnbm1lbnQnKSkge1xuICAgICAgdGhpcy5jbG9zZXN0Py4oJ3NiYi1mbGlwLWNhcmQnKT8uc2V0QXR0cmlidXRlKCdkYXRhLWltYWdlLWFsaWdubWVudCcsIHRoaXMuaW1hZ2VBbGlnbm1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1mbGlwLWNhcmQtc3VtbWFyeVwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmxpcC1jYXJkLXN1bW1hcnktLWltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiaW1hZ2VcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZsaXAtY2FyZC1zdW1tYXJ5JzogU2JiRmxpcENhcmRTdW1tYXJ5RWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CYSxJQUFBLDRCQUFOLGNBQXdDLFdBQVc7QUFBQSxFQUFuRCxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFLTCxTQUFPLGlCQUE0QztBQUFBLEVBQUE7QUFBQSxFQUVoQyxXQUFXLG9CQUEwQzs7QUFDdEUsVUFBTSxXQUFXLGtCQUFrQjtBQUUvQixRQUFBLG1CQUFtQixJQUFJLGdCQUFnQixHQUFHO0FBQzVDLHVCQUFLLFlBQUwsOEJBQWUscUJBQWYsbUJBQWlDLGFBQWEsd0JBQXdCLEtBQUs7QUFBQSxJQUM3RTtBQUFBLEVBQ0Y7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFUO0FBQ0Y7QUF6QmEsMEJBQ1ksU0FBeUI7QUFJekMsZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxXQUFXLG1CQUFtQixTQUFTLE1BQU07QUFBQSxHQUo5QywwQkFLSixXQUFBLGtCQUFBLENBQUE7QUFMSSw0QkFBTixnQkFBQTtBQUFBLEVBSk4sY0FBYyx1QkFBdUI7QUFBQSxFQUNyQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQO0FBQUEsR0FDWSx5QkFBQTsifQ==
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpcC1jYXJkLXN1bW1hcnkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mbGlwLWNhcmQvZmxpcC1jYXJkLXN1bW1hcnkvZmxpcC1jYXJkLXN1bW1hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmxpcC1jYXJkLXN1bW1hcnkuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiRmxpcENhcmRJbWFnZUFsaWdubWVudCA9ICdhZnRlcicgfCAnYmVsb3cnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWZsaXAtY2FyZGAsIGl0IGRpc3BsYXlzIGl0cyBjb250ZW50IHdoZW4gdGhlIGNhcmQgaXMgbm90IGZsaXBwZWQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgdGl0bGUgZm9yIHRoZSBgc2JiLWZsaXAtY2FyZC1zdW1tYXJ5YC5cbiAqIEBzbG90IGltYWdlIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGltYWdlIGZvciB0aGUgYHNiYi1mbGlwLWNhcmQtc3VtbWFyeWAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItZmxpcC1jYXJkLXN1bW1hcnknKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ3N1bW1hcnknLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJGbGlwQ2FyZFN1bW1hcnlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gd2hlcmUgdG8gcmVuZGVyIHRoZSBpbWFnZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaW1hZ2UtYWxpZ25tZW50JywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgaW1hZ2VBbGlnbm1lbnQ6IFNiYkZsaXBDYXJkSW1hZ2VBbGlnbm1lbnQgPSAnYWZ0ZXInO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKF9jaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKF9jaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoX2NoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaW1hZ2VBbGlnbm1lbnQnKSkge1xuICAgICAgdGhpcy5jbG9zZXN0Py4oJ3NiYi1mbGlwLWNhcmQnKT8uc2V0QXR0cmlidXRlKCdkYXRhLWltYWdlLWFsaWdubWVudCcsIHRoaXMuaW1hZ2VBbGlnbm1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1mbGlwLWNhcmQtc3VtbWFyeVwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmxpcC1jYXJkLXN1bW1hcnktLWltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiaW1hZ2VcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZsaXAtY2FyZC1zdW1tYXJ5JzogU2JiRmxpcENhcmRTdW1tYXJ5RWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JhLElBQUEsNEJBQU4sY0FBd0MsV0FBVztBQUFBLEVBQW5ELGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQUtMLFNBQU8saUJBQTRDO0FBQUEsRUFBQTtBQUFBLEVBRWhDLFdBQVcsb0JBQTBDOztBQUN0RSxVQUFNLFdBQVcsa0JBQWtCO0FBRS9CLFFBQUEsbUJBQW1CLElBQUksZ0JBQWdCLEdBQUc7QUFDNUMsdUJBQUssWUFBTCw4QkFBZSxxQkFBZixtQkFBaUMsYUFBYSx3QkFBd0IsS0FBSztBQUFBLElBQzdFO0FBQUEsRUFDRjtBQUFBLEVBRW1CLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVQ7QUFDRjtBQXpCYSwwQkFDWSxTQUF5QjtBQUl6QyxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsbUJBQW1CLFNBQVMsTUFBTTtBQUFBLEdBSjlDLDBCQUtKLFdBQUEsa0JBQUEsQ0FBQTtBQUxJLDRCQUFOLGdCQUFBO0FBQUEsRUFKTixjQUFjLHVCQUF1QjtBQUFBLEVBQ3JDLGVBQWU7QUFBQSxJQUNkLE1BQU07QUFBQSxFQUFBLENBQ1A7QUFBQSxHQUNZLHlCQUFBOyJ9