@sbb-esta/lyne-elements 2.0.3 → 2.1.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 (195) hide show
  1. package/accordion/accordion.d.ts.map +1 -1
  2. package/accordion.js +6 -6
  3. package/alert/alert.js +8 -8
  4. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  5. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  6. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  7. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  8. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  9. package/autocomplete-grid/autocomplete-grid-option.js +10 -10
  10. package/autocomplete-grid/autocomplete-grid-row.js +4 -4
  11. package/autocomplete.js +92 -89
  12. package/breadcrumb/breadcrumb-group.js +4 -4
  13. package/button/accent-button-link.js +9 -9
  14. package/button/accent-button-static.js +6 -6
  15. package/button/accent-button.js +6 -6
  16. package/button/button-link.js +7 -7
  17. package/button/button-static.js +7 -7
  18. package/button/button.js +8 -8
  19. package/button/common.js +1 -1
  20. package/button/mini-button-group.js +8 -8
  21. package/button/secondary-button-link.js +7 -7
  22. package/button/secondary-button-static.js +7 -7
  23. package/button/secondary-button.js +3 -3
  24. package/button/transparent-button-link.js +6 -6
  25. package/button/transparent-button-static.js +5 -5
  26. package/button/transparent-button.js +6 -6
  27. package/card/card-badge.js +9 -9
  28. package/card/card-button.js +5 -5
  29. package/card/card-link.js +7 -7
  30. package/checkbox/checkbox-panel.js +16 -16
  31. package/checkbox/checkbox.js +15 -15
  32. package/checkbox/common.js +3 -3
  33. package/clock.js +8 -8
  34. package/container/container/container.d.ts +1 -1
  35. package/container/container/container.d.ts.map +1 -1
  36. package/container/container.js +21 -21
  37. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  38. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  39. package/container/sticky-bar.js +4 -4
  40. package/core/base-elements.js +8 -8
  41. package/core/controllers.js +4 -4
  42. package/core/datetime/date-adapter.d.ts +1 -1
  43. package/core/datetime/date-adapter.d.ts.map +1 -1
  44. package/core/datetime/native-date-adapter.d.ts +1 -1
  45. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  46. package/core/datetime.js +6 -6
  47. package/core/dom/scroll.d.ts +1 -1
  48. package/core/dom/scroll.d.ts.map +1 -1
  49. package/core/dom.js +39 -39
  50. package/core/eventing.js +4 -4
  51. package/core/mixins.js +18 -18
  52. package/core/styles/core.scss +21 -2
  53. package/core/testing.js +14 -14
  54. package/core.css +18 -2
  55. package/custom-elements.json +364 -428
  56. package/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  57. package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  58. package/datepicker/common/datepicker-button.d.ts +17 -9
  59. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  60. package/datepicker/common.d.ts +1 -0
  61. package/datepicker/common.d.ts.map +1 -1
  62. package/datepicker/common.js +130 -92
  63. package/datepicker/datepicker/datepicker.d.ts +19 -4
  64. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  65. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  66. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  67. package/datepicker/datepicker-toggle.js +108 -112
  68. package/datepicker/datepicker.js +95 -80
  69. package/development/accordion/accordion.d.ts.map +1 -1
  70. package/development/accordion.js +1 -1
  71. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  72. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  73. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  74. package/development/autocomplete-grid/autocomplete-grid-option.js +3 -3
  75. package/development/autocomplete.js +24 -8
  76. package/development/button/common.js +4 -2
  77. package/development/calendar.js +1 -1
  78. package/development/container/container/container.d.ts +1 -1
  79. package/development/container/container/container.d.ts.map +1 -1
  80. package/development/container/container.js +17 -1
  81. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  82. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  83. package/development/container/sticky-bar.js +9 -1
  84. package/development/core/datetime/date-adapter.d.ts +1 -1
  85. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  86. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  87. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  88. package/development/core/datetime.js +1 -1
  89. package/development/core/dom/scroll.d.ts +1 -1
  90. package/development/core/dom/scroll.d.ts.map +1 -1
  91. package/development/core/dom.js +4 -4
  92. package/development/core/mixins.js +1 -1
  93. package/development/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  94. package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  95. package/development/datepicker/common/datepicker-button.d.ts +17 -9
  96. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  97. package/development/datepicker/common.d.ts +1 -0
  98. package/development/datepicker/common.d.ts.map +1 -1
  99. package/development/datepicker/common.js +139 -90
  100. package/development/datepicker/datepicker/datepicker.d.ts +19 -4
  101. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  102. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  103. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  104. package/development/datepicker/datepicker-toggle.js +65 -69
  105. package/development/datepicker/datepicker.js +54 -36
  106. package/development/dialog/dialog/dialog.d.ts +2 -0
  107. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  108. package/development/dialog/dialog.js +37 -11
  109. package/development/menu/menu/menu.d.ts.map +1 -1
  110. package/development/menu/menu.js +35 -12
  111. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  112. package/development/navigation/navigation.js +15 -8
  113. package/development/option/option/option-base-element.d.ts +3 -2
  114. package/development/option/option/option-base-element.d.ts.map +1 -1
  115. package/development/option/option.js +15 -8
  116. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  117. package/development/overlay/overlay.d.ts.map +1 -1
  118. package/development/overlay.js +29 -13
  119. package/development/popover/popover/popover.d.ts.map +1 -1
  120. package/development/popover/popover.js +16 -13
  121. package/development/select/select.d.ts +11 -0
  122. package/development/select/select.d.ts.map +1 -1
  123. package/development/select.js +60 -9
  124. package/development/toast/toast.d.ts.map +1 -1
  125. package/development/toast.js +14 -8
  126. package/development/toggle/toggle.js +1 -1
  127. package/development/train/train-wagon.js +1 -1
  128. package/dialog/dialog/dialog.d.ts +2 -0
  129. package/dialog/dialog/dialog.d.ts.map +1 -1
  130. package/dialog/dialog-content.js +3 -3
  131. package/dialog/dialog-title.js +8 -8
  132. package/dialog/dialog.js +59 -49
  133. package/divider.js +12 -12
  134. package/file-selector/file-selector-dropzone.js +5 -5
  135. package/file-selector/file-selector.js +6 -6
  136. package/flip-card/flip-card-details.js +4 -4
  137. package/flip-card/flip-card-summary.js +9 -9
  138. package/header/header-button.js +5 -5
  139. package/header/header-link.js +5 -5
  140. package/icon.js +36 -36
  141. package/link/block-link-button.js +4 -4
  142. package/link/block-link-static.js +9 -9
  143. package/link/block-link.js +4 -4
  144. package/link/common.js +16 -16
  145. package/link/link-button.js +7 -7
  146. package/link/link-static.js +7 -7
  147. package/link/link.js +4 -4
  148. package/link-list/common.js +12 -12
  149. package/loading-indicator-circle.js +11 -11
  150. package/map-container.js +4 -4
  151. package/menu/common.js +7 -7
  152. package/menu/menu/menu.d.ts.map +1 -1
  153. package/menu/menu-button.js +8 -8
  154. package/menu/menu-link.js +6 -6
  155. package/menu/menu.js +64 -42
  156. package/navigation/navigation/navigation.d.ts.map +1 -1
  157. package/navigation/navigation-button.js +4 -4
  158. package/navigation/navigation-link.js +7 -7
  159. package/navigation/navigation-list.js +4 -4
  160. package/navigation/navigation-marker.js +3 -3
  161. package/navigation/navigation.js +21 -20
  162. package/notification.js +17 -17
  163. package/option/optgroup.js +11 -11
  164. package/option/option/option-base-element.d.ts +3 -2
  165. package/option/option/option-base-element.d.ts.map +1 -1
  166. package/option/option.js +113 -101
  167. package/overlay/overlay-base-element.d.ts.map +1 -1
  168. package/overlay/overlay.d.ts.map +1 -1
  169. package/overlay.js +87 -84
  170. package/package.json +1 -1
  171. package/paginator/common.js +6 -6
  172. package/popover/popover/popover.d.ts.map +1 -1
  173. package/popover/popover.js +73 -73
  174. package/radio-button/radio-button-panel.js +5 -5
  175. package/screen-reader-only.js +5 -5
  176. package/select/select.d.ts +11 -0
  177. package/select/select.d.ts.map +1 -1
  178. package/select.js +111 -83
  179. package/slider.js +8 -8
  180. package/standard-theme.css +18 -2
  181. package/status.js +3 -3
  182. package/stepper/step-label.js +4 -4
  183. package/table/table-wrapper.js +4 -4
  184. package/tabs/tab-group.js +24 -24
  185. package/tabs/tab.js +3 -3
  186. package/tag/tag-group.js +7 -7
  187. package/teaser-product/common.js +5 -5
  188. package/teaser-product/teaser-product-static.js +2 -2
  189. package/timetable-occupancy-icon.js +3 -3
  190. package/timetable-occupancy.js +6 -6
  191. package/toast/toast.d.ts.map +1 -1
  192. package/toast.js +58 -54
  193. package/toggle/toggle-option.js +11 -11
  194. package/toggle-check.js +5 -5
  195. package/train/train.js +28 -28
