@elderbyte/ngx-starter 17.10.0 → 17.11.0-beta2

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 (352) hide show
  1. package/esm2022/lib/common/data/datasource/data-source-base.mjs +1 -1
  2. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +1 -1
  3. package/esm2022/lib/common/data/filters/filter-commons.mjs +23 -0
  4. package/esm2022/lib/common/data/filters/filter-value.mjs +2 -0
  5. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  6. package/esm2022/lib/common/format/curency-format-util.mjs +43 -0
  7. package/esm2022/lib/common/format/duration-format-util.mjs +44 -0
  8. package/esm2022/lib/common/format/iso-interval-format-util.mjs +109 -0
  9. package/esm2022/lib/common/format/public_api.mjs +4 -1
  10. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  11. package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
  12. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
  13. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  14. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  15. package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
  16. package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
  17. package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
  18. package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
  19. package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
  20. package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
  21. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  22. package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
  23. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
  24. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
  25. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  26. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
  27. package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
  28. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  29. package/esm2022/lib/components/badge/elder-badge.directive.mjs +44 -22
  30. package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
  31. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  32. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
  33. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  34. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  35. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
  36. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  37. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  38. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
  39. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
  40. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
  41. package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
  42. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  43. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  44. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  45. package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
  46. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  47. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  48. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  49. package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
  50. package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
  51. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +16 -13
  52. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  53. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  54. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
  55. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  56. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  57. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
  58. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  59. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
  60. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  61. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
  62. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
  63. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  64. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
  65. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +10 -10
  66. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
  67. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
  68. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
  69. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
  70. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
  71. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
  72. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
  73. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
  74. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  75. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  76. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
  77. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  78. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  79. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  80. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
  82. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  83. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  84. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  85. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
  86. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  87. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
  88. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  89. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
  90. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
  91. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  92. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
  93. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  94. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  95. package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
  96. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
  97. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
  98. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  99. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
  100. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
  101. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  102. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  103. package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
  104. package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
  105. package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
  106. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
  107. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  108. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  109. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  110. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  111. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  112. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  113. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  114. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  115. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
  116. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +11 -8
  117. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  118. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  119. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  120. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  121. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  122. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  123. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  124. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  125. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
  126. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
  127. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
  128. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
  129. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
  130. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
  131. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
  132. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  133. package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
  134. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
  135. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +2 -0
  136. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +15 -6
  137. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
  138. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
  139. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
  140. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +39 -28
  141. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +50 -17
  142. package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
  143. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +46 -0
  144. package/esm2022/lib/components/forms/search/filter/include-exclude-input-converter.mjs +165 -0
  145. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +2 -0
  146. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +4 -4
  147. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  148. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
  149. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
  150. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
  151. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
  152. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  153. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  154. package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
  155. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
  156. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  157. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
  158. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  159. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  160. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  161. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  162. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  163. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  164. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  165. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  166. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  167. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
  168. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
  169. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
  170. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
  171. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  172. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  173. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
  174. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
  175. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  176. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
  177. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  178. package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
  179. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  180. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  181. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
  182. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
  183. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +231 -0
  184. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  185. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +7 -4
  186. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +12 -12
  187. package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
  188. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  189. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +4 -4
  190. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  191. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  192. package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
  193. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +5 -16
  194. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +15 -46
  195. package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -4
  196. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
  197. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +8 -10
  198. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
  199. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
  200. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +70 -4
  201. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  202. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  203. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
  204. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
  205. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
  206. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
  207. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +4 -4
  208. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  209. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  210. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
  211. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  212. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  213. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  214. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
  215. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  216. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
  217. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
  218. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  219. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  220. package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
  221. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  222. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
  223. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
  224. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
  225. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
  226. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +27 -7
  227. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +38 -0
  228. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +66 -0
  229. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +4 -14
  230. package/esm2022/lib/components/select/elder-select-base.mjs +9 -9
  231. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
  232. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  233. package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
  234. package/esm2022/lib/components/select/elder-select.module.mjs +35 -10
  235. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +70 -0
  236. package/esm2022/lib/components/select/filter/elder-chips-filter.directive.mjs +174 -0
  237. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +58 -0
  238. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
  239. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  240. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +14 -7
  241. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +10 -6
  242. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  243. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
  244. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +83 -0
  245. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  246. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  247. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  248. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  249. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +9 -14
  250. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
  251. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  252. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  253. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  254. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  255. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  256. package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
  257. package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
  258. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  259. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
  260. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  261. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  262. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  263. package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
  264. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  265. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  266. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  267. package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
  268. package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
  269. package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
  270. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  271. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +4 -4
  272. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
  273. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +4 -4
  274. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
  275. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  276. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +4 -4
  277. package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
  278. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +4 -4
  279. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
  280. package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
  281. package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
  282. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +4 -4
  283. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  284. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  285. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  286. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
  287. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
  288. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
  289. package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
  290. package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
  291. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
  292. package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
  293. package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
  294. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  295. package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
  296. package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
  297. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
  298. package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
  299. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  300. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
  301. package/esm2022/lib/pipes/iso-duration.pipe.mjs +8 -26
  302. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  303. package/esm2022/lib/pipes/iso-interval.pipe.mjs +24 -73
  304. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  305. package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
  306. package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
  307. package/fesm2022/elderbyte-ngx-starter.mjs +8822 -7833
  308. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  309. package/lib/common/data/filters/filter-commons.d.ts +12 -0
  310. package/lib/common/data/filters/filter-value.d.ts +1 -0
  311. package/lib/common/format/curency-format-util.d.ts +24 -0
  312. package/lib/common/format/duration-format-util.d.ts +23 -0
  313. package/lib/common/format/iso-interval-format-util.d.ts +22 -0
  314. package/lib/common/format/public_api.d.ts +3 -0
  315. package/lib/components/badge/elder-badge.directive.d.ts +10 -1
  316. package/lib/components/currency/elder-currency.pipe.d.ts +7 -4
  317. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +4 -2
  318. package/lib/components/forms/search/domain/input/input-value.d.ts +1 -0
  319. package/lib/components/forms/search/domain/input/search-input-state.d.ts +14 -4
  320. package/lib/components/forms/search/domain/input/search-input.d.ts +6 -1
  321. package/lib/components/forms/search/elder-search-context.directive.d.ts +7 -2
  322. package/lib/components/forms/search/elder-search-input.directive.d.ts +18 -7
  323. package/lib/components/forms/search/filter/default-input-filter-converter.d.ts +31 -0
  324. package/lib/components/forms/search/filter/include-exclude-input-converter.d.ts +78 -0
  325. package/lib/components/forms/search/filter/input-filter-converter.d.ts +16 -0
  326. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +3 -3
  327. package/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.d.ts → elder-suggestion-panel.component.d.ts} +17 -6
  328. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +3 -3
  329. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +3 -3
  330. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +3 -3
  331. package/lib/components/measures/elder-quantity.pipe.d.ts +4 -15
  332. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +2 -4
  333. package/lib/components/measures/util/elder-quantity.service.d.ts +12 -0
  334. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +9 -1
  335. package/lib/components/select/auto/elder-auto-select-first.service.d.ts +23 -0
  336. package/lib/components/select/auto/elder-auto-select-suggest-first.directive.d.ts +32 -0
  337. package/lib/components/select/auto/elder-select-first-util.d.ts +2 -2
  338. package/lib/components/select/elder-select-base.d.ts +1 -1
  339. package/lib/components/select/elder-select.module.d.ts +9 -1
  340. package/lib/components/select/filter/elder-chip-filter-style-resolver.d.ts +19 -0
  341. package/lib/components/select/filter/elder-chips-filter.directive.d.ts +68 -0
  342. package/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.d.ts +32 -0
  343. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +5 -1
  344. package/lib/components/select/multi/elder-search-include-exclude.directive.d.ts +39 -0
  345. package/lib/components/select/single/elder-select/elder-select.component.d.ts +0 -1
  346. package/lib/pipes/iso-duration.pipe.d.ts +0 -3
  347. package/lib/pipes/iso-interval.pipe.d.ts +5 -12
  348. package/package.json +1 -1
  349. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +95 -0
  350. package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
  351. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  352. /package/src/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.scss → elder-suggestion-panel.component.scss} +0 -0
@@ -274,10 +274,10 @@ export class ElderTableActivationDirective {
274
274
  return item;
275
275
  }
276
276
  }
