igniteui-angular 16.0.0-beta.2 → 16.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +4 -4
  2. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  3. package/esm2022/lib/action-strip/action-strip.component.mjs +7 -7
  4. package/esm2022/lib/action-strip/action-strip.module.mjs +5 -5
  5. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +4 -4
  6. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +4 -4
  7. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +4 -4
  8. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +4 -4
  9. package/esm2022/lib/avatar/avatar.component.mjs +4 -4
  10. package/esm2022/lib/avatar/avatar.module.mjs +5 -5
  11. package/esm2022/lib/badge/badge.component.mjs +4 -4
  12. package/esm2022/lib/badge/badge.module.mjs +5 -5
  13. package/esm2022/lib/banner/banner.component.mjs +4 -4
  14. package/esm2022/lib/banner/banner.directives.mjs +4 -4
  15. package/esm2022/lib/banner/banner.module.mjs +5 -5
  16. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +4 -4
  17. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +5 -5
  18. package/esm2022/lib/calendar/calendar-base.mjs +4 -4
  19. package/esm2022/lib/calendar/calendar.component.mjs +4 -4
  20. package/esm2022/lib/calendar/calendar.directives.mjs +16 -16
  21. package/esm2022/lib/calendar/calendar.module.mjs +5 -5
  22. package/esm2022/lib/calendar/days-view/day-item.component.mjs +4 -4
  23. package/esm2022/lib/calendar/days-view/days-view.component.mjs +4 -4
  24. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +4 -4
  25. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +4 -4
  26. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +4 -4
  27. package/esm2022/lib/calendar/months-view/months-view.component.mjs +4 -4
  28. package/esm2022/lib/calendar/months-view.pipe.mjs +7 -7
  29. package/esm2022/lib/calendar/years-view/years-view.component.mjs +7 -7
  30. package/esm2022/lib/card/card.component.mjs +28 -28
  31. package/esm2022/lib/card/card.module.mjs +5 -5
  32. package/esm2022/lib/carousel/carousel.component.mjs +7 -7
  33. package/esm2022/lib/carousel/carousel.directives.mjs +10 -10
  34. package/esm2022/lib/carousel/carousel.module.mjs +5 -5
  35. package/esm2022/lib/carousel/slide.component.mjs +4 -4
  36. package/esm2022/lib/checkbox/checkbox.component.mjs +4 -4
  37. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  38. package/esm2022/lib/chips/chip.component.mjs +4 -4
  39. package/esm2022/lib/chips/chips-area.component.mjs +4 -4
  40. package/esm2022/lib/chips/chips.module.mjs +5 -5
  41. package/esm2022/lib/combo/combo-add-item.component.mjs +4 -4
  42. package/esm2022/lib/combo/combo-dropdown.component.mjs +4 -4
  43. package/esm2022/lib/combo/combo-item.component.mjs +4 -4
  44. package/esm2022/lib/combo/combo.api.mjs +4 -4
  45. package/esm2022/lib/combo/combo.common.mjs +4 -4
  46. package/esm2022/lib/combo/combo.component.mjs +4 -4
  47. package/esm2022/lib/combo/combo.directives.mjs +25 -25
  48. package/esm2022/lib/combo/combo.module.mjs +5 -5
  49. package/esm2022/lib/combo/combo.pipes.mjs +7 -7
  50. package/esm2022/lib/core/density.mjs +4 -4
  51. package/esm2022/lib/core/navigation/directives.mjs +7 -7
  52. package/esm2022/lib/core/navigation/nav.service.mjs +4 -4
  53. package/esm2022/lib/core/selection.mjs +4 -4
  54. package/esm2022/lib/core/touch.mjs +4 -4
  55. package/esm2022/lib/core/utils.mjs +4 -4
  56. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +4 -4
  57. package/esm2022/lib/date-common/picker-base.directive.mjs +4 -4
  58. package/esm2022/lib/date-common/picker-icons.common.mjs +10 -10
  59. package/esm2022/lib/date-picker/date-picker.component.mjs +4 -4
  60. package/esm2022/lib/date-picker/date-picker.module.mjs +5 -5
  61. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +16 -16
  62. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +4 -4
  63. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  64. package/esm2022/lib/dialog/dialog.component.mjs +4 -4
  65. package/esm2022/lib/dialog/dialog.directives.mjs +7 -7
  66. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  67. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +4 -4
  68. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +5 -5
  69. package/esm2022/lib/directives/button/button.directive.mjs +4 -4
  70. package/esm2022/lib/directives/button/button.module.mjs +5 -5
  71. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +4 -4
  72. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +5 -5
  73. package/esm2022/lib/directives/divider/divider.directive.mjs +4 -4
  74. package/esm2022/lib/directives/divider/divider.module.mjs +5 -5
  75. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +13 -13
  76. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +5 -5
  77. package/esm2022/lib/directives/filter/filter.directive.mjs +7 -7
  78. package/esm2022/lib/directives/filter/filter.module.mjs +5 -5
  79. package/esm2022/lib/directives/focus/focus.directive.mjs +4 -4
  80. package/esm2022/lib/directives/focus/focus.module.mjs +5 -5
  81. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +4 -4
  82. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +5 -5
  83. package/esm2022/lib/directives/for-of/base.helper.component.mjs +4 -4
  84. package/esm2022/lib/directives/for-of/display.container.mjs +4 -4
  85. package/esm2022/lib/directives/for-of/for_of.directive.mjs +7 -7
  86. package/esm2022/lib/directives/for-of/for_of.module.mjs +5 -5
  87. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +7 -7
  88. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +4 -4
  89. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +4 -4
  90. package/esm2022/lib/directives/form-control/form-control.directive.mjs +4 -4
  91. package/esm2022/lib/directives/form-control/form-control.module.mjs +5 -5
  92. package/esm2022/lib/directives/hint/hint.directive.mjs +4 -4
  93. package/esm2022/lib/directives/input/input.directive.mjs +14 -4
  94. package/esm2022/lib/directives/label/label.directive.mjs +4 -4
  95. package/esm2022/lib/directives/layout/layout.directive.mjs +7 -7
  96. package/esm2022/lib/directives/layout/layout.module.mjs +5 -5
  97. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +4 -4
  98. package/esm2022/lib/directives/mask/mask.directive.mjs +4 -4
  99. package/esm2022/lib/directives/mask/mask.module.mjs +5 -5
  100. package/esm2022/lib/directives/notification/notifications.directive.mjs +4 -4
  101. package/esm2022/lib/directives/prefix/prefix.directive.mjs +4 -4
  102. package/esm2022/lib/directives/radio/radio-group.directive.mjs +4 -4
  103. package/esm2022/lib/directives/radio/radio-group.module.mjs +5 -5
  104. package/esm2022/lib/directives/ripple/ripple.directive.mjs +4 -4
  105. package/esm2022/lib/directives/ripple/ripple.module.mjs +5 -5
  106. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +4 -4
  107. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +5 -5
  108. package/esm2022/lib/directives/suffix/suffix.directive.mjs +4 -4
  109. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +4 -4
  110. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +4 -4
  111. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +5 -5
  112. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +4 -4
  113. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +5 -5
  114. package/esm2022/lib/directives/toggle/toggle.directive.mjs +10 -10
  115. package/esm2022/lib/directives/toggle/toggle.module.mjs +5 -5
  116. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +4 -4
  117. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +4 -4
  118. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +4 -4
  119. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +5 -5
  120. package/esm2022/lib/drop-down/drop-down-group.component.mjs +4 -4
  121. package/esm2022/lib/drop-down/drop-down-item.base.mjs +4 -4
  122. package/esm2022/lib/drop-down/drop-down-item.component.mjs +4 -4
  123. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +4 -4
  124. package/esm2022/lib/drop-down/drop-down.base.mjs +4 -4
  125. package/esm2022/lib/drop-down/drop-down.component.mjs +4 -4
  126. package/esm2022/lib/drop-down/drop-down.module.mjs +5 -5
  127. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +4 -4
  128. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +4 -4
  129. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +4 -4
  130. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +4 -4
  131. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +10 -10
  132. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +5 -5
  133. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +4 -4
  134. package/esm2022/lib/grids/api.service.mjs +4 -4
  135. package/esm2022/lib/grids/cell.component.mjs +4 -4
  136. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +4 -4
  137. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +13 -13
  138. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +4 -4
  139. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +4 -4
  140. package/esm2022/lib/grids/column-actions/public_api.mjs +13 -0
  141. package/esm2022/lib/grids/columns/column-group.component.mjs +4 -4
  142. package/esm2022/lib/grids/columns/column-layout.component.mjs +4 -4
  143. package/esm2022/lib/grids/columns/column.component.mjs +4 -4
  144. package/esm2022/lib/grids/columns/templates.directive.mjs +25 -25
  145. package/esm2022/lib/grids/columns/validators.directive.mjs +22 -22
  146. package/esm2022/lib/grids/common/crud.service.mjs +4 -4
  147. package/esm2022/lib/grids/common/pipes.mjs +55 -55
  148. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +4 -4
  149. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +4 -4
  150. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +4 -4
  151. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +4 -4
  152. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +4 -4
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +4 -4
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +4 -4
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +4 -4
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +4 -4
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +10 -10
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +4 -4
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +4 -4
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +4 -4
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +4 -4
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +7 -7
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +4 -4
  164. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +4 -4
  165. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +4 -4
  166. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +4 -4
  167. package/esm2022/lib/grids/grid/grid-api.service.mjs +4 -4
  168. package/esm2022/lib/grids/grid/grid-row.component.mjs +4 -4
  169. package/esm2022/lib/grids/grid/grid-validation.service.mjs +4 -4
  170. package/esm2022/lib/grids/grid/grid.component.mjs +5 -6
  171. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +4 -4
  172. package/esm2022/lib/grids/grid/grid.directives.mjs +34 -34
  173. package/esm2022/lib/grids/grid/grid.module.mjs +27 -24
  174. package/esm2022/lib/grids/grid/grid.pipes.mjs +13 -13
  175. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +4 -4
  176. package/esm2022/lib/grids/grid/groupby-row.component.mjs +4 -4
  177. package/esm2022/lib/grids/grid-base.directive.mjs +4 -4
  178. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +4 -4
  179. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +4 -4
  180. package/esm2022/lib/grids/grid-navigation.service.mjs +4 -4
  181. package/esm2022/lib/grids/grid.common.mjs +4 -4
  182. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +16 -16
  183. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +4 -4
  184. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +7 -7
  185. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +4 -4
  186. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +4 -4
  187. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +4 -4
  188. package/esm2022/lib/grids/headers/grid-header.component.mjs +4 -4
  189. package/esm2022/lib/grids/headers/pipes.mjs +10 -10
  190. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +4 -4
  191. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +4 -4
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +4 -4
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +4 -4
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +7 -7
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +27 -24
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +7 -7
  197. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +4 -4
  198. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +4 -4
  199. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +4 -4
  200. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +4 -4
  201. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +4 -4
  202. package/esm2022/lib/grids/moving/moving.service.mjs +4 -4
  203. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +4 -4
  204. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +4 -4
  205. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +4 -4
  206. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +4 -4
  207. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +4 -4
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +27 -24
  209. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +31 -31
  210. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +4 -4
  211. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +4 -4
  212. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +4 -4
  213. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +4 -4
  214. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +4 -4
  215. package/esm2022/lib/grids/public_api.mjs +5 -2
  216. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +4 -4
  217. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +4 -4
  218. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +4 -4
  219. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +4 -4
  220. package/esm2022/lib/grids/resizing/resizer.component.mjs +4 -4
  221. package/esm2022/lib/grids/resizing/resizer.directive.mjs +4 -4
  222. package/esm2022/lib/grids/resizing/resizing.service.mjs +4 -4
  223. package/esm2022/lib/grids/row-drag.directive.mjs +10 -10
  224. package/esm2022/lib/grids/row.directive.mjs +4 -4
  225. package/esm2022/lib/grids/selection/drag-select.directive.mjs +4 -4
  226. package/esm2022/lib/grids/selection/row-selectors.mjs +10 -10
  227. package/esm2022/lib/grids/selection/selection.service.mjs +4 -4
  228. package/esm2022/lib/grids/state.directive.mjs +4 -4
  229. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +4 -4
  230. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +4 -4
  231. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +4 -4
  232. package/esm2022/lib/grids/summaries/summary-row.component.mjs +4 -4
  233. package/esm2022/lib/grids/toolbar/common.mjs +16 -16
  234. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +4 -4
  235. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +4 -4
  236. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +4 -4
  237. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +4 -4
  238. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +7 -7
  239. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +4 -4
  240. package/esm2022/lib/grids/tree-grid/public_api.mjs +7 -1
  241. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +4 -4
  242. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +4 -4
  243. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +4 -4
  244. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +4 -4
  245. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +4 -4
  246. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +4 -4
  247. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +4 -4
  248. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +4 -4
  249. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +44 -39
  250. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +22 -22
  251. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +4 -4
  252. package/esm2022/lib/icon/icon.component.mjs +4 -4
  253. package/esm2022/lib/icon/icon.module.mjs +5 -5
  254. package/esm2022/lib/icon/icon.service.mjs +4 -4
  255. package/esm2022/lib/input-group/input-group.component.mjs +4 -4
  256. package/esm2022/lib/input-group/input-group.module.mjs +5 -5
  257. package/esm2022/lib/list/list-item.component.mjs +4 -4
  258. package/esm2022/lib/list/list.common.mjs +16 -16
  259. package/esm2022/lib/list/list.component.mjs +19 -19
  260. package/esm2022/lib/list/list.module.mjs +5 -5
  261. package/esm2022/lib/navbar/navbar.component.mjs +10 -10
  262. package/esm2022/lib/navbar/navbar.module.mjs +5 -5
  263. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +4 -4
  264. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +10 -10
  265. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +5 -5
  266. package/esm2022/lib/paginator/paginator-interfaces.mjs +4 -4
  267. package/esm2022/lib/paginator/paginator.component.mjs +13 -13
  268. package/esm2022/lib/paginator/paginator.module.mjs +5 -5
  269. package/esm2022/lib/progressbar/progressbar.common.mjs +7 -7
  270. package/esm2022/lib/progressbar/progressbar.component.mjs +10 -10
  271. package/esm2022/lib/progressbar/progressbar.module.mjs +5 -5
  272. package/esm2022/lib/query-builder/query-builder-header.component.mjs +4 -4
  273. package/esm2022/lib/query-builder/query-builder.component.mjs +7 -7
  274. package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
  275. package/esm2022/lib/radio/radio.component.mjs +4 -4
  276. package/esm2022/lib/select/select-group.component.mjs +4 -4
  277. package/esm2022/lib/select/select-item.component.mjs +4 -4
  278. package/esm2022/lib/select/select-navigation.directive.mjs +4 -4
  279. package/esm2022/lib/select/select.component.mjs +13 -13
  280. package/esm2022/lib/select/select.module.mjs +5 -5
  281. package/esm2022/lib/services/animation/angular-animation-service.mjs +4 -4
  282. package/esm2022/lib/services/csv/csv-exporter.mjs +4 -4
  283. package/esm2022/lib/services/direction/directionality.mjs +4 -4
  284. package/esm2022/lib/services/excel/excel-exporter.mjs +4 -4
  285. package/esm2022/lib/services/overlay/overlay.mjs +4 -4
  286. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +7 -7
  287. package/esm2022/lib/simple-combo/simple-combo.component.mjs +4 -4
  288. package/esm2022/lib/simple-combo/simple-combo.module.mjs +5 -5
  289. package/esm2022/lib/slider/label/thumb-label.component.mjs +4 -4
  290. package/esm2022/lib/slider/slider.common.mjs +10 -10
  291. package/esm2022/lib/slider/slider.component.mjs +4 -4
  292. package/esm2022/lib/slider/slider.module.mjs +5 -5
  293. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +4 -4
  294. package/esm2022/lib/slider/ticks/tick.pipe.mjs +4 -4
  295. package/esm2022/lib/slider/ticks/ticks.component.mjs +4 -4
  296. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  297. package/esm2022/lib/snackbar/snackbar.module.mjs +5 -5
  298. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +4 -4
  299. package/esm2022/lib/splitter/splitter.component.mjs +7 -7
  300. package/esm2022/lib/splitter/splitter.module.mjs +5 -5
  301. package/esm2022/lib/stepper/step/step.component.mjs +4 -4
  302. package/esm2022/lib/stepper/stepper.component.mjs +4 -4
  303. package/esm2022/lib/stepper/stepper.directive.mjs +22 -22
  304. package/esm2022/lib/stepper/stepper.module.mjs +5 -5
  305. package/esm2022/lib/stepper/stepper.service.mjs +4 -4
  306. package/esm2022/lib/switch/switch.component.mjs +4 -4
  307. package/esm2022/lib/switch/switch.module.mjs +5 -5
  308. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +4 -4
  309. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +4 -4
  310. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +4 -4
  311. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +4 -4
  312. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +7 -7
  313. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +5 -5
  314. package/esm2022/lib/tabs/tab-content.directive.mjs +4 -4
  315. package/esm2022/lib/tabs/tab-header.directive.mjs +4 -4
  316. package/esm2022/lib/tabs/tab-item.directive.mjs +4 -4
  317. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +4 -4
  318. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +4 -4
  319. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +4 -4
  320. package/esm2022/lib/tabs/tabs/tabs.component.mjs +4 -4
  321. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +7 -7
  322. package/esm2022/lib/tabs/tabs/tabs.module.mjs +5 -5
  323. package/esm2022/lib/tabs/tabs.directive.mjs +4 -4
  324. package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
  325. package/esm2022/lib/time-picker/time-picker.directives.mjs +7 -7
  326. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  327. package/esm2022/lib/time-picker/time-picker.pipes.mjs +7 -7
  328. package/esm2022/lib/toast/toast.component.mjs +4 -4
  329. package/esm2022/lib/toast/toast.module.mjs +5 -5
  330. package/esm2022/lib/tree/tree-navigation.service.mjs +4 -4
  331. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +7 -7
  332. package/esm2022/lib/tree/tree-selection.service.mjs +4 -4
  333. package/esm2022/lib/tree/tree.component.mjs +10 -10
  334. package/esm2022/lib/tree/tree.module.mjs +5 -5
  335. package/esm2022/lib/tree/tree.service.mjs +4 -4
  336. package/fesm2022/igniteui-angular.mjs +3098 -3079
  337. package/fesm2022/igniteui-angular.mjs.map +1 -1
  338. package/lib/directives/input/input.directive.d.ts +3 -0
  339. package/lib/grids/column-actions/public_api.d.ts +7 -0
  340. package/lib/grids/grid/grid.module.d.ts +23 -20
  341. package/lib/grids/grid/public_api.d.ts +1 -1
  342. package/lib/grids/hierarchical-grid/hierarchical-grid.module.d.ts +23 -20
  343. package/lib/grids/hierarchical-grid/public_api.d.ts +1 -1
  344. package/lib/grids/pivot-grid/pivot-grid.module.d.ts +23 -20
  345. package/lib/grids/pivot-grid/public_api.d.ts +1 -1
  346. package/lib/grids/public_api.d.ts +2 -1
  347. package/lib/grids/tree-grid/public_api.d.ts +5 -1
  348. package/lib/grids/tree-grid/tree-grid.module.d.ts +40 -35
  349. package/package.json +6 -6
