@fundamental-ngx/platform 0.48.0-rc.2 → 0.48.0-rc.21

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 (684) hide show
  1. package/approval-flow/helpers/index.d.ts +1 -1
  2. package/approval-flow/index.d.ts +2 -2
  3. package/approval-flow/interfaces/approval-process.d.ts +1 -1
  4. package/approval-flow/interfaces/index.d.ts +1 -1
  5. package/approval-flow/interfaces/send-reminders-data.d.ts +1 -1
  6. package/button/button.component.d.ts +4 -1
  7. package/button/index.d.ts +1 -1
  8. package/dynamic-page/index.d.ts +5 -5
  9. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
  10. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
  11. package/esm2022/approval-flow/approval-flow-graph.mjs +1 -1
  12. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
  13. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +1 -1
  14. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
  15. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +1 -1
  16. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
  17. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +1 -1
  18. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
  19. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +1 -1
  20. package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
  21. package/esm2022/approval-flow/approval-flow.module.mjs +1 -1
  22. package/esm2022/approval-flow/fundamental-ngx-platform-approval-flow.mjs +1 -1
  23. package/esm2022/approval-flow/helpers/index.mjs +1 -1
  24. package/esm2022/approval-flow/index.mjs +3 -3
  25. package/esm2022/approval-flow/interfaces/approval-node.mjs +1 -1
  26. package/esm2022/approval-flow/interfaces/approval-process.mjs +1 -1
  27. package/esm2022/approval-flow/interfaces/approval-status.mjs +1 -1
  28. package/esm2022/approval-flow/interfaces/approval-team.mjs +1 -1
  29. package/esm2022/approval-flow/interfaces/approval-user.mjs +1 -1
  30. package/esm2022/approval-flow/interfaces/index.mjs +2 -2
  31. package/esm2022/approval-flow/interfaces/send-reminders-data.mjs +1 -1
  32. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +1 -1
  33. package/esm2022/button/button.component.mjs +8 -3
  34. package/esm2022/button/button.module.mjs +1 -1
  35. package/esm2022/button/fundamental-ngx-platform-button.mjs +1 -1
  36. package/esm2022/button/index.mjs +2 -2
  37. package/esm2022/dynamic-page/constants.mjs +1 -1
  38. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +1 -1
  39. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +1 -1
  40. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +1 -1
  41. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +1 -1
  42. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +1 -1
  43. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +1 -1
  44. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +1 -1
  45. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
  46. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +1 -1
  47. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +1 -1
  48. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +1 -1
  49. package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
  50. package/esm2022/dynamic-page/dynamic-page.config.mjs +1 -1
  51. package/esm2022/dynamic-page/dynamic-page.module.mjs +1 -1
  52. package/esm2022/dynamic-page/dynamic-page.service.mjs +1 -1
  53. package/esm2022/dynamic-page/fundamental-ngx-platform-dynamic-page.mjs +1 -1
  54. package/esm2022/dynamic-page/index.mjs +6 -6
  55. package/esm2022/dynamic-page/utils.mjs +1 -1
  56. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  57. package/esm2022/feed-input/feed-input.module.mjs +1 -1
  58. package/esm2022/feed-input/fundamental-ngx-platform-feed-input.mjs +1 -1
  59. package/esm2022/feed-input/index.mjs +2 -2
  60. package/esm2022/form/auto-complete/auto-complete.directive.mjs +2 -2
  61. package/esm2022/form/auto-complete/auto-complete.module.mjs +1 -1
  62. package/esm2022/form/checkbox/checkbox.component.mjs +1 -1
  63. package/esm2022/form/checkbox/checkbox.module.mjs +1 -1
  64. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +1 -1
  65. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +1 -1
  66. package/esm2022/form/combobox/combobox/combobox.component.mjs +13 -4
  67. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
  68. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +1 -1
  69. package/esm2022/form/combobox/combobox.config.mjs +2 -2
  70. package/esm2022/form/combobox/combobox.interface.mjs +1 -1
  71. package/esm2022/form/combobox/combobox.module.mjs +1 -1
  72. package/esm2022/form/combobox/commons/base-combobox.mjs +1 -1
  73. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +1 -1
  74. package/esm2022/form/combobox/index.mjs +1 -1
  75. package/esm2022/form/date-picker/date-picker.component.mjs +4 -5
  76. package/esm2022/form/date-picker/date-picker.module.mjs +1 -1
  77. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
  78. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +1 -1
  79. package/esm2022/form/datetime-picker/errors.mjs +1 -1
  80. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +1 -1
  81. package/esm2022/form/form-generator/config/default-components-list.mjs +6 -6
  82. package/esm2022/form/form-generator/config/default-form-generator-hint-options.mjs +1 -1
  83. package/esm2022/form/form-generator/config/default-validation-errors.mjs +1 -1
  84. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +3 -3
  85. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +1 -1
  86. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +1 -1
  87. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +1 -1
  88. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +1 -1
  89. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
  90. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +3 -3
  91. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +1 -1
  92. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +1 -1
  93. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +1 -1
  94. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +3 -3
  95. package/esm2022/form/form-generator/dynamic-form-control.mjs +1 -1
  96. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +14 -14
  97. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +1 -1
  98. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +1 -1
  99. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
  100. package/esm2022/form/form-generator/form-generator.service.mjs +3 -3
  101. package/esm2022/form/form-generator/form-generator.tokens.mjs +1 -1
  102. package/esm2022/form/form-generator/helpers.mjs +1 -1
  103. package/esm2022/form/form-generator/interfaces/dynamic-abstract-control.mjs +1 -1
  104. package/esm2022/form/form-generator/interfaces/dynamic-form-group.mjs +1 -1
  105. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  106. package/esm2022/form/form-generator/interfaces/form-component-definition.mjs +1 -1
  107. package/esm2022/form/form-generator/interfaces/form-generator-module-config.mjs +1 -1
  108. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +2 -2
  109. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +1 -1
  110. package/esm2022/form/form-generator/providers/providers.mjs +1 -1
  111. package/esm2022/form/form-group/config/default-form-field-hint-options.mjs +1 -1
  112. package/esm2022/form/form-group/constants.mjs +1 -1
  113. package/esm2022/form/form-group/fdp-form.module.mjs +7 -7
  114. package/esm2022/form/form-group/fdp-form.tokens.mjs +1 -1
  115. package/esm2022/form/form-group/form-field/form-field.component.mjs +1 -1
  116. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +1 -1
  117. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +1 -1
  118. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +1 -1
  119. package/esm2022/form/form-group/form-field-error/tokens.mjs +1 -1
  120. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +1 -1
  121. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +1 -1
  122. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
  123. package/esm2022/form/form-group/form-group.component.mjs +1 -1
  124. package/esm2022/form/form-group/helpers.mjs +1 -1
  125. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +1 -1
  126. package/esm2022/form/form-group/services/form-field-layout.service.mjs +3 -3
  127. package/esm2022/form/form-helpers.mjs +3 -3
  128. package/esm2022/form/fundamental-ngx-platform-form.mjs +1 -1
  129. package/esm2022/form/helpers.mjs +1 -1
  130. package/esm2022/form/index.mjs +1 -1
  131. package/esm2022/form/input/fdp-input.module.mjs +1 -1
  132. package/esm2022/form/input/input.component.mjs +1 -1
  133. package/esm2022/form/input-group/addon-body.component.mjs +2 -2
  134. package/esm2022/form/input-group/addon.component.mjs +2 -2
  135. package/esm2022/form/input-group/constants.mjs +1 -1
  136. package/esm2022/form/input-group/input-group.component.mjs +1 -1
  137. package/esm2022/form/input-group/input-group.config.mjs +1 -1
  138. package/esm2022/form/input-group/input-group.module.mjs +3 -3
  139. package/esm2022/form/input-group/input.component.mjs +2 -2
  140. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +1 -1
  141. package/esm2022/form/models/field.model.mjs +1 -1
  142. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +1 -1
  143. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
  144. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
  145. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +1 -1
  146. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +2 -2
  147. package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
  148. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +1 -1
  149. package/esm2022/form/multi-input/base-multi-input.mjs +1 -1
  150. package/esm2022/form/multi-input/index.mjs +2 -2
  151. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  152. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +1 -1
  153. package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
  154. package/esm2022/form/multi-input/multi-input.config.mjs +2 -2
  155. package/esm2022/form/multi-input/multi-input.interface.mjs +1 -1
  156. package/esm2022/form/multi-input/multi-input.module.mjs +1 -1
  157. package/esm2022/form/radio-group/radio/radio.component.mjs +1 -1
  158. package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
  159. package/esm2022/form/radio-group/radio-group.module.mjs +1 -1
  160. package/esm2022/form/select/commons/base-select.mjs +7 -2
  161. package/esm2022/form/select/models/select.models.mjs +1 -1
  162. package/esm2022/form/select/select/select.component.mjs +3 -3
  163. package/esm2022/form/select/select.config.mjs +1 -1
  164. package/esm2022/form/select/select.module.mjs +1 -1
  165. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  166. package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
  167. package/esm2022/form/step-input/step-input-action-button.mjs +2 -2
  168. package/esm2022/form/step-input/step-input-control.directive.mjs +2 -2
  169. package/esm2022/form/step-input/step-input-decrement.directive.mjs +1 -1
  170. package/esm2022/form/step-input/step-input-increment.directive.mjs +1 -1
  171. package/esm2022/form/step-input/step-input.config.mjs +1 -1
  172. package/esm2022/form/step-input/step-input.module.mjs +3 -3
  173. package/esm2022/form/step-input/step-input.util.mjs +1 -1
  174. package/esm2022/form/switch/switch/index.mjs +1 -1
  175. package/esm2022/form/switch/switch/switch.component.mjs +1 -1
  176. package/esm2022/form/switch/switch/switch.config.mjs +1 -1
  177. package/esm2022/form/switch/switch.module.mjs +1 -1
  178. package/esm2022/form/text-area/text-area.component.mjs +1 -1
  179. package/esm2022/form/text-area/text-area.config.mjs +1 -1
  180. package/esm2022/form/text-area/text-area.module.mjs +1 -1
  181. package/esm2022/form/time-picker/time-picker.component.mjs +1 -1
  182. package/esm2022/form/time-picker/time-picker.module.mjs +1 -1
  183. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +1 -1
  184. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +1 -1
  185. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
  186. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
  187. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
  188. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  189. package/esm2022/icon-tab-bar/components/index.mjs +1 -1
  190. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
  191. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +1 -1
  192. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
  193. package/esm2022/icon-tab-bar/constants.mjs +1 -1
  194. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +1 -1
  195. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +1 -1
  196. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +1 -1
  197. package/esm2022/icon-tab-bar/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
  198. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +1 -1
  199. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +1 -1
  200. package/esm2022/icon-tab-bar/index.mjs +8 -8
  201. package/esm2022/icon-tab-bar/interfaces/icon-tab-bar-item.interface.mjs +1 -1
  202. package/esm2022/icon-tab-bar/interfaces/tab-color-associations.interface.mjs +1 -1
  203. package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
  204. package/esm2022/icon-tab-bar/types.mjs +1 -1
  205. package/esm2022/info-label/fundamental-ngx-platform-info-label.mjs +1 -1
  206. package/esm2022/info-label/index.mjs +1 -1
  207. package/esm2022/info-label/info-label.component.mjs +1 -1
  208. package/esm2022/info-label/info-label.module.mjs +1 -1
  209. package/esm2022/link/fundamental-ngx-platform-link.mjs +1 -1
  210. package/esm2022/link/index.mjs +1 -1
  211. package/esm2022/link/link.component.mjs +3 -3
  212. package/esm2022/link/link.module.mjs +1 -1
  213. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  214. package/esm2022/list/action-list-item/action-list-item.module.mjs +1 -1
  215. package/esm2022/list/base-list-item.mjs +2 -2
  216. package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
  217. package/esm2022/list/display-list-item/display-list-item.module.mjs +1 -1
  218. package/esm2022/list/fdpListComponent.token.mjs +1 -1
  219. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
  220. package/esm2022/list/fundamental-ngx-platform-list.mjs +1 -1
  221. package/esm2022/list/index.mjs +13 -13
  222. package/esm2022/list/list-group-footer.component.mjs +3 -3
  223. package/esm2022/list/list-group-header.component.mjs +5 -5
  224. package/esm2022/list/list.component.mjs +5 -5
  225. package/esm2022/list/list.config.mjs +1 -1
  226. package/esm2022/list/list.module.mjs +1 -1
  227. package/esm2022/list/load-more-content.directive.mjs +1 -1
  228. package/esm2022/list/models/list.mjs +1 -1
  229. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +1 -1
  230. package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
  231. package/esm2022/list/object-list-item/object-list-item.module.mjs +1 -1
  232. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
  233. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +1 -1
  234. package/esm2022/menu/fundamental-ngx-platform-menu.mjs +1 -1
  235. package/esm2022/menu/index.mjs +3 -3
  236. package/esm2022/menu/menu-item.component.mjs +1 -1
  237. package/esm2022/menu/menu-trigger.directive.mjs +1 -1
  238. package/esm2022/menu/menu.component.mjs +1 -1
  239. package/esm2022/menu/menu.module.mjs +1 -1
  240. package/esm2022/menu-button/fundamental-ngx-platform-menu-button.mjs +1 -1
  241. package/esm2022/menu-button/index.mjs +2 -2
  242. package/esm2022/menu-button/menu-button.component.mjs +8 -3
  243. package/esm2022/menu-button/menu-button.module.mjs +1 -1
  244. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +1 -1
  245. package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
  246. package/esm2022/message-popover/default-config.mjs +1 -1
  247. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +1 -1
  248. package/esm2022/message-popover/fundamental-ngx-platform-message-popover.mjs +1 -1
  249. package/esm2022/message-popover/index.mjs +5 -5
  250. package/esm2022/message-popover/message-popover.component.mjs +2 -2
  251. package/esm2022/message-popover/models/message-popover-entry.interface.mjs +1 -1
  252. package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
  253. package/esm2022/message-popover/models/message-popover.interface.mjs +1 -1
  254. package/esm2022/message-popover/platform-message-popover.module.mjs +3 -3
  255. package/esm2022/message-popover/utils.mjs +1 -1
  256. package/esm2022/object-attribute/fundamental-ngx-platform-object-attribute.mjs +1 -1
  257. package/esm2022/object-attribute/index.mjs +1 -1
  258. package/esm2022/object-marker/fundamental-ngx-platform-object-marker.mjs +1 -1
  259. package/esm2022/object-marker/index.mjs +1 -1
  260. package/esm2022/object-marker/object-marker.component.mjs +8 -3
  261. package/esm2022/object-marker/object-marker.module.mjs +1 -1
  262. package/esm2022/object-status/fundamental-ngx-platform-object-status.mjs +1 -1
  263. package/esm2022/object-status/index.mjs +1 -1
  264. package/esm2022/object-status/object-status.component.mjs +8 -3
  265. package/esm2022/object-status/object-status.module.mjs +1 -1
  266. package/esm2022/page-footer/fundamental-ngx-platform-page-footer.mjs +1 -1
  267. package/esm2022/page-footer/index.mjs +1 -1
  268. package/esm2022/page-footer/page-footer.component.mjs +1 -1
  269. package/esm2022/page-footer/page-footer.module.mjs +1 -1
  270. package/esm2022/panel/fundamental-ngx-platform-panel.mjs +1 -1
  271. package/esm2022/panel/index.mjs +3 -3
  272. package/esm2022/panel/panel-actions.component.mjs +1 -1
  273. package/esm2022/panel/panel-content/panel-content.component.mjs +1 -1
  274. package/esm2022/panel/panel.component.mjs +1 -1
  275. package/esm2022/panel/panel.config.mjs +1 -1
  276. package/esm2022/panel/panel.module.mjs +1 -1
  277. package/esm2022/search-field/fundamental-ngx-platform-search-field.mjs +1 -1
  278. package/esm2022/search-field/index.mjs +2 -2
  279. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
  280. package/esm2022/search-field/search-field-mobile/search-field-mobile.interface.mjs +1 -1
  281. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +1 -1
  282. package/esm2022/search-field/search-field.component.mjs +2 -2
  283. package/esm2022/search-field/search-field.module.mjs +1 -1
  284. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +1 -1
  285. package/esm2022/settings-generator/default-config.mjs +1 -1
  286. package/esm2022/settings-generator/fundamental-ngx-platform-settings-generator.mjs +1 -1
  287. package/esm2022/settings-generator/index.mjs +5 -5
  288. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +2 -2
  289. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
  290. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  291. package/esm2022/settings-generator/models/settings-config.model.mjs +1 -1
  292. package/esm2022/settings-generator/models/settings-generator.model.mjs +1 -1
  293. package/esm2022/settings-generator/models/settings.model.mjs +1 -1
  294. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
  295. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
  296. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +1 -1
  297. package/esm2022/settings-generator/settings-generator.component.mjs +1 -1
  298. package/esm2022/settings-generator/settings-generator.module.mjs +1 -1
  299. package/esm2022/settings-generator/settings-generator.service.mjs +2 -2
  300. package/esm2022/settings-generator/tokens.mjs +1 -1
  301. package/esm2022/shared/base.mjs +1 -1
  302. package/esm2022/shared/domain/array-data-source.mjs +2 -2
  303. package/esm2022/shared/domain/base-data-provider.mjs +3 -3
  304. package/esm2022/shared/domain/data-model.mjs +1 -1
  305. package/esm2022/shared/domain/data-source.mjs +1 -1
  306. package/esm2022/shared/domain/observable-data-source.mjs +2 -2
  307. package/esm2022/shared/form/base.input.mjs +1 -1
  308. package/esm2022/shared/form/collection-base.input.mjs +4 -4
  309. package/esm2022/shared/form/form-error.mjs +1 -1
  310. package/esm2022/shared/form/form-field.mjs +1 -1
  311. package/esm2022/shared/form/form-options.mjs +1 -1
  312. package/esm2022/shared/form/hint-options.mjs +1 -1
  313. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +3 -3
  314. package/esm2022/shared/fundamental-ngx-platform-shared.mjs +1 -1
  315. package/esm2022/shared/index.mjs +4 -4
  316. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +1 -1
  317. package/esm2022/shared/pipes/pipe.module.mjs +1 -1
  318. package/esm2022/shared/platform.config.mjs +1 -1
  319. package/esm2022/shared/preset-management/preset-managed-component.interface.mjs +1 -1
  320. package/esm2022/shared/preset-management/preset-management.token.mjs +1 -1
  321. package/esm2022/shared/testing/event-objects.mjs +1 -1
  322. package/esm2022/shared/utils/lang.mjs +1 -1
  323. package/esm2022/slider/fundamental-ngx-platform-slider.mjs +1 -1
  324. package/esm2022/slider/index.mjs +1 -1
  325. package/esm2022/slider/slider.component.mjs +2 -2
  326. package/esm2022/slider/slider.module.mjs +1 -1
  327. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +1 -1
  328. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +1 -1
  329. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
  330. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.mjs +1 -1
  331. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
  332. package/esm2022/smart-filter-bar/constants.mjs +1 -1
  333. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +1 -1
  334. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +1 -1
  335. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +1 -1
  336. package/esm2022/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  337. package/esm2022/smart-filter-bar/helpers.mjs +1 -1
  338. package/esm2022/smart-filter-bar/index.mjs +8 -8
  339. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-change.mjs +1 -1
  340. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
  341. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.mjs +1 -1
  342. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-definition.mjs +1 -1
  343. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-field-filter-item.mjs +1 -1
  344. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
  345. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-visibility-category.mjs +1 -1
  346. package/esm2022/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.mjs +1 -1
  347. package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
  348. package/esm2022/smart-filter-bar/providers/smart-filter-bar.provider.mjs +1 -1
  349. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
  350. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
  351. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +1 -1
  352. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +2 -2
  353. package/esm2022/split-menu-button/fundamental-ngx-platform-split-menu-button.mjs +1 -1
  354. package/esm2022/split-menu-button/index.mjs +1 -1
  355. package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
  356. package/esm2022/split-menu-button/split-menu-button.module.mjs +1 -1
  357. package/esm2022/table/components/index.mjs +9 -9
  358. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +1 -1
  359. package/esm2022/table/components/reset-button/reset-button.component.mjs +1 -1
  360. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
  361. package/esm2022/table/components/table-column/table-column.component.mjs +1 -1
  362. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +1 -1
  363. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
  364. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +1 -1
  365. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
  366. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +1 -1
  367. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
  368. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
  369. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +1 -1
  370. package/esm2022/table/components/table-p13-dialog/filtering/filtering.model.mjs +1 -1
  371. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
  372. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
  373. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +1 -1
  374. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +1 -1
  375. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +1 -1
  376. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +1 -1
  377. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +1 -1
  378. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
  379. package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
  380. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +1 -1
  381. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +1 -1
  382. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
  383. package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
  384. package/esm2022/table/components/table-view-settings-dialog/filtering/constants.mjs +1 -1
  385. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +1 -1
  386. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  387. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  388. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +1 -1
  389. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-active-step.mjs +1 -1
  390. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  391. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
  392. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  393. package/esm2022/table/components/table-view-settings-dialog/index.mjs +3 -3
  394. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  395. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +1 -1
  396. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +1 -1
  397. package/esm2022/table/fundamental-ngx-platform-table.mjs +1 -1
  398. package/esm2022/table/index.mjs +15 -15
  399. package/esm2022/table/table.component.mjs +14 -10
  400. package/esm2022/table/table.module.mjs +1 -1
  401. package/esm2022/table-helpers/constants/index.mjs +1 -1
  402. package/esm2022/table-helpers/constants/tokens.mjs +1 -1
  403. package/esm2022/table-helpers/directives/index.mjs +7 -7
  404. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +3 -3
  405. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
  406. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +3 -3
  407. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +2 -2
  408. package/esm2022/table-helpers/directives/table-cell.directive.mjs +1 -1
  409. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -2
  410. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +1 -1
  411. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +2 -2
  412. package/esm2022/table-helpers/directives/table-header.directive.mjs +1 -1
  413. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +1 -1
  414. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  415. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +1 -1
  416. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +2 -2
  417. package/esm2022/table-helpers/domain/array-data-source.mjs +3 -3
  418. package/esm2022/table-helpers/domain/data-source-parser.class.mjs +1 -1
  419. package/esm2022/table-helpers/domain/index.mjs +4 -4
  420. package/esm2022/table-helpers/domain/observable-data-source.mjs +3 -3
  421. package/esm2022/table-helpers/domain/table-data-provider.mjs +1 -1
  422. package/esm2022/table-helpers/domain/table-data-source.mjs +1 -1
  423. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +1 -1
  424. package/esm2022/table-helpers/enums/column-align.enum.mjs +1 -1
  425. package/esm2022/table-helpers/enums/filter-type.enum.mjs +1 -1
  426. package/esm2022/table-helpers/enums/index.mjs +4 -4
  427. package/esm2022/table-helpers/enums/row-type.enum.mjs +1 -1
  428. package/esm2022/table-helpers/enums/selection-mode.enum.mjs +1 -1
  429. package/esm2022/table-helpers/enums/sort-direction.enum.mjs +1 -1
  430. package/esm2022/table-helpers/fundamental-ngx-platform-table-helpers.mjs +1 -1
  431. package/esm2022/table-helpers/helpers.mjs +6 -3
  432. package/esm2022/table-helpers/index.mjs +9 -9
  433. package/esm2022/table-helpers/interfaces/collection-filter.interface.mjs +1 -1
  434. package/esm2022/table-helpers/interfaces/collection-group.interface.mjs +1 -1
  435. package/esm2022/table-helpers/interfaces/collection-page.interface.mjs +1 -1
  436. package/esm2022/table-helpers/interfaces/collection-sort.interface.mjs +1 -1
  437. package/esm2022/table-helpers/interfaces/collection-state.interface.mjs +1 -1
  438. package/esm2022/table-helpers/interfaces/column-responsive-state.interface.mjs +1 -1
  439. package/esm2022/table-helpers/interfaces/index.mjs +3 -4
  440. package/esm2022/table-helpers/interfaces/selection-value.interface.mjs +1 -1
  441. package/esm2022/table-helpers/interfaces/table-state.interface.mjs +1 -1
  442. package/esm2022/table-helpers/models/column-freeze-event.model.mjs +1 -1
  443. package/esm2022/table-helpers/models/columns-change-event.model.mjs +1 -1
  444. package/esm2022/table-helpers/models/data-source.type.mjs +1 -1
  445. package/esm2022/table-helpers/models/directives.mjs +1 -1
  446. package/esm2022/table-helpers/models/dnd.mjs +1 -1
  447. package/esm2022/table-helpers/models/filter-change-event.model.mjs +1 -1
  448. package/esm2022/table-helpers/models/group-change-event.model.mjs +1 -1
  449. package/esm2022/table-helpers/models/index.mjs +15 -15
  450. package/esm2022/table-helpers/models/page-change-event.model.mjs +1 -1
  451. package/esm2022/table-helpers/models/row-comparator.model.mjs +1 -1
  452. package/esm2022/table-helpers/models/save-rows-event.interface.mjs +1 -1
  453. package/esm2022/table-helpers/models/search-change-event.model.mjs +1 -1
  454. package/esm2022/table-helpers/models/selection-change-event.model.mjs +1 -1
  455. package/esm2022/table-helpers/models/sort-change-event.model.mjs +1 -1
  456. package/esm2022/table-helpers/models/table-dialog-common-data.model.mjs +1 -1
  457. package/esm2022/table-helpers/models/table-item.model.mjs +1 -1
  458. package/esm2022/table-helpers/models/table-managed-preset.mjs +1 -1
  459. package/esm2022/table-helpers/models/table-row-activate-event.model.mjs +1 -1
  460. package/esm2022/table-helpers/models/table-row-toggle-open-state-event.model.mjs +1 -1
  461. package/esm2022/table-helpers/models/table-row.model.mjs +1 -1
  462. package/esm2022/table-helpers/models/table-rows-rearrange-event.model.mjs +1 -1
  463. package/esm2022/table-helpers/models/tree-table.model.mjs +1 -1
  464. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +1 -1
  465. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +1 -1
  466. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +1 -1
  467. package/esm2022/table-helpers/pipes/index.mjs +1 -1
  468. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +1 -1
  469. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +1 -1
  470. package/esm2022/table-helpers/services/table-column-resize.service.mjs +3 -4
  471. package/esm2022/table-helpers/services/table-responsive.service.mjs +1 -1
  472. package/esm2022/table-helpers/services/table-row.service.mjs +1 -1
  473. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
  474. package/esm2022/table-helpers/services/table.service.mjs +1 -1
  475. package/esm2022/table-helpers/table-cell.class.mjs +1 -1
  476. package/esm2022/table-helpers/table-column.mjs +1 -1
  477. package/esm2022/table-helpers/table-helpers.module.mjs +2 -2
  478. package/esm2022/table-helpers/table.mjs +1 -1
  479. package/esm2022/table-helpers/utils.mjs +1 -1
  480. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +1 -1
  481. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
  482. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +26 -6
  483. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +7 -3
  484. package/esm2022/value-help-dialog/constans/condition-display.function.mjs +2 -2
  485. package/esm2022/value-help-dialog/constans/index.mjs +1 -1
  486. package/esm2022/value-help-dialog/constans/variables.mjs +1 -1
  487. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +1 -1
  488. package/esm2022/value-help-dialog/directives/value-help-column-def.directive.mjs +24 -0
  489. package/esm2022/value-help-dialog/directives/value-help-filter-def.directive.mjs +22 -0
  490. package/esm2022/value-help-dialog/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  491. package/esm2022/value-help-dialog/index.mjs +4 -3
  492. package/esm2022/value-help-dialog/models/index.mjs +2 -2
  493. package/esm2022/value-help-dialog/models/vhd-component.model.mjs +3 -0
  494. package/esm2022/value-help-dialog/models/vhd-data.source.mjs +1 -1
  495. package/esm2022/value-help-dialog/models/vhd-filter-rule.model.mjs +1 -1
  496. package/esm2022/value-help-dialog/models/vhd-filter.model.mjs +1 -1
  497. package/esm2022/value-help-dialog/models/vhd-strategy.enum.mjs +1 -1
  498. package/esm2022/value-help-dialog/models/vhd-tab-type.enum.mjs +1 -1
  499. package/esm2022/value-help-dialog/models/vhd-table-selection.type.mjs +1 -1
  500. package/esm2022/value-help-dialog/models/vhd-type-condition.enum.mjs +1 -1
  501. package/esm2022/value-help-dialog/models/vhd-value.model.mjs +1 -1
  502. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +26 -6
  503. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +1 -1
  504. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +1 -1
  505. package/esm2022/variant-management/components/manage-variants-dialog/data-provider.mjs +1 -1
  506. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
  507. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +1 -1
  508. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +1 -1
  509. package/esm2022/variant-management/fundamental-ngx-platform-variant-management.mjs +1 -1
  510. package/esm2022/variant-management/index.mjs +4 -4
  511. package/esm2022/variant-management/models/save-dialog.model.mjs +1 -1
  512. package/esm2022/variant-management/models/variant-management.mjs +1 -1
  513. package/esm2022/variant-management/models/variant.interface.mjs +1 -1
  514. package/esm2022/variant-management/tokens.mjs +1 -1
  515. package/esm2022/variant-management/variant-item.class.mjs +1 -1
  516. package/esm2022/variant-management/variant-management.component.mjs +2 -2
  517. package/esm2022/variant-management/variant-management.module.mjs +1 -1
  518. package/esm2022/wizard-generator/base-wizard-generator.mjs +2 -2
  519. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
  520. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
  521. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
  522. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
  523. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
  524. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +1 -1
  525. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +1 -1
  526. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +1 -1
  527. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +1 -1
  528. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +1 -1
  529. package/esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.mjs +1 -1
  530. package/esm2022/wizard-generator/index.mjs +10 -10
  531. package/esm2022/wizard-generator/interfaces/wizard-dialog-data.interface.mjs +1 -1
  532. package/esm2022/wizard-generator/interfaces/wizard-generator-form-group.interface.mjs +1 -1
  533. package/esm2022/wizard-generator/interfaces/wizard-generator-forms.interface.mjs +1 -1
  534. package/esm2022/wizard-generator/interfaces/wizard-generator-item.interface.mjs +1 -1
  535. package/esm2022/wizard-generator/interfaces/wizard-generator-summary-item.interface.mjs +1 -1
  536. package/esm2022/wizard-generator/interfaces/wizard-navigation-buttons.interface.mjs +1 -1
  537. package/esm2022/wizard-generator/interfaces/wizard-step.interface.mjs +1 -1
  538. package/esm2022/wizard-generator/interfaces/wizard-title.interface.mjs +1 -1
  539. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +1 -1
  540. package/esm2022/wizard-generator/wizard-generator.module.mjs +8 -8
  541. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  542. package/feed-input/index.d.ts +1 -1
  543. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +889 -889
  544. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  545. package/fesm2022/fundamental-ngx-platform-button.mjs +8 -3
  546. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  547. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  548. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
  549. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  550. package/fesm2022/fundamental-ngx-platform-form.mjs +2729 -2716
  551. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  552. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
  553. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  554. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  555. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  556. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  557. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -23
  558. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  559. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -3
  560. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  561. package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
  562. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  563. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +353 -353
  564. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  565. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
  566. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
  567. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  568. package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
  569. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  570. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  571. package/fesm2022/fundamental-ngx-platform-panel.mjs +10 -10
  572. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  573. package/fesm2022/fundamental-ngx-platform-search-field.mjs +13 -13
  574. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  575. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  576. package/fesm2022/fundamental-ngx-platform-shared.mjs +62 -62
  577. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  578. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  579. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +20 -20
  580. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  581. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
  582. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  583. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2925 -2922
  584. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  585. package/fesm2022/fundamental-ngx-platform-table.mjs +365 -360
  586. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  587. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +182 -98
  588. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  589. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +177 -177
  590. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  591. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +41 -41
  592. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  593. package/form/combobox/combobox.config.d.ts +1 -1
  594. package/form/date-picker/date-picker.component.d.ts +5 -5
  595. package/form/datetime-picker/datetime-picker.component.d.ts +3 -3
  596. package/form/form-generator/dynamic-form-control.directive.d.ts +3 -3
  597. package/form/form-generator/form-generator.service.d.ts +2 -2
  598. package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
  599. package/form/form-group/services/form-field-layout.service.d.ts +1 -1
  600. package/form/form-helpers.d.ts +1 -1
  601. package/form/input-group/addon.component.d.ts +1 -1
  602. package/form/multi-combobox/multi-combobox.config.d.ts +1 -1
  603. package/form/multi-input/index.d.ts +1 -1
  604. package/form/multi-input/multi-input.config.d.ts +1 -1
  605. package/form/select/commons/base-select.d.ts +4 -1
  606. package/form/step-input/base.step-input.d.ts +4 -5
  607. package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
  608. package/icon-tab-bar/index.d.ts +7 -7
  609. package/icon-tab-bar/interfaces/icon-tab-bar-item.interface.d.ts +1 -1
  610. package/list/index.d.ts +12 -12
  611. package/menu/index.d.ts +2 -2
  612. package/menu-button/index.d.ts +1 -1
  613. package/menu-button/menu-button.component.d.ts +5 -2
  614. package/message-popover/index.d.ts +4 -4
  615. package/message-popover/models/message-popover-entry.interface.d.ts +1 -1
  616. package/message-popover/models/message-popover.interface.d.ts +1 -1
  617. package/message-popover/utils.d.ts +1 -1
  618. package/object-marker/object-marker.component.d.ts +4 -1
  619. package/object-status/object-status.component.d.ts +4 -1
  620. package/package.json +4 -4
  621. package/panel/index.d.ts +2 -2
  622. package/schematics/ng-add/index.js +1 -1
  623. package/search-field/index.d.ts +1 -1
  624. package/settings-generator/index.d.ts +4 -4
  625. package/settings-generator/layouts/base-settings-generator-layout.d.ts +1 -1
  626. package/settings-generator/settings-generator.service.d.ts +2 -2
  627. package/shared/domain/array-data-source.d.ts +0 -3
  628. package/shared/form/collection-base.input.d.ts +1 -1
  629. package/shared/form/form-field.d.ts +2 -2
  630. package/shared/form/hint-options.d.ts +2 -2
  631. package/shared/form/inline-layout-collection-base.input.d.ts +1 -1
  632. package/shared/index.d.ts +3 -3
  633. package/smart-filter-bar/index.d.ts +7 -7
  634. package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +2 -2
  635. package/smart-filter-bar/interfaces/smart-filter-bar-custom-filter-config.d.ts +1 -1
  636. package/smart-filter-bar/interfaces/smart-filter-bar-field-definition.d.ts +1 -1
  637. package/smart-filter-bar/interfaces/smart-filter-dynamic-form-item.d.ts +1 -1
  638. package/smart-filter-bar/smart-filter-bar.service.d.ts +2 -2
  639. package/split-menu-button/split-menu-button.component.d.ts +5 -2
  640. package/table/components/index.d.ts +8 -8
  641. package/table/components/table-view-settings-dialog/index.d.ts +2 -2
  642. package/table/index.d.ts +14 -14
  643. package/table/table.component.d.ts +4 -0
  644. package/table-helpers/constants/index.d.ts +1 -1
  645. package/table-helpers/directives/index.d.ts +6 -6
  646. package/table-helpers/directives/platform-table-column-responsive.directive.d.ts +1 -1
  647. package/table-helpers/directives/table-scrollable.directive.d.ts +1 -1
  648. package/table-helpers/domain/array-data-source.d.ts +3 -3
  649. package/table-helpers/domain/index.d.ts +3 -3
  650. package/table-helpers/domain/observable-data-source.d.ts +3 -3
  651. package/table-helpers/enums/index.d.ts +3 -3
  652. package/table-helpers/helpers.d.ts +1 -1
  653. package/table-helpers/index.d.ts +8 -8
  654. package/table-helpers/interfaces/collection-filter.interface.d.ts +1 -1
  655. package/table-helpers/interfaces/collection-state.interface.d.ts +1 -1
  656. package/table-helpers/interfaces/index.d.ts +2 -3
  657. package/table-helpers/models/filter-change-event.model.d.ts +1 -1
  658. package/table-helpers/models/group-change-event.model.d.ts +1 -1
  659. package/table-helpers/models/index.d.ts +14 -14
  660. package/table-helpers/models/sort-change-event.model.d.ts +1 -1
  661. package/table-helpers/pipes/selection-cell-styles.pipe.d.ts +1 -1
  662. package/table-helpers/table.d.ts +1 -0
  663. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +9 -2
  664. package/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.d.ts +5 -1
  665. package/value-help-dialog/constans/condition-display.function.d.ts +1 -1
  666. package/value-help-dialog/directives/value-help-column-def.directive.d.ts +17 -0
  667. package/value-help-dialog/directives/value-help-filter-def.directive.d.ts +15 -0
  668. package/value-help-dialog/index.d.ts +3 -2
  669. package/value-help-dialog/models/index.d.ts +1 -1
  670. package/value-help-dialog/models/vhd-component.model.d.ts +5 -0
  671. package/value-help-dialog/models/vhd-filter.model.d.ts +3 -0
  672. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +8 -6
  673. package/variant-management/index.d.ts +3 -3
  674. package/variant-management/models/variant-management.d.ts +1 -1
  675. package/wizard-generator/base-wizard-generator.d.ts +1 -1
  676. package/wizard-generator/index.d.ts +9 -9
  677. package/wizard-generator/interfaces/wizard-generator-form-group.interface.d.ts +1 -1
  678. package/wizard-generator/interfaces/wizard-generator-item.interface.d.ts +1 -1
  679. package/wizard-generator/interfaces/wizard-step.interface.d.ts +2 -2
  680. package/wizard-generator/wizard-generator.service.d.ts +1 -1
  681. package/fundamental-ngx-platform-v0.48.0-rc.2.tgz +0 -0
  682. package/schematics/ng-add/index.ts +0 -64
  683. package/schematics/ng-add/schema.ts +0 -3
  684. package/schematics/utils/package-utils.ts +0 -104
