@clr/angular 12.0.11 → 12.0.14

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 (585) hide show
  1. package/README.md +0 -12
  2. package/bundles/clr-angular.umd.js +1431 -994
  3. package/bundles/clr-angular.umd.js.map +1 -1
  4. package/clarity.api.md +4010 -0
  5. package/clr-angular.d.ts +21 -20
  6. package/clr-angular.metadata.json +1 -1
  7. package/data/stack-view/stack-block.d.ts +11 -0
  8. package/data/stack-view/stack-input.d.ts +0 -6
  9. package/data/stack-view/stack-select.d.ts +0 -5
  10. package/data/stack-view/stack-view-custom-tags.d.ts +10 -0
  11. package/esm2015/accordion/accordion-content.js +2 -2
  12. package/esm2015/accordion/accordion-description.js +2 -2
  13. package/esm2015/accordion/accordion-panel.js +3 -3
  14. package/esm2015/accordion/accordion-title.js +2 -2
  15. package/esm2015/accordion/accordion.js +2 -2
  16. package/esm2015/accordion/accordion.module.js +2 -2
  17. package/esm2015/accordion/chocolate/accordion-oompa-loompa.js +2 -2
  18. package/esm2015/accordion/chocolate/accordion-willy-wonka.js +2 -2
  19. package/esm2015/accordion/enums/accordion-status.enum.js +2 -2
  20. package/esm2015/accordion/enums/accordion-strategy.enum.js +2 -2
  21. package/esm2015/accordion/index.js +2 -2
  22. package/esm2015/accordion/models/accordion.model.js +2 -2
  23. package/esm2015/accordion/providers/accordion.service.js +2 -2
  24. package/esm2015/accordion/stepper/chocolate/stepper-oompa-loompa.js +2 -2
  25. package/esm2015/accordion/stepper/chocolate/stepper-willy-wonka.js +2 -2
  26. package/esm2015/accordion/stepper/index.js +2 -2
  27. package/esm2015/accordion/stepper/models/stepper.model.js +2 -2
  28. package/esm2015/accordion/stepper/providers/stepper.service.js +2 -2
  29. package/esm2015/accordion/stepper/step-button.js +2 -2
  30. package/esm2015/accordion/stepper/stepper-panel.js +3 -3
  31. package/esm2015/accordion/stepper/stepper.js +2 -2
  32. package/esm2015/accordion/stepper/stepper.module.js +2 -2
  33. package/esm2015/accordion/utils/animation.js +2 -2
  34. package/esm2015/button/button-group/button-group.js +2 -2
  35. package/esm2015/button/button-group/button-group.module.js +2 -2
  36. package/esm2015/button/button-group/button.js +2 -2
  37. package/esm2015/button/button-group/index.js +2 -2
  38. package/esm2015/button/button-loading/index.js +2 -2
  39. package/esm2015/button/button-loading/loading-button.js +2 -2
  40. package/esm2015/button/button-loading/loading-button.module.js +2 -2
  41. package/esm2015/button/button.module.js +2 -2
  42. package/esm2015/button/index.js +2 -2
  43. package/esm2015/button/providers/button-in-group.service.js +2 -2
  44. package/esm2015/clr-angular.js +21 -20
  45. package/esm2015/clr-angular.module.js +2 -2
  46. package/esm2015/data/data.module.js +2 -2
  47. package/esm2015/data/datagrid/built-in/comparators/datagrid-property-comparator.js +6 -1
  48. package/esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.js +2 -2
  49. package/esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter.js +2 -2
  50. package/esm2015/data/datagrid/built-in/filters/datagrid-property-numeric-filter.js +6 -1
  51. package/esm2015/data/datagrid/built-in/filters/datagrid-property-string-filter.js +6 -1
  52. package/esm2015/data/datagrid/built-in/filters/datagrid-string-filter-impl.js +2 -2
  53. package/esm2015/data/datagrid/built-in/filters/datagrid-string-filter.js +2 -2
  54. package/esm2015/data/datagrid/built-in/nested-property.js +2 -2
  55. package/esm2015/data/datagrid/chocolate/actionable-oompa-loompa.js +2 -2
  56. package/esm2015/data/datagrid/chocolate/datagrid-willy-wonka.js +2 -2
  57. package/esm2015/data/datagrid/chocolate/expandable-oompa-loompa.js +2 -2
  58. package/esm2015/data/datagrid/datagrid-action-bar.js +2 -2
  59. package/esm2015/data/datagrid/datagrid-action-overflow.js +2 -2
  60. package/esm2015/data/datagrid/datagrid-cell.js +2 -2
  61. package/esm2015/data/datagrid/datagrid-column-separator.js +2 -2
  62. package/esm2015/data/datagrid/datagrid-column-toggle-button.js +2 -2
  63. package/esm2015/data/datagrid/datagrid-column-toggle-title.js +2 -2
  64. package/esm2015/data/datagrid/datagrid-column-toggle.js +5 -3
  65. package/esm2015/data/datagrid/datagrid-column.js +2 -2
  66. package/esm2015/data/datagrid/datagrid-detail-body.js +2 -2
  67. package/esm2015/data/datagrid/datagrid-detail-header.js +2 -2
  68. package/esm2015/data/datagrid/datagrid-detail-registerer.js +2 -2
  69. package/esm2015/data/datagrid/datagrid-detail.js +2 -2
  70. package/esm2015/data/datagrid/datagrid-filter.js +2 -2
  71. package/esm2015/data/datagrid/datagrid-footer.js +2 -2
  72. package/esm2015/data/datagrid/datagrid-hideable-column.js +2 -2
  73. package/esm2015/data/datagrid/datagrid-if-detail.js +2 -2
  74. package/esm2015/data/datagrid/datagrid-if-expanded.service.js +2 -2
  75. package/esm2015/data/datagrid/datagrid-items-trackby.js +2 -2
  76. package/esm2015/data/datagrid/datagrid-items.js +2 -2
  77. package/esm2015/data/datagrid/datagrid-page-size.js +2 -2
  78. package/esm2015/data/datagrid/datagrid-pagination.js +2 -2
  79. package/esm2015/data/datagrid/datagrid-placeholder.js +2 -2
  80. package/esm2015/data/datagrid/datagrid-row-detail.js +9 -5
  81. package/esm2015/data/datagrid/datagrid-row.js +2 -2
  82. package/esm2015/data/datagrid/datagrid.js +2 -2
  83. package/esm2015/data/datagrid/datagrid.module.js +2 -2
  84. package/esm2015/data/datagrid/enums/column-changes.enum.js +2 -2
  85. package/esm2015/data/datagrid/enums/display-mode.enum.js +2 -2
  86. package/esm2015/data/datagrid/enums/render-step.enum.js +2 -2
  87. package/esm2015/data/datagrid/enums/selection-type.js +2 -2
  88. package/esm2015/data/datagrid/enums/sort-order.enum.js +2 -2
  89. package/esm2015/data/datagrid/index.js +2 -2
  90. package/esm2015/data/datagrid/interfaces/column-state.interface.js +6 -1
  91. package/esm2015/data/datagrid/interfaces/comparator.interface.js +6 -1
  92. package/esm2015/data/datagrid/interfaces/filter.interface.js +6 -1
  93. package/esm2015/data/datagrid/interfaces/numeric-filter.interface.js +6 -1
  94. package/esm2015/data/datagrid/interfaces/state.interface.js +6 -1
  95. package/esm2015/data/datagrid/interfaces/string-filter.interface.js +6 -1
  96. package/esm2015/data/datagrid/providers/column-resizer.service.js +2 -2
  97. package/esm2015/data/datagrid/providers/column-state.provider.js +2 -2
  98. package/esm2015/data/datagrid/providers/columns.service.js +2 -2
  99. package/esm2015/data/datagrid/providers/custom-filter.js +2 -2
  100. package/esm2015/data/datagrid/providers/detail.service.js +2 -2
  101. package/esm2015/data/datagrid/providers/display-mode.service.js +2 -2
  102. package/esm2015/data/datagrid/providers/filters.js +2 -2
  103. package/esm2015/data/datagrid/providers/global-expandable-rows.js +2 -2
  104. package/esm2015/data/datagrid/providers/items.js +2 -2
  105. package/esm2015/data/datagrid/providers/page.js +2 -2
  106. package/esm2015/data/datagrid/providers/row-action-service.js +2 -2
  107. package/esm2015/data/datagrid/providers/selection.js +2 -2
  108. package/esm2015/data/datagrid/providers/sort.js +2 -2
  109. package/esm2015/data/datagrid/providers/state-debouncer.provider.js +2 -2
  110. package/esm2015/data/datagrid/providers/state.provider.js +2 -2
  111. package/esm2015/data/datagrid/providers/table-size.service.js +2 -2
  112. package/esm2015/data/datagrid/render/cell-renderer.js +2 -2
  113. package/esm2015/data/datagrid/render/constants.js +2 -2
  114. package/esm2015/data/datagrid/render/header-renderer.js +2 -2
  115. package/esm2015/data/datagrid/render/main-renderer.js +2 -2
  116. package/esm2015/data/datagrid/render/noop-dom-adapter.js +2 -2
  117. package/esm2015/data/datagrid/render/render-organizer.js +2 -2
  118. package/esm2015/data/datagrid/render/row-renderer.js +2 -2
  119. package/esm2015/data/datagrid/utils/datagrid-filter-registrar.js +2 -2
  120. package/esm2015/data/datagrid/wrapped-cell.js +2 -2
  121. package/esm2015/data/datagrid/wrapped-column.js +2 -2
  122. package/esm2015/data/datagrid/wrapped-row.js +2 -2
  123. package/esm2015/data/index.js +2 -2
  124. package/esm2015/data/stack-view/index.js +2 -2
  125. package/esm2015/data/stack-view/stack-block.js +27 -9
  126. package/esm2015/data/stack-view/stack-content-input.js +2 -2
  127. package/esm2015/data/stack-view/stack-control.js +2 -2
  128. package/esm2015/data/stack-view/stack-header.js +2 -2
  129. package/esm2015/data/stack-view/stack-input.js +2 -2
  130. package/esm2015/data/stack-view/stack-select.js +2 -2
  131. package/esm2015/data/stack-view/stack-view-custom-tags.js +45 -4
  132. package/esm2015/data/stack-view/stack-view.js +2 -2
  133. package/esm2015/data/stack-view/stack-view.module.js +4 -3
  134. package/esm2015/data/tree-view/index.js +2 -2
  135. package/esm2015/data/tree-view/models/async-array.js +2 -2
  136. package/esm2015/data/tree-view/models/declarative-tree-node.model.js +2 -2
  137. package/esm2015/data/tree-view/models/recursive-tree-node.model.js +2 -2
  138. package/esm2015/data/tree-view/models/selected-state.enum.js +2 -2
  139. package/esm2015/data/tree-view/models/tree-node.model.js +2 -2
  140. package/esm2015/data/tree-view/recursive-children.js +2 -2
  141. package/esm2015/data/tree-view/recursive-for-of.js +2 -2
  142. package/esm2015/data/tree-view/tree-features.service.js +2 -2
  143. package/esm2015/data/tree-view/tree-focus-manager.service.js +2 -2
  144. package/esm2015/data/tree-view/tree-node-link.js +2 -2
  145. package/esm2015/data/tree-view/tree-node.js +2 -3
  146. package/esm2015/data/tree-view/tree-view.module.js +2 -2
  147. package/esm2015/data/tree-view/tree.js +2 -2
  148. package/esm2015/emphasis/alert/alert-item.js +4 -3
  149. package/esm2015/emphasis/alert/alert-text.js +2 -2
  150. package/esm2015/emphasis/alert/alert.js +2 -2
  151. package/esm2015/emphasis/alert/alert.module.js +2 -2
  152. package/esm2015/emphasis/alert/alerts-pager.js +2 -2
  153. package/esm2015/emphasis/alert/alerts.js +2 -2
  154. package/esm2015/emphasis/alert/index.js +2 -2
  155. package/esm2015/emphasis/alert/providers/icon-and-types.service.js +2 -2
  156. package/esm2015/emphasis/alert/providers/multi-alert.service.js +2 -2
  157. package/esm2015/emphasis/alert/utils/alert-info-object.js +2 -2
  158. package/esm2015/emphasis/alert/utils/alert-types.js +2 -2
  159. package/esm2015/emphasis/emphasis.module.js +2 -2
  160. package/esm2015/emphasis/index.js +2 -2
  161. package/esm2015/forms/checkbox/checkbox-container.js +3 -3
  162. package/esm2015/forms/checkbox/checkbox-wrapper.js +3 -3
  163. package/esm2015/forms/checkbox/checkbox.js +3 -3
  164. package/esm2015/forms/checkbox/checkbox.module.js +3 -3
  165. package/esm2015/forms/checkbox/index.js +2 -2
  166. package/esm2015/forms/combobox/combobox-container.js +3 -3
  167. package/esm2015/forms/combobox/combobox.js +3 -3
  168. package/esm2015/forms/combobox/combobox.module.js +3 -3
  169. package/esm2015/forms/combobox/index.js +2 -2
  170. package/esm2015/forms/combobox/model/combobox.model.js +3 -3
  171. package/esm2015/forms/combobox/model/multi-select-combobox.model.js +3 -3
  172. package/esm2015/forms/combobox/model/pseudo-focus.model.js +3 -3
  173. package/esm2015/forms/combobox/model/single-select-combobox.model.js +3 -3
  174. package/esm2015/forms/combobox/option-items.directive.js +2 -2
  175. package/esm2015/forms/combobox/option-selected.directive.js +2 -2
  176. package/esm2015/forms/combobox/option.js +3 -3
  177. package/esm2015/forms/combobox/options.js +3 -3
  178. package/esm2015/forms/combobox/providers/combobox-container.service.js +2 -2
  179. package/esm2015/forms/combobox/providers/combobox-focus-handler.service.js +2 -2
  180. package/esm2015/forms/combobox/providers/option-selection.service.js +2 -2
  181. package/esm2015/forms/common/abstract-container.js +3 -3
  182. package/esm2015/forms/common/abstract-control.js +3 -3
  183. package/esm2015/forms/common/common.module.js +3 -3
  184. package/esm2015/forms/common/control-container.js +3 -3
  185. package/esm2015/forms/common/control.js +2 -2
  186. package/esm2015/forms/common/error.js +3 -3
  187. package/esm2015/forms/common/form.js +3 -3
  188. package/esm2015/forms/common/helper.js +3 -3
  189. package/esm2015/forms/common/if-control-state/abstract-if-state.js +2 -2
  190. package/esm2015/forms/common/if-control-state/if-control-state.service.js +2 -2
  191. package/esm2015/forms/common/if-control-state/if-error.js +2 -2
  192. package/esm2015/forms/common/if-control-state/if-success.js +2 -2
  193. package/esm2015/forms/common/index.js +2 -2
  194. package/esm2015/forms/common/label.js +2 -2
  195. package/esm2015/forms/common/layout.js +3 -3
  196. package/esm2015/forms/common/providers/container-id.service.js +6 -1
  197. package/esm2015/forms/common/providers/control-class.service.js +2 -2
  198. package/esm2015/forms/common/providers/control-id.service.js +2 -2
  199. package/esm2015/forms/common/providers/focus.service.js +2 -2
  200. package/esm2015/forms/common/providers/layout.service.js +2 -2
  201. package/esm2015/forms/common/providers/mark-control.service.js +2 -2
  202. package/esm2015/forms/common/providers/ng-control.service.js +2 -2
  203. package/esm2015/forms/common/success.js +3 -3
  204. package/esm2015/forms/common/wrapped-control.js +3 -3
  205. package/esm2015/forms/datalist/datalist-container.js +3 -3
  206. package/esm2015/forms/datalist/datalist-input.js +3 -3
  207. package/esm2015/forms/datalist/datalist.js +2 -2
  208. package/esm2015/forms/datalist/datalist.module.js +2 -2
  209. package/esm2015/forms/datalist/index.js +2 -2
  210. package/esm2015/forms/datalist/providers/datalist-id.service.js +2 -2
  211. package/esm2015/forms/datepicker/calendar.js +3 -3
  212. package/esm2015/forms/datepicker/date-container.js +36 -6
  213. package/esm2015/forms/datepicker/date-input.js +2 -2
  214. package/esm2015/forms/datepicker/datepicker-view-manager.js +8 -3
  215. package/esm2015/forms/datepicker/datepicker.module.js +2 -2
  216. package/esm2015/forms/datepicker/day.js +3 -2
  217. package/esm2015/forms/datepicker/daypicker.js +2 -2
  218. package/esm2015/forms/datepicker/index.js +2 -2
  219. package/esm2015/forms/datepicker/interfaces/date-range.interface.js +2 -2
  220. package/esm2015/forms/datepicker/interfaces/day-of-week.interface.js +2 -2
  221. package/esm2015/forms/datepicker/model/calendar-view.model.js +2 -2
  222. package/esm2015/forms/datepicker/model/calendar.model.js +2 -2
  223. package/esm2015/forms/datepicker/model/day-view.model.js +2 -2
  224. package/esm2015/forms/datepicker/model/day.model.js +2 -2
  225. package/esm2015/forms/datepicker/model/year-range.model.js +2 -2
  226. package/esm2015/forms/datepicker/monthpicker.js +2 -2
  227. package/esm2015/forms/datepicker/providers/date-form-control.service.js +2 -2
  228. package/esm2015/forms/datepicker/providers/date-io.service.js +2 -2
  229. package/esm2015/forms/datepicker/providers/date-navigation.service.js +2 -2
  230. package/esm2015/forms/datepicker/providers/datepicker-enabled.service.js +2 -2
  231. package/esm2015/forms/datepicker/providers/datepicker-focus.service.js +2 -2
  232. package/esm2015/forms/datepicker/providers/locale-helper.service.js +2 -2
  233. package/esm2015/forms/datepicker/providers/view-manager.service.js +2 -2
  234. package/esm2015/forms/datepicker/utils/constants.js +2 -2
  235. package/esm2015/forms/datepicker/utils/date-utils.js +2 -2
  236. package/esm2015/forms/datepicker/yearpicker.js +2 -2
  237. package/esm2015/forms/forms.module.js +2 -2
  238. package/esm2015/forms/index.js +2 -2
  239. package/esm2015/forms/input/index.js +2 -2
  240. package/esm2015/forms/input/input-container.js +3 -3
  241. package/esm2015/forms/input/input.js +3 -3
  242. package/esm2015/forms/input/input.module.js +3 -3
  243. package/esm2015/forms/password/index.js +2 -2
  244. package/esm2015/forms/password/password-container.js +6 -3
  245. package/esm2015/forms/password/password.js +3 -3
  246. package/esm2015/forms/password/password.module.js +3 -3
  247. package/esm2015/forms/radio/index.js +2 -2
  248. package/esm2015/forms/radio/radio-container.js +3 -3
  249. package/esm2015/forms/radio/radio-wrapper.js +3 -3
  250. package/esm2015/forms/radio/radio.js +3 -3
  251. package/esm2015/forms/radio/radio.module.js +3 -3
  252. package/esm2015/forms/range/index.js +2 -2
  253. package/esm2015/forms/range/range-container.js +3 -3
  254. package/esm2015/forms/range/range.js +3 -3
  255. package/esm2015/forms/range/range.module.js +3 -3
  256. package/esm2015/forms/select/index.js +2 -2
  257. package/esm2015/forms/select/select-container.js +3 -3
  258. package/esm2015/forms/select/select.js +3 -3
  259. package/esm2015/forms/select/select.module.js +3 -3
  260. package/esm2015/forms/textarea/index.js +2 -2
  261. package/esm2015/forms/textarea/textarea-container.js +3 -3
  262. package/esm2015/forms/textarea/textarea.js +3 -3
  263. package/esm2015/forms/textarea/textarea.module.js +3 -3
  264. package/esm2015/icon/icon.js +2 -2
  265. package/esm2015/icon/icon.module.js +2 -2
  266. package/esm2015/icon/index.js +2 -2
  267. package/esm2015/index.js +2 -2
  268. package/esm2015/layout/index.js +2 -2
  269. package/esm2015/layout/layout.module.js +2 -2
  270. package/esm2015/layout/main-container/index.js +2 -2
  271. package/esm2015/layout/main-container/main-container.js +2 -2
  272. package/esm2015/layout/main-container/main-container.module.js +2 -2
  273. package/esm2015/layout/nav/chocolate/index.js +2 -2
  274. package/esm2015/layout/nav/chocolate/main-container-willy-wonka.js +2 -2
  275. package/esm2015/layout/nav/chocolate/nav-detection-oompa-loompa.js +2 -2
  276. package/esm2015/layout/nav/header.js +26 -6
  277. package/esm2015/layout/nav/index.js +2 -2
  278. package/esm2015/layout/nav/nav-level.js +107 -6
  279. package/esm2015/layout/nav/navigation.module.js +2 -2
  280. package/esm2015/layout/nav/providers/responsive-navigation.service.js +2 -2
  281. package/esm2015/layout/nav/responsive-nav-codes.js +2 -2
  282. package/esm2015/layout/nav/responsive-nav-control-message.js +2 -2
  283. package/esm2015/layout/tabs/chocolate/active-oompa-loompa.js +2 -2
  284. package/esm2015/layout/tabs/chocolate/tabs-willy-wonka.js +2 -2
  285. package/esm2015/layout/tabs/enums/tabs-layout.enum.js +2 -2
  286. package/esm2015/layout/tabs/index.js +2 -2
  287. package/esm2015/layout/tabs/providers/tabs.service.js +2 -2
  288. package/esm2015/layout/tabs/tab-content.js +2 -3
  289. package/esm2015/layout/tabs/tab-link.directive.js +2 -3
  290. package/esm2015/layout/tabs/tab-overflow-content.js +2 -2
  291. package/esm2015/layout/tabs/tab.js +2 -2
  292. package/esm2015/layout/tabs/tabs-id.provider.js +2 -2
  293. package/esm2015/layout/tabs/tabs.js +2 -2
  294. package/esm2015/layout/tabs/tabs.module.js +2 -2
  295. package/esm2015/layout/vertical-nav/index.js +2 -2
  296. package/esm2015/layout/vertical-nav/providers/vertical-nav-group-registration.service.js +2 -2
  297. package/esm2015/layout/vertical-nav/providers/vertical-nav-group.service.js +2 -2
  298. package/esm2015/layout/vertical-nav/providers/vertical-nav-icon.service.js +2 -2
  299. package/esm2015/layout/vertical-nav/providers/vertical-nav.service.js +2 -2
  300. package/esm2015/layout/vertical-nav/vertical-nav-group-children.js +2 -2
  301. package/esm2015/layout/vertical-nav/vertical-nav-group.js +5 -3
  302. package/esm2015/layout/vertical-nav/vertical-nav-icon.js +2 -2
  303. package/esm2015/layout/vertical-nav/vertical-nav-link.js +2 -2
  304. package/esm2015/layout/vertical-nav/vertical-nav.js +2 -2
  305. package/esm2015/layout/vertical-nav/vertical-nav.module.js +2 -2
  306. package/esm2015/modal/index.js +2 -2
  307. package/esm2015/modal/modal.js +3 -3
  308. package/esm2015/modal/modal.module.js +2 -2
  309. package/esm2015/popover/common/abstract-popover.js +2 -2
  310. package/esm2015/popover/common/popover-host-anchor.token.js +2 -2
  311. package/esm2015/popover/common/popover-options.interface.js +2 -2
  312. package/esm2015/popover/common/popover.js +2 -2
  313. package/esm2015/popover/dropdown/dropdown-item.js +2 -2
  314. package/esm2015/popover/dropdown/dropdown-menu.js +2 -2
  315. package/esm2015/popover/dropdown/dropdown-trigger.js +2 -2
  316. package/esm2015/popover/dropdown/dropdown.js +2 -2
  317. package/esm2015/popover/dropdown/dropdown.module.js +2 -2
  318. package/esm2015/popover/dropdown/index.js +2 -2
  319. package/esm2015/popover/dropdown/menu-positions.js +2 -2
  320. package/esm2015/popover/dropdown/providers/dropdown-focus-handler.service.js +2 -2
  321. package/esm2015/popover/dropdown/providers/dropdown.service.js +2 -2
  322. package/esm2015/popover/index.js +2 -2
  323. package/esm2015/popover/popover.module.js +2 -2
  324. package/esm2015/popover/signpost/index.js +2 -2
  325. package/esm2015/popover/signpost/providers/signpost-focus-manager.service.js +2 -2
  326. package/esm2015/popover/signpost/providers/signpost-id.service.js +2 -3
  327. package/esm2015/popover/signpost/signpost-content.js +2 -2
  328. package/esm2015/popover/signpost/signpost-positions.js +2 -2
  329. package/esm2015/popover/signpost/signpost-trigger.js +2 -2
  330. package/esm2015/popover/signpost/signpost.js +2 -2
  331. package/esm2015/popover/signpost/signpost.module.js +2 -2
  332. package/esm2015/popover/tooltip/index.js +2 -2
  333. package/esm2015/popover/tooltip/providers/tooltip-id.service.js +2 -2
  334. package/esm2015/popover/tooltip/tooltip-content.js +2 -2
  335. package/esm2015/popover/tooltip/tooltip-trigger.js +2 -2
  336. package/esm2015/popover/tooltip/tooltip.js +2 -2
  337. package/esm2015/popover/tooltip/tooltip.module.js +2 -2
  338. package/esm2015/progress/progress-bars/index.js +2 -2
  339. package/esm2015/progress/progress-bars/progress-bar.js +2 -2
  340. package/esm2015/progress/progress-bars/progress-bar.module.js +2 -2
  341. package/esm2015/progress/spinner/index.js +2 -2
  342. package/esm2015/progress/spinner/spinner.js +2 -2
  343. package/esm2015/progress/spinner/spinner.module.js +2 -2
  344. package/esm2015/public-api.js +2 -2
  345. package/esm2015/timeline/enums/timeline-layout.enum.js +2 -2
  346. package/esm2015/timeline/enums/timeline-step-state.enum.js +2 -2
  347. package/esm2015/timeline/index.js +2 -2
  348. package/esm2015/timeline/interface/icon-attribute.interface.js +2 -2
  349. package/esm2015/timeline/providers/timeline-icon-attribute.service.js +2 -2
  350. package/esm2015/timeline/timeline-step-description.js +2 -2
  351. package/esm2015/timeline/timeline-step-header.js +2 -2
  352. package/esm2015/timeline/timeline-step-title.js +2 -2
  353. package/esm2015/timeline/timeline-step.js +2 -2
  354. package/esm2015/timeline/timeline.js +2 -2
  355. package/esm2015/timeline/timeline.module.js +2 -2
  356. package/esm2015/utils/a11y/aria-live.service.js +2 -2
  357. package/esm2015/utils/a11y/index.js +2 -2
  358. package/esm2015/utils/animations/collapse/collapse.js +2 -2
  359. package/esm2015/utils/animations/collapse/index.js +2 -2
  360. package/esm2015/utils/animations/constants.js +2 -2
  361. package/esm2015/utils/animations/expandable-animation/expandable-animation.js +2 -2
  362. package/esm2015/utils/animations/expandable-animation/expandable-animation.module.js +2 -2
  363. package/esm2015/utils/animations/expandable-animation/index.js +6 -1
  364. package/esm2015/utils/animations/fade/fade.js +2 -2
  365. package/esm2015/utils/animations/fade/index.js +2 -2
  366. package/esm2015/utils/animations/fade-slide/fade-slide.js +2 -2
  367. package/esm2015/utils/animations/fade-slide/index.js +2 -2
  368. package/esm2015/utils/animations/index.js +2 -2
  369. package/esm2015/utils/animations/slide/index.js +2 -2
  370. package/esm2015/utils/animations/slide/slide.js +2 -2
  371. package/esm2015/utils/aria/aria.service.js +2 -2
  372. package/esm2015/utils/breakpoints/breakpoints.js +16 -2
  373. package/esm2015/utils/chocolate/oompa-loompa.js +2 -2
  374. package/esm2015/utils/chocolate/willy-wonka.js +2 -2
  375. package/esm2015/utils/component/is-boolean-attribute-set.js +2 -2
  376. package/esm2015/utils/conditional/conditional.module.js +2 -2
  377. package/esm2015/utils/conditional/if-active.directive.js +2 -2
  378. package/esm2015/utils/conditional/if-active.service.js +2 -2
  379. package/esm2015/utils/conditional/if-expanded.directive.js +2 -2
  380. package/esm2015/utils/conditional/if-expanded.service.js +2 -2
  381. package/esm2015/utils/conditional/if-open.directive.js +2 -2
  382. package/esm2015/utils/conditional/index.js +2 -2
  383. package/esm2015/utils/dom-adapter/dom-adapter.js +2 -2
  384. package/esm2015/utils/drag-and-drop/drag-and-drop.module.js +2 -2
  385. package/esm2015/utils/drag-and-drop/drag-event.js +6 -1
  386. package/esm2015/utils/drag-and-drop/drag-handle.js +2 -2
  387. package/esm2015/utils/drag-and-drop/draggable/draggable.js +2 -2
  388. package/esm2015/utils/drag-and-drop/draggable-ghost.js +2 -2
  389. package/esm2015/utils/drag-and-drop/droppable/droppable.js +2 -2
  390. package/esm2015/utils/drag-and-drop/if-dragged.js +2 -2
  391. package/esm2015/utils/drag-and-drop/index.js +2 -2
  392. package/esm2015/utils/drag-and-drop/interfaces/drag-event.interface.js +2 -2
  393. package/esm2015/utils/drag-and-drop/interfaces/drop-tolerance.interface.js +6 -1
  394. package/esm2015/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.js +2 -2
  395. package/esm2015/utils/drag-and-drop/providers/drag-event-listener.service.js +3 -3
  396. package/esm2015/utils/drag-and-drop/providers/drag-handle-registrar.service.js +2 -2
  397. package/esm2015/utils/drag-and-drop/providers/draggable-snapshot.service.js +2 -2
  398. package/esm2015/utils/drag-and-drop/providers/global-drag-mode.service.js +2 -2
  399. package/esm2015/utils/enums/key-codes.enum.js +2 -2
  400. package/esm2015/utils/focus/arrow-key-direction.enum.js +2 -2
  401. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.js +2 -2
  402. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.module.js +2 -2
  403. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.provider.js +2 -2
  404. package/esm2015/utils/focus/focus-on-view-init/index.js +2 -2
  405. package/esm2015/utils/focus/focus.service.js +2 -2
  406. package/esm2015/utils/focus/focusable-item/basic-focusable-item.service.js +2 -2
  407. package/esm2015/utils/focus/focusable-item/custom-focusable-item-provider.js +2 -2
  408. package/esm2015/utils/focus/focusable-item/focusable-item.js +2 -2
  409. package/esm2015/utils/focus/focusable-item/linkers.js +2 -2
  410. package/esm2015/utils/focus/key-focus/enums/focus-direction.enum.js +2 -2
  411. package/esm2015/utils/focus/key-focus/interfaces.js +2 -2
  412. package/esm2015/utils/focus/key-focus/key-focus-item.js +2 -2
  413. package/esm2015/utils/focus/key-focus/key-focus.js +2 -2
  414. package/esm2015/utils/focus/key-focus/key-focus.module.js +2 -2
  415. package/esm2015/utils/focus/key-focus/roving-tabindex.js +2 -2
  416. package/esm2015/utils/focus/key-focus/util.js +2 -2
  417. package/esm2015/utils/focus/wrap-observable.js +2 -2
  418. package/esm2015/utils/focus-trap/focus-trap-config.interface.js +2 -2
  419. package/esm2015/utils/focus-trap/focus-trap-tracker.service.js +2 -2
  420. package/esm2015/utils/focus-trap/focus-trap.directive.js +2 -2
  421. package/esm2015/utils/focus-trap/focus-trap.js +144 -0
  422. package/esm2015/utils/focus-trap/focus-trap.module.js +2 -2
  423. package/esm2015/utils/focus-trap/index.js +2 -2
  424. package/esm2015/utils/forms/validation.js +2 -2
  425. package/esm2015/utils/host-wrapping/dynamic-wrapper.js +3 -3
  426. package/esm2015/utils/host-wrapping/empty-anchor.js +3 -3
  427. package/esm2015/utils/host-wrapping/host-wrapper.js +3 -3
  428. package/esm2015/utils/host-wrapping/host-wrapping.module.js +3 -3
  429. package/esm2015/utils/i18n/common-strings.default.js +22 -6
  430. package/esm2015/utils/i18n/common-strings.interface.js +6 -1
  431. package/esm2015/utils/i18n/common-strings.service.js +2 -2
  432. package/esm2015/utils/i18n/index.js +2 -2
  433. package/esm2015/utils/id-generator/id-generator.service.js +2 -2
  434. package/esm2015/utils/index.js +2 -2
  435. package/esm2015/utils/key-codes/key-codes.js +2 -2
  436. package/esm2015/utils/loading/index.js +2 -2
  437. package/esm2015/utils/loading/loading-listener.js +2 -2
  438. package/esm2015/utils/loading/loading.js +2 -2
  439. package/esm2015/utils/loading/loading.module.js +2 -2
  440. package/esm2015/utils/outside-click/index.js +6 -1
  441. package/esm2015/utils/outside-click/outside-click.js +2 -2
  442. package/esm2015/utils/outside-click/outside-click.module.js +2 -2
  443. package/esm2015/utils/popover/enums/alignment.enum.js +2 -3
  444. package/esm2015/utils/popover/enums/axis.enum.js +2 -3
  445. package/esm2015/utils/popover/enums/positions.enum.js +2 -3
  446. package/esm2015/utils/popover/enums/side.enum.js +2 -3
  447. package/esm2015/utils/popover/enums/viewport-violation.enum.js +2 -3
  448. package/esm2015/utils/popover/index.js +2 -3
  449. package/esm2015/utils/popover/interfaces/popover-content-offset.interface.js +2 -3
  450. package/esm2015/utils/popover/interfaces/popover-position.interface.js +2 -3
  451. package/esm2015/utils/popover/interfaces/visibility-coords.interface.js +2 -3
  452. package/esm2015/utils/popover/popover-anchor.js +2 -3
  453. package/esm2015/utils/popover/popover-close-button.js +2 -3
  454. package/esm2015/utils/popover/popover-content.js +2 -3
  455. package/esm2015/utils/popover/popover-open-close-button.js +2 -3
  456. package/esm2015/utils/popover/popover.module.js +2 -3
  457. package/esm2015/utils/popover/position-operators.js +2 -3
  458. package/esm2015/utils/popover/providers/popover-events.service.js +2 -3
  459. package/esm2015/utils/popover/providers/popover-position.service.js +2 -3
  460. package/esm2015/utils/popover/providers/popover-toggle.service.js +2 -3
  461. package/esm2015/utils/scrolling/scrolling-service.js +2 -2
  462. package/esm2015/utils/template-ref/index.js +6 -1
  463. package/esm2015/utils/template-ref/template-ref-container.js +2 -2
  464. package/esm2015/utils/template-ref/template-ref.module.js +2 -2
  465. package/esm2015/wizard/index.js +2 -2
  466. package/esm2015/wizard/providers/button-hub.service.js +2 -2
  467. package/esm2015/wizard/providers/header-actions.service.js +2 -2
  468. package/esm2015/wizard/providers/page-collection.service.js +2 -2
  469. package/esm2015/wizard/providers/wizard-navigation.service.js +2 -2
  470. package/esm2015/wizard/wizard-button.js +2 -2
  471. package/esm2015/wizard/wizard-custom-tags.js +2 -2
  472. package/esm2015/wizard/wizard-header-action.js +2 -2
  473. package/esm2015/wizard/wizard-page-buttons.js +2 -2
  474. package/esm2015/wizard/wizard-page-header-actions.js +2 -2
  475. package/esm2015/wizard/wizard-page-navtitle.js +2 -2
  476. package/esm2015/wizard/wizard-page-title.js +2 -2
  477. package/esm2015/wizard/wizard-page.js +2 -2
  478. package/esm2015/wizard/wizard-stepnav-item.js +2 -2
  479. package/esm2015/wizard/wizard-stepnav.js +2 -2
  480. package/esm2015/wizard/wizard.js +10 -3
  481. package/esm2015/wizard/wizard.module.js +2 -2
  482. package/fesm2015/clr-angular.js +1318 -859
  483. package/fesm2015/clr-angular.js.map +1 -1
  484. package/forms/checkbox/checkbox-container.d.ts +0 -5
  485. package/forms/checkbox/checkbox-wrapper.d.ts +0 -5
  486. package/forms/checkbox/checkbox.d.ts +0 -5
  487. package/forms/checkbox/checkbox.module.d.ts +0 -5
  488. package/forms/combobox/combobox-container.d.ts +0 -5
  489. package/forms/combobox/combobox.d.ts +0 -5
  490. package/forms/combobox/combobox.module.d.ts +0 -5
  491. package/forms/combobox/model/combobox.model.d.ts +0 -5
  492. package/forms/combobox/model/multi-select-combobox.model.d.ts +0 -5
  493. package/forms/combobox/model/pseudo-focus.model.d.ts +0 -5
  494. package/forms/combobox/model/single-select-combobox.model.d.ts +0 -5
  495. package/forms/combobox/option.d.ts +0 -5
  496. package/forms/combobox/options.d.ts +0 -5
  497. package/forms/common/abstract-container.d.ts +0 -5
  498. package/forms/common/abstract-control.d.ts +0 -5
  499. package/forms/common/common.module.d.ts +0 -5
  500. package/forms/common/control-container.d.ts +0 -5
  501. package/forms/common/error.d.ts +0 -5
  502. package/forms/common/form.d.ts +0 -5
  503. package/forms/common/helper.d.ts +0 -5
  504. package/forms/common/layout.d.ts +0 -5
  505. package/forms/common/success.d.ts +0 -5
  506. package/forms/common/wrapped-control.d.ts +0 -5
  507. package/forms/datalist/datalist-container.d.ts +0 -5
  508. package/forms/datalist/datalist-input.d.ts +0 -5
  509. package/forms/datepicker/date-container.d.ts +11 -2
  510. package/forms/datepicker/datepicker-view-manager.d.ts +3 -1
  511. package/forms/input/input-container.d.ts +0 -5
  512. package/forms/input/input.d.ts +0 -5
  513. package/forms/input/input.module.d.ts +0 -5
  514. package/forms/password/password-container.d.ts +0 -5
  515. package/forms/password/password.d.ts +0 -5
  516. package/forms/password/password.module.d.ts +0 -5
  517. package/forms/radio/radio-container.d.ts +0 -5
  518. package/forms/radio/radio-wrapper.d.ts +0 -5
  519. package/forms/radio/radio.d.ts +0 -5
  520. package/forms/radio/radio.module.d.ts +0 -5
  521. package/forms/range/range-container.d.ts +0 -5
  522. package/forms/range/range.d.ts +0 -5
  523. package/forms/range/range.module.d.ts +0 -5
  524. package/forms/select/select-container.d.ts +0 -5
  525. package/forms/select/select.d.ts +0 -5
  526. package/forms/select/select.module.d.ts +0 -5
  527. package/forms/textarea/textarea-container.d.ts +0 -5
  528. package/forms/textarea/textarea.d.ts +0 -5
  529. package/forms/textarea/textarea.module.d.ts +0 -5
  530. package/layout/nav/header.d.ts +6 -0
  531. package/layout/nav/nav-level.d.ts +15 -3
  532. package/layout/vertical-nav/vertical-nav-group.d.ts +1 -0
  533. package/package.json +7 -17
  534. package/utils/breakpoints/breakpoints.d.ts +14 -0
  535. package/utils/focus-trap/focus-trap.d.ts +26 -0
  536. package/utils/host-wrapping/dynamic-wrapper.d.ts +0 -5
  537. package/utils/host-wrapping/empty-anchor.d.ts +0 -5
  538. package/utils/host-wrapping/host-wrapper.d.ts +0 -5
  539. package/utils/host-wrapping/host-wrapping.module.d.ts +0 -5
  540. package/utils/i18n/common-strings.interface.d.ts +40 -0
  541. package/schematics/add/index.js +0 -123
  542. package/schematics/add/index.js.map +0 -1
  543. package/schematics/add/index.spec.js +0 -114
  544. package/schematics/add/index.spec.js.map +0 -1
  545. package/schematics/add/schema.json +0 -18
  546. package/schematics/collection.json +0 -10
  547. package/schematics/migration-collection.json +0 -20
  548. package/schematics/update/update-0.13.0.js +0 -147
  549. package/schematics/update/update-0.13.0.js.map +0 -1
  550. package/schematics/update/update-3.0.0.js +0 -89
  551. package/schematics/update/update-3.0.0.js.map +0 -1
  552. package/schematics/update/update-5.0.0.js +0 -37
  553. package/schematics/update/update-5.0.0.js.map +0 -1
  554. package/schematics/update/update-5.0.0.spec.js +0 -71
  555. package/schematics/update/update-5.0.0.spec.js.map +0 -1
  556. package/schematics/utility/add-assets-to-config-file.js +0 -25
  557. package/schematics/utility/add-assets-to-config-file.js.map +0 -1
  558. package/schematics/utility/add-module-import-to-module.js +0 -36
  559. package/schematics/utility/add-module-import-to-module.js.map +0 -1
  560. package/schematics/utility/angular-config-filename.js +0 -10
  561. package/schematics/utility/angular-config-filename.js.map +0 -1
  562. package/schematics/utility/compare-versions.js +0 -30
  563. package/schematics/utility/compare-versions.js.map +0 -1
  564. package/schematics/utility/config.js +0 -32
  565. package/schematics/utility/config.js.map +0 -1
  566. package/schematics/utility/find-app-module.js +0 -17
  567. package/schematics/utility/find-app-module.js.map +0 -1
  568. package/schematics/utility/get-file-content.js +0 -12
  569. package/schematics/utility/get-file-content.js.map +0 -1
  570. package/schematics/utility/get-index-html-path.js +0 -14
  571. package/schematics/utility/get-index-html-path.js.map +0 -1
  572. package/schematics/utility/get-json-file.js +0 -25
  573. package/schematics/utility/get-json-file.js.map +0 -1
  574. package/schematics/utility/get-main-path.js +0 -14
  575. package/schematics/utility/get-main-path.js.map +0 -1
  576. package/schematics/utility/get-typescript-source-file.js +0 -26
  577. package/schematics/utility/get-typescript-source-file.js.map +0 -1
  578. package/schematics/utility/ng-add-options.js +0 -8
  579. package/schematics/utility/ng-add-options.js.map +0 -1
  580. package/schematics/utility/run-npm-install.js +0 -14
  581. package/schematics/utility/run-npm-install.js.map +0 -1
  582. package/schematics/utility/setup-project.js +0 -37
  583. package/schematics/utility/setup-project.js.map +0 -1
  584. package/schematics/utility/update-json-file.js +0 -17
  585. package/schematics/utility/update-json-file.js.map +0 -1
