@bizdoc/core 1.10.5 → 1.11.0-next.3

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 (339) hide show
  1. package/assets/bizdoc-schema.json +7 -4
  2. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  3. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  4. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  5. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  6. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  7. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
  8. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
  9. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  10. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  11. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  12. package/esm2020/lib/admin/form/form.service.mjs +3 -3
  13. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  14. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  15. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  16. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  17. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  18. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  19. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  20. package/esm2020/lib/admin/positions/positions.component.mjs +7 -7
  21. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  22. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  23. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  24. package/esm2020/lib/app.component.mjs +6 -6
  25. package/esm2020/lib/bizdoc.module.mjs +4 -4
  26. package/esm2020/lib/browse/browse-items.component.mjs +6 -6
  27. package/esm2020/lib/browse/browse.mobile.component.mjs +4 -4
  28. package/esm2020/lib/browse/browse.pane.component.mjs +4 -4
  29. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  30. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  31. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  32. package/esm2020/lib/chat/chat-info.mjs +3 -3
  33. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  34. package/esm2020/lib/chat/chat.service.mjs +3 -3
  35. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  36. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  37. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  38. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  39. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  40. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  41. package/esm2020/lib/compose/action/action.pane.dialog.mjs +3 -3
  42. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  43. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  44. package/esm2020/lib/compose/attachments/attachments.component.mjs +31 -23
  45. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +10 -16
  46. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +6 -6
  47. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  48. package/esm2020/lib/compose/comments/Comments.pane.component.mjs +3 -3
  49. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  50. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  51. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  52. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  53. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  54. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  55. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  56. package/esm2020/lib/compose/compose.mobile.component.mjs +5 -5
  57. package/esm2020/lib/compose/compose.pane.component.mjs +6 -6
  58. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  59. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  60. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  61. package/esm2020/lib/compose/document.component.mjs +3 -3
  62. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  63. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  64. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  65. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +5 -5
  66. package/esm2020/lib/compose/form.component.mjs +37 -11
  67. package/esm2020/lib/compose/new-menu.component.mjs +5 -5
  68. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  69. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  70. package/esm2020/lib/compose/save-changes.dialog.mjs +3 -3
  71. package/esm2020/lib/compose/state.component.mjs +3 -3
  72. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  73. package/esm2020/lib/compose/trace/flow.component.mjs +34 -46
  74. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  75. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  76. package/esm2020/lib/compose/trace/trace.component.mjs +44 -18
  77. package/esm2020/lib/compose/trace/trace.pane.component.mjs +4 -4
  78. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  79. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  80. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  81. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  82. package/esm2020/lib/core/account.service.mjs +3 -3
  83. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  84. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  85. package/esm2020/lib/core/base.mjs +1 -1
  86. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  87. package/esm2020/lib/core/configuration.mjs +2 -1
  88. package/esm2020/lib/core/controls/address.input.mjs +11 -8
  89. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  90. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  91. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  92. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  93. package/esm2020/lib/core/controls/file.input.mjs +361 -0
  94. package/esm2020/lib/core/controls/select.input.mjs +15 -13
  95. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  96. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  97. package/esm2020/lib/core/datasource.service.mjs +24 -12
  98. package/esm2020/lib/core/functions.mjs +8 -1
  99. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  100. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  101. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  102. package/esm2020/lib/core/hub.service.mjs +4 -4
  103. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  104. package/esm2020/lib/core/info/attachment-info.service.mjs +10 -12
  105. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  106. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  107. package/esm2020/lib/core/info/map-info.mjs +3 -3
  108. package/esm2020/lib/core/layout/autocomplete.field.mjs +4 -4
  109. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  110. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  111. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  112. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  113. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  114. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  115. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  116. package/esm2020/lib/core/layout/input.field.mjs +3 -3
  117. package/esm2020/lib/core/layout/layout.component.mjs +3 -3
  118. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  119. package/esm2020/lib/core/layout/select.field.mjs +5 -5
  120. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  121. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  122. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  123. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  124. package/esm2020/lib/core/mailbox.service.mjs +142 -38
  125. package/esm2020/lib/core/models.mjs +8 -1
  126. package/esm2020/lib/core/none.component.mjs +3 -3
  127. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  128. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  129. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  130. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  131. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  132. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  133. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  134. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  135. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  136. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  137. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  138. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  139. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  140. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
  141. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  142. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  143. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  144. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  145. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  146. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  147. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  148. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  149. package/esm2020/lib/core/prompt.service.mjs +3 -3
  150. package/esm2020/lib/core/router.mjs +6 -6
  151. package/esm2020/lib/core/session.service.mjs +10 -5
  152. package/esm2020/lib/core/slots/pane-ref.mjs +3 -1
  153. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  154. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  155. package/esm2020/lib/core/slots/slots.component.mjs +22 -8
  156. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  157. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  158. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  159. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  160. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  161. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  162. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  163. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  164. package/esm2020/lib/core/translate.service.mjs +3 -3
  165. package/esm2020/lib/core/translations.mjs +10 -2
  166. package/esm2020/lib/core/window-title.service.mjs +3 -3
  167. package/esm2020/lib/cube/accum/accum.component.mjs +16 -8
  168. package/esm2020/lib/cube/chart/chart.component.mjs +16 -8
  169. package/esm2020/lib/cube/cube-info.service.mjs +5 -5
  170. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  171. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  172. package/esm2020/lib/cube/cube.service.mjs +12 -4
  173. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  174. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  175. package/esm2020/lib/cube/explore/explore-items.component.mjs +18 -10
  176. package/esm2020/lib/cube/explore/explore.pane.component.mjs +14 -9
  177. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  178. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  179. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  180. package/esm2020/lib/cube/filter/filter.component.mjs +50 -31
  181. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  182. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +5 -5
  183. package/esm2020/lib/cube/matrix/matrix.base.mjs +4 -4
  184. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +6 -5
  185. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +6 -6
  186. package/esm2020/lib/cube/matrix/popup.component.mjs +67 -0
  187. package/esm2020/lib/cube/matrix/table.component.mjs +6 -6
  188. package/esm2020/lib/cube/parallel/parallel.component.mjs +16 -8
  189. package/esm2020/lib/cube/pivot/pivot.component.mjs +21 -12
  190. package/esm2020/lib/cube/sum/sum.component.mjs +4 -4
  191. package/esm2020/lib/cube/view-base.mjs +3 -3
  192. package/esm2020/lib/cube/view.mobile.component.mjs +13 -7
  193. package/esm2020/lib/cube/view.pane.component.mjs +5 -6
  194. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  195. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  196. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +4 -4
  197. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  198. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  199. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  200. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  201. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  202. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  203. package/esm2020/lib/dashboard/recents/recents.widget.mjs +5 -5
  204. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  205. package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +3 -3
  206. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  207. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  208. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  209. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  210. package/esm2020/lib/desktop.module.mjs +4 -4
  211. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  212. package/esm2020/lib/home/home-base.component.mjs +5 -5
  213. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  214. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  215. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  216. package/esm2020/lib/home/options/options.component.mjs +3 -3
  217. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  218. package/esm2020/lib/home/search.service.mjs +3 -3
  219. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  220. package/esm2020/lib/home/tools.component.mjs +3 -3
  221. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  222. package/esm2020/lib/mobile.module.mjs +4 -4
  223. package/esm2020/lib/modules/chart.module.mjs +4 -4
  224. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  225. package/esm2020/lib/modules/date.adapter.mjs +3 -3
  226. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  227. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  228. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  229. package/esm2020/lib/modules/grid.module.mjs +4 -4
  230. package/esm2020/lib/modules/material.module.mjs +4 -4
  231. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  232. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  233. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  234. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  235. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  236. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  237. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  238. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  239. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  240. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  241. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  242. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  243. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  244. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  245. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  246. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  247. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  248. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  249. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  250. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  251. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  252. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  253. package/esm2020/lib/options/options.component.mjs +3 -3
  254. package/esm2020/lib/options/options.service.mjs +3 -3
  255. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  256. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  257. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  258. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  259. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  260. package/esm2020/lib/reports/cube/usage-chart.component.mjs +10 -10
  261. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  262. package/esm2020/lib/reports/report-viewer.component.mjs +6 -6
  263. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  264. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  265. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  266. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  267. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  268. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  269. package/esm2020/lib/routes.desktop.mjs +1 -1
  270. package/esm2020/lib/scheduler/schedule.component.mjs +4 -4
  271. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  272. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  273. package/esm2020/lib/shared.module.mjs +14 -12
  274. package/esm2020/lib/system.module.mjs +4 -4
  275. package/esm2020/lib/views/cube/chart.component.mjs +4 -4
  276. package/esm2020/lib/views/cube/cube-base.mjs +4 -4
  277. package/esm2020/lib/views/cube/explore.component.mjs +4 -4
  278. package/esm2020/lib/views/cube/matrix.component.mjs +5 -5
  279. package/esm2020/lib/views/cube/parallel.component.mjs +5 -6
  280. package/esm2020/lib/views/cube/pivot.component.mjs +5 -5
  281. package/esm2020/lib/views/cube/sum.component.mjs +5 -5
  282. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  283. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  284. package/esm2020/lib/views/view-item.component.mjs +3 -3
  285. package/esm2020/lib/views/views.component.mjs +3 -3
  286. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  287. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  288. package/esm2020/public-api.mjs +4 -3
  289. package/fesm2015/bizdoc-core.mjs +2993 -2381
  290. package/fesm2015/bizdoc-core.mjs.map +1 -1
  291. package/fesm2020/bizdoc-core.mjs +3002 -2388
  292. package/fesm2020/bizdoc-core.mjs.map +1 -1
  293. package/lib/browse/browse.mobile.component.d.ts +1 -0
  294. package/lib/browse/browse.pane.component.d.ts +1 -0
  295. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +3 -4
  296. package/lib/compose/attachments/progress-button.directive.d.ts +3 -3
  297. package/lib/compose/form.component.d.ts +1 -0
  298. package/lib/compose/trace/trace.component.d.ts +6 -0
  299. package/lib/core/base.d.ts +3 -1
  300. package/lib/core/configuration.d.ts +3 -1
  301. package/lib/core/controls/address.input.d.ts +2 -1
  302. package/lib/core/controls/file.input.d.ts +87 -0
  303. package/lib/core/controls/select.input.d.ts +7 -5
  304. package/lib/core/datasource.service.d.ts +7 -4
  305. package/lib/core/functions.d.ts +5 -0
  306. package/lib/core/hub.service.d.ts +1 -2
  307. package/lib/core/info/attachment-info.service.d.ts +1 -2
  308. package/lib/core/mailbox.service.d.ts +23 -6
  309. package/lib/core/models.d.ts +10 -7
  310. package/lib/core/session.service.d.ts +1 -0
  311. package/lib/core/slots/pane-ref.d.ts +2 -0
  312. package/lib/core/translations.d.ts +8 -0
  313. package/lib/cube/accum/accum.component.d.ts +6 -3
  314. package/lib/cube/chart/chart.component.d.ts +6 -3
  315. package/lib/cube/cube-info.service.d.ts +8 -2
  316. package/lib/cube/cube.service.d.ts +9 -2
  317. package/lib/cube/explore/explore-items.component.d.ts +6 -3
  318. package/lib/cube/explore/explore.pane.component.d.ts +5 -4
  319. package/lib/cube/filter/filter.component.d.ts +10 -9
  320. package/lib/cube/matrix/matrix.base.d.ts +1 -0
  321. package/lib/cube/matrix/matrix.pane.component.d.ts +0 -1
  322. package/lib/cube/matrix/{matrix.component.d.ts → popup.component.d.ts} +0 -0
  323. package/lib/cube/matrix/table.component.d.ts +4 -3
  324. package/lib/cube/parallel/parallel.component.d.ts +6 -3
  325. package/lib/cube/pivot/pivot.component.d.ts +4 -1
  326. package/lib/cube/sum/sum.component.d.ts +2 -1
  327. package/lib/cube/view.mobile.component.d.ts +3 -2
  328. package/lib/dashboard/cube/cube-analysis.base.d.ts +2 -1
  329. package/lib/shared.module.d.ts +176 -175
  330. package/lib/views/cube/chart.component.d.ts +2 -1
  331. package/lib/views/cube/cube-base.d.ts +2 -1
  332. package/lib/views/cube/explore.component.d.ts +2 -1
  333. package/lib/views/cube/matrix.component.d.ts +3 -2
  334. package/lib/views/cube/parallel.component.d.ts +1 -2
  335. package/lib/views/cube/pivot.component.d.ts +2 -1
  336. package/lib/views/cube/sum.component.d.ts +2 -1
  337. package/package.json +15 -15
  338. package/public-api.d.ts +4 -3
  339. package/esm2020/lib/cube/matrix/matrix.component.mjs +0 -66
@@ -169,9 +169,9 @@ export class TimePicker {
169
169
  }
170
170
  }
171
171
  TimePicker.nextId = 0;