@@ -434,13 +434,13 @@ export class IgxStepperComponent extends IgxCarouselComponentBase {
434
434
  this.activateStep(nextStep);
435
435
  }
436
436
  }
437
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: IgxAngularAnimationService }, { token: i1.IgxStepperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
438
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepperComponent, isStandalone: true, selector: "igx-stepper", inputs: { verticalAnimationType: "verticalAnimationType", horizontalAnimationType: "horizontalAnimationType", animationDuration: "animationDuration", linear: "linear", orientation: "orientation", stepType: "stepType", contentTop: "contentTop", titlePosition: "titlePosition" }, outputs: { activeStepChanging: "activeStepChanging", activeStepChanged: "activeStepChanged" }, host: { properties: { "attr.aria-orientation": "this.orientation", "class.igx-stepper": "this.cssClass", "attr.role": "this.role", "class.igx-stepper--horizontal": "this.directionClass" } }, providers: [
437
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: IgxAngularAnimationService }, { token: i1.IgxStepperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
438
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepperComponent, isStandalone: true, selector: "igx-stepper", inputs: { verticalAnimationType: "verticalAnimationType", horizontalAnimationType: "horizontalAnimationType", animationDuration: "animationDuration", linear: "linear", orientation: "orientation", stepType: "stepType", contentTop: "contentTop", titlePosition: "titlePosition" }, outputs: { activeStepChanging: "activeStepChanging", activeStepChanged: "activeStepChanged" }, host: { properties: { "attr.aria-orientation": "this.orientation", "class.igx-stepper": "this.cssClass", "attr.role": "this.role", "class.igx-stepper--horizontal": "this.directionClass" } }, providers: [
439
439
  IgxStepperService,
440
440
  { provide: IGX_STEPPER_COMPONENT, useExisting: IgxStepperComponent },
441
441
  ], queries: [{ propertyName: "invalidIndicatorTemplate", first: true, predicate: IgxStepInvalidIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "completedIndicatorTemplate", first: true, predicate: IgxStepCompletedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "activeIndicatorTemplate", first: true, predicate: IgxStepActiveIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "_steps", predicate: IgxStepComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!contentTop || orientation !== 'horizontal'\" class=\"igx-stepper__header\">\n <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n</div>\n\n<div *ngIf=\"orientation === 'horizontal'\" class=\"igx-stepper__body\">\n <ng-container *ngFor=\"let step of steps\">\n <ng-container *ngTemplateOutlet=\"step.contentTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<div *ngIf=\"contentTop && orientation === 'horizontal'\" class=\"igx-stepper__header\">\n <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n</div>\n\n<ng-template #stepTemplate>\n <ng-content select=\"igx-step\"></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
442
442
  }
443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperComponent, decorators: [{
443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperComponent, decorators: [{
444
444
  type: Component,
445
445
  args: [{ selector: 'igx-stepper', providers: [
446
446
  IgxStepperService,
@@ -494,4 +494,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
494
494
  type: ContentChildren,
495
495
  args: [IgxStepComponent, { descendants: false }]
496
496
  }] } });
497
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDa0MsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQ2pFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFDNUMsTUFBTSxFQUEyQixXQUFXLEVBQ3ZELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBMkIsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQ1MscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUN2RSxxQkFBcUIsRUFBaUQscUJBQXFCLEVBQzlGLE1BQU0sa0JBQWtCLENBQUM7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RSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUs5RCwwQkFBMEI7c0JBRGhDLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUtoRSx1QkFBdUI7c0JBRDdCLFlBQVk7dUJBQUMsK0JBQStCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUs1RCxNQUFNO3NCQURiLGVBQWU7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGEsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgICBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ3Jvd1ZlckluLCBncm93VmVyT3V0IH0gZnJvbSAnLi4vYW5pbWF0aW9ucy9ncm93JztcbmltcG9ydCB7IGZhZGVJbiB9IGZyb20gJy4uL2FuaW1hdGlvbnMvbWFpbic7XG5pbXBvcnQgeyBIb3Jpem9udGFsQW5pbWF0aW9uVHlwZSwgSWd4Q2Fyb3VzZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwvY2Fyb3VzZWwtYmFzZSc7XG5cbmltcG9ydCB7IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL3RvZ2dsZS1hbmltYXRpb24tY29tcG9uZW50JztcbmltcG9ydCB7IElneEFuZ3VsYXJBbmltYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYW5pbWF0aW9uL2FuZ3VsYXItYW5pbWF0aW9uLXNlcnZpY2UnO1xuaW1wb3J0IHsgQW5pbWF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FuaW1hdGlvbi9hbmltYXRpb24nO1xuaW1wb3J0IHsgSWd4U3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIElneFN0ZXBwZXIsIElneFN0ZXBwZXJPcmllbnRhdGlvbiwgSWd4U3RlcHBlclRpdGxlUG9zaXRpb24sIElneFN0ZXBUeXBlLFxuICAgIElHWF9TVEVQUEVSX0NPTVBPTkVOVCwgSVN0ZXBDaGFuZ2VkRXZlbnRBcmdzLCBJU3RlcENoYW5naW5nRXZlbnRBcmdzLCBWZXJ0aWNhbEFuaW1hdGlvblR5cGVcbn0gZnJvbSAnLi9zdGVwcGVyLmNvbW1vbic7XG5pbXBvcnQge1xuICAgIElneFN0ZXBBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4U3RlcENvbXBsZXRlZEluZGljYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hTdGVwSW52YWxpZEluZGljYXRvckRpcmVjdGl2ZVxufSBmcm9tICcuL3N0ZXBwZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFN0ZXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zdGVwcGVyLnNlcnZpY2UnO1xuXG5cbi8vIFRPRE86IGNvbW1vbiBpbnRlcmZhY2UgYmV0d2VlbiBJZ3hDYXJvdXNlbENvbXBvbmVudEJhc2UgYW5kIFRvZ2dsZUFuaW1hdGlvblBsYXllcj9cblxuLyoqXG4gKiBJZ3hTdGVwcGVyIHByb3ZpZGVzIGEgd2l6YXJkLWxpa2Ugd29ya2Zsb3cgYnkgZGl2aWRpbmcgY29udGVudCBpbnRvIGxvZ2ljYWwgc3RlcHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hTdGVwcGVyTW9kdWxlXG4gKlxuICogQGlneEtleXdvcmRzIHN0ZXBwZXJcbiAqXG4gKiBAaWd4R3JvdXAgTGF5b3V0c1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIFN0ZXBwZXIgY29tcG9uZW50IGFsbG93cyB0aGUgdXNlciB0byBuYXZpZ2F0ZSBiZXR3ZWVuIG11bHRpcGxlIHN0ZXBzLlxuICogSXQgc3VwcG9ydHMgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgb3JpZW50YXRpb24gYXMgd2VsbCBhcyBrZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBwcm92aWRlcyBBUEkgbWV0aG9kcyB0byBjb250cm9sIHRoZSBhY3RpdmUgc3RlcC5cbiAqIFRoZSBjb21wb25lbnQgb2ZmZXJzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIEFQSSB0byBjb250cm9sIHRoZSBhY3RpdmUgc3RlcC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1zdGVwcGVyPlxuICogIDxpZ3gtc3RlcCBbYWN0aXZlXT1cInRydWVcIj5cbiAqICAgICAgPGlneC1pY29uIGlneFN0ZXBJbmRpY2F0b3I+aG9tZTwvaWd4LWljb24+XG4gKiAgICAgIDxwIGlneFN0ZXBUaXRsZT5Ib21lPC9wPlxuICogICAgICA8ZGl2IGlneFN0ZXBDb250ZW50PlxuICogICAgICAgICAuLi5cbiAqICAgICAgPC9kaXY+XG4gKiAgPC9pZ3gtc3RlcD5cbiAqICA8aWd4LXN0ZXAgW29wdGlvbmFsXT1cInRydWVcIj5cbiAqICAgICAgPGRpdiBpZ3hTdGVwQ29udGVudD5cbiAqICAgICAgICAgIC4uLlxuICogICAgICA8L2Rpdj5cbiAqICA8L2lneC1zdGVwPlxuICogIDxpZ3gtc3RlcD5cbiAqICAgICAgPGRpdiBpZ3hTdGVwQ29udGVudD5cbiAqICAgICAgICAgIC4uLlxuICogICAgICA8L2Rpdj5cbiAqICA8L2lneC1zdGVwPlxuICogPC9pZ3gtc3RlcHBlcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1zdGVwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBJZ3hTdGVwcGVyU2VydmljZSxcbiAgICAgICAgeyBwcm92aWRlOiBJR1hfU1RFUFBFUl9DT01QT05FTlQsIHVzZUV4aXN0aW5nOiBJZ3hTdGVwcGVyQ29tcG9uZW50IH0sXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0Zvcl1cbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcHBlckNvbXBvbmVudCBleHRlbmRzIElneENhcm91c2VsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIElneFN0ZXBwZXIsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYW5pbWF0aW9uIHR5cGUgb2YgdGhlIHN0ZXBwZXIgd2hlbiB0aGUgb3JpZW50YXRpb24gZGlyZWN0aW9uIGlzIHZlcnRpY2FsLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBncm93YC4gT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBgZmFkZWAgYW5kIGBub25lYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgdmVydGljYWxBbmltYXRpb25UeXBlPVwibm9uZVwiPlxuICAgICAqIDxpZ3gtc3RlcHBlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdmVydGljYWxBbmltYXRpb25UeXBlKCk6IFZlcnRpY2FsQW5pbWF0aW9uVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbEFuaW1hdGlvblR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2ZXJ0aWNhbEFuaW1hdGlvblR5cGUodmFsdWU6IFZlcnRpY2FsQW5pbWF0aW9uVHlwZSkge1xuICAgICAgICAvLyBUT0RPOiBhY3RpdmVDaGFuZ2UgZXZlbnQgaXMgbm90IGVtaXR0ZWQgZm9yIHRoZSBjb2xsYXBzaW5nIHN0ZXBzIChsb29wIHRocm91Z2ggY29sbGFwc2luZyBzdGVwcyBhbmQgZW1pdClcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fdmVydGljYWxBbmltYXRpb25UeXBlID0gdmFsdWU7XG5cbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnZ3Jvdyc6XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJ0aWNhbEFuaW1hdGlvblNldHRpbmdzID0gdGhpcy51cGRhdGVWZXJ0aWNhbEFuaW1hdGlvblNldHRpbmdzKGdyb3dWZXJJbiwgZ3Jvd1Zlck91dCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmYWRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLnZlcnRpY2FsQW5pbWF0aW9uU2V0dGluZ3MgPSB0aGlzLnVwZGF0ZVZlcnRpY2FsQW5pbWF0aW9uU2V0dGluZ3MoZmFkZUluLCBudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHRoaXMudmVydGljYWxBbmltYXRpb25TZXR0aW5ncyA9IHRoaXMudXBkYXRlVmVydGljYWxBbmltYXRpb25TZXR0aW5ncyhudWxsLCBudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIGFuaW1hdGlvbiB0eXBlIG9mIHRoZSBzdGVwcGVyIHdoZW4gdGhlIG9yaWVudGF0aW9uIGRpcmVjdGlvbiBpcyBob3Jpem9udGFsLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBncm93YC4gT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBgZmFkZWAgYW5kIGBub25lYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgYW5pbWF0aW9uVHlwZT1cIm5vbmVcIj5cbiAgICAgKiA8aWd4LXN0ZXBwZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGhvcml6b250YWxBbmltYXRpb25UeXBlKCk6IEhvcml6b250YWxBbmltYXRpb25UeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGhvcml6b250YWxBbmltYXRpb25UeXBlKHZhbHVlOiBIb3Jpem9udGFsQW5pbWF0aW9uVHlwZSkge1xuICAgICAgICAvLyBUT0RPOiBhY3RpdmVDaGFuZ2UgZXZlbnQgaXMgbm90IGVtaXR0ZWQgZm9yIHRoZSBjb2xsYXBzaW5nIHN0ZXBzIChsb29wIHRocm91Z2ggY29sbGFwc2luZyBzdGVwcyBhbmQgZW1pdClcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb25UeXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgW2FuaW1hdGlvbkR1cmF0aW9uXT1cIjUwMFwiPlxuICAgICAqIDxpZ3gtc3RlcHBlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEFuaW1hdGlvbkR1cmF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uRHVyYXRpb24odmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRBbmltYXRpb25EdXJhdGlvbiA9IHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVmYXVsdEFuaW1hdGlvbkR1cmF0aW9uID0gdGhpcy5fZGVmYXVsdEFuaW1hdGlvbkR1cmF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgd2hldGhlciB0aGUgc3RlcHBlciBpcyBsaW5lYXIuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIElmIHRoZSBzdGVwcGVyIGlzIGluIGxpbmVhciBtb2RlIGFuZCBpZiB0aGUgYWN0aXZlIHN0ZXAgaXMgdmFsaWQgb25seSB0aGVuIHRoZSB1c2VyIGlzIGFibGUgdG8gbW92ZSBmb3J3YXJkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtc3RlcHBlciBbbGluZWFyXT1cInRydWVcIj48L2lneC1zdGVwcGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsaW5lYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9saW5lYXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBsaW5lYXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbGluZWFyID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9saW5lYXIgJiYgdGhpcy5zdGVwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHRoZSBzdGVwcGVyIGlzIGluIGxpbmVhciBtb2RlIHdlIHNob3VsZCBjYWxjdWxhdGUgd2hpY2ggc3RlcHMgc2hvdWxkIGJlIGRpc2FibGVkXG4gICAgICAgICAgICAvLyBhbmQgd2hpY2ggYXJlIHZpc2l0ZWQgaS5lLiB0aGVpciB2YWxpZGl0eSBzaG91bGQgYmUgY29ycmVjdGx5IGRpc3BsYXllZC5cbiAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UuY2FsY3VsYXRlVmlzaXRlZFN0ZXBzKCk7XG4gICAgICAgICAgICB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmNhbGN1bGF0ZUxpbmVhckRpc2FibGVkU3RlcHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UubGluZWFyRGlzYWJsZWRTdGVwcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgc3RlcHBlciBvcmllbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnN0ZXBwZXIub3JpZW50YXRpb24gPSBJZ3hTdGVwcGVyT3JpZW50YXRpb24uVmVydGljYWw7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtb3JpZW50YXRpb24nKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBvcmllbnRhdGlvbigpOiBJZ3hTdGVwcGVyT3JpZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBvcmllbnRhdGlvbih2YWx1ZTogSWd4U3RlcHBlck9yaWVudGF0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLl9vcmllbnRhdGlvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IGFjdGl2ZUNoYW5nZSBldmVudCBpcyBub3QgZW1pdHRlZCBmb3IgdGhlIGNvbGxhcHNpbmcgc3RlcHNcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fb3JpZW50YXRpb24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFRpdGxlUG9zaXRpb24gPSB0aGlzLl9vcmllbnRhdGlvbiA9PT0gSWd4U3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWwgP1xuICAgICAgICAgICAgSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uQm90dG9tIDogSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uRW5kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIHR5cGUgb2YgdGhlIHN0ZXBzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci5zdGVwVHlwZSA9IElneFN0ZXBUeXBlLkluZGljYXRvcjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwVHlwZTogSWd4U3RlcFR5cGUgPSBJZ3hTdGVwVHlwZS5GdWxsO1xuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB3aGV0aGVyIHRoZSBjb250ZW50IGlzIGRpc3BsYXllZCBhYm92ZSB0aGUgc3RlcHMuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYCBhbmQgdGhlIGNvbnRlbnQgaXMgYmVsb3cgdGhlIHN0ZXBzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci5jb250ZW50VG9wID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb250ZW50VG9wID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBHZXQvU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgc3RlcHMgdGl0bGUuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHN0ZXBwZXIgaXMgaG9yaXpvbnRhbGx5IG9yaWVudGF0ZWQgaXMgYGJvdHRvbWAuXG4gICAgICogSW4gdmVydGljYWwgbGF5b3V0IHRoZSBkZWZhdWx0IHRpdGxlIHBvc2l0aW9uIGlzIGBlbmRgLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci50aXRsZVBvc2l0aW9uID0gSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uVG9wO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRpdGxlUG9zaXRpb246IElneFN0ZXBwZXJUaXRsZVBvc2l0aW9uID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXN0ZXBwZXInO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgcm9sZSA9ICd0YWJsaXN0JztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyLS1ob3Jpem9udGFsJylcbiAgICBwdWJsaWMgZ2V0IGRpcmVjdGlvbkNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gSWd4U3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBzdGVwcGVyJ3MgYWN0aXZlIHN0ZXAgaXMgY2hhbmdpbmcuXG4gICAgICpcbiAgICAgKmBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgKGFjdGl2ZVN0ZXBDaGFuZ2luZyk9XCJoYW5kbGVBY3RpdmVTdGVwQ2hhbmdpbmcoJGV2ZW50KVwiPlxuICAgICAqIDwvaWd4LXN0ZXBwZXI+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgaGFuZGxlQWN0aXZlU3RlcENoYW5naW5nKGV2ZW50OiBJU3RlcENoYW5naW5nRXZlbnRBcmdzKSB7XG4gICAgICogIGlmIChldmVudC5uZXdJbmRleCA8IGV2ZW50Lm9sZEluZGV4KSB7XG4gICAgICogICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAqICB9XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFjdGl2ZVN0ZXBDaGFuZ2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8SVN0ZXBDaGFuZ2luZ0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgYWN0aXZlIHN0ZXAgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgXG4gICAgICogPGlneC1zdGVwcGVyIChhY3RpdmVTdGVwQ2hhbmdlZCk9XCJoYW5kbGVBY3RpdmVTdGVwQ2hhbmdlZCgkZXZlbnQpXCI+PC9pZ3gtc3RlcHBlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aXZlU3RlcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTdGVwQ2hhbmdlZEV2ZW50QXJncz4oKTtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4U3RlcEludmFsaWRJbmRpY2F0b3JEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgaW52YWxpZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hTdGVwSW52YWxpZEluZGljYXRvckRpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAQ29udGVudENoaWxkKElneFN0ZXBDb21wbGV0ZWRJbmRpY2F0b3JEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgY29tcGxldGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneFN0ZXBDb21wbGV0ZWRJbmRpY2F0b3JEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hTdGVwQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGFjdGl2ZUluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hTdGVwQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4U3RlcENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBwcml2YXRlIF9zdGVwczogUXVlcnlMaXN0PElneFN0ZXBDb21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCBzdGVwcy5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBzdGVwczogSWd4U3RlcENvbXBvbmVudFtdID0gdGhpcy5zdGVwcGVyLnN0ZXBzO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc3RlcHMoKTogSWd4U3RlcENvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBzPy50b0FycmF5KCkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyB2ZXJ0aWNhbEFuaW1hdGlvblNldHRpbmdzOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyA9IHtcbiAgICAgICAgb3BlbkFuaW1hdGlvbjogZ3Jvd1ZlckluLFxuICAgICAgICBjbG9zZUFuaW1hdGlvbjogZ3Jvd1Zlck91dCxcbiAgICB9O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBfZGVmYXVsdFRpdGxlUG9zaXRpb246IElneFN0ZXBwZXJUaXRsZVBvc2l0aW9uID0gSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uQm90dG9tO1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgX29yaWVudGF0aW9uOiBJZ3hTdGVwcGVyT3JpZW50YXRpb24gPSBJZ3hTdGVwcGVyT3JpZW50YXRpb24uSG9yaXpvbnRhbDtcbiAgICBwcml2YXRlIF92ZXJ0aWNhbEFuaW1hdGlvblR5cGU6IFZlcnRpY2FsQW5pbWF0aW9uVHlwZSA9IFZlcnRpY2FsQW5pbWF0aW9uVHlwZS5Hcm93O1xuICAgIHByaXZhdGUgX2xpbmVhciA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRBbmltYXRpb25EdXJhdGlvbiA9IDM1MDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KElneEFuZ3VsYXJBbmltYXRpb25TZXJ2aWNlKSBhbmltYXRpb25TZXJ2aWNlOiBBbmltYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHN0ZXBwZXJTZXJ2aWNlOiBJZ3hTdGVwcGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICBzdXBlcihhbmltYXRpb25TZXJ2aWNlLCBjZHIpO1xuICAgICAgICB0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0ZXBwZXIgPSB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydhbmltYXRpb25EdXJhdGlvbiddKSB7XG4gICAgICAgICAgICB0aGlzLnZlcnRpY2FsQW5pbWF0aW9uVHlwZSA9IHRoaXMuX3ZlcnRpY2FsQW5pbWF0aW9uVHlwZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnRlckFuaW1hdGlvbkRvbmUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2VkLmVtaXQoeyBvd25lcjogdGhpcywgaW5kZXg6IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcC5pbmRleCB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGVhdmVBbmltYXRpb25Eb25lLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RlcHBlclNlcnZpY2UuY29sbGFwc2luZ1N0ZXBzLnNpemUgPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmNvbGxhcHNlKHRoaXMuc3RlcHBlclNlcnZpY2UucHJldmlvdXNBY3RpdmVTdGVwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLnN0ZXBwZXJTZXJ2aWNlLmNvbGxhcHNpbmdTdGVwcykuc2xpY2UoMCwgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuc2l6ZSAtIDEpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKHN0ZXAgPT4gdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzZShzdGVwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG5cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBsZXQgYWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGVwQXJpYShzdGVwLCBpbmRleCk7XG4gICAgICAgICAgICBpZiAoIWFjdGl2ZVN0ZXAgJiYgc3RlcC5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVTdGVwID0gc3RlcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghYWN0aXZlU3RlcCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0U3RlcCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxpbmVhcikge1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jYWxjdWxhdGVMaW5lYXJEaXNhYmxlZFN0ZXBzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhbmRsZVN0ZXBDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyB0aGUgc3RlcCBhdCBhIGdpdmVuIGluZGV4LlxuICAgICAqXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5zdGVwcGVyLm5hdmlnYXRlVG8oMSk7XG4gICAgICpgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF2aWdhdGVUbyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXBzW2luZGV4XTtcbiAgICAgICAgaWYgKCFzdGVwIHx8IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcCA9PT0gc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTdGVwKHN0ZXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyB0aGUgbmV4dCBlbmFibGVkIHN0ZXAuXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAqYGBgXG4gICAgICovXG4gICAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZVRvTmV4dFN0ZXAoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgdGhlIHByZXZpb3VzIGVuYWJsZWQgc3RlcC5cbiAgICAgKlxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci5wcmV2KCk7XG4gICAgICpgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlVG9OZXh0U3RlcChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBzdGVwcGVyIHRvIGl0cyBpbml0aWFsIHN0YXRlIGkuZS4gYWN0aXZhdGVzIHRoZSBmaXJzdCBzdGVwLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGUgc3RlcHMnIGNvbnRlbnQgd2lsbCBub3QgYmUgYXV0b21hdGljYWxseSByZXNldC5cbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnN0ZXBwZXIucmVzZXQoKTtcbiAgICAgKmBgYFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS52aXNpdGVkU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgYWN0aXZlU3RlcCA9IHRoaXMuc3RlcHMuZmluZChzID0+ICFzLmRpc2FibGVkKTtcbiAgICAgICAgaWYgKGFjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTdGVwKGFjdGl2ZVN0ZXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHBsYXlIb3Jpem9udGFsQW5pbWF0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c0l0ZW0gPSB0aGlzLnN0ZXBwZXJTZXJ2aWNlLnByZXZpb3VzQWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy50cmlnZ2VyQW5pbWF0aW9ucygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRQcmV2aW91c0VsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcGVyU2VydmljZS5wcmV2aW91c0FjdGl2ZVN0ZXA/LmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q3VycmVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcGVyU2VydmljZS5hY3RpdmVTdGVwLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZlcnRpY2FsQW5pbWF0aW9uU2V0dGluZ3MoXG4gICAgICAgIG9wZW5BbmltYXRpb246IEFuaW1hdGlvblJlZmVyZW5jZU1ldGFkYXRhLFxuICAgICAgICBjbG9zZUFuaW1hdGlvbjogQW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGEpOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNsb3NlQW5pbWF0aW9uID0gdXNlQW5pbWF0aW9uKGNsb3NlQW5pbWF0aW9uLCB7XG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5hbmltYXRpb25EdXJhdGlvbiArICdtcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGN1c3RvbU9wZW5BbmltYXRpb24gPSB1c2VBbmltYXRpb24ob3BlbkFuaW1hdGlvbiwge1xuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb246IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24gKyAnbXMnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvcGVuQW5pbWF0aW9uOiBvcGVuQW5pbWF0aW9uID8gY3VzdG9tT3BlbkFuaW1hdGlvbiA6IG51bGwsXG4gICAgICAgICAgICBjbG9zZUFuaW1hdGlvbjogY2xvc2VBbmltYXRpb24gPyBjdXN0b21DbG9zZUFuaW1hdGlvbiA6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0ZXBBcmlhKHN0ZXA6IElneFN0ZXBDb21wb25lbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc3RlcC5faW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RlcC5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3RlcC5uYXRpdmVFbGVtZW50LCAnYXJpYS1zZXRzaXplJywgKHRoaXMuc3RlcHMubGVuZ3RoKS50b1N0cmluZygpKTtcbiAgICAgICAgc3RlcC5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3RlcC5uYXRpdmVFbGVtZW50LCAnYXJpYS1wb3NpbnNldCcsIChpbmRleCArIDEpLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU3RlcENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0ZXBzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShzdGVwcyA9PiB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0ZXBBcmlhKHN0ZXAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGFjdGl2ZSBzdGVwIGlzIHJlbW92ZWRcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNBY3RpdmVTdGVwID0gdGhpcy5zdGVwcy5maW5kKHMgPT4gcyA9PT0gdGhpcy5zdGVwcGVyU2VydmljZS5hY3RpdmVTdGVwKTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0FjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0U3RlcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBUTyBETzogbWFyayBzdGVwIGFkZGVkIGJlZm9yZSB0aGUgYWN0aXZlIGFzIHZpc2l0ZWQ/XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGluZWFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UuY2FsY3VsYXRlTGluZWFyRGlzYWJsZWRTdGVwcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjdGl2YXRlRmlyc3RTdGVwKGFjdGl2YXRlSW5pdGlhbGx5ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgZmlyc3RFbmFibGVkU3RlcCA9IHRoaXMuc3RlcHMuZmluZChzID0+ICFzLmRpc2FibGVkKTtcbiAgICAgICAgaWYgKGZpcnN0RW5hYmxlZFN0ZXApIHtcbiAgICAgICAgICAgIGZpcnN0RW5hYmxlZFN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChhY3RpdmF0ZUluaXRpYWxseSkge1xuICAgICAgICAgICAgICAgIGZpcnN0RW5hYmxlZFN0ZXAuYWN0aXZlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVTdGVwQ2hhbmdlZC5lbWl0KHsgb3duZXI6IHRoaXMsIGluZGV4OiBmaXJzdEVuYWJsZWRTdGVwLmluZGV4IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZVN0ZXAoc3RlcDogSWd4U3RlcENvbXBvbmVudCkge1xuICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gSWd4U3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWwpIHtcbiAgICAgICAgICAgIHN0ZXAuY2hhbmdlSG9yaXpvbnRhbEFjdGl2ZVN0ZXAoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UuZXhwYW5kKHN0ZXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlVG9OZXh0U3RlcChuZXh0ID0gdHJ1ZSkge1xuICAgICAgICBsZXQgc3RlcHM6IElneFN0ZXBDb21wb25lbnRbXSA9IHRoaXMuc3RlcHM7XG4gICAgICAgIGxldCBhY3RpdmVTdGVwSW5kZXggPSB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmFjdGl2ZVN0ZXAuaW5kZXg7XG4gICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgc3RlcHMgPSB0aGlzLnN0ZXBzLnJldmVyc2UoKTtcbiAgICAgICAgICAgIGFjdGl2ZVN0ZXBJbmRleCA9IHN0ZXBzLmZpbmRJbmRleChzID0+IHMgPT09IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXh0U3RlcCA9IHN0ZXBzLmZpbmQoKHMsIGkpID0+IGkgPiBhY3RpdmVTdGVwSW5kZXggJiYgcy5pc0FjY2Vzc2libGUpO1xuICAgICAgICBpZiAobmV4dFN0ZXApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTdGVwKG5leHRTdGVwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4iLCI8ZGl2ICpuZ0lmPVwiIWNvbnRlbnRUb3AgfHwgb3JpZW50YXRpb24gIT09ICdob3Jpem9udGFsJ1wiIGNsYXNzPVwiaWd4LXN0ZXBwZXJfX2hlYWRlclwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInN0ZXBUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCdcIiBjbGFzcz1cImlneC1zdGVwcGVyX19ib2R5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcC5jb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiY29udGVudFRvcCAmJiBvcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXCIgY2xhc3M9XCJpZ3gtc3RlcHBlcl9faGVhZGVyXCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3N0ZXBUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtc3RlcFwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
497
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDa0MsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQ2pFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFDNUMsTUFBTSxFQUEyQixXQUFXLEVBQ3ZELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBMkIsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQ1MscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUN2RSxxQkFBcUIsRUFBaUQscUJBQXFCLEVBQzlGLE1BQU0sa0JBQWtCLENBQUM7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RSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUs5RCwwQkFBMEI7c0JBRGhDLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUtoRSx1QkFBdUI7c0JBRDdCLFlBQVk7dUJBQUMsK0JBQStCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUs1RCxNQUFNO3NCQURiLGVBQWU7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGEsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgICBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ3Jvd1ZlckluLCBncm93VmVyT3V0IH0gZnJvbSAnLi4vYW5pbWF0aW9ucy9ncm93JztcbmltcG9ydCB7IGZhZGVJbiB9IGZyb20gJy4uL2FuaW1hdGlvbnMvbWFpbic7XG5pbXBvcnQgeyBIb3Jpem9udGFsQW5pbWF0aW9uVHlwZSwgSWd4Q2Fyb3VzZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwvY2Fyb3VzZWwtYmFzZSc7XG5cbmltcG9ydCB7IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL3RvZ2dsZS1hbmltYXRpb24tY29tcG9uZW50JztcbmltcG9ydCB7IElneEFuZ3VsYXJBbmltYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYW5pbWF0aW9uL2FuZ3VsYXItYW5pbWF0aW9uLXNlcnZpY2UnO1xuaW1wb3J0IHsgQW5pbWF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FuaW1hdGlvbi9hbmltYXRpb24nO1xuaW1wb3J0IHsgSWd4U3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIElneFN0ZXBwZXIsIElneFN0ZXBwZXJPcmllbnRhdGlvbiwgSWd4U3RlcHBlclRpdGxlUG9zaXRpb24sIElneFN0ZXBUeXBlLFxuICAgIElHWF9TVEVQUEVSX0NPTVBPTkVOVCwgSVN0ZXBDaGFuZ2VkRXZlbnRBcmdzLCBJU3RlcENoYW5naW5nRXZlbnRBcmdzLCBWZXJ0aWNhbEFuaW1hdGlvblR5cGVcbn0gZnJvbSAnLi9zdGVwcGVyLmNvbW1vbic7XG5pbXBvcnQge1xuICAgIElneFN0ZXBBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4U3RlcENvbXBsZXRlZEluZGljYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hTdGVwSW52YWxpZEluZGljYXRvckRpcmVjdGl2ZVxufSBmcm9tICcuL3N0ZXBwZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFN0ZXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zdGVwcGVyLnNlcnZpY2UnO1xuXG5cbi8vIFRPRE86IGNvbW1vbiBpbnRlcmZhY2UgYmV0d2VlbiBJZ3hDYXJvdXNlbENvbXBvbmVudEJhc2UgYW5kIFRvZ2dsZUFuaW1hdGlvblBsYXllcj9cblxuLyoqXG4gKiBJZ3hTdGVwcGVyIHByb3ZpZGVzIGEgd2l6YXJkLWxpa2Ugd29ya2Zsb3cgYnkgZGl2aWRpbmcgY29udGVudCBpbnRvIGxvZ2ljYWwgc3RlcHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hTdGVwcGVyTW9kdWxlXG4gKlxuICogQGlneEtleXdvcmRzIHN0ZXBwZXJcbiAqXG4gKiBAaWd4R3JvdXAgTGF5b3V0c1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIFN0ZXBwZXIgY29tcG9uZW50IGFsbG93cyB0aGUgdXNlciB0byBuYXZpZ2F0ZSBiZXR3ZWVuIG11bHRpcGxlIHN0ZXBzLlxuICogSXQgc3VwcG9ydHMgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgb3JpZW50YXRpb24gYXMgd2VsbCBhcyBrZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBwcm92aWRlcyBBUEkgbWV0aG9kcyB0byBjb250cm9sIHRoZSBhY3RpdmUgc3RlcC5cbiAqIFRoZSBjb21wb25lbnQgb2ZmZXJzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIEFQSSB0byBjb250cm9sIHRoZSBhY3RpdmUgc3RlcC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1zdGVwcGVyPlxuICogIDxpZ3gtc3RlcCBbYWN0aXZlXT1cInRydWVcIj5cbiAqICAgICAgPGlneC1pY29uIGlneFN0ZXBJbmRpY2F0b3I+aG9tZTwvaWd4LWljb24+XG4gKiAgICAgIDxwIGlneFN0ZXBUaXRsZT5Ib21lPC9wPlxuICogICAgICA8ZGl2IGlneFN0ZXBDb250ZW50PlxuICogICAgICAgICAuLi5cbiAqICAgICAgPC9kaXY+XG4gKiAgPC9pZ3gtc3RlcD5cbiAqICA8aWd4LXN0ZXAgW29wdGlvbmFsXT1cInRydWVcIj5cbiAqICAgICAgPGRpdiBpZ3hTdGVwQ29udGVudD5cbiAqICAgICAgICAgIC4uLlxuICogICAgICA8L2Rpdj5cbiAqICA8L2lneC1zdGVwPlxuICogIDxpZ3gtc3RlcD5cbiAqICAgICAgPGRpdiBpZ3hTdGVwQ29udGVudD5cbiAqICAgICAgICAgIC4uLlxuICogICAgICA8L2Rpdj5cbiAqICA8L2lneC1zdGVwPlxuICogPC9pZ3gtc3RlcHBlcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1zdGVwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBJZ3hTdGVwcGVyU2VydmljZSxcbiAgICAgICAgeyBwcm92aWRlOiBJR1hfU1RFUFBFUl9DT01QT05FTlQsIHVzZUV4aXN0aW5nOiBJZ3hTdGVwcGVyQ29tcG9uZW50IH0sXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0Zvcl1cbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcHBlckNvbXBvbmVudCBleHRlbmRzIElneENhcm91c2VsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIElneFN0ZXBwZXIsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYW5pbWF0aW9uIHR5cGUgb2YgdGhlIHN0ZXBwZXIgd2hlbiB0aGUgb3JpZW50YXRpb24gZGlyZWN0aW9uIGlzIHZlcnRpY2FsLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBncm93YC4gT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBgZmFkZWAgYW5kIGBub25lYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgdmVydGljYWxBbmltYXRpb25UeXBlPVwibm9uZVwiPlxuICAgICAqIDxpZ3gtc3RlcHBlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdmVydGljYWxBbmltYXRpb25UeXBlKCk6IFZlcnRpY2FsQW5pbWF0aW9uVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbEFuaW1hdGlvblR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2ZXJ0aWNhbEFuaW1hdGlvblR5cGUodmFsdWU6IFZlcnRpY2FsQW5pbWF0aW9uVHlwZSkge1xuICAgICAgICAvLyBUT0RPOiBhY3RpdmVDaGFuZ2UgZXZlbnQgaXMgbm90IGVtaXR0ZWQgZm9yIHRoZSBjb2xsYXBzaW5nIHN0ZXBzIChsb29wIHRocm91Z2ggY29sbGFwc2luZyBzdGVwcyBhbmQgZW1pdClcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fdmVydGljYWxBbmltYXRpb25UeXBlID0gdmFsdWU7XG5cbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnZ3Jvdyc6XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJ0aWNhbEFuaW1hdGlvblNldHRpbmdzID0gdGhpcy51cGRhdGVWZXJ0aWNhbEFuaW1hdGlvblNldHRpbmdzKGdyb3dWZXJJbiwgZ3Jvd1Zlck91dCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmYWRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLnZlcnRpY2FsQW5pbWF0aW9uU2V0dGluZ3MgPSB0aGlzLnVwZGF0ZVZlcnRpY2FsQW5pbWF0aW9uU2V0dGluZ3MoZmFkZUluLCBudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHRoaXMudmVydGljYWxBbmltYXRpb25TZXR0aW5ncyA9IHRoaXMudXBkYXRlVmVydGljYWxBbmltYXRpb25TZXR0aW5ncyhudWxsLCBudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIGFuaW1hdGlvbiB0eXBlIG9mIHRoZSBzdGVwcGVyIHdoZW4gdGhlIG9yaWVudGF0aW9uIGRpcmVjdGlvbiBpcyBob3Jpem9udGFsLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBncm93YC4gT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBgZmFkZWAgYW5kIGBub25lYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgYW5pbWF0aW9uVHlwZT1cIm5vbmVcIj5cbiAgICAgKiA8aWd4LXN0ZXBwZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGhvcml6b250YWxBbmltYXRpb25UeXBlKCk6IEhvcml6b250YWxBbmltYXRpb25UeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGhvcml6b250YWxBbmltYXRpb25UeXBlKHZhbHVlOiBIb3Jpem9udGFsQW5pbWF0aW9uVHlwZSkge1xuICAgICAgICAvLyBUT0RPOiBhY3RpdmVDaGFuZ2UgZXZlbnQgaXMgbm90IGVtaXR0ZWQgZm9yIHRoZSBjb2xsYXBzaW5nIHN0ZXBzIChsb29wIHRocm91Z2ggY29sbGFwc2luZyBzdGVwcyBhbmQgZW1pdClcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb25UeXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgW2FuaW1hdGlvbkR1cmF0aW9uXT1cIjUwMFwiPlxuICAgICAqIDxpZ3gtc3RlcHBlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEFuaW1hdGlvbkR1cmF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uRHVyYXRpb24odmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRBbmltYXRpb25EdXJhdGlvbiA9IHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVmYXVsdEFuaW1hdGlvbkR1cmF0aW9uID0gdGhpcy5fZGVmYXVsdEFuaW1hdGlvbkR1cmF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgd2hldGhlciB0aGUgc3RlcHBlciBpcyBsaW5lYXIuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIElmIHRoZSBzdGVwcGVyIGlzIGluIGxpbmVhciBtb2RlIGFuZCBpZiB0aGUgYWN0aXZlIHN0ZXAgaXMgdmFsaWQgb25seSB0aGVuIHRoZSB1c2VyIGlzIGFibGUgdG8gbW92ZSBmb3J3YXJkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtc3RlcHBlciBbbGluZWFyXT1cInRydWVcIj48L2lneC1zdGVwcGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsaW5lYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9saW5lYXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBsaW5lYXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbGluZWFyID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9saW5lYXIgJiYgdGhpcy5zdGVwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHRoZSBzdGVwcGVyIGlzIGluIGxpbmVhciBtb2RlIHdlIHNob3VsZCBjYWxjdWxhdGUgd2hpY2ggc3RlcHMgc2hvdWxkIGJlIGRpc2FibGVkXG4gICAgICAgICAgICAvLyBhbmQgd2hpY2ggYXJlIHZpc2l0ZWQgaS5lLiB0aGVpciB2YWxpZGl0eSBzaG91bGQgYmUgY29ycmVjdGx5IGRpc3BsYXllZC5cbiAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UuY2FsY3VsYXRlVmlzaXRlZFN0ZXBzKCk7XG4gICAgICAgICAgICB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmNhbGN1bGF0ZUxpbmVhckRpc2FibGVkU3RlcHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UubGluZWFyRGlzYWJsZWRTdGVwcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgc3RlcHBlciBvcmllbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnN0ZXBwZXIub3JpZW50YXRpb24gPSBJZ3hTdGVwcGVyT3JpZW50YXRpb24uVmVydGljYWw7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtb3JpZW50YXRpb24nKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBvcmllbnRhdGlvbigpOiBJZ3hTdGVwcGVyT3JpZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBvcmllbnRhdGlvbih2YWx1ZTogSWd4U3RlcHBlck9yaWVudGF0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLl9vcmllbnRhdGlvbiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IGFjdGl2ZUNoYW5nZSBldmVudCBpcyBub3QgZW1pdHRlZCBmb3IgdGhlIGNvbGxhcHNpbmcgc3RlcHNcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fb3JpZW50YXRpb24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFRpdGxlUG9zaXRpb24gPSB0aGlzLl9vcmllbnRhdGlvbiA9PT0gSWd4U3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWwgP1xuICAgICAgICAgICAgSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uQm90dG9tIDogSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uRW5kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIHR5cGUgb2YgdGhlIHN0ZXBzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci5zdGVwVHlwZSA9IElneFN0ZXBUeXBlLkluZGljYXRvcjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwVHlwZTogSWd4U3RlcFR5cGUgPSBJZ3hTdGVwVHlwZS5GdWxsO1xuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB3aGV0aGVyIHRoZSBjb250ZW50IGlzIGRpc3BsYXllZCBhYm92ZSB0aGUgc3RlcHMuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYCBhbmQgdGhlIGNvbnRlbnQgaXMgYmVsb3cgdGhlIHN0ZXBzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci5jb250ZW50VG9wID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb250ZW50VG9wID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBHZXQvU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgc3RlcHMgdGl0bGUuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHN0ZXBwZXIgaXMgaG9yaXpvbnRhbGx5IG9yaWVudGF0ZWQgaXMgYGJvdHRvbWAuXG4gICAgICogSW4gdmVydGljYWwgbGF5b3V0IHRoZSBkZWZhdWx0IHRpdGxlIHBvc2l0aW9uIGlzIGBlbmRgLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci50aXRsZVBvc2l0aW9uID0gSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uVG9wO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRpdGxlUG9zaXRpb246IElneFN0ZXBwZXJUaXRsZVBvc2l0aW9uID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LXN0ZXBwZXInO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgcm9sZSA9ICd0YWJsaXN0JztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyLS1ob3Jpem9udGFsJylcbiAgICBwdWJsaWMgZ2V0IGRpcmVjdGlvbkNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gSWd4U3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBzdGVwcGVyJ3MgYWN0aXZlIHN0ZXAgaXMgY2hhbmdpbmcuXG4gICAgICpcbiAgICAgKmBgYGh0bWxcbiAgICAgKiA8aWd4LXN0ZXBwZXIgKGFjdGl2ZVN0ZXBDaGFuZ2luZyk9XCJoYW5kbGVBY3RpdmVTdGVwQ2hhbmdpbmcoJGV2ZW50KVwiPlxuICAgICAqIDwvaWd4LXN0ZXBwZXI+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgaGFuZGxlQWN0aXZlU3RlcENoYW5naW5nKGV2ZW50OiBJU3RlcENoYW5naW5nRXZlbnRBcmdzKSB7XG4gICAgICogIGlmIChldmVudC5uZXdJbmRleCA8IGV2ZW50Lm9sZEluZGV4KSB7XG4gICAgICogICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAqICB9XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFjdGl2ZVN0ZXBDaGFuZ2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8SVN0ZXBDaGFuZ2luZ0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgYWN0aXZlIHN0ZXAgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgXG4gICAgICogPGlneC1zdGVwcGVyIChhY3RpdmVTdGVwQ2hhbmdlZCk9XCJoYW5kbGVBY3RpdmVTdGVwQ2hhbmdlZCgkZXZlbnQpXCI+PC9pZ3gtc3RlcHBlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aXZlU3RlcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTdGVwQ2hhbmdlZEV2ZW50QXJncz4oKTtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBDb250ZW50Q2hpbGQoSWd4U3RlcEludmFsaWRJbmRpY2F0b3JEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgaW52YWxpZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hTdGVwSW52YWxpZEluZGljYXRvckRpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAQ29udGVudENoaWxkKElneFN0ZXBDb21wbGV0ZWRJbmRpY2F0b3JEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgY29tcGxldGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneFN0ZXBDb21wbGV0ZWRJbmRpY2F0b3JEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hTdGVwQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGFjdGl2ZUluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hTdGVwQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4U3RlcENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBwcml2YXRlIF9zdGVwczogUXVlcnlMaXN0PElneFN0ZXBDb21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCBzdGVwcy5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBzdGVwczogSWd4U3RlcENvbXBvbmVudFtdID0gdGhpcy5zdGVwcGVyLnN0ZXBzO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc3RlcHMoKTogSWd4U3RlcENvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBzPy50b0FycmF5KCkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyB2ZXJ0aWNhbEFuaW1hdGlvblNldHRpbmdzOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyA9IHtcbiAgICAgICAgb3BlbkFuaW1hdGlvbjogZ3Jvd1ZlckluLFxuICAgICAgICBjbG9zZUFuaW1hdGlvbjogZ3Jvd1Zlck91dCxcbiAgICB9O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBfZGVmYXVsdFRpdGxlUG9zaXRpb246IElneFN0ZXBwZXJUaXRsZVBvc2l0aW9uID0gSWd4U3RlcHBlclRpdGxlUG9zaXRpb24uQm90dG9tO1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgX29yaWVudGF0aW9uOiBJZ3hTdGVwcGVyT3JpZW50YXRpb24gPSBJZ3hTdGVwcGVyT3JpZW50YXRpb24uSG9yaXpvbnRhbDtcbiAgICBwcml2YXRlIF92ZXJ0aWNhbEFuaW1hdGlvblR5cGU6IFZlcnRpY2FsQW5pbWF0aW9uVHlwZSA9IFZlcnRpY2FsQW5pbWF0aW9uVHlwZS5Hcm93O1xuICAgIHByaXZhdGUgX2xpbmVhciA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRBbmltYXRpb25EdXJhdGlvbiA9IDM1MDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KElneEFuZ3VsYXJBbmltYXRpb25TZXJ2aWNlKSBhbmltYXRpb25TZXJ2aWNlOiBBbmltYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHN0ZXBwZXJTZXJ2aWNlOiBJZ3hTdGVwcGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICBzdXBlcihhbmltYXRpb25TZXJ2aWNlLCBjZHIpO1xuICAgICAgICB0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0ZXBwZXIgPSB0aGlzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydhbmltYXRpb25EdXJhdGlvbiddKSB7XG4gICAgICAgICAgICB0aGlzLnZlcnRpY2FsQW5pbWF0aW9uVHlwZSA9IHRoaXMuX3ZlcnRpY2FsQW5pbWF0aW9uVHlwZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnRlckFuaW1hdGlvbkRvbmUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2VkLmVtaXQoeyBvd25lcjogdGhpcywgaW5kZXg6IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcC5pbmRleCB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGVhdmVBbmltYXRpb25Eb25lLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RlcHBlclNlcnZpY2UuY29sbGFwc2luZ1N0ZXBzLnNpemUgPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmNvbGxhcHNlKHRoaXMuc3RlcHBlclNlcnZpY2UucHJldmlvdXNBY3RpdmVTdGVwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLnN0ZXBwZXJTZXJ2aWNlLmNvbGxhcHNpbmdTdGVwcykuc2xpY2UoMCwgdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzaW5nU3RlcHMuc2l6ZSAtIDEpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKHN0ZXAgPT4gdGhpcy5zdGVwcGVyU2VydmljZS5jb2xsYXBzZShzdGVwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG5cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBsZXQgYWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGVwQXJpYShzdGVwLCBpbmRleCk7XG4gICAgICAgICAgICBpZiAoIWFjdGl2ZVN0ZXAgJiYgc3RlcC5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVTdGVwID0gc3RlcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghYWN0aXZlU3RlcCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0U3RlcCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxpbmVhcikge1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS5jYWxjdWxhdGVMaW5lYXJEaXNhYmxlZFN0ZXBzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhbmRsZVN0ZXBDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyB0aGUgc3RlcCBhdCBhIGdpdmVuIGluZGV4LlxuICAgICAqXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5zdGVwcGVyLm5hdmlnYXRlVG8oMSk7XG4gICAgICpgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF2aWdhdGVUbyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXBzW2luZGV4XTtcbiAgICAgICAgaWYgKCFzdGVwIHx8IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcCA9PT0gc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTdGVwKHN0ZXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyB0aGUgbmV4dCBlbmFibGVkIHN0ZXAuXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgICAqYGBgXG4gICAgICovXG4gICAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZVRvTmV4dFN0ZXAoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgdGhlIHByZXZpb3VzIGVuYWJsZWQgc3RlcC5cbiAgICAgKlxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuc3RlcHBlci5wcmV2KCk7XG4gICAgICpgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlVG9OZXh0U3RlcChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBzdGVwcGVyIHRvIGl0cyBpbml0aWFsIHN0YXRlIGkuZS4gYWN0aXZhdGVzIHRoZSBmaXJzdCBzdGVwLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGUgc3RlcHMnIGNvbnRlbnQgd2lsbCBub3QgYmUgYXV0b21hdGljYWxseSByZXNldC5cbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnN0ZXBwZXIucmVzZXQoKTtcbiAgICAgKmBgYFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwcGVyU2VydmljZS52aXNpdGVkU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgYWN0aXZlU3RlcCA9IHRoaXMuc3RlcHMuZmluZChzID0+ICFzLmRpc2FibGVkKTtcbiAgICAgICAgaWYgKGFjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTdGVwKGFjdGl2ZVN0ZXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHBsYXlIb3Jpem9udGFsQW5pbWF0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c0l0ZW0gPSB0aGlzLnN0ZXBwZXJTZXJ2aWNlLnByZXZpb3VzQWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy50cmlnZ2VyQW5pbWF0aW9ucygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRQcmV2aW91c0VsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcGVyU2VydmljZS5wcmV2aW91c0FjdGl2ZVN0ZXA/LmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q3VycmVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcGVyU2VydmljZS5hY3RpdmVTdGVwLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZlcnRpY2FsQW5pbWF0aW9uU2V0dGluZ3MoXG4gICAgICAgIG9wZW5BbmltYXRpb246IEFuaW1hdGlvblJlZmVyZW5jZU1ldGFkYXRhLFxuICAgICAgICBjbG9zZUFuaW1hdGlvbjogQW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGEpOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNsb3NlQW5pbWF0aW9uID0gdXNlQW5pbWF0aW9uKGNsb3NlQW5pbWF0aW9uLCB7XG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5hbmltYXRpb25EdXJhdGlvbiArICdtcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGN1c3RvbU9wZW5BbmltYXRpb24gPSB1c2VBbmltYXRpb24ob3BlbkFuaW1hdGlvbiwge1xuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb246IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24gKyAnbXMnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvcGVuQW5pbWF0aW9uOiBvcGVuQW5pbWF0aW9uID8gY3VzdG9tT3BlbkFuaW1hdGlvbiA6IG51bGwsXG4gICAgICAgICAgICBjbG9zZUFuaW1hdGlvbjogY2xvc2VBbmltYXRpb24gPyBjdXN0b21DbG9zZUFuaW1hdGlvbiA6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0ZXBBcmlhKHN0ZXA6IElneFN0ZXBDb21wb25lbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc3RlcC5faW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RlcC5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3RlcC5uYXRpdmVFbGVtZW50LCAnYXJpYS1zZXRzaXplJywgKHRoaXMuc3RlcHMubGVuZ3RoKS50b1N0cmluZygpKTtcbiAgICAgICAgc3RlcC5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3RlcC5uYXRpdmVFbGVtZW50LCAnYXJpYS1wb3NpbnNldCcsIChpbmRleCArIDEpLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU3RlcENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0ZXBzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShzdGVwcyA9PiB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0ZXBBcmlhKHN0ZXAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGFjdGl2ZSBzdGVwIGlzIHJlbW92ZWRcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNBY3RpdmVTdGVwID0gdGhpcy5zdGVwcy5maW5kKHMgPT4gcyA9PT0gdGhpcy5zdGVwcGVyU2VydmljZS5hY3RpdmVTdGVwKTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0FjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0U3RlcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBUTyBETzogbWFyayBzdGVwIGFkZGVkIGJlZm9yZSB0aGUgYWN0aXZlIGFzIHZpc2l0ZWQ/XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGluZWFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UuY2FsY3VsYXRlTGluZWFyRGlzYWJsZWRTdGVwcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjdGl2YXRlRmlyc3RTdGVwKGFjdGl2YXRlSW5pdGlhbGx5ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgZmlyc3RFbmFibGVkU3RlcCA9IHRoaXMuc3RlcHMuZmluZChzID0+ICFzLmRpc2FibGVkKTtcbiAgICAgICAgaWYgKGZpcnN0RW5hYmxlZFN0ZXApIHtcbiAgICAgICAgICAgIGZpcnN0RW5hYmxlZFN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChhY3RpdmF0ZUluaXRpYWxseSkge1xuICAgICAgICAgICAgICAgIGZpcnN0RW5hYmxlZFN0ZXAuYWN0aXZlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVTdGVwQ2hhbmdlZC5lbWl0KHsgb3duZXI6IHRoaXMsIGluZGV4OiBmaXJzdEVuYWJsZWRTdGVwLmluZGV4IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZVN0ZXAoc3RlcDogSWd4U3RlcENvbXBvbmVudCkge1xuICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gSWd4U3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWwpIHtcbiAgICAgICAgICAgIHN0ZXAuY2hhbmdlSG9yaXpvbnRhbEFjdGl2ZVN0ZXAoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UuZXhwYW5kKHN0ZXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlVG9OZXh0U3RlcChuZXh0ID0gdHJ1ZSkge1xuICAgICAgICBsZXQgc3RlcHM6IElneFN0ZXBDb21wb25lbnRbXSA9IHRoaXMuc3RlcHM7XG4gICAgICAgIGxldCBhY3RpdmVTdGVwSW5kZXggPSB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmFjdGl2ZVN0ZXAuaW5kZXg7XG4gICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgc3RlcHMgPSB0aGlzLnN0ZXBzLnJldmVyc2UoKTtcbiAgICAgICAgICAgIGFjdGl2ZVN0ZXBJbmRleCA9IHN0ZXBzLmZpbmRJbmRleChzID0+IHMgPT09IHRoaXMuc3RlcHBlclNlcnZpY2UuYWN0aXZlU3RlcCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXh0U3RlcCA9IHN0ZXBzLmZpbmQoKHMsIGkpID0+IGkgPiBhY3RpdmVTdGVwSW5kZXggJiYgcy5pc0FjY2Vzc2libGUpO1xuICAgICAgICBpZiAobmV4dFN0ZXApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTdGVwKG5leHRTdGVwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4iLCI8ZGl2ICpuZ0lmPVwiIWNvbnRlbnRUb3AgfHwgb3JpZW50YXRpb24gIT09ICdob3Jpem9udGFsJ1wiIGNsYXNzPVwiaWd4LXN0ZXBwZXJfX2hlYWRlclwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInN0ZXBUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCdcIiBjbGFzcz1cImlneC1zdGVwcGVyX19ib2R5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcC5jb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiY29udGVudFRvcCAmJiBvcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXCIgY2xhc3M9XCJpZ3gtc3RlcHBlcl9faGVhZGVyXCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3N0ZXBUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtc3RlcFwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -3,10 +3,10 @@ import { IGX_STEP_COMPONENT } from './stepper.common';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./stepper.service";
5
5
  export class IgxStepActiveIndicatorDirective {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepActiveIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepActiveIndicatorDirective, isStandalone: true, selector: "[igxStepActiveIndicator]", ngImport: i0 }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepActiveIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepActiveIndicatorDirective, isStandalone: true, selector: "[igxStepActiveIndicator]", ngImport: i0 }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepActiveIndicatorDirective, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepActiveIndicatorDirective, decorators: [{
10
10
  type: Directive,
11
11
  args: [{
12
12
  selector: '[igxStepActiveIndicator]',
@@ -14,10 +14,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
14
14
  }]
15
15
  }] });
16
16
  export class IgxStepCompletedIndicatorDirective {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepCompletedIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepCompletedIndicatorDirective, isStandalone: true, selector: "[igxStepCompletedIndicator]", ngImport: i0 }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepCompletedIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepCompletedIndicatorDirective, isStandalone: true, selector: "[igxStepCompletedIndicator]", ngImport: i0 }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepCompletedIndicatorDirective, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepCompletedIndicatorDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[igxStepCompletedIndicator]',
@@ -25,10 +25,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
25
25
  }]