@@ -1,8 +1,7 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
- *
6
5
  */
7
6
  import { ClrViewportViolation } from './enums/viewport-violation.enum';
8
7
  import { ClrAlignment } from './enums/alignment.enum';
@@ -168,4 +167,4 @@ export function testVisibility(offset, content) {
168
167
  }
169
168
  return violations;
170
169
  }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tb3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wb3NpdGlvbi1vcGVyYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFJSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFpQixRQUFRLENBQUMsRUFBRTtJQUNoRCx1Q0FDSyxRQUFRLEtBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQ3hCO0FBQ0osQ0FBQyxDQUFDO0FBRUYsOERBQThEO0FBQzlELGdHQUFnRztBQUNoRyxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFpQixRQUFRLENBQUMsRUFBRTtJQUMvQyx1Q0FDSyxRQUFRLEtBQ1gsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFDakM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQzlELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRSxJQUFJLGFBQWEsR0FBRyxDQUFDLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRTtRQUMxQyxPQUFPLFFBQVEsQ0FBQztLQUNqQjtTQUFNO1FBQ0wsdUNBQ0ssUUFBUSxLQUNYLE9BQU8sRUFBRSxhQUFhLElBQ3RCO0tBQ0g7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Q0FBQyxFQUFFO1FBQ3RGLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDN0M7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqXG4gKi9cblxuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJDb250ZW50T2Zmc2V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvcG92ZXItY29udGVudC1vZmZzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclZpZXdwb3J0VmlvbGF0aW9uIH0gZnJvbSAnLi9lbnVtcy92aWV3cG9ydC12aW9sYXRpb24uZW51bSc7XG5pbXBvcnQgeyBDbHJWaXNpYmlsaXR5Q29vcmRzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3Zpc2liaWxpdHktY29vcmRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJBbGlnbm1lbnQgfSBmcm9tICcuL2VudW1zL2FsaWdubWVudC5lbnVtJztcblxuLy8gUHV0IHRoZSBmb3J3YXJkIGFyZyBoZXJlIGJ1dCBpdCBpcyBvbmx5IG5lZWRlZCB3aGVuIG51ZGdpbmcgY29udGVudCBvciBhbmNob3JzLlxuZXhwb3J0IHR5cGUgQ2xyVHJhbnNmb3JtID0gKHBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24sIGJhY2s/OiBib29sZWFuKSA9PiBDbHJQb3BvdmVyUG9zaXRpb247XG5cbmV4cG9ydCBjb25zdCBmbGlwU2lkZXM6IENsclRyYW5zZm9ybSA9IHBvc2l0aW9uID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wb3NpdGlvbixcbiAgICBzaWRlOiAtMSAqIHBvc2l0aW9uLnNpZGUsXG4gIH07XG59O1xuXG4vLyBUaGlzIGNvdWxkIGJlIHVzZWQgaW4gbW9yZSBhZHZhbmNlZCBwb3NpdGlvbmluZyBhbGdvcml0aG1zLlxuLy8gZmxpcEF4aXNGbGlwU2lkZUFuZE51ZGdlQ29udGVudChmbGlwQXhpcywgZmxpcFNpZGUsIG51ZGdlLCBudWRnZUZvcndhcmQ/KTogQ2xyVHJhbnNmb3JtIHsuLi59XG4vLyBJIHdvdWxkIGxpa2UgdG8ga2VlcCBpdCBmb3Igbm93LlxuZXhwb3J0IGNvbnN0IGZsaXBBeGlzOiBDbHJUcmFuc2Zvcm0gPSBwb3NpdGlvbiA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4ucG9zaXRpb24sXG4gICAgYXhpczogcG9zaXRpb24uYXhpcyA9PT0gMCA/IDEgOiAwLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG51ZGdlQ29udGVudDogQ2xyVHJhbnNmb3JtID0gKHBvc2l0aW9uLCBmb3J3YXJkKSA9PiB7XG4gIGNvbnN0IG5leHRBbGlnbm1lbnQgPSBwb3NpdGlvbi5jb250ZW50ICsgKGZvcndhcmQgPyAwLjUgOiAtMC41KTtcbiAgaWYgKG5leHRBbGlnbm1lbnQgPCAwIHx8IG5leHRBbGlnbm1lbnQgPiAxKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wb3NpdGlvbixcbiAgICAgIGNvbnRlbnQ6IG5leHRBbGlnbm1lbnQsXG4gICAgfTtcbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwOiBDbHJUcmFuc2Zvcm0sIG51ZGdlOiBDbHJUcmFuc2Zvcm0sIG51ZGdlQmFjaz86IGJvb2xlYW4pOiBDbHJUcmFuc2Zvcm0ge1xuICByZXR1cm4gKHBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24pOiBDbHJQb3BvdmVyUG9zaXRpb24gPT4gbnVkZ2UoZmxpcChwb3NpdGlvbiksIG51ZGdlQmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGlnbihwb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uLCBhbmNob3I6IENsaWVudFJlY3QsIGNvbnRlbnQ6IENsaWVudFJlY3QpOiBDbHJQb3BvdmVyQ29udGVudE9mZnNldCB7XG4gIGxldCB4RGlmZiA9IGFuY2hvci5sZWZ0O1xuICBsZXQgeURpZmYgPSBhbmNob3IudG9wO1xuXG4gIC8vIFdoZW4gQ2xyQXhpcyBpcyBWRVJUSUNBTCBCRUZPUkUgPSBsZWZ0LCBBRlRFUiA9IHJpZ2h0XG4gIC8vIFdoZW4gQ2xyQXhpcyBpcyBIT1JJWk9OVEFMIEJFRk9SRSBpcyB0b3AsIEFGVEVSIGlzIGJvdHRvbVxuICBzd2l0Y2ggKHBvc2l0aW9uLmF4aXMgKyBwb3NpdGlvbi5zaWRlKSB7XG4gICAgY2FzZSAtMToge1xuICAgICAgLy8gQ2xyQXhpcy5WRVJUSUNBTCArIENsclNpZGUuQkVGT1JFXG4gICAgICB4RGlmZiArPSBhbGlnbkhvcml6b250YWwocG9zaXRpb24sIGFuY2hvciwgY29udGVudCk7XG4gICAgICB5RGlmZiAtPSBjb250ZW50LmhlaWdodDsgLy8gcHVsbCBjb250ZW50IHVwIHRvIHRoZSB0b3Agb2YgdGhlIGFuY2hvclxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMToge1xuICAgICAgLy8gQ2xyQXhpcy5WRVJUSUNBTCArIENsclNpZGUuQUZURVJcbiAgICAgIHhEaWZmICs9IGFsaWduSG9yaXpvbnRhbChwb3NpdGlvbiwgYW5jaG9yLCBjb250ZW50KTtcbiAgICAgIHlEaWZmICs9IGFuY2hvci5oZWlnaHQ7IC8vIHB1c2ggdGhlIGNvbnRlbnQgZG93biB0byBiZWxvdyB0aGUgYW5jaG9yXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAwOiB7XG4gICAgICAvLyBDbHJBeGlzLkhPUklaT05UQUwgKyBDbHJTaWRlLkJFRk9SRVxuICAgICAgeERpZmYgLT0gY29udGVudC53aWR0aDsgLy8gcHVsbCB0aGUgY29udGVudCBsZWZ0IG9mIHRoZSBhbmNob3JcbiAgICAgIHlEaWZmICs9IGFsaWduVmVydGljYWwocG9zaXRpb24sIGFuY2hvciwgY29udGVudCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICAvLyBDbHJBeGlzLkhPUklaT05UQUwgKyBDbHJTaWRlLkFGVEVSXG4gICAgICB4RGlmZiArPSBhbmNob3Iud2lkdGg7IC8vIHB1c2ggdGhlIGNvbnRlbnQgcmlnaHQgb2Ygb2YgdGhlIGFuY2hvclxuICAgICAgeURpZmYgKz0gYWxpZ25WZXJ0aWNhbChwb3NpdGlvbiwgYW5jaG9yLCBjb250ZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgeE9mZnNldDogeERpZmYsIHlPZmZzZXQ6IHlEaWZmIH07XG59XG5cbmZ1bmN0aW9uIGFsaWduSG9yaXpvbnRhbChwb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uLCBhbmNob3I6IENsaWVudFJlY3QsIGNvbnRlbnQ6IENsaWVudFJlY3QpOiBudW1iZXIge1xuICBsZXQgaG9yaXpvbnRhbE9mZnNldCA9IDA7XG4gIC8vIGhvcml6b250YWwgb2Zmc2V0IGZvciB0aGUgYW5jaG9yIHBvc2l0aW9uXG4gIHN3aXRjaCAocG9zaXRpb24uYW5jaG9yIC8qY2FsY3VsYXRlIGZvciB0aGUgYW5jaG9yIGFsaWdubWVudCovKSB7XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuU1RBUlQ6IHtcbiAgICAgIC8vIG5vdGhpbmcgdG8gY2FsY3VsYXRlIGhlcmVcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5DRU5URVI6IHtcbiAgICAgIGhvcml6b250YWxPZmZzZXQgKz0gYW5jaG9yLndpZHRoIC8gMjsgLy8gcHVzaCBjb250ZW50IG92ZXIgMS8yIGFuY2hvciB3aWR0aFxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgQ2xyQWxpZ25tZW50LkVORDoge1xuICAgICAgaG9yaXpvbnRhbE9mZnNldCArPSBhbmNob3Iud2lkdGg7IC8vICBwdXNoIGNvbnRlbnQgb3ZlciB3aWR0aCBvZiB0aGUgYW5jaG9yXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gaG9yaXpvbnRhbCBvZmZzZXRzIGZvciBhbmNob3IgYWxpZ25tZW50XG4gIHN3aXRjaCAoXG4gICAgcG9zaXRpb24uY29udGVudCAvLyBjYWxjdWxhdGUgZm9yIHRoZSBjb250ZW50IGFsaWdubWVudFxuICApIHtcbiAgICBjYXNlIENsckFsaWdubWVudC5TVEFSVDoge1xuICAgICAgLy8gTm90aGluZyB0byBjYWxjdWxhdGUgaGVyZVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgQ2xyQWxpZ25tZW50LkNFTlRFUjoge1xuICAgICAgaG9yaXpvbnRhbE9mZnNldCAtPSBjb250ZW50LndpZHRoIC8gMjsgLy8gcHVsbCBjb250ZW50IGxlZnQgYnkgYSB2YWx1ZSBvZiAxLzIgY29udGVudCB3aWR0aFxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgQ2xyQWxpZ25tZW50LkVORDoge1xuICAgICAgLy8gc3VidHJhY3QgdGhlIHdpZHRoIG9mIGN1cnJlbnRDb250ZW50IGZyb20gaG9yaXpvbnRhbE9mZnNldCB0byBwdWxsIGl0IGJhY2tcbiAgICAgIGhvcml6b250YWxPZmZzZXQgLT0gY29udGVudC53aWR0aDtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaG9yaXpvbnRhbE9mZnNldDtcbn1cblxuZnVuY3Rpb24gYWxpZ25WZXJ0aWNhbChwb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uLCBhbmNob3I6IENsaWVudFJlY3QsIGNvbnRlbnQ6IENsaWVudFJlY3QpOiBudW1iZXIge1xuICAvLyB5IGF4aXMgb2Zmc2V0cyBmb3IgYW5jaG9yIGFsaWdubWVudFxuICBsZXQgdmVydGljYWxPZmZzZXQgPSAwO1xuXG4gIC8vIENhbGN1bGF0ZSB5IG9mZnNldCBmb3IgYW5jaG9yIHBvc2l0aW9uXG4gIHN3aXRjaCAocG9zaXRpb24uYW5jaG9yKSB7XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuU1RBUlQ6IHtcbiAgICAgIC8vIG5vdGhpbmcgdG8gY2FsY3VsYXRlIGhlcmVcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5DRU5URVI6IHtcbiAgICAgIHZlcnRpY2FsT2Zmc2V0ICs9IGFuY2hvci5oZWlnaHQgLyAyOyAvLyBwdXNoIGNvbnRlbnQgZG93biB0byB0aGUgbWlkZGxlIG9mIHRoZSBhbmNob3IgcmVjdFxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgQ2xyQWxpZ25tZW50LkVORDoge1xuICAgICAgdmVydGljYWxPZmZzZXQgKz0gYW5jaG9yLmhlaWdodDsgLy8gcHVzaCBjb250ZW50IGRvd24gdG8gdGhlIGJvdHRvbSBvZiB0aGUgYW5jaG9yXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHkgb2Zmc2V0cyBmb3IgY29udGVudCBhbGlnbm1lbnRcbiAgc3dpdGNoIChwb3NpdGlvbi5jb250ZW50KSB7XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuU1RBUlQ6IHtcbiAgICAgIC8vIGFsaWduZWQgdG8gdGhlIHRvcCBvZiB0aGUgY29udGVudCByZWN0XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuQ0VOVEVSOiB7XG4gICAgICB2ZXJ0aWNhbE9mZnNldCAtPSBjb250ZW50LmhlaWdodCAvIDI7IC8vIHB1bGwgY29udGVudCBiYWNrIHVwIHRvIHRoZSBtaWRkbGUgb2YgdGhlIGNvbnRlbnQgcmVjdFxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgQ2xyQWxpZ25tZW50LkVORDoge1xuICAgICAgdmVydGljYWxPZmZzZXQgLT0gY29udGVudC5oZWlnaHQ7IC8vIHB1bGwgY29udGVudCBiYWNrIHVwIHRvIHRoZSBib3R0b20gb2YgdGhlIGNvbnRlbnQgcmVjdFxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdmVydGljYWxPZmZzZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0VmlzaWJpbGl0eShvZmZzZXQ6IENsclBvcG92ZXJDb250ZW50T2Zmc2V0LCBjb250ZW50OiBDbGllbnRSZWN0KTogQ2xyVmlld3BvcnRWaW9sYXRpb25bXSB7XG4gIGNvbnN0IHZpb2xhdGlvbnM6IENsclZpZXdwb3J0VmlvbGF0aW9uW10gPSBbXTtcbiAgY29uc3QgbW9ja0Nvb3JkczogQ2xyVmlzaWJpbGl0eUNvb3JkcyA9IHtcbiAgICBib3R0b206IG9mZnNldC55T2Zmc2V0ICsgY29udGVudC5oZWlnaHQsXG4gICAgbGVmdDogb2Zmc2V0LnhPZmZzZXQsXG4gICAgcmlnaHQ6IG9mZnNldC54T2Zmc2V0ICsgY29udGVudC53aWR0aCxcbiAgICB0b3A6IG9mZnNldC55T2Zmc2V0LFxuICB9O1xuXG4gIGlmICghKG1vY2tDb29yZHMudG9wID49IDApKSB7XG4gICAgdmlvbGF0aW9ucy5wdXNoKENsclZpZXdwb3J0VmlvbGF0aW9uLlRPUCk7XG4gIH1cbiAgaWYgKCEobW9ja0Nvb3Jkcy5sZWZ0ID49IDApKSB7XG4gICAgdmlvbGF0aW9ucy5wdXNoKENsclZpZXdwb3J0VmlvbGF0aW9uLkxFRlQpO1xuICB9XG4gIGlmICghKG1vY2tDb29yZHMuYm90dG9tIDw9ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkpKSB7XG4gICAgdmlvbGF0aW9ucy5wdXNoKENsclZpZXdwb3J0VmlvbGF0aW9uLkJPVFRPTSk7XG4gIH1cbiAgaWYgKCEobW9ja0Nvb3Jkcy5yaWdodCA8PSAod2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSkpIHtcbiAgICB2aW9sYXRpb25zLnB1c2goQ2xyVmlld3BvcnRWaW9sYXRpb24uUklHSFQpO1xuICB9XG5cbiAgcmV0dXJuIHZpb2xhdGlvbnM7XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tb3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wb3NpdGlvbi1vcGVyYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUlILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUt0RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWlCLFFBQVEsQ0FBQyxFQUFFO0lBQ2hELHVDQUNLLFFBQVEsS0FDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksSUFDeEI7QUFDSixDQUFDLENBQUM7QUFFRiw4REFBOEQ7QUFDOUQsZ0dBQWdHO0FBQ2hHLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWlCLFFBQVEsQ0FBQyxFQUFFO0lBQy9DLHVDQUNLLFFBQVEsS0FDWCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUNqQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBaUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDOUQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLElBQUksYUFBYSxHQUFHLENBQUMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO1FBQzFDLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO1NBQU07UUFDTCx1Q0FDSyxRQUFRLEtBQ1gsT0FBTyxFQUFFLGFBQWEsSUFDdEI7S0FDSDtB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QUFDLEVBQUU7UUFDdEYsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wb3BvdmVyLXBvc2l0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyQ29udGVudE9mZnNldCB9IGZyb20gJy4vaW50ZXJmYWNlcy9wb3BvdmVyLWNvbnRlbnQtb2Zmc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJWaWV3cG9ydFZpb2xhdGlvbiB9IGZyb20gJy4vZW51bXMvdmlld3BvcnQtdmlvbGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgQ2xyVmlzaWJpbGl0eUNvb3JkcyB9IGZyb20gJy4vaW50ZXJmYWNlcy92aXNpYmlsaXR5LWNvb3Jkcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyQWxpZ25tZW50IH0gZnJvbSAnLi9lbnVtcy9hbGlnbm1lbnQuZW51bSc7XG5cbi8vIFB1dCB0aGUgZm9yd2FyZCBhcmcgaGVyZSBidXQgaXQgaXMgb25seSBuZWVkZWQgd2hlbiBudWRnaW5nIGNvbnRlbnQgb3IgYW5jaG9ycy5cbmV4cG9ydCB0eXBlIENsclRyYW5zZm9ybSA9IChwb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uLCBiYWNrPzogYm9vbGVhbikgPT4gQ2xyUG9wb3ZlclBvc2l0aW9uO1xuXG5leHBvcnQgY29uc3QgZmxpcFNpZGVzOiBDbHJUcmFuc2Zvcm0gPSBwb3NpdGlvbiA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4ucG9zaXRpb24sXG4gICAgc2lkZTogLTEgKiBwb3NpdGlvbi5zaWRlLFxuICB9O1xufTtcblxuLy8gVGhpcyBjb3VsZCBiZSB1c2VkIGluIG1vcmUgYWR2YW5jZWQgcG9zaXRpb25pbmcgYWxnb3JpdGhtcy5cbi8vIGZsaXBBeGlzRmxpcFNpZGVBbmROdWRnZUNvbnRlbnQoZmxpcEF4aXMsIGZsaXBTaWRlLCBudWRnZSwgbnVkZ2VGb3J3YXJkPyk6IENsclRyYW5zZm9ybSB7Li4ufVxuLy8gSSB3b3VsZCBsaWtlIHRvIGtlZXAgaXQgZm9yIG5vdy5cbmV4cG9ydCBjb25zdCBmbGlwQXhpczogQ2xyVHJhbnNmb3JtID0gcG9zaXRpb24gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnBvc2l0aW9uLFxuICAgIGF4aXM6IHBvc2l0aW9uLmF4aXMgPT09IDAgPyAxIDogMCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBudWRnZUNvbnRlbnQ6IENsclRyYW5zZm9ybSA9IChwb3NpdGlvbiwgZm9yd2FyZCkgPT4ge1xuICBjb25zdCBuZXh0QWxpZ25tZW50ID0gcG9zaXRpb24uY29udGVudCArIChmb3J3YXJkID8gMC41IDogLTAuNSk7XG4gIGlmIChuZXh0QWxpZ25tZW50IDwgMCB8fCBuZXh0QWxpZ25tZW50ID4gMSkge1xuICAgIHJldHVybiBwb3NpdGlvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucG9zaXRpb24sXG4gICAgICBjb250ZW50OiBuZXh0QWxpZ25tZW50LFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcDogQ2xyVHJhbnNmb3JtLCBudWRnZTogQ2xyVHJhbnNmb3JtLCBudWRnZUJhY2s/OiBib29sZWFuKTogQ2xyVHJhbnNmb3JtIHtcbiAgcmV0dXJuIChwb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uKTogQ2xyUG9wb3ZlclBvc2l0aW9uID0+IG51ZGdlKGZsaXAocG9zaXRpb24pLCBudWRnZUJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxpZ24ocG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbiwgYW5jaG9yOiBDbGllbnRSZWN0LCBjb250ZW50OiBDbGllbnRSZWN0KTogQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQge1xuICBsZXQgeERpZmYgPSBhbmNob3IubGVmdDtcbiAgbGV0IHlEaWZmID0gYW5jaG9yLnRvcDtcblxuICAvLyBXaGVuIENsckF4aXMgaXMgVkVSVElDQUwgQkVGT1JFID0gbGVmdCwgQUZURVIgPSByaWdodFxuICAvLyBXaGVuIENsckF4aXMgaXMgSE9SSVpPTlRBTCBCRUZPUkUgaXMgdG9wLCBBRlRFUiBpcyBib3R0b21cbiAgc3dpdGNoIChwb3NpdGlvbi5heGlzICsgcG9zaXRpb24uc2lkZSkge1xuICAgIGNhc2UgLTE6IHtcbiAgICAgIC8vIENsckF4aXMuVkVSVElDQUwgKyBDbHJTaWRlLkJFRk9SRVxuICAgICAgeERpZmYgKz0gYWxpZ25Ib3Jpem9udGFsKHBvc2l0aW9uLCBhbmNob3IsIGNvbnRlbnQpO1xuICAgICAgeURpZmYgLT0gY29udGVudC5oZWlnaHQ7IC8vIHB1bGwgY29udGVudCB1cCB0byB0aGUgdG9wIG9mIHRoZSBhbmNob3JcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIC8vIENsckF4aXMuVkVSVElDQUwgKyBDbHJTaWRlLkFGVEVSXG4gICAgICB4RGlmZiArPSBhbGlnbkhvcml6b250YWwocG9zaXRpb24sIGFuY2hvciwgY29udGVudCk7XG4gICAgICB5RGlmZiArPSBhbmNob3IuaGVpZ2h0OyAvLyBwdXNoIHRoZSBjb250ZW50IGRvd24gdG8gYmVsb3cgdGhlIGFuY2hvclxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMDoge1xuICAgICAgLy8gQ2xyQXhpcy5IT1JJWk9OVEFMICsgQ2xyU2lkZS5CRUZPUkVcbiAgICAgIHhEaWZmIC09IGNvbnRlbnQud2lkdGg7IC8vIHB1bGwgdGhlIGNvbnRlbnQgbGVmdCBvZiB0aGUgYW5jaG9yXG4gICAgICB5RGlmZiArPSBhbGlnblZlcnRpY2FsKHBvc2l0aW9uLCBhbmNob3IsIGNvbnRlbnQpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgLy8gQ2xyQXhpcy5IT1JJWk9OVEFMICsgQ2xyU2lkZS5BRlRFUlxuICAgICAgeERpZmYgKz0gYW5jaG9yLndpZHRoOyAvLyBwdXNoIHRoZSBjb250ZW50IHJpZ2h0IG9mIG9mIHRoZSBhbmNob3JcbiAgICAgIHlEaWZmICs9IGFsaWduVmVydGljYWwocG9zaXRpb24sIGFuY2hvciwgY29udGVudCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHhPZmZzZXQ6IHhEaWZmLCB5T2Zmc2V0OiB5RGlmZiB9O1xufVxuXG5mdW5jdGlvbiBhbGlnbkhvcml6b250YWwocG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbiwgYW5jaG9yOiBDbGllbnRSZWN0LCBjb250ZW50OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgbGV0IGhvcml6b250YWxPZmZzZXQgPSAwO1xuICAvLyBob3Jpem9udGFsIG9mZnNldCBmb3IgdGhlIGFuY2hvciBwb3NpdGlvblxuICBzd2l0Y2ggKHBvc2l0aW9uLmFuY2hvciAvKmNhbGN1bGF0ZSBmb3IgdGhlIGFuY2hvciBhbGlnbm1lbnQqLykge1xuICAgIGNhc2UgQ2xyQWxpZ25tZW50LlNUQVJUOiB7XG4gICAgICAvLyBub3RoaW5nIHRvIGNhbGN1bGF0ZSBoZXJlXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuQ0VOVEVSOiB7XG4gICAgICBob3Jpem9udGFsT2Zmc2V0ICs9IGFuY2hvci53aWR0aCAvIDI7IC8vIHB1c2ggY29udGVudCBvdmVyIDEvMiBhbmNob3Igd2lkdGhcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5FTkQ6IHtcbiAgICAgIGhvcml6b250YWxPZmZzZXQgKz0gYW5jaG9yLndpZHRoOyAvLyAgcHVzaCBjb250ZW50IG92ZXIgd2lkdGggb2YgdGhlIGFuY2hvclxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIGhvcml6b250YWwgb2Zmc2V0cyBmb3IgYW5jaG9yIGFsaWdubWVudFxuICBzd2l0Y2ggKFxuICAgIHBvc2l0aW9uLmNvbnRlbnQgLy8gY2FsY3VsYXRlIGZvciB0aGUgY29udGVudCBhbGlnbm1lbnRcbiAgKSB7XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuU1RBUlQ6IHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gY2FsY3VsYXRlIGhlcmVcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5DRU5URVI6IHtcbiAgICAgIGhvcml6b250YWxPZmZzZXQgLT0gY29udGVudC53aWR0aCAvIDI7IC8vIHB1bGwgY29udGVudCBsZWZ0IGJ5IGEgdmFsdWUgb2YgMS8yIGNvbnRlbnQgd2lkdGhcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5FTkQ6IHtcbiAgICAgIC8vIHN1YnRyYWN0IHRoZSB3aWR0aCBvZiBjdXJyZW50Q29udGVudCBmcm9tIGhvcml6b250YWxPZmZzZXQgdG8gcHVsbCBpdCBiYWNrXG4gICAgICBob3Jpem9udGFsT2Zmc2V0IC09IGNvbnRlbnQud2lkdGg7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhvcml6b250YWxPZmZzZXQ7XG59XG5cbmZ1bmN0aW9uIGFsaWduVmVydGljYWwocG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbiwgYW5jaG9yOiBDbGllbnRSZWN0LCBjb250ZW50OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgLy8geSBheGlzIG9mZnNldHMgZm9yIGFuY2hvciBhbGlnbm1lbnRcbiAgbGV0IHZlcnRpY2FsT2Zmc2V0ID0gMDtcblxuICAvLyBDYWxjdWxhdGUgeSBvZmZzZXQgZm9yIGFuY2hvciBwb3NpdGlvblxuICBzd2l0Y2ggKHBvc2l0aW9uLmFuY2hvcikge1xuICAgIGNhc2UgQ2xyQWxpZ25tZW50LlNUQVJUOiB7XG4gICAgICAvLyBub3RoaW5nIHRvIGNhbGN1bGF0ZSBoZXJlXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBDbHJBbGlnbm1lbnQuQ0VOVEVSOiB7XG4gICAgICB2ZXJ0aWNhbE9mZnNldCArPSBhbmNob3IuaGVpZ2h0IC8gMjsgLy8gcHVzaCBjb250ZW50IGRvd24gdG8gdGhlIG1pZGRsZSBvZiB0aGUgYW5jaG9yIHJlY3RcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5FTkQ6IHtcbiAgICAgIHZlcnRpY2FsT2Zmc2V0ICs9IGFuY2hvci5oZWlnaHQ7IC8vIHB1c2ggY29udGVudCBkb3duIHRvIHRoZSBib3R0b20gb2YgdGhlIGFuY2hvclxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB5IG9mZnNldHMgZm9yIGNvbnRlbnQgYWxpZ25tZW50XG4gIHN3aXRjaCAocG9zaXRpb24uY29udGVudCkge1xuICAgIGNhc2UgQ2xyQWxpZ25tZW50LlNUQVJUOiB7XG4gICAgICAvLyBhbGlnbmVkIHRvIHRoZSB0b3Agb2YgdGhlIGNvbnRlbnQgcmVjdFxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgQ2xyQWxpZ25tZW50LkNFTlRFUjoge1xuICAgICAgdmVydGljYWxPZmZzZXQgLT0gY29udGVudC5oZWlnaHQgLyAyOyAvLyBwdWxsIGNvbnRlbnQgYmFjayB1cCB0byB0aGUgbWlkZGxlIG9mIHRoZSBjb250ZW50IHJlY3RcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIENsckFsaWdubWVudC5FTkQ6IHtcbiAgICAgIHZlcnRpY2FsT2Zmc2V0IC09IGNvbnRlbnQuaGVpZ2h0OyAvLyBwdWxsIGNvbnRlbnQgYmFjayB1cCB0byB0aGUgYm90dG9tIG9mIHRoZSBjb250ZW50IHJlY3RcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHZlcnRpY2FsT2Zmc2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdFZpc2liaWxpdHkob2Zmc2V0OiBDbHJQb3BvdmVyQ29udGVudE9mZnNldCwgY29udGVudDogQ2xpZW50UmVjdCk6IENsclZpZXdwb3J0VmlvbGF0aW9uW10ge1xuICBjb25zdCB2aW9sYXRpb25zOiBDbHJWaWV3cG9ydFZpb2xhdGlvbltdID0gW107XG4gIGNvbnN0IG1vY2tDb29yZHM6IENsclZpc2liaWxpdHlDb29yZHMgPSB7XG4gICAgYm90dG9tOiBvZmZzZXQueU9mZnNldCArIGNvbnRlbnQuaGVpZ2h0LFxuICAgIGxlZnQ6IG9mZnNldC54T2Zmc2V0LFxuICAgIHJpZ2h0OiBvZmZzZXQueE9mZnNldCArIGNvbnRlbnQud2lkdGgsXG4gICAgdG9wOiBvZmZzZXQueU9mZnNldCxcbiAgfTtcblxuICBpZiAoIShtb2NrQ29vcmRzLnRvcCA+PSAwKSkge1xuICAgIHZpb2xhdGlvbnMucHVzaChDbHJWaWV3cG9ydFZpb2xhdGlvbi5UT1ApO1xuICB9XG4gIGlmICghKG1vY2tDb29yZHMubGVmdCA+PSAwKSkge1xuICAgIHZpb2xhdGlvbnMucHVzaChDbHJWaWV3cG9ydFZpb2xhdGlvbi5MRUZUKTtcbiAgfVxuICBpZiAoIShtb2NrQ29vcmRzLmJvdHRvbSA8PSAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKSkge1xuICAgIHZpb2xhdGlvbnMucHVzaChDbHJWaWV3cG9ydFZpb2xhdGlvbi5CT1RUT00pO1xuICB9XG4gIGlmICghKG1vY2tDb29yZHMucmlnaHQgPD0gKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkpKSB7XG4gICAgdmlvbGF0aW9ucy5wdXNoKENsclZpZXdwb3J0VmlvbGF0aW9uLlJJR0hUKTtcbiAgfVxuXG4gIHJldHVybiB2aW9sYXRpb25zO1xufVxuIl19