@@ -697,4 +697,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
697
697
  type: ViewChildren,
698
698
  args: [InputMessageGroupWithTemplate]
699
699
  }] } });
700
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEcsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULElBQUksRUFFSixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsV0FBVyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFnQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVks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QUFDLDZCQUE2QixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFLOUQsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLHFCQUFxQjtnQkFLeEIsb0JBQW9CO3NCQUQzQixlQUFlO3VCQUFDLHVCQUF1QjtnQkFLdkIscUJBQXFCO3NCQURyQyxZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFByb3ZpZGVyLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZvcm1GaWVsZENvbnRyb2wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db21wb25lbnQsIEZvcm1MYWJlbENvbXBvbmVudCwgRm9ybU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgSW5saW5lSGVscERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pbmxpbmUtaGVscCc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpbmsnO1xuaW1wb3J0IHtcbiAgICBDb2x1bW4sXG4gICAgQ29sdW1uTGF5b3V0LFxuICAgIEZpZWxkSGludElucHV0LFxuICAgIEZpZWxkSGludE9wdGlvbnMsXG4gICAgRm9ybUVycm9yLFxuICAgIEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlQ29udGV4dCxcbiAgICBGb3JtRmllbGRHcm91cCxcbiAgICBGb3JtR3JvdXBDb250YWluZXIsXG4gICAgSGludENvbnRlbnQsXG4gICAgTGFiZWxMYXlvdXQsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgIFJFU1BPTlNJVkVfQlJFQUtQT0lOVFNfQ09ORklHLFxuICAgIFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnLFxuICAgIFJlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgZ2V0Rm9ybVN0YXRlIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBJbnB1dE1lc3NhZ2VHcm91cFdpdGhUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL2lucHV0LW1lc3NhZ2UtZ3JvdXAtd2l0aC10ZW1wbGF0ZS9pbnB1dC1tZXNzYWdlLWdyb3VwLXdpdGgtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IGRlZmF1bHRGb3JtRmllbGRIaW50T3B0aW9ucyB9IGZyb20gJy4uL2NvbmZpZy9kZWZhdWx0LWZvcm0tZmllbGQtaGludC1vcHRpb25zJztcbmltcG9ydCB7IEZPUk1fR1JPVVBfQ0hJTERfRklFTERfVE9LRU4gfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBGRFBfRk9STV9GSUVMRF9ISU5UX0xBWU9VVF9DT05GSUcsXG4gICAgRkRQX0ZPUk1fRklFTERfSElOVF9PUFRJT05TX0RFRkFVTFQsXG4gICAgSGludExheW91dENvbmZpZ1xufSBmcm9tICcuLi9mZHAtZm9ybS50b2tlbnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2xFeHRyYXNDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkLWV4dHJhcy9mb3JtLWZpZWxkLWV4dHJhcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2VuZXJhdGVDb2x1bW5DbGFzcywgbm9ybWFsaXplQ29sdW1uTGF5b3V0IH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBGb3JtRmllbGRMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS1maWVsZC1sYXlvdXQuc2VydmljZSc7XG5cbmxldCBkZWZhdWx0SWQgPSAwO1xuXG5jb25zdCBmb3JtRmllbGRQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogRkRfRk9STV9GSUVMRCxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtRmllbGRDb21wb25lbnQpXG59O1xuXG5jb25zdCBmb3JtR3JvdXBDaGlsZFByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBGT1JNX0dST1VQX0NISUxEX0ZJRUxEX1RPS0VOLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1GaWVsZENvbXBvbmVudClcbn07XG5cbi8qKlxuICogRm9ybSBGaWVsZCByZXByZXNlbnQgYWN0dWFsIHJvdyBhbmQgYWdncmVnYXRlcyBjb21tb24gYmVoYXZpb3IgZm9yIHRoZSBpbnB1dCBmaWVsZCBzdWNoIGFzXG4gKiBlcnJvciwgbGFiZWwgb3IgaGludC5cbiAqIEhpbnQgaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgbGlzdGVuaW5nIGZvciBGaWVsZENvbnRyb2wgY2hhbmdlcyBhbmQgdHJpZ2dlciBuZWNlc3NhcnlcbiAqIGNoYW5nZSBkZXRlY3Rpb25cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWZvcm0tZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW2Zvcm1GaWVsZFByb3ZpZGVyLCBmb3JtR3JvdXBDaGlsZFByb3ZpZGVyLCBGb3JtRmllbGRMYXlvdXRTZXJ2aWNlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3JtSXRlbUNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgSW5wdXRNZXNzYWdlR3JvdXBXaXRoVGVtcGxhdGUsXG4gICAgICAgIEZvcm1NZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICBGb3JtTGFiZWxDb21wb25lbnQsXG4gICAgICAgIExpbmtDb21wb25lbnQsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIElubGluZUhlbHBEaXJlY3RpdmUsXG4gICAgICAgIEFzeW5jUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBQbGF0Zm9ybUZvcm1GaWVsZCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICAgIC8qKiBGb3JtIGZpZWxkIGxhYmVsICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU3VmZml4IGZvciBpZHMgb2YgY29udHJvbCBlbGVtZW50cyBpbnNpZGUgdGhpcyBmb3JtIGZpZWxkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nID0gKCsrZGVmYXVsdElkKS50b1N0cmluZygpO1xuXG4gICAgLyoqIEhpbnQgdG8gYmUgcGxhY2VkIG5leHQgdG8gbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpbnQ6IE51bGxhYmxlPEZpZWxkSGludElucHV0PjtcblxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGVuIGZvcm0gZmllbGQgbGFiZWwgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5vTGFiZWxMYXlvdXQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIHZhbGlkYXRvcnMgYXBwbGllZCB0byB0aGUgZm9ybSBmaWVsZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3JdO1xuXG4gICAgLyoqXG4gICAgICogUmFuayBpcyB1c2VkIGZvciBvcmRlcmluZy5cbiAgICAgKiBGaXJzdCBsb3dlciBudW1iZXIsIHRoZW4gLSBoaWdoZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJhbms6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyIGZvciB0aGUgZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogRm9ybSBDb250YWluZXIgY29sdW1uIGl0IGJlbG9uZ3MgdG8gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbjogbnVtYmVyO1xuXG4gICAgLyoqIG9iamVjdCBmb3IgcGxhY2luZyBmaWVsZCBpbiBjb2x1bW4gaW4gZWFjaCBzY3JlZW4gbGF5b3V0ICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1uTGF5b3V0KGxheW91dDogQ29sdW1uTGF5b3V0IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghbGF5b3V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29sdW1uTGF5b3V0ID0gbGF5b3V0O1xuICAgICAgICB0aGlzLl9pc0NvbHVtbkxheW91dEVuYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zZXRMYXlvdXQoKTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uTGF5b3V0KCk6IENvbHVtbkxheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5MYXlvdXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgbGFiZWxDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQgPSBub3JtYWxpemVDb2x1bW5MYXlvdXQodmFsdWUpO1xuICAgICAgICB0aGlzLl9sYWJlbENvbHVtbkxheW91dENsYXNzID0gZ2VuZXJhdGVDb2x1bW5DbGFzcyh0aGlzLl9sYWJlbENvbHVtbkxheW91dCk7XG4gICAgICAgIHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0JC5uZXh0KHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0KTtcbiAgICB9XG5cbiAgICBnZXQgbGFiZWxDb2x1bW5MYXlvdXQoKTogQ29sdW1uTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkQ29sdW1uTGF5b3V0KHZhbHVlOiBDb2x1bW5MYXlvdXQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZmllbGRDb2x1bW5MYXlvdXQgPSBub3JtYWxpemVDb2x1bW5MYXlvdXQodmFsdWUpO1xuICAgICAgICB0aGlzLl9maWVsZENvbHVtbkxheW91dENsYXNzID0gZ2VuZXJhdGVDb2x1bW5DbGFzcyh0aGlzLl9maWVsZENvbHVtbkxheW91dCk7XG4gICAgICAgIHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0JC5uZXh0KHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0KTtcbiAgICB9XG5cbiAgICBnZXQgZmllbGRDb2x1bW5MYXlvdXQoKTogQ29sdW1uTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZ2FwQ29sdW1uTGF5b3V0KHZhbHVlOiBDb2x1bW5MYXlvdXQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZ2FwQ29sdW1uTGF5b3V0ID0gbm9ybWFsaXplQ29sdW1uTGF5b3V0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZ2FwQ29sdW1uTGF5b3V0Q2xhc3MgPSBnZW5lcmF0ZUNvbHVtbkNsYXNzKHRoaXMuX2dhcENvbHVtbkxheW91dCk7XG4gICAgICAgIHRoaXMuX2dhcENvbHVtbkxheW91dCQubmV4dCh0aGlzLl9nYXBDb2x1bW5MYXlvdXQpO1xuICAgIH1cblxuICAgIGdldCBnYXBDb2x1bW5MYXlvdXQoKTogQ29sdW1uTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dhcENvbHVtbkxheW91dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2xhdGlvbnMgdGVtcGxhdGUgcmVmZXJlbmNlLlxuICAgICAqIFRoaXMgaXMgaW4gbW9zdCBvZiB0aGUgY2FzZXMgc2V0IGZyb20gcGFyZW50IGNvbnRhaW5lciAoZm9ybS1ncm91cClcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGkxOFN0cmluZ3M6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogU2V0IHdoZW4gZm9ybSBmaWVsZCBpcyBhIG1hbmRhdG9yeSBvbmUuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIGZpZWxkIGlzIGVkaXRhYmxlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZWRpdGFibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBuZXdWYWwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5fZWRpdGFibGUgIT09IG5ld1ZhbCkge1xuICAgICAgICAgICAgdGhpcy5fZWRpdGFibGUgPSBuZXdWYWw7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdGFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybSBmaWVsZCBjdXN0b20gd2lkdGggaW4gY29sdW1ucyBtdXN0IGJlIGJldHdlZW4gMSAtIDEyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQ29sdW1uKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSA8Q29sdW1uPmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1ucygpOiBDb2x1bW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtYXJrcyBmaWVsZCBhcyBkaXNhYmxlZC4gdXNlZCBpbiByZWFjdGl2ZSBmb3JtIGFwcHJvYWNoLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGxhYmVsIHRleHQgc2hvdWxkIGJlIGFwcGVuZGVkIHdpdGggY29sb24uICovXG4gICAgQElucHV0KClcbiAgICBjb2xvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBHcm91cCBDb250YWluZXIgdG8gYmluZCB0aGUgRm9ybS1GaWVsZCB0by5cbiAgICAgKiBUaGlzIHdpbGwgb3ZlcnJpZGUgZGVmYXVsdCB2YWx1ZSBpbmplY3RlZCBieSBjb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybUdyb3VwQ29udGFpbmVyOiBGb3JtR3JvdXBDb250YWluZXI7XG5cbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgZm9ybUZpZWxkQ29udHJvbCdzIHN0YXRlIGNoYW5nZXMgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuZXZlciBjb2x1bW4gbGF5b3V0IGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvbkNvbHVtbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZvcm0gZmllbGQgdGVtcGxhdGUgcmVmZXJlbmNlXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncmVuZGVyZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJlbmRlcmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEZvcm1GaWVsZENvbnRyb2xFeHRyYXNDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGZvcm1GaWVsZEV4dHJhcz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsYWJlbENvbCcpIGxhYmVsQ29sPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoSW5wdXRNZXNzYWdlR3JvdXBXaXRoVGVtcGxhdGUsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGlucHV0TWVzc2FnZUdyb3VwOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5uZXJFcnJvclJlbmRlcmVycycpXG4gICAgaW5uZXJFcnJvclJlbmRlcmVyczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSlcbiAgICBwcml2YXRlIF9lcnJvckRpcmVjdGl2ZVF1ZXJ5OiBRdWVyeUxpc3Q8Rm9ybUVycm9yPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihJbnB1dE1lc3NhZ2VHcm91cFdpdGhUZW1wbGF0ZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbnB1dE1lc3NhZ2VHcm91cENtcDogUXVlcnlMaXN0PElucHV0TWVzc2FnZUdyb3VwV2l0aFRlbXBsYXRlPjtcblxuICAgIC8qKiBDb21iaW5lZCBFcnJvciBkaXJlY3RpdmVzIGZyb20gZmllbGQgaXRzZWxmIGFuZCBwYXJlbnQgZm9ybSBjb250YWluZXIuICovXG4gICAgZ2V0IGVycm9yRGlyZWN0aXZlcygpOiBGb3JtRXJyb3JbXSB7XG4gICAgICAgIHJldHVybiB1bmlxQnkoWy4uLnRoaXMuX2Vycm9yRGlyZWN0aXZlcywgLi4udGhpcy5fZm9ybUdyb3VwRXJyb3JEaXJlY3RpdmVzXSwgJ2Vycm9yJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpc0hvcml6b250YWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICogQ2hpbGQgRm9ybUZpZWxkQ29udHJvbFxuICAgICAqL1xuICAgIGNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9sYWJlbENvbHVtbkxheW91dENsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9maWVsZENvbHVtbkxheW91dENsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9nYXBDb2x1bW5MYXlvdXRDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogaGludCBhbmQgaGludCBwbGFjZW1lbnQgY29lcmNlZCB0byB0aGUgRmllbGRIaW50T3B0aW9uc1xuICAgICAqL1xuICAgIGhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zID0gZGVmYXVsdEZvcm1GaWVsZEhpbnRPcHRpb25zIGFzIHVua25vd24gYXMgRmllbGRIaW50T3B0aW9ucztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Vycm9yRGlyZWN0aXZlczogRm9ybUVycm9yW10gPSBbXTtcblxuICAgIC8qKiBHcm91cGVkIGVycm9ycy4gKi9cbiAgICBncm91cGVkRXJyb3JzOiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgLyoqIEV2ZW50IGVtaXRlZCB3aGVuIGVycm9ycyBvYmplY3QgYmVpbmcgY2hhbmdlZC4gKi9cbiAgICBlcnJvcnNDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBPcHRpb25hbCBGb3JtQ29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfY29sdW1uczogQ29sdW1uID0gNjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9lZGl0YWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNDb2x1bW5MYXlvdXRFbmFibGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBjb2x1bW4gbnVtYmVyIGZvciBkaWZmZXJlbnQgc2NyZWVuIHNpemVzICovXG4gICAgcHJpdmF0ZSBfeGxDb2x1bW5OdW1iZXI6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGdDb2x1bW5OdW1iZXI6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWRDb2x1bW5OdW1iZXI6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc0NvbHVtbk51bWJlciA9IDE7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZzogUmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xhYmVsTGF5b3V0OiBMYWJlbExheW91dDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFiZWxDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtR3JvdXBFcnJvckRpcmVjdGl2ZXM6IEZvcm1FcnJvcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1Hcm91cEVycm9yRGlyZWN0aXZlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lcnJvckRpcmVjdGl2ZXNDZHI6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuIHdoZXRoZXIgbGFiZWwgYW5kIGNvbnRyb2wgYXJlIHZlcnRpY2FsbHkgYWxpZ25lZCAqL1xuICAgIHByaXZhdGUgZ2V0IF9pc0hvcml6b250YWxBbGlnbm1lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dE1lc3NhZ2VHcm91cCB8fCAhdGhpcy5sYWJlbENvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlucHV0TWVzc2FnZUdyb3VwWSA9IHRoaXMuaW5wdXRNZXNzYWdlR3JvdXAubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55O1xuICAgICAgICBjb25zdCBsYWJlbENvbFJlY3QgPSB0aGlzLmxhYmVsQ29sLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGxhYmVsQ29sQm90dG9tWSA9IGxhYmVsQ29sUmVjdC55ICsgbGFiZWxDb2xSZWN0LmhlaWdodDtcbiAgICAgICAgcmV0dXJuIGxhYmVsQ29sQm90dG9tWSA+IGlucHV0TWVzc2FnZUdyb3VwWTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU3VtIG9mIGV4dHJhIGhlaWdodHMgaW5zaWRlIGZvcm0gY29udHJvbCBhbmQgZm9ybUZpZWxkRXh0cmFzLlxuICAgICAqIExhYmVsIHdpbGwgYmUgc2hpZnRlZCBieSB0aGlzIG51bWJlciBpbiBvcmRlciB0byBiZSBwcm9wZXJseSBhbGlnbmVkIHdpdGggdGhlIGNvbnRyb2xcbiAgICAgKi9cbiAgICBnZXQgX2NvbnRyb2xFeHRyYXNIZWlnaHRQeCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMubm9MYWJlbExheW91dCB8fCAhdGhpcy5faXNIb3Jpem9udGFsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAvLyBwcm9jZWVkIG9ubHkgaWYgMS4gdGhlcmUncyBhIGxhYmVsOyAyLiBjb250cm9sIGhhcyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5mb3JtRmllbGRFeHRyYXM/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ID8/IDApICsgKHRoaXMuY29udHJvbD8uZXh0cmFDb250ZW50SGVpZ2h0UHggPz8gMCkgfHwgbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFiZWxDb2x1bW5MYXlvdXQkOiBCZWhhdmlvclN1YmplY3Q8Q29sdW1uTGF5b3V0PjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZpZWxkQ29sdW1uTGF5b3V0JDogQmVoYXZpb3JTdWJqZWN0PENvbHVtbkxheW91dD47XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nYXBDb2x1bW5MYXlvdXQkOiBCZWhhdmlvclN1YmplY3Q8Q29sdW1uTGF5b3V0PjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25lZWRzSW5saW5lSGVscFBsYWNlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2dyb3VwSG9zdCgpOiBGb3JtR3JvdXBDb250YWluZXIgfCBGb3JtRmllbGRHcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZEdyb3VwID8gdGhpcy5mb3JtRmllbGRHcm91cCA6IHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXBkYXRlZCBkdXJpbmcgb25DaGFuZ2VzIGFuZCByZXNpemUsIHJlc3VsdGluZyBjb3JyZWN0IHBsYWNlbWVudCBvZiB0aGVcbiAgICAgKiBoaW50IHJlc3BlY3RpbmcgcGFzc2VkIGNvbmZpZ3MgYW5kIGdpdmVuIGJyZWFrcG9pbnQgb2Ygc2NyZWVuLlxuICAgICAqL1xuICAgIGhpbnRUYXJnZXQ/OiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2JyZWFrUG9pbnRPYnNlcnZlcjogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JtRmllbGRMYXlvdXRTZXJ2aWNlOiBGb3JtRmllbGRMYXlvdXRTZXJ2aWNlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBmb3JtR3JvdXBDb250YWluZXI6IEZvcm1Hcm91cENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgZm9ybUZpZWxkR3JvdXA6IEZvcm1GaWVsZEdyb3VwLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFJFU1BPTlNJVkVfQlJFQUtQT0lOVFNfQ09ORklHKVxuICAgICAgICByZWFkb25seSBfZGVmYXVsdFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnOiBSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyxcbiAgICAgICAgcmVhZG9ubHkgX3Jlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2U6IFJlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRkRQX0ZPUk1fRklFTERfSElOVF9PUFRJT05TX0RFRkFVTFQpIF9wcm92aWRlZEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zLFxuICAgICAgICBASW5qZWN0KEZEUF9GT1JNX0ZJRUxEX0hJTlRfTEFZT1VUX0NPTkZJRykgcHJpdmF0ZSBfaGludExheW91dENvbmZpZzogSGludExheW91dENvbmZpZyxcbiAgICAgICAgQFNlbGYoKSBfc2VsZkZvcm1GaWVsZExheW91dFNlcnZpY2U6IEZvcm1GaWVsZExheW91dFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIF9wYXJlbnRGb3JtRmllbGRMYXlvdXRTZXJ2aWNlOiBGb3JtRmllbGRMYXlvdXRTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRGb3JtRmllbGRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLl9wcm92aWRlZEhpbnRPcHRpb25zXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZExheW91dFNlcnZpY2UgPSBfcGFyZW50Rm9ybUZpZWxkTGF5b3V0U2VydmljZSB8fCBfc2VsZkZvcm1GaWVsZExheW91dFNlcnZpY2U7XG4gICAgICAgIHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQpO1xuICAgICAgICB0aGlzLl9maWVsZENvbHVtbkxheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fZ2FwQ29sdW1uTGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fZ2FwQ29sdW1uTGF5b3V0KTtcbiAgICAgICAgLy8gZm9ybUdyb3VwQ29udGFpbmVyIGNhbiBiZSBpbmplY3RlZCBvbmx5IGlmIGN1cnJlbnQgZm9ybS1maWVsZCBpcyBsb2NhdGVkXG4gICAgICAgIC8vIGluc2lnaHQgZm9ybUdyb3VwQ29udGFpbmVyIGNvbnRlbnQuXG4gICAgICAgIC8vIElmIHRoaXMgaXMgbm90IHRoZSBjYXNlIHRoZSBmb3JtR3JvdXBDb250YWluZXJcbiAgICAgICAgLy8gd2lsbCBiZSB1bmRlZmluZWQgKGtub3duIGFuZ3VsYXIgaXNzdWUpLFxuICAgICAgICAvLyBpbiBzdWNoIGNhc2UgZm9ybUdyb3VwQ29udGFpbmVyIGNhbiBiZSBwb2ludGVkIGV4cGxpY2l0bHkgdXNpbmdcbiAgICAgICAgLy8gY29tcG9uZW50IGlucHV0IGFubm90YXRpb25cbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIgPSBmb3JtR3JvdXBDb250YWluZXI7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnID0gX2RlZmF1bHRSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyB8fCBuZXcgUmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWcoKTtcbiAgICAgICAgdGhpcy5fYnJlYWtQb2ludE9ic2VydmVyID0gdGhpcy5fcmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZS5vYnNlcnZlQnJlYWtwb2ludEJ5Q29uZmlnKFxuICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGluaXRpYWwgdmFsdWVzIGZvciBsYWJlbCwgZmllbGQgYW5kIGdhcCBjb2x1bW5zXG4gICAgICovXG4gICAgc2V0RGVmYXVsdENvbHVtbkxheW91dCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSWYgbGF5b3V0IGFscmVhZHkgZGVmaW5lZCwgbm8gbmVlZCB0byBzZXQgZGVmYXVsdCBvbmUuXG4gICAgICAgIGlmICh0aGlzLmxhYmVsQ29sdW1uTGF5b3V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0ZW5Ub0lubGluZUhlbHBQbGFjZVJlcXVpcmVtZW50Q2hhbmdlcygoKSA9PiAodGhpcy5sYWJlbENvbHVtbkxheW91dCA/IHRoaXMgOiB0aGlzLl9ncm91cEhvc3QpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGxpc3RlblRvSW5saW5lSGVscFBsYWNlUmVxdWlyZW1lbnRDaGFuZ2VzKGdldFNvdXJjZTogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9uZWVkc0lubGluZUhlbHBQbGFjZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fbmVlZHNJbmxpbmVIZWxwUGxhY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX25lZWRzSW5saW5lSGVscFBsYWNlU3Vic2NyaXB0aW9uID0gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNldExheW91dHMgPSAoc291cmNlOiBhbnkpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxDb2x1bW5MYXlvdXQgPSBzb3VyY2UubGFiZWxDb2x1bW5MYXlvdXQ7XG4gICAgICAgICAgICB0aGlzLmZpZWxkQ29sdW1uTGF5b3V0ID0gc291cmNlLmZpZWxkQ29sdW1uTGF5b3V0O1xuICAgICAgICAgICAgdGhpcy5nYXBDb2x1bW5MYXlvdXQgPSBzb3VyY2UuZ2FwQ29sdW1uTGF5b3V0O1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9uZWVkc0lubGluZUhlbHBQbGFjZVN1YnNjcmlwdGlvbiA9IHRoaXMuX2Zvcm1GaWVsZExheW91dFNlcnZpY2UubmVlZHNJbmxpbmVIZWxwUGxhY2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLl9mb3JtRmllbGRMYXlvdXRTZXJ2aWNlLmdldEZpeGVkTGF5b3V0cyhnZXRTb3VyY2UoKSkpLFxuICAgICAgICAgICAgICAgIHRhcChzZXRMYXlvdXRzKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBwcm92aWRlcyBjYXBhYmlsaXR5IHRvIG1ha2UgYSBmaWVsZCBkaXNhYmxlZC4gdXNlZnVsIGluIHJlYWN0aXZlIGZvcm0gYXBwcm9hY2guXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPVxuICAgICAgICAgICAgKHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyPy5mb3JtR3JvdXA/LmdldCh0aGlzLmlkKSBhcyBGb3JtQ29udHJvbCkgPz9cbiAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9KTtcblxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zICYmICh0aGlzLmNvbHVtbnMgPCAxIHx8IHRoaXMuY29sdW1ucyA+IDEyKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbY29sdW1uc10gYWNjZXB0cyBudW1iZXJzIGJldHdlZW4gMSAtIDEyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faXNDb2x1bW5MYXlvdXRFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9icmVha1BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoYnJlYWtQb2ludE5hbWUpID0+IHRoaXMuX3VwZGF0ZUxheW91dChicmVha1BvaW50TmFtZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYWRkVG9Gb3JtR3JvdXAoKTtcblxuICAgICAgICB0aGlzLmlzSG9yaXpvbnRhbCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0JC5waXBlKGZpbHRlcihCb29sZWFuKSwgbWFwKG5vcm1hbGl6ZUNvbHVtbkxheW91dCkpLFxuICAgICAgICAgICAgdGhpcy5fZmllbGRDb2x1bW5MYXlvdXQkLnBpcGUoZmlsdGVyKEJvb2xlYW4pLCBtYXAobm9ybWFsaXplQ29sdW1uTGF5b3V0KSksXG4gICAgICAgICAgICB0aGlzLl9nYXBDb2x1bW5MYXlvdXQkLnBpcGUobWFwKChnKSA9PiBub3JtYWxpemVDb2x1bW5MYXlvdXQoZyB8fCB7IFM6IDAgfSkpKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbbGFiZWwsIGZpZWxkLCBnYXBdKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrUG9pbnRPYnNlcnZlci5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGJyZWFrcG9pbnROYW1lKSA9PiBsYWJlbFticmVha3BvaW50TmFtZV0gKyBmaWVsZFticmVha3BvaW50TmFtZV0gKyBnYXBbYnJlYWtwb2ludE5hbWVdIDw9IDEyKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5saXN0ZW5Ub0lubGluZUhlbHBQbGFjZVJlcXVpcmVtZW50Q2hhbmdlcygoKSA9PiB0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaGludCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlSGludE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1GaWVsZExheW91dFNlcnZpY2Uuc2V0TmVlZHNJbmxpbmVIZWxwKFxuICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgKHRoaXMuaGludE9wdGlvbnMudGFyZ2V0ID09PSAnaW5wdXQnIHx8IHRoaXMuaGludE9wdGlvbnMudGFyZ2V0ID09PSAnYXV0bycpICYmICEhdGhpcy5oaW50XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmhpbnQgJiYgY2hhbmdlcy5oaW50LmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9icmVha1BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKChzaXplTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGludE9wdGlvbnMudGFyZ2V0ID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpbnRUYXJnZXQgPSB0aGlzLl9oaW50TGF5b3V0Q29uZmlnLmhpbnRPbklucHV0QnJlYWtwb2ludHMuaW5jbHVkZXMoc2l6ZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2lucHV0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdsYWJlbCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGludFRhcmdldCA9IHRoaXMuaGludE9wdGlvbnMudGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXNzaWduRXJyb3JEaXJlY3RpdmVzKCk7XG5cbiAgICAgICAgdGhpcy5fZXJyb3JEaXJlY3RpdmVRdWVyeS5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduRXJyb3JEaXJlY3RpdmVzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLl92YWxpZGF0ZUVycm9ySGFuZGxlcigpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1NZXNzYWdlKCk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtRmllbGRMYXlvdXRTZXJ2aWNlLnJlbW92ZUVudHJ5KHRoaXMpO1xuICAgICAgICB0aGlzLl9yZW1vdmVGcm9tRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2Vycm9yRGlyZWN0aXZlc0Nkcj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fZm9ybUdyb3VwRXJyb3JEaXJlY3RpdmVzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdGFibGUgJiYgISF0aGlzLmNvbnRyb2w/LmNvbnRyb2xJbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIHVuZGVybHlpbmcgZm9ybSBjb250cm9sXG4gICAgICogQHBhcmFtIGZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICByZWdpc3RlckZvcm1GaWVsZENvbnRyb2woZm9ybUZpZWxkQ29udHJvbDogRm9ybUZpZWxkQ29udHJvbCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRm9ybSBmaWVsZCBjYW4gY29udGFpbiBvbmx5IG9uZSBGb3JtRmllbGRDb250cm9sJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRyb2wgPSBmb3JtRmllbGRDb250cm9sIGFzIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbDtcblxuICAgICAgICBmb3JtRmllbGRDb250cm9sLnN0YXRlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ29udHJvbFByb3BlcnRpZXMoKTtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gY2FsbCBleHBsaWNpdGx5IGRldGVjdENoYW5nZXMoKSBpbnN0ZWFkIG9mIG1hcmtGb3JDaGVjayBiZWZvcmUgdGhlXG4gICAgICAgICAgICAvLyBtb2RpZmllZCB2YWxpZGF0aW9uIHN0YXRlIG9mIHRoZSBjb250cm9sIHBhc3NlcyBvdmVyIGNoZWNrZWQgcGhhc2VcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCgnc3RhdGVDaGFuZ2VzJyk7XG4gICAgICAgICAgICB0aGlzLmdyb3VwRXJyb3JzKCk7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlZnJlc2ggVUkgd2hlbiB2YWx1ZSBjaGFuZ2VzXG4gICAgICAgIGlmIChmb3JtRmllbGRDb250cm9sPy5uZ0NvbnRyb2w/LnZhbHVlQ2hhbmdlcykge1xuICAgICAgICAgICAgZm9ybUZpZWxkQ29udHJvbC5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCgndmFsdWVDaGFuZ2VzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cEVycm9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZm9ybUZpZWxkQ29udHJvbD8ubmdDb250cm9sPy5jb250cm9sKSB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUZpZWxkQ29udHJvbC5uZ0NvbnRyb2wuY29udHJvbDtcblxuICAgICAgICAgICAgY29uc3QgaGFzUmVxdWlyZWRWYWxpZGF0b3IgPVxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycy5pbmNsdWRlcyhWYWxpZGF0b3JzLnJlcXVpcmVkKSB8fCB0aGlzLnZhbGlkYXRvcnMuaW5jbHVkZXMoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhaGFzUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhhc1JlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXF1aXJlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIGZvcm0gY29udHJvbCBpcyBkaXNhYmxlZCwgaW4gcmVhY3RpdmUgZm9ybSBhcHByb2FjaFxuICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGVyZSBpcyBhIGNhc2Ugd2hlbiBhIFwiZm9ybS1ncm91cFwiIGluaXRpYWwgc3RhdGUgaXMgVkFMSUQsXG4gICAgICAgICAgICAgKiBhbmQgb24gdGhlIG5leHQgbG9vcCBhIGNoaWxkIGZvcm0tZmlsZWQgZXh0ZW5kcyBpdCBhbmQgbWFrZVxuICAgICAgICAgICAgICogdGhlIGZvcm0tZ3JvdXAgSU5WQUxJRC5cbiAgICAgICAgICAgICAqIEluIHN1Y2ggY2FzZSB3ZSBnZXQgdGhlIGVycm9yXG4gICAgICAgICAgICAgKiBcIkV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuIFByZXZpb3VzIHZhbHVlIGlzIG5nLXZhbGlkLCBjdXJyZW50IHZhbHVlIGlzIG5nLWludmFsaWRcIi5cbiAgICAgICAgICAgICAqIFRvIGZpeCBpdCB3ZSBoYXZlIHRvIHBvc3Rwb25lIGFkZGluZyBmb3JtLWZpZWxkIHZhbGlkYXRvcnNcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UodGhpcy52YWxpZGF0b3JzKSk7XG4gICAgICAgICAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9hZGRDb250cm9sVG9Gb3JtR3JvdXAoZm9ybUZpZWxkQ29udHJvbD8ubmdDb250cm9sPy5jb250cm9sKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgdW5kZXJseWluZyBmb3JtIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gZm9ybUZpZWxkQ29udHJvbFxuICAgICAqL1xuICAgIHVucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sKGZvcm1GaWVsZENvbnRyb2w6IEZvcm1GaWVsZENvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZvcm1GaWVsZENvbnRyb2wgIT09IHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250cm9sID0gbnVsbDtcblxuICAgICAgICB0aGlzLl9yZW1vdmVDb250cm9sRnJvbUZvcm1Hcm91cCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdyb3Vwc1xuICAgICAqL1xuICAgIGdyb3VwRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICAvLyBRdWV1ZSB0YXNrIGJlY2F1c2UgZmlyaW5nIGl0IHJpZ2h0IGF3YXkgbWF5IGNhdXNlIGVycm9yIHdpdGggc2hvd2luZyBlbXB0eSBtZXNzYWdlLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZEVycm9ycyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5jb250cm9sPy5uZ0NvbnRyb2w/LmVycm9ycztcbiAgICAgICAgICAgIGlmICghZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmVycm9yRGlyZWN0aXZlcy5mb3JFYWNoKChkaXJlY3RpdmUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yc1tkaXJlY3RpdmUuZXJyb3JdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwZWRFcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yc1tkaXJlY3RpdmUuZXJyb3JdXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzQ2hhbmdlJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBwcmlvcml0aXplZCBjb250cm9sIHN0YXRlIGJhc2VkIG9uIHRoZSBlcnJvciB0eXBlcyBpdCBoYXMuXG4gICAgICovXG4gICAgZ2V0UHJpb3JpdHlTdGF0ZSgpOiBGb3JtU3RhdGVzIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBlZEVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhc0Vycm9ycygpID8gJ2Vycm9yJyA6ICdkZWZhdWx0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnZXRGb3JtU3RhdGUodGhpcy5ncm91cGVkRXJyb3JzLm1hcCgoZXJyb3IpID0+IGVycm9yLmRpcmVjdGl2ZS50eXBlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBlcnJvciBkaXJlY3RpdmVzLlxuICAgICAqL1xuICAgIHNldEVycm9yRGlyZWN0aXZlcyhkaXJlY3RpdmVzOiBRdWVyeUxpc3Q8Rm9ybUVycm9yPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtR3JvdXBFcnJvckRpcmVjdGl2ZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgaWYgKCFkaXJlY3RpdmVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9mb3JtR3JvdXBFcnJvckRpcmVjdGl2ZXMgPSBkaXJlY3RpdmVzLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLl9mb3JtR3JvdXBFcnJvckRpcmVjdGl2ZXNTdWJzY3JpcHRpb24gPSBkaXJlY3RpdmVzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1Hcm91cEVycm9yRGlyZWN0aXZlcyA9IGRpcmVjdGl2ZXMudG9BcnJheSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGNvbnRlbnQgb2YgdGhlIHByb3ZpZGVkIGhpbnQgaXMgYSBzdHJpbmcuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGlzU3RyaW5nSGludChoaW50T3B0aW9uczogSGludENvbnRlbnQpOiBoaW50T3B0aW9ucyBpcyBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGhpbnRPcHRpb25zID09PSAnc3RyaW5nJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdGVucyB0byBmb3JtIG1lc3NhZ2UgY29tcG9uZW50IGNoYW5nZXMgYW5kIHBhc3NlcyBpdHMgaW5zdGFuY2UgdG8gdGhlIGZvcm0gY29udHJvbCBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Gb3JtTWVzc2FnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5wdXRNZXNzYWdlR3JvdXBDbXAuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLl9pbnB1dE1lc3NhZ2VHcm91cENtcC5maXJzdCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbCEuZm9ybU1lc3NhZ2UgPSBjb21wb25lbnQ7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ZhbGlkYXRlRXJyb3JIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9lZGl0YWJsZSAmJlxuICAgICAgICAgICAgdGhpcy5jb250cm9sICYmXG4gICAgICAgICAgICB0aGlzLl9oYXNWYWxpZGF0b3JzKCkgJiZcbiAgICAgICAgICAgICF0aGlzLmkxOFN0cmluZ3MgJiZcbiAgICAgICAgICAgIHRoaXMuZXJyb3JEaXJlY3RpdmVzLmxlbmd0aCA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsaWRhdGlvbiBzdHJpbmdzIGFyZSByZXF1aXJlZCBmb3IgdGhlIGFueSBwcm92aWRlZCB2YWxpZGF0aW9ucy4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFzVmFsaWRhdG9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdG9ycyAmJiB0aGlzLnZhbGlkYXRvcnMubGVuZ3RoID4gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQWRkIEZvcm1GaWVsZCB0byBGb3JtR3JvdXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9hZGRUb0Zvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cENvbnRhaW5lciB8fCB0aGlzLmZvcm1GaWVsZEdyb3VwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1Hcm91cENvbnRhaW5lci5hZGRGb3JtRmllbGQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJlbW92ZSBGb3JtRmllbGQgZnJvbSBGb3JtR3JvdXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZW1vdmVGcm9tRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwQ29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIucmVtb3ZlRm9ybUZpZWxkKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBZGQgRm9ybUNvbnRyb2wgZnJvbSBGb3JtR3JvdXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9hZGRDb250cm9sVG9Gb3JtR3JvdXAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXBDb250YWluZXIgfHwgISF0aGlzLmZvcm1GaWVsZEdyb3VwPy5mb3JtTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyLmFkZEZvcm1Db250cm9sKHRoaXMuaWQsIGNvbnRyb2wpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZW1vdmUgRm9ybUNvbnRyb2wgZnJvbSBGb3JtR3JvdXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZW1vdmVDb250cm9sRnJvbUZvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cENvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyLnJlbW92ZUZvcm1Db250cm9sKHRoaXMuaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IHRoZXNlIHByb3BlcnRpZXMgb24gZXZlcnkgbGV2ZWwuXG4gICAgICogIC0gR2xvYmFsIEZvcm1Hcm91cCBMZXZlbCBhcyB3ZWxsIGVhY2ggZmllbGRcbiAgICAgKlxuICAgICAqICBUb2RvOiB1c2UgbW9yZSBlbGVnYW50IHdheSB0byBzZXQgdGhlc2UgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVDb250cm9sUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLl9lZGl0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLmlkID0gdGhpcy5pZDtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5yZXF1aXJlZCA9IHRoaXMucmVxdWlyZWQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0TGF5b3V0KCk6IHZvaWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbHVtbkxheW91dCh0aGlzLmNvbHVtbkxheW91dCwgMSk7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkxheW91dCA9IG5vcm1hbGl6ZWQ7XG4gICAgICAgICAgICB0aGlzLl9zQ29sdW1uTnVtYmVyID0gbm9ybWFsaXplZFsnUyddO1xuICAgICAgICAgICAgdGhpcy5fbWRDb2x1bW5OdW1iZXIgPSBub3JtYWxpemVkWydNJ107XG4gICAgICAgICAgICB0aGlzLl9sZ0NvbHVtbk51bWJlciA9IG5vcm1hbGl6ZWRbJ0wnXTtcbiAgICAgICAgICAgIHRoaXMuX3hsQ29sdW1uTnVtYmVyID0gbm9ybWFsaXplZFsnWEwnXTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzQ29sdW1uTGF5b3V0RW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVMYXlvdXQoY3VycmVudEJyZWFraW5nUG9pbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ29sdW1uTGF5b3V0RW5hYmxlZCkge1xuICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50QnJlYWtpbmdQb2ludE5hbWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdTJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSB0aGlzLl9zQ29sdW1uTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSB0aGlzLl9tZENvbHVtbk51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uID0gdGhpcy5fbGdDb2x1bW5OdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1hMJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSB0aGlzLl94bENvbHVtbk51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSB0aGlzLl94bENvbHVtbk51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgY29sdW1uIGNoYW5nZSwgc28gZm9ybS1ncm91cCBrbm93cyBpdCBhbmQgcmUtYXJyYW5nZXMgdGhlIGZpZWxkc1xuICAgICAgICB0aGlzLm9uQ29sdW1uQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVIaW50T3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgLy8gcGxhY2VtZW50IGlzIGhlcmUgc2V0IHVwIGJlY2F1c2UgaGludFBsYWNlbWVudCBpcyBkZXByZWNhdGVkXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oaW50ID09PSAnc3RyaW5nJyB8fCB0aGlzLmhpbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5oaW50XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmhpbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmhpbnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Fzc2lnbkVycm9yRGlyZWN0aXZlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXJyb3JEaXJlY3RpdmVzQ2RyPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9lcnJvckRpcmVjdGl2ZXMgPSB0aGlzLl9lcnJvckRpcmVjdGl2ZVF1ZXJ5LnRvQXJyYXkoKTtcbiAgICAgICAgdGhpcy5fZXJyb3JEaXJlY3RpdmVzQ2RyID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgIHRoaXMuX2Vycm9yRGlyZWN0aXZlcy5mb3JFYWNoKChkaXJlY3RpdmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yRGlyZWN0aXZlc0Nkci5hZGQoXG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlLmRldGVjdENoYW5nZXMkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBFcnJvcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3JlbmRlcmVyPlxuICAgIDxkaXYgW2hvcml6b250YWxdPVwidHJ1ZVwiIGZkLWZvcm0taXRlbSBjbGFzcz1cImZkLXJvd1wiPlxuICAgICAgICBAaWYgKCFub0xhYmVsTGF5b3V0KSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1jb2xcIlxuICAgICAgICAgICAgICAgICNsYWJlbENvbFxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJfbGFiZWxDb2x1bW5MYXlvdXRDbGFzc1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1hcmdpbi1ib3R0b20ucHhdPVwiX2NvbnRyb2xFeHRyYXNIZWlnaHRQeFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndpdGhGb3JtTWVzc2FnZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJnYXBUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCIgW2lkXT1cIidmZHAtZm9ybS1oaW50LScgKyBpZFwiPlxuICAgICAgICBAaWYgKGlzU3RyaW5nSGludChoaW50T3B0aW9ucy5jb250ZW50KSkge1xuICAgICAgICAgICAge3sgaGludE9wdGlvbnMuY29udGVudCB9fVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGhpbnRPcHRpb25zLmNvbnRlbnQpXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3dpdGhGb3JtTWVzc2FnZT5cbiAgICA8ZmRwLWlucHV0LW1lc3NhZ2UtZ3JvdXBcbiAgICAgICAgY2xhc3M9XCJmZC1jb2xcIlxuICAgICAgICBbY2xhc3NdPVwiX2ZpZWxkQ29sdW1uTGF5b3V0Q2xhc3NcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2ZkcC1mb3JtLWxhYmVsLScgKyBpZFwiXG4gICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RyaWdnZXJJdGVtPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIEBpZiAoaGFzRXJyb3JzKCkgJiYgZ3JvdXBlZEVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBAZm9yIChlcnJvciBvZiBncm91cGVkRXJyb3JzOyB0cmFjayBlcnJvcikge1xuICAgICAgICAgICAgICAgIDxmZC1mb3JtLW1lc3NhZ2UgW3R5cGVdPVwiZXJyb3IuZGlyZWN0aXZlLnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChlcnJvci5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3IuZGlyZWN0aXZlLl9oZWFkaW5nVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZXJyb3IuZXJyb3IsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChlcnJvci5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZiAmJiBlcnJvci5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZXJyb3IuZGlyZWN0aXZlLl9kZXNjcmlwdGlvblRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvci5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZXJyb3IuZXJyb3IsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoZ3JvdXBlZEVycm9ycy5sZW5ndGggPT09IDAgJiYgaGFzRXJyb3JzKCkgJiYgaTE4U3RyaW5ncykge1xuICAgICAgICAgICAgPGZkLWZvcm0tbWVzc2FnZSB0eXBlPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaTE4U3RyaW5nc1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29udHJvbD8ubmdDb250cm9sPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2ZkLWZvcm0tbWVzc2FnZT5cbiAgICAgICAgfVxuICAgIDwvZmRwLWlucHV0LW1lc3NhZ2UtZ3JvdXA+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lubmVyRXJyb3JSZW5kZXJlcnM+XG4gICAgQGlmIChoYXNFcnJvcnMoKSAmJiBncm91cGVkRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgQGZvciAoZXJyb3Igb2YgZ3JvdXBlZEVycm9yczsgdHJhY2sgZXJyb3IpIHtcbiAgICAgICAgICAgIEBpZiAoZXJyb3IuZGlyZWN0aXZlLl9oZWFkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3IuZGlyZWN0aXZlLl9oZWFkaW5nVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGVycm9yLmVycm9yLCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGVycm9yLmRpcmVjdGl2ZS5faGVhZGluZ1RlbXBsYXRlUmVmICYmIGVycm9yLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChlcnJvci5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3IuZGlyZWN0aXZlLl9kZXNjcmlwdGlvblRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBlcnJvci5lcnJvciwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChncm91cGVkRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBoYXNFcnJvcnMoKSAmJiBpMThTdHJpbmdzKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaTE4U3RyaW5nc1wiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbnRyb2w/Lm5nQ29udHJvbD8uZXJyb3JzIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlPlxuICAgIEBpZiAoaGludFRhcmdldCA9PT0gJ2xhYmVsJykge1xuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFtpZF09XCInZmRwLWZvcm0tbGFiZWwtJyArIGlkXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJlZGl0YWJsZSAmJiByZXF1aXJlZFwiXG4gICAgICAgICAgICBmZC1mb3JtLWxhYmVsXG4gICAgICAgICAgICBbaW5saW5lSGVscENvbnRlbnRdPVwiaGludE9wdGlvbnMuY29udGVudFwiXG4gICAgICAgICAgICBbaW5saW5lSGVscEJvZHlQbGFjZW1lbnRdPVwiaGludE9wdGlvbnMucGxhY2VtZW50IHx8ICd0b3AnXCJcbiAgICAgICAgICAgIFtpbmxpbmVIZWxwUGxhY2VtZW50XT1cImhpbnRPcHRpb25zLnBvc2l0aW9uIHx8ICdhZnRlcidcIlxuICAgICAgICAgICAgW2lubGluZUhlbHBHbHlwaF09XCJoaW50T3B0aW9ucy5nbHlwaCB8fCAnJ1wiXG4gICAgICAgICAgICBbaW5saW5lSGVscFRyaWdnZXJzXT1cImhpbnRPcHRpb25zLnRyaWdnZXIgfHwgW11cIlxuICAgICAgICAgICAgW2FsaWduTGFiZWxFbmRdPVwiISEoaXNIb3Jpem9udGFsJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBbY29sb25dPVwiY29sb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2ZkcC1mb3JtLWxhYmVsLWNvbnRlbnQtJyArIGlkXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2lkXT1cIidmZHAtZm9ybS1sYWJlbC0nICsgaWRcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImVkaXRhYmxlICYmIHJlcXVpcmVkXCJcbiAgICAgICAgICAgIGZkLWZvcm0tbGFiZWxcbiAgICAgICAgICAgIFtjb2xvbl09XCJjb2xvblwiXG4gICAgICAgICAgICBbYWxpZ25MYWJlbEVuZF09XCIhIShpc0hvcml6b250YWwkIHwgYXN5bmMpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gW2lkXT1cIidmZHAtZm9ybS1sYWJlbC1jb250ZW50LScgKyBpZFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZ2FwVGVtcGxhdGU+XG4gICAgQGlmIChoaW50VGFyZ2V0ID09PSAnaW5wdXQnICYmIGhpbnRPcHRpb25zLmNvbnRlbnQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNvbCBmZC1mb3JtLWZpZWxkLWlubGluZS1oZWxwLWNvbnRhaW5lclwiIFtjbGFzc109XCJfZ2FwQ29sdW1uTGF5b3V0Q2xhc3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpbmsgW3VuZGVjb3JhdGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgICAgICAgICBbZmQtaW5saW5lLWhlbHBdPVwiaGludE9wdGlvbnMuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJoaW50T3B0aW9ucy5nbHlwaFwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiaGludE9wdGlvbnMucGxhY2VtZW50IHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbdHJpZ2dlcnNdPVwiaGludE9wdGlvbnMudHJpZ2dlciB8fCBbXVwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1jb2xcIiBbY2xhc3NdPVwiX2dhcENvbHVtbkxheW91dENsYXNzXCI+PC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
700
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ3JvdXAvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1QsSUFBSSxFQUVKLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixXQUFXLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQWdDLE1BQU0sNEJBQTRCLENBQUM7QUFDekYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFF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RUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUs5RCxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMscUJBQXFCO2dCQUt4QixvQkFBb0I7c0JBRDNCLGVBQWU7dUJBQUMsdUJBQXVCO2dCQUt2QixxQkFBcUI7c0JBRHJDLFlBQVk7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUHJvdmlkZXIsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRm9ybUZpZWxkQ29udHJvbCwgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtSXRlbUNvbXBvbmVudCwgRm9ybUxhYmVsQ29tcG9uZW50LCBGb3JtTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBJbmxpbmVIZWxwRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2lubGluZS1oZWxwJztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGluayc7XG5pbXBvcnQge1xuICAgIENvbHVtbixcbiAgICBDb2x1bW5MYXlvdXQsXG4gICAgRmllbGRIaW50SW5wdXQsXG4gICAgRmllbGRIaW50T3B0aW9ucyxcbiAgICBGb3JtRXJyb3IsXG4gICAgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVDb250ZXh0LFxuICAgIEZvcm1GaWVsZEdyb3VwLFxuICAgIEZvcm1Hcm91cENvbnRhaW5lcixcbiAgICBIaW50Q29udGVudCxcbiAgICBMYWJlbExheW91dCxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgUkVTUE9OU0lWRV9CUkVBS1BPSU5UU19DT05GSUcsXG4gICAgUmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWcsXG4gICAgUmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBnZXRGb3JtU3RhdGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IElucHV0TWVzc2FnZUdyb3VwV2l0aFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vaW5wdXQtbWVzc2FnZS1ncm91cC13aXRoLXRlbXBsYXRlL2lucHV0LW1lc3NhZ2UtZ3JvdXAtd2l0aC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVmYXVsdEZvcm1GaWVsZEhpbnRPcHRpb25zIH0gZnJvbSAnLi4vY29uZmlnL2RlZmF1bHQtZm9ybS1maWVsZC1oaW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgRk9STV9HUk9VUF9DSElMRF9GSUVMRF9UT0tFTiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIEZEUF9GT1JNX0ZJRUxEX0hJTlRfTEFZT1VUX0NPTkZJRyxcbiAgICBGRFBfRk9STV9GSUVMRF9ISU5UX09QVElPTlNfREVGQVVMVCxcbiAgICBIaW50TGF5b3V0Q29uZmlnXG59IGZyb20gJy4uL2ZkcC1mb3JtLnRva2Vucyc7XG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29udHJvbEV4dHJhc0NvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQtZXh0cmFzL2Zvcm0tZmllbGQtZXh0cmFzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZW5lcmF0ZUNvbHVtbkNsYXNzLCBub3JtYWxpemVDb2x1bW5MYXlvdXQgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IEZvcm1GaWVsZExheW91dFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLWxheW91dC5zZXJ2aWNlJztcblxubGV0IGRlZmF1bHRJZCA9IDA7XG5cbmNvbnN0IGZvcm1GaWVsZFByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBGRF9GT1JNX0ZJRUxELFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1GaWVsZENvbXBvbmVudClcbn07XG5cbmNvbnN0IGZvcm1Hcm91cENoaWxkUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IEZPUk1fR1JPVVBfQ0hJTERfRklFTERfVE9LRU4sXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybUZpZWxkQ29tcG9uZW50KVxufTtcblxuLyoqXG4gKiBGb3JtIEZpZWxkIHJlcHJlc2VudCBhY3R1YWwgcm93IGFuZCBhZ2dyZWdhdGVzIGNvbW1vbiBiZWhhdmlvciBmb3IgdGhlIGlucHV0IGZpZWxkIHN1Y2ggYXNcbiAqIGVycm9yLCBsYWJlbCBvciBoaW50LlxuICogSGludCBpcyBhbHNvIHJlc3BvbnNpYmxlIGZvciBsaXN0ZW5pbmcgZm9yIEZpZWxkQ29udHJvbCBjaGFuZ2VzIGFuZCB0cmlnZ2VyIG5lY2Vzc2FyeVxuICogY2hhbmdlIGRldGVjdGlvblxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZm9ybS1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdmb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbZm9ybUZpZWxkUHJvdmlkZXIsIGZvcm1Hcm91cENoaWxkUHJvdmlkZXIsIEZvcm1GaWVsZExheW91dFNlcnZpY2VdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1JdGVtQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBJbnB1dE1lc3NhZ2VHcm91cFdpdGhUZW1wbGF0ZSxcbiAgICAgICAgRm9ybU1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgIEZvcm1MYWJlbENvbXBvbmVudCxcbiAgICAgICAgTGlua0NvbXBvbmVudCxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgSW5saW5lSGVscERpcmVjdGl2ZSxcbiAgICAgICAgQXN5bmNQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIFBsYXRmb3JtRm9ybUZpZWxkLCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gICAgLyoqIEZvcm0gZmllbGQgbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTdWZmaXggZm9yIGlkcyBvZiBjb250cm9sIGVsZW1lbnRzIGluc2lkZSB0aGlzIGZvcm0gZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSAoKytkZWZhdWx0SWQpLnRvU3RyaW5nKCk7XG5cbiAgICAvKiogSGludCB0byBiZSBwbGFjZWQgbmV4dCB0byBsYWJlbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGludDogTnVsbGFibGU8RmllbGRIaW50SW5wdXQ+O1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZW4gZm9ybSBmaWVsZCBsYWJlbCBzaG91bGQgbm90IGJlIGRpc3BsYXllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9MYWJlbExheW91dCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgdmFsaWRhdG9ycyBhcHBsaWVkIHRvIHRoZSBmb3JtIGZpZWxkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW1ZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcl07XG5cbiAgICAvKipcbiAgICAgKiBSYW5rIGlzIHVzZWQgZm9yIG9yZGVyaW5nLlxuICAgICAqIEZpcnN0IGxvd2VyIG51bWJlciwgdGhlbiAtIGhpZ2hlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmFuazogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogUGxhY2Vob2xkZXIgZm9yIHRoZSBmaWVsZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBGb3JtIENvbnRhaW5lciBjb2x1bW4gaXQgYmVsb25ncyB0byAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uOiBudW1iZXI7XG5cbiAgICAvKiogb2JqZWN0IGZvciBwbGFjaW5nIGZpZWxkIGluIGNvbHVtbiBpbiBlYWNoIHNjcmVlbiBsYXlvdXQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2x1bW5MYXlvdXQobGF5b3V0OiBDb2x1bW5MYXlvdXQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCFsYXlvdXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb2x1bW5MYXlvdXQgPSBsYXlvdXQ7XG4gICAgICAgIHRoaXMuX2lzQ29sdW1uTGF5b3V0RW5hYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3NldExheW91dCgpO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5MYXlvdXQoKTogQ29sdW1uTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkxheW91dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYWJlbENvbHVtbkxheW91dCh2YWx1ZTogQ29sdW1uTGF5b3V0IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sYWJlbENvbHVtbkxheW91dCA9IG5vcm1hbGl6ZUNvbHVtbkxheW91dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0Q2xhc3MgPSBnZW5lcmF0ZUNvbHVtbkNsYXNzKHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQkLm5leHQodGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQpO1xuICAgIH1cblxuICAgIGdldCBsYWJlbENvbHVtbkxheW91dCgpOiBDb2x1bW5MYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGRDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9maWVsZENvbHVtbkxheW91dCA9IG5vcm1hbGl6ZUNvbHVtbkxheW91dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0Q2xhc3MgPSBnZW5lcmF0ZUNvbHVtbkNsYXNzKHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fZmllbGRDb2x1bW5MYXlvdXQkLm5leHQodGhpcy5fZmllbGRDb2x1bW5MYXlvdXQpO1xuICAgIH1cblxuICAgIGdldCBmaWVsZENvbHVtbkxheW91dCgpOiBDb2x1bW5MYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRDb2x1bW5MYXlvdXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBnYXBDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9nYXBDb2x1bW5MYXlvdXQgPSBub3JtYWxpemVDb2x1bW5MYXlvdXQodmFsdWUpO1xuICAgICAgICB0aGlzLl9nYXBDb2x1bW5MYXlvdXRDbGFzcyA9IGdlbmVyYXRlQ29sdW1uQ2xhc3ModGhpcy5fZ2FwQ29sdW1uTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fZ2FwQ29sdW1uTGF5b3V0JC5uZXh0KHRoaXMuX2dhcENvbHVtbkxheW91dCk7XG4gICAgfVxuXG4gICAgZ2V0IGdhcENvbHVtbkxheW91dCgpOiBDb2x1bW5MYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2FwQ29sdW1uTGF5b3V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0aW9ucyB0ZW1wbGF0ZSByZWZlcmVuY2UuXG4gICAgICogVGhpcyBpcyBpbiBtb3N0IG9mIHRoZSBjYXNlcyBzZXQgZnJvbSBwYXJlbnQgY29udGFpbmVyIChmb3JtLWdyb3VwKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaTE4U3RyaW5nczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBTZXQgd2hlbiBmb3JtIGZpZWxkIGlzIGEgbWFuZGF0b3J5IG9uZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgaWYgZmllbGQgaXMgZWRpdGFibGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBlZGl0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0YWJsZSAhPT0gbmV3VmFsKSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0YWJsZSA9IG5ld1ZhbDtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGZpZWxkIGN1c3RvbSB3aWR0aCBpbiBjb2x1bW5zIG11c3QgYmUgYmV0d2VlbiAxIC0gMTJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2x1bW5zKHZhbHVlOiBDb2x1bW4pIHtcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IDxDb2x1bW4+Y29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5zKCk6IENvbHVtbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1hcmtzIGZpZWxkIGFzIGRpc2FibGVkLiB1c2VkIGluIHJlYWN0aXZlIGZvcm0gYXBwcm9hY2guXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgbGFiZWwgdGV4dCBzaG91bGQgYmUgYXBwZW5kZWQgd2l0aCBjb2xvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbG9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIEdyb3VwIENvbnRhaW5lciB0byBiaW5kIHRoZSBGb3JtLUZpZWxkIHRvLlxuICAgICAqIFRoaXMgd2lsbCBvdmVycmlkZSBkZWZhdWx0IHZhbHVlIGluamVjdGVkIGJ5IGNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmb3JtR3JvdXBDb250YWluZXI6IEZvcm1Hcm91cENvbnRhaW5lcjtcblxuICAgIC8qKiBFbWl0cyB3aGVuZXZlciBmb3JtRmllbGRDb250cm9sJ3Mgc3RhdGUgY2hhbmdlcyAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIGNvbHVtbiBsYXlvdXQgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uQ29sdW1uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRm9ybSBmaWVsZCB0ZW1wbGF0ZSByZWZlcmVuY2VcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdyZW5kZXJlcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRm9ybUZpZWxkQ29udHJvbEV4dHJhc0NvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgZm9ybUZpZWxkRXh0cmFzPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2xhYmVsQ29sJykgbGFiZWxDb2w/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChJbnB1dE1lc3NhZ2VHcm91cFdpdGhUZW1wbGF0ZSwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgaW5wdXRNZXNzYWdlR3JvdXA6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdpbm5lckVycm9yUmVuZGVyZXJzJylcbiAgICBpbm5lckVycm9yUmVuZGVyZXJzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgX2Vycm9yRGlyZWN0aXZlUXVlcnk6IFF1ZXJ5TGlzdDxGb3JtRXJyb3I+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKElucHV0TWVzc2FnZUdyb3VwV2l0aFRlbXBsYXRlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0TWVzc2FnZUdyb3VwQ21wOiBRdWVyeUxpc3Q8SW5wdXRNZXNzYWdlR3JvdXBXaXRoVGVtcGxhdGU+O1xuXG4gICAgLyoqIENvbWJpbmVkIEVycm9yIGRpcmVjdGl2ZXMgZnJvbSBmaWVsZCBpdHNlbGYgYW5kIHBhcmVudCBmb3JtIGNvbnRhaW5lci4gKi9cbiAgICBnZXQgZXJyb3JEaXJlY3RpdmVzKCk6IEZvcm1FcnJvcltdIHtcbiAgICAgICAgcmV0dXJuIHVuaXFCeShbLi4udGhpcy5fZXJyb3JEaXJlY3RpdmVzLCAuLi50aGlzLl9mb3JtR3JvdXBFcnJvckRpcmVjdGl2ZXNdLCAnZXJyb3InKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGlzSG9yaXpvbnRhbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiBDaGlsZCBGb3JtRmllbGRDb250cm9sXG4gICAgICovXG4gICAgY29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2xhYmVsQ29sdW1uTGF5b3V0Q2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZpZWxkQ29sdW1uTGF5b3V0Q2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dhcENvbHVtbkxheW91dENsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBoaW50IGFuZCBoaW50IHBsYWNlbWVudCBjb2VyY2VkIHRvIHRoZSBGaWVsZEhpbnRPcHRpb25zXG4gICAgICovXG4gICAgaGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnMgPSBkZWZhdWx0Rm9ybUZpZWxkSGludE9wdGlvbnMgYXMgdW5rbm93biBhcyBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZXJyb3JEaXJlY3RpdmVzOiBGb3JtRXJyb3JbXSA9IFtdO1xuXG4gICAgLyoqIEdyb3VwZWQgZXJyb3JzLiAqL1xuICAgIGdyb3VwZWRFcnJvcnM6IEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlQ29udGV4dFtdID0gW107XG5cbiAgICAvKiogRXZlbnQgZW1pdGVkIHdoZW4gZXJyb3JzIG9iamVjdCBiZWluZyBjaGFuZ2VkLiAqL1xuICAgIGVycm9yc0NoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE9wdGlvbmFsIEZvcm1Db250cm9sXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9jb2x1bW5zOiBDb2x1bW4gPSA2O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2VkaXRhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9mb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0NvbHVtbkxheW91dEVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIGNvbHVtbiBudW1iZXIgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMgKi9cbiAgICBwcml2YXRlIF94bENvbHVtbk51bWJlcjogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sZ0NvbHVtbk51bWJlcjogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tZENvbHVtbk51bWJlcjogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zQ29sdW1uTnVtYmVyID0gMTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Jlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnOiBSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFiZWxMYXlvdXQ6IExhYmVsTGF5b3V0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYWJlbENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maWVsZENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2FwQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1Hcm91cEVycm9yRGlyZWN0aXZlczogRm9ybUVycm9yW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9ybUdyb3VwRXJyb3JEaXJlY3RpdmVzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Vycm9yRGlyZWN0aXZlc0NkcjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gd2hldGhlciBsYWJlbCBhbmQgY29udHJvbCBhcmUgdmVydGljYWxseSBhbGlnbmVkICovXG4gICAgcHJpdmF0ZSBnZXQgX2lzSG9yaXpvbnRhbEFsaWdubWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0TWVzc2FnZUdyb3VwIHx8ICF0aGlzLmxhYmVsQ29sKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5wdXRNZXNzYWdlR3JvdXBZID0gdGhpcy5pbnB1dE1lc3NhZ2VHcm91cC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7XG4gICAgICAgIGNvbnN0IGxhYmVsQ29sUmVjdCA9IHRoaXMubGFiZWxDb2wubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgbGFiZWxDb2xCb3R0b21ZID0gbGFiZWxDb2xSZWN0LnkgKyBsYWJlbENvbFJlY3QuaGVpZ2h0O1xuICAgICAgICByZXR1cm4gbGFiZWxDb2xCb3R0b21ZID4gaW5wdXRNZXNzYWdlR3JvdXBZO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTdW0gb2YgZXh0cmEgaGVpZ2h0cyBpbnNpZGUgZm9ybSBjb250cm9sIGFuZCBmb3JtRmllbGRFeHRyYXMuXG4gICAgICogTGFiZWwgd2lsbCBiZSBzaGlmdGVkIGJ5IHRoaXMgbnVtYmVyIGluIG9yZGVyIHRvIGJlIHByb3Blcmx5IGFsaWduZWQgd2l0aCB0aGUgY29udHJvbFxuICAgICAqL1xuICAgIGdldCBfY29udHJvbEV4dHJhc0hlaWdodFB4KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5ub0xhYmVsTGF5b3V0IHx8ICF0aGlzLl9pc0hvcml6b250YWxBbGlnbm1lbnQpIHtcbiAgICAgICAgICAgIC8vIHByb2NlZWQgb25seSBpZiAxLiB0aGVyZSdzIGEgbGFiZWw7IDIuIGNvbnRyb2wgaGFzIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLmZvcm1GaWVsZEV4dHJhcz8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgPz8gMCkgKyAodGhpcy5jb250cm9sPy5leHRyYUNvbnRlbnRIZWlnaHRQeCA/PyAwKSB8fCBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYWJlbENvbHVtbkxheW91dCQ6IEJlaGF2aW9yU3ViamVjdDxDb2x1bW5MYXlvdXQ+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmllbGRDb2x1bW5MYXlvdXQkOiBCZWhhdmlvclN1YmplY3Q8Q29sdW1uTGF5b3V0PjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dhcENvbHVtbkxheW91dCQ6IEJlaGF2aW9yU3ViamVjdDxDb2x1bW5MYXlvdXQ+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbmVlZHNJbmxpbmVIZWxwUGxhY2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfZ3JvdXBIb3N0KCk6IEZvcm1Hcm91cENvbnRhaW5lciB8IEZvcm1GaWVsZEdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkR3JvdXAgPyB0aGlzLmZvcm1GaWVsZEdyb3VwIDogdGhpcy5mb3JtR3JvdXBDb250YWluZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1cGRhdGVkIGR1cmluZyBvbkNoYW5nZXMgYW5kIHJlc2l6ZSwgcmVzdWx0aW5nIGNvcnJlY3QgcGxhY2VtZW50IG9mIHRoZVxuICAgICAqIGhpbnQgcmVzcGVjdGluZyBwYXNzZWQgY29uZmlncyBhbmQgZ2l2ZW4gYnJlYWtwb2ludCBvZiBzY3JlZW4uXG4gICAgICovXG4gICAgaGludFRhcmdldD86IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYnJlYWtQb2ludE9ic2VydmVyOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Zvcm1GaWVsZExheW91dFNlcnZpY2U6IEZvcm1GaWVsZExheW91dFNlcnZpY2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0SGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIGZvcm1Hcm91cENvbnRhaW5lcjogRm9ybUdyb3VwQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSByZWFkb25seSBmb3JtRmllbGRHcm91cDogRm9ybUZpZWxkR3JvdXAsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoUkVTUE9OU0lWRV9CUkVBS1BPSU5UU19DT05GSUcpXG4gICAgICAgIHJlYWRvbmx5IF9kZWZhdWx0UmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWc6IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnLFxuICAgICAgICByZWFkb25seSBfcmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZTogUmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZSxcbiAgICAgICAgQEluamVjdChGRFBfRk9STV9GSUVMRF9ISU5UX09QVElPTlNfREVGQVVMVCkgX3Byb3ZpZGVkSGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoRkRQX0ZPUk1fRklFTERfSElOVF9MQVlPVVRfQ09ORklHKSBwcml2YXRlIF9oaW50TGF5b3V0Q29uZmlnOiBIaW50TGF5b3V0Q29uZmlnLFxuICAgICAgICBAU2VsZigpIF9zZWxmRm9ybUZpZWxkTGF5b3V0U2VydmljZTogRm9ybUZpZWxkTGF5b3V0U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgX3BhcmVudEZvcm1GaWVsZExheW91dFNlcnZpY2U6IEZvcm1GaWVsZExheW91dFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdEZvcm1GaWVsZEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgLi4uX3Byb3ZpZGVkSGludE9wdGlvbnNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fZm9ybUZpZWxkTGF5b3V0U2VydmljZSA9IF9wYXJlbnRGb3JtRmllbGRMYXlvdXRTZXJ2aWNlIHx8IF9zZWxmRm9ybUZpZWxkTGF5b3V0U2VydmljZTtcbiAgICAgICAgdGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9sYWJlbENvbHVtbkxheW91dCk7XG4gICAgICAgIHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fZmllbGRDb2x1bW5MYXlvdXQpO1xuICAgICAgICB0aGlzLl9nYXBDb2x1bW5MYXlvdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9nYXBDb2x1bW5MYXlvdXQpO1xuICAgICAgICAvLyBmb3JtR3JvdXBDb250YWluZXIgY2FuIGJlIGluamVjdGVkIG9ubHkgaWYgY3VycmVudCBmb3JtLWZpZWxkIGlzIGxvY2F0ZWRcbiAgICAgICAgLy8gaW5zaWdodCBmb3JtR3JvdXBDb250YWluZXIgY29udGVudC5cbiAgICAgICAgLy8gSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UgdGhlIGZvcm1Hcm91cENvbnRhaW5lclxuICAgICAgICAvLyB3aWxsIGJlIHVuZGVmaW5lZCAoa25vd24gYW5ndWxhciBpc3N1ZSksXG4gICAgICAgIC8vIGluIHN1Y2ggY2FzZSBmb3JtR3JvdXBDb250YWluZXIgY2FuIGJlIHBvaW50ZWQgZXhwbGljaXRseSB1c2luZ1xuICAgICAgICAvLyBjb21wb25lbnQgaW5wdXQgYW5ub3RhdGlvblxuICAgICAgICB0aGlzLmZvcm1Hcm91cENvbnRhaW5lciA9IGZvcm1Hcm91cENvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5fcmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWcgPSBfZGVmYXVsdFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnIHx8IG5ldyBSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZygpO1xuICAgICAgICB0aGlzLl9icmVha1BvaW50T2JzZXJ2ZXIgPSB0aGlzLl9yZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlLm9ic2VydmVCcmVha3BvaW50QnlDb25maWcoXG4gICAgICAgICAgICB0aGlzLl9yZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgaW5pdGlhbCB2YWx1ZXMgZm9yIGxhYmVsLCBmaWVsZCBhbmQgZ2FwIGNvbHVtbnNcbiAgICAgKi9cbiAgICBzZXREZWZhdWx0Q29sdW1uTGF5b3V0KCk6IHZvaWQge1xuICAgICAgICAvLyBJZiBsYXlvdXQgYWxyZWFkeSBkZWZpbmVkLCBubyBuZWVkIHRvIHNldCBkZWZhdWx0IG9uZS5cbiAgICAgICAgaWYgKHRoaXMubGFiZWxDb2x1bW5MYXlvdXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RlblRvSW5saW5lSGVscFBsYWNlUmVxdWlyZW1lbnRDaGFuZ2VzKCgpID0+ICh0aGlzLmxhYmVsQ29sdW1uTGF5b3V0ID8gdGhpcyA6IHRoaXMuX2dyb3VwSG9zdCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGlzdGVuVG9JbmxpbmVIZWxwUGxhY2VSZXF1aXJlbWVudENoYW5nZXMoZ2V0U291cmNlOiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX25lZWRzSW5saW5lSGVscFBsYWNlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9uZWVkc0lubGluZUhlbHBQbGFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5fbmVlZHNJbmxpbmVIZWxwUGxhY2VTdWJzY3JpcHRpb24gPSB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2V0TGF5b3V0cyA9IChzb3VyY2U6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYWJlbENvbHVtbkxheW91dCA9IHNvdXJjZS5sYWJlbENvbHVtbkxheW91dDtcbiAgICAgICAgICAgIHRoaXMuZmllbGRDb2x1bW5MYXlvdXQgPSBzb3VyY2UuZmllbGRDb2x1bW5MYXlvdXQ7XG4gICAgICAgICAgICB0aGlzLmdhcENvbHVtbkxheW91dCA9IHNvdXJjZS5nYXBDb2x1bW5MYXlvdXQ7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX25lZWRzSW5saW5lSGVscFBsYWNlU3Vic2NyaXB0aW9uID0gdGhpcy5fZm9ybUZpZWxkTGF5b3V0U2VydmljZS5uZWVkc0lubGluZUhlbHBQbGFjZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuX2Zvcm1GaWVsZExheW91dFNlcnZpY2UuZ2V0Rml4ZWRMYXlvdXRzKGdldFNvdXJjZSgpKSksXG4gICAgICAgICAgICAgICAgdGFwKHNldExheW91dHMpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHByb3ZpZGVzIGNhcGFiaWxpdHkgdG8gbWFrZSBhIGZpZWxkIGRpc2FibGVkLiB1c2VmdWwgaW4gcmVhY3RpdmUgZm9ybSBhcHByb2FjaC5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9XG4gICAgICAgICAgICAodGhpcy5mb3JtR3JvdXBDb250YWluZXI/LmZvcm1Hcm91cD8uZ2V0KHRoaXMuaWQpIGFzIEZvcm1Db250cm9sKSA/P1xuICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnMgJiYgKHRoaXMuY29sdW1ucyA8IDEgfHwgdGhpcy5jb2x1bW5zID4gMTIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tjb2x1bW5zXSBhY2NlcHRzIG51bWJlcnMgYmV0d2VlbiAxIC0gMTInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0NvbHVtbkxheW91dEVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFrUG9pbnRPYnNlcnZlclxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChicmVha1BvaW50TmFtZSkgPT4gdGhpcy5fdXBkYXRlTGF5b3V0KGJyZWFrUG9pbnROYW1lKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hZGRUb0Zvcm1Hcm91cCgpO1xuXG4gICAgICAgIHRoaXMuaXNIb3Jpem9udGFsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQkLnBpcGUoZmlsdGVyKEJvb2xlYW4pLCBtYXAobm9ybWFsaXplQ29sdW1uTGF5b3V0KSksXG4gICAgICAgICAgICB0aGlzLl9maWVsZENvbHVtbkxheW91dCQucGlwZShmaWx0ZXIoQm9vbGVhbiksIG1hcChub3JtYWxpemVDb2x1bW5MYXlvdXQpKSxcbiAgICAgICAgICAgIHRoaXMuX2dhcENvbHVtbkxheW91dCQucGlwZShtYXAoKGcpID0+IG5vcm1hbGl6ZUNvbHVtbkxheW91dChnIHx8IHsgUzogMCB9KSkpXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFtsYWJlbCwgZmllbGQsIGdhcF0pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtQb2ludE9ic2VydmVyLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoYnJlYWtwb2ludE5hbWUpID0+IGxhYmVsW2JyZWFrcG9pbnROYW1lXSArIGZpZWxkW2JyZWFrcG9pbnROYW1lXSArIGdhcFticmVha3BvaW50TmFtZV0gPD0gMTIpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxpc3RlblRvSW5saW5lSGVscFBsYWNlUmVxdWlyZW1lbnRDaGFuZ2VzKCgpID0+IHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5oaW50KSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVIaW50T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5fZm9ybUZpZWxkTGF5b3V0U2VydmljZS5zZXROZWVkc0lubGluZUhlbHAoXG4gICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAodGhpcy5oaW50T3B0aW9ucy50YXJnZXQgPT09ICdpbnB1dCcgfHwgdGhpcy5oaW50T3B0aW9ucy50YXJnZXQgPT09ICdhdXRvJykgJiYgISF0aGlzLmhpbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuaGludCAmJiBjaGFuZ2VzLmhpbnQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFrUG9pbnRPYnNlcnZlclxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAoKHNpemVOYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaW50T3B0aW9ucy50YXJnZXQgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGludFRhcmdldCA9IHRoaXMuX2hpbnRMYXlvdXRDb25maWcuaGludE9uSW5wdXRCcmVha3BvaW50cy5pbmNsdWRlcyhzaXplTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnaW5wdXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2xhYmVsJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaW50VGFyZ2V0ID0gdGhpcy5oaW50T3B0aW9ucy50YXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hc3NpZ25FcnJvckRpcmVjdGl2ZXMoKTtcblxuICAgICAgICB0aGlzLl9lcnJvckRpcmVjdGl2ZVF1ZXJ5LmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25FcnJvckRpcmVjdGl2ZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlRXJyb3JIYW5kbGVyKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybU1lc3NhZ2UoKTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZExheW91dFNlcnZpY2UucmVtb3ZlRW50cnkodGhpcyk7XG4gICAgICAgIHRoaXMuX3JlbW92ZUZyb21Gb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZXJyb3JEaXJlY3RpdmVzQ2RyPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9mb3JtR3JvdXBFcnJvckRpcmVjdGl2ZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZSAmJiAhIXRoaXMuY29udHJvbD8uY29udHJvbEludmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgdW5kZXJseWluZyBmb3JtIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gZm9ybUZpZWxkQ29udHJvbFxuICAgICAqL1xuICAgIHJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbChmb3JtRmllbGRDb250cm9sOiBGb3JtRmllbGRDb250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdGb3JtIGZpZWxkIGNhbiBjb250YWluIG9ubHkgb25lIEZvcm1GaWVsZENvbnRyb2wnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udHJvbCA9IGZvcm1GaWVsZENvbnRyb2wgYXMgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sO1xuXG4gICAgICAgIGZvcm1GaWVsZENvbnRyb2wuc3RhdGVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sUHJvcGVydGllcygpO1xuICAgICAgICAgICAgLy8gbmVlZCB0byBjYWxsIGV4cGxpY2l0bHkgZGV0ZWN0Q2hhbmdlcygpIGluc3RlYWQgb2YgbWFya0ZvckNoZWNrIGJlZm9yZSB0aGVcbiAgICAgICAgICAgIC8vIG1vZGlmaWVkIHZhbGlkYXRpb24gc3RhdGUgb2YgdGhlIGNvbnRyb2wgcGFzc2VzIG92ZXIgY2hlY2tlZCBwaGFzZVxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCdzdGF0ZUNoYW5nZXMnKTtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBFcnJvcnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVmcmVzaCBVSSB3aGVuIHZhbHVlIGNoYW5nZXNcbiAgICAgICAgaWYgKGZvcm1GaWVsZENvbnRyb2w/Lm5nQ29udHJvbD8udmFsdWVDaGFuZ2VzKSB7XG4gICAgICAgICAgICBmb3JtRmllbGRDb250cm9sLm5nQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCd2YWx1ZUNoYW5nZXMnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb3JtRmllbGRDb250cm9sPy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtRmllbGRDb250cm9sLm5nQ29udHJvbC5jb250cm9sO1xuXG4gICAgICAgICAgICBjb25zdCBoYXNSZXF1aXJlZFZhbGlkYXRvciA9XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzLmluY2x1ZGVzKFZhbGlkYXRvcnMucmVxdWlyZWQpIHx8IHRoaXMudmFsaWRhdG9ycy5pbmNsdWRlcyhWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICFoYXNSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaGFzUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgZm9ybSBjb250cm9sIGlzIGRpc2FibGVkLCBpbiByZWFjdGl2ZSBmb3JtIGFwcHJvYWNoXG4gICAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoZXJlIGlzIGEgY2FzZSB3aGVuIGEgXCJmb3JtLWdyb3VwXCIgaW5pdGlhbCBzdGF0ZSBpcyBWQUxJRCxcbiAgICAgICAgICAgICAqIGFuZCBvbiB0aGUgbmV4dCBsb29wIGEgY2hpbGQgZm9ybS1maWxlZCBleHRlbmRzIGl0IGFuZCBtYWtlXG4gICAgICAgICAgICAgKiB0aGUgZm9ybS1ncm91cCBJTlZBTElELlxuICAgICAgICAgICAgICogSW4gc3VjaCBjYXNlIHdlIGdldCB0aGUgZXJyb3JcbiAgICAgICAgICAgICAqIFwiRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci4gUHJldmlvdXMgdmFsdWUgaXMgbmctdmFsaWQsIGN1cnJlbnQgdmFsdWUgaXMgbmctaW52YWxpZFwiLlxuICAgICAgICAgICAgICogVG8gZml4IGl0IHdlIGhhdmUgdG8gcG9zdHBvbmUgYWRkaW5nIGZvcm0tZmllbGQgdmFsaWRhdG9yc1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZSh0aGlzLnZhbGlkYXRvcnMpKTtcbiAgICAgICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2FkZENvbnRyb2xUb0Zvcm1Hcm91cChmb3JtRmllbGRDb250cm9sPy5uZ0NvbnRyb2w/LmNvbnRyb2wpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlciB1bmRlcmx5aW5nIGZvcm0gY29udHJvbFxuICAgICAqIEBwYXJhbSBmb3JtRmllbGRDb250cm9sXG4gICAgICovXG4gICAgdW5yZWdpc3RlckZvcm1GaWVsZENvbnRyb2woZm9ybUZpZWxkQ29udHJvbDogRm9ybUZpZWxkQ29udHJvbCk6IHZvaWQge1xuICAgICAgICBpZiAoZm9ybUZpZWxkQ29udHJvbCAhPT0gdGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRyb2wgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuX3JlbW92ZUNvbnRyb2xGcm9tRm9ybUdyb3VwKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR3JvdXBzXG4gICAgICovXG4gICAgZ3JvdXBFcnJvcnMoKTogdm9pZCB7XG4gICAgICAgIC8vIFF1ZXVlIHRhc2sgYmVjYXVzZSBmaXJpbmcgaXQgcmlnaHQgYXdheSBtYXkgY2F1c2UgZXJyb3Igd2l0aCBzaG93aW5nIGVtcHR5IG1lc3NhZ2UuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncm91cGVkRXJyb3JzID0gW107XG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbD8uZXJyb3JzO1xuICAgICAgICAgICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZXJyb3JEaXJlY3RpdmVzLmZvckVhY2goKGRpcmVjdGl2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3JzW2RpcmVjdGl2ZS5lcnJvcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZEVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JzW2RpcmVjdGl2ZS5lcnJvcl1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5lcnJvcnNDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHByaW9yaXRpemVkIGNvbnRyb2wgc3RhdGUgYmFzZWQgb24gdGhlIGVycm9yIHR5cGVzIGl0IGhhcy5cbiAgICAgKi9cbiAgICBnZXRQcmlvcml0eVN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5ncm91cGVkRXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JzKCkgPyAnZXJyb3InIDogJ2RlZmF1bHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldEZvcm1TdGF0ZSh0aGlzLmdyb3VwZWRFcnJvcnMubWFwKChlcnJvcikgPT4gZXJyb3IuZGlyZWN0aXZlLnR5cGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGVycm9yIGRpcmVjdGl2ZXMuXG4gICAgICovXG4gICAgc2V0RXJyb3JEaXJlY3RpdmVzKGRpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxGb3JtRXJyb3I+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1Hcm91cEVycm9yRGlyZWN0aXZlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICBpZiAoIWRpcmVjdGl2ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Zvcm1Hcm91cEVycm9yRGlyZWN0aXZlcyA9IGRpcmVjdGl2ZXMudG9BcnJheSgpO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1Hcm91cEVycm9yRGlyZWN0aXZlc1N1YnNjcmlwdGlvbiA9IGRpcmVjdGl2ZXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybUdyb3VwRXJyb3JEaXJlY3RpdmVzID0gZGlyZWN0aXZlcy50b0FycmF5KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgY29udGVudCBvZiB0aGUgcHJvdmlkZWQgaGludCBpcyBhIHN0cmluZy5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgaXNTdHJpbmdIaW50KGhpbnRPcHRpb25zOiBIaW50Q29udGVudCk6IGhpbnRPcHRpb25zIGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgaGludE9wdGlvbnMgPT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBMaXN0ZW5zIHRvIGZvcm0gbWVzc2FnZSBjb21wb25lbnQgY2hhbmdlcyBhbmQgcGFzc2VzIGl0cyBpbnN0YW5jZSB0byB0aGUgZm9ybSBjb250cm9sIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0Zvcm1NZXNzYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnB1dE1lc3NhZ2VHcm91cENtcC5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuX2lucHV0TWVzc2FnZUdyb3VwQ21wLmZpcnN0KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sIS5mb3JtTWVzc2FnZSA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGVFcnJvckhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2VkaXRhYmxlICYmXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wgJiZcbiAgICAgICAgICAgIHRoaXMuX2hhc1ZhbGlkYXRvcnMoKSAmJlxuICAgICAgICAgICAgIXRoaXMuaTE4U3RyaW5ncyAmJlxuICAgICAgICAgICAgdGhpcy5lcnJvckRpcmVjdGl2ZXMubGVuZ3RoID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWxpZGF0aW9uIHN0cmluZ3MgYXJlIHJlcXVpcmVkIGZvciB0aGUgYW55IHByb3ZpZGVkIHZhbGlkYXRpb25zLicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYXNWYWxpZGF0b3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0b3JzICYmIHRoaXMudmFsaWRhdG9ycy5sZW5ndGggPiAxO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBZGQgRm9ybUZpZWxkIHRvIEZvcm1Hcm91cFxuICAgICAqL1xuICAgIHByaXZhdGUgX2FkZFRvRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwQ29udGFpbmVyIHx8IHRoaXMuZm9ybUZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyLmFkZEZvcm1GaWVsZCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmVtb3ZlIEZvcm1GaWVsZCBmcm9tIEZvcm1Hcm91cFxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlbW92ZUZyb21Gb3JtR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXBDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cENvbnRhaW5lci5yZW1vdmVGb3JtRmllbGQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFkZCBGb3JtQ29udHJvbCBmcm9tIEZvcm1Hcm91cFxuICAgICAqL1xuICAgIHByaXZhdGUgX2FkZENvbnRyb2xUb0Zvcm1Hcm91cChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cENvbnRhaW5lciB8fCAhIXRoaXMuZm9ybUZpZWxkR3JvdXA/LmZvcm1OYW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIuYWRkRm9ybUNvbnRyb2wodGhpcy5pZCwgY29udHJvbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJlbW92ZSBGb3JtQ29udHJvbCBmcm9tIEZvcm1Hcm91cFxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlbW92ZUNvbnRyb2xGcm9tRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwQ29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIucmVtb3ZlRm9ybUNvbnRyb2wodGhpcy5pZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE5lZWQgdG8gYmUgYWJsZSB0byBzZXQgdGhlc2UgcHJvcGVydGllcyBvbiBldmVyeSBsZXZlbC5cbiAgICAgKiAgLSBHbG9iYWwgRm9ybUdyb3VwIExldmVsIGFzIHdlbGwgZWFjaCBmaWVsZFxuICAgICAqXG4gICAgICogIFRvZG86IHVzZSBtb3JlIGVsZWdhbnQgd2F5IHRvIHNldCB0aGVzZSBwcm9wZXJ0aWVzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRyb2xQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuX2VkaXRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuaWQgPSB0aGlzLmlkO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnJlcXVpcmVkID0gdGhpcy5yZXF1aXJlZDtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQ29sdW1uTGF5b3V0KHRoaXMuY29sdW1uTGF5b3V0LCAxKTtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uTGF5b3V0ID0gbm9ybWFsaXplZDtcbiAgICAgICAgICAgIHRoaXMuX3NDb2x1bW5OdW1iZXIgPSBub3JtYWxpemVkWydTJ107XG4gICAgICAgICAgICB0aGlzLl9tZENvbHVtbk51bWJlciA9IG5vcm1hbGl6ZWRbJ00nXTtcbiAgICAgICAgICAgIHRoaXMuX2xnQ29sdW1uTnVtYmVyID0gbm9ybWFsaXplZFsnTCddO1xuICAgICAgICAgICAgdGhpcy5feGxDb2x1bW5OdW1iZXIgPSBub3JtYWxpemVkWydYTCddO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5faXNDb2x1bW5MYXlvdXRFbmFibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUxheW91dChjdXJyZW50QnJlYWtpbmdQb2ludE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNDb2x1bW5MYXlvdXRFbmFibGVkKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGN1cnJlbnRCcmVha2luZ1BvaW50TmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IHRoaXMuX3NDb2x1bW5OdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IHRoaXMuX21kQ29sdW1uTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdMJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4gPSB0aGlzLl9sZ0NvbHVtbk51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnWEwnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IHRoaXMuX3hsQ29sdW1uTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IHRoaXMuX3hsQ29sdW1uTnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCBjb2x1bW4gY2hhbmdlLCBzbyBmb3JtLWdyb3VwIGtub3dzIGl0IGFuZCByZS1hcnJhbmdlcyB0aGUgZmllbGRzXG4gICAgICAgIHRoaXMub25Db2x1bW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUhpbnRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICAvLyBwbGFjZW1lbnQgaXMgaGVyZSBzZXQgdXAgYmVjYXVzZSBoaW50UGxhY2VtZW50IGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhpbnQgPT09ICdzdHJpbmcnIHx8IHRoaXMuaGludCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLmhpbnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuaGludCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuaGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuaGludFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXNzaWduRXJyb3JEaXJlY3RpdmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lcnJvckRpcmVjdGl2ZXNDZHI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2Vycm9yRGlyZWN0aXZlcyA9IHRoaXMuX2Vycm9yRGlyZWN0aXZlUXVlcnkudG9BcnJheSgpO1xuICAgICAgICB0aGlzLl9lcnJvckRpcmVjdGl2ZXNDZHIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fZXJyb3JEaXJlY3RpdmVzLmZvckVhY2goKGRpcmVjdGl2ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZXJyb3JEaXJlY3RpdmVzQ2RyLmFkZChcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmUuZGV0ZWN0Q2hhbmdlcyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cEVycm9ycygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjcmVuZGVyZXI+XG4gICAgPGRpdiBbaG9yaXpvbnRhbF09XCJ0cnVlXCIgZmQtZm9ybS1pdGVtIGNsYXNzPVwiZmQtcm93XCI+XG4gICAgICAgIEBpZiAoIW5vTGFiZWxMYXlvdXQpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWNvbFwiXG4gICAgICAgICAgICAgICAgI2xhYmVsQ29sXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cIl9sYWJlbENvbHVtbkxheW91dENsYXNzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWFyZ2luLWJvdHRvbS5weF09XCJfY29udHJvbEV4dHJhc0hlaWdodFB4XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwid2l0aEZvcm1NZXNzYWdlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdhcFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIiBbaWRdPVwiJ2ZkcC1mb3JtLWhpbnQtJyArIGlkXCI+XG4gICAgICAgIEBpZiAoaXNTdHJpbmdIaW50KGhpbnRPcHRpb25zLmNvbnRlbnQpKSB7XG4gICAgICAgICAgICB7eyBoaW50T3B0aW9ucy5jb250ZW50IH19XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoaGludE9wdGlvbnMuY29udGVudClcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjd2l0aEZvcm1NZXNzYWdlPlxuICAgIDxmZHAtaW5wdXQtbWVzc2FnZS1ncm91cFxuICAgICAgICBjbGFzcz1cImZkLWNvbFwiXG4gICAgICAgIFtjbGFzc109XCJfZmllbGRDb2x1bW5MYXlvdXRDbGFzc1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInZmRwLWZvcm0tbGFiZWwtJyArIGlkXCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlckl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgQGlmIChoYXNFcnJvcnMoKSAmJiBncm91cGVkRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdyb3VwZWRFcnJvcnM7IHRyYWNrIGVycm9yKSB7XG4gICAgICAgICAgICAgICAgPGZkLWZvcm0tbWVzc2FnZSBbdHlwZV09XCJlcnJvci5kaXJlY3RpdmUudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGVycm9yLmRpcmVjdGl2ZS5faGVhZGluZ1RlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvci5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBlcnJvci5lcnJvciwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGVycm9yLmRpcmVjdGl2ZS5faGVhZGluZ1RlbXBsYXRlUmVmICYmIGVycm9yLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChlcnJvci5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVycm9yLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBlcnJvci5lcnJvciwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtZm9ybS1tZXNzYWdlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChncm91cGVkRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBoYXNFcnJvcnMoKSAmJiBpMThTdHJpbmdzKSB7XG4gICAgICAgICAgICA8ZmQtZm9ybS1tZXNzYWdlIHR5cGU9XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpMThTdHJpbmdzXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjb250cm9sPy5uZ0NvbnRyb2w/LmVycm9ycyB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZmQtZm9ybS1tZXNzYWdlPlxuICAgICAgICB9XG4gICAgPC9mZHAtaW5wdXQtbWVzc2FnZS1ncm91cD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5uZXJFcnJvclJlbmRlcmVycz5cbiAgICBAaWYgKGhhc0Vycm9ycygpICYmIGdyb3VwZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBAZm9yIChlcnJvciBvZiBncm91cGVkRXJyb3JzOyB0cmFjayBlcnJvcikge1xuICAgICAgICAgICAgQGlmIChlcnJvci5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvci5kaXJlY3RpdmUuX2hlYWRpbmdUZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZXJyb3IuZXJyb3IsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZXJyb3IuZGlyZWN0aXZlLl9oZWFkaW5nVGVtcGxhdGVSZWYgJiYgZXJyb3IuZGlyZWN0aXZlLl9kZXNjcmlwdGlvblRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGVycm9yLmRpcmVjdGl2ZS5fZGVzY3JpcHRpb25UZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvci5kaXJlY3RpdmUuX2Rlc2NyaXB0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGVycm9yLmVycm9yLCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGdyb3VwZWRFcnJvcnMubGVuZ3RoID09PSAwICYmIGhhc0Vycm9ycygpICYmIGkxOFN0cmluZ3MpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpMThTdHJpbmdzXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29udHJvbD8ubmdDb250cm9sPy5lcnJvcnMgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XG4gICAgQGlmIChoaW50VGFyZ2V0ID09PSAnbGFiZWwnKSB7XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2lkXT1cIidmZHAtZm9ybS1sYWJlbC0nICsgaWRcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImVkaXRhYmxlICYmIHJlcXVpcmVkXCJcbiAgICAgICAgICAgIGZkLWZvcm0tbGFiZWxcbiAgICAgICAgICAgIFtpbmxpbmVIZWxwQ29udGVudF09XCJoaW50T3B0aW9ucy5jb250ZW50XCJcbiAgICAgICAgICAgIFtpbmxpbmVIZWxwQm9keVBsYWNlbWVudF09XCJoaW50T3B0aW9ucy5wbGFjZW1lbnQgfHwgJ3RvcCdcIlxuICAgICAgICAgICAgW2lubGluZUhlbHBQbGFjZW1lbnRdPVwiaGludE9wdGlvbnMucG9zaXRpb24gfHwgJ2FmdGVyJ1wiXG4gICAgICAgICAgICBbaW5saW5lSGVscEdseXBoXT1cImhpbnRPcHRpb25zLmdseXBoIHx8ICcnXCJcbiAgICAgICAgICAgIFtpbmxpbmVIZWxwVHJpZ2dlcnNdPVwiaGludE9wdGlvbnMudHJpZ2dlciB8fCBbXVwiXG4gICAgICAgICAgICBbYWxpZ25MYWJlbEVuZF09XCIhIShpc0hvcml6b250YWwkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIFtjb2xvbl09XCJjb2xvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtpZF09XCInZmRwLWZvcm0tbGFiZWwtY29udGVudC0nICsgaWRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBbaWRdPVwiJ2ZkcC1mb3JtLWxhYmVsLScgKyBpZFwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiZWRpdGFibGUgJiYgcmVxdWlyZWRcIlxuICAgICAgICAgICAgZmQtZm9ybS1sYWJlbFxuICAgICAgICAgICAgW2NvbG9uXT1cImNvbG9uXCJcbiAgICAgICAgICAgIFthbGlnbkxhYmVsRW5kXT1cIiEhKGlzSG9yaXpvbnRhbCQgfCBhc3luYylcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2ZkcC1mb3JtLWxhYmVsLWNvbnRlbnQtJyArIGlkXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNnYXBUZW1wbGF0ZT5cbiAgICBAaWYgKGhpbnRUYXJnZXQgPT09ICdpbnB1dCcgJiYgaGludE9wdGlvbnMuY29udGVudCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtY29sIGZkLWZvcm0tZmllbGQtaW5saW5lLWhlbHAtY29udGFpbmVyXCIgW2NsYXNzXT1cIl9nYXBDb2x1bW5MYXlvdXRDbGFzc1wiPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGluayBbdW5kZWNvcmF0ZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCJoaW50T3B0aW9ucy5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImhpbnRPcHRpb25zLmdseXBoXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJoaW50T3B0aW9ucy5wbGFjZW1lbnQgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJoaW50T3B0aW9ucy50cmlnZ2VyIHx8IFtdXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNvbFwiIFtjbGFzc109XCJfZ2FwQ29sdW1uTGF5b3V0Q2xhc3NcIj48L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
29
29
  }] }], propDecorators: { fdpFormFieldErrorDescriptionAs: [{
30
30
  type: Input
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1kZXNjcmlwdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1kZXNjcmlwdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sa0NBQWtDO0lBSzNDLGNBQWM7SUFDZCxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLEdBQXVDLEVBQ3ZDLEdBQStCO1FBRS9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFDVyxXQUFrRCxFQUNILHdCQUFtQztRQURsRixnQkFBVyxHQUFYLFdBQVcsQ0FBdUM7UUFDSCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQVc7UUFFekYsSUFBSSxDQUFDLHdCQUF3QixFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7OEdBbkJRLGtDQUFrQyw2Q0FnQm5CLHdCQUF3QjtrR0FoQnZDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFKOUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQWlCUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHdCQUF3Qjt5Q0FiaEQsOEJBQThCO3NCQUQ3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1FcnJvciwgRm9ybUVycm9yRGVzY3JpcHRpb24sIEZvcm1GaWVsZEVycm9yQ29udGV4dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IEZEUF9GT1JNX0VSUk9SX0RJUkVDVElWRSB9IGZyb20gJy4vdG9rZW5zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwRm9ybUZpZWxkRXJyb3JEZXNjcmlwdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkRXJyb3JEZXNjcmlwdGlvbkRpcmVjdGl2ZTxUID0gYW55PiBpbXBsZW1lbnRzIEZvcm1FcnJvckRlc2NyaXB0aW9uIHtcbiAgICAvKiogVXNlZCB0byBjb25uZWN0IGRhdGEgd2l0aCBtb2RlbCBmb3IgdHlwaW5ncyBzdXBwb3J0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRwRm9ybUZpZWxkRXJyb3JEZXNjcmlwdGlvbkFzOiBUO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChcbiAgICAgICAgZGlyOiBGb3JtRmllbGRFcnJvckRlc2NyaXB0aW9uRGlyZWN0aXZlLFxuICAgICAgICBjdHg6IEZvcm1GaWVsZEVycm9yQ29udGV4dDxhbnk+XG4gICAgKTogY3R4IGlzIEZvcm1GaWVsZEVycm9yQ29udGV4dDxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxGb3JtRmllbGRFcnJvckNvbnRleHQ8VD4+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZEUF9GT1JNX0VSUk9SX0RJUkVDVElWRSkgcHJpdmF0ZSBfZm9ybUZpZWxkRXJyb3JEaXJlY3RpdmU6IEZvcm1FcnJvclxuICAgICkge1xuICAgICAgICB0aGlzLl9mb3JtRmllbGRFcnJvckRpcmVjdGl2ZT8ucmVnaXN0ZXJEZXNjcmlwdGlvbih0aGlzKTtcbiAgICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1kZXNjcmlwdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3ItZGVzY3JpcHRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGtDQUFrQztJQUszQyxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixHQUF1QyxFQUN2QyxHQUErQjtRQUUvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQ1csV0FBa0QsRUFDSCx3QkFBbUM7UUFEbEYsZ0JBQVcsR0FBWCxXQUFXLENBQXVDO1FBQ0gsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFXO1FBRXpGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDOzhHQW5CUSxrQ0FBa0MsNkNBZ0JuQix3QkFBd0I7a0dBaEJ2QyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBSjlDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFpQlEsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0I7eUNBYmhELDhCQUE4QjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IsIEZvcm1FcnJvckRlc2NyaXB0aW9uLCBGb3JtRmllbGRFcnJvckNvbnRleHQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBGRFBfRk9STV9FUlJPUl9ESVJFQ1RJVkUgfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb25EaXJlY3RpdmU8VCA9IGFueT4gaW1wbGVtZW50cyBGb3JtRXJyb3JEZXNjcmlwdGlvbiB7XG4gICAgLyoqIFVzZWQgdG8gY29ubmVjdCBkYXRhIHdpdGggbW9kZWwgZm9yIHR5cGluZ3Mgc3VwcG9ydC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb25BczogVDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG4gICAgICAgIGRpcjogRm9ybUZpZWxkRXJyb3JEZXNjcmlwdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgY3R4OiBGb3JtRmllbGRFcnJvckNvbnRleHQ8YW55PlxuICAgICk6IGN0eCBpcyBGb3JtRmllbGRFcnJvckNvbnRleHQ8YW55PiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8Rm9ybUZpZWxkRXJyb3JDb250ZXh0PFQ+PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChGRFBfRk9STV9FUlJPUl9ESVJFQ1RJVkUpIHByaXZhdGUgX2Zvcm1GaWVsZEVycm9yRGlyZWN0aXZlOiBGb3JtRXJyb3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZm9ybUZpZWxkRXJyb3JEaXJlY3RpdmU/LnJlZ2lzdGVyRGVzY3JpcHRpb24odGhpcyk7XG4gICAgfVxufVxuIl19
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
31
31
  }], fdpFormFieldErrorHeadingType: [{
32
32
  type: Input
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1oZWFkaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL2Zvcm0tZ3JvdXAvZm9ybS1maWVsZC1lcnJvci9mb3JtLWZpZWxkLWVycm9yLWhlYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLDhCQUE4QjtJQVN2QyxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixHQUFtQyxFQUNuQyxHQUErQjtRQUUvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQ1csV0FBa0QsRUFDSCx3QkFBbUM7UUFEbEYsZ0JBQVcsR0FBWCxXQUFXLENBQXVDO1FBQ0gsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFXO1FBRXpGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQzs4R0F2QlEsOEJBQThCLDZDQW9CZix3QkFBd0I7a0dBcEJ2Qyw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFxQlEsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0I7eUNBakJoRCwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBS04sNEJBQTRCO3NCQUQzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRXJyb3IsIEZvcm1FcnJvckhlYWRpbmcsIEZvcm1GaWVsZEVycm9yQ29udGV4dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IEZEUF9GT1JNX0VSUk9SX0RJUkVDVElWRSB9IGZyb20gJy4vdG9rZW5zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwRm9ybUZpZWxkRXJyb3JIZWFkaW5nXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRFcnJvckhlYWRpbmdEaXJlY3RpdmU8VCA9IGFueT4gaW1wbGVtZW50cyBGb3JtRXJyb3JIZWFkaW5nIHtcbiAgICAvKiogVXNlZCB0byBjb25uZWN0IGRhdGEgd2l0aCBtb2RlbCBmb3IgdHlwaW5ncyBzdXBwb3J0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRwRm9ybUZpZWxkRXJyb3JIZWFkaW5nQXM6IFQ7XG5cbiAgICAvKiogRXJyb3IgdHlwZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZkcEZvcm1GaWVsZEVycm9ySGVhZGluZ1R5cGU6IEZvcm1TdGF0ZXMgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuICAgICAgICBkaXI6IEZvcm1GaWVsZEVycm9ySGVhZGluZ0RpcmVjdGl2ZSxcbiAgICAgICAgY3R4OiBGb3JtRmllbGRFcnJvckNvbnRleHQ8YW55PlxuICAgICk6IGN0eCBpcyBGb3JtRmllbGRFcnJvckNvbnRleHQ8YW55PiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8Rm9ybUZpZWxkRXJyb3JDb250ZXh0PFQ+PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChGRFBfRk9STV9FUlJPUl9ESVJFQ1RJVkUpIHByaXZhdGUgX2Zvcm1GaWVsZEVycm9yRGlyZWN0aXZlOiBGb3JtRXJyb3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZm9ybUZpZWxkRXJyb3JEaXJlY3RpdmU/LnJlZ2lzdGVySGVhZGluZyh0aGlzKTtcbiAgICB9XG59XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1oZWFkaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1oZWFkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBTXBELE1BQU0sT0FBTyw4QkFBOEI7SUFTdkMsY0FBYztJQUNkLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDekIsR0FBbUMsRUFDbkMsR0FBK0I7UUFFL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUNXLFdBQWtELEVBQ0gsd0JBQW1DO1FBRGxGLGdCQUFXLEdBQVgsV0FBVyxDQUF1QztRQUNILDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBVztRQUV6RixJQUFJLENBQUMsd0JBQXdCLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7OEdBdkJRLDhCQUE4Qiw2Q0FvQmYsd0JBQXdCO2tHQXBCdkMsOEJBQThCOzsyRkFBOUIsOEJBQThCO2tCQUoxQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBcUJRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsd0JBQXdCO3lDQWpCaEQsMEJBQTBCO3NCQUR6QixLQUFLO2dCQUtOLDRCQUE0QjtzQkFEM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUVycm9yLCBGb3JtRXJyb3JIZWFkaW5nLCBGb3JtRmllbGRFcnJvckNvbnRleHQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBGRFBfRk9STV9FUlJPUl9ESVJFQ1RJVkUgfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcEZvcm1GaWVsZEVycm9ySGVhZGluZ10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkRXJyb3JIZWFkaW5nRGlyZWN0aXZlPFQgPSBhbnk+IGltcGxlbWVudHMgRm9ybUVycm9ySGVhZGluZyB7XG4gICAgLyoqIFVzZWQgdG8gY29ubmVjdCBkYXRhIHdpdGggbW9kZWwgZm9yIHR5cGluZ3Mgc3VwcG9ydC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZkcEZvcm1GaWVsZEVycm9ySGVhZGluZ0FzOiBUO1xuXG4gICAgLyoqIEVycm9yIHR5cGUuICovXG4gICAgQElucHV0KClcbiAgICBmZHBGb3JtRmllbGRFcnJvckhlYWRpbmdUeXBlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChcbiAgICAgICAgZGlyOiBGb3JtRmllbGRFcnJvckhlYWRpbmdEaXJlY3RpdmUsXG4gICAgICAgIGN0eDogRm9ybUZpZWxkRXJyb3JDb250ZXh0PGFueT5cbiAgICApOiBjdHggaXMgRm9ybUZpZWxkRXJyb3JDb250ZXh0PGFueT4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPEZvcm1GaWVsZEVycm9yQ29udGV4dDxUPj4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkRQX0ZPUk1fRVJST1JfRElSRUNUSVZFKSBwcml2YXRlIF9mb3JtRmllbGRFcnJvckRpcmVjdGl2ZTogRm9ybUVycm9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2Zvcm1GaWVsZEVycm9yRGlyZWN0aXZlPy5yZWdpc3RlckhlYWRpbmcodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
87
87
  }], fdpFormFieldErrorType: [{
88
88
  type: Input
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTNHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQVlwRCxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JoQyx3RkFBd0Y7SUFDeEYsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsNEJBQTRCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQzlGLENBQUM7SUFXRCxjQUFjO0lBQ2QsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDbkUsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFRCxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUN6QixHQUE0QixFQUM1QixHQUErQjtRQUUvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQ1csV0FBa0QsRUFDakQsY0FBZ0MsRUFDaEMsSUFBdUI7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXVDO1FBQ2pELG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTNDbkMsaUJBQWlCO1FBRWpCLDBCQUFxQixHQUFlLE9BQU8sQ0FBQztRQUU1QyxjQUFjO1FBQ2QsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBdUNsQyxDQUFDO0lBRUosY0FBYztJQUNkLFFBQVE7UUFDSiw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsZUFBZSxDQUFDLFNBQTJCO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsbUJBQW1CLENBQUMsU0FBK0I7UUFDL0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDTixXQUFXO1FBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYztJQUNOLGNBQWM7UUFDbEIsZ0hBQWdIO1FBQ2hILGtFQUFrRTtRQUNsRSxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs4R0F4RlEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaU5BUnJCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLHVCQUF1QjthQUN2QztTQUNKOzsyRkFHUSx1QkFBdUI7a0JBVm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcseUJBQXlCO3lCQUN2QztxQkFDSjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7K0lBSUcsbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSzt1QkFBQyxtQkFBbUI7Z0JBSzFCLHFCQUFxQjtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBGb3JtRXJyb3IsXG4gICAgRm9ybUVycm9yRGVzY3JpcHRpb24sXG4gICAgRm9ybUVycm9ySGVhZGluZyxcbiAgICBGb3JtRmllbGRFcnJvckNvbnRleHRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkRQX0ZPUk1fRVJST1JfRElSRUNUSVZFIH0gZnJvbSAnLi90b2tlbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBGb3JtRmllbGRFcnJvcl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfRk9STV9FUlJPUl9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZTxUID0gYW55PiBpbXBsZW1lbnRzIEZvcm1FcnJvcjxUPiwgT25Jbml0IHtcbiAgICAvKiogVXNlZCB0byBjb25uZWN0IGRhdGEgd2l0aCBtb2RlbCBmb3IgdHlwaW5ncyBzdXBwb3J0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRwRm9ybUZpZWxkRXJyb3JBczogVDtcblxuICAgIC8qKiBFcnJvciBuYW1lICovXG4gICAgQElucHV0KCdmZHBGb3JtRmllbGRFcnJvcicpXG4gICAgZXJyb3I6IHN0cmluZztcblxuICAgIC8qKiBFcnJvciB0eXBlICovXG4gICAgQElucHV0KClcbiAgICBmZHBGb3JtRmllbGRFcnJvclR5cGU6IEZvcm1TdGF0ZXMgPSAnZXJyb3InO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBkZXRlY3RDaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogRXJyb3IgdHlwZS4gRGVmaW5lcyB3aGljaCB0eXBlIHRvIHJldHVybi4gRWl0aGVyIHNlbGYsIG9yIGZyb20gaGVhZGluZyBkaXJlY3RpdmUuICovXG4gICAgZ2V0IHR5cGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkaW5nRGlyZWN0aXZlPy5mZHBGb3JtRmllbGRFcnJvckhlYWRpbmdUeXBlID8/IHRoaXMuZmRwRm9ybUZpZWxkRXJyb3JUeXBlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGVhZGluZ0RpcmVjdGl2ZTogRm9ybUVycm9ySGVhZGluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzY3JpcHRpb25EaXJlY3RpdmU6IEZvcm1FcnJvckRlc2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXRlY3RUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9oZWFkaW5nVGVtcGxhdGVSZWYoKTogVGVtcGxhdGVSZWY8Rm9ybUZpZWxkRXJyb3JDb250ZXh0PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkaW5nRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZiA/PyB0aGlzLnRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9kZXNjcmlwdGlvblRlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPEZvcm1GaWVsZEVycm9yQ29udGV4dDxUPj4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZiA/PyBudWxsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG4gICAgICAgIGRpcjogRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUsXG4gICAgICAgIGN0eDogRm9ybUZpZWxkRXJyb3JDb250ZXh0PGFueT5cbiAgICApOiBjdHggaXMgRm9ybUZpZWxkRXJyb3JDb250ZXh0PGFueT4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPEZvcm1GaWVsZEVycm9yQ29udGV4dDxUPj4sXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSB2aWV3IGluIG9yZGVyIHRvIGluaXRpYWxpemUgY2hpbGQgZGlyZWN0aXZlcyBpbW1lZGlhdGVseS5cbiAgICAgICAgdGhpcy5fY3JlYXRlVmlldygpO1xuICAgIH1cblxuICAgIC8qKiBSZWdpc3RlcnMgY2hpbGQgaGVhZGluZyBkaXJlY3RpdmUuICovXG4gICAgcmVnaXN0ZXJIZWFkaW5nKGRpcmVjdGl2ZTogRm9ybUVycm9ySGVhZGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oZWFkaW5nRGlyZWN0aXZlID0gZGlyZWN0aXZlO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFJlZ2lzdGVycyBjaGlsZCBkZXNjcmlwdGlvbiBkaXJlY3RpdmUuICovXG4gICAgcmVnaXN0ZXJEZXNjcmlwdGlvbihkaXJlY3RpdmU6IEZvcm1FcnJvckRlc2NyaXB0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uRGlyZWN0aXZlID0gZGlyZWN0aXZlO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jcmVhdGVWaWV3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5kZXRhY2goKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIFNpbmNlIGNoaWxkIGRpcmVjdGl2ZXMgY2FuIHJlZ2lzdGVyIGl0c2VsZiBhbG1vc3QgaW5zdGFudGx5LCB3ZSBuZWVkIHRvIHRyaWdnZXIgZGV0ZWN0IGNoYW5nZXMgb25seSBvbmUgdGltZSxcbiAgICAgICAgLy8gaW4gb3JkZXIgdG8gYnlwYXNzIGVycm9yIHdpdGggZXhwZWN0ZWQvYWN0dWFsIGRpcmVjdGl2ZXMgY291bnQuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZXRlY3RUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcyQubmV4dCgpO1xuICAgICAgICB9LCA1KTtcbiAgICB9XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFZcEQsTUFBTSxPQUFPLHVCQUF1QjtJQWdCaEMsd0ZBQXdGO0lBQ3hGLElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLDRCQUE0QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUM5RixDQUFDO0lBV0QsY0FBYztJQUNkLElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFBSSx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRUQsY0FBYztJQUNkLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDekIsR0FBNEIsRUFDNUIsR0FBK0I7UUFFL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUNXLFdBQWtELEVBQ2pELGNBQWdDLEVBQ2hDLElBQXVCO1FBRnhCLGdCQUFXLEdBQVgsV0FBVyxDQUF1QztRQUNqRCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUEzQ25DLGlCQUFpQjtRQUVqQiwwQkFBcUIsR0FBZSxPQUFPLENBQUM7UUFFNUMsY0FBYztRQUNkLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQXVDbEMsQ0FBQztJQUVKLGNBQWM7SUFDZCxRQUFRO1FBQ0osOEVBQThFO1FBQzlFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLGVBQWUsQ0FBQyxTQUEyQjtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLG1CQUFtQixDQUFDLFNBQStCO1FBQy9DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO0lBQ04sV0FBVztRQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWM7SUFDTixjQUFjO1FBQ2xCLGdIQUFnSDtRQUNoSCxrRUFBa0U7UUFDbEUsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7OEdBeEZRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlOQVJyQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSx3QkFBd0I7Z0JBQ2pDLFdBQVcsRUFBRSx1QkFBdUI7YUFDdkM7U0FDSjs7MkZBR1EsdUJBQXVCO2tCQVZuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxXQUFXLHlCQUF5Qjt5QkFDdkM7cUJBQ0o7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25COytJQUlHLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUsxQixxQkFBcUI7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgRm9ybUVycm9yLFxuICAgIEZvcm1FcnJvckRlc2NyaXB0aW9uLFxuICAgIEZvcm1FcnJvckhlYWRpbmcsXG4gICAgRm9ybUZpZWxkRXJyb3JDb250ZXh0XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZEUF9GT1JNX0VSUk9SX0RJUkVDVElWRSB9IGZyb20gJy4vdG9rZW5zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwRm9ybUZpZWxkRXJyb3JdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRQX0ZPUk1fRVJST1JfRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmU8VCA9IGFueT4gaW1wbGVtZW50cyBGb3JtRXJyb3I8VD4sIE9uSW5pdCB7XG4gICAgLyoqIFVzZWQgdG8gY29ubmVjdCBkYXRhIHdpdGggbW9kZWwgZm9yIHR5cGluZ3Mgc3VwcG9ydC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZkcEZvcm1GaWVsZEVycm9yQXM6IFQ7XG5cbiAgICAvKiogRXJyb3IgbmFtZSAqL1xuICAgIEBJbnB1dCgnZmRwRm9ybUZpZWxkRXJyb3InKVxuICAgIGVycm9yOiBzdHJpbmc7XG5cbiAgICAvKiogRXJyb3IgdHlwZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRwRm9ybUZpZWxkRXJyb3JUeXBlOiBGb3JtU3RhdGVzID0gJ2Vycm9yJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGV0ZWN0Q2hhbmdlcyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEVycm9yIHR5cGUuIERlZmluZXMgd2hpY2ggdHlwZSB0byByZXR1cm4uIEVpdGhlciBzZWxmLCBvciBmcm9tIGhlYWRpbmcgZGlyZWN0aXZlLiAqL1xuICAgIGdldCB0eXBlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGluZ0RpcmVjdGl2ZT8uZmRwRm9ybUZpZWxkRXJyb3JIZWFkaW5nVHlwZSA/PyB0aGlzLmZkcEZvcm1GaWVsZEVycm9yVHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hlYWRpbmdEaXJlY3RpdmU6IEZvcm1FcnJvckhlYWRpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rlc2NyaXB0aW9uRGlyZWN0aXZlOiBGb3JtRXJyb3JEZXNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0VGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaGVhZGluZ1RlbXBsYXRlUmVmKCk6IFRlbXBsYXRlUmVmPEZvcm1GaWVsZEVycm9yQ29udGV4dDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGluZ0RpcmVjdGl2ZT8udGVtcGxhdGVSZWYgPz8gdGhpcy50ZW1wbGF0ZVJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfZGVzY3JpcHRpb25UZW1wbGF0ZVJlZigpOiBUZW1wbGF0ZVJlZjxGb3JtRmllbGRFcnJvckNvbnRleHQ8VD4+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbkRpcmVjdGl2ZT8udGVtcGxhdGVSZWYgPz8gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuICAgICAgICBkaXI6IEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlLFxuICAgICAgICBjdHg6IEZvcm1GaWVsZEVycm9yQ29udGV4dDxhbnk+XG4gICAgKTogY3R4IGlzIEZvcm1GaWVsZEVycm9yQ29udGV4dDxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxGb3JtRmllbGRFcnJvckNvbnRleHQ8VD4+LFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBjcmVhdGUgdmlldyBpbiBvcmRlciB0byBpbml0aWFsaXplIGNoaWxkIGRpcmVjdGl2ZXMgaW1tZWRpYXRlbHkuXG4gICAgICAgIHRoaXMuX2NyZWF0ZVZpZXcoKTtcbiAgICB9XG5cbiAgICAvKiogUmVnaXN0ZXJzIGNoaWxkIGhlYWRpbmcgZGlyZWN0aXZlLiAqL1xuICAgIHJlZ2lzdGVySGVhZGluZyhkaXJlY3RpdmU6IEZvcm1FcnJvckhlYWRpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGVhZGluZ0RpcmVjdGl2ZSA9IGRpcmVjdGl2ZTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBSZWdpc3RlcnMgY2hpbGQgZGVzY3JpcHRpb24gZGlyZWN0aXZlLiAqL1xuICAgIHJlZ2lzdGVyRGVzY3JpcHRpb24oZGlyZWN0aXZlOiBGb3JtRXJyb3JEZXNjcmlwdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbkRpcmVjdGl2ZSA9IGRpcmVjdGl2ZTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3JlYXRlVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICAvLyBTaW5jZSBjaGlsZCBkaXJlY3RpdmVzIGNhbiByZWdpc3RlciBpdHNlbGYgYWxtb3N0IGluc3RhbnRseSwgd2UgbmVlZCB0byB0cmlnZ2VyIGRldGVjdCBjaGFuZ2VzIG9ubHkgb25lIHRpbWUsXG4gICAgICAgIC8vIGluIG9yZGVyIHRvIGJ5cGFzcyBlcnJvciB3aXRoIGV4cGVjdGVkL2FjdHVhbCBkaXJlY3RpdmVzIGNvdW50LlxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fZGV0ZWN0VGltZW91dCk7XG4gICAgICAgIHRoaXMuX2RldGVjdFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMkLm5leHQoKTtcbiAgICAgICAgfSwgNSk7XG4gICAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const FDP_FORM_ERROR_DIRECTIVE = new InjectionToken('FdpFormErrorDirective');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWZpZWxkLWVycm9yL3Rva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRkRQX0ZPUk1fRVJST1JfRElSRUNUSVZFID0gbmV3IEluamVjdGlvblRva2VuKCdGZHBGb3JtRXJyb3JEaXJlY3RpdmUnKTtcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ3JvdXAvZm9ybS1maWVsZC1lcnJvci90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZEUF9GT1JNX0VSUk9SX0RJUkVDVElWRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignRmRwRm9ybUVycm9yRGlyZWN0aXZlJyk7XG4iXX0=
@@ -8,4 +8,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
8
8
  type: Component,
9
9
  args: [{ selector: 'fdp-form-field-extras', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [":host{display:flex;white-space:normal}\n"] }]
10
10
  }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1leHRyYXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWZpZWxkLWV4dHJhcy9mb3JtLWZpZWxkLWV4dHJhcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVbkUsTUFBTSxPQUFPLCtCQUErQjs4R0FBL0IsK0JBQStCO2tHQUEvQiwrQkFBK0IsaUZBTjlCLDJCQUEyQjs7MkZBTTVCLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDSSx1QkFBdUIsWUFDdkIsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWZvcm0tZmllbGQtZXh0cmFzJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIC8vIFwiZGlzcGxheTogZmxleFwiIGlzIHVzZWQgaW4gb3JkZXIgdG8gaGF2ZSBtYXJnaW4gaW5jbHVkZWQgaW4gY29udHJvbCdzIGRpbWVuc2lvbnNcbiAgICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBmbGV4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9J10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb250cm9sRXh0cmFzQ29tcG9uZW50IHt9XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1leHRyYXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ3JvdXAvZm9ybS1maWVsZC1leHRyYXMvZm9ybS1maWVsZC1leHRyYXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVW5FLE1BQU0sT0FBTywrQkFBK0I7OEdBQS9CLCtCQUErQjtrR0FBL0IsK0JBQStCLGlGQU45QiwyQkFBMkI7OzJGQU01QiwrQkFBK0I7a0JBUjNDLFNBQVM7K0JBQ0ksdUJBQXVCLFlBQ3ZCLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1mb3JtLWZpZWxkLWV4dHJhcycsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICAvLyBcImRpc3BsYXk6IGZsZXhcIiBpcyB1c2VkIGluIG9yZGVyIHRvIGhhdmUgbWFyZ2luIGluY2x1ZGVkIGluIGNvbnRyb2wncyBkaW1lbnNpb25zXG4gICAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogZmxleDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfSddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29udHJvbEV4dHJhc0NvbXBvbmVudCB7fVxuIl19
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
109
109
  type: ContentChildren,
110
110
  args: [FD_FORM_FIELD, { descendants: true }]
111
111
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZmllbGQtZ3JvdXAvZm9ybS1maWVsZC1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUVSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFFSCxjQUFjLEVBQ2Qsa0JBQWtCLEVBR3JCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFFNUQsTUFBTSxzQkFBc0IsR0FBYTtJQUNyQyxPQUFPLEVBQUUsY0FBYztJQUN2QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0NBQ3pELENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUFhO0lBQ3JDLE9BQU8sRUFBRSw0QkFBNEI7SUFDckMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztDQUN6RCxDQUFDO0FBV0YsTUFBTSxPQUFPLHVCQUF1QjtJQWtCaEM7O09BRUc7SUFDSCxJQUNJLGlCQUFpQixDQUFDLEtBQStCO1FBQ2pELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztTQUNuQztJQUNMLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUNJLGlCQUFpQixDQUFDLEtBQStCO1FBQ2pELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztTQUNuQztJQUNMLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUNJLGVBQWUsQ0FBQyxLQUErQjtRQUMvQyxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQWdCRCxjQUFjO0lBQ2QsWUFBd0Isa0JBQXNDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWM7SUFDTixpQkFBaUI7UUFDckIseURBQXlEO1FBQ3pELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUM7UUFDcEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQztRQUNwRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWM7SUFDTixlQUFlO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxjQUFjO0lBQ04sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OEdBckhRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLCtTQUhyQixDQUFDLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDLGlEQTJFMUMsYUFBYSxnREEvRXBCLDRCQUE0Qjs7MkZBTzdCLHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDSSxzQkFBc0IsWUFDdEIsNEJBQTRCLG1CQUVyQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsY0FDL0MsSUFBSTs7MEJBOEVILFFBQVE7eUNBdkVyQixLQUFLO3NCQURKLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBZ0JGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFnQkYsZUFBZTtzQkFEbEIsS0FBSztnQkFnQk4sV0FBVztzQkFEVixLQUFLO2dCQU9OLE1BQU07c0JBREwsZUFBZTt1QkFBQyxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBQcm92aWRlcixcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuXG5pbXBvcnQge1xuICAgIENvbHVtbkxheW91dCxcbiAgICBGb3JtRmllbGRHcm91cCxcbiAgICBGb3JtR3JvdXBDb250YWluZXIsXG4gICAgSGludE9wdGlvbnMsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgRk9STV9HUk9VUF9DSElMRF9GSUVMRF9UT0tFTiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IGZvcm1GaWVsZEdyb3VwUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IEZvcm1GaWVsZEdyb3VwLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1GaWVsZEdyb3VwQ29tcG9uZW50KVxufTtcblxuY29uc3QgZm9ybUdyb3VwQ2hpbGRQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogRk9STV9HUk9VUF9DSElMRF9GSUVMRF9UT0tFTixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtRmllbGRHcm91cENvbXBvbmVudClcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWZvcm0tZmllbGQtZ3JvdXAnLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIHN0eWxlVXJsOiAnLi9mb3JtLWZpZWxkLWdyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW2Zvcm1GaWVsZEdyb3VwUHJvdmlkZXIsIGZvcm1Hcm91cENoaWxkUHJvdmlkZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBGb3JtRmllbGRHcm91cCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEdyb3VwIGhlYWRlciB0aXRsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBHcm91cCdzIGZvcm0gbmFtZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybU5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEZvcm0gR3JvdXAgQ29udGFpbmVyIHRvIGJpbmQgdGhlIEZvcm0tRmllbGQtR3JvdXAgdG8uXG4gICAgICogVGhpcyB3aWxsIG92ZXJyaWRlIGRlZmF1bHQgdmFsdWUgaW5qZWN0ZWQgYnkgY29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1Hcm91cENvbnRhaW5lcjogRm9ybUdyb3VwQ29udGFpbmVyO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgbGFiZWxDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhYmVsQ29sdW1uTGF5b3V0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGxhYmVsQ29sdW1uTGF5b3V0KCk6IENvbHVtbkxheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbENvbHVtbkxheW91dDtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYWJlbENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGRDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpZWxkQ29sdW1uTGF5b3V0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGZpZWxkQ29sdW1uTGF5b3V0KCk6IENvbHVtbkxheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZENvbHVtbkxheW91dDtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maWVsZENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBnYXBDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2dhcENvbHVtbkxheW91dCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBnYXBDb2x1bW5MYXlvdXQoKTogQ29sdW1uTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dhcENvbHVtbkxheW91dDtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nYXBDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlc2NyaWJlcyBoaW50IG9wdGlvbnMgZm9yIGdyb3VwIGhlYWRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGludE9wdGlvbnM/OiBIaW50T3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEdldCBmb3JtIGZpZWxkcyB3cmFwcGVkIGludG8gZm9ybSBmaWVsZCBncm91cFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRfRk9STV9GSUVMRCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGZpZWxkczogUXVlcnlMaXN0PFBsYXRmb3JtRm9ybUZpZWxkPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgZm9ybUdyb3VwQ29udGFpbmVyOiBGb3JtR3JvdXBDb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIgPSBmb3JtR3JvdXBDb250YWluZXI7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWRkVG9Gb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdExheW91dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUZyb21Gb3JtR3JvdXAoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldERlZmF1bHRMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIC8vIElmIGxheW91dCBhbHJlYWR5IGRlZmluZWQsIG5vIG5lZWQgdG8gc2V0IGRlZmF1bHQgb25lLlxuICAgICAgICBpZiAodGhpcy5sYWJlbENvbHVtbkxheW91dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYWJlbENvbHVtbkxheW91dCA9IHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyPy5sYWJlbENvbHVtbkxheW91dDtcbiAgICAgICAgdGhpcy5maWVsZENvbHVtbkxheW91dCA9IHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyPy5maWVsZENvbHVtbkxheW91dDtcbiAgICAgICAgdGhpcy5nYXBDb2x1bW5MYXlvdXQgPSB0aGlzLmZvcm1Hcm91cENvbnRhaW5lcj8uZ2FwQ29sdW1uTGF5b3V0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkVG9Gb3JtR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXBDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cENvbnRhaW5lci5hZGRGb3JtRmllbGRHcm91cCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlbW92ZUZyb21Gb3JtR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXBDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cENvbnRhaW5lci5yZW1vdmVGb3JtRmllbGRHcm91cCh0aGlzKTtcbiAgICB9XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWZpZWxkLWdyb3VwL2Zvcm0tZmllbGQtZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsS0FBSyxFQUdMLFFBQVEsRUFFUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBRUgsY0FBYyxFQUNkLGtCQUFrQixFQUdyQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBRTVELE1BQU0sc0JBQXNCLEdBQWE7SUFDckMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztDQUN6RCxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBYTtJQUNyQyxPQUFPLEVBQUUsNEJBQTRCO0lBQ3JDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Q0FDekQsQ0FBQztBQVdGLE1BQU0sT0FBTyx1QkFBdUI7SUFrQmhDOztPQUVHO0lBQ0gsSUFDSSxpQkFBaUIsQ0FBQyxLQUErQjtRQUNqRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFDSSxpQkFBaUIsQ0FBQyxLQUErQjtRQUNqRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBK0I7UUFDL0MsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUNELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFnQkQsY0FBYztJQUNkLFlBQXdCLGtCQUFzQztRQUMxRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjO0lBQ04saUJBQWlCO1FBQ3JCLHlEQUF5RDtRQUN6RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUM7UUFDcEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjO0lBQ04sZUFBZTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsY0FBYztJQUNOLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQXJIUSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwrU0FIckIsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxpREEyRTFDLGFBQWEsZ0RBL0VwQiw0QkFBNEI7OzJGQU83Qix1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0ksc0JBQXNCLFlBQ3RCLDRCQUE0QixtQkFFckIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDLGNBQy9DLElBQUk7OzBCQThFSCxRQUFRO3lDQXZFckIsS0FBSztzQkFESixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFRTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBT0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQWdCRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBZ0JGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBZ0JOLFdBQVc7c0JBRFYsS0FBSztnQkFPTixNQUFNO3NCQURMLGVBQWU7dUJBQUMsYUFBYSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUHJvdmlkZXIsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgICBDb2x1bW5MYXlvdXQsXG4gICAgRm9ybUZpZWxkR3JvdXAsXG4gICAgRm9ybUdyb3VwQ29udGFpbmVyLFxuICAgIEhpbnRPcHRpb25zLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IEZPUk1fR1JPVVBfQ0hJTERfRklFTERfVE9LRU4gfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5jb25zdCBmb3JtRmllbGRHcm91cFByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBGb3JtRmllbGRHcm91cCxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtRmllbGRHcm91cENvbXBvbmVudClcbn07XG5cbmNvbnN0IGZvcm1Hcm91cENoaWxkUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IEZPUk1fR1JPVVBfQ0hJTERfRklFTERfVE9LRU4sXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybUZpZWxkR3JvdXBDb21wb25lbnQpXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1mb3JtLWZpZWxkLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBzdHlsZVVybDogJy4vZm9ybS1maWVsZC1ncm91cC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtmb3JtRmllbGRHcm91cFByb3ZpZGVyLCBmb3JtR3JvdXBDaGlsZFByb3ZpZGVyXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgRm9ybUZpZWxkR3JvdXAsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBHcm91cCBoZWFkZXIgdGl0bGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogR3JvdXAncyBmb3JtIG5hbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1OYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIEdyb3VwIENvbnRhaW5lciB0byBiaW5kIHRoZSBGb3JtLUZpZWxkLUdyb3VwIHRvLlxuICAgICAqIFRoaXMgd2lsbCBvdmVycmlkZSBkZWZhdWx0IHZhbHVlIGluamVjdGVkIGJ5IGNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmb3JtR3JvdXBDb250YWluZXI6IEZvcm1Hcm91cENvbnRhaW5lcjtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgbGFiZWwncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxhYmVsQ29sdW1uTGF5b3V0KHZhbHVlOiBDb2x1bW5MYXlvdXQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9sYWJlbENvbHVtbkxheW91dCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBsYWJlbENvbHVtbkxheW91dCgpOiBDb2x1bW5MYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWxDb2x1bW5MYXlvdXQ7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFiZWxDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkQ29sdW1uTGF5b3V0KHZhbHVlOiBDb2x1bW5MYXlvdXQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9maWVsZENvbHVtbkxheW91dCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBmaWVsZENvbHVtbkxheW91dCgpOiBDb2x1bW5MYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRDb2x1bW5MYXlvdXQ7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZ2FwQ29sdW1uTGF5b3V0KHZhbHVlOiBDb2x1bW5MYXlvdXQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9nYXBDb2x1bW5MYXlvdXQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZ2FwQ29sdW1uTGF5b3V0KCk6IENvbHVtbkxheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nYXBDb2x1bW5MYXlvdXQ7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2FwQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZXNjcmliZXMgaGludCBvcHRpb25zIGZvciBncm91cCBoZWFkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpbnRPcHRpb25zPzogSGludE9wdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgZm9ybSBmaWVsZHMgd3JhcHBlZCBpbnRvIGZvcm0gZmllbGQgZ3JvdXBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0ZPUk1fRklFTEQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBmaWVsZHM6IFF1ZXJ5TGlzdDxQbGF0Zm9ybUZvcm1GaWVsZD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGZvcm1Hcm91cENvbnRhaW5lcjogRm9ybUdyb3VwQ29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ29udGFpbmVyID0gZm9ybUdyb3VwQ29udGFpbmVyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FkZFRvRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMuX3NldERlZmF1bHRMYXlvdXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVGcm9tRm9ybUdyb3VwKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXREZWZhdWx0TGF5b3V0KCk6IHZvaWQge1xuICAgICAgICAvLyBJZiBsYXlvdXQgYWxyZWFkeSBkZWZpbmVkLCBubyBuZWVkIHRvIHNldCBkZWZhdWx0IG9uZS5cbiAgICAgICAgaWYgKHRoaXMubGFiZWxDb2x1bW5MYXlvdXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFiZWxDb2x1bW5MYXlvdXQgPSB0aGlzLmZvcm1Hcm91cENvbnRhaW5lcj8ubGFiZWxDb2x1bW5MYXlvdXQ7XG4gICAgICAgIHRoaXMuZmllbGRDb2x1bW5MYXlvdXQgPSB0aGlzLmZvcm1Hcm91cENvbnRhaW5lcj8uZmllbGRDb2x1bW5MYXlvdXQ7XG4gICAgICAgIHRoaXMuZ2FwQ29sdW1uTGF5b3V0ID0gdGhpcy5mb3JtR3JvdXBDb250YWluZXI/LmdhcENvbHVtbkxheW91dDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZFRvRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwQ29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIuYWRkRm9ybUZpZWxkR3JvdXAodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZW1vdmVGcm9tRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwQ29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb250YWluZXIucmVtb3ZlRm9ybUZpZWxkR3JvdXAodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
23
23
  }], propDecorators: { fieldGroup: [{
24
24
  type: Input
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWdyb3VwLWhlYWRlci9mb3JtLWdyb3VwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAtaGVhZGVyL2Zvcm0tZ3JvdXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBZ0IzRCxNQUFNLE9BQU8sd0JBQXdCO0lBS2pDLG1CQUFtQjtJQUNuQixJQUFJLFdBQVc7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7U0FDdEM7UUFFRCxPQUFPO0lBQ1gsQ0FBQzs4R0FaUSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwTENyQnJDLDAwQkF1QkEsNENESmMsZ0JBQWdCLG9KQUFFLGFBQWEsa0pBQUUsYUFBYSwwSUFBRSxtQkFBbUI7OzJGQUVwRSx3QkFBd0I7a0JBWnBDLFNBQVM7K0JBRUkseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNGLCtCQUErQixFQUFFLE1BQU07cUJBQzFDLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQzs4QkFLOUUsVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IElubGluZUhlbHBEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaW5saW5lLWhlbHAnO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saW5rJztcbmltcG9ydCB7IEhpbnRPcHRpb25zIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgRmllbGRHcm91cCB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLWZvcm0tZ3JvdXAtaGVhZGVyXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5mZC1mb3JtLWdyb3VwX19oZWFkZXJdJzogJ3RydWUnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBMaW5rQ29tcG9uZW50LCBJY29uQ29tcG9uZW50LCBJbmxpbmVIZWxwRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR3JvdXBIZWFkZXJDb21wb25lbnQge1xuICAgIC8qKiBGaWVsZHMgR3JvdXAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkR3JvdXA6IE51bGxhYmxlPEZpZWxkR3JvdXA+O1xuXG4gICAgLyoqIEhpbnQgb3B0aW9ucyAqL1xuICAgIGdldCBoaW50T3B0aW9ucygpOiBIaW50T3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkR3JvdXA/LmhpbnRPcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZEdyb3VwLmhpbnRPcHRpb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbn1cbiIsIkBpZiAoZmllbGRHcm91cCAmJiBoaW50T3B0aW9ucz8ucG9zaXRpb24gPT09ICdiZWZvcmUnKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlubGluZUhlbHBSZWZcIj48L25nLXRlbXBsYXRlPlxufVxuPGg2IGNsYXNzPVwiZmQtZm9ybS1ncm91cF9faGVhZGVyLXRleHRcIj5cbiAgICB7eyBmaWVsZEdyb3VwPy5sYWJlbCB9fVxuPC9oNj5cbkBpZiAoZmllbGRHcm91cCAmJiBoaW50T3B0aW9ucz8ucG9zaXRpb24gPT09ICdhZnRlcicpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5saW5lSGVscFJlZlwiPjwvbmctdGVtcGxhdGU+XG59XG48bmctdGVtcGxhdGUgI2lubGluZUhlbHBSZWY+XG4gICAgQGlmIChoaW50T3B0aW9ucykge1xuICAgICAgICA8c3BhbiBmZC1saW5rIFt1bmRlY29yYXRlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgICAgIFtzdHlsZS52ZXJ0aWNhbC1hbGlnbl09XCInbWlkZGxlJ1wiXG4gICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cImhpbnRPcHRpb25zLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJoaW50T3B0aW9ucy5nbHlwaFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJoaW50T3B0aW9ucy5wbGFjZW1lbnQgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgW3RyaWdnZXJzXT1cImhpbnRPcHRpb25zLnRyaWdnZXIgfHwgW11cIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICA+PC9mZC1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC1oZWFkZXIvZm9ybS1ncm91cC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC1oZWFkZXIvZm9ybS1ncm91cC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFnQjNELE1BQU0sT0FBTyx3QkFBd0I7SUFLakMsbUJBQW1CO0lBQ25CLElBQUksV0FBVztRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUN0QztRQUVELE9BQU87SUFDWCxDQUFDOzhHQVpRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDBMQ3JCckMsMDBCQXVCQSw0Q0RKYyxnQkFBZ0Isb0pBQUUsYUFBYSxrSkFBRSxhQUFhLDBJQUFFLG1CQUFtQjs7MkZBRXBFLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFFSSx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsK0JBQStCLEVBQUUsTUFBTTtxQkFDMUMsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDOzhCQUs5RSxVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgSW5saW5lSGVscERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pbmxpbmUtaGVscCc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpbmsnO1xuaW1wb3J0IHsgSGludE9wdGlvbnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBGaWVsZEdyb3VwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpZWxkLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZHAtZm9ybS1ncm91cC1oZWFkZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmZkLWZvcm0tZ3JvdXBfX2hlYWRlcl0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIExpbmtDb21wb25lbnQsIEljb25Db21wb25lbnQsIElubGluZUhlbHBEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cEhlYWRlckNvbXBvbmVudCB7XG4gICAgLyoqIEZpZWxkcyBHcm91cCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRHcm91cDogTnVsbGFibGU8RmllbGRHcm91cD47XG5cbiAgICAvKiogSGludCBvcHRpb25zICovXG4gICAgZ2V0IGhpbnRPcHRpb25zKCk6IEhpbnRPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGRHcm91cD8uaGludE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpZWxkR3JvdXAuaGludE9wdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuIiwiQGlmIChmaWVsZEdyb3VwICYmIGhpbnRPcHRpb25zPy5wb3NpdGlvbiA9PT0gJ2JlZm9yZScpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5saW5lSGVscFJlZlwiPjwvbmctdGVtcGxhdGU+XG59XG48aDYgY2xhc3M9XCJmZC1mb3JtLWdyb3VwX19oZWFkZXItdGV4dFwiPlxuICAgIHt7IGZpZWxkR3JvdXA/LmxhYmVsIH19XG48L2g2PlxuQGlmIChmaWVsZEdyb3VwICYmIGhpbnRPcHRpb25zPy5wb3NpdGlvbiA9PT0gJ2FmdGVyJykge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmxpbmVIZWxwUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbn1cbjxuZy10ZW1wbGF0ZSAjaW5saW5lSGVscFJlZj5cbiAgICBAaWYgKGhpbnRPcHRpb25zKSB7XG4gICAgICAgIDxzcGFuIGZkLWxpbmsgW3VuZGVjb3JhdGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgW3N0eWxlLnZlcnRpY2FsLWFsaWduXT1cIidtaWRkbGUnXCJcbiAgICAgICAgICAgICAgICBbZmQtaW5saW5lLWhlbHBdPVwiaGludE9wdGlvbnMuY29udGVudFwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cImhpbnRPcHRpb25zLmdseXBoXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cImhpbnRPcHRpb25zLnBsYWNlbWVudCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICBbdHJpZ2dlcnNdPVwiaGludE9wdGlvbnMudHJpZ2dlciB8fCBbXVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgID48L2ZkLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19