@theseam/ui-common 0.4.0-beta.6 → 0.4.1

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 (656) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.d.ts +1 -3
  2. package/card/card-body/card-body.component.d.ts +2 -4
  3. package/card/card-footer/card-footer.component.d.ts +1 -4
  4. package/card/card-header/card-header.component.d.ts +1 -4
  5. package/card/card.component.d.ts +1 -4
  6. package/carousel/carousel-slide.directive.d.ts +8 -0
  7. package/carousel/carousel.component.d.ts +85 -0
  8. package/carousel/carousel.module.d.ts +11 -0
  9. package/carousel/index.d.ts +5 -0
  10. package/carousel/public-api.d.ts +3 -0
  11. package/checkbox/checkbox.component.d.ts +2 -4
  12. package/core/common-behaviors/active.d.ts +1 -1
  13. package/core/common-behaviors/disabled.d.ts +1 -1
  14. package/core/common-behaviors/initialized.d.ts +1 -1
  15. package/data-filters/data-filter.d.ts +1 -1
  16. package/datatable/datatable-column/datatable-column.component.d.ts +2 -3
  17. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +1 -3
  18. package/datatable/datatable-export-button/datatable-export-button.component.d.ts +1 -3
  19. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -5
  20. package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +1 -4
  21. package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +1 -4
  22. package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +1 -4
  23. package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +1 -4
  24. package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +1 -3
  25. package/datatable/directives/datatable-action-menu-item.directive.d.ts +2 -4
  26. package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +1 -3
  27. package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +3 -4
  28. package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +1 -1
  29. package/datatable-dynamic/datatable-dynamic.component.d.ts +1 -4
  30. package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +3 -4
  31. package/dynamic/action/modal/dynamic-action-modal-def.d.ts +1 -1
  32. package/esm2020/asset-reader/asset-reader-helper.service.mjs +7 -5
  33. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  34. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +3 -3
  35. package/esm2020/breadcrumbs/breadcrumb.mjs +1 -1
  36. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +4 -5
  37. package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +1 -1
  38. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  39. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +7 -7
  40. package/esm2020/buttons/badge-button/badge-button.component.mjs +9 -7
  41. package/esm2020/buttons/button/button.component.mjs +12 -10
  42. package/esm2020/buttons/buttons.module.mjs +4 -4
  43. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  44. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +6 -6
  45. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  46. package/esm2020/card/card-body/card-body.component.mjs +5 -6
  47. package/esm2020/card/card-footer/card-footer.component.mjs +5 -8
  48. package/esm2020/card/card-header/card-header.component.mjs +5 -7
  49. package/esm2020/card/card.component.mjs +5 -7
  50. package/esm2020/card/card.module.mjs +4 -4
  51. package/esm2020/carousel/carousel-slide.directive.mjs +16 -0
  52. package/esm2020/carousel/carousel.component.mjs +211 -0
  53. package/esm2020/carousel/carousel.module.mjs +38 -0
  54. package/esm2020/carousel/public-api.mjs +4 -0
  55. package/esm2020/carousel/theseam-ui-common-carousel.mjs +5 -0
  56. package/esm2020/checkbox/checkbox.component.mjs +5 -6
  57. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  58. package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
  59. package/esm2020/checkbox/testing/index.mjs +1 -1
  60. package/esm2020/confirm-dialog/confirm-click.directive.mjs +6 -6
  61. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  62. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  63. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  64. package/esm2020/core/common-behaviors/active.mjs +2 -1
  65. package/esm2020/core/common-behaviors/disabled.mjs +2 -1
  66. package/esm2020/core/common-behaviors/initialized.mjs +2 -1
  67. package/esm2020/core/common-behaviors/tabindex.mjs +2 -1
  68. package/esm2020/core/input-decorators/input-boolean.decorator.mjs +4 -5
  69. package/esm2020/core/input-decorators/input-number.decorator.mjs +4 -5
  70. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  71. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  72. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  73. package/esm2020/data-filters/data-filter.mjs +1 -1
  74. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  75. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +5 -5
  76. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +6 -6
  77. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -8
  78. package/esm2020/datatable/datatable/datatable.component.mjs +11 -6
  79. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  80. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +5 -4
  81. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -5
  82. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  83. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -5
  84. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +5 -5
  85. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  86. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +5 -5
  87. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +9 -13
  88. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +5 -8
  89. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +5 -8
  90. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +5 -8
  91. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +5 -8
  92. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -5
  93. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  94. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +5 -5
  95. package/esm2020/datatable/datatable.module.mjs +4 -4
  96. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +5 -6
  97. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +3 -3
  98. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  99. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  100. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  101. package/esm2020/datatable/models/columns-alteration.mjs +1 -1
  102. package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +3 -1
  103. package/esm2020/datatable/models/datatable-gql-data-source.mjs +1 -1
  104. package/esm2020/datatable/models/internal-column-props.mjs +1 -1
  105. package/esm2020/datatable/models/sort-item.mjs +1 -1
  106. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  107. package/esm2020/datatable/services/columns-manager.service.mjs +5 -5
  108. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  109. package/esm2020/datatable/services/datatable-preferences.service.mjs +5 -4
  110. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +5 -5
  111. package/esm2020/datatable/utils/map-columns-alterations-states.mjs +4 -1
  112. package/esm2020/datatable/utils/set-column-defaults.mjs +2 -2
  113. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +5 -6
  114. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
  115. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -7
  116. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +1 -1
  117. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +4 -6
  118. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  119. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +6 -6
  120. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +7 -7
  121. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +6 -6
  122. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +11 -8
  123. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +6 -5
  124. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  125. package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +1 -1
  126. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  127. package/esm2020/dynamic/dynamic-value-helper.service.mjs +5 -4
  128. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  129. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +5 -5
  130. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  131. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +9 -9
  132. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +5 -8
  133. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  134. package/esm2020/form-field/form-field-error.directive.mjs +4 -4
  135. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  136. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  137. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  138. package/esm2020/form-field/form-field.component.mjs +5 -5
  139. package/esm2020/form-field/form-field.module.mjs +4 -4
  140. package/esm2020/form-field/input.directive.mjs +10 -9
  141. package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
  142. package/esm2020/form-field/testing/index.mjs +1 -1
  143. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +5 -7
  144. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  145. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  146. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +8 -8
  147. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  148. package/esm2020/framework/base-layout/base-layout.component.mjs +5 -4
  149. package/esm2020/framework/base-layout/base-layout.module.mjs +5 -5
  150. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  151. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  152. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  153. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +3 -3
  154. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  155. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  156. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  157. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +5 -7
  158. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -5
  159. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +7 -7
  160. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +6 -5
  161. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
  162. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +7 -5
  163. package/esm2020/framework/dashboard/dashboard.component.mjs +5 -5
  164. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  165. package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +1 -1
  166. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  167. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +1 -1
  168. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +5 -6
  169. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +5 -6
  170. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  171. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  172. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  173. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  174. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  175. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  176. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  177. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  178. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  179. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +5 -4
  180. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +5 -5
  181. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -6
  182. package/esm2020/framework/side-nav/side-nav-utils.mjs +2 -1
  183. package/esm2020/framework/side-nav/side-nav.component.mjs +6 -7
  184. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  185. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  186. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  187. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  188. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
  189. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  190. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +5 -7
  191. package/esm2020/framework/top-bar/top-bar.component.mjs +4 -6
  192. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  193. package/esm2020/google-maps/google-maps/google-maps.component.mjs +23 -26
  194. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +3 -3
  195. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +3 -3
  196. package/esm2020/google-maps/google-maps-contextmenu.mjs +9 -8
  197. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  198. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +9 -10
  199. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +9 -9
  200. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +6 -6
  201. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +6 -6
  202. package/esm2020/google-maps/google-maps.module.mjs +4 -4
  203. package/esm2020/google-maps/google-maps.service.mjs +8 -8
  204. package/esm2020/google-maps/map-control.component.mjs +3 -3
  205. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  206. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  207. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +1 -27
  208. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  209. package/esm2020/graphql/datatable/datatable-helpers.mjs +2 -2
  210. package/esm2020/graphql/datatable/map-filter-states.mjs +2 -1
  211. package/esm2020/graphql/utils/inline-variables.mjs +2 -1
  212. package/esm2020/graphql/utils/parse-hints.mjs +3 -3
  213. package/esm2020/graphql/utils/to-gql.mjs +3 -3
  214. package/esm2020/icon/icon/icon.component.mjs +5 -5
  215. package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -5
  216. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  217. package/esm2020/icon/icon.module.mjs +4 -4
  218. package/esm2020/icon/utils/get-known-icon.mjs +71 -71
  219. package/esm2020/layout/breakpoint-aliases.mjs +1 -1
  220. package/esm2020/layout/layout.module.mjs +4 -4
  221. package/esm2020/layout/layout.service.mjs +3 -3
  222. package/esm2020/layout/observe-media-query.mjs +1 -1
  223. package/esm2020/loading/loading/loading.component.mjs +8 -9
  224. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  225. package/esm2020/loading/loading.module.mjs +4 -4
  226. package/esm2020/menu/menu-divider.component.mjs +3 -3
  227. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  228. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +4 -4
  229. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  230. package/esm2020/menu/menu-item.component.mjs +4 -5
  231. package/esm2020/menu/menu-toggle.directive.mjs +4 -4
  232. package/esm2020/menu/menu.component.mjs +4 -4
  233. package/esm2020/menu/menu.module.mjs +4 -4
  234. package/esm2020/modal/directives/modal-close.directive.mjs +3 -3
  235. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  236. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  237. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  238. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  239. package/esm2020/modal/directives/modal.directive.mjs +5 -5
  240. package/esm2020/modal/modal/modal.component.mjs +6 -7
  241. package/esm2020/modal/modal-body/modal-body.component.mjs +5 -7
  242. package/esm2020/modal/modal-config.mjs +1 -1
  243. package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
  244. package/esm2020/modal/modal-footer/modal-footer.component.mjs +5 -7
  245. package/esm2020/modal/modal-header/modal-header.component.mjs +5 -7
  246. package/esm2020/modal/modal-ref.mjs +1 -1
  247. package/esm2020/modal/modal.module.mjs +4 -4
  248. package/esm2020/modal/modal.service.mjs +26 -23
  249. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -5
  250. package/esm2020/popover/popover/popover.component.mjs +3 -3
  251. package/esm2020/popover/popover.directive.mjs +4 -4
  252. package/esm2020/popover/popover.module.mjs +5 -5
  253. package/esm2020/progress/progress-circle/progress-circle.component.mjs +10 -10
  254. package/esm2020/progress/progress.module.mjs +4 -4
  255. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -5
  256. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  257. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  258. package/esm2020/services/asset-loader.service.mjs +5 -6
  259. package/esm2020/services/font-loader.service.mjs +5 -6
  260. package/esm2020/services/router-helpers.service.mjs +3 -3
  261. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  262. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  263. package/esm2020/shared/directives/click-outside.directive.mjs +3 -3
  264. package/esm2020/shared/directives/disable-control.directive.mjs +3 -3
  265. package/esm2020/shared/directives/elem-resized.directive.mjs +5 -5
  266. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
  267. package/esm2020/shared/directives/hover-class.directive.mjs +3 -3
  268. package/esm2020/shared/directives/ng-select-extra.directive.mjs +7 -7
  269. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +5 -5
  270. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  271. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  272. package/esm2020/shared/shared.module.mjs +4 -4
  273. package/esm2020/storage/local-storage.service.mjs +8 -8
  274. package/esm2020/storage/localstorage-memory.mjs +4 -4
  275. package/esm2020/story-helpers/arg-type-helpers.mjs +1 -1
  276. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  277. package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +2 -1
  278. package/esm2020/story-helpers/public-api.mjs +2 -2
  279. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  280. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  281. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  282. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  283. package/esm2020/story-helpers/story-modal-container.component.mjs +4 -4
  284. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  285. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +5 -5
  286. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +5 -4
  287. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +5 -7
  288. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +5 -6
  289. package/esm2020/tabbed/tabbed.component.mjs +4 -4
  290. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  291. package/esm2020/tabbed/tabbed.service.mjs +5 -5
  292. package/esm2020/table/table/table.component.mjs +5 -6
  293. package/esm2020/table/table.module.mjs +4 -4
  294. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +5 -5
  295. package/esm2020/table-cell-type/table-cell-type-export-props.mjs +1 -1
  296. package/esm2020/table-cell-type/table-cell-type-models.mjs +1 -1
  297. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +5 -6
  298. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  299. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +12 -12
  300. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +8 -12
  301. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +14 -14
  302. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +10 -10
  303. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +14 -14
  304. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -7
  305. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +11 -10
  306. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +7 -8
  307. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +11 -8
  308. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  309. package/esm2020/tel-input/intl-tel-input.mjs +2 -2
  310. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  311. package/esm2020/tel-input/tel-input/tel-input.component.mjs +5 -6
  312. package/esm2020/tel-input/tel-input.directive.mjs +4 -4
  313. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  314. package/esm2020/tel-input/utils/add-country-code.mjs +4 -4
  315. package/esm2020/tel-input/utils/process-country-codes.mjs +4 -7
  316. package/esm2020/testing/story-expect.mjs +2 -1
  317. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +5 -6
  318. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -5
  319. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +12 -13
  320. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  321. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  322. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  323. package/esm2020/tiled-select/testing/index.mjs +1 -1
  324. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  325. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +5 -8
  326. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  327. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  328. package/esm2020/toggle-edit/toggle-edit.component.mjs +7 -7
  329. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  330. package/esm2020/toggle-group/toggle-group-option.directive.mjs +3 -3
  331. package/esm2020/toggle-group/toggle-group.directive.mjs +6 -6
  332. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  333. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +5 -5
  334. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +5 -8
  335. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +5 -4
  336. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  337. package/esm2020/utils/array-move.mjs +1 -1
  338. package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +3 -3
  339. package/esm2020/utils/file-utils.mjs +2 -2
  340. package/esm2020/utils/form/get-control-path.mjs +6 -5
  341. package/esm2020/utils/geo-json/geo-json-to-area.mjs +3 -3
  342. package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
  343. package/esm2020/utils/geo-json/min-max-points.validator.mjs +5 -5
  344. package/esm2020/utils/geo-json/read-geo-file.mjs +3 -2
  345. package/esm2020/utils/has-property.mjs +2 -2
  346. package/esm2020/utils/load-style-sheet.mjs +2 -2
  347. package/esm2020/utils/load-style.mjs +2 -2
  348. package/esm2020/utils/obj-utils.mjs +2 -2
  349. package/esm2020/utils/polling-ticker.mjs +2 -2
  350. package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +2 -2
  351. package/esm2020/utils/router/route-snapshot-path-full.mjs +2 -2
  352. package/esm2020/utils/router/route-snapshot-path-relative.mjs +2 -2
  353. package/esm2020/utils/router/will-have-data-prop.mjs +3 -3
  354. package/esm2020/utils/subscriber-count.mjs +2 -1
  355. package/esm2020/utils/toggle-attribute.mjs +6 -5
  356. package/esm2020/utils/wait-on-condition-async.mjs +5 -5
  357. package/esm2020/vertical-list-filter/public-api.mjs +3 -0
  358. package/esm2020/vertical-list-filter/testing/index.mjs +2 -0
  359. package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +28 -0
  360. package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +5 -0
  361. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +52 -0
  362. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
  363. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  364. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +5 -4
  365. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  366. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +5 -4
  367. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  368. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +7 -7
  369. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  370. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  371. package/esm2020/widget/widget/widget.component.mjs +3 -3
  372. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +5 -8
  373. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  374. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +5 -8
  375. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  376. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  377. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  378. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +6 -7
  379. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  380. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +5 -7
  381. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  382. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +5 -8
  383. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  384. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +5 -5
  385. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  386. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  387. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -19
  388. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +5 -7
  389. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  390. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +5 -5
  391. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  392. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +6 -9
  393. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +5 -6
  394. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +5 -8
  395. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +5 -5
  396. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +9 -8
  397. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +10 -10
  398. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +5 -8
  399. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  400. package/esm2020/widget/widget-footer/widget-footer.component.mjs +5 -7
  401. package/esm2020/widget/widget-registry.service.mjs +6 -5
  402. package/esm2020/widget/widget.module.mjs +7 -7
  403. package/fesm2015/theseam-ui-common-asset-reader.mjs +13 -11
  404. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  405. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +13 -14
  406. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  407. package/fesm2015/theseam-ui-common-buttons.mjs +31 -27
  408. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  409. package/fesm2015/theseam-ui-common-card.mjs +23 -31
  410. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  411. package/fesm2015/theseam-ui-common-carousel.mjs +265 -0
  412. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -0
  413. package/fesm2015/theseam-ui-common-checkbox.mjs +8 -9
  414. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  415. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +15 -15
  416. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  417. package/fesm2015/theseam-ui-common-core.mjs +10 -8
  418. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  419. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  420. package/fesm2015/theseam-ui-common-data-filters.mjs +23 -20
  421. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  422. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +34 -38
  423. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  424. package/fesm2015/theseam-ui-common-datatable.mjs +115 -123
  425. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  426. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  427. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  428. package/fesm2015/theseam-ui-common-dynamic.mjs +36 -26
  429. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  430. package/fesm2015/theseam-ui-common-footer-bar.mjs +8 -11
  431. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  432. package/fesm2015/theseam-ui-common-form-field-error.mjs +21 -23
  433. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  434. package/fesm2015/theseam-ui-common-form-field.mjs +29 -28
  435. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  436. package/fesm2015/theseam-ui-common-framework.mjs +153 -160
  437. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  438. package/fesm2015/theseam-ui-common-google-maps.mjs +84 -86
  439. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  440. package/fesm2015/theseam-ui-common-graphql.mjs +10 -34
  441. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  442. package/fesm2015/theseam-ui-common-icon.mjs +84 -85
  443. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  444. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  445. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  446. package/fesm2015/theseam-ui-common-loading.mjs +14 -15
  447. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  448. package/fesm2015/theseam-ui-common-menu.mjs +25 -26
  449. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  450. package/fesm2015/theseam-ui-common-modal.mjs +71 -76
  451. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  452. package/fesm2015/theseam-ui-common-popover.mjs +10 -10
  453. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  454. package/fesm2015/theseam-ui-common-progress.mjs +13 -13
  455. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  456. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -11
  457. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  458. package/fesm2015/theseam-ui-common-services.mjs +11 -13
  459. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  460. package/fesm2015/theseam-ui-common-shared.mjs +42 -42
  461. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  462. package/fesm2015/theseam-ui-common-storage.mjs +10 -10
  463. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  464. package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -100
  465. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  466. package/fesm2015/theseam-ui-common-tabbed.mjs +27 -29
  467. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  468. package/fesm2015/theseam-ui-common-table-cell-type.mjs +12 -13
  469. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  470. package/fesm2015/theseam-ui-common-table-cell-types.mjs +87 -89
  471. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  472. package/fesm2015/theseam-ui-common-table.mjs +8 -9
  473. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  474. package/fesm2015/theseam-ui-common-tel-input.mjs +21 -25
  475. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  476. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  477. package/fesm2015/theseam-ui-common-tiled-select.mjs +31 -34
  478. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  479. package/fesm2015/theseam-ui-common-toggle-edit.mjs +20 -23
  480. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  481. package/fesm2015/theseam-ui-common-toggle-group.mjs +12 -12
  482. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  483. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  484. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  485. package/fesm2015/theseam-ui-common-utils.mjs +36 -32
  486. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  487. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +96 -0
  488. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  489. package/fesm2015/theseam-ui-common-viewers.mjs +22 -20
  490. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  491. package/fesm2015/theseam-ui-common-widget.mjs +159 -186
  492. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  493. package/fesm2020/theseam-ui-common-asset-reader.mjs +13 -11
  494. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  495. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +13 -14
  496. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  497. package/fesm2020/theseam-ui-common-buttons.mjs +31 -27
  498. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  499. package/fesm2020/theseam-ui-common-card.mjs +23 -31
  500. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  501. package/fesm2020/theseam-ui-common-carousel.mjs +265 -0
  502. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -0
  503. package/fesm2020/theseam-ui-common-checkbox.mjs +8 -9
  504. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  505. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +15 -15
  506. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  507. package/fesm2020/theseam-ui-common-core.mjs +10 -8
  508. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  509. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  510. package/fesm2020/theseam-ui-common-data-filters.mjs +23 -20
  511. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  512. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +34 -38
  513. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  514. package/fesm2020/theseam-ui-common-datatable.mjs +115 -123
  515. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  516. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  517. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  518. package/fesm2020/theseam-ui-common-dynamic.mjs +36 -26
  519. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  520. package/fesm2020/theseam-ui-common-footer-bar.mjs +8 -11
  521. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  522. package/fesm2020/theseam-ui-common-form-field-error.mjs +21 -23
  523. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  524. package/fesm2020/theseam-ui-common-form-field.mjs +29 -28
  525. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  526. package/fesm2020/theseam-ui-common-framework.mjs +153 -160
  527. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  528. package/fesm2020/theseam-ui-common-google-maps.mjs +83 -86
  529. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  530. package/fesm2020/theseam-ui-common-graphql.mjs +10 -34
  531. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  532. package/fesm2020/theseam-ui-common-icon.mjs +84 -85
  533. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  534. package/fesm2020/theseam-ui-common-layout.mjs +16 -8
  535. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  536. package/fesm2020/theseam-ui-common-loading.mjs +14 -15
  537. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  538. package/fesm2020/theseam-ui-common-menu.mjs +25 -26
  539. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  540. package/fesm2020/theseam-ui-common-modal.mjs +71 -76
  541. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  542. package/fesm2020/theseam-ui-common-models.mjs +2 -1
  543. package/fesm2020/theseam-ui-common-models.mjs.map +1 -1
  544. package/fesm2020/theseam-ui-common-popover.mjs +10 -10
  545. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  546. package/fesm2020/theseam-ui-common-progress.mjs +13 -13
  547. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  548. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -11
  549. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  550. package/fesm2020/theseam-ui-common-services.mjs +11 -13
  551. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  552. package/fesm2020/theseam-ui-common-shared.mjs +42 -42
  553. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  554. package/fesm2020/theseam-ui-common-storage.mjs +10 -10
  555. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  556. package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -96
  557. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  558. package/fesm2020/theseam-ui-common-tabbed.mjs +27 -29
  559. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  560. package/fesm2020/theseam-ui-common-table-cell-type.mjs +12 -13
  561. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  562. package/fesm2020/theseam-ui-common-table-cell-types.mjs +87 -89
  563. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  564. package/fesm2020/theseam-ui-common-table.mjs +8 -9
  565. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  566. package/fesm2020/theseam-ui-common-tel-input.mjs +21 -25
  567. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  568. package/fesm2020/theseam-ui-common-testing.mjs +1 -0
  569. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  570. package/fesm2020/theseam-ui-common-tiled-select.mjs +31 -34
  571. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  572. package/fesm2020/theseam-ui-common-toggle-edit.mjs +20 -23
  573. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  574. package/fesm2020/theseam-ui-common-toggle-group.mjs +12 -12
  575. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  576. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  577. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  578. package/fesm2020/theseam-ui-common-utils.mjs +36 -32
  579. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  580. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +87 -0
  581. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  582. package/fesm2020/theseam-ui-common-viewers.mjs +22 -20
  583. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  584. package/fesm2020/theseam-ui-common-widget.mjs +159 -186
  585. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  586. package/footer-bar/footer-bar/footer-bar.component.d.ts +1 -4
  587. package/form-field-error/form-field-error/form-field-error.component.d.ts +1 -4
  588. package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +2 -3
  589. package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +2 -4
  590. package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +2 -3
  591. package/framework/dashboard/dashboard.component.d.ts +0 -1
  592. package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +2 -3
  593. package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -1
  594. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +2 -4
  595. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -5
  596. package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +1 -4
  597. package/framework/top-bar/top-bar.component.d.ts +2 -4
  598. package/google-maps/google-maps/google-maps.component.d.ts +3 -6
  599. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +2 -3
  600. package/graphql/datatable/datatable-graphql-query-ref.d.ts +0 -1
  601. package/icon/icon-btn/icon-btn.component.d.ts +2 -3
  602. package/loading/loading/loading.component.d.ts +1 -4
  603. package/menu/menu-item.component.d.ts +2 -3
  604. package/modal/modal/modal.component.d.ts +3 -4
  605. package/modal/modal-body/modal-body.component.d.ts +1 -4
  606. package/modal/modal-footer/modal-footer.component.d.ts +1 -4
  607. package/modal/modal-header/modal-header.component.d.ts +1 -4
  608. package/modal/route-modal/route-modal.component.d.ts +2 -3
  609. package/package.json +17 -1
  610. package/progress/progress-circle/progress-circle.component.d.ts +0 -1
  611. package/scrollbar/overlay-scrollbar.directive.d.ts +2 -3
  612. package/services/asset-loader.service.d.ts +0 -1
  613. package/services/font-loader.service.d.ts +0 -1
  614. package/story-helpers/public-api.d.ts +0 -1
  615. package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -1
  616. package/tabbed/tabbed-content/tabbed-content.component.d.ts +1 -4
  617. package/tabbed/tabbed-item/tabbed-item.component.d.ts +2 -4
  618. package/tabbed/tabbed.service.d.ts +0 -1
  619. package/table/table/table.component.d.ts +2 -3
  620. package/table-cell-type/table-cell-type-models.d.ts +1 -1
  621. package/table-cell-type/table-cell-type-selector.component.d.ts +3 -4
  622. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +2 -3
  623. package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +2 -3
  624. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +2 -3
  625. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +2 -3
  626. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +2 -3
  627. package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +2 -3
  628. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +2 -3
  629. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +2 -3
  630. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +2 -3
  631. package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +1 -4
  632. package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +1 -4
  633. package/toggle-group/toggle-group.directive.d.ts +0 -1
  634. package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -4
  635. package/utils/obj-utils.d.ts +2 -2
  636. package/vertical-list-filter/index.d.ts +5 -0
  637. package/vertical-list-filter/public-api.d.ts +2 -0
  638. package/vertical-list-filter/testing/index.d.ts +1 -0
  639. package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +9 -0
  640. package/vertical-list-filter/vertical-list-filter.component.d.ts +17 -0
  641. package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +1 -4
  642. package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +1 -4
  643. package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +2 -3
  644. package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +1 -4
  645. package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +1 -4
  646. package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +2 -3
  647. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +4 -7
  648. package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +1 -4
  649. package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -1
  650. package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +1 -4
  651. package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +2 -3
  652. package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +1 -4
  653. package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +1 -4
  654. package/widget/widget-footer/widget-footer.component.d.ts +1 -4
  655. package/esm2020/story-helpers/args-to-tpl.mjs +0 -72
  656. package/story-helpers/args-to-tpl.d.ts +0 -24
