@coolon/angular-ui-powerups 16.1.0-aplpha.18 → 16.1.0-aplpha.181

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 (251) hide show
  1. package/assets/activities/activities.scss +5 -3
  2. package/assets/activities/input-activities.scss +14 -6
  3. package/assets/draw.scss +20 -0
  4. package/assets/form.scss +74 -27
  5. package/assets/icons.scss +1 -0
  6. package/assets/layout.scss +3 -0
  7. package/assets/styles.scss +2 -0
  8. package/assets/table.scss +41 -19
  9. package/assets/tabs.scss +15 -5
  10. package/esm2022/lib/animations/slide-animations.mjs +15 -10
  11. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +28 -5
  12. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  13. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +115 -0
  14. package/esm2022/lib/components/commands/command/command.component.mjs +34 -29
  15. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  16. package/esm2022/lib/components/commands/command-face.mjs +12 -11
  17. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +31 -8
  18. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -23
  19. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +11 -20
  20. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -7
  21. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +11 -20
  22. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +8 -6
  23. package/esm2022/lib/components/commands/separator.component.mjs +6 -12
  24. package/esm2022/lib/components/components.module.mjs +55 -30
  25. package/esm2022/lib/components/disposable-component.mjs +32 -7
  26. package/esm2022/lib/components/exports.mjs +14 -5
  27. package/esm2022/lib/components/file/file-download/file-download.component.mjs +78 -0
  28. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  29. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -4
  30. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
  31. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  32. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +4 -4
  33. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +86 -9
  34. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  35. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  36. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  37. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +36 -11
  38. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -4
  39. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  40. package/esm2022/lib/components/loadable-component.mjs +21 -10
  41. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  42. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  43. package/esm2022/lib/components/tables/abstract-table-model.mjs +112 -63
  44. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  45. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  46. package/esm2022/lib/components/tables/column/column-model.mjs +16 -6
  47. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  48. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  49. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  50. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  51. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  52. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  53. package/esm2022/lib/components/tables/column/selection-column-model.mjs +35 -13
  54. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +2 -2
  55. package/esm2022/lib/components/tables/editor/edit-session.mjs +1 -1
  56. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  57. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  58. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
  59. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
  60. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
  61. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +23 -5
  62. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  63. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +7 -4
  64. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +2 -0
  65. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +153 -0
  66. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
  67. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
  68. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +45 -0
  69. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +71 -0
  70. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
  71. package/esm2022/lib/components/tables/table/table-model.mjs +12 -3
  72. package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
  73. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  74. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  75. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  76. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +12 -5
  77. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -7
  78. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  79. package/esm2022/lib/directives/command.directive.mjs +18 -7
  80. package/esm2022/lib/directives/directives.module.mjs +1 -1
  81. package/esm2022/lib/directives/exports.mjs +2 -1
  82. package/esm2022/lib/directives/highlight.pipe.mjs +9 -8
  83. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  84. package/esm2022/lib/interaction/abstract-interaction-context.mjs +6 -7
  85. package/esm2022/lib/interaction/activity-context.mjs +4 -0
  86. package/esm2022/lib/interaction/activity.mjs +20 -21
  87. package/esm2022/lib/interaction/alert.mjs +2 -2
  88. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +11 -8
  89. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +1 -41
  90. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +28 -16
  91. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +8 -2
  92. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +46 -15
  93. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +53 -15
  94. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  95. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  96. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  97. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  98. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
  99. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +55 -0
  100. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +54 -0
  101. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +4 -8
  102. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +4 -8
  103. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +7 -9
  104. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  105. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +4 -4
  106. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
  107. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  108. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
  109. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  110. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
  111. package/esm2022/lib/interaction/confirm.mjs +26 -2
  112. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  113. package/esm2022/lib/interaction/exports.mjs +6 -1
  114. package/esm2022/lib/interaction/interaction-context-provider.mjs +17 -0
  115. package/esm2022/lib/interaction/interaction-context.mjs +3 -2
  116. package/esm2022/lib/interaction/interaction.module.mjs +22 -14
  117. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  118. package/esm2022/lib/interaction/services/interaction.service.mjs +18 -6
  119. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +2 -2
  120. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +23 -4
  121. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +4 -5
  122. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  123. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  124. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
  125. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  126. package/esm2022/lib/place/guards/place.guard.mjs +6 -5
  127. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  128. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  129. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
  130. package/esm2022/lib/place/place-auth-service.mjs +7 -6
  131. package/esm2022/lib/place/place-component.mjs +29 -19
  132. package/esm2022/lib/place/place-definition.mjs +15 -4
  133. package/esm2022/lib/place/place-history.mjs +2 -2
  134. package/esm2022/lib/place/place-router.mjs +67 -53
  135. package/esm2022/lib/place/place.decorator.mjs +2 -2
  136. package/esm2022/lib/place/place.module.mjs +1 -5
  137. package/esm2022/lib/place/route/formatter.mjs +2 -2
  138. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  139. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  140. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  141. package/esm2022/lib/place/visit-segment.mjs +2 -2
  142. package/esm2022/lib/place/visit.mjs +2 -2
  143. package/esm2022/lib/services/exports.mjs +2 -1
  144. package/esm2022/lib/services/loading-monitor.mjs +83 -0
  145. package/fesm2022/coolon-angular-ui-powerups.mjs +2586 -1113
  146. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  147. package/lib/animations/slide-animations.d.ts +1 -0
  148. package/lib/components/cards/abstract-card-container.component.d.ts +6 -3
  149. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  150. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +30 -0
  151. package/lib/components/commands/command/command.component.d.ts +8 -8
  152. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  153. package/lib/components/commands/command-face.d.ts +8 -9
  154. package/lib/components/commands/group/popup-aware.component.d.ts +9 -4
  155. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +4 -4
  156. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +2 -4
  157. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +2 -0
  158. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +2 -4
  159. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  160. package/lib/components/commands/separator.component.d.ts +2 -4
  161. package/lib/components/components.module.d.ts +60 -55
  162. package/lib/components/disposable-component.d.ts +16 -3
  163. package/lib/components/exports.d.ts +13 -4
  164. package/lib/components/file/file-download/file-download.component.d.ts +43 -0
  165. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  166. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
  167. package/lib/components/forms/form-field.d.ts +5 -0
  168. package/lib/components/forms/number-input/number-input.component.d.ts +16 -4
  169. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  170. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  171. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  172. package/lib/components/forms/string-input/string-input.component.d.ts +9 -1
  173. package/lib/components/forms/text-input/text-input.component.d.ts +3 -0
  174. package/lib/components/loadable-component.d.ts +10 -5
  175. package/lib/components/resize-aware.component.d.ts +24 -5
  176. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  177. package/lib/components/tables/abstract-table-model.d.ts +50 -25
  178. package/lib/components/tables/abstract-table.component.d.ts +4 -3
  179. package/lib/components/tables/column/column-manager.d.ts +19 -0
  180. package/lib/components/tables/column/column-model.d.ts +7 -3
  181. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  182. package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
  183. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
  184. package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
  185. package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
  186. package/lib/components/tables/column/property-column-model.d.ts +3 -2
  187. package/lib/components/tables/column/selection-column-model.d.ts +10 -4
  188. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  189. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  190. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  191. package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
  192. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
  193. package/lib/components/tables/renderer/cell-portal-ref.d.ts +20 -12
  194. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -1
  195. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +7 -0
  196. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +42 -0
  197. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
  198. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +2 -3
  199. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +19 -0
  200. package/lib/components/tables/renderer/{table-more-menu/table-more-menu.component.d.ts → table-custom-more-menu/table-custom-more-menu.component.d.ts} +8 -7
  201. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
  202. package/lib/components/tables/table/table-model.d.ts +4 -4
  203. package/lib/components/tables/table/table.component.d.ts +14 -10
  204. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  205. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
  206. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  207. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  208. package/lib/directives/command.directive.d.ts +6 -4
  209. package/lib/directives/exports.d.ts +1 -0
  210. package/lib/directives/resize-observer.directive.d.ts +16 -0
  211. package/lib/interaction/abstract-interaction-context.d.ts +1 -1
  212. package/lib/interaction/activity-context.d.ts +9 -0
  213. package/lib/interaction/activity.d.ts +7 -7
  214. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +2 -1
  215. package/lib/interaction/components/abstract-dialog.component.d.ts +5 -14
  216. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +12 -9
  217. package/lib/interaction/components/activity-body/activity-body.component.d.ts +2 -1
  218. package/lib/interaction/components/activity-container/activity-container.component.d.ts +10 -4
  219. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
  220. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  221. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +6 -1
  222. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +17 -0
  223. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +15 -0
  224. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  225. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
  226. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  227. package/lib/interaction/confirm.d.ts +4 -0
  228. package/lib/interaction/exports.d.ts +5 -0
  229. package/lib/interaction/interaction-context-provider.d.ts +11 -0
  230. package/lib/interaction/interaction-context.d.ts +7 -1
  231. package/lib/interaction/interaction.module.d.ts +35 -33
  232. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
  233. package/lib/interaction/services/interaction.service.d.ts +2 -1
  234. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +1 -1
  235. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +3 -1
  236. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  237. package/lib/place/place-auth-service.d.ts +4 -4
  238. package/lib/place/place-component.d.ts +7 -5
  239. package/lib/place/place-definition.d.ts +2 -0
  240. package/lib/place/place-router.d.ts +8 -3
  241. package/lib/place/place.module.d.ts +4 -5
  242. package/lib/services/exports.d.ts +1 -0
  243. package/lib/services/loading-monitor.d.ts +29 -0
  244. package/package.json +6 -4
  245. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  246. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +0 -33
  247. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +0 -60
  248. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +0 -84
  249. package/lib/components/tables/column/column-list-model.d.ts +0 -13
  250. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +0 -15
  251. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +0 -28
@@ -1,70 +1,74 @@
1
- import { Binding, DebugContext, Functions } from '@coolon/pectin';
2
1
  import { Klass, Opts } from '@coolon/typescript-utilities';
3
2
  import { ROUTE_PARAMETER_LIST_KEY } from '../place-component';
4
3
  import { ParameterDefinition } from './parameter-definition';
5
- function installMechanics(parameterDef, prototype, propertyKey, tagPrefix) {
6
- Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
7
- function getMechanics(instance, propertyName) {
8
- const key = `__mechanics_${propertyName.toString()}`;
9
- if (!instance[key]) {
10
- const backingModel = parameterDef.createBackingModel();
11
- instance[key] = {
12
- backingModel: backingModel,
13
- binding: null
14
- };
15
- const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
16
- DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
17
- }
18
- return instance[key];
19
- }
20
- Object.defineProperty(prototype, propertyKey, {
21
- get: function () {
22
- return getMechanics(this, propertyKey).backingModel;
23
- },
24
- set: function (userModel) {
25
- const mechanics = getMechanics(this, propertyKey);
26
- // This handles the scenario where we want to push an existing value model (such as a form model)
27
- // to and from the route.
28
- if (mechanics.binding) {
29
- mechanics.binding.dispose();
30
- }
31
- if (userModel) {
32
- mechanics.binding = new Binding(mechanics.backingModel, userModel, {
33
- toLeft: Functions.identity,
34
- toRight: Functions.identity
35
- });
36
- if (parameterDef.isEmptyValue(userModel.value)) {
37
- // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
38
- mechanics.binding.writeRight(); // push the visit into the user model;
39
- }
40
- else {
41
- if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
42
- console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
43
- }
44
- mechanics.binding.writeLeft(); // push the user model into the visit
45
- }
46
- }
47
- }
48
- });
49
- }
4
+ // function installMechanics<M extends HasValue<any>>(parameterDef: ParameterDefinition<any>, prototype: object, propertyKey: string | symbol, tagPrefix: string) {
5
+ //
6
+ // Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
7
+ //
8
+ // function getMechanics(instance: M, propertyName: string | symbol) {
9
+ // const key = `__mechanics_${propertyName.toString()}`;
10
+ // if (!instance[key]) {
11
+ // const backingModel = parameterDef.createBackingModel();
12
+ // instance[key] = {
13
+ // backingModel: backingModel,
14
+ // binding: null as Binding<any, any>
15
+ // };
16
+ // const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
17
+ // DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
18
+ // }
19
+ // return instance[key];
20
+ // }
21
+ //
22
+ // Object.defineProperty(prototype, propertyKey, {
23
+ // get: function() {
24
+ // return getMechanics(this, propertyKey).backingModel;
25
+ // },
26
+ // set: function(userModel: M) {
27
+ // const mechanics = getMechanics(this, propertyKey);
28
+ // // This handles the scenario where we want to push an existing value model (such as a form model)
29
+ // // to and from the route.
30
+ // if (mechanics.binding) {
31
+ // mechanics.binding.dispose();
32
+ // }
33
+ // if (userModel) {
34
+ // mechanics.binding = new Binding(mechanics.backingModel, userModel, {
35
+ // toLeft: Functions.identity,
36
+ // toRight: Functions.identity
37
+ // });
38
+ // if (parameterDef.isEmptyValue(userModel.value)) {
39
+ // // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
40
+ // mechanics.binding.writeRight(); // push the visit into the user model;
41
+ // } else {
42
+ // if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
43
+ // console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
44
+ // }
45
+ // mechanics.binding.writeLeft(); // push the user model into the visit
46
+ // }
47
+ // }
48
+ // }
49
+ // });
50
+ // }
50
51
  export function RouteId(formatter, options) {
51
52
  return (prototype, propertyKey) => {
52
53
  const parameterDef = new ParameterDefinition.RouteId(propertyKey.toString(), options, formatter);
53
- installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
54
+ // installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
55
+ Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
54
56
  };
55
57
  }
56
58
  export function VisitParameter(options) {
57
59
  const opts = Opts.get(options);
58
60
  return (prototype, propertyKey) => {
59
61
  const parameterDef = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
60
- installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
62
+ Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
63
+ // installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
61
64
  };
62
65
  }
