@sumaris-net/ngx-components 2.4.85 → 2.4.86

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 (231) hide show
  1. package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
  2. package/esm2020/src/app/admin/admin.module.mjs +5 -5
  3. package/esm2020/src/app/admin/services/person.service.mjs +4 -4
  4. package/esm2020/src/app/admin/services/validator/person.validator.mjs +4 -4
  5. package/esm2020/src/app/admin/users/users.mjs +4 -4
  6. package/esm2020/src/app/admin/users/users.module.mjs +5 -5
  7. package/esm2020/src/app/core/about/about.modal.mjs +4 -4
  8. package/esm2020/src/app/core/about/about.module.mjs +5 -5
  9. package/esm2020/src/app/core/account/account.module.mjs +5 -5
  10. package/esm2020/src/app/core/account/account.page.mjs +4 -4
  11. package/esm2020/src/app/core/auth/auth.form.mjs +4 -4
  12. package/esm2020/src/app/core/auth/auth.modal.mjs +4 -4
  13. package/esm2020/src/app/core/auth/auth.module.mjs +5 -5
  14. package/esm2020/src/app/core/core.module.mjs +5 -5
  15. package/esm2020/src/app/core/core.testing.module.mjs +5 -5
  16. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +4 -4
  17. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +5 -5
  18. package/esm2020/src/app/core/form/entity/editor.class.mjs +7 -7
  19. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +4 -4
  20. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +49 -39
  21. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +4 -4
  22. package/esm2020/src/app/core/form/entity/entity.module.mjs +5 -5
  23. package/esm2020/src/app/core/form/form.class.mjs +4 -4
  24. package/esm2020/src/app/core/form/form.module.mjs +5 -5
  25. package/esm2020/src/app/core/form/list/list.form.mjs +4 -4
  26. package/esm2020/src/app/core/form/list/list.module.mjs +5 -5
  27. package/esm2020/src/app/core/form/properties/properties.form.mjs +4 -4
  28. package/esm2020/src/app/core/form/properties/properties.module.mjs +5 -5
  29. package/esm2020/src/app/core/form/properties/property.validator.mjs +4 -4
  30. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +4 -4
  31. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +5 -5
  32. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +4 -4
  33. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +5 -5
  34. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +4 -4
  35. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +4 -4
  36. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +5 -5
  37. package/esm2020/src/app/core/graphql/graphql.module.mjs +5 -5
  38. package/esm2020/src/app/core/graphql/graphql.service.mjs +4 -4
  39. package/esm2020/src/app/core/home/home.mjs +5 -5
  40. package/esm2020/src/app/core/home/home.module.mjs +5 -5
  41. package/esm2020/src/app/core/icon/icon.component.mjs +4 -4
  42. package/esm2020/src/app/core/icon/icon.module.mjs +5 -5
  43. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +4 -4
  44. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +5 -5
  45. package/esm2020/src/app/core/menu/menu.component.mjs +4 -4
  46. package/esm2020/src/app/core/menu/menu.module.mjs +5 -5
  47. package/esm2020/src/app/core/menu/menu.service.mjs +4 -4
  48. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +4 -4
  49. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +5 -5
  50. package/esm2020/src/app/core/peer/select-peer.modal.mjs +4 -4
  51. package/esm2020/src/app/core/peer/select-peer.module.mjs +5 -5
  52. package/esm2020/src/app/core/register/register-confirm.page.mjs +4 -4
  53. package/esm2020/src/app/core/register/register.form.mjs +4 -4
  54. package/esm2020/src/app/core/register/register.modal.mjs +4 -4
  55. package/esm2020/src/app/core/register/register.module.mjs +5 -5
  56. package/esm2020/src/app/core/services/account.service.mjs +9 -4
  57. package/esm2020/src/app/core/services/auth-guard.service.mjs +4 -4
  58. package/esm2020/src/app/core/services/base-entity-service.class.mjs +4 -4
  59. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +4 -4
  60. package/esm2020/src/app/core/services/config.service.mjs +4 -4
  61. package/esm2020/src/app/core/services/crypto.service.mjs +4 -4
  62. package/esm2020/src/app/core/services/local-settings.service.mjs +10 -10
  63. package/esm2020/src/app/core/services/model/config.model.mjs +3 -3
  64. package/esm2020/src/app/core/services/network.service.mjs +4 -4
  65. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +9 -9
  66. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  67. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  68. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  69. package/esm2020/src/app/core/services/platform.service.mjs +4 -4
  70. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +4 -4
  71. package/esm2020/src/app/core/services/testing/referential.validator.mjs +4 -4
  72. package/esm2020/src/app/core/services/validator/account.validator.mjs +4 -4
  73. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +4 -4
  74. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +4 -4
  75. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  76. package/esm2020/src/app/core/settings/settings.module.mjs +5 -5
  77. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  78. package/esm2020/src/app/core/table/actions-column.component.mjs +4 -4
  79. package/esm2020/src/app/core/table/async-table.class.mjs +4 -4
  80. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +4 -4
  81. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +4 -4
  82. package/esm2020/src/app/core/table/memory-table.class.mjs +4 -4
  83. package/esm2020/src/app/core/table/table-select-columns.component.mjs +4 -4
  84. package/esm2020/src/app/core/table/table.class.mjs +4 -4
  85. package/esm2020/src/app/core/table/table.module.mjs +5 -5
  86. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +4 -4
  87. package/esm2020/src/app/core/table/testing/table.testing.mjs +4 -4
  88. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +5 -5
  89. package/esm2020/src/app/shared/audio/audio.mjs +4 -4
  90. package/esm2020/src/app/shared/audio/audio.testing.mjs +4 -4
  91. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +5 -5
  92. package/esm2020/src/app/shared/capacitor/keyboard.mjs +4 -4
  93. package/esm2020/src/app/shared/debug/debug.component.mjs +4 -4
  94. package/esm2020/src/app/shared/debug/debug.module.mjs +5 -5
  95. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +4 -4
  96. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +4 -4
  97. package/esm2020/src/app/shared/directives/directives.module.mjs +5 -5
  98. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  99. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +4 -4
  100. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  101. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  102. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  103. package/esm2020/src/app/shared/file/file.service.mjs +4 -4
  104. package/esm2020/src/app/shared/form/field.component.mjs +4 -4
  105. package/esm2020/src/app/shared/form/loading-spinner.mjs +4 -4
  106. package/esm2020/src/app/shared/functions.mjs +4 -1
  107. package/esm2020/src/app/shared/gesture/gesture-config.mjs +4 -4
  108. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  109. package/esm2020/src/app/shared/help/help.modal.mjs +4 -4
  110. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +4 -4
  111. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +4 -4
  112. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +5 -5
  113. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +4 -4
  114. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +5 -5
  115. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +4 -4
  116. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +4 -4
  117. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +5 -5
  118. package/esm2020/src/app/shared/image/image.module.mjs +5 -5
  119. package/esm2020/src/app/shared/image/image.service.mjs +4 -4
  120. package/esm2020/src/app/shared/logging/logging-service.class.mjs +4 -4
  121. package/esm2020/src/app/shared/logging/logging-service.module.mjs +5 -5
  122. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +4 -4
  123. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +5 -5
  124. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +4 -4
  125. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +4 -4
  126. package/esm2020/src/app/shared/material/badge/badge.module.mjs +5 -5
  127. package/esm2020/src/app/shared/material/badge/badge.test.mjs +4 -4
  128. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +5 -5
  129. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +4 -4
  130. package/esm2020/src/app/shared/material/chips/chips.module.mjs +5 -5
  131. package/esm2020/src/app/shared/material/chips/material.chips.mjs +4 -4
  132. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +4 -4
  133. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  134. package/esm2020/src/app/shared/material/datetime/material.date.mjs +4 -4
  135. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +4 -4
  136. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +4 -4
  137. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +4 -4
  138. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +4 -4
  139. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +4 -4
  140. package/esm2020/src/app/shared/material/duration/duration.module.mjs +5 -5
  141. package/esm2020/src/app/shared/material/duration/material.duration.mjs +4 -4
  142. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +4 -4
  143. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  144. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +4 -4
  145. package/esm2020/src/app/shared/material/material.module.mjs +5 -5
  146. package/esm2020/src/app/shared/material/material.testing.module.mjs +5 -5
  147. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +4 -4
  148. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +4 -4
  149. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +4 -4
  150. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +4 -4
  151. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +4 -4
  152. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +4 -4
  153. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +5 -5
  154. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +4 -4
  155. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +4 -4
  156. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  157. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +4 -4
  158. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +5 -5
  159. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +4 -4
  160. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  161. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +4 -4
  162. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +5 -5
  163. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +7 -7
  164. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +5 -5
  165. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +5 -5
  166. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +4 -4
  167. package/esm2020/src/app/shared/pipes/form.pipes.mjs +19 -19
  168. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  169. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +10 -10
  170. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +13 -13
  171. package/esm2020/src/app/shared/pipes/math.pipes.mjs +13 -13
  172. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +4 -4
  173. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  174. package/esm2020/src/app/shared/pipes/pipes.module.mjs +5 -5
  175. package/esm2020/src/app/shared/pipes/property.pipes.mjs +8 -8
  176. package/esm2020/src/app/shared/pipes/string.pipes.mjs +22 -22
  177. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +9 -9
  178. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +4 -4
  179. package/esm2020/src/app/shared/services/progress-bar.service.mjs +4 -4
  180. package/esm2020/src/app/shared/services/startable-service.class.mjs +6 -1
  181. package/esm2020/src/app/shared/services/translate-context.service.mjs +4 -4
  182. package/esm2020/src/app/shared/shared-routing.module.mjs +8 -8
  183. package/esm2020/src/app/shared/shared.module.mjs +5 -5
  184. package/esm2020/src/app/shared/shared.testing.module.mjs +5 -5
  185. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +4 -4
  186. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +5 -5
  187. package/esm2020/src/app/shared/storage/storage.service.mjs +4 -4
  188. package/esm2020/src/app/shared/testing/observable.test.mjs +4 -4
  189. package/esm2020/src/app/shared/testing/tests.page.mjs +4 -4
  190. package/esm2020/src/app/shared/toast/toast.testing.mjs +6 -6
  191. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +5 -5
  192. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +4 -4
  193. package/esm2020/src/app/shared/toolbar/toolbar.mjs +5 -5
  194. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +5 -5
  195. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +4 -4
  196. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +5 -5
  197. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +4 -4
  198. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +4 -4
  199. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +4 -4
  200. package/esm2020/src/app/social/job/job.module.mjs +5 -5
  201. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +4 -4
  202. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +4 -4
  203. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +4 -4
  204. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +4 -4
  205. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +4 -4
  206. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +5 -5
  207. package/esm2020/src/app/social/message/message.form.mjs +4 -4
  208. package/esm2020/src/app/social/message/message.modal.mjs +4 -4
  209. package/esm2020/src/app/social/message/message.module.mjs +5 -5
  210. package/esm2020/src/app/social/message/message.service.mjs +4 -4
  211. package/esm2020/src/app/social/social.module.mjs +5 -5
  212. package/esm2020/src/app/social/social.testing.module.mjs +5 -5
  213. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +4 -4
  214. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +4 -4
  215. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +4 -4
  216. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +5 -5
  217. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +4 -4
  218. package/esm2020/src/app/social/user-event/user-event.module.mjs +5 -5
  219. package/esm2020/src/app/social/user-event/user-event.service.mjs +4 -4
  220. package/fesm2015/sumaris-net.ngx-components.mjs +898 -871
  221. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  222. package/fesm2020/sumaris-net.ngx-components.mjs +891 -869
  223. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  224. package/package.json +1 -1
  225. package/src/app/core/form/entity/entity-editor.class.d.ts +33 -29
  226. package/src/app/core/services/account.service.d.ts +5 -0
  227. package/src/app/core/services/local-settings.service.d.ts +1 -1
  228. package/src/app/core/services/platform.service.d.ts +2 -2
  229. package/src/app/shared/file/file.utils.d.ts +1 -1
  230. package/src/app/shared/functions.d.ts +1 -0
  231. package/src/app/shared/services/startable-service.class.d.ts +1 -0
@@ -320,9 +320,9 @@ export class AppForm {
320
320
  }
321
321
  }
322
322
  }