@@ -1,8 +1,7 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
- *
6
5
  */
7
6
  import { Injectable, Renderer2, Inject } from '@angular/core';
8
7
  import { ClrPopoverToggleService } from './popover-toggle.service';
@@ -156,4 +155,4 @@ ClrPopoverEventsService.ctorParameters = () => [
156
155
  { type: ClrPopoverToggleService },
157
156
  { type: HTMLDocument, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
158
157
  ];
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQWMsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFjLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyx5RUFBeUU7QUFDekUsZUFBZTtBQUVmLE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFDVSxRQUFtQixFQUNuQixnQkFBeUMsRUFDdkIsUUFBc0I7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFUM0Msc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBR3BCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU96QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xELHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUdNLGlCQUFpQjtRQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2lCQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2lCQUN0RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsNkRBQTZEO1lBQzdELHdEQUF3RDtZQUN4RCw4REFBOEQ7WUFDOUQsaUZBQWlGO1lBQ2pGLG9DQUFvQztZQUNwQyxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTyxtQ0FBbUMsQ0FBQyxLQUFZO1FBQ3RELDJEQUEyRDtRQUMzRCxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUV6Qyx1RkFBdUY7UUFDdkYsT0FBTyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTtZQUNwRSxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztTQUMvQjtRQUVELDBFQUEwRTtRQUMxRSw2R0FBNkc7UUFDN0cscUJBQXFCO1FBQ3JCLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNwQixtRkFBbUY7WUFDbkYsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN4RTthQUFNO1lBQ0wscURBQXFEO1lBQ3JELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDOUYsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDL0IseUZBQXlGO29CQUN6RixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNuQyw2RkFBNkY7b0JBQzdGLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO29CQUNuRCxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ3hCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO2dCQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFHTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtZQUMvRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUdELElBQVcsZUFBZSxDQUFDLEdBQWU7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFHRCxJQUFXLGNBQWMsQ0FBQyxHQUFlO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFHRCxJQUFXLFVBQVUsQ0FBQyxJQUFnQjtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBSU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7WUFqS0YsVUFBVTs7O1lBUnNCLFNBQVM7WUFDakMsdUJBQXVCO1lBa0JRLFlBQVksdUJBQS9DLE1BQU0sU0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqXG4gKi9cblxuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjAzNTEjaXNzdWVjb21tZW50LTM0NDAwOTg4N1xuLyoqIEBkeW5hbWljICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgb3V0c2lkZUNsaWNrQ2xvc2UgPSB0cnVlO1xuICBwdWJsaWMgc2Nyb2xsVG9DbG9zZSA9IHRydWU7XG4gIHByaXZhdGUgZG9jdW1lbnRDbGlja0xpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgaWdub3JlZEV2ZW50OiBhbnk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBzbWFydE9wZW5TZXJ2aWNlOiBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBIVE1MRG9jdW1lbnRcbiAgKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBzbWFydE9wZW5TZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKG9wZW4gPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgIHRoaXMuYWRkRXNjYXBlTGlzdGVuZXIoKTtcbiAgICAgICAgICB0aGlzLmFkZENsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICB0aGlzLmFkZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHNtYXJ0T3BlblNlcnZpY2UuZ2V0RXZlbnRDaGFuZ2UoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAvLyBSZW1lbWJlciB0aGUgZXZlbnQgdGhhdCB3YXMgdXNlZCB0byBvcGVuIHRoZSBjb250ZW50XG4gICAgICAgIHRoaXMuaWdub3JlZEV2ZW50ID0gZXZlbnQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgYWRkU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsVG9DbG9zZSkge1xuICAgICAgdGhpcy5kb2N1bWVudFNjcm9sbGVyID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsICdzY3JvbGwnLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbiA9IHRoaXMuZG9jdW1lbnRTY3JvbGxlclxuICAgICAgICAucGlwZShmaWx0ZXIodGhpcy50ZXN0Rm9yU21hcnRQb3BvdmVyQ29udGVudENvbnRhaW5lcikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZXRBbmNob3JGb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSSB0aGluayB0aGlzIGlzIHdoZXJlIGR5bmFtaWMgcmUtcG9zaXRpb25pbmcgd2lsbCBiZSBhZGRlZFxuICAgICAgLy8gSW5zdGVhZCBvZiB0ZXN0aW5nIGxpa2Ugd2UgZG8gaW4gdGhlIGNsb3NlIHBpcGUgYmVsb3dcbiAgICAgIC8vIHdlIG5lZWQgdG8gc3dpdGNoIHBvc2l0aW9uaW5nIHRvIHVzZSBhbiBvYnNlcnZhYmxlIGFuZCB0aGVuXG4gICAgICAvLyBkZWJvdW5jZSB0aGUgc2Nyb2xsIGV2ZW50cyB0byByZWNhbGN1bGF0ZSBjb250ZW50IHBvc2l0aW9uIGluIGEgcGVyZm9ybWFudCB3YXlcbiAgICAgIC8vIEZvciBub3csIGlnbm9yZSBzY3JvbGxpbmcgZXZlbnRzLlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudFNjcm9sbGVyKSB7XG4gICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgZGVsZXRlIHRoaXMuZG9jdW1lbnRTY3JvbGxlcjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRlc3RGb3JTbWFydFBvcG92ZXJDb250ZW50Q29udGFpbmVyKGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIC8vIEZpbHRlciBmb3IgdGhlIGRvY3VtZW50U2Nyb2xsZXIgb2JzZXJ2YWJsZSBldmVudCB0YXJnZXRzXG4gICAgbGV0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8vIFdhbGsgdXAgdGhlIERPTSB0cmVlIHVudGlsIHdlIGdldCB0byB0aGUgZWxlbWVudCB0aGF0IGlzIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSBib2R5LlxuICAgIHdoaWxlICh0YXJnZXQuY2xhc3NMaXN0ICYmIHRhcmdldC5wYXJlbnRFbGVtZW50LmxvY2FsTmFtZSAhPT0gJ2JvZHknKSB7XG4gICAgICB0YXJnZXQgPSB0YXJnZXQucGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyBUYXJnZXQgaXMgdGhlIGNoaWxkIGVsZW1lbnQgb2YgYm9keSB3aGVyZSB0aGUgc2Nyb2xsIGV2ZW50cyBvcmlnaW5hdGVkLlxuICAgIC8vIFJldHVybiBmYWxzZSBhbmQgcHJldmVudCB0aGUgcG9wb3ZlciBjb250ZW50IGNvbnRhaW5lciBmcm9tIGNsb3NpbmcgZm9yIGFueSBzY3JvbGwgZXZlbnRzIGluc2lkZSBhIHBvcG92ZXJcbiAgICAvLyBjb250ZW50IGNvbnRhaW5lci5cbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdCkge1xuICAgICAgLy8gY2hlY2sgc2Nyb2xsIGV2ZW50cyB0byBzZWUgaWYgdGhleSBhcmUgaGFwcGVuaW5nIGluIHBvcG92ZXIgY29udGVudCBvciBlbHNld2hlcmVcbiAgICAgIHJldHVybiB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbHItcG9wb3Zlci1jb250ZW50JykgPyBmYWxzZSA6IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHByZXZlbnRzIGl0IGZyb20gY2xvc2luZyByaWdodCBhZnRlciBmaXJzdCBvcGVuaW5nXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZENsaWNrTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMub3V0c2lkZUNsaWNrQ2xvc2UpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudCA9PT0gdGhpcy5pZ25vcmVkRXZlbnQpIHtcbiAgICAgICAgICAvLyBIZXJlIHdlIGlnbm9yZSB0aGUgb3BlbmluZyBjbGljayBldmVudCAody9vIHRoaXMgY29udGVudCBvcGVucyBhbmQgaW1tZWRpYXRlbHkgY2xvc2VzLlxuICAgICAgICAgIGRlbGV0ZSB0aGlzLmlnbm9yZWRFdmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbiA9IGZhbHNlO1xuICAgICAgICAgIC8vIFJhdGhlciB0aGFuIGEgY29tcGxleCBjaGFuZ2UgdG8gdGhlIGZvY3VzIHRyYXAgSSBwdXQgZm9jdXMgb24gdGhlIGVsZW1lbnQgdGhhdCB3YXMgY2xpY2tlZFxuICAgICAgICAgIGNvbnN0IGNsaWNrZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGNsaWNrZWRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDbGlja0xpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLm91dHNpZGVDbGlja0Nsb3NlKSB7XG4gICAgICBkZWxldGUgdGhpcy5pZ25vcmVkRXZlbnQ7XG4gICAgICBpZiAodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXNjYXBlTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHB1YmxpYyBhZGRFc2NhcGVMaXN0ZW5lcigpIHtcbiAgICB0aGlzLmVzY2FwZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2tleWRvd24uZXNjYXBlJywgKCkgPT4ge1xuICAgICAgdGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0QW5jaG9yRm9jdXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVFc2NhcGVMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5lc2NhcGVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lc2NhcGVMaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMuZXNjYXBlTGlzdGVuZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYW5jaG9yQnV0dG9uUmVmOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgc2V0IGFuY2hvckJ1dHRvblJlZihyZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9hbmNob3JCdXR0b25SZWYgPSByZWY7XG4gIH1cbiAgcHVibGljIGdldCBhbmNob3JCdXR0b25SZWYoKTogRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuX2FuY2hvckJ1dHRvblJlZjtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlQnV0dG9uUmVmOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgc2V0IGNsb3NlQnV0dG9uUmVmKHJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuX2Nsb3NlQnV0dG9uUmVmID0gcmVmO1xuICB9XG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b25SZWYoKTogRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlQnV0dG9uUmVmO1xuICB9XG5cbiAgcHVibGljIHNldENsb3NlRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VCdXR0b25SZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEFuY2hvckZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG4gIHB1YmxpYyBzZXQgY29udGVudFJlZihob3N0OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5fY29udGVudFJlZiA9IGhvc3Q7XG4gIH1cbiAgcHVibGljIGdldCBjb250ZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBkb2N1bWVudFNjcm9sbGVyOiBPYnNlcnZhYmxlPEV2ZW50PjtcblxuICBwcml2YXRlIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMucmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXIoKTtcbiAgICB0aGlzLnJlbW92ZUVzY2FwZUxpc3RlbmVyKCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBYyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQWMsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLHlFQUF5RTtBQUN6RSxlQUFlO0FBRWYsTUFBTSxPQUFPLHVCQUF1QjtJQU9sQyxZQUNVLFFBQW1CLEVBQ25CLGdCQUF5QyxFQUN2QixRQUFzQjtRQUZ4QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQVQzQyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHcEIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBT3pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFD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QzFCLENBQUM7SUFDRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFJTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7OztZQWpLRixVQUFVOzs7WUFSc0IsU0FBUztZQUNqQyx1QkFBdUI7WUFrQlEsWUFBWSx1QkFBL0MsTUFBTSxTQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIFJlbmRlcmVyMiwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9wb3BvdmVyLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwMzUxI2lzc3VlY29tbWVudC0zNDQwMDk4ODdcbi8qKiBAZHluYW1pYyAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIG91dHNpZGVDbGlja0Nsb3NlID0gdHJ1ZTtcbiAgcHVibGljIHNjcm9sbFRvQ2xvc2UgPSB0cnVlO1xuICBwcml2YXRlIGRvY3VtZW50Q2xpY2tMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHVibGljIGlnbm9yZWRFdmVudDogYW55O1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc21hcnRPcGVuU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogSFRNTERvY3VtZW50XG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgc21hcnRPcGVuU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShvcGVuID0+IHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICB0aGlzLmFkZEVzY2FwZUxpc3RlbmVyKCk7XG4gICAgICAgICAgdGhpcy5hZGRDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzbWFydE9wZW5TZXJ2aWNlLmdldEV2ZW50Q2hhbmdlKCkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgLy8gUmVtZW1iZXIgdGhlIGV2ZW50IHRoYXQgd2FzIHVzZWQgdG8gb3BlbiB0aGUgY29udGVudFxuICAgICAgICB0aGlzLmlnbm9yZWRFdmVudCA9IGV2ZW50O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGFkZFNjcm9sbExpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLnNjcm9sbFRvQ2xvc2UpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTY3JvbGxlciA9IGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnc2Nyb2xsJywgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSB0aGlzLmRvY3VtZW50U2Nyb2xsZXJcbiAgICAgICAgLnBpcGUoZmlsdGVyKHRoaXMudGVzdEZvclNtYXJ0UG9wb3ZlckNvbnRlbnRDb250YWluZXIpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2V0QW5jaG9yRm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEkgdGhpbmsgdGhpcyBpcyB3aGVyZSBkeW5hbWljIHJlLXBvc2l0aW9uaW5nIHdpbGwgYmUgYWRkZWRcbiAgICAgIC8vIEluc3RlYWQgb2YgdGVzdGluZyBsaWtlIHdlIGRvIGluIHRoZSBjbG9zZSBwaXBlIGJlbG93XG4gICAgICAvLyB3ZSBuZWVkIHRvIHN3aXRjaCBwb3NpdGlvbmluZyB0byB1c2UgYW4gb2JzZXJ2YWJsZSBhbmQgdGhlblxuICAgICAgLy8gZGVib3VuY2UgdGhlIHNjcm9sbCBldmVudHMgdG8gcmVjYWxjdWxhdGUgY29udGVudCBwb3NpdGlvbiBpbiBhIHBlcmZvcm1hbnQgd2F5XG4gICAgICAvLyBGb3Igbm93LCBpZ25vcmUgc2Nyb2xsaW5nIGV2ZW50cy5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRTY3JvbGxlcikge1xuICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmRvY3VtZW50U2Nyb2xsZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0ZXN0Rm9yU21hcnRQb3BvdmVyQ29udGVudENvbnRhaW5lcihldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBGaWx0ZXIgZm9yIHRoZSBkb2N1bWVudFNjcm9sbGVyIG9ic2VydmFibGUgZXZlbnQgdGFyZ2V0c1xuICAgIGxldCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvLyBXYWxrIHVwIHRoZSBET00gdHJlZSB1bnRpbCB3ZSBnZXQgdG8gdGhlIGVsZW1lbnQgdGhhdCBpcyBhIGRpcmVjdCBjaGlsZCBvZiB0aGUgYm9keS5cbiAgICB3aGlsZSAodGFyZ2V0LmNsYXNzTGlzdCAmJiB0YXJnZXQucGFyZW50RWxlbWVudC5sb2NhbE5hbWUgIT09ICdib2R5Jykge1xuICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLy8gVGFyZ2V0IGlzIHRoZSBjaGlsZCBlbGVtZW50IG9mIGJvZHkgd2hlcmUgdGhlIHNjcm9sbCBldmVudHMgb3JpZ2luYXRlZC5cbiAgICAvLyBSZXR1cm4gZmFsc2UgYW5kIHByZXZlbnQgdGhlIHBvcG92ZXIgY29udGVudCBjb250YWluZXIgZnJvbSBjbG9zaW5nIGZvciBhbnkgc2Nyb2xsIGV2ZW50cyBpbnNpZGUgYSBwb3BvdmVyXG4gICAgLy8gY29udGVudCBjb250YWluZXIuXG4gICAgaWYgKHRhcmdldC5jbGFzc0xpc3QpIHtcbiAgICAgIC8vIGNoZWNrIHNjcm9sbCBldmVudHMgdG8gc2VlIGlmIHRoZXkgYXJlIGhhcHBlbmluZyBpbiBwb3BvdmVyIGNvbnRlbnQgb3IgZWxzZXdoZXJlXG4gICAgICByZXR1cm4gdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY2xyLXBvcG92ZXItY29udGVudCcpID8gZmFsc2UgOiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBwcmV2ZW50cyBpdCBmcm9tIGNsb3NpbmcgcmlnaHQgYWZ0ZXIgZmlyc3Qgb3BlbmluZ1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRDbGlja0xpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLm91dHNpZGVDbGlja0Nsb3NlKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsICdjbGljaycsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgPT09IHRoaXMuaWdub3JlZEV2ZW50KSB7XG4gICAgICAgICAgLy8gSGVyZSB3ZSBpZ25vcmUgdGhlIG9wZW5pbmcgY2xpY2sgZXZlbnQgKHcvbyB0aGlzIGNvbnRlbnQgb3BlbnMgYW5kIGltbWVkaWF0ZWx5IGNsb3Nlcy5cbiAgICAgICAgICBkZWxldGUgdGhpcy5pZ25vcmVkRXZlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAvLyBSYXRoZXIgdGhhbiBhIGNvbXBsZXggY2hhbmdlIHRvIHRoZSBmb2N1cyB0cmFwIEkgcHV0IGZvY3VzIG9uIHRoZSBlbGVtZW50IHRoYXQgd2FzIGNsaWNrZWRcbiAgICAgICAgICBjb25zdCBjbGlja2VkRWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBjbGlja2VkRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2xpY2tMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5vdXRzaWRlQ2xpY2tDbG9zZSkge1xuICAgICAgZGVsZXRlIHRoaXMuaWdub3JlZEV2ZW50O1xuICAgICAgaWYgKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgYWRkRXNjYXBlTGlzdGVuZXIoKSB7XG4gICAgdGhpcy5lc2NhcGVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsICdrZXlkb3duLmVzY2FwZScsICgpID0+IHtcbiAgICAgIHRoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEFuY2hvckZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRXNjYXBlTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuZXNjYXBlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZXNjYXBlTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmVzY2FwZUxpc3RlbmVyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FuY2hvckJ1dHRvblJlZjogRWxlbWVudFJlZjtcbiAgcHVibGljIHNldCBhbmNob3JCdXR0b25SZWYocmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5fYW5jaG9yQnV0dG9uUmVmID0gcmVmO1xuICB9XG4gIHB1YmxpYyBnZXQgYW5jaG9yQnV0dG9uUmVmKCk6IEVsZW1lbnRSZWYge1xuICAgIHJldHVybiB0aGlzLl9hbmNob3JCdXR0b25SZWY7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZUJ1dHRvblJlZjogRWxlbWVudFJlZjtcbiAgcHVibGljIHNldCBjbG9zZUJ1dHRvblJlZihyZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9jbG9zZUJ1dHRvblJlZiA9IHJlZjtcbiAgfVxuICBwdWJsaWMgZ2V0IGNsb3NlQnV0dG9uUmVmKCk6IEVsZW1lbnRSZWYge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZUJ1dHRvblJlZjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDbG9zZUZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBbmNob3JGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9jb250ZW50UmVmOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgc2V0IGNvbnRlbnRSZWYoaG9zdDogRWxlbWVudFJlZikge1xuICAgIHRoaXMuX2NvbnRlbnRSZWYgPSBob3N0O1xuICB9XG4gIHB1YmxpYyBnZXQgY29udGVudFJlZigpOiBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgZG9jdW1lbnRTY3JvbGxlcjogT2JzZXJ2YWJsZTxFdmVudD47XG5cbiAgcHJpdmF0ZSByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyKCk7XG4gICAgdGhpcy5yZW1vdmVFc2NhcGVMaXN0ZW5lcigpO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,7 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
- *
6
5
  */
7
6
  import { isPlatformBrowser } from '@angular/common';
8
7
  import { Injectable, PLATFORM_ID, Inject } from '@angular/core';
@@ -210,4 +209,4 @@ ClrPopoverPositionService.ctorParameters = () => [
210
209
  { type: ClrPopoverEventsService },
211
210
  { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
212
211
  ];
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSW5FLE9BQU8sRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUczQyxNQUFNLE9BQU8seUJBQXlCO0lBb0JwQyxZQUFvQixZQUFxQyxFQUE4QixVQUFlO1FBQWxGLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUE4QixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBZDlGLG1CQUFjLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdEQsa0JBQWEsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQWFvQyxDQUFDO0lBWDFHLE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUE0QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJ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QUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNoSCxNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxNQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7OztZQXZPRixVQUFVOzs7WUFSRix1QkFBdUI7NENBNkI4QixNQUFNLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKlxuICovXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9wb3BvdmVyLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvcG92ZXItY29udGVudC1vZmZzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclZpZXdwb3J0VmlvbGF0aW9uIH0gZnJvbSAnLi4vZW51bXMvdmlld3BvcnQtdmlvbGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgYWxpZ24sIGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudCwgZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRlc3RWaXNpYmlsaXR5IH0gZnJvbSAnLi4vcG9zaXRpb24tb3BlcmF0b3JzJztcbmltcG9ydCB7IENsckF4aXMgfSBmcm9tICcuLi9lbnVtcy9heGlzLmVudW0nO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xyUG9wb3ZlclBvc2l0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgY3VycmVudEFuY2hvckNvb3JkczogQ2xpZW50UmVjdDtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGVudENvb3JkczogQ2xpZW50UmVjdDtcbiAgcHJpdmF0ZSBjb250ZW50T2Zmc2V0czogQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQ7XG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb247XG5cbiAgcHJpdmF0ZSBfc2hvdWxkUmVhbGlnbjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHNob3VsZFJlYWxpZ246IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl9zaG91bGRSZWFsaWduLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHJlYWxpZ24oKSB7XG4gICAgdGhpcy5fc2hvdWxkUmVhbGlnbi5uZXh0KCk7XG4gIH1cblxuICBzZXQgcG9zaXRpb24ocG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbikge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cbiAgZ2V0IHBvc2l0aW9uKCk6IENsclBvcG92ZXJQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudFNlcnZpY2U6IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwdWJsaWMgcGxhdGZvcm1JZDogYW55KSB7fVxuXG4gIHB1YmxpYyBhbGlnbkNvbnRlbnQoY29udGVudDogSFRNTEVsZW1lbnQpOiBDbHJQb3BvdmVyQ29udGVudE9mZnNldCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAvLyBPbmx5IHBvc2l0aW9uIHdoZW4gaW4gYSBicm93c2VyLlxuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgYnJvd3NlciBvcmlnaW4gYW5kIHByZXZlbnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gcnVubmluZy5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHhPZmZzZXQ6IDAsXG4gICAgICAgIHlPZmZzZXQ6IDAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyA9IHRoaXMuZXZlbnRTZXJ2aWNlLmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMgPSBjb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbih0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuXG4gICAgY29uc3QgdmlzaWJpbGl0eVZpb2xhdGlvbnM6IENsclZpZXdwb3J0VmlvbGF0aW9uW10gPSB0ZXN0VmlzaWJpbGl0eSh0aGlzLmNvbnRlbnRPZmZzZXRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGUgdGhlIHN1bSBvZiB2aWV3cG9ydCBlcnJvcnMuIFRoaXMgY2FsY3VsYXRpb24gaXMgdXNlZCBiZWxvdyB3aXRoIHRoZSBwcm92aWRlZCBBeGlzIGluIHRoZSBnaXZlblxuICAgICAqIENsclBvcG92ZXJQb3NpdGlvbi4gSXRzIHdvcnRoIHB1dHRpbmcgdGhlIENsclZpZXdwb3J0VmlvbGF0aW9uIGVudW0gdmFsdWVzIGhlcmU6XG4gICAgICpcbiAgICAgKiAgIEJPVFRPTSA9IDAsXG4gICAgICogICBMRUZUID0gMSxcbiAgICAgKiAgIFJJR0hUID0gMixcbiAgICAgKiAgIFRPUCA9IDMsXG4gICAgICpcbiAgICAgKiAgIFNvLCB0aGlzLnZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCB0ZWxscyB1cyBob3cgbWFueSBzaWRlcyBvZiB0aGUgdmlld3BvcnQgdGhhdCB0aGUgcG9wb3ZlciBjb250ZW50IHdhc1xuICAgICAqICAgY2xpcHBlZCBvbi4gV2UgY2FuIG9ubHkgaGVscCB3aGVuIHRoZSBjb250ZW50IGhhcyBhbiBpc3N1ZSBvbiBvbmUgb3IgdHdvIHNpZGVzLlxuICAgICAqICAgZXJyb3JTdW0gaXMgY2FsY3VsYXRlZCB0byBkZXRlcm1pbmUgX2hvd18gdG8gY2hhbmdlIHRoZSBwb3NpdGlvbi4gTG9va2luZyBhdCBib3RoIHRoZSBheGlzIGFuZCB0aGUgbnVtYmVyXG4gICAgICogICBvZiB2aW9sYXRpb25zIEkgY2FuIHVzZSB0aGUgZXJyb3JTdW0gdG8gZGV0ZXJtaW5lIGhvdyB0byB0cmFuc2Zvcm0gdGhlIHBvc2l0aW9uIChvbiB0aGUgZmx5KSBhbmQgYWRqdXN0XG4gICAgICogICB3aGVyZSBpdCBjYW4gYmUgaW1wcm92ZWQuXG4gICAgICpcbiAgICAgKiAgIE5vdGUsIG1vcmUgdGhhbiAzIHZpZXdwb3J0IHZpb2xhdGlvbnMgYW5kIHRoZXJlIGlzbid0IGFueXRoaW5nIHdlIGNhbiBkbyB0byBoZWxwLiBBbHNvIHdoZW4gdGhlcmUgYXJlIHR3b1xuICAgICAqICAgdmlvbGF0aW9ucywgd2UgY2FuJ3QgaGVscCBpZiB0aGUgdmlvbGF0aW9ucyBhcmUgVE9QK0JPVFRPTSB8fCBMRUZUK1JJR0hUID0+IFRoZXJlIGlzIG5vIHRyYW5zZm9ybWF0aW9uIHdlXG4gICAgICogICBjYW4gbWFrZSB0byB0aGUgcG9zdGlvbiB0aGF0IHdpbGwgaGVscC5cbiAgICAgKlxuICAgICAqICAgU29tZSBleGFtcGxlczpcbiAgICAgKiAgIFRoZXJlIGlzIG9ubHkgb25lIGVycm9yIGFuZCBQcmltYXJ5IGF4aXMgaXMgVkVSVElDQUxcbiAgICAgKiAgIC0gdGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNPbmVWaW9sYXRpb24gaGFzIGEgc3dpdGNoIHRoYXQgd2lsbCB1c2UgdGhlIGVycm9yIHN1bSB0byBhcHBseSB0aGUgY29ycmVjdFxuICAgICAqICAgdHJhbnNmb3JtIHRvIHRoZSBwb3N0aW9uIGJhc2VkIG9uIHRoZSByZWR1Y3Rpb24gb2YgdmlzaWJpbGl0eVZpb2xhdGlvbnMuXG4gICAgICpcbiAgICAgKiAgIFRoZXJlIGFyZSB0d28gZXJyb3JzIGFuZCBQcmltYXJ5IGF4aXMgaXMgSE9SSVpPTlRBTFxuICAgICAqICAgLSBoYW5kbGVIb3Jpem9udGFsQXhpc1R3b1Zpb2xhdGlvbnMgaGFzIGEgc3dpdGNoIHRoYXQgdXNlcyB0aGUgZXJyb3Igc3VtIHRvIGFwcGx5IGJvdGggdHJhbnNmb3JtcyBuZWVkZWQgdG9cbiAgICAgKiAgIGltcHJvdmUgdGhlIGNvbnRlbnQgcG9zaXRpb24gYmFzZWQgb24gdGhlIHJlZHVjdGlvbiBvZiB2aXNpYmlsaXR5VmlvbGF0aW9ucy5cbiAgICAgKi9cblxuICAgIGNvbnN0IGVycm9yU3VtID0gdmlzaWJpbGl0eVZpb2xhdGlvbnMucmVkdWNlKChjb3VudCwgY3VycmVudCkgPT4ge1xuICAgICAgcmV0dXJuIGNvdW50ICsgY3VycmVudDtcbiAgICB9LCAwKTtcblxuICAgIGlmICh2aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgdGhpcy5wb3NpdGlvbi5heGlzID09PSBDbHJBeGlzLlZFUlRJQ0FMKSB7XG4gICAgICAvLyBXaGVuIHByaW1hcnkgYXhpcyBpcyBWRVJUSUNBTCBhbmQgdGhlcmUgaXMgb25lIHZpZXdwb3J0IHZpb2xhdGlvblxuICAgICAgdGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNPbmVWaW9sYXRpb24oZXJyb3JTdW0pO1xuICAgIH0gZWxzZSBpZiAodmlzaWJpbGl0eVZpb2xhdGlvbnMubGVuZ3RoID09PSAxICYmIHRoaXMucG9zaXRpb24uYXhpcyA9PT0gQ2xyQXhpcy5IT1JJWk9OVEFMKSB7XG4gICAgICAvLyBXaGVuIHByaW1hcnkgYXhpcyBpcyBIT1JJWk9OVEFMIGFuZCB0aGVyZSBpcyBvbmUgdmlld3BvcnQgdmlvbGF0aW9uXG4gICAgICB0aGlzLmhhbmRsZUhvcml6b250YWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtKTtcbiAgICB9IGVsc2UgaWYgKHZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCA9PT0gMiAmJiB0aGlzLnBvc2l0aW9uLmF4aXMgPT09IENsckF4aXMuVkVSVElDQUwpIHtcbiAgICAgIC8vIFdoZW4gcHJpbWFyeSBheGlzIGlzIFZFUlRJQ0FMIGFuZCB0aGVyZSBhcmUgdHdvIHZpZXdwb3J0IHZpb2xhdGlvbnNcbiAgICAgIHRoaXMuaGFuZGxlVmVydGljYWxBeGlzVHdvVmlvbGF0aW9ucyhlcnJvclN1bSk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggPT09IDIgJiYgdGhpcy5wb3NpdGlvbi5heGlzID09PSBDbHJBeGlzLkhPUklaT05UQUwpIHtcbiAgICAgIC8vIFdoZW4gcHJpbWFyeSBheGlzIGlzIEhPUklaT05UQUwgYW5kIHRoZXJlIGFyZSB0d28gdmlld3BvcnQgdmlvbGF0aW9uc1xuICAgICAgdGhpcy5oYW5kbGVIb3Jpem9udGFsQXhpc1R3b1Zpb2xhdGlvbnMoZXJyb3JTdW0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250ZW50T2Zmc2V0cztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApIG9yIFRPUCgzKSBhcmUgcHJpbWFyeSB2aW9sYXRpb25zIGFuZCB3ZSBjYW4ganVzdCBmbGlwIHNpZGVzXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihmbGlwU2lkZXModGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIC8vIExFRlQoMSkgaXMgc2Vjb25kYXJ5IGFuZCBuZWVkcyB0byBudWRnZSBjb250ZW50IHJpZ2h0XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihudWRnZUNvbnRlbnQodGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIFJJR0hUKDIpIGlzIHNlY29uZGFyeSBhbmQgIG5lZWRzIHRvIG51ZGdlIGNvbnRlbnQgbGVmdFxuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgbnVkZ2VDb250ZW50KHRoaXMucG9zaXRpb24sIHRydWUpLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoZXJyb3JTdW06IG51bWJlcik6IHZvaWQge1xuICAgIHN3aXRjaCAoZXJyb3JTdW0pIHtcbiAgICAgIC8vIFdlIGtub3cgdGhlcmUgYXJlIHR3byB2aW9sYXRpb25zLiBXZSBjYW4gdXNlIHRoZSBlcnJvclN1bSB0byBkZXRlcm1pbmUgd2hpY2ggY29tYmluYXRpb24gb2Ygc2lkZXMgd2VyZVxuICAgICAgLy8gdmlvbGF0ZWQgYW5kIGhhbmRsZSBhcHByb3ByaWF0ZWx5LlxuICAgICAgY2FzZSA1OiB7XG4gICAgICAgIC8vIFRPUCgzKStSSUdIVCgyKSBpcyBjYXNlIDUuIFdlIG5lZWQgdG8gZmxpcCBzaWRlcyBhbmQgbnVkZ2UgdGhlIGNvbnRlbnQgdG8gdGhlIGxlZnRcbiAgICAgICAgY29uc3QgZmxpcEFuZE51ZGdlTGVmdCA9IGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwU2lkZXMsIG51ZGdlQ29udGVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VMZWZ0KHRoaXMucG9zaXRpb24pLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSA0OiB7XG4gICAgICAgIC8vVE9QKDMpK0xFRlQoMSkgaXMgY2FzZSA0LCB3ZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIGNvbnRlbnQgdG8gdGhlIHJpZ2h0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZVJpZ2h0ID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VSaWdodCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMzoge1xuICAgICAgICAvLyBUT1AoMykrQk9UVE9NKDApIHx8IGxlZnQoMSkrUklHSFQoMikgaXMgY2FzZSAzLiBUaGVyZSBpcyBub3RoaW5nIHdlIGNhbiBkbyBwb3NpdGlvbiB3aXNlIHRvIGltcHJvdmUgdGhlXG4gICAgICAgIC8vIHBsYWNlbWVudCBmb3IgdGhpcyBjb250ZW50LlxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvLyBCT1RUT00oMCkrUklHSFQoMikgaXMgY2FzZSAyLiBXZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIHRoZSBjb250ZW50IHRvIHRoZSBsZWZ0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZUxlZnQgPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlTGVmdCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMToge1xuICAgICAgICAvLyBCT1RUT00oMCkrTEVGVCgxKSBpcyBjYXNlIDEuIFdlIG5lZWQgdG8gZmxpcCBzaWRlcyBhbmQgbnVkZ2UgdG8gdGhlIHJpZ2h0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZVJpZ2h0ID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VSaWdodCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbihlcnJvclN1bTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoIChlcnJvclN1bSkge1xuICAgICAgY2FzZSAxOlxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIExFRlQoMSkgYW5kIFJJR0hUKDIpIGFyZSBwcmltYXJ5IHZpb2xhdGlvbnMgc28gd2UgY2FuIGZsaXAgc2lkZXNcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKGZsaXBTaWRlcyh0aGlzLnBvc2l0aW9uKSwgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDA6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApIGlzIGEgc2Vjb25kYXJ5IHZpb2xhdGlvbiBhbmQgd2UgbmVlZCB0byBudWRnZSBjb250ZW50IHVwXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBudWRnZUNvbnRlbnQodGhpcy5wb3NpdGlvbiwgdHJ1ZSksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gVE9QKDMpIGlzIGEgc2Vjb25kYXJ5IHZpb2xhdGlvbiBhbmQgd2UgbmVlZCB0byBudWRnZSBjb250ZW50IGRvd25cbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKG51ZGdlQ29udGVudCh0aGlzLnBvc2l0aW9uKSwgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSG9yaXpvbnRhbEF4aXNUd29WaW9sYXRpb25zKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDQ6IHtcbiAgICAgICAgLy8gVE9QKDMpK0xFRlQoMSkgaXMgY2FzZSA0LlxuICAgICAgICAvLyBUT1AoMykrUklHSFQoMikgaXMgY2FzZSA1LlxuICAgICAgICAvLyBJbiBib3RoIG9mIHRoZXNlIGNhc2VzIHdlIG5lZWQgdG8gZmxpcCBzaWRlcyBhbmQgbnVkZ2UgY29udGVudCBkb3duXG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZURvd24gPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKFxuICAgICAgICAgIGZsaXBBbmROdWRnZURvd24odGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gVE9QKDMpK0JPVFRPTSgwKSB8fCBsZWZ0KDEpK1JJR0hUKDIpIGlzIGNhc2UgMy4gVGhlcmUgaXMgbm90aGluZyB3ZSBjYW4gZG8gcG9zaXRpb24gd2lzZSB0byBpbXByb3ZlIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQgZm9yIHRoaXMgY29udGVudC5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDI6XG4gICAgICBjYXNlIDE6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApK1JJR0hUKDIpIGlzIGNhc2UgMi5cbiAgICAgICAgLy8gQk9UVE9NKDApK0xFRlQoMSkgaXMgY2FzZSAxLlxuICAgICAgICAvLyBJbiBib3RoIGNhc2VzIHdlICBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIGNvbnRlbnQgdXBcbiAgICAgICAgY29uc3QgZmxpcEFuZE51ZGdlVXAgPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oZmxpcEFuZE51ZGdlVXAodGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJbkUsT0FBTyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFvQnBDLFlBQW9CLFlBQXFDLEVBQThCLFVBQWU7UUFBbEYsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQThCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFkOUYsbUJBQWMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN0RCxrQkFBYSxHQUFxQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBYW9DLENBQUM7SUFYMUcsT0FBTztRQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQTRCO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUlNLFlBQVksQ0FBQyxPQUFvQjtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3ZDLG1DQUFtQztZQUNuQyxnRkFBZ0Y7WUFDaEYsT0FBTztnQkFDTCxPQUFPLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsQ0FBQzthQUNYLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNuRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFaEcsTUFBTSxvQkFBb0IsR0FBMkIsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQTJCRztRQUVILE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM5RCxPQUFPLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDekIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDaEYsb0VBQW9FO1lBQ3BFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQzthQUFNLElBQUksb0JBQW9CLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3pGLHNFQUFzRTtZQUN0RSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakQ7YUFBTSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN2RixzRUFBc0U7WUFDdEUsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDekYsd0VBQXdFO1lBQ3hFLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsRDtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRU8sOEJBQThCLENBQUMsUUFBZ0I7UUFDckQsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLHdFQUF3RTtnQkFDeEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQzNHLE1BQU07YUFDUDtZQUNELEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ04sd0RBQXdEO2dCQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDOUcsTUFBTTthQUNQO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTix5REFBeUQ7Z0JBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUN6QixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7Z0JBQ0YsTUFBTTthQUNQO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsTUFBTTthQUNQO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sK0JBQStCLENBQUMsUUFBZ0I7UUFDdEQsUUFBUSxRQUFRLEVBQUU7WUFDaEIseUdBQXlHO1lBQ3pHLHFDQUFxQztZQUNyQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLHFGQUFxRjtnQkFDckYsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FDekIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQztnQkFDRixNQUFNO2FBQ1A7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLGdGQUFnRjtnQkFDaEYsTUFBTSxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FDekIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUNoQyxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQztnQkFDRixNQUFNO2FBQ1A7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLDBHQUEwRztnQkFDMUcsOEJBQThCO2dCQUM5QixNQUFNO2FBQ1A7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLHdGQUF3RjtnQkFDeEYsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FDekIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQztnQkFDRixNQUFNO2FBQ1A7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLDRFQUE0RTtnQkFDNUUsTUFBTSxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FDekIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUNoQyxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQztnQkFDRixNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxNQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7SUFFTyxnQ0FBZ0MsQ0FBQyxRQUFnQjtRQUN2RCxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLENBQUMsQ0FBQztZQUNQLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ04sbUVBQW1FO2dCQUNuRSxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDM0csTUFBTTthQUNQO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTixxRUFBcUU7Z0JBQ3JFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUN6QixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7Z0JBQ0YsTUFBTTthQUNQO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTixvRUFBb0U7Z0JBQ3BFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUM5RyxNQUFNO2FBQ1A7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxNQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxRQUFnQjtRQUN4RCxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLENBQUMsQ0FBQztZQUNQLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ04sNEJBQTRCO2dCQUM1Qiw2QkFBNkI7Z0JBQzdCLHNFQUFzRTtnQkFDdEUsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FDekIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQztnQkFDRixNQUFNO2FBQ1A7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLDBHQUEwRztnQkFDMUcsOEJBQThCO2dCQUM5QixNQUFNO2FBQ1A7WUFDRCxLQUFLLENBQUMsQ0FBQztZQUNQLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ04sZ0NBQWdDO2dCQUNoQywrQkFBK0I7Z0JBQy9CLDREQUE0RDtnQkFDNUQsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2hILE1BQU07YUFDUDtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs7O1lBdk9GLFVBQVU7OztZQVJGLHVCQUF1Qjs0Q0E2QjhCLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9wb3BvdmVyLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvcG92ZXItY29udGVudC1vZmZzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclZpZXdwb3J0VmlvbGF0aW9uIH0gZnJvbSAnLi4vZW51bXMvdmlld3BvcnQtdmlvbGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgYWxpZ24sIGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudCwgZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRlc3RWaXNpYmlsaXR5IH0gZnJvbSAnLi4vcG9zaXRpb24tb3BlcmF0b3JzJztcbmltcG9ydCB7IENsckF4aXMgfSBmcm9tICcuLi9lbnVtcy9heGlzLmVudW0nO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xyUG9wb3ZlclBvc2l0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgY3VycmVudEFuY2hvckNvb3JkczogQ2xpZW50UmVjdDtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGVudENvb3JkczogQ2xpZW50UmVjdDtcbiAgcHJpdmF0ZSBjb250ZW50T2Zmc2V0czogQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQ7XG4gIHByaXZhdGUgX3Bvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb247XG5cbiAgcHJpdmF0ZSBfc2hvdWxkUmVhbGlnbjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHNob3VsZFJlYWxpZ246IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl9zaG91bGRSZWFsaWduLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHJlYWxpZ24oKSB7XG4gICAgdGhpcy5fc2hvdWxkUmVhbGlnbi5uZXh0KCk7XG4gIH1cblxuICBzZXQgcG9zaXRpb24ocG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbikge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cbiAgZ2V0IHBvc2l0aW9uKCk6IENsclBvcG92ZXJQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudFNlcnZpY2U6IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwdWJsaWMgcGxhdGZvcm1JZDogYW55KSB7fVxuXG4gIHB1YmxpYyBhbGlnbkNvbnRlbnQoY29udGVudDogSFRNTEVsZW1lbnQpOiBDbHJQb3BvdmVyQ29udGVudE9mZnNldCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAvLyBPbmx5IHBvc2l0aW9uIHdoZW4gaW4gYSBicm93c2VyLlxuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgYnJvd3NlciBvcmlnaW4gYW5kIHByZXZlbnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gcnVubmluZy5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHhPZmZzZXQ6IDAsXG4gICAgICAgIHlPZmZzZXQ6IDAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyA9IHRoaXMuZXZlbnRTZXJ2aWNlLmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMgPSBjb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbih0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuXG4gICAgY29uc3QgdmlzaWJpbGl0eVZpb2xhdGlvbnM6IENsclZpZXdwb3J0VmlvbGF0aW9uW10gPSB0ZXN0VmlzaWJpbGl0eSh0aGlzLmNvbnRlbnRPZmZzZXRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGUgdGhlIHN1bSBvZiB2aWV3cG9ydCBlcnJvcnMuIFRoaXMgY2FsY3VsYXRpb24gaXMgdXNlZCBiZWxvdyB3aXRoIHRoZSBwcm92aWRlZCBBeGlzIGluIHRoZSBnaXZlblxuICAgICAqIENsclBvcG92ZXJQb3NpdGlvbi4gSXRzIHdvcnRoIHB1dHRpbmcgdGhlIENsclZpZXdwb3J0VmlvbGF0aW9uIGVudW0gdmFsdWVzIGhlcmU6XG4gICAgICpcbiAgICAgKiAgIEJPVFRPTSA9IDAsXG4gICAgICogICBMRUZUID0gMSxcbiAgICAgKiAgIFJJR0hUID0gMixcbiAgICAgKiAgIFRPUCA9IDMsXG4gICAgICpcbiAgICAgKiAgIFNvLCB0aGlzLnZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCB0ZWxscyB1cyBob3cgbWFueSBzaWRlcyBvZiB0aGUgdmlld3BvcnQgdGhhdCB0aGUgcG9wb3ZlciBjb250ZW50IHdhc1xuICAgICAqICAgY2xpcHBlZCBvbi4gV2UgY2FuIG9ubHkgaGVscCB3aGVuIHRoZSBjb250ZW50IGhhcyBhbiBpc3N1ZSBvbiBvbmUgb3IgdHdvIHNpZGVzLlxuICAgICAqICAgZXJyb3JTdW0gaXMgY2FsY3VsYXRlZCB0byBkZXRlcm1pbmUgX2hvd18gdG8gY2hhbmdlIHRoZSBwb3NpdGlvbi4gTG9va2luZyBhdCBib3RoIHRoZSBheGlzIGFuZCB0aGUgbnVtYmVyXG4gICAgICogICBvZiB2aW9sYXRpb25zIEkgY2FuIHVzZSB0aGUgZXJyb3JTdW0gdG8gZGV0ZXJtaW5lIGhvdyB0byB0cmFuc2Zvcm0gdGhlIHBvc2l0aW9uIChvbiB0aGUgZmx5KSBhbmQgYWRqdXN0XG4gICAgICogICB3aGVyZSBpdCBjYW4gYmUgaW1wcm92ZWQuXG4gICAgICpcbiAgICAgKiAgIE5vdGUsIG1vcmUgdGhhbiAzIHZpZXdwb3J0IHZpb2xhdGlvbnMgYW5kIHRoZXJlIGlzbid0IGFueXRoaW5nIHdlIGNhbiBkbyB0byBoZWxwLiBBbHNvIHdoZW4gdGhlcmUgYXJlIHR3b1xuICAgICAqICAgdmlvbGF0aW9ucywgd2UgY2FuJ3QgaGVscCBpZiB0aGUgdmlvbGF0aW9ucyBhcmUgVE9QK0JPVFRPTSB8fCBMRUZUK1JJR0hUID0+IFRoZXJlIGlzIG5vIHRyYW5zZm9ybWF0aW9uIHdlXG4gICAgICogICBjYW4gbWFrZSB0byB0aGUgcG9zdGlvbiB0aGF0IHdpbGwgaGVscC5cbiAgICAgKlxuICAgICAqICAgU29tZSBleGFtcGxlczpcbiAgICAgKiAgIFRoZXJlIGlzIG9ubHkgb25lIGVycm9yIGFuZCBQcmltYXJ5IGF4aXMgaXMgVkVSVElDQUxcbiAgICAgKiAgIC0gdGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNPbmVWaW9sYXRpb24gaGFzIGEgc3dpdGNoIHRoYXQgd2lsbCB1c2UgdGhlIGVycm9yIHN1bSB0byBhcHBseSB0aGUgY29ycmVjdFxuICAgICAqICAgdHJhbnNmb3JtIHRvIHRoZSBwb3N0aW9uIGJhc2VkIG9uIHRoZSByZWR1Y3Rpb24gb2YgdmlzaWJpbGl0eVZpb2xhdGlvbnMuXG4gICAgICpcbiAgICAgKiAgIFRoZXJlIGFyZSB0d28gZXJyb3JzIGFuZCBQcmltYXJ5IGF4aXMgaXMgSE9SSVpPTlRBTFxuICAgICAqICAgLSBoYW5kbGVIb3Jpem9udGFsQXhpc1R3b1Zpb2xhdGlvbnMgaGFzIGEgc3dpdGNoIHRoYXQgdXNlcyB0aGUgZXJyb3Igc3VtIHRvIGFwcGx5IGJvdGggdHJhbnNmb3JtcyBuZWVkZWQgdG9cbiAgICAgKiAgIGltcHJvdmUgdGhlIGNvbnRlbnQgcG9zaXRpb24gYmFzZWQgb24gdGhlIHJlZHVjdGlvbiBvZiB2aXNpYmlsaXR5VmlvbGF0aW9ucy5cbiAgICAgKi9cblxuICAgIGNvbnN0IGVycm9yU3VtID0gdmlzaWJpbGl0eVZpb2xhdGlvbnMucmVkdWNlKChjb3VudCwgY3VycmVudCkgPT4ge1xuICAgICAgcmV0dXJuIGNvdW50ICsgY3VycmVudDtcbiAgICB9LCAwKTtcblxuICAgIGlmICh2aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgdGhpcy5wb3NpdGlvbi5heGlzID09PSBDbHJBeGlzLlZFUlRJQ0FMKSB7XG4gICAgICAvLyBXaGVuIHByaW1hcnkgYXhpcyBpcyBWRVJUSUNBTCBhbmQgdGhlcmUgaXMgb25lIHZpZXdwb3J0IHZpb2xhdGlvblxuICAgICAgdGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNPbmVWaW9sYXRpb24oZXJyb3JTdW0pO1xuICAgIH0gZWxzZSBpZiAodmlzaWJpbGl0eVZpb2xhdGlvbnMubGVuZ3RoID09PSAxICYmIHRoaXMucG9zaXRpb24uYXhpcyA9PT0gQ2xyQXhpcy5IT1JJWk9OVEFMKSB7XG4gICAgICAvLyBXaGVuIHByaW1hcnkgYXhpcyBpcyBIT1JJWk9OVEFMIGFuZCB0aGVyZSBpcyBvbmUgdmlld3BvcnQgdmlvbGF0aW9uXG4gICAgICB0aGlzLmhhbmRsZUhvcml6b250YWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtKTtcbiAgICB9IGVsc2UgaWYgKHZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCA9PT0gMiAmJiB0aGlzLnBvc2l0aW9uLmF4aXMgPT09IENsckF4aXMuVkVSVElDQUwpIHtcbiAgICAgIC8vIFdoZW4gcHJpbWFyeSBheGlzIGlzIFZFUlRJQ0FMIGFuZCB0aGVyZSBhcmUgdHdvIHZpZXdwb3J0IHZpb2xhdGlvbnNcbiAgICAgIHRoaXMuaGFuZGxlVmVydGljYWxBeGlzVHdvVmlvbGF0aW9ucyhlcnJvclN1bSk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggPT09IDIgJiYgdGhpcy5wb3NpdGlvbi5heGlzID09PSBDbHJBeGlzLkhPUklaT05UQUwpIHtcbiAgICAgIC8vIFdoZW4gcHJpbWFyeSBheGlzIGlzIEhPUklaT05UQUwgYW5kIHRoZXJlIGFyZSB0d28gdmlld3BvcnQgdmlvbGF0aW9uc1xuICAgICAgdGhpcy5oYW5kbGVIb3Jpem9udGFsQXhpc1R3b1Zpb2xhdGlvbnMoZXJyb3JTdW0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250ZW50T2Zmc2V0cztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApIG9yIFRPUCgzKSBhcmUgcHJpbWFyeSB2aW9sYXRpb25zIGFuZCB3ZSBjYW4ganVzdCBmbGlwIHNpZGVzXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihmbGlwU2lkZXModGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIC8vIExFRlQoMSkgaXMgc2Vjb25kYXJ5IGFuZCBuZWVkcyB0byBudWRnZSBjb250ZW50IHJpZ2h0XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihudWRnZUNvbnRlbnQodGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIFJJR0hUKDIpIGlzIHNlY29uZGFyeSBhbmQgIG5lZWRzIHRvIG51ZGdlIGNvbnRlbnQgbGVmdFxuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgbnVkZ2VDb250ZW50KHRoaXMucG9zaXRpb24sIHRydWUpLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoZXJyb3JTdW06IG51bWJlcik6IHZvaWQge1xuICAgIHN3aXRjaCAoZXJyb3JTdW0pIHtcbiAgICAgIC8vIFdlIGtub3cgdGhlcmUgYXJlIHR3byB2aW9sYXRpb25zLiBXZSBjYW4gdXNlIHRoZSBlcnJvclN1bSB0byBkZXRlcm1pbmUgd2hpY2ggY29tYmluYXRpb24gb2Ygc2lkZXMgd2VyZVxuICAgICAgLy8gdmlvbGF0ZWQgYW5kIGhhbmRsZSBhcHByb3ByaWF0ZWx5LlxuICAgICAgY2FzZSA1OiB7XG4gICAgICAgIC8vIFRPUCgzKStSSUdIVCgyKSBpcyBjYXNlIDUuIFdlIG5lZWQgdG8gZmxpcCBzaWRlcyBhbmQgbnVkZ2UgdGhlIGNvbnRlbnQgdG8gdGhlIGxlZnRcbiAgICAgICAgY29uc3QgZmxpcEFuZE51ZGdlTGVmdCA9IGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwU2lkZXMsIG51ZGdlQ29udGVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VMZWZ0KHRoaXMucG9zaXRpb24pLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSA0OiB7XG4gICAgICAgIC8vVE9QKDMpK0xFRlQoMSkgaXMgY2FzZSA0LCB3ZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIGNvbnRlbnQgdG8gdGhlIHJpZ2h0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZVJpZ2h0ID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VSaWdodCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMzoge1xuICAgICAgICAvLyBUT1AoMykrQk9UVE9NKDApIHx8IGxlZnQoMSkrUklHSFQoMikgaXMgY2FzZSAzLiBUaGVyZSBpcyBub3RoaW5nIHdlIGNhbiBkbyBwb3NpdGlvbiB3aXNlIHRvIGltcHJvdmUgdGhlXG4gICAgICAgIC8vIHBsYWNlbWVudCBmb3IgdGhpcyBjb250ZW50LlxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvLyBCT1RUT00oMCkrUklHSFQoMikgaXMgY2FzZSAyLiBXZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIHRoZSBjb250ZW50IHRvIHRoZSBsZWZ0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZUxlZnQgPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlTGVmdCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMToge1xuICAgICAgICAvLyBCT1RUT00oMCkrTEVGVCgxKSBpcyBjYXNlIDEuIFdlIG5lZWQgdG8gZmxpcCBzaWRlcyBhbmQgbnVkZ2UgdG8gdGhlIHJpZ2h0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZVJpZ2h0ID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VSaWdodCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbihlcnJvclN1bTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoIChlcnJvclN1bSkge1xuICAgICAgY2FzZSAxOlxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIExFRlQoMSkgYW5kIFJJR0hUKDIpIGFyZSBwcmltYXJ5IHZpb2xhdGlvbnMgc28gd2UgY2FuIGZsaXAgc2lkZXNcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKGZsaXBTaWRlcyh0aGlzLnBvc2l0aW9uKSwgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDA6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApIGlzIGEgc2Vjb25kYXJ5IHZpb2xhdGlvbiBhbmQgd2UgbmVlZCB0byBudWRnZSBjb250ZW50IHVwXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBudWRnZUNvbnRlbnQodGhpcy5wb3NpdGlvbiwgdHJ1ZSksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gVE9QKDMpIGlzIGEgc2Vjb25kYXJ5IHZpb2xhdGlvbiBhbmQgd2UgbmVlZCB0byBudWRnZSBjb250ZW50IGRvd25cbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKG51ZGdlQ29udGVudCh0aGlzLnBvc2l0aW9uKSwgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSG9yaXpvbnRhbEF4aXNUd29WaW9sYXRpb25zKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDQ6IHtcbiAgICAgICAgLy8gVE9QKDMpK0xFRlQoMSkgaXMgY2FzZSA0LlxuICAgICAgICAvLyBUT1AoMykrUklHSFQoMikgaXMgY2FzZSA1LlxuICAgICAgICAvLyBJbiBib3RoIG9mIHRoZXNlIGNhc2VzIHdlIG5lZWQgdG8gZmxpcCBzaWRlcyBhbmQgbnVkZ2UgY29udGVudCBkb3duXG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZURvd24gPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKFxuICAgICAgICAgIGZsaXBBbmROdWRnZURvd24odGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gVE9QKDMpK0JPVFRPTSgwKSB8fCBsZWZ0KDEpK1JJR0hUKDIpIGlzIGNhc2UgMy4gVGhlcmUgaXMgbm90aGluZyB3ZSBjYW4gZG8gcG9zaXRpb24gd2lzZSB0byBpbXByb3ZlIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQgZm9yIHRoaXMgY29udGVudC5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDI6XG4gICAgICBjYXNlIDE6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApK1JJR0hUKDIpIGlzIGNhc2UgMi5cbiAgICAgICAgLy8gQk9UVE9NKDApK0xFRlQoMSkgaXMgY2FzZSAxLlxuICAgICAgICAvLyBJbiBib3RoIGNhc2VzIHdlICBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIGNvbnRlbnQgdXBcbiAgICAgICAgY29uc3QgZmxpcEFuZE51ZGdlVXAgPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oZmxpcEFuZE51ZGdlVXAodGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,7 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
- *
6
5
  */
7
6
  import { Injectable } from '@angular/core';
8
7
  import { Subject } from 'rxjs';
@@ -64,4 +63,4 @@ export class ClrPopoverToggleService {
64
63
  ClrPopoverToggleService.decorators = [
65
64
  { type: Injectable }
66
65
  ];
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHbkUsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVFOzs7V0FHRztRQUNLLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxnQkFBVyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRXZELHFCQUFnQixHQUFtQixJQUFJLE9BQU8sRUFBUyxDQUFDO1FBK0N4RCxvQkFBZSxHQUF5QixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBU2hFLENBQUM7SUF0REMsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsS0FBWTtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxLQUFjO1FBQzVCLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsS0FBVTtRQUMvQixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBSUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsV0FBd0I7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7O1lBaEVGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICpcbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcHJldmVudEFycm93S2V5U2Nyb2xsIH0gZnJvbSAnLi4vLi4vZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2Uge1xuICAvKipcbiAgICogIFBvcG92ZXJzIG1pZ2h0IG5lZWQgdG8gaWdub3JlIGNsaWNrIGV2ZW50cyBvbiBhbiBlbGVtZW50XG4gICAqICAoZWc6IHBvcG92ZXIgb3BlbnMgb24gZm9jdXMgb24gYW4gaW5wdXQgZmllbGQuIENsaWNrcyBzaG91bGQgYmUgaWdub3JlZCBpbiB0aGlzIGNhc2UpXG4gICAqL1xuICBwcml2YXRlIF9vcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW5DaGFuZ2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIF9vcGVuRXZlbnQ6IEV2ZW50O1xuICBwcml2YXRlIF9vcGVuRXZlbnRDaGFuZ2U6IFN1YmplY3Q8RXZlbnQ+ID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG5cbiAgcHVibGljIGdldCBvcGVuQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBvcGVuRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5fb3BlbkV2ZW50ID0gZXZlbnQ7XG4gICAgdGhpcy5fb3BlbkV2ZW50Q2hhbmdlLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuRXZlbnQoKTogRXZlbnQge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0RXZlbnRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB2YWx1ZSA9ICEhdmFsdWU7XG4gICAgaWYgKHRoaXMuX29wZW4gIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9vcGVuID0gdmFsdWU7XG4gICAgICB0aGlzLl9vcGVuQ2hhbmdlLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuXG4gIC8vIEZvciBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IElmT3BlblNlcnZpY2UgYmFzZWQgaW1wbGVtZW50YXRpb25zXG4gIGdldCBvcmlnaW5hbEV2ZW50KCk6IEV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkV2ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2UgbmVlZCB0byByZW1lbWJlciB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIHRvZ2dsaW5nIHRvIGF2b2lkIGxvb3BzLlxuICAgKiBUaGlzIGlzIGZvciBpbnN0YW5jZSB0aGUgY2FzZSBvZiBjb21wb25lbnRzIHRoYXQgb3BlbiBvbiBhIGNsaWNrLCBidXQgY2xvc2Ugb24gYSBjbGljayBvdXRzaWRlLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVdpdGhFdmVudChldmVudDogYW55KSB7XG4gICAgcHJldmVudEFycm93S2V5U2Nyb2xsKGV2ZW50KTtcblxuICAgIHRoaXMub3BlbkV2ZW50ID0gZXZlbnQ7XG4gICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgfVxuXG4gIHByaXZhdGUgX3BvcG92ZXJBbGlnbmVkOiBTdWJqZWN0PEhUTUxFbGVtZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGdldCBwb3BvdmVyQWxpZ25lZCgpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcG92ZXJBbGlnbmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHBvcG92ZXJBbGlnbmVkRW1pdChwb3BvdmVyTm9kZTogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9wb3BvdmVyQWxpZ25lZC5uZXh0KHBvcG92ZXJOb2RlKTtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUduRSxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRUU7OztXQUdHO1FBQ0ssVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGdCQUFXLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFFdkQscUJBQWdCLEdBQW1CLElBQUksT0FBTyxFQUFTLENBQUM7UUErQ3hELG9CQUFlLEdBQXlCLElBQUksT0FBTyxFQUFFLENBQUM7SUFTaEUsQ0FBQztJQXREQyxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFXLFNBQVMsQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsSUFBSSxDQUFDLEtBQWM7UUFDNUIsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxLQUFVO1FBQy9CLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxXQUF3QjtRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7WUFoRUYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcHJldmVudEFycm93S2V5U2Nyb2xsIH0gZnJvbSAnLi4vLi4vZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2Uge1xuICAvKipcbiAgICogIFBvcG92ZXJzIG1pZ2h0IG5lZWQgdG8gaWdub3JlIGNsaWNrIGV2ZW50cyBvbiBhbiBlbGVtZW50XG4gICAqICAoZWc6IHBvcG92ZXIgb3BlbnMgb24gZm9jdXMgb24gYW4gaW5wdXQgZmllbGQuIENsaWNrcyBzaG91bGQgYmUgaWdub3JlZCBpbiB0aGlzIGNhc2UpXG4gICAqL1xuICBwcml2YXRlIF9vcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW5DaGFuZ2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIF9vcGVuRXZlbnQ6IEV2ZW50O1xuICBwcml2YXRlIF9vcGVuRXZlbnRDaGFuZ2U6IFN1YmplY3Q8RXZlbnQ+ID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG5cbiAgcHVibGljIGdldCBvcGVuQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBvcGVuRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5fb3BlbkV2ZW50ID0gZXZlbnQ7XG4gICAgdGhpcy5fb3BlbkV2ZW50Q2hhbmdlLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuRXZlbnQoKTogRXZlbnQge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0RXZlbnRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB2YWx1ZSA9ICEhdmFsdWU7XG4gICAgaWYgKHRoaXMuX29wZW4gIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9vcGVuID0gdmFsdWU7XG4gICAgICB0aGlzLl9vcGVuQ2hhbmdlLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuXG4gIC8vIEZvciBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IElmT3BlblNlcnZpY2UgYmFzZWQgaW1wbGVtZW50YXRpb25zXG4gIGdldCBvcmlnaW5hbEV2ZW50KCk6IEV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkV2ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2UgbmVlZCB0byByZW1lbWJlciB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIHRvZ2dsaW5nIHRvIGF2b2lkIGxvb3BzLlxuICAgKiBUaGlzIGlzIGZvciBpbnN0YW5jZSB0aGUgY2FzZSBvZiBjb21wb25lbnRzIHRoYXQgb3BlbiBvbiBhIGNsaWNrLCBidXQgY2xvc2Ugb24gYSBjbGljayBvdXRzaWRlLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVdpdGhFdmVudChldmVudDogYW55KSB7XG4gICAgcHJldmVudEFycm93S2V5U2Nyb2xsKGV2ZW50KTtcblxuICAgIHRoaXMub3BlbkV2ZW50ID0gZXZlbnQ7XG4gICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgfVxuXG4gIHByaXZhdGUgX3BvcG92ZXJBbGlnbmVkOiBTdWJqZWN0PEhUTUxFbGVtZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGdldCBwb3BvdmVyQWxpZ25lZCgpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcG92ZXJBbGlnbmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHBvcG92ZXJBbGlnbmVkRW1pdChwb3BvdmVyTm9kZTogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9wb3BvdmVyQWxpZ25lZC5uZXh0KHBvcG92ZXJOb2RlKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -24,4 +24,4 @@ ScrollingService.decorators = [
24
24
  ScrollingService.ctorParameters = () => [
25
25
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
26
26
  ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsaW5nLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9zY3JvbGxpbmcvc2Nyb2xsaW5nLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQXNDLFNBQWM7UUFBZCxjQUFTLEdBQVQsU0FBUyxDQUFLO0lBQUcsQ0FBQztJQUV4RCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs7O1lBWkYsVUFBVTs7OzRDQUVJLE1BQU0sU0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY3JvbGxpbmdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueSkge31cblxuICBzdG9wU2Nyb2xsaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbm8tc2Nyb2xsaW5nJyk7XG4gIH1cblxuICByZXN1bWVTY3JvbGxpbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCduby1zY3JvbGxpbmcnKSkge1xuICAgICAgdGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCduby1zY3JvbGxpbmcnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsaW5nLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9zY3JvbGxpbmcvc2Nyb2xsaW5nLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQXNDLFNBQWM7UUFBZCxjQUFTLEdBQVQsU0FBUyxDQUFLO0lBQUcsQ0FBQztJQUV4RCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs7O1lBWkYsVUFBVTs7OzRDQUVJLE1BQU0sU0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjcm9sbGluZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55KSB7fVxuXG4gIHN0b3BTY3JvbGxpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCduby1zY3JvbGxpbmcnKTtcbiAgfVxuXG4gIHJlc3VtZVNjcm9sbGluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ25vLXNjcm9sbGluZycpKSB7XG4gICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ25vLXNjcm9sbGluZycpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,4 +1,9 @@
1
+ /*
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
+ * This software is released under MIT license.
4
+ * The full license information can be found in LICENSE in the root directory of this project.
5
+ */
1
6
  import { TemplateRefContainer } from './template-ref-container';
2
7
  export * from './template-ref-container';
3
8
  export const TEMPLATE_REF_DIRECTIVES = [TemplateRefContainer];
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy90ZW1wbGF0ZS1yZWYvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVSZWZDb250YWluZXIgfSBmcm9tICcuL3RlbXBsYXRlLXJlZi1jb250YWluZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlLXJlZi1jb250YWluZXInO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfUkVGX0RJUkVDVElWRVM6IFR5cGU8YW55PltdID0gW1RlbXBsYXRlUmVmQ29udGFpbmVyXTtcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy90ZW1wbGF0ZS1yZWYvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVSZWZDb250YWluZXIgfSBmcm9tICcuL3RlbXBsYXRlLXJlZi1jb250YWluZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlLXJlZi1jb250YWluZXInO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfUkVGX0RJUkVDVElWRVM6IFR5cGU8YW55PltdID0gW1RlbXBsYXRlUmVmQ29udGFpbmVyXTtcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -18,4 +18,4 @@ TemplateRefContainer.decorators = [
18
18
  TemplateRefContainer.propDecorators = {
19
19
  template: [{ type: ViewChild, args: [TemplateRef,] }]
20
20
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcmVmLWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3RlbXBsYXRlLXJlZi90ZW1wbGF0ZS1yZWYtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTbEUsTUFBTSxPQUFPLG9CQUFvQjs7O1lBUGhDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUU7Ozs7R0FJVDthQUNGOzs7dUJBRUUsU0FBUyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlUmVmQ29udGFpbmVyIHtcbiAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcmVmLWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3RlbXBsYXRlLXJlZi90ZW1wbGF0ZS1yZWYtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTbEUsTUFBTSxPQUFPLG9CQUFvQjs7O1lBUGhDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUU7Ozs7R0FJVDthQUNGOzs7dUJBRUUsU0FBUyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVSZWZDb250YWluZXIge1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -16,4 +16,4 @@ ClrTemplateRefModule.decorators = [
16
16
  exports: [TEMPLATE_REF_DIRECTIVES],
17
17
  },] }
18
18
  ];
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcmVmLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3RlbXBsYXRlLXJlZi90ZW1wbGF0ZS1yZWYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFRbEQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBTmhDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN2QyxlQUFlLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7YUFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVEVNUExBVEVfUkVGX0RJUkVDVElWRVMgfSBmcm9tICcuL2luZGV4JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RFTVBMQVRFX1JFRl9ESVJFQ1RJVkVTXSxcbiAgZW50cnlDb21wb25lbnRzOiBbVEVNUExBVEVfUkVGX0RJUkVDVElWRVNdLFxuICBleHBvcnRzOiBbVEVNUExBVEVfUkVGX0RJUkVDVElWRVNdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJUZW1wbGF0ZVJlZk1vZHVsZSB7fVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcmVmLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3RlbXBsYXRlLXJlZi90ZW1wbGF0ZS1yZWYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFRbEQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBTmhDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN2QyxlQUFlLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7YUFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBURU1QTEFURV9SRUZfRElSRUNUSVZFUyB9IGZyb20gJy4vaW5kZXgnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbVEVNUExBVEVfUkVGX0RJUkVDVElWRVNdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtURU1QTEFURV9SRUZfRElSRUNUSVZFU10sXG4gIGV4cG9ydHM6IFtURU1QTEFURV9SRUZfRElSRUNUSVZFU10sXG59KVxuZXhwb3J0IGNsYXNzIENsclRlbXBsYXRlUmVmTW9kdWxlIHt9XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -15,4 +15,4 @@ export * from './wizard-page-navtitle';
15
15
  export * from './wizard-page-buttons';
16
16
  export * from './wizard-page-header-actions';
17
17
  export * from './wizard.module';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy93aXphcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLXBhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtc3RlcG5hdic7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC1zdGVwbmF2LWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLWhlYWRlci1hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtY3VzdG9tLXRhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtcGFnZS10aXRsZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC1wYWdlLW5hdnRpdGxlJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLXBhZ2UtYnV0dG9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC1wYWdlLWhlYWRlci1hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLm1vZHVsZSc7XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy93aXphcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLXBhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtc3RlcG5hdic7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC1zdGVwbmF2LWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLWhlYWRlci1hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtY3VzdG9tLXRhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi93aXphcmQtcGFnZS10aXRsZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC1wYWdlLW5hdnRpdGxlJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLXBhZ2UtYnV0dG9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3dpemFyZC1wYWdlLWhlYWRlci1hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkLm1vZHVsZSc7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -57,4 +57,4 @@ export class ButtonHubService {
57
57
  ButtonHubService.decorators = [
58
58
  { type: Injectable }
59
59
  ];
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWh1Yi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvd2l6YXJkL3Byb3ZpZGVycy9idXR0b24taHViLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFcEIsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUt6QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFLckMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUt2QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBS3ZDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFLdkMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQW9CakQsQ0FBQztJQTVDQyxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBR0QsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUdELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFHRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFrQjtRQUNyQyxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDN0I7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQy9CO2FBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDOzs7WUFoREYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnV0dG9uSHViU2VydmljZSB7XG4gIHB1YmxpYyBidXR0b25zUmVhZHkgPSBmYWxzZTtcblxuICBwcml2YXRlIF9wcmV2aW91c0J0bkNsaWNrZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBnZXQgcHJldmlvdXNCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpb3VzQnRuQ2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX25leHRCdG5DbGlja2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgZ2V0IG5leHRCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX25leHRCdG5DbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGFuZ2VyQnRuQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIGdldCBkYW5nZXJCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhbmdlckJ0bkNsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9jYW5jZWxCdG5DbGlja2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgZ2V0IGNhbmNlbEJ0bkNsaWNrZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FuY2VsQnRuQ2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmlzaEJ0bkNsaWNrZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBnZXQgZmluaXNoQnRuQ2xpY2tlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9maW5pc2hCdG5DbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VzdG9tQnRuQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIGdldCBjdXN0b21CdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbUJ0bkNsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uQ2xpY2tlZChidXR0b25UeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoJ3ByZXZpb3VzJyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fcHJldmlvdXNCdG5DbGlja2VkLm5leHQoKTtcbiAgICB9IGVsc2UgaWYgKCduZXh0JyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fbmV4dEJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ2ZpbmlzaCcgPT09IGJ1dHRvblR5cGUpIHtcbiAgICAgIHRoaXMuX2ZpbmlzaEJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ2RhbmdlcicgPT09IGJ1dHRvblR5cGUpIHtcbiAgICAgIHRoaXMuX2RhbmdlckJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ2NhbmNlbCcgPT09IGJ1dHRvblR5cGUpIHtcbiAgICAgIHRoaXMuX2NhbmNlbEJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jdXN0b21CdG5DbGlja2VkLm5leHQoYnV0dG9uVHlwZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWh1Yi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvd2l6YXJkL3Byb3ZpZGVycy9idXR0b24taHViLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFcEIsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUt6QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFLckMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUt2QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBS3ZDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFLdkMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQW9CakQsQ0FBQztJQTVDQyxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBR0QsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUdELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFHRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFrQjtRQUNyQyxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDN0I7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQy9CO2FBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDOzs7WUFoREYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnV0dG9uSHViU2VydmljZSB7XG4gIHB1YmxpYyBidXR0b25zUmVhZHkgPSBmYWxzZTtcblxuICBwcml2YXRlIF9wcmV2aW91c0J0bkNsaWNrZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBnZXQgcHJldmlvdXNCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpb3VzQnRuQ2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX25leHRCdG5DbGlja2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgZ2V0IG5leHRCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX25leHRCdG5DbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGFuZ2VyQnRuQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIGdldCBkYW5nZXJCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhbmdlckJ0bkNsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9jYW5jZWxCdG5DbGlja2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgZ2V0IGNhbmNlbEJ0bkNsaWNrZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FuY2VsQnRuQ2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbmlzaEJ0bkNsaWNrZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBnZXQgZmluaXNoQnRuQ2xpY2tlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9maW5pc2hCdG5DbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VzdG9tQnRuQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIGdldCBjdXN0b21CdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbUJ0bkNsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uQ2xpY2tlZChidXR0b25UeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoJ3ByZXZpb3VzJyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fcHJldmlvdXNCdG5DbGlja2VkLm5leHQoKTtcbiAgICB9IGVsc2UgaWYgKCduZXh0JyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fbmV4dEJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ2ZpbmlzaCcgPT09IGJ1dHRvblR5cGUpIHtcbiAgICAgIHRoaXMuX2ZpbmlzaEJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ2RhbmdlcicgPT09IGJ1dHRvblR5cGUpIHtcbiAgICAgIHRoaXMuX2RhbmdlckJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ2NhbmNlbCcgPT09IGJ1dHRvblR5cGUpIHtcbiAgICAgIHRoaXMuX2NhbmNlbEJ0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jdXN0b21CdG5DbGlja2VkLm5leHQoYnV0dG9uVHlwZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -34,4 +34,4 @@ HeaderActionService.decorators = [
34
34
  HeaderActionService.ctorParameters = () => [
35
35
  { type: WizardNavigationService }
36
36
  ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3dpemFyZC9wcm92aWRlcnMvaGVhZGVyLWFjdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd0RSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLHFGQUFxRjtJQUNyRixvQkFBb0I7SUFFcEIsWUFBbUIsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFBRyxDQUFDO0lBSTFELElBQVcsc0JBQXNCO1FBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLDJCQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBVywyQkFBMkI7UUFDcEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3pFLENBQUM7OztZQTNCRixVQUFVOzs7WUFGRix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xyV2l6YXJkSGVhZGVyQWN0aW9uIH0gZnJvbSAnLi4vd2l6YXJkLWhlYWRlci1hY3Rpb24nO1xuaW1wb3J0IHsgV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL3dpemFyZC1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGVhZGVyQWN0aW9uU2VydmljZSB7XG4gIC8vIHRoaXMgc2VydmljZSBjb21tdW5pY2F0ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByZXNlbmNlL2Rpc3BsYXkgb2YgaGVhZGVyIGFjdGlvbnNcbiAgLy8gYWNyb3NzIHRoZSB3aXphcmRcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmF2U2VydmljZTogV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UpIHt9XG5cbiAgcHVibGljIHdpemFyZEhlYWRlckFjdGlvbnM6IFF1ZXJ5TGlzdDxDbHJXaXphcmRIZWFkZXJBY3Rpb24+O1xuXG4gIHB1YmxpYyBnZXQgd2l6YXJkSGFzSGVhZGVyQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICBjb25zdCB3aXphcmRIZHJBY3Rpb25zID0gdGhpcy53aXphcmRIZWFkZXJBY3Rpb25zO1xuICAgIGlmICghd2l6YXJkSGRyQWN0aW9ucykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gd2l6YXJkSGRyQWN0aW9ucy50b0FycmF5KCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFBhZ2VIYXNIZWFkZXJBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdlNlcnZpY2UuY3VycmVudFBhZ2UgPyB0aGlzLm5hdlNlcnZpY2UuY3VycmVudFBhZ2UuaGFzSGVhZGVyQWN0aW9ucyA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93V2l6YXJkSGVhZGVyQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY3VycmVudFBhZ2VIYXNIZWFkZXJBY3Rpb25zICYmIHRoaXMud2l6YXJkSGFzSGVhZGVyQWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUhlYWRlckFjdGlvbnNXcmFwcGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlSGFzSGVhZGVyQWN0aW9ucyB8fCB0aGlzLndpemFyZEhhc0hlYWRlckFjdGlvbnM7XG4gIH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3dpemFyZC9wcm92aWRlcnMvaGVhZGVyLWFjdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd0RSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLHFGQUFxRjtJQUNyRixvQkFBb0I7SUFFcEIsWUFBbUIsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFBRyxDQUFDO0lBSTFELElBQVcsc0JBQXNCO1FBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLDJCQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBVywyQkFBMkI7UUFDcEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3pFLENBQUM7OztZQTNCRixVQUFVOzs7WUFGRix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xyV2l6YXJkSGVhZGVyQWN0aW9uIH0gZnJvbSAnLi4vd2l6YXJkLWhlYWRlci1hY3Rpb24nO1xuaW1wb3J0IHsgV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL3dpemFyZC1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGVhZGVyQWN0aW9uU2VydmljZSB7XG4gIC8vIHRoaXMgc2VydmljZSBjb21tdW5pY2F0ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByZXNlbmNlL2Rpc3BsYXkgb2YgaGVhZGVyIGFjdGlvbnNcbiAgLy8gYWNyb3NzIHRoZSB3aXphcmRcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmF2U2VydmljZTogV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UpIHt9XG5cbiAgcHVibGljIHdpemFyZEhlYWRlckFjdGlvbnM6IFF1ZXJ5TGlzdDxDbHJXaXphcmRIZWFkZXJBY3Rpb24+O1xuXG4gIHB1YmxpYyBnZXQgd2l6YXJkSGFzSGVhZGVyQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICBjb25zdCB3aXphcmRIZHJBY3Rpb25zID0gdGhpcy53aXphcmRIZWFkZXJBY3Rpb25zO1xuICAgIGlmICghd2l6YXJkSGRyQWN0aW9ucykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gd2l6YXJkSGRyQWN0aW9ucy50b0FycmF5KCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFBhZ2VIYXNIZWFkZXJBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdlNlcnZpY2UuY3VycmVudFBhZ2UgPyB0aGlzLm5hdlNlcnZpY2UuY3VycmVudFBhZ2UuaGFzSGVhZGVyQWN0aW9ucyA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93V2l6YXJkSGVhZGVyQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY3VycmVudFBhZ2VIYXNIZWFkZXJBY3Rpb25zICYmIHRoaXMud2l6YXJkSGFzSGVhZGVyQWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUhlYWRlckFjdGlvbnNXcmFwcGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlSGFzSGVhZGVyQWN0aW9ucyB8fCB0aGlzLndpemFyZEhhc0hlYWRlckFjdGlvbnM7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -355,4 +355,4 @@ export class PageCollectionService {
355
355
  PageCollectionService.decorators = [
356
356
  { type: Injectable }
357
357
  ];
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb2xsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy93aXphcmQvcHJvdmlkZXJzL3BhZ2UtY29sbGVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUEyU0UsdUVBQXVFO1FBQ3ZFLGtCQUFrQjtRQUVsQjs7O1dBR0c7UUFDSyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUEyRS9DLENBQUM7SUFsWEM7Ozs7OztPQU1HO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFXLGVBQWU7UUFDeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUVsQyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lB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QUU7WUFDL0QsSUFBSSxLQUFLLEdBQUcsb0JBQW9CLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDRCQUE0QjtRQUNqQyxJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQy9ELElBQUksSUFBSSxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDcEQsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsK0NBQStDO1FBQy9DLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUN4QixXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sdUJBQXVCO1FBQzVCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsQ0FBQzs7O1lBNVhGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJXaXphcmRQYWdlIH0gZnJvbSAnLi4vd2l6YXJkLXBhZ2UnO1xuXG4vKipcbiAqIFBhZ2VDb2xsZWN0aW9uU2VydmljZSBtYW5hZ2VzIHRoZSBjb2xsZWN0aW9uIG9mIHBhZ2VzIGFzc2lnbmVkIHRvIHRoZSB3aXphcmQgYW5kIG9mZmVyc1xuICogYSBudW1iZXIgb2YgZnVuY3Rpb25zIHVzZWZ1bCBhY3Jvc3MgdGhlIHdpemFyZHMgcHJvdmlkZXJzIGFuZCBzdWJjb21wb25lbnRzIC0tIGFsbCByZWxhdGVkXG4gKiB0byBlc3NlbnRpYWxseSBsb29rdXBzIG9uIHRoZSBjb2xsZWN0aW9uIG9mIHBhZ2VzLlxuICpcbiAqIFRoZSBlYXNpZXN0IHdheSB0byBhY2Nlc3MgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlIGlzIHZpYSB0aGUgd2l6YXJkLiBUaGVcbiAqIGZvbGxvd2luZyBleGFtcGxlIHdvdWxkIGFsbG93IHlvdSB0byBhY2Nlc3MgeW91ciBpbnN0YW5jZSBvZiB0aGUgd2l6YXJkIGZyb20geW91ciBob3N0XG4gKiBjb21wb25lbnQgYW5kIHRoZXJlYnkgYWNjZXNzIHRoZSBwYWdlIGNvbGxlY3Rpb24gdmlhIFlvdXJIb3N0Q29tcG9uZW50LndpemFyZC5wYWdlQ29sbGVjdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogPGNsci13aXphcmQgI3dpemFyZCAuLi4+XG4gKlxuICogQGV4YW1wbGVcbiAqIGV4cG9ydCBjbGFzcyBZb3VySG9zdENvbXBvbmVudCB7XG4gKiAgIEBWaWV3Q2hpbGQoXCJ3aXphcmRcIikgd2l6YXJkOiBXaXphcmQ7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIFRoZSBoZWFydCBvZiB0aGUgcGFnZSBjb2xsZWN0aW9uIGlzIHRoZSBxdWVyeSBsaXN0IG9mIHBhZ2VzLCB3aGljaCBpdCBpcyBhc3NpZ25lZCBhcyBhXG4gKiByZWZlcmVuY2UgdG8gdGhlIFdpemFyZC5wYWdlcyBRdWVyeUxpc3Qgd2hlbiB0aGUgd2l6YXJkIGlzIGNyZWF0ZWQuXG4gKlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBXaXphcmQucGFnZXMgUXVlcnlMaXN0LlxuICAgKlxuICAgKiBQb3B1bGF0ZWQgd2hlbiB0aGUgd2l6YXJkIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBwYWdlczogUXVlcnlMaXN0PENscldpemFyZFBhZ2U+O1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlLnBhZ2VzIFF1ZXJ5TGlzdCB0byBhbiBhcnJheSBhbmQgcmV0dXJucyBpdC5cbiAgICpcbiAgICogVXNlZnVsIGZvciBtYW55IGluc3RhbmNlcyB3aGVuIHlvdSB3b3VsZCBwcmVmZXIgYSBRdWVyeUxpc3QgdG8gYWN0IGxpa2UgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZXNBc0FycmF5KCk6IENscldpemFyZFBhZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFnZXMgPyB0aGlzLnBhZ2VzLnRvQXJyYXkoKSA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgcGFnZXMgcXVlcnkgbGlzdC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFnZXMgPyB0aGlzLnBhZ2VzLmxlbmd0aCA6IDA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmV4dC10by1sYXN0IHBhZ2UgaW4gdGhlIHF1ZXJ5IGxpc3Qgb2YgcGFnZXMuIE9wZXJhdGVzIGFzIGEgZ2V0dGVyXG4gICAqIHNvIHRoYXQgaXQgaXNuJ3Qgd29ya2luZyB3aXRoIHN0YWxlIGRhdGEuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcGVudWx0aW1hdGVQYWdlKCk6IENscldpemFyZFBhZ2Uge1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRoaXMucGFnZXNDb3VudDtcblxuICAgIGlmIChwYWdlQ291bnQgPCAyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlc0FzQXJyYXlbcGFnZUNvdW50IC0gMl07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFzdCBwYWdlIGluIHRoZSBxdWVyeSBsaXN0IG9mIHBhZ2VzLiBPcGVyYXRlcyBhcyBhIGdldHRlclxuICAgKiBzbyB0aGF0IGl0IGlzbid0IHdvcmtpbmcgd2l0aCBzdGFsZSBkYXRhLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxhc3RQYWdlKCk6IENscldpemFyZFBhZ2Uge1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRoaXMucGFnZXNDb3VudDtcblxuICAgIGlmIChwYWdlQ291bnQgPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlc0FzQXJyYXlbcGFnZUNvdW50IC0gMV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlyc3QgcGFnZSBpbiB0aGUgcXVlcnkgbGlzdCBvZiBwYWdlcy4gT3BlcmF0ZXMgYXMgYSBnZXR0ZXJcbiAgICogc28gdGhhdCBpdCBpc24ndCB3b3JraW5nIHdpdGggc3RhbGUgZGF0YS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBmaXJzdFBhZ2UoKTogQ2xyV2l6YXJkUGFnZSB7XG4gICAgaWYgKCF0aGlzLnBhZ2VzQ291bnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVswXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIG1vc3RseSBpbnRlcm5hbGx5LCBidXQgYWNjZXB0cyBhIHN0cmluZyBJRCBhbmQgcmV0dXJucyBhIENscldpemFyZFBhZ2VcbiAgICogb2JqZWN0IHRoYXQgbWF0Y2hlcyB0aGUgSUQgcGFzc2VkLiBOb3RlIHRoYXQgSURzIGhlcmUgc2hvdWxkIGluY2x1ZGUgdGhlIHByZWZpeFxuICAgKiBcImNsci13aXphcmQtcGFnZS1cIi5cbiAgICpcbiAgICogUmV0dXJucyB0aGUgbmV4dC10by1sYXN0IHBhZ2UgaW4gdGhlIHF1ZXJ5IGxpc3Qgb2YgcGFnZXMuIE9wZXJhdGVzIGFzIGEgZ2V0dGVyXG4gICAqIHNvIHRoYXQgaXQgaXNuJ3Qgd29ya2luZyB3aXRoIHN0YWxlIGRhdGEuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXRQYWdlQnlJZChpZDogc3RyaW5nKTogQ2xyV2l6YXJkUGFnZSB7XG4gICAgY29uc3QgZm91bmRQYWdlczogQ2xyV2l6YXJkUGFnZVtdID0gdGhpcy5wYWdlcy5maWx0ZXIoKHBhZ2U6IENscldpemFyZFBhZ2UpID0+IGlkID09PSBwYWdlLmlkKTtcbiAgICByZXR1cm4gdGhpcy5jaGVja1Jlc3VsdHMoZm91bmRQYWdlcywgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgcyBudW1iZXIgYXMgYSBwYXJhbWV0ZXIgYW5kIHRyZWF0cyB0aGF0IG51bWJlciBhcyB0aGUgaW5kZXggb2YgdGhlIHBhZ2VcbiAgICogeW91J3JlIGxvb2tpbmcgZm9yIGluIHRoZSBjb2xsZWN0aW9uIG9mIHBhZ2VzLiBSZXR1cm5zIGEgIHdpemFyZCBwYWdlIG9iamVjdC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFBhZ2VCeUluZGV4KGluZGV4OiBudW1iZXIpOiBDbHJXaXphcmRQYWdlIHtcbiAgICBjb25zdCBwYWdlQ291bnQgPSB0aGlzLnBhZ2VzQ291bnQ7XG4gICAgY29uc3QgcGFnZXNMYXN0SW5kZXg6IG51bWJlciA9IHBhZ2VDb3VudCA+IDEgPyBwYWdlQ291bnQgLSAxIDogMDtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJldHJpZXZlIHBhZ2Ugd2l0aCBpbmRleCBvZiAnICsgaW5kZXgpO1xuICAgIH1cblxuICAgIGlmIChpbmRleCA+IHBhZ2VzTGFzdEluZGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhZ2UgaW5kZXggaXMgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiBwYWdlcyBhcnJheS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlc0FzQXJyYXlbaW5kZXhdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgd2l6YXJkIHBhZ2Ugb2JqZWN0IGFzIGEgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGl0cyBpbmRleCBpbiB0aGVcbiAgICogY29sbGVjdGlvbiBvZiBwYWdlcy5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFBhZ2VJbmRleChwYWdlOiBDbHJXaXphcmRQYWdlKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucGFnZXNBc0FycmF5LmluZGV4T2YocGFnZSk7XG5cbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVlc3RlZCBwYWdlIGNhbm5vdCBiZSBmb3VuZCBpbiBjb2xsZWN0aW9uIG9mIHBhZ2VzLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zb2xpZGF0ZXMgZ3VhcmQgbG9naWMgdGhhdCBwcmV2ZW50cyBhIGNvdXBsZSBvZiB1bmZvcnR1bmF0ZSBlZGdlIGNhc2VzIHdpdGhcbiAgICogbG9vayB1cHMgb24gdGhlIGNvbGxlY3Rpb24gb2YgcGFnZXMuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHByaXZhdGUgY2hlY2tSZXN1bHRzKHJlc3VsdHM6IENscldpemFyZFBhZ2VbXSwgcmVxdWVzdGVkUGFnZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmb3VuZFBhZ2VzQ291bnQ6IG51bWJlciA9IHJlc3VsdHMubGVuZ3RoIHx8IDA7XG5cbiAgICBpZiAoZm91bmRQYWdlc0NvdW50ID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb3JlIHRoYW4gb25lIHBhZ2UgaGFzIHRoZSByZXF1ZXN0ZWQgaWQgJyArIHJlcXVlc3RlZFBhZ2VJZCArICcuJyk7XG4gICAgfSBlbHNlIGlmIChmb3VuZFBhZ2VzQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHBhZ2UgY2FuIGJlIGZvdW5kIHdpdGggdGhlIGlkICcgKyByZXF1ZXN0ZWRQYWdlSWQgKyAnLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0c1swXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0cyB0d28gbnVtZXJpYyBpbmRleGVzIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHdpemFyZCBwYWdlIG9iamVjdHMgdGhhdCBpbmNsdWRlXG4gICAqIGFsbCB3aXphcmQgcGFnZXMgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbiBmcm9tIHRoZSBmaXJzdCBpbmRleCB0byB0aGUgc2Vjb25kLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgcGFnZVJhbmdlKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogQ2xyV2l6YXJkUGFnZVtdIHtcbiAgICBsZXQgcGFnZXM6IENscldpemFyZFBhZ2VbXSA9IFtdO1xuXG4gICAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPCAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0ID09PSBudWxsIHx8IHR5cGVvZiBzdGFydCA9PT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oc3RhcnQpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKGVuZCA9PT0gbnVsbCB8fCB0eXBlb2YgZW5kID09PSAndW5kZWZpbmVkJyB8fCBpc05hTihlbmQpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKGVuZCA+IHRoaXMucGFnZXNDb3VudCkge1xuICAgICAgZW5kID0gdGhpcy5wYWdlc0NvdW50O1xuICAgIH1cblxuICAgIHBhZ2VzID0gdGhpcy5wYWdlc0FzQXJyYXk7XG5cbiAgICBpZiAoZW5kIC0gc3RhcnQgPT09IDApIHtcbiAgICAgIC8vIGp1c3QgcmV0dXJuIHRoZSBvbmUgcGFnZSB0aGV5IHdhbnRcbiAgICAgIHJldHVybiBbdGhpcy5nZXRQYWdlQnlJbmRleChzdGFydCldO1xuICAgIH1cblxuICAgIC8vIHNsaWNlIGVuZCBkb2VzIG5vdCBpbmNsdWRlIGl0ZW0gcmVmZXJlbmNlZCBieSBlbmQgaW5kZXgsIHdoaWNoIGlzIHdlaXJkIGZvciB1c2Vyc1xuICAgIC8vIGluY3JlbWVudGluZyBlbmQgaW5kZXggaGVyZSB0byBjb3JyZWN0IHRoYXQgc28gdXNlcnMgYW5kIG90aGVyIG1ldGhvZHNcbiAgICAvLyBkb24ndCBoYXZlIHRvIHRoaW5rIGFib3V0IGl0XG4gICAgZW5kID0gZW5kICsgMTtcblxuICAgIC8vIHNsaWNlIGRvZXMgbm90IHJldHVybiB0aGUgbGFzdCBvbmUgaW4gdGhlIHJhbmdlIGJ1dCBpdCBkb2VzIGluY2x1ZGUgdGhlIGZpcnN0IG9uZVxuICAgIC8vIGRvZXMgbm90IG1vZGlmeSBvcmlnaW5hbCBhcnJheVxuICAgIHJldHVybiBwYWdlcy5zbGljZShzdGFydCwgZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2NlcHRzIHR3byB3aXphcmQgcGFnZSBvYmplY3RzIGFuZCByZXR1cm5zIHRob3NlIHBhZ2Ugb2JqZWN0cyB3aXRoIGFsbCBvdGhlciBwYWdlXG4gICAqIG9iamVjdHMgYmV0d2VlbiB0aGVtIGluIHRoZSBwYWdlIGNvbGxlY3Rpb24uIEl0IGRvZXNuJ3QgY2FyZSB3aGljaCBwYWdlIGlzIGFoZWFkIG9mIHRoZVxuICAgKiBvdGhlciBpbiB0aGUgcGFyYW1ldGVycy4gSXQgd2lsbCBiZSBzbWFydCBlbm91Z2ggdG8gZmlndXJlIHRoYXQgb3V0ICBvbiBpdHMgb3duLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZVJhbmdlRnJvbVBhZ2VzKHBhZ2U6IENscldpemFyZFBhZ2UsIG90aGVyUGFnZTogQ2xyV2l6YXJkUGFnZSk6IENscldpemFyZFBhZ2VbXSB7XG4gICAgY29uc3QgcGFnZUluZGV4ID0gdGhpcy5nZXRQYWdlSW5kZXgocGFnZSk7XG4gICAgY29uc3Qgb3RoZXJQYWdlSW5kZXggPSB0aGlzLmdldFBhZ2VJbmRleChvdGhlclBhZ2UpO1xuICAgIGxldCBzdGFydEluZGV4OiBudW1iZXI7XG4gICAgbGV0IGVuZEluZGV4OiBudW1iZXI7XG5cbiAgICBpZiAocGFnZUluZGV4IDw9IG90aGVyUGFnZUluZGV4KSB7XG4gICAgICBzdGFydEluZGV4ID0gcGFnZUluZGV4O1xuICAgICAgZW5kSW5kZXggPSBvdGhlclBhZ2VJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnRJbmRleCA9IG90aGVyUGFnZUluZGV4O1xuICAgICAgZW5kSW5kZXggPSBwYWdlSW5kZXg7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBhZ2VSYW5nZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSB3aXphcmQgcGFnZSBvYmplY3QgYXMgYSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgdGhlIHdpemFyZCBwYWdlIG9iamVjdCBvZlxuICAgKiB0aGUgcGFnZSBpbW1lZGlhdGVseSBiZWZvcmUgaXQgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbi4gUmV0dXJucyBudWxsIGlmIHRoZXJlIGlzXG4gICAqIG5vIHBhZ2UgYmVmb3JlIHRoZSBwYWdlIGl0IGlzIHBhc3NlZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFByZXZpb3VzUGFnZShwYWdlOiBDbHJXaXphcmRQYWdlKSB7XG4gICAgY29uc3QgbXlQYWdlSW5kZXggPSB0aGlzLmdldFBhZ2VJbmRleChwYWdlKTtcbiAgICBjb25zdCBwcmV2aW91c1BhZ2VJbmRleCA9IG15UGFnZUluZGV4IC0gMTtcbiAgICBpZiAocHJldmlvdXNQYWdlSW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFnZUJ5SW5kZXgocHJldmlvdXNQYWdlSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYSB3aXphcmQgcGFnZSBvYmplY3QgYXMgYSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgYSBCb29sZWFuIHRoYXQgc2F5cyBpZlxuICAgKiB0aGUgcGFnZSB5b3Ugc2VudCBpdCBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIHByZXZpb3VzUGFnZUlzQ29tcGxldGVkKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBpZiAoIXBhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c1BhZ2UgPSB0aGlzLmdldFByZXZpb3VzUGFnZShwYWdlKTtcblxuICAgIGlmIChudWxsID09PSBwcmV2aW91c1BhZ2UpIHtcbiAgICAgIC8vIHBhZ2UgaXMgdGhlIGZpcnN0IHBhZ2UuIG5vIHByZXZpb3VzIHBhZ2UuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJldmlvdXNQYWdlLmNvbXBsZXRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHdpemFyZCBwYWdlIG9iamVjdCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyB0aGUgd2l6YXJkIHBhZ2Ugb2JqZWN0IG9mXG4gICAqIHRoZSBwYWdlIGltbWVkaWF0ZWx5IGFmdGVyIGl0IGluIHRoZSBwYWdlIGNvbGxlY3Rpb24uIFJldHVybnMgbnVsbCBpZiB0aGVyZSBpc1xuICAgKiBubyBwYWdlIGFmdGVyIHRoZSBwYWdlIGl0IGlzIHBhc3NlZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldE5leHRQYWdlKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBjb25zdCBteVBhZ2VJbmRleCA9IHRoaXMuZ2V0UGFnZUluZGV4KHBhZ2UpO1xuICAgIGNvbnN0IG5leHRQYWdlSW5kZXggPSBteVBhZ2VJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dFBhZ2VJbmRleCA+PSB0aGlzLnBhZ2VzQXNBcnJheS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlQnlJbmRleChuZXh0UGFnZUluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHdpemFyZCBwYWdlIG9iamVjdCBhcyBhIHBhcmFtZXRlciBhbmQgZ2VuZXJhdGVzIGEgc3RlcCBpdGVtIGlkIGZyb20gdGhlXG4gICAqIHBhZ2UgSUQuIFJldHVybnMgdGhlIGdlbmVyYXRlZCBzdGVwIGl0ZW0gSUQgYXMgYSBzdHJpbmcuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXRTdGVwSXRlbUlkRm9yUGFnZShwYWdlOiBDbHJXaXphcmRQYWdlKSB7XG4gICAgY29uc3QgcGFnZUlkID0gcGFnZS5pZDtcbiAgICBjb25zdCBwYWdlSWRQYXJ0cyA9IHBhZ2VJZC5zcGxpdCgnLScpLnJldmVyc2UoKTtcblxuICAgIHBhZ2VJZFBhcnRzWzFdID0gJ3N0ZXAnO1xuICAgIHJldHVybiBwYWdlSWRQYXJ0cy5yZXZlcnNlKCkuam9pbignLScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYWxseSBvbmx5IHVzZWQgaW50ZXJuYWxseSB0byBtYXJrIHRoYXQgYSBzcGVjaWZpYyBwYWdlIGhhcyBiZWVuIFwiY29tbWl0dGVkXCIuXG4gICAqIFRoaXMgaW52b2x2ZXMgbWFya2luZyB0aGUgcGFnZSBjb21wbGV0ZSBhbmQgZmlyaW5nIHRoZSBDbHJXaXphcmRQYWdlLm9uQ29tbWl0XG4gICAqIChjbHJXaXphcmRQYWdlT25Db21taXQpIG91dHB1dC4gVGFrZXMgdGhlIHdpemFyZCBwYWdlIG9iamVjdCB0aGF0IHlvdSBpbnRlbmQgdG9cbiAgICogbWFyayBjb21wbGV0ZWQgYXMgYSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBjb21taXRQYWdlKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBjb25zdCBwYWdlSGFzT3ZlcnJpZGVzID0gcGFnZS5zdG9wTmV4dCB8fCBwYWdlLnByZXZlbnREZWZhdWx0O1xuICAgIHBhZ2UuY29tcGxldGVkID0gdHJ1ZTtcblxuICAgIGlmICghcGFnZUhhc092ZXJyaWRlcykge1xuICAgICAgLy8gcHJldmVudCBsb29wIG9mIGV2ZW50IGVtaXNzaW9uOyBhbHRlcm5hdGUgZmxvd3Mgd29yayBvZmZcbiAgICAgIC8vIG9mIGV2ZW50IGVtaXR0ZXJzIHRoaXMgaXMgaG93IHRoZXkgYnJlYWsgdGhhdCBjeWNsZS5cbiAgICAgIHBhZ2Uub25Db21taXQuZW1pdChwYWdlLmlkKTtcbiAgICB9XG4gIH1cblxuICAvLyB1c2VkIGJ5IHRoZSBuYXZTZXJ2aWNlIHRvIG5hdmlnYXRlIGJhY2sgdG8gZmlyc3QgcG9zc2libGUgc3RlcCBhZnRlclxuICAvLyBwYWdlcyBhcmUgcmVzZXRcblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBfcGFnZXNSZXNldCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEFuIG9ic2VydmFibGUgdGhhdCB0aGUgbmF2aWdhdGlvbiBzZXJ2aWNlIGxpc3RlbnMgdG8gaW4gb3JkZXIgdG8ga25vdyB3aGVuXG4gICAqIHRoZSBwYWdlIGNvbGxlY3Rpb24gY29tcGxldGVkIHN0YXRlcyBoYXZlIGJlZW4gcmVzZXQgdG8gZmFsc2Ugc28gdGhhdCB3YXkgaXRcbiAgICogY2FuIGFsc28gcmVzZXQgdGhlIG5hdmlnYXRpb24gdG8gbWFrZSB0aGUgZmlyc3QgcGFnZSBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uXG4gICAqIGN1cnJlbnQvYWN0aXZlLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhZ2VzUmVzZXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzUmVzZXQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhbGwgY29tcGxldGVkIHN0YXRlcyBvZiB0aGUgcGFnZXMgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbiB0byBmYWxzZSBhbmRcbiAgICogbm90aWZpZXMgdGhlIG5hdmlnYXRpb24gc2VydmljZSB0byBsaWtld2lzZSByZXNldCB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHRoaXMucGFnZXNBc0FycmF5LmZvckVhY2goKHBhZ2U6IENscldpemFyZFBhZ2UpID0+IHtcbiAgICAgIHBhZ2UuY29tcGxldGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5fcGFnZXNSZXNldC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGxzIHRocm91Z2ggYWxsIHRoZSBwYWdlcyBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm9cbiAgICogaW5jb21wbGV0ZSBwYWdlcyBzYW5kd2ljaGVkIGJldHdlZW4gY29tcGxldGVkIHBhZ2VzIGluIHRoZSB3b3JrZmxvdy4gSWRlbnRpZmllc1xuICAgKiB0aGUgZmlyc3QgaW5jb21wbGV0ZSBwYWdlIGluZGV4IGFuZCBzZXRzIGFsbCBwYWdlcyBiZWhpbmQgaXQgdG8gYSBjb21wbGV0ZWRcbiAgICogc3RhdGUgb2YgZmFsc2UuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVDb21wbGV0ZWRTdGF0ZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RJbmNvbXBsZXRlSW5kZXggPSB0aGlzLmZpbmRGaXJzdEluY29tcGxldGVQYWdlSW5kZXgoKTtcblxuICAgIGlmIChmaXJzdEluY29tcGxldGVJbmRleCA9PT0gdGhpcy5wYWdlc0FzQXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgLy8gYWxsIGNvbXBsZXRlIG5vIG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2VzQXNBcnJheS5mb3JFYWNoKChwYWdlOiBDbHJXaXphcmRQYWdlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoaW5kZXggPiBmaXJzdEluY29tcGxldGVJbmRleCkge1xuICAgICAgICBwYWdlLmNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGluY29tcGxldGUgcGFnZSBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZmluZEZpcnN0SW5jb21wbGV0ZVBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgIGxldCByZXR1cm5JbmRleDogbnVtYmVyID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VzQXNBcnJheS5mb3JFYWNoKChwYWdlOiBDbHJXaXphcmRQYWdlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAobnVsbCA9PT0gcmV0dXJuSW5kZXggJiYgZmFsc2UgPT09IHBhZ2UuY29tcGxldGVkKSB7XG4gICAgICAgIHJldHVybkluZGV4ID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBmYWxsdGhyb3VnaCwgYWxsIGNvbXBsZXRlZCwgcmV0dXJuIGxhc3QgcGFnZVxuICAgIGlmIChudWxsID09PSByZXR1cm5JbmRleCkge1xuICAgICAgcmV0dXJuSW5kZXggPSB0aGlzLnBhZ2VzQ291bnQgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiByZXR1cm5JbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kRmlyc3RJbmNvbXBsZXRlUGFnZSgpOiBDbHJXaXphcmRQYWdlIHtcbiAgICBjb25zdCBteUluY29tcGxldGVJbmRleCA9IHRoaXMuZmluZEZpcnN0SW5jb21wbGV0ZVBhZ2VJbmRleCgpO1xuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVtteUluY29tcGxldGVJbmRleF07XG4gIH1cbn1cbiJdfQ==
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb2xsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy93aXphcmQvcHJvdmlkZXJzL3BhZ2UtY29sbGVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUEyU0UsdUVBQXVFO1FBQ3ZFLGtCQUFrQjtRQUVsQjs7O1dBR0c7UUFDSyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUEyRS9DLENBQUM7SUFsWEM7Ozs7OztPQU1HO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFXLGVBQWU7UUFDeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUVsQyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lB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QUU7WUFDL0QsSUFBSSxLQUFLLEdBQUcsb0JBQW9CLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDRCQUE0QjtRQUNqQyxJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQy9ELElBQUksSUFBSSxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDcEQsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsK0NBQStDO1FBQy9DLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUN4QixXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sdUJBQXVCO1FBQzVCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsQ0FBQzs7O1lBNVhGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJXaXphcmRQYWdlIH0gZnJvbSAnLi4vd2l6YXJkLXBhZ2UnO1xuXG4vKipcbiAqIFBhZ2VDb2xsZWN0aW9uU2VydmljZSBtYW5hZ2VzIHRoZSBjb2xsZWN0aW9uIG9mIHBhZ2VzIGFzc2lnbmVkIHRvIHRoZSB3aXphcmQgYW5kIG9mZmVyc1xuICogYSBudW1iZXIgb2YgZnVuY3Rpb25zIHVzZWZ1bCBhY3Jvc3MgdGhlIHdpemFyZHMgcHJvdmlkZXJzIGFuZCBzdWJjb21wb25lbnRzIC0tIGFsbCByZWxhdGVkXG4gKiB0byBlc3NlbnRpYWxseSBsb29rdXBzIG9uIHRoZSBjb2xsZWN0aW9uIG9mIHBhZ2VzLlxuICpcbiAqIFRoZSBlYXNpZXN0IHdheSB0byBhY2Nlc3MgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlIGlzIHZpYSB0aGUgd2l6YXJkLiBUaGVcbiAqIGZvbGxvd2luZyBleGFtcGxlIHdvdWxkIGFsbG93IHlvdSB0byBhY2Nlc3MgeW91ciBpbnN0YW5jZSBvZiB0aGUgd2l6YXJkIGZyb20geW91ciBob3N0XG4gKiBjb21wb25lbnQgYW5kIHRoZXJlYnkgYWNjZXNzIHRoZSBwYWdlIGNvbGxlY3Rpb24gdmlhIFlvdXJIb3N0Q29tcG9uZW50LndpemFyZC5wYWdlQ29sbGVjdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogPGNsci13aXphcmQgI3dpemFyZCAuLi4+XG4gKlxuICogQGV4YW1wbGVcbiAqIGV4cG9ydCBjbGFzcyBZb3VySG9zdENvbXBvbmVudCB7XG4gKiAgIEBWaWV3Q2hpbGQoXCJ3aXphcmRcIikgd2l6YXJkOiBXaXphcmQ7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIFRoZSBoZWFydCBvZiB0aGUgcGFnZSBjb2xsZWN0aW9uIGlzIHRoZSBxdWVyeSBsaXN0IG9mIHBhZ2VzLCB3aGljaCBpdCBpcyBhc3NpZ25lZCBhcyBhXG4gKiByZWZlcmVuY2UgdG8gdGhlIFdpemFyZC5wYWdlcyBRdWVyeUxpc3Qgd2hlbiB0aGUgd2l6YXJkIGlzIGNyZWF0ZWQuXG4gKlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBXaXphcmQucGFnZXMgUXVlcnlMaXN0LlxuICAgKlxuICAgKiBQb3B1bGF0ZWQgd2hlbiB0aGUgd2l6YXJkIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBwYWdlczogUXVlcnlMaXN0PENscldpemFyZFBhZ2U+O1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlLnBhZ2VzIFF1ZXJ5TGlzdCB0byBhbiBhcnJheSBhbmQgcmV0dXJucyBpdC5cbiAgICpcbiAgICogVXNlZnVsIGZvciBtYW55IGluc3RhbmNlcyB3aGVuIHlvdSB3b3VsZCBwcmVmZXIgYSBRdWVyeUxpc3QgdG8gYWN0IGxpa2UgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZXNBc0FycmF5KCk6IENscldpemFyZFBhZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFnZXMgPyB0aGlzLnBhZ2VzLnRvQXJyYXkoKSA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgcGFnZXMgcXVlcnkgbGlzdC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFnZXMgPyB0aGlzLnBhZ2VzLmxlbmd0aCA6IDA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmV4dC10by1sYXN0IHBhZ2UgaW4gdGhlIHF1ZXJ5IGxpc3Qgb2YgcGFnZXMuIE9wZXJhdGVzIGFzIGEgZ2V0dGVyXG4gICAqIHNvIHRoYXQgaXQgaXNuJ3Qgd29ya2luZyB3aXRoIHN0YWxlIGRhdGEuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcGVudWx0aW1hdGVQYWdlKCk6IENscldpemFyZFBhZ2Uge1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRoaXMucGFnZXNDb3VudDtcblxuICAgIGlmIChwYWdlQ291bnQgPCAyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlc0FzQXJyYXlbcGFnZUNvdW50IC0gMl07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFzdCBwYWdlIGluIHRoZSBxdWVyeSBsaXN0IG9mIHBhZ2VzLiBPcGVyYXRlcyBhcyBhIGdldHRlclxuICAgKiBzbyB0aGF0IGl0IGlzbid0IHdvcmtpbmcgd2l0aCBzdGFsZSBkYXRhLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxhc3RQYWdlKCk6IENscldpemFyZFBhZ2Uge1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRoaXMucGFnZXNDb3VudDtcblxuICAgIGlmIChwYWdlQ291bnQgPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlc0FzQXJyYXlbcGFnZUNvdW50IC0gMV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlyc3QgcGFnZSBpbiB0aGUgcXVlcnkgbGlzdCBvZiBwYWdlcy4gT3BlcmF0ZXMgYXMgYSBnZXR0ZXJcbiAgICogc28gdGhhdCBpdCBpc24ndCB3b3JraW5nIHdpdGggc3RhbGUgZGF0YS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBmaXJzdFBhZ2UoKTogQ2xyV2l6YXJkUGFnZSB7XG4gICAgaWYgKCF0aGlzLnBhZ2VzQ291bnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVswXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIG1vc3RseSBpbnRlcm5hbGx5LCBidXQgYWNjZXB0cyBhIHN0cmluZyBJRCBhbmQgcmV0dXJucyBhIENscldpemFyZFBhZ2VcbiAgICogb2JqZWN0IHRoYXQgbWF0Y2hlcyB0aGUgSUQgcGFzc2VkLiBOb3RlIHRoYXQgSURzIGhlcmUgc2hvdWxkIGluY2x1ZGUgdGhlIHByZWZpeFxuICAgKiBcImNsci13aXphcmQtcGFnZS1cIi5cbiAgICpcbiAgICogUmV0dXJucyB0aGUgbmV4dC10by1sYXN0IHBhZ2UgaW4gdGhlIHF1ZXJ5IGxpc3Qgb2YgcGFnZXMuIE9wZXJhdGVzIGFzIGEgZ2V0dGVyXG4gICAqIHNvIHRoYXQgaXQgaXNuJ3Qgd29ya2luZyB3aXRoIHN0YWxlIGRhdGEuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXRQYWdlQnlJZChpZDogc3RyaW5nKTogQ2xyV2l6YXJkUGFnZSB7XG4gICAgY29uc3QgZm91bmRQYWdlczogQ2xyV2l6YXJkUGFnZVtdID0gdGhpcy5wYWdlcy5maWx0ZXIoKHBhZ2U6IENscldpemFyZFBhZ2UpID0+IGlkID09PSBwYWdlLmlkKTtcbiAgICByZXR1cm4gdGhpcy5jaGVja1Jlc3VsdHMoZm91bmRQYWdlcywgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgcyBudW1iZXIgYXMgYSBwYXJhbWV0ZXIgYW5kIHRyZWF0cyB0aGF0IG51bWJlciBhcyB0aGUgaW5kZXggb2YgdGhlIHBhZ2VcbiAgICogeW91J3JlIGxvb2tpbmcgZm9yIGluIHRoZSBjb2xsZWN0aW9uIG9mIHBhZ2VzLiBSZXR1cm5zIGEgIHdpemFyZCBwYWdlIG9iamVjdC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFBhZ2VCeUluZGV4KGluZGV4OiBudW1iZXIpOiBDbHJXaXphcmRQYWdlIHtcbiAgICBjb25zdCBwYWdlQ291bnQgPSB0aGlzLnBhZ2VzQ291bnQ7XG4gICAgY29uc3QgcGFnZXNMYXN0SW5kZXg6IG51bWJlciA9IHBhZ2VDb3VudCA+IDEgPyBwYWdlQ291bnQgLSAxIDogMDtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJldHJpZXZlIHBhZ2Ugd2l0aCBpbmRleCBvZiAnICsgaW5kZXgpO1xuICAgIH1cblxuICAgIGlmIChpbmRleCA+IHBhZ2VzTGFzdEluZGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhZ2UgaW5kZXggaXMgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiBwYWdlcyBhcnJheS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYWdlc0FzQXJyYXlbaW5kZXhdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgd2l6YXJkIHBhZ2Ugb2JqZWN0IGFzIGEgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGl0cyBpbmRleCBpbiB0aGVcbiAgICogY29sbGVjdGlvbiBvZiBwYWdlcy5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFBhZ2VJbmRleChwYWdlOiBDbHJXaXphcmRQYWdlKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucGFnZXNBc0FycmF5LmluZGV4T2YocGFnZSk7XG5cbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVlc3RlZCBwYWdlIGNhbm5vdCBiZSBmb3VuZCBpbiBjb2xsZWN0aW9uIG9mIHBhZ2VzLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zb2xpZGF0ZXMgZ3VhcmQgbG9naWMgdGhhdCBwcmV2ZW50cyBhIGNvdXBsZSBvZiB1bmZvcnR1bmF0ZSBlZGdlIGNhc2VzIHdpdGhcbiAgICogbG9vayB1cHMgb24gdGhlIGNvbGxlY3Rpb24gb2YgcGFnZXMuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHByaXZhdGUgY2hlY2tSZXN1bHRzKHJlc3VsdHM6IENscldpemFyZFBhZ2VbXSwgcmVxdWVzdGVkUGFnZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmb3VuZFBhZ2VzQ291bnQ6IG51bWJlciA9IHJlc3VsdHMubGVuZ3RoIHx8IDA7XG5cbiAgICBpZiAoZm91bmRQYWdlc0NvdW50ID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb3JlIHRoYW4gb25lIHBhZ2UgaGFzIHRoZSByZXF1ZXN0ZWQgaWQgJyArIHJlcXVlc3RlZFBhZ2VJZCArICcuJyk7XG4gICAgfSBlbHNlIGlmIChmb3VuZFBhZ2VzQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHBhZ2UgY2FuIGJlIGZvdW5kIHdpdGggdGhlIGlkICcgKyByZXF1ZXN0ZWRQYWdlSWQgKyAnLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0c1swXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0cyB0d28gbnVtZXJpYyBpbmRleGVzIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHdpemFyZCBwYWdlIG9iamVjdHMgdGhhdCBpbmNsdWRlXG4gICAqIGFsbCB3aXphcmQgcGFnZXMgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbiBmcm9tIHRoZSBmaXJzdCBpbmRleCB0byB0aGUgc2Vjb25kLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgcGFnZVJhbmdlKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogQ2xyV2l6YXJkUGFnZVtdIHtcbiAgICBsZXQgcGFnZXM6IENscldpemFyZFBhZ2VbXSA9IFtdO1xuXG4gICAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPCAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0ID09PSBudWxsIHx8IHR5cGVvZiBzdGFydCA9PT0gJ3VuZGVmaW5lZCcgfHwgaXNOYU4oc3RhcnQpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKGVuZCA9PT0gbnVsbCB8fCB0eXBlb2YgZW5kID09PSAndW5kZWZpbmVkJyB8fCBpc05hTihlbmQpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKGVuZCA+IHRoaXMucGFnZXNDb3VudCkge1xuICAgICAgZW5kID0gdGhpcy5wYWdlc0NvdW50O1xuICAgIH1cblxuICAgIHBhZ2VzID0gdGhpcy5wYWdlc0FzQXJyYXk7XG5cbiAgICBpZiAoZW5kIC0gc3RhcnQgPT09IDApIHtcbiAgICAgIC8vIGp1c3QgcmV0dXJuIHRoZSBvbmUgcGFnZSB0aGV5IHdhbnRcbiAgICAgIHJldHVybiBbdGhpcy5nZXRQYWdlQnlJbmRleChzdGFydCldO1xuICAgIH1cblxuICAgIC8vIHNsaWNlIGVuZCBkb2VzIG5vdCBpbmNsdWRlIGl0ZW0gcmVmZXJlbmNlZCBieSBlbmQgaW5kZXgsIHdoaWNoIGlzIHdlaXJkIGZvciB1c2Vyc1xuICAgIC8vIGluY3JlbWVudGluZyBlbmQgaW5kZXggaGVyZSB0byBjb3JyZWN0IHRoYXQgc28gdXNlcnMgYW5kIG90aGVyIG1ldGhvZHNcbiAgICAvLyBkb24ndCBoYXZlIHRvIHRoaW5rIGFib3V0IGl0XG4gICAgZW5kID0gZW5kICsgMTtcblxuICAgIC8vIHNsaWNlIGRvZXMgbm90IHJldHVybiB0aGUgbGFzdCBvbmUgaW4gdGhlIHJhbmdlIGJ1dCBpdCBkb2VzIGluY2x1ZGUgdGhlIGZpcnN0IG9uZVxuICAgIC8vIGRvZXMgbm90IG1vZGlmeSBvcmlnaW5hbCBhcnJheVxuICAgIHJldHVybiBwYWdlcy5zbGljZShzdGFydCwgZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2NlcHRzIHR3byB3aXphcmQgcGFnZSBvYmplY3RzIGFuZCByZXR1cm5zIHRob3NlIHBhZ2Ugb2JqZWN0cyB3aXRoIGFsbCBvdGhlciBwYWdlXG4gICAqIG9iamVjdHMgYmV0d2VlbiB0aGVtIGluIHRoZSBwYWdlIGNvbGxlY3Rpb24uIEl0IGRvZXNuJ3QgY2FyZSB3aGljaCBwYWdlIGlzIGFoZWFkIG9mIHRoZVxuICAgKiBvdGhlciBpbiB0aGUgcGFyYW1ldGVycy4gSXQgd2lsbCBiZSBzbWFydCBlbm91Z2ggdG8gZmlndXJlIHRoYXQgb3V0ICBvbiBpdHMgb3duLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZVJhbmdlRnJvbVBhZ2VzKHBhZ2U6IENscldpemFyZFBhZ2UsIG90aGVyUGFnZTogQ2xyV2l6YXJkUGFnZSk6IENscldpemFyZFBhZ2VbXSB7XG4gICAgY29uc3QgcGFnZUluZGV4ID0gdGhpcy5nZXRQYWdlSW5kZXgocGFnZSk7XG4gICAgY29uc3Qgb3RoZXJQYWdlSW5kZXggPSB0aGlzLmdldFBhZ2VJbmRleChvdGhlclBhZ2UpO1xuICAgIGxldCBzdGFydEluZGV4OiBudW1iZXI7XG4gICAgbGV0IGVuZEluZGV4OiBudW1iZXI7XG5cbiAgICBpZiAocGFnZUluZGV4IDw9IG90aGVyUGFnZUluZGV4KSB7XG4gICAgICBzdGFydEluZGV4ID0gcGFnZUluZGV4O1xuICAgICAgZW5kSW5kZXggPSBvdGhlclBhZ2VJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnRJbmRleCA9IG90aGVyUGFnZUluZGV4O1xuICAgICAgZW5kSW5kZXggPSBwYWdlSW5kZXg7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBhZ2VSYW5nZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSB3aXphcmQgcGFnZSBvYmplY3QgYXMgYSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgdGhlIHdpemFyZCBwYWdlIG9iamVjdCBvZlxuICAgKiB0aGUgcGFnZSBpbW1lZGlhdGVseSBiZWZvcmUgaXQgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbi4gUmV0dXJucyBudWxsIGlmIHRoZXJlIGlzXG4gICAqIG5vIHBhZ2UgYmVmb3JlIHRoZSBwYWdlIGl0IGlzIHBhc3NlZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFByZXZpb3VzUGFnZShwYWdlOiBDbHJXaXphcmRQYWdlKSB7XG4gICAgY29uc3QgbXlQYWdlSW5kZXggPSB0aGlzLmdldFBhZ2VJbmRleChwYWdlKTtcbiAgICBjb25zdCBwcmV2aW91c1BhZ2VJbmRleCA9IG15UGFnZUluZGV4IC0gMTtcbiAgICBpZiAocHJldmlvdXNQYWdlSW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFnZUJ5SW5kZXgocHJldmlvdXNQYWdlSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYSB3aXphcmQgcGFnZSBvYmplY3QgYXMgYSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgYSBCb29sZWFuIHRoYXQgc2F5cyBpZlxuICAgKiB0aGUgcGFnZSB5b3Ugc2VudCBpdCBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIHByZXZpb3VzUGFnZUlzQ29tcGxldGVkKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBpZiAoIXBhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c1BhZ2UgPSB0aGlzLmdldFByZXZpb3VzUGFnZShwYWdlKTtcblxuICAgIGlmIChudWxsID09PSBwcmV2aW91c1BhZ2UpIHtcbiAgICAgIC8vIHBhZ2UgaXMgdGhlIGZpcnN0IHBhZ2UuIG5vIHByZXZpb3VzIHBhZ2UuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJldmlvdXNQYWdlLmNvbXBsZXRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHdpemFyZCBwYWdlIG9iamVjdCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyB0aGUgd2l6YXJkIHBhZ2Ugb2JqZWN0IG9mXG4gICAqIHRoZSBwYWdlIGltbWVkaWF0ZWx5IGFmdGVyIGl0IGluIHRoZSBwYWdlIGNvbGxlY3Rpb24uIFJldHVybnMgbnVsbCBpZiB0aGVyZSBpc1xuICAgKiBubyBwYWdlIGFmdGVyIHRoZSBwYWdlIGl0IGlzIHBhc3NlZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldE5leHRQYWdlKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBjb25zdCBteVBhZ2VJbmRleCA9IHRoaXMuZ2V0UGFnZUluZGV4KHBhZ2UpO1xuICAgIGNvbnN0IG5leHRQYWdlSW5kZXggPSBteVBhZ2VJbmRleCArIDE7XG5cbiAgICBpZiAobmV4dFBhZ2VJbmRleCA+PSB0aGlzLnBhZ2VzQXNBcnJheS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlQnlJbmRleChuZXh0UGFnZUluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHdpemFyZCBwYWdlIG9iamVjdCBhcyBhIHBhcmFtZXRlciBhbmQgZ2VuZXJhdGVzIGEgc3RlcCBpdGVtIGlkIGZyb20gdGhlXG4gICAqIHBhZ2UgSUQuIFJldHVybnMgdGhlIGdlbmVyYXRlZCBzdGVwIGl0ZW0gSUQgYXMgYSBzdHJpbmcuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXRTdGVwSXRlbUlkRm9yUGFnZShwYWdlOiBDbHJXaXphcmRQYWdlKSB7XG4gICAgY29uc3QgcGFnZUlkID0gcGFnZS5pZDtcbiAgICBjb25zdCBwYWdlSWRQYXJ0cyA9IHBhZ2VJZC5zcGxpdCgnLScpLnJldmVyc2UoKTtcblxuICAgIHBhZ2VJZFBhcnRzWzFdID0gJ3N0ZXAnO1xuICAgIHJldHVybiBwYWdlSWRQYXJ0cy5yZXZlcnNlKCkuam9pbignLScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYWxseSBvbmx5IHVzZWQgaW50ZXJuYWxseSB0byBtYXJrIHRoYXQgYSBzcGVjaWZpYyBwYWdlIGhhcyBiZWVuIFwiY29tbWl0dGVkXCIuXG4gICAqIFRoaXMgaW52b2x2ZXMgbWFya2luZyB0aGUgcGFnZSBjb21wbGV0ZSBhbmQgZmlyaW5nIHRoZSBDbHJXaXphcmRQYWdlLm9uQ29tbWl0XG4gICAqIChjbHJXaXphcmRQYWdlT25Db21taXQpIG91dHB1dC4gVGFrZXMgdGhlIHdpemFyZCBwYWdlIG9iamVjdCB0aGF0IHlvdSBpbnRlbmQgdG9cbiAgICogbWFyayBjb21wbGV0ZWQgYXMgYSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBjb21taXRQYWdlKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBjb25zdCBwYWdlSGFzT3ZlcnJpZGVzID0gcGFnZS5zdG9wTmV4dCB8fCBwYWdlLnByZXZlbnREZWZhdWx0O1xuICAgIHBhZ2UuY29tcGxldGVkID0gdHJ1ZTtcblxuICAgIGlmICghcGFnZUhhc092ZXJyaWRlcykge1xuICAgICAgLy8gcHJldmVudCBsb29wIG9mIGV2ZW50IGVtaXNzaW9uOyBhbHRlcm5hdGUgZmxvd3Mgd29yayBvZmZcbiAgICAgIC8vIG9mIGV2ZW50IGVtaXR0ZXJzIHRoaXMgaXMgaG93IHRoZXkgYnJlYWsgdGhhdCBjeWNsZS5cbiAgICAgIHBhZ2Uub25Db21taXQuZW1pdChwYWdlLmlkKTtcbiAgICB9XG4gIH1cblxuICAvLyB1c2VkIGJ5IHRoZSBuYXZTZXJ2aWNlIHRvIG5hdmlnYXRlIGJhY2sgdG8gZmlyc3QgcG9zc2libGUgc3RlcCBhZnRlclxuICAvLyBwYWdlcyBhcmUgcmVzZXRcblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBfcGFnZXNSZXNldCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEFuIG9ic2VydmFibGUgdGhhdCB0aGUgbmF2aWdhdGlvbiBzZXJ2aWNlIGxpc3RlbnMgdG8gaW4gb3JkZXIgdG8ga25vdyB3aGVuXG4gICAqIHRoZSBwYWdlIGNvbGxlY3Rpb24gY29tcGxldGVkIHN0YXRlcyBoYXZlIGJlZW4gcmVzZXQgdG8gZmFsc2Ugc28gdGhhdCB3YXkgaXRcbiAgICogY2FuIGFsc28gcmVzZXQgdGhlIG5hdmlnYXRpb24gdG8gbWFrZSB0aGUgZmlyc3QgcGFnZSBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uXG4gICAqIGN1cnJlbnQvYWN0aXZlLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhZ2VzUmVzZXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzUmVzZXQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhbGwgY29tcGxldGVkIHN0YXRlcyBvZiB0aGUgcGFnZXMgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbiB0byBmYWxzZSBhbmRcbiAgICogbm90aWZpZXMgdGhlIG5hdmlnYXRpb24gc2VydmljZSB0byBsaWtld2lzZSByZXNldCB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHRoaXMucGFnZXNBc0FycmF5LmZvckVhY2goKHBhZ2U6IENscldpemFyZFBhZ2UpID0+IHtcbiAgICAgIHBhZ2UuY29tcGxldGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5fcGFnZXNSZXNldC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGxzIHRocm91Z2ggYWxsIHRoZSBwYWdlcyBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm9cbiAgICogaW5jb21wbGV0ZSBwYWdlcyBzYW5kd2ljaGVkIGJldHdlZW4gY29tcGxldGVkIHBhZ2VzIGluIHRoZSB3b3JrZmxvdy4gSWRlbnRpZmllc1xuICAgKiB0aGUgZmlyc3QgaW5jb21wbGV0ZSBwYWdlIGluZGV4IGFuZCBzZXRzIGFsbCBwYWdlcyBiZWhpbmQgaXQgdG8gYSBjb21wbGV0ZWRcbiAgICogc3RhdGUgb2YgZmFsc2UuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVDb21wbGV0ZWRTdGF0ZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RJbmNvbXBsZXRlSW5kZXggPSB0aGlzLmZpbmRGaXJzdEluY29tcGxldGVQYWdlSW5kZXgoKTtcblxuICAgIGlmIChmaXJzdEluY29tcGxldGVJbmRleCA9PT0gdGhpcy5wYWdlc0FzQXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgLy8gYWxsIGNvbXBsZXRlIG5vIG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2VzQXNBcnJheS5mb3JFYWNoKChwYWdlOiBDbHJXaXphcmRQYWdlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoaW5kZXggPiBmaXJzdEluY29tcGxldGVJbmRleCkge1xuICAgICAgICBwYWdlLmNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGluY29tcGxldGUgcGFnZSBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZmluZEZpcnN0SW5jb21wbGV0ZVBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgIGxldCByZXR1cm5JbmRleDogbnVtYmVyID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VzQXNBcnJheS5mb3JFYWNoKChwYWdlOiBDbHJXaXphcmRQYWdlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAobnVsbCA9PT0gcmV0dXJuSW5kZXggJiYgZmFsc2UgPT09IHBhZ2UuY29tcGxldGVkKSB7XG4gICAgICAgIHJldHVybkluZGV4ID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBmYWxsdGhyb3VnaCwgYWxsIGNvbXBsZXRlZCwgcmV0dXJuIGxhc3QgcGFnZVxuICAgIGlmIChudWxsID09PSByZXR1cm5JbmRleCkge1xuICAgICAgcmV0dXJuSW5kZXggPSB0aGlzLnBhZ2VzQ291bnQgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiByZXR1cm5JbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kRmlyc3RJbmNvbXBsZXRlUGFnZSgpOiBDbHJXaXphcmRQYWdlIHtcbiAgICBjb25zdCBteUluY29tcGxldGVJbmRleCA9IHRoaXMuZmluZEZpcnN0SW5jb21wbGV0ZVBhZ2VJbmRleCgpO1xuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVtteUluY29tcGxldGVJbmRleF07XG4gIH1cbn1cbiJdfQ==