@bizdoc/core 1.13.10 → 1.13.14

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 (311) hide show
  1. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  2. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  3. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  4. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  5. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  6. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
  7. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
  8. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  9. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  10. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  11. package/esm2020/lib/admin/form/form.service.mjs +3 -3
  12. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  13. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  14. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  15. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  16. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  17. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  18. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  19. package/esm2020/lib/admin/positions/positions.component.mjs +3 -3
  20. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  21. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  22. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  23. package/esm2020/lib/app.component.mjs +6 -6
  24. package/esm2020/lib/bizdoc.module.mjs +4 -4
  25. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  26. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  27. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  28. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  29. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  30. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  31. package/esm2020/lib/chat/chat-info.mjs +3 -3
  32. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  33. package/esm2020/lib/chat/chat.service.mjs +3 -3
  34. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  35. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  36. package/esm2020/lib/chat/conversation.component.mjs +5 -5
  37. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  38. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  39. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  40. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  41. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  42. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  43. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  44. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  45. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  46. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  47. package/esm2020/lib/compose/comments/Comments.pane.component.mjs +3 -3
  48. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  49. package/esm2020/lib/compose/comments/comments.component.mjs +5 -5
  50. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  51. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  52. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  53. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  54. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  55. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  56. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  57. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  58. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  59. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  60. package/esm2020/lib/compose/document.component.mjs +3 -3
  61. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  62. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  63. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  64. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  65. package/esm2020/lib/compose/form.component.mjs +20 -7
  66. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  67. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  68. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  69. package/esm2020/lib/compose/save-changes.dialog.mjs +3 -3
  70. package/esm2020/lib/compose/state.component.mjs +3 -3
  71. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  72. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  73. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  74. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  75. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  76. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  77. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  78. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  79. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  80. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  81. package/esm2020/lib/core/account.service.mjs +3 -3
  82. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  83. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  84. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  85. package/esm2020/lib/core/controls/address.input.mjs +3 -3
  86. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  87. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  88. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  89. package/esm2020/lib/core/controls/combination-pool.mjs +13 -17
  90. package/esm2020/lib/core/controls/file.input.mjs +3 -3
  91. package/esm2020/lib/core/controls/select.input.mjs +3 -3
  92. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  93. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  94. package/esm2020/lib/core/datasource.service.mjs +3 -3
  95. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  96. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  97. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  98. package/esm2020/lib/core/hub.service.mjs +7 -4
  99. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  100. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  101. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  102. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  103. package/esm2020/lib/core/info/map-info.mjs +3 -3
  104. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  105. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  106. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  107. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  108. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  109. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  110. package/esm2020/lib/core/layout/file.field.mjs +47 -0
  111. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  112. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  113. package/esm2020/lib/core/layout/input.field.mjs +3 -3
  114. package/esm2020/lib/core/layout/layout.component.mjs +8 -4
  115. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  116. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  117. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  118. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  119. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  120. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  121. package/esm2020/lib/core/mailbox.service.mjs +9 -6
  122. package/esm2020/lib/core/models.mjs +1 -1
  123. package/esm2020/lib/core/none.component.mjs +3 -3
  124. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  125. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  126. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  127. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  128. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  129. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  130. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  131. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  132. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  133. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  134. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  135. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  136. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  137. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
  138. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  139. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  140. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  141. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  142. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  143. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  144. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  145. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  146. package/esm2020/lib/core/prompt.service.mjs +3 -3
  147. package/esm2020/lib/core/router.mjs +6 -6
  148. package/esm2020/lib/core/session.service.mjs +3 -3
  149. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  150. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  151. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  152. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  153. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  154. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  155. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  156. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  157. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  158. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  159. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  160. package/esm2020/lib/core/translate.service.mjs +3 -3
  161. package/esm2020/lib/core/translations.mjs +5 -1
  162. package/esm2020/lib/core/window-title.service.mjs +3 -3
  163. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  164. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  165. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  166. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  167. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  168. package/esm2020/lib/cube/cube.service.mjs +3 -3
  169. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  170. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  171. package/esm2020/lib/cube/explore/explore-items.component.mjs +3 -3
  172. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  173. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  174. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  175. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  176. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  177. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  178. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +6 -11
  179. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  180. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  181. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  182. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  183. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  184. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  185. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  186. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  187. package/esm2020/lib/cube/view-base.mjs +3 -3
  188. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  189. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  190. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  191. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  192. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  193. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  194. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  195. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  196. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  197. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  198. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  199. package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
  200. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  201. package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +3 -3
  202. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  203. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  204. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  205. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  206. package/esm2020/lib/desktop.module.mjs +4 -4
  207. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  208. package/esm2020/lib/home/home-base.component.mjs +7 -5
  209. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  210. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  211. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  212. package/esm2020/lib/home/options/options.component.mjs +3 -3
  213. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  214. package/esm2020/lib/home/search.service.mjs +3 -3
  215. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  216. package/esm2020/lib/home/tools.component.mjs +3 -3
  217. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  218. package/esm2020/lib/mobile.module.mjs +4 -4
  219. package/esm2020/lib/modules/chart.module.mjs +4 -4
  220. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  221. package/esm2020/lib/modules/date.adapter.mjs +3 -3
  222. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  223. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  224. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  225. package/esm2020/lib/modules/grid.module.mjs +4 -4
  226. package/esm2020/lib/modules/material.module.mjs +4 -4
  227. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  228. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  229. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  230. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  231. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  232. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  233. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  234. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  235. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  236. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  237. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  238. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  239. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +4 -4
  240. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  241. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  242. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  243. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  244. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  245. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  246. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  247. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  248. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  249. package/esm2020/lib/options/options.component.mjs +3 -3
  250. package/esm2020/lib/options/options.service.mjs +3 -3
  251. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  252. package/esm2020/lib/reports/cube/documents.component.mjs +40 -0
  253. package/esm2020/lib/reports/cube/grid-documents.component.mjs +6 -14
  254. package/esm2020/lib/reports/cube/table-documents.component.mjs +6 -14
  255. package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
  256. package/esm2020/lib/reports/cube/usage-base.mjs +4 -7
  257. package/esm2020/lib/reports/cube/usage-chart.component.mjs +12 -19
  258. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +10 -14
  259. package/esm2020/lib/reports/cube/usage.component.mjs +40 -0
  260. package/esm2020/lib/reports/report-ref.mjs +3 -3
  261. package/esm2020/lib/reports/report-viewer.component.mjs +5 -5
  262. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  263. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  264. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  265. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  266. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  267. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  268. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  269. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  270. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  271. package/esm2020/lib/shared.module.mjs +20 -17
  272. package/esm2020/lib/system.module.mjs +4 -4
  273. package/esm2020/lib/views/cube/chart.component.mjs +3 -3
  274. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  275. package/esm2020/lib/views/cube/explore.component.mjs +3 -3
  276. package/esm2020/lib/views/cube/matrix.component.mjs +3 -3
  277. package/esm2020/lib/views/cube/parallel.component.mjs +3 -3
  278. package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
  279. package/esm2020/lib/views/cube/sum.component.mjs +3 -3
  280. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  281. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  282. package/esm2020/lib/views/view-item.component.mjs +3 -3
  283. package/esm2020/lib/views/views.component.mjs +3 -3
  284. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  285. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  286. package/esm2020/public-api.mjs +3 -3
  287. package/fesm2015/bizdoc-core.mjs +19937 -19834
  288. package/fesm2015/bizdoc-core.mjs.map +1 -1
  289. package/fesm2020/bizdoc-core.mjs +10598 -10495
  290. package/fesm2020/bizdoc-core.mjs.map +1 -1
  291. package/lib/chat/conversation.component.d.ts +1 -1
  292. package/lib/compose/comments/comments.component.d.ts +2 -2
  293. package/lib/compose/form.component.d.ts +8 -4
  294. package/lib/core/hub.service.d.ts +21 -16
  295. package/lib/core/layout/file.field.d.ts +14 -0
  296. package/lib/core/mailbox.service.d.ts +2 -1
  297. package/lib/core/models.d.ts +2 -1
  298. package/lib/core/translations.d.ts +4 -0
  299. package/lib/cube/grid/spreadsheet.component.d.ts +2 -1
  300. package/lib/notifications/types/cube-anomaly.notification.d.ts +1 -0
  301. package/lib/reports/cube/documents.component.d.ts +34 -0
  302. package/lib/reports/cube/grid-documents.component.d.ts +4 -21
  303. package/lib/reports/cube/table-documents.component.d.ts +4 -20
  304. package/lib/reports/cube/usage-args.component.d.ts +2 -2
  305. package/lib/reports/cube/usage-base.d.ts +9 -9
  306. package/lib/reports/cube/usage-chart.component.d.ts +4 -8
  307. package/lib/reports/cube/usage-pivot.component.d.ts +2 -6
  308. package/lib/reports/cube/usage.component.d.ts +16 -0
  309. package/lib/shared.module.d.ts +179 -176
  310. package/package.json +15 -15
  311. package/public-api.d.ts +2 -2
@@ -1,13 +1,11 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component } from "@angular/core";
2
+ import { getCurrencySymbol, getLocaleNumberFormat, NumberFormatStyle } from "@angular/common";
3
3
  import { Observable, forkJoin } from "rxjs";
4
4
  import { tap, takeUntil, map } from "rxjs/operators";
5
5
  import { PivotView } from "@syncfusion/ej2-angular-pivotview";
6
- import { BizDoc } from "../../core/decorators";
6
+ import { Workbook } from '@syncfusion/ej2-excel-export';
7
7
  import { UsageReportBase } from "./usage-base";
8
8
  import { FONT_FAMILY } from "../../core/colors";
9
- import { Workbook } from '@syncfusion/ej2-excel-export';
10
- import { getCurrencySymbol, getLocaleNumberFormat, NumberFormatStyle } from "@angular/common";
11
9
  import * as i0 from "@angular/core";
12
10
  import * as i1 from "../report-ref";
13
11
  import * as i2 from "../../core/datasource.service";
@@ -20,7 +18,7 @@ import * as i8 from "../../core/translate.service";
20
18
  /**
21
19
  * cube usage
22
20
  * */