@@ -18,11 +18,11 @@ const DEFAULT_DRAWING_MANAGER_OPTIONS = () => ({
18
18
  drawingControl: true,
19
19
  drawingControlOptions: {
20
20
  drawingModes: [
21
- google.maps.drawing.OverlayType.POLYGON
22
- ]
21
+ google.maps.drawing.OverlayType.POLYGON,
22
+ ],
23
23
  },
24
24
  polygonOptions: DEFAULT_POLYGON_OPTIONS,
25
- drawingMode: null
25
+ drawingMode: null,
26
26
  });
27
27
  const FEATURE_STYLE_OPTIONS_DEFAULT = {
28
28
  clickable: true,
@@ -196,7 +196,7 @@ export class GoogleMapsService {
196
196
  this.googleMap.data.forEach(f => setFeatureSelected(f, false));
197
197
  });
198
198
  // Determine what the style of the features are.
199
- this.googleMap.data.setStyle((feature) => {
199
+ this.googleMap.data.setStyle(feature => {
200
200
  if (isFeatureSelected(feature)) {
201
201
  return FEATURE_STYLE_OPTIONS_SELECTED;
202
202
  }
@@ -347,9 +347,9 @@ export class GoogleMapsService {
347
347
  }
348
348
  }
349
349
  }
350
- GoogleMapsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: GoogleMapsService, deps: [{ token: i1.MapValueManagerService }, { token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Injectable });
351
- GoogleMapsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: GoogleMapsService });
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: GoogleMapsService, decorators: [{
350
+ GoogleMapsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GoogleMapsService, deps: [{ token: i1.MapValueManagerService }, { token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Injectable });
351
+ GoogleMapsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GoogleMapsService });
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: GoogleMapsService, decorators: [{
353
353
  type: Injectable
354
354
  }], ctorParameters: function () { return [{ type: i1.MapValueManagerService }, { type: i0.NgZone }, { type: i0.ViewContainerRef }]; } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLE1BQU0sZUFBZSxDQUFBO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUcxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQ0FBaUMsR0FDbEMsTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7QUFJcEYsTUFBTSx1QkFBdUIsR0FBK0I7SUFDMUQsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2Qsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFBO0FBRUQsTUFBTSwrQkFBK0IsR0FBc0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxjQUFjLEVBQUUsSUFBSTtJQUNwQixxQkFBcUIsRUFBRTtRQUNyQixZQUFZLEVBQUU7WUFDWixNQUFNLENBQUMs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QUE7U0FDdEM7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxxQkFBcUIsQ0FDakQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLFNBQVMsRUFDVCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ25CLE9BQU8sQ0FDUixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLHNCQUErQixJQUFJO1FBQ25ELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLG1CQUFtQixFQUFFO29CQUN2QixpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFDckM7Z0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1osQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxpREFBaUQ7SUFDekMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ3RFLE1BQU0sS0FBSyxDQUNULDRFQUE0RTtnQkFDMUUsb0VBQW9FLENBQ3ZFLENBQUE7U0FDRjtJQUNILENBQUM7OzhHQWpZVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgR29vZ2xlTWFwc0NvbnRleHRNZW51IH0gZnJvbSAnLi9nb29nbGUtbWFwcy1jb250ZXh0bWVudSdcbmltcG9ydCB7XG4gIGFkZElubmVyRmVhdHVyZUN1dG91dFRvRXh0ZXJpb3JGZWF0dXJlLFxuICBjcmVhdGVEYXRhRmVhdHVyZUZyb21Qb2x5Z29uLFxuICBjcmVhdGVGZWF0dXJlQ2hhbmdlT2JzZXJ2YWJsZSxcbiAgZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzLFxuICBnZXRGZWF0dXJlQ2VudGVyLFxuICBnZXRGZWF0dXJlc0NvdW50LFxuICBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSxcbiAgaXNGZWF0dXJlU2VsZWN0ZWQsXG4gIHBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3RocyxcbiAgcmVtb3ZlQWxsRmVhdHVyZXMsXG4gIHNldEZlYXR1cmVTZWxlY3RlZCxcbiAgc3RyaXBBcHBGZWF0dXJlUHJvcGVydGllc0Zyb21Kc29uLFxufSBmcm9tICcuL2dvb2dsZS1tYXBzLWZlYXR1cmUtaGVscGVycydcbmltcG9ydCB7IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsIE1hcFZhbHVlU291cmNlIH0gZnJvbSAnLi9tYXAtdmFsdWUtbWFuYWdlci5zZXJ2aWNlJ1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG5jb25zdCBERUZBVUxUX1BPTFlHT05fT1BUSU9OUzogZ29vZ2xlLm1hcHMuUG9seWdvbk9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgLy8gZmlsbENvbG9yOiAncmdiYSg2MCwxNTAsNjAsMSknLFxuICAvLyBzdHJva2VDb2xvcjogJ3JnYmEoMTU1LDI1NSwwLDEpJ1xufVxuXG5jb25zdCBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TOiAoKCkgPT4gZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlck9wdGlvbnMpID0gKCkgPT4gKHtcbiAgZHJhd2luZ0NvbnRyb2w6IHRydWUsXG4gIGRyYXdpbmdDb250cm9sT3B0aW9uczoge1xuICAgIGRyYXdpbmdNb2RlczogW1xuICAgICAgZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5VHlwZS5QT0xZR09OXG4gICAgXVxuICB9LFxuICBwb2x5Z29uT3B0aW9uczogREVGQVVMVF9QT0xZR09OX09QVElPTlMsXG4gIGRyYXdpbmdNb2RlOiBudWxsXG59KVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVDogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgdmlzaWJsZTogdHJ1ZSxcbiAgLy8gekluZGV4PzogbnVtYmVyO1xuXG4gIC8vIGN1cnNvcj86IHN0cmluZztcbiAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgZWRpdGFibGU6IGZhbHNlLFxuICBmaWxsQ29sb3I6ICd0ZWFsJyxcbiAgZmlsbE9wYWNpdHk6IDAuMyxcbiAgc3Ryb2tlQ29sb3I6ICdibHVlJyxcbiAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgc3Ryb2tlV2VpZ2h0OiAyLFxufVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfU0VMRUNURUQ6IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zID0ge1xuICAuLi5GRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVCxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgZmlsbENvbG9yOiAnZ3JlZW4nLFxuICBmaWxsT3BhY2l0eTogMC43LFxuICBzdHJva2VDb2xvcjogJ2xpbWVncmVlbicsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdlaWdodDogMixcbn1cblxudHlwZSBXaXRoUmVxdWlyZWQ8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gVCAmIHsgW1AgaW4gS10tPzogVFtQXSB9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVNYXBzU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwUmVhZHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICBwcml2YXRlIF9kcmF3aW5nTWFuYWdlcj86IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXJcbiAgcHJpdmF0ZSBfZmVhdHVyZUNvbnRleHRNZW51OiBNZW51Q29tcG9uZW50IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfYWN0aXZlQ29udGV4dE1lbnU6IEdvb2dsZU1hcHNDb250ZXh0TWVudSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgX2Jhc2VMYXRMbmc/OiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsXG5cbiAgcHJpdmF0ZSBfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLy8gVE9ETzogTW92ZSB0byBhIGJldHRlciBwbGFjZSB0aGFuIHRoZSBtYXAgd3JhcHBlciBzZXJ2aWNlLlxuICBwcml2YXRlIF9maWxlSW5wdXRIYW5kbGVyOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIHB1YmxpYyBnb29nbGVNYXA/OiBnb29nbGUubWFwcy5NYXBcblxuICBwdWJsaWMgcmVhZG9ubHkgbWFwUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIGdldCBtYXBSZWFkeSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX21hcFJlYWR5U3ViamVjdC52YWx1ZSB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFwVmFsdWVNYW5hZ2VyOiBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7XG4gICAgdGhpcy5tYXBSZWFkeSQgPSB0aGlzLl9tYXBSZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwdWJsaWMgc2V0TWFwKG1hcDogZ29vZ2xlLm1hcHMuTWFwKTogdm9pZCB7XG4gICAgdGhpcy5nb29nbGVNYXAgPSBtYXBcbiAgICB0aGlzLl9tYXBSZWFkeVN1YmplY3QubmV4dCh0cnVlKVxuICAgIHRoaXMuX2luaXREcmF3aW5nTWFuYWdlcigpXG4gICAgdGhpcy5faW5pdEZlYXR1cmVTdHlsaW5nKClcbiAgICB0aGlzLl9pbml0RmVhdHVyZUNoYW5nZUxpc3RlbmVycygpXG4gIH1cblxuICBwdWJsaWMgc2V0QmFzZUxhdExuZyhsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9iYXNlTGF0TG5nID0geyBsYXQsIGxuZyB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBzZXRGZWF0dXJlQ29udGV4dE1lbnUobWVudTogTWVudUNvbXBvbmVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUgPSBtZW51XG4gIH1cblxuICBwdWJsaWMgZ2V0RGl2KCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlTWFwLmdldERpdigpIGFzIEhUTUxEaXZFbGVtZW50XG4gIH1cblxuICBwdWJsaWMgZml0Qm91bmRzKGJvdW5kczogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IGdvb2dsZS5tYXBzLlBhZGRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGJvdW5kcywgcGFkZGluZylcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aGUgbWFwJ3MgZmVhdHVyZXMgYW5kIHJlbW92ZXMgYW55IHRoYXQgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgY29uc3QgbWFwRGF0YSA9IHRoaXMuZ29vZ2xlTWFwLmRhdGFcbiAgICBtYXBEYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgbWFwRGF0YS5yZW1vdmUoZilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIHRoZSBjdXJyZW50IGRyYXdpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RvcERyYXdpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikgfHwgdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTGlzdGVuaW5nIGZvciB0aGUgY29tcGxldGlvbiBldmVudCBvZiB0aGUgb3ZlcmxheSBjdXJyZW50bHkgYmVpbmcgZHJhd25cbiAgICAgIC8vIGFuZCByZW1vdmluZyBpdC4gSSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIGNhbmNlbCB0aGUgY3VycmVudCBkcmF3aW5nLFxuICAgICAgLy8gd2l0aG91dCB0aGlzIGhhY2sgdGhhdCBhc3N1bWVzIG91ciBsaXN0ZW5lcnMgd2lsbCBub3QgcnVuIGludG8gYSByYWNlXG4gICAgICAvLyBjb25kaXRpb24uXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKFxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcixcbiAgICAgICAgJ292ZXJsYXljb21wbGV0ZScsXG4gICAgICAgIChldmVudDogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5Q29tcGxldGVFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50Lm92ZXJsYXk/LnNldE1hcChudWxsKVxuICAgICAgICAgIGxpc3RlbmVyLnJlbW92ZSgpXG4gICAgICAgIH1cbiAgICAgIClcblxuICAgICAgLy8gVG8gZmFrZSBjYW5jZWxpbmcgdGhlIGN1cnJlbnQgZHJhd2luZywgd2l0aG91dCBkaXNhYmxpbmcgdGhlIGRyYXdpbmdcbiAgICAgIC8vIG1vZGUsIHRoZSBkcmF3aW4gbW9kZSBpcyBiZWluZyB1bnNldCB0aGVuIGltbWVkaWF0ZWx5IHNldCBiYWNrLiBXaGVuXG4gICAgICAvLyB0aGUgbW9kZSBpcyB1bnNldCB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQgd2lsbCBmaXJlLCB3aGljaCB3aWxsXG4gICAgICAvLyBnaXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IG92ZXJsYXkgdG8gcmVtb3ZlLCB0aGVuIGl0IGlzIHNldCBiYWNrXG4gICAgICAvLyB0byB0aGUgbW9kZSB0aGUgdXNlciB3YXMgdXNpbmcuIFRvIHRoZSB1c2VyIGlzIHNob3VsZCBqdXN0IHNlZW0gbGlrZVxuICAgICAgLy8gdGhlIGN1cnJlbnQgZHJhd2luZyB3YXMgY2FuY2VsZWQgYW5kIHRoZXkgY2FuIHN0YXJ0IGRyYXdpbmcgYWdhaW4uXG4gICAgICBjb25zdCBtb2RlID0gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKVxuICAgICAgdGhpcy5fZHJhd2luZ01hbmFnZXIuc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLnNldERyYXdpbmdNb2RlKG1vZGUpXG5cbiAgICAgIC8vICdvdmVybGF5Y29tcGxldGUnIHNob3VsZCBmaXJlIGltbWVkaWF0ZWx5LCB1bmxlc3MgYW4gb3ZlcmxheSBoYWRuJ3RcbiAgICAgIC8vIHN0YXJ0ZWQgZHJhd2luZy4gVGhpcyB0aW1lb3V0IHdpbGwgbWFrZSBzdXJlIHRoZSBsaXN0ZW5lciBnZXRzIHJlbW92ZWQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbGlzdGVuZXIucmVtb3ZlKClcbiAgICAgIH0pXG5cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyYXdpbmdNYW5hZ2VyKCk6IHZvaWQge1xuICAgIGlmIChub3ROdWxsT3JVbmRlZmluZWQodGhpcy5fZHJhd2luZ01hbmFnZXIpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgRHJhd2luZ01hbmFnZXIgaXMgYWxyZWFkeSBpbml0aWFsaXplZC5gKVxuICAgIH1cblxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TKClcblxuICAgIGNvbnN0IGRyYXdpbmdNYW5hZ2VyID0gbmV3IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXIob3B0aW9ucylcbiAgICBkcmF3aW5nTWFuYWdlci5zZXRNYXAodGhpcy5nb29nbGVNYXApXG5cbiAgICB0aGlzLl9kcmF3aW5nTWFuYWdlciA9IGRyYXdpbmdNYW5hZ2VyXG5cbiAgICB0aGlzLl9kcmF3aW5nTWFuYWdlci5hZGRMaXN0ZW5lcignZHJhd2luZ21vZGVfY2hhbmdlZCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy5fZHJhd2luZ01hbmFnZXI/LmdldERyYXdpbmdNb2RlKCkgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZiwgZmFsc2UpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYWRkQ29udHJvbChlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246IGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICB0aGlzLmdvb2dsZU1hcC5jb250cm9sc1twb3NpdGlvbl0ucHVzaChlbGVtZW50KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldERhdGEoZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJlbW92ZUFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRHZW9Kc29uKGRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKSlcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIHJlQ2VudGVyT25GZWF0dXJlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgaWYgKGdldEZlYXR1cmVzQ291bnQodGhpcy5nb29nbGVNYXAuZGF0YSkgPT09IDApIHtcbiAgICAgIGlmICghdGhpcy5fYmFzZUxhdExuZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5nb29nbGVNYXAucGFuVG8odGhpcy5fYmFzZUxhdExuZylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmdvb2dsZU1hcC5maXRCb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuXG4gICAgLy8gVE9ETzogRml4IHRvIHBhbiB0byBjZW50ZXIuIEN1cnJlbnRseSBmaXRCb3VuZHMgcmVzdWx0cyBpbiB0aGUgZXhwZWN0ZWRcbiAgICAvLyByZXN1bHQsIGJ1dCBwYW50VG9Cb3VuZHMgYW5pbWF0ZXMuXG4gICAgLy8gdGhpcy5nb29nbGVNYXAucGFuVG9Cb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuICB9XG5cbiAgcHVibGljIGFsbG93RHJhd2luZ0hvbGVJblBvbHlnb24oYWxsb3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uID0gYWxsb3dcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWxlSW5wdXRIYW5kbGVyKGhhbmRsZXI6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsZUlucHV0SGFuZGxlciA9IGhhbmRsZXJcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWxlSW5wdXRIYW5kbGVyKCk6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZUlucHV0SGFuZGxlclxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZlYXR1cmVTdHlsaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIC8vIERpc2FibGUgYW55IHNlbGVjdGlvbiB3aGVuIGNsaWNraW5nIHRoZSBtYXAuXG4gICAgLy9cbiAgICAvLyBUT0RPOiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMgdGhhdCB3b3VsZCBiZSBtb3JlIGFjY3VyYXRlIG9yXG4gICAgLy8gYWRkaXRpb25hbCBldmVudHMgdGhhdCBzaG91bGQgYmUgbGlzdGVuZWQgdG8sIHN1Y2ggYXMgdGhlIGRpc2FibGluZ1xuICAgIC8vIHNlbGVjdGlvbiB3aGVuIHRoZSBtYXAgbG9vc2VzIGZvY3VzLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVuOiBnb29nbGUubWFwcy5NYXBNb3VzZUV2ZW50IHwgZ29vZ2xlLm1hcHMuSWNvbk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuZm9yRWFjaChmID0+IHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSkpXG4gICAgfSlcblxuICAgIC8vIERldGVybWluZSB3aGF0IHRoZSBzdHlsZSBvZiB0aGUgZmVhdHVyZXMgYXJlLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuc2V0U3R5bGUoKGZlYXR1cmUpID0+IHtcbiAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmZWF0dXJlKSkge1xuICAgICAgICByZXR1cm4gRkVBVFVSRV9TVFlMRV9PUFRJT05TX1NFTEVDVEVEXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVFxuICAgIH0pXG5cbiAgICAvLyBTZWxlY3QgYSBmZWF0dXJlIHdoZW4gY2xpY2tlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlLCB0cnVlKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBpZiAoZiAhPT0gZXZlbnQuZmVhdHVyZSAmJiBpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgLy8gU2V0IGEgc3R5bGUgb24gaG92ZXJlZCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBzZWxlY3RlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgICBpZiAoIXRoaXMuaXNEcmF3aW5nKCkgJiYgIWlzRmVhdHVyZVNlbGVjdGVkKGV2ZW50LmZlYXR1cmUpKSB7XG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEub3ZlcnJpZGVTdHlsZShldmVudC5mZWF0dXJlLCB7IHN0cm9rZVdlaWdodDogNCB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBSZW1vdmUgYW55IGhvdmVyIHN0eWxlcyB3aGVuIG1vdXNlIG1vdmVzIGF3YXkuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignbW91c2VvdXQnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGZWF0dXJlQ2hhbmdlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNyZWF0ZUZlYXR1cmVDaGFuZ2VPYnNlcnZhYmxlKHRoaXMuZ29vZ2xlTWFwLmRhdGEsIHRoaXMuX25nWm9uZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tKHRoaXMuZ2V0R2VvSnNvbigpKS5waXBlKFxuICAgICAgICB0YXAoZ2VvSnNvbiA9PiB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIuc2V0VmFsdWUoZ2VvSnNvbiwgTWFwVmFsdWVTb3VyY2UuRmVhdHVyZUNoYW5nZSkpLFxuICAgICAgKSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0ZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShldmVudC5mZWF0dXJlLCBldmVudC5sYXRMbmcgPz8gdW5kZWZpbmVkKVxuICAgIH0pXG5cbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5fZHJhd2luZ01hbmFnZXIsICdwb2x5Z29uY29tcGxldGUnLCAocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT4ge1xuICAgICAgICAvLyBUaGUgRHJhd2luZ01hbmFnZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB3YXkgdG8gYWNjZXNzIHRoZSBvdmVybGF5cyxcbiAgICAgICAgLy8gc28gaWYgdGhlIG1hcCBpcyBub3Qgc2V0IHRoZW4gaXQgc2hvdWxkbid5IGJlIGNvbnNpZGVyZWQgYSBzdWNjZXNzZnVsXG4gICAgICAgIC8vIGNvbXBsZXRpb24uIEkgYW0gY2FuY2VsaW5nIHRoZSBhY3RpdmUgZHJhd2luZyBieSBkaXNhYmxpbmcgZHJhd2luZ1xuICAgICAgICAvLyBtb2RlIGFuZCBzZXR0aW5nIHRoZSBtYXAgbnVsbCBpbiB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQsIHdoaWNoXG4gICAgICAgIC8vIGZpcmVzIGJlZm9yZSB0aGUgJ3BvbHlnb25jb21wbGV0ZScgZXZlbnQuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwb2x5Z29uLmdldE1hcCgpKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgICAgIC8vIFRPRE86IFNlZSBpZiB0aGVyZSBpcyBhIHdheSB0byBwcmV2ZW50IHRoZSBwb2x5Z29uIGZyb20gY29tcGxldGluZ1xuICAgICAgICAvLyB3aXRob3V0IGVub3VnaCBwb2ludHMuIFRoaXMgaXMgdmVyeSBsb3cgcHJpb3JpdHksIGJlY2F1c2Ugc3RhcnRpbmdcbiAgICAgICAgLy8gb3ZlciBhZnRlciBhZGRpbmcgYSBzaW5nbGUgcG9pbnQgaXNuJ3QgYSBtYWpvciBpbmNvbnZlbmllbmNlLlxuICAgICAgICBpZiAoIXBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3Rocyhwb2x5Z29uKSkge1xuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZHJhd24gcG9seWdvbi5cbiAgICAgICAgICBwb2x5Z29uLnNldE1hcChudWxsKVxuICAgICAgICAgIC8vIFN0b3AgZHJhd2luZy5cbiAgICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmZWF0dXJlIG9mIHRoZSBkcmF3biBwb2x5Z29uLlxuICAgICAgICBjb25zdCBmZWF0dXJlID0gY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbihwb2x5Z29uKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIGRyYXduIHBvbHlnb24uXG4gICAgICAgIHBvbHlnb24uc2V0TWFwKG51bGwpXG5cbiAgICAgICAgLy8gU3RvcCBkcmF3aW5nLlxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmVhdHVyZSBzaG91bGQgYmUgdXNlZCBhcyBhIGN1dG91dCB0byBhbiBleGlzdGluZ1xuICAgICAgICAvLyBmZWF0dXJlIG9yIGFkZGVkIGFzIGl0J3Mgb3duIGZlYXR1cmUuXG4gICAgICAgIGNvbnN0IGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uXG4gICAgICAgICAgPyBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSh0aGlzLmdvb2dsZU1hcC5kYXRhLCBmZWF0dXJlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChleHRlcmlvclBvbHlnb25GZWF0dXJlKSB7XG4gICAgICAgICAgYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgZmVhdHVyZSlcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgdHJ1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZChmZWF0dXJlKVxuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmZWF0dXJlLCB0cnVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RyYXdpbmcoKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSAhPT0gbnVsbFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgaGFzU2VsZWN0ZWRGZWF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgaXNTZWxlY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgIGlzU2VsZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaXNTZWxlY3RlZFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRGZWF0dXJlKCk6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IG51bGwge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgbnVsbCA9IG51bGxcbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgZmVhdHVyZSA9IGZcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmZWF0dXJlXG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBvcGVuQ29udGV4dE1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZ2V0U2VsZWN0ZWRGZWF0dXJlKClcbiAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHJpdmF0ZSBfb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUsIHBvc2l0aW9uPzogZ29vZ2xlLm1hcHMuTGF0TG5nKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudS5jbG9zZSgpXG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBsZXQgX3Bvc2l0aW9uID0gcG9zaXRpb25cbiAgICBpZiAoIV9wb3NpdGlvbikge1xuICAgICAgX3Bvc2l0aW9uID0gZ2V0RmVhdHVyZUNlbnRlcihmZWF0dXJlKVxuICAgIH1cbiAgICBpZiAodGhpcy5fZmVhdHVyZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG5ldyBHb29nbGVNYXBzQ29udGV4dE1lbnUoXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLFxuICAgICAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUsXG4gICAgICAgIF9wb3NpdGlvbixcbiAgICAgICAgdGhpcy5fdmNyLFxuICAgICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEsXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEdlb0pzb24ocmVtb3ZlQXBwUHJvcGVydGllczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnRvR2VvSnNvbihmID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUFwcFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oZilcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGYpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgX2Fzc2VydEluaXRpYWxpemVkKCk6IGFzc2VydHMgdGhpcyBpcyBXaXRoUmVxdWlyZWQ8R29vZ2xlTWFwc1NlcnZpY2UsICdnb29nbGVNYXAnPiB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZU1hcCAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xuICAgICAgICAgICdQbGVhc2Ugd2FpdCBmb3IgdGhlIEFQSSB0byBsb2FkIGJlZm9yZSB0cnlpbmcgdG8gaW50ZXJhY3Qgd2l0aCBpdC4nLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLE1BQU0sZUFBZSxDQUFBO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUcxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUVoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQ0FBaUMsR0FDbEMsTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7QUFJcEYsTUFBTSx1QkFBdUIsR0FBK0I7SUFDMUQsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2Qsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFBO0FBRUQsTUFBTSwrQkFBK0IsR0FBc0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxjQUFjLEVBQUUsSUFBSTtJQUNwQixxQkFBcUIsRUFBRTtRQUNyQixZQUFZLEVBQUU7WUFDWixNQUFNLENBQUMs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Q3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUkscUJBQXFCLENBQ2pELElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixTQUFTLEVBQ1QsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNuQixPQUFPLENBQ1IsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxzQkFBK0IsSUFBSTtRQUNuRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxtQkFBbUIsRUFBRTtvQkFDdkIsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQ3JDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNaLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsaURBQWlEO0lBQ3pDLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsRUFBRTtZQUN0RSxNQUFNLEtBQUssQ0FDVCw0RUFBNEU7Z0JBQzFFLG9FQUFvRSxDQUN2RSxDQUFBO1NBQ0Y7SUFDSCxDQUFDOzs4R0FqWVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbWVudSdcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkLCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IEdvb2dsZU1hcHNDb250ZXh0TWVudSB9IGZyb20gJy4vZ29vZ2xlLW1hcHMtY29udGV4dG1lbnUnXG5pbXBvcnQge1xuICBhZGRJbm5lckZlYXR1cmVDdXRvdXRUb0V4dGVyaW9yRmVhdHVyZSxcbiAgY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbixcbiAgY3JlYXRlRmVhdHVyZUNoYW5nZU9ic2VydmFibGUsXG4gIGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyxcbiAgZ2V0RmVhdHVyZUNlbnRlcixcbiAgZ2V0RmVhdHVyZXNDb3VudCxcbiAgZ2V0UG9zc2libGVFeHRlcmlvckZlYXR1cmUsXG4gIGlzRmVhdHVyZVNlbGVjdGVkLFxuICBwb2x5Z29uSGFzVmFsaWRQYXRoc0xlbmd0aHMsXG4gIHJlbW92ZUFsbEZlYXR1cmVzLFxuICBzZXRGZWF0dXJlU2VsZWN0ZWQsXG4gIHN0cmlwQXBwRmVhdHVyZVByb3BlcnRpZXNGcm9tSnNvbixcbn0gZnJvbSAnLi9nb29nbGUtbWFwcy1mZWF0dXJlLWhlbHBlcnMnXG5pbXBvcnQgeyBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLCBNYXBWYWx1ZVNvdXJjZSB9IGZyb20gJy4vbWFwLXZhbHVlLW1hbmFnZXIuc2VydmljZSdcblxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuY29uc3QgREVGQVVMVF9QT0xZR09OX09QVElPTlM6IGdvb2dsZS5tYXBzLlBvbHlnb25PcHRpb25zID0ge1xuICBjbGlja2FibGU6IHRydWUsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgZWRpdGFibGU6IHRydWUsXG4gIC8vIGZpbGxDb2xvcjogJ3JnYmEoNjAsMTUwLDYwLDEpJyxcbiAgLy8gc3Ryb2tlQ29sb3I6ICdyZ2JhKDE1NSwyNTUsMCwxKSdcbn1cblxuY29uc3QgREVGQVVMVF9EUkFXSU5HX01BTkFHRVJfT1BUSU9OUzogKCgpID0+IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXJPcHRpb25zKSA9ICgpID0+ICh7XG4gIGRyYXdpbmdDb250cm9sOiB0cnVlLFxuICBkcmF3aW5nQ29udHJvbE9wdGlvbnM6IHtcbiAgICBkcmF3aW5nTW9kZXM6IFtcbiAgICAgIGdvb2dsZS5tYXBzLmRyYXdpbmcuT3ZlcmxheVR5cGUuUE9MWUdPTixcbiAgICBdLFxuICB9LFxuICBwb2x5Z29uT3B0aW9uczogREVGQVVMVF9QT0xZR09OX09QVElPTlMsXG4gIGRyYXdpbmdNb2RlOiBudWxsLFxufSlcblxuY29uc3QgRkVBVFVSRV9TVFlMRV9PUFRJT05TX0RFRkFVTFQ6IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zID0ge1xuICBjbGlja2FibGU6IHRydWUsXG4gIHZpc2libGU6IHRydWUsXG4gIC8vIHpJbmRleD86IG51bWJlcjtcblxuICAvLyBjdXJzb3I/OiBzdHJpbmc7XG4gIGRyYWdnYWJsZTogZmFsc2UsXG4gIGVkaXRhYmxlOiBmYWxzZSxcbiAgZmlsbENvbG9yOiAndGVhbCcsXG4gIGZpbGxPcGFjaXR5OiAwLjMsXG4gIHN0cm9rZUNvbG9yOiAnYmx1ZScsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdlaWdodDogMixcbn1cblxuY29uc3QgRkVBVFVSRV9TVFlMRV9PUFRJT05TX1NFTEVDVEVEOiBnb29nbGUubWFwcy5EYXRhLlN0eWxlT3B0aW9ucyA9IHtcbiAgLi4uRkVBVFVSRV9TVFlMRV9PUFRJT05TX0RFRkFVTFQsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgZWRpdGFibGU6IHRydWUsXG4gIGZpbGxDb2xvcjogJ2dyZWVuJyxcbiAgZmlsbE9wYWNpdHk6IDAuNyxcbiAgc3Ryb2tlQ29sb3I6ICdsaW1lZ3JlZW4nLFxuICBzdHJva2VPcGFjaXR5OiAxLFxuICBzdHJva2VXZWlnaHQ6IDIsXG59XG5cbnR5cGUgV2l0aFJlcXVpcmVkPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFQgJiB7IFtQIGluIEtdLT86IFRbUF0gfVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR29vZ2xlTWFwc1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwUmVhZHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICBwcml2YXRlIF9kcmF3aW5nTWFuYWdlcj86IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXJcbiAgcHJpdmF0ZSBfZmVhdHVyZUNvbnRleHRNZW51OiBNZW51Q29tcG9uZW50IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfYWN0aXZlQ29udGV4dE1lbnU6IEdvb2dsZU1hcHNDb250ZXh0TWVudSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgX2Jhc2VMYXRMbmc/OiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsXG5cbiAgcHJpdmF0ZSBfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbiA9IGZhbHNlXG5cbiAgLy8gVE9ETzogTW92ZSB0byBhIGJldHRlciBwbGFjZSB0aGFuIHRoZSBtYXAgd3JhcHBlciBzZXJ2aWNlLlxuICBwcml2YXRlIF9maWxlSW5wdXRIYW5kbGVyOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIHB1YmxpYyBnb29nbGVNYXA/OiBnb29nbGUubWFwcy5NYXBcblxuICBwdWJsaWMgcmVhZG9ubHkgbWFwUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIGdldCBtYXBSZWFkeSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX21hcFJlYWR5U3ViamVjdC52YWx1ZSB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFwVmFsdWVNYW5hZ2VyOiBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7XG4gICAgdGhpcy5tYXBSZWFkeSQgPSB0aGlzLl9tYXBSZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwdWJsaWMgc2V0TWFwKG1hcDogZ29vZ2xlLm1hcHMuTWFwKTogdm9pZCB7XG4gICAgdGhpcy5nb29nbGVNYXAgPSBtYXBcbiAgICB0aGlzLl9tYXBSZWFkeVN1YmplY3QubmV4dCh0cnVlKVxuICAgIHRoaXMuX2luaXREcmF3aW5nTWFuYWdlcigpXG4gICAgdGhpcy5faW5pdEZlYXR1cmVTdHlsaW5nKClcbiAgICB0aGlzLl9pbml0RmVhdHVyZUNoYW5nZUxpc3RlbmVycygpXG4gIH1cblxuICBwdWJsaWMgc2V0QmFzZUxhdExuZyhsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9iYXNlTGF0TG5nID0geyBsYXQsIGxuZyB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBzZXRGZWF0dXJlQ29udGV4dE1lbnUobWVudTogTWVudUNvbXBvbmVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUgPSBtZW51XG4gIH1cblxuICBwdWJsaWMgZ2V0RGl2KCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlTWFwLmdldERpdigpIGFzIEhUTUxEaXZFbGVtZW50XG4gIH1cblxuICBwdWJsaWMgZml0Qm91bmRzKGJvdW5kczogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IGdvb2dsZS5tYXBzLlBhZGRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGJvdW5kcywgcGFkZGluZylcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aGUgbWFwJ3MgZmVhdHVyZXMgYW5kIHJlbW92ZXMgYW55IHRoYXQgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgY29uc3QgbWFwRGF0YSA9IHRoaXMuZ29vZ2xlTWFwLmRhdGFcbiAgICBtYXBEYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgbWFwRGF0YS5yZW1vdmUoZilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIHRoZSBjdXJyZW50IGRyYXdpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RvcERyYXdpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikgfHwgdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTGlzdGVuaW5nIGZvciB0aGUgY29tcGxldGlvbiBldmVudCBvZiB0aGUgb3ZlcmxheSBjdXJyZW50bHkgYmVpbmcgZHJhd25cbiAgICAgIC8vIGFuZCByZW1vdmluZyBpdC4gSSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIGNhbmNlbCB0aGUgY3VycmVudCBkcmF3aW5nLFxuICAgICAgLy8gd2l0aG91dCB0aGlzIGhhY2sgdGhhdCBhc3N1bWVzIG91ciBsaXN0ZW5lcnMgd2lsbCBub3QgcnVuIGludG8gYSByYWNlXG4gICAgICAvLyBjb25kaXRpb24uXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKFxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcixcbiAgICAgICAgJ292ZXJsYXljb21wbGV0ZScsXG4gICAgICAgIChldmVudDogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5Q29tcGxldGVFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50Lm92ZXJsYXk/LnNldE1hcChudWxsKVxuICAgICAgICAgIGxpc3RlbmVyLnJlbW92ZSgpXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIC8vIFRvIGZha2UgY2FuY2VsaW5nIHRoZSBjdXJyZW50IGRyYXdpbmcsIHdpdGhvdXQgZGlzYWJsaW5nIHRoZSBkcmF3aW5nXG4gICAgICAvLyBtb2RlLCB0aGUgZHJhd2luIG1vZGUgaXMgYmVpbmcgdW5zZXQgdGhlbiBpbW1lZGlhdGVseSBzZXQgYmFjay4gV2hlblxuICAgICAgLy8gdGhlIG1vZGUgaXMgdW5zZXQgdGhlICdvdmVybGF5Y29tcGxldGUnIGV2ZW50IHdpbGwgZmlyZSwgd2hpY2ggd2lsbFxuICAgICAgLy8gZ2l2ZSBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBvdmVybGF5IHRvIHJlbW92ZSwgdGhlbiBpdCBpcyBzZXQgYmFja1xuICAgICAgLy8gdG8gdGhlIG1vZGUgdGhlIHVzZXIgd2FzIHVzaW5nLiBUbyB0aGUgdXNlciBpcyBzaG91bGQganVzdCBzZWVtIGxpa2VcbiAgICAgIC8vIHRoZSBjdXJyZW50IGRyYXdpbmcgd2FzIGNhbmNlbGVkIGFuZCB0aGV5IGNhbiBzdGFydCBkcmF3aW5nIGFnYWluLlxuICAgICAgY29uc3QgbW9kZSA9IHRoaXMuX2RyYXdpbmdNYW5hZ2VyLmdldERyYXdpbmdNb2RlKClcbiAgICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLnNldERyYXdpbmdNb2RlKG51bGwpXG4gICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlci5zZXREcmF3aW5nTW9kZShtb2RlKVxuXG4gICAgICAvLyAnb3ZlcmxheWNvbXBsZXRlJyBzaG91bGQgZmlyZSBpbW1lZGlhdGVseSwgdW5sZXNzIGFuIG92ZXJsYXkgaGFkbid0XG4gICAgICAvLyBzdGFydGVkIGRyYXdpbmcuIFRoaXMgdGltZW91dCB3aWxsIG1ha2Ugc3VyZSB0aGUgbGlzdGVuZXIgZ2V0cyByZW1vdmVkLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyLnJlbW92ZSgpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9pbml0RHJhd2luZ01hbmFnZXIoKTogdm9pZCB7XG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikpIHtcbiAgICAgIHRocm93IEVycm9yKGBEcmF3aW5nTWFuYWdlciBpcyBhbHJlYWR5IGluaXRpYWxpemVkLmApXG4gICAgfVxuXG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IERFRkFVTFRfRFJBV0lOR19NQU5BR0VSX09QVElPTlMoKVxuXG4gICAgY29uc3QgZHJhd2luZ01hbmFnZXIgPSBuZXcgZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlcihvcHRpb25zKVxuICAgIGRyYXdpbmdNYW5hZ2VyLnNldE1hcCh0aGlzLmdvb2dsZU1hcClcblxuICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyID0gZHJhd2luZ01hbmFnZXJcblxuICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLmFkZExpc3RlbmVyKCdkcmF3aW5nbW9kZV9jaGFuZ2VkJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLl9kcmF3aW5nTWFuYWdlcj8uZ2V0RHJhd2luZ01vZGUoKSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuZm9yRWFjaChmID0+IHtcbiAgICAgICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb250cm9sKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwb3NpdGlvbjogZ29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHRoaXMuZ29vZ2xlTWFwLmNvbnRyb2xzW3Bvc2l0aW9uXS5wdXNoKGVsZW1lbnQpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0RGF0YShkYXRhOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmVtb3ZlQWxsRmVhdHVyZXModGhpcy5nb29nbGVNYXAuZGF0YSlcbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZEdlb0pzb24oZGF0YSlcbiAgICB0aGlzLmdvb2dsZU1hcC5maXRCb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgcmVDZW50ZXJPbkZlYXR1cmVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBpZiAoZ2V0RmVhdHVyZXNDb3VudCh0aGlzLmdvb2dsZU1hcC5kYXRhKSA9PT0gMCkge1xuICAgICAgaWYgKCF0aGlzLl9iYXNlTGF0TG5nKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICB0aGlzLmdvb2dsZU1hcC5wYW5Ubyh0aGlzLl9iYXNlTGF0TG5nKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuZ29vZ2xlTWFwLmZpdEJvdW5kcyhnZXRCb3VuZHNXaXRoQWxsRmVhdHVyZXModGhpcy5nb29nbGVNYXAuZGF0YSkpXG5cbiAgICAvLyBUT0RPOiBGaXggdG8gcGFuIHRvIGNlbnRlci4gQ3VycmVudGx5IGZpdEJvdW5kcyByZXN1bHRzIGluIHRoZSBleHBlY3RlZFxuICAgIC8vIHJlc3VsdCwgYnV0IHBhbnRUb0JvdW5kcyBhbmltYXRlcy5cbiAgICAvLyB0aGlzLmdvb2dsZU1hcC5wYW5Ub0JvdW5kcyhnZXRCb3VuZHNXaXRoQWxsRmVhdHVyZXModGhpcy5nb29nbGVNYXAuZGF0YSkpXG4gIH1cblxuICBwdWJsaWMgYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbihhbGxvdzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2FsbG93RHJhd2luZ0hvbGVJblBvbHlnb24gPSBhbGxvd1xuICB9XG5cbiAgcHVibGljIHNldEZpbGVJbnB1dEhhbmRsZXIoaGFuZGxlcjogKChmaWxlOiBGaWxlKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9maWxlSW5wdXRIYW5kbGVyID0gaGFuZGxlclxuICB9XG5cbiAgcHVibGljIGdldEZpbGVJbnB1dEhhbmRsZXIoKTogKChmaWxlOiBGaWxlKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9maWxlSW5wdXRIYW5kbGVyXG4gIH1cblxuICBwcml2YXRlIF9pbml0RmVhdHVyZVN0eWxpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgLy8gRGlzYWJsZSBhbnkgc2VsZWN0aW9uIHdoZW4gY2xpY2tpbmcgdGhlIG1hcC5cbiAgICAvL1xuICAgIC8vIFRPRE86IFRoZXJlIG1heSBiZSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aGF0IHdvdWxkIGJlIG1vcmUgYWNjdXJhdGUgb3JcbiAgICAvLyBhZGRpdGlvbmFsIGV2ZW50cyB0aGF0IHNob3VsZCBiZSBsaXN0ZW5lZCB0bywgc3VjaCBhcyB0aGUgZGlzYWJsaW5nXG4gICAgLy8gc2VsZWN0aW9uIHdoZW4gdGhlIG1hcCBsb29zZXMgZm9jdXMuXG4gICAgdGhpcy5nb29nbGVNYXAuYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW46IGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQgfCBnb29nbGUubWFwcy5JY29uTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4gc2V0RmVhdHVyZVNlbGVjdGVkKGYsIGZhbHNlKSlcbiAgICB9KVxuXG4gICAgLy8gRGV0ZXJtaW5lIHdoYXQgdGhlIHN0eWxlIG9mIHRoZSBmZWF0dXJlcyBhcmUuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5zZXRTdHlsZShmZWF0dXJlID0+IHtcbiAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmZWF0dXJlKSkge1xuICAgICAgICByZXR1cm4gRkVBVFVSRV9TVFlMRV9PUFRJT05TX1NFTEVDVEVEXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVFxuICAgIH0pXG5cbiAgICAvLyBTZWxlY3QgYSBmZWF0dXJlIHdoZW4gY2xpY2tlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdjbGljaycsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlLCB0cnVlKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBpZiAoZiAhPT0gZXZlbnQuZmVhdHVyZSAmJiBpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmLCBmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgLy8gU2V0IGEgc3R5bGUgb24gaG92ZXJlZCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBzZWxlY3RlZC5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgICBpZiAoIXRoaXMuaXNEcmF3aW5nKCkgJiYgIWlzRmVhdHVyZVNlbGVjdGVkKGV2ZW50LmZlYXR1cmUpKSB7XG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEub3ZlcnJpZGVTdHlsZShldmVudC5mZWF0dXJlLCB7IHN0cm9rZVdlaWdodDogNCB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBSZW1vdmUgYW55IGhvdmVyIHN0eWxlcyB3aGVuIG1vdXNlIG1vdmVzIGF3YXkuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignbW91c2VvdXQnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5yZXZlcnRTdHlsZSgpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGZWF0dXJlQ2hhbmdlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgIGNyZWF0ZUZlYXR1cmVDaGFuZ2VPYnNlcnZhYmxlKHRoaXMuZ29vZ2xlTWFwLmRhdGEsIHRoaXMuX25nWm9uZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tKHRoaXMuZ2V0R2VvSnNvbigpKS5waXBlKFxuICAgICAgICB0YXAoZ2VvSnNvbiA9PiB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIuc2V0VmFsdWUoZ2VvSnNvbiwgTWFwVmFsdWVTb3VyY2UuRmVhdHVyZUNoYW5nZSkpLFxuICAgICAgKSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0ZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShldmVudC5mZWF0dXJlLCBldmVudC5sYXRMbmcgPz8gdW5kZWZpbmVkKVxuICAgIH0pXG5cbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5fZHJhd2luZ01hbmFnZXIsICdwb2x5Z29uY29tcGxldGUnLCAocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT4ge1xuICAgICAgICAvLyBUaGUgRHJhd2luZ01hbmFnZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB3YXkgdG8gYWNjZXNzIHRoZSBvdmVybGF5cyxcbiAgICAgICAgLy8gc28gaWYgdGhlIG1hcCBpcyBub3Qgc2V0IHRoZW4gaXQgc2hvdWxkbid5IGJlIGNvbnNpZGVyZWQgYSBzdWNjZXNzZnVsXG4gICAgICAgIC8vIGNvbXBsZXRpb24uIEkgYW0gY2FuY2VsaW5nIHRoZSBhY3RpdmUgZHJhd2luZyBieSBkaXNhYmxpbmcgZHJhd2luZ1xuICAgICAgICAvLyBtb2RlIGFuZCBzZXR0aW5nIHRoZSBtYXAgbnVsbCBpbiB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQsIHdoaWNoXG4gICAgICAgIC8vIGZpcmVzIGJlZm9yZSB0aGUgJ3BvbHlnb25jb21wbGV0ZScgZXZlbnQuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwb2x5Z29uLmdldE1hcCgpKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgICAgIC8vIFRPRE86IFNlZSBpZiB0aGVyZSBpcyBhIHdheSB0byBwcmV2ZW50IHRoZSBwb2x5Z29uIGZyb20gY29tcGxldGluZ1xuICAgICAgICAvLyB3aXRob3V0IGVub3VnaCBwb2ludHMuIFRoaXMgaXMgdmVyeSBsb3cgcHJpb3JpdHksIGJlY2F1c2Ugc3RhcnRpbmdcbiAgICAgICAgLy8gb3ZlciBhZnRlciBhZGRpbmcgYSBzaW5nbGUgcG9pbnQgaXNuJ3QgYSBtYWpvciBpbmNvbnZlbmllbmNlLlxuICAgICAgICBpZiAoIXBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3Rocyhwb2x5Z29uKSkge1xuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZHJhd24gcG9seWdvbi5cbiAgICAgICAgICBwb2x5Z29uLnNldE1hcChudWxsKVxuICAgICAgICAgIC8vIFN0b3AgZHJhd2luZy5cbiAgICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmZWF0dXJlIG9mIHRoZSBkcmF3biBwb2x5Z29uLlxuICAgICAgICBjb25zdCBmZWF0dXJlID0gY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbihwb2x5Z29uKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIGRyYXduIHBvbHlnb24uXG4gICAgICAgIHBvbHlnb24uc2V0TWFwKG51bGwpXG5cbiAgICAgICAgLy8gU3RvcCBkcmF3aW5nLlxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmVhdHVyZSBzaG91bGQgYmUgdXNlZCBhcyBhIGN1dG91dCB0byBhbiBleGlzdGluZ1xuICAgICAgICAvLyBmZWF0dXJlIG9yIGFkZGVkIGFzIGl0J3Mgb3duIGZlYXR1cmUuXG4gICAgICAgIGNvbnN0IGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uXG4gICAgICAgICAgPyBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSh0aGlzLmdvb2dsZU1hcC5kYXRhLCBmZWF0dXJlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChleHRlcmlvclBvbHlnb25GZWF0dXJlKSB7XG4gICAgICAgICAgYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgZmVhdHVyZSlcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgdHJ1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZChmZWF0dXJlKVxuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmZWF0dXJlLCB0cnVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RyYXdpbmcoKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSAhPT0gbnVsbFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgaGFzU2VsZWN0ZWRGZWF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgaXNTZWxlY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgIGlzU2VsZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaXNTZWxlY3RlZFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRGZWF0dXJlKCk6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IG51bGwge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgbnVsbCA9IG51bGxcbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgZmVhdHVyZSA9IGZcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmZWF0dXJlXG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBvcGVuQ29udGV4dE1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZ2V0U2VsZWN0ZWRGZWF0dXJlKClcbiAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHJpdmF0ZSBfb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUsIHBvc2l0aW9uPzogZ29vZ2xlLm1hcHMuTGF0TG5nKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudS5jbG9zZSgpXG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBsZXQgX3Bvc2l0aW9uID0gcG9zaXRpb25cbiAgICBpZiAoIV9wb3NpdGlvbikge1xuICAgICAgX3Bvc2l0aW9uID0gZ2V0RmVhdHVyZUNlbnRlcihmZWF0dXJlKVxuICAgIH1cbiAgICBpZiAodGhpcy5fZmVhdHVyZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG5ldyBHb29nbGVNYXBzQ29udGV4dE1lbnUoXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLFxuICAgICAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUsXG4gICAgICAgIF9wb3NpdGlvbixcbiAgICAgICAgdGhpcy5fdmNyLFxuICAgICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEsXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEdlb0pzb24ocmVtb3ZlQXBwUHJvcGVydGllczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnRvR2VvSnNvbihmID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUFwcFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oZilcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGYpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgX2Fzc2VydEluaXRpYWxpemVkKCk6IGFzc2VydHMgdGhpcyBpcyBXaXRoUmVxdWlyZWQ8R29vZ2xlTWFwc1NlcnZpY2UsICdnb29nbGVNYXAnPiB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZU1hcCAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xuICAgICAgICAgICdQbGVhc2Ugd2FpdCBmb3IgdGhlIEFQSSB0byBsb2FkIGJlZm9yZSB0cnlpbmcgdG8gaW50ZXJhY3Qgd2l0aCBpdC4nLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -48,9 +48,9 @@ export class TheSeamMapsControlComponent {
48
48
  this._controlRef = undefined;
49
49
  }
