ontimize-web-ngx 15.5.0 → 15.6.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/esm2020/lib/components/app-header/o-app-header.component.mjs +4 -4
  2. package/esm2020/lib/components/app-header/o-app-header.module.mjs +5 -5
  3. package/esm2020/lib/components/app-sidenav/image/o-app-sidenav-image.component.mjs +4 -4
  4. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +4 -4
  5. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +4 -4
  6. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +4 -4
  7. package/esm2020/lib/components/app-sidenav/o-app-sidenav.module.mjs +5 -5
  8. package/esm2020/lib/components/bar-menu/locale-menu-item/o-locale-bar-menu-item.component.mjs +4 -4
  9. package/esm2020/lib/components/bar-menu/menu-group/o-bar-menu-group.component.mjs +4 -4
  10. package/esm2020/lib/components/bar-menu/menu-item/o-bar-menu-item.component.mjs +4 -4
  11. package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +4 -4
  12. package/esm2020/lib/components/bar-menu/menu-separator/o-bar-menu-separator.component.mjs +4 -4
  13. package/esm2020/lib/components/bar-menu/o-bar-menu-base.class.mjs +4 -4
  14. package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +4 -4
  15. package/esm2020/lib/components/bar-menu/o-bar-menu.module.mjs +5 -5
  16. package/esm2020/lib/components/bar-menu/o-base-menu-item.class.mjs +4 -4
  17. package/esm2020/lib/components/breadcrumb/o-breadcrumb.component.mjs +4 -4
  18. package/esm2020/lib/components/breadcrumb/o-breadcrumb.module.mjs +5 -5
  19. package/esm2020/lib/components/button/o-button.component.mjs +4 -4
  20. package/esm2020/lib/components/button/o-button.module.mjs +5 -5
  21. package/esm2020/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.mjs +4 -4
  22. package/esm2020/lib/components/button-toggle/o-button-toggle.component.mjs +4 -4
  23. package/esm2020/lib/components/button-toggle/o-button-toggle.module.mjs +5 -5
  24. package/esm2020/lib/components/card-menu-item/o-card-menu-item.component.mjs +4 -4
  25. package/esm2020/lib/components/card-menu-item/o-card-menu-item.module.mjs +5 -5
  26. package/esm2020/lib/components/container/column/o-column.component.mjs +4 -4
  27. package/esm2020/lib/components/container/column/o-column.module.mjs +5 -5
  28. package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.component.mjs +4 -4
  29. package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.module.mjs +5 -5
  30. package/esm2020/lib/components/container/o-container-collapsible-component.class.mjs +4 -4
  31. package/esm2020/lib/components/container/o-container-component.class.mjs +4 -4
  32. package/esm2020/lib/components/container/row/o-row.component.mjs +4 -4
  33. package/esm2020/lib/components/container/row/o-row.module.mjs +5 -5
  34. package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.component.mjs +4 -4
  35. package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.module.mjs +5 -5
  36. package/esm2020/lib/components/contextmenu/context-menu/o-context-menu-content.component.mjs +4 -4
  37. package/esm2020/lib/components/contextmenu/context-menu/o-wrapper-content-menu/o-wrapper-content-menu.component.mjs +4 -4
  38. package/esm2020/lib/components/contextmenu/context-menu-group/o-context-menu-group.component.mjs +4 -4
  39. package/esm2020/lib/components/contextmenu/context-menu-item/o-context-menu-item.component.mjs +4 -4
  40. package/esm2020/lib/components/contextmenu/context-menu-separator/o-context-menu-separator.component.mjs +4 -4
  41. package/esm2020/lib/components/contextmenu/o-content-menu-base-item.class.mjs +4 -4
  42. package/esm2020/lib/components/contextmenu/o-context-menu-overlay.service.mjs +4 -4
  43. package/esm2020/lib/components/contextmenu/o-context-menu.component.mjs +4 -4
  44. package/esm2020/lib/components/contextmenu/o-context-menu.directive.mjs +4 -4
  45. package/esm2020/lib/components/contextmenu/o-context-menu.module.mjs +5 -5
  46. package/esm2020/lib/components/contextmenu/o-context-menu.service.mjs +4 -4
  47. package/esm2020/lib/components/dual-list-selector/dual-list-selector-item/date/o-dual-list-selector-date-item.component.mjs +4 -4
  48. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +4 -4
  49. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.module.mjs +5 -5
  50. package/esm2020/lib/components/expandable-container/o-expandable-container.component.mjs +4 -4
  51. package/esm2020/lib/components/expandable-container/o-expandable-container.module.mjs +5 -5
  52. package/esm2020/lib/components/filter-builder/filter-builder-menu/filter-builder-menu.component.mjs +4 -4
  53. package/esm2020/lib/components/filter-builder/o-filter-builder-clear.directive.mjs +4 -4
  54. package/esm2020/lib/components/filter-builder/o-filter-builder-query.directive.mjs +4 -4
  55. package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +4 -4
  56. package/esm2020/lib/components/filter-builder/o-filter-builder.module.mjs +5 -5
  57. package/esm2020/lib/components/form/guards/o-form-can-deactivate.guard.mjs +4 -4
  58. package/esm2020/lib/components/form/navigation/o-form-confirm-exit.service.mjs +4 -4
  59. package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +6 -5
  60. package/esm2020/lib/components/form/o-form.component.mjs +27 -13
  61. package/esm2020/lib/components/form/o-form.module.mjs +5 -5
  62. package/esm2020/lib/components/form/services/o-form-message.service.mjs +4 -4
  63. package/esm2020/lib/components/form/toolbar/o-form-toolbar.component.mjs +4 -4
  64. package/esm2020/lib/components/form/toolbar/o-form-toolbar.module.mjs +5 -5
  65. package/esm2020/lib/components/form-container/o-form-container.component.mjs +4 -4
  66. package/esm2020/lib/components/form-container/o-form-container.module.mjs +5 -5
  67. package/esm2020/lib/components/grid/grid-item/o-grid-item.component.mjs +4 -4
  68. package/esm2020/lib/components/grid/grid-item/o-grid-item.directive.mjs +4 -4
  69. package/esm2020/lib/components/grid/o-grid.component.mjs +5 -5
  70. package/esm2020/lib/components/grid/o-grid.module.mjs +5 -5
  71. package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +4 -4
  72. package/esm2020/lib/components/image/fullscreen/fullscreen-dialog.component.mjs +4 -4
  73. package/esm2020/lib/components/image/o-image.component.mjs +6 -6
  74. package/esm2020/lib/components/image/o-image.module.mjs +5 -5
  75. package/esm2020/lib/components/input/checkbox/o-checkbox.component.mjs +4 -4
  76. package/esm2020/lib/components/input/checkbox/o-checkbox.module.mjs +5 -5
  77. package/esm2020/lib/components/input/combo/combo-renderer/boolean/o-combo-renderer-boolean.component.mjs +4 -4
  78. package/esm2020/lib/components/input/combo/combo-renderer/currency/o-combo-renderer-currency.component.mjs +4 -4
  79. package/esm2020/lib/components/input/combo/combo-renderer/date/o-combo-renderer-date.component.mjs +4 -4
  80. package/esm2020/lib/components/input/combo/combo-renderer/icon/o-combo-renderer-icon.component.mjs +4 -4
  81. package/esm2020/lib/components/input/combo/combo-renderer/integer/o-combo-renderer-integer.component.mjs +4 -4
  82. package/esm2020/lib/components/input/combo/combo-renderer/o-combo-renderer.class.mjs +4 -4
  83. package/esm2020/lib/components/input/combo/combo-renderer/percentage/o-combo-renderer-percentage.component.mjs +4 -4
  84. package/esm2020/lib/components/input/combo/combo-renderer/real/o-combo-renderer-real.component.mjs +4 -4
  85. package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -4
  86. package/esm2020/lib/components/input/combo/o-combo.component.mjs +4 -4
  87. package/esm2020/lib/components/input/combo/o-combo.module.mjs +5 -5
  88. package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +5 -5
  89. package/esm2020/lib/components/input/currency-input/o-currency-input.module.mjs +5 -5
  90. package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +4 -4
  91. package/esm2020/lib/components/input/date-input/o-date-input.module.mjs +5 -5
  92. package/esm2020/lib/components/input/date-range/o-daterange-input.component.mjs +4 -4
  93. package/esm2020/lib/components/input/date-range/o-daterange-input.module.mjs +5 -5
  94. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.component.mjs +4 -4
  95. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.directive.mjs +4 -4
  96. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.module.mjs +5 -5
  97. package/esm2020/lib/components/input/date-range-legacy/o-daterange-picker.component.mjs +4 -4
  98. package/esm2020/lib/components/input/email-input/o-email-input.component.mjs +4 -4
  99. package/esm2020/lib/components/input/email-input/o-email-input.module.mjs +5 -5
  100. package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +9 -5
  101. package/esm2020/lib/components/input/file-input/o-file-input.module.mjs +5 -5
  102. package/esm2020/lib/components/input/hour-input/o-hour-input.component.mjs +4 -4
  103. package/esm2020/lib/components/input/hour-input/o-hour-input.module.mjs +5 -5
  104. package/esm2020/lib/components/input/html-input/o-html-input.component.mjs +4 -4
  105. package/esm2020/lib/components/input/html-input/o-html-input.module.mjs +5 -5
  106. package/esm2020/lib/components/input/integer-input/o-integer-input.component.mjs +4 -4
  107. package/esm2020/lib/components/input/integer-input/o-integer-input.module.mjs +5 -5
  108. package/esm2020/lib/components/input/listpicker/listpicker-renderer/currency/o-list-picker-renderer-currency.component.mjs +4 -4
  109. package/esm2020/lib/components/input/listpicker/listpicker-renderer/date/o-list-picker-renderer-date.component.mjs +4 -4
  110. package/esm2020/lib/components/input/listpicker/listpicker-renderer/integer/o-list-picker-renderer-integer.component.mjs +4 -4
  111. package/esm2020/lib/components/input/listpicker/listpicker-renderer/o-list-picker-renderer.class.mjs +4 -4
  112. package/esm2020/lib/components/input/listpicker/listpicker-renderer/percentage/o-list-picker-renderer-percentage.component.mjs +4 -4
  113. package/esm2020/lib/components/input/listpicker/listpicker-renderer/real/o-list-picker-renderer-real.component.mjs +4 -4
  114. package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +4 -4
  115. package/esm2020/lib/components/input/listpicker/o-list-picker.component.mjs +4 -4
  116. package/esm2020/lib/components/input/listpicker/o-list-picker.module.mjs +5 -5
  117. package/esm2020/lib/components/input/nif-input/o-nif-input.component.mjs +4 -4
  118. package/esm2020/lib/components/input/nif-input/o-nif-input.module.mjs +5 -5
  119. package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +4 -4
  120. package/esm2020/lib/components/input/o-form-service-component.class.mjs +20 -11
  121. package/esm2020/lib/components/input/password-input/o-password-input.component.mjs +4 -4
  122. package/esm2020/lib/components/input/password-input/o-password-input.module.mjs +5 -5
  123. package/esm2020/lib/components/input/percent-input/o-percent-input.component.mjs +4 -4
  124. package/esm2020/lib/components/input/percent-input/o-percent-input.module.mjs +5 -5
  125. package/esm2020/lib/components/input/phone-input/data/country-code.mjs +4 -4
  126. package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +4 -4
  127. package/esm2020/lib/components/input/phone-input/o-phone-input.module.mjs +5 -5
  128. package/esm2020/lib/components/input/radio/o-radio.component.mjs +4 -4
  129. package/esm2020/lib/components/input/radio/o-radio.module.mjs +5 -5
  130. package/esm2020/lib/components/input/real-input/o-real-input.component.mjs +4 -4
  131. package/esm2020/lib/components/input/real-input/o-real-input.module.mjs +5 -5
  132. package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +4 -4
  133. package/esm2020/lib/components/input/search-input/o-search-input.module.mjs +5 -5
  134. package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.component.mjs +4 -4
  135. package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.module.mjs +5 -5
  136. package/esm2020/lib/components/input/slider/o-slider.component.mjs +4 -4
  137. package/esm2020/lib/components/input/slider/o-slider.module.mjs +5 -5
  138. package/esm2020/lib/components/input/text-input/o-text-input.component.mjs +4 -4
  139. package/esm2020/lib/components/input/text-input/o-text-input.module.mjs +5 -5
  140. package/esm2020/lib/components/input/textarea-input/o-textarea-input.component.mjs +4 -4
  141. package/esm2020/lib/components/input/textarea-input/o-textarea-input.module.mjs +5 -5
  142. package/esm2020/lib/components/input/time-input/o-time-input.component.mjs +4 -4
  143. package/esm2020/lib/components/input/time-input/o-time-input.module.mjs +5 -5
  144. package/esm2020/lib/components/language-selector/o-language-selector.component.mjs +4 -4
  145. package/esm2020/lib/components/language-selector/o-language-selector.module.mjs +5 -5
  146. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +4 -4
  147. package/esm2020/lib/components/list/list-item/o-list-item.directive.mjs +4 -4
  148. package/esm2020/lib/components/list/o-list.component.mjs +5 -5
  149. package/esm2020/lib/components/list/o-list.module.mjs +5 -5
  150. package/esm2020/lib/components/list/renderers/avatar/o-list-item-avatar.component.mjs +4 -4
  151. package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +4 -4
  152. package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +4 -4
  153. package/esm2020/lib/components/list/renderers/o-list-item-card-renderer.class.mjs +4 -4
  154. package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +4 -4
  155. package/esm2020/lib/components/list/renderers/text/o-list-item-text.component.mjs +4 -4
  156. package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +4 -4
  157. package/esm2020/lib/components/material/ckeditor/ck-editor.component.mjs +4 -4
  158. package/esm2020/lib/components/material/ckeditor/ck-editor.module.mjs +5 -5
  159. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.component.mjs +4 -4
  160. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.module.mjs +5 -5
  161. package/esm2020/lib/components/o-form-data-component.class.mjs +4 -4
  162. package/esm2020/lib/components/o-service-base-component.class.mjs +35 -24
  163. package/esm2020/lib/components/o-service-component.class.mjs +8 -8
  164. package/esm2020/lib/components/o-skeleton.component.mjs +4 -4
  165. package/esm2020/lib/components/table/column/calculated/o-table-column-calculated.component.mjs +4 -4
  166. package/esm2020/lib/components/table/column/cell-editor/boolean/o-table-cell-editor-boolean.component.mjs +4 -4
  167. package/esm2020/lib/components/table/column/cell-editor/date/o-table-cell-editor-date.component.mjs +4 -4
  168. package/esm2020/lib/components/table/column/cell-editor/email/o-table-cell-editor-email.component.mjs +4 -4
  169. package/esm2020/lib/components/table/column/cell-editor/integer/o-table-cell-editor-integer.component.mjs +4 -4
  170. package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +4 -4
  171. package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +4 -4
  172. package/esm2020/lib/components/table/column/cell-editor/text/o-table-cell-editor-text.component.mjs +4 -4
  173. package/esm2020/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.mjs +4 -4
  174. package/esm2020/lib/components/table/column/cell-renderer/action/o-table-cell-renderer-action.component.mjs +4 -4
  175. package/esm2020/lib/components/table/column/cell-renderer/boolean/o-table-cell-renderer-boolean.component.mjs +4 -4
  176. package/esm2020/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.mjs +4 -4
  177. package/esm2020/lib/components/table/column/cell-renderer/date/o-table-cell-renderer-date.component.mjs +4 -4
  178. package/esm2020/lib/components/table/column/cell-renderer/image/o-table-cell-renderer-image.component.mjs +4 -4
  179. package/esm2020/lib/components/table/column/cell-renderer/integer/o-table-cell-renderer-integer.component.mjs +4 -4
  180. package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +4 -4
  181. package/esm2020/lib/components/table/column/cell-renderer/percentage/o-table-cell-renderer-percentage.component.mjs +4 -4
  182. package/esm2020/lib/components/table/column/cell-renderer/real/o-table-cell-renderer-real.component.mjs +4 -4
  183. package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +23 -9
  184. package/esm2020/lib/components/table/column/cell-renderer/time/o-table-cell-renderer-time.component.mjs +4 -4
  185. package/esm2020/lib/components/table/column/cell-renderer/translate/o-table-cell-renderer-translate.component.mjs +4 -4
  186. package/esm2020/lib/components/table/column/o-table-column.component.mjs +4 -4
  187. package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +4 -4
  188. package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +4 -4
  189. package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +4 -4
  190. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +4 -4
  191. package/esm2020/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.mjs +4 -4
  192. package/esm2020/lib/components/table/extensions/dialog/o-table-base-dialog.class.mjs +4 -4
  193. package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +4 -4
  194. package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +4 -4
  195. package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.component.mjs +4 -4
  196. package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.service.mjs +4 -4
  197. package/esm2020/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.mjs +4 -4
  198. package/esm2020/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.mjs +4 -4
  199. package/esm2020/lib/components/table/extensions/footer/paginator/o-table-mat-paginator-intl.mjs +4 -4
  200. package/esm2020/lib/components/table/extensions/footer/paginator/o-table-paginator.component.mjs +4 -4
  201. package/esm2020/lib/components/table/extensions/header/o-table-header-components.mjs +3 -2
  202. package/esm2020/lib/components/table/extensions/header/table-button/o-table-button.component.mjs +4 -4
  203. package/esm2020/lib/components/table/extensions/header/table-buttons/o-table-buttons.component.mjs +4 -4
  204. package/esm2020/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.mjs +4 -4
  205. package/esm2020/lib/components/table/extensions/header/table-column-select-all/o-table-column-select-all.directive.mjs +4 -4
  206. package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +4 -4
  207. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +4 -4
  208. package/esm2020/lib/components/table/extensions/header/table-columns-grouping/columns/o-table-columns-grouping-column.component.mjs +4 -4
  209. package/esm2020/lib/components/table/extensions/header/table-columns-grouping/o-table-columns-grouping.component.mjs +4 -4
  210. package/esm2020/lib/components/table/extensions/header/table-header/o-table-header.component.mjs +4 -4
  211. package/esm2020/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.mjs +4 -4
  212. package/esm2020/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.mjs +4 -4
  213. package/esm2020/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.mjs +4 -4
  214. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +4 -4
  215. package/esm2020/lib/components/table/extensions/header/table-option/o-table-option.component.mjs +4 -4
  216. package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +4 -4
  217. package/esm2020/lib/components/table/extensions/o-table-datasource.service.mjs +4 -4
  218. package/esm2020/lib/components/table/extensions/o-table-strategy.service.mjs +4 -4
  219. package/esm2020/lib/components/table/extensions/o-table.dao.mjs +2 -2
  220. package/esm2020/lib/components/table/extensions/pipes/o-table-row-class.pipe.mjs +4 -4
  221. package/esm2020/lib/components/table/extensions/row/o-table-row.directive.mjs +4 -4
  222. package/esm2020/lib/components/table/extensions/row/table-row-expandable/o-table-row-expandable.component.mjs +4 -4
  223. package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +4 -4
  224. package/esm2020/lib/components/table/extensions/sort/o-mat-sort-header.mjs +4 -4
  225. package/esm2020/lib/components/table/extensions/sort/o-mat-sort-module.mjs +5 -5
  226. package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +4 -4
  227. package/esm2020/lib/components/table/o-table.component.mjs +21 -16
  228. package/esm2020/lib/components/table/o-table.module.mjs +6 -6
  229. package/esm2020/lib/components/tree/header/tree-menu/o-tree-menu.component.mjs +4 -4
  230. package/esm2020/lib/components/tree/o-tree-dao.service.mjs +4 -4
  231. package/esm2020/lib/components/tree/o-tree.component.mjs +6 -6
  232. package/esm2020/lib/components/tree/o-tree.module.mjs +5 -5
  233. package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +4 -4
  234. package/esm2020/lib/components/user-info/o-user-info.component.mjs +4 -4
  235. package/esm2020/lib/components/user-info/o-user-info.module.mjs +5 -5
  236. package/esm2020/lib/components/user-info/user-info-configuration/o-user-info-configuration.directive.mjs +4 -4
  237. package/esm2020/lib/components/user-info/user-info-configuration-item/o-user-info-configuration-item.directive.mjs +4 -4
  238. package/esm2020/lib/config/app-config.mjs +4 -1
  239. package/esm2020/lib/config/o-modules.mjs +5 -5
  240. package/esm2020/lib/config/o-providers.mjs +9 -4
  241. package/esm2020/lib/directives/input-regulate.directive.mjs +4 -4
  242. package/esm2020/lib/directives/keyboard-listener.directive.mjs +4 -4
  243. package/esm2020/lib/directives/locker.directive.mjs +4 -4
  244. package/esm2020/lib/directives/o-file-drag-and-drop.directive.mjs +4 -4
  245. package/esm2020/lib/directives/o-hidden.directive.mjs +4 -4
  246. package/esm2020/lib/directives/o-mat-error.directive.mjs +4 -4
  247. package/esm2020/lib/directives/o-mat-prefix.directive.mjs +4 -4
  248. package/esm2020/lib/directives/o-mat-suffix.directive.mjs +4 -4
  249. package/esm2020/lib/directives/o-tab-group.directive.mjs +4 -4
  250. package/esm2020/lib/interfaces/base-response.interface.mjs +2 -0
  251. package/esm2020/lib/interfaces/data-service.interface.mjs +1 -1
  252. package/esm2020/lib/interfaces/form-data-component.interface.mjs +1 -1
  253. package/esm2020/lib/interfaces/index.mjs +4 -1
  254. package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -0
  255. package/esm2020/lib/interfaces/name-convention.interface.mjs +2 -0
  256. package/esm2020/lib/interfaces/prefereces-service.interface.mjs +2 -0
  257. package/esm2020/lib/interfaces/service-response-adapter.interface.mjs +1 -1
  258. package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
  259. package/esm2020/lib/layouts/app-layout/app-layout-header/o-app-layout-header.component.mjs +4 -4
  260. package/esm2020/lib/layouts/app-layout/app-layout-sidenav/o-app-layout-sidenav.component.mjs +4 -4
  261. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +4 -4
  262. package/esm2020/lib/layouts/app-layout/o-app-layout.module.mjs +5 -5
  263. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.component.mjs +4 -4
  264. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.module.mjs +5 -5
  265. package/esm2020/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.mjs +4 -4
  266. package/esm2020/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.mjs +4 -4
  267. package/esm2020/lib/layouts/form-layout/directives/o-form-layout-manager-content.directive.mjs +4 -4
  268. package/esm2020/lib/layouts/form-layout/guards/o-form-layout-can-activate-child.guard.mjs +4 -4
  269. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -4
  270. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.module.mjs +5 -5
  271. package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +4 -4
  272. package/esm2020/lib/layouts/form-layout/split-pane/options/o-form-layout-split-pane-options.directive.mjs +4 -4
  273. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +4 -4
  274. package/esm2020/lib/layouts/form-layout/tabgroup/options/o-form-layout-tabgroup-options.directive.mjs +4 -4
  275. package/esm2020/lib/ontimize-web-ngx.module.mjs +5 -5
  276. package/esm2020/lib/pipes/columns-filter.pipe.mjs +4 -4
  277. package/esm2020/lib/pipes/is-empty-value.pipe.mjs +4 -4
  278. package/esm2020/lib/pipes/o-currency.pipe.mjs +4 -4
  279. package/esm2020/lib/pipes/o-icon.pipe.mjs +4 -4
  280. package/esm2020/lib/pipes/o-integer.pipe.mjs +4 -4
  281. package/esm2020/lib/pipes/o-moment.pipe.mjs +4 -4
  282. package/esm2020/lib/pipes/o-percentage.pipe.mjs +4 -4
  283. package/esm2020/lib/pipes/o-real.pipe.mjs +4 -4
  284. package/esm2020/lib/pipes/o-safe.pipe.mjs +4 -4
  285. package/esm2020/lib/pipes/o-translate.pipe.mjs +8 -8
  286. package/esm2020/lib/pipes/order-by.pipe.mjs +4 -4
  287. package/esm2020/lib/services/app-menu.service.mjs +4 -4
  288. package/esm2020/lib/services/appearance.service.mjs +4 -4
  289. package/esm2020/lib/services/auth-guard.service.mjs +4 -4
  290. package/esm2020/lib/services/auth.service.mjs +4 -4
  291. package/esm2020/lib/services/base-data-service.class.mjs +19 -0
  292. package/esm2020/lib/services/base-service.class.mjs +36 -9
  293. package/esm2020/lib/services/currency.service.mjs +4 -4
  294. package/esm2020/lib/services/dialog.service.mjs +4 -4
  295. package/esm2020/lib/services/factories.mjs +73 -4
  296. package/esm2020/lib/services/icon.service.mjs +4 -4
  297. package/esm2020/lib/services/index.mjs +4 -1
  298. package/esm2020/lib/services/jsonapi/index.mjs +5 -0
  299. package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +45 -0
  300. package/esm2020/lib/services/jsonapi/jsonapi-service-response.adapter.mjs +31 -0
  301. package/esm2020/lib/services/jsonapi/jsonapi-service-response.class.mjs +45 -0
  302. package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +166 -0
  303. package/esm2020/lib/services/local-storage.service.mjs +4 -4
  304. package/esm2020/lib/services/login-storage.service.mjs +4 -4
  305. package/esm2020/lib/services/moment.service.mjs +4 -4
  306. package/esm2020/lib/services/name-convention/base-name-convention.service.mjs +59 -0
  307. package/esm2020/lib/services/name-convention/index.mjs +4 -0
  308. package/esm2020/lib/services/name-convention/name-convention-lower.service.mjs +11 -0
  309. package/esm2020/lib/services/name-convention/name-convention-upper.service.mjs +11 -0
  310. package/esm2020/lib/services/name-convention/name-convention.service.mjs +24 -0
  311. package/esm2020/lib/services/navigation.service.mjs +4 -4
  312. package/esm2020/lib/services/number.service.mjs +4 -4
  313. package/esm2020/lib/services/o-auth.service.mjs +4 -4
  314. package/esm2020/lib/services/o-breadcrumb.service.mjs +4 -4
  315. package/esm2020/lib/services/o-error-dialog-manager.service.mjs +4 -4
  316. package/esm2020/lib/services/o-form-layout-manager.service.mjs +4 -4
  317. package/esm2020/lib/services/o-modules-info.service.mjs +4 -4
  318. package/esm2020/lib/services/o-user-info.service.mjs +4 -4
  319. package/esm2020/lib/services/ontimize/index.mjs +4 -1
  320. package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +17 -0
  321. package/esm2020/lib/services/ontimize/o-preference-response.adapter.mjs +22 -0
  322. package/esm2020/lib/services/ontimize/ontimize-base-service.class.mjs +7 -12
  323. package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +33 -12
  324. package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +6 -6
  325. package/esm2020/lib/services/ontimize/ontimize-export.service.mjs +6 -6
  326. package/esm2020/lib/services/ontimize/ontimize-file.service.mjs +6 -6
  327. package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +58 -0
  328. package/esm2020/lib/services/ontimize/ontimize-service-response.adapter.mjs +7 -4
  329. package/esm2020/lib/services/ontimize/ontimize.service.mjs +32 -23
  330. package/esm2020/lib/services/ontimize-export-data-base-provider.service.mjs +4 -4
  331. package/esm2020/lib/services/ontimize-export-data-provider-3x.service.mjs +4 -4
  332. package/esm2020/lib/services/ontimize-export-data-provider.service.mjs +4 -4
  333. package/esm2020/lib/services/ontimize-icon-registry.service.mjs +4 -4
  334. package/esm2020/lib/services/pagination-context.service.mjs +4 -4
  335. package/esm2020/lib/services/parser/o-service-response.parser.mjs +21 -4
  336. package/esm2020/lib/services/permissions/o-permissions.module.mjs +5 -5
  337. package/esm2020/lib/services/permissions/ontimize-ee-permissions.service.mjs +4 -4
  338. package/esm2020/lib/services/permissions/ontimize-permissions.service.mjs +4 -4
  339. package/esm2020/lib/services/permissions/permissions-can-activate.guard.mjs +4 -4
  340. package/esm2020/lib/services/permissions/permissions.service.mjs +4 -4
  341. package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +9 -0
  342. package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +2 -0
  343. package/esm2020/lib/services/query-arguments/index.mjs +5 -0
  344. package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +63 -0
  345. package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +19 -0
  346. package/esm2020/lib/services/remote-config.service.mjs +5 -5
  347. package/esm2020/lib/services/share-can-activate-child.service.mjs +4 -4
  348. package/esm2020/lib/services/snackbar.service.mjs +4 -4
  349. package/esm2020/lib/services/state/o-app-menu-component-state.service.mjs +4 -4
  350. package/esm2020/lib/services/state/o-component-state.service.mjs +10 -10
  351. package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +4 -4
  352. package/esm2020/lib/services/state/o-form-layout-manager-component-state.service.mjs +4 -4
  353. package/esm2020/lib/services/state/o-grid-component-state.service.mjs +4 -4
  354. package/esm2020/lib/services/state/o-list-component-state.service.mjs +4 -4
  355. package/esm2020/lib/services/state/o-table-component-state.service.mjs +4 -4
  356. package/esm2020/lib/services/state/o-tree-component-state.service.mjs +4 -4
  357. package/esm2020/lib/services/translate/o-translate.parser.mjs +4 -4
  358. package/esm2020/lib/services/translate/o-translate.service.mjs +4 -4
  359. package/esm2020/lib/shared/components/dialog/o-dialog-internal.component.mjs +4 -4
  360. package/esm2020/lib/shared/components/dialog/o-dialog.component.mjs +4 -4
  361. package/esm2020/lib/shared/components/error403/o-error-403.component.mjs +4 -4
  362. package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +4 -4
  363. package/esm2020/lib/shared/components/filter/store-filter/o-store-filter-dialog.component.mjs +4 -4
  364. package/esm2020/lib/shared/components/snackbar/o-snackbar-base.class.mjs +4 -4
  365. package/esm2020/lib/shared/components/snackbar/o-snackbar.component.mjs +4 -4
  366. package/esm2020/lib/shared/components/validation/o-error.component.mjs +4 -4
  367. package/esm2020/lib/shared/components/validation/o-validator.component.mjs +4 -4
  368. package/esm2020/lib/shared/material/custom.material.module.mjs +5 -5
  369. package/esm2020/lib/shared/material/date/ontimize-moment-date-adapter.mjs +4 -4
  370. package/esm2020/lib/shared/shared.module.mjs +5 -5
  371. package/esm2020/lib/types/config.type.mjs +1 -1
  372. package/esm2020/lib/types/configure-service-args.type.mjs +1 -1
  373. package/esm2020/lib/types/index.mjs +5 -1
  374. package/esm2020/lib/types/json-query-parameter.type.mjs +2 -0
  375. package/esm2020/lib/types/preferences.type.mjs +2 -0
  376. package/esm2020/lib/types/query-params.type.mjs +2 -0
  377. package/esm2020/lib/types/service-configuration.type.mjs +2 -0
  378. package/esm2020/lib/types/service-request-param.type.mjs +1 -1
  379. package/esm2020/lib/types/service-type.type.mjs +8 -0
  380. package/esm2020/lib/util/codes.mjs +2 -1
  381. package/esm2020/lib/util/index.mjs +2 -1
  382. package/esm2020/lib/util/preference-mapping-util.mjs +80 -0
  383. package/esm2020/lib/util/sqltypes.mjs +5 -1
  384. package/esm2020/lib/util/util.mjs +103 -12
  385. package/fesm2015/ontimize-web-ngx.mjs +3565 -2638
  386. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  387. package/fesm2020/ontimize-web-ngx.mjs +3561 -2637
  388. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  389. package/lib/components/form/navigation/o-form-navigation.component.d.ts +3 -1
  390. package/lib/components/form/o-form.component.d.ts +12 -7
  391. package/lib/components/grid/o-grid.component.d.ts +2 -1
  392. package/lib/components/input/file-input/o-file-input.component.d.ts +3 -1
  393. package/lib/components/input/o-form-service-component.class.d.ts +11 -4
  394. package/lib/components/list/o-list.component.d.ts +2 -1
  395. package/lib/components/o-service-base-component.class.d.ts +8 -4
  396. package/lib/components/o-service-component.class.d.ts +1 -1
  397. package/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.d.ts +7 -2
  398. package/lib/components/table/column/o-table-column.component.d.ts +1 -1
  399. package/lib/components/table/extensions/o-table.dao.d.ts +4 -2
  400. package/lib/components/table/o-table.component.d.ts +4 -2
  401. package/lib/components/table/o-table.module.d.ts +1 -1
  402. package/lib/config/app-config.d.ts +1 -0
  403. package/lib/config/o-directives.d.ts +1 -1
  404. package/lib/interfaces/base-response.interface.d.ts +7 -0
  405. package/lib/interfaces/data-service.interface.d.ts +1 -0
  406. package/lib/interfaces/form-data-component.interface.d.ts +1 -0
  407. package/lib/interfaces/index.d.ts +3 -0
  408. package/lib/interfaces/jsonapi-response.interface.d.ts +9 -0
  409. package/lib/interfaces/name-convention.interface.d.ts +9 -0
  410. package/lib/interfaces/prefereces-service.interface.d.ts +7 -0
  411. package/lib/interfaces/service-response-adapter.interface.d.ts +4 -2
  412. package/lib/interfaces/service-response.interface.d.ts +2 -6
  413. package/lib/services/base-data-service.class.d.ts +17 -0
  414. package/lib/services/base-service.class.d.ts +27 -20
  415. package/lib/services/factories.d.ts +30 -0
  416. package/lib/services/index.d.ts +3 -0
  417. package/lib/services/jsonapi/index.d.ts +4 -0
  418. package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +13 -0
  419. package/lib/services/jsonapi/jsonapi-service-response.adapter.d.ts +12 -0
  420. package/lib/services/jsonapi/jsonapi-service-response.class.d.ts +23 -0
  421. package/lib/services/jsonapi/jsonapi.service.d.ts +31 -0
  422. package/lib/services/name-convention/base-name-convention.service.d.ts +12 -0
  423. package/lib/services/name-convention/index.d.ts +3 -0
  424. package/lib/services/name-convention/name-convention-lower.service.d.ts +5 -0
  425. package/lib/services/name-convention/name-convention-upper.service.d.ts +5 -0
  426. package/lib/services/name-convention/name-convention.service.d.ts +10 -0
  427. package/lib/services/ontimize/index.d.ts +3 -0
  428. package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +7 -0
  429. package/lib/services/ontimize/o-preference-response.adapter.d.ts +9 -0
  430. package/lib/services/ontimize/ontimize-base-service.class.d.ts +3 -3
  431. package/lib/services/ontimize/ontimize-ee.service.d.ts +1 -0
  432. package/lib/services/ontimize/ontimize-export-3xx.service.d.ts +3 -2
  433. package/lib/services/ontimize/ontimize-export.service.d.ts +2 -2
  434. package/lib/services/ontimize/ontimize-file.service.d.ts +3 -2
  435. package/lib/services/ontimize/ontimize-preferences.service.d.ts +16 -0
  436. package/lib/services/ontimize/ontimize-service-response.adapter.d.ts +6 -5
  437. package/lib/services/ontimize/ontimize.service.d.ts +2 -0
  438. package/lib/services/parser/o-service-response.parser.d.ts +11 -5
  439. package/lib/services/query-arguments/base-query-argument.adapter.d.ts +6 -0
  440. package/lib/services/query-arguments/base-query-argument.interface.d.ts +3 -0
  441. package/lib/services/query-arguments/index.d.ts +4 -0
  442. package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +12 -0
  443. package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +8 -0
  444. package/lib/types/config.type.d.ts +3 -1
  445. package/lib/types/configure-service-args.type.d.ts +5 -5
  446. package/lib/types/index.d.ts +4 -0
  447. package/lib/types/json-query-parameter.type.d.ts +15 -0
  448. package/lib/types/preferences.type.d.ts +7 -0
  449. package/lib/types/query-params.type.d.ts +11 -0
  450. package/lib/types/service-configuration.type.d.ts +7 -0
  451. package/lib/types/service-request-param.type.d.ts +5 -5
  452. package/lib/types/service-type.type.d.ts +5 -0
  453. package/lib/util/codes.d.ts +6 -5
  454. package/lib/util/index.d.ts +1 -0
  455. package/lib/util/preference-mapping-util.d.ts +74 -0
  456. package/lib/util/util.d.ts +10 -2
  457. package/package.json +1 -1
  458. package/theme.scss +69 -69