323
- AppForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormGroup }], target: i0.ɵɵFactoryTarget.Directive });
324
- AppForm.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AppForm, inputs: { debug: "debug", tabindex: "tabindex", errorTranslatorOptions: "errorTranslatorOptions", form: "form" }, outputs: { onCancel: "onCancel", onSubmit: "onSubmit" }, ngImport: i0 });
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppForm, decorators: [{
323
+ AppForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormGroup }], target: i0.ɵɵFactoryTarget.Directive });
324
+ AppForm.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: AppForm, inputs: { debug: "debug", tabindex: "tabindex", errorTranslatorOptions: "errorTranslatorOptions", form: "form" }, outputs: { onCancel: "onCancel", onSubmit: "onSubmit" }, ngImport: i0 });
325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppForm, decorators: [{
326
326
  type: Directive
327
327
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.UntypedFormGroup }]; }, propDecorators: { debug: [{
328
328
  type: Input
@@ -337,4 +337,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
337
337
  }], onSubmit: [{
338
338
  type: Output
339
339
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQW9CLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxZQUFZLEVBQWtCLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxtQkFBbUIsRUFBeUQsTUFBTSxpREFBaUQsQ0FBQztBQUM1SSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsMkJBQTJCLEVBQTZELE1BQU0saUVBQWlFLENBQUM7OztBQUd4SyxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixPQUFPO0lBa0ozQixZQUNFLFFBQWtCLEVBQ2xCLElBQXVCO1FBbEpqQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHakMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUd0QixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFJL0MsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3BELGlCQUFZLEdBQUcs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S0FBSyxLQUFLLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQztJQUVTLFlBQVk7UUFDcEIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0VBQXNFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsNEJBQTRCO0lBRXBCLFVBQVUsQ0FBQyxLQUFjLEVBQUUsSUFBNEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUc7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDOztxR0FuWW1CLE9BQU87eUZBQVAsT0FBTzs0RkFBUCxPQUFPO2tCQUY1QixTQUFTOzhIQW9JQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0YsSUFBSTtzQkFEUCxLQUFLO2dCQVNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcHBGb3JtVXRpbHMsIElBcHBGb3JtLCBPblJlYWR5fSBmcm9tICcuL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtMb2NhbFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge3dhaXRGb3JGYWxzZSwgV2FpdEZvck9wdGlvbnMsIHdhaXRGb3JUcnVlfSBmcm9tICcuLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtGb3JtRXJyb3JUcmFuc2xhdG9yLCBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucywgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3J9IGZyb20gJy4uLy4uL3NoYXJlZC92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIsIE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9ucywgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWd9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwRm9ybTxUPiBpbXBsZW1lbnRzIElBcHBGb3JtLCBPbkluaXQsIE9uRGVzdHJveSwgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3Ige1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBwcm90ZWN0ZWQgX2VuYWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZXJyb3JUcmFuc2xhdG9yOiBGb3JtRXJyb3JUcmFuc2xhdG9yO1xuICBwcm90ZWN0ZWQgaTE4bkZpZWxkUHJlZml4OiBzdHJpbmcgPSBudWxsO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZUhlbHBlcjogTWF0QXV0b2NvbXBsZXRlQ29uZmlnSG9sZGVyO1xuICByZWFkb25seSBhdXRvY29tcGxldGVGaWVsZHM6IHtba2V5OiBzdHJpbmddOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZ307XG4gIHJlYWRvbmx5IHJlYWR5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGVycm9yU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiAgQGRlcHJlY2F0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzZXQgX2xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuICAvKipcbiAgICogIEBkZXByZWNhdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF8kcmVhZHkoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVN1YmplY3Q7XG4gIH1cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfJGxvYWRpbmcoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdDtcbiAgfVxuXG4gIGdldCBlcnJvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRFcnJvcihlcnJvcik7XG4gIH1cblxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBsb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LmRpcnR5IHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLmludmFsaWQ7XG4gIH1cblxuICBnZXQgcGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAodGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuZm9ybS5wZW5kaW5nKTtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAoIXRoaXMuZm9ybS5kaXJ0eSAmJiAhdGhpcy5mb3JtLnRvdWNoZWQpO1xuICB9XG5cbiAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8udG91Y2hlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCB1bnRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLnVudG91Y2hlZDtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGU7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9lbmFibGU7XG4gIH1cblxuICBkaXNhYmxlKG9wdHM/OiB7XG4gICAgb25seVNlbGY/OiBib29sZWFuO1xuICAgIGVtaXRFdmVudD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0/LmRpc2FibGUob3B0cyk7XG4gICAgaWYgKHRoaXMuX2VuYWJsZSkge1xuICAgICAgdGhpcy5fZW5hYmxlID0gZmFsc2U7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGVuYWJsZShvcHRzPzoge1xuICAgIG9ubHlTZWxmPzogYm9vbGVhbjtcbiAgICBlbWl0RXZlbnQ/OiBib29sZWFuO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtPy5lbmFibGUob3B0cyk7XG4gICAgaWYgKCF0aGlzLl9lbmFibGUpIHtcbiAgICAgIHRoaXMuX2VuYWJsZSA9IHRydWU7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdHJveVN1YmplY3Q/LmNsb3NlZCAhPT0gZmFsc2VcbiAgfVxuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRhYmluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGVycm9yVHJhbnNsYXRvck9wdGlvbnM6IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtKHZhbHVlOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5zZXRGb3JtKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBmb3JtKCk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZm9ybT86IFVudHlwZWRGb3JtR3JvdXBcbiAgKSB7XG4gICAgaWYgKGZvcm0pIHRoaXMuc2V0Rm9ybShmb3JtKTtcbiAgICB0aGlzLnRyYW5zbGF0ZSA9IGluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLnNldHRpbmdzID0gaW5qZWN0b3IuZ2V0KExvY2FsU2V0dGluZ3NTZXJ2aWNlKTtcbiAgICB0aGlzLmVycm9yVHJhbnNsYXRvciA9IGluamVjdG9yLmdldChGb3JtRXJyb3JUcmFuc2xhdG9yKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUhlbHBlciA9IG5ldyBNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIodGhpcy5zZXR0aW5ncyAmJiB7XG4gICAgICBnZXRVc2VyQXR0cmlidXRlczogKGEsIGIpID0+IHRoaXMuc2V0dGluZ3MuZ2V0RmllbGREaXNwbGF5QXR0cmlidXRlcyhhLCBiKVxuICAgIH0pO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGRzID0gdGhpcy5hdXRvY29tcGxldGVIZWxwZXIuZmllbGRzO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fZW5hYmxlID8gdGhpcy5lbmFibGUoKSA6IHRoaXMuZGlzYWJsZSgpO1xuICAgIHRoaXMuZXJyb3JUcmFuc2xhdG9yT3B0aW9ucyA9IHRoaXMuZXJyb3JUcmFuc2xhdG9yT3B0aW9ucyB8fCB7XG4gICAgICBjb250cm9sUGF0aFRyYW5zbGF0b3I6IHRoaXNcbiAgICB9O1xuXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMucmVhZHlTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZXJyb3JTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vbkNhbmNlbC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25TdWJtaXQudW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZGVzdHJveVN1YmplY3QubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveVN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGFzeW5jIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICogQHBhcmFtIG9wdHMgYWxsb3cgdG8gc2tpcCB2YWxpZGF0aW9uIGNoZWNrLCB1c2luZyB7Y2hlY2tWYWxpZDogZmFsc2V9XG4gICAqL1xuICBhc3luYyBkb1N1Ym1pdChldmVudDogYW55LCBvcHRzPzoge2NoZWNrVmFsaWQ/OiBib29sZWFuO30pIHtcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCh7ZW1pdEV2ZW50OiB0cnVlfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdmFsaWQgKGlmIG5vdCBkaXNhYmxlZClcbiAgICBpZiAoKCFvcHRzIHx8IG9wdHMuY2hlY2tWYWxpZCAhPT0gZmFsc2UpICYmICF0aGlzLl9mb3JtLnZhbGlkKSB7XG5cbiAgICAgIC8vIFdhaXQgdmFsaWRhdGlvbiBlbmRcbiAgICAgIGF3YWl0IEFwcEZvcm1VdGlscy53YWl0V2hpbGVQZW5kaW5nKHRoaXMuX2Zvcm0pO1xuXG4gICAgICAvLyBGb3JtIGlzIGludmFsaWQ6IGV4aXQgKCsgbG9nIGlmIGRlYnVnKVxuICAgICAgaWYgKHRoaXMuX2Zvcm0uaW52YWxpZCkge1xuICAgICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQoe2VtaXRFdmVudDogdHJ1ZX0pO1xuICAgICAgICBpZiAodGhpcy5kZWJ1ZykgQXBwRm9ybVV0aWxzLmxvZ0Zvcm1FcnJvcnModGhpcy5fZm9ybSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbWl0IGV2ZW50XG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNldEZvcm0oZm9ybTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGlmICh0aGlzLl9mb3JtICE9PSBmb3JtKSB7XG4gICAgICB0aGlzLl9mb3JtID0gZm9ybTtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuX2Zvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoc3RhdHVzID0+IHRoaXMubWFya0ZvckNoZWNrKCkpKTtcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBULCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW47IG9ubHlTZWxmPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB8IHZvaWQge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgY29uc29sZS53YXJuKCdbZm9ybV0gVHJ5aW5nIHRvIHNldCBhbiBlbXB0eSB2YWx1ZSB0byBmb3JtLiBTa2lwcGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERFQlVHXG4gICAgLy9pZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2Zvcm1dIFVwZGF0aW5nIGZvcm0gKHVzaW5nIGVudGl0eSknLCBkYXRhKTtcblxuICAgIC8vIENvbnZlcnQgb2JqZWN0IHRvIGpzb24sIHRoZW4gYXBwbHkgaXQgdG8gZm9ybSAoZS5nLiBjb252ZXJ0ICd1bmRlZmluZWQnIGludG8gJ251bGwnKVxuICAgIEFwcEZvcm1VdGlscy5jb3B5RW50aXR5MkZvcm0oZGF0YSwgdGhpcy5mb3JtLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUsIC4uLm9wdHN9KTtcblxuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZXNldChkYXRhPzogVCwgb3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFuOyBvbmx5U2VsZj86IGJvb2xlYW4gfSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2Zvcm1dIFJlc2V0dGluZyBmb3JtICh1c2luZyBlbnRpdHkpJywgZGF0YSk7XG5cbiAgICAgIC8vIENvbnZlcnQgb2JqZWN0IHRvIGpzb24sIHRoZW4gYXBwbHkgaXQgdG8gZm9ybSAoZS5nLiBjb252ZXJ0ICd1bmRlZmluZWQnIGludG8gJ251bGwnKVxuICAgICAgY29uc3QganNvbiA9IEFwcEZvcm1VdGlscy5nZXRGb3JtVmFsdWVGcm9tRW50aXR5KGRhdGEsIHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLmZvcm0ucmVzZXQoanNvbiwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KHVuZGVmaW5lZCwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSB0cnVlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZShvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzVW50b3VjaGVkKG9wdHM/OiB7b25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuO30pIHtcbiAgICB0aGlzLmZvcm0ubWFya0FzVW50b3VjaGVkKG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgcHJlZmVyIHRvIHVzZSBtYXJrQWxsQXNUb3VjaGVkKClcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIC8vIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCkgLy8gVGhpcyBpcyBub3Qgd29ya2luZyB3ZWxsIChlLmcuIGluIFRyaXBGb3JtKVxuICAgIGNvbnNvbGUud2FybignVE9ETzogUmVwbGFjZSB0aGlzIGNhbGwgYnkgbWFya0FsbEFzVG91Y2hlZCgpIC0gYmVjYXVzZSBvZiBjaGFuZ2VzIGluIG5neC1jb21wb25lbnRzID49IDAuMTYuMCcpO1xuICAgIEFwcEZvcm1VdGlscy5tYXJrQXNUb3VjaGVkKHRoaXMuZm9ybSwgb3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG1hcmtBbGxBc1RvdWNoZWQob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgLy8gdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKSAvLyBUaGlzIGlzIG5vdCB3b3JraW5nIHdlbGwgKGUuZy4gaW4gVHJpcEZvcm0pXG4gICAgQXBwRm9ybVV0aWxzLm1hcmtBbGxBc1RvdWNoZWQodGhpcy5mb3JtLCBvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzRGlydHkob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eShvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzTG9hZGluZyhvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgdGhpcy5zZXRMb2FkaW5nKHRydWUsIG9wdHMpO1xuICB9XG5cbiAgbWFya0FzTG9hZGVkKG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UsIG9wdHMpO1xuICB9XG5cbiAgbWFya0FzUmVhZHkob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIGlmICh0aGlzLnJlYWR5U3ViamVjdC52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5yZWFkeVN1YmplY3QubmV4dCh0cnVlKTtcblxuICAgICAgLy8gSWYgc3ViY2xhc3NlcyBpbXBsZW1lbnRzIE9uUmVhZHlcbiAgICAgIGlmICh0eXBlb2YgdGhpc1snbmdPblJlYWR5J10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgKHRoaXMgYXMgYW55IGFzIE9uUmVhZHkpLm5nT25SZWFkeSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0IGZvcm0gaXMgcmVhZHlcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIHJlYWR5KG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnJlYWR5U3ViamVjdC52YWx1ZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIHJldHVybiB3YWl0Rm9yVHJ1ZSh0aGlzLnJlYWR5U3ViamVjdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogV2FpdCBmb3JtIGlzIG5vdCBidXN5ICg9bG9hZGVkKVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgcmV0dXJuIHdhaXRGb3JGYWxzZSh0aGlzLmxvYWRpbmdTdWJqZWN0LCBvcHRzKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkob3B0cz86IHtcbiAgICBvbmx5U2VsZj86IGJvb2xlYW47XG4gICAgZW1pdEV2ZW50PzogYm9vbGVhbjtcbiAgfSkge1xuICAgIEFwcEZvcm1VdGlscy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHRoaXMuZm9ybSwgb3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHRyYW5zbGF0ZUNvbnRyb2xQYXRoKHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGkxOG5GaWVsZE5hbWUgPSB0aGlzLmdldEkxOG5GaWVsZE5hbWUocGF0aCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlPy5pbnN0YW50KGkxOG5GaWVsZE5hbWUpIHx8IGkxOG5GaWVsZE5hbWU7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBnZXRGb3JtRXJyb3IoZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoIWZvcm0gfHwgIXRoaXMuZXJyb3JUcmFuc2xhdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLmVycm9yVHJhbnNsYXRvci50cmFuc2xhdGVGb3JtRXJyb3JzKHRoaXMuZm9ybSwge1xuICAgICAgY29udHJvbFBhdGhUcmFuc2xhdG9yOiB0aGlzLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEkxOG5GaWVsZE5hbWUocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLmkxOG5GaWVsZFByZWZpeCB8fCAnJykgKyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKHBhdGgpLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1Yik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdW5yZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5yZW1vdmUoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlckF1dG9jb21wbGV0ZUZpZWxkPEUgPSBhbnksIEVGID0gYW55PihmaWVsZE5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cz86IE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9uczxFLCBFRj4pOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZzxFLCBFRj4ge1xuICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZUhlbHBlci5hZGQoZmllbGROYW1lLCBvcHRzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRFcnJvcih2YWx1ZTogc3RyaW5nLCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIGlmICh0aGlzLmVycm9yU3ViamVjdC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgLy8gU2hvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IHN1YmNsYXNzZXNcbiAgICBjb25zb2xlLndhcm4oJ21hcmtGb3JDaGVjaygpIGhhcyBiZWVuIGNhbGxlZCwgYnV0IGlzIG5vdCBvdmVyd3JpdHRlbiBieSBjb21wb25lbnQgJyArIHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIH1cblxuICAvKiAtLSBwcml2YXRlIGZ1bmN0aW9uIC0tICovXG5cbiAgcHJpdmF0ZSBzZXRMb2FkaW5nKHZhbHVlOiBib29sZWFuLCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUgIT09IHZhbHVlKSAge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHZhbHVlKTtcblxuICAgICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQW9CLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxZQUFZLEVBQWtCLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxtQkFBbUIsRUFBeUQsTUFBTSxpREFBaUQsQ0FBQztBQUM1SSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsMkJBQTJCLEVBQTZELE1BQU0saUVBQWlFLENBQUM7OztBQUd4SyxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixPQUFPO0lBa0ozQixZQUNFLFFBQWtCLEVBQ2xCLElBQXVCO1FBbEpqQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHakMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUd0QixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFJL0MsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3BELGlCQUFZLEdBQUcs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S0FBSyxLQUFLLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQztJQUVTLFlBQVk7UUFDcEIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0VBQXNFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsNEJBQTRCO0lBRXBCLFVBQVUsQ0FBQyxLQUFjLEVBQUUsSUFBNEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUc7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDOztvR0FuWW1CLE9BQU87d0ZBQVAsT0FBTzsyRkFBUCxPQUFPO2tCQUY1QixTQUFTOzhIQW9JQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0YsSUFBSTtzQkFEUCxLQUFLO2dCQVNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcHBGb3JtVXRpbHMsIElBcHBGb3JtLCBPblJlYWR5fSBmcm9tICcuL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtMb2NhbFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge3dhaXRGb3JGYWxzZSwgV2FpdEZvck9wdGlvbnMsIHdhaXRGb3JUcnVlfSBmcm9tICcuLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtGb3JtRXJyb3JUcmFuc2xhdG9yLCBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucywgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3J9IGZyb20gJy4uLy4uL3NoYXJlZC92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIsIE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9ucywgTWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWd9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwRm9ybTxUPiBpbXBsZW1lbnRzIElBcHBGb3JtLCBPbkluaXQsIE9uRGVzdHJveSwgSUZvcm1Db250cm9sUGF0aFRyYW5zbGF0b3Ige1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBwcm90ZWN0ZWQgX2VuYWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZXJyb3JUcmFuc2xhdG9yOiBGb3JtRXJyb3JUcmFuc2xhdG9yO1xuICBwcm90ZWN0ZWQgaTE4bkZpZWxkUHJlZml4OiBzdHJpbmcgPSBudWxsO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZUhlbHBlcjogTWF0QXV0b2NvbXBsZXRlQ29uZmlnSG9sZGVyO1xuICByZWFkb25seSBhdXRvY29tcGxldGVGaWVsZHM6IHtba2V5OiBzdHJpbmddOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZ307XG4gIHJlYWRvbmx5IHJlYWR5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGVycm9yU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiAgQGRlcHJlY2F0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzZXQgX2xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuICAvKipcbiAgICogIEBkZXByZWNhdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF8kcmVhZHkoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVN1YmplY3Q7XG4gIH1cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfJGxvYWRpbmcoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdDtcbiAgfVxuXG4gIGdldCBlcnJvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRFcnJvcihlcnJvcik7XG4gIH1cblxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBsb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LmRpcnR5IHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLmludmFsaWQ7XG4gIH1cblxuICBnZXQgcGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAodGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuZm9ybS5wZW5kaW5nKTtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZm9ybSB8fCAoIXRoaXMuZm9ybS5kaXJ0eSAmJiAhdGhpcy5mb3JtLnRvdWNoZWQpO1xuICB9XG5cbiAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8udG91Y2hlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCB1bnRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0gfHwgdGhpcy5mb3JtLnVudG91Y2hlZDtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGU7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9lbmFibGU7XG4gIH1cblxuICBkaXNhYmxlKG9wdHM/OiB7XG4gICAgb25seVNlbGY/OiBib29sZWFuO1xuICAgIGVtaXRFdmVudD86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0/LmRpc2FibGUob3B0cyk7XG4gICAgaWYgKHRoaXMuX2VuYWJsZSkge1xuICAgICAgdGhpcy5fZW5hYmxlID0gZmFsc2U7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGVuYWJsZShvcHRzPzoge1xuICAgIG9ubHlTZWxmPzogYm9vbGVhbjtcbiAgICBlbWl0RXZlbnQ/OiBib29sZWFuO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtPy5lbmFibGUob3B0cyk7XG4gICAgaWYgKCF0aGlzLl9lbmFibGUpIHtcbiAgICAgIHRoaXMuX2VuYWJsZSA9IHRydWU7XG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVzdHJveVN1YmplY3Q/LmNsb3NlZCAhPT0gZmFsc2VcbiAgfVxuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRhYmluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGVycm9yVHJhbnNsYXRvck9wdGlvbnM6IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtKHZhbHVlOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5zZXRGb3JtKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBmb3JtKCk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZm9ybT86IFVudHlwZWRGb3JtR3JvdXBcbiAgKSB7XG4gICAgaWYgKGZvcm0pIHRoaXMuc2V0Rm9ybShmb3JtKTtcbiAgICB0aGlzLnRyYW5zbGF0ZSA9IGluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLnNldHRpbmdzID0gaW5qZWN0b3IuZ2V0KExvY2FsU2V0dGluZ3NTZXJ2aWNlKTtcbiAgICB0aGlzLmVycm9yVHJhbnNsYXRvciA9IGluamVjdG9yLmdldChGb3JtRXJyb3JUcmFuc2xhdG9yKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUhlbHBlciA9IG5ldyBNYXRBdXRvY29tcGxldGVDb25maWdIb2xkZXIodGhpcy5zZXR0aW5ncyAmJiB7XG4gICAgICBnZXRVc2VyQXR0cmlidXRlczogKGEsIGIpID0+IHRoaXMuc2V0dGluZ3MuZ2V0RmllbGREaXNwbGF5QXR0cmlidXRlcyhhLCBiKVxuICAgIH0pO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGRzID0gdGhpcy5hdXRvY29tcGxldGVIZWxwZXIuZmllbGRzO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fZW5hYmxlID8gdGhpcy5lbmFibGUoKSA6IHRoaXMuZGlzYWJsZSgpO1xuICAgIHRoaXMuZXJyb3JUcmFuc2xhdG9yT3B0aW9ucyA9IHRoaXMuZXJyb3JUcmFuc2xhdG9yT3B0aW9ucyB8fCB7XG4gICAgICBjb250cm9sUGF0aFRyYW5zbGF0b3I6IHRoaXNcbiAgICB9O1xuXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMucmVhZHlTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5sb2FkaW5nU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZXJyb3JTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vbkNhbmNlbC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25TdWJtaXQudW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZGVzdHJveVN1YmplY3QubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveVN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGFzeW5jIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICogQHBhcmFtIG9wdHMgYWxsb3cgdG8gc2tpcCB2YWxpZGF0aW9uIGNoZWNrLCB1c2luZyB7Y2hlY2tWYWxpZDogZmFsc2V9XG4gICAqL1xuICBhc3luYyBkb1N1Ym1pdChldmVudDogYW55LCBvcHRzPzoge2NoZWNrVmFsaWQ/OiBib29sZWFuO30pIHtcbiAgICBpZiAoIXRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCh7ZW1pdEV2ZW50OiB0cnVlfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdmFsaWQgKGlmIG5vdCBkaXNhYmxlZClcbiAgICBpZiAoKCFvcHRzIHx8IG9wdHMuY2hlY2tWYWxpZCAhPT0gZmFsc2UpICYmICF0aGlzLl9mb3JtLnZhbGlkKSB7XG5cbiAgICAgIC8vIFdhaXQgdmFsaWRhdGlvbiBlbmRcbiAgICAgIGF3YWl0IEFwcEZvcm1VdGlscy53YWl0V2hpbGVQZW5kaW5nKHRoaXMuX2Zvcm0pO1xuXG4gICAgICAvLyBGb3JtIGlzIGludmFsaWQ6IGV4aXQgKCsgbG9nIGlmIGRlYnVnKVxuICAgICAgaWYgKHRoaXMuX2Zvcm0uaW52YWxpZCkge1xuICAgICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQoe2VtaXRFdmVudDogdHJ1ZX0pO1xuICAgICAgICBpZiAodGhpcy5kZWJ1ZykgQXBwRm9ybVV0aWxzLmxvZ0Zvcm1FcnJvcnModGhpcy5fZm9ybSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbWl0IGV2ZW50XG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNldEZvcm0oZm9ybTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGlmICh0aGlzLl9mb3JtICE9PSBmb3JtKSB7XG4gICAgICB0aGlzLl9mb3JtID0gZm9ybTtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHRoaXMuX2Zvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoc3RhdHVzID0+IHRoaXMubWFya0ZvckNoZWNrKCkpKTtcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBULCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW47IG9ubHlTZWxmPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB8IHZvaWQge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgY29uc29sZS53YXJuKCdbZm9ybV0gVHJ5aW5nIHRvIHNldCBhbiBlbXB0eSB2YWx1ZSB0byBmb3JtLiBTa2lwcGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERFQlVHXG4gICAgLy9pZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2Zvcm1dIFVwZGF0aW5nIGZvcm0gKHVzaW5nIGVudGl0eSknLCBkYXRhKTtcblxuICAgIC8vIENvbnZlcnQgb2JqZWN0IHRvIGpzb24sIHRoZW4gYXBwbHkgaXQgdG8gZm9ybSAoZS5nLiBjb252ZXJ0ICd1bmRlZmluZWQnIGludG8gJ251bGwnKVxuICAgIEFwcEZvcm1VdGlscy5jb3B5RW50aXR5MkZvcm0oZGF0YSwgdGhpcy5mb3JtLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUsIC4uLm9wdHN9KTtcblxuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZXNldChkYXRhPzogVCwgb3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFuOyBvbmx5U2VsZj86IGJvb2xlYW4gfSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2Zvcm1dIFJlc2V0dGluZyBmb3JtICh1c2luZyBlbnRpdHkpJywgZGF0YSk7XG5cbiAgICAgIC8vIENvbnZlcnQgb2JqZWN0IHRvIGpzb24sIHRoZW4gYXBwbHkgaXQgdG8gZm9ybSAoZS5nLiBjb252ZXJ0ICd1bmRlZmluZWQnIGludG8gJ251bGwnKVxuICAgICAgY29uc3QganNvbiA9IEFwcEZvcm1VdGlscy5nZXRGb3JtVmFsdWVGcm9tRW50aXR5KGRhdGEsIHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLmZvcm0ucmVzZXQoanNvbiwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KHVuZGVmaW5lZCwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSB0cnVlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZShvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzVW50b3VjaGVkKG9wdHM/OiB7b25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuO30pIHtcbiAgICB0aGlzLmZvcm0ubWFya0FzVW50b3VjaGVkKG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgcHJlZmVyIHRvIHVzZSBtYXJrQWxsQXNUb3VjaGVkKClcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIC8vIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCkgLy8gVGhpcyBpcyBub3Qgd29ya2luZyB3ZWxsIChlLmcuIGluIFRyaXBGb3JtKVxuICAgIGNvbnNvbGUud2FybignVE9ETzogUmVwbGFjZSB0aGlzIGNhbGwgYnkgbWFya0FsbEFzVG91Y2hlZCgpIC0gYmVjYXVzZSBvZiBjaGFuZ2VzIGluIG5neC1jb21wb25lbnRzID49IDAuMTYuMCcpO1xuICAgIEFwcEZvcm1VdGlscy5tYXJrQXNUb3VjaGVkKHRoaXMuZm9ybSwgb3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG1hcmtBbGxBc1RvdWNoZWQob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgLy8gdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKSAvLyBUaGlzIGlzIG5vdCB3b3JraW5nIHdlbGwgKGUuZy4gaW4gVHJpcEZvcm0pXG4gICAgQXBwRm9ybVV0aWxzLm1hcmtBbGxBc1RvdWNoZWQodGhpcy5mb3JtLCBvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzRGlydHkob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eShvcHRzKTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzTG9hZGluZyhvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgdGhpcy5zZXRMb2FkaW5nKHRydWUsIG9wdHMpO1xuICB9XG5cbiAgbWFya0FzTG9hZGVkKG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UsIG9wdHMpO1xuICB9XG5cbiAgbWFya0FzUmVhZHkob3B0cz86IHtvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIGlmICh0aGlzLnJlYWR5U3ViamVjdC52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5yZWFkeVN1YmplY3QubmV4dCh0cnVlKTtcblxuICAgICAgLy8gSWYgc3ViY2xhc3NlcyBpbXBsZW1lbnRzIE9uUmVhZHlcbiAgICAgIGlmICh0eXBlb2YgdGhpc1snbmdPblJlYWR5J10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgKHRoaXMgYXMgYW55IGFzIE9uUmVhZHkpLm5nT25SZWFkeSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0IGZvcm0gaXMgcmVhZHlcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIHJlYWR5KG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnJlYWR5U3ViamVjdC52YWx1ZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIHJldHVybiB3YWl0Rm9yVHJ1ZSh0aGlzLnJlYWR5U3ViamVjdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogV2FpdCBmb3JtIGlzIG5vdCBidXN5ICg9bG9hZGVkKVxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmdTdWJqZWN0LnZhbHVlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgcmV0dXJuIHdhaXRGb3JGYWxzZSh0aGlzLmxvYWRpbmdTdWJqZWN0LCBvcHRzKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkob3B0cz86IHtcbiAgICBvbmx5U2VsZj86IGJvb2xlYW47XG4gICAgZW1pdEV2ZW50PzogYm9vbGVhbjtcbiAgfSkge1xuICAgIEFwcEZvcm1VdGlscy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHRoaXMuZm9ybSwgb3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHRyYW5zbGF0ZUNvbnRyb2xQYXRoKHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGkxOG5GaWVsZE5hbWUgPSB0aGlzLmdldEkxOG5GaWVsZE5hbWUocGF0aCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlPy5pbnN0YW50KGkxOG5GaWVsZE5hbWUpIHx8IGkxOG5GaWVsZE5hbWU7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBnZXRGb3JtRXJyb3IoZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoIWZvcm0gfHwgIXRoaXMuZXJyb3JUcmFuc2xhdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLmVycm9yVHJhbnNsYXRvci50cmFuc2xhdGVGb3JtRXJyb3JzKHRoaXMuZm9ybSwge1xuICAgICAgY29udHJvbFBhdGhUcmFuc2xhdG9yOiB0aGlzLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEkxOG5GaWVsZE5hbWUocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLmkxOG5GaWVsZFByZWZpeCB8fCAnJykgKyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKHBhdGgpLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1Yik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdW5yZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5yZW1vdmUoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlckF1dG9jb21wbGV0ZUZpZWxkPEUgPSBhbnksIEVGID0gYW55PihmaWVsZE5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cz86IE1hdEF1dG9jb21wbGV0ZUZpZWxkQWRkT3B0aW9uczxFLCBFRj4pOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZzxFLCBFRj4ge1xuICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZUhlbHBlci5hZGQoZmllbGROYW1lLCBvcHRzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRFcnJvcih2YWx1ZTogc3RyaW5nLCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW47fSkge1xuICAgIGlmICh0aGlzLmVycm9yU3ViamVjdC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgLy8gU2hvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IHN1YmNsYXNzZXNcbiAgICBjb25zb2xlLndhcm4oJ21hcmtGb3JDaGVjaygpIGhhcyBiZWVuIGNhbGxlZCwgYnV0IGlzIG5vdCBvdmVyd3JpdHRlbiBieSBjb21wb25lbnQgJyArIHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIH1cblxuICAvKiAtLSBwcml2YXRlIGZ1bmN0aW9uIC0tICovXG5cbiAgcHJpdmF0ZSBzZXRMb2FkaW5nKHZhbHVlOiBib29sZWFuLCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3QudmFsdWUgIT09IHZhbHVlKSAge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHZhbHVlKTtcblxuICAgICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -10,8 +10,8 @@ import * as i0 from "@angular/core";
10
10
  import * as i1 from "@ngx-translate/core";
11
11
  export class AppFormModule {
12
12
  }
13
- AppFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- AppFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: AppFormModule, imports: [SharedModule, i1.TranslateModule,
13
+ AppFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ AppFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: AppFormModule, imports: [SharedModule, i1.TranslateModule,
15
15
  // Sub modules
16
16
  AppEntityFormModule,
17
17
  AppListFormModule,
@@ -24,7 +24,7 @@ AppFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
24
24
  AppPropertiesFormModule,
25
25
  AppTextPopoverModule,
26
26
  AppFormButtonsBarModule] });
27
- AppFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppFormModule, imports: [SharedModule,
27
+ AppFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppFormModule, imports: [SharedModule,
28
28
  TranslateModule.forChild(),
29
29
  // Sub modules
30
30
  AppEntityFormModule,
@@ -38,7 +38,7 @@ AppFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
38
38
  AppPropertiesFormModule,
39
39
  AppTextPopoverModule,
40
40
  AppFormButtonsBarModule] });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppFormModule, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppFormModule, decorators: [{
42
42
  type: NgModule,
43
43
  args: [{
44
44
  imports: [
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
63
63
  ]
64
64
  }]
65
65
  }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7OztBQTRCMUUsTUFBTSxPQUFPLGFBQWE7OzJHQUFiLGFBQWE7NEdBQWIsYUFBYSxZQXhCdEIsWUFBWTtRQUdaLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixvQkFBb0I7UUFDcEIsdUJBQXVCLGFBTXZCLGVBQWU7UUFFZixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLHVCQUF1Qjs0R0FHZCxhQUFhLFlBeEJ0QixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUUxQixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLHVCQUF1QixFQU12QixlQUFlO1FBRWYsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLG9CQUFvQjtRQUNwQix1QkFBdUI7NEZBR2QsYUFBYTtrQkExQnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFFMUIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDeEI7b0JBRUQsWUFBWSxFQUFFLEVBQUU7b0JBRWhCLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUVmLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHtBcHBQcm9wZXJ0aWVzRm9ybU1vZHVsZX0gZnJvbSAnLi9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMubW9kdWxlJztcbmltcG9ydCB7QXBwTGlzdEZvcm1Nb2R1bGV9IGZyb20gJy4vbGlzdC9saXN0Lm1vZHVsZSc7XG5pbXBvcnQge0FwcFRleHRQb3BvdmVyTW9kdWxlfSBmcm9tICcuL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QXBwRW50aXR5Rm9ybU1vZHVsZX0gZnJvbSAnLi9lbnRpdHkvZW50aXR5Lm1vZHVsZSc7XG5pbXBvcnQge0FwcEZvcm1CdXR0b25zQmFyTW9kdWxlfSBmcm9tICcuL2J1dHRvbnMvZm9ybS1idXR0b25zLWJhci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBBcHBFbnRpdHlGb3JtTW9kdWxlLFxuICAgIEFwcExpc3RGb3JtTW9kdWxlLFxuICAgIEFwcFByb3BlcnRpZXNGb3JtTW9kdWxlLFxuICAgIEFwcFRleHRQb3BvdmVyTW9kdWxlLFxuICAgIEFwcEZvcm1CdXR0b25zQmFyTW9kdWxlXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXSxcblxuICBleHBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBBcHBFbnRpdHlGb3JtTW9kdWxlLFxuICAgIEFwcExpc3RGb3JtTW9kdWxlLFxuICAgIEFwcFByb3BlcnRpZXNGb3JtTW9kdWxlLFxuICAgIEFwcFRleHRQb3BvdmVyTW9kdWxlLFxuICAgIEFwcEZvcm1CdXR0b25zQmFyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwRm9ybU1vZHVsZSB7XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7OztBQTRCMUUsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxZQXhCdEIsWUFBWTtRQUdaLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixvQkFBb0I7UUFDcEIsdUJBQXVCLGFBTXZCLGVBQWU7UUFFZixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLHVCQUF1QjsyR0FHZCxhQUFhLFlBeEJ0QixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUUxQixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsb0JBQW9CO1FBQ3BCLHVCQUF1QixFQU12QixlQUFlO1FBRWYsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLG9CQUFvQjtRQUNwQix1QkFBdUI7MkZBR2QsYUFBYTtrQkExQnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFFMUIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDeEI7b0JBRUQsWUFBWSxFQUFFLEVBQUU7b0JBRWhCLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUVmLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHtBcHBQcm9wZXJ0aWVzRm9ybU1vZHVsZX0gZnJvbSAnLi9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMubW9kdWxlJztcbmltcG9ydCB7QXBwTGlzdEZvcm1Nb2R1bGV9IGZyb20gJy4vbGlzdC9saXN0Lm1vZHVsZSc7XG5pbXBvcnQge0FwcFRleHRQb3BvdmVyTW9kdWxlfSBmcm9tICcuL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QXBwRW50aXR5Rm9ybU1vZHVsZX0gZnJvbSAnLi9lbnRpdHkvZW50aXR5Lm1vZHVsZSc7XG5pbXBvcnQge0FwcEZvcm1CdXR0b25zQmFyTW9kdWxlfSBmcm9tICcuL2J1dHRvbnMvZm9ybS1idXR0b25zLWJhci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBBcHBFbnRpdHlGb3JtTW9kdWxlLFxuICAgIEFwcExpc3RGb3JtTW9kdWxlLFxuICAgIEFwcFByb3BlcnRpZXNGb3JtTW9kdWxlLFxuICAgIEFwcFRleHRQb3BvdmVyTW9kdWxlLFxuICAgIEFwcEZvcm1CdXR0b25zQmFyTW9kdWxlXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXSxcblxuICBleHBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBBcHBFbnRpdHlGb3JtTW9kdWxlLFxuICAgIEFwcExpc3RGb3JtTW9kdWxlLFxuICAgIEFwcFByb3BlcnRpZXNGb3JtTW9kdWxlLFxuICAgIEFwcFRleHRQb3BvdmVyTW9kdWxlLFxuICAgIEFwcEZvcm1CdXR0b25zQmFyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwRm9ybU1vZHVsZSB7XG59XG4iXX0=
@@ -195,9 +195,9 @@ export class AppListForm extends AppForm {
195
195
  this.cd.markForCheck();
196
196
  }
197
197
  }
198
- AppListForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppListForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i2.DateAdapter }, { token: i3.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
199
- AppListForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AppListForm, selector: "app-list-form", inputs: { formArrayName: "formArrayName", formArray: "formArray", options: "options", displayWithFn: ["displayWith", "displayWithFn"], equalsFn: ["equals", "equalsFn"] }, outputs: { onNewItem: "onNewItem", selectionChanges: "selectionChanges" }, usesInheritance: true, ngImport: i0, template: "\n<ng-container *ngIf=\"!loading; else listSkeleton\">\n\n <!-- List -->\n <ion-list class=\"ion-no-padding\" >\n\n <ng-container *ngFor=\"let itemControl of itemControls; index as i; last as last\">\n <ion-item *ngIf=\"itemControl.value; let item\"\n [class.disabled]=\"disabled\" tappable\n (click)=\"onItemClick($event, item)\"\n [color]=\"selection.isSelected(item) ? 'secondary100' : undefined\"\n [button]=\"selectionChanges.observers|isNotEmptyArray\">\n <ion-label>{{displayWith(item)}}</ion-label>\n\n <!-- buttons -->\n <ion-buttons slot=\"end\" *ngIf=\"enabled\" class=\"action-buttons\">\n <ion-button fill=\"clear\" (click)=\"removeAt(i)\">\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-button>\n\n <ion-button *ngFor=\"let button of options.buttons\"\n fill=\"clear\" [color]=\"button.color\"\n [class.cdk-visually-hidden]=\"button.disabled|async\"\n (click)=\"onItemButtonClick(button, $event, item, i)\"\n [title]=\"(button.title || '')|translate\">\n <ion-icon slot=\"icon-only\" [name]=\"button.icon\"></ion-icon>\n </ion-button>\n\n </ion-buttons>\n </ion-item>\n </ng-container>\n </ion-list>\n\n <!-- Add button -->\n <ion-button color=\"tertiary\" fill=\"clear\"\n *ngIf=\"enabled && onNewItem.observers.length; else emptyText\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"onNewClick($event)\" >\n <ion-icon slot=\"start\" name=\"add\"></ion-icon>\n <ion-label translate>COMMON.BTN_ADD</ion-label>\n </ion-button>\n\n <!-- Empty (if readonly) -->\n <ng-template #emptyText>\n <ion-text *ngIf=\"!length\" color=\"medium\"><i translate>COMMON.EMPTY_OPTION</i></ion-text>\n </ng-template>\n</ng-container>\n\n<ng-template #listSkeleton>\n\n <ion-list>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n </ion-list>\n\n</ng-template>\n\n<ng-template #itemSkeleton>\n\n <ion-item>\n <ion-label>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n </ion-label>\n </ion-item>\n\n</ng-template>\n", styles: [":host{--ion-item-background-selected: var(--ion-color-secondary100);--ion-item-color-selected: var(--ion-color-secondary100-contrast)}ion-item.disabled ion-label{color:var(--ion-color-medium-shade, grey)}ion-item{--min-height: 48px;background-color:var(--ion-item-background)}ion-item ion-text,ion-item ion-label{color:var(--ion-item-color)}ion-item .action-buttons{visibility:hidden;display:none}ion-item:hover{height:var(--min-height);--ion-item-background-color: var(--ion-color-light);--ion-item-color: var(--ion-color-light-contrast)}ion-item:hover .action-buttons{margin-top:-1px;visibility:visible;display:block}ion-item.selected{--ion-item-background-color-hover: var(--ion-item-background-selected) !important;--ion-item-color-hover: var(--ion-item-color-selected) !important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i5.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i5.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i5.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i5.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i5.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i5.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i5.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.NotEmptyArrayPipe, name: "isNotEmptyArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppListForm, decorators: [{
198
+ AppListForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppListForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i2.DateAdapter }, { token: i3.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
199
+ AppListForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppListForm, selector: "app-list-form", inputs: { formArrayName: "formArrayName", formArray: "formArray", options: "options", displayWithFn: ["displayWith", "displayWithFn"], equalsFn: ["equals", "equalsFn"] }, outputs: { onNewItem: "onNewItem", selectionChanges: "selectionChanges" }, usesInheritance: true, ngImport: i0, template: "\n<ng-container *ngIf=\"!loading; else listSkeleton\">\n\n <!-- List -->\n <ion-list class=\"ion-no-padding\" >\n\n <ng-container *ngFor=\"let itemControl of itemControls; index as i; last as last\">\n <ion-item *ngIf=\"itemControl.value; let item\"\n [class.disabled]=\"disabled\" tappable\n (click)=\"onItemClick($event, item)\"\n [color]=\"selection.isSelected(item) ? 'secondary100' : undefined\"\n [button]=\"selectionChanges.observers|isNotEmptyArray\">\n <ion-label>{{displayWith(item)}}</ion-label>\n\n <!-- buttons -->\n <ion-buttons slot=\"end\" *ngIf=\"enabled\" class=\"action-buttons\">\n <ion-button fill=\"clear\" (click)=\"removeAt(i)\">\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-button>\n\n <ion-button *ngFor=\"let button of options.buttons\"\n fill=\"clear\" [color]=\"button.color\"\n [class.cdk-visually-hidden]=\"button.disabled|async\"\n (click)=\"onItemButtonClick(button, $event, item, i)\"\n [title]=\"(button.title || '')|translate\">\n <ion-icon slot=\"icon-only\" [name]=\"button.icon\"></ion-icon>\n </ion-button>\n\n </ion-buttons>\n </ion-item>\n </ng-container>\n </ion-list>\n\n <!-- Add button -->\n <ion-button color=\"tertiary\" fill=\"clear\"\n *ngIf=\"enabled && onNewItem.observers.length; else emptyText\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"onNewClick($event)\" >\n <ion-icon slot=\"start\" name=\"add\"></ion-icon>\n <ion-label translate>COMMON.BTN_ADD</ion-label>\n </ion-button>\n\n <!-- Empty (if readonly) -->\n <ng-template #emptyText>\n <ion-text *ngIf=\"!length\" color=\"medium\"><i translate>COMMON.EMPTY_OPTION</i></ion-text>\n </ng-template>\n</ng-container>\n\n<ng-template #listSkeleton>\n\n <ion-list>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n </ion-list>\n\n</ng-template>\n\n<ng-template #itemSkeleton>\n\n <ion-item>\n <ion-label>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n </ion-label>\n </ion-item>\n\n</ng-template>\n", styles: [":host{--ion-item-background-selected: var(--ion-color-secondary100);--ion-item-color-selected: var(--ion-color-secondary100-contrast)}ion-item.disabled ion-label{color:var(--ion-color-medium-shade, grey)}ion-item{--min-height: 48px;background-color:var(--ion-item-background)}ion-item ion-text,ion-item ion-label{color:var(--ion-item-color)}ion-item .action-buttons{visibility:hidden;display:none}ion-item:hover{height:var(--min-height);--ion-item-background-color: var(--ion-color-light);--ion-item-color: var(--ion-color-light-contrast)}ion-item:hover .action-buttons{margin-top:-1px;visibility:visible;display:block}ion-item.selected{--ion-item-background-color-hover: var(--ion-item-background-selected) !important;--ion-item-color-hover: var(--ion-item-color-selected) !important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i5.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i5.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i5.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i5.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i5.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i5.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i5.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.NotEmptyArrayPipe, name: "isNotEmptyArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppListForm, decorators: [{
201
201
  type: Component,
202
202
  args: [{ selector: 'app-list-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<ng-container *ngIf=\"!loading; else listSkeleton\">\n\n <!-- List -->\n <ion-list class=\"ion-no-padding\" >\n\n <ng-container *ngFor=\"let itemControl of itemControls; index as i; last as last\">\n <ion-item *ngIf=\"itemControl.value; let item\"\n [class.disabled]=\"disabled\" tappable\n (click)=\"onItemClick($event, item)\"\n [color]=\"selection.isSelected(item) ? 'secondary100' : undefined\"\n [button]=\"selectionChanges.observers|isNotEmptyArray\">\n <ion-label>{{displayWith(item)}}</ion-label>\n\n <!-- buttons -->\n <ion-buttons slot=\"end\" *ngIf=\"enabled\" class=\"action-buttons\">\n <ion-button fill=\"clear\" (click)=\"removeAt(i)\">\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\n </ion-button>\n\n <ion-button *ngFor=\"let button of options.buttons\"\n fill=\"clear\" [color]=\"button.color\"\n [class.cdk-visually-hidden]=\"button.disabled|async\"\n (click)=\"onItemButtonClick(button, $event, item, i)\"\n [title]=\"(button.title || '')|translate\">\n <ion-icon slot=\"icon-only\" [name]=\"button.icon\"></ion-icon>\n </ion-button>\n\n </ion-buttons>\n </ion-item>\n </ng-container>\n </ion-list>\n\n <!-- Add button -->\n <ion-button color=\"tertiary\" fill=\"clear\"\n *ngIf=\"enabled && onNewItem.observers.length; else emptyText\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"onNewClick($event)\" >\n <ion-icon slot=\"start\" name=\"add\"></ion-icon>\n <ion-label translate>COMMON.BTN_ADD</ion-label>\n </ion-button>\n\n <!-- Empty (if readonly) -->\n <ng-template #emptyText>\n <ion-text *ngIf=\"!length\" color=\"medium\"><i translate>COMMON.EMPTY_OPTION</i></ion-text>\n </ng-template>\n</ng-container>\n\n<ng-template #listSkeleton>\n\n <ion-list>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemSkeleton\"></ng-container>\n </ion-list>\n\n</ng-template>\n\n<ng-template #itemSkeleton>\n\n <ion-item>\n <ion-label>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n </ion-label>\n </ion-item>\n\n</ng-template>\n", styles: [":host{--ion-item-background-selected: var(--ion-color-secondary100);--ion-item-color-selected: var(--ion-color-secondary100-contrast)}ion-item.disabled ion-label{color:var(--ion-color-medium-shade, grey)}ion-item{--min-height: 48px;background-color:var(--ion-item-background)}ion-item ion-text,ion-item ion-label{color:var(--ion-item-color)}ion-item .action-buttons{visibility:hidden;display:none}ion-item:hover{height:var(--min-height);--ion-item-background-color: var(--ion-color-light);--ion-item-color: var(--ion-color-light-contrast)}ion-item:hover .action-buttons{margin-top:-1px;visibility:visible;display:block}ion-item.selected{--ion-item-background-color-hover: var(--ion-item-background-selected) !important;--ion-item-color-hover: var(--ion-item-color-selected) !important}\n"] }]
203
203
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: i2.DateAdapter }, { type: i3.LocalSettingsService }, { type: i0.ChangeDetectorRef }, { type: i1.FormGroupDirective, decorators: [{
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
219
219
  }], selectionChanges: [{
220
220
  type: Output
221
221
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vbGlzdC9saXN0LmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9saXN0L2xpc3QuZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQThGLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUloRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQXVCeEQsTUFBTSxPQUFPLFdBQXFCLFNBQVEsT0FBWTtJQW9FcEQsWUFDWSxRQUFrQixFQUNsQixXQUErQixFQUMvQixXQUFnQyxFQUNoQyxRQUE4QixFQUM5QixFQUFxQixFQUNYLFlBQWdDO1FBRXBELEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFQWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDWCxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUF4RXRELGNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFNdEIsa0JBQWEsR0FBMEIsbUJBQW1CLENBQUM7UUFHdkUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDdEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLENBQU0sSUFBSSxDQUFDLENBQUM7UUFrRXZELHVDQUF1QztJQUN6QyxDQUFDO0lBakVELElBQUksS0FBSyxDQUFDLElBQVM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQVksQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBOEIsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhLENBQUMsSUFBa0Q7UUFDOUQsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUE4QjtRQUM3QyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBZUQsUUFBUTtRQUVOLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixlQUFlLEVBQUUsSUFBSTtZQUNyQixzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsR0FBRyxJQUFJLENBQUMsT0FBTztTQUFDLENBQUM7UUFFbkIsb0JBQW9CO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQTBCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFxQixDQUFDO1FBQzFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQztRQUN0SixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixJQUFJLENBQUMsYUFBYSxvQkFBb0IsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUMvQixJQUFJLENBQUMsU0FBUyxFQUNkLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUNwQyxJQUFJLENBQUMsUUFBUSxFQUNiLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztRQUVGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWU7UUFDdEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztTQUM1RDthQUNJO1lBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO1NBQ3pHO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBNEI7UUFDN0MsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjthQUFNO1lBQ0wsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBaUIsRUFBRSxJQUFPLEVBQUUsSUFBNEI7UUFFeEUsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXZGLHFDQUFxQztRQUNyQyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjthQUNJO1lBQ0gsZUFBZTtZQUVmLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDbkgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0I7WUFDRCxlQUFlO2lCQUNWO2dCQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEI7U0FDRjtRQUVELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFrQixFQUFFLEtBQWlCLEVBQUUsSUFBTyxFQUFFLEtBQWE7UUFDbkYsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUSxFQUFFLElBQTRCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFcEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRSxLQUFhLENBQUM7SUFDekUsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixhQUFhLENBQUMsSUFBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7eUdBeE9VLFdBQVc7NkZBQVgsV0FBVyxrVUMxQ3hCLDI0RUFtRUE7NEZEekJhLFdBQVc7a0JBTnZCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzswQkE0RTVDLFFBQVE7NENBdEVGLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRWdCLGFBQWE7c0JBQWxDLEtBQUs7dUJBQUMsYUFBYTtnQkFDSCxRQUFRO3NCQUF4QixLQUFLO3VCQUFDLFFBQVE7Z0JBRUwsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtyZWZlcmVudGlhbFRvU3RyaW5nfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2RlbC9yZWZlcmVudGlhbC5tb2RlbCc7XG5pbXBvcnQge2lzTmlsfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7RGF0ZUFkYXB0ZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0xvY2FsU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7QXBwRm9ybX0gZnJvbSAnLi4vZm9ybS5jbGFzcyc7XG5pbXBvcnQge0FwcEZvcm1VdGlscywgRm9ybUFycmF5SGVscGVyLCBGb3JtQXJyYXlIZWxwZXJPcHRpb25zfSBmcm9tICcuLi9mb3JtLnV0aWxzJztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb2xvcn0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXRlbUJ1dHRvbjxUID0gYW55PiB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjbGljazogKGV2ZW50OiBFdmVudCwgaXRlbTogVCwgaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgaWNvbjogc3RyaW5nO1xuICBjb2xvcj86IENvbG9yO1xuICBkaXNhYmxlZD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXBwTGlzdEZvcm1PcHRpb25zPFQ+ID0gRm9ybUFycmF5SGVscGVyT3B0aW9ucyAmIHtcbiAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbj86IGJvb2xlYW47XG4gIGJ1dHRvbnM/OiBJdGVtQnV0dG9uPFQ+W107XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbGlzdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICdsaXN0LmZvcm0uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QuZm9ybS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFwcExpc3RGb3JtPFQgPSBhbnk+IGV4dGVuZHMgQXBwRm9ybTxUW10+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaGVscGVyOiBGb3JtQXJyYXlIZWxwZXI8VD47XG4gIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUPih0cnVlLCBbXSk7XG5cbiAgQElucHV0KCkgZm9ybUFycmF5TmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBmb3JtQXJyYXk6IFVudHlwZWRGb3JtQXJyYXk7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFwcExpc3RGb3JtT3B0aW9uczxUPjtcblxuICBASW5wdXQoJ2Rpc3BsYXlXaXRoJykgZGlzcGxheVdpdGhGbjogKGl0ZW06IGFueSkgPT4gc3RyaW5nID0gcmVmZXJlbnRpYWxUb1N0cmluZztcbiAgQElucHV0KCdlcXVhbHMnKSBlcXVhbHNGbjogKHYxOiBULCB2MjogVCkgPT4gYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgb25OZXdJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4odHJ1ZSk7XG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsdWUgYXMgVFtdO1xuICB9XG5cbiAgZ2V0IGl0ZW1Db250cm9scygpOiBVbnR5cGVkRm9ybUdyb3VwW10ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSAmJiB0aGlzLmZvcm1BcnJheS5jb250cm9scyBhcyBVbnR5cGVkRm9ybUdyb3VwW107XG4gIH1cblxuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyID8gdGhpcy5oZWxwZXIuc2l6ZSgpIDogMDtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkgJiYgKHRoaXMuZm9ybUFycmF5LnRvdWNoZWQgfHwgKHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzIHx8IFtdKS5maW5kSW5kZXgoYyA9PiBjLnRvdWNoZWQpICE9PSAtMSk7XG4gIH1cblxuICBnZXQgdW50b3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5mb3JtQXJyYXkgfHwgdGhpcy5mb3JtQXJyYXkudW50b3VjaGVkIHx8ICh0aGlzLmZvcm1BcnJheS5jb250cm9scyB8fCBbXSkuZmluZEluZGV4KGMgPT4gYy50b3VjaGVkKSA9PT0gLTE7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5ICYmIHRoaXMuZm9ybUFycmF5LmRpcnR5O1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm1BcnJheSB8fCB0aGlzLmZvcm1BcnJheS5pbnZhbGlkO1xuICB9XG5cbiAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSAmJiB0aGlzLmZvcm1BcnJheS52YWxpZDtcbiAgfVxuXG4gIGdldCBwZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5mb3JtQXJyYXkgfHwgdGhpcy5mb3JtQXJyYXkucGVuZGluZztcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICBBcHBGb3JtVXRpbHMubWFya0FzVG91Y2hlZCh0aGlzLmZvcm1BcnJheSwgb3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG1hcmtBbGxBc1RvdWNoZWQob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgQXBwRm9ybVV0aWxzLm1hcmtBbGxBc1RvdWNoZWQodGhpcy5mb3JtQXJyYXksIG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXI6IEZvcm1Hcm91cERpcmVjdGl2ZVxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgbnVsbCk7XG5cbiAgICAvL3RoaXMuZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgYWxsb3dFbXB0eUFycmF5OiB0cnVlLFxuICAgICAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvbnM6IFtdLFxuICAgICAgLi4udGhpcy5vcHRpb25zfTtcblxuICAgIC8vIFJldHJpZXZlIHRoZSBmb3JtXG4gICAgY29uc3QgZm9ybSA9ICh0aGlzLmZvcm1BcnJheSAmJiB0aGlzLmZvcm1BcnJheS5wYXJlbnQgYXMgVW50eXBlZEZvcm1Hcm91cCB8fCB0aGlzLmZvcm1Hcm91cERpciAmJiB0aGlzLmZvcm1Hcm91cERpci5mb3JtIHx8IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe30pKTtcbiAgICB0aGlzLnNldEZvcm0oZm9ybSk7XG5cbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUFycmF5IHx8IHRoaXMuZm9ybUFycmF5TmFtZSAmJiBmb3JtLmdldCh0aGlzLmZvcm1BcnJheU5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgdGhpcy5mb3JtQXJyYXlOYW1lID0gdGhpcy5mb3JtQXJyYXlOYW1lIHx8IHRoaXMuZm9ybUFycmF5ICYmIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZpbmQoa2V5ID0+IGZvcm0uZ2V0KGtleSkgPT09IHRoaXMuZm9ybUFycmF5KSB8fCAncHJvcGVydGllcyc7XG4gICAgaWYgKCF0aGlzLmZvcm1BcnJheSkge1xuICAgICAgY29uc29sZS53YXJuKGBNaXNzaW5nIGFycmF5IGNvbnRyb2wgJyR7dGhpcy5mb3JtQXJyYXlOYW1lfScuIFdpbGwgY3JlYXRlIGl0IWApO1xuICAgICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKTtcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKHRoaXMuZm9ybUFycmF5TmFtZSwgdGhpcy5mb3JtQXJyYXkpO1xuICAgIH1cblxuICAgIHRoaXMuZXF1YWxzRm4gPSB0aGlzLmVxdWFsc0ZuIHx8ICgodjE6IGFueSwgdjI6IGFueSkgPT4gKGlzTmlsKHYxKSAmJiBpc05pbCh2MikpIHx8IHYxID09PSB2Mik7XG4gICAgdGhpcy5oZWxwZXIgPSBuZXcgRm9ybUFycmF5SGVscGVyPFQ+KFxuICAgICAgdGhpcy5mb3JtQXJyYXksXG4gICAgICAodmFsdWUpID0+IHRoaXMuY3JlYXRlQ29udHJvbCh2YWx1ZSksXG4gICAgICB0aGlzLmVxdWFsc0ZuLFxuICAgICAgKHZhbHVlKSA9PiBpc05pbCh2YWx1ZSksXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICB0aGlzLm9uTmV3SXRlbS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25OZXdJdGVtLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBUW10gfCBhbnkpIHtcbiAgICBkYXRhID0gZGF0YSB8fCBbXTtcblxuICAgIGlmICh0aGlzLmhlbHBlcikge1xuICAgICAgdGhpcy5oZWxwZXIucmVzaXplKGRhdGEubGVuZ3RoKTtcbiAgICAgIHRoaXMuaGVscGVyLmZvcm1BcnJheS5wYXRjaFZhbHVlKGRhdGEsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdUT0RPOiBjYW5ub3QgYXBwbHlpZWQgc2V0VmFsdWUoKSBvbiBmcm9tQXJyYXksIGJlY2F1c2UgZm9ybUFycmF5SGVscGVyIG5vdCBleGlzdHMgeWV0ICEnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICB0aGlzLm1hcmtBc0xvYWRlZCgpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBlbGVtZW50cyBtYXRjaGVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cy4gKi9cbiAgaXNBbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmxlbmd0aDtcbiAgfVxuXG4gIGFzeW5jIG1hc3RlclRvZ2dsZShvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnZhbHVlO1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChpdGVtKSk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uSXRlbUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBULCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG5cbiAgICBpZiAoIWl0ZW0gfHwgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLm9ic2VydmVycy5sZW5ndGgpIHJldHVybjtcblxuICAgIC8vIE11bHRpcGxlIHNlbGVjdGlvbiAoaWYgY3RybCtjbGljaylcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiB0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb24udG9nZ2xlKGl0ZW0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIFVuc2VsZWN0IGFsbFxuXG4gICAgICAvLyBTZWxlY3QgdGhlIGl0ZW0gKG9yIHJlc2VsZWN0KVxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKGl0ZW0pIHx8ICh0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiAmJiB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPiAxKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoaXRlbSk7XG4gICAgICB9XG4gICAgICAvLyBVbnNlbGVjdCBhbGxcbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlcy5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvbkl0ZW1CdXR0b25DbGljayhidXR0b246IEl0ZW1CdXR0b24sIGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBULCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGJ1dHRvbi5jbGljaykgYnV0dG9uLmNsaWNrKGV2ZW50LCBpdGVtLCBpbmRleCk7XG4gICAgYXdhaXQgdGhpcy5vbkl0ZW1DbGljayhldmVudCwgaXRlbSk7XG4gIH1cblxuICBoYXNTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLmhhc1ZhbHVlKCk7XG4gIH1cblxuICBvbk5ld0NsaWNrKGV2ZW50KSB7XG4gICAgdGhpcy5vbk5ld0l0ZW0uZW1pdChldmVudCk7XG4gIH1cblxuICBhZGQodmFsdWU6IFQsIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICBjb25zdCBkb25lID0gdGhpcy5oZWxwZXIuYWRkKHZhbHVlLCB7ZW1pdEV2ZW50OiB0cnVlfSk7XG4gICAgaWYgKGRvbmUpIHtcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93TXVsdGlwbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0aW9uLnRvZ2dsZSh2YWx1ZSk7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlcy5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmVBdChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaGVscGVyLmF0KGluZGV4KS52YWx1ZTtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoaXRlbSk7XG4gICAgfVxuICAgIHRoaXMuaGVscGVyLnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIGRpc3BsYXlXaXRoKHZhbHVlOiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5V2l0aEZuID8gdGhpcy5kaXNwbGF5V2l0aEZuKHZhbHVlKSA6ICh2YWx1ZSBhcyBhbnkpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29udHJvbChkYXRhPzogYW55KTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKGRhdGEgfHwgbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxufVxuXG4iLCJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBsaXN0U2tlbGV0b25cIj5cblxuICA8IS0tIExpc3QgLS0+XG4gIDxpb24tbGlzdCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbUNvbnRyb2wgb2YgaXRlbUNvbnRyb2xzOyBpbmRleCBhcyBpOyBsYXN0IGFzIGxhc3RcIj5cbiAgICAgIDxpb24taXRlbSAqbmdJZj1cIml0ZW1Db250cm9sLnZhbHVlOyBsZXQgaXRlbVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgdGFwcGFibGVcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKGl0ZW0pID8gJ3NlY29uZGFyeTEwMCcgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgIFtidXR0b25dPVwic2VsZWN0aW9uQ2hhbmdlcy5vYnNlcnZlcnN8aXNOb3RFbXB0eUFycmF5XCI+XG4gICAgICAgIDxpb24tbGFiZWw+e3tkaXNwbGF5V2l0aChpdGVtKX19PC9pb24tbGFiZWw+XG5cbiAgICAgICAgPCEtLSBidXR0b25zIC0tPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwiZW5hYmxlZFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwicmVtb3ZlQXQoaSlcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInRyYXNoXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG9wdGlvbnMuYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCIgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNkay12aXN1YWxseS1oaWRkZW5dPVwiYnV0dG9uLmRpc2FibGVkfGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQnV0dG9uQ2xpY2soYnV0dG9uLCAkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiKGJ1dHRvbi50aXRsZSB8fCAnJyl8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImJ1dHRvbi5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvaW9uLWxpc3Q+XG5cbiAgPCEtLSBBZGQgYnV0dG9uIC0tPlxuICA8aW9uLWJ1dHRvbiBjb2xvcj1cInRlcnRpYXJ5XCIgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbmFibGVkICYmIG9uTmV3SXRlbS5vYnNlcnZlcnMubGVuZ3RoOyBlbHNlIGVtcHR5VGV4dFwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9BREQnfHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbk5ld0NsaWNrKCRldmVudClcIiA+XG4gICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhZGRcIj48L2lvbi1pY29uPlxuICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fQUREPC9pb24tbGFiZWw+XG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8IS0tIEVtcHR5IChpZiByZWFkb25seSkgLS0+XG4gIDxuZy10ZW1wbGF0ZSAjZW1wdHlUZXh0PlxuICAgIDxpb24tdGV4dCAgKm5nSWY9XCIhbGVuZ3RoXCIgY29sb3I9XCJtZWRpdW1cIj48aSB0cmFuc2xhdGU+Q09NTU9OLkVNUFRZX09QVElPTjwvaT48L2lvbi10ZXh0PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFNrZWxldG9uPlxuXG4gIDxpb24tbGlzdD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVNrZWxldG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Ta2VsZXRvblwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtU2tlbGV0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9pb24tbGlzdD5cblxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpdGVtU2tlbGV0b24+XG5cbiAgPGlvbi1pdGVtPlxuICAgIDxpb24tbGFiZWw+XG4gICAgICA8aW9uLXNrZWxldG9uLXRleHQgYW5pbWF0ZWQgc3R5bGU9XCJ3aWR0aDogNjAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8L2lvbi1sYWJlbD5cbiAgPC9pb24taXRlbT5cblxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vbGlzdC9saXN0LmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9saXN0L2xpc3QuZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQThGLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUloRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQXVCeEQsTUFBTSxPQUFPLFdBQXFCLFNBQVEsT0FBWTtJQW9FcEQsWUFDWSxRQUFrQixFQUNsQixXQUErQixFQUMvQixXQUFnQyxFQUNoQyxRQUE4QixFQUM5QixFQUFxQixFQUNYLFlBQWdDO1FBRXBELEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFQWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDWCxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUF4RXRELGNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFNdEIsa0JBQWEsR0FBMEIsbUJBQW1CLENBQUM7UUFHdkUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDdEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLENBQU0sSUFBSSxDQUFDLENBQUM7UUFrRXZELHVDQUF1QztJQUN6QyxDQUFDO0lBakVELElBQUksS0FBSyxDQUFDLElBQVM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQVksQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBOEIsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhLENBQUMsSUFBa0Q7UUFDOUQsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUE4QjtRQUM3QyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBZUQsUUFBUTtRQUVOLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixlQUFlLEVBQUUsSUFBSTtZQUNyQixzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsR0FBRyxJQUFJLENBQUMsT0FBTztTQUFDLENBQUM7UUFFbkIsb0JBQW9CO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQTBCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFxQixDQUFDO1FBQzFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQztRQUN0SixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixJQUFJLENBQUMsYUFBYSxvQkFBb0IsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUMvQixJQUFJLENBQUMsU0FBUyxFQUNkLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUNwQyxJQUFJLENBQUMsUUFBUSxFQUNiLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQ2IsQ0FBQztRQUVGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWU7UUFDdEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztTQUM1RDthQUNJO1lBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO1NBQ3pHO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBNEI7UUFDN0MsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjthQUFNO1lBQ0wsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBaUIsRUFBRSxJQUFPLEVBQUUsSUFBNEI7UUFFeEUsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXZGLHFDQUFxQztRQUNyQyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjthQUNJO1lBQ0gsZUFBZTtZQUVmLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDbkgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0I7WUFDRCxlQUFlO2lCQUNWO2dCQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEI7U0FDRjtRQUVELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFrQixFQUFFLEtBQWlCLEVBQUUsSUFBTyxFQUFFLEtBQWE7UUFDbkYsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUSxFQUFFLElBQTRCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFcEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRSxLQUFhLENBQUM7SUFDekUsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixhQUFhLENBQUMsSUFBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7d0dBeE9VLFdBQVc7NEZBQVgsV0FBVyxrVUMxQ3hCLDI0RUFtRUE7MkZEekJhLFdBQVc7a0JBTnZCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzswQkE0RTVDLFFBQVE7NENBdEVGLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRWdCLGFBQWE7c0JBQWxDLEtBQUs7dUJBQUMsYUFBYTtnQkFDSCxRQUFRO3NCQUF4QixLQUFLO3VCQUFDLFFBQVE7Z0JBRUwsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtyZWZlcmVudGlhbFRvU3RyaW5nfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2RlbC9yZWZlcmVudGlhbC5tb2RlbCc7XG5pbXBvcnQge2lzTmlsfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7RGF0ZUFkYXB0ZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0xvY2FsU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7QXBwRm9ybX0gZnJvbSAnLi4vZm9ybS5jbGFzcyc7XG5pbXBvcnQge0FwcEZvcm1VdGlscywgRm9ybUFycmF5SGVscGVyLCBGb3JtQXJyYXlIZWxwZXJPcHRpb25zfSBmcm9tICcuLi9mb3JtLnV0aWxzJztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb2xvcn0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXRlbUJ1dHRvbjxUID0gYW55PiB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjbGljazogKGV2ZW50OiBFdmVudCwgaXRlbTogVCwgaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgaWNvbjogc3RyaW5nO1xuICBjb2xvcj86IENvbG9yO1xuICBkaXNhYmxlZD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXBwTGlzdEZvcm1PcHRpb25zPFQ+ID0gRm9ybUFycmF5SGVscGVyT3B0aW9ucyAmIHtcbiAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbj86IGJvb2xlYW47XG4gIGJ1dHRvbnM/OiBJdGVtQnV0dG9uPFQ+W107XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbGlzdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICdsaXN0LmZvcm0uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QuZm9ybS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFwcExpc3RGb3JtPFQgPSBhbnk+IGV4dGVuZHMgQXBwRm9ybTxUW10+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaGVscGVyOiBGb3JtQXJyYXlIZWxwZXI8VD47XG4gIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUPih0cnVlLCBbXSk7XG5cbiAgQElucHV0KCkgZm9ybUFycmF5TmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBmb3JtQXJyYXk6IFVudHlwZWRGb3JtQXJyYXk7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFwcExpc3RGb3JtT3B0aW9uczxUPjtcblxuICBASW5wdXQoJ2Rpc3BsYXlXaXRoJykgZGlzcGxheVdpdGhGbjogKGl0ZW06IGFueSkgPT4gc3RyaW5nID0gcmVmZXJlbnRpYWxUb1N0cmluZztcbiAgQElucHV0KCdlcXVhbHMnKSBlcXVhbHNGbjogKHYxOiBULCB2MjogVCkgPT4gYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgb25OZXdJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4odHJ1ZSk7XG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsdWUgYXMgVFtdO1xuICB9XG5cbiAgZ2V0IGl0ZW1Db250cm9scygpOiBVbnR5cGVkRm9ybUdyb3VwW10ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSAmJiB0aGlzLmZvcm1BcnJheS5jb250cm9scyBhcyBVbnR5cGVkRm9ybUdyb3VwW107XG4gIH1cblxuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaGVscGVyID8gdGhpcy5oZWxwZXIuc2l6ZSgpIDogMDtcbiAgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkgJiYgKHRoaXMuZm9ybUFycmF5LnRvdWNoZWQgfHwgKHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzIHx8IFtdKS5maW5kSW5kZXgoYyA9PiBjLnRvdWNoZWQpICE9PSAtMSk7XG4gIH1cblxuICBnZXQgdW50b3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5mb3JtQXJyYXkgfHwgdGhpcy5mb3JtQXJyYXkudW50b3VjaGVkIHx8ICh0aGlzLmZvcm1BcnJheS5jb250cm9scyB8fCBbXSkuZmluZEluZGV4KGMgPT4gYy50b3VjaGVkKSA9PT0gLTE7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5ICYmIHRoaXMuZm9ybUFycmF5LmRpcnR5O1xuICB9XG5cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm1BcnJheSB8fCB0aGlzLmZvcm1BcnJheS5pbnZhbGlkO1xuICB9XG5cbiAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSAmJiB0aGlzLmZvcm1BcnJheS52YWxpZDtcbiAgfVxuXG4gIGdldCBwZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5mb3JtQXJyYXkgfHwgdGhpcy5mb3JtQXJyYXkucGVuZGluZztcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICBBcHBGb3JtVXRpbHMubWFya0FzVG91Y2hlZCh0aGlzLmZvcm1BcnJheSwgb3B0cyk7XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG1hcmtBbGxBc1RvdWNoZWQob3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgQXBwRm9ybVV0aWxzLm1hcmtBbGxBc1RvdWNoZWQodGhpcy5mb3JtQXJyYXksIG9wdHMpO1xuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXI6IEZvcm1Hcm91cERpcmVjdGl2ZVxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgbnVsbCk7XG5cbiAgICAvL3RoaXMuZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgYWxsb3dFbXB0eUFycmF5OiB0cnVlLFxuICAgICAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvbnM6IFtdLFxuICAgICAgLi4udGhpcy5vcHRpb25zfTtcblxuICAgIC8vIFJldHJpZXZlIHRoZSBmb3JtXG4gICAgY29uc3QgZm9ybSA9ICh0aGlzLmZvcm1BcnJheSAmJiB0aGlzLmZvcm1BcnJheS5wYXJlbnQgYXMgVW50eXBlZEZvcm1Hcm91cCB8fCB0aGlzLmZvcm1Hcm91cERpciAmJiB0aGlzLmZvcm1Hcm91cERpci5mb3JtIHx8IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe30pKTtcbiAgICB0aGlzLnNldEZvcm0oZm9ybSk7XG5cbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUFycmF5IHx8IHRoaXMuZm9ybUFycmF5TmFtZSAmJiBmb3JtLmdldCh0aGlzLmZvcm1BcnJheU5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgdGhpcy5mb3JtQXJyYXlOYW1lID0gdGhpcy5mb3JtQXJyYXlOYW1lIHx8IHRoaXMuZm9ybUFycmF5ICYmIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZpbmQoa2V5ID0+IGZvcm0uZ2V0KGtleSkgPT09IHRoaXMuZm9ybUFycmF5KSB8fCAncHJvcGVydGllcyc7XG4gICAgaWYgKCF0aGlzLmZvcm1BcnJheSkge1xuICAgICAgY29uc29sZS53YXJuKGBNaXNzaW5nIGFycmF5IGNvbnRyb2wgJyR7dGhpcy5mb3JtQXJyYXlOYW1lfScuIFdpbGwgY3JlYXRlIGl0IWApO1xuICAgICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKTtcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKHRoaXMuZm9ybUFycmF5TmFtZSwgdGhpcy5mb3JtQXJyYXkpO1xuICAgIH1cblxuICAgIHRoaXMuZXF1YWxzRm4gPSB0aGlzLmVxdWFsc0ZuIHx8ICgodjE6IGFueSwgdjI6IGFueSkgPT4gKGlzTmlsKHYxKSAmJiBpc05pbCh2MikpIHx8IHYxID09PSB2Mik7XG4gICAgdGhpcy5oZWxwZXIgPSBuZXcgRm9ybUFycmF5SGVscGVyPFQ+KFxuICAgICAgdGhpcy5mb3JtQXJyYXksXG4gICAgICAodmFsdWUpID0+IHRoaXMuY3JlYXRlQ29udHJvbCh2YWx1ZSksXG4gICAgICB0aGlzLmVxdWFsc0ZuLFxuICAgICAgKHZhbHVlKSA9PiBpc05pbCh2YWx1ZSksXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICB0aGlzLm9uTmV3SXRlbS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25OZXdJdGVtLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBUW10gfCBhbnkpIHtcbiAgICBkYXRhID0gZGF0YSB8fCBbXTtcblxuICAgIGlmICh0aGlzLmhlbHBlcikge1xuICAgICAgdGhpcy5oZWxwZXIucmVzaXplKGRhdGEubGVuZ3RoKTtcbiAgICAgIHRoaXMuaGVscGVyLmZvcm1BcnJheS5wYXRjaFZhbHVlKGRhdGEsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdUT0RPOiBjYW5ub3QgYXBwbHlpZWQgc2V0VmFsdWUoKSBvbiBmcm9tQXJyYXksIGJlY2F1c2UgZm9ybUFycmF5SGVscGVyIG5vdCBleGlzdHMgeWV0ICEnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICB0aGlzLm1hcmtBc0xvYWRlZCgpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBlbGVtZW50cyBtYXRjaGVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cy4gKi9cbiAgaXNBbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmxlbmd0aDtcbiAgfVxuXG4gIGFzeW5jIG1hc3RlclRvZ2dsZShvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnZhbHVlO1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChpdGVtKSk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uSXRlbUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBULCBvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG5cbiAgICBpZiAoIWl0ZW0gfHwgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhdGhpcy5zZWxlY3Rpb25DaGFuZ2VzLm9ic2VydmVycy5sZW5ndGgpIHJldHVybjtcblxuICAgIC8vIE11bHRpcGxlIHNlbGVjdGlvbiAoaWYgY3RybCtjbGljaylcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiB0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb24udG9nZ2xlKGl0ZW0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIFVuc2VsZWN0IGFsbFxuXG4gICAgICAvLyBTZWxlY3QgdGhlIGl0ZW0gKG9yIHJlc2VsZWN0KVxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKGl0ZW0pIHx8ICh0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiAmJiB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPiAxKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoaXRlbSk7XG4gICAgICB9XG4gICAgICAvLyBVbnNlbGVjdCBhbGxcbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghb3B0cyB8fCBvcHRzLmVtaXRFdmVudCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlcy5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvbkl0ZW1CdXR0b25DbGljayhidXR0b246IEl0ZW1CdXR0b24sIGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBULCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGJ1dHRvbi5jbGljaykgYnV0dG9uLmNsaWNrKGV2ZW50LCBpdGVtLCBpbmRleCk7XG4gICAgYXdhaXQgdGhpcy5vbkl0ZW1DbGljayhldmVudCwgaXRlbSk7XG4gIH1cblxuICBoYXNTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLmhhc1ZhbHVlKCk7XG4gIH1cblxuICBvbk5ld0NsaWNrKGV2ZW50KSB7XG4gICAgdGhpcy5vbk5ld0l0ZW0uZW1pdChldmVudCk7XG4gIH1cblxuICBhZGQodmFsdWU6IFQsIG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICBjb25zdCBkb25lID0gdGhpcy5oZWxwZXIuYWRkKHZhbHVlLCB7ZW1pdEV2ZW50OiB0cnVlfSk7XG4gICAgaWYgKGRvbmUpIHtcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLmFsbG93TXVsdGlwbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0aW9uLnRvZ2dsZSh2YWx1ZSk7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlcy5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmVBdChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaGVscGVyLmF0KGluZGV4KS52YWx1ZTtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoaXRlbSk7XG4gICAgfVxuICAgIHRoaXMuaGVscGVyLnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIGRpc3BsYXlXaXRoKHZhbHVlOiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5V2l0aEZuID8gdGhpcy5kaXNwbGF5V2l0aEZuKHZhbHVlKSA6ICh2YWx1ZSBhcyBhbnkpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29udHJvbChkYXRhPzogYW55KTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKGRhdGEgfHwgbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxufVxuXG4iLCJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBsaXN0U2tlbGV0b25cIj5cblxuICA8IS0tIExpc3QgLS0+XG4gIDxpb24tbGlzdCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbUNvbnRyb2wgb2YgaXRlbUNvbnRyb2xzOyBpbmRleCBhcyBpOyBsYXN0IGFzIGxhc3RcIj5cbiAgICAgIDxpb24taXRlbSAqbmdJZj1cIml0ZW1Db250cm9sLnZhbHVlOyBsZXQgaXRlbVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgdGFwcGFibGVcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKGl0ZW0pID8gJ3NlY29uZGFyeTEwMCcgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgIFtidXR0b25dPVwic2VsZWN0aW9uQ2hhbmdlcy5vYnNlcnZlcnN8aXNOb3RFbXB0eUFycmF5XCI+XG4gICAgICAgIDxpb24tbGFiZWw+e3tkaXNwbGF5V2l0aChpdGVtKX19PC9pb24tbGFiZWw+XG5cbiAgICAgICAgPCEtLSBidXR0b25zIC0tPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwiZW5hYmxlZFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwicmVtb3ZlQXQoaSlcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInRyYXNoXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG9wdGlvbnMuYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCIgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNkay12aXN1YWxseS1oaWRkZW5dPVwiYnV0dG9uLmRpc2FibGVkfGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQnV0dG9uQ2xpY2soYnV0dG9uLCAkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiKGJ1dHRvbi50aXRsZSB8fCAnJyl8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImJ1dHRvbi5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvaW9uLWxpc3Q+XG5cbiAgPCEtLSBBZGQgYnV0dG9uIC0tPlxuICA8aW9uLWJ1dHRvbiBjb2xvcj1cInRlcnRpYXJ5XCIgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbmFibGVkICYmIG9uTmV3SXRlbS5vYnNlcnZlcnMubGVuZ3RoOyBlbHNlIGVtcHR5VGV4dFwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9BREQnfHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbk5ld0NsaWNrKCRldmVudClcIiA+XG4gICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhZGRcIj48L2lvbi1pY29uPlxuICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fQUREPC9pb24tbGFiZWw+XG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8IS0tIEVtcHR5IChpZiByZWFkb25seSkgLS0+XG4gIDxuZy10ZW1wbGF0ZSAjZW1wdHlUZXh0PlxuICAgIDxpb24tdGV4dCAgKm5nSWY9XCIhbGVuZ3RoXCIgY29sb3I9XCJtZWRpdW1cIj48aSB0cmFuc2xhdGU+Q09NTU9OLkVNUFRZX09QVElPTjwvaT48L2lvbi10ZXh0PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFNrZWxldG9uPlxuXG4gIDxpb24tbGlzdD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVNrZWxldG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Ta2VsZXRvblwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtU2tlbGV0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9pb24tbGlzdD5cblxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpdGVtU2tlbGV0b24+XG5cbiAgPGlvbi1pdGVtPlxuICAgIDxpb24tbGFiZWw+XG4gICAgICA8aW9uLXNrZWxldG9uLXRleHQgYW5pbWF0ZWQgc3R5bGU9XCJ3aWR0aDogNjAlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8L2lvbi1sYWJlbD5cbiAgPC9pb24taXRlbT5cblxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -6,15 +6,15 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ngx-translate/core";
7
7
  export class AppListFormModule {
8
8
  }
9
- AppListFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppListFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- AppListFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: AppListFormModule, declarations: [
9
+ AppListFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppListFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ AppListFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: AppListFormModule, declarations: [
11
11
  // Other components
12
12
  AppListForm], imports: [SharedModule, i1.TranslateModule], exports: [TranslateModule,
13
13
  // Components
14
14
  AppListForm] });
15
- AppListFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppListFormModule, imports: [SharedModule,
15
+ AppListFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppListFormModule, imports: [SharedModule,
16
16
  TranslateModule.forChild(), TranslateModule] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppListFormModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppListFormModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
32
32
  ]
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9saXN0L2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFtQnBELE1BQU0sT0FBTyxpQkFBaUI7OytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQjtRQVYxQixtQkFBbUI7UUFDbkIsV0FBVyxhQU5YLFlBQVksaUNBU1osZUFBZTtRQUVmLGFBQWE7UUFDYixXQUFXO2dIQUdGLGlCQUFpQixZQWYxQixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRSxFQVExQixlQUFlOzRGQU1OLGlCQUFpQjtrQkFqQjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBRUQsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDWjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFFZixhQUFhO3dCQUNiLFdBQVc7cUJBQ1o7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQge0FwcExpc3RGb3JtfSBmcm9tICcuL2xpc3QuZm9ybSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBPdGhlciBjb21wb25lbnRzXG4gICAgQXBwTGlzdEZvcm1cbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBMaXN0Rm9ybSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBMaXN0Rm9ybU1vZHVsZSB7XG5cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9saXN0L2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFtQnBELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQjtRQVYxQixtQkFBbUI7UUFDbkIsV0FBVyxhQU5YLFlBQVksaUNBU1osZUFBZTtRQUVmLGFBQWE7UUFDYixXQUFXOytHQUdGLGlCQUFpQixZQWYxQixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRSxFQVExQixlQUFlOzJGQU1OLGlCQUFpQjtrQkFqQjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBRUQsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDWjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFFZixhQUFhO3dCQUNiLFdBQVc7cUJBQ1o7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQge0FwcExpc3RGb3JtfSBmcm9tICcuL2xpc3QuZm9ybSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBPdGhlciBjb21wb25lbnRzXG4gICAgQXBwTGlzdEZvcm1cbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBMaXN0Rm9ybSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBMaXN0Rm9ybU1vZHVsZSB7XG5cbn1cbiJdfQ==
@@ -107,11 +107,11 @@ export class AppPropertiesForm extends AppForm {
107
107
  this.cd.markForCheck();
108
108
  }
109
109
  }
110
- AppPropertiesForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppPropertiesForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i2.DateAdapter }, { token: i3.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i4.PropertyValidator }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
111
- AppPropertiesForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AppPropertiesForm, selector: "app-properties-form", inputs: { formArrayName: "formArrayName", formArray: "formArray", options: "options", definitions: "definitions", chipColor: "chipColor" }, providers: [
110
+ AppPropertiesForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppPropertiesForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i2.DateAdapter }, { token: i3.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i4.PropertyValidator }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
111
+ AppPropertiesForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppPropertiesForm, selector: "app-properties-form", inputs: { formArrayName: "formArrayName", formArray: "formArray", options: "options", definitions: "definitions", chipColor: "chipColor" }, providers: [
112
112
  { provide: PropertyValidator, useClass: PropertyValidator }
113
113
  ], usesInheritance: true, ngImport: i0, template: "\n<!-- Properties -->\n<form [formGroup]=\"form\" class=\"form-container\">\n <ion-grid *ngIf=\"!loading; else propertiesSkeleton\"\n formArrayName=\"properties\" class=\"ion-no-padding\" >\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding ion-align-self-end\" size=\"12\">\n <span class=\"toolbar-spacer\"></span>\n\n <!-- Show more options -->\n <ion-button color=\"light\" *ngIf=\"formArray?.length === 0\"\n [title]=\"'SETTINGS.BTN_SHOW_MORE_HELP'|translate\"\n (click)=\"helper.add()\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <ng-container *ngFor=\"let fieldForm of fieldForms; let i=index\">\n <ion-row class=\"ion-no-padding\" [formGroupName]=\"i\">\n\n <!-- property key -->\n <ion-col size=\"6\" class=\"ion-no-padding\">\n <mat-form-field floatLabel=\"never\" *ngIf=\"fieldForm|formGetControl:'key' as control\">\n <mat-select [formControl]=\"control\"\n [placeholder]=\"'SETTINGS.PROPERTY_KEY'|translate\"\n (selectionChange)=\"updateDefinitionAt(i)\"\n [tabindex]=\"20+i*2\"\n required>\n\n <!-- When option's key not a well known option, add it as first select option -->\n <mat-option *ngIf=\"isUnknownField(fieldForm)\" [value]=\"control.value\">\n {{control.value}}\n </mat-option>\n\n <mat-option *ngFor=\"let item of definitions\" [value]=\"item.key\">{{ item.label | translate }}\n </mat-option>\n\n </mat-select>\n\n <mat-error *ngIf=\"control.hasError('required') && !helper.isLast(i)\"\n translate>ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n </ion-col>\n\n <!-- property value -->\n <ion-col class=\"ion-no-padding\" padding-left >\n <app-form-field *ngIf=\"getDefinitionAt(i); let definition; else unknownValue\"\n floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"fieldForm|formGetControl:'value'\"\n [placeholder]=\"'SETTINGS.PROPERTY_VALUE' | translate\"\n [chipColor]=\"chipColor\"\n [required]=\"true\"\n [tabindex]=\"20+i*2 + 1\">\n </app-form-field>\n <ng-template #unknownValue>\n <mat-form-field floatLabel=\"never\">\n <input type=\"text\" matInput\n [placeholder]=\"'SETTINGS.PROPERTY_VALUE' | translate\"\n [formControl]=\"fieldForm|formGetControl:'value'\"\n [required]=\"true\"\n [tabindex]=\"20+i*2 + 1\">\n </mat-form-field>\n </ng-template>\n </ion-col>\n\n <ion-col size=\"auto\" class=\"ion-no-padding\">\n <button type=\"button\" mat-icon-button color=\"light\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"removeAt(i)\">\n <mat-icon>close</mat-icon>\n </button>\n <button [hidden]=\"!helper.isLast(i)\"\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"disabled\"\n [title]=\"'SETTINGS.BTN_ADD_PROPERTY'|translate\"\n (click)=\"helper.add()\">\n <mat-icon>add</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n </ng-container>\n </ion-grid>\n</form>\n\n<ng-template #propertiesSkeleton>\n\n <ion-grid class=\"ion-no-padding\">\n <ng-container *ngTemplateOutlet=\"propertyRowSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"propertyRowSkeleton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"propertyRowSkeleton\"></ng-container>\n </ion-grid>\n\n</ng-template>\n\n<ng-template #propertyRowSkeleton>\n\n <ion-row>\n <!-- property key -->\n <ion-col>\n <mat-form-field>\n <input matInput hidden>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n <ion-icon name=\"arrow-dropdown\" matSuffix></ion-icon>\n </mat-form-field>\n </ion-col>\n <!-- value -->\n <ion-col>\n <mat-form-field>\n <input matInput hidden>\n <ion-skeleton-text animated style=\"width: 60%\"></ion-skeleton-text>\n </mat-form-field>\n </ion-col>\n <!-- buttons -->\n <ion-col size=\"2\">\n <button type=\"button\" mat-icon-button color=\"light\"\n [disabled]=\"true\">\n <mat-icon>close</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n\n</ng-template>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i6.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: i6.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonRow, selector: "ion-row" }, { kind: "component", type: i6.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.AppFormField, selector: "app-form-field", inputs: ["definition", "required", "readonly", "disabled", "formControl", "formControlName", "placeholder", "compact", "floatLabel", "tabindex", "autofocus", "clearable", "chipColor", "debug", "class"], outputs: ["keyup.enter"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i14.FormGetControlPipe, name: "formGetControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppPropertiesForm, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppPropertiesForm, decorators: [{
115
115
  type: Component,
116
116
  args: [{ selector: 'app-properties-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
117
117
  { provide: PropertyValidator, useClass: PropertyValidator }
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
129
129
  }], chipColor: [{
130
130
  type: Input
131
131
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMuZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBcUIsU0FBUyxFQUFZLEtBQUssRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUMsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVd2RCxNQUFNLE9BQU8saUJBQWdDLFNBQVEsT0FBWTtJQTJCL0QsWUFDRSxRQUFrQixFQUNSLFdBQStCLEVBQy9CLFdBQWdDLEVBQ2hDLFFBQThCLEVBQzlCLEVBQXFCLEVBQ3JCLFNBQTRCLEVBQ2xCLFlBQWdDO1FBRXBELEtBQUssQ0FBQyxRQUFRLEVBQ1osSUFBSSxDQUFDLENBQUM7UUFSRSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQ2xCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQWhDdEQsd0JBQW1CLEdBQTJCLEVBQUUs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Q0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VudGl0eVV0aWxzfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtGb3JtRmllbGREZWZpbml0aW9uLCBGb3JtRmllbGREZWZpbml0aW9uTWFwfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOaWx9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtEYXRlQWRhcHRlciwgVGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtMb2NhbFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge0FwcEZvcm19IGZyb20gJy4uL2Zvcm0uY2xhc3MnO1xuaW1wb3J0IHtGb3JtQXJyYXlIZWxwZXIsIEZvcm1BcnJheUhlbHBlck9wdGlvbnN9IGZyb20gJy4uL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtBcHBDb2xvcnMsIFByb3BlcnR5fSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHtQcm9wZXJ0eVZhbGlkYXRvcn0gZnJvbSAnLi9wcm9wZXJ0eS52YWxpZGF0b3InO1xuaW1wb3J0IHtQcmVkZWZpbmVkQ29sb3JzfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9wZXJ0aWVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ3Byb3BlcnRpZXMuZm9ybS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBQcm9wZXJ0eVZhbGlkYXRvciwgdXNlQ2xhc3M6IFByb3BlcnR5VmFsaWRhdG9yfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcFByb3BlcnRpZXNGb3JtPFQgPSBQcm9wZXJ0eT4gZXh0ZW5kcyBBcHBGb3JtPFRbXT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRlZmluaXRpb25zTWFwQnlLZXk6IEZvcm1GaWVsZERlZmluaXRpb25NYXAgPSB7fTtcbiAgZGVmaW5pdGlvbnNCeUluZGV4OiB7IFtpbmRleDogbnVtYmVyXTogRm9ybUZpZWxkRGVmaW5pdGlvbiB9ID0ge307XG4gIGhlbHBlcjogRm9ybUFycmF5SGVscGVyPFByb3BlcnR5PjtcblxuICBASW5wdXQoKSBmb3JtQXJyYXlOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvcm1BcnJheTogVW50eXBlZEZvcm1BcnJheTtcbiAgQElucHV0KCkgb3B0aW9uczogRm9ybUFycmF5SGVscGVyT3B0aW9ucztcbiAgQElucHV0KCkgZGVmaW5pdGlvbnM6IEZvcm1GaWVsZERlZmluaXRpb25bXTtcbiAgQElucHV0KCkgY2hpcENvbG9yOiBUaGVtZVBhbGV0dGUgfCBQcmVkZWZpbmVkQ29sb3JzID0gJ2FjY2VudCc7XG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsdWUgYXMgVFtdO1xuICB9XG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXk/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgZ2V0IGZpZWxkRm9ybXMoKTogVW50eXBlZEZvcm1Hcm91cFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuY29udHJvbHMgYXMgVW50eXBlZEZvcm1Hcm91cFtdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRvcjogUHJvcGVydHlWYWxpZGF0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXI6IEZvcm1Hcm91cERpcmVjdGl2ZVxuICApIHtcbiAgICBzdXBlcihpbmplY3RvcixcbiAgICAgIG51bGwpO1xuXG4gICAgLy90aGlzLmRlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KHRoaXMuZGVmaW5pdGlvbnMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb3IgaW52YWxpZCBhdHRyaWJ1dGUgXFwnZGVmaW5pdGlvbnNcXCcnKTtcbiAgICB9XG5cbiAgICAvLyBGaWxsIG9wdGlvbnMgbWFwXG4gICAgdGhpcy5kZWZpbml0aW9uc01hcEJ5S2V5ID0ge307XG4gICAgdGhpcy5kZWZpbml0aW9ucy5mb3JFYWNoKG8gPT4ge1xuICAgICAgdGhpcy5kZWZpbml0aW9uc01hcEJ5S2V5W28ua2V5XSA9IG87XG4gICAgfSk7XG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgZm9ybVxuICAgIGNvbnN0IGZvcm0gPSAodGhpcy5mb3JtQXJyYXkgJiYgdGhpcy5mb3JtQXJyYXkucGFyZW50IGFzIFVudHlwZWRGb3JtR3JvdXAgfHwgdGhpcy5mb3JtR3JvdXBEaXIgJiYgdGhpcy5mb3JtR3JvdXBEaXIuZm9ybSB8fCB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHt9KSk7XG4gICAgdGhpcy5zZXRGb3JtKGZvcm0pO1xuXG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLmZvcm1BcnJheSB8fCB0aGlzLmZvcm1BcnJheU5hbWUgJiYgZm9ybS5nZXQodGhpcy5mb3JtQXJyYXlOYW1lKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5TmFtZSA9IHRoaXMuZm9ybUFycmF5TmFtZSB8fCB0aGlzLmZvcm1BcnJheSAmJiBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5maW5kKGtleSA9PiBmb3JtLmdldChrZXkpID09PSB0aGlzLmZvcm1BcnJheSkgfHwgJ3Byb3BlcnRpZXMnO1xuICAgIGlmICghdGhpcy5mb3JtQXJyYXkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgTWlzc2luZyBhcnJheSBjb250cm9sICcke3RoaXMuZm9ybUFycmF5TmFtZX0nLiBXaWxsIGNyZWF0ZSBpdCFgKTtcbiAgICAgIHRoaXMuZm9ybUFycmF5ID0gdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSk7XG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCh0aGlzLmZvcm1BcnJheU5hbWUsIHRoaXMuZm9ybUFycmF5KTtcbiAgICB9XG5cbiAgICB0aGlzLmhlbHBlciA9IG5ldyBGb3JtQXJyYXlIZWxwZXI8UHJvcGVydHk+KFxuICAgICAgdGhpcy5mb3JtQXJyYXksXG4gICAgICAodmFsdWUpID0+IHRoaXMudmFsaWRhdG9yLmdldEZvcm1Hcm91cCh2YWx1ZSksXG4gICAgICAodjEsIHYyKSA9PiAoIXYxICYmICF2MikgfHwgdjEua2V5ID09PSB2Mi5rZXksXG4gICAgICAodmFsdWUpID0+IGlzTmlsKHZhbHVlKSB8fCAoaXNOaWwodmFsdWUua2V5KSAmJiBpc05pbCh2YWx1ZS52YWx1ZSkpLFxuICAgICAgdGhpcy5vcHRpb25zXG4gICAgKTtcblxuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBnZXREZWZpbml0aW9uQXQoaW5kZXg6IG51bWJlcik6IEZvcm1GaWVsZERlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uID0gdGhpcy5kZWZpbml0aW9uc0J5SW5kZXhbaW5kZXhdO1xuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgZGVmaW5pdGlvbiA9IHRoaXMudXBkYXRlRGVmaW5pdGlvbkF0KGluZGV4KTtcbiAgICAgIHRoaXMuZGVmaW5pdGlvbnNCeUluZGV4W2luZGV4XSA9IGRlZmluaXRpb247XG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgdXBkYXRlRGVmaW5pdGlvbkF0KGluZGV4OiBudW1iZXIpOiBGb3JtRmllbGREZWZpbml0aW9uIHtcbiAgICBjb25zdCBrZXkgPSAodGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIFVudHlwZWRGb3JtR3JvdXApLmNvbnRyb2xzLmtleS52YWx1ZTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0ga2V5ICYmIHRoaXMuZGVmaW5pdGlvbnNNYXBCeUtleVtrZXldIHx8IG51bGw7XG4gICAgdGhpcy5kZWZpbml0aW9uc0J5SW5kZXhbaW5kZXhdID0gZGVmaW5pdGlvbjsgLy8gdXBkYXRlIG1hcCBieSBpbmRleFxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICByZW1vdmVBdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5oZWxwZXIucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMuZGVmaW5pdGlvbnNCeUluZGV4ID0ge307IC8vIGNsZWFyIG1hcCBieSBpbmRleFxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc1Vua25vd25GaWVsZChmaWVsZEZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBjb25zdCBrZXlDb250cm9sID0gZmllbGRGb3JtLmdldCgna2V5Jyk7XG4gICAgY29uc3Qga2V5ID0ga2V5Q29udHJvbCAmJiBrZXlDb250cm9sLnZhbHVlO1xuICAgIHJldHVybiBrZXkgJiYgaXNOaWwodGhpcy5kZWZpbml0aW9uc01hcEJ5S2V5W2tleV0pO1xuICB9XG5cbiAgc2V0VmFsdWUoZGF0YTogVFtdIHwgYW55KSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm47IC8vIFNraXBcblxuICAgIC8vIFRyYW5zZm9ybSBwcm9wZXJ0aWVzIG1hcCBpbnRvIGFycmF5XG4gICAgY29uc3QgdmFsdWVzID0gRW50aXR5VXRpbHMuZ2V0TWFwQXNBcnJheTxUPihkYXRhKTtcbiAgICB0aGlzLmhlbHBlci5yZXNpemUodmFsdWVzLmxlbmd0aCk7XG4gICAgdGhpcy5oZWxwZXIuZm9ybUFycmF5LnBhdGNoVmFsdWUodmFsdWVzLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuXG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG59XG5cbiIsIlxuPCEtLSBQcm9wZXJ0aWVzIC0tPlxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiPlxuICA8aW9uLWdyaWQgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBwcm9wZXJ0aWVzU2tlbGV0b25cIlxuICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cInByb3BlcnRpZXNcIiBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmcgaW9uLWFsaWduLXNlbGYtZW5kXCIgc2l6ZT1cIjEyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbGJhci1zcGFjZXJcIj48L3NwYW4+XG5cbiAgICAgICAgPCEtLSBTaG93IG1vcmUgb3B0aW9ucyAtLT5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJsaWdodFwiICpuZ0lmPVwiZm9ybUFycmF5Py5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NFVFRJTkdTLkJUTl9TSE9XX01PUkVfSEVMUCd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBlci5hZGQoKVwiPlxuICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fU0hPV19NT1JFPC9pb24tbGFiZWw+XG4gICAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJlbmRcIj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGRGb3JtIG9mIGZpZWxkRm9ybXM7IGxldCBpPWluZGV4XCI+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuXG4gICAgICAgIDwhLS0gcHJvcGVydHkga2V5IC0tPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiNlwiIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cIm5ldmVyXCIgKm5nSWY9XCJmaWVsZEZvcm18Zm9ybUdldENvbnRyb2w6J2tleScgYXMgY29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUSU5HUy5QUk9QRVJUWV9LRVknfHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInVwZGF0ZURlZmluaXRpb25BdChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiMjAraSoyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPlxuXG4gICAgICAgICAgICAgIDwhLS0gV2hlbiBvcHRpb24ncyBrZXkgbm90IGEgd2VsbCBrbm93biBvcHRpb24sIGFkZCBpdCBhcyBmaXJzdCBzZWxlY3Qgb3B0aW9uIC0tPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImlzVW5rbm93bkZpZWxkKGZpZWxkRm9ybSlcIiBbdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7Y29udHJvbC52YWx1ZX19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZWZpbml0aW9uc1wiIFt2YWx1ZV09XCJpdGVtLmtleVwiPnt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmICFoZWxwZXIuaXNMYXN0KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2lvbi1jb2w+XG5cbiAgICAgICAgPCEtLSBwcm9wZXJ0eSB2YWx1ZSAtLT5cbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiIHBhZGRpbmctbGVmdCA+XG4gICAgICAgICAgPGFwcC1mb3JtLWZpZWxkICpuZ0lmPVwiZ2V0RGVmaW5pdGlvbkF0KGkpOyBsZXQgZGVmaW5pdGlvbjsgZWxzZSB1bmtub3duVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdExhYmVsPVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmaW5pdGlvbl09XCJkZWZpbml0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkRm9ybXxmb3JtR2V0Q29udHJvbDondmFsdWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUSU5HUy5QUk9QRVJUWV9WQUxVRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hpcENvbG9yXT1cImNoaXBDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjIwK2kqMiArIDFcIj5cbiAgICAgICAgICA8L2FwcC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdW5rbm93blZhbHVlPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJuZXZlclwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUSU5HUy5QUk9QRVJUWV9WQUxVRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkRm9ybXxmb3JtR2V0Q29udHJvbDondmFsdWUnXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCIyMCtpKjIgKyAxXCI+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX0RFTEVURSd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVBdChpKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIFtoaWRkZW5dPVwiIWhlbHBlci5pc0xhc3QoaSlcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU0VUVElOR1MuQlROX0FERF9QUk9QRVJUWSd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoZWxwZXIuYWRkKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvaW9uLWdyaWQ+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvcGVydGllc1NrZWxldG9uPlxuXG4gIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb3BlcnR5Um93U2tlbGV0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvcGVydHlSb3dTa2VsZXRvblwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9wZXJ0eVJvd1NrZWxldG9uXCI+PC9uZy1jb250YWluZXI+XG4gIDwvaW9uLWdyaWQ+XG5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvcGVydHlSb3dTa2VsZXRvbj5cblxuICA8aW9uLXJvdz5cbiAgICA8IS0tIHByb3BlcnR5IGtleSAtLT5cbiAgICA8aW9uLWNvbD5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IGhpZGRlbj5cbiAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGFuaW1hdGVkIHN0eWxlPVwid2lkdGg6IDYwJVwiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctZHJvcGRvd25cIiBtYXRTdWZmaXg+PC9pb24taWNvbj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9pb24tY29sPlxuICAgIDwhLS0gdmFsdWUgLS0+XG4gICAgPGlvbi1jb2w+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBoaWRkZW4+XG4gICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBhbmltYXRlZCBzdHlsZT1cIndpZHRoOiA2MCVcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2lvbi1jb2w+XG4gICAgPCEtLSBidXR0b25zIC0tPlxuICAgIDxpb24tY29sIHNpemU9XCIyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cblxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMuZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBcUIsU0FBUyxFQUFZLEtBQUssRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUMsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVd2RCxNQUFNLE9BQU8saUJBQWdDLFNBQVEsT0FBWTtJQTJCL0QsWUFDRSxRQUFrQixFQUNSLFdBQStCLEVBQy9CLFdBQWdDLEVBQ2hDLFFBQThCLEVBQzlCLEVBQXFCLEVBQ3JCLFNBQTRCLEVBQ2xCLFlBQWdDO1FBRXBELEtBQUssQ0FBQyxRQUFRLEVBQ1osSUFBSSxDQUFDLENBQUM7UUFSRSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQ2xCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQWhDdEQsd0JBQW1CLEdBQTJCLEVBQUUs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Q0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VudGl0eVV0aWxzfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtGb3JtRmllbGREZWZpbml0aW9uLCBGb3JtRmllbGREZWZpbml0aW9uTWFwfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOaWx9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtEYXRlQWRhcHRlciwgVGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtMb2NhbFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge0FwcEZvcm19IGZyb20gJy4uL2Zvcm0uY2xhc3MnO1xuaW1wb3J0IHtGb3JtQXJyYXlIZWxwZXIsIEZvcm1BcnJheUhlbHBlck9wdGlvbnN9IGZyb20gJy4uL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHtBcHBDb2xvcnMsIFByb3BlcnR5fSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHtQcm9wZXJ0eVZhbGlkYXRvcn0gZnJvbSAnLi9wcm9wZXJ0eS52YWxpZGF0b3InO1xuaW1wb3J0IHtQcmVkZWZpbmVkQ29sb3JzfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9wZXJ0aWVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ3Byb3BlcnRpZXMuZm9ybS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBQcm9wZXJ0eVZhbGlkYXRvciwgdXNlQ2xhc3M6IFByb3BlcnR5VmFsaWRhdG9yfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcFByb3BlcnRpZXNGb3JtPFQgPSBQcm9wZXJ0eT4gZXh0ZW5kcyBBcHBGb3JtPFRbXT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRlZmluaXRpb25zTWFwQnlLZXk6IEZvcm1GaWVsZERlZmluaXRpb25NYXAgPSB7fTtcbiAgZGVmaW5pdGlvbnNCeUluZGV4OiB7IFtpbmRleDogbnVtYmVyXTogRm9ybUZpZWxkRGVmaW5pdGlvbiB9ID0ge307XG4gIGhlbHBlcjogRm9ybUFycmF5SGVscGVyPFByb3BlcnR5PjtcblxuICBASW5wdXQoKSBmb3JtQXJyYXlOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvcm1BcnJheTogVW50eXBlZEZvcm1BcnJheTtcbiAgQElucHV0KCkgb3B0aW9uczogRm9ybUFycmF5SGVscGVyT3B0aW9ucztcbiAgQElucHV0KCkgZGVmaW5pdGlvbnM6IEZvcm1GaWVsZERlZmluaXRpb25bXTtcbiAgQElucHV0KCkgY2hpcENvbG9yOiBUaGVtZVBhbGV0dGUgfCBQcmVkZWZpbmVkQ29sb3JzID0gJ2FjY2VudCc7XG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsdWUgYXMgVFtdO1xuICB9XG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXk/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgZ2V0IGZpZWxkRm9ybXMoKTogVW50eXBlZEZvcm1Hcm91cFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuY29udHJvbHMgYXMgVW50eXBlZEZvcm1Hcm91cFtdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRvcjogUHJvcGVydHlWYWxpZGF0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXI6IEZvcm1Hcm91cERpcmVjdGl2ZVxuICApIHtcbiAgICBzdXBlcihpbmplY3RvcixcbiAgICAgIG51bGwpO1xuXG4gICAgLy90aGlzLmRlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KHRoaXMuZGVmaW5pdGlvbnMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb3IgaW52YWxpZCBhdHRyaWJ1dGUgXFwnZGVmaW5pdGlvbnNcXCcnKTtcbiAgICB9XG5cbiAgICAvLyBGaWxsIG9wdGlvbnMgbWFwXG4gICAgdGhpcy5kZWZpbml0aW9uc01hcEJ5S2V5ID0ge307XG4gICAgdGhpcy5kZWZpbml0aW9ucy5mb3JFYWNoKG8gPT4ge1xuICAgICAgdGhpcy5kZWZpbml0aW9uc01hcEJ5S2V5W28ua2V5XSA9IG87XG4gICAgfSk7XG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgZm9ybVxuICAgIGNvbnN0IGZvcm0gPSAodGhpcy5mb3JtQXJyYXkgJiYgdGhpcy5mb3JtQXJyYXkucGFyZW50IGFzIFVudHlwZWRGb3JtR3JvdXAgfHwgdGhpcy5mb3JtR3JvdXBEaXIgJiYgdGhpcy5mb3JtR3JvdXBEaXIuZm9ybSB8fCB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHt9KSk7XG4gICAgdGhpcy5zZXRGb3JtKGZvcm0pO1xuXG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLmZvcm1BcnJheSB8fCB0aGlzLmZvcm1BcnJheU5hbWUgJiYgZm9ybS5nZXQodGhpcy5mb3JtQXJyYXlOYW1lKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5TmFtZSA9IHRoaXMuZm9ybUFycmF5TmFtZSB8fCB0aGlzLmZvcm1BcnJheSAmJiBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5maW5kKGtleSA9PiBmb3JtLmdldChrZXkpID09PSB0aGlzLmZvcm1BcnJheSkgfHwgJ3Byb3BlcnRpZXMnO1xuICAgIGlmICghdGhpcy5mb3JtQXJyYXkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgTWlzc2luZyBhcnJheSBjb250cm9sICcke3RoaXMuZm9ybUFycmF5TmFtZX0nLiBXaWxsIGNyZWF0ZSBpdCFgKTtcbiAgICAgIHRoaXMuZm9ybUFycmF5ID0gdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSk7XG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCh0aGlzLmZvcm1BcnJheU5hbWUsIHRoaXMuZm9ybUFycmF5KTtcbiAgICB9XG5cbiAgICB0aGlzLmhlbHBlciA9IG5ldyBGb3JtQXJyYXlIZWxwZXI8UHJvcGVydHk+KFxuICAgICAgdGhpcy5mb3JtQXJyYXksXG4gICAgICAodmFsdWUpID0+IHRoaXMudmFsaWRhdG9yLmdldEZvcm1Hcm91cCh2YWx1ZSksXG4gICAgICAodjEsIHYyKSA9PiAoIXYxICYmICF2MikgfHwgdjEua2V5ID09PSB2Mi5rZXksXG4gICAgICAodmFsdWUpID0+IGlzTmlsKHZhbHVlKSB8fCAoaXNOaWwodmFsdWUua2V5KSAmJiBpc05pbCh2YWx1ZS52YWx1ZSkpLFxuICAgICAgdGhpcy5vcHRpb25zXG4gICAgKTtcblxuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBnZXREZWZpbml0aW9uQXQoaW5kZXg6IG51bWJlcik6IEZvcm1GaWVsZERlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uID0gdGhpcy5kZWZpbml0aW9uc0J5SW5kZXhbaW5kZXhdO1xuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgZGVmaW5pdGlvbiA9IHRoaXMudXBkYXRlRGVmaW5pdGlvbkF0KGluZGV4KTtcbiAgICAgIHRoaXMuZGVmaW5pdGlvbnNCeUluZGV4W2luZGV4XSA9IGRlZmluaXRpb247XG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgdXBkYXRlRGVmaW5pdGlvbkF0KGluZGV4OiBudW1iZXIpOiBGb3JtRmllbGREZWZpbml0aW9uIHtcbiAgICBjb25zdCBrZXkgPSAodGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIFVudHlwZWRGb3JtR3JvdXApLmNvbnRyb2xzLmtleS52YWx1ZTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0ga2V5ICYmIHRoaXMuZGVmaW5pdGlvbnNNYXBCeUtleVtrZXldIHx8IG51bGw7XG4gICAgdGhpcy5kZWZpbml0aW9uc0J5SW5kZXhbaW5kZXhdID0gZGVmaW5pdGlvbjsgLy8gdXBkYXRlIG1hcCBieSBpbmRleFxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICByZW1vdmVBdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5oZWxwZXIucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMuZGVmaW5pdGlvbnNCeUluZGV4ID0ge307IC8vIGNsZWFyIG1hcCBieSBpbmRleFxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc1Vua25vd25GaWVsZChmaWVsZEZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBjb25zdCBrZXlDb250cm9sID0gZmllbGRGb3JtLmdldCgna2V5Jyk7XG4gICAgY29uc3Qga2V5ID0ga2V5Q29udHJvbCAmJiBrZXlDb250cm9sLnZhbHVlO1xuICAgIHJldHVybiBrZXkgJiYgaXNOaWwodGhpcy5kZWZpbml0aW9uc01hcEJ5S2V5W2tleV0pO1xuICB9XG5cbiAgc2V0VmFsdWUoZGF0YTogVFtdIHwgYW55KSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm47IC8vIFNraXBcblxuICAgIC8vIFRyYW5zZm9ybSBwcm9wZXJ0aWVzIG1hcCBpbnRvIGFycmF5XG4gICAgY29uc3QgdmFsdWVzID0gRW50aXR5VXRpbHMuZ2V0TWFwQXNBcnJheTxUPihkYXRhKTtcbiAgICB0aGlzLmhlbHBlci5yZXNpemUodmFsdWVzLmxlbmd0aCk7XG4gICAgdGhpcy5oZWxwZXIuZm9ybUFycmF5LnBhdGNoVmFsdWUodmFsdWVzLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuXG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG59XG5cbiIsIlxuPCEtLSBQcm9wZXJ0aWVzIC0tPlxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiPlxuICA8aW9uLWdyaWQgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBwcm9wZXJ0aWVzU2tlbGV0b25cIlxuICAgICAgICAgICAgZm9ybUFycmF5TmFtZT1cInByb3BlcnRpZXNcIiBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmcgaW9uLWFsaWduLXNlbGYtZW5kXCIgc2l6ZT1cIjEyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbGJhci1zcGFjZXJcIj48L3NwYW4+XG5cbiAgICAgICAgPCEtLSBTaG93IG1vcmUgb3B0aW9ucyAtLT5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJsaWdodFwiICpuZ0lmPVwiZm9ybUFycmF5Py5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NFVFRJTkdTLkJUTl9TSE9XX01PUkVfSEVMUCd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBlci5hZGQoKVwiPlxuICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fU0hPV19NT1JFPC9pb24tbGFiZWw+XG4gICAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJlbmRcIj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGRGb3JtIG9mIGZpZWxkRm9ybXM7IGxldCBpPWluZGV4XCI+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuXG4gICAgICAgIDwhLS0gcHJvcGVydHkga2V5IC0tPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiNlwiIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cIm5ldmVyXCIgKm5nSWY9XCJmaWVsZEZvcm18Zm9ybUdldENvbnRyb2w6J2tleScgYXMgY29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUSU5HUy5QUk9QRVJUWV9LRVknfHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInVwZGF0ZURlZmluaXRpb25BdChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiMjAraSoyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPlxuXG4gICAgICAgICAgICAgIDwhLS0gV2hlbiBvcHRpb24ncyBrZXkgbm90IGEgd2VsbCBrbm93biBvcHRpb24sIGFkZCBpdCBhcyBmaXJzdCBzZWxlY3Qgb3B0aW9uIC0tPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImlzVW5rbm93bkZpZWxkKGZpZWxkRm9ybSlcIiBbdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7Y29udHJvbC52YWx1ZX19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZWZpbml0aW9uc1wiIFt2YWx1ZV09XCJpdGVtLmtleVwiPnt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmICFoZWxwZXIuaXNMYXN0KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2lvbi1jb2w+XG5cbiAgICAgICAgPCEtLSBwcm9wZXJ0eSB2YWx1ZSAtLT5cbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiIHBhZGRpbmctbGVmdCA+XG4gICAgICAgICAgPGFwcC1mb3JtLWZpZWxkICpuZ0lmPVwiZ2V0RGVmaW5pdGlvbkF0KGkpOyBsZXQgZGVmaW5pdGlvbjsgZWxzZSB1bmtub3duVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdExhYmVsPVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmaW5pdGlvbl09XCJkZWZpbml0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkRm9ybXxmb3JtR2V0Q29udHJvbDondmFsdWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUSU5HUy5QUk9QRVJUWV9WQUxVRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hpcENvbG9yXT1cImNoaXBDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjIwK2kqMiArIDFcIj5cbiAgICAgICAgICA8L2FwcC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdW5rbm93blZhbHVlPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJuZXZlclwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVRUSU5HUy5QUk9QRVJUWV9WQUxVRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkRm9ybXxmb3JtR2V0Q29udHJvbDondmFsdWUnXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCIyMCtpKjIgKyAxXCI+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX0RFTEVURSd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVBdChpKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIFtoaWRkZW5dPVwiIWhlbHBlci5pc0xhc3QoaSlcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU0VUVElOR1MuQlROX0FERF9QUk9QRVJUWSd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoZWxwZXIuYWRkKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvaW9uLWdyaWQ+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvcGVydGllc1NrZWxldG9uPlxuXG4gIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb3BlcnR5Um93U2tlbGV0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvcGVydHlSb3dTa2VsZXRvblwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9wZXJ0eVJvd1NrZWxldG9uXCI+PC9uZy1jb250YWluZXI+XG4gIDwvaW9uLWdyaWQ+XG5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvcGVydHlSb3dTa2VsZXRvbj5cblxuICA8aW9uLXJvdz5cbiAgICA8IS0tIHByb3BlcnR5IGtleSAtLT5cbiAgICA8aW9uLWNvbD5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IGhpZGRlbj5cbiAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0IGFuaW1hdGVkIHN0eWxlPVwid2lkdGg6IDYwJVwiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctZHJvcGRvd25cIiBtYXRTdWZmaXg+PC9pb24taWNvbj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9pb24tY29sPlxuICAgIDwhLS0gdmFsdWUgLS0+XG4gICAgPGlvbi1jb2w+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBoaWRkZW4+XG4gICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBhbmltYXRlZCBzdHlsZT1cIndpZHRoOiA2MCVcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2lvbi1jb2w+XG4gICAgPCEtLSBidXR0b25zIC0tPlxuICAgIDxpb24tY29sIHNpemU9XCIyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cblxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -6,15 +6,15 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ngx-translate/core";
7
7
  export class AppPropertiesFormModule {
8
8
  }
9
- AppPropertiesFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppPropertiesFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- AppPropertiesFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: AppPropertiesFormModule, declarations: [
9
+ AppPropertiesFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppPropertiesFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ AppPropertiesFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: AppPropertiesFormModule, declarations: [
11
11
  // Other components
12
12
  AppPropertiesForm], imports: [SharedModule, i1.TranslateModule], exports: [TranslateModule,
13
13
  // Components
14
14
  AppPropertiesForm] });
15
- AppPropertiesFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppPropertiesFormModule, imports: [SharedModule,
15
+ AppPropertiesFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppPropertiesFormModule, imports: [SharedModule,
16
16
  TranslateModule.forChild(), TranslateModule] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppPropertiesFormModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppPropertiesFormModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
32
32
  ]
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBbUJwRCxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUI7UUFWaEMsbUJBQW1CO1FBQ25CLGlCQUFpQixhQU5qQixZQUFZLGlDQVNaLGVBQWU7UUFFZixhQUFhO1FBQ2IsaUJBQWlCO3NIQUdSLHVCQUF1QixZQWZoQyxZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRSxFQVExQixlQUFlOzRGQU1OLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBRUQsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFFZixhQUFhO3dCQUNiLGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQge0FwcFByb3BlcnRpZXNGb3JtfSBmcm9tICcuL3Byb3BlcnRpZXMuZm9ybSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBPdGhlciBjb21wb25lbnRzXG4gICAgQXBwUHJvcGVydGllc0Zvcm1cbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBQcm9wZXJ0aWVzRm9ybSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBQcm9wZXJ0aWVzRm9ybU1vZHVsZSB7XG5cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBbUJwRCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUI7UUFWaEMsbUJBQW1CO1FBQ25CLGlCQUFpQixhQU5qQixZQUFZLGlDQVNaLGVBQWU7UUFFZixhQUFhO1FBQ2IsaUJBQWlCO3FIQUdSLHVCQUF1QixZQWZoQyxZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRSxFQVExQixlQUFlOzJGQU1OLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDM0I7b0JBRUQsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFFZixhQUFhO3dCQUNiLGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQge0FwcFByb3BlcnRpZXNGb3JtfSBmcm9tICcuL3Byb3BlcnRpZXMuZm9ybSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKClcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBPdGhlciBjb21wb25lbnRzXG4gICAgQXBwUHJvcGVydGllc0Zvcm1cbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBQcm9wZXJ0aWVzRm9ybSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBQcm9wZXJ0aWVzRm9ybU1vZHVsZSB7XG5cbn1cbiJdfQ==