50
50
  }
51
- TheSeamMapsControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapsControlComponent, deps: [{ token: i1.GoogleMapsService }, { token: MAP_CONTROLS_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
52
- TheSeamMapsControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: TheSeamMapsControlComponent, selector: "seam-map-control", inputs: { def: "def" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapsControlComponent, decorators: [{
51
+ TheSeamMapsControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMapsControlComponent, deps: [{ token: i1.GoogleMapsService }, { token: MAP_CONTROLS_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
52
+ TheSeamMapsControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamMapsControlComponent, selector: "seam-map-control", inputs: { def: "def" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMapsControlComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{
56
56
  selector: 'seam-map-control',
@@ -119,10 +119,10 @@ export class TheSeamMapFileDropComponent {
119
119
  return dataTransfer.types[0] === 'Files';
120
120
  }
121
121
  }
122
- TheSeamMapFileDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapFileDropComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.GoogleMapsService }, { token: i2.MapValueManagerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
123
- TheSeamMapFileDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: TheSeamMapFileDropComponent, selector: "seam-map-file-drop", ngImport: i0, template: "", styles: [":host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999!important;background-color:#1e1e1eb3}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamMapFileDropComponent, decorators: [{
122
+ TheSeamMapFileDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMapFileDropComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.GoogleMapsService }, { token: i2.MapValueManagerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
123
+ TheSeamMapFileDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamMapFileDropComponent, selector: "seam-map-file-drop", ngImport: i0, template: "", styles: [":host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999!important;background-color:#1e1e1eb3}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamMapFileDropComponent, decorators: [{
125
125
  type: Component,
126
126
  args: [{ selector: 'seam-map-file-drop', changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: [":host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:9999!important;background-color:#1e1e1eb3}\n"] }]
127
127
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.GoogleMapsService }, { type: i2.MapValueManagerService }, { type: i0.Renderer2 }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWZpbGUtZHJvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZ29vZ2xlLW1hcHMvbWFwLWZpbGUtZHJvcC9tYXAtZmlsZS1kcm9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9tYXAtZmlsZS1kcm9wL21hcC1maWxlLWRyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBTVYsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUd0RCxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7O0FBRXJGOztHQUVHO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjtJQWF0QyxZQUNtQixXQUF1QixFQUN2QixPQUFlLEVBQ2YsV0FBOEIsRUFDOUIsZ0JBQXdDLEVBQ3hDLFNBQW9CO1FBSnBCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBaEJ0QixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUE7UUFPN0MsZUFBVSxHQUFvQixFQUFFLENBQUE7UUFFaEMsMEJBQXFCLEdBQVksS0FBSyxDQUFBO1FBb0U3Qix5QkFBb0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FB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TnZDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IHJlYWRHZW9GaWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBHb29nbGVNYXBzU2VydmljZSB9IGZyb20gJy4uL2dvb2dsZS1tYXBzLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLCBNYXBWYWx1ZVNvdXJjZSB9IGZyb20gJy4uL21hcC12YWx1ZS1tYW5hZ2VyLnNlcnZpY2UnXG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tYXAtZmlsZS1kcm9wJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC1maWxlLWRyb3AuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtZmlsZS1kcm9wLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1NYXBGaWxlRHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8qKlxuICAgKiBNYXAgZWxlbWVudCBkcmFnIGV2ZW50cyBhZGRlZCB0by5cbiAgICovXG4gIHByaXZhdGUgX21hcERpdjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWRcblxuICBwcml2YXRlIF9saXN0ZW5lcnM6ICgoKSA9PiB2b2lkKVtdICA9IFtdXG5cbiAgcHJpdmF0ZSBfZ2xvYmFsRHJhZ0luUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZ29vZ2xlTWFwczogR29vZ2xlTWFwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFwVmFsdWVNYW5hZ2VyOiBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7IH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9nb29nbGVNYXBzLm1hcFJlYWR5JC5waXBlKFxuICAgICAgdGFwKHJlYWR5ID0+IHtcbiAgICAgICAgaWYgKHJlYWR5KSB7XG4gICAgICAgICAgdGhpcy5fZW5hYmxlRmlsZURyb3AoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2Rpc2FibGVGaWxlRHJvcCgpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGlzYWJsZUZpbGVEcm9wKClcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwcml2YXRlIF9lbmFibGVGaWxlRHJvcCgpOiB2b2lkIHtcbiAgICBjb25zdCBkaXZFbGVtZW50ID0gdGhpcy5fZ29vZ2xlTWFwcy5nZXREaXYoKVxuICAgIGlmICh0aGlzLl9tYXBEaXYgPT09IGRpdkVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLl9tYXBEaXYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRGlzYWJsZSBmaWxlIGRyb3Agb24gcHJldmlvdXMgbWFwIGRpdi5cbiAgICAgIHRoaXMuX2Rpc2FibGVGaWxlRHJvcCgpXG4gICAgfVxuXG4gICAgdGhpcy5fbWFwRGl2ID0gZGl2RWxlbWVudFxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaCh0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2RyYWdzdGFydCcsIChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5fZ2xvYmFsRHJhZ0luUHJvZ3Jlc3MgPSB0cnVlXG4gICAgICB9KSlcblxuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2godGhpcy5fcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdkcmFnZW5kJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9nbG9iYWxEcmFnSW5Qcm9ncmVzcyA9IGZhbHNlXG4gICAgICB9KSlcblxuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2godGhpcy5fcmVuZGVyZXIubGlzdGVuKGRpdkVsZW1lbnQsICdkcmFnb3ZlcicsIHRoaXMuX2hhbmRsZURyYWdPdmVyRXZlbnQpKVxuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2godGhpcy5fcmVuZGVyZXIubGlzdGVuKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2RyYWdvdmVyJywgdGhpcy5faGFuZGxlRHJhZ092ZXJFdmVudCkpXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaCh0aGlzLl9yZW5kZXJlci5saXN0ZW4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJvcCcsIHRoaXMuX2hhbmRsZURyb3BFdmVudCkpXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaCh0aGlzLl9yZW5kZXJlci5saXN0ZW4oZGl2RWxlbWVudCwgJ2RyYWdlbnRlcicsIHRoaXMuX2hhbmRsZURyYWdFbnRlckV2ZW50KSlcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnbGVhdmUnLCB0aGlzLl9oYW5kbGVEcmFnTGVhdmVFdmVudCkpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVGaWxlRHJvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKGwgPT4gbCgpKVxuICAgICAgdGhpcy5fbGlzdGVuZXJzID0gW11cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9oYW5kbGVEcmFnT3ZlckV2ZW50ID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoIXRoaXMuX2Ryb3BBbGxvd2VkKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5faXNTdXBwb3J0ZWREYXRhVHJhbnNmZXJUeXBlcyhldmVudC5kYXRhVHJhbnNmZXIpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSdcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZURyb3BFdmVudCA9IChldmVudDogYW55KSA9PiB7XG4gICAgaWYgKCF0aGlzLl9kcm9wQWxsb3dlZCgpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ25vbmUnKVxuXG4gICAgLy8gVE9ETzogU2hvdyBlcnJvciBpZiBtdWx0aXBsZSBmaWxlcz9cbiAgICBpZiAoIXRoaXMuX2lzU3VwcG9ydGVkRGF0YVRyYW5zZmVyKGV2ZW50LmRhdGFUcmFuc2ZlcikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSBldmVudC5kYXRhVHJhbnNmZXIuaXRlbXNbMF1cbiAgICBjb25zdCBmaWxlID0gaXRlbS5nZXRBc0ZpbGUoKVxuICAgIHJlYWRHZW9GaWxlKGZpbGUpLnRoZW4oanNvbiA9PiB7XG4gICAgICB0aGlzLl9tYXBWYWx1ZU1hbmFnZXIuc2V0VmFsdWUoanNvbiwgTWFwVmFsdWVTb3VyY2UuSW5wdXQpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZURyYWdFbnRlckV2ZW50ID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoIXRoaXMuX2Ryb3BBbGxvd2VkKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5faXNTdXBwb3J0ZWREYXRhVHJhbnNmZXJUeXBlcyhldmVudC5kYXRhVHJhbnNmZXIpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJylcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZURyYWdMZWF2ZUV2ZW50ID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoIXRoaXMuX2Ryb3BBbGxvd2VkKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpXG4gIH1cblxuICBwcml2YXRlIF9kcm9wQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2dsb2JhbERyYWdJblByb2dyZXNzXG4gIH1cblxuICBwcml2YXRlIF9pc1N1cHBvcnRlZERhdGFUcmFuc2ZlcihkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2Zlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoID09PSAxICYmIGRhdGFUcmFuc2Zlci50eXBlc1swXSA9PT0gJ0ZpbGVzJ1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNTdXBwb3J0ZWREYXRhVHJhbnNmZXJUeXBlcyhkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2Zlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRhVHJhbnNmZXIudHlwZXNbMF0gPT09ICdGaWxlcydcbiAgfVxuXG59XG4iLCIiXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWZpbGUtZHJvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZ29vZ2xlLW1hcHMvbWFwLWZpbGUtZHJvcC9tYXAtZmlsZS1kcm9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9tYXAtZmlsZS1kcm9wL21hcC1maWxlLWRyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBTVYsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUd0RCxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7O0FBRXJGOztHQUVHO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjtJQWF0QyxZQUNtQixXQUF1QixFQUN2QixPQUFlLEVBQ2YsV0FBOEIsRUFDOUIsZ0JBQXdDLEVBQ3hDLFNBQW9CO1FBSnBCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBaEJ0QixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUE7UUFPN0MsZUFBVSxHQUFtQixFQUFFLENBQUE7UUFFL0IsMEJBQXFCLEdBQUcsS0FBSyxDQUFBO1FBb0VwQix5QkFBb0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FB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TnZDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IHJlYWRHZW9GaWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBHb29nbGVNYXBzU2VydmljZSB9IGZyb20gJy4uL2dvb2dsZS1tYXBzLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLCBNYXBWYWx1ZVNvdXJjZSB9IGZyb20gJy4uL21hcC12YWx1ZS1tYW5hZ2VyLnNlcnZpY2UnXG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tYXAtZmlsZS1kcm9wJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC1maWxlLWRyb3AuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtZmlsZS1kcm9wLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1NYXBGaWxlRHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8qKlxuICAgKiBNYXAgZWxlbWVudCBkcmFnIGV2ZW50cyBhZGRlZCB0by5cbiAgICovXG4gIHByaXZhdGUgX21hcERpdjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWRcblxuICBwcml2YXRlIF9saXN0ZW5lcnM6ICgoKSA9PiB2b2lkKVtdID0gW11cblxuICBwcml2YXRlIF9nbG9iYWxEcmFnSW5Qcm9ncmVzcyA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9nb29nbGVNYXBzOiBHb29nbGVNYXBzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tYXBWYWx1ZU1hbmFnZXI6IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2dvb2dsZU1hcHMubWFwUmVhZHkkLnBpcGUoXG4gICAgICB0YXAocmVhZHkgPT4ge1xuICAgICAgICBpZiAocmVhZHkpIHtcbiAgICAgICAgICB0aGlzLl9lbmFibGVGaWxlRHJvcCgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZGlzYWJsZUZpbGVEcm9wKClcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSlcbiAgICApLnN1YnNjcmliZSgpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kaXNhYmxlRmlsZURyb3AoKVxuXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZUZpbGVEcm9wKCk6IHZvaWQge1xuICAgIGNvbnN0IGRpdkVsZW1lbnQgPSB0aGlzLl9nb29nbGVNYXBzLmdldERpdigpXG4gICAgaWYgKHRoaXMuX21hcERpdiA9PT0gZGl2RWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX21hcERpdiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBEaXNhYmxlIGZpbGUgZHJvcCBvbiBwcmV2aW91cyBtYXAgZGl2LlxuICAgICAgdGhpcy5fZGlzYWJsZUZpbGVEcm9wKClcbiAgICB9XG5cbiAgICB0aGlzLl9tYXBEaXYgPSBkaXZFbGVtZW50XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKHRoaXMuX3JlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnZHJhZ3N0YXJ0JywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9nbG9iYWxEcmFnSW5Qcm9ncmVzcyA9IHRydWVcbiAgICAgIH0pKVxuXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaCh0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2RyYWdlbmQnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2dsb2JhbERyYWdJblByb2dyZXNzID0gZmFsc2VcbiAgICAgIH0pKVxuXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaCh0aGlzLl9yZW5kZXJlci5saXN0ZW4oZGl2RWxlbWVudCwgJ2RyYWdvdmVyJywgdGhpcy5faGFuZGxlRHJhZ092ZXJFdmVudCkpXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaCh0aGlzLl9yZW5kZXJlci5saXN0ZW4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInLCB0aGlzLl9oYW5kbGVEcmFnT3ZlckV2ZW50KSlcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcm9wJywgdGhpcy5faGFuZGxlRHJvcEV2ZW50KSlcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKHRoaXMuX3JlbmRlcmVyLmxpc3RlbihkaXZFbGVtZW50LCAnZHJhZ2VudGVyJywgdGhpcy5faGFuZGxlRHJhZ0VudGVyRXZlbnQpKVxuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2godGhpcy5fcmVuZGVyZXIubGlzdGVuKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2RyYWdsZWF2ZScsIHRoaXMuX2hhbmRsZURyYWdMZWF2ZUV2ZW50KSlcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZUZpbGVEcm9wKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9saXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLmZvckVhY2gobCA9PiBsKCkpXG4gICAgICB0aGlzLl9saXN0ZW5lcnMgPSBbXVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZURyYWdPdmVyRXZlbnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGlmICghdGhpcy5fZHJvcEFsbG93ZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9pc1N1cHBvcnRlZERhdGFUcmFuc2ZlclR5cGVzKGV2ZW50LmRhdGFUcmFuc2ZlcikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5J1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlRHJvcEV2ZW50ID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICBpZiAoIXRoaXMuX2Ryb3BBbGxvd2VkKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpXG5cbiAgICAvLyBUT0RPOiBTaG93IGVycm9yIGlmIG11bHRpcGxlIGZpbGVzP1xuICAgIGlmICghdGhpcy5faXNTdXBwb3J0ZWREYXRhVHJhbnNmZXIoZXZlbnQuZGF0YVRyYW5zZmVyKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgaXRlbSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtc1swXVxuICAgIGNvbnN0IGZpbGUgPSBpdGVtLmdldEFzRmlsZSgpXG4gICAgcmVhZEdlb0ZpbGUoZmlsZSkudGhlbihqc29uID0+IHtcbiAgICAgIHRoaXMuX21hcFZhbHVlTWFuYWdlci5zZXRWYWx1ZShqc29uLCBNYXBWYWx1ZVNvdXJjZS5JbnB1dClcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlRHJhZ0VudGVyRXZlbnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGlmICghdGhpcy5fZHJvcEFsbG93ZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9pc1N1cHBvcnRlZERhdGFUcmFuc2ZlclR5cGVzKGV2ZW50LmRhdGFUcmFuc2ZlcikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnYmxvY2snKVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlRHJhZ0xlYXZlRXZlbnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGlmICghdGhpcy5fZHJvcEFsbG93ZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJylcbiAgfVxuXG4gIHByaXZhdGUgX2Ryb3BBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZ2xvYmFsRHJhZ0luUHJvZ3Jlc3NcbiAgfVxuXG4gIHByaXZhdGUgX2lzU3VwcG9ydGVkRGF0YVRyYW5zZmVyKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggPT09IDEgJiYgZGF0YVRyYW5zZmVyLnR5cGVzWzBdID09PSAnRmlsZXMnXG4gIH1cblxuICBwcml2YXRlIF9pc1N1cHBvcnRlZERhdGFUcmFuc2ZlclR5cGVzKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGFUcmFuc2Zlci50eXBlc1swXSA9PT0gJ0ZpbGVzJ1xuICB9XG5cbn1cbiIsIiJdfQ==
@@ -40,9 +40,9 @@ export class MapValueManagerService {
40
40
  return this._value;
41
41
  }
42
42
  }
43
- MapValueManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MapValueManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
- MapValueManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MapValueManagerService });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MapValueManagerService, decorators: [{
43
+ MapValueManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MapValueManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ MapValueManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MapValueManagerService });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MapValueManagerService, decorators: [{
46
46
  type: Injectable
47
47
  }], ctorParameters: function () { return []; } });
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZhbHVlLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9tYXAtdmFsdWUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFFMUMsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixpQ0FBZSxDQUFBO0lBQ2YsaURBQStCLENBQUE7QUFDakMsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBVUQsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQztRQU5pQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQTtRQU9uRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUM5RCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWUsRUFBRSxNQUFzQjtRQUNyRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtZQUNuQixNQUFNLE9BQU8sR0FBbUI7Z0JBQzlCLE1BQU07Z0JBQ04sS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ25CLENBQUE7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixNQUFNLE1BQU0sR0FBbUI7WUFDN0IsTUFBTTtZQUNOLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNuQixDQUFBO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDcEIsQ0FBQzs7bUhBM0NVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuXG5leHBvcnQgZW51bSBNYXBWYWx1ZVNvdXJjZSB7XG4gIElucHV0ID0gJ2lucHV0JyxcbiAgRmVhdHVyZUNoYW5nZSA9ICdmZWF0dXJlY2hhbmdlJ1xufVxuXG5leHBvcnQgdHlwZSBNYXBWYWx1ZSA9IG9iamVjdCB8IHVuZGVmaW5lZCB8IG51bGxcblxuZXhwb3J0IGludGVyZmFjZSBNYXBWYWx1ZUNoYW5nZSB7XG4gIHZhbHVlOiBNYXBWYWx1ZVxuICBzb3VyY2U6IE1hcFZhbHVlU291cmNlXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZUNoYW5nZWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8TWFwVmFsdWVDaGFuZ2U+KClcblxuICBwcml2YXRlIF92YWx1ZTogTWFwVmFsdWVcblxuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2VkOiBPYnNlcnZhYmxlPE1hcFZhbHVlQ2hhbmdlPlxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkID0gdGhpcy5fdmFsdWVDaGFuZ2VkU3ViamVjdC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBNYXBWYWx1ZSwgc291cmNlOiBNYXBWYWx1ZVNvdXJjZSk6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlXG4gICAgICBjb25zdCBfY2hhbmdlOiBNYXBWYWx1ZUNoYW5nZSA9IHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWUsXG4gICAgICB9XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJqZWN0Lm5leHQoX2NoYW5nZSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkodGhpcy5fdmFsdWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIC8vIFRPRE86IFZhbGlkYXRlIG9iamVjdCBpcyB2YWxpZCBnZW9qc29uLlxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWVcbiAgICBjb25zdCBjaGFuZ2U6IE1hcFZhbHVlQ2hhbmdlID0ge1xuICAgICAgc291cmNlLFxuICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxuICAgIH1cbiAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJqZWN0Lm5leHQoY2hhbmdlKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IE1hcFZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuXG59XG4iXX0=
@@ -68,32 +68,6 @@ export class DatatableGraphQLQueryRef {
68
68
  return this._valueChanges.pipe(map(result => result.loading), startWith(this._queryRef.getCurrentResult().loading), auditTime(0), shareReplay({ bufferSize: 1, refCount: true }));
69
69
  }));
70
70
  }
71
- _logNetworkStatus(status) {
72
- switch (status) {
73
- case NetworkStatus.loading:
74
- console.log('%cNetworkStatus: ', 'color:limegreen', 'Loading');
75
- break;
76
- case NetworkStatus.setVariables:
77
- console.log('%cNetworkStatus: ', 'color:limegreen', 'SetVariables');
78
- break;
79
- case NetworkStatus.fetchMore:
80
- console.log('%cNetworkStatus: ', 'color:limegreen', 'FetchMore');
81
- break;
82
- case NetworkStatus.refetch:
83
- console.log('%cNetworkStatus: ', 'color:limegreen', 'Refetch');
84
- break;
85
- case NetworkStatus.poll:
86
- console.log('%cNetworkStatus: ', 'color:limegreen', 'Poll');
87
- break;
88
- case NetworkStatus.ready:
89
- console.log('%cNetworkStatus: ', 'color:limegreen', 'Ready');
90
- break;
91
- case NetworkStatus.error:
92
- console.log('%cNetworkStatus: ', 'color:limegreen', 'Error');
93
- break;
94
- default: console.log('%cNetworkStatus: ', 'color:red', 'Unknown');
95
- }
96
- }
97
71
  rows(mapper) {
98
72
  return this._rowsObservable(mapper);
99
73
  }
@@ -235,4 +209,4 @@ export class DatatableGraphQLQueryRef {
235
209
  return _vars;
236
210
  }
237
211
  }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWdyYXBocWwtcXVlcnktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dyYXBocWwvZGF0YXRhYmxlL2RhdGF0YWJsZS1ncmFwaHFsLXF1ZXJ5LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWlCLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFTLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUgsT0FBTyxFQUFtQyxhQUFhLEVBQXFCLE1BQU0scUJBQXFCLENBQUE7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUs3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQXFCbkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsSUFBWSxpQkFBaUIsS0FBYyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQ3ZGLElBQVksaUJBQWlCLENBQUMsS0FBYyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBUTNGLElBQVcsZ0JBQWdCLEtBQWEsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUEsQ0FBQyxDQUFDO0lBQ3ZFLElBQVcsc0JBQXNCLEtBQWMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXBGO0lBQ0Usd0NB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QUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNwQyxJQUFJLGNBQWMsRUFBRTtZQUNsQix3RUFBd0U7WUFDeEUsb0VBQW9FO1lBQ3BFLCtDQUErQztZQUMvQyw4Q0FBOEM7WUFFOUMsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7U0FDdkM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQVEsSUFBSSxDQUFDLFNBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQTtJQUNqRCxDQUFDO0lBRU0sd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQTtJQUMxRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsU0FBc0I7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUN2RixPQUFPLFNBQVMsQ0FBQTtTQUNqQjtRQUVELE1BQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBZ0IsQ0FBQTtRQUNwRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGFBQWEsRUFBRTtZQUNsRCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUE7U0FDOUI7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHNoYXJlLCBzaGFyZVJlcGxheSwgc2tpcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBcG9sbG9RdWVyeVJlc3VsdCwgRG9jdW1lbnROb2RlLCBOZXR3b3JrU3RhdHVzLCBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSwgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcbmltcG9ydCB7IFF1ZXJ5UmVmIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInXG5pbXBvcnQgeyBFbXB0eU9iamVjdCwgV2F0Y2hRdWVyeU9wdGlvbnMgfSBmcm9tICdhcG9sbG8tYW5ndWxhci90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlQcm9jZXNzaW5nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJ1xuaW1wb3J0IHsgREVGQVVMVF9QQUdFX1NJWkUgfSBmcm9tICcuL2dldC1wYWdlLWluZm8nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdyA9IEVtcHR5T2JqZWN0PiB7XG4gIHJvd3M6IFRSb3dbXVxuXG4gIC8qKlxuICAgKiBJZiBkYXRhIGlzIHBhZ2VkLCB0aGlzIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgdW5wYWdlZCByb3dzLlxuICAgKi9cbiAgdG90YWxDb3VudD86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBEYXRhdGFibGVHcmFwaFFMRGF0YU1hcHBlcjxURGF0YSwgVFJvdyA9IEVtcHR5T2JqZWN0PiA9IChkYXRhOiBURGF0YSkgPT5cbiAgICAoRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdz4gfFxuICAgIFByb21pc2U8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXJSZXN1bHQ8VFJvdz4+IHxcbiAgICBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PilcblxuZXhwb3J0IHR5cGUgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyA9IHtcbiAgc2tpcD86IG51bWJlclxuICB0YWtlPzogbnVtYmVyXG59ICYgRW1wdHlPYmplY3RcblxuLyoqXG4gKiBQYXJ0aWFsbHkgd3JhcHMgQXBvbGxvQ2xpZW50J3MgUXVlcnlSZWYgd2l0aCBzb21lIG9mIG91ciBkYXRhdGFibGUgYm9pbGVycGxhdGUuXG4gKlxuICogVE9ETzogRGVjaWRlIGhvdyB0byBoYW5kbGUvZGlzcGxheSBlcnJvcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVHcmFwaFFMUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXMgZXh0ZW5kcyBEYXRhdGFibGVHcmFwaFFMVmFyaWFibGVzID0gRW1wdHlPYmplY3QsIFRSb3cgPSBFbXB0eU9iamVjdD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhcmlhYmxlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRWYXJpYWJsZXM+KHt9IGFzIFRWYXJpYWJsZXMpXG4gIHByaXZhdGUgcmVhZG9ubHkgX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICAvKipcbiAgICogVGVtcG9yYXJ5IHdheSBvZiB0cmFja2luZyB0b3RhbCBjb3VudCB3aGVuIHBhZ2luZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHByaXZhdGUgX3RvdGFsQ291bnQ6IG51bWJlciA9IERFRkFVTFRfUEFHRV9TSVpFXG5cbiAgcHJpdmF0ZSBnZXQgX29ic2VydmluZ0NoYW5nZXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzU3ViamVjdC52YWx1ZSB9XG4gIHByaXZhdGUgc2V0IF9vYnNlcnZpbmdDaGFuZ2VzKHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0Lm5leHQodmFsdWUpIH1cblxuICBwcml2YXRlIF92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gZmFsc2VcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8VERhdGE+PlxuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHB1YmxpYyBnZXQgdXBkYXRlc1BvbGxEZWxheSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fdXBkYXRlc1BvbGxEZWxheSB9XG4gIHB1YmxpYyBnZXQgdmFyaWFibGVzVXBkYXRlUGVuZGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBPcmlnaW5hbCBBcG9sbG9DbGllbnQncyBRdWVyeVJlZi4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9xdWVyeVJlZjogUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXM+LFxuICAgIC8qKlxuICAgICAqIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlZmV0Y2hpbmcgZnJvbSBhbiB1cGRhdGUgdG8gdGhlIHF1ZXJ5IG9yIHZhcmlhYmxlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVzUG9sbERlbGF5OiBudW1iZXIgPSA1MDBcbiAgKSB7XG4gICAgdGhpcy5fdmFyaWFibGVzU3ViamVjdC5uZXh0KCh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9KVxuICAgIC8vIHRoaXMuX2dldFZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSh2ID0+IHRoaXMuX2xvZ05ldHdvcmtTdGF0dXModi5uZXR3b3JrU3RhdHVzKSlcblxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IGRlZmVyKCgpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdPYnNlcnZpbmcgdmFsdWUgY2hhbmdlcycpXG4gICAgICBjb25zdCB2YXJDaGFuZ2VzU3ViID0gdGhpcy5fdmFyaWFibGVzU3ViamVjdC5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgPSB0cnVlXG4gICAgICAgIH0pLFxuICAgICAgICBhdWRpdFRpbWUodGhpcy5fdXBkYXRlc1BvbGxEZWxheSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAvLyBJZiB0aGUgcXVlcnkgc3RvcHBlZCBiZWluZyBvYnNlcnZlZCBiZWZvcmUgc2V0dGluZyB0aGUgcGVuZGluZ1xuICAgICAgICAgIC8vIHZhcmlhYmxlcywgc2V0IHRoZW0gbm93LlxuICAgICAgICAgIGlmICh0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnJlZmV0Y2goKVxuICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVzVXBkYXRlUGVuZGluZyA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUodmFyaWFibGVzID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NldCB2YXJzJywgdmFyaWFibGVzKVxuICAgICAgICB0aGlzLl9zZXRWYXJpYWJsZXNJbW1lZGlhdGUodmFyaWFibGVzKVxuICAgICAgICAvLyB0aGlzLnJlZmV0Y2goKVxuICAgICAgICB0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gZmFsc2VcbiAgICAgIH0pXG4gICAgICB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIC8vIHRhcCh2ID0+IHtcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZygndicsIHYpXG4gICAgICAgIC8vIH0pLFxuICAgICAgICBmaWx0ZXIodiA9PiB2Lm5ldHdvcmtTdGF0dXMgPT09IE5ldHdvcmtTdGF0dXMucmVhZHkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0RvbmUgb2JzZXJ2aW5nIHZhbHVlIGNoYW5nZXMnKVxuICAgICAgICAgIHZhckNoYW5nZXNTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgICAgIHRoaXMuX29ic2VydmluZ0NoYW5nZXMgPSBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0pLnBpcGUoXG4gICAgICAvLyBzaGFyZSgpXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuX29ic2VydmluZ0NoYW5nZXNTdWJqZWN0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAob2JzZXJ2aW5nQ2hhbmdlcyA9PiB7XG4gICAgICAgIGlmICghb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgICAgIHJldHVybiBvZihmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5sb2FkaW5nKSxcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy5fcXVlcnlSZWYuZ2V0Q3VycmVudFJlc3VsdCgpLmxvYWRpbmcpLFxuICAgICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBfbG9nTmV0d29ya1N0YXR1cyhzdGF0dXM6IE5ldHdvcmtTdGF0dXMpIHtcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSBOZXR3b3JrU3RhdHVzLmxvYWRpbmc6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnTG9hZGluZycpOyBicmVha1xuICAgICAgY2FzZSBOZXR3b3JrU3RhdHVzLnNldFZhcmlhYmxlczogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdTZXRWYXJpYWJsZXMnKTsgYnJlYWtcbiAgICAgIGNhc2UgTmV0d29ya1N0YXR1cy5mZXRjaE1vcmU6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnRmV0Y2hNb3JlJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucmVmZXRjaDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdSZWZldGNoJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucG9sbDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdQb2xsJyk7IGJyZWFrXG4gICAgICBjYXNlIE5ldHdvcmtTdGF0dXMucmVhZHk6IGNvbnNvbGUubG9nKCclY05ldHdvcmtTdGF0dXM6ICcsICdjb2xvcjpsaW1lZ3JlZW4nLCAnUmVhZHknKTsgYnJlYWtcbiAgICAgIGNhc2UgTmV0d29ya1N0YXR1cy5lcnJvcjogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOmxpbWVncmVlbicsICdFcnJvcicpOyBicmVha1xuICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coJyVjTmV0d29ya1N0YXR1czogJywgJ2NvbG9yOnJlZCcsICdVbmtub3duJylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcm93cyhtYXBwZXI6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyPFREYXRhLCBUUm93Pik6IE9ic2VydmFibGU8VFJvd1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3NPYnNlcnZhYmxlKG1hcHBlcilcbiAgfVxuXG4gIHByaXZhdGUgX3Jvd3NPYnNlcnZhYmxlKG1hcHBlcjogRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+KTogT2JzZXJ2YWJsZTxUUm93W10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VFJvd1tdPigoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUUm93W10+KSA9PiB7XG4gICAgICAvLyBjb25zdCByb3dzQnVmZmVyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFJvd1tdPihbXSlcblxuICAgICAgLy8gY29uc29sZS5sb2coJ29icyBfcm93c09ic2VydmFibGUnKVxuXG4gICAgICBsZXQgcm93c0J1ZmZlcjogVFJvd1tdID0gW11cbiAgICAgIC8vIGNvbnN0IHJvd3NCdWZmZXJTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8VFJvd1tdPigpXG4gICAgICBjb25zdCByb3dzQnVmZmVyU3ViamVjdCA9IG5ldyBTdWJqZWN0PFRSb3dbXT4oKVxuXG4gICAgICBjb25zdCBxdWVyeVN1YiA9IHRoaXMuX3ZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvbHZlUm93TWFwcGVyKG1hcHBlcihyZXN1bHQuZGF0YSkpLnBpcGUoXG4gICAgICAgICAgICB0YXAobWFwcGVyUmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ21hcHBlclJlc3VsdCcsIG1hcHBlclJlc3VsdClcbiAgICAgICAgICAgICAgaWYgKHRoaXMuX25lZWRzVG9SZXF1ZXJ5V2l0aEFsbFJlY29yZHMobWFwcGVyUmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hWYXJpYWJsZXMoeyB0YWtlOiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCB9IGFzIGFueSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eShtYXBwZXJSZXN1bHQsICd0b3RhbENvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnRcbiAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgLy8gbGV0IHJvd3MgPSByb3dzQnVmZmVyU3ViamVjdC52YWx1ZSB8fCBbXVxuICAgICAgICAgICAgICBsZXQgcm93cyA9IHJvd3NCdWZmZXIgfHwgW11cblxuICAgICAgICAgICAgICBjb25zdCBoYXNUb3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgIT09IHVuZGVmaW5lZCAmJiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gbnVsbFxuXG4gICAgICAgICAgICAgIC8vIElmIHRoZSByb3dzIGJ1ZmZlciBpcyBub3QgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdG90YWxDb3VudCwgY3JlYXRlIGFcbiAgICAgICAgICAgICAgLy8gbmV3IGJ1ZmZlci5cbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgaWYgdGhpcyBpcyByZXNldHRpbmcgdGhlIGJ1ZmZlciB0b28gZWFnZXJseS5cbiAgICAgICAgICAgICAgLy8gQXBvbGxvQ2xpZW50IG1heSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uLlxuICAgICAgICAgICAgICBpZiAoaGFzVG90YWxDb3VudCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHJvd3MgPSBuZXcgQXJyYXk8VFJvdz4obWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgfHwgMClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHRoaXMuZ2V0VmFyaWFibGVzKCkuc2tpcCA/PyAwXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAwXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHJvd3MgaW50byBidWZmZXIgbG9jYXRpb24uXG4gICAgICAgICAgICAgICAgcm93cy5zcGxpY2Uoc3RhcnRJbmRleCwgbWFwcGVyUmVzdWx0LnJvd3MubGVuZ3RoLCAuLi5tYXBwZXJSZXN1bHQucm93cylcblxuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLnJvd3MgXVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLm1hcHBlclJlc3VsdC5yb3dzIF1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXIgPSByb3dzXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXJTdWJqZWN0Lm5leHQocm93cylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgICBjb25zdCByb3dzU3ViID0gcm93c0J1ZmZlclN1YmplY3Quc3Vic2NyaWJlKHN1YnNjcmliZXIpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd1bnN1YicpXG4gICAgICAgIHF1ZXJ5U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgcm93c1N1Yi51bnN1YnNjcmliZSgpXG5cbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QubmV4dChbXSlcbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QuY29tcGxldGUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9uZWVkc1RvUmVxdWVyeVdpdGhBbGxSZWNvcmRzKGRhdGE6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+KTogYm9vbGVhbiB7XG4gICAgaWYgKCEodGhpcy5nZXRRdWVyeVByb2Nlc3NpbmdDb25maWcoKT8uZGlzYWJsZVBhZ2luZykpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiBoYXNQcm9wZXJ0eShkYXRhLCAndG90YWxDb3VudCcpICYmXG4gICAgICBoYXNQcm9wZXJ0eShkYXRhLCAncm93cycpICYmXG4gICAgICBBcnJheS5pc0FycmF5KGRhdGEucm93cykgJiZcbiAgICAgIGRhdGEudG90YWxDb3VudCA+IGRhdGEucm93cy5sZW5ndGggJiZcbiAgICAgIHRoaXMuX3RvdGFsQ291bnQgIT09IGRhdGEudG90YWxDb3VudFxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZVJvd01hcHBlcihcbiAgICBtYXBwZXJSZXR1cm46IFJldHVyblR5cGU8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+PlxuICApOiBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PiB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShtYXBwZXJSZXR1cm4pKSB7XG4gICAgICByZXR1cm4gbWFwcGVyUmV0dXJuLnBpcGUodGFrZSgxKSlcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUobWFwcGVyUmV0dXJuKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYXJpYWJsZXMoKTogVFZhcmlhYmxlcyB7XG4gICAgLy8gVGhlIHR5cGVzIGFyZW4ndCBhY2N1cmF0ZSBvciBBcG9sbG8gaGFzIGEgYnVnLCBzbyBJIGhhZCB0byB1c2UgYGFueWAuXG4gICAgLy8gcmV0dXJuICh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9XG5cbiAgICAvLyBUT0RPOiBMb29rIGludG8gZGVib3VuY2luZyBvdXIgdmFyaWFibGUgc2V0dGluZywgd2hpbGUgc3RpbGwgZGVwZW5kaW5nIG9uIEFwb2xsbyBmb3IgbWFuYWdpbmcgdGhlbS5cbiAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzU3ViamVjdC52YWx1ZVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlczogVFZhcmlhYmxlcyk6IFByb21pc2U8dm9pZCB8IEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYuc2V0VmFyaWFibGVzKF92YXJzIHx8IHt9IGFzIFRWYXJpYWJsZXMpXG4gIH1cblxuICBwcml2YXRlIF9wYXRjaFZhcmlhYmxlc0ltbWVkaWF0ZSh2YXJpYWJsZXM6IFBhcnRpYWw8VFZhcmlhYmxlcz4pOiBQcm9taXNlPHZvaWQgfCBBcG9sbG9RdWVyeVJlc3VsdDxURGF0YT4+IHtcbiAgICBjb25zdCBfdmFyaWFibGVzID0ge1xuICAgICAgLi4udGhpcy5nZXRWYXJpYWJsZXMoKSxcbiAgICAgIC4uLnZhcmlhYmxlc1xuICAgIH1cblxuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKF92YXJpYWJsZXMpXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UmVmLnNldFZhcmlhYmxlcyhfdmFycyB8fCB7fSBhcyBUVmFyaWFibGVzKVxuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IFRWYXJpYWJsZXMpOiB2b2lkIHtcbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQodmFyaWFibGVzKVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgdGhpcy5fc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlcylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hWYXJpYWJsZXModmFyaWFibGVzOiBQYXJ0aWFsPFRWYXJpYWJsZXM+KTogdm9pZCB7XG4gICAgY29uc3QgX3ZhcmlhYmxlcyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAuLi52YXJpYWJsZXNcbiAgICB9XG5cbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQoX3ZhcmlhYmxlcylcbiAgICBpZiAoIXRoaXMuX29ic2VydmluZ0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuX3NldFZhcmlhYmxlc0ltbWVkaWF0ZShfdmFyaWFibGVzKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZldGNoKHZhcmlhYmxlcz86IFRWYXJpYWJsZXMpOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYucmVmZXRjaChfdmFycylcbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VERhdGEsIFRWYXJpYWJsZXM+LCB0cmlnZ2VyUmVmZXRjaDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlSZWYuc2V0T3B0aW9ucyh7IHF1ZXJ5IH0pXG4gICAgaWYgKHRyaWdnZXJSZWZldGNoKSB7XG4gICAgICAvLyBUT0RPOiBDb25zaWRlciByZWZhY3RvcmluZyB0aGUgcmVmZXRjaCBwcm9jZXNzLiBJIGNhbid0IGNhbGwgQXBvbGxvJ3NcbiAgICAgIC8vIHJlZmV0Y2ggZGlyZWN0bHksIGJlY2F1c2UgSSB3YW50IGl0IHRvIHNoYXJlIHRoZSB1cGRhdGUgdHJpZ2dlcmVkXG4gICAgICAvLyBwb2xsaW5nIGRlbGF5IHdpdGggdGhlIHNldHRpbmcgb2YgdmFyaWFibGVzLlxuICAgICAgLy8gdGhpcy5fcXVlcnlSZWYucmVmZXRjaCh0aGlzLmdldFZhcmlhYmxlcygpKVxuXG4gICAgICAvLyBGYWtlIHZhcmlhYmxlcyB1cGRhdGUgdG8gdHJpZ2dlciBhIHJlZmV0Y2ggdGhhdCBzaGFyZXMgaXQncyByZWZldGNoIGRlbGF5LlxuICAgICAgdGhpcy5zZXRWYXJpYWJsZXModGhpcy5nZXRWYXJpYWJsZXMoKSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3B0aW9ucygpOiBXYXRjaFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzLCBURGF0YT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fcXVlcnlSZWYgYXMgYW55KS5vYnNRdWVyeS5vcHRpb25zXG4gIH1cblxuICBwdWJsaWMgZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk6IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9ucygpPy5jb250ZXh0Py5xdWVyeVByb2Nlc3NpbmdDb25maWdcbiAgfVxuXG4gIHByaXZhdGUgX3dpdGhWYXJpYWJsZU92ZXJyaWRlcyh2YXJpYWJsZXM/OiBUVmFyaWFibGVzKTogVFZhcmlhYmxlcyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQodmFyaWFibGVzKSAmJiAhKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgX3ZhcnMgPSB7IC4uLih2YXJpYWJsZXMgfHwge30pIH0gYXMgVFZhcmlhYmxlc1xuICAgIGlmICh0aGlzLmdldFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZygpPy5kaXNhYmxlUGFnaW5nKSB7XG4gICAgICBfdmFycy50YWtlID0gdGhpcy5fdG90YWxDb3VudFxuICAgIH1cbiAgICByZXR1cm4gX3ZhcnNcbiAgfVxuXG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWdyYXBocWwtcXVlcnktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dyYXBocWwvZGF0YXRhYmxlL2RhdGF0YWJsZS1ncmFwaHFsLXF1ZXJ5LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWlCLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFTLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFNUgsT0FBTyxFQUFtQyxhQUFhLEVBQXFCLE1BQU0scUJBQXFCLENBQUE7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUs3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQXFCbkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsSUFBWSxpQkFBaUIsS0FBYyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQ3ZGLElBQVksaUJBQWlCLENBQUMsS0FBYyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBUTNGLElBQVcsZ0JBQWdCLEtBQWEsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUEsQ0FBQyxDQUFDO0lBQ3ZFLElBQVcsc0JBQXNCLEtBQWMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXBGO0lBQ0Usd0NBQXdDO0lBQ3ZCLFNBQXNDO0lBQ3ZEOztPQUVHO0lBQ2Msb0JBQTRCLEdBQUc7UUFKL0IsY0FBUyxHQUFULFNBQVMsQ0FBNkI7UUFJdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFjO1FBMUJqQyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBYSxFQUFnQixDQUFDLENBQUE7UUFDckUsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUE7UUFFL0U7O1dBRUc7UUFDSyxnQkFBVyxHQUFXLGlCQUFpQixDQUFBO1FBS3ZDLDRCQUF1QixHQUFHLEtBQUssQ0FBQTtRQWlCckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsU0FBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNyRixrRkFBa0Y7UUFFbEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQzlCLHlDQUF5QztZQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUMvQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFBO1lBQ3JDLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFDakMsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDWixpRUFBaUU7Z0JBQ2pFLDJCQUEyQjtnQkFDM0IsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtvQkFDZCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFBO2lCQUNyQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN0QixxQ0FBcUM7Z0JBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDdEMsaUJBQWlCO2dCQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFBO1lBQ3RDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtZQUU3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUk7WUFDckMsYUFBYTtZQUNiLHdCQUF3QjtZQUN4QixNQUFNO1lBQ04sTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQ3BELFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osOENBQThDO2dCQUM5QyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7WUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDTCxVQUFVO1FBQ1YsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQTtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FDaEQsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNyQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUNqQjtZQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDN0IsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFDcEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNaLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLElBQUksQ0FBQyxNQUErQztRQUN6RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUErQztRQUNyRSxPQUFPLElBQUksVUFBVSxDQUFTLENBQUMsVUFBOEIsRUFBRSxFQUFFO1lBQy9ELDREQUE0RDtZQUU1RCxxQ0FBcUM7WUFFckMsSUFBSSxVQUFVLEdBQVcsRUFBRSxDQUFBO1lBQzNCLHdEQUF3RDtZQUN4RCxNQUFNLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUE7WUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDakIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtvQkFDN0IsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7aUJBQ2Q7Z0JBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckQsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO29CQUNqQiw0Q0FBNEM7b0JBQzVDLElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxFQUFFO3dCQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQVMsQ0FBQyxDQUFBO3FCQUM5RDtvQkFFRCxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUU7d0JBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQTtxQkFDM0M7b0JBRUQsMkNBQTJDO29CQUMzQyxJQUFJLElBQUksR0FBRyxVQUFVLElBQUksRUFBRSxDQUFBO29CQUUzQixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxZQUFZLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQTtvQkFFL0Ysc0VBQXNFO29CQUN0RSxjQUFjO29CQUNkLEVBQUU7b0JBQ0YsOERBQThEO29CQUM5RCwyQ0FBMkM7b0JBQzNDLElBQUksYUFBYSxFQUFFO3dCQUNqQixJQUFJLFlBQVksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTs0QkFDM0MsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFPLFlBQVksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUE7eUJBQ3JEO3dCQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFBO3dCQUM5QyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGFBQWEsRUFBRTs0QkFDbEQsVUFBVSxHQUFHLENBQUMsQ0FBQTt5QkFDZjt3QkFFRCxvQ0FBb0M7d0JBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUV2RSxJQUFJLEdBQUcsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFBO3FCQUNuQjt5QkFBTTt3QkFDTCxJQUFJLEdBQUcsQ0FBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUUsQ0FBQTtxQkFDaEM7b0JBRUQsVUFBVSxHQUFHLElBQUksQ0FBQTtvQkFDakIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUViLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUV2RCxPQUFPLEdBQUcsRUFBRTtnQkFDVix1QkFBdUI7Z0JBQ3ZCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtnQkFDdEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFBO2dCQUVyQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQzFCLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzlCLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLDZCQUE2QixDQUFDLElBQTRDO1FBQ2hGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ3JELE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO1lBQ3BDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNsQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEMsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixZQUFpRTtRQUVqRSxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM5QixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDbEM7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVNLFlBQVk7UUFDakIsd0VBQXdFO1FBQ3hFLGtFQUFrRTtRQUVsRSxzR0FBc0c7UUFDdEcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFBO0lBQ3JDLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxTQUFxQjtRQUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDcEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBZ0IsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxTQUE4QjtRQUM3RCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsR0FBRyxTQUFTO1NBQ2IsQ0FBQTtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFnQixDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFxQjtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFBO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxTQUE4QjtRQUNsRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsR0FBRyxTQUFTO1NBQ2IsQ0FBQTtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUE7U0FDeEM7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLFNBQXNCO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNwRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBMEQsRUFBRSxpQkFBMEIsS0FBSztRQUN6RyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDcEMsSUFBSSxjQUFjLEVBQUU7WUFDbEIsd0VBQXdFO1lBQ3hFLG9FQUFvRTtZQUNwRSwrQ0FBK0M7WUFDL0MsOENBQThDO1lBRTlDLDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFRLElBQUksQ0FBQyxTQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUE7SUFDakQsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUE7SUFDMUQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQXNCO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDdkYsT0FBTyxTQUFTLENBQUE7U0FDakI7UUFFRCxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQWdCLENBQUE7UUFDcEQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxhQUFhLEVBQUU7WUFDbEQsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1NBQzlCO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlZmVyLCBmcm9tLCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCBzaGFyZSwgc2hhcmVSZXBsYXksIHNraXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgQXBvbGxvUXVlcnlSZXN1bHQsIERvY3VtZW50Tm9kZSwgTmV0d29ya1N0YXR1cywgVHlwZWREb2N1bWVudE5vZGUgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJ1xuaW1wb3J0IHsgaGFzUHJvcGVydHksIGlzTnVsbE9yVW5kZWZpbmVkLCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5pbXBvcnQgeyBRdWVyeVJlZiB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJ1xuaW1wb3J0IHsgRW1wdHlPYmplY3QsIFdhdGNoUXVlcnlPcHRpb25zIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvdHlwZXMnXG5cbmltcG9ydCB7IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB9IGZyb20gJy4uL21vZGVscydcbmltcG9ydCB7IERFRkFVTFRfUEFHRV9TSVpFIH0gZnJvbSAnLi9nZXQtcGFnZS1pbmZvJ1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3cgPSBFbXB0eU9iamVjdD4ge1xuICByb3dzOiBUUm93W11cblxuICAvKipcbiAgICogSWYgZGF0YSBpcyBwYWdlZCwgdGhpcyBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHVucGFnZWQgcm93cy5cbiAgICovXG4gIHRvdGFsQ291bnQ/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3cgPSBFbXB0eU9iamVjdD4gPSAoZGF0YTogVERhdGEpID0+XG4gICAgKERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+IHxcbiAgICBQcm9taXNlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PiB8XG4gICAgT2JzZXJ2YWJsZTxEYXRhdGFibGVHcmFwaFFMRGF0YU1hcHBlclJlc3VsdDxUUm93Pj4pXG5cbmV4cG9ydCB0eXBlIERhdGF0YWJsZUdyYXBoUUxWYXJpYWJsZXMgPSB7XG4gIHNraXA/OiBudW1iZXJcbiAgdGFrZT86IG51bWJlclxufSAmIEVtcHR5T2JqZWN0XG5cbi8qKlxuICogUGFydGlhbGx5IHdyYXBzIEFwb2xsb0NsaWVudCdzIFF1ZXJ5UmVmIHdpdGggc29tZSBvZiBvdXIgZGF0YXRhYmxlIGJvaWxlcnBsYXRlLlxuICpcbiAqIFRPRE86IERlY2lkZSBob3cgdG8gaGFuZGxlL2Rpc3BsYXkgZXJyb3JzLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlR3JhcGhRTFF1ZXJ5UmVmPFREYXRhLCBUVmFyaWFibGVzIGV4dGVuZHMgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyA9IEVtcHR5T2JqZWN0LCBUUm93ID0gRW1wdHlPYmplY3Q+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YXJpYWJsZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUVmFyaWFibGVzPih7fSBhcyBUVmFyaWFibGVzKVxuICBwcml2YXRlIHJlYWRvbmx5IF9vYnNlcnZpbmdDaGFuZ2VzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyeSB3YXkgb2YgdHJhY2tpbmcgdG90YWwgY291bnQgd2hlbiBwYWdpbmcgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBwcml2YXRlIF90b3RhbENvdW50OiBudW1iZXIgPSBERUZBVUxUX1BBR0VfU0laRVxuXG4gIHByaXZhdGUgZ2V0IF9vYnNlcnZpbmdDaGFuZ2VzKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb2JzZXJ2aW5nQ2hhbmdlc1N1YmplY3QudmFsdWUgfVxuICBwcml2YXRlIHNldCBfb2JzZXJ2aW5nQ2hhbmdlcyh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzU3ViamVjdC5uZXh0KHZhbHVlKSB9XG5cbiAgcHJpdmF0ZSBfdmFyaWFibGVzVXBkYXRlUGVuZGluZyA9IGZhbHNlXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj5cblxuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBwdWJsaWMgZ2V0IHVwZGF0ZXNQb2xsRGVsYXkoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX3VwZGF0ZXNQb2xsRGVsYXkgfVxuICBwdWJsaWMgZ2V0IHZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogT3JpZ2luYWwgQXBvbGxvQ2xpZW50J3MgUXVlcnlSZWYuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlSZWY6IFF1ZXJ5UmVmPFREYXRhLCBUVmFyaWFibGVzPixcbiAgICAvKipcbiAgICAgKiBIb3cgbG9uZyB0byB3YWl0IGJlZm9yZSByZWZldGNoaW5nIGZyb20gYW4gdXBkYXRlIHRvIHRoZSBxdWVyeSBvciB2YXJpYWJsZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdXBkYXRlc1BvbGxEZWxheTogbnVtYmVyID0gNTAwXG4gICkge1xuICAgIHRoaXMuX3ZhcmlhYmxlc1N1YmplY3QubmV4dCgodGhpcy5fcXVlcnlSZWYgYXMgYW55KS5vYnNRdWVyeS5vcHRpb25zLnZhcmlhYmxlcyB8fCB7fSlcbiAgICAvLyB0aGlzLl9nZXRWYWx1ZUNoYW5nZXMoKS5zdWJzY3JpYmUodiA9PiB0aGlzLl9sb2dOZXR3b3JrU3RhdHVzKHYubmV0d29ya1N0YXR1cykpXG5cbiAgICB0aGlzLl92YWx1ZUNoYW5nZXMgPSBkZWZlcigoKSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnT2JzZXJ2aW5nIHZhbHVlIGNoYW5nZXMnKVxuICAgICAgY29uc3QgdmFyQ2hhbmdlc1N1YiA9IHRoaXMuX3ZhcmlhYmxlc1N1YmplY3QucGlwZShcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl92YXJpYWJsZXNVcGRhdGVQZW5kaW5nID0gdHJ1ZVxuICAgICAgICB9KSxcbiAgICAgICAgYXVkaXRUaW1lKHRoaXMuX3VwZGF0ZXNQb2xsRGVsYXkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgLy8gSWYgdGhlIHF1ZXJ5IHN0b3BwZWQgYmVpbmcgb2JzZXJ2ZWQgYmVmb3JlIHNldHRpbmcgdGhlIHBlbmRpbmdcbiAgICAgICAgICAvLyB2YXJpYWJsZXMsIHNldCB0aGVtIG5vdy5cbiAgICAgICAgICBpZiAodGhpcy5fdmFyaWFibGVzVXBkYXRlUGVuZGluZykge1xuICAgICAgICAgICAgdGhpcy5yZWZldGNoKClcbiAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1VwZGF0ZVBlbmRpbmcgPSBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKHZhcmlhYmxlcyA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzZXQgdmFycycsIHZhcmlhYmxlcylcbiAgICAgICAgdGhpcy5fc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlcylcbiAgICAgICAgLy8gdGhpcy5yZWZldGNoKClcbiAgICAgICAgdGhpcy5fdmFyaWFibGVzVXBkYXRlUGVuZGluZyA9IGZhbHNlXG4gICAgICB9KVxuICAgICAgdGhpcy5fb2JzZXJ2aW5nQ2hhbmdlcyA9IHRydWVcblxuICAgICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UmVmLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAvLyB0YXAodiA9PiB7XG4gICAgICAgIC8vICAgY29uc29sZS5sb2coJ3YnLCB2KVxuICAgICAgICAvLyB9KSxcbiAgICAgICAgZmlsdGVyKHYgPT4gdi5uZXR3b3JrU3RhdHVzID09PSBOZXR3b3JrU3RhdHVzLnJlYWR5KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdEb25lIG9ic2VydmluZyB2YWx1ZSBjaGFuZ2VzJylcbiAgICAgICAgICB2YXJDaGFuZ2VzU3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzID0gZmFsc2VcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9KS5waXBlKFxuICAgICAgLy8gc2hhcmUoKVxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLl9vYnNlcnZpbmdDaGFuZ2VzU3ViamVjdC5waXBlKFxuICAgICAgc3dpdGNoTWFwKG9ic2VydmluZ0NoYW5nZXMgPT4ge1xuICAgICAgICBpZiAoIW9ic2VydmluZ0NoYW5nZXMpIHtcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3VsdCA9PiByZXN1bHQubG9hZGluZyksXG4gICAgICAgICAgc3RhcnRXaXRoKHRoaXMuX3F1ZXJ5UmVmLmdldEN1cnJlbnRSZXN1bHQoKS5sb2FkaW5nKSxcbiAgICAgICAgICBhdWRpdFRpbWUoMCksXG4gICAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyByb3dzKG1hcHBlcjogRGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+KTogT2JzZXJ2YWJsZTxUUm93W10+IHtcbiAgICByZXR1cm4gdGhpcy5fcm93c09ic2VydmFibGUobWFwcGVyKVxuICB9XG5cbiAgcHJpdmF0ZSBfcm93c09ic2VydmFibGUobWFwcGVyOiBEYXRhdGFibGVHcmFwaFFMRGF0YU1hcHBlcjxURGF0YSwgVFJvdz4pOiBPYnNlcnZhYmxlPFRSb3dbXT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUUm93W10+KChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFRSb3dbXT4pID0+IHtcbiAgICAgIC8vIGNvbnN0IHJvd3NCdWZmZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUUm93W10+KFtdKVxuXG4gICAgICAvLyBjb25zb2xlLmxvZygnb2JzIF9yb3dzT2JzZXJ2YWJsZScpXG5cbiAgICAgIGxldCByb3dzQnVmZmVyOiBUUm93W10gPSBbXVxuICAgICAgLy8gY29uc3Qgcm93c0J1ZmZlclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxUUm93W10+KClcbiAgICAgIGNvbnN0IHJvd3NCdWZmZXJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VFJvd1tdPigpXG5cbiAgICAgIGNvbnN0IHF1ZXJ5U3ViID0gdGhpcy5fdmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc29sdmVSb3dNYXBwZXIobWFwcGVyKHJlc3VsdC5kYXRhKSkucGlwZShcbiAgICAgICAgICAgIHRhcChtYXBwZXJSZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnbWFwcGVyUmVzdWx0JywgbWFwcGVyUmVzdWx0KVxuICAgICAgICAgICAgICBpZiAodGhpcy5fbmVlZHNUb1JlcXVlcnlXaXRoQWxsUmVjb3JkcyhtYXBwZXJSZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRjaFZhcmlhYmxlcyh7IHRha2U6IG1hcHBlclJlc3VsdC50b3RhbENvdW50IH0gYXMgYW55KVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KG1hcHBlclJlc3VsdCwgJ3RvdGFsQ291bnQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsQ291bnQgPSBtYXBwZXJSZXN1bHQudG90YWxDb3VudFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gbGV0IHJvd3MgPSByb3dzQnVmZmVyU3ViamVjdC52YWx1ZSB8fCBbXVxuICAgICAgICAgICAgICBsZXQgcm93cyA9IHJvd3NCdWZmZXIgfHwgW11cblxuICAgICAgICAgICAgICBjb25zdCBoYXNUb3RhbENvdW50ID0gbWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgIT09IHVuZGVmaW5lZCAmJiBtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gbnVsbFxuXG4gICAgICAgICAgICAgIC8vIElmIHRoZSByb3dzIGJ1ZmZlciBpcyBub3QgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdG90YWxDb3VudCwgY3JlYXRlIGFcbiAgICAgICAgICAgICAgLy8gbmV3IGJ1ZmZlci5cbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgaWYgdGhpcyBpcyByZXNldHRpbmcgdGhlIGJ1ZmZlciB0b28gZWFnZXJseS5cbiAgICAgICAgICAgICAgLy8gQXBvbGxvQ2xpZW50IG1heSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uLlxuICAgICAgICAgICAgICBpZiAoaGFzVG90YWxDb3VudCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwZXJSZXN1bHQudG90YWxDb3VudCAhPT0gcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHJvd3MgPSBuZXcgQXJyYXk8VFJvdz4obWFwcGVyUmVzdWx0LnRvdGFsQ291bnQgfHwgMClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHRoaXMuZ2V0VmFyaWFibGVzKCkuc2tpcCA/PyAwXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAwXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHJvd3MgaW50byBidWZmZXIgbG9jYXRpb24uXG4gICAgICAgICAgICAgICAgcm93cy5zcGxpY2Uoc3RhcnRJbmRleCwgbWFwcGVyUmVzdWx0LnJvd3MubGVuZ3RoLCAuLi5tYXBwZXJSZXN1bHQucm93cylcblxuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLnJvd3MgXVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJvd3MgPSBbIC4uLm1hcHBlclJlc3VsdC5yb3dzIF1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXIgPSByb3dzXG4gICAgICAgICAgICAgIHJvd3NCdWZmZXJTdWJqZWN0Lm5leHQocm93cylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgICBjb25zdCByb3dzU3ViID0gcm93c0J1ZmZlclN1YmplY3Quc3Vic2NyaWJlKHN1YnNjcmliZXIpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd1bnN1YicpXG4gICAgICAgIHF1ZXJ5U3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgcm93c1N1Yi51bnN1YnNjcmliZSgpXG5cbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QubmV4dChbXSlcbiAgICAgICAgcm93c0J1ZmZlclN1YmplY3QuY29tcGxldGUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9uZWVkc1RvUmVxdWVyeVdpdGhBbGxSZWNvcmRzKGRhdGE6IERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+KTogYm9vbGVhbiB7XG4gICAgaWYgKCEodGhpcy5nZXRRdWVyeVByb2Nlc3NpbmdDb25maWcoKT8uZGlzYWJsZVBhZ2luZykpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiBoYXNQcm9wZXJ0eShkYXRhLCAndG90YWxDb3VudCcpICYmXG4gICAgICBoYXNQcm9wZXJ0eShkYXRhLCAncm93cycpICYmXG4gICAgICBBcnJheS5pc0FycmF5KGRhdGEucm93cykgJiZcbiAgICAgIGRhdGEudG90YWxDb3VudCA+IGRhdGEucm93cy5sZW5ndGggJiZcbiAgICAgIHRoaXMuX3RvdGFsQ291bnQgIT09IGRhdGEudG90YWxDb3VudFxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzb2x2ZVJvd01hcHBlcihcbiAgICBtYXBwZXJSZXR1cm46IFJldHVyblR5cGU8RGF0YXRhYmxlR3JhcGhRTERhdGFNYXBwZXI8VERhdGEsIFRSb3c+PlxuICApOiBPYnNlcnZhYmxlPERhdGF0YWJsZUdyYXBoUUxEYXRhTWFwcGVyUmVzdWx0PFRSb3c+PiB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShtYXBwZXJSZXR1cm4pKSB7XG4gICAgICByZXR1cm4gbWFwcGVyUmV0dXJuLnBpcGUodGFrZSgxKSlcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUobWFwcGVyUmV0dXJuKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYXJpYWJsZXMoKTogVFZhcmlhYmxlcyB7XG4gICAgLy8gVGhlIHR5cGVzIGFyZW4ndCBhY2N1cmF0ZSBvciBBcG9sbG8gaGFzIGEgYnVnLCBzbyBJIGhhZCB0byB1c2UgYGFueWAuXG4gICAgLy8gcmV0dXJuICh0aGlzLl9xdWVyeVJlZiBhcyBhbnkpLm9ic1F1ZXJ5Lm9wdGlvbnMudmFyaWFibGVzIHx8IHt9XG5cbiAgICAvLyBUT0RPOiBMb29rIGludG8gZGVib3VuY2luZyBvdXIgdmFyaWFibGUgc2V0dGluZywgd2hpbGUgc3RpbGwgZGVwZW5kaW5nIG9uIEFwb2xsbyBmb3IgbWFuYWdpbmcgdGhlbS5cbiAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzU3ViamVjdC52YWx1ZVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlczogVFZhcmlhYmxlcyk6IFByb21pc2U8dm9pZCB8IEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYuc2V0VmFyaWFibGVzKF92YXJzIHx8IHt9IGFzIFRWYXJpYWJsZXMpXG4gIH1cblxuICBwcml2YXRlIF9wYXRjaFZhcmlhYmxlc0ltbWVkaWF0ZSh2YXJpYWJsZXM6IFBhcnRpYWw8VFZhcmlhYmxlcz4pOiBQcm9taXNlPHZvaWQgfCBBcG9sbG9RdWVyeVJlc3VsdDxURGF0YT4+IHtcbiAgICBjb25zdCBfdmFyaWFibGVzID0ge1xuICAgICAgLi4udGhpcy5nZXRWYXJpYWJsZXMoKSxcbiAgICAgIC4uLnZhcmlhYmxlc1xuICAgIH1cblxuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKF92YXJpYWJsZXMpXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UmVmLnNldFZhcmlhYmxlcyhfdmFycyB8fCB7fSBhcyBUVmFyaWFibGVzKVxuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlcyh2YXJpYWJsZXM6IFRWYXJpYWJsZXMpOiB2b2lkIHtcbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQodmFyaWFibGVzKVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nQ2hhbmdlcykge1xuICAgICAgdGhpcy5fc2V0VmFyaWFibGVzSW1tZWRpYXRlKHZhcmlhYmxlcylcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hWYXJpYWJsZXModmFyaWFibGVzOiBQYXJ0aWFsPFRWYXJpYWJsZXM+KTogdm9pZCB7XG4gICAgY29uc3QgX3ZhcmlhYmxlcyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAuLi52YXJpYWJsZXNcbiAgICB9XG5cbiAgICB0aGlzLl92YXJpYWJsZXNTdWJqZWN0Lm5leHQoX3ZhcmlhYmxlcylcbiAgICBpZiAoIXRoaXMuX29ic2VydmluZ0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuX3NldFZhcmlhYmxlc0ltbWVkaWF0ZShfdmFyaWFibGVzKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZldGNoKHZhcmlhYmxlcz86IFRWYXJpYWJsZXMpOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFREYXRhPj4ge1xuICAgIGNvbnN0IF92YXJzID0gdGhpcy5fd2l0aFZhcmlhYmxlT3ZlcnJpZGVzKHZhcmlhYmxlcylcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlSZWYucmVmZXRjaChfdmFycylcbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VERhdGEsIFRWYXJpYWJsZXM+LCB0cmlnZ2VyUmVmZXRjaDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlSZWYuc2V0T3B0aW9ucyh7IHF1ZXJ5IH0pXG4gICAgaWYgKHRyaWdnZXJSZWZldGNoKSB7XG4gICAgICAvLyBUT0RPOiBDb25zaWRlciByZWZhY3RvcmluZyB0aGUgcmVmZXRjaCBwcm9jZXNzLiBJIGNhbid0IGNhbGwgQXBvbGxvJ3NcbiAgICAgIC8vIHJlZmV0Y2ggZGlyZWN0bHksIGJlY2F1c2UgSSB3YW50IGl0IHRvIHNoYXJlIHRoZSB1cGRhdGUgdHJpZ2dlcmVkXG4gICAgICAvLyBwb2xsaW5nIGRlbGF5IHdpdGggdGhlIHNldHRpbmcgb2YgdmFyaWFibGVzLlxuICAgICAgLy8gdGhpcy5fcXVlcnlSZWYucmVmZXRjaCh0aGlzLmdldFZhcmlhYmxlcygpKVxuXG4gICAgICAvLyBGYWtlIHZhcmlhYmxlcyB1cGRhdGUgdG8gdHJpZ2dlciBhIHJlZmV0Y2ggdGhhdCBzaGFyZXMgaXQncyByZWZldGNoIGRlbGF5LlxuICAgICAgdGhpcy5zZXRWYXJpYWJsZXModGhpcy5nZXRWYXJpYWJsZXMoKSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3B0aW9ucygpOiBXYXRjaFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzLCBURGF0YT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fcXVlcnlSZWYgYXMgYW55KS5vYnNRdWVyeS5vcHRpb25zXG4gIH1cblxuICBwdWJsaWMgZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk6IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9ucygpPy5jb250ZXh0Py5xdWVyeVByb2Nlc3NpbmdDb25maWdcbiAgfVxuXG4gIHByaXZhdGUgX3dpdGhWYXJpYWJsZU92ZXJyaWRlcyh2YXJpYWJsZXM/OiBUVmFyaWFibGVzKTogVFZhcmlhYmxlcyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQodmFyaWFibGVzKSAmJiAhKHRoaXMuZ2V0UXVlcnlQcm9jZXNzaW5nQ29uZmlnKCk/LmRpc2FibGVQYWdpbmcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgX3ZhcnMgPSB7IC4uLih2YXJpYWJsZXMgfHwge30pIH0gYXMgVFZhcmlhYmxlc1xuICAgIGlmICh0aGlzLmdldFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZygpPy5kaXNhYmxlUGFnaW5nKSB7XG4gICAgICBfdmFycy50YWtlID0gdGhpcy5fdG90YWxDb3VudFxuICAgIH1cbiAgICByZXR1cm4gX3ZhcnNcbiAgfVxuXG59XG4iXX0=