@@ -190,8 +190,8 @@ export class OFilterBuilderComponent {
190
190
  return route;
191
191
  }
192
192
  }
193
- OFilterBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFilterBuilderComponent, deps: [{ token: i0.Injector }, { token: forwardRef(() => OFormComponent) }], target: i0.ɵɵFactoryTarget.Component });
194
- OFilterBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OFilterBuilderComponent, selector: "o-filter-builder", inputs: { filters: "filters", targetCmp: ["target", "targetCmp"], expressionBuilder: ["expression-builder", "expressionBuilder"], queryOnChange: ["query-on-change", "queryOnChange"], queryOnChangeDelay: ["query-on-change-delay", "queryOnChangeDelay"], queryOnChangeEventType: ["query-on-change-event-type", "queryOnChangeEventType"], oattr: ["attr", "oattr"] }, outputs: { onFilter: "onFilter", onClear: "onClear" }, providers: [
193
+ OFilterBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderComponent, deps: [{ token: i0.Injector }, { token: forwardRef(() => OFormComponent) }], target: i0.ɵɵFactoryTarget.Component });
194
+ OFilterBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OFilterBuilderComponent, selector: "o-filter-builder", inputs: { filters: "filters", targetCmp: ["target", "targetCmp"], expressionBuilder: ["expression-builder", "expressionBuilder"], queryOnChange: ["query-on-change", "queryOnChange"], queryOnChangeDelay: ["query-on-change-delay", "queryOnChangeDelay"], queryOnChangeEventType: ["query-on-change-event-type", "queryOnChangeEventType"], oattr: ["attr", "oattr"] }, outputs: { onFilter: "onFilter", onClear: "onClear" }, providers: [
195
195
  { provide: OFilterBuilderBase, useExisting: forwardRef(() => OFilterBuilderComponent) }
196
196
  ], ngImport: i0, template: "" });