277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableActivationDirective, deps: [{ token: i1.ElderTableComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
278
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderTableActivationDirective, isStandalone: true, selector: "elder-table[elderTableActivation]", inputs: { activationOptions: ["elderTableActivation", "activationOptions"], activeItem: "activeItem" }, outputs: { activeItemEventChange: "activeItemEventChange", activeItemChange: "activeItemChange" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderTableActivation"], ngImport: i0 }); }
277
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableActivationDirective, deps: [{ token: i1.ElderTableComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
278
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderTableActivationDirective, isStandalone: true, selector: "elder-table[elderTableActivation]", inputs: { activationOptions: ["elderTableActivation", "activationOptions"], activeItem: "activeItem" }, outputs: { activeItemEventChange: "activeItemEventChange", activeItemChange: "activeItemChange" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderTableActivation"], ngImport: i0 }); }
279
279
  }
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableActivationDirective, decorators: [{
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableActivationDirective, decorators: [{
281
281
  type: Directive,
282
282
  args: [{
283
283
  selector: 'elder-table[elderTableActivation]',
@@ -297,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
297
297
  }], activeItem: [{
298
298
  type: Input
299
299
  }] } });
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBUWhFLE1BQU0sT0FBTyw2QkFBNkI7SUFzQnhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQTNCbEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsK0JBQTBCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFFNUUs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O1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OEdBL1VVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3RkFxQlEsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLHNCQUFzQjtnQkFzRXRCLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUN4QixxQkFBcUI7c0JBRC9CLE1BQU07Z0JBTUksZ0JBQWdCO3NCQUQxQixNQUFNO2dCQVVJLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlclRhYmxlUm93RGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWJsZS1yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RWxkZXJUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zfSBmcm9tICcuL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0l0ZW1BY3RpdmF0aW9uT3B0aW9uc30gZnJvbSAnLi9pdGVtLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0l0ZW1BY3RpdmF0aW9uRXZlbnR9IGZyb20gJy4vaXRlbS1hY3RpdmF0aW9uLWV2ZW50JztcbmltcG9ydCB7QWN0aXZhdGlvbkV2ZW50U291cmNlfSBmcm9tICcuL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcbmltcG9ydCB7RWxkZXJBY3RpdmF0aW9uQ29udGV4dH0gZnJvbSAnLi9lbGRlci1hY3RpdmF0aW9uLWNvbnRleHQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlW2VsZGVyVGFibGVBY3RpdmF0aW9uXScsXG4gICAgZXhwb3J0QXM6ICdlbGRlclRhYmxlQWN0aXZhdGlvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQWN0aXZhdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEVsZGVyQWN0aXZhdGlvbkNvbnRleHQ8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbUFjdGl2YXRpb25FdmVudFN1YmplY3QgPSBuZXcgU3ViamVjdDxJdGVtQWN0aXZhdGlvbkV2ZW50PFQ+PigpO1xuXG4gIHByaXZhdGUgX2RhdGE6IFRbXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdPihbXSk7XG5cbiAgQElucHV0KCdlbGRlclRhYmxlQWN0aXZhdGlvbicpXG4gIHB1YmxpYyBhY3RpdmF0aW9uT3B0aW9uczogRWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zID0ge307XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGRlclRhYmxlOiBFbGRlclRhYmxlQ29tcG9uZW50XG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHJvd3MkID0gdGhpcy5lbGRlclRhYmxlLnJvd3MkO1xuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpLFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5fZGF0YSA9IGRhdGEpXG4gICAgKTsrXG5cbiAgICBjb21iaW5lTGF0ZXN0KFtyb3dzJCwgZGF0YSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGRhdGFdKSA9PiB7XG4gICAgICAgIHRoaXMucm93cyQubmV4dChcbiAgICAgICAgICB0aGlzLnJvd0RhdGFVcGRhdGVkKHJvd3MsIGRhdGEpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm93cyQsIHRoaXMuYWN0aXZlSXRlbSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGFjdGl2ZUl0ZW1dKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93c0FjdGl2YXRpb24ocm93cywgYWN0aXZlSXRlbSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChkYyA9PiBkYy5kYXRhU291cmNlKSxcbiAgICAgIHN3aXRjaE1hcChkcyA9PiBkcy5kYXRhQ2hhbmdlZCksXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsZXRlZElkcz8ubGVuZ3RoID4gMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkZWxldGVFdmVudCA9PiB7XG4gICAgICAgICBkZWxldGVFdmVudC5kZWxldGVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5kZWFjdGl2YXRlQnlJZChpZCkpXG4gICAgICB9fSlcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIC8vIHRoaXMuZWxkZXJUYWJsZS5yb3dzJC5nZXRWYWx1ZSgpLmZvckVhY2gociA9PiByLmJpbmRUYWJsZUFjdGl2YXRpb24obnVsbCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLlxuICAgKiBIb3N0IExpc3RlbmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0FjdGl2ZUl0ZW06IFQ7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIG5ld0FjdGl2ZUl0ZW0gPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVBbmRGb2N1cyhuZXdBY3RpdmVJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUub25JdGVtQ2xpY2soYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGFjdGl2ZSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8SXRlbUFjdGl2YXRpb25FdmVudDxUPj4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1BY3RpdmF0aW9uRXZlbnRTdWJqZWN0O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUNoYW5nZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhY3RpdmVJdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGFjdGl2YXRlKGl0ZW06IFQsIG9wdGlvbnM6IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbShpdGVtLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZUFuZEZvY3VzKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpXG4gIH1cblxuICBwdWJsaWMgaXNJdGVtQWN0aXZlKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtRXF1YWxzKHRoaXMuYWN0aXZlSXRlbSwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzSXRlbUZvY3VzKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0Zvckl0ZW0oaXRlbSk7XG4gICAgcmV0dXJuIHJvdz8uaGFzRm9jdXM7XG4gIH1cblxuICBwdWJsaWMgbmV4dENsb3NlVG8oYWN0aXZlOiBUKTogVCB7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMubmV4dFJvd0l0ZW0oKTtcbiAgICBpZiAobmV4dCAhPT0gYWN0aXZlKSB7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbTogVCwgb3B0aW9uczogSXRlbUFjdGl2YXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5pdGVtQWN0aXZhdGlvbkV2ZW50U3ViamVjdC5uZXh0KG5ldyBJdGVtQWN0aXZhdGlvbkV2ZW50KGl0ZW0sIG9wdGlvbnMuc291cmNlLCBvcHRpb25zLmZvY3VzKSlcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93c0FjdGl2YXRpb24ocm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLCBhY3RpdmVJdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZUl0ZW0pO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSb3dBY3RpdmF0aW9uKHJvdywgYWN0aXZlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dBY3RpdmF0aW9uKHJvdzogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiwgYWN0aXZlSWQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChyb3cubW9kZWwpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1FcXVhbHNJZChyb3cubW9kZWwsIGFjdGl2ZUlkKSkge1xuICAgICAgICBpZiAoIXJvdy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICByb3cuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWN0aXZhdGVkIHJvdzogJywgcm93KTtcbiAgICAgICAgICBpZiAoIXJvdy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcm93LmJyaW5nVG9WaWV3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3cuYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0RhdGFVcGRhdGVkKFxuICAgIHJvd3M6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXSxcbiAgICBkYXRhOiBUW11cbiAgKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRm91bmQgcm93czonLCByb3dzKTtcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgIHJvdy5iaW5kVGFibGVBY3RpdmF0aW9uKHRoaXMpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3dzO1xuICB9XG5cblxuICBwcml2YXRlIGRlYWN0aXZhdGVCeUlkKGlkOiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZSk7XG4gICAgICBpZiAoYWN0aXZlSWQgPT0gaWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShudWxsLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dGb3JJdGVtKGl0ZW06IFQpOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cyQuZ2V0VmFsdWUoKTtcbiAgICByZXR1cm4gcm93cy5maW5kKHIgPT4gci5tb2RlbCA9PT0gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9BY3RpdmF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWN0aXZlSXRlbSB8fCB0aGlzLmFjdGl2YXRpb25PcHRpb25zLm1vZGUgPT09ICdhbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMucm93KSB7XG4gICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaXJzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVMYXN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzQWN0aXZlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRmlyc3QoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUF0SW5kZXgoMCk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c1Jvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIC0tY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IHJvd3MubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG5cbiAgICBpZiAoY3VycmVudEluZGV4IDwgKHJvd3MubGVuZ3RoIC0gMSkpIHtcbiAgICAgICsrY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEl0ZW1BdEluZGV4KGN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRJdGVtSW5kZXgoYWN0aXZlSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1BdEluZGV4KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleF07XG4gIH1cblxuICBwcml2YXRlIGZpbmRJdGVtSW5kZXgoaXRlbTogVCk6IG51bWJlciB7XG4gICAgY29uc3QgbmVlZGxlSWQgPSB0aGlzLmdldElkKGl0ZW0pO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmRJbmRleChpdG0gPT4gdGhpcy5pdGVtRXF1YWxzSWQoaXRtLCBuZWVkbGVJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzKGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gdGhpcy5nZXRJZChiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUVxdWFsc0lkKGE6IFQsIG5lZWRsZUlkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gbmVlZGxlSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldElkKGl0ZW06IFQpOiBhbnkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjb25zdCBkYyA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICAgIHJldHVybiBkYz8uZGF0YVNvdXJjZT8uZ2V0SWQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBUWhFLE1BQU0sT0FBTyw2QkFBNkI7SUFzQnhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQTNCbEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsK0JBQTBCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFFNUUs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O1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7K0dBL1VVLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3RkFxQlEsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLHNCQUFzQjtnQkFzRXRCLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUN4QixxQkFBcUI7c0JBRC9CLE1BQU07Z0JBTUksZ0JBQWdCO3NCQUQxQixNQUFNO2dCQVVJLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlclRhYmxlUm93RGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWJsZS1yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RWxkZXJUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zfSBmcm9tICcuL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0l0ZW1BY3RpdmF0aW9uT3B0aW9uc30gZnJvbSAnLi9pdGVtLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0l0ZW1BY3RpdmF0aW9uRXZlbnR9IGZyb20gJy4vaXRlbS1hY3RpdmF0aW9uLWV2ZW50JztcbmltcG9ydCB7QWN0aXZhdGlvbkV2ZW50U291cmNlfSBmcm9tICcuL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcbmltcG9ydCB7RWxkZXJBY3RpdmF0aW9uQ29udGV4dH0gZnJvbSAnLi9lbGRlci1hY3RpdmF0aW9uLWNvbnRleHQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlW2VsZGVyVGFibGVBY3RpdmF0aW9uXScsXG4gICAgZXhwb3J0QXM6ICdlbGRlclRhYmxlQWN0aXZhdGlvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQWN0aXZhdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEVsZGVyQWN0aXZhdGlvbkNvbnRleHQ8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbUFjdGl2YXRpb25FdmVudFN1YmplY3QgPSBuZXcgU3ViamVjdDxJdGVtQWN0aXZhdGlvbkV2ZW50PFQ+PigpO1xuXG4gIHByaXZhdGUgX2RhdGE6IFRbXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdPihbXSk7XG5cbiAgQElucHV0KCdlbGRlclRhYmxlQWN0aXZhdGlvbicpXG4gIHB1YmxpYyBhY3RpdmF0aW9uT3B0aW9uczogRWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zID0ge307XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGRlclRhYmxlOiBFbGRlclRhYmxlQ29tcG9uZW50XG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHJvd3MkID0gdGhpcy5lbGRlclRhYmxlLnJvd3MkO1xuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpLFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5fZGF0YSA9IGRhdGEpXG4gICAgKTsrXG5cbiAgICBjb21iaW5lTGF0ZXN0KFtyb3dzJCwgZGF0YSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGRhdGFdKSA9PiB7XG4gICAgICAgIHRoaXMucm93cyQubmV4dChcbiAgICAgICAgICB0aGlzLnJvd0RhdGFVcGRhdGVkKHJvd3MsIGRhdGEpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm93cyQsIHRoaXMuYWN0aXZlSXRlbSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGFjdGl2ZUl0ZW1dKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93c0FjdGl2YXRpb24ocm93cywgYWN0aXZlSXRlbSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChkYyA9PiBkYy5kYXRhU291cmNlKSxcbiAgICAgIHN3aXRjaE1hcChkcyA9PiBkcy5kYXRhQ2hhbmdlZCksXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsZXRlZElkcz8ubGVuZ3RoID4gMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkZWxldGVFdmVudCA9PiB7XG4gICAgICAgICBkZWxldGVFdmVudC5kZWxldGVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5kZWFjdGl2YXRlQnlJZChpZCkpXG4gICAgICB9fSlcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIC8vIHRoaXMuZWxkZXJUYWJsZS5yb3dzJC5nZXRWYWx1ZSgpLmZvckVhY2gociA9PiByLmJpbmRUYWJsZUFjdGl2YXRpb24obnVsbCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLlxuICAgKiBIb3N0IExpc3RlbmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0FjdGl2ZUl0ZW06IFQ7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIG5ld0FjdGl2ZUl0ZW0gPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVBbmRGb2N1cyhuZXdBY3RpdmVJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUub25JdGVtQ2xpY2soYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGFjdGl2ZSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8SXRlbUFjdGl2YXRpb25FdmVudDxUPj4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1BY3RpdmF0aW9uRXZlbnRTdWJqZWN0O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUNoYW5nZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhY3RpdmVJdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGFjdGl2YXRlKGl0ZW06IFQsIG9wdGlvbnM6IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbShpdGVtLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZUFuZEZvY3VzKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpXG4gIH1cblxuICBwdWJsaWMgaXNJdGVtQWN0aXZlKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtRXF1YWxzKHRoaXMuYWN0aXZlSXRlbSwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzSXRlbUZvY3VzKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0Zvckl0ZW0oaXRlbSk7XG4gICAgcmV0dXJuIHJvdz8uaGFzRm9jdXM7XG4gIH1cblxuICBwdWJsaWMgbmV4dENsb3NlVG8oYWN0aXZlOiBUKTogVCB7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMubmV4dFJvd0l0ZW0oKTtcbiAgICBpZiAobmV4dCAhPT0gYWN0aXZlKSB7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbTogVCwgb3B0aW9uczogSXRlbUFjdGl2YXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5pdGVtQWN0aXZhdGlvbkV2ZW50U3ViamVjdC5uZXh0KG5ldyBJdGVtQWN0aXZhdGlvbkV2ZW50KGl0ZW0sIG9wdGlvbnMuc291cmNlLCBvcHRpb25zLmZvY3VzKSlcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93c0FjdGl2YXRpb24ocm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLCBhY3RpdmVJdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZUl0ZW0pO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSb3dBY3RpdmF0aW9uKHJvdywgYWN0aXZlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dBY3RpdmF0aW9uKHJvdzogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiwgYWN0aXZlSWQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChyb3cubW9kZWwpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1FcXVhbHNJZChyb3cubW9kZWwsIGFjdGl2ZUlkKSkge1xuICAgICAgICBpZiAoIXJvdy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICByb3cuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWN0aXZhdGVkIHJvdzogJywgcm93KTtcbiAgICAgICAgICBpZiAoIXJvdy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcm93LmJyaW5nVG9WaWV3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3cuYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0RhdGFVcGRhdGVkKFxuICAgIHJvd3M6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXSxcbiAgICBkYXRhOiBUW11cbiAgKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRm91bmQgcm93czonLCByb3dzKTtcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgIHJvdy5iaW5kVGFibGVBY3RpdmF0aW9uKHRoaXMpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3dzO1xuICB9XG5cblxuICBwcml2YXRlIGRlYWN0aXZhdGVCeUlkKGlkOiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZSk7XG4gICAgICBpZiAoYWN0aXZlSWQgPT0gaWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShudWxsLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dGb3JJdGVtKGl0ZW06IFQpOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cyQuZ2V0VmFsdWUoKTtcbiAgICByZXR1cm4gcm93cy5maW5kKHIgPT4gci5tb2RlbCA9PT0gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9BY3RpdmF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWN0aXZlSXRlbSB8fCB0aGlzLmFjdGl2YXRpb25PcHRpb25zLm1vZGUgPT09ICdhbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMucm93KSB7XG4gICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaXJzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVMYXN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzQWN0aXZlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRmlyc3QoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUF0SW5kZXgoMCk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c1Jvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIC0tY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IHJvd3MubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG5cbiAgICBpZiAoY3VycmVudEluZGV4IDwgKHJvd3MubGVuZ3RoIC0gMSkpIHtcbiAgICAgICsrY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEl0ZW1BdEluZGV4KGN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRJdGVtSW5kZXgoYWN0aXZlSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1BdEluZGV4KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleF07XG4gIH1cblxuICBwcml2YXRlIGZpbmRJdGVtSW5kZXgoaXRlbTogVCk6IG51bWJlciB7XG4gICAgY29uc3QgbmVlZGxlSWQgPSB0aGlzLmdldElkKGl0ZW0pO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmRJbmRleChpdG0gPT4gdGhpcy5pdGVtRXF1YWxzSWQoaXRtLCBuZWVkbGVJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzKGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gdGhpcy5nZXRJZChiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUVxdWFsc0lkKGE6IFQsIG5lZWRsZUlkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gbmVlZGxlSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldElkKGl0ZW06IFQpOiBhbnkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjb25zdCBkYyA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICAgIHJldHVybiBkYz8uZGF0YVNvdXJjZT8uZ2V0SWQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -12,10 +12,10 @@ export class ElderNumberCellDirective {
12
12
  matSortHeader.arrowPosition = 'before';
13
13
  }
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i1.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderNumberCellDirective, isStandalone: true, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i1.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderNumberCellDirective, isStandalone: true, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[elderNumberCell]',
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
27
27
  }], ctorParameters: () => [{ type: i1.MatSortHeader, decorators: [{
28
28
  type: Optional
29
29
  }] }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbnVtYmVyLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItbnVtYmVyLWNlbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHbEQ7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxZQUNzQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUVoRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixhQUFhLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztTQUN4QztJQUNILENBQUM7OEdBUlUsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNGLDJCQUEyQixFQUFFLE1BQU07cUJBQ3RDO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBSUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFNvcnRIZWFkZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIG1lYW50IHRvIGJlIHBsYWNlZCBvbiB0YWJsZSBjZWxscyBjb250YWluaW5nIG51bWJlcnMuXG4gKiBJdCB3aWxsIHJpZ2h0IGFsaWduIGl0cyBjb250ZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlck51bWJlckNlbGxdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZWxkZXItbnVtYmVyLWNlbGxdJzogJ3RydWUnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTnVtYmVyQ2VsbERpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBtYXRTb3J0SGVhZGVyOiBNYXRTb3J0SGVhZGVyXG4gICkge1xuICAgIGlmIChtYXRTb3J0SGVhZGVyKSB7XG4gICAgICBtYXRTb3J0SGVhZGVyLmFycm93UG9zaXRpb24gPSAnYmVmb3JlJztcbiAgICB9XG4gIH1cblxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbnVtYmVyLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItbnVtYmVyLWNlbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHbEQ7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxZQUNzQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUVoRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixhQUFhLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztTQUN4QztJQUNILENBQUM7K0dBUlUsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNGLDJCQUEyQixFQUFFLE1BQU07cUJBQ3RDO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBSUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFNvcnRIZWFkZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIG1lYW50IHRvIGJlIHBsYWNlZCBvbiB0YWJsZSBjZWxscyBjb250YWluaW5nIG51bWJlcnMuXG4gKiBJdCB3aWxsIHJpZ2h0IGFsaWduIGl0cyBjb250ZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlck51bWJlckNlbGxdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZWxkZXItbnVtYmVyLWNlbGxdJzogJ3RydWUnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTnVtYmVyQ2VsbERpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBtYXRTb3J0SGVhZGVyOiBNYXRTb3J0SGVhZGVyXG4gICkge1xuICAgIGlmIChtYXRTb3J0SGVhZGVyKSB7XG4gICAgICBtYXRTb3J0SGVhZGVyLmFycm93UG9zaXRpb24gPSAnYmVmb3JlJztcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -63,10 +63,10 @@ export class ElderPaginatorIntl extends MatPaginatorIntl {
63
63
  this.previousPageLabel = previousPageLabel !== this._previousPageKey ? previousPageLabel : 'Previous page';
64
64
  this.changes.next();
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderPaginatorIntl, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderPaginatorIntl }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderPaginatorIntl, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderPaginatorIntl }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderPaginatorIntl, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderPaginatorIntl, decorators: [{
70
70
  type: Injectable
71
71
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcGFnaW5hdG9yLWludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci1wYWdpbmF0b3ItaW50bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFJekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQWlCdEQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsU0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFGQSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXRCckM7Ozs7b0ZBSTRFO1FBRTNELDJCQUFzQixHQUFHLDhCQUE4QixDQUFDO1FBQ3hELHFCQUFnQixHQUFHLHdCQUF3QixDQUFDO1FBQzVDLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO1FBQzNDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMsaUJBQVksR0FBRyxvQkFBb0IsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztRQXNCN0Q7Ozs7b0ZBSTRFO1FBRXJFLGtCQUFhLEdBQUcsQ0FDckIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE1BQWMsRUFDTixFQUFFO1lBRVYsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8sS0FBSyxJQUFJLENBQUMsdUJBQXVCLElBQUksTUFBTSxFQUFFLENBQUM7YUFDdEQ7WUFFRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFN0IsTUFBTSxVQUFVLEdBQVcsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUMzQyxNQUFNLFFBQVEsR0FBVyxVQUFVLEdBQUcsTUFBTTtnQkFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBRTFCLE9BQU8sR0FBRyxVQUFVLEdBQUcsQ0FBQyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckYsQ0FBQyxDQUFBO1FBL0JDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBNEJEOzs7O2dGQUk0RTtJQUVwRSxlQUFlO1FBRXJCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4SCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDNUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqRyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBRTNHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0FwRlUsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdFBhZ2luYXRvckludGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVsZGVyUGFnaW5hdG9ySW50bCBleHRlbmRzIE1hdFBhZ2luYXRvckludGwge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1Db3VudFNlcGFyYXRvcktleSA9ICdwYWdpbmF0b3IuaXRlbUNvdW50U2VwYXJhdG9yJztcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXNQZXJQYWdlS2V5ID0gJ3BhZ2luYXRvci5pdGVtc1BlclBhZ2UnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maXJzdFBhZ2VMYWJlbEtleSA9ICdwYWdpbmF0b3IuZmlyc3RQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfbGFzdFBhZ2VLZXkgPSAncGFnaW5hdG9yLmxhc3RQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV4dFBhZ2VLZXkgPSAncGFnaW5hdG9yLm5leHRQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJldmlvdXNQYWdlS2V5ID0gJ3BhZ2luYXRvci5wcmV2aW91c1BhZ2UnO1xuXG4gIHByaXZhdGUgaXRlbUNvdW50U2VwYXJhdG9yTGFiZWw6IHN0cmluZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGU6IEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVscygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2xhdGVMYWJlbHMoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXRSYW5nZUxhYmVsID0gKFxuICAgIHBhZ2U6IG51bWJlcixcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgIGxlbmd0aDogbnVtYmVyXG4gICk6IHN0cmluZyA9PiB7XG5cbiAgICBpZiAobGVuZ3RoID09PSAwIHx8IHBhZ2VTaXplID09PSAwKSB7XG4gICAgICByZXR1cm4gYDAgJHt0aGlzLml0ZW1Db3VudFNlcGFyYXRvckxhYmVsfSAke2xlbmd0aH1gO1xuICAgIH1cblxuICAgIGxlbmd0aCA9IE1hdGgubWF4KGxlbmd0aCwgMCk7XG5cbiAgICBjb25zdCBzdGFydEluZGV4OiBudW1iZXIgPSBwYWdlICogcGFnZVNpemU7XG4gICAgY29uc3QgZW5kSW5kZXg6IG51bWJlciA9IHN0YXJ0SW5kZXggPCBsZW5ndGhcbiAgICAgID8gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplLCBsZW5ndGgpXG4gICAgICA6IHN0YXJ0SW5kZXggKyBwYWdlU2l6ZTtcblxuICAgIHJldHVybiBgJHtzdGFydEluZGV4ICsgMX0gLSAke2VuZEluZGV4fSAke3RoaXMuaXRlbUNvdW50U2VwYXJhdG9yTGFiZWx9ICR7bGVuZ3RofWA7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHRyYW5zbGF0ZUxhYmVscygpOiB2b2lkIHtcblxuICAgIGNvbnN0IGl0ZW1Db3VudFNlcGFyYXRvckxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9pdGVtQ291bnRTZXBhcmF0b3JLZXkpO1xuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9pdGVtc1BlclBhZ2VLZXkpO1xuICAgIGNvbnN0IGZpcnN0UGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9maXJzdFBhZ2VMYWJlbEtleSk7XG4gICAgY29uc3QgbGFzdFBhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5fbGFzdFBhZ2VLZXkpO1xuICAgIGNvbnN0IG5leHRQYWdlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX25leHRQYWdlS2V5KTtcbiAgICBjb25zdCBwcmV2aW91c1BhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5fcHJldmlvdXNQYWdlS2V5KTtcblxuICAgIHRoaXMuaXRlbUNvdW50U2VwYXJhdG9yTGFiZWwgPSBpdGVtQ291bnRTZXBhcmF0b3JMYWJlbCAhPT0gdGhpcy5faXRlbUNvdW50U2VwYXJhdG9yS2V5ID8gaXRlbUNvdW50U2VwYXJhdG9yTGFiZWwgOiAnb2YnO1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlTGFiZWwgPSBpdGVtc1BlclBhZ2VMYWJlbCAhPT0gdGhpcy5faXRlbXNQZXJQYWdlS2V5ID8gaXRlbXNQZXJQYWdlTGFiZWwgOiAnSXRlbXMgcGVyIHBhZ2UnO1xuICAgIHRoaXMuZmlyc3RQYWdlTGFiZWwgPSBmaXJzdFBhZ2VMYWJlbCAhPT0gdGhpcy5fZmlyc3RQYWdlTGFiZWxLZXkgPyBmaXJzdFBhZ2VMYWJlbCA6ICdGaXJzdCBwYWdlJztcbiAgICB0aGlzLmxhc3RQYWdlTGFiZWwgPSBsYXN0UGFnZUxhYmVsICE9PSB0aGlzLl9sYXN0UGFnZUtleSA/IGxhc3RQYWdlTGFiZWwgOiAnTGFzdCBwYWdlJztcbiAgICB0aGlzLm5leHRQYWdlTGFiZWwgPSBuZXh0UGFnZUxhYmVsICE9PSB0aGlzLl9uZXh0UGFnZUtleSA/IG5leHRQYWdlTGFiZWwgOiAnTmV4dCBwYWdlJztcbiAgICB0aGlzLnByZXZpb3VzUGFnZUxhYmVsID0gcHJldmlvdXNQYWdlTGFiZWwgIT09IHRoaXMuX3ByZXZpb3VzUGFnZUtleSA/IHByZXZpb3VzUGFnZUxhYmVsIDogJ1ByZXZpb3VzIHBhZ2UnO1xuXG4gICAgdGhpcy5jaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG59XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcGFnaW5hdG9yLWludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci1wYWdpbmF0b3ItaW50bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFJekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQWlCdEQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsU0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFGQSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXRCckM7Ozs7b0ZBSTRFO1FBRTNELDJCQUFzQixHQUFHLDhCQUE4QixDQUFDO1FBQ3hELHFCQUFnQixHQUFHLHdCQUF3QixDQUFDO1FBQzVDLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO1FBQzNDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMsaUJBQVksR0FBRyxvQkFBb0IsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztRQXNCN0Q7Ozs7b0ZBSTRFO1FBRXJFLGtCQUFhLEdBQUcsQ0FDckIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE1BQWMsRUFDTixFQUFFO1lBRVYsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8sS0FBSyxJQUFJLENBQUMsdUJBQXVCLElBQUksTUFBTSxFQUFFLENBQUM7YUFDdEQ7WUFFRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFN0IsTUFBTSxVQUFVLEdBQVcsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUMzQyxNQUFNLFFBQVEsR0FBVyxVQUFVLEdBQUcsTUFBTTtnQkFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBRTFCLE9BQU8sR0FBRyxVQUFVLEdBQUcsQ0FBQyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckYsQ0FBQyxDQUFBO1FBL0JDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBNEJEOzs7O2dGQUk0RTtJQUVwRSxlQUFlO1FBRXJCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4SCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDNUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqRyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBRTNHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0FwRlUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdFBhZ2luYXRvckludGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVsZGVyUGFnaW5hdG9ySW50bCBleHRlbmRzIE1hdFBhZ2luYXRvckludGwge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1Db3VudFNlcGFyYXRvcktleSA9ICdwYWdpbmF0b3IuaXRlbUNvdW50U2VwYXJhdG9yJztcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXNQZXJQYWdlS2V5ID0gJ3BhZ2luYXRvci5pdGVtc1BlclBhZ2UnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maXJzdFBhZ2VMYWJlbEtleSA9ICdwYWdpbmF0b3IuZmlyc3RQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfbGFzdFBhZ2VLZXkgPSAncGFnaW5hdG9yLmxhc3RQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV4dFBhZ2VLZXkgPSAncGFnaW5hdG9yLm5leHRQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJldmlvdXNQYWdlS2V5ID0gJ3BhZ2luYXRvci5wcmV2aW91c1BhZ2UnO1xuXG4gIHByaXZhdGUgaXRlbUNvdW50U2VwYXJhdG9yTGFiZWw6IHN0cmluZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGU6IEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVscygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2xhdGVMYWJlbHMoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXRSYW5nZUxhYmVsID0gKFxuICAgIHBhZ2U6IG51bWJlcixcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgIGxlbmd0aDogbnVtYmVyXG4gICk6IHN0cmluZyA9PiB7XG5cbiAgICBpZiAobGVuZ3RoID09PSAwIHx8IHBhZ2VTaXplID09PSAwKSB7XG4gICAgICByZXR1cm4gYDAgJHt0aGlzLml0ZW1Db3VudFNlcGFyYXRvckxhYmVsfSAke2xlbmd0aH1gO1xuICAgIH1cblxuICAgIGxlbmd0aCA9IE1hdGgubWF4KGxlbmd0aCwgMCk7XG5cbiAgICBjb25zdCBzdGFydEluZGV4OiBudW1iZXIgPSBwYWdlICogcGFnZVNpemU7XG4gICAgY29uc3QgZW5kSW5kZXg6IG51bWJlciA9IHN0YXJ0SW5kZXggPCBsZW5ndGhcbiAgICAgID8gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplLCBsZW5ndGgpXG4gICAgICA6IHN0YXJ0SW5kZXggKyBwYWdlU2l6ZTtcblxuICAgIHJldHVybiBgJHtzdGFydEluZGV4ICsgMX0gLSAke2VuZEluZGV4fSAke3RoaXMuaXRlbUNvdW50U2VwYXJhdG9yTGFiZWx9ICR7bGVuZ3RofWA7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHRyYW5zbGF0ZUxhYmVscygpOiB2b2lkIHtcblxuICAgIGNvbnN0IGl0ZW1Db3VudFNlcGFyYXRvckxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9pdGVtQ291bnRTZXBhcmF0b3JLZXkpO1xuICAgIGNvbnN0IGl0ZW1zUGVyUGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9pdGVtc1BlclBhZ2VLZXkpO1xuICAgIGNvbnN0IGZpcnN0UGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9maXJzdFBhZ2VMYWJlbEtleSk7XG4gICAgY29uc3QgbGFzdFBhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5fbGFzdFBhZ2VLZXkpO1xuICAgIGNvbnN0IG5leHRQYWdlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX25leHRQYWdlS2V5KTtcbiAgICBjb25zdCBwcmV2aW91c1BhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5fcHJldmlvdXNQYWdlS2V5KTtcblxuICAgIHRoaXMuaXRlbUNvdW50U2VwYXJhdG9yTGFiZWwgPSBpdGVtQ291bnRTZXBhcmF0b3JMYWJlbCAhPT0gdGhpcy5faXRlbUNvdW50U2VwYXJhdG9yS2V5ID8gaXRlbUNvdW50U2VwYXJhdG9yTGFiZWwgOiAnb2YnO1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlTGFiZWwgPSBpdGVtc1BlclBhZ2VMYWJlbCAhPT0gdGhpcy5faXRlbXNQZXJQYWdlS2V5ID8gaXRlbXNQZXJQYWdlTGFiZWwgOiAnSXRlbXMgcGVyIHBhZ2UnO1xuICAgIHRoaXMuZmlyc3RQYWdlTGFiZWwgPSBmaXJzdFBhZ2VMYWJlbCAhPT0gdGhpcy5fZmlyc3RQYWdlTGFiZWxLZXkgPyBmaXJzdFBhZ2VMYWJlbCA6ICdGaXJzdCBwYWdlJztcbiAgICB0aGlzLmxhc3RQYWdlTGFiZWwgPSBsYXN0UGFnZUxhYmVsICE9PSB0aGlzLl9sYXN0UGFnZUtleSA/IGxhc3RQYWdlTGFiZWwgOiAnTGFzdCBwYWdlJztcbiAgICB0aGlzLm5leHRQYWdlTGFiZWwgPSBuZXh0UGFnZUxhYmVsICE9PSB0aGlzLl9uZXh0UGFnZUtleSA/IG5leHRQYWdlTGFiZWwgOiAnTmV4dCBwYWdlJztcbiAgICB0aGlzLnByZXZpb3VzUGFnZUxhYmVsID0gcHJldmlvdXNQYWdlTGFiZWwgIT09IHRoaXMuX3ByZXZpb3VzUGFnZUtleSA/IHByZXZpb3VzUGFnZUxhYmVsIDogJ1ByZXZpb3VzIHBhZ2UnO1xuXG4gICAgdGhpcy5jaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG59XG4iXX0=
@@ -8,14 +8,14 @@ export class ElderTableToolbarDirective {
8
8
  this.templateRef = templateRef;
9
9
  this.viewContainer = viewContainer;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderTableToolbarDirective, isStandalone: true, selector: "[elderTableToolbar]", ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderTableToolbarDirective, isStandalone: true, selector: "[elderTableToolbar]", ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableToolbarDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableToolbarDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  selector: '[elderTableToolbar]',
18
18
  standalone: true
19
19
  }]
20
20
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtdG9vbGJhci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci10YWJsZS9lbGRlci10YWJsZS10b29sYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQzs7QUFFdkU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQ1MsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtJQUV4QyxDQUFDOzhHQU5VLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgcHJvamVjdHMgbWFya2VkIGNvbnRlbnQgaW50byBhIHRvb2xiYXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VsZGVyVGFibGVUb29sYmFyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICB9XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtdG9vbGJhci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci10YWJsZS9lbGRlci10YWJsZS10b29sYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQzs7QUFFdkU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQ1MsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtJQUV4QyxDQUFDOytHQU5VLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgcHJvamVjdHMgbWFya2VkIGNvbnRlbnQgaW50byBhIHRvb2xiYXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VsZGVyVGFibGVUb29sYmFyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICB9XG59XG4iXX0=
@@ -247,8 +247,8 @@ export class ElderTableComponent extends ElderDataViewBaseComponent {
247
247
  }
248
248
  });
249
249
  }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableComponent, deps: [{ token: i1.ElderTableModel }, { token: i2.SelectionModel, optional: true }, { token: i3.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i4.MatSort, optional: true }, { token: i5.ElderTableExtensionDirective, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ElderTableComponent, isStandalone: true, selector: "elder-table", inputs: { idField: "idField", removingField: "removingField", hiddenField: "hiddenField", pageSizeOptions: "pageSizeOptions", keepSelection: "keepSelection", showFooter: "showFooter", toolbarTemplate: "toolbarTemplate", data: "data", displayedColumns: "displayedColumns", selectionVisible: "selectionVisible" }, providers: [
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableComponent, deps: [{ token: i1.ElderTableModel }, { token: i2.SelectionModel, optional: true }, { token: i3.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i4.MatSort, optional: true }, { token: i5.ElderTableExtensionDirective, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ElderTableComponent, isStandalone: true, selector: "elder-table", inputs: { idField: "idField", removingField: "removingField", hiddenField: "hiddenField", pageSizeOptions: "pageSizeOptions", keepSelection: "keepSelection", showFooter: "showFooter", toolbarTemplate: "toolbarTemplate", data: "data", displayedColumns: "displayedColumns", selectionVisible: "selectionVisible" }, providers: [
252
252
  ElderTableProviders.ExistingOrNewTableModel,
253
253
  {
254
254
  provide: ELDER_DATA_VIEW,
@@ -256,7 +256,7 @@ export class ElderTableComponent extends ElderDataViewBaseComponent {
256
256
  }
257
257
  ], queries: [{ propertyName: "columnDefs", predicate: MatColumnDef }, { propertyName: "elderColumns", predicate: ElderTableColumnDirective }, { propertyName: "rowDefs", predicate: MatRowDef }, { propertyName: "toolbarRowTemplateQuery", predicate: ElderTableToolbarDirective, read: TemplateRef }], viewQueries: [{ propertyName: "matTable", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "rowsQuery", predicate: ElderTableRowDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"full\"\n [class.embedded]=\"embedded\"\n [appearance]=\"appearance\"\n style=\"overflow: hidden\"\n>\n <div class=\"layout-col elder-table full\">\n <!-- Toolbar Rows -->\n <ng-container *ngFor=\"let toolbarRowTemplate of toolbarRowTemplates$ | async\">\n <ng-template *ngTemplateOutlet=\"toolbarRowTemplate; context: {$implicit: this}\">\n </ng-template>\n </ng-container>\n\n <!-- Scrollable Table -->\n <div class=\"layout-col {{isDataValid(dataContext?.data | async) ? 'flex' : ''}} scrollable elder-table-scroll\"\n elderInfiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !(canLoadMore$ | async)\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"$any(dataContext$ | async)\"\n [elderDataContextSelection]=\"dataContext$ | async\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <div class=\"layout-row place-start-center\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selectionModel.toggle(entity) : null\"\n [checked]=\"selectionModel.observeSelection(entity) | async\"\n [disabled]=\"!selectionModel.isSelectable(entity)\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"(dataSelection.selectionState$ | async).anySelected\"\n >\n </mat-checkbox>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container *ngIf=\"(tableModel.displayedColumnsInner$ | async) as displayedColumnsInner\">\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n <tr mat-row class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner;\"\n [elderTableRow]=\"entity\"\n [class.dense]=\"dense\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n [class.elder-table-row-selected]=\"interactionMode === 'selection' && selectionModel.observeSelection(entity) | async\"\n (click)=\"onItemClick(entity)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n >\n </tr>\n <ng-container *ngIf=\"showFooter\">\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n </ng-container>\n </ng-container>\n </table>\n </div>\n\n <ng-container *ngIf=\"!isDataValid(dataContext?.data | async)\">\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n </ng-container>\n\n <mat-progress-bar class=\"flex-none\"\n [mode]=\"(dataContext?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"((dataContext?.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Optional Paginator Toolbar -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Optional Continuation Footer -->\n <div *ngIf=\"isContinuable\" class=\"layout-row flex-none place-end-center gap-md elder-table-footer\">\n\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataContext?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\" color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataContinuable.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n </div>\n</mat-card>\n", styles: [".elder-mat-inner-table{width:100%}.elder-table-row.dense{height:42px!important}.elder-mat-table-container{border-radius:4px;overflow:hidden}.mat-column-select{overflow:initial;min-width:72px;max-width:5%;width:72px}.elder-row-removing{text-decoration:line-through}.elder-row-hidden{display:none}.elder-table-row{cursor:pointer}:host{min-width:0;min-height:0}.elder-table-hint{color:gray}.elder-table-footer{height:44px}.elder-table-checkbox{opacity:.25;transition:opacity .5s ease-in-out}.elder-table-row:hover .elder-table-checkbox{opacity:.9}.elder-table-checkbox-visible{opacity:1}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: ["elderTableRow"], exportAs: ["elderTableRow"] }, { kind: "directive", type: MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "component", type: MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
258
258
  }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableComponent, decorators: [{
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableComponent, decorators: [{
260
260
  type: Component,
261
261
  args: [{ selector: 'elder-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
262
262
  ElderTableProviders.ExistingOrNewTableModel,
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
319
319
  }], selectionVisible: [{
320
320
  type: Input
321
321
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUVSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdk8sT0FBTyxFQUFlLGFBQWEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNsRixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFjLFlBQVksRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzVGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRWpGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ3BJLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxrR0FBa0csQ0FBQztBQUN2SixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFpQi9DLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwwQkFBMEI7SUFvR2pFOzs7O2dGQUk0RTtJQUU1RSxZQUNrQixVQUEyQixFQUMvQixjQUFtQyxFQUN2Qix1QkFBcUQsRUFDakUsT0FBZ0IsRUFDYSxlQUE2QyxFQUM5RSxHQUFzQixFQUN0QixJQUFZO1FBRXBCLEtBQUssQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQVIvQixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUlGLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQUM5RSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBL0d0Qjs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RTs7V0FFRztRQUNLLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBOEIvQjs7Ozs7V0FLRztRQUVJLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBRXBDOzs7Ozs7V0FNRztRQUVJLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBRzNCLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFHMUMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVVWLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQVVuRjs7V0FFRztRQUNhLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUF3QjdFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUQsUUFBUTtRQUN0QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsOEJBQThCO2FBQzNCLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ25CLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGtCQUFrQjtRQUV2Qix5QkFBeUI7YUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2FBQ2pELG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BFLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDbEQsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDekIsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdkIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QixnQkFBZ0I7YUFDYixFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO2FBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbkUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sZUFBZTtRQUVwQixpQ0FBaUM7YUFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO2FBQ2pDLGFBQWEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUIsZ0JBQWdCO2FBQ2IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFOztPQUVHO0lBQ0gsSUFDVyxlQUFlLENBQUMsUUFBMEI7UUFDbkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQ1csSUFBSSxDQUFDLElBQXVEO1FBRXJFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLEVBQXFCLENBQUM7UUFFMUIsSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFO1lBQ3pCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7aUJBQzVCLFNBQVMsRUFBRTtpQkFDWCxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztZQUM3RSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDWjthQUFNLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7aUJBQzVCLFNBQVMsRUFBRTtpQkFDWCxvQkFBb0IsRUFBRTtpQkFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsMENBQTBDO1lBQzFELEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNaO2FBQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUIsRUFBRSxHQUFHLElBQUksQ0FBQztTQUNYO2FBQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDOUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzlDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDBFQUEwRSxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzdHO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLElBQXVCO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzNCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3ZDLENBQUM7UUFFRixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkMsaUdBQWlHO1FBRWpHLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxDQUN6RCxDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELElBQ1csZ0JBQWdCLENBQUMsZ0JBQTBCO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQsOENBQThDO0lBQzlDLElBQ1csZ0JBQWdCLENBQUMsT0FBZ0I7UUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVIOzs7O2dGQUk0RTtJQUVyRSxvQkFBb0IsQ0FBQyxLQUFVO1FBRXBDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRTtZQUU1QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRTt5QkFDNUIsU0FBUyxDQUNSLE1BQU0sQ0FBQyxFQUFFO3dCQUNQLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTs0QkFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7NEJBQzVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDbEM7b0JBQ0gsQ0FBQyxDQUNGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSx1QkFBdUIsQ0FBQyxJQUF1QjtRQUVyRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7U0FDaEU7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBRXBCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsNEJBQTRCO2dCQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO29CQUVoQyxrRUFBa0U7b0JBQ2xFLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUN6QixPQUFPO3lCQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDM0IsQ0FBQztvQkFFRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCO3lCQUMvRCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3lCQUNyQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFFdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDdkQ7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXZVVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrWEFWakI7WUFDUCxtQkFBbUIsQ0FBQyx1QkFBdUI7WUFDM0M7Z0JBQ0ksT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDckQ7U0FDSixxREE0QmMsWUFBWSwrQ0FHWix5QkFBeUIsMENBR3pCLFNBQVMsMERBK0NULDBCQUEwQixRQUFTLFdBQVcsdUVBN0RwRCxRQUFRLDZGQUdSLFlBQVksK0RBbUVULHNCQUFzQix1RUM1SnRDLGdvSkF1R0Esb29CRG5DYyxPQUFPLG9HQUFFLEtBQUssbUhBQUUsZ0JBQWdCLG9KQUFFLDRCQUE0QiwwTkFBRSxRQUFRLGdHQUFFLDZCQUE2QiwwTEFBRSxZQUFZLHFGQUFFLGdCQUFnQiwrREFBRSxhQUFhLGlGQUFFLHFDQUFxQyw0RUFBRSxVQUFVLHlEQUFFLE9BQU8sbUVBQUUsV0FBVyxpVUFBRSxnQkFBZ0IsK0RBQUUsYUFBYSxpRkFBRSxJQUFJLDZGQUFFLGVBQWUsb0hBQUUsWUFBWSwyR0FBRSxTQUFTLHVHQUFFLE1BQU0sdUZBQUUsc0JBQXNCLHNIQUFFLGVBQWUsb0hBQUUsWUFBWSwyR0FBRSxrQ0FBa0Msd0dBQUUsY0FBYyx5S0FBRSxZQUFZLHNQQUFFLGFBQWEsNkZBQUUsT0FBTyxzSUFBRSxTQUFTOzsyRkFFcmQsbUJBQW1CO2tCQWYvQixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCxtQkFBbUIsQ0FBQyx1QkFBdUI7d0JBQzNDOzRCQUNJLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzt5QkFDckQ7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLFFBQVEsRUFBRSw2QkFBNkIsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLHFDQUFxQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsa0NBQWtDLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQzs7MEJBOEc5ZCxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksUUFBUTs4RkE5RmhCLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUk1QixZQUFZO3NCQURsQixTQUFTO3VCQUFDLFlBQVk7Z0JBTWhCLFVBQVU7c0JBRGhCLGVBQWU7dUJBQUMsWUFBWTtnQkFJdEIsWUFBWTtzQkFEbEIsZUFBZTt1QkFBQyx5QkFBeUI7Z0JBSW5DLE9BQU87c0JBRGIsZUFBZTt1QkFBQyxTQUFTO2dCQVduQixPQUFPO3NCQURiLEtBQUs7Z0JBVUMsYUFBYTtzQkFEbkIsS0FBSztnQkFXQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQVVDLHVCQUF1QjtzQkFEN0IsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUM7Z0JBVXhELFNBQVM7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCO2dCQTRGekIsZUFBZTtzQkFEekIsS0FBSztnQkFNSyxJQUFJO3NCQURkLEtBQUs7Z0JBK0NLLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFXSyxnQkFBZ0I7c0JBRDFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFRhYmxlRGF0YUNvbnRleHRCaW5kaW5nQnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L21hdC10YWJsZS1kYXRhLWNvbnRleHQtYmluZGluZyc7XG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7TWF0U29ydH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge01hdENvbHVtbkRlZiwgTWF0Um93RGVmLCBNYXRUYWJsZSwgTWF0SGVhZGVyQ2VsbERlZiwgTWF0SGVhZGVyQ2VsbCwgTWF0Q2VsbERlZiwgTWF0Q2VsbCwgTWF0Rm9vdGVyQ2VsbERlZiwgTWF0Rm9vdGVyQ2VsbCwgTWF0SGVhZGVyUm93RGVmLCBNYXRIZWFkZXJSb3csIE1hdFJvdywgTWF0Rm9vdGVyUm93RGVmLCBNYXRGb290ZXJSb3d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7SURhdGFDb250ZXh0LCBpc0RhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtDZGtDb2x1bW5EZWYsIENka1Jvd0RlZiwgQ2RrVGFibGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0QnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1idWlsZGVyJztcbmltcG9ydCB7RUxERVJfREFUQV9WSUVXfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtJRGF0YVNvdXJjZSwgaXNEYXRhU291cmNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LWJhc2UnO1xuaW1wb3J0IHtFbGRlclRhYmxlTW9kZWx9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJztcbmltcG9ydCB7RWxkZXJUYWJsZVByb3ZpZGVyc30gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwtcHJvdmlkZXInO1xuaW1wb3J0IHtRdWVyeUxpc3RCaW5kaW5nfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvcXVlcnktbGlzdC1iaW5kaW5nJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsQ2RrVGFibGVCaW5kaW5nfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1jZGstdGFibGUtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXB9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXF1ZXJ5LWdyb3VwJztcbmltcG9ydCB7RWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4uL21vZGVsL2VsZGVyLWNvbHVtbi1sYXlvdXQnO1xuaW1wb3J0IHtFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci10YWJsZS10b29sYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LW9wdGlvbnMtcHJvdmlkZXInO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0SWNvbkJ1dHRvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NCYXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7TWF0Q2hlY2tib3h9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7RWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7RGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmV9IGZyb20gJy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vZGF0YS1jb250ZXh0LXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtFbGRlckluZmluaXRlU2Nyb2xsRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7TmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0Q2FyZH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWxkZXItdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRWxkZXJUYWJsZVByb3ZpZGVycy5FeGlzdGluZ09yTmV3VGFibGVNb2RlbCxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRUxERVJfREFUQV9WSUVXLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWxkZXJUYWJsZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWF0Q2FyZCwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIEVsZGVySW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsIE1hdFRhYmxlLCBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSwgTWF0Q29sdW1uRGVmLCBNYXRIZWFkZXJDZWxsRGVmLCBNYXRIZWFkZXJDZWxsLCBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LCBNYXRDZWxsRGVmLCBNYXRDZWxsLCBNYXRDaGVja2JveCwgTWF0Rm9vdGVyQ2VsbERlZiwgTWF0Rm9vdGVyQ2VsbCwgTmdJZiwgTWF0SGVhZGVyUm93RGVmLCBNYXRIZWFkZXJSb3csIE1hdFJvd0RlZiwgTWF0Um93LCBFbGRlclRhYmxlUm93RGlyZWN0aXZlLCBNYXRGb290ZXJSb3dEZWYsIE1hdEZvb3RlclJvdywgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudCwgTWF0UHJvZ3Jlc3NCYXIsIE1hdFBhZ2luYXRvciwgTWF0SWNvbkJ1dHRvbiwgTWF0SWNvbiwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKipcbiAgICogTG9hZCBuZXh0IGNodW5rIGFmdGVyIGN1cnJlbnQgaXMgZG9uZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuXG4gIC8vLyBUYWJsZVxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIG1hdFRhYmxlOiBDZGtUYWJsZTxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKVxuICBwdWJsaWMgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWF0U29ydDogTWF0U29ydDtcblxuICBAQ29udGVudENoaWxkcmVuKE1hdENvbHVtbkRlZilcbiAgcHVibGljIGNvbHVtbkRlZnM6IFF1ZXJ5TGlzdDxDZGtDb2x1bW5EZWY+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZSlcbiAgcHVibGljIGVsZGVyQ29sdW1uczogUXVlcnlMaXN0PEVsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Um93RGVmKVxuICBwdWJsaWMgcm93RGVmczogUXVlcnlMaXN0PENka1Jvd0RlZjxhbnk+PjtcblxuICAvKipcbiAgICogRmllbGQgdG8gaWRlbnRpZnkgdGhlIGRhdGEgcmVjb3JkcyAoSUQgZmllbGQpLlxuICAgKiBOb3RlOiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgY29uc2lkZXJlZCBpbiBjYXNlIHRoZVxuICAgKiB1bmRlcmx5aW5nIGRhdGEgaXMgYW4gQXJyYXkuXG4gICAqIEluIGNhc2Ugb2YgRGF0YUNvbnRleHQsIHRoZSBJRCBmaWVsZCBuZWVkcyB0byBiZSBkZWZpbmVkIGluIHRoZSBjb250ZXh0LlxuICAgKiBJbiBjYXNlIG9mIERhdGFTb3VyY2UsIHRoZSBJRCBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IHBpY2tlZCBmcm9tIHRoZSBEYXRhU291cmNlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlkRmllbGQ6IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZpZWxkIGlzIHByZXNlbnQgYW5kIHRydWUsXG4gICAqIHRoZSBjb3Jlc3BvbmRpbmcgcm93IGlzIG1hcmtlZCB0byBiZSBpbiB0aGUgcHJvY2Vzc2VkIG9mIGJlaW5nIHJlbW92ZWQuXG4gICAqXG4gICAqIEkuZS4gJ3JlbW92aW5nJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlbW92aW5nRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhpcyBmaWVsZCBpcyBwcmVzZW50IGFuZCB0cnVlLFxuICAgKiB0aGUgY29ycmVzcG9uZGluZyByb3cgaXMgaGlkZGVuLlxuICAgKlxuICAgKiBJLmUuICdkZWxldGVkJ1xuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGRlbkZpZWxkOiBzdHJpbmcgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnMgPSBbMzAsIDUwLCAxMDAsIDE1MCwgMjAwXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMga2VlcFNlbGVjdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgY2FuTG9hZE1vcmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgdG90YWwkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSB0b29sYmFyXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEVsZGVyVGFibGVUb29sYmFyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICBwdWJsaWMgdG9vbGJhclJvd1RlbXBsYXRlUXVlcnk6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxhbnk+PjtcbiAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJSb3dUZW1wbGF0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+W10+KFtdKTtcblxuICAvKipcbiAgICogU2VsZWN0aW9uIG1vZGVsIGxpZmUgY3ljbGVcbiAgICovXG4gIHByaXZhdGUgc2VsZWN0aW9uTGlmZUN5Y2xlOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZHJlbihFbGRlclRhYmxlUm93RGlyZWN0aXZlKVxuICBwcml2YXRlIHJvd3NRdWVyeTogUXVlcnlMaXN0PEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8YW55Pj47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgcm93cyBvZiB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlclRhYmxlUm93RGlyZWN0aXZlPGFueT5bXT4oW10pO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhpcyB0YWJsZSBncm91cCBleHRlbnNpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuc2lvbkdyb3VwSW5kZXg6IG51bWJlcjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVNb2RlbDogRWxkZXJUYWJsZU1vZGVsLFxuICAgIEBPcHRpb25hbCgpIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyOiBFbGRlckRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIG1hdFNvcnQ6IE1hdFNvcnQsXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRFeHRlbnNpb246IEVsZGVyVGFibGVFeHRlbnNpb25EaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIHN1cGVyKHNlbGVjdGlvbk1vZGVsLCBkYXRhVmlld09wdGlvbnNQcm92aWRlcik7XG4gICAgdGhpcy5fbWF0U29ydCA9IG1hdFNvcnQ7XG4gICAgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleCA9IChwYXJlbnRFeHRlbnNpb24/LmV4dGVuc2lvbkdyb3VwSW5kZXggPz8gMCkgKyAxO1xuICAgIGlmICh0aGlzLl9tYXRTb3J0KSB7XG4gICAgICB0aGlzLl9tYXRTb3J0LmRpc2FibGVDbGVhciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnRhYmxlTW9kZWwpXG4gICAgICAudGFibGUodGhpcy5tYXRUYWJsZSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXG4gICAgRWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cFxuICAgICAgLnN0YXJ0KHRoaXMudGFibGVNb2RlbCwgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKENvbHVtblBvc2l0aW9uU3BlYy5yZWxhdGl2ZVRvUHJldkdyb3VwKCdzdGFydCcpKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmcywgdGhpcy5lbGRlckNvbHVtbnMpXG4gICAgICAud2l0aFJvd0RlZnModGhpcy5yb3dEZWZzKVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuXG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMudG9vbGJhclJvd1RlbXBsYXRlUXVlcnkpXG4gICAgICAudXBkYXRlZCh0b29sYmFyUm93cyA9PiB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQodG9vbGJhclJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJcbiAgICAgIC5zdGFydCh0aGlzLmRhdGFDb250ZXh0JClcbiAgICAgIC53aXRoU29ydHModGhpcy50YWJsZU1vZGVsLnNvcnRzJClcbiAgICAgIC53aXRoUGFnaW5hdG9yKG9mKHRoaXMubWF0UGFnaW5hdG9yKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy5yb3dzUXVlcnkpXG4gICAgICAudXBkYXRlZChyb3dzID0+IHRoaXMucm93cyQubmV4dChyb3dzKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9vbGJhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy50b29sYmFyUm93VGVtcGxhdGVzJC5uZXh0KFt0ZW1wbGF0ZV0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhKGRhdGE6IEFycmF5PGFueT4gfCBJRGF0YVNvdXJjZTxhbnk+IHwgSURhdGFDb250ZXh0PGFueT4pIHtcblxuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcblxuICAgIGxldCBkYzogSURhdGFDb250ZXh0PGFueT47XG5cbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBkYyA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydCgpXG4gICAgICAgIC5sb2NhbFNvcnQoKVxuICAgICAgICAuYnVpbGRMb2NhbChkYXRhLCB0aGlzLmlkRmllbGQpOyAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFTb3VyY2UoZGF0YSkpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KClcbiAgICAgICAgLmxvY2FsU29ydCgpXG4gICAgICAgIC5yZWxvYWRPbkxvY2FsQ2hhbmdlcygpXG4gICAgICAgIC5idWlsZChkYXRhKTsgLy8gUG90ZW50aWFsIE1lbW9yeSBsZWFrIChTZWUgYXV0b0NsZWFuVXApXG4gICAgICBkYy5zdGFydCgpO1xuICAgIH0gZWxzZSBpZiAoaXNEYXRhQ29udGV4dChkYXRhKSkge1xuICAgICAgZGMgPSBkYXRhO1xuICAgIH0gZWxzZSBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KCkuYnVpbGRFbXB0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkYXRhIG11c3QgZWl0aGVyIGJlIGFuIEFycmF5LCBJRGF0YVNvdXJjZSBvciBJRGF0YUNvbnRleHQsIGJ1dCB3YXM6ICcgKyAodHlwZW9mIGRhdGEpKTtcbiAgICB9XG4gICAgdGhpcy5kYXRhQ29udGV4dCA9IGRjO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGF0YUNvbnRleHRTZXQoZGF0YTogSURhdGFDb250ZXh0PGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnRvdGFsJCA9IGRhdGEudG90YWwucGlwZShcbiAgICAgIG1hcCh0b3RhbCA9PiB0b3RhbCA/IHRvdGFsICsgJycgOiAn4oieJylcbiAgICApO1xuXG4gICAgdGhpcy5zZXR1cFNlbGVjdGlvbkxpZmVDeWNsZShkYXRhKTtcblxuICAgIC8vIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTsgLy8gVE9ETyBTdXBwb3J0IGNoYW5nZWFibGUgZGF0YS1jb250ZXh0IGZvciBzdGF0aWMgYXJyYXkgdXNlIGNhc2VcblxuICAgIGlmICh0aGlzLmlzQ29udGludWFibGUpIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gY29tYmluZUxhdGVzdChbZGF0YS5sb2FkaW5nLCB0aGlzLmRhdGFDb250aW51YWJsZS5oYXNNb3JlRGF0YV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2xvYWRpbmcsIGhhc01vcmVEYXRhXSkgPT4gIWxvYWRpbmcgJiYgaGFzTW9yZURhdGEpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbkxvYWRNb3JlJCA9IG9mKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXllZENvbHVtbnMoZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1ucyA9IGRpc3BsYXllZENvbHVtbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXllZENvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1ucztcbiAgfVxuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgc2VsZWN0aW9uIGNvbHVtbiBpcyBzaG93bi4gKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3Rpb25WaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRhYmxlTW9kZWwuc2VsZWN0aW9uVmlzaWJsZSA9IHZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGlvblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlO1xuICB9XG5cbiAgLypcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmVsZGVyVGFibGVBY3RpdmF0aW9uLmFjdGl2ZUl0ZW0kO1xuICB9Ki9cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhU25hcHNob3QpIHtcblxuICAgICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLnNuYXBzaG90LmlzTG9hZGluZykge1xuICAgICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmxvYWRNb3JlKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGxvYWRlZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYWNrQnlGbigpOiBUcmFja0J5RnVuY3Rpb248YW55PiB7XG4gICAgcmV0dXJuIChpbmRleDogbnVtYmVyLCBlbnRpdHk6IGFueSkgPT4gdGhpcy5nZXRJZChlbnRpdHkpO1xuICB9XG5cbiAgcHVibGljIGlzRGF0YVZhbGlkKGRhdGE6IGFueSkge1xuICAgIHJldHVybiBkYXRhPy5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvbkxpZmVDeWNsZShkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZS51bnN1YnNjcmliZSgpOyAvLyBDbGVhbiB1cCBwcmV2aW91cyBzdWJcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZSA9IGRhdGEuZGF0YS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUobmV3RGF0YSA9PiB7XG5cbiAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgICAgLy8gSWYga2VlcCBzZWxlY3Rpb24gZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSkge1xuXG4gICAgICAgICAgLy8gQ2hlY2sgdGhhdCBhbGwgc2VsZWN0ZWQgdmFsdWVzIGFyZSBzdGlsbCBwcmVzZW50IG9yIHJlbW92ZSB0aGVtXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0PGFueT4oXG4gICAgICAgICAgICBuZXdEYXRhXG4gICAgICAgICAgICAgIC5tYXAoZCA9PiB0aGlzLmdldElkKGQpKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBub0xvbmdlckF2YWlsYWJsZUlkcyA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uU25hcHNob3RcbiAgICAgICAgICAgIC5tYXAoc2VsZWN0ZWQgPT4gdGhpcy5nZXRJZChzZWxlY3RlZCkpXG4gICAgICAgICAgICAuZmlsdGVyKHNlbGVjdGVkSWQgPT4gIWV4aXN0aW5nSWRzLmhhcyhzZWxlY3RlZElkKSk7XG5cbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0SWRzKG5vTG9uZ2VyQXZhaWxhYmxlSWRzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZnVsbFwiXG4gICAgICAgICAgW2NsYXNzLmVtYmVkZGVkXT1cImVtYmVkZGVkXCJcbiAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBlbGRlci10YWJsZSBmdWxsXCI+XG4gICAgPCEtLSBUb29sYmFyIFJvd3MgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdG9vbGJhclJvd1RlbXBsYXRlIG9mIHRvb2xiYXJSb3dUZW1wbGF0ZXMkIHwgYXN5bmNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInRvb2xiYXJSb3dUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogdGhpc31cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFNjcm9sbGFibGUgVGFibGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wge3tpc0RhdGFWYWxpZChkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKSA/ICdmbGV4JyA6ICcnfX0gc2Nyb2xsYWJsZSBlbGRlci10YWJsZS1zY3JvbGxcIlxuICAgICAgICAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgW2V2ZW50VGhyb3R0bGVdPVwiMTUwXCJcbiAgICAgICAgIFtvZmZzZXRGYWN0b3JdPVwiMlwiXG4gICAgICAgICBbaWdub3JlU2Nyb2xsRXZlbnRdPVwiIWlzQ29udGludWFibGUgfHwgIShjYW5Mb2FkTW9yZSQgfCBhc3luYylcIlxuICAgICAgICAgKGNsb3NlVG9FbmQpPVwicmVxdWVzdE1vcmVEYXRhWm9uZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRhYmxlXG4gICAgICAgIG1hdC10YWJsZVxuICAgICAgICBjbGFzcz1cImVsZGVyLW1hdC1pbm5lci10YWJsZVwiXG4gICAgICAgIFt0cmFja0J5XT1cInRyYWNrQnlGblwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIiRhbnkoZGF0YUNvbnRleHQkIHwgYXN5bmMpXCJcbiAgICAgICAgW2VsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25dPVwiZGF0YUNvbnRleHQkIHwgYXN5bmNcIiAjZGF0YVNlbGVjdGlvbj1cImVsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25cIlxuICAgICAgICBbZWxkZXJEYXRhQ29udGV4dFNlbGVjdGlvbk1vZGVsXT1cInNlbGVjdGlvbk1vZGVsXCJcbiAgICAgID5cblxuICAgICAgICA8IS0tIHNlbGVjdGlvbiBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICAgIDxlbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PjwvZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveD5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbnRpdHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGVudGl0eSkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Nb2RlbC5vYnNlcnZlU2VsZWN0aW9uKGVudGl0eSkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGFibGUoZW50aXR5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci10YWJsZS1jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXRhYmxlLWNoZWNrYm94LXZpc2libGVdPVwiKGRhdGFTZWxlY3Rpb24uc2VsZWN0aW9uU3RhdGUkIHwgYXN5bmMpLmFueVNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1uc0lubmVyJCB8IGFzeW5jKSBhcyBkaXNwbGF5ZWRDb2x1bW5zSW5uZXJcIj5cbiAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNJbm5lcjsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICAgICAgICA8dHIgbWF0LXJvdyBjbGFzcz1cImVsZGVyLXRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgZW50aXR5OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zSW5uZXI7XCJcbiAgICAgICAgICAgICAgW2VsZGVyVGFibGVSb3ddPVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRlbnNlXT1cImRlbnNlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXJvdy1oaWRkZW5dPVwiaGlkZGVuRmllbGQgJiYgZW50aXR5W2hpZGRlbkZpZWxkXVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1yb3ctcmVtb3ZpbmddPVwicmVtb3ZpbmdGaWVsZCAmJiBlbnRpdHlbcmVtb3ZpbmdGaWVsZF1cIlxuICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItdGFibGUtcm93LXNlbGVjdGVkXT1cImludGVyYWN0aW9uTW9kZSA9PT0gJ3NlbGVjdGlvbicgJiYgc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbihlbnRpdHkpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soZW50aXR5KVwiXG4gICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayhlbnRpdHkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICAgICAgICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zSW5uZXI7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRhVmFsaWQoZGF0YUNvbnRleHQ/LmRhdGEgfCBhc3luYylcIj5cbiAgICAgIDxlbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yIGNsYXNzPVwiZmxleFwiIFtkYXRhQ29udGV4dF09XCJkYXRhQ29udGV4dFwiPlxuICAgICAgPC9lbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIihkYXRhQ29udGV4dD8ubG9hZGluZyB8IGFzeW5jKSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIoKGRhdGFDb250ZXh0Py5zdGF0dXMgfCBhc3luYyk/Lmhhc0Vycm9yKSA/ICd3YXJuJyA6ICdwcmltYXJ5J1wiPlxuICAgIDwvbWF0LXByb2dyZXNzLWJhcj5cblxuICAgIDwhLS0gT3B0aW9uYWwgUGFnaW5hdG9yIFRvb2xiYXIgLS0+XG4gICAgPG1hdC1wYWdpbmF0b3IgI21hdFBhZ2luYXRvciAqbmdJZj1cImlzQWN0aXZlUGFnZWQgJiYgKGRhdGFBY3RpdmVQYWdlZC5wYWdlIHwgYXN5bmMpIGFzIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICBbbGVuZ3RoXT1cImRhdGFDb250ZXh0Py50b3RhbCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2U/LmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZT8uc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIj5cbiAgICA8L21hdC1wYWdpbmF0b3I+XG5cbiAgICA8IS0tIE9wdGlvbmFsIENvbnRpbnVhdGlvbiBGb290ZXIgLS0+XG4gICAgPGRpdiAqbmdJZj1cImlzQ29udGludWFibGVcIiBjbGFzcz1cImxheW91dC1yb3cgZmxleC1ub25lIHBsYWNlLWVuZC1jZW50ZXIgZ2FwLW1kIGVsZGVyLXRhYmxlLWZvb3RlclwiPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCIgc3R5bGU9XCJjb2xvcjogZ3JheVwiPlxuICAgICAgICB7eyhkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKT8ubGVuZ3RofX0gLyB7e3RvdGFsJCB8IGFzeW5jfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNhbkxvYWRNb3JlJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRhQ29udGludWFibGUubG9hZE1vcmUoKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L21hdC1jYXJkPlxuIl19
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUVSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdk8sT0FBTyxFQUFlLGFBQWEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNsRixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFB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MUIsS0FBSztnQkFXSyxnQkFBZ0I7c0JBRDFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFRhYmxlRGF0YUNvbnRleHRCaW5kaW5nQnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L21hdC10YWJsZS1kYXRhLWNvbnRleHQtYmluZGluZyc7XG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7TWF0U29ydH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge01hdENvbHVtbkRlZiwgTWF0Um93RGVmLCBNYXRUYWJsZSwgTWF0SGVhZGVyQ2VsbERlZiwgTWF0SGVhZGVyQ2VsbCwgTWF0Q2VsbERlZiwgTWF0Q2VsbCwgTWF0Rm9vdGVyQ2VsbERlZiwgTWF0Rm9vdGVyQ2VsbCwgTWF0SGVhZGVyUm93RGVmLCBNYXRIZWFkZXJSb3csIE1hdFJvdywgTWF0Rm9vdGVyUm93RGVmLCBNYXRGb290ZXJSb3d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7SURhdGFDb250ZXh0LCBpc0RhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtDZGtDb2x1bW5EZWYsIENka1Jvd0RlZiwgQ2RrVGFibGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0QnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1idWlsZGVyJztcbmltcG9ydCB7RUxERVJfREFUQV9WSUVXfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtJRGF0YVNvdXJjZSwgaXNEYXRhU291cmNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LWJhc2UnO1xuaW1wb3J0IHtFbGRlclRhYmxlTW9kZWx9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJztcbmltcG9ydCB7RWxkZXJUYWJsZVByb3ZpZGVyc30gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwtcHJvdmlkZXInO1xuaW1wb3J0IHtRdWVyeUxpc3RCaW5kaW5nfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvcXVlcnktbGlzdC1iaW5kaW5nJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsQ2RrVGFibGVCaW5kaW5nfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1jZGstdGFibGUtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXB9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXF1ZXJ5LWdyb3VwJztcbmltcG9ydCB7RWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4uL21vZGVsL2VsZGVyLWNvbHVtbi1sYXlvdXQnO1xuaW1wb3J0IHtFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci10YWJsZS10b29sYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LW9wdGlvbnMtcHJvdmlkZXInO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0SWNvbkJ1dHRvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NCYXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7TWF0Q2hlY2tib3h9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7RWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7RGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmV9IGZyb20gJy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vZGF0YS1jb250ZXh0LXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtFbGRlckluZmluaXRlU2Nyb2xsRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7TmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0Q2FyZH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWxkZXItdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRWxkZXJUYWJsZVByb3ZpZGVycy5FeGlzdGluZ09yTmV3VGFibGVNb2RlbCxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRUxERVJfREFUQV9WSUVXLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWxkZXJUYWJsZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWF0Q2FyZCwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIEVsZGVySW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsIE1hdFRhYmxlLCBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSwgTWF0Q29sdW1uRGVmLCBNYXRIZWFkZXJDZWxsRGVmLCBNYXRIZWFkZXJDZWxsLCBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LCBNYXRDZWxsRGVmLCBNYXRDZWxsLCBNYXRDaGVja2JveCwgTWF0Rm9vdGVyQ2VsbERlZiwgTWF0Rm9vdGVyQ2VsbCwgTmdJZiwgTWF0SGVhZGVyUm93RGVmLCBNYXRIZWFkZXJSb3csIE1hdFJvd0RlZiwgTWF0Um93LCBFbGRlclRhYmxlUm93RGlyZWN0aXZlLCBNYXRGb290ZXJSb3dEZWYsIE1hdEZvb3RlclJvdywgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudCwgTWF0UHJvZ3Jlc3NCYXIsIE1hdFBhZ2luYXRvciwgTWF0SWNvbkJ1dHRvbiwgTWF0SWNvbiwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKipcbiAgICogTG9hZCBuZXh0IGNodW5rIGFmdGVyIGN1cnJlbnQgaXMgZG9uZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuXG4gIC8vLyBUYWJsZVxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIG1hdFRhYmxlOiBDZGtUYWJsZTxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKVxuICBwdWJsaWMgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWF0U29ydDogTWF0U29ydDtcblxuICBAQ29udGVudENoaWxkcmVuKE1hdENvbHVtbkRlZilcbiAgcHVibGljIGNvbHVtbkRlZnM6IFF1ZXJ5TGlzdDxDZGtDb2x1bW5EZWY+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZSlcbiAgcHVibGljIGVsZGVyQ29sdW1uczogUXVlcnlMaXN0PEVsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Um93RGVmKVxuICBwdWJsaWMgcm93RGVmczogUXVlcnlMaXN0PENka1Jvd0RlZjxhbnk+PjtcblxuICAvKipcbiAgICogRmllbGQgdG8gaWRlbnRpZnkgdGhlIGRhdGEgcmVjb3JkcyAoSUQgZmllbGQpLlxuICAgKiBOb3RlOiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgY29uc2lkZXJlZCBpbiBjYXNlIHRoZVxuICAgKiB1bmRlcmx5aW5nIGRhdGEgaXMgYW4gQXJyYXkuXG4gICAqIEluIGNhc2Ugb2YgRGF0YUNvbnRleHQsIHRoZSBJRCBmaWVsZCBuZWVkcyB0byBiZSBkZWZpbmVkIGluIHRoZSBjb250ZXh0LlxuICAgKiBJbiBjYXNlIG9mIERhdGFTb3VyY2UsIHRoZSBJRCBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IHBpY2tlZCBmcm9tIHRoZSBEYXRhU291cmNlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlkRmllbGQ6IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZpZWxkIGlzIHByZXNlbnQgYW5kIHRydWUsXG4gICAqIHRoZSBjb3Jlc3BvbmRpbmcgcm93IGlzIG1hcmtlZCB0byBiZSBpbiB0aGUgcHJvY2Vzc2VkIG9mIGJlaW5nIHJlbW92ZWQuXG4gICAqXG4gICAqIEkuZS4gJ3JlbW92aW5nJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlbW92aW5nRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhpcyBmaWVsZCBpcyBwcmVzZW50IGFuZCB0cnVlLFxuICAgKiB0aGUgY29ycmVzcG9uZGluZyByb3cgaXMgaGlkZGVuLlxuICAgKlxuICAgKiBJLmUuICdkZWxldGVkJ1xuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGRlbkZpZWxkOiBzdHJpbmcgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnMgPSBbMzAsIDUwLCAxMDAsIDE1MCwgMjAwXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMga2VlcFNlbGVjdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgY2FuTG9hZE1vcmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgdG90YWwkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSB0b29sYmFyXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEVsZGVyVGFibGVUb29sYmFyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICBwdWJsaWMgdG9vbGJhclJvd1RlbXBsYXRlUXVlcnk6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxhbnk+PjtcbiAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJSb3dUZW1wbGF0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+W10+KFtdKTtcblxuICAvKipcbiAgICogU2VsZWN0aW9uIG1vZGVsIGxpZmUgY3ljbGVcbiAgICovXG4gIHByaXZhdGUgc2VsZWN0aW9uTGlmZUN5Y2xlOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZHJlbihFbGRlclRhYmxlUm93RGlyZWN0aXZlKVxuICBwcml2YXRlIHJvd3NRdWVyeTogUXVlcnlMaXN0PEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8YW55Pj47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgcm93cyBvZiB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlclRhYmxlUm93RGlyZWN0aXZlPGFueT5bXT4oW10pO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhpcyB0YWJsZSBncm91cCBleHRlbnNpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuc2lvbkdyb3VwSW5kZXg6IG51bWJlcjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVNb2RlbDogRWxkZXJUYWJsZU1vZGVsLFxuICAgIEBPcHRpb25hbCgpIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyOiBFbGRlckRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIG1hdFNvcnQ6IE1hdFNvcnQsXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRFeHRlbnNpb246IEVsZGVyVGFibGVFeHRlbnNpb25EaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIHN1cGVyKHNlbGVjdGlvbk1vZGVsLCBkYXRhVmlld09wdGlvbnNQcm92aWRlcik7XG4gICAgdGhpcy5fbWF0U29ydCA9IG1hdFNvcnQ7XG4gICAgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleCA9IChwYXJlbnRFeHRlbnNpb24/LmV4dGVuc2lvbkdyb3VwSW5kZXggPz8gMCkgKyAxO1xuICAgIGlmICh0aGlzLl9tYXRTb3J0KSB7XG4gICAgICB0aGlzLl9tYXRTb3J0LmRpc2FibGVDbGVhciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnRhYmxlTW9kZWwpXG4gICAgICAudGFibGUodGhpcy5tYXRUYWJsZSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXG4gICAgRWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cFxuICAgICAgLnN0YXJ0KHRoaXMudGFibGVNb2RlbCwgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKENvbHVtblBvc2l0aW9uU3BlYy5yZWxhdGl2ZVRvUHJldkdyb3VwKCdzdGFydCcpKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmcywgdGhpcy5lbGRlckNvbHVtbnMpXG4gICAgICAud2l0aFJvd0RlZnModGhpcy5yb3dEZWZzKVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuXG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMudG9vbGJhclJvd1RlbXBsYXRlUXVlcnkpXG4gICAgICAudXBkYXRlZCh0b29sYmFyUm93cyA9PiB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQodG9vbGJhclJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJcbiAgICAgIC5zdGFydCh0aGlzLmRhdGFDb250ZXh0JClcbiAgICAgIC53aXRoU29ydHModGhpcy50YWJsZU1vZGVsLnNvcnRzJClcbiAgICAgIC53aXRoUGFnaW5hdG9yKG9mKHRoaXMubWF0UGFnaW5hdG9yKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy5yb3dzUXVlcnkpXG4gICAgICAudXBkYXRlZChyb3dzID0+IHRoaXMucm93cyQubmV4dChyb3dzKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9vbGJhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy50b29sYmFyUm93VGVtcGxhdGVzJC5uZXh0KFt0ZW1wbGF0ZV0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhKGRhdGE6IEFycmF5PGFueT4gfCBJRGF0YVNvdXJjZTxhbnk+IHwgSURhdGFDb250ZXh0PGFueT4pIHtcblxuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcblxuICAgIGxldCBkYzogSURhdGFDb250ZXh0PGFueT47XG5cbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBkYyA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydCgpXG4gICAgICAgIC5sb2NhbFNvcnQoKVxuICAgICAgICAuYnVpbGRMb2NhbChkYXRhLCB0aGlzLmlkRmllbGQpOyAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFTb3VyY2UoZGF0YSkpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KClcbiAgICAgICAgLmxvY2FsU29ydCgpXG4gICAgICAgIC5yZWxvYWRPbkxvY2FsQ2hhbmdlcygpXG4gICAgICAgIC5idWlsZChkYXRhKTsgLy8gUG90ZW50aWFsIE1lbW9yeSBsZWFrIChTZWUgYXV0b0NsZWFuVXApXG4gICAgICBkYy5zdGFydCgpO1xuICAgIH0gZWxzZSBpZiAoaXNEYXRhQ29udGV4dChkYXRhKSkge1xuICAgICAgZGMgPSBkYXRhO1xuICAgIH0gZWxzZSBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KCkuYnVpbGRFbXB0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkYXRhIG11c3QgZWl0aGVyIGJlIGFuIEFycmF5LCBJRGF0YVNvdXJjZSBvciBJRGF0YUNvbnRleHQsIGJ1dCB3YXM6ICcgKyAodHlwZW9mIGRhdGEpKTtcbiAgICB9XG4gICAgdGhpcy5kYXRhQ29udGV4dCA9IGRjO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGF0YUNvbnRleHRTZXQoZGF0YTogSURhdGFDb250ZXh0PGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnRvdGFsJCA9IGRhdGEudG90YWwucGlwZShcbiAgICAgIG1hcCh0b3RhbCA9PiB0b3RhbCA/IHRvdGFsICsgJycgOiAn4oieJylcbiAgICApO1xuXG4gICAgdGhpcy5zZXR1cFNlbGVjdGlvbkxpZmVDeWNsZShkYXRhKTtcblxuICAgIC8vIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTsgLy8gVE9ETyBTdXBwb3J0IGNoYW5nZWFibGUgZGF0YS1jb250ZXh0IGZvciBzdGF0aWMgYXJyYXkgdXNlIGNhc2VcblxuICAgIGlmICh0aGlzLmlzQ29udGludWFibGUpIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gY29tYmluZUxhdGVzdChbZGF0YS5sb2FkaW5nLCB0aGlzLmRhdGFDb250aW51YWJsZS5oYXNNb3JlRGF0YV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2xvYWRpbmcsIGhhc01vcmVEYXRhXSkgPT4gIWxvYWRpbmcgJiYgaGFzTW9yZURhdGEpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbkxvYWRNb3JlJCA9IG9mKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXllZENvbHVtbnMoZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1ucyA9IGRpc3BsYXllZENvbHVtbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXllZENvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1ucztcbiAgfVxuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgc2VsZWN0aW9uIGNvbHVtbiBpcyBzaG93bi4gKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3Rpb25WaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRhYmxlTW9kZWwuc2VsZWN0aW9uVmlzaWJsZSA9IHZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGlvblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlO1xuICB9XG5cbiAgLypcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmVsZGVyVGFibGVBY3RpdmF0aW9uLmFjdGl2ZUl0ZW0kO1xuICB9Ki9cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhU25hcHNob3QpIHtcblxuICAgICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLnNuYXBzaG90LmlzTG9hZGluZykge1xuICAgICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmxvYWRNb3JlKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGxvYWRlZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYWNrQnlGbigpOiBUcmFja0J5RnVuY3Rpb248YW55PiB7XG4gICAgcmV0dXJuIChpbmRleDogbnVtYmVyLCBlbnRpdHk6IGFueSkgPT4gdGhpcy5nZXRJZChlbnRpdHkpO1xuICB9XG5cbiAgcHVibGljIGlzRGF0YVZhbGlkKGRhdGE6IGFueSkge1xuICAgIHJldHVybiBkYXRhPy5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvbkxpZmVDeWNsZShkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZS51bnN1YnNjcmliZSgpOyAvLyBDbGVhbiB1cCBwcmV2aW91cyBzdWJcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZSA9IGRhdGEuZGF0YS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUobmV3RGF0YSA9PiB7XG5cbiAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgICAgLy8gSWYga2VlcCBzZWxlY3Rpb24gZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSkge1xuXG4gICAgICAgICAgLy8gQ2hlY2sgdGhhdCBhbGwgc2VsZWN0ZWQgdmFsdWVzIGFyZSBzdGlsbCBwcmVzZW50IG9yIHJlbW92ZSB0aGVtXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0PGFueT4oXG4gICAgICAgICAgICBuZXdEYXRhXG4gICAgICAgICAgICAgIC5tYXAoZCA9PiB0aGlzLmdldElkKGQpKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBub0xvbmdlckF2YWlsYWJsZUlkcyA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uU25hcHNob3RcbiAgICAgICAgICAgIC5tYXAoc2VsZWN0ZWQgPT4gdGhpcy5nZXRJZChzZWxlY3RlZCkpXG4gICAgICAgICAgICAuZmlsdGVyKHNlbGVjdGVkSWQgPT4gIWV4aXN0aW5nSWRzLmhhcyhzZWxlY3RlZElkKSk7XG5cbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0SWRzKG5vTG9uZ2VyQXZhaWxhYmxlSWRzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZnVsbFwiXG4gICAgICAgICAgW2NsYXNzLmVtYmVkZGVkXT1cImVtYmVkZGVkXCJcbiAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBlbGRlci10YWJsZSBmdWxsXCI+XG4gICAgPCEtLSBUb29sYmFyIFJvd3MgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdG9vbGJhclJvd1RlbXBsYXRlIG9mIHRvb2xiYXJSb3dUZW1wbGF0ZXMkIHwgYXN5bmNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInRvb2xiYXJSb3dUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogdGhpc31cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFNjcm9sbGFibGUgVGFibGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wge3tpc0RhdGFWYWxpZChkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKSA/ICdmbGV4JyA6ICcnfX0gc2Nyb2xsYWJsZSBlbGRlci10YWJsZS1zY3JvbGxcIlxuICAgICAgICAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgW2V2ZW50VGhyb3R0bGVdPVwiMTUwXCJcbiAgICAgICAgIFtvZmZzZXRGYWN0b3JdPVwiMlwiXG4gICAgICAgICBbaWdub3JlU2Nyb2xsRXZlbnRdPVwiIWlzQ29udGludWFibGUgfHwgIShjYW5Mb2FkTW9yZSQgfCBhc3luYylcIlxuICAgICAgICAgKGNsb3NlVG9FbmQpPVwicmVxdWVzdE1vcmVEYXRhWm9uZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRhYmxlXG4gICAgICAgIG1hdC10YWJsZVxuICAgICAgICBjbGFzcz1cImVsZGVyLW1hdC1pbm5lci10YWJsZVwiXG4gICAgICAgIFt0cmFja0J5XT1cInRyYWNrQnlGblwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIiRhbnkoZGF0YUNvbnRleHQkIHwgYXN5bmMpXCJcbiAgICAgICAgW2VsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25dPVwiZGF0YUNvbnRleHQkIHwgYXN5bmNcIiAjZGF0YVNlbGVjdGlvbj1cImVsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25cIlxuICAgICAgICBbZWxkZXJEYXRhQ29udGV4dFNlbGVjdGlvbk1vZGVsXT1cInNlbGVjdGlvbk1vZGVsXCJcbiAgICAgID5cblxuICAgICAgICA8IS0tIHNlbGVjdGlvbiBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICAgIDxlbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PjwvZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveD5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbnRpdHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGVudGl0eSkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Nb2RlbC5vYnNlcnZlU2VsZWN0aW9uKGVudGl0eSkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGFibGUoZW50aXR5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci10YWJsZS1jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXRhYmxlLWNoZWNrYm94LXZpc2libGVdPVwiKGRhdGFTZWxlY3Rpb24uc2VsZWN0aW9uU3RhdGUkIHwgYXN5bmMpLmFueVNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1uc0lubmVyJCB8IGFzeW5jKSBhcyBkaXNwbGF5ZWRDb2x1bW5zSW5uZXJcIj5cbiAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNJbm5lcjsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICAgICAgICA8dHIgbWF0LXJvdyBjbGFzcz1cImVsZGVyLXRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgZW50aXR5OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zSW5uZXI7XCJcbiAgICAgICAgICAgICAgW2VsZGVyVGFibGVSb3ddPVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRlbnNlXT1cImRlbnNlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXJvdy1oaWRkZW5dPVwiaGlkZGVuRmllbGQgJiYgZW50aXR5W2hpZGRlbkZpZWxkXVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1yb3ctcmVtb3ZpbmddPVwicmVtb3ZpbmdGaWVsZCAmJiBlbnRpdHlbcmVtb3ZpbmdGaWVsZF1cIlxuICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItdGFibGUtcm93LXNlbGVjdGVkXT1cImludGVyYWN0aW9uTW9kZSA9PT0gJ3NlbGVjdGlvbicgJiYgc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbihlbnRpdHkpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soZW50aXR5KVwiXG4gICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayhlbnRpdHkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICAgICAgICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zSW5uZXI7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRhVmFsaWQoZGF0YUNvbnRleHQ/LmRhdGEgfCBhc3luYylcIj5cbiAgICAgIDxlbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yIGNsYXNzPVwiZmxleFwiIFtkYXRhQ29udGV4dF09XCJkYXRhQ29udGV4dFwiPlxuICAgICAgPC9lbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIihkYXRhQ29udGV4dD8ubG9hZGluZyB8IGFzeW5jKSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIoKGRhdGFDb250ZXh0Py5zdGF0dXMgfCBhc3luYyk/Lmhhc0Vycm9yKSA/ICd3YXJuJyA6ICdwcmltYXJ5J1wiPlxuICAgIDwvbWF0LXByb2dyZXNzLWJhcj5cblxuICAgIDwhLS0gT3B0aW9uYWwgUGFnaW5hdG9yIFRvb2xiYXIgLS0+XG4gICAgPG1hdC1wYWdpbmF0b3IgI21hdFBhZ2luYXRvciAqbmdJZj1cImlzQWN0aXZlUGFnZWQgJiYgKGRhdGFBY3RpdmVQYWdlZC5wYWdlIHwgYXN5bmMpIGFzIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICBbbGVuZ3RoXT1cImRhdGFDb250ZXh0Py50b3RhbCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2U/LmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZT8uc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIj5cbiAgICA8L21hdC1wYWdpbmF0b3I+XG5cbiAgICA8IS0tIE9wdGlvbmFsIENvbnRpbnVhdGlvbiBGb290ZXIgLS0+XG4gICAgPGRpdiAqbmdJZj1cImlzQ29udGludWFibGVcIiBjbGFzcz1cImxheW91dC1yb3cgZmxleC1ub25lIHBsYWNlLWVuZC1jZW50ZXIgZ2FwLW1kIGVsZGVyLXRhYmxlLWZvb3RlclwiPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCIgc3R5bGU9XCJjb2xvcjogZ3JheVwiPlxuICAgICAgICB7eyhkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKT8ubGVuZ3RofX0gLyB7e3RvdGFsJCB8IGFzeW5jfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNhbkxvYWRNb3JlJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRhQ29udGludWFibGUubG9hZE1vcmUoKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L21hdC1jYXJkPlxuIl19
@@ -5,14 +5,14 @@ export class ElderTableColumnDirective {
5
5
  constructor(cdkColumn) {
6
6
  this.cdkColumn = cdkColumn;
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderTableColumnDirective, isStandalone: true, selector: "th[elderColumnDef]", ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderTableColumnDirective, isStandalone: true, selector: "th[elderColumnDef]", ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: 'th[elderColumnDef]',
15
15
  standalone: true
16
16
  }]
17
17
  }], ctorParameters: () => [{ type: i1.CdkColumnDef }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBUXhDLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFDa0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUNyQyxDQUFDOzhHQU5NLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2RrQ29sdW1uRGVmfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4vbW9kZWwvZWxkZXItY29sdW1uLWxheW91dCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndGhbZWxkZXJDb2x1bW5EZWZdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmUge1xuXG4gIHByaXZhdGUgX2NvbHVtblBvc2l0aW9uOiBDb2x1bW5Qb3NpdGlvblNwZWM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNka0NvbHVtbjogQ2RrQ29sdW1uRGVmXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgcmVsYXRpdmUgY29sdW1uIHBvc2l0aW9uIGluIHRoZSB0YWJsZVxuICAgKiBVc2FnZSBleGFtcGxlOlxuICAgKiBjb2x1bW5Qb3NpdGlvbj1cImFmdGVyOm5hbWVcIlxuICAgKi9cbiAgLy8gQElucHV0KClcbiAgLy8gcHVibGljIHNldCBjb2x1bW5Qb3NpdGlvbih2YWw6IENvbHVtblBvc2l0aW9uU3BlYykge1xuICAvLyAgIHRoaXMuX2NvbHVtblBvc2l0aW9uID0gdmFsO1xuICAvLyB9XG5cbiAgLy8gcHVibGljIGdldCBjb2x1bW5Qb3NpdGlvbigpOiBDb2x1bW5Qb3NpdGlvblNwZWMge1xuICAvLyAgIHJldHVybiB0aGlzLl9jb2x1bW5Qb3NpdGlvbjtcbiAgLy8gfVxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBUXhDLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFDa0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUNyQyxDQUFDOytHQU5NLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2RrQ29sdW1uRGVmfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4vbW9kZWwvZWxkZXItY29sdW1uLWxheW91dCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndGhbZWxkZXJDb2x1bW5EZWZdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmUge1xuXG4gIHByaXZhdGUgX2NvbHVtblBvc2l0aW9uOiBDb2x1bW5Qb3NpdGlvblNwZWM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNka0NvbHVtbjogQ2RrQ29sdW1uRGVmXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgcmVsYXRpdmUgY29sdW1uIHBvc2l0aW9uIGluIHRoZSB0YWJsZVxuICAgKiBVc2FnZSBleGFtcGxlOlxuICAgKiBjb2x1bW5Qb3NpdGlvbj1cImFmdGVyOm5hbWVcIlxuICAgKi9cbiAgLy8gQElucHV0KClcbiAgLy8gcHVibGljIHNldCBjb2x1bW5Qb3NpdGlvbih2YWw6IENvbHVtblBvc2l0aW9uU3BlYykge1xuICAvLyAgIHRoaXMuX2NvbHVtblBvc2l0aW9uID0gdmFsO1xuICAvLyB9XG5cbiAgLy8gcHVibGljIGdldCBjb2x1bW5Qb3NpdGlvbigpOiBDb2x1bW5Qb3NpdGlvblNwZWMge1xuICAvLyAgIHJldHVybiB0aGlzLl9jb2x1bW5Qb3NpdGlvbjtcbiAgLy8gfVxufVxuIl19
@@ -62,12 +62,12 @@ export class ElderTableExtensionDirective {
62
62
  get extensionGroupIndex() {
63
63
  return this._extensionGroupIndex;
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
66
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderTableExtensionDirective, isStandalone: true, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
66
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderTableExtensionDirective, isStandalone: true, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [
67
67
  ElderTableProviders.ExistingOrNewTableModel
68
68
  ], queries: [{ propertyName: "columnDefsQuery", predicate: MatColumnDef }, { propertyName: "elderColumnsQuery", predicate: ElderTableColumnDirective }, { propertyName: "rowDefsQuery", predicate: MatRowDef }], ngImport: i0 }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[elderTableExtension]',
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
94
94
  }], columnsPosition: [{
95
95
  type: Input
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWV4dGVuc2lvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFaEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFHL0Q7OztHQUdHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQThCdkM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLFVBQTJCLEVBQ2YsUUFBaUIsRUFDTCxlQUE2QztRQUZyRSxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDTCxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFyQ3hGOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBa0JsRSxvQkFBZSxHQUF1QixrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1RSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWE5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGtCQUFrQjtRQUN2Qix5QkFBeUI7YUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2FBQ2hELG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDekMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQzVELFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzlCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQzs4R0EzRVUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsb0hBTDFCO1lBQ1AsbUJBQW1CLENBQUMsdUJBQXVCO1NBQzlDLDBEQW1CYyxZQUFZLG9EQUdaLHlCQUF5QiwrQ0FHekIsU0FBUzs7MkZBdEJmLDRCQUE0QjtrQkFQeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxTQUFTLEVBQUU7d0JBQ1AsbUJBQW1CLENBQUMsdUJBQXVCO3FCQUM5QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQXVDSSxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFRO3lDQXRCaEIsZUFBZTtzQkFEckIsZUFBZTt1QkFBQyxZQUFZO2dCQUl0QixpQkFBaUI7c0JBRHZCLGVBQWU7dUJBQUMseUJBQXlCO2dCQUluQyxZQUFZO3NCQURsQixlQUFlO3VCQUFDLFNBQVM7Z0JBSW5CLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgUXVlcnlMaXN0LCBTa2lwU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7TWF0Q29sdW1uRGVmLCBNYXRSb3dEZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7Q2RrQ29sdW1uRGVmLCBDZGtSb3dEZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlclRhYmxlUHJvdmlkZXJzfSBmcm9tICcuL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXByb3ZpZGVyJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsfSBmcm9tICcuL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cH0gZnJvbSAnLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1xdWVyeS1ncm91cCc7XG5pbXBvcnQge01hdFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4vbW9kZWwvZWxkZXItY29sdW1uLWxheW91dCc7XG5cblxuLyoqXG4gKiBBbGxvd3MgdG8gZXh0ZW5kIGFuIEVsZGVyVGFibGUgZnJvbSBhIHBhcmVudCBjb21wb25lbnQuXG4gKlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlclRhYmxlRXh0ZW5zaW9uXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEVsZGVyVGFibGVQcm92aWRlcnMuRXhpc3RpbmdPck5ld1RhYmxlTW9kZWxcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhpcyB0YWJsZSBncm91cCBleHRlbnNpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuc2lvbkdyb3VwSW5kZXg6IG51bWJlcjtcblxuICBAQ29udGVudENoaWxkcmVuKE1hdENvbHVtbkRlZilcbiAgcHVibGljIGNvbHVtbkRlZnNRdWVyeTogUXVlcnlMaXN0PENka0NvbHVtbkRlZj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1hdFJvd0RlZilcbiAgcHVibGljIHJvd0RlZnNRdWVyeTogUXVlcnlMaXN0PENka1Jvd0RlZjxhbnk+PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sdW1uc1Bvc2l0aW9uOiBDb2x1bW5Qb3NpdGlvblNwZWMgPSBDb2x1bW5Qb3NpdGlvblNwZWMucmVsYXRpdmVUb1ByZXZHcm91cCgnc3RhcnQnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlTW9kZWw6IEVsZGVyVGFibGVNb2RlbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9tYXRTb3J0OiBNYXRTb3J0LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50RXh0ZW5zaW9uOiBFbGRlclRhYmxlRXh0ZW5zaW9uRGlyZWN0aXZlLFxuICApIHtcbiAgICB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4ID0gKHBhcmVudEV4dGVuc2lvbj8uZXh0ZW5zaW9uR3JvdXBJbmRleCA/PyAwKSArIDE7XG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIEVsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXBcbiAgICAgIC5zdGFydCh0aGlzLnRhYmxlTW9kZWwsIHRoaXMuZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKHRoaXMuY29sdW1uc1Bvc2l0aW9uKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmc1F1ZXJ5LCB0aGlzLmVsZGVyQ29sdW1uc1F1ZXJ5KVxuICAgICAgLndpdGhSb3dEZWZzKHRoaXMucm93RGVmc1F1ZXJ5KVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGV4dGVuc2lvbkdyb3VwSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWV4dGVuc2lvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFaEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFHL0Q7OztHQUdHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQThCdkM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLFVBQTJCLEVBQ2YsUUFBaUIsRUFDTCxlQUE2QztRQUZyRSxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDTCxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFyQ3hGOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBa0JsRSxvQkFBZSxHQUF1QixrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1RSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWE5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGtCQUFrQjtRQUN2Qix5QkFBeUI7YUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2FBQ2hELG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDekMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQzVELFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzlCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQzsrR0EzRVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsb0hBTDFCO1lBQ1AsbUJBQW1CLENBQUMsdUJBQXVCO1NBQzlDLDBEQW1CYyxZQUFZLG9EQUdaLHlCQUF5QiwrQ0FHekIsU0FBUzs7NEZBdEJmLDRCQUE0QjtrQkFQeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxTQUFTLEVBQUU7d0JBQ1AsbUJBQW1CLENBQUMsdUJBQXVCO3FCQUM5QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQXVDSSxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFRO3lDQXRCaEIsZUFBZTtzQkFEckIsZUFBZTt1QkFBQyxZQUFZO2dCQUl0QixpQkFBaUI7c0JBRHZCLGVBQWU7dUJBQUMseUJBQXlCO2dCQUluQyxZQUFZO3NCQURsQixlQUFlO3VCQUFDLFNBQVM7Z0JBSW5CLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgUXVlcnlMaXN0LCBTa2lwU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7TWF0Q29sdW1uRGVmLCBNYXRSb3dEZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7Q2RrQ29sdW1uRGVmLCBDZGtSb3dEZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlclRhYmxlUHJvdmlkZXJzfSBmcm9tICcuL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXByb3ZpZGVyJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsfSBmcm9tICcuL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cH0gZnJvbSAnLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1xdWVyeS1ncm91cCc7XG5pbXBvcnQge01hdFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4vbW9kZWwvZWxkZXItY29sdW1uLWxheW91dCc7XG5cblxuLyoqXG4gKiBBbGxvd3MgdG8gZXh0ZW5kIGFuIEVsZGVyVGFibGUgZnJvbSBhIHBhcmVudCBjb21wb25lbnQuXG4gKlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlclRhYmxlRXh0ZW5zaW9uXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEVsZGVyVGFibGVQcm92aWRlcnMuRXhpc3RpbmdPck5ld1RhYmxlTW9kZWxcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhpcyB0YWJsZSBncm91cCBleHRlbnNpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuc2lvbkdyb3VwSW5kZXg6IG51bWJlcjtcblxuICBAQ29udGVudENoaWxkcmVuKE1hdENvbHVtbkRlZilcbiAgcHVibGljIGNvbHVtbkRlZnNRdWVyeTogUXVlcnlMaXN0PENka0NvbHVtbkRlZj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1hdFJvd0RlZilcbiAgcHVibGljIHJvd0RlZnNRdWVyeTogUXVlcnlMaXN0PENka1Jvd0RlZjxhbnk+PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sdW1uc1Bvc2l0aW9uOiBDb2x1bW5Qb3NpdGlvblNwZWMgPSBDb2x1bW5Qb3NpdGlvblNwZWMucmVsYXRpdmVUb1ByZXZHcm91cCgnc3RhcnQnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlTW9kZWw6IEVsZGVyVGFibGVNb2RlbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9tYXRTb3J0OiBNYXRTb3J0LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50RXh0ZW5zaW9uOiBFbGRlclRhYmxlRXh0ZW5zaW9uRGlyZWN0aXZlLFxuICApIHtcbiAgICB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4ID0gKHBhcmVudEV4dGVuc2lvbj8uZXh0ZW5zaW9uR3JvdXBJbmRleCA/PyAwKSArIDE7XG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIEVsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXBcbiAgICAgIC5zdGFydCh0aGlzLnRhYmxlTW9kZWwsIHRoaXMuZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKHRoaXMuY29sdW1uc1Bvc2l0aW9uKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmc1F1ZXJ5LCB0aGlzLmVsZGVyQ29sdW1uc1F1ZXJ5KVxuICAgICAgLndpdGhSb3dEZWZzKHRoaXMucm93RGVmc1F1ZXJ5KVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGV4dGVuc2lvbkdyb3VwSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG59XG4iXX0=