172
- TimePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: TimePicker, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
173
- TimePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: TimePicker, selector: "mat-time-picker", inputs: { dateControlName: "dateControlName", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "shouldLabelFloat", "id": "id", "attr.aria-describedby": "describedBy" } }, providers: [{ provide: MatFormFieldControl, useExisting: TimePicker }], ngImport: i0, template: "<input matInput type=\"text\" [matAutocomplete]=\"auto\" [formControl]=\"control\" [placeholder]=\"placeholder\">\r\n<mat-autocomplete #auto>\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o\">{{o}}</mat-option>\r\n</mat-autocomplete>\r\n", components: [{ type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: TimePicker, decorators: [{
172
+ TimePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePicker, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
173
+ TimePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TimePicker, selector: "mat-time-picker", inputs: { dateControlName: "dateControlName", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "shouldLabelFloat", "id": "id", "attr.aria-describedby": "describedBy" } }, providers: [{ provide: MatFormFieldControl, useExisting: TimePicker }], ngImport: i0, template: "<input matInput type=\"text\" [matAutocomplete]=\"auto\" [formControl]=\"control\" [placeholder]=\"placeholder\">\r\n<mat-autocomplete #auto>\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o\">{{o}}</mat-option>\r\n</mat-autocomplete>\r\n", components: [{ type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimePicker, decorators: [{
175
175
  type: Component,
176
176
  args: [{ selector: 'mat-time-picker', providers: [{ provide: MatFormFieldControl, useExisting: TimePicker }], host: {
177
177
  '[class.floating]': 'shouldLabelFloat',
@@ -134,8 +134,8 @@ export class TimespanInput {
134
134
  }
135
135
  }
136
136
  TimespanInput.nextId = 0;
137
- TimespanInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: TimespanInput, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormBuilder }, { token: i2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
138
- TimespanInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: { placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: TimespanInput }], ngImport: i0, template: `<div [formGroup]="parts" class="ts-input-container">
137
+ TimespanInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimespanInput, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormBuilder }, { token: i2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
138
+ TimespanInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: { placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: TimespanInput }], ngImport: i0, template: `<div [formGroup]="parts" class="ts-input-container">
139
139
  <input class="ts-input-element" formControlName="days" size="2" pattern="\\d*" #inp>
140
140
  <span class="ts-input-spacer">{{'DaysPart' | translate}}</span>
141
141
  <input class="ts-input-element" formControlName="hours" size="2" max="24" min="0" pattern="\\d*">
@@ -143,7 +143,7 @@ TimespanInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
143
143
  <input class="ts-input-element" formControlName="minutes" size="2" max="60" min="0" pattern="\\d*">
144
144
  <span class="ts-input-spacer">{{'MinutesPart' | translate}}</span>
145
145
  </div>`, isInline: true, styles: [".ts-input-container{display:flex}.ts-input-element{border:none;background:none;padding:0;outline:none;font:inherit;text-align:center}.ts-input-spacer{opacity:0;font-size:x-small;text-transform:uppercase;transition:opacity .2s}:host.floating .ts-input-spacer{opacity:1}\n"], directives: [{ type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], pipes: { "translate": i3.TranslatePipe } });
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: TimespanInput, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TimespanInput, decorators: [{
147
147
  type: Component,
148
148
  args: [{
149
149
  selector: 'bizdoc-timespan-input',
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { map, shareReplay } from 'rxjs/operators';
3
- import { isObject } from '../core/functions';
3
+ import { isObject, mapToArray } from '../core/functions';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common/http";
6
6
  /** */
@@ -33,14 +33,26 @@ export class DatasourceService {
33
33
  * @param type
34
34
  * @param params
35
35
  */
36
- map(type, params) {
36
+ map(type, queryParams) {
37
37
  let cacheId = type;
38
- if (params)
39
- //Object.keys(params).forEach(k => cacheId += `${k}${params[k]}`);
40
- cacheId += params.toString();
38
+ if (queryParams) {
39
+ if (isObject(queryParams))
40
+ Object.keys(queryParams).forEach(k => cacheId += `${k}${queryParams[k]}`);
41
+ else
42
+ cacheId += queryParams.toString();
43
+ }
41
44
  let observe = this._cache[cacheId];
42
45
  if (!observe) {
43
- const dataSource = this._http.get(`/api/datatype/${type}`, { params: isObject(params) ? params : params !== undefined ? { value: params } : null });
46
+ const params = {};
47
+ if (queryParams) {
48
+ if (isObject(queryParams))
49
+ Object.assign(params, queryParams);
50
+ else
51
+ params.value = queryParams;
52
+ }
53
+ const dataSource = this._http.get(`/api/datatype/${type}`, {
54
+ params
55
+ });
44
56
  observe = this._cache[cacheId] = dataSource.pipe(shareReplay());
45
57
  }
46
58
  return observe;
@@ -50,14 +62,14 @@ export class DatasourceService {
50
62
  * @param type
51
63
  * @param params
52
64
  */
53
- all(type, params) {
54
- return this.map(type, params).pipe(map(m => Object.keys(m).map(k => ({ key: k, value: m[k] }))));
65
+ all(type, queryParams) {
66
+ return this.map(type, queryParams).pipe(map(mapToArray));
55
67
  }
56
68
  }
57
- DatasourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DatasourceService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
58
- DatasourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DatasourceService, providedIn: 'root' });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DatasourceService, decorators: [{
69
+ DatasourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DatasourceService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
70
+ DatasourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DatasourceService, providedIn: 'root' });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DatasourceService, decorators: [{
60
72
  type: Injectable,
61
73
  args: [{ providedIn: 'root' }]
62
74
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFFN0MsTUFBTTtBQUVOLE1BQU0sT0FBTyxpQkFBaUI7SUFTNUIsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUY3QixXQUFNLEdBQTJELEVBQUUsQ0FBQztJQUk1RSxDQUFDO0lBVkQsSUFBSSxDQUFDLElBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFPSDs7OztPQUlHO0lBQ0QsR0FBRyxDQUFDLElBQVksRUFBRSxHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQStCO1FBQy9DLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLE1BQU07WUFDUixrRUFBa0U7WUFDbEUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBMEIsaUJBQWlCLElBQUksRUFBRSxFQUNoRixFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFFM0YsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7OEdBekRVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREosTUFBTTsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuXHJcbi8qKiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgRGF0YXNvdXJjZVNlcnZpY2Uge1xyXG4gIGtleXModHlwZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXAodHlwZSkucGlwZShtYXAobSA9PiBcclxuICAgICAgT2JqZWN0LmtleXMobSlcclxuICAgICkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2FjaGU6IHsgW3R5cGU6IHN0cmluZ106IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4gfSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcblxyXG4gIH1cclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gdHlwZVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqL1xyXG4gIGdldCh0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLm1hcCh0eXBlKS5waXBlKG1hcChtID0+IG1ba2V5XSB8fCBrZXkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHR5cGVcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKi9cclxuICBrZXlPZih0eXBlOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwKHR5cGUpLnBpcGUobWFwKG0gPT4gT2JqZWN0LmtleXMobSkuZmluZChrID0+IG1ba10gPT09IHZhbHVlKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdHlwZVxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKi9cclxuICBtYXAodHlwZTogc3RyaW5nLCBwYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogT2JzZXJ2YWJsZTx7IFtuYW1lOiBzdHJpbmddOiBhbnkgfT4ge1xyXG4gICAgbGV0IGNhY2hlSWQgPSB0eXBlO1xyXG4gICAgaWYgKHBhcmFtcylcclxuICAgICAgLy9PYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goayA9PiBjYWNoZUlkICs9IGAke2t9JHtwYXJhbXNba119YCk7XHJcbiAgICAgIGNhY2hlSWQgKz0gcGFyYW1zLnRvU3RyaW5nKCk7XHJcbiAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2NhY2hlW2NhY2hlSWRdO1xyXG5cclxuICAgIGlmICghb2JzZXJ2ZSkge1xyXG4gICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5faHR0cC5nZXQ8eyBbbmFtZTogc3RyaW5nXTogYW55IH0+KGAvYXBpL2RhdGF0eXBlLyR7dHlwZX1gLFxyXG4gICAgICAgIHsgcGFyYW1zOiBpc09iamVjdChwYXJhbXMpID8gcGFyYW1zIDogcGFyYW1zICE9PSB1bmRlZmluZWQgPyB7IHZhbHVlOiBwYXJhbXMgfSA6IG51bGwgfSk7XHJcblxyXG4gICAgICBvYnNlcnZlID0gdGhpcy5fY2FjaGVbY2FjaGVJZF0gPSBkYXRhU291cmNlLnBpcGUoc2hhcmVSZXBsYXkoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB0eXBlXHJcbiAgICogQHBhcmFtIHBhcmFtc1xyXG4gICAqL1xyXG4gIGFsbCh0eXBlOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8eyBrZXk6IHN0cmluZzsgdmFsdWU6IGFueSB9W10+IHtcclxuICAgIHJldHVybiB0aGlzLm1hcCh0eXBlLCBwYXJhbXMpLnBpcGUobWFwKG0gPT5cclxuICAgICAgT2JqZWN0LmtleXMobSkubWFwKGsgPT4gKHsga2V5OiBrLCB2YWx1ZTogbVtrXSB9KSkpKTtcclxuICB9XHJcbn1cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR3pELE1BQU07QUFFTixNQUFNLE9BQU8saUJBQWlCO0lBUzVCLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFGN0IsV0FBTSxHQUEyRCxFQUFFLENBQUM7SUFJNUUsQ0FBQztJQVZELElBQUksQ0FBQyxJQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxJQUFZLEVBQUUsR0FBVztRQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLElBQVksRUFBRSxXQUF3QztRQUN4RCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7Z0JBQ2hHLE9BQU8sSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEM7UUFDRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLE1BQU0sR0FBRyxFQUFTLENBQUM7WUFDekIsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDO29CQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTs7b0JBQy9CLE1BQU0sQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2FBQ2pDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQTBCLGlCQUFpQixJQUFJLEVBQUUsRUFDaEY7Z0JBQ0UsTUFBTTthQUNQLENBQUMsQ0FBQztZQUVMLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLElBQVksRUFBRSxXQUF3QztRQUN4RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs4R0FqRVUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzT2JqZWN0LCBtYXBUb0FycmF5IH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBQYXJhbU1hcCwgU2NvcGVUeXBlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcclxuXHJcbi8qKiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgRGF0YXNvdXJjZVNlcnZpY2Uge1xyXG4gIGtleXModHlwZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXAodHlwZSkucGlwZShtYXAobSA9PlxyXG4gICAgICBPYmplY3Qua2V5cyhtKVxyXG4gICAgKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jYWNoZTogeyBbdHlwZTogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB9ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB0eXBlXHJcbiAgICogQHBhcmFtIGtleVxyXG4gICAqL1xyXG4gIGdldCh0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLm1hcCh0eXBlKS5waXBlKG1hcChtID0+IG1ba2V5XSB8fCBrZXkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHR5cGVcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKi9cclxuICBrZXlPZih0eXBlOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwKHR5cGUpLnBpcGUobWFwKG0gPT4gT2JqZWN0LmtleXMobSkuZmluZChrID0+IG1ba10gPT09IHZhbHVlKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdHlwZVxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKi9cclxuICBtYXAodHlwZTogc3RyaW5nLCBxdWVyeVBhcmFtcz86IHN0cmluZyB8IG51bWJlciB8IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTx7IFtuYW1lOiBzdHJpbmddOiBhbnkgfT4ge1xyXG4gICAgbGV0IGNhY2hlSWQgPSB0eXBlO1xyXG4gICAgaWYgKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgIGlmIChpc09iamVjdChxdWVyeVBhcmFtcykpIE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5mb3JFYWNoKGsgPT4gY2FjaGVJZCArPSBgJHtrfSR7cXVlcnlQYXJhbXNba119YCk7XHJcbiAgICAgIGVsc2UgY2FjaGVJZCArPSBxdWVyeVBhcmFtcy50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgbGV0IG9ic2VydmUgPSB0aGlzLl9jYWNoZVtjYWNoZUlkXTtcclxuXHJcbiAgICBpZiAoIW9ic2VydmUpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge30gYXMgYW55O1xyXG4gICAgICBpZiAocXVlcnlQYXJhbXMpIHtcclxuICAgICAgICBpZiAoaXNPYmplY3QocXVlcnlQYXJhbXMpKVxyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIHF1ZXJ5UGFyYW1zKVxyXG4gICAgICAgIGVsc2UgcGFyYW1zLnZhbHVlID0gcXVlcnlQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuX2h0dHAuZ2V0PHsgW25hbWU6IHN0cmluZ106IGFueSB9PihgL2FwaS9kYXRhdHlwZS8ke3R5cGV9YCxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYXJhbXNcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIG9ic2VydmUgPSB0aGlzLl9jYWNoZVtjYWNoZUlkXSA9IGRhdGFTb3VyY2UucGlwZShzaGFyZVJlcGxheSgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzZXJ2ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHR5cGVcclxuICAgKiBAcGFyYW0gcGFyYW1zXHJcbiAgICovXHJcbiAgYWxsKHR5cGU6IHN0cmluZywgcXVlcnlQYXJhbXM/OiBzdHJpbmcgfCBudW1iZXIgfCBQYXJhbU1hcCk6IE9ic2VydmFibGU8eyBrZXk6IHN0cmluZzsgdmFsdWU6IGFueSB9W10+IHtcclxuICAgIHJldHVybiB0aGlzLm1hcCh0eXBlLCBxdWVyeVBhcmFtcykucGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xyXG4gIHBhcmFtcz87XHJcbiAgZGVwZW5kZW5jaWVzPzogUGFyYW1NYXA7XHJcbn1cclxuIl19
@@ -1,4 +1,11 @@
1
1
  import { MATERIAL_PALETTES } from "./colors";
2
+ const IMAGE_TYPE = ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'];
3
+ export function mapToArray(map) {
4
+ return Object.keys(map).map(k => ({ key: k, value: map[k] }));
5
+ }
6
+ export function isImage(contentType) {
7
+ return IMAGE_TYPE.indexOf(contentType) > -1;
8
+ }
2
9
  export function cleanup(params) {
3
10
  Object.keys(params).forEach(k => {
4
11
  const val = params[k];
@@ -190,4 +197,4 @@ function getParameterByName(name, url = window.location.href) {
190
197
  return '';
191
198
  return decodeURIComponent(results[2].replace(/\+/g, ' '));
192
199
  }
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJN0MsTUFBTSxVQUFVLE9BQU8sQ0FBQyxNQUFNO0lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxRixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQW9CO0lBQzdDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pELE9BQU8sUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUNqQixRQUFRLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVztRQUNyRCxRQUFRLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxnRUFBZ0UsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdHLE1BQU0sVUFBVSxRQUFRO0lBQ3RCLE9BQU8sU0FBUyxDQUFDLDZDQUE2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LENBQUMsTUFBTSxFQUFFLENBQUM7cUJBQ3RCLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN0QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTTt3QkFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUMzRDs7b0JBRUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUNELFNBQVMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7SUFDMUQsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLElBQUksS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsbUJBQW1CLENBQUMsRUFDekQsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLElBQUksQ0FBQztJQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzNCLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTUFURVJJQUxfUEFMRVRURVMgfSBmcm9tIFwiLi9jb2xvcnNcIjtcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTWF0ZXJpYWxNb2RlID0gNTAgfCAxMDAgfCAyMDAgfCAzMDAgfCA0MDAgfCA1MDAgfCA2MDAgfCA3MDAgfCA4MDAgfCA5MDAgfCAnQTEwMCcgfCAnQTIwMCcgfCAnQTQwMCcgfCAnQTcwMCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cChwYXJhbXMpIHtcclxuICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goayA9PiB7XHJcbiAgICBjb25zdCB2YWwgPSBwYXJhbXNba107XHJcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IChpc0FycmF5KHZhbCkgJiYgIXZhbC5sZW5ndGgpKSBkZWxldGUgcGFyYW1zW2tdXHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBhcmFtcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG91dE9mQm91bmQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICBjb25zdCBib3VuZGluZyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgcmV0dXJuIGJvdW5kaW5nLnRvcCA8IDAgfHxcclxuICAgIGJvdW5kaW5nLmxlZnQgPCAwIHx8XHJcbiAgICBib3VuZGluZy5yaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fFxyXG4gICAgYm91bmRpbmcuYm90dG9tID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxufVxyXG5cclxuY29uc3QgSVNfTU9CSUxFID0gL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG5leHBvcnQgZnVuY3Rpb24gaXNNb2JpbGUoKSB7XHJcbiAgcmV0dXJuIElTX01PQklMRSAvKnx8IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCdhcmlhPTEnKSA+IC0xKi87XHJcbn0gZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsKSA6IHZhbCBpcyBGdW5jdGlvbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbic7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWwpOiB2YWwgaXMgYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdib29sZWFuJztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XHJcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUodmFsKSB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgIT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbCk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZShvYmopOiBvYmogaXMgUHJvbWlzZTxhbnk+IHtcclxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUHJvbWlzZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbCk6IHZhbCBpcyBEYXRlIHtcclxuICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRGF0ZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheSh2YWwpOiB2YWwgaXMgQXJyYXk8YW55PiB7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiB2YWwgaXMgc3RyaW5nIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2Fybihtb2RlOiBNYXRlcmlhbE1vZGUgPSA1MDApIHtcclxuICByZXR1cm4gTUFURVJJQUxfUEFMRVRURVNbJ3JlZCddW21vZGVdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGxheUF1ZGlvKG5hbWU6ICdub3RpZmljYXRpb25fc2ltcGxlLTAxJyB8ICdhbGVydF9lcnJvci0wMycpIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTtcclxuICAgIGF1ZGlvLnNyYyA9IGAvYXNzZXRzL3NvdW5kcy8ke25hbWV9Lm9nZ2A7XHJcbiAgICBhdWRpby5sb2FkKCk7XHJcbiAgICBhdWRpby5wbGF5KCk7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogXHJcbiAqIEBwYXJhbSBvMVxyXG4gKiBAcGFyYW0gbzJcclxuICovXHJcbk9iamVjdC5kZWVwQXNzaWduID0gZnVuY3Rpb24gKG8xLCBvMikge1xyXG4gIG8yICYmIE9iamVjdC5rZXlzKG8yKS5mb3JFYWNoKHAgPT4ge1xyXG4gICAgY29uc3QgdmFsID0gbzJbcF0sIHZhbDIgPSBvMVtwXTtcclxuICAgIGlmICh2YWwyID09PSB1bmRlZmluZWQgfHwgdmFsMiA9PT0gbnVsbCB8fCBpc1ByaW1pdGl2ZSh2YWwpKVxyXG4gICAgICBvMVtwXSA9IHZhbDtcclxuICAgIGVsc2UgaWYgKGlzQXJyYXkodmFsKSkge1xyXG4gICAgICBpZiAodmFsLmxlbmd0aCAmJiAhaXNQcmltaXRpdmUodmFsWzBdKSkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodmFsMltpXSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBPYmplY3QuZGVlcEFzc2lnbih2YWwyW2ldLCB2YWxbaV0pO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB2YWwyLnB1c2godmFsW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgKHZhbDIgYXMgYW55W10pLnNwbGljZSh2YWwubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgLy8odmFsMiBhcyBhbnlbXSkuc3BsaWNlKDAsIHZhbDIubGVuZ3RoLCAuLi52YWwpO1xyXG4gICAgICAgIG8xW3BdID0gdmFsO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNPYmplY3QodmFsKSlcclxuICAgICAgT2JqZWN0LmRlZXBBc3NpZ24odmFsMiwgdmFsKTtcclxuICB9KTtcclxuICByZXR1cm4gbzE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlRW5jcnlwdGlvbk1hcCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9IHtcclxuICBjb25zdCB2YWx1ZXMgPSB7fTtcclxuICBmb3IgKGxldCBpID0gNjU7IGkgPCA5MTsgaSsrKSB7XHJcbiAgICBjb25zdCBkID0gKGkgLSA2NSkudG9TdHJpbmcoKSxcclxuICAgICAgYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7XHJcbiAgICB2YWx1ZXNbZF0gPSBjO1xyXG4gICAgdmFsdWVzW2NdID0gZDtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDk3OyBpIDwgMTIzOyBpKyspIHtcclxuICAgIGNvbnN0IGQgPSAoaSAtIDcxKS50b1N0cmluZygpLFxyXG4gICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcclxuICAgIHZhbHVlc1tkXSA9IGM7XHJcbiAgICB2YWx1ZXNbY10gPSBkO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWVzO1xyXG59XHJcbmNvbnN0IGRlY29kZSA9IGdlbmVyYXRlRW5jcnlwdGlvbk1hcCgpO1xyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIFN0cmluZyB7XHJcbiAgICBkZWNvZGVJZDogKCkgPT4gbnVtYmVyO1xyXG4gIH1cclxuICBpbnRlcmZhY2UgTnVtYmVyIHtcclxuICAgIGVuY29kZUlkOiAoKSA9PiBzdHJpbmc7XHJcbiAgfVxyXG59XHJcblN0cmluZy5wcm90b3R5cGUuZGVjb2RlSWQgPSBmdW5jdGlvbiAoKTogbnVtYmVyIHtcclxuICBsZXQgdiA9ICcnO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29uc3QgYyA9IHRoaXMuY2hhckF0KGkpO1xyXG4gICAgdiArPSBkZWNvZGVbY107XHJcbiAgfVxyXG4gIHJldHVybiBwYXJzZUludCh2KTtcclxufTtcclxuTnVtYmVyLnByb3RvdHlwZS5lbmNvZGVJZCA9IGZ1bmN0aW9uICgpOiBzdHJpbmcge1xyXG4gIGxldCB2ID0gJycsXHJcbiAgICBkID0gdGhpcy50b1N0cmluZygpO1xyXG4gIHdoaWxlIChkLmxlbmd0aCA+IDApIHtcclxuICAgIGxldCBpID0gNTEsXHJcbiAgICAgIGMgPSBpLnRvU3RyaW5nKCk7XHJcbiAgICB3aGlsZSAoIWQuc3RhcnRzV2l0aChjKSkge1xyXG4gICAgICAtLWksIGMgPSBpLnRvU3RyaW5nKCk7XHJcbiAgICB9IHYgKz0gZGVjb2RlW2NdO1xyXG4gICAgZCA9IGQuc3Vic3RyaW5nKGMubGVuZ3RoKTtcclxuICB9XHJcbiAgcmV0dXJuIHY7XHJcbn07XHJcblxyXG4vKiogZ2xvYmFsIGV4dGVuZGVkIGFycmF5IGZ1bmN0aW9ucyAqL1xyXG4od2luZG93IGFzIGFueSkuZ2xvYmFsID0gd2luZG93O1xyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIEFycmF5PFQ+IHtcclxuICAgIHJlbW92ZShpdGVtOiBUKTogVFtdO1xyXG4gICAgbGFzdCgpOiBUO1xyXG4gICAgYXZlcmFnZShwcmVkaWNhdGU6IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXI7XHJcbiAgICBzdW0ocHJlZGljYXRlOiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyO1xyXG4gICAgbWF4KHByZWRpY2F0ZTogKGk6IFQpID0+IG51bWJlcik6IG51bWJlcjtcclxuICB9XHJcbiAgaW50ZXJmYWNlIFN0cmluZyB7XHJcbiAgICBmb3JtYXRBcmdzKC4uLmFyZ3MpOiBzdHJpbmc7XHJcbiAgICBub3JtYWxpemUoKTogc3RyaW5nO1xyXG4gIH1cclxuICBpbnRlcmZhY2UgT2JqZWN0IHtcclxuICAgIGRlZXBBc3NpZ24odmFsMSwgdmFsMik6IGFueTtcclxuICB9XHJcbn1cclxuU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIHRoaXMucmVwbGFjZSgvIC9nLCAnXycpLnJlcGxhY2UoL1teXFx3XS9nLCAnJykudG9Mb3dlckNhc2UoKTtcclxufVxyXG5cclxuU3RyaW5nLnByb3RvdHlwZS5mb3JtYXRBcmdzID0gZnVuY3Rpb24gKC4uLmFyZ3MpOiBzdHJpbmcge1xyXG4gIHJldHVybiB0aGlzLnJlcGxhY2UoL3soXFxkKyl9L2csIChfLCBpbmRleCkgPT4gYXJnc1tpbmRleF0gfHwgJycpO1xyXG59XHJcbkFycmF5LnByb3RvdHlwZS5sYXN0ID0gZnVuY3Rpb24gKCkge1xyXG4gIHJldHVybiB0aGlzW3RoaXMubGVuZ3RoIC0gMV07XHJcbn1cclxuLyoqIHJlbW92ZSBlbGVtZW50IGZyb20gYXJyYXkgKi9cclxuQXJyYXkucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uIDxUPih2YWx1ZTogVCk6IFRbXSB7XHJcbiAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4T2YodmFsdWUpO1xyXG4gIGlmIChpbmRleCA+IC0xKSB0aGlzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcbi8qKiBjYWxjdWxhdGUgYXZlcmFnZSB1c2luZyBlbGVtZW50IHByZWRpY2F0ZSAqL1xyXG5BcnJheS5wcm90b3R5cGUuYXZlcmFnZSA9IGZ1bmN0aW9uIDxUPihwcmVkaWNhdGU/OiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyIHtcclxuICBsZXQgYXZlcmFnZSA9IDA7XHJcbiAgdGhpcy5mb3JFYWNoKGkgPT5cclxuICAgIGF2ZXJhZ2UgKz0gcHJlZGljYXRlKGkpXHJcbiAgKTtcclxuICByZXR1cm4gYXZlcmFnZSAhPT0gMCA/IGF2ZXJhZ2UgLyB0aGlzLmxlbmd0aCA6IDA7XHJcbn1cclxuQXJyYXkucHJvdG90eXBlLm1heCA9IGZ1bmN0aW9uIDxUPihwcmVkaWNhdGU/OiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyIHtcclxuICBsZXQgbiA9IDA7XHJcbiAgdGhpcy5mb3JFYWNoKGkgPT5cclxuICAgIG4gPSBNYXRoLm1heChuLCBwcmVkaWNhdGUoaSkpXHJcbiAgKTtcclxuICByZXR1cm4gbjtcclxufVxyXG4vKiogc3VtIGVsZW1lbnRzIHVzaW5nIHByZWRpY2F0ZSAqL1xyXG5BcnJheS5wcm90b3R5cGUuc3VtID0gZnVuY3Rpb24gPFQ+KHByZWRpY2F0ZT86IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXIge1xyXG4gIGxldCBuID0gMDtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgbiArPSBwcmVkaWNhdGUoaSlcclxuICApO1xyXG4gIHJldHVybiBuO1xyXG59XHJcbi8qKlxyXG4gKiBcclxuICogQHBhcmFtIGFyZ3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBxdWVyeVBhcmFtcyhhcmdzOiBhbnkpIHtcclxuICBjb25zdCBwYXJhbXMgPSB7fTtcclxuICBhcmdzICYmXHJcbiAgICBPYmplY3Qua2V5cyhhcmdzKS5mb3JFYWNoKGsgPT4ge1xyXG4gICAgICBjb25zdCB2YWwgPSBhcmdzW2tdO1xyXG5cclxuICAgICAgaWYgKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChpc1N0cmluZyh2YWwpKVxyXG4gICAgICAgICAgcGFyYW1zW2tdID0gdmFsO1xyXG4gICAgICAgIGVsc2UgaWYgKGlzQXJyYXkodmFsKSAmJiB2YWwubGVuZ3RoKVxyXG4gICAgICAgICAgcGFyYW1zW2tdID0gdmFsO1xyXG4gICAgICAgIGVsc2UgaWYgKGlzRGF0ZSh2YWwpKVxyXG4gICAgICAgICAgcGFyYW1zW2tdID0gdmFsLnRvSlNPTigpO1xyXG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkpIHtcclxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh2YWwpLmxlbmd0aCkgcGFyYW1zW2tdID0gcXVlcnlQYXJhbXModmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcGFyYW1zW2tdID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICByZXR1cm4gcGFyYW1zO1xyXG59XHJcbmZ1bmN0aW9uIGdldFBhcmFtZXRlckJ5TmFtZShuYW1lLCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZikge1xyXG4gIG5hbWUgPSBuYW1lLnJlcGxhY2UoL1tcXFtcXF1dL2csICdcXFxcJCYnKTtcclxuICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCdbPyZdJyArIG5hbWUgKyAnKD0oW14mI10qKXwmfCN8JCknKSxcclxuICAgIHJlc3VsdHMgPSByZWdleC5leGVjKHVybCk7XHJcbiAgaWYgKCFyZXN1bHRzKSByZXR1cm4gbnVsbDtcclxuICBpZiAoIXJlc3VsdHNbMl0pIHJldHVybiAnJztcclxuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMl0ucmVwbGFjZSgvXFwrL2csICcgJykpO1xyXG59XHJcbiJdfQ==
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQUc7SUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsV0FBbUI7SUFDekMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQU07SUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFGLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBb0I7SUFDN0MsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakQsT0FBTyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDckIsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2pCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXO1FBQ3JELFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLGdFQUFnRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0csTUFBTSxVQUFVLFFBQVE7SUFDdEIsT0FBTyxTQUFTLENBQUMsNkNBQTZDLENBQUM7QUFDakUsQ0FBQztBQUFDLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBRztJQUM5QixPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNuQyxDQUFDO0FBQ0QsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFHO0lBQzNCLE9BQU8sT0FBTyxHQUFHLEtBQUssU0FBUyxDQUFDO0FBQ2xDLENBQUM7QUFDRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQUc7SUFDMUIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNqRCxDQUFDO0FBQ0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFHO0lBQzdCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBQ0QsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFHO0lBQzNCLE9BQU8sR0FBRyxZQUFZLE9BQU8sQ0FBQztBQUNoQyxDQUFDO0FBQ0QsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUFHO0lBQ3hCLE9BQU8sR0FBRyxZQUFZLElBQUksQ0FBQztBQUM3QixDQUFDO0FBQ0QsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFHO0lBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBQ0QsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFRO0lBQy9CLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsWUFBWSxNQUFNLENBQUM7QUFDMUQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBcUIsR0FBRztJQUM5QyxPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQWlEO0lBQ3pFLElBQUk7UUFDRixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsa0JBQWtCLElBQUksTUFBTSxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUNkO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2hCO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBRSxFQUFFLEVBQUU7SUFDbEMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDekQsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNULElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ25DLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVM7d0JBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzt3QkFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDckI7Z0JBQ0EsSUFBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDcEM7O2dCQUVDLGlEQUFpRDtnQkFDakQsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNmO2FBQ0ksSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUE7QUFFRCxTQUFTLHFCQUFxQjtJQUM1QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDM0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDZjtJQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQzNCLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2Y7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBQ0QsTUFBTSxNQUFNLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztBQVN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRztJQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDWCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDaEI7SUFDRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRztJQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFLEVBQ1IsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QixPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFDUixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkI7UUFBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMzQjtJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDO0FBRUYsc0NBQXNDO0FBQ3JDLE1BQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBaUJoQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRztJQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDckUsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxHQUFHLElBQUk7SUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUE7QUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRztJQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQTtBQUNELGdDQUFnQztBQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFhLEtBQVE7SUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUNGLGdEQUFnRDtBQUNoRCxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxVQUFhLFNBQTRCO0lBQ2pFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2YsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDeEIsQ0FBQztJQUNGLE9BQU8sT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUE7QUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFhLFNBQTRCO0lBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDZixDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzlCLENBQUM7SUFDRixPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQTtBQUNELG1DQUFtQztBQUNuQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFhLFNBQTRCO0lBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDZixDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNsQixDQUFDO0lBQ0YsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUE7QUFDRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLElBQUk7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEIsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQztvQkFDZixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO3FCQUNiLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNO29CQUNqQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO3FCQUNiLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQztvQkFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDdEIsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNO3dCQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzNEOztvQkFFQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBQ0QsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtJQUMxRCxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsSUFBSSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxFQUN6RCxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDM0IsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVRFUklBTF9QQUxFVFRFUyB9IGZyb20gXCIuL2NvbG9yc1wiO1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBNYXRlcmlhbE1vZGUgPSA1MCB8IDEwMCB8IDIwMCB8IDMwMCB8IDQwMCB8IDUwMCB8IDYwMCB8IDcwMCB8IDgwMCB8IDkwMCB8ICdBMTAwJyB8ICdBMjAwJyB8ICdBNDAwJyB8ICdBNzAwJztcclxuXHJcbmNvbnN0IElNQUdFX1RZUEUgPSBbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGVnJywgJ2ltYWdlL2pwZycsICdpbWFnZS9naWYnXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0FycmF5KG1hcCl7XHJcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1hcCkubWFwKGsgPT4gKHsga2V5OiBrLCB2YWx1ZTogbWFwW2tdIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSW1hZ2UoY29udGVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBJTUFHRV9UWVBFLmluZGV4T2YoY29udGVudFR5cGUpID4gLTE7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwKHBhcmFtcykge1xyXG4gIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChrID0+IHtcclxuICAgIGNvbnN0IHZhbCA9IHBhcmFtc1trXTtcclxuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgfHwgKGlzQXJyYXkodmFsKSAmJiAhdmFsLmxlbmd0aCkpIGRlbGV0ZSBwYXJhbXNba11cclxuICB9KTtcclxuICByZXR1cm4gcGFyYW1zO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb3V0T2ZCb3VuZChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gIGNvbnN0IGJvdW5kaW5nID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICByZXR1cm4gYm91bmRpbmcudG9wIDwgMCB8fFxyXG4gICAgYm91bmRpbmcubGVmdCA8IDAgfHxcclxuICAgIGJvdW5kaW5nLnJpZ2h0ID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8XHJcbiAgICBib3VuZGluZy5ib3R0b20gPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG59XHJcblxyXG5jb25zdCBJU19NT0JJTEUgPSAvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcbmV4cG9ydCBmdW5jdGlvbiBpc01vYmlsZSgpIHtcclxuICByZXR1cm4gSVNfTU9CSUxFIC8qfHwgZG9jdW1lbnQuY29va2llLmluZGV4T2YoJ2FyaWE9MScpID4gLTEqLztcclxufSBleHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWwpIDogdmFsIGlzIEZ1bmN0aW9uIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbCk6IHZhbCBpcyBib29sZWFuIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWwpIHtcclxuICByZXR1cm4gdmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1ByaW1pdGl2ZSh2YWwpIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbCAhPT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKG9iaik6IG9iaiBpcyBQcm9taXNlPGFueT4ge1xyXG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBQcm9taXNlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUodmFsKTogdmFsIGlzIERhdGUge1xyXG4gIHJldHVybiB2YWwgaW5zdGFuY2VvZiBEYXRlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5KHZhbCk6IHZhbCBpcyBBcnJheTxhbnk+IHtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWw6IGFueSk6IHZhbCBpcyBzdHJpbmcge1xyXG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB2YWwgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRXYXJuKG1vZGU6IE1hdGVyaWFsTW9kZSA9IDUwMCkge1xyXG4gIHJldHVybiBNQVRFUklBTF9QQUxFVFRFU1sncmVkJ11bbW9kZV07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwbGF5QXVkaW8obmFtZTogJ25vdGlmaWNhdGlvbl9zaW1wbGUtMDEnIHwgJ2FsZXJ0X2Vycm9yLTAzJykge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhdWRpbyA9IG5ldyBBdWRpbygpO1xyXG4gICAgYXVkaW8uc3JjID0gYC9hc3NldHMvc291bmRzLyR7bmFtZX0ub2dnYDtcclxuICAgIGF1ZGlvLmxvYWQoKTtcclxuICAgIGF1ZGlvLnBsYXkoKTtcclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICBjb25zb2xlLmxvZyhlKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBcclxuICogQHBhcmFtIG8xXHJcbiAqIEBwYXJhbSBvMlxyXG4gKi9cclxuT2JqZWN0LmRlZXBBc3NpZ24gPSBmdW5jdGlvbiAobzEsIG8yKSB7XHJcbiAgbzIgJiYgT2JqZWN0LmtleXMobzIpLmZvckVhY2gocCA9PiB7XHJcbiAgICBjb25zdCB2YWwgPSBvMltwXSwgdmFsMiA9IG8xW3BdO1xyXG4gICAgaWYgKHZhbDIgPT09IHVuZGVmaW5lZCB8fCB2YWwyID09PSBudWxsIHx8IGlzUHJpbWl0aXZlKHZhbCkpXHJcbiAgICAgIG8xW3BdID0gdmFsO1xyXG4gICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpKSB7XHJcbiAgICAgIGlmICh2YWwubGVuZ3RoICYmICFpc1ByaW1pdGl2ZSh2YWxbMF0pKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh2YWwyW2ldICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIE9iamVjdC5kZWVwQXNzaWduKHZhbDJbaV0sIHZhbFtpXSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHZhbDIucHVzaCh2YWxbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAodmFsMiBhcyBhbnlbXSkuc3BsaWNlKHZhbC5sZW5ndGgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICAvLyh2YWwyIGFzIGFueVtdKS5zcGxpY2UoMCwgdmFsMi5sZW5ndGgsIC4uLnZhbCk7XHJcbiAgICAgICAgbzFbcF0gPSB2YWw7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKVxyXG4gICAgICBPYmplY3QuZGVlcEFzc2lnbih2YWwyLCB2YWwpO1xyXG4gIH0pO1xyXG4gIHJldHVybiBvMTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVFbmNyeXB0aW9uTWFwKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xyXG4gIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gIGZvciAobGV0IGkgPSA2NTsgaSA8IDkxOyBpKyspIHtcclxuICAgIGNvbnN0IGQgPSAoaSAtIDY1KS50b1N0cmluZygpLFxyXG4gICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcclxuICAgIHZhbHVlc1tkXSA9IGM7XHJcbiAgICB2YWx1ZXNbY10gPSBkO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gOTc7IGkgPCAxMjM7IGkrKykge1xyXG4gICAgY29uc3QgZCA9IChpIC0gNzEpLnRvU3RyaW5nKCksXHJcbiAgICAgIGMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpO1xyXG4gICAgdmFsdWVzW2RdID0gYztcclxuICAgIHZhbHVlc1tjXSA9IGQ7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZXM7XHJcbn1cclxuY29uc3QgZGVjb2RlID0gZ2VuZXJhdGVFbmNyeXB0aW9uTWFwKCk7XHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgU3RyaW5nIHtcclxuICAgIGRlY29kZUlkOiAoKSA9PiBudW1iZXI7XHJcbiAgfVxyXG4gIGludGVyZmFjZSBOdW1iZXIge1xyXG4gICAgZW5jb2RlSWQ6ICgpID0+IHN0cmluZztcclxuICB9XHJcbn1cclxuU3RyaW5nLnByb3RvdHlwZS5kZWNvZGVJZCA9IGZ1bmN0aW9uICgpOiBudW1iZXIge1xyXG4gIGxldCB2ID0gJyc7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjID0gdGhpcy5jaGFyQXQoaSk7XHJcbiAgICB2ICs9IGRlY29kZVtjXTtcclxuICB9XHJcbiAgcmV0dXJuIHBhcnNlSW50KHYpO1xyXG59O1xyXG5OdW1iZXIucHJvdG90eXBlLmVuY29kZUlkID0gZnVuY3Rpb24gKCk6IHN0cmluZyB7XHJcbiAgbGV0IHYgPSAnJyxcclxuICAgIGQgPSB0aGlzLnRvU3RyaW5nKCk7XHJcbiAgd2hpbGUgKGQubGVuZ3RoID4gMCkge1xyXG4gICAgbGV0IGkgPSA1MSxcclxuICAgICAgYyA9IGkudG9TdHJpbmcoKTtcclxuICAgIHdoaWxlICghZC5zdGFydHNXaXRoKGMpKSB7XHJcbiAgICAgIC0taSwgYyA9IGkudG9TdHJpbmcoKTtcclxuICAgIH0gdiArPSBkZWNvZGVbY107XHJcbiAgICBkID0gZC5zdWJzdHJpbmcoYy5sZW5ndGgpO1xyXG4gIH1cclxuICByZXR1cm4gdjtcclxufTtcclxuXHJcbi8qKiBnbG9iYWwgZXh0ZW5kZWQgYXJyYXkgZnVuY3Rpb25zICovXHJcbih3aW5kb3cgYXMgYW55KS5nbG9iYWwgPSB3aW5kb3c7XHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgQXJyYXk8VD4ge1xyXG4gICAgcmVtb3ZlKGl0ZW06IFQpOiBUW107XHJcbiAgICBsYXN0KCk6IFQ7XHJcbiAgICBhdmVyYWdlKHByZWRpY2F0ZTogKGk6IFQpID0+IG51bWJlcik6IG51bWJlcjtcclxuICAgIHN1bShwcmVkaWNhdGU6IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXI7XHJcbiAgICBtYXgocHJlZGljYXRlOiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyO1xyXG4gIH1cclxuICBpbnRlcmZhY2UgU3RyaW5nIHtcclxuICAgIGZvcm1hdEFyZ3MoLi4uYXJncyk6IHN0cmluZztcclxuICAgIG5vcm1hbGl6ZSgpOiBzdHJpbmc7XHJcbiAgfVxyXG4gIGludGVyZmFjZSBPYmplY3Qge1xyXG4gICAgZGVlcEFzc2lnbih2YWwxLCB2YWwyKTogYW55O1xyXG4gIH1cclxufVxyXG5TdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICByZXR1cm4gdGhpcy5yZXBsYWNlKC8gL2csICdfJykucmVwbGFjZSgvW15cXHddL2csICcnKS50b0xvd2VyQ2FzZSgpO1xyXG59XHJcblxyXG5TdHJpbmcucHJvdG90eXBlLmZvcm1hdEFyZ3MgPSBmdW5jdGlvbiAoLi4uYXJncyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHRoaXMucmVwbGFjZSgveyhcXGQrKX0vZywgKF8sIGluZGV4KSA9PiBhcmdzW2luZGV4XSB8fCAnJyk7XHJcbn1cclxuQXJyYXkucHJvdG90eXBlLmxhc3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIHRoaXNbdGhpcy5sZW5ndGggLSAxXTtcclxufVxyXG4vKiogcmVtb3ZlIGVsZW1lbnQgZnJvbSBhcnJheSAqL1xyXG5BcnJheS5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gPFQ+KHZhbHVlOiBUKTogVFtdIHtcclxuICBjb25zdCBpbmRleCA9IHRoaXMuaW5kZXhPZih2YWx1ZSk7XHJcbiAgaWYgKGluZGV4ID4gLTEpIHRoaXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICByZXR1cm4gdGhpcztcclxufTtcclxuLyoqIGNhbGN1bGF0ZSBhdmVyYWdlIHVzaW5nIGVsZW1lbnQgcHJlZGljYXRlICovXHJcbkFycmF5LnByb3RvdHlwZS5hdmVyYWdlID0gZnVuY3Rpb24gPFQ+KHByZWRpY2F0ZT86IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXIge1xyXG4gIGxldCBhdmVyYWdlID0gMDtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgYXZlcmFnZSArPSBwcmVkaWNhdGUoaSlcclxuICApO1xyXG4gIHJldHVybiBhdmVyYWdlICE9PSAwID8gYXZlcmFnZSAvIHRoaXMubGVuZ3RoIDogMDtcclxufVxyXG5BcnJheS5wcm90b3R5cGUubWF4ID0gZnVuY3Rpb24gPFQ+KHByZWRpY2F0ZT86IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXIge1xyXG4gIGxldCBuID0gMDtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgbiA9IE1hdGgubWF4KG4sIHByZWRpY2F0ZShpKSlcclxuICApO1xyXG4gIHJldHVybiBuO1xyXG59XHJcbi8qKiBzdW0gZWxlbWVudHMgdXNpbmcgcHJlZGljYXRlICovXHJcbkFycmF5LnByb3RvdHlwZS5zdW0gPSBmdW5jdGlvbiA8VD4ocHJlZGljYXRlPzogKGk6IFQpID0+IG51bWJlcik6IG51bWJlciB7XHJcbiAgbGV0IG4gPSAwO1xyXG4gIHRoaXMuZm9yRWFjaChpID0+XHJcbiAgICBuICs9IHByZWRpY2F0ZShpKVxyXG4gICk7XHJcbiAgcmV0dXJuIG47XHJcbn1cclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gYXJnc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5UGFyYW1zKGFyZ3M6IGFueSkge1xyXG4gIGNvbnN0IHBhcmFtcyA9IHt9O1xyXG4gIGFyZ3MgJiZcclxuICAgIE9iamVjdC5rZXlzKGFyZ3MpLmZvckVhY2goayA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IGFyZ3Nba107XHJcblxyXG4gICAgICBpZiAodmFsICE9PSBudWxsICYmIHZhbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKGlzU3RyaW5nKHZhbCkpXHJcbiAgICAgICAgICBwYXJhbXNba10gPSB2YWw7XHJcbiAgICAgICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpICYmIHZhbC5sZW5ndGgpXHJcbiAgICAgICAgICBwYXJhbXNba10gPSB2YWw7XHJcbiAgICAgICAgZWxzZSBpZiAoaXNEYXRlKHZhbCkpXHJcbiAgICAgICAgICBwYXJhbXNba10gPSB2YWwudG9KU09OKCk7XHJcbiAgICAgICAgZWxzZSBpZiAoaXNPYmplY3QodmFsKSkge1xyXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbCkubGVuZ3RoKSBwYXJhbXNba10gPSBxdWVyeVBhcmFtcyh2YWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBwYXJhbXNba10gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIHJldHVybiBwYXJhbXM7XHJcbn1cclxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKG5hbWUsIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmKSB7XHJcbiAgbmFtZSA9IG5hbWUucmVwbGFjZSgvW1xcW1xcXV0vZywgJ1xcXFwkJicpO1xyXG4gIHZhciByZWdleCA9IG5ldyBSZWdFeHAoJ1s/Jl0nICsgbmFtZSArICcoPShbXiYjXSopfCZ8I3wkKScpLFxyXG4gICAgcmVzdWx0cyA9IHJlZ2V4LmV4ZWModXJsKTtcclxuICBpZiAoIXJlc3VsdHMpIHJldHVybiBudWxsO1xyXG4gIGlmICghcmVzdWx0c1syXSkgcmV0dXJuICcnO1xyXG4gIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1syXS5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XHJcbn1cclxuIl19
@@ -198,12 +198,12 @@ export class GuideComponent {
198
198
  this._overlayRef.detach();
199
199
  }
200
200
  }
201
- GuideComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: GuideComponent, deps: [{ token: TOUR_TOKEN }, { token: i1.SessionService }, { token: i2.Overlay }, { token: i3.Router }, { token: i2.OverlayRef }], target: i0.ɵɵFactoryTarget.Component });
202
- GuideComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: GuideComponent, selector: "ng-component", host: { listeners: { "window:keydown": "keydown($event)" } }, ngImport: i0, template: "<div class=\"container\" [style.display]=\"step ? '': 'none'\" cdkTrapFocus>\r\n <div fxLayout=\"column\" class=\"content\">\r\n <div fxLayout=\"row\">\r\n <h2 *ngIf=\"step?.title\" class=\"mat-h2\">{{step?.title}}</h2>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" *ngIf=\"index < count - 1\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <p class=\"mat-body\" [innerHTML]=\"step?.content | sanitizeHtml\">\r\n </p>\r\n <div fxLayout=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"prev()\" [disabled]=\"index === 0 || working\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"next()\" [disabled]=\"index === count - 1 || working\" cdkFocusInitial><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <button mat-button (click)=\"close()\" *ngIf=\"index === count - 1\">{{'GuideFinish'|translate}}</button>\r\n </div>\r\n </div>\r\n <div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n </div>\r\n</div>\r\n", components: [{ type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "sanitizeHtml": i8.SanitizeHtmlPipe, "translate": i9.TranslatePipe }, animations: [trigger('body', [
201
+ GuideComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GuideComponent, deps: [{ token: TOUR_TOKEN }, { token: i1.SessionService }, { token: i2.Overlay }, { token: i3.Router }, { token: i2.OverlayRef }], target: i0.ɵɵFactoryTarget.Component });
202
+ GuideComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: GuideComponent, selector: "ng-component", host: { listeners: { "window:keydown": "keydown($event)" } }, ngImport: i0, template: "<div class=\"container\" [style.display]=\"step ? '': 'none'\" cdkTrapFocus>\r\n <div fxLayout=\"column\" class=\"content\">\r\n <div fxLayout=\"row\">\r\n <h2 *ngIf=\"step?.title\" class=\"mat-h2\">{{step?.title}}</h2>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" *ngIf=\"index < count - 1\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <p class=\"mat-body\" [innerHTML]=\"step?.content | sanitizeHtml\">\r\n </p>\r\n <div fxLayout=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"prev()\" [disabled]=\"index === 0 || working\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"next()\" [disabled]=\"index === count - 1 || working\" cdkFocusInitial><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <button mat-button (click)=\"close()\" *ngIf=\"index === count - 1\">{{'GuideFinish'|translate}}</button>\r\n </div>\r\n </div>\r\n <div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n </div>\r\n</div>\r\n", components: [{ type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "sanitizeHtml": i8.SanitizeHtmlPipe, "translate": i9.TranslatePipe }, animations: [trigger('body', [
203
203
  state('here', style({ width: '*', height: '*' })),
204
204
  transition('*<=>*', animate('250ms', style({})))
205
205
  ])] });
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: GuideComponent, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GuideComponent, decorators: [{
207
207
  type: Component,
208
208
  args: [{ animations: [trigger('body', [
209
209
  state('here', style({ width: '*', height: '*' })),
@@ -95,9 +95,9 @@ export class GuideService {
95
95
  oRef.backdropClick().subscribe(() => oRef.detach());
96
96
  }
97
97
  }
98
- GuideService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: GuideService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.SessionService }, { token: i3.TranslateService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
99
- GuideService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: GuideService, providedIn: 'root' });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: GuideService, decorators: [{
98
+ GuideService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GuideService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.SessionService }, { token: i3.TranslateService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
99
+ GuideService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GuideService, providedIn: 'root' });
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: GuideService, decorators: [{
101
101
  type: Injectable,
102
102
  args: [{ providedIn: 'root' }]
103
103
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.SessionService }, { type: i3.TranslateService }, { type: undefined, decorators: [{
@@ -65,9 +65,9 @@ export class AppHttpInterceptor {
65
65
  return forward();
66
66
  }
67
67
  }
68
- AppHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AppHttpInterceptor, deps: [{ token: 'BASE_URL', optional: true }, { token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.AuthenticationImpl }, { token: i4.HubService }], target: i0.ɵɵFactoryTarget.Injectable });
69
- AppHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AppHttpInterceptor, providedIn: 'root' });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AppHttpInterceptor, decorators: [{
68
+ AppHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppHttpInterceptor, deps: [{ token: 'BASE_URL', optional: true }, { token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.AuthenticationImpl }, { token: i4.HubService }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ AppHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppHttpInterceptor, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AppHttpInterceptor, decorators: [{
71
71
  type: Injectable,
72
72
  args: [{ providedIn: 'root' }]
73
73
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -94,12 +94,12 @@ export class HubService {
94
94
  this._state.next(HubConnectionState.Disconnected);
95
95
  }
96
96
  }
97
- HubService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HubService, deps: [{ token: i1.AuthenticationImpl }], target: i0.ɵɵFactoryTarget.Injectable });
98
- HubService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HubService, providedIn: "root" });
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HubService, decorators: [{
97
+ HubService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: HubService, deps: [{ token: i1.AuthenticationImpl }], target: i0.ɵɵFactoryTarget.Injectable });
98
+ HubService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: HubService, providedIn: "root" });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: HubService, decorators: [{
100
100
  type: Injectable,
101
101
  args: [{
102
102
  providedIn: "root"
103
103
  }]
104
104
  }], ctorParameters: function () { return [{ type: i1.AuthenticationImpl }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHViLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaHViLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBaUIsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRzdGLDhCQUE4QjtBQUk5QixNQUFNLE9BQU8sVUFBVTtJQTZDckIsWUFDVSxLQUF5QjtRQUF6QixVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQTVDbEIsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO1FBQ25ELFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0MsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO1FBQ25ELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUNuRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUNqRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQzlDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO1FBQ3BELFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7UUFDL0Msb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUNyRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFDakQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyRCxtQkFBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELG1CQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RCx1QkFBdUI7UUFDZCxZQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxVQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0QsZUFBZTtRQUNOLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLGtCQUFrQjtRQUNULFlBQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLHNCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxRCxZQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxhQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxtQkFBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFDM0Q7WUFDRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUU7U0FDOUIsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQXdCLEVBQUUsRUFBRSxDQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQXVCLEVBQUUsRUFBRSxDQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQXVCLEVBQUUsRUFBRSxDQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQW1CLEVBQUUsRUFBRSxDQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFLENBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUNsRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxDQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQ2xELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ00sS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDOzt1R0FsSFUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21tZW50LCBOb3RpZmljYXRpb24sIENoYXQsIEF2YWlsYWJpbGl0eVN0YXRlLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvbkJ1aWxkZXIsIEh1YkNvbm5lY3Rpb24sIEh1YkNvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uSW1wbCB9IGZyb20gJy4vYXV0aGVudGljYXRpb24nO1xyXG5cclxuLyoqIExpc3RlbiB0byBodWIgY29udHJhY3RzICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgSHViU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IG5ldyBTdWJqZWN0PEh1YkNvbm5lY3Rpb25TdGF0ZT4oKTtcclxuICByZWFkb25seSBzdGF0ZSQgPSB0aGlzLl9zdGF0ZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWd1cmF0aW9uQ2hhbmdlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9uZXdNYWlsID0gbmV3IFN1YmplY3Q8TmV3TWFpbEV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25ld0NoYXQgPSBuZXcgU3ViamVjdDxDaGF0RXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV3Q29tbWVudCA9IG5ldyBTdWJqZWN0PENvbW1lbnRFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21tZW50VXBkYXRlID0gbmV3IFN1YmplY3Q8Q29tbWVudEV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbW1lbnREZWxldGUgPSBuZXcgU3ViamVjdDxDb21tZW50RGVsZXRlRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdXBkYXRlTWFpbCA9IG5ldyBTdWJqZWN0PE1haWxVcGRhdGVFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9tYWlsRGVsZXRlID0gbmV3IFN1YmplY3Q8TWFpbERlbGV0ZUV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX21haWxIZWFkZXJVcGRhdGUgPSBuZXcgU3ViamVjdDxNYWlsVXBkYXRlRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV3Tm90aWZ5ID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdXBkYXRlTm90aWZ5ID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvZmlsZUNoYW5nZSA9IG5ldyBTdWJqZWN0PFVzZXJJbmZvRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tbWVudFR5cGluZyA9IG5ldyBTdWJqZWN0PENvbW1lbnRUeXBpbmdFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jaGF0VHlwaW5nID0gbmV3IFN1YmplY3Q8Q2hhdFR5cGluZ0V2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYXRXYXRoZXJtYXJrID0gbmV3IFN1YmplY3Q8Q2hhdFdhdGVybWFya0V2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZvdGVkID0gbmV3IFN1YmplY3Q8Vm90ZUV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2pvYlByb2dyZXNzID0gbmV3IFN1YmplY3Q8Sm9iUHJvZ3Jlc3NFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXBvcnRQcm9ncmVzcyA9IG5ldyBTdWJqZWN0PFJlcG9ydFByb2dyZXNzRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FsbGJhY2sgPSBuZXcgU3ViamVjdDxDYWxsYmFja0V2ZW50PigpO1xyXG4gIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25DaGFuZ2UkID0gdGhpcy5fY29uZmlndXJhdGlvbkNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBqb2JQcm9ncmVzcyQgPSB0aGlzLl9qb2JQcm9ncmVzcy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSByZXBvcnRQcm9ncmVzcyQgPSB0aGlzLl9yZXBvcnRQcm9ncmVzcy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjYWxsYmFjayQgPSB0aGlzLl9jYWxsYmFjay5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB2b3RlJCA9IHRoaXMuX3ZvdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IGNoYXRUeXBpbmckID0gdGhpcy5fY2hhdFR5cGluZy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjaGF0V2F0ZXJtYXJrJCA9IHRoaXMuX2NoYXRXYXRoZXJtYXJrLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IGNvbW1lbnRUeXBpbmckID0gdGhpcy5fY29tbWVudFR5cGluZy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjb21tZW50VXBkYXRlJCA9IHRoaXMuX2NvbW1lbnRVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgY29tbWVudERlbGV0ZSQgPSB0aGlzLl9jb21tZW50RGVsZXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIC8qKiBuZXcgbm90aWZpY2F0aW9uICovXHJcbiAgcmVhZG9ubHkgbm90aWZ5JCA9IHRoaXMuX25ld05vdGlmeS5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjaGF0JCA9IHRoaXMuX25ld0NoYXQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgdXBkYXRlTm90aWZ5JCA9IHRoaXMuX3VwZGF0ZU5vdGlmeS5hc09ic2VydmFibGUoKTtcclxuICAvKiogbmV3IG1haWwgKi9cclxuICByZWFkb25seSBuZXckID0gdGhpcy5fbmV3TWFpbC5hc09ic2VydmFibGUoKTtcclxuICAvKiogbWFpbCB1cGRhdGUgKi9cclxuICByZWFkb25seSB1cGRhdGUkID0gdGhpcy5fdXBkYXRlTWFpbC5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB1cGRhdGVNYWlsSGVhZGVyJCA9IHRoaXMuX21haWxIZWFkZXJVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgZGVsZXRlJCA9IHRoaXMuX21haWxEZWxldGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgY29tbWVudCQgPSB0aGlzLl9uZXdDb21tZW50LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IHByb2ZpbGVDaGFuZ2UkID0gdGhpcy5fcHJvZmlsZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCkge1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbiA9IG5ldyBIdWJDb25uZWN0aW9uQnVpbGRlcigpLndpdGhVcmwoJy9jaHViJyxcclxuICAgICAge1xyXG4gICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gXHJcbiAgICAgICAgICB0aGlzLl9hdXRoLmdldEFjY2Vzc1Rva2VuKClcclxuICAgICAgfSkud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpLmJ1aWxkKCk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCduZXdNYWlsJywgKGRhdGE6IE5ld01haWxFdmVudCkgPT5cclxuICAgICAgdGhpcy5fbmV3TWFpbC5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ21haWxVcGRhdGUnLCAoZGF0YTogTWFpbFVwZGF0ZUV2ZW50KSA9PlxyXG4gICAgICB0aGlzLl91cGRhdGVNYWlsLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignbWFpbERlbGV0ZScsIChkYXRhOiBNYWlsRGVsZXRlRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX21haWxEZWxldGUubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdtYWlsSGVhZGVyVXBkYXRlJywgKGRhdGE6IE1haWxVcGRhdGVFdmVudCkgPT5cclxuICAgICAgdGhpcy5fbWFpbEhlYWRlclVwZGF0ZS5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ25ld0NvbW1lbnQnLCAoZGF0YTogQ29tbWVudEV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX25ld0NvbW1lbnQubmV4dChkYXRhKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignY29tbWVudFVwZGF0ZScsIChkYXRhOiBDb21tZW50RXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NvbW1lbnRVcGRhdGUubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdjb21tZW50RGVsZXRlJywgKGRhdGE6IENvbW1lbnREZWxldGVFdmVudCkgPT5cclxuICAgICAgdGhpcy5fY29tbWVudERlbGV0ZS5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ25ld05vdGlmeScsIChkYXRhOiBOb3RpZmljYXRpb25FdmVudCkgPT5cclxuICAgICAgdGhpcy5fbmV3Tm90aWZ5Lm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbigndXBkYXRlTm90aWZ5JywgKGRhdGE6IE5vdGlmaWNhdGlvbkV2ZW50KSA9PlxyXG4gICAgICB0aGlzLl91cGRhdGVOb3RpZnkubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdwcm9maWxlQ2hhbmdlJywgKGRhdGE6IFVzZXJJbmZvRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX3Byb2ZpbGVDaGFuZ2UubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCduZXdDaGF0JywgKGRhdGE6IENoYXRFdmVudCkgPT5cclxuICAgICAgdGhpcy5fbmV3Q2hhdC5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ2NvbW1lbnRUeXBpbmcnLCAoZGF0YTogQ29tbWVudFR5cGluZ0V2ZW50KSA9PlxyXG4gICAgICB0aGlzLl9jb21tZW50VHlwaW5nLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignY2hhdFR5cGluZycsIChkYXRhOiBDaGF0VHlwaW5nRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NoYXRUeXBpbmcubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdjaGF0U2VlbicsIChkYXRhOiBDaGF0V2F0ZXJtYXJrRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NoYXRXYXRoZXJtYXJrLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbigndm90ZWQnLCAoZGF0YTogVm90ZUV2ZW50KSA9PlxyXG4gICAgICB0aGlzLl92b3RlZC5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ2NhbGxiYWNrJywgKGRhdGE6IENhbGxiYWNrRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NhbGxiYWNrLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignam9iUHJvZ3Jlc3MnLCAoZGF0YTogSm9iUHJvZ3Jlc3NFdmVudCkgPT5cclxuICAgICAgdGhpcy5fam9iUHJvZ3Jlc3MubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdyZXBvcnRQcm9ncmVzcycsIChkYXRhOiBSZXBvcnRQcm9ncmVzc0V2ZW50KSA9PlxyXG4gICAgICB0aGlzLl9yZXBvcnRQcm9ncmVzcy5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ2NvbmZpZ3VyYXRpb25DaGFuZ2UnLCAoKSA9PlxyXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uQ2hhbmdlLm5leHQoKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uY2xvc2UoKCkgPT5cclxuICAgICAgdGhpcy5fc3RhdGUubmV4dChIdWJDb25uZWN0aW9uU3RhdGUuRGlzY29ubmVjdGVkKVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub25yZWNvbm5lY3RlZCgoKSA9PlxyXG4gICAgICB0aGlzLl9zdGF0ZS5uZXh0KEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXRlKCk6IEh1YkNvbm5lY3Rpb25TdGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbi5zdGF0ZTtcclxuICB9XHJcbiAgZ2V0IGNvbm5lY3Rpb25JZCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuX2Nvbm5lY3Rpb24uc3RhdGUgPT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpXHJcbiAgICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uLmNvbm5lY3Rpb25JZDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgc3RhcnQoKSB7XHJcbiAgICBhd2FpdCB0aGlzLl9jb25uZWN0aW9uLnN0YXJ0KCk7XHJcbiAgICB0aGlzLl9zdGF0ZS5uZXh0KEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpO1xyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgc3RvcCgpIHtcclxuICAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rpb24uc3RvcCgpO1xyXG4gICAgdGhpcy5fc3RhdGUubmV4dChIdWJDb25uZWN0aW9uU3RhdGUuRGlzY29ubmVjdGVkKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE5ld01haWxFdmVudCB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbn1cclxuaW50ZXJmYWNlIE1haWxVcGRhdGVFdmVudCB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBvcmlnaW5hbFJlYWQ/OiBib29sZWFuO1xyXG59XHJcbmludGVyZmFjZSBDaGF0RXZlbnQge1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIG1vZGVsOiBDaGF0O1xyXG59XHJcbmludGVyZmFjZSBDaGF0VHlwaW5nRXZlbnQge1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBDaGF0V2F0ZXJtYXJrRXZlbnQge1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbn1cclxuaW50ZXJmYWNlIENvbW1lbnRUeXBpbmdFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICB1c2VySWQ6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgTWFpbERlbGV0ZUV2ZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG59XHJcbmludGVyZmFjZSBDb21tZW50RXZlbnQge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbW9kZWw6IENvbW1lbnQ7XHJcbn1cclxuaW50ZXJmYWNlIENvbW1lbnREZWxldGVFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBjb21tZW50SWQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgVm90ZUV2ZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGNvbW1lbnRJZDogbnVtYmVyO1xyXG4gIHZvdGVzPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHZvdGU/OiBudW1iZXI7XHJcbn1cclxuaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkV2ZW50IHtcclxuICBvcmlnaW5hbFJlYWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsOiBOb3RpZmljYXRpb247XHJcbn1cclxuaW50ZXJmYWNlIFVzZXJJbmZvRXZlbnQge1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIG1vZGU6IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcbmludGVyZmFjZSBDYWxsYmFja0V2ZW50IHtcclxuICBmdW5jdGlvbjogc3RyaW5nO1xyXG4gIGFyZ3VtZW50czogYW55W107XHJcbn1cclxuaW50ZXJmYWNlIEpvYlByb2dyZXNzRXZlbnQge1xyXG4gIGpvYklkOiBzdHJpbmc7XHJcbiAgZXZlbnQ6IEpvYlByb2dyZXNzO1xyXG59XHJcbmludGVyZmFjZSBSZXBvcnRQcm9ncmVzc0V2ZW50IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcHJvZ3Jlc3M6IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzIHtcclxuICB2YWx1ZTogbnVtYmVyO1xyXG4gIGZpbGU/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICBidWZlcnJpbmdWYWx1ZT86IG51bWJlcjtcclxufVxyXG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHViLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaHViLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBaUIsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRzdGLDhCQUE4QjtBQUk5QixNQUFNLE9BQU8sVUFBVTtJQTZDckIsWUFDVSxLQUF5QjtRQUF6QixVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQTVDbEIsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO1FBQ25ELFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0MsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO1FBQ25ELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUNuRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUNqRCxtQkFBYyxHQUFHLElBQUksT0FBTyxF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QyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFLENBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUNsRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxDQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQ2xELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ00sS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDOzt1R0FsSFUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21tZW50LCBOb3RpZmljYXRpb24sIENoYXQsIEF2YWlsYWJpbGl0eVN0YXRlLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvbkJ1aWxkZXIsIEh1YkNvbm5lY3Rpb24sIEh1YkNvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uSW1wbCB9IGZyb20gJy4vYXV0aGVudGljYXRpb24nO1xyXG5cclxuLyoqIExpc3RlbiB0byBodWIgY29udHJhY3RzICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgSHViU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IG5ldyBTdWJqZWN0PEh1YkNvbm5lY3Rpb25TdGF0ZT4oKTtcclxuICByZWFkb25seSBzdGF0ZSQgPSB0aGlzLl9zdGF0ZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWd1cmF0aW9uQ2hhbmdlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9uZXdNYWlsID0gbmV3IFN1YmplY3Q8TmV3TWFpbEV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25ld0NoYXQgPSBuZXcgU3ViamVjdDxDaGF0RXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV3Q29tbWVudCA9IG5ldyBTdWJqZWN0PENvbW1lbnRFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21tZW50VXBkYXRlID0gbmV3IFN1YmplY3Q8Q29tbWVudEV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbW1lbnREZWxldGUgPSBuZXcgU3ViamVjdDxDb21tZW50RGVsZXRlRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdXBkYXRlTWFpbCA9IG5ldyBTdWJqZWN0PE1haWxVcGRhdGVFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9tYWlsRGVsZXRlID0gbmV3IFN1YmplY3Q8TWFpbERlbGV0ZUV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX21haWxIZWFkZXJVcGRhdGUgPSBuZXcgU3ViamVjdDxNYWlsVXBkYXRlRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV3Tm90aWZ5ID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdXBkYXRlTm90aWZ5ID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvZmlsZUNoYW5nZSA9IG5ldyBTdWJqZWN0PFVzZXJJbmZvRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tbWVudFR5cGluZyA9IG5ldyBTdWJqZWN0PENvbW1lbnRUeXBpbmdFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jaGF0VHlwaW5nID0gbmV3IFN1YmplY3Q8Q2hhdFR5cGluZ0V2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYXRXYXRoZXJtYXJrID0gbmV3IFN1YmplY3Q8Q2hhdFdhdGVybWFya0V2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZvdGVkID0gbmV3IFN1YmplY3Q8Vm90ZUV2ZW50PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2pvYlByb2dyZXNzID0gbmV3IFN1YmplY3Q8Sm9iUHJvZ3Jlc3NFdmVudD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXBvcnRQcm9ncmVzcyA9IG5ldyBTdWJqZWN0PFJlcG9ydFByb2dyZXNzRXZlbnQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FsbGJhY2sgPSBuZXcgU3ViamVjdDxDYWxsYmFja0V2ZW50PigpO1xyXG4gIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25DaGFuZ2UkID0gdGhpcy5fY29uZmlndXJhdGlvbkNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBqb2JQcm9ncmVzcyQgPSB0aGlzLl9qb2JQcm9ncmVzcy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSByZXBvcnRQcm9ncmVzcyQgPSB0aGlzLl9yZXBvcnRQcm9ncmVzcy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjYWxsYmFjayQgPSB0aGlzLl9jYWxsYmFjay5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB2b3RlJCA9IHRoaXMuX3ZvdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IGNoYXRUeXBpbmckID0gdGhpcy5fY2hhdFR5cGluZy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjaGF0V2F0ZXJtYXJrJCA9IHRoaXMuX2NoYXRXYXRoZXJtYXJrLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IGNvbW1lbnRUeXBpbmckID0gdGhpcy5fY29tbWVudFR5cGluZy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjb21tZW50VXBkYXRlJCA9IHRoaXMuX2NvbW1lbnRVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgY29tbWVudERlbGV0ZSQgPSB0aGlzLl9jb21tZW50RGVsZXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIC8qKiBuZXcgbm90aWZpY2F0aW9uICovXHJcbiAgcmVhZG9ubHkgbm90aWZ5JCA9IHRoaXMuX25ld05vdGlmeS5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBjaGF0JCA9IHRoaXMuX25ld0NoYXQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgdXBkYXRlTm90aWZ5JCA9IHRoaXMuX3VwZGF0ZU5vdGlmeS5hc09ic2VydmFibGUoKTtcclxuICAvKiogbmV3IG1haWwgKi9cclxuICByZWFkb25seSBuZXckID0gdGhpcy5fbmV3TWFpbC5hc09ic2VydmFibGUoKTtcclxuICAvKiogbWFpbCB1cGRhdGUgKi9cclxuICByZWFkb25seSB1cGRhdGUkID0gdGhpcy5fdXBkYXRlTWFpbC5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB1cGRhdGVNYWlsSGVhZGVyJCA9IHRoaXMuX21haWxIZWFkZXJVcGRhdGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgZGVsZXRlJCA9IHRoaXMuX21haWxEZWxldGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgY29tbWVudCQgPSB0aGlzLl9uZXdDb21tZW50LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IHByb2ZpbGVDaGFuZ2UkID0gdGhpcy5fcHJvZmlsZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCkge1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbiA9IG5ldyBIdWJDb25uZWN0aW9uQnVpbGRlcigpLndpdGhVcmwoJy9jaHViJyxcclxuICAgICAge1xyXG4gICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gXHJcbiAgICAgICAgICB0aGlzLl9hdXRoLmdldEFjY2Vzc1Rva2VuKClcclxuICAgICAgfSkud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpLmJ1aWxkKCk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCduZXdNYWlsJywgKGRhdGE6IE5ld01haWxFdmVudCkgPT5cclxuICAgICAgdGhpcy5fbmV3TWFpbC5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ21haWxVcGRhdGUnLCAoZGF0YTogTWFpbFVwZGF0ZUV2ZW50KSA9PlxyXG4gICAgICB0aGlzLl91cGRhdGVNYWlsLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignbWFpbERlbGV0ZScsIChkYXRhOiBNYWlsRGVsZXRlRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX21haWxEZWxldGUubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdtYWlsSGVhZGVyVXBkYXRlJywgKGRhdGE6IE1haWxVcGRhdGVFdmVudCkgPT5cclxuICAgICAgdGhpcy5fbWFpbEhlYWRlclVwZGF0ZS5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ25ld0NvbW1lbnQnLCAoZGF0YTogQ29tbWVudEV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX25ld0NvbW1lbnQubmV4dChkYXRhKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignY29tbWVudFVwZGF0ZScsIChkYXRhOiBDb21tZW50RXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NvbW1lbnRVcGRhdGUubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdjb21tZW50RGVsZXRlJywgKGRhdGE6IENvbW1lbnREZWxldGVFdmVudCkgPT5cclxuICAgICAgdGhpcy5fY29tbWVudERlbGV0ZS5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ25ld05vdGlmeScsIChkYXRhOiBOb3RpZmljYXRpb25FdmVudCkgPT5cclxuICAgICAgdGhpcy5fbmV3Tm90aWZ5Lm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbigndXBkYXRlTm90aWZ5JywgKGRhdGE6IE5vdGlmaWNhdGlvbkV2ZW50KSA9PlxyXG4gICAgICB0aGlzLl91cGRhdGVOb3RpZnkubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdwcm9maWxlQ2hhbmdlJywgKGRhdGE6IFVzZXJJbmZvRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX3Byb2ZpbGVDaGFuZ2UubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCduZXdDaGF0JywgKGRhdGE6IENoYXRFdmVudCkgPT5cclxuICAgICAgdGhpcy5fbmV3Q2hhdC5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ2NvbW1lbnRUeXBpbmcnLCAoZGF0YTogQ29tbWVudFR5cGluZ0V2ZW50KSA9PlxyXG4gICAgICB0aGlzLl9jb21tZW50VHlwaW5nLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignY2hhdFR5cGluZycsIChkYXRhOiBDaGF0VHlwaW5nRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NoYXRUeXBpbmcubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdjaGF0U2VlbicsIChkYXRhOiBDaGF0V2F0ZXJtYXJrRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NoYXRXYXRoZXJtYXJrLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbigndm90ZWQnLCAoZGF0YTogVm90ZUV2ZW50KSA9PlxyXG4gICAgICB0aGlzLl92b3RlZC5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ2NhbGxiYWNrJywgKGRhdGE6IENhbGxiYWNrRXZlbnQpID0+XHJcbiAgICAgIHRoaXMuX2NhbGxiYWNrLm5leHQoZGF0YSkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGlvbi5vbignam9iUHJvZ3Jlc3MnLCAoZGF0YTogSm9iUHJvZ3Jlc3NFdmVudCkgPT5cclxuICAgICAgdGhpcy5fam9iUHJvZ3Jlc3MubmV4dChkYXRhKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uKCdyZXBvcnRQcm9ncmVzcycsIChkYXRhOiBSZXBvcnRQcm9ncmVzc0V2ZW50KSA9PlxyXG4gICAgICB0aGlzLl9yZXBvcnRQcm9ncmVzcy5uZXh0KGRhdGEpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub24oJ2NvbmZpZ3VyYXRpb25DaGFuZ2UnLCAoKSA9PlxyXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uQ2hhbmdlLm5leHQoKSk7XHJcbiAgICB0aGlzLl9jb25uZWN0aW9uLm9uY2xvc2UoKCkgPT5cclxuICAgICAgdGhpcy5fc3RhdGUubmV4dChIdWJDb25uZWN0aW9uU3RhdGUuRGlzY29ubmVjdGVkKVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2Nvbm5lY3Rpb24ub25yZWNvbm5lY3RlZCgoKSA9PlxyXG4gICAgICB0aGlzLl9zdGF0ZS5uZXh0KEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXRlKCk6IEh1YkNvbm5lY3Rpb25TdGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbi5zdGF0ZTtcclxuICB9XHJcbiAgZ2V0IGNvbm5lY3Rpb25JZCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuX2Nvbm5lY3Rpb24uc3RhdGUgPT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpXHJcbiAgICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uLmNvbm5lY3Rpb25JZDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgc3RhcnQoKSB7XHJcbiAgICBhd2FpdCB0aGlzLl9jb25uZWN0aW9uLnN0YXJ0KCk7XHJcbiAgICB0aGlzLl9zdGF0ZS5uZXh0KEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpO1xyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgc3RvcCgpIHtcclxuICAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rpb24uc3RvcCgpO1xyXG4gICAgdGhpcy5fc3RhdGUubmV4dChIdWJDb25uZWN0aW9uU3RhdGUuRGlzY29ubmVjdGVkKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE5ld01haWxFdmVudCB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbn1cclxuaW50ZXJmYWNlIE1haWxVcGRhdGVFdmVudCB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBvcmlnaW5hbFJlYWQ/OiBib29sZWFuO1xyXG59XHJcbmludGVyZmFjZSBDaGF0RXZlbnQge1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIG1vZGVsOiBDaGF0O1xyXG59XHJcbmludGVyZmFjZSBDaGF0VHlwaW5nRXZlbnQge1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBDaGF0V2F0ZXJtYXJrRXZlbnQge1xyXG4gIGNvbnRhY3RJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbn1cclxuaW50ZXJmYWNlIENvbW1lbnRUeXBpbmdFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICB1c2VySWQ6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgTWFpbERlbGV0ZUV2ZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG59XHJcbmludGVyZmFjZSBDb21tZW50RXZlbnQge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbW9kZWw6IENvbW1lbnQ7XHJcbn1cclxuaW50ZXJmYWNlIENvbW1lbnREZWxldGVFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBjb21tZW50SWQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgVm90ZUV2ZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGNvbW1lbnRJZDogbnVtYmVyO1xyXG4gIHZvdGVzPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHZvdGU/OiBudW1iZXI7XHJcbn1cclxuaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkV2ZW50IHtcclxuICBvcmlnaW5hbFJlYWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsOiBOb3RpZmljYXRpb247XHJcbn1cclxuaW50ZXJmYWNlIFVzZXJJbmZvRXZlbnQge1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIG1vZGU6IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcbmludGVyZmFjZSBDYWxsYmFja0V2ZW50IHtcclxuICBtZXNzYWdlOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIEpvYlByb2dyZXNzRXZlbnQge1xyXG4gIGpvYklkOiBzdHJpbmc7XHJcbiAgZXZlbnQ6IEpvYlByb2dyZXNzO1xyXG59XHJcbmludGVyZmFjZSBSZXBvcnRQcm9ncmVzc0V2ZW50IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcHJvZ3Jlc3M6IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzIHtcclxuICB2YWx1ZTogbnVtYmVyO1xyXG4gIGZpbGU/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICBidWZlcnJpbmdWYWx1ZT86IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -49,9 +49,9 @@ export class IdentityName {
49
49
  this._chat.open(userId, { mode: this.chating });
50
50
  }
51
51
  }
52
- IdentityName.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: IdentityName, deps: [{ token: i1.SessionService }, { token: i2.TranslateService }, { token: BIZDOC_CONFIG }, { token: i3.ChatInfo }, { token: i4.AccountService }], target: i0.ɵɵFactoryTarget.Component });
53
- IdentityName.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: IdentityName, selector: "bizdoc-identity-name", inputs: { identity: "identity", by: "by", chating: "chating" }, usesOnChanges: true, ngImport: i0, template: "<span *ngIf=\"!isMe else you\" class=\"name\" [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n<ng-template #you>{{'You' | translate }}</ng-template>\r\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "sanitizeHtml": i6.SanitizeHtmlPipe, "translate": i7.TranslatePipe } });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: IdentityName, decorators: [{
52
+ IdentityName.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IdentityName, deps: [{ token: i1.SessionService }, { token: i2.TranslateService }, { token: BIZDOC_CONFIG }, { token: i3.ChatInfo }, { token: i4.AccountService }], target: i0.ɵɵFactoryTarget.Component });
53
+ IdentityName.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: IdentityName, selector: "bizdoc-identity-name", inputs: { identity: "identity", by: "by", chating: "chating" }, usesOnChanges: true, ngImport: i0, template: "<span *ngIf=\"!isMe else you\" class=\"name\" [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n<ng-template #you>{{'You' | translate }}</ng-template>\r\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "sanitizeHtml": i6.SanitizeHtmlPipe, "translate": i7.TranslatePipe } });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: IdentityName, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: 'bizdoc-identity-name', template: "<span *ngIf=\"!isMe else you\" class=\"name\" [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n<ng-template #you>{{'You' | translate }}</ng-template>\r\n" }]
57
57
  }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.TranslateService }, { type: undefined, decorators: [{
@@ -1,7 +1,8 @@
1
1
  import { Injectable, Injector } from '@angular/core';
2
2
  import { OverlayRef } from '@angular/cdk/overlay';
3
3
  import { ComponentPortal } from '@angular/cdk/portal';
4
- import { AttachmentPreview, FILE_PREVIEW_DIALOG_DATA, IMAGE_TYPE } from '../../compose/attachments/preview/attachment-preview.component';
4
+ import { AttachmentPreview, FILE_PREVIEW_DIALOG_DATA } from '../../compose/attachments/preview/attachment-preview.component';
5
+ import { isImage } from '../functions';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/cdk/overlay";
7
8
  import * as i2 from "@angular/cdk/bidi";
@@ -12,16 +13,13 @@ export class AttachmentInfo {
12
13
  this._dir = _dir;
13
14
  }
14
15
  static exists(contentType) {
15
- return this.isImage(contentType) || navigator.mimeTypes.namedItem(contentType) != null;
16
+ return isImage(contentType) || navigator.mimeTypes.namedItem(contentType) != null;
16
17
  }
17
18
  static isImage(contentType) {
18
- return IMAGE_TYPE.indexOf(contentType) > -1;
19
+ return isImage(contentType);
19
20
  }
20
- static formatUrl(documentId, fileId) {
21
- return `/api/mailbox/download/${documentId}?fileId=${fileId}`;
22
- }
23
- ext(file) {
24
- return file.substr(file.lastIndexOf('.' + 1));
21
+ static fileExt(fileName) {
22
+ return fileName.substr(fileName.lastIndexOf('.' + 1));
25
23
  }
26
24
  preview(item, fileId) {
27
25
  const file = item.attachments.find(a => a.id === fileId);
@@ -45,9 +43,9 @@ export class AttachmentInfo {
45
43
  item.viewed = new Date();
46
44
  }
47
45
  }
48
- AttachmentInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AttachmentInfo, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.Directionality }], target: i0.ɵɵFactoryTarget.Injectable });
49
- AttachmentInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AttachmentInfo });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: AttachmentInfo, decorators: [{
46
+ AttachmentInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AttachmentInfo, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.Directionality }], target: i0.ɵɵFactoryTarget.Injectable });
47
+ AttachmentInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AttachmentInfo });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AttachmentInfo, decorators: [{
51
49
  type: Injectable
52
50
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.Directionality }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5mby9hdHRhY2htZW50LWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVcsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQWUsTUFBTSxnRUFBZ0UsQ0FBQzs7OztBQUt0SixNQUFNLE9BQU8sY0FBYztJQWtDekIsWUFDVSxRQUFpQixFQUNqQixTQUFtQixFQUNuQixJQUFvQjtRQUZwQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFDOUIsQ0FBQztJQXJDRCxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDekYsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBbUI7UUFDaEMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWtCLEVBQUUsTUFBYztRQUNqRCxPQUFPLHlCQUF5QixVQUFVLFdBQVcsTUFBTSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUNNLEdBQUcsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDTSxPQUFPLENBQVUsSUFBc0IsRUFBRSxNQUFjO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7WUFDM0YsYUFBYSxFQUFFLGVBQWU7WUFDOUIsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CO2dCQUNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUU7b0JBQzNDLElBQUk7b0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2lCQUNiO2FBQ2pCO1lBQ0QsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDeEMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7OzJHQWpDVSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXcsIEZJTEVfUFJFVklFV19ESUFMT0dfREFUQSwgSU1BR0VfVFlQRSwgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi9jb21wb3NlL2F0dGFjaG1lbnRzL3ByZXZpZXcvYXR0YWNobWVudC1wcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbiBcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEF0dGFjaG1lbnRJbmZvIHtcclxuICBzdGF0aWMgZXhpc3RzKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzSW1hZ2UoY29udGVudFR5cGUpIHx8IG5hdmlnYXRvci5taW1lVHlwZXMubmFtZWRJdGVtKGNvbnRlbnRUeXBlKSAhPSBudWxsO1xyXG4gIH1cclxuICBzdGF0aWMgaXNJbWFnZShjb250ZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSU1BR0VfVFlQRS5pbmRleE9mKGNvbnRlbnRUeXBlKSA+IC0xO1xyXG4gIH1cclxuICBzdGF0aWMgZm9ybWF0VXJsKGRvY3VtZW50SWQ6IG51bWJlciwgZmlsZUlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBgL2FwaS9tYWlsYm94L2Rvd25sb2FkLyR7ZG9jdW1lbnRJZH0/ZmlsZUlkPSR7ZmlsZUlkfWA7XHJcbiAgfVxyXG4gIHB1YmxpYyBleHQoZmlsZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gZmlsZS5zdWJzdHIoZmlsZS5sYXN0SW5kZXhPZignLicgKyAxKSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBwcmV2aWV3PFQgPSBhbnk+KGl0ZW06IERvY3VtZW50TW9kZWw8VD4sIGZpbGVJZDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBmaWxlID0gaXRlbS5hdHRhY2htZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gZmlsZUlkKTtcclxuICAgIGNvbnN0IG9SZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCksXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdkYXJrLWJhY2tkcm9wJyxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLnZhbHVlXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IEZJTEVfUFJFVklFV19ESUFMT0dfREFUQSwgdXNlVmFsdWU6IHtcclxuICAgICAgICAgIGZpbGUsXHJcbiAgICAgICAgICBkb2N1bWVudElkOiBpdGVtLmRvY3VtZW50SWRcclxuICAgICAgICB9IGFzIFByZXZpZXdEYXRhXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IG9SZWYgfVxyXG4gICAgXSwgdGhpcy5faW5qZWN0b3IpO1xyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChBdHRhY2htZW50UHJldmlldywgbnVsbCwgaW5qZWN0b3IpO1xyXG4gICAgb1JlZi5hdHRhY2gocG9ydGFsKTtcclxuICAgIGl0ZW0udmlld2VkID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfZGlyOiBEaXJlY3Rpb25hbGl0eSkge1xyXG4gIH1cclxufVxyXG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5mby9hdHRhY2htZW50LWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVcsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBZSxNQUFNLGdFQUFnRSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFLdkMsTUFBTSxPQUFPLGNBQWM7SUErQnpCLFlBQ1UsUUFBaUIsRUFDakIsU0FBbUIsRUFDbkIsSUFBb0I7UUFGcEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQWdCO0lBQzlCLENBQUM7SUFsQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFtQjtRQUMvQixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDcEYsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBbUI7UUFDaEMsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBZ0I7UUFDcEMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNNLE9BQU8sQ0FBVSxJQUFzQixFQUFFLE1BQWM7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ2hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzRixhQUFhLEVBQUUsZUFBZTtZQUM5QixXQUFXLEVBQUUsSUFBSTtZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1NBQzNCLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0I7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRTtvQkFDM0MsSUFBSTtvQkFDSixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7aUJBQ2I7YUFDakI7WUFDRCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUN4QyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7MkdBOUJVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50UHJldmlldywgRklMRV9QUkVWSUVXX0RJQUxPR19EQVRBLCBQcmV2aWV3RGF0YSB9IGZyb20gJy4uLy4uL2NvbXBvc2UvYXR0YWNobWVudHMvcHJldmlldy9hdHRhY2htZW50LXByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG9jdW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgaXNJbWFnZSB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vbWFpbGJveC5zZXJ2aWNlJztcclxuIFxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudEluZm8ge1xyXG4gIHN0YXRpYyBleGlzdHMoY29udGVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzSW1hZ2UoY29udGVudFR5cGUpIHx8IG5hdmlnYXRvci5taW1lVHlwZXMubmFtZWRJdGVtKGNvbnRlbnRUeXBlKSAhPSBudWxsO1xyXG4gIH1cclxuICBzdGF0aWMgaXNJbWFnZShjb250ZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaXNJbWFnZShjb250ZW50VHlwZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzdGF0aWMgZmlsZUV4dChmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gZmlsZU5hbWUuc3Vic3RyKGZpbGVOYW1lLmxhc3RJbmRleE9mKCcuJyArIDEpKTtcclxuICB9XHJcbiAgcHVibGljIHByZXZpZXc8VCA9IGFueT4oaXRlbTogRG9jdW1lbnRNb2RlbDxUPiwgZmlsZUlkOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbGUgPSBpdGVtLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmlkID09PSBmaWxlSWQpO1xyXG4gICAgY29uc3Qgb1JlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcclxuICAgICAgYmFja2Ryb3BDbGFzczogJ2RhcmstYmFja2Ryb3AnLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWVcclxuICAgIH0pO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW1xyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogRklMRV9QUkVWSUVXX0RJQUxPR19EQVRBLCB1c2VWYWx1ZToge1xyXG4gICAgICAgICAgZmlsZSxcclxuICAgICAgICAgIGRvY3VtZW50SWQ6IGl0ZW0uZG9jdW1lbnRJZFxyXG4gICAgICAgIH0gYXMgUHJldmlld0RhdGFcclxuICAgICAgfSxcclxuICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb1JlZiB9XHJcbiAgICBdLCB0aGlzLl9pbmplY3Rvcik7XHJcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKEF0dGFjaG1lbnRQcmV2aWV3LCBudWxsLCBpbmplY3Rvcik7XHJcbiAgICBvUmVmLmF0dGFjaChwb3J0YWwpO1xyXG4gICAgaXRlbS52aWV3ZWQgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -13,9 +13,9 @@ export class DocumentInfo {
13
13
  return this._router.navigate(['mailbox/d', id.encodeId()]);
14
14
  }
15
15
  }
16
- DocumentInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DocumentInfo, deps: [{ token: i1.RouterImpl }], target: i0.ɵɵFactoryTarget.Injectable });
17
- DocumentInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DocumentInfo });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DocumentInfo, decorators: [{
16
+ DocumentInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DocumentInfo, deps: [{ token: i1.RouterImpl }], target: i0.ɵɵFactoryTarget.Injectable });
17
+ DocumentInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DocumentInfo });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DocumentInfo, decorators: [{
19
19
  type: Injectable
20
20
  }], ctorParameters: function () { return [{ type: i1.RouterImpl }]; } });
21
21
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtaW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2luZm8vZG9jdW1lbnQtaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUkzQyxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUksQ0FBQztJQUM1Qzs7O09BR0c7SUFDSCxJQUFJLENBQUMsRUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOzt5R0FSVSxZQUFZOzZHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gJy4uLy4uL2NvcmUvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50SW5mbyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsKSB7IH1cclxuICAvKipcclxuICAgKiBwcmV2aWV3IGZvcm1cclxuICAgKiBAcGFyYW0gaWQgZG9jdW1lbnRJZFxyXG4gICAqL1xyXG4gIG9wZW4oaWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9kJywgaWQuZW5jb2RlSWQoKV0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -47,9 +47,9 @@ export class MapComponent {
47
47
  this._ref.backdropClick().pipe().subscribe(() => this._ref.detach());
48
48
  }
49
49
  }
50
- MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MapComponent, deps: [{ token: i1.OverlayRef }, { token: LOCATION_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
51
- MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: MapComponent, selector: "bizdoc-map", host: { classAttribute: "mat-elevation-z4" }, ngImport: i0, template: '', isInline: true, styles: [":host{animation:scale-up-center .4s cubic-bezier(.39,.575,.565,1) both;min-width:50vw;min-height:50vh;display:block!important}@media (max-width: 599px){:host{width:90vw;height:90vh}}\n"] });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MapComponent, decorators: [{
50
+ MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MapComponent, deps: [{ token: i1.OverlayRef }, { token: LOCATION_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
51
+ MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MapComponent, selector: "bizdoc-map", host: { classAttribute: "mat-elevation-z4" }, ngImport: i0, template: '', isInline: true, styles: [":host{animation:scale-up-center .4s cubic-bezier(.39,.575,.565,1) both;min-width:50vw;min-height:50vh;display:block!important}@media (max-width: 599px){:host{width:90vw;height:90vh}}\n"] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MapComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ template: '', selector: 'bizdoc-map', host: {
55
55
  class: 'mat-elevation-z4'
@@ -32,9 +32,9 @@ export class MapInfo {
32
32
  return new MapRef(oRef);
33
33
  }
34
34
  }
35
- MapInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MapInfo, deps: [{ token: i1.Overlay }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
36
- MapInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MapInfo });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: MapInfo, decorators: [{
35
+ MapInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MapInfo, deps: [{ token: i1.Overlay }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ MapInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MapInfo });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MapInfo, decorators: [{
38
38
  type: Injectable
39
39
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }]; } });
40
40
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5mby9tYXAtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBWSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFHMUYsaUNBQWlDO0FBRWpDLE1BQU0sT0FBTyxPQUFPO0lBQ2xCLFlBQW9CLFFBQWlCLEVBQVUsU0FBbUI7UUFBOUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVU7SUFDbEUsQ0FBQztJQUNELGVBQWU7SUFDZixJQUFJLENBQUMsUUFBMkI7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixFQUFFO1lBQzNGLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLG1CQUFtQixFQUFFLElBQUk7WUFDekIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxVQUFVLEVBQUUsWUFBWTtTQUN6QixDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFFBQVEsRUFBRyxRQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRTthQUNwRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7O29HQXZCVSxPQUFPO3dHQUFQLE9BQU87MkZBQVAsT0FBTztrQkFEbkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT3ZlcmxheVJlZiwgT3ZlcmxheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiwgTWFwUmVmLCBMT0NBVElPTl9EQVRBLCBNYXBDb21wb25lbnQgfSBmcm9tIFwiLi9sb2NhdGlvbi1pbmZvLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXRMbmcgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuXHJcbi8qKiBoZWxwZXIgc2VydmljZSBvcGVucyBhIG1hcCAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNYXBJbmZvIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICB9XHJcbiAgLyoqIG9wZW4gbWFwICovXHJcbiAgb3Blbihsb2NhdGlvbjogTG9jYXRpb24gfCBMYXRMbmcpOiBNYXBSZWYge1xyXG4gICAgY29uc3Qgb1JlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdpbmZvLXBhbmVsJ1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbe1xyXG4gICAgICBwcm92aWRlOiBPdmVybGF5UmVmLFxyXG4gICAgICB1c2VWYWx1ZTogb1JlZlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTE9DQVRJT05fREFUQSxcclxuICAgICAgdXNlVmFsdWU6IChsb2NhdGlvbiBhcyBMb2NhdGlvbikubG9jYXRpb24gPyBsb2NhdGlvbiA6IHsgbG9jYXRpb24gfVxyXG4gICAgfV0sIHRoaXMuX2luamVjdG9yKTtcclxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTWFwQ29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XHJcbiAgICBvUmVmLmF0dGFjaChwb3J0YWwpO1xyXG4gICAgcmV0dXJuIG5ldyBNYXBSZWYob1JlZik7XHJcbiAgfVxyXG59XHJcbiJdfQ==