197
197
  __decorate([
@@ -202,7 +202,7 @@ __decorate([
202
202
  NumberInputConverter(),
203
203
  __metadata("design:type", Number)
204
204
  ], OFilterBuilderComponent.prototype, "queryOnChangeDelay", void 0);
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFilterBuilderComponent, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderComponent, decorators: [{
206
206
  type: Component,
207
207
  args: [{ selector: 'o-filter-builder', inputs: DEFAULT_INPUTS_O_FILTER_BUILDER, outputs: DEFAULT_OUTPUTS_O_FILTER_BUILDER, providers: [
208
208
  { provide: OFilterBuilderBase, useExisting: forwardRef(() => OFilterBuilderComponent) }
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
211
211
  type: Inject,
212
212
  args: [forwardRef(() => OFormComponent)]
213
213
  }] }]; }, propDecorators: { queryOnChange: [], queryOnChangeDelay: [] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1idWlsZGVyL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFLcEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStC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V0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztxSEFyUFUsdUJBQXVCLDBDQXdCeEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt5R0F4Qi9CLHVCQUF1Qiw0Y0FUdkI7UUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7S0FDeEYsMEJDNURILEVBQUE7QUQyRUU7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ2M7QUFDdEM7SUFBQyxvQkFBb0IsRUFBRTs7bUVBQ2U7NEZBWDNCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxrQkFBa0IsVUFFcEIsK0JBQStCLFdBQzlCLGdDQUFnQyxhQUM5Qjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUN4Rjs7MEJBK0JFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzs0Q0FmbkMsYUFBYSxNQUViLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci1idWlsZGVyLWNvbXBvbmVudC10YXJnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JtRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLWRhdGEtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJhc2ljRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2Jhc2ljLWV4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXhwcmVzc2lvbi50eXBlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyVmFsdWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1maWx0ZXItYnVpbGRlci12YWx1ZXMudHlwZSc7XG5pbXBvcnQgeyBDSEFOR0VfRVZFTlRTLCBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQmFzZSB9IGZyb20gJy4vby1maWx0ZXItYnVpbGRlci1iYXNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIGZpbHRlcnM6IFtzdHJpbmddIExpc3Qgb2YgcGFpcnMgb2YgZm9ybSBjb21wb25lbnQgYXR0cmlidXRlcyBhbmQgdGFyZ2V0IGNvbXBvbmVudCBjb2x1bXMgKHRhcmdldENvbHVtbjE6Y29tcG9uZW50QXR0cjE7dGFyZ2V0Q29sdW1uMjpjb21wb25lbnRBdHRyMjsuLi4pLiBTZXBhcmF0ZWQgYnkgJzsnLlxuICAnZmlsdGVycycsXG5cbiAgLy8gdGFyZ2V0IFtgT1NlcnZpY2VDb21wb25lbnRgIGluc3RhbmNlXTogQ29tcG9uZW50IHdob3NlIGRhdGEgd2lsbCBiZSBmaWx0ZXJlZC5cbiAgJ3RhcmdldENtcDogdGFyZ2V0JyxcblxuICAvLyBleHByZXNzaW9uLWJ1aWxkZXIgW2Z1bnRpb25dOiBGdW50aW9uIGNhbGxlZCBmb3IgY3JlYXRpbmcgdGhlIGV4cHJlc3Npb24uXG4gICdleHByZXNzaW9uQnVpbGRlcjogZXhwcmVzc2lvbi1idWlsZGVyJyxcblxuICAvLyBxdWVyeS1vbi1jaGFuZ2UgW3llc3xub3x0cnVlfGZhbHNlXTogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIHRyaWdnZXIgdGhlIHRhcmdldCBjb21wb25lbnQgcmVmcmVzaCB3aGVuIGEgZmlsdGVyIGNvbXBvbmVudCBgb25DaGFuZ2VgIGV2ZW50IGlzIGZpcmVkLiBEZWZhdWx0OiBuby5cbiAgJ3F1ZXJ5T25DaGFuZ2U6IHF1ZXJ5LW9uLWNoYW5nZScsXG5cbiAgLy8gcXVlcnktb24tY2hhbmdlLWRlbGF5IFtudW1iZXJdOiBEZWxheSB0aW1lIGluIG1pbGxpc2Vjb25kcyBgcXVlcnktb24tY2hhbmdlYCBtZXRob2QgaXMgdHJpZ2dlcmVkLiBEZWZhdWx0OiAwLlxuICAncXVlcnlPbkNoYW5nZURlbGF5OiBxdWVyeS1vbi1jaGFuZ2UtZGVsYXknLFxuXG4gIC8vcXVlcnktb24tY2hhbmdlLWV2ZW50OiBbY2hhbmdlfCBvblZhbHVlQ2hhbmdlXSBUeXBlIG9mIGV2ZW50IHRoYXQgZW1pdCB3aGVuIHF1ZXJ5LW9uLWNoYW5nZT1geWVzYFxuICAncXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogcXVlcnktb24tY2hhbmdlLWV2ZW50LXR5cGUnLFxuXG4gIC8vIGF0dHIgW3N0cmluZ106IGZpbHRlciBidWlsZGVyIGlkZW50aWZpZXIuIEl0IGlzIG1hbmRhdG9yeSBpZiBkYXRhIGFyZSBwcm92aWRlZCB0aHJvdWdoIHRoZSBkYXRhIGF0dHJpYnV0ZS4gRGVmYXVsdDogdGFyZ2V0IChpZiBzZXQpLlxuICAnb2F0dHI6IGF0dHInLFxuXVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBmaWx0ZXIgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAnb25GaWx0ZXInLFxuXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBjbGVhciBhY3Rpb24gaXMgZXhjdXRlZC5cbiAgJ29uQ2xlYXInXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWZpbHRlci1idWlsZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0ZJTFRFUl9CVUlMREVSLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9GaWx0ZXJCdWlsZGVyQmFzZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQpIH1cbiAgXVxufSlcblxuLyoqXG4gKiBUaGUgT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQuXG4gKi9cblxuZXhwb3J0IGNsYXNzIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIHB1YmxpYyBvbkZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGZpbHRlcnM6IHN0cmluZztcbiAgcHVibGljIHRhcmdldENtcDogSVNlcnZpY2VEYXRhQ29tcG9uZW50O1xuICBwdWJsaWMgZXhwcmVzc2lvbkJ1aWxkZXI6ICh2YWx1ZXM6IEFycmF5PHsgYXR0ciwgdmFsdWUgfT4pID0+IEV4cHJlc3Npb247XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZURlbGF5OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogQ0hBTkdFX0VWRU5UUyA9IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJDb21wb25lbnRzOiBBcnJheTxJRmlsdGVyQnVpbGRlckNtcFRhcmdldD4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwdWJsaWMgb2F0dHI6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbXBvbmVudFN0YXRlU2VydmljZTogT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXI7XG4gIHByb3RlY3RlZCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgcHVibGljIGZvcm06IE9Gb3JtQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U+KE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLnJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyKTtcbiAgICB0aGlzLmFjdFJvdXRlID0gdGhpcy5pbmplY3Rvci5nZXQ8QWN0aXZhdGVkUm91dGU+KEFjdGl2YXRlZFJvdXRlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5pbml0aWFsaXplKHRoaXMpO1xuICAgIC8vIFBhcnNlIGZpbHRlcnNcbiAgICBpZiAodGhpcy5maWx0ZXJzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJBcnJheTogQXJyYXk8c3RyaW5nPiA9IFV0aWwucGFyc2VBcnJheSh0aGlzLmZpbHRlcnMpO1xuICAgICAgZmlsdGVyQXJyYXkuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJFbG1zID0gZmlsdGVyLnNwbGl0KENvZGVzLkNPTFVNTlNfQUxJQVNfU0VQQVJBVE9SKTtcbiAgICAgICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLnB1c2goe1xuICAgICAgICAgIHRhcmdldEF0dHI6IGZpbHRlckVsbXNbMF0sXG4gICAgICAgICAgZm9ybUNvbXBvbmVudEF0dHI6IGZpbHRlckVsbXNbMV0gPyBmaWx0ZXJFbG1zWzFdIDogZmlsdGVyRWxtc1swXVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnRhcmdldENtcCkpIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnNldEZpbHRlckJ1aWxkZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVyeU9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl07XG4gICAgICAgIGlmIChmb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5xdWVyeU9uQ2hhbmdlRGVsYXkpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlclJlbG9hZCgpKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T25DaGFuZ2VFdmVudFR5cGUgPT09IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UID9cbiAgICAgIGZvcm1Db21wb25lbnQub25WYWx1ZUNoYW5nZSA6XG4gICAgICBmb3JtQ29tcG9uZW50LmdldEZvcm1Db250cm9sKCkudmFsdWVDaGFuZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEV4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqIEByZXR1cm5zIHRoZSBgRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICovXG4gIGdldEV4cHJlc3Npb24oKTogRXhwcmVzc2lvbiB7XG4gICAgLy8gUHJlcGFyZSBmb3JtIGZpbHRlciB2YWx1ZXMgWy4uLiB7IGF0dHIsIHZhbHVlIH1dXG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIGNvbnN0IHBhcmFtczogQXJyYXk8eyBhdHRyLCB2YWx1ZSB9PiA9IFtdO1xuICAgIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5mb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSBmb3JtQ29tcG9uZW50c1tmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdO1xuICAgICAgaWYgKGZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtQ29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgIHBhcmFtcy5wdXNoKHtcbiAgICAgICAgICBhdHRyOiBmaWx0ZXJDb21wb25lbnQudGFyZ2V0QXR0cixcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgdXNlclxuICAgIGlmICh0aGlzLmV4cHJlc3Npb25CdWlsZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uQnVpbGRlcihwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGRlc2ZhdWx0IGV4cHJlc3Npb25cbiAgICBjb25zdCBleHByZXNzaW9uczogQXJyYXk8RXhwcmVzc2lvbj4gPSBbXTtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChlbGVtLnZhbHVlKSkge1xuICAgICAgICBleHByZXNzaW9ucy5wdXNoKEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25FcXVhbHMoZWxlbS5hdHRyLCBlbGVtLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbnMubGVuZ3RoID8gZXhwcmVzc2lvbnMucmVkdWNlKChmZTEsIGZlMikgPT4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQ29tcGxleEV4cHJlc3Npb24oZmUxLCBmZTIsIEZpbHRlckV4cHJlc3Npb25VdGlscy5PUF9PUikpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEJhc2ljRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICogQHJldHVybnMgdGhlIGBCYXNpY0V4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBnZXRCYXNpY0V4cHJlc3Npb24oKTogQmFzaWNFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQmFzaWNFeHByZXNzaW9uKHRoaXMuZ2V0RXhwcmVzc2lvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaWx0ZXIgYnVpbGRlciB0YXJnZXQgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cbiAgICovXG4gIGdldFRhcmdldENvbXBvbmVudCgpOiBJU2VydmljZURhdGFDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnRhcmdldENtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHRoZSBgcmVsb2FkRGF0YWAgbWV0aG9kIGZyb20gdGhlIHRhcmdldCBjb21wb25lbnQuXG4gICAqL1xuICB0cmlnZ2VyUmVsb2FkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50YXJnZXRDbXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFyZ2V0Q21wLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5yZWxvYWRQYWdpbmF0ZWREYXRhRnJvbVN0YXJ0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnJlbG9hZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5vbkZpbHRlci5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGZvcm0gY29tcG9uZW50cyB1c2VkIGZvciB0aGUgZmlsdGVyLlxuICAgKi9cbiAgY2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIHRoaXMuZ2V0RmlsdGVyQXR0cnMoKS5mb3JFYWNoKChhdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGZvcm1Db21wb25lbnRzW2F0dHJdLmNsZWFyVmFsdWUoKTtcbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xlYXIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcmV0dXJucyBmaWx0ZXIgdmFsdWVzXG4gICAqL1xuICBnZXRGaWx0ZXJWYWx1ZXMoKTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdID0gW107XG5cbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuXG4gICAgICBmb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0pKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goeyBhdHRyOiBmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHIsIHZhbHVlOiB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0uZ2V0VmFsdWUoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcGFyYW0gZmlsdGVyQnVpbGRlclZhbHVlc1xuICAgKi9cbiAgc2V0RmlsdGVyVmFsdWVzKGZpbHRlckJ1aWxkZXJWYWx1ZXM6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10pIHtcbiAgICBmaWx0ZXJCdWlsZGVyVmFsdWVzLmZvckVhY2goKGZpbHRlckJ1aWxkZXJWYWx1ZTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXSkge1xuICAgICAgICB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXS5zZXRWYWx1ZShmaWx0ZXJCdWlsZGVyVmFsdWUudmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBmaWx0ZXIgd2l0aCBhdHRyICcgKyBmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0ciArICcgY2Fubm90IGJlIHNldCAnICsgZmlsdGVyQnVpbGRlclZhbHVlLnZhbHVlICsgJyBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0IC4nKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZmlsdGVyYWJsZSBjb21wb25lbnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RmlsdGVyQXR0cnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5tYXAoKGVsZW06IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiBlbGVtLmZvcm1Db21wb25lbnRBdHRyKTtcbiAgfVxuICAvKipcbiAgICogR2V0cyBzdGF0ZVxuICAgKi9cbiAgZ2V0IHN0YXRlKCk6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cblxuICBnZXREYXRhVG9TdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBnZXRDb21wb25lbnRLZXkoKTogc3RyaW5nIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMub2F0dHIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIG8tZmlsdGVyLWJ1aWxkZXIgY29tcG9uZW50IG11c3QgaGF2ZSBhbiBcXCdhdHRyXFwnLiBPdGhlcndpc2UsIHlvdXIgZmlsdGVyIGJ1aWxkZXIgc3RhdGUgd2lsbCBub3Qgc2V0IGluIGxvY2Fsc3RvcmFnZS4nKTtcbiAgICAgIHJldHVybiAnT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRfJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ09GaWx0ZXJCdWlsZGVyQ29tcG9uZW50XycgKyB0aGlzLm9hdHRyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBmaWx0ZXIgaW4gc3RhdGVcbiAgICogQHBhcmFtIGFyZ1xuICAgKi9cbiAgc3RvcmVGaWx0ZXJJblN0YXRlKGFyZzogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5zdG9yZUZpbHRlcihhcmcpO1xuICAgIHRoaXMudXBkYXRlU3RhdGVTdG9yYWdlKCk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGRhdGUgc3RvcmUgbG9jYWxzdG9yYWdlLCBjYWxsIG9mIHRoZSBJTG9jYWxTdG9yYWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlU3RhdGVTdG9yYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS51cGRhdGVDb21wb25lbnRTdG9yYWdlKHRoaXMsIHRoaXMuZ2V0Um91dGVLZXkoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFJvdXRlS2V5KCk6IHN0cmluZyB7XG4gICAgbGV0IHJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgIHRoaXMuYWN0Um91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIHJvdXRlID0gcm91dGUucmVwbGFjZShwYXJhbXNba2V5XSwga2V5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiByb3V0ZTtcbiAgfVxufVxuIiwiIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1idWlsZGVyL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFLcEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStC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V0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztvSEFyUFUsdUJBQXVCLDBDQXdCeEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3R0F4Qi9CLHVCQUF1Qiw0Y0FUdkI7UUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7S0FDeEYsMEJDNURILEVBQUE7QUQyRUU7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ2M7QUFDdEM7SUFBQyxvQkFBb0IsRUFBRTs7bUVBQ2U7MkZBWDNCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxrQkFBa0IsVUFFcEIsK0JBQStCLFdBQzlCLGdDQUFnQyxhQUM5Qjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUN4Rjs7MEJBK0JFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzs0Q0FmbkMsYUFBYSxNQUViLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci1idWlsZGVyLWNvbXBvbmVudC10YXJnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JtRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLWRhdGEtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJhc2ljRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2Jhc2ljLWV4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXhwcmVzc2lvbi50eXBlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyVmFsdWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1maWx0ZXItYnVpbGRlci12YWx1ZXMudHlwZSc7XG5pbXBvcnQgeyBDSEFOR0VfRVZFTlRTLCBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQmFzZSB9IGZyb20gJy4vby1maWx0ZXItYnVpbGRlci1iYXNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIGZpbHRlcnM6IFtzdHJpbmddIExpc3Qgb2YgcGFpcnMgb2YgZm9ybSBjb21wb25lbnQgYXR0cmlidXRlcyBhbmQgdGFyZ2V0IGNvbXBvbmVudCBjb2x1bXMgKHRhcmdldENvbHVtbjE6Y29tcG9uZW50QXR0cjE7dGFyZ2V0Q29sdW1uMjpjb21wb25lbnRBdHRyMjsuLi4pLiBTZXBhcmF0ZWQgYnkgJzsnLlxuICAnZmlsdGVycycsXG5cbiAgLy8gdGFyZ2V0IFtgT1NlcnZpY2VDb21wb25lbnRgIGluc3RhbmNlXTogQ29tcG9uZW50IHdob3NlIGRhdGEgd2lsbCBiZSBmaWx0ZXJlZC5cbiAgJ3RhcmdldENtcDogdGFyZ2V0JyxcblxuICAvLyBleHByZXNzaW9uLWJ1aWxkZXIgW2Z1bnRpb25dOiBGdW50aW9uIGNhbGxlZCBmb3IgY3JlYXRpbmcgdGhlIGV4cHJlc3Npb24uXG4gICdleHByZXNzaW9uQnVpbGRlcjogZXhwcmVzc2lvbi1idWlsZGVyJyxcblxuICAvLyBxdWVyeS1vbi1jaGFuZ2UgW3llc3xub3x0cnVlfGZhbHNlXTogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIHRyaWdnZXIgdGhlIHRhcmdldCBjb21wb25lbnQgcmVmcmVzaCB3aGVuIGEgZmlsdGVyIGNvbXBvbmVudCBgb25DaGFuZ2VgIGV2ZW50IGlzIGZpcmVkLiBEZWZhdWx0OiBuby5cbiAgJ3F1ZXJ5T25DaGFuZ2U6IHF1ZXJ5LW9uLWNoYW5nZScsXG5cbiAgLy8gcXVlcnktb24tY2hhbmdlLWRlbGF5IFtudW1iZXJdOiBEZWxheSB0aW1lIGluIG1pbGxpc2Vjb25kcyBgcXVlcnktb24tY2hhbmdlYCBtZXRob2QgaXMgdHJpZ2dlcmVkLiBEZWZhdWx0OiAwLlxuICAncXVlcnlPbkNoYW5nZURlbGF5OiBxdWVyeS1vbi1jaGFuZ2UtZGVsYXknLFxuXG4gIC8vcXVlcnktb24tY2hhbmdlLWV2ZW50OiBbY2hhbmdlfCBvblZhbHVlQ2hhbmdlXSBUeXBlIG9mIGV2ZW50IHRoYXQgZW1pdCB3aGVuIHF1ZXJ5LW9uLWNoYW5nZT1geWVzYFxuICAncXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogcXVlcnktb24tY2hhbmdlLWV2ZW50LXR5cGUnLFxuXG4gIC8vIGF0dHIgW3N0cmluZ106IGZpbHRlciBidWlsZGVyIGlkZW50aWZpZXIuIEl0IGlzIG1hbmRhdG9yeSBpZiBkYXRhIGFyZSBwcm92aWRlZCB0aHJvdWdoIHRoZSBkYXRhIGF0dHJpYnV0ZS4gRGVmYXVsdDogdGFyZ2V0IChpZiBzZXQpLlxuICAnb2F0dHI6IGF0dHInLFxuXVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBmaWx0ZXIgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAnb25GaWx0ZXInLFxuXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBjbGVhciBhY3Rpb24gaXMgZXhjdXRlZC5cbiAgJ29uQ2xlYXInXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWZpbHRlci1idWlsZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0ZJTFRFUl9CVUlMREVSLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9GaWx0ZXJCdWlsZGVyQmFzZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQpIH1cbiAgXVxufSlcblxuLyoqXG4gKiBUaGUgT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQuXG4gKi9cblxuZXhwb3J0IGNsYXNzIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIHB1YmxpYyBvbkZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGZpbHRlcnM6IHN0cmluZztcbiAgcHVibGljIHRhcmdldENtcDogSVNlcnZpY2VEYXRhQ29tcG9uZW50O1xuICBwdWJsaWMgZXhwcmVzc2lvbkJ1aWxkZXI6ICh2YWx1ZXM6IEFycmF5PHsgYXR0ciwgdmFsdWUgfT4pID0+IEV4cHJlc3Npb247XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZURlbGF5OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogQ0hBTkdFX0VWRU5UUyA9IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJDb21wb25lbnRzOiBBcnJheTxJRmlsdGVyQnVpbGRlckNtcFRhcmdldD4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwdWJsaWMgb2F0dHI6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbXBvbmVudFN0YXRlU2VydmljZTogT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXI7XG4gIHByb3RlY3RlZCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgcHVibGljIGZvcm06IE9Gb3JtQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U+KE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLnJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyKTtcbiAgICB0aGlzLmFjdFJvdXRlID0gdGhpcy5pbmplY3Rvci5nZXQ8QWN0aXZhdGVkUm91dGU+KEFjdGl2YXRlZFJvdXRlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5pbml0aWFsaXplKHRoaXMpO1xuICAgIC8vIFBhcnNlIGZpbHRlcnNcbiAgICBpZiAodGhpcy5maWx0ZXJzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJBcnJheTogQXJyYXk8c3RyaW5nPiA9IFV0aWwucGFyc2VBcnJheSh0aGlzLmZpbHRlcnMpO1xuICAgICAgZmlsdGVyQXJyYXkuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJFbG1zID0gZmlsdGVyLnNwbGl0KENvZGVzLkNPTFVNTlNfQUxJQVNfU0VQQVJBVE9SKTtcbiAgICAgICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLnB1c2goe1xuICAgICAgICAgIHRhcmdldEF0dHI6IGZpbHRlckVsbXNbMF0sXG4gICAgICAgICAgZm9ybUNvbXBvbmVudEF0dHI6IGZpbHRlckVsbXNbMV0gPyBmaWx0ZXJFbG1zWzFdIDogZmlsdGVyRWxtc1swXVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnRhcmdldENtcCkpIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnNldEZpbHRlckJ1aWxkZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVyeU9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl07XG4gICAgICAgIGlmIChmb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5xdWVyeU9uQ2hhbmdlRGVsYXkpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlclJlbG9hZCgpKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T25DaGFuZ2VFdmVudFR5cGUgPT09IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UID9cbiAgICAgIGZvcm1Db21wb25lbnQub25WYWx1ZUNoYW5nZSA6XG4gICAgICBmb3JtQ29tcG9uZW50LmdldEZvcm1Db250cm9sKCkudmFsdWVDaGFuZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEV4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqIEByZXR1cm5zIHRoZSBgRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICovXG4gIGdldEV4cHJlc3Npb24oKTogRXhwcmVzc2lvbiB7XG4gICAgLy8gUHJlcGFyZSBmb3JtIGZpbHRlciB2YWx1ZXMgWy4uLiB7IGF0dHIsIHZhbHVlIH1dXG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIGNvbnN0IHBhcmFtczogQXJyYXk8eyBhdHRyLCB2YWx1ZSB9PiA9IFtdO1xuICAgIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5mb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSBmb3JtQ29tcG9uZW50c1tmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdO1xuICAgICAgaWYgKGZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtQ29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgIHBhcmFtcy5wdXNoKHtcbiAgICAgICAgICBhdHRyOiBmaWx0ZXJDb21wb25lbnQudGFyZ2V0QXR0cixcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgdXNlclxuICAgIGlmICh0aGlzLmV4cHJlc3Npb25CdWlsZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uQnVpbGRlcihwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGRlc2ZhdWx0IGV4cHJlc3Npb25cbiAgICBjb25zdCBleHByZXNzaW9uczogQXJyYXk8RXhwcmVzc2lvbj4gPSBbXTtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChlbGVtLnZhbHVlKSkge1xuICAgICAgICBleHByZXNzaW9ucy5wdXNoKEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25FcXVhbHMoZWxlbS5hdHRyLCBlbGVtLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbnMubGVuZ3RoID8gZXhwcmVzc2lvbnMucmVkdWNlKChmZTEsIGZlMikgPT4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQ29tcGxleEV4cHJlc3Npb24oZmUxLCBmZTIsIEZpbHRlckV4cHJlc3Npb25VdGlscy5PUF9PUikpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEJhc2ljRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICogQHJldHVybnMgdGhlIGBCYXNpY0V4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBnZXRCYXNpY0V4cHJlc3Npb24oKTogQmFzaWNFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQmFzaWNFeHByZXNzaW9uKHRoaXMuZ2V0RXhwcmVzc2lvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaWx0ZXIgYnVpbGRlciB0YXJnZXQgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cbiAgICovXG4gIGdldFRhcmdldENvbXBvbmVudCgpOiBJU2VydmljZURhdGFDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnRhcmdldENtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHRoZSBgcmVsb2FkRGF0YWAgbWV0aG9kIGZyb20gdGhlIHRhcmdldCBjb21wb25lbnQuXG4gICAqL1xuICB0cmlnZ2VyUmVsb2FkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50YXJnZXRDbXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFyZ2V0Q21wLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5yZWxvYWRQYWdpbmF0ZWREYXRhRnJvbVN0YXJ0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnJlbG9hZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5vbkZpbHRlci5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGZvcm0gY29tcG9uZW50cyB1c2VkIGZvciB0aGUgZmlsdGVyLlxuICAgKi9cbiAgY2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIHRoaXMuZ2V0RmlsdGVyQXR0cnMoKS5mb3JFYWNoKChhdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGZvcm1Db21wb25lbnRzW2F0dHJdLmNsZWFyVmFsdWUoKTtcbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xlYXIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcmV0dXJucyBmaWx0ZXIgdmFsdWVzXG4gICAqL1xuICBnZXRGaWx0ZXJWYWx1ZXMoKTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdID0gW107XG5cbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuXG4gICAgICBmb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0pKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goeyBhdHRyOiBmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHIsIHZhbHVlOiB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0uZ2V0VmFsdWUoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcGFyYW0gZmlsdGVyQnVpbGRlclZhbHVlc1xuICAgKi9cbiAgc2V0RmlsdGVyVmFsdWVzKGZpbHRlckJ1aWxkZXJWYWx1ZXM6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10pIHtcbiAgICBmaWx0ZXJCdWlsZGVyVmFsdWVzLmZvckVhY2goKGZpbHRlckJ1aWxkZXJWYWx1ZTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXSkge1xuICAgICAgICB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXS5zZXRWYWx1ZShmaWx0ZXJCdWlsZGVyVmFsdWUudmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBmaWx0ZXIgd2l0aCBhdHRyICcgKyBmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0ciArICcgY2Fubm90IGJlIHNldCAnICsgZmlsdGVyQnVpbGRlclZhbHVlLnZhbHVlICsgJyBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0IC4nKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZmlsdGVyYWJsZSBjb21wb25lbnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RmlsdGVyQXR0cnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5tYXAoKGVsZW06IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiBlbGVtLmZvcm1Db21wb25lbnRBdHRyKTtcbiAgfVxuICAvKipcbiAgICogR2V0cyBzdGF0ZVxuICAgKi9cbiAgZ2V0IHN0YXRlKCk6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cblxuICBnZXREYXRhVG9TdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBnZXRDb21wb25lbnRLZXkoKTogc3RyaW5nIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMub2F0dHIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIG8tZmlsdGVyLWJ1aWxkZXIgY29tcG9uZW50IG11c3QgaGF2ZSBhbiBcXCdhdHRyXFwnLiBPdGhlcndpc2UsIHlvdXIgZmlsdGVyIGJ1aWxkZXIgc3RhdGUgd2lsbCBub3Qgc2V0IGluIGxvY2Fsc3RvcmFnZS4nKTtcbiAgICAgIHJldHVybiAnT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRfJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ09GaWx0ZXJCdWlsZGVyQ29tcG9uZW50XycgKyB0aGlzLm9hdHRyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBmaWx0ZXIgaW4gc3RhdGVcbiAgICogQHBhcmFtIGFyZ1xuICAgKi9cbiAgc3RvcmVGaWx0ZXJJblN0YXRlKGFyZzogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5zdG9yZUZpbHRlcihhcmcpO1xuICAgIHRoaXMudXBkYXRlU3RhdGVTdG9yYWdlKCk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGRhdGUgc3RvcmUgbG9jYWxzdG9yYWdlLCBjYWxsIG9mIHRoZSBJTG9jYWxTdG9yYWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlU3RhdGVTdG9yYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS51cGRhdGVDb21wb25lbnRTdG9yYWdlKHRoaXMsIHRoaXMuZ2V0Um91dGVLZXkoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFJvdXRlS2V5KCk6IHN0cmluZyB7XG4gICAgbGV0IHJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgIHRoaXMuYWN0Um91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIHJvdXRlID0gcm91dGUucmVwbGFjZShwYXJhbXNba2V5XSwga2V5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiByb3V0ZTtcbiAgfVxufVxuIiwiIl19
@@ -9,8 +9,8 @@ import { OFilterBuilderMenuComponent } from './filter-builder-menu/filter-builde
9
9
  import * as i0 from "@angular/core";
10
10
  export class OFilterBuilderModule {
11
11
  }
12
- OFilterBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFilterBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- OFilterBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OFilterBuilderModule, declarations: [OFilterBuilderComponent,
12
+ OFilterBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ OFilterBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderModule, declarations: [OFilterBuilderComponent,
14
14
  OFilterBuilderClearDirective,
15
15
  OFilterBuilderQueryDirective,
16
16
  OFilterBuilderMenuComponent], imports: [OSharedModule,
@@ -18,11 +18,11 @@ OFilterBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
18
18
  OFilterBuilderClearDirective,
19
19
  OFilterBuilderQueryDirective,
20
20
  OFilterBuilderMenuComponent] });
21
- OFilterBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFilterBuilderModule, providers: [
21
+ OFilterBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderModule, providers: [
22
22
  OFilterBuilderComponentStateService
23
23
  ], imports: [OSharedModule,
24
24
  CommonModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFilterBuilderModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  imports: [
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
46
46
  ]
47
47
  }]
48
48
  }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDcEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBdUJsRyxNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO21IQUFwQixvQkFBb0IsaUJBZjdCLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsNEJBQTRCO1FBQzVCLDJCQUEyQixhQVAzQixhQUFhO1FBQ2IsWUFBWSxhQVNaLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsNEJBQTRCO1FBQzVCLDJCQUEyQjttSEFNbEIsb0JBQW9CLGFBSnBCO1FBQ1QsbUNBQW1DO0tBQ3BDLFlBakJDLGFBQWE7UUFDYixZQUFZOzRGQWtCSCxvQkFBb0I7a0JBckJoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULG1DQUFtQztxQkFDcEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT1NoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ2xlYXJEaXJlY3RpdmUgfSBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItY2xlYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyUXVlcnlEaXJlY3RpdmUgfSBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItcXVlcnkuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItYnVpbGRlci1tZW51L2ZpbHRlci1idWlsZGVyLW1lbnUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE9TaGFyZWRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50LFxuICAgIE9GaWx0ZXJCdWlsZGVyQ2xlYXJEaXJlY3RpdmUsXG4gICAgT0ZpbHRlckJ1aWxkZXJRdWVyeURpcmVjdGl2ZSxcbiAgICBPRmlsdGVyQnVpbGRlck1lbnVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50LFxuICAgIE9GaWx0ZXJCdWlsZGVyQ2xlYXJEaXJlY3RpdmUsXG4gICAgT0ZpbHRlckJ1aWxkZXJRdWVyeURpcmVjdGl2ZSxcbiAgICBPRmlsdGVyQnVpbGRlck1lbnVDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPRmlsdGVyQnVpbGRlck1vZHVsZSB7IH1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDcEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBdUJsRyxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBZjdCLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsNEJBQTRCO1FBQzVCLDJCQUEyQixhQVAzQixhQUFhO1FBQ2IsWUFBWSxhQVNaLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsNEJBQTRCO1FBQzVCLDJCQUEyQjtrSEFNbEIsb0JBQW9CLGFBSnBCO1FBQ1QsbUNBQW1DO0tBQ3BDLFlBakJDLGFBQWE7UUFDYixZQUFZOzJGQWtCSCxvQkFBb0I7a0JBckJoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULG1DQUFtQztxQkFDcEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT1NoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ2xlYXJEaXJlY3RpdmUgfSBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItY2xlYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyUXVlcnlEaXJlY3RpdmUgfSBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItcXVlcnkuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItYnVpbGRlci1tZW51L2ZpbHRlci1idWlsZGVyLW1lbnUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE9TaGFyZWRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50LFxuICAgIE9GaWx0ZXJCdWlsZGVyQ2xlYXJEaXJlY3RpdmUsXG4gICAgT0ZpbHRlckJ1aWxkZXJRdWVyeURpcmVjdGl2ZSxcbiAgICBPRmlsdGVyQnVpbGRlck1lbnVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50LFxuICAgIE9GaWx0ZXJCdWlsZGVyQ2xlYXJEaXJlY3RpdmUsXG4gICAgT0ZpbHRlckJ1aWxkZXJRdWVyeURpcmVjdGl2ZSxcbiAgICBPRmlsdGVyQnVpbGRlck1lbnVDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPRmlsdGVyQnVpbGRlck1vZHVsZSB7IH1cbiJdfQ==
@@ -42,9 +42,9 @@ export class CanDeactivateFormGuard {
42
42
  }
43
43
  }
