@sumaris-net/ngx-components 18.0.10 → 18.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/doc/changelog.md +4 -0
  2. package/esm2022/src/app/admin/admin-routing.module.mjs +5 -5
  3. package/esm2022/src/app/admin/admin.module.mjs +5 -5
  4. package/esm2022/src/app/admin/services/person.service.mjs +4 -4
  5. package/esm2022/src/app/admin/services/validator/person.validator.mjs +4 -4
  6. package/esm2022/src/app/admin/users/users.mjs +4 -4
  7. package/esm2022/src/app/admin/users/users.module.mjs +5 -5
  8. package/esm2022/src/app/core/about/about.modal.mjs +4 -4
  9. package/esm2022/src/app/core/about/about.module.mjs +5 -5
  10. package/esm2022/src/app/core/account/account.module.mjs +5 -5
  11. package/esm2022/src/app/core/account/account.page.mjs +4 -4
  12. package/esm2022/src/app/core/account/new-token.form.mjs +4 -4
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +4 -4
  14. package/esm2022/src/app/core/account/password/change-password.form.mjs +4 -4
  15. package/esm2022/src/app/core/account/password/change-password.module.mjs +5 -5
  16. package/esm2022/src/app/core/account/password/change-password.page.mjs +4 -4
  17. package/esm2022/src/app/core/account/token.table.mjs +4 -4
  18. package/esm2022/src/app/core/auth/auth.form.mjs +4 -4
  19. package/esm2022/src/app/core/auth/auth.modal.mjs +4 -4
  20. package/esm2022/src/app/core/auth/auth.module.mjs +5 -5
  21. package/esm2022/src/app/core/auth/reset-password.modal.mjs +4 -4
  22. package/esm2022/src/app/core/core.module.mjs +5 -5
  23. package/esm2022/src/app/core/core.testing.module.mjs +5 -5
  24. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +5 -5
  25. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +4 -4
  26. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +4 -4
  27. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +5 -5
  28. package/esm2022/src/app/core/form/entity/editor.class.mjs +4 -4
  29. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +4 -4
  30. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +4 -4
  31. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +4 -4
  32. package/esm2022/src/app/core/form/entity/entity.module.mjs +5 -5
  33. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +4 -4
  34. package/esm2022/src/app/core/form/form-container.class.mjs +4 -4
  35. package/esm2022/src/app/core/form/form.class.mjs +4 -4
  36. package/esm2022/src/app/core/form/form.module.mjs +5 -5
  37. package/esm2022/src/app/core/form/list/list.form.mjs +4 -4
  38. package/esm2022/src/app/core/form/list/list.module.mjs +5 -5
  39. package/esm2022/src/app/core/form/properties/properties.form.mjs +4 -4
  40. package/esm2022/src/app/core/form/properties/properties.module.mjs +5 -5
  41. package/esm2022/src/app/core/form/properties/properties.table.mjs +7 -7
  42. package/esm2022/src/app/core/form/properties/property.validator.mjs +4 -4
  43. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +4 -4
  44. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +5 -5
  45. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +4 -4
  46. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +5 -5
  47. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +4 -4
  48. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +5 -5
  49. package/esm2022/src/app/core/form/username/username.form.mjs +4 -4
  50. package/esm2022/src/app/core/form/username/username.module.mjs +5 -5
  51. package/esm2022/src/app/core/graphql/graphql.module.mjs +5 -5
  52. package/esm2022/src/app/core/graphql/graphql.service.mjs +4 -4
  53. package/esm2022/src/app/core/home/home.mjs +5 -5
  54. package/esm2022/src/app/core/home/home.module.mjs +5 -5
  55. package/esm2022/src/app/core/icon/icon.component.mjs +4 -4
  56. package/esm2022/src/app/core/icon/icon.module.mjs +5 -5
  57. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +4 -4
  58. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +5 -5
  59. package/esm2022/src/app/core/menu/menu.component.mjs +4 -4
  60. package/esm2022/src/app/core/menu/menu.module.mjs +5 -5
  61. package/esm2022/src/app/core/menu/menu.service.mjs +4 -4
  62. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
  63. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +4 -4
  64. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +4 -4
  65. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +5 -5
  66. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +4 -4
  67. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +5 -5
  68. package/esm2022/src/app/core/peer/select-peer.modal.mjs +4 -4
  69. package/esm2022/src/app/core/peer/select-peer.module.mjs +5 -5
  70. package/esm2022/src/app/core/register/register-confirm.page.mjs +4 -4
  71. package/esm2022/src/app/core/register/register.form.mjs +4 -4
  72. package/esm2022/src/app/core/register/register.modal.mjs +4 -4
  73. package/esm2022/src/app/core/register/register.module.mjs +5 -5
  74. package/esm2022/src/app/core/services/account.service.mjs +4 -4
  75. package/esm2022/src/app/core/services/auth-guard.service.mjs +4 -4
  76. package/esm2022/src/app/core/services/base-entity-service.class.mjs +4 -4
  77. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +4 -4
  78. package/esm2022/src/app/core/services/config.service.mjs +4 -4
  79. package/esm2022/src/app/core/services/crypto.service.mjs +4 -4
  80. package/esm2022/src/app/core/services/local-settings.service.mjs +4 -4
  81. package/esm2022/src/app/core/services/network.service.mjs +4 -4
  82. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +9 -9
  83. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  84. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  85. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +5 -5
  86. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +4 -4
  87. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  88. package/esm2022/src/app/core/services/platform.service.mjs +4 -4
  89. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +4 -4
  90. package/esm2022/src/app/core/services/testing/referential.validator.mjs +4 -4
  91. package/esm2022/src/app/core/services/validator/account.validator.mjs +4 -4
  92. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +4 -4
  93. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +4 -4
  94. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  95. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +4 -4
  96. package/esm2022/src/app/core/settings/settings.module.mjs +5 -5
  97. package/esm2022/src/app/core/settings/settings.page.mjs +4 -4
  98. package/esm2022/src/app/core/table/async-table.class.mjs +4 -4
  99. package/esm2022/src/app/core/table/column/actions-column.component.mjs +4 -4
  100. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +4 -4
  101. package/esm2022/src/app/core/table/column/row-field.component.mjs +4 -4
  102. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +4 -4
  103. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +4 -4
  104. package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
  105. package/esm2022/src/app/core/table/table-select-columns.component.mjs +4 -4
  106. package/esm2022/src/app/core/table/table.class.mjs +4 -4
  107. package/esm2022/src/app/core/table/table.module.mjs +5 -5
  108. package/esm2022/src/app/core/table/table.pipes.mjs +10 -10
  109. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +4 -4
  110. package/esm2022/src/app/core/table/testing/table.testing.mjs +4 -4
  111. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +5 -5
  112. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
  113. package/esm2022/src/app/core/table/testing/table2.testing.mjs +4 -4
  114. package/esm2022/src/app/shared/audio/audio.mjs +4 -4
  115. package/esm2022/src/app/shared/audio/audio.testing.mjs +4 -4
  116. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +5 -5
  117. package/esm2022/src/app/shared/capacitor/keyboard.mjs +4 -4
  118. package/esm2022/src/app/shared/debug/debug.component.mjs +4 -4
  119. package/esm2022/src/app/shared/debug/debug.module.mjs +5 -5
  120. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +4 -4
  121. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +4 -4
  122. package/esm2022/src/app/shared/directives/directives.module.mjs +5 -5
  123. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  124. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
  125. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  126. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  127. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  128. package/esm2022/src/app/shared/file/file.service.mjs +4 -4
  129. package/esm2022/src/app/shared/form/field.component.mjs +4 -4
  130. package/esm2022/src/app/shared/form/loading-spinner.mjs +4 -4
  131. package/esm2022/src/app/shared/gesture/gesture-config.mjs +4 -4
  132. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  133. package/esm2022/src/app/shared/help/help.modal.mjs +4 -4
  134. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +4 -4
  135. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +4 -4
  136. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +5 -5
  137. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +4 -4
  138. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +5 -5
  139. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +4 -4
  140. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +4 -4
  141. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +5 -5
  142. package/esm2022/src/app/shared/image/image.module.mjs +5 -5
  143. package/esm2022/src/app/shared/image/image.service.mjs +4 -4
  144. package/esm2022/src/app/shared/logging/logging-service.class.mjs +4 -4
  145. package/esm2022/src/app/shared/logging/logging-service.module.mjs +5 -5
  146. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +4 -4
  147. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +5 -5
  148. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +4 -4
  149. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +4 -4
  150. package/esm2022/src/app/shared/material/badge/badge.module.mjs +5 -5
  151. package/esm2022/src/app/shared/material/badge/badge.test.mjs +4 -4
  152. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +5 -5
  153. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +4 -4
  154. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +4 -4
  155. package/esm2022/src/app/shared/material/chips/chips.module.mjs +5 -5
  156. package/esm2022/src/app/shared/material/chips/material.chips.mjs +4 -4
  157. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +4 -4
  158. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  159. package/esm2022/src/app/shared/material/datetime/material.date.mjs +4 -4
  160. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +4 -4
  161. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +4 -4
  162. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +4 -4
  163. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +4 -4
  164. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +4 -4
  165. package/esm2022/src/app/shared/material/duration/duration.module.mjs +5 -5
  166. package/esm2022/src/app/shared/material/duration/material.duration.mjs +4 -4
  167. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +4 -4
  168. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +4 -4
  169. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  170. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +4 -4
  171. package/esm2022/src/app/shared/material/material.module.mjs +5 -5
  172. package/esm2022/src/app/shared/material/material.testing.module.mjs +5 -5
  173. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +4 -4
  174. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  175. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +4 -4
  176. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +5 -5
  177. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +4 -4
  178. package/esm2022/src/app/shared/material/testing/common.test.mjs +4 -4
  179. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +4 -4
  180. package/esm2022/src/app/shared/material/text/text-form.component.mjs +4 -4
  181. package/esm2022/src/app/shared/material/text/text-form.module.mjs +5 -5
  182. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +4 -4
  183. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  184. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +4 -4
  185. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +4 -4
  186. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +5 -5
  187. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +28 -28
  188. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +4 -4
  189. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +4 -4
  190. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +5 -5
  191. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +7 -7
  192. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +5 -5
  193. package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +5 -5
  194. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +5 -5
  195. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +4 -4
  196. package/esm2022/src/app/shared/pipes/form.pipes.mjs +22 -22
  197. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  198. package/esm2022/src/app/shared/pipes/html.pipes.mjs +7 -7
  199. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +10 -10
  200. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +13 -13
  201. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +4 -4
  202. package/esm2022/src/app/shared/pipes/math.pipes.mjs +13 -13
  203. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +4 -4
  204. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  205. package/esm2022/src/app/shared/pipes/pipes.module.mjs +5 -5
  206. package/esm2022/src/app/shared/pipes/property.pipes.mjs +15 -15
  207. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +22 -22
  208. package/esm2022/src/app/shared/pipes/string.pipes.mjs +31 -31
  209. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +9 -9
  210. package/esm2022/src/app/shared/pipes/types.pipes.mjs +16 -16
  211. package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +5 -5
  212. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +4 -4
  213. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  214. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +4 -4
  215. package/esm2022/src/app/shared/services/startable-service.class.mjs +4 -4
  216. package/esm2022/src/app/shared/services/translate-context.service.mjs +4 -4
  217. package/esm2022/src/app/shared/shared-routing.module.mjs +8 -8
  218. package/esm2022/src/app/shared/shared.module.mjs +5 -5
  219. package/esm2022/src/app/shared/shared.testing.module.mjs +5 -5
  220. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +4 -4
  221. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +5 -5
  222. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +5 -5
  223. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +5 -5
  224. package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
  225. package/esm2022/src/app/shared/testing/maskito.test.mjs +4 -4
  226. package/esm2022/src/app/shared/testing/observable.test.mjs +4 -4
  227. package/esm2022/src/app/shared/testing/tests.page.mjs +4 -4
  228. package/esm2022/src/app/shared/toast/toast.testing.mjs +4 -4
  229. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +5 -5
  230. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +4 -4
  231. package/esm2022/src/app/shared/toolbar/toolbar.mjs +4 -4
  232. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +5 -5
  233. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +4 -4
  234. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +5 -5
  235. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +4 -4
  236. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +4 -4
  237. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +4 -4
  238. package/esm2022/src/app/social/job/job.module.mjs +5 -5
  239. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +4 -4
  240. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +4 -4
  241. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +4 -4
  242. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +4 -4
  243. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +4 -4
  244. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +4 -4
  245. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +5 -5
  246. package/esm2022/src/app/social/message/message.form.mjs +4 -4
  247. package/esm2022/src/app/social/message/message.modal.mjs +4 -4
  248. package/esm2022/src/app/social/message/message.module.mjs +5 -5
  249. package/esm2022/src/app/social/message/message.service.mjs +4 -4
  250. package/esm2022/src/app/social/social.module.mjs +5 -5
  251. package/esm2022/src/app/social/social.testing.module.mjs +5 -5
  252. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +4 -4
  253. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +4 -4
  254. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +4 -4
  255. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +5 -5
  256. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +4 -4
  257. package/esm2022/src/app/social/user-event/user-event.module.mjs +5 -5
  258. package/esm2022/src/app/social/user-event/user-event.service.mjs +4 -4
  259. package/esm2022/src/environments/environment.loader.mjs +4 -4
  260. package/fesm2022/sumaris-net.ngx-components.mjs +1022 -1022
  261. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  262. package/package.json +11 -12
  263. package/src/assets/manifest.json +1 -1