63
66
  export function VisitParameterList(options) {
64
67
  const opts = Opts.get(options);
65
68
  return (prototype, propertyKey) => {
66
69
  const parameterDef = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
67
- installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
70
+ Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
71
+ // installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
68
72
  };
69
73
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFpQixZQUFZLEVBQUUsU0FBUyxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQStCM0QsU0FBUyxnQkFBZ0IsQ0FBMEIsWUFBc0MsRUFBRSxTQUFpQixFQUFFLFdBQTRCLEVBQUUsU0FBaUI7SUFFM0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVsRixTQUFTLFlBQVksQ0FBQyxRQUFXLEVBQUUsWUFBNkI7UUFDOUQsTUFBTSxHQUFHLEdBQUcsZUFBZSxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRztnQkFDZCxZQUFZLEVBQUUsWUFBWTtnQkFDMUIsT0FBTyxFQUFFLElBQXlCO2FBQ25DLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLFNBQVMsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FB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LENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCaW5kaW5nLCBDb25zdHJ1Y3RhYmxlLCBEZWJ1Z0NvbnRleHQsIEZ1bmN0aW9ucywgSGFzVmFsdWV9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7S2xhc3MsIE9wdHN9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtST1VURV9QQVJBTUVURVJfTElTVF9LRVl9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1hdHRlcn0gZnJvbSAnLi9mb3JtYXR0ZXInO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7UGFyYW1ldGVyU2FuaXRpc2VyfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVJZE9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZW1lbWJlcj86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IFQ7XG4gIHNhbml0aXNlcj86IENvbnN0cnVjdGFibGU8UGFyYW1ldGVyU2FuaXRpc2VyPFQ+PiB8IFBhcmFtZXRlclNhbml0aXNlcjxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVBhcmFtZXRlck9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZW1lbWJlcj86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IFQ7XG4gIHN0b3JlSW5Vcmw/OiBGb3JtYXR0ZXI8VD5cbiAgc2FuaXRpc2VyPzogQ29uc3RydWN0YWJsZTxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlTGlzdFBhcmFtZXRlck9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZW1lbWJlcj86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IFRbXTtcbiAgc3RvcmVJblVybD86IEZvcm1hdHRlcjxUPlxuICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUW10+PiB8IFBhcmFtZXRlclNhbml0aXNlcjxUW10+O1xufVxuXG5cbmZ1bmN0aW9uIGluc3RhbGxNZWNoYW5pY3M8TSBleHRlbmRzIEhhc1ZhbHVlPGFueT4+KHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+LCBwcm90b3R5cGU6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCwgdGFnUHJlZml4OiBzdHJpbmcpIHtcblxuICBLbGFzcy5nZXQocHJvdG90eXBlKS5hZGRUb093bk1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHBhcmFtZXRlckRlZik7XG5cbiAgZnVuY3Rpb24gZ2V0TWVjaGFuaWNzKGluc3RhbmNlOiBNLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyB8IHN5bWJvbCkge1xuICAgIGNvbnN0IGtleSA9IGBfX21lY2hhbmljc18ke3Byb3BlcnR5TmFtZS50b1N0cmluZygpfWA7XG4gICAgaWYgKCFpbnN0YW5jZVtrZXldKSB7XG4gICAgICBjb25zdCBiYWNraW5nTW9kZWwgPSBwYXJhbWV0ZXJEZWYuY3JlYXRlQmFja2luZ01vZGVsKCk7XG4gICAgICBpbnN0YW5jZVtrZXldID0ge1xuICAgICAgICBiYWNraW5nTW9kZWw6IGJhY2tpbmdNb2RlbCxcbiAgICAgICAgYmluZGluZzogbnVsbCBhcyBCaW5kaW5nPGFueSwgYW55PlxuICAgICAgfTtcbiAgICAgIGNvbnN0IHRhZyA9IGAke3RhZ1ByZWZpeH0oJHtwcm90b3R5cGUuY29uc3RydWN0b3IubmFtZX0uJHtwcm9wZXJ0eUtleS50b1N0cmluZygpfSlgO1xuICAgICAgRGVidWdDb250ZXh0LmdldE9yQ3JlYXRlKGluc3RhbmNlW2tleV0uYmFja2luZ01vZGVsKS50YWcodGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlW2tleV07XG4gIH1cblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCBwcm9wZXJ0eUtleSwge1xuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gZ2V0TWVjaGFuaWNzKHRoaXMsIHByb3BlcnR5S2V5KS5iYWNraW5nTW9kZWw7XG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uKHVzZXJNb2RlbDogTSkge1xuICAgICAgY29uc3QgbWVjaGFuaWNzID0gZ2V0TWVjaGFuaWNzKHRoaXMsIHByb3BlcnR5S2V5KTtcbiAgICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgc2NlbmFyaW8gd2hlcmUgd2Ugd2FudCB0byBwdXNoIGFuIGV4aXN0aW5nIHZhbHVlIG1vZGVsIChzdWNoIGFzIGEgZm9ybSBtb2RlbClcbiAgICAgIC8vIHRvIGFuZCBmcm9tIHRoZSByb3V0ZS5cbiAgICAgIGlmIChtZWNoYW5pY3MuYmluZGluZykge1xuICAgICAgICBtZWNoYW5pY3MuYmluZGluZy5kaXNwb3NlKCk7XG4gICAgICB9XG4gICAgICBpZiAodXNlck1vZGVsKSB7XG4gICAgICAgIG1lY2hhbmljcy5iaW5kaW5nID0gbmV3IEJpbmRpbmcobWVjaGFuaWNzLmJhY2tpbmdNb2RlbCwgdXNlck1vZGVsLCB7XG4gICAgICAgICAgdG9MZWZ0OiBGdW5jdGlvbnMuaWRlbnRpdHksXG4gICAgICAgICAgdG9SaWdodDogRnVuY3Rpb25zLmlkZW50aXR5XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocGFyYW1ldGVyRGVmLmlzRW1wdHlWYWx1ZSh1c2VyTW9kZWwudmFsdWUpKSB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coYFB1c2ggdmlzaXQgdG8gbW9kZWwgZm9yICR7dGFnfWAsIHt2YWx1ZTogbWVjaGFuaWNzLmJhY2tpbmdNb2RlbC52YWx1ZX0pO1xuICAgICAgICAgIG1lY2hhbmljcy5iaW5kaW5nLndyaXRlUmlnaHQoKTsgLy8gcHVzaCB0aGUgdmlzaXQgaW50byB0aGUgdXNlciBtb2RlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIXBhcmFtZXRlckRlZi5pc0VtcHR5VmFsdWUobWVjaGFuaWNzLmJhY2tpbmdNb2RlbC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQXNzaWduaW5nIGEgdmlzaXQgbW9kZWwgd2l0aCBhbiBleGlzdGluZyB2YWx1ZSB0byBhIHZpc2l0IHBhcmFtZXRlciB3aXRoIGFuIGV4aXN0aW5nIHZhbHVlLiAgVmlzaXQgcGFyYW1ldGVyIHdpbGwgYmUgb3ZlcnJpZGRlbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZWNoYW5pY3MuYmluZGluZy53cml0ZUxlZnQoKTsgLy8gcHVzaCB0aGUgdXNlciBtb2RlbCBpbnRvIHRoZSB2aXNpdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlSWQ8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4oZm9ybWF0dGVyOiBGb3JtYXR0ZXI8VD4sIG9wdGlvbnM/OiBSb3V0ZUlkT3B0aW9uczxUPik6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgcmV0dXJuIChwcm90b3R5cGU6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IG5ldyBQYXJhbWV0ZXJEZWZpbml0aW9uLlJvdXRlSWQocHJvcGVydHlLZXkudG9TdHJpbmcoKSwgb3B0aW9ucywgZm9ybWF0dGVyKTtcbiAgICBpbnN0YWxsTWVjaGFuaWNzKHBhcmFtZXRlckRlZiwgcHJvdG90eXBlLCBwcm9wZXJ0eUtleSwgJ0BSb3V0ZUlkJyk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXNpdFBhcmFtZXRlcjxUPihvcHRpb25zPzogUm91dGVQYXJhbWV0ZXJPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIHJldHVybiAocHJvdG90eXBlOiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBuZXcgUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcihwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBvcHRzLmdldE9wdGlvbmFsKCdzdG9yZUluVXJsJywgbnVsbCkpO1xuICAgIGluc3RhbGxNZWNoYW5pY3MocGFyYW1ldGVyRGVmLCBwcm90b3R5cGUsIHByb3BlcnR5S2V5LCAnQFZpc2l0UGFyYW1ldGVyJyk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXNpdFBhcmFtZXRlckxpc3Q8RT4ob3B0aW9ucz86IFJvdXRlTGlzdFBhcmFtZXRlck9wdGlvbnM8RT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIGNvbnN0IG9wdHMgPSBPcHRzLmdldChvcHRpb25zKTtcbiAgcmV0dXJuIChwcm90b3R5cGU6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IG5ldyBQYXJhbWV0ZXJEZWZpbml0aW9uLkFycmF5UGFyYW1ldGVyKHByb3BlcnR5S2V5LnRvU3RyaW5nKCksIG9wdGlvbnMsIG9wdHMuZ2V0T3B0aW9uYWwoJ3N0b3JlSW5VcmwnLCBudWxsKSk7XG4gICAgaW5zdGFsbE1lY2hhbmljcyhwYXJhbWV0ZXJEZWYsIHByb3RvdHlwZSwgcHJvcGVydHlLZXksICdAVmlzaXRQYXJhbWV0ZXJMaXN0Jyk7XG4gIH07XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXpELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTVELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBK0IzRCxtS0FBbUs7QUFDbkssRUFBRTtBQUNGLHVGQUF1RjtBQUN2RixFQUFFO0FBQ0Ysd0VBQXdFO0FBQ3hFLDREQUE0RDtBQUM1RCw0QkFBNEI7QUFDNUIsZ0VBQWdFO0FBQ2hFLDBCQUEwQjtBQUMxQixzQ0FBc0M7QUFDdEMsNkNBQTZDO0FBQzdDLFdBQVc7QUFDWCw2RkFBNkY7QUFDN0YsdUVBQXVFO0FBQ3ZFLFFBQVE7QUFDUiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOLEVBQUU7QUFDRixvREFBb0Q7QUFDcEQsd0JBQXdCO0FBQ3hCLDZEQUE2RDtBQUM3RCxTQUFTO0FBQ1Qsb0NBQW9DO0FBQ3BDLDJEQUEyRDtBQUMzRCwwR0FBMEc7QUFDMUcsa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyx1Q0FBdUM7QUFDdkMsVUFBVTtBQUNWLHlCQUF5QjtBQUN6QiwrRUFBK0U7QUFDL0Usd0NBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxjQUFjO0FBQ2QsNERBQTREO0FBQzVELHFHQUFxRztBQUNyRyxtRkFBbUY7QUFDbkYsbUJBQW1CO0FBQ25CLDRFQUE0RTtBQUM1RSwrSkFBK0o7QUFDL0osY0FBYztBQUNkLGlGQUFpRjtBQUNqRixZQUFZO0FBQ1osVUFBVTtBQUNWLFFBQVE7QUFDUixRQUFRO0FBQ1IsSUFBSTtBQUVKLE1BQU0sVUFBVSxPQUFPLENBQTRCLFNBQXVCLEVBQUUsT0FBMkI7SUFDckcsT0FBTyxDQUFDLFNBQWlCLEVBQUUsV0FBNEIsRUFBRSxFQUFFO1FBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakcsc0VBQXNFO1FBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUksT0FBa0M7SUFDbEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUE0QixFQUFFLEVBQUU7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25JLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEYsNkVBQTZFO0lBQy9FLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUksT0FBc0M7SUFDMUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUE0QixFQUFFLEVBQUU7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25JLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEYsaUZBQWlGO0lBQ25GLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCaW5kaW5nLCBDYW5Qcm94eSxcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVidWdDb250ZXh0LCBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRnVuY3Rpb25zLFxuICBIYXNWYWx1ZSxcbiAgbGFuZyxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByb3hpZnksIFByb3hpZnlNZWNoYW5pY3MsIFZhbHVlTW9kZWxcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtLbGFzcywgT3B0c30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQge2lzTmlsfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge1JPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWX0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybWF0dGVyfSBmcm9tICcuL2Zvcm1hdHRlcic7XG5pbXBvcnQge1BhcmFtZXRlckRlZmluaXRpb259IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuaW1wb3J0IHtQYXJhbWV0ZXJTYW5pdGlzZXJ9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZUlkT3B0aW9uczxUPiB7XG4gIGFzPzogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIHJlbWVtYmVyPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogVDtcbiAgc2FuaXRpc2VyPzogQ29uc3RydWN0YWJsZTxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUGFyYW1ldGVyT3B0aW9uczxUPiB7XG4gIGFzPzogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIHJlbWVtYmVyPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogVDtcbiAgc3RvcmVJblVybD86IEZvcm1hdHRlcjxUPlxuICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXI8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVMaXN0UGFyYW1ldGVyT3B0aW9uczxUPiB7XG4gIGFzPzogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIHJlbWVtYmVyPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogVFtdO1xuICBzdG9yZUluVXJsPzogRm9ybWF0dGVyPFQ+XG4gIHNhbml0aXNlcj86IENvbnN0cnVjdGFibGU8UGFyYW1ldGVyU2FuaXRpc2VyPFRbXT4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyPFRbXT47XG59XG5cblxuLy8gZnVuY3Rpb24gaW5zdGFsbE1lY2hhbmljczxNIGV4dGVuZHMgSGFzVmFsdWU8YW55Pj4ocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4sIHByb3RvdHlwZTogb2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sLCB0YWdQcmVmaXg6IHN0cmluZykge1xuLy9cbi8vICAgS2xhc3MuZ2V0KHByb3RvdHlwZSkuYWRkVG9Pd25NZXRhZGF0YUxpc3QoUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbWV0ZXJEZWYpO1xuLy9cbi8vICAgZnVuY3Rpb24gZ2V0TWVjaGFuaWNzKGluc3RhbmNlOiBNLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyB8IHN5bWJvbCkge1xuLy8gICAgIGNvbnN0IGtleSA9IGBfX21lY2hhbmljc18ke3Byb3BlcnR5TmFtZS50b1N0cmluZygpfWA7XG4vLyAgICAgaWYgKCFpbnN0YW5jZVtrZXldKSB7XG4vLyAgICAgICBjb25zdCBiYWNraW5nTW9kZWwgPSBwYXJhbWV0ZXJEZWYuY3JlYXRlQmFja2luZ01vZGVsKCk7XG4vLyAgICAgICBpbnN0YW5jZVtrZXldID0ge1xuLy8gICAgICAgICBiYWNraW5nTW9kZWw6IGJhY2tpbmdNb2RlbCxcbi8vICAgICAgICAgYmluZGluZzogbnVsbCBhcyBCaW5kaW5nPGFueSwgYW55PlxuLy8gICAgICAgfTtcbi8vICAgICAgIGNvbnN0IHRhZyA9IGAke3RhZ1ByZWZpeH0oJHtwcm90b3R5cGUuY29uc3RydWN0b3IubmFtZX0uJHtwcm9wZXJ0eUtleS50b1N0cmluZygpfSlgO1xuLy8gICAgICAgRGVidWdDb250ZXh0LmdldE9yQ3JlYXRlKGluc3RhbmNlW2tleV0uYmFja2luZ01vZGVsKS50YWcodGFnKTtcbi8vICAgICB9XG4vLyAgICAgcmV0dXJuIGluc3RhbmNlW2tleV07XG4vLyAgIH1cbi8vXG4vLyAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsIHByb3BlcnR5S2V5LCB7XG4vLyAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbi8vICAgICAgIHJldHVybiBnZXRNZWNoYW5pY3ModGhpcywgcHJvcGVydHlLZXkpLmJhY2tpbmdNb2RlbDtcbi8vICAgICB9LFxuLy8gICAgIHNldDogZnVuY3Rpb24odXNlck1vZGVsOiBNKSB7XG4vLyAgICAgICBjb25zdCBtZWNoYW5pY3MgPSBnZXRNZWNoYW5pY3ModGhpcywgcHJvcGVydHlLZXkpO1xuLy8gICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoZSBzY2VuYXJpbyB3aGVyZSB3ZSB3YW50IHRvIHB1c2ggYW4gZXhpc3RpbmcgdmFsdWUgbW9kZWwgKHN1Y2ggYXMgYSBmb3JtIG1vZGVsKVxuLy8gICAgICAgLy8gdG8gYW5kIGZyb20gdGhlIHJvdXRlLlxuLy8gICAgICAgaWYgKG1lY2hhbmljcy5iaW5kaW5nKSB7XG4vLyAgICAgICAgIG1lY2hhbmljcy5iaW5kaW5nLmRpc3Bvc2UoKTtcbi8vICAgICAgIH1cbi8vICAgICAgIGlmICh1c2VyTW9kZWwpIHtcbi8vICAgICAgICAgbWVjaGFuaWNzLmJpbmRpbmcgPSBuZXcgQmluZGluZyhtZWNoYW5pY3MuYmFja2luZ01vZGVsLCB1c2VyTW9kZWwsIHtcbi8vICAgICAgICAgICB0b0xlZnQ6IEZ1bmN0aW9ucy5pZGVudGl0eSxcbi8vICAgICAgICAgICB0b1JpZ2h0OiBGdW5jdGlvbnMuaWRlbnRpdHlcbi8vICAgICAgICAgfSk7XG4vLyAgICAgICAgIGlmIChwYXJhbWV0ZXJEZWYuaXNFbXB0eVZhbHVlKHVzZXJNb2RlbC52YWx1ZSkpIHtcbi8vICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhgUHVzaCB2aXNpdCB0byBtb2RlbCBmb3IgJHt0YWd9YCwge3ZhbHVlOiBtZWNoYW5pY3MuYmFja2luZ01vZGVsLnZhbHVlfSk7XG4vLyAgICAgICAgICAgbWVjaGFuaWNzLmJpbmRpbmcud3JpdGVSaWdodCgpOyAvLyBwdXNoIHRoZSB2aXNpdCBpbnRvIHRoZSB1c2VyIG1vZGVsO1xuLy8gICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgIGlmICghcGFyYW1ldGVyRGVmLmlzRW1wdHlWYWx1ZShtZWNoYW5pY3MuYmFja2luZ01vZGVsLnZhbHVlKSkge1xuLy8gICAgICAgICAgICAgY29uc29sZS53YXJuKCdBc3NpZ25pbmcgYSB2aXNpdCBtb2RlbCB3aXRoIGFuIGV4aXN0aW5nIHZhbHVlIHRvIGEgdmlzaXQgcGFyYW1ldGVyIHdpdGggYW4gZXhpc3RpbmcgdmFsdWUuICBWaXNpdCBwYXJhbWV0ZXIgd2lsbCBiZSBvdmVycmlkZGVuJyk7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICAgIG1lY2hhbmljcy5iaW5kaW5nLndyaXRlTGVmdCgpOyAvLyBwdXNoIHRoZSB1c2VyIG1vZGVsIGludG8gdGhlIHZpc2l0XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH0pO1xuLy8gfVxuXG5leHBvcnQgZnVuY3Rpb24gUm91dGVJZDxUIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyPihmb3JtYXR0ZXI6IEZvcm1hdHRlcjxUPiwgb3B0aW9ucz86IFJvdXRlSWRPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gKHByb3RvdHlwZTogb2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVmID0gbmV3IFBhcmFtZXRlckRlZmluaXRpb24uUm91dGVJZChwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBmb3JtYXR0ZXIpO1xuICAgIC8vIGluc3RhbGxNZWNoYW5pY3MocGFyYW1ldGVyRGVmLCBwcm90b3R5cGUsIHByb3BlcnR5S2V5LCAnQFJvdXRlSWQnKTtcbiAgICBLbGFzcy5nZXQocHJvdG90eXBlKS5hZGRUb093bk1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHBhcmFtZXRlckRlZik7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXNpdFBhcmFtZXRlcjxUPihvcHRpb25zPzogUm91dGVQYXJhbWV0ZXJPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIHJldHVybiAocHJvdG90eXBlOiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBuZXcgUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcihwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBvcHRzLmdldE9wdGlvbmFsKCdzdG9yZUluVXJsJywgbnVsbCkpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSwgcGFyYW1ldGVyRGVmKTtcbiAgICAvLyBpbnN0YWxsTWVjaGFuaWNzKHBhcmFtZXRlckRlZiwgcHJvdG90eXBlLCBwcm9wZXJ0eUtleSwgJ0BWaXNpdFBhcmFtZXRlcicpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmlzaXRQYXJhbWV0ZXJMaXN0PEU+KG9wdGlvbnM/OiBSb3V0ZUxpc3RQYXJhbWV0ZXJPcHRpb25zPEU+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIHJldHVybiAocHJvdG90eXBlOiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBuZXcgUGFyYW1ldGVyRGVmaW5pdGlvbi5BcnJheVBhcmFtZXRlcihwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBvcHRzLmdldE9wdGlvbmFsKCdzdG9yZUluVXJsJywgbnVsbCkpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSwgcGFyYW1ldGVyRGVmKTtcbiAgICAvLyBpbnN0YWxsTWVjaGFuaWNzKHBhcmFtZXRlckRlZiwgcHJvdG90eXBlLCBwcm9wZXJ0eUtleSwgJ0BWaXNpdFBhcmFtZXRlckxpc3QnKTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { MutableListModel, MutableValueModel } from '@coolon/pectin';
2
2
  import { lang, Opts } from '@coolon/typescript-utilities';
3
- import { isEqual, isFunction, isNil, isObject } from 'lodash';
3
+ import { isEqual, isFunction, isNil, isObject } from 'lodash-es';
4
4
  const PARAMETER_DEFINITION_KEY = Symbol('parameterDefinition');
5
5
  export class ParameterDefinition {
6
6
  propertyName;
@@ -118,4 +118,4 @@ export class ParameterDefinition {
118
118
  }
119
119
  ParameterDefinition.get = get;
120
120
  })(ParameterDefinition || (ParameterDefinition = {}));
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkgsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBTTVELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFHL0QsTUFBTSxPQUFnQixtQkFBbUI7SUFVbEI7SUFBd0U7SUFMcEYsUUFBUSxDQUFVO0lBQ2xCLFlBQVksQ0FBSTtJQUNqQixPQUFPLENBQXVDO0lBR3RELFlBQXFCLFlBQW9CLEVBQUUsT0FBdUMsRUFBVyxTQUF3QjtRQUFoRyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFvRCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ25ILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFB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QUUsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELFlBQVksQ0FBQyxLQUFVO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxVQUFVLENBQUMsQ0FBTSxFQUFFLENBQU07WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQztLQUVGO0lBakJZLGtDQUFjLGlCQWlCMUIsQ0FBQTtJQUlELFNBQWdCLEdBQUcsQ0FBSSxLQUFtQztRQUN4RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLG9GQUFvRixDQUFDLENBQUM7U0FDNUc7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFOZSx1QkFBRyxNQU1sQixDQUFBO0FBR0gsQ0FBQyxFQXJFZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXFFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgSGFzVmFsdWUsIExpc3RNb2RlbCwgTXV0YWJsZUxpc3RNb2RlbCwgTXV0YWJsZVZhbHVlTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7bGFuZywgT3B0c30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFcXVhbCwgaXNGdW5jdGlvbiwgaXNOaWwsIGlzT2JqZWN0fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtQbGFjZUhpc3Rvcnl9IGZyb20gJy4uL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gJy4uL3Zpc2l0LXNlZ21lbnQnO1xuaW1wb3J0IHtGb3JtYXR0ZXJ9IGZyb20gJy4vZm9ybWF0dGVyJztcbmltcG9ydCB7UGFyYW1ldGVyU2FuaXRpc2VyfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5jb25zdCBQQVJBTUVURVJfREVGSU5JVElPTl9LRVkgPSBTeW1ib2woJ3BhcmFtZXRlckRlZmluaXRpb24nKTtcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBFID0gVD4ge1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUm91dGVJZDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNBcnJheTogYm9vbGVhbjtcblxuICByZWFkb25seSByZW1lbWJlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlOiBUO1xuICBwcml2YXRlIG9wdGlvbnM6IE9wdHM8UGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+PjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJhY2tpbmdNb2RlbEZhY3Rvcnk6ICgpID0+IEhhc1ZhbHVlPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHByb3BlcnR5TmFtZTogc3RyaW5nLCBvcHRpb25zOiBQYXJhbWV0ZXJEZWZpbml0aW9uLk9wdGlvbnM8VD4sIHJlYWRvbmx5IHVybEZvcm1hdD86IEZvcm1hdHRlcjxFPikge1xuICAgIHRoaXMub3B0aW9ucyA9IE9wdHMuZ2V0KG9wdGlvbnMpO1xuICAgIHRoaXMucmVtZW1iZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3JlbWVtYmVyJywgZmFsc2UpO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKCdkZWZhdWx0VmFsdWUnLCBudWxsKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ2FzJywgdGhpcy5wcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0IGlzUm91dGVQYXJhbWV0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51cmxGb3JtYXQ7XG4gIH1cblxuICBhYnN0cmFjdCBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGhhc0NoYW5nZWQoYTogYW55LCBiOiBhbnkpOiBib29sZWFuO1xuXG4gIGNyZWF0ZUJhY2tpbmdNb2RlbCgpOiBIYXNWYWx1ZTxUPiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmJhY2tpbmdNb2RlbEZhY3RvcnkoKTtcbiAgICBtb2RlbFtQQVJBTUVURVJfREVGSU5JVElPTl9LRVldID0gdGhpcztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3B0aW9uVmFsdWU8SyBleHRlbmRzIGtleW9mIFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPj4oa2V5OiBLKTogUGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+W0tdIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKGtleSwgbnVsbCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBzYW5pdGlzZSh2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGBzYW5pdGlzZSgke3RoaXMucHJvcGVydHlOYW1lfSlgKVxuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5zYW5pdGlzZU1pc3NpbmcodmlzaXQsIHBsYWNlSGlzdG9yeSwgdmFsdWUpO1xuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5ydW5DdXN0b21TYW5pdGlzZXIodmFsdWUsIHZpc2l0LCBwbGFjZUhpc3RvcnksIGluamVjdG9yLCBpc1BvcFN0YXRlKTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1bkN1c3RvbVNhbml0aXNlcih2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGN1c3RvbVNhbml0aXNlciA9IHRoaXMucHJlcGFyZUN1c3RvbVNhbml0aXNlcihpbmplY3Rvcik7XG4gICAgcmV0dXJuIGN1c3RvbVNhbml0aXNlciA/IGN1c3RvbVNhbml0aXNlci5zYW5pdGlzZSh2YWx1ZSwgdmlzaXQsIGluamVjdG9yKSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGlzZU1pc3NpbmcodmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIHZhbHVlOiBUKSB7XG4gICAgaWYgKHRoaXMuaXNNaXNzaW5nRnJvbSh2aXNpdCkpIHtcbiAgICAgIGNvbnN0IHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlID0gIXBsYWNlSGlzdG9yeS5sYXN0VmlzaXRJbmNsdWRlZCh2aXNpdC5wbGFjZURlZmluaXRpb24pO1xuICAgICAgaWYgKHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlKSB7XG4gICAgICAgIGNvbnN0IGxhc3RLbm93blZpc2l0ID0gcGxhY2VIaXN0b3J5LmdldE1vc3RSZWNlbnRWaXNpdFNlZ21lbnRGb3IodmlzaXQucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgICAgaWYgKHRoaXMucmVtZW1iZXIgJiYgbGFzdEtub3duVmlzaXQpIHtcbiAgICAgICAgICB2YWx1ZSA9IGxhc3RLbm93blZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRW1wdHlWYWx1ZSh2YWx1ZSkgPyB0aGlzLmRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlQ3VzdG9tU2FuaXRpc2VyKGluamVjdG9yOiBJbmplY3Rvcik6IFBhcmFtZXRlclNhbml0aXNlcjxhbnk+IHtcbiAgICBjb25zdCBjdXN0b21TYW5pdGlzZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3Nhbml0aXNlcicsIG51bGwpO1xuICAgIGlmIChpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0KGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlclsnc2FuaXRpc2UnXSkgP1xuICAgICAgICBjdXN0b21TYW5pdGlzZXIgYXMgUGFyYW1ldGVyU2FuaXRpc2VyPGFueT4gOlxuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgZXhwZWN0ZWQgQFZpc2l0UGFyYW1ldGVyKHtzYW5pdGlzZXI6IC4uLn0pIGZvciAke3RoaXMucHJvcGVydHlOYW1lfSB0byBiZSBhIGNvbnN0cnVjdG9yIG9yIGluc3RhbmNlIG9mIFBhcmFtZXRlclNhbml0aXNlciwgZ290OiBgICsgY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNNaXNzaW5nRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgcmV0dXJuICF2aXNpdC5oYXNQYXJhbWV0ZXIodGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQYXJhbWV0ZXJEZWZpbml0aW9uIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8VD4ge1xuICAgIGFzPzogc3RyaW5nO1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICByZW1lbWJlcj86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogVDtcbiAgICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXI8VD47XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUm91dGVJZDxUPiBleHRlbmRzIFBhcmFtZXRlckRlZmluaXRpb248VD4ge1xuICAgIHJlYWRvbmx5IGlzUm91dGVJZCA9IHRydWU7XG4gICAgcmVhZG9ubHkgaXNBcnJheSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBiYWNraW5nTW9kZWxGYWN0b3J5ID0gKCkgPT4gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFzQ2hhbmdlZChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGEgIT09IGI7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgVmFsdWVQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGJhY2tpbmdNb2RlbEZhY3RvcnkgPSAoKSA9PiBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGlzTmlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAhPT0gYjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXlQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFJlYWRvbmx5QXJyYXk8VD4sIFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgYmFja2luZ01vZGVsRmFjdG9yeSA9ICgpID0+IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnM8VFtdPiwgdXJsRm9ybWF0OiBGb3JtYXR0ZXI8VD4pIHtcbiAgICAgIHN1cGVyKHBhcmFtZXRlck5hbWUsIG9wdGlvbnMsIHVybEZvcm1hdCk7XG4gICAgfVxuXG4gICAgaXNFbXB0eVZhbHVlKHZhbHVlOiBUW10pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoIDwgMTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IFRbXSwgYjogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzRXF1YWwoYSwgYik7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBWYWx1ZU1vZGVsPFQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcjxUPlxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLkFycmF5UGFyYW1ldGVyPFQ+XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4obW9kZWw6IFZhbHVlTW9kZWw8VD4gfCBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLlZhbHVlUGFyYW1ldGVyPFQ+IHwgUGFyYW1ldGVyRGVmaW5pdGlvbi5BcnJheVBhcmFtZXRlcjxUPiB7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVmaW5pdGlvbiA9IG1vZGVsW1BBUkFNRVRFUl9ERUZJTklUSU9OX0tFWV07XG4gICAgaWYgKCFwYXJhbWV0ZXJEZWZpbml0aW9uKSB7XG4gICAgICBsYW5nLmlsbGVnYWxBcmd1bWVudCgnbW9kZWwgaGFzblxcJ3QgYmVlbiBhbm5vdGF0ZWQgd2l0aCBAVmlzaXRQYXJhbWV0ZXIsIEBWaXNpdFBhcmFtZXRlckxpc3Qgb3IgQFJvdXRlSWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtZXRlckRlZmluaXRpb247XG4gIH1cblxuXG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkgsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBTS9ELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFHL0QsTUFBTSxPQUFnQixtQkFBbUI7SUFVbEI7SUFBd0U7SUFMcEYsUUFBUSxDQUFVO0lBQ2xCLFlBQVksQ0FBSTtJQUNqQixPQUFPLENBQXVDO0lBR3RELFlBQXFCLFlBQW9CLEVBQUUsT0FBdUMsRUFBVyxTQUF3QjtRQUFoRyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFvRCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ25ILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFB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QUUsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELFlBQVksQ0FBQyxLQUFVO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxVQUFVLENBQUMsQ0FBTSxFQUFFLENBQU07WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQztLQUVGO0lBakJZLGtDQUFjLGlCQWlCMUIsQ0FBQTtJQUlELFNBQWdCLEdBQUcsQ0FBSSxLQUFtQztRQUN4RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLG9GQUFvRixDQUFDLENBQUM7U0FDNUc7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFOZSx1QkFBRyxNQU1sQixDQUFBO0FBR0gsQ0FBQyxFQXJFZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXFFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgSGFzVmFsdWUsIExpc3RNb2RlbCwgTXV0YWJsZUxpc3RNb2RlbCwgTXV0YWJsZVZhbHVlTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7bGFuZywgT3B0c30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFcXVhbCwgaXNGdW5jdGlvbiwgaXNOaWwsIGlzT2JqZWN0fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtQbGFjZUhpc3Rvcnl9IGZyb20gJy4uL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gJy4uL3Zpc2l0LXNlZ21lbnQnO1xuaW1wb3J0IHtGb3JtYXR0ZXJ9IGZyb20gJy4vZm9ybWF0dGVyJztcbmltcG9ydCB7UGFyYW1ldGVyU2FuaXRpc2VyfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5jb25zdCBQQVJBTUVURVJfREVGSU5JVElPTl9LRVkgPSBTeW1ib2woJ3BhcmFtZXRlckRlZmluaXRpb24nKTtcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBFID0gVD4ge1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUm91dGVJZDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNBcnJheTogYm9vbGVhbjtcblxuICByZWFkb25seSByZW1lbWJlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlOiBUO1xuICBwcml2YXRlIG9wdGlvbnM6IE9wdHM8UGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+PjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJhY2tpbmdNb2RlbEZhY3Rvcnk6ICgpID0+IEhhc1ZhbHVlPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHByb3BlcnR5TmFtZTogc3RyaW5nLCBvcHRpb25zOiBQYXJhbWV0ZXJEZWZpbml0aW9uLk9wdGlvbnM8VD4sIHJlYWRvbmx5IHVybEZvcm1hdD86IEZvcm1hdHRlcjxFPikge1xuICAgIHRoaXMub3B0aW9ucyA9IE9wdHMuZ2V0KG9wdGlvbnMpO1xuICAgIHRoaXMucmVtZW1iZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3JlbWVtYmVyJywgZmFsc2UpO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKCdkZWZhdWx0VmFsdWUnLCBudWxsKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ2FzJywgdGhpcy5wcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0IGlzUm91dGVQYXJhbWV0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51cmxGb3JtYXQ7XG4gIH1cblxuICBhYnN0cmFjdCBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGhhc0NoYW5nZWQoYTogYW55LCBiOiBhbnkpOiBib29sZWFuO1xuXG4gIGNyZWF0ZUJhY2tpbmdNb2RlbCgpOiBIYXNWYWx1ZTxUPiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmJhY2tpbmdNb2RlbEZhY3RvcnkoKTtcbiAgICBtb2RlbFtQQVJBTUVURVJfREVGSU5JVElPTl9LRVldID0gdGhpcztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3B0aW9uVmFsdWU8SyBleHRlbmRzIGtleW9mIFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPj4oa2V5OiBLKTogUGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+W0tdIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKGtleSwgbnVsbCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBzYW5pdGlzZSh2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGBzYW5pdGlzZSgke3RoaXMucHJvcGVydHlOYW1lfSlgKVxuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5zYW5pdGlzZU1pc3NpbmcodmlzaXQsIHBsYWNlSGlzdG9yeSwgdmFsdWUpO1xuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5ydW5DdXN0b21TYW5pdGlzZXIodmFsdWUsIHZpc2l0LCBwbGFjZUhpc3RvcnksIGluamVjdG9yLCBpc1BvcFN0YXRlKTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1bkN1c3RvbVNhbml0aXNlcih2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGN1c3RvbVNhbml0aXNlciA9IHRoaXMucHJlcGFyZUN1c3RvbVNhbml0aXNlcihpbmplY3Rvcik7XG4gICAgcmV0dXJuIGN1c3RvbVNhbml0aXNlciA/IGN1c3RvbVNhbml0aXNlci5zYW5pdGlzZSh2YWx1ZSwgdmlzaXQsIGluamVjdG9yKSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGlzZU1pc3NpbmcodmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIHZhbHVlOiBUKSB7XG4gICAgaWYgKHRoaXMuaXNNaXNzaW5nRnJvbSh2aXNpdCkpIHtcbiAgICAgIGNvbnN0IHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlID0gIXBsYWNlSGlzdG9yeS5sYXN0VmlzaXRJbmNsdWRlZCh2aXNpdC5wbGFjZURlZmluaXRpb24pO1xuICAgICAgaWYgKHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlKSB7XG4gICAgICAgIGNvbnN0IGxhc3RLbm93blZpc2l0ID0gcGxhY2VIaXN0b3J5LmdldE1vc3RSZWNlbnRWaXNpdFNlZ21lbnRGb3IodmlzaXQucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgICAgaWYgKHRoaXMucmVtZW1iZXIgJiYgbGFzdEtub3duVmlzaXQpIHtcbiAgICAgICAgICB2YWx1ZSA9IGxhc3RLbm93blZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRW1wdHlWYWx1ZSh2YWx1ZSkgPyB0aGlzLmRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlQ3VzdG9tU2FuaXRpc2VyKGluamVjdG9yOiBJbmplY3Rvcik6IFBhcmFtZXRlclNhbml0aXNlcjxhbnk+IHtcbiAgICBjb25zdCBjdXN0b21TYW5pdGlzZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3Nhbml0aXNlcicsIG51bGwpO1xuICAgIGlmIChpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0KGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlclsnc2FuaXRpc2UnXSkgP1xuICAgICAgICBjdXN0b21TYW5pdGlzZXIgYXMgUGFyYW1ldGVyU2FuaXRpc2VyPGFueT4gOlxuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgZXhwZWN0ZWQgQFZpc2l0UGFyYW1ldGVyKHtzYW5pdGlzZXI6IC4uLn0pIGZvciAke3RoaXMucHJvcGVydHlOYW1lfSB0byBiZSBhIGNvbnN0cnVjdG9yIG9yIGluc3RhbmNlIG9mIFBhcmFtZXRlclNhbml0aXNlciwgZ290OiBgICsgY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNNaXNzaW5nRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgcmV0dXJuICF2aXNpdC5oYXNQYXJhbWV0ZXIodGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQYXJhbWV0ZXJEZWZpbml0aW9uIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8VD4ge1xuICAgIGFzPzogc3RyaW5nO1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICByZW1lbWJlcj86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogVDtcbiAgICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXI8VD47XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUm91dGVJZDxUPiBleHRlbmRzIFBhcmFtZXRlckRlZmluaXRpb248VD4ge1xuICAgIHJlYWRvbmx5IGlzUm91dGVJZCA9IHRydWU7XG4gICAgcmVhZG9ubHkgaXNBcnJheSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBiYWNraW5nTW9kZWxGYWN0b3J5ID0gKCkgPT4gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFzQ2hhbmdlZChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGEgIT09IGI7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgVmFsdWVQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGJhY2tpbmdNb2RlbEZhY3RvcnkgPSAoKSA9PiBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGlzTmlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAhPT0gYjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXlQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFJlYWRvbmx5QXJyYXk8VD4sIFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgYmFja2luZ01vZGVsRmFjdG9yeSA9ICgpID0+IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnM8VFtdPiwgdXJsRm9ybWF0OiBGb3JtYXR0ZXI8VD4pIHtcbiAgICAgIHN1cGVyKHBhcmFtZXRlck5hbWUsIG9wdGlvbnMsIHVybEZvcm1hdCk7XG4gICAgfVxuXG4gICAgaXNFbXB0eVZhbHVlKHZhbHVlOiBUW10pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoIDwgMTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IFRbXSwgYjogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzRXF1YWwoYSwgYik7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBWYWx1ZU1vZGVsPFQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcjxUPlxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLkFycmF5UGFyYW1ldGVyPFQ+XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4obW9kZWw6IFZhbHVlTW9kZWw8VD4gfCBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLlZhbHVlUGFyYW1ldGVyPFQ+IHwgUGFyYW1ldGVyRGVmaW5pdGlvbi5BcnJheVBhcmFtZXRlcjxUPiB7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVmaW5pdGlvbiA9IG1vZGVsW1BBUkFNRVRFUl9ERUZJTklUSU9OX0tFWV07XG4gICAgaWYgKCFwYXJhbWV0ZXJEZWZpbml0aW9uKSB7XG4gICAgICBsYW5nLmlsbGVnYWxBcmd1bWVudCgnbW9kZWwgaGFzblxcJ3QgYmVlbiBhbm5vdGF0ZWQgd2l0aCBAVmlzaXRQYXJhbWV0ZXIsIEBWaXNpdFBhcmFtZXRlckxpc3Qgb3IgQFJvdXRlSWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtZXRlckRlZmluaXRpb247XG4gIH1cblxuXG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { UrlSegment } from '@angular/router';
3
- import { Memoize } from '@typescript-plus/fast-memoize-decorator';
4
- import { isEqual, last } from 'lodash';
3
+ import { Memoize } from 'fast-typescript-memoize';
4
+ import { isEqual, last } from 'lodash-es';
5
5
  import { ConsolidatedParameterMap } from './guards/consolidated-param-map';