@@ -146,4 +146,4 @@ let SbbAccordionElement = (() => {
146
146
  export {
147
147
  SbbAccordionElement
148
148
  };
149
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlLCBoYW5kbGVEaXN0aW5jdENoYW5nZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uL3RpdGxlLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWNjb3JkaW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1leHBhbnNpb24tcGFuZWxgIGVsZW1lbnRzLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItYWNjb3JkaW9uJylcbmNsYXNzIFNiYkFjY29yZGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsIG9yIHM7IG92ZXJyaWRlcyB0aGUgc2l6ZSBvbiBhbnkgcHJvamVjdGVkIGBzYmItZXhwYW5zaW9uLXBhbmVsYC5cbiAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ2wnID0gaXNMZWFuKCkgPyAncycgOiAnbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIGxldmVsIGZvciB0aGUgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJzIHdpdGhpbiB0aGUgY29tcG9uZW50LlxuICAgKiBAY29udHJvbHMgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50LnRpdGxlTGV2ZWxcbiAgICovXG4gIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZSkgPT4gZS5fc2V0VGl0bGVMZXZlbE9uQ2hpbGRyZW4oKSlcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtbGV2ZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUxldmVsOiBTYmJUaXRsZUxldmVsIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBzYmItZXhwYW5zaW9uLXBhbmVsIGNhbiBiZSBvcGVuIGF0IHRoZSBzYW1lIHRpbWUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGUsIG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gZS5fcmVzZXRFeHBhbnNpb25QYW5lbHMobmV3VmFsdWUsICEhb2xkVmFsdWUpKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgJ3dpbGxPcGVuJyxcbiAgICAgIGFzeW5jIChlOiBDdXN0b21FdmVudDx2b2lkPikgPT4ge1xuICAgICAgICBpZiAoIShhd2FpdCBpc0V2ZW50UHJldmVudGVkKGUpKSkge1xuICAgICAgICAgIHRoaXMuX2Nsb3NlUGFuZWxzKGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBXZSB1c2UgY2FwdHVyZSBoZXJlLCBiZWNhdXNlIHdpbGxPcGVuIGRvZXMgbm90IGJ1YmJsZS5cbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2V4cGFuc2lvblBhbmVscygpOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1leHBhbnNpb24tcGFuZWwnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZVBhbmVscyhlOiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGlmICgoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5sb2NhbE5hbWUgIT09ICdzYmItZXhwYW5zaW9uLXBhbmVsJyB8fCB0aGlzLm11bHRpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZXhwYW5zaW9uUGFuZWxzKClcbiAgICAgIC5maWx0ZXIoKHBhbmVsKSA9PiBwYW5lbCAhPT0gZS50YXJnZXQpXG4gICAgICAuZm9yRWFjaCgocGFuZWwpID0+IChwYW5lbC5leHBhbmRlZCA9IGZhbHNlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fZXhwYW5zaW9uUGFuZWxzKCkuZm9yRWFjaChcbiAgICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQpID0+IChwYW5lbC5zaXplID0gdGhpcy5zaXplKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRFeHBhbnNpb25QYW5lbHMobmV3VmFsdWU6IGJvb2xlYW4sIG9sZFZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gSWYgaXQncyBjaGFuZ2luZyBmcm9tIFwibXVsdGkgPSB0cnVlXCIgdG8gXCJtdWx0aSA9IGZhbHNlXCIsIG9wZW4gdGhlIGZpcnN0IHBhbmVsIGFuZCBjbG9zZSBhbGwgdGhlIG90aGVycy5cbiAgICBjb25zdCBleHBhbnNpb25QYW5lbHMgPSB0aGlzLl9leHBhbnNpb25QYW5lbHMoKTtcbiAgICBpZiAoZXhwYW5zaW9uUGFuZWxzLmxlbmd0aCA+IDEgJiYgb2xkVmFsdWUgJiYgIW5ld1ZhbHVlKSB7XG4gICAgICBleHBhbnNpb25QYW5lbHNbMF0uZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgZXhwYW5zaW9uUGFuZWxzXG4gICAgICAgIC5maWx0ZXIoKF8sIGluZGV4OiBudW1iZXIpID0+IGluZGV4ID4gMClcbiAgICAgICAgLmZvckVhY2goKHBhbmVsKSA9PiAocGFuZWwuZXhwYW5kZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldFRpdGxlTGV2ZWxPbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpLmZvckVhY2goXG4gICAgICAocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCkgPT4gKHBhbmVsLnRpdGxlTGV2ZWwgPSB0aGlzLnRpdGxlTGV2ZWwpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpLmZvckVhY2goXG4gICAgICAocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudFtdKSA9PiB7XG4gICAgICAgIHBhbmVsLnRpdGxlTGV2ZWwgPSB0aGlzLnRpdGxlTGV2ZWw7XG4gICAgICAgIHBhbmVsLnNpemUgPSB0aGlzLnNpemU7XG4gICAgICAgIHBhbmVsLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24tZmlyc3QnLCBpbmRleCA9PT0gMCk7XG4gICAgICAgIHBhbmVsLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24tbGFzdCcsIGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hY2NvcmRpb25cIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWNjb3JkaW9uJzogU2JiQWNjb3JkaW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQW9CTSx1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
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlLCBoYW5kbGVEaXN0aW5jdENoYW5nZSB9IGZyb20gJy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uL3RpdGxlLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWNjb3JkaW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1leHBhbnNpb24tcGFuZWxgIGVsZW1lbnRzLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItYWNjb3JkaW9uJylcbmNsYXNzIFNiYkFjY29yZGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsIG9yIHM7IG92ZXJyaWRlcyB0aGUgc2l6ZSBvbiBhbnkgcHJvamVjdGVkIGBzYmItZXhwYW5zaW9uLXBhbmVsYC5cbiAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ2wnID0gaXNMZWFuKCkgPyAncycgOiAnbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIGxldmVsIGZvciB0aGUgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJzIHdpdGhpbiB0aGUgY29tcG9uZW50LlxuICAgKiBAY29udHJvbHMgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50LnRpdGxlTGV2ZWxcbiAgICovXG4gIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZTogU2JiQWNjb3JkaW9uRWxlbWVudCkgPT4gZS5fc2V0VGl0bGVMZXZlbE9uQ2hpbGRyZW4oKSlcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtbGV2ZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUxldmVsOiBTYmJUaXRsZUxldmVsIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgbW9yZSB0aGFuIG9uZSBzYmItZXhwYW5zaW9uLXBhbmVsIGNhbiBiZSBvcGVuIGF0IHRoZSBzYW1lIHRpbWUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoXG4gICAgKGU6IFNiYkFjY29yZGlvbkVsZW1lbnQsIG5ld1ZhbHVlOiBib29sZWFuLCBvbGRWYWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkgPT5cbiAgICAgIGUuX3Jlc2V0RXhwYW5zaW9uUGFuZWxzKG5ld1ZhbHVlLCAhIW9sZFZhbHVlKSxcbiAgKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgJ3dpbGxPcGVuJyxcbiAgICAgIGFzeW5jIChlOiBDdXN0b21FdmVudDx2b2lkPikgPT4ge1xuICAgICAgICBpZiAoIShhd2FpdCBpc0V2ZW50UHJldmVudGVkKGUpKSkge1xuICAgICAgICAgIHRoaXMuX2Nsb3NlUGFuZWxzKGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBXZSB1c2UgY2FwdHVyZSBoZXJlLCBiZWNhdXNlIHdpbGxPcGVuIGRvZXMgbm90IGJ1YmJsZS5cbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2V4cGFuc2lvblBhbmVscygpOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1leHBhbnNpb24tcGFuZWwnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZVBhbmVscyhlOiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGlmICgoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5sb2NhbE5hbWUgIT09ICdzYmItZXhwYW5zaW9uLXBhbmVsJyB8fCB0aGlzLm11bHRpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZXhwYW5zaW9uUGFuZWxzKClcbiAgICAgIC5maWx0ZXIoKHBhbmVsKSA9PiBwYW5lbCAhPT0gZS50YXJnZXQpXG4gICAgICAuZm9yRWFjaCgocGFuZWwpID0+IChwYW5lbC5leHBhbmRlZCA9IGZhbHNlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fZXhwYW5zaW9uUGFuZWxzKCkuZm9yRWFjaChcbiAgICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQpID0+IChwYW5lbC5zaXplID0gdGhpcy5zaXplKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRFeHBhbnNpb25QYW5lbHMobmV3VmFsdWU6IGJvb2xlYW4sIG9sZFZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gSWYgaXQncyBjaGFuZ2luZyBmcm9tIFwibXVsdGkgPSB0cnVlXCIgdG8gXCJtdWx0aSA9IGZhbHNlXCIsIG9wZW4gdGhlIGZpcnN0IHBhbmVsIGFuZCBjbG9zZSBhbGwgdGhlIG90aGVycy5cbiAgICBjb25zdCBleHBhbnNpb25QYW5lbHMgPSB0aGlzLl9leHBhbnNpb25QYW5lbHMoKTtcbiAgICBpZiAoZXhwYW5zaW9uUGFuZWxzLmxlbmd0aCA+IDEgJiYgb2xkVmFsdWUgJiYgIW5ld1ZhbHVlKSB7XG4gICAgICBleHBhbnNpb25QYW5lbHNbMF0uZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgZXhwYW5zaW9uUGFuZWxzXG4gICAgICAgIC5maWx0ZXIoKF8sIGluZGV4OiBudW1iZXIpID0+IGluZGV4ID4gMClcbiAgICAgICAgLmZvckVhY2goKHBhbmVsKSA9PiAocGFuZWwuZXhwYW5kZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldFRpdGxlTGV2ZWxPbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpLmZvckVhY2goXG4gICAgICAocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCkgPT4gKHBhbmVsLnRpdGxlTGV2ZWwgPSB0aGlzLnRpdGxlTGV2ZWwpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpLmZvckVhY2goXG4gICAgICAocGFuZWw6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudFtdKSA9PiB7XG4gICAgICAgIHBhbmVsLnRpdGxlTGV2ZWwgPSB0aGlzLnRpdGxlTGV2ZWw7XG4gICAgICAgIHBhbmVsLnNpemUgPSB0aGlzLnNpemU7XG4gICAgICAgIHBhbmVsLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24tZmlyc3QnLCBpbmRleCA9PT0gMCk7XG4gICAgICAgIHBhbmVsLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY2NvcmRpb24tbGFzdCcsIGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hY2NvcmRpb25cIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWNjb3JkaW9uJzog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
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/autocomplete/autocomplete-base-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/autocomplete/autocomplete-base-element.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export declare class SbbAutocompleteGridOptionElement extends SbbOptionBaseEleme
23
23
  protected selectionChange: EventEmitter;
24
24
  /** Emits when an option was selected by user. */
25
25
  protected optionSelected: EventEmitter;
26
- protected onOptionAttributesChange(mutationsList: MutationRecord[]): void;
26
+ protected onExternalMutation(mutationsList: MutationRecord[]): void;
27
27
  willUpdate(changedProperties: PropertyValues<this>): void;
28
28
  protected setAttributeFromParent(): void;
29
29
  protected selectByClick(event: MouseEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-grid-option.d.ts","sourceRoot":"","sources":["../../../../../src/elements/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD,eAAO,MAAM,wBAAwB,EAAE,MAAuC,CAAC;AAE/E;;;;;;;;;GASG;AACH,qBAKM,gCAAiC,SAAQ,oBAAoB;IACjE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,SAAS,CAAC,QAAQ,SAA4B;IAE9C,sDAAsD;IACtD,SAAS,CAAC,eAAe,EAAE,YAAY,CAGrC;IAEF,iDAAiD;IACjD,SAAS,CAAC,cAAc,EAAE,YAAY,CAGpC;cAEiB,wBAAwB,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI;IAQlE,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWzE,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAexC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAQjD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,8BAA8B,EAAE,gCAAgC,CAAC;KAClE;IAED,UAAU,2BAA2B;QACnC,iCAAiC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;KACtD;CACF"}
1
+ {"version":3,"file":"autocomplete-grid-option.d.ts","sourceRoot":"","sources":["../../../../../src/elements/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD,eAAO,MAAM,wBAAwB,EAAE,MAAuC,CAAC;AAE/E;;;;;;;;;GASG;AACH,qBAKM,gCAAiC,SAAQ,oBAAoB;IACjE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,SAAS,CAAC,QAAQ,SAA4B;IAE9C,sDAAsD;IACtD,SAAS,CAAC,eAAe,EAAE,YAAY,CAGrC;IAEF,iDAAiD;IACjD,SAAS,CAAC,cAAc,EAAE,YAAY,CAGpC;cAEiB,kBAAkB,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI;IAQ5D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWzE,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAexC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAQjD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,8BAA8B,EAAE,gCAAgC,CAAC;KAClE;IAED,UAAU,2BAA2B;QACnC,iCAAiC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;KACtD;CACF"}
@@ -89,9 +89,9 @@ let SbbAutocompleteGridOptionElement = (() => {
89
89
  this.selectionChange = new EventEmitter(this, SbbAutocompleteGridOptionElement2.events.selectionChange);
90
90
  this.optionSelected = new EventEmitter(this, SbbAutocompleteGridOptionElement2.events.optionSelected);
91
91
  }
92
- onOptionAttributesChange(mutationsList) {
92
+ onExternalMutation(mutationsList) {
93
93
  var _a2, _b;
94
- super.onOptionAttributesChange(mutationsList);
94
+ super.onExternalMutation(mutationsList);
95
95
  (_b = (_a2 = this.closest) == null ? void 0 : _a2.call(this, "sbb-autocomplete-grid-row")) == null ? void 0 : _b.toggleAttribute("data-disabled", this.disabled || this.disabledFromGroup);
96
96
  }
97
97
  willUpdate(changedProperties) {
@@ -135,4 +135,4 @@ export {
135
135
  SbbAutocompleteGridOptionElement,
136
136
  autocompleteGridOptionId
137
137
  };
138
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlLWdyaWQvYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uL2F1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmV4cG9ydCBjb25zdCBhdXRvY29tcGxldGVHcmlkT3B0aW9uSWQ6IHN0cmluZyA9IGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uYDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBvcHRpb24gbGFiZWwuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGljb24uIElmIGBpY29uLW5hbWVgIGlzIHNldCwgYSBzYmItaWNvbiB3aWxsIGJlIHVzZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBhdXRvY29tcGxldGVPcHRpb25TZWxlY3Rpb25DaGFuZ2UgLSBFbWl0cyB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgLSBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheT1ub25lXSAtIENhbiBiZSB1c2VkIHRvIHJlc2VydmUgc3BhY2UgZXZlblxuICogd2hlbiBwcmVzZXJ2ZS1pY29uLXNwYWNlIG9uIGF1dG9jb21wbGV0ZSBpcyBub3Qgc2V0IG9yIGljb25OYW1lIGlzIG5vdCBzZXQuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ2dyaWRjZWxsJyxcbn0pXG5jbGFzcyBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCBleHRlbmRzIFNiYk9wdGlvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGlvbkNoYW5nZTogJ2F1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGlvbkNoYW5nZScsXG4gICAgb3B0aW9uU2VsZWN0ZWQ6ICdhdXRvY29tcGxldGVPcHRpb25TZWxlY3RlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJvdGVjdGVkIG9wdGlvbklkID0gYXV0b2NvbXBsZXRlR3JpZE9wdGlvbklkO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLiAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQuZXZlbnRzLnNlbGVjdGlvbkNoYW5nZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50LmV2ZW50cy5vcHRpb25TZWxlY3RlZCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25PcHRpb25BdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBzdXBlci5vbk9wdGlvbkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdCk7XG4gICAgdGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1yb3cnKT8udG9nZ2xlQXR0cmlidXRlKFxuICAgICAgJ2RhdGEtZGlzYWJsZWQnLFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3Nlc3Q/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpPy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAgICdkYXRhLWRpc2FibGVkJyxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwLFxuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50R3JvdXAgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRncm91cCcpO1xuICAgIGlmIChwYXJlbnRHcm91cCkge1xuICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHBhcmVudEdyb3VwLmRpc2FibGVkO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZXN0KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93Jyk/LnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLWRpc2FibGVkJyxcbiAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCxcbiAgICApO1xuXG4gICAgdGhpcy5uZWdhdGl2ZSA9ICEhdGhpcy5jbG9zZXN0KGA6aXMoc2JiLWF1dG9jb21wbGV0ZS1ncmlkW25lZ2F0aXZlXSxzYmItZm9ybS1maWVsZFtuZWdhdGl2ZV0pYCk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbic6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0aW9uQ2hhbmdlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sTUFBTSwyQkFBbUM7SUFpQjFDLG9DQUFnQyxNQUFBOztBQUpyQyxNQUFBLG1CQUFBLENBQUEsY0FBYyw4QkFBOEIsR0FDNUMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUCxDQUFDOzs7O29CQUM2QztBQUFSQSxNQUFBQSxxQ0FBQSxtQkFBUSxZQUFvQjtBQUFBOztBQU92RCxXQUFRLFdBQUc7QUFHWCxXQUFBLGtCQUFnQyxJQUFJLGFBQzVDLE1BQ0FBLGtDQUFpQyxPQUFPLGVBQWU7QUFJL0MsV0FBQSxpQkFBK0IsSUFBSSxhQUMzQyxNQUNBQSxrQ0FBaUMsT0FBTyxjQUFjO0FBQUEsSUFBQTtBQUFBLElBR3JDLHlCQUF5QixlQUErQjs7QUFDekUsWUFBTSx5QkFBeUIsYUFBYTtBQUN2QyxhQUFBQyxNQUFBLEtBQUEsWUFBQSxnQkFBQUEsSUFBQSxXQUFVLGlDQUFWLG1CQUF3QyxnQkFDM0MsaUJBQ0EsS0FBSyxZQUFZLEtBQUs7QUFBQSxJQUFpQjtBQUFBLElBSTNCLFdBQVcsbUJBQXVDOztBQUNoRSxZQUFNLFdBQVcsaUJBQWlCO0FBQzlCLFVBQUEsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ2hDLGVBQUFBLE1BQUEsS0FBQSxZQUFBLGdCQUFBQSxJQUFBLFdBQVUsaUNBQVYsbUJBQXdDLGdCQUMzQyxpQkFDQSxLQUFLLFlBQVksS0FBSztBQUV4QixhQUFLLG1CQUFrQjtBQUFBLE1BQUE7QUFBQSxJQUN6QjtBQUFBLElBR1EseUJBQXNCOztBQUN4QixZQUFBLGNBQWMsS0FBSyxRQUFRLGdDQUFnQztBQUNqRSxVQUFJLGFBQWE7QUFDZixhQUFLLG9CQUFvQixZQUFZO0FBQ3JDLGFBQUssbUJBQWtCO0FBQUEsTUFBQTtBQUVwQixPQUFBQSxNQUFBLEtBQUEsUUFBUSwyQkFBMkIsTUFBbkMsZ0JBQUFBLElBQXNDLGdCQUN6QyxpQkFDQSxLQUFLLFlBQVksS0FBSztBQUd4QixXQUFLLFdBQVcsQ0FBQyxDQUFDLEtBQUssUUFBUSwrREFBK0Q7QUFDekYsV0FBQSxnQkFBZ0IsaUJBQWlCLEtBQUssUUFBUTtBQUFBLElBQUE7QUFBQSxJQUczQyxjQUFjLE9BQWlCO0FBQ25DLFVBQUEsS0FBSyxZQUFZLEtBQUssbUJBQW1CO0FBQzNDLGNBQU0sZ0JBQWU7QUFDckI7QUFBQSxNQUFBO0FBR0YsV0FBSyw4QkFBOEIsSUFBSTtBQUFBLElBQUE7QUFBQTs7QUE3RDNDLGlCQStEQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBOUR3QixHQUFNLFNBQW1CLE9BQ3pCLEdBQUEsU0FBUztBQUFBLElBQzlCLGlCQUFpQjtBQUFBLElBQ2pCLGdCQUFnQjtBQUFBLEVBQ1IsR0FMTixrQkFBZ0MsWUFBQSx1QkFBQSxHQUFDOzs7In0=
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlLWdyaWQvYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uL2F1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmV4cG9ydCBjb25zdCBhdXRvY29tcGxldGVHcmlkT3B0aW9uSWQ6IHN0cmluZyA9IGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uYDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBvcHRpb24gbGFiZWwuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGljb24uIElmIGBpY29uLW5hbWVgIGlzIHNldCwgYSBzYmItaWNvbiB3aWxsIGJlIHVzZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBhdXRvY29tcGxldGVPcHRpb25TZWxlY3Rpb25DaGFuZ2UgLSBFbWl0cyB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgLSBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheT1ub25lXSAtIENhbiBiZSB1c2VkIHRvIHJlc2VydmUgc3BhY2UgZXZlblxuICogd2hlbiBwcmVzZXJ2ZS1pY29uLXNwYWNlIG9uIGF1dG9jb21wbGV0ZSBpcyBub3Qgc2V0IG9yIGljb25OYW1lIGlzIG5vdCBzZXQuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ2dyaWRjZWxsJyxcbn0pXG5jbGFzcyBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCBleHRlbmRzIFNiYk9wdGlvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGlvbkNoYW5nZTogJ2F1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGlvbkNoYW5nZScsXG4gICAgb3B0aW9uU2VsZWN0ZWQ6ICdhdXRvY29tcGxldGVPcHRpb25TZWxlY3RlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJvdGVjdGVkIG9wdGlvbklkID0gYXV0b2NvbXBsZXRlR3JpZE9wdGlvbklkO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLiAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQuZXZlbnRzLnNlbGVjdGlvbkNoYW5nZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50LmV2ZW50cy5vcHRpb25TZWxlY3RlZCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25FeHRlcm5hbE11dGF0aW9uKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBzdXBlci5vbkV4dGVybmFsTXV0YXRpb24obXV0YXRpb25zTGlzdCk7XG4gICAgdGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1yb3cnKT8udG9nZ2xlQXR0cmlidXRlKFxuICAgICAgJ2RhdGEtZGlzYWJsZWQnLFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3Nlc3Q/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpPy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAgICdkYXRhLWRpc2FibGVkJyxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwLFxuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50R3JvdXAgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRncm91cCcpO1xuICAgIGlmIChwYXJlbnRHcm91cCkge1xuICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHBhcmVudEdyb3VwLmRpc2FibGVkO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZXN0KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93Jyk/LnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLWRpc2FibGVkJyxcbiAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCxcbiAgICApO1xuXG4gICAgdGhpcy5uZWdhdGl2ZSA9ICEhdGhpcy5jbG9zZXN0KGA6aXMoc2JiLWF1dG9jb21wbGV0ZS1ncmlkW25lZ2F0aXZlXSxzYmItZm9ybS1maWVsZFtuZWdhdGl2ZV0pYCk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbic6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0aW9uQ2hhbmdlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sTUFBTSwyQkFBbUM7SUFpQjFDLG9DQUFnQyxNQUFBOztBQUpyQyxNQUFBLG1CQUFBLENBQUEsY0FBYyw4QkFBOEIsR0FDNUMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUCxDQUFDOzs7O29CQUM2QztBQUFSQSxNQUFBQSxxQ0FBQSxtQkFBUSxZQUFvQjtBQUFBOztBQU92RCxXQUFRLFdBQUc7QUFHWCxXQUFBLGtCQUFnQyxJQUFJLGFBQzVDLE1BQ0FBLGtDQUFpQyxPQUFPLGVBQWU7QUFJL0MsV0FBQSxpQkFBK0IsSUFBSSxhQUMzQyxNQUNBQSxrQ0FBaUMsT0FBTyxjQUFjO0FBQUEsSUFBQTtBQUFBLElBR3JDLG1CQUFtQixlQUErQjs7QUFDbkUsWUFBTSxtQkFBbUIsYUFBYTtBQUNqQyxhQUFBQyxNQUFBLEtBQUEsWUFBQSxnQkFBQUEsSUFBQSxXQUFVLGlDQUFWLG1CQUF3QyxnQkFDM0MsaUJBQ0EsS0FBSyxZQUFZLEtBQUs7QUFBQSxJQUFpQjtBQUFBLElBSTNCLFdBQVcsbUJBQXVDOztBQUNoRSxZQUFNLFdBQVcsaUJBQWlCO0FBQzlCLFVBQUEsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ2hDLGVBQUFBLE1BQUEsS0FBQSxZQUFBLGdCQUFBQSxJQUFBLFdBQVUsaUNBQVYsbUJBQXdDLGdCQUMzQyxpQkFDQSxLQUFLLFlBQVksS0FBSztBQUV4QixhQUFLLG1CQUFrQjtBQUFBLE1BQUE7QUFBQSxJQUN6QjtBQUFBLElBR1EseUJBQXNCOztBQUN4QixZQUFBLGNBQWMsS0FBSyxRQUFRLGdDQUFnQztBQUNqRSxVQUFJLGFBQWE7QUFDZixhQUFLLG9CQUFvQixZQUFZO0FBQ3JDLGFBQUssbUJBQWtCO0FBQUEsTUFBQTtBQUVwQixPQUFBQSxNQUFBLEtBQUEsUUFBUSwyQkFBMkIsTUFBbkMsZ0JBQUFBLElBQXNDLGdCQUN6QyxpQkFDQSxLQUFLLFlBQVksS0FBSztBQUd4QixXQUFLLFdBQVcsQ0FBQyxDQUFDLEtBQUssUUFBUSwrREFBK0Q7QUFDekYsV0FBQSxnQkFBZ0IsaUJBQWlCLEtBQUssUUFBUTtBQUFBLElBQUE7QUFBQSxJQUczQyxjQUFjLE9BQWlCO0FBQ25DLFVBQUEsS0FBSyxZQUFZLEtBQUssbUJBQW1CO0FBQzNDLGNBQU0sZ0JBQWU7QUFDckI7QUFBQSxNQUFBO0FBR0YsV0FBSyw4QkFBOEIsSUFBSTtBQUFBLElBQUE7QUFBQTs7QUE3RDNDLGlCQStEQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBOUR3QixHQUFNLFNBQW1CLE9BQ3pCLEdBQUEsU0FBUztBQUFBLElBQzlCLGlCQUFpQjtBQUFBLElBQ2pCLGdCQUFnQjtBQUFBLEVBQ1IsR0FMTixrQkFBZ0MsWUFBQSx1QkFBQSxHQUFDOzs7In0=
@@ -8,7 +8,7 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
8
8
  import { __runInitializers, __esDecorate } from "tslib";
9
9
  import { property, customElement } from "lit/decorators.js";
10
10
  import { getNextElementIndex } from "./core/a11y.js";
11
- import { forceType, hostAttributes } from "./core/decorators.js";
11
+ import { hostAttributes, forceType } from "./core/decorators.js";
12
12
  import { isZeroAnimationDuration, findReferencedElement, isSafari } from "./core/dom.js";
13
13
  import { isEventOnElement, setOverlayPosition, removeAriaComboBoxAttributes, overlayGapFixCorners, setAriaComboBoxAttributes } from "./core/overlay.js";
14
14
  import { css, isServer, html, nothing } from "lit";
@@ -89,6 +89,10 @@ const style = css`*,
89
89
  --sbb-autocomplete-z-index,
90
90
  var(--sbb-overlay-default-z-index)
91
91
  );
92
+ display: none;
93
+ }
94
+
95
+ :host([data-state]:not([data-state=closed])) {
92
96
  display: block;
93
97
  }
94
98
 
@@ -291,6 +295,12 @@ const style = css`*,
291
295
  const ariaRoleOnHost$1 = isSafari;
292
296
  let SbbAutocompleteBaseElement = (() => {
293
297
  var _origin_accessor_storage, _trigger_accessor_storage, _preserveIconSpace_accessor_storage, _a;
298
+ let _classDecorators = [hostAttributes({
299
+ popover: "manual"
300
+ })];
301
+ let _classDescriptor;
302
+ let _classExtraInitializers = [];
303
+ let _classThis;
294
304
  let _classSuper = SbbNegativeMixin(SbbHydrationMixin(SbbOpenCloseBaseElement));
295
305
  let _origin_decorators;
296
306
  let _origin_initializers = [];
@@ -301,7 +311,7 @@ let SbbAutocompleteBaseElement = (() => {
301
311
  let _preserveIconSpace_decorators;
302
312
  let _preserveIconSpace_initializers = [];
303
313
  let _preserveIconSpace_extraInitializers = [];
304
- return _a = class extends _classSuper {
314
+ _a = class extends _classSuper {
305
315
  constructor() {
306
316
  super(...arguments);
307
317
  __privateAdd(this, _origin_accessor_storage);
@@ -364,12 +374,14 @@ let SbbAutocompleteBaseElement = (() => {
364
374
  }
365
375
  /** Opens the autocomplete. */
366
376
  open() {
377
+ var _a2;
367
378
  if (this.state !== "closed" || !this._overlay || this.options.length === 0 || this._readonly()) {
368
379
  return;
369
380
  }
370
381
  if (!this.willOpen.emit()) {
371
382
  return;
372
383
  }
384
+ (_a2 = this.showPopover) == null ? void 0 : _a2.call(this);
373
385
  this.state = "opening";
374
386
  this._setOverlayPosition();
375
387
  if (this._isZeroAnimationDuration()) {
@@ -543,9 +555,10 @@ let SbbAutocompleteBaseElement = (() => {
543
555
  this.didOpen.emit();
544
556
  }
545
557
  _handleClosing() {
546
- var _a2;
558
+ var _a2, _b;
547
559
  this.state = "closed";
548
- (_a2 = this.triggerElement) == null ? void 0 : _a2.setAttribute("aria-expanded", "false");
560
+ (_a2 = this.hidePopover) == null ? void 0 : _a2.call(this);
561
+ (_b = this.triggerElement) == null ? void 0 : _b.setAttribute("aria-expanded", "false");
549
562
  this.resetActiveElement();
550
563
  this._optionContainer.scrollTop = 0;
551
564
  this.didClose.emit();
@@ -621,7 +634,7 @@ let SbbAutocompleteBaseElement = (() => {
621
634
  </div>
622
635
  `;
623
636
  }
624
- }, _origin_accessor_storage = new WeakMap(), _trigger_accessor_storage = new WeakMap(), _preserveIconSpace_accessor_storage = new WeakMap(), (() => {
637
+ }, _origin_accessor_storage = new WeakMap(), _trigger_accessor_storage = new WeakMap(), _preserveIconSpace_accessor_storage = new WeakMap(), _classThis = _a, (() => {
625
638
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
626
639
  _origin_decorators = [property()];
627
640
  _trigger_decorators = [property()];
@@ -635,8 +648,11 @@ let SbbAutocompleteBaseElement = (() => {
635
648
  __esDecorate(_a, null, _preserveIconSpace_decorators, { kind: "accessor", name: "preserveIconSpace", static: false, private: false, access: { has: (obj) => "preserveIconSpace" in obj, get: (obj) => obj.preserveIconSpace, set: (obj, value) => {
636
649
  obj.preserveIconSpace = value;
637
650
  } }, metadata: _metadata }, _preserveIconSpace_initializers, _preserveIconSpace_extraInitializers);
638
- if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
639
- })(), _a.styles = style, _a;
651
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
652
+ _classThis = _classDescriptor.value;
653
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
654
+ })(), _a.styles = style, __runInitializers(_classThis, _classExtraInitializers), _a;
655
+ return _classThis;
640
656
  })();
641
657
  let nextId = 0;
642
658
  const ariaRoleOnHost = isSafari;
@@ -731,4 +747,4 @@ export {
731
747
  SbbAutocompleteBaseElement,
732
748
  SbbAutocompleteElement
733
749
  };
734
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQudHMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50LCBpc1NhZmFyaSwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluLCBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7XG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIG92ZXJsYXlHYXBGaXhDb3JuZXJzLFxuICByZW1vdmVBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzLFxuICBzZXRPdmVybGF5UG9zaXRpb24sXG59IGZyb20gJy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLWJhc2UtZWxlbWVudC5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgXCJjbG9zZXJcIiB0byB0aGUgb3B0aW9ucywgb3IgZWxzZSBvcHRncm91cHMgd29uJ3Qgd29yay5cbiAqL1xuY29uc3QgYXJpYVJvbGVPbkhvc3QgPSBpc1NhZmFyaTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiSHlkcmF0aW9uTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB3aGVyZSB0aGUgYXV0b2NvbXBsZXRlIHdpbGwgYXR0YWNoOyBhY2NlcHRzIGJvdGggYW4gZWxlbWVudCdzIGlkIG9yIGFuIEhUTUxFbGVtZW50LlxuICAgKiBJZiBub3Qgc2V0LCBpdCB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpcnN0ICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igb3JpZ2luOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmc7IGFjY2VwdHMgYm90aCBhbiBlbGVtZW50J3MgaWQgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhdXRvY29tcGxldGUgd2lsbCBvcGVuIG9uIGZvY3VzLCBjbGljaywgaW5wdXQgb3IgYEFycm93RG93bmAga2V5cHJlc3Mgb2YgdGhlICd0cmlnZ2VyJyBlbGVtZW50LlxuICAgKiBJZiBub3Qgc2V0LCB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpcnN0ICdpbnB1dCcgY2hpbGQgb2YgYSAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IHN0cmluZyB8IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGUgaWNvbiBzcGFjZSBpcyBwcmVzZXJ2ZWQgd2hlbiBubyBpY29uIGlzIHNldC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3ByZXNlcnZlLWljb24tc3BhY2UnLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwcmVzZXJ2ZUljb25TcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIGF1dG9jb21wbGV0ZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvLiAqL1xuICBwdWJsaWMgZ2V0IG9yaWdpbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGlmICghdGhpcy5fb3JpZ2luRWxlbWVudCkge1xuICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHRoaXMuX2ZpbmRPcmlnaW5FbGVtZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5FbGVtZW50O1xuICB9XG4gIHByaXZhdGUgX29yaWdpbkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBlbGVtZW50LiAqL1xuICBwdWJsaWMgZ2V0IHRyaWdnZXJFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcmxheUlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwYW5lbFJvbGU6IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIE5vIGxvbmdlciB1c2VkIGludGVybmFsbHkuICovXG4gIHByb3RlY3RlZCBhYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX292ZXJsYXkhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3B0aW9uQ29udGFpbmVyITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9kaWRMb2FkID0gZmFsc2U7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25CYXNlRWxlbWVudFtdO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc3luY05lZ2F0aXZlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3RCeUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQ7XG5cbiAgLyoqIE9wZW5zIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnIHx8XG4gICAgICAhdGhpcy5fb3ZlcmxheSB8fFxuICAgICAgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgdGhpcy5fcmVhZG9ubHkoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgYXV0b2NvbXBsZXRlLiAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy53aWxsQ2xvc2UuZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLmFib3J0KCk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmIChhcmlhUm9sZU9uSG9zdCkge1xuICAgICAgdGhpcy5pZCB8fD0gdGhpcy5vdmVybGF5SWQ7XG4gICAgfVxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKSA/PyB0aGlzLmNsb3Nlc3QoJ1tkYXRhLWZvcm0tZmllbGRdJyk7XG5cbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gZm9ybUZpZWxkLmhhc0F0dHJpYnV0ZSgnbmVnYXRpdmUnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZGlkTG9hZCkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKFxuICAgICAgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3JpZ2luJykgJiYgdGhpcy5vcmlnaW4gIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnb3JpZ2luJykpIHx8XG4gICAgICAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0cmlnZ2VyJykgJiYgdGhpcy50cmlnZ2VyICE9PSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3RyaWdnZXInKSlcbiAgICApIHtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFNldHVwKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJykpIHtcbiAgICAgIHRoaXMuc3luY05lZ2F0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB0aGlzLl9kaWRMb2FkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQsIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgYW5kIGNsb3NlIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHByb3RlY3RlZCBvbk9wdGlvblNlbGVjdGVkKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBTYmJPcHRpb25CYXNlRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5zZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERlc2VsZWN0IHRoZSBwcmV2aW91cyBvcHRpb25zXG4gICAgdGhpcy5vcHRpb25zXG4gICAgICAuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5pZCAhPT0gdGFyZ2V0LmlkICYmIG9wdGlvbi5zZWxlY3RlZClcbiAgICAgIC5mb3JFYWNoKChvcHRpb24pID0+IChvcHRpb24uc2VsZWN0ZWQgPSBmYWxzZSkpO1xuXG4gICAgaWYgKHRoaXMudHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIC8vIFNldCB0aGUgb3B0aW9uIHZhbHVlXG4gICAgICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IFJlYWN0IG9uQ2hhbmdlIGV2ZW50LCB3ZSBoYXZlIHRvIGdldCB0aGUgc2V0dGVyIGFuZCBjYWxsIGl0LlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTYwMCNpc3N1ZWNvbW1lbnQtMzQ1ODEzMTMwXG4gICAgICBjb25zdCBzZXRWYWx1ZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTElucHV0RWxlbWVudC5wcm90b3R5cGUsICd2YWx1ZScpIS5zZXQhO1xuICAgICAgc2V0VmFsdWUuY2FsbCh0aGlzLnRyaWdnZXJFbGVtZW50LCB0YXJnZXQudmFsdWUpO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucyh0aGlzLnRyaWdnZXJFbGVtZW50Py52YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgaW5oZXJpdCAncmVhZG9ubHknIHN0YXRlIGZyb20gdGhlIHRyaWdnZXIuICovXG4gIHByaXZhdGUgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9jb21wb25lbnRTZXR1cCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIHRoaXMuX29yaWdpbkVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1vcHRpb24tcGFuZWwtb3JpZ2luLWJvcmRlcmxlc3MnLFxuICAgICAgISF0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8uaGFzQXR0cmlidXRlKCdib3JkZXJsZXNzJyksXG4gICAgKTtcblxuICAgIHRoaXMuX2JpbmRUbyh0aGlzLl9nZXRUcmlnZ2VyRWxlbWVudCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZWxlbWVudCB3aGVyZSB0aGUgYXV0b2NvbXBsZXRlIHdpbGwgYmUgYXR0YWNoZWQuXG4gICAqIEByZXR1cm5zICdvcmlnaW4nIG9yIHRoZSBmaXJzdCAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKi9cbiAgcHJpdmF0ZSBfZmluZE9yaWdpbkVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGxldCByZXN1bHQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPy4oJyNvdmVybGF5LWFuY2hvcicpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQodGhpcy5vcmlnaW4pO1xuICAgIH1cblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgZmluZCB0aGUgb3JpZ2luIGVsZW1lbnQuIFBsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZWxlbWVudCBvciByZWFkIHRoZSBcIm9yaWdpblwiIHByb3AgZG9jdW1lbnRhdGlvbicsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIGF1dG9jb21wbGV0ZSBvcGVuaW5nLlxuICAgKiBAcmV0dXJucyAndHJpZ2dlcicgb3IgdGhlIGZpcnN0ICdpbnB1dCcgaW5zaWRlIHRoZSBvcmlnaW4gZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgX2dldFRyaWdnZXJFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIGlmICghdGhpcy50cmlnZ2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8SFRNTElucHV0RWxlbWVudD4odGhpcy50cmlnZ2VyKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgZmluZCB0aGUgdHJpZ2dlciBlbGVtZW50LiBQbGVhc2Ugc3BlY2lmeSBhIHZhbGlkIGVsZW1lbnQgb3IgcmVhZCB0aGUgXCJ0cmlnZ2VyXCIgcHJvcCBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX2JpbmRUbyh0cmlnZ2VyRWxlbTogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghdHJpZ2dlckVsZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBhdHRyaWJ1dGVzIHRvIHRoZSBvbGQgdHJpZ2dlciBhbmQgYWRkIHRoZW0gdG8gdGhlIG5ldyBvbmVcbiAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyQXR0cmlidXRlcyh0aGlzLnRyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLnNldFRyaWdnZXJBdHRyaWJ1dGVzKHRyaWdnZXJFbGVtKTtcblxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlckVsZW07XG5cbiAgICB0aGlzLl9zZXR1cFRyaWdnZXJFdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwVHJpZ2dlckV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIE9wZW4gdGhlIG92ZXJsYXkgb24gZm9jdXMsIGNsaWNrLCBpbnB1dCBhbmQgYEFycm93RG93bmAgZXZlbnRcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2lucHV0JyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucygoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQpLFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICAvLyBTZXQgb3ZlcmxheSBwb3NpdGlvbiwgd2lkdGggYW5kIG1heCBoZWlnaHRcbiAgcHJpdmF0ZSBfc2V0T3ZlcmxheVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHNldE92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMuX292ZXJsYXksXG4gICAgICB0aGlzLm9yaWdpbkVsZW1lbnQsXG4gICAgICB0aGlzLl9vcHRpb25Db250YWluZXIsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItYXV0b2NvbXBsZXRlX19jb250YWluZXInKSEsXG4gICAgICB0aGlzLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT24gb3Blbi9jbG9zZSBhbmltYXRpb24gZW5kLlxuICAgKiBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAgKiBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICB0aGlzLnJlc2V0QWN0aXZlRWxlbWVudCgpO1xuICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lci5zY3JvbGxUb3AgPSAwO1xuICAgIHRoaXMuZGlkQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoT3BlblBhbmVsRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBSZWNhbGN1bGF0ZSB0aGUgb3ZlcmxheSBwb3NpdGlvbiBvbiBzY3JvbGwgYW5kIHdpbmRvdyByZXNpemVcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAvLyBXaXRob3V0IGNhcHR1cmUsIG90aGVyIHNjcm9sbCBjb250ZXh0cyB3b3VsZCBub3QgYnViYmxlIHRvIHRoaXMgZXZlbnQgbGlzdGVuZXIuXG4gICAgICAvLyBDYXB0dXJlIGFsbG93cyB1cyB0byByZWFjdCB0byBhbGwgc2Nyb2xsIGNvbnRleHRzIGluIHRoaXMgRE9NLlxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgYXV0b2NvbXBsZXRlIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGV2KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldiksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBLZXlib2FyZCBpbnRlcmFjdGlvbnNcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLm9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgbWVudS5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25NZW51ID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLl9vdmVybGF5LCBldmVudCk7XG4gIH07XG5cbiAgLy8gSWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgdGhlIGF1dG9jb21wbGV0ZSwgY2xvc2VzIHRoZSBwYW5lbC5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5vcmlnaW5FbGVtZW50LCBldmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfY2xvc2VkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtID09PSBudWxsIHx8IHNlYXJjaFRlcm0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uaGlnaGxpZ2h0KHNlYXJjaFRlcm0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ/OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2dhcC1maXhcIj4ke292ZXJsYXlHYXBGaXhDb3JuZXJzKCl9PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19wYW5lbFwiXG4gICAgICAgICAgP2RhdGEtb3Blbj0ke3RoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJ31cbiAgICAgICAgICAke3JlZigob3ZlcmxheVJlZj86IEVsZW1lbnQpID0+ICh0aGlzLl9vdmVybGF5ID0gb3ZlcmxheVJlZiBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19vcHRpb25zXCJcbiAgICAgICAgICAgICAgcm9sZT0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMucGFuZWxSb2xlIDogbm90aGluZ31cbiAgICAgICAgICAgICAgaWQ9JHshYXJpYVJvbGVPbkhvc3QgPyB0aGlzLm92ZXJsYXlJZCA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzU2FmYXJpIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyB9IGZyb20gJy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdEdyb3VwRWxlbWVudCwgU2JiT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IH0gZnJvbSAnLi9hdXRvY29tcGxldGUtYmFzZS1lbGVtZW50LmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgYXJpYSByb2xlICdsaXN0Ym94JyBtdXN0IGJlIG9uIHRoZSBob3N0IGVsZW1lbnQsIG9yIGVsc2UgVm9pY2VPdmVyIHdvbid0IHdvcmsgYXQgYWxsLlxuICogT24gdGhlIG90aGVyIGhhbmQsIEpBV1MgYW5kIE5WREEgbmVlZCB0aGUgcm9sZSB0byBiZSBcImNsb3NlclwiIHRvIHRoZSBvcHRpb25zLCBvciBlbHNlIG9wdGdyb3VwcyB3b24ndCB3b3JrLlxuICovXG5jb25zdCBhcmlhUm9sZU9uSG9zdCA9IGlzU2FmYXJpO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1vcHRpb25gIG9yIGBzYmItb3B0Z3JvdXBgIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBpcyBjbG9zZWQuXG4gKiBAY3NzcHJvcCBbLS1zYmItYXV0b2NvbXBsZXRlLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWF1dG9jb21wbGV0ZScpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiBhcmlhUm9sZU9uSG9zdCA/ICdsaXN0Ym94JyA6IG51bGwsXG59KVxuY2xhc3MgU2JiQXV0b2NvbXBsZXRlRWxlbWVudCBleHRlbmRzIFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IHtcbiAgcHJvdGVjdGVkIG92ZXJsYXlJZCA9IGBzYmItYXV0b2NvbXBsZXRlLSR7KytuZXh0SWR9YDtcbiAgcHJvdGVjdGVkIHBhbmVsUm9sZSA9ICdsaXN0Ym94JztcbiAgcHJpdmF0ZSBfYWN0aXZlSXRlbUluZGV4ID0gLTE7XG5cbiAgcHJvdGVjdGVkIGdldCBvcHRpb25zKCk6IFNiYk9wdGlvbkVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1vcHRpb24nKSA/PyBbXSk7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Lignb3B0aW9uU2VsZWN0aW9uQ2hhbmdlJywgKGU6IEN1c3RvbUV2ZW50PHZvaWQ+KSA9PlxuICAgICAgdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3luY05lZ2F0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItZGl2aWRlcicpLmZvckVhY2goKGRpdmlkZXIpID0+IChkaXZpZGVyLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZSkpO1xuXG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiT3B0aW9uRWxlbWVudCB8IFNiYk9wdEdyb3VwRWxlbWVudD4oXG4gICAgICAnc2JiLW9wdGlvbiwgc2JiLW9wdGdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICB0aGlzLnNlbGVjdEJ5S2V5Ym9hcmQoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0QnlLZXlib2FyZChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5vcHRpb25zW3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF07XG5cbiAgICBpZiAoYWN0aXZlT3B0aW9uKSB7XG4gICAgICBhY3RpdmVPcHRpb24uc2V0U2VsZWN0ZWRWaWFVc2VySW50ZXJhY3Rpb24odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKFxuICAgICAgKG9wdCkgPT4gIW9wdC5kaXNhYmxlZCAmJiAhb3B0Lmhhc0F0dHJpYnV0ZSgnZGF0YS1ncm91cC1kaXNhYmxlZCcpLFxuICAgICk7XG5cbiAgICAvLyBHZXQgYW5kIGFjdGl2YXRlIHRoZSBuZXh0IGFjdGl2ZSBvcHRpb25cbiAgICBjb25zdCBuZXh0ID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudCwgdGhpcy5fYWN0aXZlSXRlbUluZGV4LCBmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoKTtcbiAgICBjb25zdCBuZXh0QWN0aXZlT3B0aW9uID0gZmlsdGVyZWRPcHRpb25zW25leHRdO1xuICAgIG5leHRBY3RpdmVPcHRpb24uc2V0QWN0aXZlKHRydWUpO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgbmV4dEFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cbiAgICAvLyBSZXNldCB0aGUgcHJldmlvdXMgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IGxhc3RBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZU9wdGlvbikge1xuICAgICAgbGFzdEFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCA9IG5leHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRBY3RpdmVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLm9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIGlmIChhY3RpdmVFbGVtZW50KSB7XG4gICAgICBhY3RpdmVFbGVtZW50LnNldEFjdGl2ZShmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCA9IC0xO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0VHJpZ2dlckF0dHJpYnV0ZXMoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgIHNldEFyaWFDb21ib0JveEF0dHJpYnV0ZXMoZWxlbWVudCwgYXJpYVJvbGVPbkhvc3QgPyB0aGlzLmlkIDogdGhpcy5vdmVybGF5SWQsIGZhbHNlKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZSc6IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJhcmlhUm9sZU9uSG9zdCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSxNQUFNQSxtQkFBaUI7SUFFRCw4QkFBMEIsTUFBQTs7QUFBUyxNQUFBLGNBQUEsaUJBQ3ZELGtCQUFrQix1QkFBdUIsQ0FBQzs7Ozs7Ozs7OztBQUR0QixTQUFBLG1CQUFtQyxZQUV4RDtBQUFBOztBQU9hO0FBT0E7QUFLWjtBQVo0Qix5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
750
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQudHMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGZpbmRSZWZlcmVuY2VkRWxlbWVudCwgaXNTYWZhcmksIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgU2JiTmVnYXRpdmVNaXhpbiwgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQge1xuICBpc0V2ZW50T25FbGVtZW50LFxuICBvdmVybGF5R2FwRml4Q29ybmVycyxcbiAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyxcbiAgc2V0T3ZlcmxheVBvc2l0aW9uLFxufSBmcm9tICcuLi9jb3JlL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcG9wb3ZlcjogJ21hbnVhbCcsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFxuICBTYmJIeWRyYXRpb25NaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBhdHRhY2g7IGFjY2VwdHMgYm90aCBhbiBlbGVtZW50J3MgaWQgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIElmIG5vdCBzZXQsIGl0IHdpbGwgc2VhcmNoIGZvciB0aGUgZmlyc3QgJ3NiYi1mb3JtLWZpZWxkJyBhbmNlc3Rvci5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBhY2Nlc3NvciBvcmlnaW46IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBhdXRvY29tcGxldGUgb3BlbmluZzsgYWNjZXB0cyBib3RoIGFuIGVsZW1lbnQncyBpZCBvciBhbiBIVE1MRWxlbWVudC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGF1dG9jb21wbGV0ZSB3aWxsIG9wZW4gb24gZm9jdXMsIGNsaWNrLCBpbnB1dCBvciBgQXJyb3dEb3duYCBrZXlwcmVzcyBvZiB0aGUgJ3RyaWdnZXInIGVsZW1lbnQuXG4gICAqIElmIG5vdCBzZXQsIHdpbGwgc2VhcmNoIGZvciB0aGUgZmlyc3QgJ2lucHV0JyBjaGlsZCBvZiBhICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogc3RyaW5nIHwgSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBpY29uIHNwYWNlIGlzIHByZXNlcnZlZCB3aGVuIG5vIGljb24gaXMgc2V0LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJlc2VydmUtaWNvbi1zcGFjZScsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHByZXNlcnZlSWNvblNwYWNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFJldHVybnMgdGhlIGVsZW1lbnQgd2hlcmUgYXV0b2NvbXBsZXRlIG92ZXJsYXkgaXMgYXR0YWNoZWQgdG8uICovXG4gIHB1YmxpYyBnZXQgb3JpZ2luRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLl9vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9vcmlnaW5FbGVtZW50ID0gdGhpcy5fZmluZE9yaWdpbkVsZW1lbnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX29yaWdpbkVsZW1lbnQ7XG4gIH1cbiAgcHJpdmF0ZSBfb3JpZ2luRWxlbWVudD86IEhUTUxFbGVtZW50O1xuXG4gIC8qKiBSZXR1cm5zIHRoZSB0cmlnZ2VyIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgdHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICB9XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvdmVybGF5SWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHBhbmVsUm9sZTogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHVzZWQgaW50ZXJuYWxseS4gKi9cbiAgcHJvdGVjdGVkIGFib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheSE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9vcHRpb25Db250YWluZXIhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2RpZExvYWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25NZW51OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBvcHRpb25zKCk6IFNiYk9wdGlvbkJhc2VFbGVtZW50W107XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzeW5jTmVnYXRpdmUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdEJ5S2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXNldEFjdGl2ZUVsZW1lbnQoKTogdm9pZDtcblxuICAvKiogT3BlbnMgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHxcbiAgICAgICF0aGlzLl9vdmVybGF5IHx8XG4gICAgICB0aGlzLm9wdGlvbnMubGVuZ3RoID09PSAwIHx8XG4gICAgICB0aGlzLl9yZWFkb25seSgpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy53aWxsT3Blbi5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dQb3BvdmVyPy4oKTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuYWJvcnQoKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgaWYgKGFyaWFSb2xlT25Ib3N0KSB7XG4gICAgICB0aGlzLmlkIHx8PSB0aGlzLm92ZXJsYXlJZDtcbiAgICB9XG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jbG9zZXN0KCdzYmItZm9ybS1maWVsZCcpID8/IHRoaXMuY2xvc2VzdCgnW2RhdGEtZm9ybS1maWVsZF0nKTtcblxuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9kaWRMb2FkKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNOZWdhdGl2ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoXG4gICAgICAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcmlnaW4nKSAmJiB0aGlzLm9yaWdpbiAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdvcmlnaW4nKSkgfHxcbiAgICAgIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3RyaWdnZXInKSAmJiB0aGlzLnRyaWdnZXIgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgndHJpZ2dlcicpKVxuICAgICkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9jb21wb25lbnRTZXR1cCgpO1xuICAgIHRoaXMuX2RpZExvYWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIC8qKiBXaGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCwgdXBkYXRlIHRoZSBpbnB1dCB2YWx1ZSBhbmQgY2xvc2UgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHJvdGVjdGVkIG9uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIFNiYk9wdGlvbkJhc2VFbGVtZW50O1xuICAgIGlmICghdGFyZ2V0LnNlbGVjdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVzZWxlY3QgdGhlIHByZXZpb3VzIG9wdGlvbnNcbiAgICB0aGlzLm9wdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmlkICE9PSB0YXJnZXQuaWQgJiYgb3B0aW9uLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlKSk7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyRWxlbWVudCkge1xuICAgICAgLy8gU2V0IHRoZSBvcHRpb24gdmFsdWVcbiAgICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgUmVhY3Qgb25DaGFuZ2UgZXZlbnQsIHdlIGhhdmUgdG8gZ2V0IHRoZSBzZXR0ZXIgYW5kIGNhbGwgaXQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExNjAwI2lzc3VlY29tbWVudC0zNDU4MTMxMzBcbiAgICAgIGNvbnN0IHNldFZhbHVlID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSwgJ3ZhbHVlJykhLnNldCE7XG4gICAgICBzZXRWYWx1ZS5jYWxsKHRoaXMudHJpZ2dlckVsZW1lbnQsIHRhcmdldC52YWx1ZSk7XG5cbiAgICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgdGhlIGNoYW5nZSBldmVudHNcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKHRoaXMudHJpZ2dlckVsZW1lbnQ/LnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgYXV0b2NvbXBsZXRlIHNob3VsZCBpbmhlcml0ICdyZWFkb25seScgc3RhdGUgZnJvbSB0aGUgdHJpZ2dlci4gKi9cbiAgcHJpdmF0ZSBfcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlckVsZW1lbnQ/Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSA/PyBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBvbmVudFNldHVwKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuXG4gICAgdGhpcy5fb3JpZ2luRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW9wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsXG4gICAgICAhIXRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5oYXNBdHRyaWJ1dGUoJ2JvcmRlcmxlc3MnKSxcbiAgICApO1xuXG4gICAgdGhpcy5fYmluZFRvKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgd2lsbCBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgJ29yaWdpbicgb3IgdGhlIGZpcnN0ICdzYmItZm9ybS1maWVsZCcgYW5jZXN0b3IuXG4gICAqL1xuICBwcml2YXRlIF9maW5kT3JpZ2luRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgbGV0IHJlc3VsdDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsO1xuXG4gICAgaWYgKCF0aGlzLm9yaWdpbikge1xuICAgICAgcmVzdWx0ID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3I/LignI292ZXJsYXktYW5jaG9yJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudCh0aGlzLm9yaWdpbik7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIHJlYWQgdGhlIFwib3JpZ2luXCIgcHJvcCBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEByZXR1cm5zICd0cmlnZ2VyJyBvciB0aGUgZmlyc3QgJ2lucHV0JyBpbnNpZGUgdGhlIG9yaWdpbiBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8ucXVlcnlTZWxlY3RvcignaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0aGlzLnRyaWdnZXIpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFBsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZWxlbWVudCBvciByZWFkIHRoZSBcInRyaWdnZXJcIiBwcm9wIGRvY3VtZW50YXRpb24nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYmluZFRvKHRyaWdnZXJFbGVtOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGF0dHJpYnV0ZXMgdG8gdGhlIG9sZCB0cmlnZ2VyIGFuZCBhZGQgdGhlbSB0byB0aGUgbmV3IG9uZVxuICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuc2V0VHJpZ2dlckF0dHJpYnV0ZXModHJpZ2dlckVsZW0pO1xuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyRWxlbTtcblxuICAgIHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBUcmlnZ2VyRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gT3BlbiB0aGUgb3ZlcmxheSBvbiBmb2N1cywgY2xpY2ssIGlucHV0IGFuZCBgQXJyb3dEb3duYCBldmVudFxuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb25zKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl90cmlnZ2VyRXZlbnRzQ29udHJvbGxlci5zaWduYWwgfSxcbiAgICApO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX2Nsb3NlZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7IHNpZ25hbDogdGhpcy5fdHJpZ2dlckV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNldCBvdmVybGF5IHBvc2l0aW9uLCB3aWR0aCBhbmQgbWF4IGhlaWdodFxuICBwcml2YXRlIF9zZXRPdmVybGF5UG9zaXRpb24oKTogdm9pZCB7XG4gICAgc2V0T3ZlcmxheVBvc2l0aW9uKFxuICAgICAgdGhpcy5fb3ZlcmxheSxcbiAgICAgIHRoaXMub3JpZ2luRWxlbWVudCxcbiAgICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lcixcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1hdXRvY29tcGxldGVfX2NvbnRhaW5lcicpISxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBvcGVuL2Nsb3NlIGFuaW1hdGlvbiBlbmQuXG4gICAqIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gICAqIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgICovXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX2F0dGFjaE9wZW5QYW5lbEV2ZW50cygpO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5kaWRPcGVuLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgIHRoaXMucmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgdGhpcy5fb3B0aW9uQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7XG4gICAgdGhpcy5kaWRDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIFJlY2FsY3VsYXRlIHRoZSBvdmVybGF5IHBvc2l0aW9uIG9uIHNjcm9sbCBhbmQgd2luZG93IHJlc2l6ZVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIC8vIFdpdGhvdXQgY2FwdHVyZSwgb3RoZXIgc2Nyb2xsIGNvbnRleHRzIHdvdWxkIG5vdCBidWJibGUgdG8gdGhpcyBldmVudCBsaXN0ZW5lci5cbiAgICAgIC8vIENhcHR1cmUgYWxsb3dzIHVzIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgY29udGV4dHMgaW4gdGhpcyBET00uXG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBhdXRvY29tcGxldGUgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoZXYpID0+IHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIoZXYpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCAoZXYpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIEtleWJvYXJkIGludGVyYWN0aW9uc1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMub3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgPSBpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KTtcbiAgfTtcblxuICAvLyBJZiB0aGUgY2xpY2sgaXMgb3V0c2lkZSB0aGUgYXV0b2NvbXBsZXRlLCBjbG9zZXMgdGhlIHBhbmVsLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLm9yaWdpbkVsZW1lbnQsIGV2ZW50KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqIEhpZ2hsaWdodCB0aGUgc2VhcmNoZWQgdGV4dCBvbiB0aGUgb3B0aW9ucy4gKi9cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0T3B0aW9ucyhzZWFyY2hUZXJtPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHNlYXJjaFRlcm0gPT09IG51bGwgfHwgc2VhcmNoVGVybSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5oaWdobGlnaHQoc2VhcmNoVGVybSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlVHJpZ2dlckF0dHJpYnV0ZXMoZWxlbWVudD86IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICByZW1vdmVBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fZ2FwLWZpeFwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fZ2FwLWZpeFwiPiR7b3ZlcmxheUdhcEZpeENvcm5lcnMoKX08L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX3BhbmVsXCJcbiAgICAgICAgICA/ZGF0YS1vcGVuPSR7dGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnfVxuICAgICAgICAgICR7cmVmKChvdmVybGF5UmVmPzogRWxlbWVudCkgPT4gKHRoaXMuX292ZXJsYXkgPSBvdmVybGF5UmVmIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX29wdGlvbnNcIlxuICAgICAgICAgICAgICByb2xlPSR7IWFyaWFSb2xlT25Ib3N0ID8gdGhpcy5wYW5lbFJvbGUgOiBub3RoaW5nfVxuICAgICAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMub3ZlcmxheUlkIDogbm90aGluZ31cbiAgICAgICAgICAgICAgJHtyZWYoKGNvbnRhaW5lclJlZikgPT4gKHRoaXMuX29wdGlvbkNvbnRhaW5lciA9IGNvbnRhaW5lclJlZiBhcyBIVE1MRWxlbWVudCkpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXggfSBmcm9tICcuLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNTYWZhcmkgfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0R3JvdXBFbGVtZW50LCBTYmJPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHsgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgYSBwYW5lbCB3aXRoIGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW9wdGlvbmAgb3IgYHNiYi1vcHRncm91cGAgZWxlbWVudHMgdG8gdGhlIGBzYmItYXV0b2NvbXBsZXRlYC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZWAgaXMgb3BlbmVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlYCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGVgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1hdXRvY29tcGxldGUtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItYXV0b2NvbXBsZXRlJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6IGFyaWFSb2xlT25Ib3N0ID8gJ2xpc3Rib3gnIDogbnVsbCxcbn0pXG5jbGFzcyBTYmJBdXRvY29tcGxldGVFbGVtZW50IGV4dGVuZHMgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQge1xuICBwcm90ZWN0ZWQgb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtJHsrK25leHRJZH1gO1xuICBwcm90ZWN0ZWQgcGFuZWxSb2xlID0gJ2xpc3Rib3gnO1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcblxuICBwcm90ZWN0ZWQgZ2V0IG9wdGlvbnMoKTogU2JiT3B0aW9uRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLW9wdGlvbicpID8/IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25TZWxlY3Rpb25DaGFuZ2UnLCAoZTogQ3VzdG9tRXZlbnQ8dm9pZD4pID0+XG4gICAgICB0aGlzLm9uT3B0aW9uU2VsZWN0ZWQoZSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1kaXZpZGVyJykuZm9yRWFjaCgoZGl2aWRlcikgPT4gKGRpdmlkZXIubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlKSk7XG5cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJPcHRpb25FbGVtZW50IHwgU2JiT3B0R3JvdXBFbGVtZW50PihcbiAgICAgICdzYmItb3B0aW9uLCBzYmItb3B0Z3JvdXAnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc2VsZWN0QnlLZXlib2FyZChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSB0aGlzLm9wdGlvbnNbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcblxuICAgIGlmIChhY3RpdmVPcHRpb24pIHtcbiAgICAgIGFjdGl2ZU9wdGlvbi5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgKTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRBY3RpdmVPcHRpb24gPSBmaWx0ZXJlZE9wdGlvbnNbbmV4dF07XG4gICAgbmV4dEFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBuZXh0QWN0aXZlT3B0aW9uLmlkKTtcbiAgICBuZXh0QWN0aXZlT3B0aW9uLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KTtcblxuICAgIC8vIFJlc2V0IHRoZSBwcmV2aW91cyBhY3RpdmUgb3B0aW9uXG4gICAgY29uc3QgbGFzdEFjdGl2ZU9wdGlvbiA9IGZpbHRlcmVkT3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuICAgIGlmIChsYXN0QWN0aXZlT3B0aW9uKSB7XG4gICAgICBsYXN0QWN0aXZlT3B0aW9uLnNldEFjdGl2ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gbmV4dDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldEFjdGl2ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMub3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGFjdGl2ZUVsZW1lbnQuc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gLTE7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50LCBhcmlhUm9sZU9uSG9zdCA/IHRoaXMuaWQgOiB0aGlzLm92ZXJsYXlJZCwgZmFsc2UpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYXV0b2NvbXBsZXRlJzogU2JiQXV0b2NvbXBsZXRlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImFyaWFSb2xlT25Ib3N0IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSxNQUFNQSxtQkFBaUI7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
@@ -243,7 +243,6 @@ const buttonCommon = css`*,
243
243
  }
244
244
  }
245
245
  :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) .sbb-action-base::before {
246
- color: var(--sbb-button-color-active-text);
247
246
  background-color: var(--sbb-button-color-active-background);
248
247
  border-color: var(--sbb-button-color-active-border);
249
248
  }
@@ -256,6 +255,9 @@ const buttonCommon = css`*,
256
255
  cursor: default;
257
256
  pointer-events: none;
258
257
  }
258
+ :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) .sbb-action-base {
259
+ color: var(--sbb-button-color-active-text);
260
+ }
259
261
  @media (any-hover: hover) {
260
262
  :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) .sbb-action-base {
261
263
  color: var(--sbb-button-color-hover-text);
@@ -402,4 +404,4 @@ export {
402
404
  secondaryButton as buttonSecondaryStyle,
403
405
  transparentButton as buttonTransparentStyle
404
406
  };
405
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYnV0dG9uL2NvbW1vbi9idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiRGlzYWJsZWRNaXhpblR5cGUsXG4gIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiwgdHlwZSBTYmJJY29uTmFtZU1peGluVHlwZSB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25Db21tb25FbGVtZW50ID0gU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSAmIFNiYkFjdGlvbkJhc2VFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25TaXplID0gJ2wnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUsIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+LCBQYXJ0aWFsPFNiYkljb25OYW1lTWl4aW5UeXBlPlxue1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQnV0dG9uU2l6ZTtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuO1xuICBwdWJsaWMgYWNjZXNzb3IgaWNvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBob3N0QXR0cmlidXRlcyh7XG4gICAgJ2RhdGEtc2JiLWJ1dHRvbic6ICcnLFxuICB9KVxuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzXG4gICAgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJhLE1BQUEsOEJBQThCLENBQ3pDLGVBQzREO01BSzdDLCtCQUEyQixNQUFBOztBQUp6QyxRQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLE1BQ2QsbUJBQW1CO0FBQUEsSUFBQSxDQUNwQixHQUNBLFVBQUEsQ0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQzs7OztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUE7O0FBT3pCLG1EQUFzQyxrQkFBQSxNQUFBLG9CQUFBLE9BQVEsSUFBRyxNQUFNLEdBQUc7Ozs7Ozs7TUFBMUQsSUFBZ0IsT0FBMkM7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTNELElBQWdCLEtBQTJDLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQSxNQUVyRSxpQkFBYztBQUN4QixlQUFBO0FBQUEsVUFDSCxNQUFNLGVBQWdCLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUpDOztBQUE1Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDO0FBQWlCLG1CQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsTUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBQSxPQUEyQztBQUFBLFdBQUEsVUFBQSxhQUFBLG9CQUFBLHVCQUFBO0FBUjFGLG1CQWtCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O0FBbEJjLHdCQUEyQixZQUFBLHVCQUFBO0FBQUEsSUFBQSxNQUN4Qzs7O0FBa0JLLFNBQUE7QUFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
407
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYnV0dG9uL2NvbW1vbi9idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiRGlzYWJsZWRNaXhpblR5cGUsXG4gIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiwgdHlwZSBTYmJJY29uTmFtZU1peGluVHlwZSB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25Db21tb25FbGVtZW50ID0gU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSAmIFNiYkFjdGlvbkJhc2VFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25TaXplID0gJ2wnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUsIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+LCBQYXJ0aWFsPFNiYkljb25OYW1lTWl4aW5UeXBlPlxue1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQnV0dG9uU2l6ZTtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuO1xuICBwdWJsaWMgYWNjZXNzb3IgaWNvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBob3N0QXR0cmlidXRlcyh7XG4gICAgJ2RhdGEtc2JiLWJ1dHRvbic6ICcnLFxuICB9KVxuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzXG4gICAgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJhLE1BQUEsOEJBQThCLENBQ3pDLGVBQzREO01BSzdDLCtCQUEyQixNQUFBOztBQUp6QyxRQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLE1BQ2QsbUJBQW1CO0FBQUEsSUFBQSxDQUNwQixHQUNBLFVBQUEsQ0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQzs7OztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUE7O0FBT3pCLG1EQUFzQyxrQkFBQSxNQUFBLG9CQUFBLE9BQVEsSUFBRyxNQUFNLEdBQUc7Ozs7Ozs7TUFBMUQsSUFBZ0IsT0FBMkM7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTNELElBQWdCLEtBQTJDLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQSxNQUVyRSxpQkFBYztBQUN4QixlQUFBO0FBQUEsVUFDSCxNQUFNLGVBQWdCLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUpDOztBQUE1Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDO0FBQWlCLG1CQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsTUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBQSxPQUEyQztBQUFBLFdBQUEsVUFBQSxhQUFBLG9CQUFBLHVCQUFBO0FBUjFGLG1CQWtCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O0FBbEJjLHdCQUEyQixZQUFBLHVCQUFBO0FBQUEsSUFBQSxNQUN4Qzs7O0FBa0JLLFNBQUE7QUFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=