@@ -251,10 +251,10 @@ export class NamedFilterSelector extends AppForm {
251
251
  this.setValue({ namedFilter: value });
252
252
  this.autocompleteField.blurred.emit();
253
253
  }
254
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelector, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2.ToastController }, { token: i2.PopoverController }, { token: APP_NAMED_FILTER_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
255
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: NamedFilterSelector, selector: "app-named-filter-selector", inputs: { mobile: "mobile", entityName: "entityName", appearance: "appearance", subscriptSizing: "subscriptSizing", filterContentProvider: "filterContentProvider", filterImportCallback: "filterImportCallback", filterFormDirty: "filterFormDirty", showButtons: "showButtons", exportFileNamePrefix: "exportFileNamePrefix", autocompleteConfig: "autocompleteConfig", dropButtonTitle: "dropButtonTitle", clearButtonTitle: "clearButtonTitle", detectChangeOnSelectFilter: "detectChangeOnSelectFilter", buttonsPosition: "buttonsPosition", disabled: "disabled" }, outputs: { filterSelected: "filterSelected", filterDeleted: "filterDeleted", filterCleared: "filterCleared" }, viewQueries: [{ propertyName: "autocompleteField", first: true, predicate: MatAutocompleteField, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n [dropButtonTitle]=\"dropButtonTitle\"\n [clearButtonTitle]=\"clearButtonTitle\"\n >\n @if (showButtons && buttonsPosition === 'matSuffix') {\n <ng-container matSuffix>\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </ng-container>\n }\n </mat-autocomplete-field>\n </form>\n </ion-col>\n @if (showButtons && buttonsPosition === 'after') {\n <ion-col size=\"auto\" class=\"ion-no-padding\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </ion-col>\n }\n </ion-row>\n</ion-grid>\n\n<ng-template #buttons>\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save($event)\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\" (click)=\"onMoreOptionsClick($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <ng-template matMenuContent>\n <!-- import -->\n <button mat-menu-item (click)=\"import($event)\">\n <mat-icon>file_upload</mat-icon>\n <ion-label>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</ion-label>\n </button>\n\n <mat-divider></mat-divider>\n\n <!-- export -->\n <button mat-menu-item (click)=\"export($event)\" [disabled]=\"isNew\">\n <mat-icon>file_download</mat-icon>\n <ion-label>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</ion-label>\n </button>\n </ng-template>\n </mat-menu>\n</ng-template>\n", styles: [":host{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i4.MatAutocompleteField, selector: "mat-autocomplete-field", inputs: ["equals", "logPrefix", "formControl", "formControlName", "floatLabel", "label", "appearance", "subscriptSizing", "placeholder", "suggestFn", "required", "hideRequiredMarker", "mobile", "clearable", "debounceTime", "displaySeparator", "displayWith", "displayAttributes", "displayColumnSizes", "displayColumnNames", "highlightAccent", "showAllOnFocus", "showPanelOnFocus", "autofocus", "config", "i18nPrefix", "noResultMessage", "panelClass", "panelWidth", "disableRipple", "matAutocompletePosition", "multiple", "fetchMoreThreshold", "suggestLengthThreshold", "showLoadingSpinner", "debug", "showSearchBar", "stickySearchBar", "applyImplicitValue", "dropButtonTitle", "clearButtonTitle", "trimSearchText", "splitSearchText", "selectInputContentOnFocus", "class", "filter", "readonly", "tabindex", "items"], outputs: ["click", "blur", "focus", "dropButtonClick", "keydown.escape", "keyup.enter", "selectionChange"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelector, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2.ToastController }, { token: i2.PopoverController }, { token: APP_NAMED_FILTER_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
255
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NamedFilterSelector, selector: "app-named-filter-selector", inputs: { mobile: "mobile", entityName: "entityName", appearance: "appearance", subscriptSizing: "subscriptSizing", filterContentProvider: "filterContentProvider", filterImportCallback: "filterImportCallback", filterFormDirty: "filterFormDirty", showButtons: "showButtons", exportFileNamePrefix: "exportFileNamePrefix", autocompleteConfig: "autocompleteConfig", dropButtonTitle: "dropButtonTitle", clearButtonTitle: "clearButtonTitle", detectChangeOnSelectFilter: "detectChangeOnSelectFilter", buttonsPosition: "buttonsPosition", disabled: "disabled" }, outputs: { filterSelected: "filterSelected", filterDeleted: "filterDeleted", filterCleared: "filterCleared" }, viewQueries: [{ propertyName: "autocompleteField", first: true, predicate: MatAutocompleteField, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n [dropButtonTitle]=\"dropButtonTitle\"\n [clearButtonTitle]=\"clearButtonTitle\"\n >\n @if (showButtons && buttonsPosition === 'matSuffix') {\n <ng-container matSuffix>\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </ng-container>\n }\n </mat-autocomplete-field>\n </form>\n </ion-col>\n @if (showButtons && buttonsPosition === 'after') {\n <ion-col size=\"auto\" class=\"ion-no-padding\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </ion-col>\n }\n </ion-row>\n</ion-grid>\n\n<ng-template #buttons>\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save($event)\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\" (click)=\"onMoreOptionsClick($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <ng-template matMenuContent>\n <!-- import -->\n <button mat-menu-item (click)=\"import($event)\">\n <mat-icon>file_upload</mat-icon>\n <ion-label>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</ion-label>\n </button>\n\n <mat-divider></mat-divider>\n\n <!-- export -->\n <button mat-menu-item (click)=\"export($event)\" [disabled]=\"isNew\">\n <mat-icon>file_download</mat-icon>\n <ion-label>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</ion-label>\n </button>\n </ng-template>\n </mat-menu>\n</ng-template>\n", styles: [":host{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i4.MatAutocompleteField, selector: "mat-autocomplete-field", inputs: ["equals", "logPrefix", "formControl", "formControlName", "floatLabel", "label", "appearance", "subscriptSizing", "placeholder", "suggestFn", "required", "hideRequiredMarker", "mobile", "clearable", "debounceTime", "displaySeparator", "displayWith", "displayAttributes", "displayColumnSizes", "displayColumnNames", "highlightAccent", "showAllOnFocus", "showPanelOnFocus", "autofocus", "config", "i18nPrefix", "noResultMessage", "panelClass", "panelWidth", "disableRipple", "matAutocompletePosition", "multiple", "fetchMoreThreshold", "suggestLengthThreshold", "showLoadingSpinner", "debug", "showSearchBar", "stickySearchBar", "applyImplicitValue", "dropButtonTitle", "clearButtonTitle", "trimSearchText", "splitSearchText", "selectInputContentOnFocus", "class", "filter", "readonly", "tabindex", "items"], outputs: ["click", "blur", "focus", "dropButtonClick", "keydown.escape", "keyup.enter", "selectionChange"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
256
256
  }
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelector, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelector, decorators: [{
258
258
  type: Component,
259
259
  args: [{ selector: 'app-named-filter-selector', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n [dropButtonTitle]=\"dropButtonTitle\"\n [clearButtonTitle]=\"clearButtonTitle\"\n >\n @if (showButtons && buttonsPosition === 'matSuffix') {\n <ng-container matSuffix>\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </ng-container>\n }\n </mat-autocomplete-field>\n </form>\n </ion-col>\n @if (showButtons && buttonsPosition === 'after') {\n <ion-col size=\"auto\" class=\"ion-no-padding\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </ion-col>\n }\n </ion-row>\n</ion-grid>\n\n<ng-template #buttons>\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save($event)\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\" (click)=\"onMoreOptionsClick($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <ng-template matMenuContent>\n <!-- import -->\n <button mat-menu-item (click)=\"import($event)\">\n <mat-icon>file_upload</mat-icon>\n <ion-label>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</ion-label>\n </button>\n\n <mat-divider></mat-divider>\n\n <!-- export -->\n <button mat-menu-item (click)=\"export($event)\" [disabled]=\"isNew\">\n <mat-icon>file_download</mat-icon>\n <ion-label>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</ion-label>\n </button>\n </ng-template>\n </mat-menu>\n</ng-template>\n", styles: [":host{max-width:100%}\n"] }]
260
260
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.ToastController }, { type: i2.PopoverController }, { type: undefined, decorators: [{
@@ -300,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
300
300
  type: ViewChild,
301
301
  args: [MatAutocompleteField, { static: true }]
302
302
  }] } });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXRGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQW9DLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0UsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFXMUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQVk7SUE4RHZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQW5FTyxTQUFTLEdBQUcseUJBQXlCLENBQUM7SUFFakQsV0FBVyxDQUFTO0lBQ3BCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFFdkIsTUFBTSxDQUFVO0lBQ3pCLElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3hDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVO1lBQUUsT0FBTztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVRLFVBQVUsQ0FBeUI7SUFDbkMsZUFBZSxDQUFrQjtJQUNqQyxxQkFBcUIsQ0FBWTtJQUNqQyxvQkFBb0IsQ0FBcUQ7SUFDekUsZUFBZSxDQUFVO0lBQ3pCLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDbkIsb0JBQW9CLEdBQUcsUUFBUSxDQUFDO0lBQ2hDLGtCQUFrQixDQUE2QjtJQUMvQyxlQUFlLENBQVM7SUFDeEIsZ0JBQWdCLENBQVM7SUFDekIsMEJBQTBCLEdBQVksS0FBSyxDQUFDLENBQUMsMEJBQTBCO0lBQ3ZFLGVBQWUsQ0FBcUM7SUFFN0QsSUFBYSxRQUFRLENBQUMsU0FBa0I7UUFDdEMsSUFBSSxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDOztZQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDN0MsQ0FBQztJQUVTLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3pDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0lBQ2hELGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRUEsaUJBQWlCLENBQXVCO0lBRTNGLFlBQ1ksUUFBa0IsRUFDbEIsV0FBK0IsRUFDL0IsRUFBcUIsRUFDckIsZUFBZ0MsRUFDaEMsaUJBQW9DLEVBRXBDLFdBQWtJO1FBRTVJLEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBUmxELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF1SDtJQUc5SSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXJGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUU7WUFDNUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUNyRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDeEIsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixHQUFHLElBQUksQ0FBQyxrQkFBa0I7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1SCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxvQkFBb0IsQ0FDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDOUksQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFjO1FBQ3ZCLElBQUksS0FBSyxFQUFFLGdCQUFnQjtZQUFFLE9BQU87UUFDcEMsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUV6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVuRCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRXBGLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUFFLE9BQU87UUFFeEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDL0MsSUFBSSxNQUFtQixDQUFDO1FBRXhCLElBQUksT0FBTyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLElBQUksRUFBRSxlQUFlO2dCQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLEdBQUcsZUFBZTtnQkFDbEIsT0FBTyxFQUFFLGFBQWE7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWU7UUFDMUIsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO1lBQUUsT0FBTztRQUNwQyxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDeEIsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBRXpCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0UsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoRCxJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsNkJBQTZCO2FBQ3ZDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBWTtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMseUJBQXlCO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWU7UUFDMUIsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO1lBQUUsT0FBTztRQUNwQyxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFFeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFFaEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hELElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLE9BQU87YUFDOUUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLCtCQUErQjthQUN6QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBWTtRQUN2QixJQUFJLEtBQUssRUFBRSxnQkFBZ0I7WUFBRSxPQUFPO1FBQ3BDLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUV4QixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFO1lBQy9FLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDL0MsS0FBSyxFQUFFLDRCQUE0QjtZQUNuQyxhQUFhLEVBQUUsT0FBTztZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUNqRCxJQUFJLENBQUM7WUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzlCLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxDQUFDLHFEQUFxRDtnQkFDL0QsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoRCxJQUFJLEVBQUUsT0FBTztnQkFDYixPQUFPLEVBQUUsbUNBQW1DO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUEyQjtRQUN6RCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhFLDhCQUE4QjtRQUM5QixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssRUFBRSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUU1RCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BFLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNoRCxJQUFJLEVBQUUsT0FBTztvQkFDYixPQUFPLEVBQUUsaUNBQWlDO2lCQUMzQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFUyxlQUFlLENBQUMsS0FBa0I7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQzt1R0E1UFUsbUJBQW1CLDZLQW1FcEIsd0JBQXdCOzJGQW5FdkIsbUJBQW1CLDZ3QkEyRG5CLG9CQUFvQixxRkM1RmpDLDI1RUFzRUE7OzJGRHJDYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFxRTVDLE1BQU07MkJBQUMsd0JBQXdCO3lDQTdEekIsTUFBTTtzQkFBZCxLQUFLO2dCQUNPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBV0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRU8sUUFBUTtzQkFBcEIsS0FBSztnQkF3QkksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRTRDLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciwgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQXBwRm9ybSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS9mb3JtLmNsYXNzJztcbmltcG9ydCB7IEZpbGVzVXRpbHMgfSBmcm9tICcuLi9maWxlL2ZpbGUudXRpbHMnO1xuaW1wb3J0IHsgaXNFbXB0eUFycmF5LCBpc05pbCwgaXNOaWxPckJsYW5rLCBpc05pbE9yTmFOLCBpc05vdE5pbCwgaXNOb3ROaWxPckJsYW5rIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUZpZWxkIH0gZnJvbSAnLi4vbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZyB9IGZyb20gJy4uL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUuY29uZmlnJztcbmltcG9ydCB7IFRvYXN0cyB9IGZyb20gJy4uL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQgeyBJTmFtZWRGaWx0ZXIsIElOYW1lZEZpbHRlckZpbHRlciwgTmFtZWRGaWx0ZXIgfSBmcm9tICcuL25hbWVkLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UsIElOYW1lZEZpbHRlclNlcnZpY2UsIE5hbWVkRmlsdGVyTG9hZE9wdGlvbnMsIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi9uYW1lZC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlLCBTdWJzY3JpcHRTaXppbmcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuZXhwb3J0IHR5cGUgTmFtZWRGaWx0ZXJTZWxlY3RvckJ1dHRvbnNQb3NpdGlvbiA9ICdtYXRTdWZmaXgnIHwgJ2FmdGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWVkLWZpbHRlci1zZWxlY3RvcicsXG4gIHN0eWxlVXJsczogWycuL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVkRmlsdGVyU2VsZWN0b3IgZXh0ZW5kcyBBcHBGb3JtPGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9nUHJlZml4ID0gJ1tuYW1lZC1maWx0ZXItc2VsZWN0b3JdJztcblxuICBwcml2YXRlIF9lbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlbGV0ZURpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xuICBASW5wdXQoKSBzZXQgZW50aXR5TmFtZShlbnRpdHlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWVudGl0eU5hbWUgfHwgdGhpcy5fZW50aXR5TmFtZSA9PT0gZW50aXR5TmFtZSkgcmV0dXJuO1xuICAgIHRoaXMuX2VudGl0eU5hbWUgPSBlbnRpdHlOYW1lO1xuICAgIC8vIFVwZGF0ZSBhdXRvY29tcGxldGUgZmlsdGVyXG4gICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5maWx0ZXIgPSB7IC4uLnRoaXMuYXV0b2NvbXBsZXRlRmllbGQuZmlsdGVyLCAuLi50aGlzLmdldEZpbHRlcigpIH07XG4gIH1cblxuICBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlOYW1lO1xuICB9XG5cbiAgQElucHV0KCkgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcbiAgQElucHV0KCkgc3Vic2NyaXB0U2l6aW5nOiBTdWJzY3JpcHRTaXppbmc7XG4gIEBJbnB1dCgpIGZpbHRlckNvbnRlbnRQcm92aWRlcjogKCkgPT4gYW55O1xuICBASW5wdXQoKSBmaWx0ZXJJbXBvcnRDYWxsYmFjazogKG5hbWVkRmlsdGVyOiBOYW1lZEZpbHRlcikgPT4gUHJvbWlzZTxOYW1lZEZpbHRlcj47XG4gIEBJbnB1dCgpIGZpbHRlckZvcm1EaXJ0eTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd0J1dHRvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBleHBvcnRGaWxlTmFtZVByZWZpeCA9ICdmaWx0ZXInO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGVDb25maWc6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBkcm9wQnV0dG9uVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgY2xlYXJCdXR0b25UaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBkZXRlY3RDaGFuZ2VPblNlbGVjdEZpbHRlcjogYm9vbGVhbiA9IGZhbHNlOyAvLyBFbHNlIGlzIG9uIHZhbHVlIGNoYW5nZVxuICBASW5wdXQoKSBidXR0b25zUG9zaXRpb246IE5hbWVkRmlsdGVyU2VsZWN0b3JCdXR0b25zUG9zaXRpb247XG5cbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKF9kaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmIChfZGlzYWJsZWQpIHRoaXMuZGlzYWJsZSgpO1xuICAgIGVsc2UgdGhpcy5lbmFibGUoKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgZ2V0IGlzTmV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05pbE9yTmFOKHRoaXMudmFsdWU/Lm5hbWVkRmlsdGVyPy5pZCk7XG4gIH1cblxuICBnZXQgc2F2ZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaXJ0eSB8fCBpc05pbE9yQmxhbmsodGhpcy52YWx1ZS5uYW1lZEZpbHRlcik7XG4gIH1cblxuICBnZXQgZGVsZXRlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGV0ZURpc2FibGVkIHx8IHRoaXMuaXNOZXc7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmRpcnR5IHx8IHRoaXMuZmlsdGVyRm9ybURpcnR5O1xuICB9XG5cbiAgQE91dHB1dCgpIGZpbHRlclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBmaWx0ZXJEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOYW1lZEZpbHRlcj4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVGaWVsZCwgeyBzdGF0aWM6IHRydWUgfSkgYXV0b2NvbXBsZXRlRmllbGQ6IE1hdEF1dG9jb21wbGV0ZUZpZWxkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBASW5qZWN0KEFQUF9OQU1FRF9GSUxURVJfU0VSVklDRSlcbiAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IElOYW1lZEZpbHRlclNlcnZpY2U8SU5hbWVkRmlsdGVyPGFueT4sIElOYW1lZEZpbHRlckZpbHRlcjxhbnksIGFueT4sIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zLCBOYW1lZEZpbHRlckxvYWRPcHRpb25zPlxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgZm9ybUJ1aWxkZXIuZ3JvdXAoeyBuYW1lZEZpbHRlcjogW251bGxdIH0pKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9iaWxlID0gdGhpcy5tb2JpbGUgPz8gdGhpcy5zZXR0aW5ncy5tb2JpbGU7XG4gICAgdGhpcy5idXR0b25zUG9zaXRpb24gPSB0aGlzLmJ1dHRvbnNQb3NpdGlvbiA/PyAodGhpcy5tb2JpbGUgPyAnYWZ0ZXInIDogJ21hdFN1ZmZpeCcpO1xuXG4gICAgdGhpcy5yZWdpc3RlckF1dG9jb21wbGV0ZUZpZWxkKCduYW1lZEZpbHRlcicsIHtcbiAgICAgIHN1Z2dlc3RGbjogKHZhbHVlLCBmaWx0ZXIpID0+IHRoaXMuZGF0YVNlcnZpY2Uuc3VnZ2VzdCh2YWx1ZSwgZmlsdGVyKSxcbiAgICAgIGF0dHJpYnV0ZXM6IFsnbmFtZSddLFxuICAgICAgZmlsdGVyOiB0aGlzLmdldEZpbHRlcigpLFxuICAgICAgYXBwbHlJbXBsaWNpdFZhbHVlOiBmYWxzZSxcbiAgICAgIC4uLnRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZGV0ZWN0Q2hhbmdlT25TZWxlY3RGaWx0ZXIpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24odGhpcy5hdXRvY29tcGxldGVGaWVsZC5zZWxlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXMoZXZlbnQudmFsdWUpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uYW1lZEZpbHRlci52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXModmFsdWUpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgIH07XG4gIH1cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoZXZlbnQ6IFVJRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQ/LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBmaWx0ZXJDb250ZW50ID0gdGhpcy5maWx0ZXJDb250ZW50UHJvdmlkZXIoKTtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBzYXZlIG5hbWVkIGZpbHRlcmAsIGZpbHRlckNvbnRlbnQpO1xuXG4gICAgaWYgKGlzTmlsT3JCbGFuayhmaWx0ZXJDb250ZW50KSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkID0gdGhpcy52YWx1ZS5uYW1lZEZpbHRlcjtcbiAgICBsZXQgcmVzdWx0OiBOYW1lZEZpbHRlcjtcblxuICAgIGlmICh0eXBlb2YgY3VycmVudFNlbGVjdGVkID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0ID0gTmFtZWRGaWx0ZXIuZnJvbU9iamVjdCh7XG4gICAgICAgIG5hbWU6IGN1cnJlbnRTZWxlY3RlZCxcbiAgICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgICAgICBjb250ZW50OiBmaWx0ZXJDb250ZW50LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IE5hbWVkRmlsdGVyLmZyb21PYmplY3Qoe1xuICAgICAgICAuLi5jdXJyZW50U2VsZWN0ZWQsXG4gICAgICAgIGNvbnRlbnQ6IGZpbHRlckNvbnRlbnQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzYXZlZEVudGl0eSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2Uuc2F2ZShyZXN1bHQpO1xuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHNhdmVkRW50aXR5KTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnJlbG9hZEl0ZW1zKCk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKGV2ZW50PzogVUlFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnZhbHVlLm5hbWVkRmlsdGVyO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGRlbGV0ZSBuYW1lZCBmaWx0ZXJgLCBkYXRhKTtcblxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKGRhdGEpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5yZWxvYWRJdGVtcygpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZmlsdGVyRGVsZXRlZC5lbWl0KGRhdGEpO1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbk1vcmVPcHRpb25zQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gQXZvaWQgZmllbGQgZm9jdXMgZ2FpblxuICB9XG5cbiAgYXN5bmMgZXhwb3J0KGV2ZW50PzogVUlFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgaWQgPSB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnZhbHVlPy5pZDtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBleHBvcnQgbmFtZWQgZmlsdGVyYCwgaWQpO1xuXG4gICAgaWYgKCFpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZChpZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcblxuICAgIGlmIChkYXRhKSB7XG4gICAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZShKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIGZpbGVuYW1lOiBgJHt0aGlzLmV4cG9ydEZpbGVOYW1lUHJlZml4fS0ke2RhdGEuZW50aXR5TmFtZX0tJHtkYXRhLm5hbWV9Lmpzb25gLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5OT1RfRk9VTkQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgRmlsZXNVdGlscy5zaG93VXBsb2FkUG9wb3Zlcih0aGlzLnBvcG92ZXJDb250cm9sbGVyLCBldmVudCwge1xuICAgICAgdXBsb2FkRm46IChmaWxlKSA9PiBGaWxlc1V0aWxzLnJlYWRBc1RleHQoZmlsZSksXG4gICAgICB0aXRsZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUJyxcbiAgICAgIGZpbGVFeHRlbnNpb246ICcuanNvbicsXG4gICAgICB1bmlxdWVGaWxlOiB0cnVlLFxuICAgICAgaW5zdGFudFVwbG9hZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3VsdCB8fCBpc0VtcHR5QXJyYXkocmVzdWx0LmRhdGEpKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShyZXN1bHQuZGF0YVswXS5yZXNwb25zZS5ib2R5KTtcbiAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBpbXBvcnQgbmFtZWQgZmlsdGVyYCwgZGF0YSk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjaykge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjayhkYXRhKTtcbiAgICAgICAgaWYgKGlzTmlsKGRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuOyAvLyBBYm9ydCBpbXBvcnQgaWYgY2FsbGJhY2sgcmV0dXJucyBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShkYXRhKTtcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdChkYXRhLmNvbnRlbnQpO1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUX0ZBSUxFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25GaWx0ZXJDaGFuZ2VzKHZhbHVlOiBOYW1lZEZpbHRlciB8IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBmaWx0ZXIgY2hhbmdlYCwgdmFsdWUpO1xuXG4gICAgLy8gRW1pdCBjbGVhcmVkIGV2ZW50IGlmIGJvdW5kXG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiB0aGlzLmZpbHRlckNsZWFyZWQub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ2xlYXJlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWU/LmlkICYmIGlzTm90TmlsKHZhbHVlLmlkKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZCh2YWx1ZS5pZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5fZGVsZXRlRGlzYWJsZWQgPSAhdGhpcy5kYXRhU2VydmljZS5jYW5Vc2VyV3JpdGUoZGF0YSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyID0gaXNOb3ROaWxPckJsYW5rKGRhdGE/LmNvbnRlbnQpID8gZGF0YS5jb250ZW50IDogbnVsbDtcbiAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdChmaWx0ZXIpO1xuICAgICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6ICdDT01NT04uTkFNRURfRklMVEVSLkxPQURfRkFJTEVEJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogTmFtZWRGaWx0ZXIpIHtcbiAgICB0aGlzLnNldFZhbHVlKHsgbmFtZWRGaWx0ZXI6IHZhbHVlIH0pO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuYmx1cnJlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICA8Zm9ybSBjbGFzcz1cImZvcm0tY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlLWZpZWxkXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZWRGaWx0ZXJcIlxuICAgICAgICAgIFtjb25maWddPVwiYXV0b2NvbXBsZXRlRmllbGRzLm5hbWVkRmlsdGVyXCJcbiAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT01NT04uTkFNRURfRklMVEVSLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICBbZHJvcEJ1dHRvblRpdGxlXT1cImRyb3BCdXR0b25UaXRsZVwiXG4gICAgICAgICAgW2NsZWFyQnV0dG9uVGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHNob3dCdXR0b25zICYmIGJ1dHRvbnNQb3NpdGlvbiA9PT0gJ21hdFN1ZmZpeCcpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0U3VmZml4PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGUtZmllbGQ+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9pb24tY29sPlxuICAgIEBpZiAoc2hvd0J1dHRvbnMgJiYgYnV0dG9uc1Bvc2l0aW9uID09PSAnYWZ0ZXInKSB7XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICB9XG4gIDwvaW9uLXJvdz5cbjwvaW9uLWdyaWQ+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucz5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIFtjb2xvcl09XCIncHJpbWFyeSdcIlxuICAgIFtkaXNhYmxlZF09XCJzYXZlRGlzYWJsZWRcIlxuICAgIFt0aXRsZV09XCInQ09NTU9OLk5BTUVEX0ZJTFRFUi5TQVZFJyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cInNhdmUoJGV2ZW50KVwiXG4gID5cbiAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaXNOZXdcIiBjbGFzcz1cImljb24tc2Vjb25kYXJ5XCIgc3R5bGU9XCJsZWZ0OiAxMnB4OyB0b3A6IDBweFwiPmFkZDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cImRlbGV0ZURpc2FibGVkXCJcbiAgICBbdGl0bGVdPVwiJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFJyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cImRlbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1vcmVNZW51XCIgKGNsaWNrKT1cIm9uTW9yZU9wdGlvbnNDbGljaygkZXZlbnQpXCI+XG4gICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21vcmVNZW51PVwibWF0TWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICAgIDwhLS0gaW1wb3J0IC0tPlxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJpbXBvcnQoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWljb24+ZmlsZV91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsPnt7ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVCcgfCB0cmFuc2xhdGUgfX08L2lvbi1sYWJlbD5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cblxuICAgICAgPCEtLSBleHBvcnQgLS0+XG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImV4cG9ydCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImlzTmV3XCI+XG4gICAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPGlvbi1sYWJlbD57eyAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5FWFBPUlQnIHwgdHJhbnNsYXRlIH19PC9pb24tbGFiZWw+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1tZW51PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXRGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQW9DLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0UsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFXMUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQVk7SUE4RHZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQW5FTyxTQUFTLEdBQUcseUJBQXlCLENBQUM7SUFFakQsV0FB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RSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciwgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQXBwRm9ybSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS9mb3JtLmNsYXNzJztcbmltcG9ydCB7IEZpbGVzVXRpbHMgfSBmcm9tICcuLi9maWxlL2ZpbGUudXRpbHMnO1xuaW1wb3J0IHsgaXNFbXB0eUFycmF5LCBpc05pbCwgaXNOaWxPckJsYW5rLCBpc05pbE9yTmFOLCBpc05vdE5pbCwgaXNOb3ROaWxPckJsYW5rIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUZpZWxkIH0gZnJvbSAnLi4vbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZyB9IGZyb20gJy4uL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUuY29uZmlnJztcbmltcG9ydCB7IFRvYXN0cyB9IGZyb20gJy4uL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQgeyBJTmFtZWRGaWx0ZXIsIElOYW1lZEZpbHRlckZpbHRlciwgTmFtZWRGaWx0ZXIgfSBmcm9tICcuL25hbWVkLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UsIElOYW1lZEZpbHRlclNlcnZpY2UsIE5hbWVkRmlsdGVyTG9hZE9wdGlvbnMsIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi9uYW1lZC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlLCBTdWJzY3JpcHRTaXppbmcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuZXhwb3J0IHR5cGUgTmFtZWRGaWx0ZXJTZWxlY3RvckJ1dHRvbnNQb3NpdGlvbiA9ICdtYXRTdWZmaXgnIHwgJ2FmdGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWVkLWZpbHRlci1zZWxlY3RvcicsXG4gIHN0eWxlVXJsczogWycuL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVkRmlsdGVyU2VsZWN0b3IgZXh0ZW5kcyBBcHBGb3JtPGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9nUHJlZml4ID0gJ1tuYW1lZC1maWx0ZXItc2VsZWN0b3JdJztcblxuICBwcml2YXRlIF9lbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlbGV0ZURpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xuICBASW5wdXQoKSBzZXQgZW50aXR5TmFtZShlbnRpdHlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWVudGl0eU5hbWUgfHwgdGhpcy5fZW50aXR5TmFtZSA9PT0gZW50aXR5TmFtZSkgcmV0dXJuO1xuICAgIHRoaXMuX2VudGl0eU5hbWUgPSBlbnRpdHlOYW1lO1xuICAgIC8vIFVwZGF0ZSBhdXRvY29tcGxldGUgZmlsdGVyXG4gICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5maWx0ZXIgPSB7IC4uLnRoaXMuYXV0b2NvbXBsZXRlRmllbGQuZmlsdGVyLCAuLi50aGlzLmdldEZpbHRlcigpIH07XG4gIH1cblxuICBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlOYW1lO1xuICB9XG5cbiAgQElucHV0KCkgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcbiAgQElucHV0KCkgc3Vic2NyaXB0U2l6aW5nOiBTdWJzY3JpcHRTaXppbmc7XG4gIEBJbnB1dCgpIGZpbHRlckNvbnRlbnRQcm92aWRlcjogKCkgPT4gYW55O1xuICBASW5wdXQoKSBmaWx0ZXJJbXBvcnRDYWxsYmFjazogKG5hbWVkRmlsdGVyOiBOYW1lZEZpbHRlcikgPT4gUHJvbWlzZTxOYW1lZEZpbHRlcj47XG4gIEBJbnB1dCgpIGZpbHRlckZvcm1EaXJ0eTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd0J1dHRvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBleHBvcnRGaWxlTmFtZVByZWZpeCA9ICdmaWx0ZXInO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGVDb25maWc6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBkcm9wQnV0dG9uVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgY2xlYXJCdXR0b25UaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBkZXRlY3RDaGFuZ2VPblNlbGVjdEZpbHRlcjogYm9vbGVhbiA9IGZhbHNlOyAvLyBFbHNlIGlzIG9uIHZhbHVlIGNoYW5nZVxuICBASW5wdXQoKSBidXR0b25zUG9zaXRpb246IE5hbWVkRmlsdGVyU2VsZWN0b3JCdXR0b25zUG9zaXRpb247XG5cbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKF9kaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmIChfZGlzYWJsZWQpIHRoaXMuZGlzYWJsZSgpO1xuICAgIGVsc2UgdGhpcy5lbmFibGUoKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgZ2V0IGlzTmV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05pbE9yTmFOKHRoaXMudmFsdWU/Lm5hbWVkRmlsdGVyPy5pZCk7XG4gIH1cblxuICBnZXQgc2F2ZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaXJ0eSB8fCBpc05pbE9yQmxhbmsodGhpcy52YWx1ZS5uYW1lZEZpbHRlcik7XG4gIH1cblxuICBnZXQgZGVsZXRlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGV0ZURpc2FibGVkIHx8IHRoaXMuaXNOZXc7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmRpcnR5IHx8IHRoaXMuZmlsdGVyRm9ybURpcnR5O1xuICB9XG5cbiAgQE91dHB1dCgpIGZpbHRlclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBmaWx0ZXJEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOYW1lZEZpbHRlcj4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVGaWVsZCwgeyBzdGF0aWM6IHRydWUgfSkgYXV0b2NvbXBsZXRlRmllbGQ6IE1hdEF1dG9jb21wbGV0ZUZpZWxkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBASW5qZWN0KEFQUF9OQU1FRF9GSUxURVJfU0VSVklDRSlcbiAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IElOYW1lZEZpbHRlclNlcnZpY2U8SU5hbWVkRmlsdGVyPGFueT4sIElOYW1lZEZpbHRlckZpbHRlcjxhbnksIGFueT4sIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zLCBOYW1lZEZpbHRlckxvYWRPcHRpb25zPlxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgZm9ybUJ1aWxkZXIuZ3JvdXAoeyBuYW1lZEZpbHRlcjogW251bGxdIH0pKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9iaWxlID0gdGhpcy5tb2JpbGUgPz8gdGhpcy5zZXR0aW5ncy5tb2JpbGU7XG4gICAgdGhpcy5idXR0b25zUG9zaXRpb24gPSB0aGlzLmJ1dHRvbnNQb3NpdGlvbiA/PyAodGhpcy5tb2JpbGUgPyAnYWZ0ZXInIDogJ21hdFN1ZmZpeCcpO1xuXG4gICAgdGhpcy5yZWdpc3RlckF1dG9jb21wbGV0ZUZpZWxkKCduYW1lZEZpbHRlcicsIHtcbiAgICAgIHN1Z2dlc3RGbjogKHZhbHVlLCBmaWx0ZXIpID0+IHRoaXMuZGF0YVNlcnZpY2Uuc3VnZ2VzdCh2YWx1ZSwgZmlsdGVyKSxcbiAgICAgIGF0dHJpYnV0ZXM6IFsnbmFtZSddLFxuICAgICAgZmlsdGVyOiB0aGlzLmdldEZpbHRlcigpLFxuICAgICAgYXBwbHlJbXBsaWNpdFZhbHVlOiBmYWxzZSxcbiAgICAgIC4uLnRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZGV0ZWN0Q2hhbmdlT25TZWxlY3RGaWx0ZXIpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24odGhpcy5hdXRvY29tcGxldGVGaWVsZC5zZWxlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXMoZXZlbnQudmFsdWUpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uYW1lZEZpbHRlci52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXModmFsdWUpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgIH07XG4gIH1cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoZXZlbnQ6IFVJRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQ/LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBmaWx0ZXJDb250ZW50ID0gdGhpcy5maWx0ZXJDb250ZW50UHJvdmlkZXIoKTtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBzYXZlIG5hbWVkIGZpbHRlcmAsIGZpbHRlckNvbnRlbnQpO1xuXG4gICAgaWYgKGlzTmlsT3JCbGFuayhmaWx0ZXJDb250ZW50KSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFNlbGVjdGVkID0gdGhpcy52YWx1ZS5uYW1lZEZpbHRlcjtcbiAgICBsZXQgcmVzdWx0OiBOYW1lZEZpbHRlcjtcblxuICAgIGlmICh0eXBlb2YgY3VycmVudFNlbGVjdGVkID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0ID0gTmFtZWRGaWx0ZXIuZnJvbU9iamVjdCh7XG4gICAgICAgIG5hbWU6IGN1cnJlbnRTZWxlY3RlZCxcbiAgICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgICAgICBjb250ZW50OiBmaWx0ZXJDb250ZW50LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IE5hbWVkRmlsdGVyLmZyb21PYmplY3Qoe1xuICAgICAgICAuLi5jdXJyZW50U2VsZWN0ZWQsXG4gICAgICAgIGNvbnRlbnQ6IGZpbHRlckNvbnRlbnQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzYXZlZEVudGl0eSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2Uuc2F2ZShyZXN1bHQpO1xuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHNhdmVkRW50aXR5KTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnJlbG9hZEl0ZW1zKCk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKGV2ZW50PzogVUlFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnZhbHVlLm5hbWVkRmlsdGVyO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGRlbGV0ZSBuYW1lZCBmaWx0ZXJgLCBkYXRhKTtcblxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKGRhdGEpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5yZWxvYWRJdGVtcygpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZmlsdGVyRGVsZXRlZC5lbWl0KGRhdGEpO1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbk1vcmVPcHRpb25zQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gQXZvaWQgZmllbGQgZm9jdXMgZ2FpblxuICB9XG5cbiAgYXN5bmMgZXhwb3J0KGV2ZW50PzogVUlFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgaWQgPSB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnZhbHVlPy5pZDtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBleHBvcnQgbmFtZWQgZmlsdGVyYCwgaWQpO1xuXG4gICAgaWYgKCFpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZChpZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcblxuICAgIGlmIChkYXRhKSB7XG4gICAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZShKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIGZpbGVuYW1lOiBgJHt0aGlzLmV4cG9ydEZpbGVOYW1lUHJlZml4fS0ke2RhdGEuZW50aXR5TmFtZX0tJHtkYXRhLm5hbWV9Lmpzb25gLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5OT1RfRk9VTkQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgRmlsZXNVdGlscy5zaG93VXBsb2FkUG9wb3Zlcih0aGlzLnBvcG92ZXJDb250cm9sbGVyLCBldmVudCwge1xuICAgICAgdXBsb2FkRm46IChmaWxlKSA9PiBGaWxlc1V0aWxzLnJlYWRBc1RleHQoZmlsZSksXG4gICAgICB0aXRsZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUJyxcbiAgICAgIGZpbGVFeHRlbnNpb246ICcuanNvbicsXG4gICAgICB1bmlxdWVGaWxlOiB0cnVlLFxuICAgICAgaW5zdGFudFVwbG9hZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3VsdCB8fCBpc0VtcHR5QXJyYXkocmVzdWx0LmRhdGEpKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShyZXN1bHQuZGF0YVswXS5yZXNwb25zZS5ib2R5KTtcbiAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBpbXBvcnQgbmFtZWQgZmlsdGVyYCwgZGF0YSk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjaykge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjayhkYXRhKTtcbiAgICAgICAgaWYgKGlzTmlsKGRhdGEpKSB7XG4gICAgICAgICAgcmV0dXJuOyAvLyBBYm9ydCBpbXBvcnQgaWYgY2FsbGJhY2sgcmV0dXJucyBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShkYXRhKTtcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdChkYXRhLmNvbnRlbnQpO1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUX0ZBSUxFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25GaWx0ZXJDaGFuZ2VzKHZhbHVlOiBOYW1lZEZpbHRlciB8IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBmaWx0ZXIgY2hhbmdlYCwgdmFsdWUpO1xuXG4gICAgLy8gRW1pdCBjbGVhcmVkIGV2ZW50IGlmIGJvdW5kXG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiB0aGlzLmZpbHRlckNsZWFyZWQub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ2xlYXJlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWU/LmlkICYmIGlzTm90TmlsKHZhbHVlLmlkKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZCh2YWx1ZS5pZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5fZGVsZXRlRGlzYWJsZWQgPSAhdGhpcy5kYXRhU2VydmljZS5jYW5Vc2VyV3JpdGUoZGF0YSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyID0gaXNOb3ROaWxPckJsYW5rKGRhdGE/LmNvbnRlbnQpID8gZGF0YS5jb250ZW50IDogbnVsbDtcbiAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdChmaWx0ZXIpO1xuICAgICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6ICdDT01NT04uTkFNRURfRklMVEVSLkxPQURfRkFJTEVEJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogTmFtZWRGaWx0ZXIpIHtcbiAgICB0aGlzLnNldFZhbHVlKHsgbmFtZWRGaWx0ZXI6IHZhbHVlIH0pO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuYmx1cnJlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICA8Zm9ybSBjbGFzcz1cImZvcm0tY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlLWZpZWxkXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZWRGaWx0ZXJcIlxuICAgICAgICAgIFtjb25maWddPVwiYXV0b2NvbXBsZXRlRmllbGRzLm5hbWVkRmlsdGVyXCJcbiAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT01NT04uTkFNRURfRklMVEVSLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICBbZHJvcEJ1dHRvblRpdGxlXT1cImRyb3BCdXR0b25UaXRsZVwiXG4gICAgICAgICAgW2NsZWFyQnV0dG9uVGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHNob3dCdXR0b25zICYmIGJ1dHRvbnNQb3NpdGlvbiA9PT0gJ21hdFN1ZmZpeCcpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0U3VmZml4PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGUtZmllbGQ+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9pb24tY29sPlxuICAgIEBpZiAoc2hvd0J1dHRvbnMgJiYgYnV0dG9uc1Bvc2l0aW9uID09PSAnYWZ0ZXInKSB7XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICB9XG4gIDwvaW9uLXJvdz5cbjwvaW9uLWdyaWQ+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucz5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIFtjb2xvcl09XCIncHJpbWFyeSdcIlxuICAgIFtkaXNhYmxlZF09XCJzYXZlRGlzYWJsZWRcIlxuICAgIFt0aXRsZV09XCInQ09NTU9OLk5BTUVEX0ZJTFRFUi5TQVZFJyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cInNhdmUoJGV2ZW50KVwiXG4gID5cbiAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaXNOZXdcIiBjbGFzcz1cImljb24tc2Vjb25kYXJ5XCIgc3R5bGU9XCJsZWZ0OiAxMnB4OyB0b3A6IDBweFwiPmFkZDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cImRlbGV0ZURpc2FibGVkXCJcbiAgICBbdGl0bGVdPVwiJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFJyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cImRlbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1vcmVNZW51XCIgKGNsaWNrKT1cIm9uTW9yZU9wdGlvbnNDbGljaygkZXZlbnQpXCI+XG4gICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI21vcmVNZW51PVwibWF0TWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICAgIDwhLS0gaW1wb3J0IC0tPlxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJpbXBvcnQoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWljb24+ZmlsZV91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsPnt7ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVCcgfCB0cmFuc2xhdGUgfX08L2lvbi1sYWJlbD5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cblxuICAgICAgPCEtLSBleHBvcnQgLS0+XG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImV4cG9ydCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImlzTmV3XCI+XG4gICAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPGlvbi1sYWJlbD57eyAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5FWFBPUlQnIHwgdHJhbnNsYXRlIH19PC9pb24tbGFiZWw+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1tZW51PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -9,11 +9,11 @@ import { SharedMaterialModule } from '../material/material.module';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@ngx-translate/core";
11
11
  export class SharedNamedFilterModule {
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedNamedFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SharedNamedFilterModule, declarations: [NamedFilterSelector], imports: [CommonModule, IonicModule, i1.TranslateModule, SharedMatAutocompleteModule, ReactiveFormsModule, SharedMaterialModule], exports: [NamedFilterSelector] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedNamedFilterModule, imports: [CommonModule, IonicModule, TranslateModule.forChild(), SharedMatAutocompleteModule, ReactiveFormsModule, SharedMaterialModule] });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SharedNamedFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: SharedNamedFilterModule, declarations: [NamedFilterSelector], imports: [CommonModule, IonicModule, i1.TranslateModule, SharedMatAutocompleteModule, ReactiveFormsModule, SharedMaterialModule], exports: [NamedFilterSelector] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SharedNamedFilterModule, imports: [CommonModule, IonicModule, TranslateModule.forChild(), SharedMatAutocompleteModule, ReactiveFormsModule, SharedMaterialModule] });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedNamedFilterModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SharedNamedFilterModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  imports: [CommonModule, IonicModule, TranslateModule.forChild(), SharedMatAutocompleteModule, ReactiveFormsModule, SharedMaterialModule],
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
21
21
  exports: [NamedFilterSelector],
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQU9uRSxNQUFNLE9BQU8sdUJBQXVCO3VHQUF2Qix1QkFBdUI7d0dBQXZCLHVCQUF1QixpQkFIbkIsbUJBQW1CLGFBRHhCLFlBQVksRUFBRSxXQUFXLHNCQUE4QiwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsYUFFN0gsbUJBQW1CO3dHQUVsQix1QkFBdUIsWUFKeEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9COzsyRkFJNUgsdUJBQXVCO2tCQUxuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO29CQUN4SSxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmFtZWRGaWx0ZXJTZWxlY3RvciB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2hhcmVkTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC9tYXRlcmlhbC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksIFNoYXJlZE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgU2hhcmVkTWF0ZXJpYWxNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOYW1lZEZpbHRlclNlbGVjdG9yXSxcbiAgZXhwb3J0czogW05hbWVkRmlsdGVyU2VsZWN0b3JdLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWROYW1lZEZpbHRlck1vZHVsZSB7fVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQU9uRSxNQUFNLE9BQU8sdUJBQXVCO3dHQUF2Qix1QkFBdUI7eUdBQXZCLHVCQUF1QixpQkFIbkIsbUJBQW1CLGFBRHhCLFlBQVksRUFBRSxXQUFXLHNCQUE4QiwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsYUFFN0gsbUJBQW1CO3lHQUVsQix1QkFBdUIsWUFKeEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9COzs0RkFJNUgsdUJBQXVCO2tCQUxuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO29CQUN4SSxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmFtZWRGaWx0ZXJTZWxlY3RvciB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2hhcmVkTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC9tYXRlcmlhbC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksIFNoYXJlZE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgU2hhcmVkTWF0ZXJpYWxNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOYW1lZEZpbHRlclNlbGVjdG9yXSxcbiAgZXhwb3J0czogW05hbWVkRmlsdGVyU2VsZWN0b3JdLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWROYW1lZEZpbHRlck1vZHVsZSB7fVxuIl19
@@ -60,10 +60,10 @@ export class AbstractNamedFilterService extends BaseEntityService {
60
60
  source.content = JSON.stringify(source.content);
61
61
  }
62
62
  }
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AbstractNamedFilterService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
64
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: AbstractNamedFilterService, usesInheritance: true, ngImport: i0 });
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: AbstractNamedFilterService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
64
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: AbstractNamedFilterService, usesInheritance: true, ngImport: i0 });
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AbstractNamedFilterService, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: AbstractNamedFilterService, decorators: [{
67
67
  type: Directive
68
68
  }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: i3.AccountService }, { type: undefined }, { type: undefined }, { type: undefined }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBVXJFLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSwrQ0FBK0MsQ0FBQztBQUc1RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUdyQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBMEMsb0JBQW9CLENBQUMsQ0FBQztBQW1CMUgsV0FBVztBQUVYLE1BQU0sT0FBZ0IsMEJBTXBCLFNBQVEsaUJBQStCO0lBSTNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQU5aLFlBQ1ksT0FBdUIsRUFDdkIsUUFBeUIsRUFDekIsT0FBdUIsRUFDdkIsUUFBcUIsRUFDckIsVUFBdUIsRUFDdkIsT0FBNEM7UUFFdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtZQUM3QyxhQUFhLEVBQUUsTUFBTTtZQUNyQixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQVhPLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFxQztRQU90RCxJQUFJLENBQUMsVUFBVSxHQUFHLHlCQUF5QixDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQVUsRUFBRSxNQUFrQjtRQUMxQyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xFLEtBQUssR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUE4QjtZQUN2SCxTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWtCLEVBQUUsTUFBbUI7UUFDckQsT0FBVTtZQUNSLEdBQUcsTUFBTTtZQUNULFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUNoRyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBRW5ELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxNQUFTO1FBQ3ZDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwQyxtQkFBbUI7UUFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFFM0gsb0JBQW9CO1FBQ3BCLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7dUdBNURtQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEL0MsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIElFbnRpdHlTZXJ2aWNlLFxuICBMb2FkUmVzdWx0LFxuICBTdWdnZXN0U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VFbnRpdHlTZXJ2aWNlLCBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2Jhc2UtZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgSU5hbWVkRmlsdGVyLCBJTmFtZWRGaWx0ZXJGaWx0ZXIsIE5hbWVkRmlsdGVyLCBOYW1lZEZpbHRlckZpbHRlciB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IEFQUF9OQU1FRF9GSUxURVJfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJTmFtZWRGaWx0ZXJTZXJ2aWNlPGFueSwgYW55LCBhbnksIGFueT4+KCduYW1lZEZpbHRlclNlcnZpY2UnKTtcblxuZXhwb3J0IGludGVyZmFjZSBJTmFtZWRGaWx0ZXJTZXJ2aWNlPFxuICBUIGV4dGVuZHMgSU5hbWVkRmlsdGVyPFQ+LFxuICBGIGV4dGVuZHMgSU5hbWVkRmlsdGVyRmlsdGVyPEYsIFQ+LFxuICBXTyBleHRlbmRzIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zLFxuICBMTyBleHRlbmRzIE5hbWVkRmlsdGVyTG9hZE9wdGlvbnMsXG4+IGV4dGVuZHMgSUVudGl0aWVzU2VydmljZTxULCBGLCBXTz4sXG4gICAgSUVudGl0eVNlcnZpY2U8VCwgbnVtYmVyLCBMTz4sXG4gICAgU3VnZ2VzdFNlcnZpY2U8VCwgRj4ge31cblxuZXhwb3J0IGludGVyZmFjZSBOYW1lZEZpbHRlcldhdGNoT3B0aW9ucyBleHRlbmRzIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICB3aXRoQ29udGVudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZWRGaWx0ZXJMb2FkT3B0aW9ucyBleHRlbmRzIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zIHtcbiAgd2l0aENvbnRlbnQ/OiBib29sZWFuO1xufVxuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3ROYW1lZEZpbHRlclNlcnZpY2U8XG4gICAgVCBleHRlbmRzIE5hbWVkRmlsdGVyPFQ+LFxuICAgIEYgZXh0ZW5kcyBOYW1lZEZpbHRlckZpbHRlcjxGLCBUPixcbiAgICBXTyBleHRlbmRzIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zID0gTmFtZWRGaWx0ZXJXYXRjaE9wdGlvbnMsXG4gICAgTE8gZXh0ZW5kcyBOYW1lZEZpbHRlckxvYWRPcHRpb25zID0gTmFtZWRGaWx0ZXJMb2FkT3B0aW9ucyxcbiAgPlxuICBleHRlbmRzIEJhc2VFbnRpdHlTZXJ2aWNlPFQsIEYsIG51bWJlcj5cbiAgaW1wbGVtZW50cyBJTmFtZWRGaWx0ZXJTZXJ2aWNlPFQsIEYsIFdPLCBMTz5cbntcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudDogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IEJhc2VFbnRpdHlTZXJ2aWNlT3B0aW9uczxULCBudW1iZXI+XG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIHBsYXRmb3JtLCBkYXRhVHlwZSwgZmlsdGVyVHlwZSwge1xuICAgICAgZGVmYXVsdFNvcnRCeTogJ25hbWUnLFxuICAgICAgZGVmYXVsdFNvcnREaXJlY3Rpb246ICdhc2MnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICB0aGlzLl9sb2dQcmVmaXggPSAnW25hbWVkLWZpbHRlci1zZXJ2aWNlXSAnO1xuICB9XG5cbiAgYXN5bmMgc3VnZ2VzdCh2YWx1ZTogYW55LCBmaWx0ZXI6IFBhcnRpYWw8Rj4pOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICBpZiAoRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSwgJ2lkJykpIHJldHVybiB7IGRhdGE6IFt2YWx1ZV0gfTtcbiAgICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicgJiYgdmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5sb2FkQWxsKDAsICF2YWx1ZSA/IDMwIDogMTAsICduYW1lJywgJ2FzYycsIHRoaXMuYXNTdWdnZXN0RmlsdGVyKHZhbHVlLCBmaWx0ZXIpLCA8RW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnM+e1xuICAgICAgd2l0aFRvdGFsOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgYXNTdWdnZXN0RmlsdGVyKHNlYXJjaFRleHQ6IHN0cmluZywgZmlsdGVyPzogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiA8Rj57XG4gICAgICAuLi5maWx0ZXIsXG4gICAgICBzZWFyY2hUZXh0LFxuICAgIH07XG4gIH1cblxuICBhc0ZpbHRlcihzb3VyY2U6IGFueSk6IEYge1xuICAgIGNvbnN0IGZpbHRlciA9IHN1cGVyLmFzRmlsdGVyKHNvdXJjZSk7XG5cbiAgICAvLyBEZWZhdWx0IGZpbHRlciBvbiBjdXJyZW50IHVzZXJcbiAgICBpZiAodGhpcy5hY2NvdW50LmlzTG9naW4oKSAmJiBpc05pbChmaWx0ZXIucmVjb3JkZXJQZXJzb25JZCkgJiYgaXNOaWwoZmlsdGVyLnJlY29yZGVyRGVwYXJ0bWVudElkKSlcbiAgICAgIGZpbHRlci5yZWNvcmRlclBlcnNvbklkID0gdGhpcy5hY2NvdW50LnBlcnNvbi5pZDtcblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsbERlZmF1bHRQcm9wZXJ0aWVzKHNvdXJjZTogVCkge1xuICAgIHN1cGVyLmZpbGxEZWZhdWx0UHJvcGVydGllcyhzb3VyY2UpO1xuXG4gICAgLy8gRGVmYXVsdCByZWNvcmRlclxuICAgIGlmIChpc05pbChzb3VyY2UucmVjb3JkZXJQZXJzb25JZCkgJiYgaXNOaWwoc291cmNlLnJlY29yZGVyRGVwYXJ0bWVudElkKSkgc291cmNlLnJlY29yZGVyUGVyc29uSWQgPSB0aGlzLmFjY291bnQucGVyc29uLmlkO1xuXG4gICAgLy8gU3RyaW5naWZ5IGNvbnRlbnRcbiAgICBpZiAodHlwZW9mIHNvdXJjZS5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgc291cmNlLmNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb3VyY2UuY29udGVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBVXJFLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSwrQ0FBK0MsQ0FBQztBQUc1RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUdyQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBMEMsb0JBQW9CLENBQUMsQ0FBQztBQW1CMUgsV0FBVztBQUVYLE1BQU0sT0FBZ0IsMEJBTXBCLFNBQVEsaUJBQStCO0lBSTNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQU5aLFlBQ1ksT0FBdUIsRUFDdkIsUUFBeUIsRUFDekIsT0FBdUIsRUFDdkIsUUFBcUIsRUFDckIsVUFBdUIsRUFDdkIsT0FBNEM7UUFFdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtZQUM3QyxhQUFhLEVBQUUsTUFBTTtZQUNyQixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQVhPLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFxQztRQU90RCxJQUFJLENBQUMsVUFBVSxHQUFHLHlCQUF5QixDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQVUsRUFBRSxNQUFrQjtRQUMxQyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xFLEtBQUssR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUE4QjtZQUN2SCxTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWtCLEVBQUUsTUFBbUI7UUFDckQsT0FBVTtZQUNSLEdBQUcsTUFBTTtZQUNULFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUNoRyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBRW5ELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxNQUFTO1FBQ3ZDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwQyxtQkFBbUI7UUFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFFM0gsb0JBQW9CO1FBQ3BCLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7d0dBNURtQiwwQkFBMEI7NEZBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFEL0MsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIElFbnRpdHlTZXJ2aWNlLFxuICBMb2FkUmVzdWx0LFxuICBTdWdnZXN0U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VFbnRpdHlTZXJ2aWNlLCBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2Jhc2UtZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgSU5hbWVkRmlsdGVyLCBJTmFtZWRGaWx0ZXJGaWx0ZXIsIE5hbWVkRmlsdGVyLCBOYW1lZEZpbHRlckZpbHRlciB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IEFQUF9OQU1FRF9GSUxURVJfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJTmFtZWRGaWx0ZXJTZXJ2aWNlPGFueSwgYW55LCBhbnksIGFueT4+KCduYW1lZEZpbHRlclNlcnZpY2UnKTtcblxuZXhwb3J0IGludGVyZmFjZSBJTmFtZWRGaWx0ZXJTZXJ2aWNlPFxuICBUIGV4dGVuZHMgSU5hbWVkRmlsdGVyPFQ+LFxuICBGIGV4dGVuZHMgSU5hbWVkRmlsdGVyRmlsdGVyPEYsIFQ+LFxuICBXTyBleHRlbmRzIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zLFxuICBMTyBleHRlbmRzIE5hbWVkRmlsdGVyTG9hZE9wdGlvbnMsXG4+IGV4dGVuZHMgSUVudGl0aWVzU2VydmljZTxULCBGLCBXTz4sXG4gICAgSUVudGl0eVNlcnZpY2U8VCwgbnVtYmVyLCBMTz4sXG4gICAgU3VnZ2VzdFNlcnZpY2U8VCwgRj4ge31cblxuZXhwb3J0IGludGVyZmFjZSBOYW1lZEZpbHRlcldhdGNoT3B0aW9ucyBleHRlbmRzIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICB3aXRoQ29udGVudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZWRGaWx0ZXJMb2FkT3B0aW9ucyBleHRlbmRzIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zIHtcbiAgd2l0aENvbnRlbnQ/OiBib29sZWFuO1xufVxuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3ROYW1lZEZpbHRlclNlcnZpY2U8XG4gICAgVCBleHRlbmRzIE5hbWVkRmlsdGVyPFQ+LFxuICAgIEYgZXh0ZW5kcyBOYW1lZEZpbHRlckZpbHRlcjxGLCBUPixcbiAgICBXTyBleHRlbmRzIE5hbWVkRmlsdGVyV2F0Y2hPcHRpb25zID0gTmFtZWRGaWx0ZXJXYXRjaE9wdGlvbnMsXG4gICAgTE8gZXh0ZW5kcyBOYW1lZEZpbHRlckxvYWRPcHRpb25zID0gTmFtZWRGaWx0ZXJMb2FkT3B0aW9ucyxcbiAgPlxuICBleHRlbmRzIEJhc2VFbnRpdHlTZXJ2aWNlPFQsIEYsIG51bWJlcj5cbiAgaW1wbGVtZW50cyBJTmFtZWRGaWx0ZXJTZXJ2aWNlPFQsIEYsIFdPLCBMTz5cbntcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudDogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IEJhc2VFbnRpdHlTZXJ2aWNlT3B0aW9uczxULCBudW1iZXI+XG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIHBsYXRmb3JtLCBkYXRhVHlwZSwgZmlsdGVyVHlwZSwge1xuICAgICAgZGVmYXVsdFNvcnRCeTogJ25hbWUnLFxuICAgICAgZGVmYXVsdFNvcnREaXJlY3Rpb246ICdhc2MnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICB0aGlzLl9sb2dQcmVmaXggPSAnW25hbWVkLWZpbHRlci1zZXJ2aWNlXSAnO1xuICB9XG5cbiAgYXN5bmMgc3VnZ2VzdCh2YWx1ZTogYW55LCBmaWx0ZXI6IFBhcnRpYWw8Rj4pOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICBpZiAoRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSwgJ2lkJykpIHJldHVybiB7IGRhdGE6IFt2YWx1ZV0gfTtcbiAgICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicgJiYgdmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5sb2FkQWxsKDAsICF2YWx1ZSA/IDMwIDogMTAsICduYW1lJywgJ2FzYycsIHRoaXMuYXNTdWdnZXN0RmlsdGVyKHZhbHVlLCBmaWx0ZXIpLCA8RW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnM+e1xuICAgICAgd2l0aFRvdGFsOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgYXNTdWdnZXN0RmlsdGVyKHNlYXJjaFRleHQ6IHN0cmluZywgZmlsdGVyPzogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiA8Rj57XG4gICAgICAuLi5maWx0ZXIsXG4gICAgICBzZWFyY2hUZXh0LFxuICAgIH07XG4gIH1cblxuICBhc0ZpbHRlcihzb3VyY2U6IGFueSk6IEYge1xuICAgIGNvbnN0IGZpbHRlciA9IHN1cGVyLmFzRmlsdGVyKHNvdXJjZSk7XG5cbiAgICAvLyBEZWZhdWx0IGZpbHRlciBvbiBjdXJyZW50IHVzZXJcbiAgICBpZiAodGhpcy5hY2NvdW50LmlzTG9naW4oKSAmJiBpc05pbChmaWx0ZXIucmVjb3JkZXJQZXJzb25JZCkgJiYgaXNOaWwoZmlsdGVyLnJlY29yZGVyRGVwYXJ0bWVudElkKSlcbiAgICAgIGZpbHRlci5yZWNvcmRlclBlcnNvbklkID0gdGhpcy5hY2NvdW50LnBlcnNvbi5pZDtcblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsbERlZmF1bHRQcm9wZXJ0aWVzKHNvdXJjZTogVCkge1xuICAgIHN1cGVyLmZpbGxEZWZhdWx0UHJvcGVydGllcyhzb3VyY2UpO1xuXG4gICAgLy8gRGVmYXVsdCByZWNvcmRlclxuICAgIGlmIChpc05pbChzb3VyY2UucmVjb3JkZXJQZXJzb25JZCkgJiYgaXNOaWwoc291cmNlLnJlY29yZGVyRGVwYXJ0bWVudElkKSkgc291cmNlLnJlY29yZGVyUGVyc29uSWQgPSB0aGlzLmFjY291bnQucGVyc29uLmlkO1xuXG4gICAgLy8gU3RyaW5naWZ5IGNvbnRlbnRcbiAgICBpZiAodHlwZW9mIHNvdXJjZS5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgc291cmNlLmNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb3VyY2UuY29udGVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -62,13 +62,13 @@ export class NamedFilterSelectorTestingPage {
62
62
  this.filterForm.patchValue(filter, { emitEvent: false });
63
63
  this.markForCheck();
64
64
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelectorTestingPage, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LocalSettingsService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
66
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: NamedFilterSelectorTestingPage, selector: "app-name-filter-selector-testing", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<app-toolbar defaultBackHref=\"testing/shared\">\n <ion-title>Named filter selector testing page</ion-title>\n @if (!mobile) {\n <ion-buttons slot=\"end\">\n <app-named-filter-selector\n class=\"ion-padding-right ion-padding-top\"\n [entityName]=\"'DummyEntity'\"\n [subscriptSizing]=\"'dynamic'\"\n [filterContentProvider]=\"namedFilterContentProvider\"\n [filterFormDirty]=\"filterForm.dirty\"\n [autocompleteConfig]=\"namedFilterAutocompleteConfig\"\n [filterImportCallback]=\"filterImportCallback\"\n (filterSelected)=\"setFilter($event)\"\n [detectChangeOnSelectFilter]=\"true\"\n ></app-named-filter-selector>\n </ion-buttons>\n }\n</app-toolbar>\n<ion-content>\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-label>Dummy filter</ion-label>\n </ion-card-header>\n <ion-card-content>\n @if (mobile) {\n <app-named-filter-selector\n class=\"ion-padding-right ion-padding-top\"\n [entityName]=\"'DummyEntity'\"\n [subscriptSizing]=\"'dynamic'\"\n [filterContentProvider]=\"namedFilterContentProvider\"\n [filterFormDirty]=\"filterForm.dirty\"\n [autocompleteConfig]=\"namedFilterAutocompleteConfig\"\n [filterImportCallback]=\"filterImportCallback\"\n (filterSelected)=\"setFilter($event)\"\n [detectChangeOnSelectFilter]=\"true\"\n ></app-named-filter-selector>\n }\n\n <form class=\"form-container\" [formGroup]=\"filterForm\">\n <div class=\"form-group\">\n <label for=\"filter-a\">Filter A&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-a\" name=\"filter-a\" formControlName=\"filterA\" />\n </div>\n <div class=\"form-group\">\n <label for=\"filter-b\">Filter B&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-b\" name=\"filter-b\" formControlName=\"filterB\" />\n </div>\n <div class=\"form-group\">\n <label for=\"filter-a\">Filter C&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-c\" name=\"filter-c\" formControlName=\"filterC\" />\n </div>\n </form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "component", type: i5.NamedFilterSelector, selector: "app-named-filter-selector", inputs: ["mobile", "entityName", "appearance", "subscriptSizing", "filterContentProvider", "filterImportCallback", "filterFormDirty", "showButtons", "exportFileNamePrefix", "autocompleteConfig", "dropButtonTitle", "clearButtonTitle", "detectChangeOnSelectFilter", "buttonsPosition", "disabled"], outputs: ["filterSelected", "filterDeleted", "filterCleared"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelectorTestingPage, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LocalSettingsService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NamedFilterSelectorTestingPage, selector: "app-name-filter-selector-testing", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<app-toolbar defaultBackHref=\"testing/shared\">\n <ion-title>Named filter selector testing page</ion-title>\n @if (!mobile) {\n <ion-buttons slot=\"end\">\n <app-named-filter-selector\n class=\"ion-padding-right ion-padding-top\"\n [entityName]=\"'DummyEntity'\"\n [subscriptSizing]=\"'dynamic'\"\n [filterContentProvider]=\"namedFilterContentProvider\"\n [filterFormDirty]=\"filterForm.dirty\"\n [autocompleteConfig]=\"namedFilterAutocompleteConfig\"\n [filterImportCallback]=\"filterImportCallback\"\n (filterSelected)=\"setFilter($event)\"\n [detectChangeOnSelectFilter]=\"true\"\n ></app-named-filter-selector>\n </ion-buttons>\n }\n</app-toolbar>\n<ion-content>\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-label>Dummy filter</ion-label>\n </ion-card-header>\n <ion-card-content>\n @if (mobile) {\n <app-named-filter-selector\n class=\"ion-padding-right ion-padding-top\"\n [entityName]=\"'DummyEntity'\"\n [subscriptSizing]=\"'dynamic'\"\n [filterContentProvider]=\"namedFilterContentProvider\"\n [filterFormDirty]=\"filterForm.dirty\"\n [autocompleteConfig]=\"namedFilterAutocompleteConfig\"\n [filterImportCallback]=\"filterImportCallback\"\n (filterSelected)=\"setFilter($event)\"\n [detectChangeOnSelectFilter]=\"true\"\n ></app-named-filter-selector>\n }\n\n <form class=\"form-container\" [formGroup]=\"filterForm\">\n <div class=\"form-group\">\n <label for=\"filter-a\">Filter A&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-a\" name=\"filter-a\" formControlName=\"filterA\" />\n </div>\n <div class=\"form-group\">\n <label for=\"filter-b\">Filter B&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-b\" name=\"filter-b\" formControlName=\"filterB\" />\n </div>\n <div class=\"form-group\">\n <label for=\"filter-a\">Filter C&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-c\" name=\"filter-c\" formControlName=\"filterC\" />\n </div>\n </form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "component", type: i5.NamedFilterSelector, selector: "app-named-filter-selector", inputs: ["mobile", "entityName", "appearance", "subscriptSizing", "filterContentProvider", "filterImportCallback", "filterFormDirty", "showButtons", "exportFileNamePrefix", "autocompleteConfig", "dropButtonTitle", "clearButtonTitle", "detectChangeOnSelectFilter", "buttonsPosition", "disabled"], outputs: ["filterSelected", "filterDeleted", "filterCleared"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelectorTestingPage, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelectorTestingPage, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'app-name-filter-selector-testing', changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-toolbar defaultBackHref=\"testing/shared\">\n <ion-title>Named filter selector testing page</ion-title>\n @if (!mobile) {\n <ion-buttons slot=\"end\">\n <app-named-filter-selector\n class=\"ion-padding-right ion-padding-top\"\n [entityName]=\"'DummyEntity'\"\n [subscriptSizing]=\"'dynamic'\"\n [filterContentProvider]=\"namedFilterContentProvider\"\n [filterFormDirty]=\"filterForm.dirty\"\n [autocompleteConfig]=\"namedFilterAutocompleteConfig\"\n [filterImportCallback]=\"filterImportCallback\"\n (filterSelected)=\"setFilter($event)\"\n [detectChangeOnSelectFilter]=\"true\"\n ></app-named-filter-selector>\n </ion-buttons>\n }\n</app-toolbar>\n<ion-content>\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-label>Dummy filter</ion-label>\n </ion-card-header>\n <ion-card-content>\n @if (mobile) {\n <app-named-filter-selector\n class=\"ion-padding-right ion-padding-top\"\n [entityName]=\"'DummyEntity'\"\n [subscriptSizing]=\"'dynamic'\"\n [filterContentProvider]=\"namedFilterContentProvider\"\n [filterFormDirty]=\"filterForm.dirty\"\n [autocompleteConfig]=\"namedFilterAutocompleteConfig\"\n [filterImportCallback]=\"filterImportCallback\"\n (filterSelected)=\"setFilter($event)\"\n [detectChangeOnSelectFilter]=\"true\"\n ></app-named-filter-selector>\n }\n\n <form class=\"form-container\" [formGroup]=\"filterForm\">\n <div class=\"form-group\">\n <label for=\"filter-a\">Filter A&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-a\" name=\"filter-a\" formControlName=\"filterA\" />\n </div>\n <div class=\"form-group\">\n <label for=\"filter-b\">Filter B&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-b\" name=\"filter-b\" formControlName=\"filterB\" />\n </div>\n <div class=\"form-group\">\n <label for=\"filter-a\">Filter C&nbsp;</label>\n <input type=\"text\" class=\"form-control\" id=\"filter-c\" name=\"filter-c\" formControlName=\"filterC\" />\n </div>\n </form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n" }]
71
71
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.LocalSettingsService }, { type: i2.UntypedFormBuilder }], propDecorators: { filterForm: [{
72
72
  type: Input
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvdGVzdGluZy9uYW1lZC1maWx0ZXItc2VsZWN0b3IudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci90ZXN0aW5nL25hbWVkLWZpbHRlci1zZWxlY3Rvci50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXhHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFLcEMsTUFBTSxXQUFXO0lBQ2YsT0FBTyxDQUFTO0lBQ2hCLE9BQU8sQ0FBUztJQUNoQixPQUFPLENBQVM7Q0FDakI7QUFPRCxNQUFNLE9BQU8sOEJBQThCO0lBbUI3QjtJQUNBO0lBbkJKLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pDLFdBQVcsQ0FBbUI7SUFDOUIsTUFBTSxDQUFVO0lBRWhCLDBCQUEwQixHQUFHLEdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ2pFLDZCQUE2QixHQUErQjtRQUNwRSxjQUFjLEVBQUUsSUFBSTtLQUNyQixDQUFDO0lBRUYsSUFDSSxVQUFVLENBQUMsS0FBdUI7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxZQUNZLEVBQXFCLEVBQ3JCLFFBQThCLEVBQ3hDLFdBQStCO1FBRnJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBR3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNuQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQTRCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0YsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxvQkFBb0IsR0FBRyxLQUFLLEVBQUUsV0FBd0IsRUFBd0IsRUFBRTtRQUN4RixPQUFPLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzlCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBNEIsRUFBRSxJQUE2QjtRQUN6RSxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQzt1R0E1RFUsOEJBQThCOzJGQUE5Qiw4QkFBOEIsOEdDbEIzQyxtaUZBNkRBOzsyRkQzQ2EsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLGtDQUFrQyxtQkFFM0IsdUJBQXVCLENBQUMsTUFBTTswSkFhM0MsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5pbXBvcnQgeyBOYW1lZEZpbHRlciB9IGZyb20gJy4uL25hbWVkLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5cbmNsYXNzIER1bW15RmlsdGVyIHtcbiAgZmlsdGVyQTogc3RyaW5nO1xuICBmaWx0ZXJCOiBzdHJpbmc7XG4gIGZpbHRlckM6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWUtZmlsdGVyLXNlbGVjdG9yLXRlc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLnRlc3RpbmcuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ1BhZ2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByb3RlY3RlZCBfZmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIG1vYmlsZTogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgbmFtZWRGaWx0ZXJDb250ZW50UHJvdmlkZXIgPSAoKTogb2JqZWN0ID0+IHRoaXMuZmlsdGVyRm9ybS52YWx1ZTtcbiAgcHJvdGVjdGVkIG5hbWVkRmlsdGVyQXV0b2NvbXBsZXRlQ29uZmlnOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZyA9IHtcbiAgICBzaG93QWxsT25Gb2N1czogdHJ1ZSxcbiAgfTtcblxuICBASW5wdXQoKVxuICBzZXQgZmlsdGVyRm9ybSh2YWx1ZTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIHRoaXMuc2V0RmlsdGVyRm9ybSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgZmlsdGVyRm9ybSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyRm9ybTtcbiAgfVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLl9maWx0ZXJGb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZmlsdGVyQTogW251bGxdLFxuICAgICAgZmlsdGVyQjogW251bGxdLFxuICAgICAgZmlsdGVyQzogW251bGxdLFxuICAgIH0pO1xuICAgIHRoaXMubW9iaWxlID0gc2V0dGluZ3MubW9iaWxlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZXRGaWx0ZXJGb3JtKGZpbHRlckZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBpZiAodGhpcy5fZmlsdGVyRm9ybSAhPT0gZmlsdGVyRm9ybSkge1xuICAgICAgdGhpcy5fZmlsdGVyRm9ybSA9IGZpbHRlckZvcm07XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuX2ZpbHRlckZvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHRoaXMubWFya0ZvckNoZWNrKCkpKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWx0ZXJWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJGb3JtLnZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWx0ZXJJbXBvcnRDYWxsYmFjayA9IGFzeW5jIChuYW1lZEZpbHRlcjogTmFtZWRGaWx0ZXIpOiBQcm9taXNlPE5hbWVkRmlsdGVyPiA9PiB7XG4gICAgZGVsZXRlIG5hbWVkRmlsdGVyLmlkO1xuICAgIGRlbGV0ZSBuYW1lZEZpbHRlci51cGRhdGVEYXRlO1xuICAgIHJldHVybiBuYW1lZEZpbHRlcjtcbiAgfTtcblxuICBhc3luYyBzZXRGaWx0ZXIoZmlsdGVyOiBQYXJ0aWFsPER1bW15RmlsdGVyPiwgb3B0cz86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pIHtcbiAgICBmaWx0ZXIgPSBmaWx0ZXIgfHwge307XG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoZmlsdGVyLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGFwcC10b29sYmFyIGRlZmF1bHRCYWNrSHJlZj1cInRlc3Rpbmcvc2hhcmVkXCI+XG4gIDxpb24tdGl0bGU+TmFtZWQgZmlsdGVyIHNlbGVjdG9yIHRlc3RpbmcgcGFnZTwvaW9uLXRpdGxlPlxuICBAaWYgKCFtb2JpbGUpIHtcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGFwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy1yaWdodCBpb24tcGFkZGluZy10b3BcIlxuICAgICAgICBbZW50aXR5TmFtZV09XCInRHVtbXlFbnRpdHknXCJcbiAgICAgICAgW3N1YnNjcmlwdFNpemluZ109XCInZHluYW1pYydcIlxuICAgICAgICBbZmlsdGVyQ29udGVudFByb3ZpZGVyXT1cIm5hbWVkRmlsdGVyQ29udGVudFByb3ZpZGVyXCJcbiAgICAgICAgW2ZpbHRlckZvcm1EaXJ0eV09XCJmaWx0ZXJGb3JtLmRpcnR5XCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZUNvbmZpZ109XCJuYW1lZEZpbHRlckF1dG9jb21wbGV0ZUNvbmZpZ1wiXG4gICAgICAgIFtmaWx0ZXJJbXBvcnRDYWxsYmFja109XCJmaWx0ZXJJbXBvcnRDYWxsYmFja1wiXG4gICAgICAgIChmaWx0ZXJTZWxlY3RlZCk9XCJzZXRGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgIFtkZXRlY3RDaGFuZ2VPblNlbGVjdEZpbHRlcl09XCJ0cnVlXCJcbiAgICAgID48L2FwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3I+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgfVxuPC9hcHAtdG9vbGJhcj5cbjxpb24tY29udGVudD5cbiAgPGlvbi1ncmlkPlxuICAgIDxpb24tcm93PlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24tY2FyZD5cbiAgICAgICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5EdW1teSBmaWx0ZXI8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIEBpZiAobW9iaWxlKSB7XG4gICAgICAgICAgICAgIDxhcHAtbmFtZWQtZmlsdGVyLXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy1yaWdodCBpb24tcGFkZGluZy10b3BcIlxuICAgICAgICAgICAgICAgIFtlbnRpdHlOYW1lXT1cIidEdW1teUVudGl0eSdcIlxuICAgICAgICAgICAgICAgIFtzdWJzY3JpcHRTaXppbmddPVwiJ2R5bmFtaWMnXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyQ29udGVudFByb3ZpZGVyXT1cIm5hbWVkRmlsdGVyQ29udGVudFByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyRm9ybURpcnR5XT1cImZpbHRlckZvcm0uZGlydHlcIlxuICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVDb25maWddPVwibmFtZWRGaWx0ZXJBdXRvY29tcGxldGVDb25maWdcIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJJbXBvcnRDYWxsYmFja109XCJmaWx0ZXJJbXBvcnRDYWxsYmFja1wiXG4gICAgICAgICAgICAgICAgKGZpbHRlclNlbGVjdGVkKT1cInNldEZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGV0ZWN0Q2hhbmdlT25TZWxlY3RGaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2FwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3I+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIiBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyLWFcIj5GaWx0ZXIgQSZuYnNwOzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImZpbHRlci1hXCIgbmFtZT1cImZpbHRlci1hXCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlsdGVyQVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWx0ZXItYlwiPkZpbHRlciBCJm5ic3A7PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZmlsdGVyLWJcIiBuYW1lPVwiZmlsdGVyLWJcIiBmb3JtQ29udHJvbE5hbWU9XCJmaWx0ZXJCXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlci1hXCI+RmlsdGVyIEMmbmJzcDs8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJmaWx0ZXItY1wiIG5hbWU9XCJmaWx0ZXItY1wiIGZvcm1Db250cm9sTmFtZT1cImZpbHRlckNcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICA8L2lvbi1ncmlkPlxuPC9pb24tY29udGVudD5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvdGVzdGluZy9uYW1lZC1maWx0ZXItc2VsZWN0b3IudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci90ZXN0aW5nL25hbWVkLWZpbHRlci1zZWxlY3Rvci50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXhHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFLcEMsTUFBTSxXQUFXO0lBQ2YsT0FBTyxDQUFTO0lBQ2hCLE9BQU8sQ0FBUztJQUNoQixPQUFPLENBQVM7Q0FDakI7QUFPRCxNQUFNLE9BQU8sOEJBQThCO0lBbUI3QjtJQUNBO0lBbkJKLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pDLFdBQVcsQ0FBbUI7SUFDOUIsTUFBTSxDQUFVO0lBRWhCLDBCQUEwQixHQUFHLEdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ2pFLDZCQUE2QixHQUErQjtRQUNwRSxjQUFjLEVBQUUsSUFBSTtLQUNyQixDQUFDO0lBRUYsSUFDSSxVQUFVLENBQUMsS0FBdUI7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxZQUNZLEVBQXFCLEVBQ3JCLFFBQThCLEVBQ3hDLFdBQStCO1FBRnJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBR3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNuQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQTRCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0YsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxvQkFBb0IsR0FBRyxLQUFLLEVBQUUsV0FBd0IsRUFBd0IsRUFBRTtRQUN4RixPQUFPLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzlCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBNEIsRUFBRSxJQUE2QjtRQUN6RSxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0E1RFUsOEJBQThCOzRGQUE5Qiw4QkFBOEIsOEdDbEIzQyxtaUZBNkRBOzs0RkQzQ2EsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLGtDQUFrQyxtQkFFM0IsdUJBQXVCLENBQUMsTUFBTTswSkFhM0MsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5pbXBvcnQgeyBOYW1lZEZpbHRlciB9IGZyb20gJy4uL25hbWVkLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5cbmNsYXNzIER1bW15RmlsdGVyIHtcbiAgZmlsdGVyQTogc3RyaW5nO1xuICBmaWx0ZXJCOiBzdHJpbmc7XG4gIGZpbHRlckM6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWUtZmlsdGVyLXNlbGVjdG9yLXRlc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLnRlc3RpbmcuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ1BhZ2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByb3RlY3RlZCBfZmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIG1vYmlsZTogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgbmFtZWRGaWx0ZXJDb250ZW50UHJvdmlkZXIgPSAoKTogb2JqZWN0ID0+IHRoaXMuZmlsdGVyRm9ybS52YWx1ZTtcbiAgcHJvdGVjdGVkIG5hbWVkRmlsdGVyQXV0b2NvbXBsZXRlQ29uZmlnOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZyA9IHtcbiAgICBzaG93QWxsT25Gb2N1czogdHJ1ZSxcbiAgfTtcblxuICBASW5wdXQoKVxuICBzZXQgZmlsdGVyRm9ybSh2YWx1ZTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIHRoaXMuc2V0RmlsdGVyRm9ybSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgZmlsdGVyRm9ybSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyRm9ybTtcbiAgfVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLl9maWx0ZXJGb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZmlsdGVyQTogW251bGxdLFxuICAgICAgZmlsdGVyQjogW251bGxdLFxuICAgICAgZmlsdGVyQzogW251bGxdLFxuICAgIH0pO1xuICAgIHRoaXMubW9iaWxlID0gc2V0dGluZ3MubW9iaWxlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZXRGaWx0ZXJGb3JtKGZpbHRlckZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBpZiAodGhpcy5fZmlsdGVyRm9ybSAhPT0gZmlsdGVyRm9ybSkge1xuICAgICAgdGhpcy5fZmlsdGVyRm9ybSA9IGZpbHRlckZvcm07XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuX2ZpbHRlckZvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHRoaXMubWFya0ZvckNoZWNrKCkpKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWx0ZXJWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJGb3JtLnZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWx0ZXJJbXBvcnRDYWxsYmFjayA9IGFzeW5jIChuYW1lZEZpbHRlcjogTmFtZWRGaWx0ZXIpOiBQcm9taXNlPE5hbWVkRmlsdGVyPiA9PiB7XG4gICAgZGVsZXRlIG5hbWVkRmlsdGVyLmlkO1xuICAgIGRlbGV0ZSBuYW1lZEZpbHRlci51cGRhdGVEYXRlO1xuICAgIHJldHVybiBuYW1lZEZpbHRlcjtcbiAgfTtcblxuICBhc3luYyBzZXRGaWx0ZXIoZmlsdGVyOiBQYXJ0aWFsPER1bW15RmlsdGVyPiwgb3B0cz86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pIHtcbiAgICBmaWx0ZXIgPSBmaWx0ZXIgfHwge307XG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoZmlsdGVyLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGFwcC10b29sYmFyIGRlZmF1bHRCYWNrSHJlZj1cInRlc3Rpbmcvc2hhcmVkXCI+XG4gIDxpb24tdGl0bGU+TmFtZWQgZmlsdGVyIHNlbGVjdG9yIHRlc3RpbmcgcGFnZTwvaW9uLXRpdGxlPlxuICBAaWYgKCFtb2JpbGUpIHtcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGFwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy1yaWdodCBpb24tcGFkZGluZy10b3BcIlxuICAgICAgICBbZW50aXR5TmFtZV09XCInRHVtbXlFbnRpdHknXCJcbiAgICAgICAgW3N1YnNjcmlwdFNpemluZ109XCInZHluYW1pYydcIlxuICAgICAgICBbZmlsdGVyQ29udGVudFByb3ZpZGVyXT1cIm5hbWVkRmlsdGVyQ29udGVudFByb3ZpZGVyXCJcbiAgICAgICAgW2ZpbHRlckZvcm1EaXJ0eV09XCJmaWx0ZXJGb3JtLmRpcnR5XCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZUNvbmZpZ109XCJuYW1lZEZpbHRlckF1dG9jb21wbGV0ZUNvbmZpZ1wiXG4gICAgICAgIFtmaWx0ZXJJbXBvcnRDYWxsYmFja109XCJmaWx0ZXJJbXBvcnRDYWxsYmFja1wiXG4gICAgICAgIChmaWx0ZXJTZWxlY3RlZCk9XCJzZXRGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgIFtkZXRlY3RDaGFuZ2VPblNlbGVjdEZpbHRlcl09XCJ0cnVlXCJcbiAgICAgID48L2FwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3I+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgfVxuPC9hcHAtdG9vbGJhcj5cbjxpb24tY29udGVudD5cbiAgPGlvbi1ncmlkPlxuICAgIDxpb24tcm93PlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24tY2FyZD5cbiAgICAgICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5EdW1teSBmaWx0ZXI8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIEBpZiAobW9iaWxlKSB7XG4gICAgICAgICAgICAgIDxhcHAtbmFtZWQtZmlsdGVyLXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy1yaWdodCBpb24tcGFkZGluZy10b3BcIlxuICAgICAgICAgICAgICAgIFtlbnRpdHlOYW1lXT1cIidEdW1teUVudGl0eSdcIlxuICAgICAgICAgICAgICAgIFtzdWJzY3JpcHRTaXppbmddPVwiJ2R5bmFtaWMnXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyQ29udGVudFByb3ZpZGVyXT1cIm5hbWVkRmlsdGVyQ29udGVudFByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyRm9ybURpcnR5XT1cImZpbHRlckZvcm0uZGlydHlcIlxuICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVDb25maWddPVwibmFtZWRGaWx0ZXJBdXRvY29tcGxldGVDb25maWdcIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJJbXBvcnRDYWxsYmFja109XCJmaWx0ZXJJbXBvcnRDYWxsYmFja1wiXG4gICAgICAgICAgICAgICAgKGZpbHRlclNlbGVjdGVkKT1cInNldEZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGV0ZWN0Q2hhbmdlT25TZWxlY3RGaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2FwcC1uYW1lZC1maWx0ZXItc2VsZWN0b3I+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIiBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyLWFcIj5GaWx0ZXIgQSZuYnNwOzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImZpbHRlci1hXCIgbmFtZT1cImZpbHRlci1hXCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlsdGVyQVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWx0ZXItYlwiPkZpbHRlciBCJm5ic3A7PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZmlsdGVyLWJcIiBuYW1lPVwiZmlsdGVyLWJcIiBmb3JtQ29udHJvbE5hbWU9XCJmaWx0ZXJCXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlci1hXCI+RmlsdGVyIEMmbmJzcDs8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJmaWx0ZXItY1wiIG5hbWU9XCJmaWx0ZXItY1wiIGZvcm1Db250cm9sTmFtZT1cImZpbHRlckNcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICA8L2lvbi1ncmlkPlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -13,11 +13,11 @@ const routes = [
13
13
  },
14
14
  ];
15
15
  export class NamedFilterSelectorTestingModule {
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelectorTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelectorTestingModule, declarations: [NamedFilterSelectorTestingPage], imports: [CommonModule, i1.RouterModule, SharedModule], exports: [RouterModule, NamedFilterSelectorTestingPage] });
18
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelectorTestingModule, imports: [CommonModule, RouterModule.forChild(routes), SharedModule, RouterModule] });
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelectorTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelectorTestingModule, declarations: [NamedFilterSelectorTestingPage], imports: [CommonModule, i1.RouterModule, SharedModule], exports: [RouterModule, NamedFilterSelectorTestingPage] });
18
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelectorTestingModule, imports: [CommonModule, RouterModule.forChild(routes), SharedModule, RouterModule] });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NamedFilterSelectorTestingModule, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NamedFilterSelectorTestingModule, decorators: [{
21
21
  type: NgModule,
22
22
  args: [{
23
23
  imports: [CommonModule, RouterModule.forChild(routes), SharedModule],
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
25
25
  exports: [RouterModule, NamedFilterSelectorTestingPage],
26
26
  }]
27
27
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL3Rlc3RpbmcvbmFtZWQtZmlsdGVyLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUV6QyxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLDhCQUE4QjtLQUMxQztDQUNGLENBQUM7QUFPRixNQUFNLE9BQU8sZ0NBQWdDO3VHQUFoQyxnQ0FBZ0M7d0dBQWhDLGdDQUFnQyxpQkFINUIsOEJBQThCLGFBRG5DLFlBQVksbUJBQWlDLFlBQVksYUFFekQsWUFBWSxFQUFFLDhCQUE4Qjt3R0FFM0MsZ0NBQWdDLFlBSmpDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFFekQsWUFBWTs7MkZBRVgsZ0NBQWdDO2tCQUw1QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQztvQkFDcEUsWUFBWSxFQUFFLENBQUMsOEJBQThCLENBQUM7b0JBQzlDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSw4QkFBOEIsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IE5hbWVkRmlsdGVyU2VsZWN0b3JUZXN0aW5nUGFnZSB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLnRlc3RpbmcnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ25hbWUtZmlsdGVyLXNlbGVjdG9yJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE5hbWVkRmlsdGVyU2VsZWN0b3JUZXN0aW5nUGFnZSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLCBTaGFyZWRNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ1BhZ2VdLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlLCBOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ1BhZ2VdLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ01vZHVsZSB7fVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL3Rlc3RpbmcvbmFtZWQtZmlsdGVyLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUV6QyxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLDhCQUE4QjtLQUMxQztDQUNGLENBQUM7QUFPRixNQUFNLE9BQU8sZ0NBQWdDO3dHQUFoQyxnQ0FBZ0M7eUdBQWhDLGdDQUFnQyxpQkFINUIsOEJBQThCLGFBRG5DLFlBQVksbUJBQWlDLFlBQVksYUFFekQsWUFBWSxFQUFFLDhCQUE4Qjt5R0FFM0MsZ0NBQWdDLFlBSmpDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFFekQsWUFBWTs7NEZBRVgsZ0NBQWdDO2tCQUw1QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQztvQkFDcEUsWUFBWSxFQUFFLENBQUMsOEJBQThCLENBQUM7b0JBQzlDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSw4QkFBOEIsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IE5hbWVkRmlsdGVyU2VsZWN0b3JUZXN0aW5nUGFnZSB9IGZyb20gJy4vbmFtZWQtZmlsdGVyLXNlbGVjdG9yLnRlc3RpbmcnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ25hbWUtZmlsdGVyLXNlbGVjdG9yJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IE5hbWVkRmlsdGVyU2VsZWN0b3JUZXN0aW5nUGFnZSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLCBTaGFyZWRNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ1BhZ2VdLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlLCBOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ1BhZ2VdLFxufSlcbmV4cG9ydCBjbGFzcyBOYW1lZEZpbHRlclNlbGVjdG9yVGVzdGluZ01vZHVsZSB7fVxuIl19