6
6
  import { VisitSegment } from './visit-segment';
7
7
  function extractPrimaryUrlSegments(urlTree) {
@@ -122,4 +122,4 @@ __decorate([
122
122
  }
123
123
  UrlSnapshot.createPathIdFor = createPathIdFor;
124
124
  })(UrlSnapshot || (UrlSnapshot = {}));
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvdXJsLXNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUF5QixNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVoRSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsU0FBUyx5QkFBeUIsQ0FBQyxPQUFnQjtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUtEO0lBQXVDO0lBSG5ELE9BQU8sQ0FBVTtJQUUxQixpSUFBaUk7SUFDakksWUFBcUIsYUFBNEIsRUFBVyxHQUFXO1FBQWxELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVcsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7SUFDSixrQkFBa0IsQ0FBQyxZQUEwQjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsOEJBQThCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEYsaUVBQWlFO1FBQ2pFLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUMvRCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNyRCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUEwQjtRQUN0QyxzREFBc0Q7UUFDdEQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEcsQ0FBQztJQUdPLHFCQUFxQjtRQUMzQixPQUFPLHlCQUF5QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sNkJBQTZCLENBQUMsWUFBMEI7UUFDaEUsT0FBTyxZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDaEQ7Z0JBQ0UsUUFBUTtnQkFDUiwwRkFBMEY7Z0JBQzFGLGtFQUFrRTtnQkFDbEUsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekgsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUM7YUFBQztZQUNyRixDQUFDO2dCQUNEO29CQUNFLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzFILENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQXlCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQXlCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbkUsQ0FBQztJQUVELHFCQUFxQixDQUFDLFFBQXlCO1FBQzdDLE9BQU8sSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNqRixJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sV0FBVyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BEO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQXNCO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxXQUFXO0lBRVgsb0JBQW9CLENBQUMsR0FBc0I7UUFDekMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3BDO2FBQU07WUFDTCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVGLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFDRCxXQUFXO0lBRVgsb0JBQW9CO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNuRixPQUFPLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFBLHlDQUF5QztTQUNuRTtRQUNELE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sZUFBZSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQXFCO1FBQ3hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0NBQ0Y7QUE5RVM7SUFEUCxPQUFPLEVBQUU7Ozs7d0RBR1Q7QUE4RUgsV0FBaUIsV0FBVztJQUViLG1DQUF1QixHQUFHLGtCQUFrQixDQUFDO0lBQzdDLG9DQUF3QixHQUFHLElBQUksQ0FBQztJQUU3QyxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFBLHdCQUF3QixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUZlLCtCQUFtQixzQkFFbEMsQ0FBQTtJQUVELFNBQWdCLGVBQWUsQ0FBQyxjQUFpQztRQUMvRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBQSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFGZSwyQkFBZSxrQkFFOUIsQ0FBQTtBQUtILENBQUMsRUFoQmdCLFdBQVcsS0FBWCxXQUFXLFFBZ0IzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXJsU2VnbWVudCwgVXJsU2VyaWFsaXplciwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcblxuaW1wb3J0IHtpc0VxdWFsLCBsYXN0fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtDb25zb2xpZGF0ZWRQYXJhbWV0ZXJNYXB9IGZyb20gJy4vZ3VhcmRzL2NvbnNvbGlkYXRlZC1wYXJhbS1tYXAnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuZnVuY3Rpb24gZXh0cmFjdFByaW1hcnlVcmxTZWdtZW50cyh1cmxUcmVlOiBVcmxUcmVlKTogVXJsU2VnbWVudFtdIHtcbiAgcmV0dXJuIHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5Py5zZWdtZW50cyA/PyBbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVybFNuYXBzaG90IHtcblxuICByZWFkb25seSB1cmxUcmVlOiBVcmxUcmVlO1xuXG4gIC8vIFRPRE86IFVwZGF0ZSB0aGlzIGFjY2VwdCBhIHVybCBQYXJzZXIgc28gaXQgY2FuIGJlIGltbXV0YWJsZSBhbmQgZ2VuZXJhdGUgbmV3IHRyZWVzIG9uIG11dGF0aW9uIHVzaW5nIHRvU3RyaW5nKCkgYXJlIHBhcnNlVXJsLlxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLCByZWFkb25seSB1cmw6IHN0cmluZykge1xuICAgIHRoaXMudXJsVHJlZSA9IHVybFNlcmlhbGl6ZXIucGFyc2UodXJsKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHB1YmxpYyB1cGRhdGVWaXNpdFNlZ21lbnQodmlzaXRTZWdtZW50OiBWaXNpdFNlZ21lbnQpOiBVcmxTbmFwc2hvdCB7XG4gICAgY29uc3QgbmV3VXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgLy8gVWdseSwgYnV0IGl0IHdvcmtzIGZvciBub3cuXG4gICAgY29uc3Qgc2VnbWVudHMgPSBbLi4uZXh0cmFjdFByaW1hcnlVcmxTZWdtZW50cyhuZXdVcmxUcmVlKV07XG4gICAgY29uc3QgdXJsU2VnbWVudHMgPSB0aGlzLmdldFVybFNlZ21lbnRzRm9yVmlzaXRTZWdtZW50KHZpc2l0U2VnbWVudCk7XG4gICAgY29uc3QgcmVwbGFjZUF0ID0gc2VnbWVudHMuZmluZEluZGV4KHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoID09PSB1cmxTZWdtZW50c1swXS5wYXRoKTtcbiAgICAvLyBkbyBub3QgdXNlIHRoZSByZXR1cm4gdmFsdWUsIGl0J3MgdGhlIGl0ZW1zIHRoYXQgd2VyZSByZW1vdmVkIVxuICAgIHNlZ21lbnRzLnNwbGljZShyZXBsYWNlQXQsIHVybFNlZ21lbnRzLmxlbmd0aCwgLi4udXJsU2VnbWVudHMpO1xuICAgIG5ld1VybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzID0gc2VnbWVudHM7XG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIG5ld1VybFRyZWUudG9TdHJpbmcoKSk7XG4gIH1cblxuICBhcHBlbmRTZWdtZW50KHZpc2l0U2VnbWVudDogVmlzaXRTZWdtZW50KTpVcmxTbmFwc2hvdCB7XG4gICAgLy8gVE9ETzogbWFrZSB0aGlzIHdvcmsgcHJvcGVybHkgd2l0aCB2aXNpdCBwYXJhbWV0ZXJzXG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHRoaXMudXJsICsgXCIvXCIgKyB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLnBhdGgpXG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIHByaXZhdGUgZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCk6IFVybFNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIGV4dHJhY3RQcmltYXJ5VXJsU2VnbWVudHModGhpcy51cmxUcmVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgdmlzaXQgaW50byBzZWdtZW50cy4gIFBsZWFzZSBub3QgdGhhdCB0aGVzZSBzZWdtZW50cyBhcmUgbm90IGVcbiAgICogQHBhcmFtIHZpc2l0U2VnbWVudFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFVybFNlZ21lbnRzRm9yVmlzaXRTZWdtZW50KHZpc2l0U2VnbWVudDogVmlzaXRTZWdtZW50KTogVXJsU2VnbWVudFtdIHtcbiAgICByZXR1cm4gdmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgP1xuICAgICAgW1xuICAgICAgICAvLyBOT1RFOlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBhdHRhY2ggdGhlIHBhcmFtcyB0byB0aGUgcm9vdCBwYXRoIGFuZCBub3QgdGhlIGlkLiAgSWYgd2UgYXR0YWNoIHRoZW1cbiAgICAgICAgLy8gdG8gYW4gZW1wdHkgaWQgdGhlbiB0aGUgYW5ndWxhciByb3V0ZXIgd29uJ3QgbWF0Y2ggdGhlIHBhdHRlcm4uXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXRTZWdtZW50KSksXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24uZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdFNlZ21lbnQpLCB7fSldXG4gICAgICA6XG4gICAgICBbXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXRTZWdtZW50KSlcbiAgICAgIF07XG4gIH1cblxuICBpbmNsdWRlc1BhdGhPZihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkuZmluZChzID0+IHMucGF0aCA9PT0gcGxhY2VEZWYucGF0aCk7XG4gIH1cblxuICBpc0xhc3RQbGFjZUluVXJsKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gbGFzdCh0aGlzLmdldFByaW1hcnlVcmxTZWdtZW50cygpKS5wYXRoID09PSBwbGFjZURlZi5wYXRoO1xuICB9XG5cbiAgY3JlYXRlVmlzaXRTZWdtZW50Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gbmV3IFZpc2l0U2VnbWVudChwbGFjZURlZiwgbmV3IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcCh0aGlzLmdldFByaW1hcnlVcmxTZWdtZW50cygpKSk7XG4gIH1cblxuICBnZXRJbnRlcmFjdGlvbklkcygpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtID0gdGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXTtcbiAgICBpZiAocXVlcnlQYXJhbSkge1xuICAgICAgcmV0dXJuIFVybFNuYXBzaG90LnBhcnNlSW50ZXJhY3Rpb25JZHMocXVlcnlQYXJhbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBoYXNJbnRlcmFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJhY3Rpb25JZHMoKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgaGFzSW50ZXJhY3Rpb25JZHMoaWRzOiByZWFkb25seSBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0VxdWFsKHRoaXMuZ2V0SW50ZXJhY3Rpb25JZHMoKSwgaWRzKTtcbiAgfVxuICAvLyBAVHJhY2UoKVxuXG4gIHVwZGF0ZUludGVyYWN0aW9uSWRzKGlkczogcmVhZG9ubHkgc3RyaW5nW10pOiBVcmxTbmFwc2hvdCB7XG4gICAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbW92ZUludGVyYWN0aW9uSWRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy51cmwpO1xuICAgICAgdXJsVHJlZS5xdWVyeVBhcmFtc1tVcmxTbmFwc2hvdC5JTlRFUkFDVElPTl9RVUVSWV9QQVJBTV0gPSBVcmxTbmFwc2hvdC5jcmVhdGVQYXRoSWRGb3IoaWRzKTtcbiAgICAgIHJldHVybiBuZXcgVXJsU25hcHNob3QodGhpcy51cmxTZXJpYWxpemVyLCB1cmxUcmVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuICAvLyBAVHJhY2UoKVxuXG4gIHJlbW92ZUludGVyYWN0aW9uSWRzKCk6IFVybFNuYXBzaG90IHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMudXJsKTtcbiAgICBpZiAodXJsVHJlZS5xdWVyeVBhcmFtcyAmJiB1cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXSkge1xuICAgICAgdXJsVHJlZS5xdWVyeVBhcmFtcyA9IHt9Oy8vW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1JPVVRFUl9PVVRMRVRdXG4gICAgfVxuICAgIHJldHVybiBuZXcgVXJsU25hcHNob3QodGhpcy51cmxTZXJpYWxpemVyLCB1cmxUcmVlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFVybFNuYXBzaG90KCR7dGhpcy51cmx9KWA7XG4gIH1cblxuICBjb250YWluc1Zpc2l0U2VnbWVudChzZWdtZW50OiBWaXNpdFNlZ21lbnQpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFByaW1hcnlVcmxTZWdtZW50cygpLmZpbmQocyA9PiBzLnBhdGggPT09IHNlZ21lbnQucGxhY2VEZWZpbml0aW9uLnBhdGgpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgVXJsU25hcHNob3Qge1xuXG4gIGV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9RVUVSWV9QQVJBTSA9ICdhdXAtaW50ZXJhY3Rpb25zJztcbiAgZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0lEX1NFUEFSQVRPUiA9ICctLSc7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJhY3Rpb25JZHMocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhdGguc3BsaXQoSU5URVJBQ1RJT05fSURfU0VQQVJBVE9SKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXRoSWRGb3IoaW50ZXJhY3Rpb25JZHM6IHJlYWRvbmx5IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIGludGVyYWN0aW9uSWRzLmpvaW4oSU5URVJBQ1RJT05fSURfU0VQQVJBVE9SKTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbk9wdGlvbnMge1xuICAgIHJlcGxhY2VVcmw/OiBib29sZWFuO1xuICB9XG59XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvdXJsLXNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUF5QixNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsU0FBUyx5QkFBeUIsQ0FBQyxPQUFnQjtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUtEO0lBQXVDO0lBSG5ELE9BQU8sQ0FBVTtJQUUxQixpSUFBaUk7SUFDakksWUFBcUIsYUFBNEIsRUFBVyxHQUFXO1FBQWxELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVcsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7SUFDSixrQkFBa0IsQ0FBQyxZQUEwQjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsOEJBQThCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FB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LENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0NBQ0Y7QUE5RVM7SUFEUCxPQUFPLEVBQUU7Ozs7d0RBR1Q7QUE4RUgsV0FBaUIsV0FBVztJQUViLG1DQUF1QixHQUFHLGtCQUFrQixDQUFDO0lBQzdDLG9DQUF3QixHQUFHLElBQUksQ0FBQztJQUU3QyxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFBLHdCQUF3QixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUZlLCtCQUFtQixzQkFFbEMsQ0FBQTtJQUVELFNBQWdCLGVBQWUsQ0FBQyxjQUFpQztRQUMvRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBQSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFGZSwyQkFBZSxrQkFFOUIsQ0FBQTtBQUtILENBQUMsRUFoQmdCLFdBQVcsS0FBWCxXQUFXLFFBZ0IzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXJsU2VnbWVudCwgVXJsU2VyaWFsaXplciwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnZmFzdC10eXBlc2NyaXB0LW1lbW9pemUnO1xuXG5pbXBvcnQge2lzRXF1YWwsIGxhc3R9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge0NvbnNvbGlkYXRlZFBhcmFtZXRlck1hcH0gZnJvbSAnLi9ndWFyZHMvY29uc29saWRhdGVkLXBhcmFtLW1hcCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5mdW5jdGlvbiBleHRyYWN0UHJpbWFyeVVybFNlZ21lbnRzKHVybFRyZWU6IFVybFRyZWUpOiBVcmxTZWdtZW50W10ge1xuICByZXR1cm4gdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnk/LnNlZ21lbnRzID8/IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgVXJsU25hcHNob3Qge1xuXG4gIHJlYWRvbmx5IHVybFRyZWU6IFVybFRyZWU7XG5cbiAgLy8gVE9ETzogVXBkYXRlIHRoaXMgYWNjZXB0IGEgdXJsIFBhcnNlciBzbyBpdCBjYW4gYmUgaW1tdXRhYmxlIGFuZCBnZW5lcmF0ZSBuZXcgdHJlZXMgb24gbXV0YXRpb24gdXNpbmcgdG9TdHJpbmcoKSBhcmUgcGFyc2VVcmwuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsIHJlYWRvbmx5IHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy51cmxUcmVlID0gdXJsU2VyaWFsaXplci5wYXJzZSh1cmwpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHVibGljIHVwZGF0ZVZpc2l0U2VnbWVudCh2aXNpdFNlZ21lbnQ6IFZpc2l0U2VnbWVudCk6IFVybFNuYXBzaG90IHtcbiAgICBjb25zdCBuZXdVcmxUcmVlID0gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMudXJsKTtcbiAgICAvLyBVZ2x5LCBidXQgaXQgd29ya3MgZm9yIG5vdy5cbiAgICBjb25zdCBzZWdtZW50cyA9IFsuLi5leHRyYWN0UHJpbWFyeVVybFNlZ21lbnRzKG5ld1VybFRyZWUpXTtcbiAgICBjb25zdCB1cmxTZWdtZW50cyA9IHRoaXMuZ2V0VXJsU2VnbWVudHNGb3JWaXNpdFNlZ21lbnQodmlzaXRTZWdtZW50KTtcbiAgICBjb25zdCByZXBsYWNlQXQgPSBzZWdtZW50cy5maW5kSW5kZXgoc2VnbWVudCA9PiBzZWdtZW50LnBhdGggPT09IHVybFNlZ21lbnRzWzBdLnBhdGgpO1xuICAgIC8vIGRvIG5vdCB1c2UgdGhlIHJldHVybiB2YWx1ZSwgaXQncyB0aGUgaXRlbXMgdGhhdCB3ZXJlIHJlbW92ZWQhXG4gICAgc2VnbWVudHMuc3BsaWNlKHJlcGxhY2VBdCwgdXJsU2VnbWVudHMubGVuZ3RoLCAuLi51cmxTZWdtZW50cyk7XG4gICAgbmV3VXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHMgPSBzZWdtZW50cztcbiAgICByZXR1cm4gbmV3IFVybFNuYXBzaG90KHRoaXMudXJsU2VyaWFsaXplciwgbmV3VXJsVHJlZS50b1N0cmluZygpKTtcbiAgfVxuXG4gIGFwcGVuZFNlZ21lbnQodmlzaXRTZWdtZW50OiBWaXNpdFNlZ21lbnQpOlVybFNuYXBzaG90IHtcbiAgICAvLyBUT0RPOiBtYWtlIHRoaXMgd29yayBwcm9wZXJseSB3aXRoIHZpc2l0IHBhcmFtZXRlcnNcbiAgICByZXR1cm4gbmV3IFVybFNuYXBzaG90KHRoaXMudXJsU2VyaWFsaXplciwgdGhpcy51cmwgKyBcIi9cIiArIHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aClcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRQcmltYXJ5VXJsU2VnbWVudHMoKTogVXJsU2VnbWVudFtdIHtcbiAgICByZXR1cm4gZXh0cmFjdFByaW1hcnlVcmxTZWdtZW50cyh0aGlzLnVybFRyZWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSB2aXNpdCBpbnRvIHNlZ21lbnRzLiAgUGxlYXNlIG5vdCB0aGF0IHRoZXNlIHNlZ21lbnRzIGFyZSBub3QgZVxuICAgKiBAcGFyYW0gdmlzaXRTZWdtZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VXJsU2VnbWVudHNGb3JWaXNpdFNlZ21lbnQodmlzaXRTZWdtZW50OiBWaXNpdFNlZ21lbnQpOiBVcmxTZWdtZW50W10ge1xuICAgIHJldHVybiB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLmhhc1JvdXRlSWQoKSA/XG4gICAgICBbXG4gICAgICAgIC8vIE5PVEU6XG4gICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGF0dGFjaCB0aGUgcGFyYW1zIHRvIHRoZSByb290IHBhdGggYW5kIG5vdCB0aGUgaWQuICBJZiB3ZSBhdHRhY2ggdGhlbVxuICAgICAgICAvLyB0byBhbiBlbXB0eSBpZCB0aGVuIHRoZSBhbmd1bGFyIHJvdXRlciB3b24ndCBtYXRjaCB0aGUgcGF0dGVybi5cbiAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdFNlZ21lbnQpKSxcbiAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHZpc2l0U2VnbWVudCksIHt9KV1cbiAgICAgIDpcbiAgICAgIFtcbiAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdFNlZ21lbnQpKVxuICAgICAgXTtcbiAgfVxuXG4gIGluY2x1ZGVzUGF0aE9mKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcmltYXJ5VXJsU2VnbWVudHMoKS5maW5kKHMgPT4gcy5wYXRoID09PSBwbGFjZURlZi5wYXRoKTtcbiAgfVxuXG4gIGlzTGFzdFBsYWNlSW5VcmwocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiBsYXN0KHRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkpLnBhdGggPT09IHBsYWNlRGVmLnBhdGg7XG4gIH1cblxuICBjcmVhdGVWaXNpdFNlZ21lbnRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiBuZXcgVmlzaXRTZWdtZW50KHBsYWNlRGVmLCBuZXcgQ29uc29saWRhdGVkUGFyYW1ldGVyTWFwKHRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkpKTtcbiAgfVxuXG4gIGdldEludGVyYWN0aW9uSWRzKCkge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW0gPSB0aGlzLnVybFRyZWUucXVlcnlQYXJhbXNbVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUVVFUllfUEFSQU1dO1xuICAgIGlmIChxdWVyeVBhcmFtKSB7XG4gICAgICByZXR1cm4gVXJsU25hcHNob3QucGFyc2VJbnRlcmFjdGlvbklkcyhxdWVyeVBhcmFtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGhhc0ludGVyYWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcmFjdGlvbklkcygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBoYXNJbnRlcmFjdGlvbklkcyhpZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRXF1YWwodGhpcy5nZXRJbnRlcmFjdGlvbklkcygpLCBpZHMpO1xuICB9XG4gIC8vIEBUcmFjZSgpXG5cbiAgdXBkYXRlSW50ZXJhY3Rpb25JZHMoaWRzOiByZWFkb25seSBzdHJpbmdbXSk6IFVybFNuYXBzaG90IHtcbiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXSA9IFVybFNuYXBzaG90LmNyZWF0ZVBhdGhJZEZvcihpZHMpO1xuICAgICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICB9XG4gIC8vIEBUcmFjZSgpXG5cbiAgcmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTogVXJsU25hcHNob3Qge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy51cmwpO1xuICAgIGlmICh1cmxUcmVlLnF1ZXJ5UGFyYW1zICYmIHVybFRyZWUucXVlcnlQYXJhbXNbVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUVVFUllfUEFSQU1dKSB7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge307Ly9bVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUk9VVEVSX09VVExFVF1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgVXJsU25hcHNob3QoJHt0aGlzLnVybH0pYDtcbiAgfVxuXG4gIGNvbnRhaW5zVmlzaXRTZWdtZW50KHNlZ21lbnQ6IFZpc2l0U2VnbWVudCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkuZmluZChzID0+IHMucGF0aCA9PT0gc2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aCk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBVcmxTbmFwc2hvdCB7XG5cbiAgZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX1FVRVJZX1BBUkFNID0gJ2F1cC1pbnRlcmFjdGlvbnMnO1xuICBleHBvcnQgY29uc3QgSU5URVJBQ1RJT05fSURfU0VQQVJBVE9SID0gJy0tJztcblxuICBleHBvcnQgZnVuY3Rpb24gcGFyc2VJbnRlcmFjdGlvbklkcyhwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aC5zcGxpdChJTlRFUkFDVElPTl9JRF9TRVBBUkFUT1IpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGhJZEZvcihpbnRlcmFjdGlvbklkczogcmVhZG9ubHkgc3RyaW5nW10pIHtcbiAgICByZXR1cm4gaW50ZXJhY3Rpb25JZHMuam9pbihJTlRFUkFDVElPTl9JRF9TRVBBUkFUT1IpO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uT3B0aW9ucyB7XG4gICAgcmVwbGFjZVVybD86IGJvb2xlYW47XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { isEqual, isNil, isString } from 'lodash';
1
+ import { isEqual, isNil, isString } from 'lodash-es';
2
2
  export class VisitSegment {
3
3
  placeDefinition;
4
4
  visitParameters;
@@ -85,4 +85,4 @@ export class VisitSegment {
85
85
  return bits.join('');
86
86
  }
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQtc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3Zpc2l0LXNlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBSWhELE1BQU0sT0FBTyxZQUFZO0lBR0Y7SUFGWixlQUFlLENBQXNCO0lBRTlDLFlBQXFCLGVBQWdDLEVBQUUsa0JBQXVDLEVBQUU7UUFBM0Usb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ25ELGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVc7SUFDWCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVztJQUNYLFVBQVU7UUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFPLFNBQTZDO1FBQ25FLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsV0FBVztJQUNYLFlBQVksQ0FBQyxZQUEwQztRQUNyRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZ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LEVBQUUsRUFBQyxHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNFcXVhbCwgaXNOaWwsIGlzU3RyaW5nfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1BhcmFtZXRlckRlZmluaXRpb259IGZyb20gJy4vcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5leHBvcnQgY2xhc3MgVmlzaXRTZWdtZW50IHtcbiAgcmVhZG9ubHkgdmlzaXRQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uLCB2aXNpdFBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkge1xuICAgIHBsYWNlRGVmaW5pdGlvbi52YWxpZGF0ZVJvdXRlUGFyYW1ldGVycyh2aXNpdFBhcmFtZXRlcnMpXG4gICAgdGhpcy52aXNpdFBhcmFtZXRlcnMgPSBPYmplY3QuZnJlZXplKHZpc2l0UGFyYW1ldGVycyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRSb3V0ZUlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRSb3V0ZUlkRnJvbSh0aGlzKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGhhc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc05pbCh0aGlzLmdldFJvdXRlSWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHBsYWNlIHBhcmFtZXRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4gIFRoZSBwYXJhbWV0ZXJcbiAgICogbmFtZSBpcyB0YWtlbiBmcm9tIHRoZSBgYXNgIG9wdGlvbiwgZS5nLiB7YXM6ICdhQ3VzdG9tTmFtZSd9IG90aGVyd2lzZSBpdCBpcyB0aGVcbiAgICogc2FtZSBhcyB0aGUgVmFsdWVNb2RlbCBwcm9wZXJ0eSBuYW1lLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVyIHRoZSB2aXNpdCBwYXJhbWV0ZXIgZGVmaW5pdGlvblxuICAgKi9cbiAgZ2V0UGFyYW1ldGVyVmFsdWU8VCwgUz4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+IHwgc3RyaW5nKTogVCB7XG4gICAgcmV0dXJuIGlzU3RyaW5nKHBhcmFtZXRlcikgPyB0aGlzLnZpc2l0UGFyYW1ldGVyc1twYXJhbWV0ZXJdIDogdGhpcy52aXNpdFBhcmFtZXRlcnNbcGFyYW1ldGVyLm5hbWVdO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaGFzUGFyYW1ldGVyKHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnZpc2l0UGFyYW1ldGVycykuaW5jbHVkZXMocGFyYW1ldGVyRGVmLm5hbWUpO1xuICB9XG5cbiAgcmVwbGFjZTxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VCwgdW5rbm93bj4sIHZhbHVlOiBUKTogVmlzaXRTZWdtZW50IHtcbiAgICByZXR1cm4gbmV3IFZpc2l0U2VnbWVudCh0aGlzLnBsYWNlRGVmaW5pdGlvbiwgey4uLnRoaXMudmlzaXRQYXJhbWV0ZXJzLCBbcGFyYW1ldGVyLm5hbWVdOiB2YWx1ZX0pO1xuICB9XG5cbiAgbWVyZ2VSb3V0ZVBhcmFtZXRlcnMocm91dGVQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogVmlzaXRTZWdtZW50IHtcbiAgICAvLyB0b2RvOiB3aGl0ZWxpc3QgcGFyYW1ldGVycy5cbiAgICBjb25zdCByb3V0ZVBhcmFtZXRlcktleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVBhcmFtcyk7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgdGhpcy5wbGFjZURlZmluaXRpb24uZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKCkuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgaWYgKGRlZi5pc1JvdXRlSWQgfHwgZGVmLmlzUm91dGVQYXJhbWV0ZXIpIHtcbiAgICAgICAgaWYgKHJvdXRlUGFyYW1ldGVyS2V5cy5pbmNsdWRlcyhkZWYubmFtZSkpIHtcbiAgICAgICAgICBwYXJhbXNbZGVmLm5hbWVdID0gcm91dGVQYXJhbXNbZGVmLm5hbWVdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb3B5IG5vbiByb3V0ZSBwYXJhbXMgYXMgaXMsIGJ1dCBvbmx5IGlmIHRoZXkgYWxyZWFkeSBleGlzdCBvdGhlcndpc2Ugd2UnbGwgaW5qZWN0IG5pbCB2YWx1ZXMgYW5kIGJyZWFrIHRoZVxuICAgICAgICAvLyBkZWZhdWx0cyBhbmQgcmVtZW1iZXIgc2FuaXRpc2F0aW9uIHByb2Nlc3MuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQYXJhbWV0ZXJWYWx1ZShkZWYpO1xuICAgICAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXIoZGVmKSkge1xuICAgICAgICAgIHBhcmFtc1tkZWYubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgVmlzaXRTZWdtZW50KHRoaXMucGxhY2VEZWZpbml0aW9uLCBwYXJhbXMpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaGFzUm91dGluZ0NoYW5nZWRGcm9tKG90aGVyOiBWaXNpdFNlZ21lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzYW1lUGxhY2UgPSBvdGhlci5wbGFjZURlZmluaXRpb24gPT09IHRoaXMucGxhY2VEZWZpbml0aW9uO1xuICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcywgdHJ1ZSk7XG4gICAgY29uc3Qgb3RoZXJQYXJhbXMgPSB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnMob3RoZXIsIHRydWUpO1xuICAgIC8vIGNvbnNvbGUubG9nKHtjdXJyZW50UGFyYW1zLCBvdGhlclBhcmFtc30pO1xuICAgIGNvbnN0IHNhbWVSb3V0ZVBhcmFtZXRlcnMgPSBpc0VxdWFsKGN1cnJlbnRQYXJhbXMsIG90aGVyUGFyYW1zKTtcbiAgICByZXR1cm4gIXNhbWVQbGFjZSB8fCAhc2FtZVJvdXRlUGFyYW1ldGVycztcbiAgfVxuXG4gIGhhc0NoYW5nZWRGcm9tKG90aGVyOiBWaXNpdFNlZ21lbnQpIHtcbiAgICBjb25zdCBzYW1lTm9uUm91dGVQYXJhbWV0ZXJzID0gaXNFcXVhbChcbiAgICAgIHRoaXMucGxhY2VEZWZpbml0aW9uLmdldE5vblJvdXRlUGFyYW1ldGVycyh0aGlzKSxcbiAgICAgIHRoaXMucGxhY2VEZWZpbml0aW9uLmdldE5vblJvdXRlUGFyYW1ldGVycyhvdGhlcilcbiAgICApO1xuICAgIHJldHVybiAhc2FtZU5vblJvdXRlUGFyYW1ldGVycyB8fCB0aGlzLmhhc1JvdXRpbmdDaGFuZ2VkRnJvbShvdGhlcik7XG4gIH1cblxuICBjcmVhdGVSb3V0ZXJDb21tYW5kcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUm91dGVJZCgpID9cbiAgICAgIFt0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHRoaXMpLCB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcyldIDpcbiAgICAgIFt0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcyldO1xuICB9XG5cbiAgY29weU1pc3NpbmdGcm9tKG90aGVyOiBWaXNpdFNlZ21lbnQpOiBWaXNpdFNlZ21lbnQge1xuICAgIHJldHVybiBuZXcgVmlzaXRTZWdtZW50KHRoaXMucGxhY2VEZWZpbml0aW9uLCB7Li4ub3RoZXIudmlzaXRQYXJhbWV0ZXJzLCAuLi50aGlzLnZpc2l0UGFyYW1ldGVyc30pO1xuICB9XG5cbiAgdG9EZWJ1Z1N0cmluZygpIHtcbiAgICBjb25zdCBiaXRzID0gW3RoaXMucGxhY2VEZWZpbml0aW9uLnBhdGhdO1xuICAgIGlmICh0aGlzLnBsYWNlRGVmaW5pdGlvbi5hdXRoZW50aWNhdGUpIHtcbiAgICAgIGJpdHMucHVzaChcIvCflJBcIik7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnZpc2l0UGFyYW1ldGVycyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xuICAgICAgYml0cy5wdXNoKGAoJHtrZXlzLm1hcChrID0+IGAke2t9PSR7dGhpcy52aXNpdFBhcmFtZXRlcnNba119YCl9fSlgKTtcbiAgICB9XG4gICAgcmV0dXJuIGJpdHMuam9pbignJyk7XG4gIH1cblxufVxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQtc2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3Zpc2l0LXNlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSW5ELE1BQU0sT0FBTyxZQUFZO0lBR0Y7SUFGWixlQUFlLENBQXNCO0lBRTlDLFlBQXFCLGVBQWdDLEVBQUUsa0JBQXVDLEVBQUU7UUFBM0Usb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ25ELGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVc7SUFDWCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVztJQUNYLFVBQVU7UUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFPLFNBQTZDO1FBQ25FLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsV0FBVztJQUNYLFlBQVksQ0FBQyxZQUEwQztRQUNyRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZ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LEVBQUUsRUFBQyxHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNFcXVhbCwgaXNOaWwsIGlzU3RyaW5nfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1BhcmFtZXRlckRlZmluaXRpb259IGZyb20gJy4vcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5leHBvcnQgY2xhc3MgVmlzaXRTZWdtZW50IHtcbiAgcmVhZG9ubHkgdmlzaXRQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uLCB2aXNpdFBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkge1xuICAgIHBsYWNlRGVmaW5pdGlvbi52YWxpZGF0ZVJvdXRlUGFyYW1ldGVycyh2aXNpdFBhcmFtZXRlcnMpXG4gICAgdGhpcy52aXNpdFBhcmFtZXRlcnMgPSBPYmplY3QuZnJlZXplKHZpc2l0UGFyYW1ldGVycyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRSb3V0ZUlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRSb3V0ZUlkRnJvbSh0aGlzKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGhhc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc05pbCh0aGlzLmdldFJvdXRlSWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHBsYWNlIHBhcmFtZXRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4gIFRoZSBwYXJhbWV0ZXJcbiAgICogbmFtZSBpcyB0YWtlbiBmcm9tIHRoZSBgYXNgIG9wdGlvbiwgZS5nLiB7YXM6ICdhQ3VzdG9tTmFtZSd9IG90aGVyd2lzZSBpdCBpcyB0aGVcbiAgICogc2FtZSBhcyB0aGUgVmFsdWVNb2RlbCBwcm9wZXJ0eSBuYW1lLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVyIHRoZSB2aXNpdCBwYXJhbWV0ZXIgZGVmaW5pdGlvblxuICAgKi9cbiAgZ2V0UGFyYW1ldGVyVmFsdWU8VCwgUz4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+IHwgc3RyaW5nKTogVCB7XG4gICAgcmV0dXJuIGlzU3RyaW5nKHBhcmFtZXRlcikgPyB0aGlzLnZpc2l0UGFyYW1ldGVyc1twYXJhbWV0ZXJdIDogdGhpcy52aXNpdFBhcmFtZXRlcnNbcGFyYW1ldGVyLm5hbWVdO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaGFzUGFyYW1ldGVyKHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnZpc2l0UGFyYW1ldGVycykuaW5jbHVkZXMocGFyYW1ldGVyRGVmLm5hbWUpO1xuICB9XG5cbiAgcmVwbGFjZTxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VCwgdW5rbm93bj4sIHZhbHVlOiBUKTogVmlzaXRTZWdtZW50IHtcbiAgICByZXR1cm4gbmV3IFZpc2l0U2VnbWVudCh0aGlzLnBsYWNlRGVmaW5pdGlvbiwgey4uLnRoaXMudmlzaXRQYXJhbWV0ZXJzLCBbcGFyYW1ldGVyLm5hbWVdOiB2YWx1ZX0pO1xuICB9XG5cbiAgbWVyZ2VSb3V0ZVBhcmFtZXRlcnMocm91dGVQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogVmlzaXRTZWdtZW50IHtcbiAgICAvLyB0b2RvOiB3aGl0ZWxpc3QgcGFyYW1ldGVycy5cbiAgICBjb25zdCByb3V0ZVBhcmFtZXRlcktleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVBhcmFtcyk7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgdGhpcy5wbGFjZURlZmluaXRpb24uZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKCkuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgaWYgKGRlZi5pc1JvdXRlSWQgfHwgZGVmLmlzUm91dGVQYXJhbWV0ZXIpIHtcbiAgICAgICAgaWYgKHJvdXRlUGFyYW1ldGVyS2V5cy5pbmNsdWRlcyhkZWYubmFtZSkpIHtcbiAgICAgICAgICBwYXJhbXNbZGVmLm5hbWVdID0gcm91dGVQYXJhbXNbZGVmLm5hbWVdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb3B5IG5vbiByb3V0ZSBwYXJhbXMgYXMgaXMsIGJ1dCBvbmx5IGlmIHRoZXkgYWxyZWFkeSBleGlzdCBvdGhlcndpc2Ugd2UnbGwgaW5qZWN0IG5pbCB2YWx1ZXMgYW5kIGJyZWFrIHRoZVxuICAgICAgICAvLyBkZWZhdWx0cyBhbmQgcmVtZW1iZXIgc2FuaXRpc2F0aW9uIHByb2Nlc3MuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQYXJhbWV0ZXJWYWx1ZShkZWYpO1xuICAgICAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXIoZGVmKSkge1xuICAgICAgICAgIHBhcmFtc1tkZWYubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgVmlzaXRTZWdtZW50KHRoaXMucGxhY2VEZWZpbml0aW9uLCBwYXJhbXMpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgaGFzUm91dGluZ0NoYW5nZWRGcm9tKG90aGVyOiBWaXNpdFNlZ21lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzYW1lUGxhY2UgPSBvdGhlci5wbGFjZURlZmluaXRpb24gPT09IHRoaXMucGxhY2VEZWZpbml0aW9uO1xuICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcywgdHJ1ZSk7XG4gICAgY29uc3Qgb3RoZXJQYXJhbXMgPSB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnMob3RoZXIsIHRydWUpO1xuICAgIC8vIGNvbnNvbGUubG9nKHtjdXJyZW50UGFyYW1zLCBvdGhlclBhcmFtc30pO1xuICAgIGNvbnN0IHNhbWVSb3V0ZVBhcmFtZXRlcnMgPSBpc0VxdWFsKGN1cnJlbnRQYXJhbXMsIG90aGVyUGFyYW1zKTtcbiAgICByZXR1cm4gIXNhbWVQbGFjZSB8fCAhc2FtZVJvdXRlUGFyYW1ldGVycztcbiAgfVxuXG4gIGhhc0NoYW5nZWRGcm9tKG90aGVyOiBWaXNpdFNlZ21lbnQpIHtcbiAgICBjb25zdCBzYW1lTm9uUm91dGVQYXJhbWV0ZXJzID0gaXNFcXVhbChcbiAgICAgIHRoaXMucGxhY2VEZWZpbml0aW9uLmdldE5vblJvdXRlUGFyYW1ldGVycyh0aGlzKSxcbiAgICAgIHRoaXMucGxhY2VEZWZpbml0aW9uLmdldE5vblJvdXRlUGFyYW1ldGVycyhvdGhlcilcbiAgICApO1xuICAgIHJldHVybiAhc2FtZU5vblJvdXRlUGFyYW1ldGVycyB8fCB0aGlzLmhhc1JvdXRpbmdDaGFuZ2VkRnJvbShvdGhlcik7XG4gIH1cblxuICBjcmVhdGVSb3V0ZXJDb21tYW5kcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUm91dGVJZCgpID9cbiAgICAgIFt0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHRoaXMpLCB0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcyldIDpcbiAgICAgIFt0aGlzLnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModGhpcyldO1xuICB9XG5cbiAgY29weU1pc3NpbmdGcm9tKG90aGVyOiBWaXNpdFNlZ21lbnQpOiBWaXNpdFNlZ21lbnQge1xuICAgIHJldHVybiBuZXcgVmlzaXRTZWdtZW50KHRoaXMucGxhY2VEZWZpbml0aW9uLCB7Li4ub3RoZXIudmlzaXRQYXJhbWV0ZXJzLCAuLi50aGlzLnZpc2l0UGFyYW1ldGVyc30pO1xuICB9XG5cbiAgdG9EZWJ1Z1N0cmluZygpIHtcbiAgICBjb25zdCBiaXRzID0gW3RoaXMucGxhY2VEZWZpbml0aW9uLnBhdGhdO1xuICAgIGlmICh0aGlzLnBsYWNlRGVmaW5pdGlvbi5hdXRoZW50aWNhdGUpIHtcbiAgICAgIGJpdHMucHVzaChcIvCflJBcIik7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnZpc2l0UGFyYW1ldGVycyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xuICAgICAgYml0cy5wdXNoKGAoJHtrZXlzLm1hcChrID0+IGAke2t9PSR7dGhpcy52aXNpdFBhcmFtZXRlcnNba119YCl9fSlgKTtcbiAgICB9XG4gICAgcmV0dXJuIGJpdHMuam9pbignJyk7XG4gIH1cblxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { assert } from "@coolon/typescript-utilities";
3
+ import { Memoize } from "fast-typescript-memoize";
3
4
  import { isEmpty, last } from "lodash-es";
4
- import { Memoize } from "typescript-memoize";
5
5
  import { PlaceComponent } from "./place-component";
6
6
  import { PlaceDefinition } from "./place-definition";
7
7
  import { VisitSegment } from "./visit-segment";
@@ -94,4 +94,4 @@ __decorate([
94
94
  // .withAncestorParameters(ParentA, {id: "a"}) // barf if not a ancestor or missing parameters are required or parameter isn't valid
95
95
  // .withAncestorParameters(ParentB, {id: "c"}) // barf if not a ancestor or missing parameters are required or parameter isn't valid
96
96
  //
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS92aXNpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxPQUFPLEtBQUs7SUFFTix3QkFBd0IsR0FBRyxJQUFJLEdBQUcsRUFBK0MsQ0FBQztJQUN6RSxrQkFBa0IsQ0FBZTtJQUNqQyxtQkFBbUIsQ0FBa0I7SUFFeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUE2QyxFQUFFLGVBQXlDO1FBQ2xHLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUF3QjtRQUMxQyxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFzQixRQUF3QjtRQUM1QyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENB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TyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0NBQ0Y7QUF4QkM7SUFEQyxPQUFPLEVBQUU7O3FDQUNxQixlQUFlO29DQUFHLFlBQVk7MENBRTVEO0FBeUJILHdEQUF3RDtBQUN4RCxzSUFBc0k7QUFDdEksc0lBQXNJO0FBQ3RJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Fzc2VydCwgQ29uc3RydWN0YWJsZX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7aXNFbXB0eSwgbGFzdH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHtNZW1vaXplfSBmcm9tIFwidHlwZXNjcmlwdC1tZW1vaXplXCI7XG5pbXBvcnQge1BsYWNlQWNjZXNzR3VhcmR9IGZyb20gXCIuL3BsYWNlLWFjY2Vzcy1ndWFyZFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSBcIi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4vcGxhY2UtZGVmaW5pdGlvblwiO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gXCIuL3Zpc2l0LXNlZ21lbnRcIjtcblxuZXhwb3J0IGNsYXNzIFZpc2l0IHtcblxuICBwcm90ZWN0ZWQgc2VnbWVudHNCeVBsYWNlQ29tcG9uZW50ID0gbmV3IE1hcDxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiwgVmlzaXRTZWdtZW50PigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdGluYXRpb25TZWdtZW50OiBWaXNpdFNlZ21lbnQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0aW5hdGlvblBsYWNlRGVmOiBQbGFjZURlZmluaXRpb247XG5cbiAgc3RhdGljIGdvdG8ocGxhY2VDb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCB2aXNpdFBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFZpc2l0IHtcbiAgICByZXR1cm4gbmV3IFZpc2l0KFtuZXcgVmlzaXRTZWdtZW50KFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24ocGxhY2VDb21wb25lbnQpLCB2aXNpdFBhcmFtZXRlcnMpXSlcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU2VnbWVudHMoc2VnbWVudHM6IFZpc2l0U2VnbWVudFtdKTogVmlzaXQge1xuICAgIHJldHVybiBuZXcgVmlzaXQoc2VnbWVudHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHNlZ21lbnRzOiBWaXNpdFNlZ21lbnRbXSkge1xuICAgIGFzc2VydC5pc1RydXRoeShzZWdtZW50cy5sZW5ndGggPiAwKTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uU2VnbWVudCA9IGxhc3Qoc2VnbWVudHMpO1xuICAgIHRoaXMuZGVzdGluYXRpb25QbGFjZURlZiA9IHRoaXMuZGVzdGluYXRpb25TZWdtZW50LnBsYWNlRGVmaW5pdGlvblxuICAgIHNlZ21lbnRzLmZvckVhY2gocyA9PiB0aGlzLnNlZ21lbnRzQnlQbGFjZUNvbXBvbmVudC5zZXQocy5wbGFjZURlZmluaXRpb24uY29tcG9uZW50LCBzKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZGVmaW5lZFNlZ21lbnRzKCk6IE1hcDxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiwgVmlzaXRTZWdtZW50PiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWdtZW50c0J5UGxhY2VDb21wb25lbnQudmFsdWVzKCkpLnJlZHVjZSgobWFwLCBzKSA9PiB7XG4gICAgICBtYXAuc2V0KHMucGxhY2VEZWZpbml0aW9uLmNvbXBvbmVudCwgcylcbiAgICAgIHJldHVybiBtYXA7XG4gICAgfSwgbmV3IE1hcCgpKVxuXG4gIH1cblxuICB3aXRoQW5jZXN0b3JQYXJhbWV0ZXJzKHBsYWNlQ29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiwgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB0aGlzIHtcbiAgICBpZiAoIXRoaXMuZGVzdGluYXRpb25QbGFjZURlZi5oYXNBbmNlc3RvcihwbGFjZUNvbXBvbmVudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUGxhY2UgJHtwbGFjZUNvbXBvbmVudC5uYW1lfSBpcyBub3QgYW4gYW5jZXN0b3Igb2YgJHt0aGlzLmRlc3RpbmF0aW9uUGxhY2VEZWYuY29tcG9uZW50Lm5hbWV9YCk7XG4gICAgfVxuICAgIHRoaXMuc2VnbWVudHNCeVBsYWNlQ29tcG9uZW50LnNldChwbGFjZUNvbXBvbmVudCwgbmV3IFZpc2l0U2VnbWVudChQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHBsYWNlQ29tcG9uZW50KSwgcGFyYW1ldGVycykpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0IHNlZ21lbnRzKCk6IFZpc2l0U2VnbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2VnbWVudHMoW3RoaXMuZGVmaW5lZFNlZ21lbnRzXSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVTZWdtZW50cyhkZWZhdWx0czogTWFwPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBWaXNpdFNlZ21lbnQ+W10pIHtcbiAgICByZXR1cm4gdGhpcy5kZXN0aW5hdGlvblBsYWNlRGVmLmFuY2VzdG9yc0FuZFNlbGYoKVxuICAgICAgLm1hcChhID0+IHtcbiAgICAgICAgY29uc3QgdmlzaXQgPSBuZXcgVmlzaXRTZWdtZW50KGEsIHt9KTtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRzXG4gICAgICAgICAgLm1hcChzZWdtZW50cyA9PiBzZWdtZW50cy5nZXQoYS5jb21wb25lbnQpKVxuICAgICAgICAgIC5maWx0ZXIoaXQgPT4gISFpdClcbiAgICAgICAgICAucmVkdWNlKChpdCwgb3RoZXIpID0+IGl0LmNvcHlNaXNzaW5nRnJvbShvdGhlciksIHZpc2l0KVxuICAgICAgfSk7XG4gIH1cblxuICBjb3B5V2l0aERlZmF1bHRzRnJvbShvdGhlcjogVmlzaXR8dW5kZWZpbmVkKTogVmlzaXQge1xuICAgIGNvbnN0IGRlZmF1bHRzID0gW3RoaXMuZGVmaW5lZFNlZ21lbnRzXTtcbiAgICBpZiAob3RoZXIpIHtcbiAgICAgIGRlZmF1bHRzLnB1c2gob3RoZXIuZGVmaW5lZFNlZ21lbnRzKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBWaXNpdCh0aGlzLnJlc29sdmVTZWdtZW50cyhkZWZhdWx0cykpO1xuICB9XG5cbiAgY29weUFuZFJlcGxhY2VTZWdtZW50KHJlcGxhY2U6IFZpc2l0U2VnbWVudCk6IFZpc2l0IHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImNvcHlBbmRSZXBsYWNlU2VnbWVudFwiLCByZXBsYWNlLnRvRGVidWdTdHJpbmcoKSk7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnNlZ21lbnRzLm1hcChzID0+IHMucGxhY2VEZWZpbml0aW9uID09PSByZXBsYWNlLnBsYWNlRGVmaW5pdGlvbiA/IHJlcGxhY2UgOiBzKTtcbiAgICAvLyBjb25zb2xlLmxvZyhcImNvcHlBbmRSZXBsYWNlU2VnbWVudC5yZXN1bHRcIiwgc2VnbWVudHMubWFwKHMgPT4gcy50b0RlYnVnU3RyaW5nKCkpLmpvaW4oXCJcXG5cIikpO1xuICAgIHJldHVybiBuZXcgVmlzaXQoc2VnbWVudHMpO1xuICB9XG5cbiAgaXNQbGFjZUFjdGl2ZShwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0U2VnbWVudEZvcihwbGFjZURlZmluaXRpb24pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRTZWdtZW50Rm9yKHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKTogVmlzaXRTZWdtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5maW5kKHYgPT4gdi5wbGFjZURlZmluaXRpb24gPT09IHBsYWNlRGVmaW5pdGlvbik7XG4gIH1cblxuICBnZXRSb3V0ZXJDb21tYW5kcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMucmVkdWNlKChyZXN1bHQsIHYpID0+IHtcbiAgICAgIGNvbnN0IHBhdGggPSB2LnBsYWNlRGVmaW5pdGlvbi5wYXRoO1xuICAgICAgcmV0dXJuIGlzRW1wdHkocGF0aCkgP1xuICAgICAgICBbLi4ucmVzdWx0LCBwYXRoXSA6IC8vIEFuZ3VsYXIgZG9lc24ndCBzdXBwb3J0IHJvdXRlIHBhcmFtcyBvbiBlbXB0eSBwYXRoIHNlZ21lbnRzXG4gICAgICAgIFsuLi5yZXN1bHQsIHBhdGgsIC4uLnYuY3JlYXRlUm91dGVyQ29tbWFuZHMoKV07XG4gICAgfSwgW10pO1xuICB9XG5cbiAgaXNBdXRob3Jpc2VkKGd1YXJkOiBQbGFjZUFjY2Vzc0d1YXJkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZmluZChzID0+ICFndWFyZC5pc0F1dGhvcmlzZWQocy5wbGFjZURlZmluaXRpb24pKSA9PSBudWxsO1xuICB9XG5cbiAgcmVxdWlyZXNBdXRoZW50aWNhdGlvbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnNlZ21lbnRzLmZpbmQocyA9PiBzLnBsYWNlRGVmaW5pdGlvbi5hdXRoZW50aWNhdGUpO1xuICB9XG5cbiAgdG9EZWJ1Z1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5tYXAocyA9PiBzLnRvRGVidWdTdHJpbmcoKSkuam9pbihcIi9cIilcbiAgfVxufVxuXG5cbi8vIGNvbnN0IHZpc2l0MiA9IFZpc2l0LmdvdG8oQW5vdGhlclBsYWNlLCB7aWQ6IFwiZnJlZFwifSlcbi8vICAgLndpdGhBbmNlc3RvclBhcmFtZXRlcnMoUGFyZW50QSwge2lkOiBcImFcIn0pIC8vIGJhcmYgaWYgbm90IGEgYW5jZXN0b3Igb3IgbWlzc2luZyBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZCBvciBwYXJhbWV0ZXIgaXNuJ3QgdmFsaWRcbi8vICAgLndpdGhBbmNlc3RvclBhcmFtZXRlcnMoUGFyZW50Qiwge2lkOiBcImNcIn0pIC8vIGJhcmYgaWYgbm90IGEgYW5jZXN0b3Igb3IgbWlzc2luZyBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZCBvciBwYXJhbWV0ZXIgaXNuJ3QgdmFsaWRcbi8vXG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS92aXNpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxPQUFPLEtBQUs7SUFFTix3QkFBd0IsR0FBRyxJQUFJLEdBQUcsRUFBK0MsQ0FBQztJQUN6RSxrQkFBa0IsQ0FBZTtJQUNqQyxtQkFBbUIsQ0FBa0I7SUFFeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUE2QyxFQUFFLGVBQXlDO1FBQ2xHLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUF3QjtRQUMxQyxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFzQixRQUF3QjtRQUM1QyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENB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TyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0NBQ0Y7QUF4QkM7SUFEQyxPQUFPLEVBQUU7O3FDQUNxQixlQUFlO29DQUFHLFlBQVk7MENBRTVEO0FBeUJILHdEQUF3RDtBQUN4RCxzSUFBc0k7QUFDdEksc0lBQXNJO0FBQ3RJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Fzc2VydCwgQ29uc3RydWN0YWJsZX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSBcImZhc3QtdHlwZXNjcmlwdC1tZW1vaXplXCI7XG5pbXBvcnQge2lzRW1wdHksIGxhc3R9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7UGxhY2VBY2Nlc3NHdWFyZH0gZnJvbSBcIi4vcGxhY2UtYWNjZXNzLWd1YXJkXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi9wbGFjZS1jb21wb25lbnRcIjtcbmltcG9ydCB7UGxhY2VEZWZpbml0aW9ufSBmcm9tIFwiLi9wbGFjZS1kZWZpbml0aW9uXCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSBcIi4vdmlzaXQtc2VnbWVudFwiO1xuXG5leHBvcnQgY2xhc3MgVmlzaXQge1xuXG4gIHByb3RlY3RlZCBzZWdtZW50c0J5UGxhY2VDb21wb25lbnQgPSBuZXcgTWFwPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBWaXNpdFNlZ21lbnQ+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0aW5hdGlvblNlZ21lbnQ6IFZpc2l0U2VnbWVudDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3RpbmF0aW9uUGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbjtcblxuICBzdGF0aWMgZ290byhwbGFjZUNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIHZpc2l0UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogVmlzaXQge1xuICAgIHJldHVybiBuZXcgVmlzaXQoW25ldyBWaXNpdFNlZ21lbnQoUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbihwbGFjZUNvbXBvbmVudCksIHZpc2l0UGFyYW1ldGVycyldKVxuICB9XG5cbiAgc3RhdGljIGZyb21TZWdtZW50cyhzZWdtZW50czogVmlzaXRTZWdtZW50W10pOiBWaXNpdCB7XG4gICAgcmV0dXJuIG5ldyBWaXNpdChzZWdtZW50cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2VnbWVudHM6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHNlZ21lbnRzLmxlbmd0aCA+IDApO1xuICAgIHRoaXMuZGVzdGluYXRpb25TZWdtZW50ID0gbGFzdChzZWdtZW50cyk7XG4gICAgdGhpcy5kZXN0aW5hdGlvblBsYWNlRGVmID0gdGhpcy5kZXN0aW5hdGlvblNlZ21lbnQucGxhY2VEZWZpbml0aW9uXG4gICAgc2VnbWVudHMuZm9yRWFjaChzID0+IHRoaXMuc2VnbWVudHNCeVBsYWNlQ29tcG9uZW50LnNldChzLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQsIHMpKVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkZWZpbmVkU2VnbWVudHMoKTogTWFwPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBWaXNpdFNlZ21lbnQ+IHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNlZ21lbnRzQnlQbGFjZUNvbXBvbmVudC52YWx1ZXMoKSkucmVkdWNlKChtYXAsIHMpID0+IHtcbiAgICAgIG1hcC5zZXQocy5wbGFjZURlZmluaXRpb24uY29tcG9uZW50LCBzKVxuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBuZXcgTWFwKCkpXG5cbiAgfVxuXG4gIHdpdGhBbmNlc3RvclBhcmFtZXRlcnMocGxhY2VDb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHRoaXMge1xuICAgIGlmICghdGhpcy5kZXN0aW5hdGlvblBsYWNlRGVmLmhhc0FuY2VzdG9yKHBsYWNlQ29tcG9uZW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQbGFjZSAke3BsYWNlQ29tcG9uZW50Lm5hbWV9IGlzIG5vdCBhbiBhbmNlc3RvciBvZiAke3RoaXMuZGVzdGluYXRpb25QbGFjZURlZi5jb21wb25lbnQubmFtZX1gKTtcbiAgICB9XG4gICAgdGhpcy5zZWdtZW50c0J5UGxhY2VDb21wb25lbnQuc2V0KHBsYWNlQ29tcG9uZW50LCBuZXcgVmlzaXRTZWdtZW50KFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24ocGxhY2VDb21wb25lbnQpLCBwYXJhbWV0ZXJzKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgc2VnbWVudHMoKTogVmlzaXRTZWdtZW50W10ge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTZWdtZW50cyhbdGhpcy5kZWZpbmVkU2VnbWVudHNdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNlZ21lbnRzKGRlZmF1bHRzOiBNYXA8Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIFZpc2l0U2VnbWVudD5bXSkge1xuICAgIHJldHVybiB0aGlzLmRlc3RpbmF0aW9uUGxhY2VEZWYuYW5jZXN0b3JzQW5kU2VsZigpXG4gICAgICAubWFwKGEgPT4ge1xuICAgICAgICBjb25zdCB2aXNpdCA9IG5ldyBWaXNpdFNlZ21lbnQoYSwge30pO1xuICAgICAgICByZXR1cm4gZGVmYXVsdHNcbiAgICAgICAgICAubWFwKHNlZ21lbnRzID0+IHNlZ21lbnRzLmdldChhLmNvbXBvbmVudCkpXG4gICAgICAgICAgLmZpbHRlcihpdCA9PiAhIWl0KVxuICAgICAgICAgIC5yZWR1Y2UoKGl0LCBvdGhlcikgPT4gaXQuY29weU1pc3NpbmdGcm9tKG90aGVyKSwgdmlzaXQpXG4gICAgICB9KTtcbiAgfVxuXG4gIGNvcHlXaXRoRGVmYXVsdHNGcm9tKG90aGVyOiBWaXNpdHx1bmRlZmluZWQpOiBWaXNpdCB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSBbdGhpcy5kZWZpbmVkU2VnbWVudHNdO1xuICAgIGlmIChvdGhlcikge1xuICAgICAgZGVmYXVsdHMucHVzaChvdGhlci5kZWZpbmVkU2VnbWVudHMpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFZpc2l0KHRoaXMucmVzb2x2ZVNlZ21lbnRzKGRlZmF1bHRzKSk7XG4gIH1cblxuICBjb3B5QW5kUmVwbGFjZVNlZ21lbnQocmVwbGFjZTogVmlzaXRTZWdtZW50KTogVmlzaXQge1xuICAgIC8vIGNvbnNvbGUubG9nKFwiY29weUFuZFJlcGxhY2VTZWdtZW50XCIsIHJlcGxhY2UudG9EZWJ1Z1N0cmluZygpKTtcbiAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMuc2VnbWVudHMubWFwKHMgPT4gcy5wbGFjZURlZmluaXRpb24gPT09IHJlcGxhY2UucGxhY2VEZWZpbml0aW9uID8gcmVwbGFjZSA6IHMpO1xuICAgIC8vIGNvbnNvbGUubG9nKFwiY29weUFuZFJlcGxhY2VTZWdtZW50LnJlc3VsdFwiLCBzZWdtZW50cy5tYXAocyA9PiBzLnRvRGVidWdTdHJpbmcoKSkuam9pbihcIlxcblwiKSk7XG4gICAgcmV0dXJuIG5ldyBWaXNpdChzZWdtZW50cyk7XG4gIH1cblxuICBpc1BsYWNlQWN0aXZlKHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRTZWdtZW50Rm9yKHBsYWNlRGVmaW5pdGlvbik7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFNlZ21lbnRGb3IocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pOiBWaXNpdFNlZ21lbnQge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmZpbmQodiA9PiB2LnBsYWNlRGVmaW5pdGlvbiA9PT0gcGxhY2VEZWZpbml0aW9uKTtcbiAgfVxuXG4gIGdldFJvdXRlckNvbW1hbmRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5yZWR1Y2UoKHJlc3VsdCwgdikgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IHYucGxhY2VEZWZpbml0aW9uLnBhdGg7XG4gICAgICByZXR1cm4gaXNFbXB0eShwYXRoKSA/XG4gICAgICAgIFsuLi5yZXN1bHQsIHBhdGhdIDogLy8gQW5ndWxhciBkb2Vzbid0IHN1cHBvcnQgcm91dGUgcGFyYW1zIG9uIGVtcHR5IHBhdGggc2VnbWVudHNcbiAgICAgICAgWy4uLnJlc3VsdCwgcGF0aCwgLi4udi5jcmVhdGVSb3V0ZXJDb21tYW5kcygpXTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBpc0F1dGhvcmlzZWQoZ3VhcmQ6IFBsYWNlQWNjZXNzR3VhcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5maW5kKHMgPT4gIWd1YXJkLmlzQXV0aG9yaXNlZChzLnBsYWNlRGVmaW5pdGlvbikpID09IG51bGw7XG4gIH1cblxuICByZXF1aXJlc0F1dGhlbnRpY2F0aW9uKCkge1xuICAgIHJldHVybiAhIXRoaXMuc2VnbWVudHMuZmluZChzID0+IHMucGxhY2VEZWZpbml0aW9uLmF1dGhlbnRpY2F0ZSk7XG4gIH1cblxuICB0b0RlYnVnU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLm1hcChzID0+IHMudG9EZWJ1Z1N0cmluZygpKS5qb2luKFwiL1wiKVxuICB9XG59XG5cblxuLy8gY29uc3QgdmlzaXQyID0gVmlzaXQuZ290byhBbm90aGVyUGxhY2UsIHtpZDogXCJmcmVkXCJ9KVxuLy8gICAud2l0aEFuY2VzdG9yUGFyYW1ldGVycyhQYXJlbnRBLCB7aWQ6IFwiYVwifSkgLy8gYmFyZiBpZiBub3QgYSBhbmNlc3RvciBvciBtaXNzaW5nIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkIG9yIHBhcmFtZXRlciBpc24ndCB2YWxpZFxuLy8gICAud2l0aEFuY2VzdG9yUGFyYW1ldGVycyhQYXJlbnRCLCB7aWQ6IFwiY1wifSkgLy8gYmFyZiBpZiBub3QgYSBhbmNlc3RvciBvciBtaXNzaW5nIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkIG9yIHBhcmFtZXRlciBpc24ndCB2YWxpZFxuLy9cbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @file Automatically generated by barrelsby.
3
3
  */
4
+ export * from "./loading-monitor";
4
5
  export * from "./visibility-service";
5
6
  export * from "./markdown/markdown.service";
6
7
  export * from "./markdown/pill-plugin";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3NlcnZpY2VzL2V4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYmFycmVsc2J5LlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL3Zpc2liaWxpdHktc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFya2Rvd24vbWFya2Rvd24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFya2Rvd24vcGlsbC1wbHVnaW5cIjtcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3NlcnZpY2VzL2V4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZy1tb25pdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92aXNpYmlsaXR5LXNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hcmtkb3duL21hcmtkb3duLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hcmtkb3duL3BpbGwtcGx1Z2luXCI7XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Dsl, GarbageCollector, MutableValueModel } from '@coolon/pectin';
3
+ import { sortBy } from 'lodash-es';
4
+ import * as i0 from "@angular/core";
5
+ export class LoadingMonitor extends GarbageCollector {
6
+ watchChanges$ = new MutableValueModel(false);
7
+ trackers = new Map();
8
+ createTracker(loadable) {
9
+ const existing = this.trackers.get(loadable);
10
+ if (!existing) {
11
+ const tracker = new LoadingMonitor.Tracker(loadable, this.watchChanges$);
12
+ tracker.onDispose(() => this.trackers.delete(loadable));
13
+ this.trackers.set(loadable, tracker);
14
+ return loadable.registerDisposable(tracker);
15
+ }
16
+ else {
17
+ return existing;
18
+ }
19
+ }
20
+ dumpState() {
21
+ console.group('LoadingMonitor.dumpState:');
22
+ sortBy(Array.from(this.trackers.entries()), it => it[0].constructor?.name)
23
+ .forEach((entry) => entry[1].dumpState());
24
+ console.groupEnd();
25
+ }
26
+ watchChanges(watch) {
27
+ this.watchChanges$.value = watch;
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
30
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor, decorators: [{
33
+ type: Injectable
34
+ }] });
35
+ (function (LoadingMonitor) {
36
+ class Tracker extends GarbageCollector {
37
+ root;
38
+ watchChanges$;
39
+ loadables = [];
40
+ rootName;
41
+ constructor(root, watchChanges$) {
42
+ super();
43
+ this.root = root;
44
+ this.watchChanges$ = watchChanges$;
45
+ this.rootName = root.constructor.name;
46
+ }
47
+ registerLoadableDependency(loadable) {
48
+ const { when } = Dsl.disposeWith(this);
49
+ if (this.loadables.includes(loadable)) {
50
+ console.warn(`%c${this.rootName} already has a dependency on ${loadable.constructor?.name}`, 'color: red');
51
+ }
52
+ else {
53
+ when(loadable.loaded$).changes((is, was) => this.dumpState({
54
+ loadable,
55
+ is,
56
+ was
57
+ }), { asLongAs: this.watchChanges$ });
58
+ this.loadables.push(loadable);
59
+ }
60
+ }
61
+ dumpState(changed) {
62
+ const loadedColor = "#3a3";
63
+ const notLoadedColor = "#a33";
64
+ const isLoaded = this.root.loaded$.value;
65
+ const styles = [
66
+ `font-weight: normal; color: ${isLoaded ? loadedColor : notLoadedColor}`,
67
+ `font-weight: bold; color: ${isLoaded ? loadedColor : notLoadedColor}`
68
+ ];
69
+ console.groupCollapsed(`%c${this.rootName} loaded: %c${isLoaded}`, ...styles);
70
+ sortBy(this.loadables, it => it.constructor?.name).forEach(loadable => {
71
+ if (loadable === changed?.loadable) {
72
+ console.log(`%c${loadable.constructor?.name}.loaded$: ${changed.was} -> %c${changed.is}`, ...styles);
73
+ }
74
+ else {
75
+ console.log(`%c${loadable.constructor?.name}.loaded$: %c${loadable.loaded$.value}`, ...styles);
76
+ }
77
+ });
78
+ console.groupEnd();
79
+ }
80
+ }
81
+ LoadingMonitor.Tracker = Tracker;
82
+ })(LoadingMonitor || (LoadingMonitor = {}));
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvc2VydmljZXMvbG9hZGluZy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBTW5DLE1BQU0sT0FBTyxjQUFlLFNBQVEsZ0JBQWdCO0lBRWpDLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztJQUVoRSxhQUFhLENBQUMsUUFBeUM7UUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckMsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFP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QUFLLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxhQUFhLE9BQU8sQ0FBQyxHQUFHLFNBQVMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7aUJBQ3RHO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksZUFBZSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7aUJBQ2hHO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckIsQ0FBQztLQUVGO0lBM0NZLHNCQUFPLFVBMkNuQixDQUFBO0FBQ0gsQ0FBQyxFQTdDZ0IsY0FBYyxLQUFkLGNBQWMsUUE2QzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZSwgRHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBNdXRhYmxlVmFsdWVNb2RlbCwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBMb2FkYWJsZSBhcyBFeHRlcm5hbGx5TG9hZGFibGV9IGZyb20gJy4uL2NvbXBvbmVudHMvdHlwZXMvbG9hZGFibGUnO1xuXG50eXBlIExvYWRhYmxlID0gUGljazxFeHRlcm5hbGx5TG9hZGFibGUsIFwibG9hZGVkJFwiPjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvYWRpbmdNb25pdG9yIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB3YXRjaENoYW5nZXMkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsKGZhbHNlKTtcbiAgcmVhZG9ubHkgdHJhY2tlcnMgPSBuZXcgTWFwPExvYWRhYmxlLCBMb2FkaW5nTW9uaXRvci5UcmFja2VyPigpO1xuXG4gIGNyZWF0ZVRyYWNrZXIobG9hZGFibGU6IExvYWRhYmxlICYgRGlzcG9zYWJsZS5Db2xsZWN0b3IpIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMudHJhY2tlcnMuZ2V0KGxvYWRhYmxlKTtcbiAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICBjb25zdCB0cmFja2VyID0gbmV3IExvYWRpbmdNb25pdG9yLlRyYWNrZXIobG9hZGFibGUsIHRoaXMud2F0Y2hDaGFuZ2VzJCk7XG4gICAgICB0cmFja2VyLm9uRGlzcG9zZSgoKSA9PiB0aGlzLnRyYWNrZXJzLmRlbGV0ZShsb2FkYWJsZSkpO1xuICAgICAgdGhpcy50cmFja2Vycy5zZXQobG9hZGFibGUsIHRyYWNrZXIpO1xuICAgICAgcmV0dXJuIGxvYWRhYmxlLnJlZ2lzdGVyRGlzcG9zYWJsZSh0cmFja2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgfVxuXG4gIGR1bXBTdGF0ZSgpIHtcbiAgICBjb25zb2xlLmdyb3VwKCdMb2FkaW5nTW9uaXRvci5kdW1wU3RhdGU6Jyk7XG4gICAgc29ydEJ5KEFycmF5LmZyb20odGhpcy50cmFja2Vycy5lbnRyaWVzKCkpLCBpdCA9PiBpdFswXS5jb25zdHJ1Y3Rvcj8ubmFtZSlcbiAgICAgIC5mb3JFYWNoKChlbnRyeSkgPT4gZW50cnlbMV0uZHVtcFN0YXRlKCkpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgfVxuXG4gIHdhdGNoQ2hhbmdlcyh3YXRjaDogYm9vbGVhbikge1xuICAgIHRoaXMud2F0Y2hDaGFuZ2VzJC52YWx1ZSA9IHdhdGNoO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBMb2FkaW5nTW9uaXRvciB7XG4gIGV4cG9ydCBjbGFzcyBUcmFja2VyIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRhYmxlczogTG9hZGFibGVbXSA9IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm9vdE5hbWU6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSByb290OiBMb2FkYWJsZSwgcHJvdGVjdGVkIHJlYWRvbmx5IHdhdGNoQ2hhbmdlcyQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLnJvb3ROYW1lID0gcm9vdC5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyTG9hZGFibGVEZXBlbmRlbmN5KGxvYWRhYmxlOiBMb2FkYWJsZSkge1xuICAgICAgY29uc3QgeyB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgICBpZiAodGhpcy5sb2FkYWJsZXMuaW5jbHVkZXMobG9hZGFibGUpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgJWMke3RoaXMucm9vdE5hbWV9IGFscmVhZHkgaGFzIGEgZGVwZW5kZW5jeSBvbiAke2xvYWRhYmxlLmNvbnN0cnVjdG9yPy5uYW1lfWAsICdjb2xvcjogcmVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aGVuKGxvYWRhYmxlLmxvYWRlZCQpLmNoYW5nZXMoKGlzLCB3YXMpID0+IHRoaXMuZHVtcFN0YXRlKHtcbiAgICAgICAgICBsb2FkYWJsZSxcbiAgICAgICAgICBpcyxcbiAgICAgICAgICB3YXNcbiAgICAgICAgfSksIHsgYXNMb25nQXM6IHRoaXMud2F0Y2hDaGFuZ2VzJCB9KTtcbiAgICAgICAgdGhpcy5sb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZHVtcFN0YXRlKGNoYW5nZWQ/OiB7IGxvYWRhYmxlOiBMb2FkYWJsZSwgaXM6IGJvb2xlYW4sIHdhczogYm9vbGVhbiB9KSB7XG4gICAgICBjb25zdCBsb2FkZWRDb2xvciA9IFwiIzNhM1wiXG4gICAgICBjb25zdCBub3RMb2FkZWRDb2xvciA9IFwiI2EzM1wiXG4gICAgICBjb25zdCBpc0xvYWRlZCA9IHRoaXMucm9vdC5sb2FkZWQkLnZhbHVlO1xuICAgICAgY29uc3Qgc3R5bGVzID0gW1xuICAgICAgICBgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6ICR7aXNMb2FkZWQgPyBsb2FkZWRDb2xvciA6IG5vdExvYWRlZENvbG9yfWAsXG4gICAgICAgIGBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICR7aXNMb2FkZWQgPyBsb2FkZWRDb2xvciA6IG5vdExvYWRlZENvbG9yfWBcbiAgICAgIF1cbiAgICAgIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoYCVjJHt0aGlzLnJvb3ROYW1lfSBsb2FkZWQ6ICVjJHtpc0xvYWRlZH1gLCAuLi5zdHlsZXMpO1xuICAgICAgc29ydEJ5KHRoaXMubG9hZGFibGVzLCBpdCA9PiBpdC5jb25zdHJ1Y3Rvcj8ubmFtZSkuZm9yRWFjaChsb2FkYWJsZSA9PiB7XG4gICAgICAgIGlmIChsb2FkYWJsZSA9PT0gY2hhbmdlZD8ubG9hZGFibGUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgJWMke2xvYWRhYmxlLmNvbnN0cnVjdG9yPy5uYW1lfS5sb2FkZWQkOiAke2NoYW5nZWQud2FzfSAtPiAlYyR7Y2hhbmdlZC5pc31gLCAuLi5zdHlsZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAlYyR7bG9hZGFibGUuY29uc3RydWN0b3I/Lm5hbWV9LmxvYWRlZCQ6ICVjJHtsb2FkYWJsZS5sb2FkZWQkLnZhbHVlfWAsIC4uLnN0eWxlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgIH1cblxuICB9XG59XG4iXX0=