44
44
  CanDeactivateFormGuard.CLASSNAME = 'CanDeactivateFormGuard';
45
- CanDeactivateFormGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CanDeactivateFormGuard, deps: [{ token: i1.OFormConfirmExitService }], target: i0.ɵɵFactoryTarget.Injectable });
46
- CanDeactivateFormGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CanDeactivateFormGuard });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CanDeactivateFormGuard, decorators: [{
45
+ CanDeactivateFormGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CanDeactivateFormGuard, deps: [{ token: i1.OFormConfirmExitService }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ CanDeactivateFormGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CanDeactivateFormGuard });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CanDeactivateFormGuard, decorators: [{
48
48
  type: Injectable
49
49
  }], ctorParameters: function () { return [{ type: i1.OFormConfirmExitService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWNhbi1kZWFjdGl2YXRlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9ndWFyZHMvby1mb3JtLWNhbi1kZWFjdGl2YXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFRcEYsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUFzQix1QkFBZ0Q7UUFBaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUY1RCxXQUFNLEdBQXNDLEVBQUUsQ0FBQztJQUVpQixDQUFDO0lBRTNFLGFBQWEsQ0FBQyxTQUFpQyxFQUFFLElBQTRCLEVBQUUsS0FBMEIsRUFBRSxNQUEyQjtRQUVwSSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUU7WUFDMUUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25DLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDN0IsTUFBTSxHQUFHLEdBQTBCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwSSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFvQjtRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBb0I7UUFDckMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEQsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsRyxDQUFDOztBQXZDYSxnQ0FBUyxHQUFHLHdCQUF3QixDQUFDO29IQUR4QyxzQkFBc0I7d0hBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuRGVhY3RpdmF0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5Db252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybUNvbmZpcm1FeGl0U2VydmljZSB9IGZyb20gJy4uL25hdmlnYXRpb24vby1mb3JtLWNvbmZpcm0tZXhpdC5zZXJ2aWNlJztcbmltcG9ydCB7IE9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vby1mb3JtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQ29tcG9uZW50RGVhY3RpdmF0ZSB7XG4gIGNhbkRlYWN0aXZhdGU6ICgpID0+IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbkRlYWN0aXZhdGVGb3JtR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPENhbkNvbXBvbmVudERlYWN0aXZhdGU+IHtcbiAgcHVibGljIHN0YXRpYyBDTEFTU05BTUUgPSAnQ2FuRGVhY3RpdmF0ZUZvcm1HdWFyZCc7XG5cbiAgcHJvdGVjdGVkIG9Gb3JtczogeyBba2V5OiBzdHJpbmddOiBPRm9ybUNvbXBvbmVudCB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9Gb3JtQ29uZmlybUV4aXRTZXJ2aWNlOiBPRm9ybUNvbmZpcm1FeGl0U2VydmljZSkgeyB9XG5cbiAgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IENhbkNvbXBvbmVudERlYWN0aXZhdGUsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBmdXR1cmU6IFJvdXRlclN0YXRlU25hcHNob3QpXG4gICAgOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW4ge1xuICAgIGlmIChCb29sZWFuQ29udmVydGVyKGZ1dHVyZS5yb290LnF1ZXJ5UGFyYW1zW0NvZGVzLklHTk9SRV9DQU5fREVBQ1RJVkFURV0pKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMub0Zvcm1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBhcnI6IE9ic2VydmFibGU8Ym9vbGVhbj5bXSA9IE9iamVjdC5rZXlzKHRoaXMub0Zvcm1zKS5tYXAoKGtleSkgPT4gVXRpbC53cmFwSW50b09ic2VydmFibGUodGhpcy5vRm9ybXNba2V5XS5jYW5EZWFjdGl2YXRlKCkpKTtcbiAgICAgICAgY29tYmluZUxhdGVzdChhcnIpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHJlc29sdmUocmVzLmV2ZXJ5KHZhbHVlID0+IHZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkRm9ybShmb3JtOiBPRm9ybUNvbXBvbmVudCkge1xuICAgIGZvcm0uZGVhY3RpdmF0ZUd1YXJkSWQgPSB0aGlzLmdldEZvcm1LZXkoZm9ybSlcbiAgICB0aGlzLm9Gb3Jtc1tmb3JtLmRlYWN0aXZhdGVHdWFyZElkXSA9IGZvcm07XG4gIH1cblxuICByZW1vdmVGb3JtKGZvcm06IE9Gb3JtQ29tcG9uZW50KSB7XG4gICAgZGVsZXRlIHRoaXMub0Zvcm1zW2Zvcm0uZGVhY3RpdmF0ZUd1YXJkSWRdO1xuICAgIGRlbGV0ZSBmb3JtLmRlYWN0aXZhdGVHdWFyZElkO1xuICB9XG5cbiAgaXNGb3Jtc0NhY2hlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMub0Zvcm1zKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1LZXkoZm9ybTogT0Zvcm1Db21wb25lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1MYXlvdXRNYW5hZ2VyID0gZm9ybS5nZXRGb3JtTWFuYWdlcigpO1xuICAgIHJldHVybiBmb3JtTGF5b3V0TWFuYWdlciA/IGAke2Zvcm1MYXlvdXRNYW5hZ2VyLmdldElkT2ZBY3RpdmVJdGVtKCl9JHtmb3JtLm9hdHRyfWAgOiBmb3JtLm9hdHRyO1xuICB9XG59XG5cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWNhbi1kZWFjdGl2YXRlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9ndWFyZHMvby1mb3JtLWNhbi1kZWFjdGl2YXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFRcEYsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUFzQix1QkFBZ0Q7UUFBaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUY1RCxXQUFNLEdBQXNDLEVBQUUsQ0FBQztJQUVpQixDQUFDO0lBRTNFLGFBQWEsQ0FBQyxTQUFpQyxFQUFFLElBQTRCLEVBQUUsS0FBMEIsRUFBRSxNQUEyQjtRQUVwSSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUU7WUFDMUUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25DLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDN0IsTUFBTSxHQUFHLEdBQTBCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwSSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFvQjtRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBb0I7UUFDckMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEQsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsRyxDQUFDOztBQXZDYSxnQ0FBUyxHQUFHLHdCQUF3QixDQUFDO21IQUR4QyxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuRGVhY3RpdmF0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5Db252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybUNvbmZpcm1FeGl0U2VydmljZSB9IGZyb20gJy4uL25hdmlnYXRpb24vby1mb3JtLWNvbmZpcm0tZXhpdC5zZXJ2aWNlJztcbmltcG9ydCB7IE9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vby1mb3JtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQ29tcG9uZW50RGVhY3RpdmF0ZSB7XG4gIGNhbkRlYWN0aXZhdGU6ICgpID0+IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbkRlYWN0aXZhdGVGb3JtR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPENhbkNvbXBvbmVudERlYWN0aXZhdGU+IHtcbiAgcHVibGljIHN0YXRpYyBDTEFTU05BTUUgPSAnQ2FuRGVhY3RpdmF0ZUZvcm1HdWFyZCc7XG5cbiAgcHJvdGVjdGVkIG9Gb3JtczogeyBba2V5OiBzdHJpbmddOiBPRm9ybUNvbXBvbmVudCB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9Gb3JtQ29uZmlybUV4aXRTZXJ2aWNlOiBPRm9ybUNvbmZpcm1FeGl0U2VydmljZSkgeyB9XG5cbiAgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IENhbkNvbXBvbmVudERlYWN0aXZhdGUsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBmdXR1cmU6IFJvdXRlclN0YXRlU25hcHNob3QpXG4gICAgOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW4ge1xuICAgIGlmIChCb29sZWFuQ29udmVydGVyKGZ1dHVyZS5yb290LnF1ZXJ5UGFyYW1zW0NvZGVzLklHTk9SRV9DQU5fREVBQ1RJVkFURV0pKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMub0Zvcm1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBhcnI6IE9ic2VydmFibGU8Ym9vbGVhbj5bXSA9IE9iamVjdC5rZXlzKHRoaXMub0Zvcm1zKS5tYXAoKGtleSkgPT4gVXRpbC53cmFwSW50b09ic2VydmFibGUodGhpcy5vRm9ybXNba2V5XS5jYW5EZWFjdGl2YXRlKCkpKTtcbiAgICAgICAgY29tYmluZUxhdGVzdChhcnIpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHJlc29sdmUocmVzLmV2ZXJ5KHZhbHVlID0+IHZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkRm9ybShmb3JtOiBPRm9ybUNvbXBvbmVudCkge1xuICAgIGZvcm0uZGVhY3RpdmF0ZUd1YXJkSWQgPSB0aGlzLmdldEZvcm1LZXkoZm9ybSlcbiAgICB0aGlzLm9Gb3Jtc1tmb3JtLmRlYWN0aXZhdGVHdWFyZElkXSA9IGZvcm07XG4gIH1cblxuICByZW1vdmVGb3JtKGZvcm06IE9Gb3JtQ29tcG9uZW50KSB7XG4gICAgZGVsZXRlIHRoaXMub0Zvcm1zW2Zvcm0uZGVhY3RpdmF0ZUd1YXJkSWRdO1xuICAgIGRlbGV0ZSBmb3JtLmRlYWN0aXZhdGVHdWFyZElkO1xuICB9XG5cbiAgaXNGb3Jtc0NhY2hlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMub0Zvcm1zKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1LZXkoZm9ybTogT0Zvcm1Db21wb25lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1MYXlvdXRNYW5hZ2VyID0gZm9ybS5nZXRGb3JtTWFuYWdlcigpO1xuICAgIHJldHVybiBmb3JtTGF5b3V0TWFuYWdlciA/IGAke2Zvcm1MYXlvdXRNYW5hZ2VyLmdldElkT2ZBY3RpdmVJdGVtKCl9JHtmb3JtLm9hdHRyfWAgOiBmb3JtLm9hdHRyO1xuICB9XG59XG5cbiJdfQ==
@@ -37,12 +37,12 @@ export class OFormConfirmExitService {
37
37
  return this.confirmDialogSubscription;
38
38
  }
39
39
  }
40
- OFormConfirmExitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormConfirmExitService, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
41
- OFormConfirmExitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormConfirmExitService, providedIn: 'root' });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormConfirmExitService, decorators: [{
40
+ OFormConfirmExitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFormConfirmExitService, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ OFormConfirmExitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFormConfirmExitService, providedIn: 'root' });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFormConfirmExitService, decorators: [{
43
43
  type: Injectable,
44
44
  args: [{
45
45
  providedIn: 'root'
46
46
  }]
47
47
  }], ctorParameters: function () { return [{ type: i1.DialogService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWNvbmZpcm0tZXhpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1jb25maXJtLWV4aXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSzFDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFBc0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRXZELHlCQUF5QixDQUFDLElBQWUsRUFBRSxjQUF3QixFQUFFO1FBQ25FLElBQUksWUFBOEIsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBVSxRQUFRLENBQUMsRUFBRTtnQkFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsWUFBWSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRVMsNEJBQTRCLENBQUMsSUFBZTtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsd0NBQXdDLEVBQUUsRUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUE7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQzs7cUhBcENVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Zvcm1CYXNlIH0gZnJvbSAnLi4vby1mb3JtLWJhc2UuY2xhc3MnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT0Zvcm1Db25maXJtRXhpdFNlcnZpY2Uge1xuXG4gIHByb3RlY3RlZCBjb25maXJtRGlhbG9nU3Vic2NyaXB0aW9uOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cblxuICBzdWJzY3JpYmVUb0Rpc2NhcmRDaGFuZ2VzKGZvcm06IE9Gb3JtQmFzZSwgaWdub3JlQXR0cnM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsZXQgc3Vic2NyaXB0aW9uOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGlmIChmb3JtLmlzSW5pdGlhbFN0YXRlQ2hhbmdlZChpZ25vcmVBdHRycykpIHtcbiAgICAgIHN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0Q29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbihmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgICAgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZS50b1Byb21pc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXN0YXJ0KCkge1xuICAgIHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbihmb3JtOiBPRm9ybUJhc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbikpIHtcbiAgICAgIHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbiA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtKFxuICAgICAgICAgIGZvcm0ubWVzc2FnZVNlcnZpY2UuZ2V0RGlzY2FyZENoYW5nZXNDb25maXJtYXRpb25EaWFsb2dUaXRsZSgpLFxuICAgICAgICAgIGZvcm0ubWVzc2FnZVNlcnZpY2UuZ2V0RGlzY2FyZENoYW5nZXNDb25maXJtYXRpb25NZXNzYWdlKCkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXN0YXJ0KCk7XG4gICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maXJtRGlhbG9nU3Vic2NyaXB0aW9uO1xuICB9XG59XG5cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWNvbmZpcm0tZXhpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1jb25maXJtLWV4aXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSzFDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFBc0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRXZELHlCQUF5QixDQUFDLElBQWUsRUFBRSxjQUF3QixFQUFFO1FBQ25FLElBQUksWUFBOEIsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBVSxRQUFRLENBQUMsRUFBRTtnQkFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsWUFBWSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRVMsNEJBQTRCLENBQUMsSUFBZTtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsd0NBQXdDLEVBQUUsRUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUE7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQzs7b0hBcENVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Zvcm1CYXNlIH0gZnJvbSAnLi4vby1mb3JtLWJhc2UuY2xhc3MnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT0Zvcm1Db25maXJtRXhpdFNlcnZpY2Uge1xuXG4gIHByb3RlY3RlZCBjb25maXJtRGlhbG9nU3Vic2NyaXB0aW9uOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cblxuICBzdWJzY3JpYmVUb0Rpc2NhcmRDaGFuZ2VzKGZvcm06IE9Gb3JtQmFzZSwgaWdub3JlQXR0cnM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsZXQgc3Vic2NyaXB0aW9uOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGlmIChmb3JtLmlzSW5pdGlhbFN0YXRlQ2hhbmdlZChpZ25vcmVBdHRycykpIHtcbiAgICAgIHN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0Q29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbihmb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgICAgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZS50b1Byb21pc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXN0YXJ0KCkge1xuICAgIHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbihmb3JtOiBPRm9ybUJhc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbikpIHtcbiAgICAgIHRoaXMuY29uZmlybURpYWxvZ1N1YnNjcmlwdGlvbiA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtKFxuICAgICAgICAgIGZvcm0ubWVzc2FnZVNlcnZpY2UuZ2V0RGlzY2FyZENoYW5nZXNDb25maXJtYXRpb25EaWFsb2dUaXRsZSgpLFxuICAgICAgICAgIGZvcm0ubWVzc2FnZVNlcnZpY2UuZ2V0RGlzY2FyZENoYW5nZXNDb25maXJtYXRpb25NZXNzYWdlKCkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXN0YXJ0KCk7XG4gICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maXJtRGlhbG9nU3Vic2NyaXB0aW9uO1xuICB9XG59XG5cbiJdfQ==
@@ -57,7 +57,8 @@ export class OFormNavigationComponent {
57
57
  queryArgs[1] = self.getKeysArray();
58
58
  queryArgs[4] = offset;
59
59
  queryArgs[5] = length ? length : conf.queryRows;
60
- self.querySubscription = self.dataService[conf.queryMethod].apply(self.dataService, queryArgs).subscribe(res => {
60
+ self.querySubscription = self.dataService[conf.queryMethod](...self.dataService.queryArgumentAdapter.parseQueryParameters(queryArgs))
61
+ .subscribe(res => {
61
62
  if (res.isSuccessful()) {
62
63
  self.navigationData = res.data;
63
64
  self.queryConf.queryRecordOffset = offset;
@@ -240,11 +241,11 @@ export class OFormNavigationComponent {
240
241
  return this.navigationData.length;
241
242
  }
242
243
  }
243
- OFormNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormNavigationComponent, deps: [{ token: i0.Injector }, { token: forwardRef(() => OFormBase) }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
244
- OFormNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OFormNavigationComponent, selector: "o-form-navigation", host: { properties: { "class.o-form-navigation": "true" } }, providers: [
244
+ OFormNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFormNavigationComponent, deps: [{ token: i0.Injector }, { token: forwardRef(() => OFormBase) }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
245
+ OFormNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OFormNavigationComponent, selector: "o-form-navigation", host: { properties: { "class.o-form-navigation": "true" } }, providers: [
245
246
  OntimizeServiceProvider
246
247
  ], ngImport: i0, template: "<ng-container *ngIf=\"showNavigation()\">\n <button mat-icon-button class=\"o-form-toolbar-button\" [disabled]=\"isFirst()\" (click)=\"first()\">\n <mat-icon aria-label=\"First\" layout-padding svgIcon=\"ontimize:first_page\"></mat-icon>\n </button>\n <button mat-icon-button class=\"o-form-toolbar-button\" [disabled]=\"isFirst()\" (click)=\"previous()\">\n <mat-icon aria-label=\"Previous\" layout-padding svgIcon=\"ontimize:keyboard_arrow_left\"></mat-icon>\n </button>\n <span layout-padding>{{ getRecordIndex() }} / {{ getTotalRecordsNumber() }}</span>\n <button mat-icon-button class=\"o-form-toolbar-button\" [disabled]=\"isLast()\" (click)=\"next()\">\n <mat-icon aria-label=\"Next\" layout-padding svgIcon=\"ontimize:keyboard_arrow_right\"></mat-icon>\n </button>\n <button mat-icon-button class=\"o-form-toolbar-button\" [disabled]=\"isLast()\" (click)=\"last()\">\n <mat-icon aria-label=\"Last\" layout-padding svgIcon=\"ontimize:last_page\"></mat-icon>\n </button>\n</ng-container>", styles: [".o-form-navigation .mat-icon{cursor:pointer}.o-form-navigation span{cursor:default}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormNavigationComponent, decorators: [{
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFormNavigationComponent, decorators: [{
248
249
  type: Component,
249
250
  args: [{ selector: 'o-form-navigation', encapsulation: ViewEncapsulation.None, host: {
250
251
  '[class.o-form-navigation]': 'true'
@@ -255,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
255
256
  type: Inject,
256
257
  args: [forwardRef(() => OFormBase)]
257
258
  }] }, { type: i1.Router }]; } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vbmF2aWdhdGlvbi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUEwQmpELE1BQU0sT0FBTyx3QkFBd0I7SUFhbkMsWUFDWSxRQUFrQixFQUNpQixLQUFnQixFQUNyRCxNQUFjO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNpQixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ3JELFdBQU0sR0FBTixNQUFNLENBQVE7UUFkakIsbUJBQWMsR0FBZSxFQUFFLENBQUM7UUFDL0Is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ICcuLy4uLy4uLy4uL3R5cGVzL2NvbmZpZ3VyZS1zZXJ2aWNlLWFyZ3MudHlwZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgVHlwZSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgT0Zvcm1MYXlvdXRNYW5hZ2VyQmFzZSB9IGZyb20gJy4uLy4uLy4uL2xheW91dHMvZm9ybS1sYXlvdXQvby1mb3JtLWxheW91dC1tYW5hZ2VyLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UsIE9OYXZpZ2F0aW9uSXRlbSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vbnRpbWl6ZS9vbnRpbWl6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9Gb3JtQmFzZSB9IGZyb20gJy4uL28tZm9ybS1iYXNlLmNsYXNzJztcbmltcG9ydCB7IE9Gb3JtTmF2aWdhdGlvbkNsYXNzIH0gZnJvbSAnLi9vLWZvcm0ubmF2aWdhdGlvbi5jbGFzcyc7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5Q29uZmlndXJhdGlvbiA9IHtcbiAgc2VydmljZVR5cGU6IHN0cmluZztcbiAgcXVlcnlBcmd1bWVudHM6IGFueVtdO1xuICBlbnRpdHk6IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICBxdWVyeU1ldGhvZDogc3RyaW5nO1xuICB0b3RhbFJlY29yZHNOdW1iZXI6IG51bWJlcjtcbiAgcXVlcnlSb3dzOiBudW1iZXI7XG4gIHF1ZXJ5UmVjb3JkT2Zmc2V0OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWZvcm0tbmF2aWdhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tZm9ybS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm8tZm9ybS1uYXZpZ2F0aW9uXSc6ICd0cnVlJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlclxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9Gb3JtTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIG5hdmlnYXRpb25EYXRhOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX2N1cnJlbnRJbmRleCA9IDA7XG5cbiAgcHJvdGVjdGVkIGZvcm1OYXZpZ2F0aW9uOiBPRm9ybU5hdmlnYXRpb25DbGFzcztcbiAgcHJvdGVjdGVkIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZTtcbiAgcHJvdGVjdGVkIGZvcm1MYXlvdXRNYW5hZ2VyOiBPRm9ybUxheW91dE1hbmFnZXJCYXNlO1xuXG4gIHByb3RlY3RlZCBxdWVyeVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IGFueTtcbiAgcHJvdGVjdGVkIHF1ZXJ5Q29uZjogUXVlcnlDb25maWd1cmF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQmFzZSkpIHByaXZhdGUgX2Zvcm06IE9Gb3JtQmFzZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMuZm9ybU5hdmlnYXRpb24gPSB0aGlzLl9mb3JtLmdldEZvcm1OYXZpZ2F0aW9uKCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PE5hdmlnYXRpb25TZXJ2aWNlPihOYXZpZ2F0aW9uU2VydmljZSBhcyBUeXBlPE5hdmlnYXRpb25TZXJ2aWNlPik7XG5cbiAgICB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyID0gdGhpcy5fZm9ybS5nZXRGb3JtTWFuYWdlcigpO1xuXG4gICAgbGV0IG5hdkRhdGE7XG4gICAgaWYgKHRoaXMuZm9ybUxheW91dE1hbmFnZXIgJiYgdGhpcy5mb3JtTGF5b3V0TWFuYWdlci5hbGxvd05hdmlnYXRpb24oKSkge1xuICAgICAgbmF2RGF0YSA9IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0TGFzdEl0ZW0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmF2RGF0YSA9IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0UHJldmlvdXNSb3V0ZURhdGEoKTtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKG5hdkRhdGEpKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25EYXRhID0gbmF2RGF0YS5rZXlzVmFsdWVzIHx8IFtdO1xuICAgICAgdGhpcy5xdWVyeUNvbmYgPSBuYXZEYXRhLnF1ZXJ5Q29uZmlndXJhdGlvbjtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmdldEN1cnJlbnRJbmRleCgpO1xuICAgIHRoaXMuY29uZmlndXJlU2VydmljZSgpO1xuICB9XG5cbiAgY29uZmlndXJlU2VydmljZSgpIHtcbiAgICBpZiAoIXRoaXMucXVlcnlDb25mKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbmZpZ3VyZVNlcnZpY2U6IE9Db25maWd1cmVTZXJ2aWNlQXJncyA9IHtcbiAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuICAgICAgYmFzZVNlcnZpY2U6IE9udGltaXplU2VydmljZSxcbiAgICAgIGVudGl0eTogdGhpcy5xdWVyeUNvbmYuZW50aXR5LFxuICAgICAgc2VydmljZTogdGhpcy5xdWVyeUNvbmYuc2VydmljZSxcbiAgICAgIHNlcnZpY2VUeXBlOiB0aGlzLnF1ZXJ5Q29uZi5zZXJ2aWNlVHlwZVxuICAgIH07XG4gICAgdGhpcy5kYXRhU2VydmljZSA9IFV0aWwuY29uZmlndXJlU2VydmljZShjb25maWd1cmVTZXJ2aWNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBxdWVyeU5hdmlnYXRpb25EYXRhKG9mZnNldDogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlOiBhbnksIHJlamVjdDogYW55KSA9PiB7XG4gICAgICBjb25zdCBjb25mID0gc2VsZi5xdWVyeUNvbmY7XG4gICAgICBjb25zdCBxdWVyeUFyZ3MgPSBjb25mLnF1ZXJ5QXJndW1lbnRzO1xuXG4gICAgICBxdWVyeUFyZ3NbMV0gPSBzZWxmLmdldEtleXNBcnJheSgpO1xuICAgICAgcXVlcnlBcmdzWzRdID0gb2Zmc2V0O1xuICAgICAgcXVlcnlBcmdzWzVdID0gbGVuZ3RoID8gbGVuZ3RoIDogY29uZi5xdWVyeVJvd3M7XG5cbiAgICAgIHNlbGYucXVlcnlTdWJzY3JpcHRpb24gPSBzZWxmLmRhdGFTZXJ2aWNlW2NvbmYucXVlcnlNZXRob2RdLmFwcGx5KHNlbGYuZGF0YVNlcnZpY2UsIHF1ZXJ5QXJncykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgICBzZWxmLm5hdmlnYXRpb25EYXRhID0gcmVzLmRhdGE7XG4gICAgICAgICAgc2VsZi5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVlcnlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0S2V5c0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICAvLyBnZXR0aW5nIGF2YWlsYWJsZSBuYXZpZ2F0aW9uRGF0YSBrZXlzXG4gICAgY29uc3QgbmF2RGF0YSA9IHRoaXMubmF2aWdhdGlvbkRhdGEgPyAodGhpcy5uYXZpZ2F0aW9uRGF0YVswXSB8fCB7fSkgOiB7fTtcbiAgICBjb25zdCBrZXlzQXJyYXkgPSBbXTtcbiAgICB0aGlzLl9mb3JtLmtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAobmF2RGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGtleXNBcnJheS5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGtleXNBcnJheTtcbiAgfVxuXG4gIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGtleXNBcnJheSA9IHRoaXMuZ2V0S2V5c0FycmF5KCk7XG4gICAgLy8gY3VycmVudCB1cmwga2V5cyBvYmplY3RcbiAgICBjb25zdCBjdXJyZW50S2V5cyA9IHt9O1xuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5mb3JtTmF2aWdhdGlvbi5nZXRVcmxQYXJhbXMoKTtcbiAgICBrZXlzQXJyYXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY3VycmVudEtleXNba2V5XSA9IGN1cnJlbnRJdGVtW2tleV07XG4gICAgfSk7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9ICh0aGlzLm5hdmlnYXRpb25EYXRhIHx8IFtdKS5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgaXRlbUtleXMgPSB7fTtcbiAgICAgIGtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGl0ZW1LZXlzW2tleV0gPSBpdGVtW2tleV07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBVdGlsLmlzRXF1aXZhbGVudChpdGVtS2V5cywgY3VycmVudEtleXMpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCA+PSAwID8gaW5kZXggOiAwO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXggKyAxO1xuICAgIGlmICh0b3RhbCA+IGluZGV4KSB7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGNvbnN0IG9mZnNldDogbnVtYmVyID0gKHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0IHx8IDApICsgdGhpcy5xdWVyeUNvbmYucXVlcnlSb3dzO1xuICAgICAgdGhpcy5xdWVyeU5hdmlnYXRpb25EYXRhKG9mZnNldCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubW92ZSgwKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdmb3JtLXRvb2xiYXItPm5leHQoKTogdG90YWwgPiBpbmRleCcpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXggLSAxO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGNvbnN0IG9mZnNldDogbnVtYmVyID0gdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgLSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3ZlKHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignZm9ybS10b29sYmFyLT5uZXh0KCk6IGluZGV4IDwgMCcpO1xuICAgIH1cbiAgfVxuXG4gIGZpcnN0KCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYgfHwgdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPT09IDApIHtcbiAgICAgIHRoaXMubW92ZSgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeU5hdmlnYXRpb25EYXRhKDApLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUoMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsYXN0KCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYgfHwgdGhpcy5pc0xhc3QoKSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm5hdmlnYXRpb25EYXRhLmxlbmd0aCAtIDE7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXIgLSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0LCB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUodGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGggLSAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzRmlyc3QoKSB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRoaXMuY3VycmVudEluZGV4ID09PSAwO1xuICAgIGlmIChyZXN1bHQgJiYgdGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0ID09PSAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaXNMYXN0KCkge1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSB0aGlzLmN1cnJlbnRJbmRleCA9PT0gKHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgaWYgKHJlc3VsdCAmJiB0aGlzLnF1ZXJ5Q29uZikge1xuICAgICAgcmVzdWx0ID0gKHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0ICsgdGhpcy5xdWVyeUNvbmYucXVlcnlSb3dzKVxuICAgICAgICA+PSB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXI7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBtb3ZlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9mb3JtLnNob3dDb25maXJtRGlzY2FyZENoYW5nZXMoKS50aGVuKHJlcyA9PiB7XG4gICAgICBpZiAocmVzID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyICYmIHRoaXMuZm9ybUxheW91dE1hbmFnZXIuYWxsb3dOYXZpZ2F0aW9uKCkpIHtcbiAgICAgICAgICB0aGlzLm1vdmVJbkZvcm1MYXlvdXRNYW5hZ2VyKGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1vdmVXaXRob3V0TWFuYWdlcihpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZVdpdGhvdXRNYW5hZ2VyKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0Um91dGVPZlNlbGVjdGVkUm93KHRoaXMubmF2aWdhdGlvbkRhdGFbaW5kZXhdKTtcbiAgICBpZiAocm91dGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbmF2RGF0YTogT05hdmlnYXRpb25JdGVtID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0SXRlbSgpO1xuICAgICAgaWYgKG5hdkRhdGEpIHtcbiAgICAgICAgdGhpcy5fZm9ybS5jYW5EaXNjYXJkQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge307XG4gICAgICAgIGV4dHJhc1tDb2Rlcy5RVUVSWV9QQVJBTVNdID0gQ29kZXMuZ2V0SXNEZXRhaWxPYmplY3QoKTtcblxuICAgICAgICBjb25zdCB1cmxBcnJheSA9IG5hdkRhdGEudXJsLnNwbGl0KENvZGVzLlJPVVRFX1NFUEFSQVRPUik7XG4gICAgICAgIGNvbnN0IHVybCA9IHVybEFycmF5LnNwbGljZSgwLCB1cmxBcnJheS5sZW5ndGggLSByb3V0ZS5sZW5ndGgpLmpvaW4oQ29kZXMuUk9VVEVfU0VQQVJBVE9SKTtcbiAgICAgICAgcm91dGUudW5zaGlmdCh1cmwpO1xuXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlLCBleHRyYXMpLnRoZW4oKG5hdmlnYXRpb25Eb25lOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKG5hdmlnYXRpb25Eb25lKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgICBpZiAodXJsICE9PSBuYXZEYXRhLnVybCkge1xuICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnJlbW92ZUxhc3RJdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVJbkZvcm1MYXlvdXRNYW5hZ2VyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9mb3JtLnNldFVybFBhcmFtc0FuZFJlbG9hZCh0aGlzLm5hdmlnYXRpb25EYXRhW2luZGV4XSk7XG4gIH1cblxuICBnZXRSb3V0ZU9mU2VsZWN0ZWRSb3coaXRlbTogYW55KSB7XG4gICAgY29uc3Qgcm91dGUgPSBbXTtcbiAgICBpZiAoVXRpbC5pc09iamVjdChpdGVtKSkge1xuICAgICAgdGhpcy5fZm9ybS5rZXlzQXJyYXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQoaXRlbVtrZXldKSkge1xuICAgICAgICAgIHJvdXRlLnB1c2goaXRlbVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIHNob3dOYXZpZ2F0aW9uKCkge1xuICAgIC8qXG4gICAgICBxdWVyeUNvbmYgaXMgb25seSBkZWZpbmVkIHdoZW4gdGhlIHNlcnZpY2UgaXMgcGFnZWFibGVcbiAgICAqL1xuICAgIHJldHVybiAoVXRpbC5pc0RlZmluZWQodGhpcy5xdWVyeUNvbmYpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcikpID8gdGhpcy5xdWVyeUNvbmYudG90YWxSZWNvcmRzTnVtYmVyID4gMSA6IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoID4gMVxuICB9XG5cbiAgc2V0IGN1cnJlbnRJbmRleChhcmc6IG51bWJlcikge1xuICAgIHRoaXMuX2N1cnJlbnRJbmRleCA9IGFyZztcbiAgfVxuXG4gIGdldCBjdXJyZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudEluZGV4O1xuICB9XG5cbiAgZ2V0UmVjb3JkSW5kZXgoKTogbnVtYmVyIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleCArIDE7XG4gICAgaWYgKHRoaXMucXVlcnlDb25mKSB7XG4gICAgICBpbmRleCArPSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJlY29yZE9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgZ2V0VG90YWxSZWNvcmRzTnVtYmVyKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMucXVlcnlDb25mICYmIHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcikge1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05hdmlnYXRpb24oKVwiPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0KClcIiAoY2xpY2spPVwiZmlyc3QoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRmlyc3RcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6Zmlyc3RfcGFnZVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0KClcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6a2V5Ym9hcmRfYXJyb3dfbGVmdFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8c3BhbiBsYXlvdXQtcGFkZGluZz57eyBnZXRSZWNvcmRJbmRleCgpIH19IC8ge3sgZ2V0VG90YWxSZWNvcmRzTnVtYmVyKCkgfX08L3NwYW4+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiby1mb3JtLXRvb2xiYXItYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzTGFzdCgpXCIgKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTmV4dFwiIGxheW91dC1wYWRkaW5nIHN2Z0ljb249XCJvbnRpbWl6ZTprZXlib2FyZF9hcnJvd19yaWdodFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0xhc3QoKVwiIChjbGljayk9XCJsYXN0KClcIj5cbiAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkxhc3RcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6bGFzdF9wYWdlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vbmF2aWdhdGlvbi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUE0QmpELE1BQU0sT0FBTyx3QkFBd0I7SUFhbkMsWUFDWSxRQUFrQixFQUNpQixLQUFnQixFQUNyRCxNQUFjO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNpQixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ3JELFdBQU0sR0FBTixNQUFNLENBQVE7UUFkakIsbUJBQWMsR0FBZSxFQUFFLENBQUM7UUFDL0Is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b25maWd1cmVTZXJ2aWNlQXJncyB9IGZyb20gJy4vLi4vLi4vLi4vdHlwZXMvY29uZmlndXJlLXNlcnZpY2UtYXJncy50eXBlJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBUeXBlLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPRm9ybUxheW91dE1hbmFnZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vbGF5b3V0cy9mb3JtLWxheW91dC9vLWZvcm0tbGF5b3V0LW1hbmFnZXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSwgT05hdmlnYXRpb25JdGVtIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29udGltaXplL29udGltaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Zvcm1CYXNlIH0gZnJvbSAnLi4vby1mb3JtLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1OYXZpZ2F0aW9uQ2xhc3MgfSBmcm9tICcuL28tZm9ybS5uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFNlcnZpY2VSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBRdWVyeUNvbmZpZ3VyYXRpb24gPSB7XG4gIHNlcnZpY2VUeXBlOiBzdHJpbmc7XG4gIHF1ZXJ5QXJndW1lbnRzOiBhbnlbXTtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgcXVlcnlNZXRob2Q6IHN0cmluZztcbiAgdG90YWxSZWNvcmRzTnVtYmVyOiBudW1iZXI7XG4gIHF1ZXJ5Um93czogbnVtYmVyO1xuICBxdWVyeVJlY29yZE9mZnNldDogbnVtYmVyO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1mb3JtLW5hdmlnYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWZvcm0tbmF2aWdhdGlvbl0nOiAndHJ1ZSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPRm9ybU5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBuYXZpZ2F0aW9uRGF0YTogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9jdXJyZW50SW5kZXggPSAwO1xuXG4gIHByb3RlY3RlZCBmb3JtTmF2aWdhdGlvbjogT0Zvcm1OYXZpZ2F0aW9uQ2xhc3M7XG4gIHByb3RlY3RlZCBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2U7XG4gIHByb3RlY3RlZCBmb3JtTGF5b3V0TWFuYWdlcjogT0Zvcm1MYXlvdXRNYW5hZ2VyQmFzZTtcblxuICBwcm90ZWN0ZWQgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCYXNlU2VydmljZTxTZXJ2aWNlUmVzcG9uc2U+O1xuICBwcm90ZWN0ZWQgcXVlcnlDb25mOiBRdWVyeUNvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT0Zvcm1CYXNlKSkgcHJpdmF0ZSBfZm9ybTogT0Zvcm1CYXNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5mb3JtTmF2aWdhdGlvbiA9IHRoaXMuX2Zvcm0uZ2V0Rm9ybU5hdmlnYXRpb24oKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8TmF2aWdhdGlvblNlcnZpY2U+KE5hdmlnYXRpb25TZXJ2aWNlIGFzIFR5cGU8TmF2aWdhdGlvblNlcnZpY2U+KTtcblxuICAgIHRoaXMuZm9ybUxheW91dE1hbmFnZXIgPSB0aGlzLl9mb3JtLmdldEZvcm1NYW5hZ2VyKCk7XG5cbiAgICBsZXQgbmF2RGF0YTtcbiAgICBpZiAodGhpcy5mb3JtTGF5b3V0TWFuYWdlciAmJiB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLmFsbG93TmF2aWdhdGlvbigpKSB7XG4gICAgICBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0SXRlbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRQcmV2aW91c1JvdXRlRGF0YSgpO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQobmF2RGF0YSkpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbkRhdGEgPSBuYXZEYXRhLmtleXNWYWx1ZXMgfHwgW107XG4gICAgICB0aGlzLnF1ZXJ5Q29uZiA9IG5hdkRhdGEucXVlcnlDb25maWd1cmF0aW9uO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgdGhpcy5jb25maWd1cmVTZXJ2aWNlKCk7XG4gIH1cblxuICBjb25maWd1cmVTZXJ2aWNlKCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29uZmlndXJlU2VydmljZTogT0NvbmZpZ3VyZVNlcnZpY2VBcmdzID0ge1xuICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLFxuICAgICAgZW50aXR5OiB0aGlzLnF1ZXJ5Q29uZi5lbnRpdHksXG4gICAgICBzZXJ2aWNlOiB0aGlzLnF1ZXJ5Q29uZi5zZXJ2aWNlLFxuICAgICAgc2VydmljZVR5cGU6IHRoaXMucXVlcnlDb25mLnNlcnZpY2VUeXBlXG4gICAgfTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gVXRpbC5jb25maWd1cmVTZXJ2aWNlKGNvbmZpZ3VyZVNlcnZpY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmU6IGFueSwgcmVqZWN0OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGNvbmYgPSBzZWxmLnF1ZXJ5Q29uZjtcbiAgICAgIGNvbnN0IHF1ZXJ5QXJncyA9IGNvbmYucXVlcnlBcmd1bWVudHM7XG5cbiAgICAgIHF1ZXJ5QXJnc1sxXSA9IHNlbGYuZ2V0S2V5c0FycmF5KCk7XG4gICAgICBxdWVyeUFyZ3NbNF0gPSBvZmZzZXQ7XG4gICAgICBxdWVyeUFyZ3NbNV0gPSBsZW5ndGggPyBsZW5ndGggOiBjb25mLnF1ZXJ5Um93cztcblxuICAgICAgc2VsZi5xdWVyeVN1YnNjcmlwdGlvbiA9IHNlbGYuZGF0YVNlcnZpY2VbY29uZi5xdWVyeU1ldGhvZF0oLi4uc2VsZi5kYXRhU2VydmljZS5xdWVyeUFyZ3VtZW50QWRhcHRlci5wYXJzZVF1ZXJ5UGFyYW1ldGVycyhxdWVyeUFyZ3MpKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgICBzZWxmLm5hdmlnYXRpb25EYXRhID0gcmVzLmRhdGE7XG4gICAgICAgICAgc2VsZi5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVlcnlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0S2V5c0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICAvLyBnZXR0aW5nIGF2YWlsYWJsZSBuYXZpZ2F0aW9uRGF0YSBrZXlzXG4gICAgY29uc3QgbmF2RGF0YSA9IHRoaXMubmF2aWdhdGlvbkRhdGEgPyAodGhpcy5uYXZpZ2F0aW9uRGF0YVswXSB8fCB7fSkgOiB7fTtcbiAgICBjb25zdCBrZXlzQXJyYXkgPSBbXTtcbiAgICB0aGlzLl9mb3JtLmtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAobmF2RGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGtleXNBcnJheS5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGtleXNBcnJheTtcbiAgfVxuXG4gIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGtleXNBcnJheSA9IHRoaXMuZ2V0S2V5c0FycmF5KCk7XG4gICAgLy8gY3VycmVudCB1cmwga2V5cyBvYmplY3RcbiAgICBjb25zdCBjdXJyZW50S2V5cyA9IHt9O1xuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5mb3JtTmF2aWdhdGlvbi5nZXRVcmxQYXJhbXMoKTtcbiAgICBrZXlzQXJyYXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY3VycmVudEtleXNba2V5XSA9IGN1cnJlbnRJdGVtW2tleV07XG4gICAgfSk7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9ICh0aGlzLm5hdmlnYXRpb25EYXRhIHx8IFtdKS5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgaXRlbUtleXMgPSB7fTtcbiAgICAgIGtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGl0ZW1LZXlzW2tleV0gPSBpdGVtW2tleV07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBVdGlsLmlzRXF1aXZhbGVudChpdGVtS2V5cywgY3VycmVudEtleXMpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCA+PSAwID8gaW5kZXggOiAwO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXggKyAxO1xuICAgIGlmICh0b3RhbCA+IGluZGV4KSB7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGNvbnN0IG9mZnNldDogbnVtYmVyID0gKHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0IHx8IDApICsgdGhpcy5xdWVyeUNvbmYucXVlcnlSb3dzO1xuICAgICAgdGhpcy5xdWVyeU5hdmlnYXRpb25EYXRhKG9mZnNldCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubW92ZSgwKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdmb3JtLXRvb2xiYXItPm5leHQoKTogdG90YWwgPiBpbmRleCcpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXggLSAxO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGNvbnN0IG9mZnNldDogbnVtYmVyID0gdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgLSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3ZlKHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignZm9ybS10b29sYmFyLT5uZXh0KCk6IGluZGV4IDwgMCcpO1xuICAgIH1cbiAgfVxuXG4gIGZpcnN0KCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYgfHwgdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPT09IDApIHtcbiAgICAgIHRoaXMubW92ZSgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeU5hdmlnYXRpb25EYXRhKDApLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUoMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsYXN0KCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYgfHwgdGhpcy5pc0xhc3QoKSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm5hdmlnYXRpb25EYXRhLmxlbmd0aCAtIDE7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXIgLSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0LCB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUodGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGggLSAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzRmlyc3QoKSB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRoaXMuY3VycmVudEluZGV4ID09PSAwO1xuICAgIGlmIChyZXN1bHQgJiYgdGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0ID09PSAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaXNMYXN0KCkge1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSB0aGlzLmN1cnJlbnRJbmRleCA9PT0gKHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgaWYgKHJlc3VsdCAmJiB0aGlzLnF1ZXJ5Q29uZikge1xuICAgICAgcmVzdWx0ID0gKHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0ICsgdGhpcy5xdWVyeUNvbmYucXVlcnlSb3dzKVxuICAgICAgICA+PSB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXI7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBtb3ZlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9mb3JtLnNob3dDb25maXJtRGlzY2FyZENoYW5nZXMoKS50aGVuKHJlcyA9PiB7XG4gICAgICBpZiAocmVzID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyICYmIHRoaXMuZm9ybUxheW91dE1hbmFnZXIuYWxsb3dOYXZpZ2F0aW9uKCkpIHtcbiAgICAgICAgICB0aGlzLm1vdmVJbkZvcm1MYXlvdXRNYW5hZ2VyKGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1vdmVXaXRob3V0TWFuYWdlcihpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZVdpdGhvdXRNYW5hZ2VyKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0Um91dGVPZlNlbGVjdGVkUm93KHRoaXMubmF2aWdhdGlvbkRhdGFbaW5kZXhdKTtcbiAgICBpZiAocm91dGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbmF2RGF0YTogT05hdmlnYXRpb25JdGVtID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0SXRlbSgpO1xuICAgICAgaWYgKG5hdkRhdGEpIHtcbiAgICAgICAgdGhpcy5fZm9ybS5jYW5EaXNjYXJkQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge307XG4gICAgICAgIGV4dHJhc1tDb2Rlcy5RVUVSWV9QQVJBTVNdID0gQ29kZXMuZ2V0SXNEZXRhaWxPYmplY3QoKTtcblxuICAgICAgICBjb25zdCB1cmxBcnJheSA9IG5hdkRhdGEudXJsLnNwbGl0KENvZGVzLlJPVVRFX1NFUEFSQVRPUik7XG4gICAgICAgIGNvbnN0IHVybCA9IHVybEFycmF5LnNwbGljZSgwLCB1cmxBcnJheS5sZW5ndGggLSByb3V0ZS5sZW5ndGgpLmpvaW4oQ29kZXMuUk9VVEVfU0VQQVJBVE9SKTtcbiAgICAgICAgcm91dGUudW5zaGlmdCh1cmwpO1xuXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlLCBleHRyYXMpLnRoZW4oKG5hdmlnYXRpb25Eb25lOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKG5hdmlnYXRpb25Eb25lKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgICBpZiAodXJsICE9PSBuYXZEYXRhLnVybCkge1xuICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnJlbW92ZUxhc3RJdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVJbkZvcm1MYXlvdXRNYW5hZ2VyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9mb3JtLnNldFVybFBhcmFtc0FuZFJlbG9hZCh0aGlzLm5hdmlnYXRpb25EYXRhW2luZGV4XSk7XG4gIH1cblxuICBnZXRSb3V0ZU9mU2VsZWN0ZWRSb3coaXRlbTogYW55KSB7XG4gICAgY29uc3Qgcm91dGUgPSBbXTtcbiAgICBpZiAoVXRpbC5pc09iamVjdChpdGVtKSkge1xuICAgICAgdGhpcy5fZm9ybS5rZXlzQXJyYXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQoaXRlbVtrZXldKSkge1xuICAgICAgICAgIHJvdXRlLnB1c2goaXRlbVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIHNob3dOYXZpZ2F0aW9uKCkge1xuICAgIC8qXG4gICAgICBxdWVyeUNvbmYgaXMgb25seSBkZWZpbmVkIHdoZW4gdGhlIHNlcnZpY2UgaXMgcGFnZWFibGVcbiAgICAqL1xuICAgIHJldHVybiAoVXRpbC5pc0RlZmluZWQodGhpcy5xdWVyeUNvbmYpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcikpID8gdGhpcy5xdWVyeUNvbmYudG90YWxSZWNvcmRzTnVtYmVyID4gMSA6IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoID4gMVxuICB9XG5cbiAgc2V0IGN1cnJlbnRJbmRleChhcmc6IG51bWJlcikge1xuICAgIHRoaXMuX2N1cnJlbnRJbmRleCA9IGFyZztcbiAgfVxuXG4gIGdldCBjdXJyZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudEluZGV4O1xuICB9XG5cbiAgZ2V0UmVjb3JkSW5kZXgoKTogbnVtYmVyIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleCArIDE7XG4gICAgaWYgKHRoaXMucXVlcnlDb25mKSB7XG4gICAgICBpbmRleCArPSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJlY29yZE9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgZ2V0VG90YWxSZWNvcmRzTnVtYmVyKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMucXVlcnlDb25mICYmIHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcikge1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05hdmlnYXRpb24oKVwiPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0KClcIiAoY2xpY2spPVwiZmlyc3QoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRmlyc3RcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6Zmlyc3RfcGFnZVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0KClcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6a2V5Ym9hcmRfYXJyb3dfbGVmdFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8c3BhbiBsYXlvdXQtcGFkZGluZz57eyBnZXRSZWNvcmRJbmRleCgpIH19IC8ge3sgZ2V0VG90YWxSZWNvcmRzTnVtYmVyKCkgfX08L3NwYW4+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiby1mb3JtLXRvb2xiYXItYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzTGFzdCgpXCIgKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTmV4dFwiIGxheW91dC1wYWRkaW5nIHN2Z0ljb249XCJvbnRpbWl6ZTprZXlib2FyZF9hcnJvd19yaWdodFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0xhc3QoKVwiIChjbGljayk9XCJsYXN0KClcIj5cbiAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkxhc3RcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6bGFzdF9wYWdlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj4iXX0=