23
- let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
21
+ export class UsageChartComponent extends UsageReportBase {
24
22
  // ctor
25
23
  constructor(reportRef, type, service, session, router, sb, _elementRef, dir, translate) {
26
24
  super(reportRef, type, service, session, router, sb, dir, translate);
@@ -146,15 +144,16 @@ let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
146
144
  * @param result
147
145
  */
148
146
  onData(result) {
147
+ this._data = result;
149
148
  this._decorate(result).subscribe(r => {
150
- this._data = this.dataSourceSettings.dataSource = r;
149
+ this.dataSourceSettings.dataSource = r;
151
150
  this._draw();
152
151
  }, () => this._sb.error());
153
152
  }
154
153
  _draw() {
155
154
  this.pivot && this.pivot.destroy();
156
155
  this.pivot = new PivotView({
157
- width: this.width,
156
+ width: '100%',
158
157
  height: '100%',
159
158
  enableRtl: this.enableRtl,
160
159
  dataBound: this.dataBound.bind(this),
@@ -170,7 +169,7 @@ let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
170
169
  onResize() {
171
170
  if (this.pivot && this.pivot.chart) {
172
171
  //this.pivot.chart.height = this.height;
173
- this.pivot.chart.width = this.width;
172
+ //this.pivot.chart.width = this.width;
174
173
  this.pivot.chart.chartResize();
175
174
  }
176
175
  }
@@ -338,16 +337,10 @@ let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
338
337
  this.pivot && this.pivot.destroy();
339
338
  super.ngOnDestroy();
340
339
  }
341
- };
342
- UsageChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UsageChartComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i0.ElementRef }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
343
- UsageChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: UsageChartComponent, selector: "ng-component", host: { properties: { "id": "id", "dir": "dir" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
344
- UsageChartComponent = __decorate([
345
- BizDoc({
346
- selector: 'bizdoc-chart-usage'
347
- })
348
- ], UsageChartComponent);
349
- export { UsageChartComponent };
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UsageChartComponent, decorators: [{
340
+ }
341
+ UsageChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: UsageChartComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i0.ElementRef }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
342
+ UsageChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: UsageChartComponent, selector: "ng-component", host: { properties: { "id": "id", "dir": "dir" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: UsageChartComponent, decorators: [{
351
344
  type: Component,
352
345
  args: [{
353
346
  template: '',
@@ -357,4 +350,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
357
350
  }
358
351
  }]
359
352
  }], ctorParameters: function () { return [{ type: i1.ReportRef }, { type: i2.DatasourceService }, { type: i3.CubeService }, { type: i4.SessionService }, { type: i5.RouterImpl }, { type: i6.PromptService }, { type: i0.ElementRef }, { type: i7.Directionality }, { type: i8.TranslateService }]; } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVDLFNBQVMsRUFBZSxNQUFNLG1DQUFtQyxDQUFDO0FBSWhILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU0vQyxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSXhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTlGOztLQUVLO0lBWUcsbUJBQW1CLFNBQW5CLG1CQUFvQixTQUFRLGVBQXdCO0lBUTFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQUUsSUFBdUIsRUFBRSxPQUFvQixFQUFFLE9BQXVCLEVBQy9HLE1BQWtCLEVBQ2xCLEVBQWlCLEVBQ1QsV0FBdUIsRUFDL0IsR0FBbUIsRUFBRSxTQUEyQjtRQUNoRCxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFDN0MsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUhk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QUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVLENBQUMsS0FBYTtRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDekQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YsQ0FBQTtnSEF2Vk8sbUJBQW1CO29HQUFuQixtQkFBbUIsK0hBVmYsRUFBRTtBQVVOLG1CQUFtQjtJQUoxQixNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsb0JBQW9CO0tBQy9CLENBQUM7R0FFTSxtQkFBbUIsQ0F1VjFCO1NBdlZPLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQVgxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsSUFBSTt3QkFDWixPQUFPLEVBQUUsS0FBSztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAsIHRha2VVbnRpbCwgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IENoYXJ0U2VyaWVzVHlwZSwgRGlzcGxheU9wdGlvbk1vZGVsLCBQaXZvdFZpZXcsIEV4Y2VsRXhwb3J0IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlU2V0dGluZ3NNb2RlbCwgU29ydE1vZGVsLCBGaWVsZE9wdGlvbnNNb2RlbCwgRm9ybWF0U2V0dGluZ3NNb2RlbCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvZGF0YXNvdXJjZXNldHRpbmdzLW1vZGVsXCI7XHJcbmltcG9ydCB7IENoYXJ0U2V0dGluZ3NNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9jaGFydHNldHRpbmdzLW1vZGVsJztcclxuaW1wb3J0IHsgQ2hhcnQsIElQb2ludEV2ZW50QXJncyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlT3B0aW9ucywgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZGUgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tIFwiLi4vLi4vY29yZS9jb2xvcnNcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi8uLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBXb3JrYm9vayB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQnO1xyXG5pbXBvcnQgeyBXb3Jrc2hlZXQgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy93b3Jrc2hlZXQnO1xyXG5pbXBvcnQgeyBSb3cgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9yb3cnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9jb2x1bW4nO1xyXG5pbXBvcnQgeyBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LCBOdW1iZXJGb3JtYXRTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8qKlxyXG4gKiBjdWJlIHVzYWdlXHJcbiAqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2Rpcl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY2hhcnQtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IGRpciA9IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uO1xyXG4gIHBpdm90OiBQaXZvdFZpZXc7XHJcbiAgZGF0YVNvdXJjZVNldHRpbmdzOiBEYXRhU291cmNlU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBkaXNwbGF5T3B0aW9uOiBEaXNwbGF5T3B0aW9uTW9kZWwgPSB7XHJcbiAgICB2aWV3OiAnQ2hhcnQnXHJcbiAgfTtcclxuICBjaGFydFNldHRpbmdzOiBDaGFydFNldHRpbmdzTW9kZWw7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LCB0eXBlOiBEYXRhc291cmNlU2VydmljZSwgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgZGlyOiBEaXJlY3Rpb25hbGl0eSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlcixcclxuICAgICAgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy5jaGFydFNldHRpbmdzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MucGFsZXR0ZXMgPSB0aGlzLl9wYWxldHRlcygpO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgY2hhcnRUeXBlIH0gPSB0aGlzLl9yZXBvcnRSZWYub3B0aW9ucztcclxuICAgIGNvbnN0IGxpbmUgPSBjaGFydFR5cGUgPT09ICdMaW5lJyB8fCBjaGFydFR5cGUgPT09ICdTcGxpbmUnO1xyXG4gICAgdGhpcy5jaGFydFNldHRpbmdzID0ge1xyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgICAgICBtb2RlOiAnWFknLFxyXG4gICAgICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBjcm9zc2hhaXI6IHtcclxuICAgICAgICBlbmFibGU6IGxpbmUsXHJcbiAgICAgICAgbGluZToge1xyXG4gICAgICAgICAgd2lkdGg6IDFcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNoYXJ0U2VyaWVzOiB7XHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMuX3BhbGV0dGVzKCksXHJcbiAgICAgICAgdHlwZTogY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIC8vd2lkdGg6IDIsXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbWFya2VyOiB7IGhlaWdodDogMTAsIHdpZHRoOiAxMCwgc2hhcGU6ICdQZW50YWdvbicsIHZpc2libGU6IGxpbmUgfSxcclxuICAgICAgfSxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjaGFydEFyZWE6IHtcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aGVtZTogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICBsZWdlbmRTZXR0aW5nczoge1xyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZVxyXG4gICAgICB9LFxyXG4gICAgICB0b29sdGlwOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHN1YlRpdGxlU3R5bGU6IHtcclxuICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICB9LFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyb3NzaGFpclRvb2x0aXA6IHsgZW5hYmxlOiBsaW5lIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGZvcm1hdFNldHRpbmdzOiBGb3JtYXRTZXR0aW5nc01vZGVsW10gPSBbe1xyXG4gICAgICBuYW1lOiAndmFsdWUnLCBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzLFxyXG4gICAgICAvL21pbmltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfV07XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyA9IHtcclxuICAgICAgY29sdW1uczogW3tcclxuICAgICAgICBuYW1lOiAndHlwZSdcclxuICAgICAgfV0sXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgICAgICBjYXB0aW9uOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc29ydFNldHRpbmdzOiB0aGlzLl9zZXJpZXMubWFwKHMgPT4geyByZXR1cm4geyBuYW1lOiBgXyR7cy5uYW1lfWAgfSBhcyBTb3J0TW9kZWwgfSksXHJcbiAgICAgIGV4cGFuZEFsbDogdGhpcy5fY29sbGFwc2UgfHwgZmFsc2UsXHJcbiAgICAgIGZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBkYXRhU291cmNlOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFt0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpXS5cclxuICAgICAgY29uY2F0KHRoaXMuX2luZGljZXMubWFwKChfLCBpKSA9PlxyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgzMDAgKyAzMDAgKiBpIGFzIE1hdGVyaWFsTW9kZSkpKTtcclxuICB9XHJcblxyXG4gIGRhdGFCb3VuZChhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGl2b3QuY2hhcnQucG9pbnRDbGljayA9IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgb25EYXRhKHJlc3VsdDogSXRlbVtdKSB7XHJcbiAgICB0aGlzLl9kZWNvcmF0ZShyZXN1bHQpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLmRhdGFTb3VyY2UgPSByIGFzIGFueTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCA9IG5ldyBQaXZvdFZpZXcoe1xyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIGRhdGFCb3VuZDogdGhpcy5kYXRhQm91bmQuYmluZCh0aGlzKSxcclxuICAgICAgY2hhcnRTZXR0aW5nczogdGhpcy5jaGFydFNldHRpbmdzLFxyXG4gICAgICBkaXNwbGF5T3B0aW9uOiB0aGlzLmRpc3BsYXlPcHRpb24sXHJcbiAgICAgIGRhdGFTb3VyY2VTZXR0aW5nczogdGhpcy5kYXRhU291cmNlU2V0dGluZ3MsXHJcbiAgICAgIHNwaW5uZXJUZW1wbGF0ZTogJycsXHJcbiAgICAgIGFsbG93Q29uZGl0aW9uYWxGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBhbGxvd0V4Y2VsRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmNoYXJ0KSB7XHJcbiAgICAgIC8vdGhpcy5waXZvdC5jaGFydC5oZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgdGhpcy5waXZvdC5jaGFydC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkV4cG9ydCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlLCAnbmFycm93JykgK1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpXHJcbiAgICAgIDogZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpLFxyXG4gICAgICBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX29wdGlvbnMuc2VyaWVzLmluZGV4T2YoYS5uYW1lKSA+IC0xKSxcclxuICAgICAgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAxLCB2YWx1ZTogYy50aXRsZSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy5fY3ViZS55QXhpcyA/IHRoaXMuX2N1YmUueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PlxyXG4gICAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIGkgKyAyLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgICB0aGlzLl9kYXRhLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHZhbHVlOiByWyd2YWx1ZSddXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlOiByW3gubmFtZV1cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdylcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAgICwgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgZGF0YSBzb3VyY2UgZGVzY3JpcHRpb24gdG8gaXRlbSBrZXlzLCBhbmQgbm9ybWFsaXplcyBpbmRpY2VzLlxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShyZXN1bHQ6IEl0ZW1bXSk6IE9ic2VydmFibGU8e31bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1thLm5hbWVdIGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCB2YWwpLlxyXG4gICAgICAgICAgICBwaXBlKHRhcCgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSB2YWw7XHJcbiAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSB2IHx8IHZhbDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRhdGE6IHt9W10gPSBbXTtcclxuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKGJhc2VSb3cgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3cudXNhZ2U7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93W2kubmFtZV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdHlwZTogaS50aXRsZSwgdmFsdWUgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pKS5cclxuICAgICAgICAgIHN1YnNjcmliZShyID0+XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIG9ic2VydmUubmV4dChbXSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4LCB5VmFsdWUgfSwgc2VyaWVzOiB7IG5hbWU6IHRpdGxlIH0gfSA9IGU7XHJcbiAgICBpZiAoeVZhbHVlID09PSAwKSB7XHJcbiAgICAgIGUuY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55OyB9ID0gdGhpcy5fYXhlcyh4IGFzIHN0cmluZyk7XHJcbiAgICBzdXBlci5icm93c2UoYXhlcywgdGl0bGUgPT09IHRoaXMuX3lUaXRsZSA/IG51bGwgOiB0aGlzLl9pbmRleE5hbWUodGl0bGUpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV2ZXJzZSBlbmdpbmVlcmluZyBheGVzIGZyb20gc2VyaWVzIGxhYmVsXHJcbiAgICogQHBhcmFtIGxhYmVsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXhlcyhsYWJlbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTsgfSA9IHt9O1xyXG4gICAgbGFiZWwuc3BsaXQoJyAtICcpLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3Mucm93c1tpXS5uYW1lLFxyXG4gICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0gPT09IHgpO1xyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGluZGV4IG5hbWUgZnJvbSB0aXRsZVxyXG4gICAqIEBwYXJhbSB0aXRsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2luZGV4TmFtZSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faW5kaWNlcy5maW5kKGkgPT4gaS50aXRsZSA9PT0gdGl0bGUpO1xyXG4gICAgcmV0dXJuIGluZGV4Lm5hbWU7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBPcHRpb25zIGV4dGVuZHMgVXNhZ2VPcHRpb25zIHtcclxuICBjaGFydFR5cGU/OiBDaGFydFNlcmllc1R5cGU7XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiJdfQ==
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBc0IsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSXhELE9BQU8sRUFBaUIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBUTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQUdoRDs7S0FFSztBQVFMLE1BQU0sT0FDRSxtQkFBb0IsU0FBUSxlQUFlO0lBUWpELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQUUsSUFBdUIsRUFBRSxPQUFvQixFQUFFLE9BQXVCLEVBQy9HLE1BQWtCLEVBQ2xCLEVBQWlCLEVBQ1QsV0FBdUIsRUFDL0IsR0FBbUIsRUFDbkIsU0FBMkI7UUFDM0IsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQzdDLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFKZCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQVh4QixRQUFHLEdBQUcsSUFBSSxDQUFD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LENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7Z0hBeFZLLG1CQUFtQjtvR0FBbkIsbUJBQW1CLCtIQVBmLEVBQUU7MkZBT04sbUJBQW1CO2tCQVIxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsSUFBSTt3QkFDWixPQUFPLEVBQUUsS0FBSztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgZ2V0Q3VycmVuY3lTeW1ib2wsIGdldExvY2FsZU51bWJlckZvcm1hdCwgTnVtYmVyRm9ybWF0U3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBEaXNwbGF5T3B0aW9uTW9kZWwsIFBpdm90VmlldyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIFNvcnRNb2RlbCwgRmllbGRPcHRpb25zTW9kZWwsIEZvcm1hdFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2RhdGFzb3VyY2VzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IFdvcmtib29rIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IFdvcmtzaGVldCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL3dvcmtzaGVldCc7XHJcbmltcG9ydCB7IFJvdyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL3Jvdyc7XHJcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NvbHVtbic7XHJcbmltcG9ydCB7IEl0ZW0sIE9wdGlvbnMsIFVzYWdlUmVwb3J0QmFzZSB9IGZyb20gXCIuL3VzYWdlLWJhc2VcIjtcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZGUgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tIFwiLi4vLi4vY29yZS9jb2xvcnNcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi8uLi9jb3JlL3JvdXRlclwiO1xyXG5cclxuLyoqXHJcbiAqIGN1YmUgdXNhZ2VcclxuICogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbaWRdJzogJ2lkJyxcclxuICAgICdbZGlyXSc6ICdkaXInXHJcbiAgfVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBVc2FnZUNoYXJ0Q29tcG9uZW50IGV4dGVuZHMgVXNhZ2VSZXBvcnRCYXNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICByZWFkb25seSBkaXIgPSB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbjtcclxuICBwaXZvdDogUGl2b3RWaWV3O1xyXG4gIGRhdGFTb3VyY2VTZXR0aW5nczogRGF0YVNvdXJjZVNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgZGlzcGxheU9wdGlvbjogRGlzcGxheU9wdGlvbk1vZGVsID0ge1xyXG4gICAgdmlldzogJ0NoYXJ0J1xyXG4gIH07XHJcbiAgY2hhcnRTZXR0aW5nczogQ2hhcnRTZXR0aW5nc01vZGVsO1xyXG4gIC8vIGN0b3JcclxuICBjb25zdHJ1Y3RvcihyZXBvcnRSZWY6IFJlcG9ydFJlZjxPcHRpb25zPiwgdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLCBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHJvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHNiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIGRpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHJlcG9ydFJlZiwgdHlwZSwgc2VydmljZSwgc2Vzc2lvbiwgcm91dGVyLFxyXG4gICAgICBzYiwgZGlyLCB0cmFuc2xhdGUpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy5wYWxldHRlcyA9IHRoaXMuX3BhbGV0dGVzKCk7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZGVmYXVsdHMoKTtcclxuICB9XHJcbiAgLyoqIHNldCBkZWZhdWx0cyAqL1xyXG4gIHByaXZhdGUgX2RlZmF1bHRzKCkge1xyXG4gICAgY29uc3QgeyBjaGFydFR5cGUgfSA9IHRoaXMuX3JlcG9ydFJlZi5vcHRpb25zO1xyXG4gICAgY29uc3QgbGluZSA9IGNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IGNoYXJ0VHlwZSA9PT0gJ1NwbGluZSc7XHJcbiAgICB0aGlzLmNoYXJ0U2V0dGluZ3MgPSB7XHJcbiAgICAgIHBvaW50Q2xpY2s6IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICB6b29tU2V0dGluZ3M6IHtcclxuICAgICAgICB0b29sYmFySXRlbXM6IFtdLFxyXG4gICAgICAgIG1vZGU6ICdYWScsXHJcbiAgICAgICAgZW5hYmxlTW91c2VXaGVlbFpvb21pbmc6IHRydWUsXHJcbiAgICAgICAgZW5hYmxlUGluY2hab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVNlbGVjdGlvblpvb21pbmc6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGNyb3NzaGFpcjoge1xyXG4gICAgICAgIGVuYWJsZTogbGluZSxcclxuICAgICAgICBsaW5lOiB7XHJcbiAgICAgICAgICB3aWR0aDogMVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgY2hhcnRTZXJpZXM6IHtcclxuICAgICAgICBwYWxldHRlczogdGhpcy5fcGFsZXR0ZXMoKSxcclxuICAgICAgICB0eXBlOiBjaGFydFR5cGUgfHwgJ0NvbHVtbicsXHJcbiAgICAgICAgLy93aWR0aDogMixcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfSxcclxuICAgICAgICBtYXJrZXI6IHsgaGVpZ2h0OiAxMCwgd2lkdGg6IDEwLCBzaGFwZTogJ1BlbnRhZ29uJywgdmlzaWJsZTogbGluZSB9LFxyXG4gICAgICB9LFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGNoYXJ0QXJlYToge1xyXG4gICAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoZW1lOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCcsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHByaW1hcnlYQXhpczoge1xyXG4gICAgICAgIHRpdGxlU3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXNJbnZlcnNlZDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHRvb2x0aXA6IHtcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgfSxcclxuICAgICAgc3ViVGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHByaW1hcnlZQXhpczoge1xyXG4gICAgICAgIHRpdGxlU3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3Jvc3NoYWlyVG9vbHRpcDogeyBlbmFibGU6IGxpbmUgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZm9ybWF0U2V0dGluZ3M6IEZvcm1hdFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIG5hbWU6ICd2YWx1ZScsIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIC8vbWluaW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLl9mcmFjdGlvbkRpZ2l0cyxcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlXHJcbiAgICB9XTtcclxuICAgIGNvbnN0IHJvd3MgPSB0aGlzLl9zZXJpZXMubWFwKGEgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGEubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBhLnRpdGxlXHJcbiAgICAgIH0gYXMgRmllbGRPcHRpb25zTW9kZWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzID0ge1xyXG4gICAgICBjb2x1bW5zOiBbe1xyXG4gICAgICAgIG5hbWU6ICd0eXBlJ1xyXG4gICAgICB9XSxcclxuICAgICAgcm93cyxcclxuICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ3ZhbHVlJyxcclxuICAgICAgICAgIGNhcHRpb246IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJylcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIGVuYWJsZVNvcnRpbmc6IGZhbHNlLFxyXG4gICAgICBzb3J0U2V0dGluZ3M6IHRoaXMuX3Nlcmllcy5tYXAocyA9PiB7IHJldHVybiB7IG5hbWU6IGBfJHtzLm5hbWV9YCB9IGFzIFNvcnRNb2RlbCB9KSxcclxuICAgICAgZXhwYW5kQWxsOiB0aGlzLl9jb2xsYXBzZSB8fCBmYWxzZSxcclxuICAgICAgZm9ybWF0U2V0dGluZ3MsXHJcbiAgICAgIGRhdGFTb3VyY2U6IFtdXHJcbiAgICB9O1xyXG4gIH1cclxuICBwcml2YXRlIF9wYWxldHRlcygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gW3RoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KCldLlxyXG4gICAgICBjb25jYXQodGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KDMwMCArIDMwMCAqIGkgYXMgTWF0ZXJpYWxNb2RlKSkpO1xyXG4gIH1cclxuXHJcbiAgZGF0YUJvdW5kKGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5waXZvdC5jaGFydC5wb2ludENsaWNrID0gdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBvbkRhdGEocmVzdWx0OiBJdGVtW10pIHtcclxuICAgIHRoaXMuX2RhdGEgPSByZXN1bHQ7XHJcbiAgICB0aGlzLl9kZWNvcmF0ZShyZXN1bHQpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlU2V0dGluZ3MuZGF0YVNvdXJjZSA9IHIgYXMgYW55O1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9LCAoKSA9PiB0aGlzLl9zYi5lcnJvcigpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMucGl2b3QgJiYgdGhpcy5waXZvdC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnBpdm90ID0gbmV3IFBpdm90Vmlldyh7XHJcbiAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgICBlbmFibGVSdGw6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgICBkYXRhQm91bmQ6IHRoaXMuZGF0YUJvdW5kLmJpbmQodGhpcyksXHJcbiAgICAgIGNoYXJ0U2V0dGluZ3M6IHRoaXMuY2hhcnRTZXR0aW5ncyxcclxuICAgICAgZGlzcGxheU9wdGlvbjogdGhpcy5kaXNwbGF5T3B0aW9uLFxyXG4gICAgICBkYXRhU291cmNlU2V0dGluZ3M6IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLFxyXG4gICAgICBzcGlubmVyVGVtcGxhdGU6ICcnLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZSxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMucGl2b3QgJiYgdGhpcy5waXZvdC5jaGFydCkge1xyXG4gICAgICAvL3RoaXMucGl2b3QuY2hhcnQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICAgIC8vdGhpcy5waXZvdC5jaGFydC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkV4cG9ydCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlLCAnbmFycm93JykgK1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpXHJcbiAgICAgIDogZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpLFxyXG4gICAgICBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX29wdGlvbnMuc2VyaWVzLmluZGV4T2YoYS5uYW1lKSA+IC0xKSxcclxuICAgICAgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAxLCB2YWx1ZTogYy50aXRsZSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy5fY3ViZS55QXhpcyA/IHRoaXMuX2N1YmUueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PlxyXG4gICAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIGkgKyAyLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgICB0aGlzLl9kYXRhLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHZhbHVlOiByWyd2YWx1ZSddXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlOiByW3gubmFtZV1cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdylcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAgICwgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgZGF0YSBzb3VyY2UgZGVzY3JpcHRpb24gdG8gaXRlbSBrZXlzLCBhbmQgbm9ybWFsaXplcyBpbmRpY2VzLlxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShyZXN1bHQ6IEl0ZW1bXSk6IE9ic2VydmFibGU8e31bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1thLm5hbWVdIGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCB2YWwpLlxyXG4gICAgICAgICAgICBwaXBlKHRhcCgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSB2YWw7XHJcbiAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSB2IHx8IHZhbDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRhdGE6IHt9W10gPSBbXTtcclxuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKGJhc2VSb3cgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3cudXNhZ2U7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93W2kubmFtZV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdHlwZTogaS50aXRsZSwgdmFsdWUgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pKS5cclxuICAgICAgICAgIHN1YnNjcmliZShyID0+XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIG9ic2VydmUubmV4dChbXSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4LCB5VmFsdWUgfSwgc2VyaWVzOiB7IG5hbWU6IHRpdGxlIH0gfSA9IGU7XHJcbiAgICBpZiAoeVZhbHVlID09PSAwKSB7XHJcbiAgICAgIGUuY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55OyB9ID0gdGhpcy5fYXhlcyh4IGFzIHN0cmluZyk7XHJcbiAgICBzdXBlci5icm93c2UoYXhlcywgdGl0bGUgPT09IHRoaXMuX3lUaXRsZSA/IG51bGwgOiB0aGlzLl9pbmRleE5hbWUodGl0bGUpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV2ZXJzZSBlbmdpbmVlcmluZyBheGVzIGZyb20gc2VyaWVzIGxhYmVsXHJcbiAgICogQHBhcmFtIGxhYmVsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXhlcyhsYWJlbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTsgfSA9IHt9O1xyXG4gICAgbGFiZWwuc3BsaXQoJyAtICcpLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3Mucm93c1tpXS5uYW1lLFxyXG4gICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0gPT09IHgpO1xyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGluZGV4IG5hbWUgZnJvbSB0aXRsZVxyXG4gICAqIEBwYXJhbSB0aXRsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2luZGV4TmFtZSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faW5kaWNlcy5maW5kKGkgPT4gaS50aXRsZSA9PT0gdGl0bGUpO1xyXG4gICAgcmV0dXJuIGluZGV4Lm5hbWU7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBDZWxsIHsgfVxyXG4iXX0=
@@ -1,11 +1,9 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, ViewChild } from "@angular/core";
3
2
  import { forkJoin, of } from "rxjs";
4
3
  import { tap, takeUntil } from "rxjs/operators";
5
4
  import { PivotViewComponent } from "@syncfusion/ej2-angular-pivotview";
6
5
  import { ExcelExport, PivotView } from "@syncfusion/ej2-angular-pivotview";
7
6
  import { Internationalization } from "@syncfusion/ej2-base";
8
- import { BizDoc } from "../../core/decorators";
9
7
  import { getWarn, isArray } from "../../core/functions";
10
8
  import { UsageReportBase } from "./usage-base";
11
9
  import * as i0 from "@angular/core";
@@ -22,7 +20,7 @@ const PIVOT_HEADER_DELIMITER = '|';
22
20
  /**
23
21
  * cube usage
24
22
  * */
25
- let UsagePivotComponent = class UsagePivotComponent extends UsageReportBase {
23
+ export class UsagePivotComponent extends UsageReportBase {
26
24
  // ctor
27
25
  constructor(reportRef, type, _elementRef, service, session, router, sb, dir, translate) {
28
26
  super(reportRef, type, service, session, router, sb, dir, translate);
@@ -145,6 +143,10 @@ let UsagePivotComponent = class UsagePivotComponent extends UsageReportBase {
145
143
  evt.value = 0;
146
144
  }
147
145
  onResize() {
146
+ if (this.pivot) {
147
+ this.pivot.width = this.width;
148
+ this.pivot.onWindowResize();
149
+ }
148
150
  }
149
151
  onExport(name) {
150
152
  this.pivot.excelExport({
@@ -220,16 +222,10 @@ let UsagePivotComponent = class UsagePivotComponent extends UsageReportBase {
220
222
  });
221
223
  return axes;
222
224
  }
223
- };
224
- UsagePivotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UsagePivotComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i0.ElementRef }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
225
- UsagePivotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: UsagePivotComponent, selector: "ng-component", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "pivot", first: true, predicate: PivotViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
226
- UsagePivotComponent = __decorate([
227
- BizDoc({
228
- selector: 'bizdoc-cube-usage'
229
- })
230
- ], UsagePivotComponent);
231
- export { UsagePivotComponent };
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UsagePivotComponent, decorators: [{
225
+ }
226
+ UsagePivotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: UsagePivotComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i0.ElementRef }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
227
+ UsagePivotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: UsagePivotComponent, selector: "ng-component", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "pivot", first: true, predicate: PivotViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: UsagePivotComponent, decorators: [{
233
229
  type: Component,
234
230
  args: [{
235
231
  template: '',
@@ -240,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
240
236
  type: ViewChild,
241
237
  args: [PivotViewComponent]
242
238
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtcGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtcGl2b3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQWMsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUF1RyxNQUFNLG1DQUFtQyxDQUFDO0FBS2hMLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBc0IsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7O0FBR25FLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUIsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkM7O0tBRUs7SUFVRyxtQkFBbUIsU0FBbkIsbUJBQW9CLFNBQVEsZUFBd0I7SUF3QjFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQ3ZDLElBQXVCLEVBQ2YsV0FBdUIsRUFDL0IsT0FBb0IsRUFBRSxPQUF1QixFQUM3QyxNQUFrQixFQUNsQixFQUFpQixFQUNqQixHQUFtQixFQUNuQixTQUEyQjtRQUMzQixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBTjdELGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBckJ4QixpQkFBWSxHQUFzQjtZQUN6QyxTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7UUFDTyw4QkFBeUIsR0FBcUMsQ0FBQztnQkFDdEUsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLE1BQU0sRUFBRSxDQUFDO2dCQUNULE9BQU8sRUFBRSxPQUFPO2dCQUNoQixnQkFBZ0IsRUFBRSxJQUFJO2dCQUN0QixLQUFLLEVBQUU7b0JBQ0wsS0FBSyxFQUFFLE9BQU8sRUFBRTtpQkFDakI7YUFDRixDQUFDLENBQUM7UUFDTSx3QkFBbUIsR0FBNkI7WUFDdkQsY0FBYyxFQUFFLEtBQUs7WUFDckIsY0FBYyxFQUFFLEtBQUs7WUFDckIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDO1FBQ2UsVUFBSyxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFXeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELG1CQUFtQjtJQUNYLFNBQVM7UUFDZixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2SyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFO1lBQ3ZELE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzNCLHFCQUFxQixFQUFFLElBQUksQ0FBQyxlQUFlO1NBQzVDLENBQUMsQ0FBQztRQUNILE1BQU0sY0FBYyxHQUEwQixDQUFDO2dCQUM3QyxJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUNyQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZUFBZTthQUM1QyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBd0I7WUFDbEM7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixlQUFlLEVBQUUsSUFBSTthQUN0QjtTQUNGLENBQUM7UUFDRixNQUFNLG1CQUFtQixHQUErQixDQUFDO2dCQUN2RCxVQUFVLEVBQUUsV0FBVztnQkFDdkIsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLE9BQU87YUFDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7b0JBQ1osT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLO29CQUNoQixlQUFlLEVBQUUsSUFBSTtpQkFDdEIsQ0FBQyxDQUFDO2dCQUNILG1CQUFtQixDQUFDLElBQUksQ0FBQztvQkFDdkIsVUFBVSxFQUFFLFdBQVc7b0JBQ3ZCLE1BQU0sRUFBRSxDQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSTtpQkFDaEIsQ0FBQyxDQUFDO2dCQUNILGNBQWMsQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtvQkFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHO29CQUNyQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZUFBZTtpQkFDNUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsbUJBQW1CLEVBQUUsbUJBQW1CO1NBQ3pDLENBQUE7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQyxPQUFPO2dCQUNMLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDWixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2hCLGVBQWUsRUFBRSxJQUFJO2FBQ0QsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSztnQkFDaEIsZUFBZSxFQUFFLElBQUk7YUFDRCxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3hCLE9BQU87WUFDUCxJQUFJO1lBQ0osTUFBTTtZQUNOLHlCQUF5QixFQUFFLElBQUksQ0FBQyx5QkFBeUI7WUFDekQscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtZQUNsRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLO1lBQ2xDLHFCQUFxQixFQUFFLElBQUk7WUFDM0IscUJBQXFCLEVBQUUsS0FBSztZQUM1QixjQUFjO1lBQ2QsVUFBVSxFQUFFLEVBQUU7WUFDZCxpQkFBaUIsRUFBRSxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRTtZQUM5RCxhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUNEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsTUFBYSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxHQUFnQztRQUNqRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLHNCQUFzQjtZQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxHQUFHLElBQUksT0FBTztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssU0FBUyxDQUFDLE1BQWM7UUFDOUIsTUFBTSxXQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFXLENBQUM7Z0JBQ25DLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDekIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDNUYsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ08sS0FBSztRQUNYLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3pCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixXQUFXLEVBQUUsS0FBSztZQUNsQiwwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLHFCQUFxQixFQUFFLElBQUk7WUFDM0IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUM3QyxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNwQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsR0FBNEI7UUFDcEMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQVcsQ0FBQztRQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ssVUFBVSxDQUFDLGFBQXFCLEVBQUUsVUFBa0I7UUFDMUQsTUFBTSxJQUFJLEdBQStCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLGFBQWEsS0FBSyxFQUFFO1lBQ3RCLGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDcEQsMkJBQTJCO2dCQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzdELHdCQUF3QjtnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxVQUFVLEtBQUssRUFBRTtZQUNuQixVQUFVLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDakQsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFBO2dIQWxOTyxtQkFBbUI7b0dBQW5CLG1CQUFtQixpSUFDZCxrQkFBa0IsdUVBVG5CLEVBQUU7QUFRTixtQkFBbUI7SUFKMUIsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRU0sbUJBQW1CLENBa04xQjtTQWxOTyxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFUMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWiw0Q0FBNEM7b0JBQzVDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7aUJBQ3ZCO2lVQU1nQyxLQUFLO3NCQUFuQyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUGl2b3RWaWV3Q29tcG9uZW50IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBFeGNlbEV4cG9ydCwgUGl2b3RWaWV3LCBHcm91cGluZ0JhclNldHRpbmdzTW9kZWwsIEh5cGVyQ2VsbENsaWNrRXZlbnRBcmdzLCBDb25kaXRpb25hbFNldHRpbmdzTW9kZWwsIEh5cGVybGlua1NldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IEV4Y2VsUXVlcnlDZWxsSW5mb0V2ZW50QXJncyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItZ3JpZHNcIjtcclxuaW1wb3J0IHsgQ29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIEZpZWxkT3B0aW9uc01vZGVsLCBGb3JtYXRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgR3JpZFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2dyaWRzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbnRlcm5hdGlvbmFsaXphdGlvbiB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IGdldFdhcm4sIGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlT3B0aW9ucywgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5cclxuUGl2b3RWaWV3LkluamVjdChFeGNlbEV4cG9ydCk7XHJcblxyXG5jb25zdCBQSVZPVF9IRUFERVJfREVMSU1JVEVSID0gJ3wnO1xyXG4vKipcclxuICogY3ViZSB1c2FnZVxyXG4gKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgLy90ZW1wbGF0ZVVybDogJ3VzYWdlLXBpdm90LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7ICdbaWRdJzogJ2lkJyB9XHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlUGl2b3RDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4ge1xyXG4gIEBWaWV3Q2hpbGQoUGl2b3RWaWV3Q29tcG9uZW50KSBwaXZvdDogUGl2b3RWaWV3O1xyXG4gIHByaXZhdGUgX2VtcHR5Q2VsbHNUZXh0Q29udGVudDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBDdWJlQXhpc1tdO1xyXG4gIGRhdGFTb3VyY2VTZXR0aW5nczogRGF0YVNvdXJjZVNldHRpbmdzTW9kZWw7XHJcbiAgaHlwZXJsaW5rU2V0dGluZ3M6IEh5cGVybGlua1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgZ3JpZFNldHRpbmdzOiBHcmlkU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIHJvd0hlaWdodDogMzZcclxuICB9O1xyXG4gIHJlYWRvbmx5IGNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3M6IENvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3NNb2RlbFtdID0gW3tcclxuICAgIGNvbmRpdGlvbnM6ICdMZXNzVGhhbicsXHJcbiAgICB2YWx1ZTE6IDAsXHJcbiAgICBtZWFzdXJlOiAndmFsdWUnLFxyXG4gICAgYXBwbHlHcmFuZFRvdGFsczogdHJ1ZSxcclxuICAgIHN0eWxlOiB7XHJcbiAgICAgIGNvbG9yOiBnZXRXYXJuKClcclxuICAgIH1cclxuICB9XTtcclxuICByZWFkb25seSBncm91cGluZ0JhclNldHRpbmdzOiBHcm91cGluZ0JhclNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBzaG93UmVtb3ZlSWNvbjogZmFsc2UsXHJcbiAgICBzaG93RmlsdGVySWNvbjogZmFsc2UsXHJcbiAgICBzaG93VmFsdWVUeXBlSWNvbjogZmFsc2VcclxuICB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LFxyXG4gICAgdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBkaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlciwgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc1swXS5zdHlsZS5jb2xvciA9IGdldFdhcm4oKTtcclxuICAgICAgdGhpcy5waXZvdC5yZWZyZXNoKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgeEF4aXMgfSA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB0aGlzLl94QXhpcyA9IHhBeGlzID8gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IGlzQXJyYXkoeEF4aXMpID8geEF4aXMuaW5kZXhPZihhLm5hbWUpID4gLTEgOiBhLm5hbWUgPT09IHhBeGlzKSA6IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiAhYS5oaWRkZW4pLnNsaWNlKDAsIDIpO1xyXG4gICAgdGhpcy5fZW1wdHlDZWxsc1RleHRDb250ZW50ID0gdGhpcy5faW50bC5mb3JtYXROdW1iZXIoMCwge1xyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZm9ybWF0U2V0dGluZ3M6IEZvcm1hdFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIG5hbWU6ICd1c2FnZScsXHJcbiAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgIH1dO1xyXG4gICAgY29uc3QgdmFsdWVzOiBGaWVsZE9wdGlvbnNNb2RlbFtdID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ3VzYWdlJyxcclxuICAgICAgICBjYXB0aW9uOiB0aGlzLl95VGl0bGUsXHJcbiAgICAgICAgc2hvd05vRGF0YUl0ZW1zOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBjb25kaXRpb25hbFNldHRpbmdzOiBDb25kaXRpb25hbFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIGNvbmRpdGlvbnM6ICdOb3RFcXVhbHMnLFxyXG4gICAgICB2YWx1ZTE6IDAsXHJcbiAgICAgIG1lYXN1cmU6ICd1c2FnZSdcclxuICAgIH1dO1xyXG4gICAgdGhpcy5faW5kaWNlcyAmJlxyXG4gICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgdmFsdWVzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaS5uYW1lLFxyXG4gICAgICAgICAgY2FwdGlvbjogaS50aXRsZSxcclxuICAgICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbmRpdGlvbmFsU2V0dGluZ3MucHVzaCh7XHJcbiAgICAgICAgICBjb25kaXRpb25zOiAnTm90RXF1YWxzJyxcclxuICAgICAgICAgIHZhbHVlMTogMCxcclxuICAgICAgICAgIG1lYXN1cmU6IGkubmFtZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGZvcm1hdFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaS5uYW1lLFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmN1cnJlbmN5Q29kZSA/ICdDJyA6ICdOJyxcclxuICAgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmh5cGVybGlua1NldHRpbmdzID0ge1xyXG4gICAgICBjb25kaXRpb25hbFNldHRpbmdzOiBjb25kaXRpb25hbFNldHRpbmdzXHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5feEF4aXMubWFwKGEgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGEubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBhLnRpdGxlLFxyXG4gICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZSxcclxuICAgICAgICBzaG93Tm9EYXRhSXRlbXM6IHRydWVcclxuICAgICAgfSBhcyBGaWVsZE9wdGlvbnNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlU2V0dGluZ3MgPSB7XHJcbiAgICAgIGNvbHVtbnMsXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlcyxcclxuICAgICAgY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nczogdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBlbXB0eUNlbGxzVGV4dENvbnRlbnQ6IHRoaXMuX2VtcHR5Q2VsbHNUZXh0Q29udGVudCxcclxuICAgICAgZXhwYW5kQWxsOiB0aGlzLl9jb2xsYXBzZSB8fCBmYWxzZSxcclxuICAgICAgc2hvd0NvbHVtbkdyYW5kVG90YWxzOiB0cnVlLFxyXG4gICAgICBhbHdheXNTaG93VmFsdWVIZWFkZXI6IGZhbHNlLFxyXG4gICAgICBmb3JtYXRTZXR0aW5ncyxcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIHZhbHVlU29ydFNldHRpbmdzOiB7IGhlYWRlckRlbGltaXRlcjogUElWT1RfSEVBREVSX0RFTElNSVRFUiB9LFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZVxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIG9uRGF0YShyZXN1bHQ6IEl0ZW1bXSkge1xyXG4gICAgdGhpcy5fZGVjb3JhdGUocmVzdWx0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3MuZGF0YVNvdXJjZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICBlbmdpbmVQb3B1bGF0ZWQoKSB7XHJcbiAgICB0aGlzLnBpdm90LmdyaWQuZXhjZWxRdWVyeUNlbGxJbmZvID0gdGhpcy5leGNlbFF1ZXJ5Q2VsbEluZm8uYmluZCh0aGlzKTtcclxuICB9XHJcbiAgZXhjZWxRdWVyeUNlbGxJbmZvKGV2dDogRXhjZWxRdWVyeUNlbGxJbmZvRXZlbnRBcmdzKSB7XHJcbiAgICBpZiAoZXZ0LnZhbHVlID09PSB0aGlzLl9lbXB0eUNlbGxzVGV4dENvbnRlbnQpIGV2dC52YWx1ZSA9IDA7XHJcbiAgfVxyXG4gIG9uUmVzaXplKCkge1xyXG4gIH1cclxuICBvbkV4cG9ydChuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucGl2b3QuZXhjZWxFeHBvcnQoe1xyXG4gICAgICBmaWxlTmFtZTogYCR7bmFtZX0ueGxzeGBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYWRkcyBkYXRhIHNvdXJjZSBkZXNjcmlwdGlvbiB0byBpdGVtIGtleXMuXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKHJlc3VsdDogSXRlbVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgdGhpcy5feEF4aXMuY29uY2F0KHRoaXMuX3NlcmllcykuZm9yRWFjaChhID0+IHtcclxuICAgICAgICBjb25zdCBheGlzID0gcm93W2EubmFtZV0gYXMgc3RyaW5nO1xyXG4gICAgICAgIHJvd1tgXyR7YS5uYW1lfWBdID0gYXhpcztcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhpcykucGlwZSh0YXAodiA9PiByb3dbYS5uYW1lXSA9IHYgfHwgYXhpcykpO1xyXG4gICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZXMubGVuZ3RoID8gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpIDogb2YoW10pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMucGl2b3QgPSBuZXcgUGl2b3RWaWV3KHtcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgZGF0YVNvdXJjZVNldHRpbmdzOiB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyxcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGVuYWJsZVZhbHVlU29ydGluZzogdHJ1ZSxcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgc2hvd1Rvb2x0aXA6IGZhbHNlLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgYWxsb3dOdW1iZXJGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBncm91cGluZ0JhclNldHRpbmdzOiB0aGlzLmdyb3VwaW5nQmFyU2V0dGluZ3MsXHJcbiAgICAgIGFsbG93Q2FsY3VsYXRlZEZpZWxkOiB0cnVlLFxyXG4gICAgICBzaG93R3JvdXBpbmdCYXI6IHRydWUsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGh5cGVybGlua1NldHRpbmdzOiB0aGlzLmh5cGVybGlua1NldHRpbmdzLFxyXG4gICAgICBncmlkU2V0dGluZ3M6IHRoaXMuZ3JpZFNldHRpbmdzLFxyXG4gICAgICBjZWxsQ2xpY2s6IHRoaXMuY2VsbENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICB9LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICovXHJcbiAgY2VsbENsaWNrKGV2dDogSHlwZXJDZWxsQ2xpY2tFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgY29sdW1uSGVhZGVycywgcm93SGVhZGVycywgYWN0dWFsVGV4dCB9ID0gZXZ0LmRhdGEgYXMgYW55O1xyXG4gICAgY29uc3QgYXhlcyA9IHRoaXMuX3Bpdm90QXhlcyhjb2x1bW5IZWFkZXJzLCByb3dIZWFkZXJzKTtcclxuICAgIHN1cGVyLmJyb3dzZShheGVzLCBhY3R1YWxUZXh0ID09PSAndXNhZ2UnID8gbnVsbCA6IGFjdHVhbFRleHQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGF4ZXMgZnJvbSBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGNvbHVtbkhlYWRlcnNcclxuICAgKiBAcGFyYW0gcm93SGVhZGVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Bpdm90QXhlcyhjb2x1bW5IZWFkZXJzOiBzdHJpbmcsIHJvd0hlYWRlcnM6IHN0cmluZyk6IHsgW2F4aXM6IHN0cmluZ106IHN0cmluZzsgfSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgaWYgKGNvbHVtbkhlYWRlcnMgIT09ICcnKVxyXG4gICAgICBjb2x1bW5IZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKGMsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5jb2x1bW5zW2ldLm5hbWUsXHJcbiAgICAgICAgICAvLyBmaW5kIGFueSByb3cgd2l0aCBoZWFkZXJcclxuICAgICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0udG9TdHJpbmcoKSA9PT0gYyk7XHJcbiAgICAgICAgLy8gdHJhbnNsYXRlIGJhY2sgdG8ga2V5XHJcbiAgICAgICAgYXhlc1tjb2x1bW5dID0gZWxlbWVudCA/IGVsZW1lbnRbYF8ke2NvbHVtbn1gXSA6IGM7XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHJvd0hlYWRlcnMgIT09ICcnKVxyXG4gICAgICByb3dIZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dID09PSByKTtcclxuICAgICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogcjtcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gYXhlcztcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE9wdGlvbnMgZXh0ZW5kcyBVc2FnZU9wdGlvbnMge1xyXG4gIHhBeGlzPzogc3RyaW5nW10gfCBzdHJpbmc7IFxyXG59XHJcbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtcGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtcGl2b3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBYyxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQXVHLE1BQU0sbUNBQW1DLENBQUM7QUFLaEwsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU94RCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQUc5RCxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRTlCLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQ25DOztLQUVLO0FBTUwsTUFBTSxPQUNFLG1CQUFvQixTQUFRLGVBQWU7SUF3QmpELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQ3ZDLElBQXVCLEVBQ2YsV0FBdUIsRUFDL0IsT0FBb0IsRUFBRSxPQUF1QixFQUM3QyxNQUFrQixFQUNsQixFQUFpQixFQUNqQixHQUFtQixFQUNuQixTQUEyQjtRQUMzQixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FB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QUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O2dIQXJOSyxtQkFBbUI7b0dBQW5CLG1CQUFtQixpSUFDZCxrQkFBa0IsdUVBTm5CLEVBQUU7MkZBS04sbUJBQW1CO2tCQU4xQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLDRDQUE0QztvQkFDNUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtpQkFDdkI7aVVBR2dDLEtBQUs7c0JBQW5DLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvYmlkaVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBQaXZvdFZpZXdDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IEV4Y2VsRXhwb3J0LCBQaXZvdFZpZXcsIEdyb3VwaW5nQmFyU2V0dGluZ3NNb2RlbCwgSHlwZXJDZWxsQ2xpY2tFdmVudEFyZ3MsIENvbmRpdGlvbmFsU2V0dGluZ3NNb2RlbCwgSHlwZXJsaW5rU2V0dGluZ3NNb2RlbCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgRXhjZWxRdWVyeUNlbGxJbmZvRXZlbnRBcmdzIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1ncmlkc1wiO1xyXG5pbXBvcnQgeyBDb25kaXRpb25hbEZvcm1hdFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2RhdGFzb3VyY2VzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlU2V0dGluZ3NNb2RlbCwgRmllbGRPcHRpb25zTW9kZWwsIEZvcm1hdFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2RhdGFzb3VyY2VzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBHcmlkU2V0dGluZ3NNb2RlbCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvZ3JpZHNldHRpbmdzLW1vZGVsXCI7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IGdldFdhcm4sIGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IEl0ZW0sIE9wdGlvbnMsIFVzYWdlUmVwb3J0QmFzZSB9IGZyb20gXCIuL3VzYWdlLWJhc2VcIjtcclxuaW1wb3J0IHsgUmVwb3J0UmVmIH0gZnJvbSBcIi4uL3JlcG9ydC1yZWZcIjtcclxuXHJcblBpdm90Vmlldy5JbmplY3QoRXhjZWxFeHBvcnQpO1xyXG5cclxuY29uc3QgUElWT1RfSEVBREVSX0RFTElNSVRFUiA9ICd8JztcclxuLyoqXHJcbiAqIGN1YmUgdXNhZ2VcclxuICogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIC8vdGVtcGxhdGVVcmw6ICd1c2FnZS1waXZvdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgaG9zdDogeyAnW2lkXSc6ICdpZCcgfVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBVc2FnZVBpdm90Q29tcG9uZW50IGV4dGVuZHMgVXNhZ2VSZXBvcnRCYXNlIHtcclxuICBAVmlld0NoaWxkKFBpdm90Vmlld0NvbXBvbmVudCkgcGl2b3Q6IFBpdm90VmlldztcclxuICBwcml2YXRlIF9lbXB0eUNlbGxzVGV4dENvbnRlbnQ6IHN0cmluZztcclxuICBwcml2YXRlIF94QXhpczogQ3ViZUF4aXNbXTtcclxuICBkYXRhU291cmNlU2V0dGluZ3M6IERhdGFTb3VyY2VTZXR0aW5nc01vZGVsO1xyXG4gIGh5cGVybGlua1NldHRpbmdzOiBIeXBlcmxpbmtTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IGdyaWRTZXR0aW5nczogR3JpZFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICByb3dIZWlnaHQ6IDM2XHJcbiAgfTtcclxuICByZWFkb25seSBjb25kaXRpb25hbEZvcm1hdFNldHRpbmdzOiBDb25kaXRpb25hbEZvcm1hdFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICBjb25kaXRpb25zOiAnTGVzc1RoYW4nLFxyXG4gICAgdmFsdWUxOiAwLFxyXG4gICAgbWVhc3VyZTogJ3ZhbHVlJyxcclxuICAgIGFwcGx5R3JhbmRUb3RhbHM6IHRydWUsXHJcbiAgICBzdHlsZToge1xyXG4gICAgICBjb2xvcjogZ2V0V2FybigpXHJcbiAgICB9XHJcbiAgfV07XHJcbiAgcmVhZG9ubHkgZ3JvdXBpbmdCYXJTZXR0aW5nczogR3JvdXBpbmdCYXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgc2hvd1JlbW92ZUljb246IGZhbHNlLFxyXG4gICAgc2hvd0ZpbHRlckljb246IGZhbHNlLFxyXG4gICAgc2hvd1ZhbHVlVHlwZUljb246IGZhbHNlXHJcbiAgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIC8vIGN0b3JcclxuICBjb25zdHJ1Y3RvcihyZXBvcnRSZWY6IFJlcG9ydFJlZjxPcHRpb25zPixcclxuICAgIHR5cGU6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLCBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHJvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHNiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgZGlyOiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgc3VwZXIocmVwb3J0UmVmLCB0eXBlLCBzZXJ2aWNlLCBzZXNzaW9uLCByb3V0ZXIsIHNiLCBkaXIsIHRyYW5zbGF0ZSk7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3NbMF0uc3R5bGUuY29sb3IgPSBnZXRXYXJuKCk7XHJcbiAgICAgIHRoaXMucGl2b3QucmVmcmVzaCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9kZWZhdWx0cygpO1xyXG4gIH1cclxuICAvKiogc2V0IGRlZmF1bHRzICovXHJcbiAgcHJpdmF0ZSBfZGVmYXVsdHMoKSB7XHJcbiAgICBjb25zdCB7IHhBeGlzIH0gPSB0aGlzLl9vcHRpb25zO1xyXG4gICAgdGhpcy5feEF4aXMgPSB4QXhpcyA/IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KHhBeGlzKSA/IHhBeGlzLmluZGV4T2YoYS5uYW1lKSA+IC0xIDogYS5uYW1lID09PSB4QXhpcykgOiB0aGlzLl9jdWJlLmF4ZXMuZmlsdGVyKGEgPT4gIWEuaGlkZGVuKS5zbGljZSgwLCAyKTtcclxuICAgIHRoaXMuX2VtcHR5Q2VsbHNUZXh0Q29udGVudCA9IHRoaXMuX2ludGwuZm9ybWF0TnVtYmVyKDAsIHtcclxuICAgICAgZm9ybWF0OiB0aGlzLmN1cnJlbmN5Q29kZSA/ICdDJyA6ICdOJyxcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZvcm1hdFNldHRpbmdzOiBGb3JtYXRTZXR0aW5nc01vZGVsW10gPSBbe1xyXG4gICAgICBuYW1lOiAndXNhZ2UnLFxyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzXHJcbiAgICB9XTtcclxuICAgIGNvbnN0IHZhbHVlczogRmllbGRPcHRpb25zTW9kZWxbXSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICd1c2FnZScsXHJcbiAgICAgICAgY2FwdGlvbjogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gICAgY29uc3QgY29uZGl0aW9uYWxTZXR0aW5nczogQ29uZGl0aW9uYWxTZXR0aW5nc01vZGVsW10gPSBbe1xyXG4gICAgICBjb25kaXRpb25zOiAnTm90RXF1YWxzJyxcclxuICAgICAgdmFsdWUxOiAwLFxyXG4gICAgICBtZWFzdXJlOiAndXNhZ2UnXHJcbiAgICB9XTtcclxuICAgIHRoaXMuX2luZGljZXMgJiZcclxuICAgICAgdGhpcy5faW5kaWNlcy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICAgIHZhbHVlcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGkubmFtZSxcclxuICAgICAgICAgIGNhcHRpb246IGkudGl0bGUsXHJcbiAgICAgICAgICBzaG93Tm9EYXRhSXRlbXM6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25kaXRpb25hbFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgY29uZGl0aW9uczogJ05vdEVxdWFscycsXHJcbiAgICAgICAgICB2YWx1ZTE6IDAsXHJcbiAgICAgICAgICBtZWFzdXJlOiBpLm5hbWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtYXRTZXR0aW5ncy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGkubmFtZSxcclxuICAgICAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5oeXBlcmxpbmtTZXR0aW5ncyA9IHtcclxuICAgICAgY29uZGl0aW9uYWxTZXR0aW5nczogY29uZGl0aW9uYWxTZXR0aW5nc1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX3hBeGlzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZSxcclxuICAgICAgICBzaG93Tm9EYXRhSXRlbXM6IHRydWVcclxuICAgICAgfSBhcyBGaWVsZE9wdGlvbnNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX3Nlcmllcy5tYXAoYSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogYS5uYW1lLFxyXG4gICAgICAgIGNhcHRpb246IGEudGl0bGUsXHJcbiAgICAgICAgc2hvd05vRGF0YUl0ZW1zOiB0cnVlXHJcbiAgICAgIH0gYXMgRmllbGRPcHRpb25zTW9kZWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzID0ge1xyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgICByb3dzLFxyXG4gICAgICB2YWx1ZXMsXHJcbiAgICAgIGNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3M6IHRoaXMuY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5ncyxcclxuICAgICAgZW1wdHlDZWxsc1RleHRDb250ZW50OiB0aGlzLl9lbXB0eUNlbGxzVGV4dENvbnRlbnQsXHJcbiAgICAgIGV4cGFuZEFsbDogdGhpcy5fY29sbGFwc2UgfHwgZmFsc2UsXHJcbiAgICAgIHNob3dDb2x1bW5HcmFuZFRvdGFsczogdHJ1ZSxcclxuICAgICAgYWx3YXlzU2hvd1ZhbHVlSGVhZGVyOiBmYWxzZSxcclxuICAgICAgZm9ybWF0U2V0dGluZ3MsXHJcbiAgICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgICB2YWx1ZVNvcnRTZXR0aW5nczogeyBoZWFkZXJEZWxpbWl0ZXI6IFBJVk9UX0hFQURFUl9ERUxJTUlURVIgfSxcclxuICAgICAgZW5hYmxlU29ydGluZzogZmFsc2VcclxuICAgIH07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBvbkRhdGEocmVzdWx0OiBJdGVtW10pIHtcclxuICAgIHRoaXMuX2RlY29yYXRlKHJlc3VsdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLmRhdGFTb3VyY2UgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9LCAoKSA9PiB0aGlzLl9zYi5lcnJvcigpKTtcclxuICB9XHJcbiAgZW5naW5lUG9wdWxhdGVkKCkge1xyXG4gICAgdGhpcy5waXZvdC5ncmlkLmV4Y2VsUXVlcnlDZWxsSW5mbyA9IHRoaXMuZXhjZWxRdWVyeUNlbGxJbmZvLmJpbmQodGhpcyk7XHJcbiAgfVxyXG4gIGV4Y2VsUXVlcnlDZWxsSW5mbyhldnQ6IEV4Y2VsUXVlcnlDZWxsSW5mb0V2ZW50QXJncykge1xyXG4gICAgaWYgKGV2dC52YWx1ZSA9PT0gdGhpcy5fZW1wdHlDZWxsc1RleHRDb250ZW50KSBldnQudmFsdWUgPSAwO1xyXG4gIH1cclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnBpdm90KSB7XHJcbiAgICAgIHRoaXMucGl2b3Qud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICB0aGlzLnBpdm90Lm9uV2luZG93UmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRXhwb3J0KG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5waXZvdC5leGNlbEV4cG9ydCh7XHJcbiAgICAgIGZpbGVOYW1lOiBgJHtuYW1lfS54bHN4YFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBhZGRzIGRhdGEgc291cmNlIGRlc2NyaXB0aW9uIHRvIGl0ZW0ga2V5cy5cclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZGVjb3JhdGUocmVzdWx0OiBJdGVtW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICByZXN1bHQuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgICB0aGlzLl94QXhpcy5jb25jYXQodGhpcy5fc2VyaWVzKS5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgIGNvbnN0IGF4aXMgPSByb3dbYS5uYW1lXSBhcyBzdHJpbmc7XHJcbiAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBheGlzO1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCBheGlzKS5waXBlKHRhcCh2ID0+IHJvd1thLm5hbWVdID0gdiB8fCBheGlzKSk7XHJcbiAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYnNlcnZhYmxlcy5sZW5ndGggPyBmb3JrSm9pbihvYnNlcnZhYmxlcykgOiBvZihbXSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCA9IG5ldyBQaXZvdFZpZXcoe1xyXG4gICAgICBzcGlubmVyVGVtcGxhdGU6ICcnLFxyXG4gICAgICBkYXRhU291cmNlU2V0dGluZ3M6IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgICAgZW5hYmxlVmFsdWVTb3J0aW5nOiB0cnVlLFxyXG4gICAgICBlbmFibGVSdGw6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgICBzaG93VG9vbHRpcDogZmFsc2UsXHJcbiAgICAgIGFsbG93Q29uZGl0aW9uYWxGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBhbGxvd051bWJlckZvcm1hdHRpbmc6IHRydWUsXHJcbiAgICAgIGdyb3VwaW5nQmFyU2V0dGluZ3M6IHRoaXMuZ3JvdXBpbmdCYXJTZXR0aW5ncyxcclxuICAgICAgYWxsb3dDYWxjdWxhdGVkRmllbGQ6IHRydWUsXHJcbiAgICAgIHNob3dHcm91cGluZ0JhcjogdHJ1ZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgaHlwZXJsaW5rU2V0dGluZ3M6IHRoaXMuaHlwZXJsaW5rU2V0dGluZ3MsXHJcbiAgICAgIGdyaWRTZXR0aW5nczogdGhpcy5ncmlkU2V0dGluZ3MsXHJcbiAgICAgIGNlbGxDbGljazogdGhpcy5jZWxsQ2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZSxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKi9cclxuICBjZWxsQ2xpY2soZXZ0OiBIeXBlckNlbGxDbGlja0V2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBjb2x1bW5IZWFkZXJzLCByb3dIZWFkZXJzLCBhY3R1YWxUZXh0IH0gPSBldnQuZGF0YSBhcyBhbnk7XHJcbiAgICBjb25zdCBheGVzID0gdGhpcy5fcGl2b3RBeGVzKGNvbHVtbkhlYWRlcnMsIHJvd0hlYWRlcnMpO1xyXG4gICAgc3VwZXIuYnJvd3NlKGF4ZXMsIGFjdHVhbFRleHQgPT09ICd1c2FnZScgPyBudWxsIDogYWN0dWFsVGV4dCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHJldmVyc2UgZW5naW5lZXJpbmcgYXhlcyBmcm9tIGhlYWRlcnNcclxuICAgKiBAcGFyYW0gY29sdW1uSGVhZGVyc1xyXG4gICAqIEBwYXJhbSByb3dIZWFkZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGl2b3RBeGVzKGNvbHVtbkhlYWRlcnM6IHN0cmluZywgcm93SGVhZGVyczogc3RyaW5nKTogeyBbYXhpczogc3RyaW5nXTogc3RyaW5nOyB9IHtcclxuICAgIGNvbnN0IGF4ZXM6IHsgW2F4aXM6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICBpZiAoY29sdW1uSGVhZGVycyAhPT0gJycpXHJcbiAgICAgIGNvbHVtbkhlYWRlcnMuc3BsaXQoUElWT1RfSEVBREVSX0RFTElNSVRFUikuZm9yRWFjaCgoYywgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLmNvbHVtbnNbaV0ubmFtZSxcclxuICAgICAgICAgIC8vIGZpbmQgYW55IHJvdyB3aXRoIGhlYWRlclxyXG4gICAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXS50b1N0cmluZygpID09PSBjKTtcclxuICAgICAgICAvLyB0cmFuc2xhdGUgYmFjayB0byBrZXlcclxuICAgICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogYztcclxuICAgICAgfSk7XHJcbiAgICBpZiAocm93SGVhZGVycyAhPT0gJycpXHJcbiAgICAgIHJvd0hlYWRlcnMuc3BsaXQoUElWT1RfSEVBREVSX0RFTElNSVRFUikuZm9yRWFjaCgociwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLnJvd3NbaV0ubmFtZSxcclxuICAgICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0gPT09IHIpO1xyXG4gICAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnQgPyBlbGVtZW50W2BfJHtjb2x1bW59YF0gOiByO1xyXG4gICAgICB9KTtcclxuICAgIHJldHVybiBheGVzO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { BizDoc } from "../../core/decorators";
4
+ import { UsagePivotComponent } from "./usage-pivot.component";
5
+ import { UsageChartComponent } from "./usage-chart.component";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../report-ref";
8
+ let CubeUsageComponent = class CubeUsageComponent {
9
+ constructor(_injector, _ref, _vc) {
10
+ this._injector = _injector;
11
+ this._ref = _ref;
12
+ this._vc = _vc;
13
+ }
14
+ onBind(data, args) {
15
+ this._instance.onBind(data, args);
16
+ }
17
+ ngOnInit() {
18
+ let comp;
19
+ if (this._ref.options.chartType)
20
+ comp = UsageChartComponent;
21
+ else
22
+ comp = UsagePivotComponent;
23
+ this._instance = this._vc.createComponent(comp).instance;
24
+ }
25
+ };
26
+ CubeUsageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CubeUsageComponent, deps: [{ token: i0.Injector }, { token: i1.ReportRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
27
+ CubeUsageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: CubeUsageComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
28
+ CubeUsageComponent = __decorate([
29
+ BizDoc({
30
+ selector: 'bizdoc-cube-usage'
31
+ })
32
+ ], CubeUsageComponent);
33
+ export { CubeUsageComponent };
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: CubeUsageComponent, decorators: [{
35
+ type: Component,
36
+ args: [{
37
+ template: ''
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ReportRef }, { type: i0.ViewContainerRef }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQTRCLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUU5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztJQVl0RCxrQkFBa0IsU0FBbEIsa0JBQWtCO0lBRXhCLFlBQ1UsU0FBbUIsRUFDbkIsSUFBd0IsRUFDcEIsR0FBcUI7UUFGekIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFJLENBQUM7SUFDeEMsTUFBTSxDQUFDLElBQVksRUFBRSxJQUFXO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDO1FBQ1QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQzNCLElBQUksR0FBRyxtQkFBbUIsQ0FBQzs7WUFFL0IsSUFBSSxHQUFHLG1CQUFtQixDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUN4RixDQUFDO0NBQ0osQ0FBQTsrR0FqQk8sa0JBQWtCO21HQUFsQixrQkFBa0Isb0RBTlosRUFBRTtBQU1SLGtCQUFrQjtJQUp6QixNQUFNLENBQUM7UUFDSixRQUFRLEVBQUUsbUJBQW1CO0tBQ2hDLENBQUM7R0FFTSxrQkFBa0IsQ0FpQnpCO1NBakJPLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVB6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxFQUFFO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnQsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUmVwb3J0UmVmIH0gZnJvbSBcIi4uL3JlcG9ydC1yZWZcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBVc2FnZVBpdm90Q29tcG9uZW50IH0gZnJvbSBcIi4vdXNhZ2UtcGl2b3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFVzYWdlQ2hhcnRDb21wb25lbnQgfSBmcm9tIFwiLi91c2FnZS1jaGFydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQXJncywgSXRlbSwgT3B0aW9ucyB9IGZyb20gXCIuL3VzYWdlLWJhc2VcIjtcclxuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvYmFzZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGU6ICcnXHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gICAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS11c2FnZSdcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQ3ViZVVzYWdlQ29tcG9uZW50IGltcGxlbWVudHMgUmVwb3J0Q29tcG9uZW50PEl0ZW0sIEFyZ3M+LCBPbkluaXQge1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBSZXBvcnRDb21wb25lbnQ8SXRlbSwgQXJncz47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9yZWY6IFJlcG9ydFJlZjxPcHRpb25zPixcclxuICAgICAgICBwcml2YXRlIF92YzogVmlld0NvbnRhaW5lclJlZikgeyB9XHJcbiAgb25CaW5kKGRhdGE6IEl0ZW1bXSwgYXJncz86IEFyZ3MpIHtcclxuICAgIHRoaXMuX2luc3RhbmNlLm9uQmluZChkYXRhLCBhcmdzKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBjb21wO1xyXG4gICAgICAgIGlmICh0aGlzLl9yZWYub3B0aW9ucy5jaGFydFR5cGUpXHJcbiAgICAgICAgICAgIGNvbXAgPSBVc2FnZUNoYXJ0Q29tcG9uZW50O1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICBjb21wID0gVXNhZ2VQaXZvdENvbXBvbmVudDtcclxuICAgICAgdGhpcy5faW5zdGFuY2UgPSB0aGlzLl92Yy5jcmVhdGVDb21wb25lbnQ8UmVwb3J0Q29tcG9uZW50PEl0ZW0sIEFyZ3M+Pihjb21wKS5pbnN0YW5jZTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { filter, map, takeUntil } from 'rxjs/operators';
1
+ import { filter, map } from 'rxjs/operators';
2
2
  import { BehaviorSubject, Subject } from 'rxjs';
3
3
  /** */
4
4
  export class ReportRef {
@@ -16,7 +16,7 @@ export class ReportRef {
16
16
  /** listen to progress events reported by backend code */
17
17
  get progress() {
18
18
  return this._hub.reportProgress$.
19
- pipe(takeUntil(this._resize), filter(e => e.name === this._configuration.name), map(e => e.progress));
19
+ pipe(filter(e => e.name === this._configuration.name), map(e => e.progress));
20
20
  }
21
21
  /** configuration options */
22
22
  get options() {
@@ -28,4 +28,4 @@ export class ReportRef {
28
28
  this._resize.unsubscribe();
29
29
  }
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvcmVwb3J0cy9yZXBvcnQtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBYyxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVELE1BQU07QUFDTixNQUFNLE9BQ0UsU0FBUztJQUVmLFlBQW9CLGNBQXNCLEVBQVUsSUFBZ0IsRUFBRSxHQUFlO1FBQWpFLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUczRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFGbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQVcsTUFBTSxLQUE2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLHlEQUF5RDtJQUN6RCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDOUIsSUFBSSxDQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDaEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELDRCQUE0QjtJQUM1QixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUFDLENBQUM7SUFDN0MseUJBQXlCO0lBQ3pCLElBQUksSUFBSSxLQUFhLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydCwgRGltZW50aW9ucyB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuXHJcbi8qKiAqL1xyXG5leHBvcnRcclxuICBjbGFzcyBSZXBvcnRSZWY8TyA9IGFueT4ge1xyXG4gIHJlYWRvbmx5IF9yZXNpemU6IEJlaGF2aW9yU3ViamVjdDxEaW1lbnRpb25zPjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWd1cmF0aW9uOiBSZXBvcnQsIHByaXZhdGUgX2h1YjogSHViU2VydmljZSwgZGltOiBEaW1lbnRpb25zKSB7XHJcbiAgICB0aGlzLl9yZXNpemUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGRpbSk7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IF9leHBvcnRpbmcgPSBuZXcgU3ViamVjdDxFeHBvcnRFdmVudEFyZ3M+KCk7XHJcbiAgLyoqIGludGVyY2VwdCB1c2VyIGV4cG9ydCAqL1xyXG4gIGV4cG9ydGluZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9leHBvcnRpbmcuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgcmVzaXplKCk6IE9ic2VydmFibGU8RGltZW50aW9ucz4geyByZXR1cm4gdGhpcy5fcmVzaXplLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgLyoqIGxpc3RlbiB0byBwcm9ncmVzcyBldmVudHMgcmVwb3J0ZWQgYnkgYmFja2VuZCBjb2RlICovXHJcbiAgcHVibGljIGdldCBwcm9ncmVzcygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h1Yi5yZXBvcnRQcm9ncmVzcyQuXHJcbiAgICAgIHBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Jlc2l6ZSksXHJcbiAgICAgICAgZmlsdGVyKGUgPT4gZS5uYW1lID09PSB0aGlzLl9jb25maWd1cmF0aW9uLm5hbWUpLFxyXG4gICAgICAgIG1hcChlID0+IGUucHJvZ3Jlc3MpKTtcclxuICB9XHJcbiAgLyoqIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAqL1xyXG4gIGdldCBvcHRpb25zKCk6IE8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb24ub3B0aW9ucyB8fCB7fTsgfVxyXG4gIC8qKiBjb25maWd1cmF0aW9uIG5hbWUgKi9cclxuICBnZXQgbmFtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbi5uYW1lOyB9XHJcbiAgX2Rlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9yZXNpemUudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0RXZlbnRBcmdzIHtcclxuICBjYW5jZWw6IGJvb2xlYW47XHJcbiAgZGF0YToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gIH1bXTtcclxufVxyXG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvcmVwb3J0cy9yZXBvcnQtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFjLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUQsTUFBTTtBQUNOLE1BQU0sT0FDRSxTQUFTO0lBRWYsWUFBb0IsY0FBc0IsRUFBVSxJQUFnQixFQUFFLEdBQWU7UUFBakUsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRzNELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUZuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBVyxNQUFNLEtBQTZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkYseURBQXlEO0lBQ3pELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUM5QixJQUFJLENBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUNoRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsNEJBQTRCO0lBQzVCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQUMsQ0FBQztJQUM3Qyx5QkFBeUI7SUFDekIsSUFBSSxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb3J0LCBEaW1lbnRpb25zIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5cclxuLyoqICovXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFJlcG9ydFJlZjxPID0gYW55PiB7XHJcbiAgcmVhZG9ubHkgX3Jlc2l6ZTogQmVoYXZpb3JTdWJqZWN0PERpbWVudGlvbnM+O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZ3VyYXRpb246IFJlcG9ydCwgcHJpdmF0ZSBfaHViOiBIdWJTZXJ2aWNlLCBkaW06IERpbWVudGlvbnMpIHtcclxuICAgIHRoaXMuX3Jlc2l6ZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZGltKTtcclxuICB9XHJcbiAgcmVhZG9ubHkgX2V4cG9ydGluZyA9IG5ldyBTdWJqZWN0PEV4cG9ydEV2ZW50QXJncz4oKTtcclxuICAvKiogaW50ZXJjZXB0IHVzZXIgZXhwb3J0ICovXHJcbiAgZXhwb3J0aW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2V4cG9ydGluZy5hc09ic2VydmFibGUoKTtcclxuICB9XHJcbiAgcHVibGljIGdldCByZXNpemUoKTogT2JzZXJ2YWJsZTxEaW1lbnRpb25zPiB7IHJldHVybiB0aGlzLl9yZXNpemUuYXNPYnNlcnZhYmxlKCk7IH1cclxuICAvKiogbGlzdGVuIHRvIHByb2dyZXNzIGV2ZW50cyByZXBvcnRlZCBieSBiYWNrZW5kIGNvZGUgKi9cclxuICBwdWJsaWMgZ2V0IHByb2dyZXNzKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHViLnJlcG9ydFByb2dyZXNzJC5cclxuICAgICAgcGlwZShcclxuICAgICAgICBmaWx0ZXIoZSA9PiBlLm5hbWUgPT09IHRoaXMuX2NvbmZpZ3VyYXRpb24ubmFtZSksXHJcbiAgICAgICAgbWFwKGUgPT4gZS5wcm9ncmVzcykpO1xyXG4gIH1cclxuICAvKiogY29uZmlndXJhdGlvbiBvcHRpb25zICovXHJcbiAgZ2V0IG9wdGlvbnMoKTogTyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbi5vcHRpb25zIHx8IHt9OyB9XHJcbiAgLyoqIGNvbmZpZ3VyYXRpb24gbmFtZSAqL1xyXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uLm5hbWU7IH1cclxuICBfZGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3Jlc2l6ZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRFdmVudEFyZ3Mge1xyXG4gIGNhbmNlbDogYm9vbGVhbjtcclxuICBkYXRhOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgfVtdO1xyXG59XHJcbiJdfQ==
@@ -63,7 +63,7 @@ export class ReportViewerComponent {
63
63
  }
64
64
  _dim() {
65
65
  const { width, height } = this.viewContainer.element.nativeElement.parentElement.getBoundingClientRect();
66
- return { width: width - 2, height };
66
+ return { width: Math.floor(width - 2), height: Math.floor(height) };
67
67
  }
68
68
  /** */
69
69
  execute() {
@@ -132,9 +132,9 @@ export class ReportViewerComponent {
132
132
  this._destroy.complete();
133
133
  }
134
134
  }
135
- ReportViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.HttpClient }, { token: i2.PromptService }, { token: i0.Injector }, { token: i3.HubService }, { token: i4.TranslateService }, { token: i5.SessionService }, { token: i6.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
136
- ReportViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: { report: "report", args: "args" }, host: { listeners: { "window:resize": "resize()" } }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "table", first: true, predicate: TableViewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\r\n<ng-container #vc></ng-container>\r\n", styles: [":host{display:flex;flex-direction:column}:host :last-child{flex:1 auto}\n"], components: [{ type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ReportViewerComponent, decorators: [{
135
+ ReportViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.HttpClient }, { token: i2.PromptService }, { token: i0.Injector }, { token: i3.HubService }, { token: i4.TranslateService }, { token: i5.SessionService }, { token: i6.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
136
+ ReportViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: { report: "report", args: "args" }, host: { listeners: { "window:resize": "resize()" } }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "table", first: true, predicate: TableViewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\r\n<ng-container #vc></ng-container>\r\n", styles: [":host{display:flex;flex-direction:column}:host :last-child{flex:1 auto}\n"], components: [{ type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: ReportViewerComponent, decorators: [{
138
138
  type: Component,
139
139
  args: [{ selector: 'bizdoc-report-viewer', template: "<mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\r\n<ng-container #vc></ng-container>\r\n", styles: [":host{display:flex;flex-direction:column}:host :last-child{flex:1 auto}\n"] }]
140
140
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.PromptService }, { type: i0.Injector }, { type: i3.HubService }, { type: i4.TranslateService }, { type: i5.SessionService }, { type: i6.BizDocComponentFactoryResolver }]; }, propDecorators: { report: [{
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
151
151
  type: HostListener,
152
152
  args: ['window:resize']
153
153
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU94RCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUsxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0FBUWxFLDRCQUE0QjtBQUM1QixNQUFNLE9BQU8scUJBQXFCO0lBZWhDLHdCQUF3QjtJQUN4QixZQUNVLEtBQWlCLEVBQ2pCLEdBQWtCLEVBQ2xCLFNBQW1CLEVBQ25CLElBQWdCLEVBQ2hCLFVBQTRCLEVBQzVCLFFBQXdCLEVBQ3hCLGdCQUFnRDtRQU5oRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGFBQVEsR0FBUixRQUFRLENB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Q0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSEF0SVUscUJBQXFCO3NHQUFyQixxQkFBcUIsOE9BT08sZ0JBQWdCLG1FQUM1QyxrQkFBa0IscUVDakMvQiw0TUFFQTsyRkR1QmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHNCQUFzQjtzUkFNdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFLcUQsYUFBYTtzQkFBdkUsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDMUIsS0FBSztzQkFBbkMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBZ0Q3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIEluamVjdG9yLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvY29sdW1uJztcclxuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgUmVwb3J0IH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbU1hcCB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFJlcG9ydFJlZiwgRXhwb3J0RXZlbnRBcmdzIH0gZnJvbSAnLi9yZXBvcnQtcmVmJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IFRhYmxlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJlcG9ydC12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIHJlcG9ydHZpZXdlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUmVwb3J0Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlcG9ydCE6IFJlcG9ydDtcclxuICBASW5wdXQoKSBhcmdzOiBQYXJhbU1hcDtcclxuICBwcm9ncmVzcyA9IDA7XHJcbiAgcHVibGljIGdldCByZXBvcnRSZWYoKTogUmVwb3J0UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXBvcnRSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZjJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBAVmlld0NoaWxkKFRhYmxlVmlld0NvbXBvbmVudCkgdGFibGU6IFRhYmxlVmlld0NvbXBvbmVudDtcclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcclxuICBwcml2YXRlIF9pbnN0YW5jZTogUmVwb3J0Q29tcG9uZW50PGFueSwgYW55PjtcclxuICBwcml2YXRlIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjtcclxuICBwcml2YXRlIF9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXppbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogcmVwb3J0dmlld2VyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmFjdG9yeVJlc29sdmVyOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3JlcG9ydCddKSB7XHJcbiAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYgJiYgdGhpcy5fcmVwb3J0UmVmLl9kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZiA9IG5ldyBSZXBvcnRSZWYodGhpcy5yZXBvcnQsIHRoaXMuX2h1YiwgdGhpcy5fZGltKCkpO1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnQudGVtcGxhdGUpXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlVmlldygpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSB0aGlzLnRhYmxlO1xyXG4gICAgICAvLyBsaXN0ZW4gdG8gcHJvZ3Jlc3NcclxuICAgICAgdGhpcy5faHViLnJlcG9ydFByb2dyZXNzJC5cclxuICAgICAgICBwaXBlKGZpbHRlcihlID0+XHJcbiAgICAgICAgICBlLm5hbWUgPT09IHRoaXMucmVwb3J0Lm5hbWUpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3Byb2Nlc3NpbmcpIHRoaXMucHJvZ3Jlc3MgPSBpLnByb2dyZXNzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9yZXNpemluZy5waXBlKGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fcmVwb3J0UmVmLl9yZXNpemUubmV4dCh0aGlzLl9kaW0oKSkpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9jcmVhdGVWaWV3KCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2ZhY3RvcnlSZXNvbHZlci5yZXNvbHZlKHRoaXMucmVwb3J0LnRlbXBsYXRlKTtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3sgcHJvdmlkZTogUmVwb3J0UmVmLCB1c2VWYWx1ZTogdGhpcy5fcmVwb3J0UmVmIH1dLCB0aGlzLl9pbmplY3Rvcik7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIGluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBSZXBvcnRDb21wb25lbnQ8YW55LCBhbnk+O1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICByZXNpemUoKSB7XHJcbiAgICB0aGlzLl9yZXNpemluZy5uZXh0KHt9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGltKCk6IHsgaGVpZ2h0OiBudW1iZXI7IHdpZHRoOiBudW1iZXIgfSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9ICh0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KS5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIHsgd2lkdGg6IHdpZHRoIC0gMiwgaGVpZ2h0IH07XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLl9wcm9jZXNzaW5nID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8YW55W10+KGAvYXBpL3JlcG9ydC8ke3RoaXMucmVwb3J0Lm5hbWV9YCwgdGhpcy5hcmdzKS5cclxuICAgICAgcGlwZSh0YXAociA9PiB7XHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHIsIHRoaXMuYXJncyk7XHJcbiAgICAgICAgdGhpcy5fZGF0YSA9IHI7XHJcbiAgICAgICAgdGhpcy5fcHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcclxuICAgICAgICB0aGlzLl9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pKS50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZXhwbG9yZShpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGFyZ3MgPSB7fTtcclxuICAgIGNvbnN0IGtleXMgPSB0aGlzLnJlcG9ydC5maWVsZHMuZmlsdGVyKGYgPT4gZi5rZXkpO1xyXG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyBgcmVwb3J0ICR7dGhpcy5yZXBvcnQubmFtZX0gaXRlbSBtb2RlbCBtaXNzaW5nIGtleSBhdHRyaWJ1dGVgO1xyXG4gICAga2V5cy5mb3JFYWNoKGYgPT4gYXJnc1tmLm5hbWVdID0gaXRlbVtmLm5hbWVdKTtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxhbnlbXT4oYC9hcGkvcmVwb3J0LyR7dGhpcy5yZXBvcnQubmFtZX1gLCBhcmdzKS50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKiAqL1xyXG4gIGV4cG9ydEV4Y2VsKCkge1xyXG4gICAgY29uc3QgYXJncyA9IHsgZGF0YTogdGhpcy5fZGF0YS5tYXAociA9PiB7IHJldHVybiB7IC4uLnIgfSB9KSB9IGFzIEV4cG9ydEV2ZW50QXJncztcclxuICAgIHRoaXMuX3JlcG9ydFJlZi5fZXhwb3J0aW5nLm5leHQoYXJncyk7XHJcbiAgICBpZiAoYXJncy5jYW5jZWwpIHJldHVybjtcclxuICAgIGNvbnN0IHJvd3MgPSBbe1xyXG4gICAgICBpbmRleDogMSxcclxuICAgICAgY2VsbHM6IHRoaXMucmVwb3J0LmNvbHVtbnMubWFwKChjLCBqKSA9PiAoe1xyXG4gICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IGMubGFiZWwsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWUsXHJcbiAgICAgICAgICBoQWxpZ246IGMudHlwZSA9PT0gJ051bWJlcicgfHwgYy50eXBlID09PSAnQ3VycmVuY3knID8gJ3JpZ2h0JyA6ICdnZW5lcmFsJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKSlcclxuICAgIH1dIGFzIFJvd1tdO1xyXG4gICAgYXJncy5kYXRhLmZvckVhY2goKHIsIGkpID0+IHJvd3MucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGluZGV4OiBpICsgMixcclxuICAgICAgICBjZWxsczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKGMsIGopID0+ICh7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBoQWxpZ246IGMudHlwZSA9PT0gJ051bWJlcicgfHwgYy50eXBlID09PSAnQ3VycmVuY3knID8gJ3JpZ2h0JyA6ICdnZW5lcmFsJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pKVxyXG4gICAgICB9IGFzIFJvdykpO1xyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aGlzLnJlcG9ydC50aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJidWZmZXJcIiBbdmFsdWVdPXByb2dyZXNzIFtidWZmZXJWYWx1ZV09MCBbc3R5bGUudmlzaWJpbGl0eV09XCJwcm9ncmVzcyA+IDAgJiYgcHJvZ3Jlc3MgPCAxMDAgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxuZy1jb250YWluZXIgI3ZjPjwvbmctY29udGFpbmVyPlxyXG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU94RCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUsxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0FBUWxFLDRCQUE0QjtBQUM1QixNQUFNLE9BQU8scUJBQXFCO0lBZWhDLHdCQUF3QjtJQUN4QixZQUNVLEtBQWlCLEVBQ2pCLEdBQWtCLEVBQ2xCLFNBQW1CLEVBQ25CLElBQWdCLEVBQ2hCLFVBQTRCLEVBQzVCLFFBQXdCLEVBQ3hCLGdCQUFnRDtRQU5oRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGFBQVEsR0FBUixRQUFRLENB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QUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSEF0SVUscUJBQXFCO3NHQUFyQixxQkFBcUIsOE9BT08sZ0JBQWdCLG1FQUM1QyxrQkFBa0IscUVDakMvQiw0TUFFQTsyRkR1QmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHNCQUFzQjtzUkFNdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFLcUQsYUFBYTtzQkFBdkUsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDMUIsS0FBSztzQkFBbkMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBZ0Q3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIEluamVjdG9yLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvY29sdW1uJztcclxuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgUmVwb3J0IH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbU1hcCB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFJlcG9ydFJlZiwgRXhwb3J0RXZlbnRBcmdzIH0gZnJvbSAnLi9yZXBvcnQtcmVmJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IFRhYmxlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJlcG9ydC12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIHJlcG9ydHZpZXdlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUmVwb3J0Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlcG9ydCE6IFJlcG9ydDtcclxuICBASW5wdXQoKSBhcmdzOiBQYXJhbU1hcDtcclxuICBwcm9ncmVzcyA9IDA7XHJcbiAgcHVibGljIGdldCByZXBvcnRSZWYoKTogUmVwb3J0UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXBvcnRSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZjJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBAVmlld0NoaWxkKFRhYmxlVmlld0NvbXBvbmVudCkgdGFibGU6IFRhYmxlVmlld0NvbXBvbmVudDtcclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcclxuICBwcml2YXRlIF9pbnN0YW5jZTogUmVwb3J0Q29tcG9uZW50PGFueSwgYW55PjtcclxuICBwcml2YXRlIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjtcclxuICBwcml2YXRlIF9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXppbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogcmVwb3J0dmlld2VyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmFjdG9yeVJlc29sdmVyOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3JlcG9ydCddKSB7XHJcbiAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYgJiYgdGhpcy5fcmVwb3J0UmVmLl9kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZiA9IG5ldyBSZXBvcnRSZWYodGhpcy5yZXBvcnQsIHRoaXMuX2h1YiwgdGhpcy5fZGltKCkpO1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnQudGVtcGxhdGUpXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlVmlldygpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSB0aGlzLnRhYmxlO1xyXG4gICAgICAvLyBsaXN0ZW4gdG8gcHJvZ3Jlc3NcclxuICAgICAgdGhpcy5faHViLnJlcG9ydFByb2dyZXNzJC5cclxuICAgICAgICBwaXBlKGZpbHRlcihlID0+XHJcbiAgICAgICAgICBlLm5hbWUgPT09IHRoaXMucmVwb3J0Lm5hbWUpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3Byb2Nlc3NpbmcpIHRoaXMucHJvZ3Jlc3MgPSBpLnByb2dyZXNzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9yZXNpemluZy5waXBlKGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fcmVwb3J0UmVmLl9yZXNpemUubmV4dCh0aGlzLl9kaW0oKSkpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9jcmVhdGVWaWV3KCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2ZhY3RvcnlSZXNvbHZlci5yZXNvbHZlKHRoaXMucmVwb3J0LnRlbXBsYXRlKTtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3sgcHJvdmlkZTogUmVwb3J0UmVmLCB1c2VWYWx1ZTogdGhpcy5fcmVwb3J0UmVmIH1dLCB0aGlzLl9pbmplY3Rvcik7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIGluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBSZXBvcnRDb21wb25lbnQ8YW55LCBhbnk+O1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICByZXNpemUoKSB7XHJcbiAgICB0aGlzLl9yZXNpemluZy5uZXh0KHt9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGltKCk6IHsgaGVpZ2h0OiBudW1iZXI7IHdpZHRoOiBudW1iZXIgfSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9ICh0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KS5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIHsgd2lkdGg6IE1hdGguZmxvb3Iod2lkdGggLSAyKSwgaGVpZ2h0OiBNYXRoLmZsb29yKGhlaWdodCkgfTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMuX3Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxhbnlbXT4oYC9hcGkvcmVwb3J0LyR7dGhpcy5yZXBvcnQubmFtZX1gLCB0aGlzLmFyZ3MpLlxyXG4gICAgICBwaXBlKHRhcChyID0+IHtcclxuICAgICAgICB0aGlzLl9pbnN0YW5jZS5vbkJpbmQociwgdGhpcy5hcmdzKTtcclxuICAgICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgICB0aGlzLl9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICAgIH0sICgpID0+IHtcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgfSkpLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgYXJncyA9IHt9O1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMucmVwb3J0LmZpZWxkcy5maWx0ZXIoZiA9PiBmLmtleSk7XHJcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXHJcbiAgICAgIHRocm93IGByZXBvcnQgJHt0aGlzLnJlcG9ydC5uYW1lfSBpdGVtIG1vZGVsIG1pc3Npbmcga2V5IGF0dHJpYnV0ZWA7XHJcbiAgICBrZXlzLmZvckVhY2goZiA9PiBhcmdzW2YubmFtZV0gPSBpdGVtW2YubmFtZV0pO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PGFueVtdPihgL2FwaS9yZXBvcnQvJHt0aGlzLnJlcG9ydC5uYW1lfWAsIGFyZ3MpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqICovXHJcbiAgZXhwb3J0RXhjZWwoKSB7XHJcbiAgICBjb25zdCBhcmdzID0geyBkYXRhOiB0aGlzLl9kYXRhLm1hcChyID0+IHsgcmV0dXJuIHsgLi4uciB9IH0pIH0gYXMgRXhwb3J0RXZlbnRBcmdzO1xyXG4gICAgdGhpcy5fcmVwb3J0UmVmLl9leHBvcnRpbmcubmV4dChhcmdzKTtcclxuICAgIGlmIChhcmdzLmNhbmNlbCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgIGluZGV4OiAxLFxyXG4gICAgICBjZWxsczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKGMsIGopID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogYy5sYWJlbCxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZSxcclxuICAgICAgICAgIGhBbGlnbjogYy50eXBlID09PSAnTnVtYmVyJyB8fCBjLnR5cGUgPT09ICdDdXJyZW5jeScgPyAncmlnaHQnIDogJ2dlbmVyYWwnXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGFzIENlbGwpKVxyXG4gICAgfV0gYXMgUm93W107XHJcbiAgICBhcmdzLmRhdGEuZm9yRWFjaCgociwgaSkgPT4gcm93cy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgIGNlbGxzOiB0aGlzLnJlcG9ydC5jb2x1bW5zLm1hcCgoYywgaikgPT4gKHtcclxuICAgICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IHJbYy5uYW1lXSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGhBbGlnbjogYy50eXBlID09PSAnTnVtYmVyJyB8fCBjLnR5cGUgPT09ICdDdXJyZW5jeScgPyAncmlnaHQnIDogJ2dlbmVyYWwnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpXHJcbiAgICAgIH0gYXMgUm93KSk7XHJcbiAgICBjb25zdCBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICB7XHJcbiAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIDEpLFxyXG4gICAgICAgICAgICBjb2x1bW5zOiB0aGlzLnJlcG9ydC5jb2x1bW5zLm1hcCgoXywgaSkgPT4gKHsgaW5kZXg6IGkgKyAxLCB3aWR0aDogMjUwIH0gYXMgQ29sdW1uKSksXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RoaXMucmVwb3J0LnRpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlcG9ydFJlZi5fZGVzdHJveSgpO1xyXG4gICAgdGhpcy5fcmVzaXppbmcuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIiwiPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImJ1ZmZlclwiIFt2YWx1ZV09cHJvZ3Jlc3MgW2J1ZmZlclZhbHVlXT0wIFtzdHlsZS52aXNpYmlsaXR5XT1cInByb2dyZXNzID4gMCAmJiBwcm9ncmVzcyA8IDEwMCA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==