@@ -34,9 +34,9 @@ export class DatatableGraphqlService {
34
34
  return new DatatableGraphQLQueryRef(queryRef);
35
35
  }
36
36
  }
37
- DatatableGraphqlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DatatableGraphqlService, deps: [{ token: i1.Apollo }, { token: DATATABLE_GRAPHQL_SERVICE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
- DatatableGraphqlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DatatableGraphqlService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DatatableGraphqlService, decorators: [{
37
+ DatatableGraphqlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatatableGraphqlService, deps: [{ token: i1.Apollo }, { token: DATATABLE_GRAPHQL_SERVICE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ DatatableGraphqlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatatableGraphqlService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatatableGraphqlService, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
47
47
  type: Inject,
48
48
  args: [DATATABLE_GRAPHQL_SERVICE_CONFIG]
49
49
  }] }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWdyYXBocWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9ncmFwaHFsL2RhdGF0YWJsZS9kYXRhdGFibGUtZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFPNUUsT0FBTyxFQUFFLHdCQUF3QixFQUE2QixNQUFNLCtCQUErQixDQUFBOzs7QUFxQm5HLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUFnQyxrQ0FBa0MsQ0FBQyxDQUFBO0FBRXJJLE1BQU0sZ0JBQWdCLEdBQWtDO0lBQ3RELG1CQUFtQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUNuQyxDQUFBO0FBS0QsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUNtQixPQUFlLEVBQ3NCLE9BQXVDO1FBRDVFLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFHaEMsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ25CLENBQUE7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUNmLE9BQTBDLEVBQzFDLHFCQUE2QztRQUU3QyxNQUFNLFFBQVEsR0FBeUM7WUFDckQsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixHQUFHLGdCQUFnQjtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDOUMsR0FBRyxPQUFPO1NBQ1gsQ0FBQTtRQUVELElBQUkscUJBQXFCLEVBQUU7WUFDekIsUUFBUSxDQUFDLE9BQU8sR0FBRztnQkFDakIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUMzQixxQkFBcUIsRUFBRTtvQkFDckIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLElBQUksRUFBRSxDQUFDO29CQUNsRCxHQUFHLHFCQUFxQjtpQkFDekI7YUFDRixDQUFBO1NBQ0Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBb0IsUUFBUSxDQUFDLENBQUE7UUFFckUsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLENBQUM7O29IQXRDVSx1QkFBdUIsd0NBTVosZ0NBQWdDO3dIQU4zQyx1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgT3BlcmF0aW9uVmFyaWFibGVzIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZS90eXBlcydcbmltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJ1xuaW1wb3J0IHsgRW1wdHlPYmplY3QsIFdhdGNoUXVlcnlPcHRpb25zIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvdHlwZXMnXG5cbmltcG9ydCB7IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB9IGZyb20gJy4uL21vZGVscydcbmltcG9ydCB7IERhdGF0YWJsZUdyYXBoUUxRdWVyeVJlZiwgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyB9IGZyb20gJy4vZGF0YXRhYmxlLWdyYXBocWwtcXVlcnktcmVmJ1xuXG4vKipcbiAqIE5PVEU6IEFueSBvZiBBcG9sbG9DbGllbnQncyBXYXRjaFF1ZXJ5T3B0aW9ucyBwcm9wZXJ0aWVzIGNhbiBiZSBzZXQsIGJ1dCBJXG4gKiB0aGluayBvdXIgY29tcG9uZW50cyBzaG91bGQgb25seSBiZSBwcm92aWRpbmcgYHF1ZXJ5YCBhbmQgYHZhcmlhYmxlc2AuIFRoZVxuICogcmVzdCBzaG91bGQgYmUgY29tbW9uIG9wdGlvbnMgc2hhcmVkIGJ5IGFsbCBvdXIgYXBwJ3MgZGF0YXRhYmxlcy4gVGhpcyBtYXlcbiAqIGNoYW5nZSBpZiBpdCBpcyBkZXRlcm1pbmVkIHRvIGJlIHRvbyByZXN0cmljdGl2ZS5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YXRhYmxlUXVlcnlPcHRpb25zPFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXMsIFREYXRhID0gYW55PiA9XG4gIFBpY2s8V2F0Y2hRdWVyeU9wdGlvbnM8VFZhcmlhYmxlcywgVERhdGE+LCAncXVlcnknPlxuICAmIFBpY2s8V2F0Y2hRdWVyeU9wdGlvbnM8VFZhcmlhYmxlcywgVERhdGE+LCAndmFyaWFibGVzJz5cbiAgJiBQaWNrPFdhdGNoUXVlcnlPcHRpb25zPFRWYXJpYWJsZXMsIFREYXRhPiwgJ2NvbnRleHQnPlxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXRhYmxlR3JhcGhxbFNlcnZpY2VDb25maWcge1xuICAvKipcbiAgICogUG9sbGluZyBpbnRlcnZhbCB0aW1lIGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHBvbGxpbmdJbnRlcnZhbFRpbWU/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IERBVEFUQUJMRV9HUkFQSFFMX1NFUlZJQ0VfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPERhdGF0YWJsZUdyYXBocWxTZXJ2aWNlQ29uZmlnPignREFUQVRBQkxFX0dSQVBIUUxfU0VSVklDRV9DT05GSUcnKVxuXG5jb25zdCBfQ09ORklHX0RFRkFVTFRTOiBEYXRhdGFibGVHcmFwaHFsU2VydmljZUNvbmZpZyA9IHtcbiAgcG9sbGluZ0ludGVydmFsVGltZTogMSAqIDYwICogMTAwMFxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVHcmFwaHFsU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnOiBEYXRhdGFibGVHcmFwaHFsU2VydmljZUNvbmZpZ1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Fwb2xsbzogQXBvbGxvLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQVRBQkxFX0dSQVBIUUxfU0VSVklDRV9DT05GSUcpIF9jb25maWc/OiBEYXRhdGFibGVHcmFwaHFsU2VydmljZUNvbmZpZ1xuICApIHtcbiAgICB0aGlzLl9jb25maWcgPSB7XG4gICAgICAuLi5fQ09ORklHX0RFRkFVTFRTLFxuICAgICAgLi4uKF9jb25maWcgfHwge30pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdhdGNoUXVlcnk8VERhdGEsIFRWYXJpYWJsZXMgZXh0ZW5kcyBEYXRhdGFibGVHcmFwaFFMVmFyaWFibGVzID0gRW1wdHlPYmplY3QsIFRSb3cgPSBFbXB0eU9iamVjdD4oXG4gICAgb3B0aW9uczogRGF0YXRhYmxlUXVlcnlPcHRpb25zPFRWYXJpYWJsZXM+LFxuICAgIHF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZz86IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZ1xuICApOiBEYXRhdGFibGVHcmFwaFFMUXVlcnlSZWY8VERhdGEsIFRWYXJpYWJsZXMsIFRSb3c+IHtcbiAgICBjb25zdCBfb3B0aW9uczogV2F0Y2hRdWVyeU9wdGlvbnM8VFZhcmlhYmxlcywgVERhdGE+ID0ge1xuICAgICAgdXNlSW5pdGlhbExvYWRpbmc6IHRydWUsXG4gICAgICAuLi5fQ09ORklHX0RFRkFVTFRTLFxuICAgICAgcG9sbEludGVydmFsOiB0aGlzLl9jb25maWcucG9sbGluZ0ludGVydmFsVGltZSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9XG5cbiAgICBpZiAocXVlcnlQcm9jZXNzaW5nQ29uZmlnKSB7XG4gICAgICBfb3B0aW9ucy5jb250ZXh0ID0ge1xuICAgICAgICAuLi4oX29wdGlvbnMuY29udGV4dCB8fCB7fSksXG4gICAgICAgIHF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZzoge1xuICAgICAgICAgIC4uLihfb3B0aW9ucy5jb250ZXh0Py5xdWVyeVByb2Nlc3NpbmdDb25maWcgfHwge30pLFxuICAgICAgICAgIC4uLnF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlSZWYgPSB0aGlzLl9hcG9sbG8ud2F0Y2hRdWVyeTxURGF0YSwgVFZhcmlhYmxlcz4oX29wdGlvbnMpXG5cbiAgICByZXR1cm4gbmV3IERhdGF0YWJsZUdyYXBoUUxRdWVyeVJlZihxdWVyeVJlZilcbiAgfVxuXG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWdyYXBocWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9ncmFwaHFsL2RhdGF0YWJsZS9kYXRhdGFibGUtZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFPNUUsT0FBTyxFQUFFLHdCQUF3QixFQUE2QixNQUFNLCtCQUErQixDQUFBOzs7QUFvQm5HLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUFnQyxrQ0FBa0MsQ0FBQyxDQUFBO0FBRXJJLE1BQU0sZ0JBQWdCLEdBQWtDO0lBQ3RELG1CQUFtQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUNuQyxDQUFBO0FBS0QsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUNtQixPQUFlLEVBQ3NCLE9BQXVDO1FBRDVFLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFHaEMsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ25CLENBQUE7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUNmLE9BQTBDLEVBQzFDLHFCQUE2QztRQUU3QyxNQUFNLFFBQVEsR0FBeUM7WUFDckQsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixHQUFHLGdCQUFnQjtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDOUMsR0FBRyxPQUFPO1NBQ1gsQ0FBQTtRQUVELElBQUkscUJBQXFCLEVBQUU7WUFDekIsUUFBUSxDQUFDLE9BQU8sR0FBRztnQkFDakIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUMzQixxQkFBcUIsRUFBRTtvQkFDckIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLElBQUksRUFBRSxDQUFDO29CQUNsRCxHQUFHLHFCQUFxQjtpQkFDekI7YUFDRixDQUFBO1NBQ0Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBb0IsUUFBUSxDQUFDLENBQUE7UUFFckUsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLENBQUM7O29IQXRDVSx1QkFBdUIsd0NBTVosZ0NBQWdDO3dIQU4zQyx1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgT3BlcmF0aW9uVmFyaWFibGVzIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZS90eXBlcydcbmltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJ1xuaW1wb3J0IHsgRW1wdHlPYmplY3QsIFdhdGNoUXVlcnlPcHRpb25zIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvdHlwZXMnXG5cbmltcG9ydCB7IFF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZyB9IGZyb20gJy4uL21vZGVscydcbmltcG9ydCB7IERhdGF0YWJsZUdyYXBoUUxRdWVyeVJlZiwgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyB9IGZyb20gJy4vZGF0YXRhYmxlLWdyYXBocWwtcXVlcnktcmVmJ1xuXG4vKipcbiAqIE5PVEU6IEFueSBvZiBBcG9sbG9DbGllbnQncyBXYXRjaFF1ZXJ5T3B0aW9ucyBwcm9wZXJ0aWVzIGNhbiBiZSBzZXQsIGJ1dCBJXG4gKiB0aGluayBvdXIgY29tcG9uZW50cyBzaG91bGQgb25seSBiZSBwcm92aWRpbmcgYHF1ZXJ5YCBhbmQgYHZhcmlhYmxlc2AuIFRoZVxuICogcmVzdCBzaG91bGQgYmUgY29tbW9uIG9wdGlvbnMgc2hhcmVkIGJ5IGFsbCBvdXIgYXBwJ3MgZGF0YXRhYmxlcy4gVGhpcyBtYXlcbiAqIGNoYW5nZSBpZiBpdCBpcyBkZXRlcm1pbmVkIHRvIGJlIHRvbyByZXN0cmljdGl2ZS5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YXRhYmxlUXVlcnlPcHRpb25zPFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXMsIFREYXRhID0gYW55PiA9XG4gIFBpY2s8V2F0Y2hRdWVyeU9wdGlvbnM8VFZhcmlhYmxlcywgVERhdGE+LCAncXVlcnknPlxuICAmIFBpY2s8V2F0Y2hRdWVyeU9wdGlvbnM8VFZhcmlhYmxlcywgVERhdGE+LCAndmFyaWFibGVzJz5cbiAgJiBQaWNrPFdhdGNoUXVlcnlPcHRpb25zPFRWYXJpYWJsZXMsIFREYXRhPiwgJ2NvbnRleHQnPlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGF0YWJsZUdyYXBocWxTZXJ2aWNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFBvbGxpbmcgaW50ZXJ2YWwgdGltZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICBwb2xsaW5nSW50ZXJ2YWxUaW1lPzogbnVtYmVyXG59XG5cbmV4cG9ydCBjb25zdCBEQVRBVEFCTEVfR1JBUEhRTF9TRVJWSUNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRhdGFibGVHcmFwaHFsU2VydmljZUNvbmZpZz4oJ0RBVEFUQUJMRV9HUkFQSFFMX1NFUlZJQ0VfQ09ORklHJylcblxuY29uc3QgX0NPTkZJR19ERUZBVUxUUzogRGF0YXRhYmxlR3JhcGhxbFNlcnZpY2VDb25maWcgPSB7XG4gIHBvbGxpbmdJbnRlcnZhbFRpbWU6IDEgKiA2MCAqIDEwMDBcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlR3JhcGhxbFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZzogRGF0YXRhYmxlR3JhcGhxbFNlcnZpY2VDb25maWdcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hcG9sbG86IEFwb2xsbyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFUQUJMRV9HUkFQSFFMX1NFUlZJQ0VfQ09ORklHKSBfY29uZmlnPzogRGF0YXRhYmxlR3JhcGhxbFNlcnZpY2VDb25maWdcbiAgKSB7XG4gICAgdGhpcy5fY29uZmlnID0ge1xuICAgICAgLi4uX0NPTkZJR19ERUZBVUxUUyxcbiAgICAgIC4uLihfY29uZmlnIHx8IHt9KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3YXRjaFF1ZXJ5PFREYXRhLCBUVmFyaWFibGVzIGV4dGVuZHMgRGF0YXRhYmxlR3JhcGhRTFZhcmlhYmxlcyA9IEVtcHR5T2JqZWN0LCBUUm93ID0gRW1wdHlPYmplY3Q+KFxuICAgIG9wdGlvbnM6IERhdGF0YWJsZVF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPixcbiAgICBxdWVyeVByb2Nlc3NpbmdDb25maWc/OiBRdWVyeVByb2Nlc3NpbmdDb25maWdcbiAgKTogRGF0YXRhYmxlR3JhcGhRTFF1ZXJ5UmVmPFREYXRhLCBUVmFyaWFibGVzLCBUUm93PiB7XG4gICAgY29uc3QgX29wdGlvbnM6IFdhdGNoUXVlcnlPcHRpb25zPFRWYXJpYWJsZXMsIFREYXRhPiA9IHtcbiAgICAgIHVzZUluaXRpYWxMb2FkaW5nOiB0cnVlLFxuICAgICAgLi4uX0NPTkZJR19ERUZBVUxUUyxcbiAgICAgIHBvbGxJbnRlcnZhbDogdGhpcy5fY29uZmlnLnBvbGxpbmdJbnRlcnZhbFRpbWUsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfVxuXG4gICAgaWYgKHF1ZXJ5UHJvY2Vzc2luZ0NvbmZpZykge1xuICAgICAgX29wdGlvbnMuY29udGV4dCA9IHtcbiAgICAgICAgLi4uKF9vcHRpb25zLmNvbnRleHQgfHwge30pLFxuICAgICAgICBxdWVyeVByb2Nlc3NpbmdDb25maWc6IHtcbiAgICAgICAgICAuLi4oX29wdGlvbnMuY29udGV4dD8ucXVlcnlQcm9jZXNzaW5nQ29uZmlnIHx8IHt9KSxcbiAgICAgICAgICAuLi5xdWVyeVByb2Nlc3NpbmdDb25maWdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5UmVmID0gdGhpcy5fYXBvbGxvLndhdGNoUXVlcnk8VERhdGEsIFRWYXJpYWJsZXM+KF9vcHRpb25zKVxuXG4gICAgcmV0dXJuIG5ldyBEYXRhdGFibGVHcmFwaFFMUXVlcnlSZWYocXVlcnlSZWYpXG4gIH1cblxufVxuIl19