26
26
  }] });
27
27
  export class IgxStepInvalidIndicatorDirective {
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepInvalidIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepInvalidIndicatorDirective, isStandalone: true, selector: "[igxStepInvalidIndicator]", ngImport: i0 }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepInvalidIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepInvalidIndicatorDirective, isStandalone: true, selector: "[igxStepInvalidIndicator]", ngImport: i0 }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepInvalidIndicatorDirective, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepInvalidIndicatorDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  selector: '[igxStepInvalidIndicator]',
@@ -36,10 +36,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
36
36
  }]
37
37
  }] });
38
38
  export class IgxStepIndicatorDirective {
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepIndicatorDirective, isStandalone: true, selector: "[igxStepIndicator]", ngImport: i0 }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepIndicatorDirective, isStandalone: true, selector: "[igxStepIndicator]", ngImport: i0 }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepIndicatorDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepIndicatorDirective, decorators: [{
43
43
  type: Directive,
44
44
  args: [{
45
45
  selector: '[igxStepIndicator]',
@@ -50,10 +50,10 @@ export class IgxStepTitleDirective {
50
50
  constructor() {
51
51
  this.defaultClass = true;
52
52
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
54
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepTitleDirective, isStandalone: true, selector: "[igxStepTitle]", host: { properties: { "class.igx-stepper__step-title": "this.defaultClass" } }, ngImport: i0 }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
54
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepTitleDirective, isStandalone: true, selector: "[igxStepTitle]", host: { properties: { "class.igx-stepper__step-title": "this.defaultClass" } }, ngImport: i0 }); }
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepTitleDirective, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepTitleDirective, decorators: [{
57
57
  type: Directive,
58
58
  args: [{
59
59
  selector: '[igxStepTitle]',
@@ -67,10 +67,10 @@ export class IgxStepSubTitleDirective {
67
67
  constructor() {
68
68
  this.defaultClass = true;
69
69
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepSubTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
71
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepSubTitleDirective, isStandalone: true, selector: "[igxStepSubTitle]", host: { properties: { "class.igx-stepper__step-subtitle": "this.defaultClass" } }, ngImport: i0 }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepSubTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
71
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepSubTitleDirective, isStandalone: true, selector: "[igxStepSubTitle]", host: { properties: { "class.igx-stepper__step-subtitle": "this.defaultClass" } }, ngImport: i0 }); }
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepSubTitleDirective, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepSubTitleDirective, decorators: [{
74
74
  type: Directive,
75
75
  args: [{
76
76
  selector: '[igxStepSubTitle]',
@@ -105,10 +105,10 @@ export class IgxStepContentDirective {
105
105
  this.id = this.target.id.replace('step', 'content');
106
106
  this._tabIndex = null;
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepContentDirective, deps: [{ token: IGX_STEP_COMPONENT }, { token: i1.IgxStepperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
109
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxStepContentDirective, isStandalone: true, selector: "[igxStepContent]", inputs: { id: "id", tabIndex: "tabIndex" }, host: { properties: { "class.igx-stepper__step-content": "this.defaultClass", "attr.role": "this.role", "attr.aria-labelledby": "this.stepId", "attr.id": "this.id", "attr.tabindex": "this.tabIndex" } }, ngImport: i0 }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepContentDirective, deps: [{ token: IGX_STEP_COMPONENT }, { token: i1.IgxStepperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
109
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxStepContentDirective, isStandalone: true, selector: "[igxStepContent]", inputs: { id: "id", tabIndex: "tabIndex" }, host: { properties: { "class.igx-stepper__step-content": "this.defaultClass", "attr.role": "this.role", "attr.aria-labelledby": "this.stepId", "attr.id": "this.id", "attr.tabindex": "this.tabIndex" } }, ngImport: i0 }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepContentDirective, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepContentDirective, decorators: [{
112
112
  type: Directive,
113
113
  args: [{
114
114
  selector: '[igxStepContent]',
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
137
137
  }, {
138
138
  type: Input
139
139
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBVyxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFPL0QsTUFBTSxPQUFPLCtCQUErQjttSEFBL0IsK0JBQStCO3VHQUEvQiwrQkFBK0I7O2dHQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQU9ELE1BQU0sT0FBTyxrQ0FBa0M7bUhBQWxDLGtDQUFrQzt1R0FBbEMsa0NBQWtDOztnR0FBbEMsa0NBQWtDO2tCQUo5QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFPRCxNQUFNLE9BQU8sZ0NBQWdDO21IQUFoQyxnQ0FBZ0M7dUdBQWhDLGdDQUFnQzs7Z0dBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBT0QsTUFBTSxPQUFPLHlCQUF5QjttSEFBekIseUJBQXlCO3VHQUF6Qix5QkFBeUI7O2dHQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQU9ELE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFNVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5QjttSEFIWSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs7Z0dBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBR1UsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQywrQkFBK0I7O0FBUWhELE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFNVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5QjttSEFIWSx3QkFBd0I7dUdBQXhCLHdCQUF3Qjs7Z0dBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBR1UsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxrQ0FBa0M7O0FBUW5ELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsSUFBWSxNQUFNO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFRRCxJQUNXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUVXLFFBQVE7UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBSUQsWUFDd0MsSUFBYSxFQUN6QyxjQUFpQyxFQUNsQyxVQUFtQztRQUZOLFNBQUksR0FBSixJQUFJLENBQVM7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBakN2QyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUdwQixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBU2xCLE9BQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBZ0I5QyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBTXJCLENBQUM7bUhBeENJLHVCQUF1QixrQkFxQ3BCLGtCQUFrQjt1R0FyQ3JCLHVCQUF1Qjs7Z0dBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQXNDUSxNQUFNOzJCQUFDLGtCQUFrQjtxR0EvQnZCLFlBQVk7c0JBRGxCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQUl2QyxJQUFJO3NCQURWLFdBQVc7dUJBQUMsV0FBVztnQkFJYixNQUFNO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFPNUIsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQUtLLFFBQVE7c0JBRmxCLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hTdGVwLCBJR1hfU1RFUF9DT01QT05FTlQgfSBmcm9tICcuL3N0ZXBwZXIuY29tbW9uJztcbmltcG9ydCB7IElneFN0ZXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zdGVwcGVyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwQWN0aXZlSW5kaWNhdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdGVwQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlIHsgfVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwQ29tcGxldGVkSW5kaWNhdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdGVwQ29tcGxldGVkSW5kaWNhdG9yRGlyZWN0aXZlIHsgfVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwSW52YWxpZEluZGljYXRvcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcEludmFsaWRJbmRpY2F0b3JEaXJlY3RpdmUgeyB9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFN0ZXBJbmRpY2F0b3JdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFN0ZXBJbmRpY2F0b3JEaXJlY3RpdmUgeyB9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFN0ZXBUaXRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcFRpdGxlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyX19zdGVwLXRpdGxlJylcbiAgICBwdWJsaWMgZGVmYXVsdENsYXNzID0gdHJ1ZTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4U3RlcFN1YlRpdGxlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdGVwU3ViVGl0bGVEaXJlY3RpdmUge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXN0ZXBwZXJfX3N0ZXAtc3VidGl0bGUnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwQ29udGVudF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcENvbnRlbnREaXJlY3RpdmUge1xuICAgIHByaXZhdGUgZ2V0IHRhcmdldCgpOiBJZ3hTdGVwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyX19zdGVwLWNvbnRlbnQnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHB1YmxpYyByb2xlID0gJ3RhYnBhbmVsJztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKVxuICAgIHB1YmxpYyBnZXQgc3RlcElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhcmdldC5pZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gdGhpcy50YXJnZXQuaWQucmVwbGFjZSgnc3RlcCcsICdjb250ZW50Jyk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fdGFiSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90YWJJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmFjdGl2ZVN0ZXAgPT09IHRoaXMudGFyZ2V0ID8gMCA6IC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdGFiSW5kZXggPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSUdYX1NURVBfQ09NUE9ORU5UKSBwcml2YXRlIHN0ZXA6IElneFN0ZXAsXG4gICAgICAgIHByaXZhdGUgc3RlcHBlclNlcnZpY2U6IElneFN0ZXBwZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHsgfVxufVxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBVyxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFPL0QsTUFBTSxPQUFPLCtCQUErQjs4R0FBL0IsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQU9ELE1BQU0sT0FBTyxrQ0FBa0M7OEdBQWxDLGtDQUFrQztrR0FBbEMsa0NBQWtDOzsyRkFBbEMsa0NBQWtDO2tCQUo5QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFPRCxNQUFNLE9BQU8sZ0NBQWdDOzhHQUFoQyxnQ0FBZ0M7a0dBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBT0QsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQU9ELE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFNVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5Qjs4R0FIWSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBR1UsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQywrQkFBK0I7O0FBUWhELE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFNVyxpQkFBWSxHQUFHLElBQUksQ0FBQztLQUM5Qjs4R0FIWSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBR1UsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxrQ0FBa0M7O0FBUW5ELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsSUFBWSxNQUFNO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFRRCxJQUNXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUVXLFFBQVE7UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBSUQsWUFDd0MsSUFBYSxFQUN6QyxjQUFpQyxFQUNsQyxVQUFtQztRQUZOLFNBQUksR0FBSixJQUFJLENBQVM7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBakN2QyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUdwQixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBU2xCLE9BQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBZ0I5QyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBTXJCLENBQUM7OEdBeENJLHVCQUF1QixrQkFxQ3BCLGtCQUFrQjtrR0FyQ3JCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQXNDUSxNQUFNOzJCQUFDLGtCQUFrQjtxR0EvQnZCLFlBQVk7c0JBRGxCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQUl2QyxJQUFJO3NCQURWLFdBQVc7dUJBQUMsV0FBVztnQkFJYixNQUFNO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFPNUIsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQUtLLFFBQVE7c0JBRmxCLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hTdGVwLCBJR1hfU1RFUF9DT01QT05FTlQgfSBmcm9tICcuL3N0ZXBwZXIuY29tbW9uJztcbmltcG9ydCB7IElneFN0ZXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zdGVwcGVyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwQWN0aXZlSW5kaWNhdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdGVwQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlIHsgfVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwQ29tcGxldGVkSW5kaWNhdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdGVwQ29tcGxldGVkSW5kaWNhdG9yRGlyZWN0aXZlIHsgfVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwSW52YWxpZEluZGljYXRvcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcEludmFsaWRJbmRpY2F0b3JEaXJlY3RpdmUgeyB9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFN0ZXBJbmRpY2F0b3JdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFN0ZXBJbmRpY2F0b3JEaXJlY3RpdmUgeyB9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFN0ZXBUaXRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcFRpdGxlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyX19zdGVwLXRpdGxlJylcbiAgICBwdWJsaWMgZGVmYXVsdENsYXNzID0gdHJ1ZTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4U3RlcFN1YlRpdGxlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdGVwU3ViVGl0bGVEaXJlY3RpdmUge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXN0ZXBwZXJfX3N0ZXAtc3VidGl0bGUnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hTdGVwQ29udGVudF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3RlcENvbnRlbnREaXJlY3RpdmUge1xuICAgIHByaXZhdGUgZ2V0IHRhcmdldCgpOiBJZ3hTdGVwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zdGVwcGVyX19zdGVwLWNvbnRlbnQnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHB1YmxpYyByb2xlID0gJ3RhYnBhbmVsJztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKVxuICAgIHB1YmxpYyBnZXQgc3RlcElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhcmdldC5pZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gdGhpcy50YXJnZXQuaWQucmVwbGFjZSgnc3RlcCcsICdjb250ZW50Jyk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fdGFiSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90YWJJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmFjdGl2ZVN0ZXAgPT09IHRoaXMudGFyZ2V0ID8gMCA6IC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdGFiSW5kZXggPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSUdYX1NURVBfQ09NUE9ORU5UKSBwcml2YXRlIHN0ZXA6IElneFN0ZXAsXG4gICAgICAgIHByaXZhdGUgc3RlcHBlclNlcnZpY2U6IElneFN0ZXBwZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHsgfVxufVxuIl19
@@ -9,11 +9,11 @@ import * as i3 from "./stepper.directive";
9
9
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
10
10
  */
11
11
  export class IgxStepperModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperModule, imports: [i1.IgxStepComponent, i2.IgxStepperComponent, i3.IgxStepTitleDirective, i3.IgxStepSubTitleDirective, i3.IgxStepIndicatorDirective, i3.IgxStepContentDirective, i3.IgxStepActiveIndicatorDirective, i3.IgxStepCompletedIndicatorDirective, i3.IgxStepInvalidIndicatorDirective], exports: [i1.IgxStepComponent, i2.IgxStepperComponent, i3.IgxStepTitleDirective, i3.IgxStepSubTitleDirective, i3.IgxStepIndicatorDirective, i3.IgxStepContentDirective, i3.IgxStepActiveIndicatorDirective, i3.IgxStepCompletedIndicatorDirective, i3.IgxStepInvalidIndicatorDirective] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperModule }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperModule, imports: [i1.IgxStepComponent, i2.IgxStepperComponent, i3.IgxStepTitleDirective, i3.IgxStepSubTitleDirective, i3.IgxStepIndicatorDirective, i3.IgxStepContentDirective, i3.IgxStepActiveIndicatorDirective, i3.IgxStepCompletedIndicatorDirective, i3.IgxStepInvalidIndicatorDirective], exports: [i1.IgxStepComponent, i2.IgxStepperComponent, i3.IgxStepTitleDirective, i3.IgxStepSubTitleDirective, i3.IgxStepIndicatorDirective, i3.IgxStepContentDirective, i3.IgxStepActiveIndicatorDirective, i3.IgxStepCompletedIndicatorDirective, i3.IgxStepInvalidIndicatorDirective] }); }
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperModule }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  imports: [
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
24
24
  ]
25
25
  }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFFdEQ7OztHQUdHO0FBU0gsTUFBTSxPQUFPLGdCQUFnQjttSEFBaEIsZ0JBQWdCO29IQUFoQixnQkFBZ0I7b0hBQWhCLGdCQUFnQjs7Z0dBQWhCLGdCQUFnQjtrQkFSNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsR0FBRyxzQkFBc0I7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxHQUFHLHNCQUFzQjtxQkFDNUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUdYX1NURVBQRVJfRElSRUNUSVZFUyB9IGZyb20gJy4vcHVibGljX2FwaSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogSU1QT1JUQU5UOiBUaGUgZm9sbG93aW5nIGlzIE5nTW9kdWxlIGV4cG9ydGVkIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBiZWZvcmUgc3RhbmRhbG9uZSBjb21wb25lbnRzXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICAuLi5JR1hfU1RFUFBFUl9ESVJFQ1RJVkVTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLklHWF9TVEVQUEVSX0RJUkVDVElWRVNcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElneFN0ZXBwZXJNb2R1bGUgeyB9XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFFdEQ7OztHQUdHO0FBU0gsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFSNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsR0FBRyxzQkFBc0I7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxHQUFHLHNCQUFzQjtxQkFDNUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUdYX1NURVBQRVJfRElSRUNUSVZFUyB9IGZyb20gJy4vcHVibGljX2FwaSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogSU1QT1JUQU5UOiBUaGUgZm9sbG93aW5nIGlzIE5nTW9kdWxlIGV4cG9ydGVkIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBiZWZvcmUgc3RhbmRhbG9uZSBjb21wb25lbnRzXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICAuLi5JR1hfU1RFUFBFUl9ESVJFQ1RJVkVTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLklHWF9TVEVQUEVSX0RJUkVDVElWRVNcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElneFN0ZXBwZXJNb2R1bGUgeyB9XG4iXX0=
@@ -135,10 +135,10 @@ export class IgxStepperService {
135
135
  }
136
136
  return this.stepper.steps.findIndex(s => s.index > this.activeStep.index && !s.optional && !s.disabled && !s.isValid);
137
137
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
139
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperService }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
139
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperService }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxStepperService, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxStepperService, decorators: [{
142
142
  type: Injectable
143
143
  }] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3N0ZXBwZXIvc3RlcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLHFCQUFxQixFQUEwQixNQUFNLGtCQUFrQixDQUFDOztBQUc3Rix3QkFBd0I7QUFFeEIsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQU1XLG9CQUFlLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ3JFLHdCQUFtQixHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUN6RSxpQkFBWSxHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztLQXFKNUU7SUFsSkc7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUMxQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxNQUFNLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUsscUJBQXFCLENBQUMsUUFBUSxFQUFFO1lBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUMzQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDbkMsQ0FBQztTQUNMO2FBQU07WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFzQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU3QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLElBQXNCO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDMUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9CO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSw0QkFBNEI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RELElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3REO2lCQUFNO2dCQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNwQztTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtvQkFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbkM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLElBQXNCO1FBQzdDLE1BQU0sSUFBSSxHQUEyQjtZQUNqQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDL0IsTUFBTSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHlCQUF5QixDQUFDLE9BQWU7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDakMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRTtvQkFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbkM7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxSCxDQUFDO21IQTNKUSxpQkFBaUI7dUhBQWpCLGlCQUFpQjs7Z0dBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFN0ZXBwZXIsIElneFN0ZXBwZXJPcmllbnRhdGlvbiwgSVN0ZXBDaGFuZ2luZ0V2ZW50QXJncyB9IGZyb20gJy4vc3RlcHBlci5jb21tb24nO1xuaW1wb3J0IHsgSWd4U3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XG5cbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneFN0ZXBwZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWN0aXZlU3RlcDogSWd4U3RlcENvbXBvbmVudDtcbiAgICBwdWJsaWMgcHJldmlvdXNBY3RpdmVTdGVwOiBJZ3hTdGVwQ29tcG9uZW50O1xuICAgIHB1YmxpYyBmb2N1c2VkU3RlcDogSWd4U3RlcENvbXBvbmVudDtcblxuICAgIHB1YmxpYyBjb2xsYXBzaW5nU3RlcHM6IFNldDxJZ3hTdGVwQ29tcG9uZW50PiA9IG5ldyBTZXQ8SWd4U3RlcENvbXBvbmVudD4oKTtcbiAgICBwdWJsaWMgbGluZWFyRGlzYWJsZWRTdGVwczogU2V0PElneFN0ZXBDb21wb25lbnQ+ID0gbmV3IFNldDxJZ3hTdGVwQ29tcG9uZW50PigpO1xuICAgIHB1YmxpYyB2aXNpdGVkU3RlcHM6IFNldDxJZ3hTdGVwQ29tcG9uZW50PiA9IG5ldyBTZXQ8SWd4U3RlcENvbXBvbmVudD4oKTtcbiAgICBwdWJsaWMgc3RlcHBlcjogSWd4U3RlcHBlcjtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyB0aGUgc3RlcCwgZmlyZXMgdGhlIHN0ZXBzIGNoYW5nZSBldmVudCBhbmQgcGxheXMgYW5pbWF0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kKHN0ZXA6IElneFN0ZXBDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlU3RlcCA9PT0gc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FuY2VsID0gdGhpcy5lbWl0QWN0aXZhdGluZ0V2ZW50KHN0ZXApO1xuICAgICAgICBpZiAoY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbGxhcHNpbmdTdGVwcy5kZWxldGUoc3RlcCk7XG5cbiAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXAgPSB0aGlzLmFjdGl2ZVN0ZXA7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IHN0ZXA7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcC5hY3RpdmVDaGFuZ2UuZW1pdCh0cnVlKTtcblxuICAgICAgICB0aGlzLmNvbGxhcHNpbmdTdGVwcy5hZGQodGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXApO1xuICAgICAgICB0aGlzLnZpc2l0ZWRTdGVwcy5hZGQodGhpcy5hY3RpdmVTdGVwKTtcblxuICAgICAgICBpZiAodGhpcy5zdGVwcGVyLm9yaWVudGF0aW9uID09PSBJZ3hTdGVwcGVyT3JpZW50YXRpb24uVmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVTdGVwLnBsYXlDbG9zZUFuaW1hdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzQWN0aXZlU3RlcC5jb250ZW50Q29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVTdGVwLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3RlcC5wbGF5T3BlbkFuaW1hdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAuY29udGVudENvbnRhaW5lclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3RlcC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyLnBsYXlIb3Jpem9udGFsQW5pbWF0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSBzdGVwIGFuZCBmaXJlcyB0aGUgc3RlcHMgY2hhbmdlIGV2ZW50IHdpdGhvdXQgcGxheWluZyBhbmltYXRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBleHBhbmRUaHJvdWdoQXBpKHN0ZXA6IElneFN0ZXBDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlU3RlcCA9PT0gc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcblxuICAgICAgICB0aGlzLnByZXZpb3VzQWN0aXZlU3RlcCA9IHRoaXMuYWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gc3RlcDtcblxuICAgICAgICBpZiAodGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVTdGVwLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwLnRhYkluZGV4ID0gMDtcbiAgICAgICAgdGhpcy52aXNpdGVkU3RlcHMuYWRkKHRoaXMuYWN0aXZlU3RlcCk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVTdGVwPy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcC5hY3RpdmVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXA/LmFjdGl2ZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsYXBzZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgc3RlcCBhbmQgZmlyZXMgdGhlIGNoYW5nZSBldmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29sbGFwc2Uoc3RlcDogSWd4U3RlcENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVTdGVwID09PSBzdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3RlcC5hY3RpdmVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuY29sbGFwc2luZ1N0ZXBzLmRlbGV0ZShzdGVwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHRoZSBzdGVwcyB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXMgdmlzaXRlZCBiYXNlZCBvbiB0aGUgYWN0aXZlIHN0ZXAuXG4gICAgICovXG4gICAgcHVibGljIGNhbGN1bGF0ZVZpc2l0ZWRTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwcGVyLnN0ZXBzLmZvckVhY2goc3RlcCA9PiB7XG4gICAgICAgICAgICBpZiAoc3RlcC5pbmRleCA8PSB0aGlzLmFjdGl2ZVN0ZXAuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2l0ZWRTdGVwcy5hZGQoc3RlcCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaXRlZFN0ZXBzLmRlbGV0ZShzdGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgc3RlcHMgdGhhdCBzaG91bGQgYmUgZGlzYWJsZWQgaW4gbGluZWFyIG1vZGUgYmFzZWQgb24gdGhlIHZhbGlkaXR5IG9mIHRoZSBhY3RpdmUgc3RlcC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FsY3VsYXRlTGluZWFyRGlzYWJsZWRTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVN0ZXAuaXNWYWxpZCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RSZXF1aXJlZEluZGV4ID0gdGhpcy5nZXROZXh0UmVxdWlyZWRTdGVwKCk7XG4gICAgICAgICAgICBpZiAoZmlyc3RSZXF1aXJlZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTGluZWFyRGlzYWJsZWRTdGVwcyhmaXJzdFJlcXVpcmVkSW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVhckRpc2FibGVkU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlci5zdGVwcy5mb3JFYWNoKHMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzLmluZGV4ID4gdGhpcy5hY3RpdmVTdGVwLmluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGluZWFyRGlzYWJsZWRTdGVwcy5hZGQocyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdEFjdGl2YXRpbmdFdmVudChzdGVwOiBJZ3hTdGVwQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGFyZ3M6IElTdGVwQ2hhbmdpbmdFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICBvd25lcjogdGhpcy5zdGVwcGVyLFxuICAgICAgICAgICAgbmV3SW5kZXg6IHN0ZXAuaW5kZXgsXG4gICAgICAgICAgICBvbGRJbmRleDogdGhpcy5hY3RpdmVTdGVwLmluZGV4LFxuICAgICAgICAgICAgY2FuY2VsOiBmYWxzZVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RlcHBlci5hY3RpdmVTdGVwQ2hhbmdpbmcuZW1pdChhcmdzKTtcbiAgICAgICAgcmV0dXJuIGFyZ3MuY2FuY2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGxpbmVhckRpc2FibGVkIHN0ZXBzIGZyb20gdGhlIGN1cnJlbnQgYWN0aXZlIHN0ZXAgdG8gdGhlIG5leHQgcmVxdWlyZWQgaW52YWxpZCBzdGVwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRvSW5kZXggdGhlIGluZGV4IG9mIHRoZSBsYXN0IHN0ZXAgdGhhdCBzaG91bGQgYmUgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZUxpbmVhckRpc2FibGVkU3RlcHModG9JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcHBlci5zdGVwcy5mb3JFYWNoKHMgPT4ge1xuICAgICAgICAgICAgaWYgKHMuaW5kZXggPiB0aGlzLmFjdGl2ZVN0ZXAuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAocy5pbmRleCA8PSB0b0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGluZWFyRGlzYWJsZWRTdGVwcy5kZWxldGUocyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5lYXJEaXNhYmxlZFN0ZXBzLmFkZChzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dFJlcXVpcmVkU3RlcCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlU3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBwZXIuc3RlcHMuZmluZEluZGV4KHMgPT4gcy5pbmRleCA+IHRoaXMuYWN0aXZlU3RlcC5pbmRleCAmJiAhcy5vcHRpb25hbCAmJiAhcy5kaXNhYmxlZCAmJiAhcy5pc1ZhbGlkKTtcbiAgICB9XG59XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3N0ZXBwZXIvc3RlcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLHFCQUFxQixFQUEwQixNQUFNLGtCQUFrQixDQUFDOztBQUc3Rix3QkFBd0I7QUFFeEIsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQU1XLG9CQUFlLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ3JFLHdCQUFtQixHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUN6RSxpQkFBWSxHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztLQXFKNUU7SUFsSkc7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUMxQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxNQUFNLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMs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Q0FBQztpQkFDbkM7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxSCxDQUFDOzhHQTNKUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFN0ZXBwZXIsIElneFN0ZXBwZXJPcmllbnRhdGlvbiwgSVN0ZXBDaGFuZ2luZ0V2ZW50QXJncyB9IGZyb20gJy4vc3RlcHBlci5jb21tb24nO1xuaW1wb3J0IHsgSWd4U3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC9zdGVwLmNvbXBvbmVudCc7XG5cbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneFN0ZXBwZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWN0aXZlU3RlcDogSWd4U3RlcENvbXBvbmVudDtcbiAgICBwdWJsaWMgcHJldmlvdXNBY3RpdmVTdGVwOiBJZ3hTdGVwQ29tcG9uZW50O1xuICAgIHB1YmxpYyBmb2N1c2VkU3RlcDogSWd4U3RlcENvbXBvbmVudDtcblxuICAgIHB1YmxpYyBjb2xsYXBzaW5nU3RlcHM6IFNldDxJZ3hTdGVwQ29tcG9uZW50PiA9IG5ldyBTZXQ8SWd4U3RlcENvbXBvbmVudD4oKTtcbiAgICBwdWJsaWMgbGluZWFyRGlzYWJsZWRTdGVwczogU2V0PElneFN0ZXBDb21wb25lbnQ+ID0gbmV3IFNldDxJZ3hTdGVwQ29tcG9uZW50PigpO1xuICAgIHB1YmxpYyB2aXNpdGVkU3RlcHM6IFNldDxJZ3hTdGVwQ29tcG9uZW50PiA9IG5ldyBTZXQ8SWd4U3RlcENvbXBvbmVudD4oKTtcbiAgICBwdWJsaWMgc3RlcHBlcjogSWd4U3RlcHBlcjtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyB0aGUgc3RlcCwgZmlyZXMgdGhlIHN0ZXBzIGNoYW5nZSBldmVudCBhbmQgcGxheXMgYW5pbWF0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kKHN0ZXA6IElneFN0ZXBDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlU3RlcCA9PT0gc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FuY2VsID0gdGhpcy5lbWl0QWN0aXZhdGluZ0V2ZW50KHN0ZXApO1xuICAgICAgICBpZiAoY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbGxhcHNpbmdTdGVwcy5kZWxldGUoc3RlcCk7XG5cbiAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXAgPSB0aGlzLmFjdGl2ZVN0ZXA7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IHN0ZXA7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcC5hY3RpdmVDaGFuZ2UuZW1pdCh0cnVlKTtcblxuICAgICAgICB0aGlzLmNvbGxhcHNpbmdTdGVwcy5hZGQodGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXApO1xuICAgICAgICB0aGlzLnZpc2l0ZWRTdGVwcy5hZGQodGhpcy5hY3RpdmVTdGVwKTtcblxuICAgICAgICBpZiAodGhpcy5zdGVwcGVyLm9yaWVudGF0aW9uID09PSBJZ3hTdGVwcGVyT3JpZW50YXRpb24uVmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVTdGVwLnBsYXlDbG9zZUFuaW1hdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzQWN0aXZlU3RlcC5jb250ZW50Q29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVTdGVwLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3RlcC5wbGF5T3BlbkFuaW1hdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAuY29udGVudENvbnRhaW5lclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlU3RlcC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyLnBsYXlIb3Jpem9udGFsQW5pbWF0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSBzdGVwIGFuZCBmaXJlcyB0aGUgc3RlcHMgY2hhbmdlIGV2ZW50IHdpdGhvdXQgcGxheWluZyBhbmltYXRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBleHBhbmRUaHJvdWdoQXBpKHN0ZXA6IElneFN0ZXBDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlU3RlcCA9PT0gc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb2xsYXBzaW5nU3RlcHMuY2xlYXIoKTtcblxuICAgICAgICB0aGlzLnByZXZpb3VzQWN0aXZlU3RlcCA9IHRoaXMuYWN0aXZlU3RlcDtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gc3RlcDtcblxuICAgICAgICBpZiAodGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVTdGVwLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwLnRhYkluZGV4ID0gMDtcbiAgICAgICAgdGhpcy52aXNpdGVkU3RlcHMuYWRkKHRoaXMuYWN0aXZlU3RlcCk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVTdGVwPy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcC5hY3RpdmVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZVN0ZXA/LmFjdGl2ZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsYXBzZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgc3RlcCBhbmQgZmlyZXMgdGhlIGNoYW5nZSBldmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29sbGFwc2Uoc3RlcDogSWd4U3RlcENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVTdGVwID09PSBzdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3RlcC5hY3RpdmVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuY29sbGFwc2luZ1N0ZXBzLmRlbGV0ZShzdGVwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHRoZSBzdGVwcyB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXMgdmlzaXRlZCBiYXNlZCBvbiB0aGUgYWN0aXZlIHN0ZXAuXG4gICAgICovXG4gICAgcHVibGljIGNhbGN1bGF0ZVZpc2l0ZWRTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwcGVyLnN0ZXBzLmZvckVhY2goc3RlcCA9PiB7XG4gICAgICAgICAgICBpZiAoc3RlcC5pbmRleCA8PSB0aGlzLmFjdGl2ZVN0ZXAuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2l0ZWRTdGVwcy5hZGQoc3RlcCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaXRlZFN0ZXBzLmRlbGV0ZShzdGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgc3RlcHMgdGhhdCBzaG91bGQgYmUgZGlzYWJsZWQgaW4gbGluZWFyIG1vZGUgYmFzZWQgb24gdGhlIHZhbGlkaXR5IG9mIHRoZSBhY3RpdmUgc3RlcC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FsY3VsYXRlTGluZWFyRGlzYWJsZWRTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVN0ZXAuaXNWYWxpZCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RSZXF1aXJlZEluZGV4ID0gdGhpcy5nZXROZXh0UmVxdWlyZWRTdGVwKCk7XG4gICAgICAgICAgICBpZiAoZmlyc3RSZXF1aXJlZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTGluZWFyRGlzYWJsZWRTdGVwcyhmaXJzdFJlcXVpcmVkSW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVhckRpc2FibGVkU3RlcHMuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlci5zdGVwcy5mb3JFYWNoKHMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzLmluZGV4ID4gdGhpcy5hY3RpdmVTdGVwLmluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGluZWFyRGlzYWJsZWRTdGVwcy5hZGQocyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdEFjdGl2YXRpbmdFdmVudChzdGVwOiBJZ3hTdGVwQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGFyZ3M6IElTdGVwQ2hhbmdpbmdFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICBvd25lcjogdGhpcy5zdGVwcGVyLFxuICAgICAgICAgICAgbmV3SW5kZXg6IHN0ZXAuaW5kZXgsXG4gICAgICAgICAgICBvbGRJbmRleDogdGhpcy5hY3RpdmVTdGVwLmluZGV4LFxuICAgICAgICAgICAgY2FuY2VsOiBmYWxzZVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RlcHBlci5hY3RpdmVTdGVwQ2hhbmdpbmcuZW1pdChhcmdzKTtcbiAgICAgICAgcmV0dXJuIGFyZ3MuY2FuY2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGxpbmVhckRpc2FibGVkIHN0ZXBzIGZyb20gdGhlIGN1cnJlbnQgYWN0aXZlIHN0ZXAgdG8gdGhlIG5leHQgcmVxdWlyZWQgaW52YWxpZCBzdGVwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRvSW5kZXggdGhlIGluZGV4IG9mIHRoZSBsYXN0IHN0ZXAgdGhhdCBzaG91bGQgYmUgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZUxpbmVhckRpc2FibGVkU3RlcHModG9JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcHBlci5zdGVwcy5mb3JFYWNoKHMgPT4ge1xuICAgICAgICAgICAgaWYgKHMuaW5kZXggPiB0aGlzLmFjdGl2ZVN0ZXAuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAocy5pbmRleCA8PSB0b0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGluZWFyRGlzYWJsZWRTdGVwcy5kZWxldGUocyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5lYXJEaXNhYmxlZFN0ZXBzLmFkZChzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dFJlcXVpcmVkU3RlcCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlU3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBwZXIuc3RlcHMuZmluZEluZGV4KHMgPT4gcy5pbmRleCA+IHRoaXMuYWN0aXZlU3RlcC5pbmRleCAmJiAhcy5vcHRpb25hbCAmJiAhcy5kaXNhYmxlZCAmJiAhcy5pc1ZhbGlkKTtcbiAgICB9XG59XG4iXX0=